summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAustin Yuan <shengquan.yuan@gmail.com>2011-08-04 09:53:51 +0800
committerAustin Yuan <shengquan.yuan@gmail.com>2011-09-08 01:38:13 -0400
commit88ea3553ab0ab81352693907ed9e412f343c9ad8 (patch)
treed2a15646632904c0f4e4eb03fd47471a05f91d33
pvr: initial video driver drop for IMG VXD/VXE video engines
The first open source video driver drop for IMG VXD/VXE video engines 1) support IMG VXD375/385 MPEG4/2/H264/VC1 decode HW acceleration 2) support IMG VXE250/285 MPEG4/H264/H263 encode HW accleratoin 3) support post-processing by DC/overlay and GPU 4) support MeeGO and Android It depends on some header files and libraries to build Signed-off-by: Austin Yuan <shengquan.yuan@intel.com>
-rw-r--r--Android.mk25
-rw-r--r--Makefile.am25
-rw-r--r--README9
-rw-r--r--README.debug6
-rwxr-xr-xautogen.sh3
-rw-r--r--configure.ac47
-rw-r--r--debian/README.Debian6
-rw-r--r--debian/changelog28
-rw-r--r--debian/compat1
-rw-r--r--debian/control15
-rw-r--r--debian/copyright34
-rw-r--r--debian/dirs2
-rw-r--r--debian/docs0
-rw-r--r--debian/files1
-rw-r--r--debian/install2
-rw-r--r--debian/rules112
-rw-r--r--fw/Android.mk75
-rw-r--r--fw/H263FirmwareCBR_bin.c8218
-rw-r--r--fw/H263FirmwareCBR_bin.h35
-rw-r--r--fw/H263FirmwareVBR_bin.c8216
-rw-r--r--fw/H263FirmwareVBR_bin.h35
-rw-r--r--fw/H263Firmware_bin.c8222
-rw-r--r--fw/H263Firmware_bin.h35
-rw-r--r--fw/H263MasterFirmwareCBR_bin.c5292
-rw-r--r--fw/H263MasterFirmwareCBR_bin.h44
-rw-r--r--fw/H263MasterFirmwareVBR_bin.c5378
-rw-r--r--fw/H263MasterFirmwareVBR_bin.h44
-rw-r--r--fw/H263MasterFirmware_bin.c3934
-rw-r--r--fw/H263MasterFirmware_bin.h44
-rw-r--r--fw/H263SlaveFirmwareCBR_bin.c4326
-rw-r--r--fw/H263SlaveFirmwareCBR_bin.h44
-rw-r--r--fw/H263SlaveFirmwareVBR_bin.c4291
-rw-r--r--fw/H263SlaveFirmwareVBR_bin.h44
-rw-r--r--fw/H263SlaveFirmware_bin.c3615
-rw-r--r--fw/H263SlaveFirmware_bin.h44
-rw-r--r--fw/H264FirmwareCBR_bin.c8215
-rw-r--r--fw/H264FirmwareCBR_bin.h35
-rw-r--r--fw/H264FirmwareVBR_bin.c8221
-rw-r--r--fw/H264FirmwareVBR_bin.h35
-rw-r--r--fw/H264FirmwareVCM_bin.c8216
-rw-r--r--fw/H264FirmwareVCM_bin.h35
-rw-r--r--fw/H264Firmware_bin.c8227
-rw-r--r--fw/H264Firmware_bin.h35
-rw-r--r--fw/H264MasterFirmwareCBR_bin.c5411
-rw-r--r--fw/H264MasterFirmwareCBR_bin.h44
-rw-r--r--fw/H264MasterFirmwareVBR_bin.c4872
-rw-r--r--fw/H264MasterFirmwareVBR_bin.h44
-rw-r--r--fw/H264MasterFirmwareVCM_bin.c5204
-rw-r--r--fw/H264MasterFirmwareVCM_bin.h44
-rw-r--r--fw/H264MasterFirmware_bin.c3328
-rw-r--r--fw/H264MasterFirmware_bin.h44
-rw-r--r--fw/H264SlaveFirmwareCBR_bin.c4401
-rw-r--r--fw/H264SlaveFirmwareCBR_bin.h44
-rw-r--r--fw/H264SlaveFirmwareVBR_bin.c3786
-rw-r--r--fw/H264SlaveFirmwareVBR_bin.h44
-rw-r--r--fw/H264SlaveFirmwareVCM_bin.c4511
-rw-r--r--fw/H264SlaveFirmwareVCM_bin.h44
-rw-r--r--fw/H264SlaveFirmware_bin.c3009
-rw-r--r--fw/H264SlaveFirmware_bin.h44
-rw-r--r--fw/JPEGMasterFirmware_bin.c1802
-rw-r--r--fw/JPEGMasterFirmware_bin.h44
-rw-r--r--fw/JPEGSlaveFirmware_bin.c1768
-rw-r--r--fw/JPEGSlaveFirmware_bin.h44
-rw-r--r--fw/MPG4FirmwareCBR_bin.c8222
-rw-r--r--fw/MPG4FirmwareCBR_bin.h35
-rw-r--r--fw/MPG4FirmwareVBR_bin.c8220
-rw-r--r--fw/MPG4FirmwareVBR_bin.h35
-rw-r--r--fw/MPG4Firmware_bin.c8227
-rw-r--r--fw/MPG4Firmware_bin.h35
-rw-r--r--fw/MPG4MasterFirmwareCBR_bin.c4872
-rw-r--r--fw/MPG4MasterFirmwareCBR_bin.h44
-rw-r--r--fw/MPG4MasterFirmwareVBR_bin.c4962
-rw-r--r--fw/MPG4MasterFirmwareVBR_bin.h44
-rw-r--r--fw/MPG4MasterFirmware_bin.c3518
-rw-r--r--fw/MPG4MasterFirmware_bin.h44
-rw-r--r--fw/MPG4SlaveFirmwareCBR_bin.c3910
-rw-r--r--fw/MPG4SlaveFirmwareCBR_bin.h44
-rw-r--r--fw/MPG4SlaveFirmwareVBR_bin.c3875
-rw-r--r--fw/MPG4SlaveFirmwareVBR_bin.h44
-rw-r--r--fw/MPG4SlaveFirmware_bin.c3199
-rw-r--r--fw/MPG4SlaveFirmware_bin.h44
-rw-r--r--fw/Makefile.am61
-rw-r--r--fw/fwinfo.c230
-rw-r--r--fw/msvdx_bin.c188
-rw-r--r--fw/thread0_bin.c3916
-rw-r--r--fw/thread0_bin.h52
-rw-r--r--fw/thread0_ss_bin.c3933
-rw-r--r--fw/thread0_ss_bin.h53
-rw-r--r--fw/thread1_bin.c615
-rw-r--r--fw/thread1_bin.h74
-rw-r--r--fw/thread2_bin.c4369
-rw-r--r--fw/thread3_bin.c618
-rw-r--r--fw/topaz_bin.c254
-rw-r--r--fw/topazsc_bin.c203
-rw-r--r--psb-video.spec83
-rw-r--r--src/Android.mk112
-rw-r--r--src/Makefile.am59
-rw-r--r--src/android/psb_android_glue.cpp184
-rw-r--r--src/android/psb_android_glue.h61
-rw-r--r--src/android/psb_output_android.c378
-rw-r--r--src/ci_va.h102
-rw-r--r--src/hwdefs/dma_api.h764
-rw-r--r--src/hwdefs/dxva_cmdseq_msg.h618
-rw-r--r--src/hwdefs/dxva_fw_ctrl.h145
-rw-r--r--src/hwdefs/dxva_fw_flags.h57
-rw-r--r--src/hwdefs/dxva_msg.h102
-rw-r--r--src/hwdefs/fwrk_msg_mem_io.h306
-rw-r--r--src/hwdefs/h264_macroblock_mem_io.h502
-rw-r--r--src/hwdefs/img_defs.h219
-rw-r--r--src/hwdefs/img_types.h195
-rw-r--r--src/hwdefs/lldma_defs.h50
-rw-r--r--src/hwdefs/mem_io.h421
-rw-r--r--src/hwdefs/msvdx_cmds_io2.h1269
-rw-r--r--src/hwdefs/msvdx_core_regs_io2.h747
-rw-r--r--src/hwdefs/msvdx_defs.h78
-rw-r--r--src/hwdefs/msvdx_dmac_linked_list.h262
-rw-r--r--src/hwdefs/msvdx_dmac_regs_io2.h220
-rw-r--r--src/hwdefs/msvdx_mtx_reg_io2.h296
-rw-r--r--src/hwdefs/msvdx_offsets.h71
-rw-r--r--src/hwdefs/msvdx_rendec_mtx_slice_cntrl_reg_io2.h108
-rw-r--r--src/hwdefs/msvdx_rendec_vc1_reg_io2.h259
-rw-r--r--src/hwdefs/msvdx_vdmc_reg_io2.h450
-rw-r--r--src/hwdefs/msvdx_vec_h264_reg_io2.h607
-rw-r--r--src/hwdefs/msvdx_vec_mpeg2_reg_io2.h270
-rw-r--r--src/hwdefs/msvdx_vec_mpeg4_reg_io2.h382
-rw-r--r--src/hwdefs/msvdx_vec_reg_io2.h1213
-rw-r--r--src/hwdefs/msvdx_vec_vc1_reg_io2.h562
-rw-r--r--src/hwdefs/reg_io2.h397
-rw-r--r--src/hwdefs/topazSC_defs.h124
-rw-r--r--src/hwdefs/topaz_defs.h112
-rw-r--r--src/lnc_H263ES.c583
-rw-r--r--src/lnc_H263ES.h38
-rw-r--r--src/lnc_H264ES.c886
-rw-r--r--src/lnc_H264ES.h44
-rw-r--r--src/lnc_MPEG4ES.c562
-rw-r--r--src/lnc_MPEG4ES.h40
-rw-r--r--src/lnc_cmdbuf.c600
-rw-r--r--src/lnc_cmdbuf.h189
-rw-r--r--src/lnc_hostcode.c1480
-rw-r--r--src/lnc_hostcode.h557
-rw-r--r--src/lnc_hostheader.c2370
-rw-r--r--src/lnc_hostheader.h293
-rw-r--r--src/lnc_ospm.c236
-rw-r--r--src/lnc_ospm.h62
-rw-r--r--src/object_heap.c220
-rw-r--r--src/object_heap.h99
-rw-r--r--src/pnw_H263ES.c510
-rw-r--r--src/pnw_H263ES.h37
-rw-r--r--src/pnw_H264.c1914
-rw-r--r--src/pnw_H264.h38
-rw-r--r--src/pnw_H264ES.c854
-rw-r--r--src/pnw_H264ES.h40
-rw-r--r--src/pnw_MPEG2.c1644
-rw-r--r--src/pnw_MPEG2.h38
-rw-r--r--src/pnw_MPEG4.c1524
-rw-r--r--src/pnw_MPEG4.h38
-rw-r--r--src/pnw_MPEG4ES.c505
-rw-r--r--src/pnw_MPEG4ES.h38
-rw-r--r--src/pnw_VC1.c3045
-rw-r--r--src/pnw_VC1.h38
-rw-r--r--src/pnw_cmdbuf.c653
-rw-r--r--src/pnw_cmdbuf.h223
-rw-r--r--src/pnw_hostcode.c2065
-rw-r--r--src/pnw_hostcode.h554
-rw-r--r--src/pnw_hostheader.c2931
-rw-r--r--src/pnw_hostheader.h301
-rw-r--r--src/pnw_hostjpeg.c1785
-rw-r--r--src/pnw_hostjpeg.h675
-rw-r--r--src/pnw_jpeg.c568
-rw-r--r--src/pnw_jpeg.h39
-rw-r--r--src/psb_H264.c1926
-rw-r--r--src/psb_H264.h37
-rw-r--r--src/psb_MPEG2.c1611
-rw-r--r--src/psb_MPEG2.h38
-rw-r--r--src/psb_MPEG2MC.c1476
-rw-r--r--src/psb_MPEG4.c1471
-rw-r--r--src/psb_MPEG4.h37
-rw-r--r--src/psb_VC1.c2761
-rw-r--r--src/psb_VC1.h37
-rw-r--r--src/psb_buffer.c467
-rw-r--r--src/psb_buffer.h184
-rw-r--r--src/psb_buffer_dm.c482
-rw-r--r--src/psb_cmdbuf.c2042
-rw-r--r--src/psb_cmdbuf.h355
-rw-r--r--src/psb_deblock.c604
-rw-r--r--src/psb_def.h82
-rw-r--r--src/psb_drv_video.c3389
-rw-r--r--src/psb_drv_video.h469
-rw-r--r--src/psb_output.c2058
-rw-r--r--src/psb_output.h379
-rw-r--r--src/psb_overlay.c1334
-rw-r--r--src/psb_overlay.h357
-rw-r--r--src/psb_surface.c264
-rw-r--r--src/psb_surface.h133
-rw-r--r--src/psb_surface_ext.h181
-rw-r--r--src/psb_texstreaming.c144
-rw-r--r--src/psb_texstreaming.h97
-rw-r--r--src/psb_texture.c1065
-rw-r--r--src/psb_texture.h159
-rw-r--r--src/psb_ws_driver.c102
-rw-r--r--src/psb_ws_driver.h52
-rw-r--r--src/pvr2d.h726
-rw-r--r--src/vc1_defs.h206
-rw-r--r--src/vc1_header.h401
-rw-r--r--src/vc1_idx.c127
-rw-r--r--src/vc1_vlc.c7169
-rw-r--r--src/x11/psb_coverlay.c1298
-rw-r--r--src/x11/psb_ctexture.c480
-rw-r--r--src/x11/psb_x11.c469
-rw-r--r--src/x11/psb_x11.h162
-rw-r--r--src/x11/psb_xrandr.c879
-rw-r--r--src/x11/psb_xrandr.h190
-rw-r--r--src/x11/psb_xvva.c822
-rwxr-xr-xstyle_unify10
214 files changed, 264576 insertions, 0 deletions
diff --git a/Android.mk b/Android.mk
new file mode 100644
index 0000000..a91a71e
--- /dev/null
+++ b/Android.mk
@@ -0,0 +1,25 @@
+# Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+#
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sub license, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice (including the
+# next paragraph) shall be included in all copies or substantial portions
+# of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+# IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+# ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+include $(call all-subdir-makefiles)
+
diff --git a/Makefile.am b/Makefile.am
new file mode 100644
index 0000000..289be5c
--- /dev/null
+++ b/Makefile.am
@@ -0,0 +1,25 @@
+# Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sub license, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice (including the
+# next paragraph) shall be included in all copies or substantial portions
+# of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+# IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+# ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+AUTOMAKE_OPTIONS = foreign
+SUBDIRS = src fw
+
diff --git a/README b/README
new file mode 100644
index 0000000..a7e5e80
--- /dev/null
+++ b/README
@@ -0,0 +1,9 @@
+1. Overview
+VAAPI driver for IMG VXD375/385 and VEX250/285 video engines
+1) support IMG VXD375/385 MPEG4/2/H264/VC1 decode HW acceleration
+2) support IMG VXE250/285 MPEG4/H264/H263 encode HW accleratoin
+3) support post-processing by DC/overlay and GPU
+4) support MeeGO and Android Operating System
+
+2. Build requirements
+
diff --git a/README.debug b/README.debug
new file mode 100644
index 0000000..d1658ec
--- /dev/null
+++ b/README.debug
@@ -0,0 +1,6 @@
+To compile the driver with debug information enabled, define DEBUG_TRACE
+in src/psb_def.h
+
+If the driver is compiled with debug information enabled, setting
+the environment variable $PSB_VIDEO_TRACE will cause the driver to
+log tracing information to the file specified in $PSB_VIDEO_TRACE.
diff --git a/autogen.sh b/autogen.sh
new file mode 100755
index 0000000..9c2f4f6
--- /dev/null
+++ b/autogen.sh
@@ -0,0 +1,3 @@
+#! /bin/sh
+autoreconf -v --install
+./configure "$@"
diff --git a/configure.ac b/configure.ac
new file mode 100644
index 0000000..7608417
--- /dev/null
+++ b/configure.ac
@@ -0,0 +1,47 @@
+# Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sub license, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice (including the
+# next paragraph) shall be included in all copies or substantial portions
+# of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+# IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+# ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+AC_PREREQ(2.57)
+AC_INIT([psb-video], 0.1, [waldo.bastian@intel.com], psb-video)
+AC_CONFIG_SRCDIR([Makefile.am])
+AM_INIT_AUTOMAKE([dist-bzip2])
+
+AM_CONFIG_HEADER([src/config.h])
+
+AC_DISABLE_STATIC
+AC_PROG_LIBTOOL
+AC_PROG_CC
+
+AC_HEADER_STDC
+AC_SYS_LARGEFILE
+
+PKG_CHECK_MODULES([X11], [x11])
+PKG_CHECK_MODULES([XEXT], [xext])
+PKG_CHECK_MODULES([DRM], [libdrm])
+PKG_CHECK_MODULES([WSBM], [libwsbm])
+PKG_CHECK_MODULES([LIBVA], [libva])
+PKG_CHECK_MODULES([XV], [xv])
+
+pkgconfigdir=${libdir}/pkgconfig
+AC_SUBST(pkgconfigdir)
+
+AC_OUTPUT([Makefile src/Makefile fw/Makefile])
diff --git a/debian/README.Debian b/debian/README.Debian
new file mode 100644
index 0000000..cea7a97
--- /dev/null
+++ b/debian/README.Debian
@@ -0,0 +1,6 @@
+psb-video for Debian
+--------------------
+
+<possible notes regarding this package - if none, delete this file>
+
+ -- root <waldo.bastian@intel.com> Thu, 21 Jun 2007 18:41:18 -0700
diff --git a/debian/changelog b/debian/changelog
new file mode 100644
index 0000000..b8d09bd
--- /dev/null
+++ b/debian/changelog
@@ -0,0 +1,28 @@
+psb-video (0.1-5) unstable; urgency=low
+
+ * MPEG4: Don't require IQ matrix
+
+ -- Waldo Bastian <waldo.bastian@intel.com> Mon, 27 Aug 2007 13:33:05 -0700
+
+ * MPEG4 VLD working
+ * MPEG2 MC mostly working
+ * VC1 almost working
+ * Updated for libVA 0.20
+
+ -- Waldo Bastian <waldo.bastian@intel.com> Wed, 22 Aug 2007 12:34:33 -0700
+
+ * Updated firmware
+ * Link against libva
+
+ -- Waldo Bastian <waldo.bastian@intel.com> Wed, 01 Aug 2007 14:13:19 -0700
+
+ * Added GL based vaPutSurface
+ * Fixed handling of split buffers
+ * Include firmware
+
+ -- Waldo Bastian <waldo.bastian@intel.com> Thu, 21 Jun 2007 18:41:18 -0700
+
+ * Pre-alpha version of video decode driver for Poulsbo, MPEG2 VLD working
+
+ -- Waldo Bastian <waldo.bastian@intel.com> Thu, 21 Jun 2007 18:41:18 -0700
+
diff --git a/debian/compat b/debian/compat
new file mode 100644
index 0000000..7ed6ff8
--- /dev/null
+++ b/debian/compat
@@ -0,0 +1 @@
+5
diff --git a/debian/control b/debian/control
new file mode 100644
index 0000000..686e717
--- /dev/null
+++ b/debian/control
@@ -0,0 +1,15 @@
+Source: psb-video
+Priority: extra
+Maintainer: Waldo Bastian <waldo.bastian@intel.com>
+Build-Depends: debhelper (>= 5), libva-dev
+Standards-Version: 3.7.2
+Section: libs
+
+Package: psb-video
+Section: libs
+Architecture: any
+Depends: libdrm2 (>= 2.3.0),
+ libgl1-mesa-glx | libgl1,
+ psb-kmd-video (>= 0.1)
+Description: Video decode driver for Poulsbo
+ Video decode driver for Poulsbo
diff --git a/debian/copyright b/debian/copyright
new file mode 100644
index 0000000..fa7576a
--- /dev/null
+++ b/debian/copyright
@@ -0,0 +1,34 @@
+This package was debianized by root <waldo.bastian@intel.com> on
+Thu, 21 Jun 2007 18:41:18 -0700.
+
+It was downloaded from <url://example.com>
+
+Upstream Author(s):
+
+ <put author's name and email here>
+ <likewise for another author>
+
+Copyright:
+ Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+
+License:
+
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sub license, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice (including the
+# next paragraph) shall be included in all copies or substantial portions
+# of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+# IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+# ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/debian/dirs b/debian/dirs
new file mode 100644
index 0000000..7635131
--- /dev/null
+++ b/debian/dirs
@@ -0,0 +1,2 @@
+usr/X11R6/lib/modules/dri/
+lib/firmware
diff --git a/debian/docs b/debian/docs
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/debian/docs
diff --git a/debian/files b/debian/files
new file mode 100644
index 0000000..63f9ed1
--- /dev/null
+++ b/debian/files
@@ -0,0 +1 @@
+psb-video_0.1-5_i386.deb libs extra
diff --git a/debian/install b/debian/install
new file mode 100644
index 0000000..f719bdf
--- /dev/null
+++ b/debian/install
@@ -0,0 +1,2 @@
+usr/X11R6/lib/modules/dri/*
+lib/firmware/*
diff --git a/debian/rules b/debian/rules
new file mode 100644
index 0000000..bec3f5c
--- /dev/null
+++ b/debian/rules
@@ -0,0 +1,112 @@
+#!/usr/bin/make -f
+# -*- makefile -*-
+# Sample debian/rules that uses debhelper.
+# This file was originally written by Joey Hess and Craig Small.
+# As a special exception, when this file is copied by dh-make into a
+# dh-make output file, you may use that output file without restriction.
+# This special exception was added by Craig Small in version 0.37 of dh-make.
+
+# Uncomment this to turn on verbose mode.
+#export DH_VERBOSE=1
+
+
+
+
+CFLAGS = -Wall -g
+
+ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
+ CFLAGS += -O0
+else
+ CFLAGS += -O2
+endif
+
+# shared library versions, option 1
+version=2.0.5
+major=2
+# option 2, assuming the library is created as src/.libs/libfoo.so.2.0.5 or so
+#version=`ls src/.libs/lib*.so.* | \
+# awk '{if (match($$0,/[0-9]+\.[0-9]+\.[0-9]+$$/)) print substr($$0,RSTART)}'`
+#major=`ls src/.libs/lib*.so.* | \
+# awk '{if (match($$0,/\.so\.[0-9]+$$/)) print substr($$0,RSTART+4)}'`
+
+configure: configure-stamp
+configure-stamp:
+ dh_testdir
+ # Add here commands to configure the package.
+ifneq "$(wildcard /usr/share/misc/config.sub)" ""
+ cp -f /usr/share/misc/config.sub config.sub
+endif
+ifneq "$(wildcard /usr/share/misc/config.guess)" ""
+ cp -f /usr/share/misc/config.guess config.guess
+endif
+ ./configure --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE) --prefix=/usr --mandir=\$${prefix}/share/man --infodir=\$${prefix}/share/info CFLAGS="$(CFLAGS)"
+
+ touch configure-stamp
+
+
+build: build-stamp
+build-stamp: configure-stamp
+ dh_testdir
+
+ # Add here commands to compile the package.
+ $(MAKE)
+
+ touch $@
+
+clean:
+ dh_testdir
+ dh_testroot
+ rm -f build-stamp configure-stamp
+
+ # Add here commands to clean up after the build process.
+ -$(MAKE) clean
+
+ dh_clean
+
+install: build
+ dh_testdir
+ dh_testroot
+ dh_clean -k
+ dh_installdirs
+
+ # Add here commands to install the package into debian/tmp
+ $(MAKE) DESTDIR=$(CURDIR)/debian/tmp install
+
+
+# Build architecture-independent files here.
+binary-indep: build install
+# We have nothing to do by default.
+
+# Build architecture-dependent files here.
+binary-arch: build install
+ dh_testdir
+ dh_testroot
+ dh_installchangelogs
+ dh_installdocs
+ dh_installexamples
+ dh_install --sourcedir=$(CURDIR)/debian/tmp
+# dh_installmenu
+# dh_installdebconf
+# dh_installlogrotate
+# dh_installemacsen
+# dh_installpam
+# dh_installmime
+# dh_installinit
+# dh_installcron
+# dh_installinfo
+ dh_installman
+ dh_link
+ dh_strip
+ dh_compress
+ dh_fixperms
+# dh_perl
+# dh_python
+# dh_makeshlibs
+ dh_installdeb
+ dh_shlibdeps
+ dh_gencontrol
+ dh_md5sums
+ dh_builddeb
+
+binary: binary-indep binary-arch
+.PHONY: build clean binary-indep binary-arch binary install configure
diff --git a/fw/Android.mk b/fw/Android.mk
new file mode 100644
index 0000000..7eb4de5
--- /dev/null
+++ b/fw/Android.mk
@@ -0,0 +1,75 @@
+# Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sub license, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice (including the
+# next paragraph) shall be included in all copies or substantial portions
+# of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+# IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+# ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+
+
+LOCAL_PATH := $(call my-dir)
+
+# For msvdx_bin
+# =====================================================
+include $(CLEAR_VARS)
+LOCAL_SRC_FILES := msvdx_bin.c thread0_ss_bin.c thread0_bin.c thread1_bin.c thread2_bin.c thread3_bin.c
+
+LOCAL_CFLAGS += -DFRAME_SWITCHING_VARIANT=1 -DSLICE_SWITCHING_VARIANT=1
+
+LOCAL_C_INCLUDES :=
+
+LOCAL_SHARED_LIBRARIES :=
+
+LOCAL_MODULE_TAGS := eng
+LOCAL_MODULE := msvdx_bin
+
+include $(BUILD_EXECUTABLE)
+
+# For topaz_bin
+# =====================================================
+include $(CLEAR_VARS)
+
+LOCAL_SRC_FILES := topaz_bin.c H263Firmware_bin.c H263FirmwareCBR_bin.c H263FirmwareVBR_bin.c H264Firmware_bin.c H264FirmwareCBR_bin.c H264FirmwareVBR_bin.c MPG4Firmware_bin.c MPG4FirmwareCBR_bin.c MPG4FirmwareVBR_bin.c H264FirmwareVCM_bin.c
+
+LOCAL_CFLAGS +=
+
+LOCAL_C_INCLUDES :=
+
+LOCAL_SHARED_LIBRARIES :=
+
+LOCAL_MODULE_TAGS := eng
+LOCAL_MODULE := topaz_bin
+
+include $(BUILD_EXECUTABLE)
+
+# For fwinfo
+# =====================================================
+include $(CLEAR_VARS)
+
+LOCAL_SRC_FILES := fwinfo.c
+
+LOCAL_CFLAGS +=
+
+LOCAL_C_INCLUDES :=
+
+LOCAL_SHARED_LIBRARIES :=
+
+LOCAL_MODULE_TAGS := eng
+LOCAL_MODULE := imginfo
+
+include $(BUILD_EXECUTABLE)
diff --git a/fw/H263FirmwareCBR_bin.c b/fw/H263FirmwareCBR_bin.c
new file mode 100644
index 0000000..dc506ef
--- /dev/null
+++ b/fw/H263FirmwareCBR_bin.c
@@ -0,0 +1,8218 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+// This file was automatically generated from ../release/H263FirmwareCBR.dnl using dnl2c.
+
+unsigned char *szH263CBR_MTXTOPAZFW_buildtag = "TOPAZ_DDKBUILD_00-00-00-0146";
+
+unsigned long ui32H263CBR_MTXTOPAZFWTextSize = 4500;
+unsigned long ui32H263CBR_MTXTOPAZFWDataSize = 3680;
+unsigned long ui32H263CBR_MTXTOPAZFWDataLocation = 0x82884680;
+
+unsigned long aui32H263CBR_MTXTOPAZFWText[] = {
+ 0x9040c001,
+ 0xc80993fe,
+ 0xc0000e42,
+ 0xc8290e00,
+ 0xc5108422,
+ 0xc8298420,
+ 0xc4688622,
+ 0x9e838600,
+ 0xc8099e43,
+ 0xc8c80d42,
+ 0xc8090d00,
+ 0xc8c80942,
+ 0xc8090940,
+ 0xc00a0e42,
+ 0xc8090e40,
+ 0xc00e87c2,
+ 0x9c1887d0,
+ 0x0c020802,
+ 0x09820d82,
+ 0x09020d02,
+ 0x08820c82,
+ 0x9320fffe,
+ 0xa401c838,
+ 0x0dc2c809,
+ 0x0dc0c8c6,
+ 0x0e42c809,
+ 0x0b46b080,
+ 0x7e74b77f,
+ 0xa48d0882,
+ 0xffff9ff3,
+ 0x9d1393e0,
+ 0xf8398081,
+ 0x0707a205,
+ 0x06850307,
+ 0x03839e97,
+ 0x0fa0060f,
+ 0x018d058d,
+ 0x9c62008f,
+ 0x9340ffff,
+ 0x0ea0060b,
+ 0xffff9c62,
+ 0x058d93a0,
+ 0xb700018d,
+ 0xb780520c,
+ 0x9c015194,
+ 0x0687a605,
+ 0x0ea0060b,
+ 0xffff9c62,
+ 0xf9f893a0,
+ 0xf9f8aa9d,
+ 0x9c22aa1d,
+ 0xa60d9c22,
+ 0x9bfefff4,
+ 0x0ca2c829,
+ 0x0c80c510,
+ 0x404db720,
+ 0x0a42c809,
+ 0x0a10c5ea,
+ 0x0b027440,
+ 0x428cb580,
+ 0x0a12d002,
+ 0x4644b421,
+ 0xc0540d8a,
+ 0xb78098b0,
+ 0xc807528c,
+ 0xc57008c2,
+ 0xc0320880,
+ 0xb5800c86,
+ 0xb4214c8c,
+ 0x0a06c000,
+ 0x0c98c002,
+ 0xc000b481,
+ 0x09021a04,
+ 0x08bac002,
+ 0x4078b960,
+ 0x0a00c200,
+ 0x588bd224,
+ 0xc000b441,
+ 0x0a11ce00,
+ 0x9301ffff,
+ 0x1884e000,
+ 0x9244ffff,
+ 0x0a42c807,
+ 0x0a00c576,
+ 0x0c86c032,
+ 0xc000b481,
+ 0x08820a02,
+ 0x08840902,
+ 0x4078b960,
+ 0x0a00c200,
+ 0x588bd224,
+ 0xc000b441,
+ 0x0a11ce00,
+ 0x9301ffff,
+ 0x745ac004,
+ 0x923cffff,
+ 0xc0340a02,
+ 0xb4810c9e,
+ 0xc034c000,
+ 0xc05498cd,
+ 0xc054982e,
+ 0x0d8a982a,
+ 0x9861c054,
+ 0x0a42c801,
+ 0x0a08c010,
+ 0x0c86c032,
+ 0xc000b481,
+ 0x08c2c801,
+ 0x0880cb10,
+ 0xb4210ce4,
+ 0x0a06c000,
+ 0xb4810cb4,
+ 0xc123c000,
+ 0xc56608d2,
+ 0xc08008e0,
+ 0xb4210c82,
+ 0x1a04c000,
+ 0xb4810c84,
+ 0x0d86c000,
+ 0x0d0209c2,
+ 0x0902c121,
+ 0x991bc014,
+ 0x458cb780,
+ 0xa982f208,
+ 0x0d02c021,
+ 0x09c20d04,
+ 0x9906c014,
+ 0x458cb780,
+ 0x0ad2c123,
+ 0x0ae0c566,
+ 0xa982f208,
+ 0x0d0609c2,
+ 0x98fac014,
+ 0x09c20d86,
+ 0xc1810d0e,
+ 0xc0140902,
+ 0xc00298fe,
+ 0xc0540dc2,
+ 0x700a980d,
+ 0x9364ffff,
+ 0xc0540d82,
+ 0xc0039814,
+ 0xb74092e0,
+ 0xd2265304,
+ 0x9e2d5908,
+ 0xaa4de030,
+ 0x9c629ea4,
+ 0x4514b720,
+ 0x405db740,
+ 0x58c1c280,
+ 0x2a80cff0,
+ 0x5a21c280,
+ 0x8021f310,
+ 0x753ec004,
+ 0x40cdb520,
+ 0x404db580,
+ 0x4652b431,
+ 0x0a42c801,
+ 0x0a08c010,
+ 0x0c86c032,
+ 0xc000b481,
+ 0xc0020886,
+ 0xb4210c98,
+ 0xb780c000,
+ 0xc080450c,
+ 0xf2080c82,
+ 0xb421a881,
+ 0x0d82c000,
+ 0x9bd0c034,
+ 0x450cb780,
+ 0xa881f208,
+ 0xffff7002,
+ 0x0d869304,
+ 0x0d0209c2,
+ 0x0902c121,
+ 0x98afc014,
+ 0x458cb780,
+ 0xa982f208,
+ 0x0d02c021,
+ 0x09c20d04,
+ 0x989ac014,
+ 0x458cb780,
+ 0xa982f208,
+ 0x0d0609c2,
+ 0x9892c014,
+ 0x09c20d86,
+ 0xc1010d0e,
+ 0xc0140902,
+ 0x77409896,
+ 0x9082c000,
+ 0x9b79c034,
+ 0x9c80c971,
+ 0x5a41e200,
+ 0x9204c000,
+ 0x0dc2c002,
+ 0x9b9ac034,
+ 0x450cb780,
+ 0xa881f208,
+ 0xffff7002,
+ 0x0d8292e4,
+ 0x9b9dc034,
+ 0xc0007580,
+ 0xc0349364,
+ 0x0d8a9b5e,
+ 0x9b95c034,
+ 0x450cb780,
+ 0xa881f208,
+ 0x5908d0a8,
+ 0x0948d073,
+ 0xe0309e2d,
+ 0xd3f1aacd,
+ 0xc2002a5c,
+ 0x75185a05,
+ 0x2ad2d012,
+ 0x9234fffb,
+ 0xb79f0802,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0x9c229c22,
+ 0x451cb740,
+ 0xc200aa41,
+ 0xc0025a08,
+ 0xf3100a00,
+ 0xf2088021,
+ 0xf208a882,
+ 0xc0c0a885,
+ 0x5c890c80,
+ 0xc000b421,
+ 0xa6059c22,
+ 0x451cb740,
+ 0x0886aa41,
+ 0x0c9ec034,
+ 0x5a08c200,
+ 0x0a00c002,
+ 0x80a1f310,
+ 0xc000b421,
+ 0x0c92c080,
+ 0xaa25f208,
+ 0xc000b481,
+ 0xc0340dc2,
+ 0xf2089b3f,
+ 0x7008aa25,
+ 0x9344ffff,
+ 0xc0800a02,
+ 0xb4810c96,
+ 0x0d86c000,
+ 0x0d0609c2,
+ 0x0902c121,
+ 0x981bc014,
+ 0xa9a2f208,
+ 0x0d02c021,
+ 0x09c20d04,
+ 0x9808c014,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xc0409e54,
+ 0x9e590c82,
+ 0xc000b421,
+ 0x0d02c040,
+ 0xc000b482,
+ 0xc00e9c22,
+ 0xc00e2d7c,
+ 0x5d3029e0,
+ 0xc0409e54,
+ 0x31b80c82,
+ 0xc000b461,
+ 0x0d02c040,
+ 0xc000b442,
+ 0x9e4c9c22,
+ 0x28fcc00e,
+ 0x2a7cc00e,
+ 0x0c82c040,
+ 0xb4019e58,
+ 0xc200c000,
+ 0x58e45a6c,
+ 0x1d043242,
+ 0x9e515d10,
+ 0x1984598d,
+ 0x3980c011,
+ 0x590d3246,
+ 0x59301904,
+ 0x32443242,
+ 0xc000b481,
+ 0x9e4c9c22,
+ 0x28fcc00e,
+ 0x2a7cc00e,
+ 0x0c82c040,
+ 0xb4019e58,
+ 0xc200c000,
+ 0x58e45a6c,
+ 0x1d043242,
+ 0x9e515d10,
+ 0x1984598d,
+ 0x3980c019,
+ 0x590d3246,
+ 0x59301904,
+ 0x32443242,
+ 0xc000b481,
+ 0x9e4c9c22,
+ 0x28fcc00e,
+ 0x2a7cc00e,
+ 0x0c82c040,
+ 0xb4019e58,
+ 0xc200c000,
+ 0x58e45a6c,
+ 0x1d043242,
+ 0x9e515d10,
+ 0x1984598d,
+ 0x3980c01d,
+ 0x590d3246,
+ 0x59301904,
+ 0x32443242,
+ 0xc000b481,
+ 0xa60d9c22,
+ 0x07038420,
+ 0xc2800687,
+ 0x1c845c8d,
+ 0x5ca0d0a2,
+ 0xd0110287,
+ 0xc2000a5e,
+ 0x1a045a0d,
+ 0x5a30c200,
+ 0x30985cd0,
+ 0x04059e4c,
+ 0x0c8ac032,
+ 0xc8013098,
+ 0xb4213880,
+ 0x9ea9c000,
+ 0x0a02c801,
+ 0x0a00c002,
+ 0xc0306553,
+ 0xb4810c8a,
+ 0xc002c000,
+ 0x0c840882,
+ 0xc000b421,
+ 0xd0229e93,
+ 0x9e535f09,
+ 0x1d045d0d,
+ 0x9b5afff4,
+ 0x5e91c280,
+ 0xc2801e84,
+ 0x9e6c5e84,
+ 0xc2801a84,
+ 0xc1815a90,
+ 0x0d8a3a80,
+ 0x0d020982,
+ 0xfff4314a,
+ 0xc0c09b54,
+ 0x09920d82,
+ 0x0d02c002,
+ 0x0902c002,
+ 0x9a47c034,
+ 0xc0340a0a,
+ 0xb4810c9e,
+ 0x1b04c000,
+ 0x850275bf,
+ 0x9202c000,
+ 0xb55f9dcf,
+ 0xc0347f7c,
+ 0xf2319a4f,
+ 0xb75fa045,
+ 0x1b047f7c,
+ 0x851075bf,
+ 0x9284ffff,
+ 0xc0300a02,
+ 0xb4810c8e,
+ 0xb79fc000,
+ 0xb7bf7e6e,
+ 0xb7df7eee,
+ 0xc0027f6e,
+ 0x9c228c00,
+ 0xb780a605,
+ 0xc004438c,
+ 0x75002a00,
+ 0x5a0cb7a0,
+ 0x92c2c002,
+ 0xa9b6f208,
+ 0x0982c050,
+ 0x0d7ec008,
+ 0x9b08fff4,
+ 0xa9bef208,
+ 0x0982c028,
+ 0x0d3ec004,
+ 0x9b00fff4,
+ 0x438cb780,
+ 0x38c0d211,
+ 0x02039e89,
+ 0x2a00c201,
+ 0xcffa7500,
+ 0xb5202cfd,
+ 0xc0014394,
+ 0x744090e2,
+ 0x5a8cb740,
+ 0x9256c000,
+ 0xaa45f008,
+ 0xa8c9f008,
+ 0x2cfec7ff,
+ 0x0a00c010,
+ 0xa245f008,
+ 0x0880c008,
+ 0xa0c9f008,
+ 0x4394b520,
+ 0xaa45f008,
+ 0x438cb720,
+ 0xa235f208,
+ 0xa8caf008,
+ 0x28fecdff,
+ 0xa0bef208,
+ 0x438cb520,
+ 0x9240c000,
+ 0xa937f208,
+ 0xaa39f208,
+ 0xa93cf20a,
+ 0xa8a1f248,
+ 0x8021f310,
+ 0x82a3e210,
+ 0xa235f208,
+ 0xa0bdf208,
+ 0xa9bef248,
+ 0x0982c002,
+ 0xfff40d0e,
+ 0xf2489ab5,
+ 0xb720aa3d,
+ 0xc002438c,
+ 0xf2480a00,
+ 0xc200a23d,
+ 0xb5203880,
+ 0xc011438c,
+ 0x74402880,
+ 0x92e2c000,
+ 0xa9b6f248,
+ 0x0982c008,
+ 0xfff40d3e,
+ 0xf2489a9d,
+ 0xb720aa35,
+ 0xc008438c,
+ 0xf2480a00,
+ 0xc081a235,
+ 0xcfef3880,
+ 0xb52028fe,
+ 0xb780438c,
+ 0xc001438c,
+ 0x75002a04,
+ 0x92e2c000,
+ 0xa9b6f248,
+ 0x0982c008,
+ 0xfff40d3e,
+ 0xf2489a81,
+ 0xb720aa35,
+ 0xc008438c,
+ 0xf2480a00,
+ 0xc001a235,
+ 0xcfff3888,
+ 0xb52028fa,
+ 0xb720438c,
+ 0x0203438c,
+ 0x2a10c001,
+ 0xc0027500,
+ 0xc0019082,
+ 0x744028c0,
+ 0x9182c001,
+ 0xa9a6f288,
+ 0x0d0609c2,
+ 0x0c820942,
+ 0xfff40882,
+ 0xf2889a96,
+ 0xf288a9b6,
+ 0x5d90a927,
+ 0x81afe220,
+ 0x438cb780,
+ 0x0d0609c2,
+ 0x0c820942,
+ 0xc0010882,
+ 0xb5803a20,
+ 0xfff4438c,
+ 0xb7809aa0,
+ 0xf288438c,
+ 0xc003a8a5,
+ 0x08c03a00,
+ 0xa0a5f288,
+ 0x2a2ecfff,
+ 0x9260c000,
+ 0xa9a6f288,
+ 0x0d0609c2,
+ 0x9a36fff4,
+ 0x438cb780,
+ 0xa8a5f288,
+ 0x3a20c001,
+ 0xf28808c0,
+ 0xcfffa0a5,
+ 0xb5802a6e,
+ 0xb79f438c,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa6059c22,
+ 0x438cb780,
+ 0x2a00c200,
+ 0x9e5d7500,
+ 0x9302c000,
+ 0x0abc6a8e,
+ 0x09829eab,
+ 0xc1010d36,
+ 0xc0140902,
+ 0x9eab98a4,
+ 0x438cb780,
+ 0x0d1a0982,
+ 0x0902c101,
+ 0x2a7dcdfe,
+ 0x438cb580,
+ 0x9897c014,
+ 0x438cb780,
+ 0x2a00c081,
+ 0xc0007500,
+ 0xc1019222,
+ 0xc0060902,
+ 0x0dce0940,
+ 0x0d020982,
+ 0x9887c014,
+ 0x438cb780,
+ 0x2a7ecf7f,
+ 0x438cb580,
+ 0x438cb780,
+ 0x2a08c001,
+ 0xc0007500,
+ 0xc1019222,
+ 0xc0060902,
+ 0x0dde0940,
+ 0x0d020982,
+ 0x9871c014,
+ 0x438cb780,
+ 0x2a76cfff,
+ 0x438cb580,
+ 0x438cb780,
+ 0x2a20c001,
+ 0xc0007500,
+ 0x0de291e2,
+ 0x0d020982,
+ 0x0902c101,
+ 0x985dc014,
+ 0x438cb780,
+ 0x2a5ecfff,
+ 0x438cb580,
+ 0x438cb780,
+ 0x2a00c003,
+ 0xc0007500,
+ 0x0de291e2,
+ 0x0d060982,
+ 0x0902c101,
+ 0x9849c014,
+ 0x438cb780,
+ 0x2a7ecffd,
+ 0x438cb580,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xb7a0a605,
+ 0xf2485a0c,
+ 0xc021a9ba,
+ 0x0d3c0d02,
+ 0x0982c008,
+ 0x999efff4,
+ 0xa9aaf288,
+ 0x0d02c021,
+ 0x09c20d04,
+ 0x9996fff4,
+ 0xaa39f248,
+ 0xa8a9f288,
+ 0x0a00c008,
+ 0xa239f248,
+ 0xf28808c0,
+ 0xb79fa0a9,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa6059c22,
+ 0x09920687,
+ 0x0d02c002,
+ 0x0902c002,
+ 0x9883c034,
+ 0x0a42c002,
+ 0xc2800eb0,
+ 0xb4855e89,
+ 0xb79fc000,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xb7409c22,
+ 0xd1a64c84,
+ 0x9e2d5d08,
+ 0xa8cde030,
+ 0x5a0cc080,
+ 0xd1f35885,
+ 0xc00e2910,
+ 0xe2202d7c,
+ 0xc00e812d,
+ 0x5d302a40,
+ 0x32429e51,
+ 0x0c82c040,
+ 0xc000b481,
+ 0x0d02c040,
+ 0xc000b442,
+ 0xb7409c22,
+ 0x1df05b04,
+ 0x5d08d1a6,
+ 0xe0309e2d,
+ 0xc080a8cd,
+ 0xd0335a05,
+ 0x5991294e,
+ 0x008929bc,
+ 0x81a7e210,
+ 0x2910d1f3,
+ 0x2d7cc00e,
+ 0x812de220,
+ 0x5d305990,
+ 0x31b89e54,
+ 0x0c82c040,
+ 0xc000b461,
+ 0x0d02c040,
+ 0xc000b442,
+ 0xa6059c22,
+ 0x5a0cb7a0,
+ 0x0e82c111,
+ 0x0ec0c04e,
+ 0xa9b6f208,
+ 0x0982c050,
+ 0x0d7ec008,
+ 0x991efff4,
+ 0x0df29e6a,
+ 0x0982c004,
+ 0xfff40d02,
+ 0xf2089bc8,
+ 0xf248a937,
+ 0xe220a9aa,
+ 0xc05081af,
+ 0xc0080982,
+ 0xfff40d7e,
+ 0x9e6a990b,
+ 0xc0040df2,
+ 0x0d0209c2,
+ 0x9bb5fff4,
+ 0xa937f208,
+ 0xa9aaf248,
+ 0x812ec201,
+ 0x81afe220,
+ 0x0982c050,
+ 0x0d7ec008,
+ 0x98f6fff4,
+ 0x0df29e6a,
+ 0x0982c006,
+ 0xfff40d02,
+ 0xf2089ba0,
+ 0xcfd8a9be,
+ 0xc0280e81,
+ 0xc0040982,
+ 0xfff40d3e,
+ 0x9e6a98e5,
+ 0xc0040df2,
+ 0xc0040982,
+ 0xfff40d42,
+ 0xf2089b8e,
+ 0xf248a93f,
+ 0xe220a9b2,
+ 0xc02881af,
+ 0xc0040982,
+ 0xfff40d3e,
+ 0x9e6a98d1,
+ 0xc0040df2,
+ 0xc00409c2,
+ 0xfff40d42,
+ 0xf2089b7a,
+ 0xf248a93f,
+ 0xc201a9b2,
+ 0xe220812e,
+ 0xc02881af,
+ 0xc0040982,
+ 0xfff40d3e,
+ 0x9e6a98bb,
+ 0xc0060df2,
+ 0xc0040982,
+ 0xfff40d42,
+ 0xf2489b64,
+ 0xf20aaa29,
+ 0xf248a934,
+ 0xd226a8b1,
+ 0xf2085904,
+ 0xf310a9bf,
+ 0xd0a68021,
+ 0xe2105904,
+ 0xf31080a3,
+ 0xe2108221,
+ 0xf20880b3,
+ 0xf208a235,
+ 0xb79fa0bd,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa6059c22,
+ 0x0902c121,
+ 0x0940c006,
+ 0x02870dca,
+ 0x0d020982,
+ 0x2afcc00e,
+ 0x9b1bfff4,
+ 0x09820dca,
+ 0xc2800d1e,
+ 0x010b5aec,
+ 0x3900c121,
+ 0x9b11fff4,
+ 0x438cb780,
+ 0x3a00c400,
+ 0x438cb580,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0x0922c829,
+ 0x0970c5fe,
+ 0x0a22c829,
+ 0x0a50c5fe,
+ 0x5b8cb720,
+ 0x0ca2c829,
+ 0x0ce0c5fe,
+ 0x8502c004,
+ 0x458cb580,
+ 0x450cb520,
+ 0x0a18d071,
+ 0xa241f008,
+ 0x404db520,
+ 0x413db540,
+ 0x8d00c004,
+ 0x40bdb540,
+ 0x403db540,
+ 0xf8399c22,
+ 0xf010a285,
+ 0x7500aa61,
+ 0x9164c000,
+ 0xa8c1d008,
+ 0x0a069e48,
+ 0x5200c200,
+ 0xd0083098,
+ 0xd011a0c1,
+ 0xd0100d38,
+ 0xf011a9f2,
+ 0xf0101a30,
+ 0x1984a943,
+ 0x93e2c000,
+ 0x8702cff1,
+ 0x8700cff0,
+ 0x087ec00f,
+ 0x087cc00e,
+ 0x0c1ac050,
+ 0xa8c5f029,
+ 0x2095d020,
+ 0x9e4d5ca1,
+ 0xc2002210,
+ 0x30d85a20,
+ 0x4006ba09,
+ 0xc000b420,
+ 0x1a30f011,
+ 0xffff1984,
+ 0xf21091e4,
+ 0xf010802f,
+ 0xf9f8a241,
+ 0x9c22aa9d,
+ 0x8420a60d,
+ 0x9e558502,
+ 0x7f7cb55f,
+ 0xaa61f010,
+ 0x8d8ee012,
+ 0xb55f0307,
+ 0x1a087ffc,
+ 0xd226750a,
+ 0x8540590c,
+ 0x8044e05a,
+ 0x91e0c003,
+ 0x9180c000,
+ 0x9000c001,
+ 0x9140c001,
+ 0x92a0c001,
+ 0x9380c001,
+ 0x91c0c002,
+ 0x5c8cb780,
+ 0xa881da08,
+ 0x74402888,
+ 0xb352856a,
+ 0xb7804462,
+ 0x9d57450c,
+ 0x8d88e011,
+ 0x1954d072,
+ 0xa299f208,
+ 0x9abcc014,
+ 0x91e0c002,
+ 0x450cb780,
+ 0xa91af208,
+ 0xe0119ea9,
+ 0x15148d88,
+ 0x9ab0c014,
+ 0x9060c002,
+ 0x8d88e011,
+ 0x295ed3f2,
+ 0xc0140916,
+ 0xb78099df,
+ 0xf208450c,
+ 0xc001a299,
+ 0xe01192c0,
+ 0xd3f28d88,
+ 0x0916295e,
+ 0x99d2c014,
+ 0x91a0c001,
+ 0xaa41d208,
+ 0x8c88f011,
+ 0xd0124a7d,
+ 0x0d062ace,
+ 0x018b0906,
+ 0x99c4c014,
+ 0x9e6a9e83,
+ 0x0d02018b,
+ 0x99bec014,
+ 0x9320c000,
+ 0xaa41d208,
+ 0x8c88f011,
+ 0xd0124a7d,
+ 0x0d022ace,
+ 0x018b0906,
+ 0x99b0c014,
+ 0x9e6a9e83,
+ 0xc00e018b,
+ 0xc0140d7e,
+ 0xc00099a9,
+ 0xc0019080,
+ 0xb79f90e0,
+ 0xc00f7e68,
+ 0xc00e0cfe,
+ 0x9e4a0cfc,
+ 0x7c68b59f,
+ 0x7f6cb73f,
+ 0x0a02cff1,
+ 0x0a00cff0,
+ 0x0c9ac050,
+ 0xc2002218,
+ 0x20945a21,
+ 0x324258a0,
+ 0x4006ba24,
+ 0x7f6cb59f,
+ 0xc000b481,
+ 0xa943f208,
+ 0x7fecb79f,
+ 0x8021f310,
+ 0xa241f208,
+ 0x7e6eb79f,
+ 0x7eeeb7bf,
+ 0x7f6eb7df,
+ 0x8c00c002,
+ 0xa61d9c22,
+ 0x85028440,
+ 0xf0319e9d,
+ 0x0b02abe5,
+ 0x7878b55f,
+ 0x7efcb55f,
+ 0x9d3a718e,
+ 0x91e8c001,
+ 0x7502aa41,
+ 0x9392c000,
+ 0xaad1d018,
+ 0x8d08e032,
+ 0x8d00e051,
+ 0x9eb19dcf,
+ 0xb55f8510,
+ 0xc0027f7c,
+ 0xc2800a9c,
+ 0x018b5a95,
+ 0x9aebfff4,
+ 0x7f7cb75f,
+ 0x5a88c280,
+ 0x8122c301,
+ 0x91a0c000,
+ 0x8d88e031,
+ 0x050b9dcf,
+ 0xb55f8510,
+ 0xfff47f7c,
+ 0xb75f9b19,
+ 0x0b047f7c,
+ 0xfffe718e,
+ 0xb79f92a6,
+ 0xc0507868,
+ 0xb4810c9e,
+ 0xc050c000,
+ 0xb4e20d16,
+ 0xb71fc000,
+ 0xb79f7eec,
+ 0xb7bf7d6e,
+ 0xb7df7dee,
+ 0xb7ff7e6e,
+ 0xc0027eee,
+ 0x9c228c40,
+ 0xa205f839,
+ 0x8400c010,
+ 0x5c8cb780,
+ 0x451cb740,
+ 0xa882da08,
+ 0xd011a8c1,
+ 0x58882e18,
+ 0x0880c002,
+ 0xe2107500,
+ 0xc00080a3,
+ 0x0a0a90a2,
+ 0x9100c000,
+ 0x2e14d011,
+ 0x0a067500,
+ 0x0a44d001,
+ 0x0c82c050,
+ 0xc000b481,
+ 0x0a02c004,
+ 0xb4810cb4,
+ 0x9d87c000,
+ 0x402db740,
+ 0x09a20dc2,
+ 0x0d02c008,
+ 0x0c81cff0,
+ 0x9b4dffd4,
+ 0x0a42c801,
+ 0x0a00cb10,
+ 0x0ceac032,
+ 0xc000b481,
+ 0x08c2c801,
+ 0x0888c010,
+ 0xb4210c84,
+ 0xb760c000,
+ 0x9d8f410a,
+ 0x0d81cff0,
+ 0x9b67fff4,
+ 0x0a02c801,
+ 0x0a00c00a,
+ 0x0c8ac030,
+ 0xc000b481,
+ 0x08c2c008,
+ 0xb4210c84,
+ 0xc008c000,
+ 0x0c880a02,
+ 0xc000b481,
+ 0x0d82c0c0,
+ 0xc0080992,
+ 0xc0080d02,
+ 0xc0140902,
+ 0xc00899ae,
+ 0xc0300a02,
+ 0xb4810c8e,
+ 0xc014c000,
+ 0xb79f982f,
+ 0xc0106fee,
+ 0x9c228c20,
+ 0xa205f839,
+ 0x0c82c450,
+ 0xb4810a02,
+ 0xb101c000,
+ 0xc0084220,
+ 0xc0300a40,
+ 0xb4810c8e,
+ 0xc002c000,
+ 0xc05038c0,
+ 0xb4210c82,
+ 0xc0c0c000,
+ 0x09920d82,
+ 0x0d02c008,
+ 0x0902c008,
+ 0x9983c014,
+ 0x0a02c008,
+ 0x0c8ec030,
+ 0xc000b481,
+ 0xaa1df9f8,
+ 0x9040c000,
+ 0xc450a60d,
+ 0x0a020c8a,
+ 0xc000b481,
+ 0x4240b105,
+ 0x2efce00e,
+ 0x5e90d284,
+ 0x0a02c801,
+ 0xc0300a40,
+ 0xb4810c8a,
+ 0x08c2c000,
+ 0xb4210c84,
+ 0x7740c000,
+ 0x5e0cb7c0,
+ 0x93e2c000,
+ 0x0eded031,
+ 0x09820dea,
+ 0x2ac10d02,
+ 0x1950d051,
+ 0x3900c121,
+ 0x98ddfff4,
+ 0xa9c6f248,
+ 0xc280018b,
+ 0x1a845a8f,
+ 0xc0219eaa,
+ 0xffd43d00,
+ 0xf2489a3f,
+ 0xf310a947,
+ 0xf248802b,
+ 0xc450a245,
+ 0x0a020c86,
+ 0xc000b481,
+ 0x4220b101,
+ 0x0a42c801,
+ 0x0a08c010,
+ 0x0c86c032,
+ 0xc000b481,
+ 0xc0020886,
+ 0xb4210c98,
+ 0xb740c000,
+ 0xf2485c0c,
+ 0xf048a8c5,
+ 0xd053aa51,
+ 0xc0801910,
+ 0xf3100ca2,
+ 0xb4818821,
+ 0xb7a0c000,
+ 0xc0025c0c,
+ 0xc0140d82,
+ 0xf248992f,
+ 0xf248a8c5,
+ 0xd053aa31,
+ 0xf3101910,
+ 0x70088821,
+ 0x9264ffff,
+ 0x09c20d86,
+ 0xc1210d0a,
+ 0xffd40902,
+ 0xf2489a0a,
+ 0xc0a1a9b2,
+ 0x0d040d02,
+ 0xffd409c2,
+ 0xc0c099f7,
+ 0x09920d82,
+ 0x09420d42,
+ 0x98f7c014,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x9e5da60d,
+ 0xf1245940,
+ 0xd3f15841,
+ 0xb3502d2e,
+ 0xc0024422,
+ 0xf00893e2,
+ 0xe000aa61,
+ 0xb4252a1c,
+ 0xd8084422,
+ 0x8522aa61,
+ 0x88a9e210,
+ 0x12182a1c,
+ 0xc00e9ea3,
+ 0xba1b0a7e,
+ 0xc200400b,
+ 0x21285207,
+ 0x9276c001,
+ 0xc1009e59,
+ 0x11035a20,
+ 0x5209c200,
+ 0xc2009ea2,
+ 0x9e8d58a1,
+ 0x0cb0d031,
+ 0xa8a2d208,
+ 0x2a7cc00e,
+ 0x5207c200,
+ 0x2a7cc00e,
+ 0xd208349a,
+ 0xf008a0a2,
+ 0x9ea1a963,
+ 0x2a2ed3f1,
+ 0x8128c201,
+ 0x8821f310,
+ 0xf0088502,
+ 0xd228a261,
+ 0x9eaba127,
+ 0x2d01cff0,
+ 0x59415940,
+ 0xc00e3522,
+ 0xfff42d7c,
+ 0xc0009bb1,
+ 0xd20892e0,
+ 0x9e5eaa21,
+ 0x50d8000b,
+ 0xd0293242,
+ 0xf008a205,
+ 0xd013a8e1,
+ 0xf210291e,
+ 0x75108029,
+ 0x00989e44,
+ 0xa0e1f008,
+ 0x4426b350,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x0685a60d,
+ 0x9e9e9e69,
+ 0x71820b02,
+ 0xc0000a86,
+ 0x9ea99208,
+ 0x9e6916d2,
+ 0x5a84c280,
+ 0x1a52d011,
+ 0xd0117102,
+ 0xd3f108e2,
+ 0xffff2b1e,
+ 0xd0119286,
+ 0x75100a62,
+ 0xc000028d,
+ 0x9e7391d4,
+ 0x09220d02,
+ 0x9b70fff4,
+ 0xd0111aa0,
+ 0x75100a52,
+ 0xffff9e83,
+ 0x9e7392d2,
+ 0xd0110d06,
+ 0xc00e0952,
+ 0xfff4297c,
+ 0x75909b61,
+ 0xc0009e83,
+ 0xd03192f4,
+ 0xd3f11a60,
+ 0x9e6c2b4e,
+ 0xc2009e73,
+ 0xd3f25299,
+ 0x0922295e,
+ 0x9b50fff4,
+ 0xc2009e83,
+ 0x9ea952b8,
+ 0x16d27590,
+ 0x91b2ffff,
+ 0xd3f29e73,
+ 0x010d2d5e,
+ 0x9b42fff4,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x0ca0f011,
+ 0xd09a9e99,
+ 0xd00d5a04,
+ 0xc0001a42,
+ 0x1203909a,
+ 0x9e4b1242,
+ 0xfffc9ea2,
+ 0xc0019360,
+ 0xf83993a0,
+ 0x0d8aa205,
+ 0x9835c014,
+ 0xc0140d8e,
+ 0x0d8a9832,
+ 0xaa1df9f8,
+ 0x91a0c001,
+ 0x9e520507,
+ 0x0d82c0c0,
+ 0xc0000992,
+ 0x9e5c9040,
+ 0xd1a401c6,
+ 0x08825889,
+ 0x3c80c400,
+ 0xc000b421,
+ 0x4220b104,
+ 0x9e532244,
+ 0xffff7106,
+ 0x9c229324,
+ 0xc000b463,
+ 0xf8129c22,
+ 0x9c22a062,
+ 0x0d80c200,
+ 0x9e595d89,
+ 0xc4000982,
+ 0xb4633d80,
+ 0xb203c000,
+ 0x00074620,
+ 0xc1279c22,
+ 0x9c229c8f,
+ 0xb971080a,
+ 0xc01756f1,
+ 0xc0719c81,
+ 0xc0179c80,
+ 0xb9609c80,
+ 0x9c224000,
+ 0x8460a61d,
+ 0x4504b740,
+ 0xb53f0882,
+ 0xb5207f6c,
+ 0xf0004788,
+ 0x9e2daa41,
+ 0x5a8cb7a0,
+ 0x7e6cb53f,
+ 0x5a08c200,
+ 0x0940d093,
+ 0xe0209ea9,
+ 0x0dc2a96d,
+ 0xc002098e,
+ 0xffd40d42,
+ 0xb7209920,
+ 0xf2085a14,
+ 0x0882aa25,
+ 0x7eecb53f,
+ 0xa8a9f208,
+ 0xda089eaf,
+ 0xb580a939,
+ 0xda0842cd,
+ 0xb760a93e,
+ 0xb5205c0c,
+ 0xb54043cd,
+ 0xb540434d,
+ 0xf2084455,
+ 0xda08aa39,
+ 0xf048a9a2,
+ 0xd112a967,
+ 0x9e4d0938,
+ 0xa8c1d810,
+ 0x75002a20,
+ 0xf0489e5c,
+ 0x60c2a97d,
+ 0x5a7fc080,
+ 0x5a71c200,
+ 0x58930098,
+ 0xe2105894,
+ 0xb54080a3,
+ 0xb54046cd,
+ 0xb520474d,
+ 0xc00047cd,
+ 0xe1809182,
+ 0xc0005dc0,
+ 0xf0489284,
+ 0xd810a977,
+ 0xc000aa41,
+ 0xb7409100,
+ 0xd8105c04,
+ 0xf040aa41,
+ 0xf310a957,
+ 0xf2888021,
+ 0xf288a12b,
+ 0xf208a225,
+ 0xb760aa39,
+ 0xf2485c1c,
+ 0xf248a8a1,
+ 0xaa61a229,
+ 0xa969a8e6,
+ 0xa0b1f248,
+ 0xf2089d67,
+ 0xf208a221,
+ 0xf208a0aa,
+ 0xd858a12d,
+ 0xd858a8ea,
+ 0xd111a96d,
+ 0xda080a18,
+ 0xf208a881,
+ 0xb720a0a6,
+ 0xf2085e14,
+ 0x58c0a131,
+ 0xf28858d1,
+ 0xda10a0b5,
+ 0xb740aa61,
+ 0xb740425d,
+ 0x008942c5,
+ 0x5a20c200,
+ 0xf310589c,
+ 0xe2108021,
+ 0xa26d82a3,
+ 0xa0f1f018,
+ 0xa225f248,
+ 0xa0adf248,
+ 0x0a00c00c,
+ 0x4e8cb580,
+ 0x0880c006,
+ 0x4f0cb520,
+ 0x0cf2c42e,
+ 0xb4810a02,
+ 0xb101c000,
+ 0x28844220,
+ 0xc0007440,
+ 0xb7409182,
+ 0xd1115c0c,
+ 0xda080a28,
+ 0xc058a881,
+ 0xc0267460,
+ 0xda109172,
+ 0xb720aa61,
+ 0x8706410a,
+ 0x9dd47500,
+ 0x1ed2d002,
+ 0xb55f7448,
+ 0xc0007de4,
+ 0xf2109112,
+ 0xcffeaa79,
+ 0xf2102a3d,
+ 0xf210a279,
+ 0x2a40aa79,
+ 0xc0007500,
+ 0x0a0a9122,
+ 0x0caec060,
+ 0xc000b481,
+ 0x90e0c000,
+ 0xc0600a06,
+ 0xb4810cae,
+ 0xb720c000,
+ 0xf2c84d14,
+ 0xf288aa21,
+ 0xc801a8bd,
+ 0x9d1e3c80,
+ 0x450cb740,
+ 0x5a40c200,
+ 0xc30158a0,
+ 0x32423246,
+ 0xa251f008,
+ 0x9970c034,
+ 0xc0340a3e,
+ 0xb4810c9e,
+ 0x0882c000,
+ 0xb4210c90,
+ 0xffd4c000,
+ 0xc0069a92,
+ 0xb5408542,
+ 0x0a02469c,
+ 0x0c8ac030,
+ 0xc000b481,
+ 0x0882c002,
+ 0xb4210c84,
+ 0xc801c000,
+ 0xc0020a02,
+ 0x1c840a00,
+ 0xc000b481,
+ 0x0902c1c1,
+ 0x0940c006,
+ 0x09820dce,
+ 0xffb40d02,
+ 0xc0c09baa,
+ 0xffd40d82,
+ 0xb7809a18,
+ 0xc034468c,
+ 0xc2000cae,
+ 0xb4815a11,
+ 0x0882c000,
+ 0xb4210cfc,
+ 0xf210c000,
+ 0x2a04aa79,
+ 0x850a7500,
+ 0x471cb540,
+ 0x90a2c000,
+ 0xb5408504,
+ 0xb780471c,
+ 0xc03e470c,
+ 0xb5800c82,
+ 0xb481478c,
+ 0xc0c8c000,
+ 0xc0500882,
+ 0xb4210ce2,
+ 0xc0e0c000,
+ 0xc0380a3a,
+ 0xb4810cfa,
+ 0xf210c000,
+ 0xb720aa79,
+ 0x871e470c,
+ 0x8562c084,
+ 0x491cb540,
+ 0xc050090a,
+ 0x2a040cb6,
+ 0x38d07500,
+ 0x470cb520,
+ 0x0a02c006,
+ 0x8f28e001,
+ 0x4804b540,
+ 0xc000b481,
+ 0x0d02c03a,
+ 0xc000b442,
+ 0xc03408be,
+ 0xb4210c9e,
+ 0xb785c000,
+ 0x75005a08,
+ 0x9082c000,
+ 0x98c2c054,
+ 0x490cb780,
+ 0x0c82c038,
+ 0xc000b481,
+ 0xa965da10,
+ 0xaa35f288,
+ 0x5e8cb720,
+ 0x62458502,
+ 0x462db720,
+ 0x419ab540,
+ 0x421ab540,
+ 0x429ab540,
+ 0xc2007440,
+ 0xb5805a11,
+ 0xc000430a,
+ 0xf2509102,
+ 0xb760a9ea,
+ 0x9e8c430a,
+ 0xb7e09c62,
+ 0x0b025c0c,
+ 0xb7809eae,
+ 0xc050480c,
+ 0xb4810c82,
+ 0xc030c000,
+ 0xb4c20d0a,
+ 0xc00ec000,
+ 0xc03008fe,
+ 0xb4210c8e,
+ 0xf210c000,
+ 0x2a04aa79,
+ 0xc0007500,
+ 0xc4389182,
+ 0xb4c10c8a,
+ 0xb104c000,
+ 0xc03e4220,
+ 0xb4810ca6,
+ 0xb780c000,
+ 0x7500430c,
+ 0x93a2c001,
+ 0x2a00c020,
+ 0xc0017500,
+ 0xc46090e2,
+ 0xb4c10ca2,
+ 0xb104c000,
+ 0x088a4220,
+ 0x0ca2c060,
+ 0xc000b421,
+ 0x0902c004,
+ 0x0c96c030,
+ 0xc000b441,
+ 0x430cb780,
+ 0x2a7dcfde,
+ 0x430cb580,
+ 0x08f8c002,
+ 0x0cecc00e,
+ 0xc000b421,
+ 0x0a02c201,
+ 0xc000b481,
+ 0x8502c004,
+ 0x4d9cb540,
+ 0x430cb720,
+ 0x0c96c030,
+ 0xc000b421,
+ 0x430cb780,
+ 0x75002a04,
+ 0x90e2c000,
+ 0x488cb780,
+ 0xb5800a04,
+ 0xb75f488c,
+ 0xb7807dfc,
+ 0x9d4f430c,
+ 0xb580058b,
+ 0xc034508c,
+ 0xb7809a19,
+ 0xc020438c,
+ 0x75002a00,
+ 0x287cc00e,
+ 0x7d6cb51f,
+ 0x9042c002,
+ 0xa9c6f250,
+ 0x0d02c021,
+ 0xc0100d7c,
+ 0xffb40982,
+ 0xf2509aa1,
+ 0xc021a9ce,
+ 0x0d3c0d02,
+ 0x0982c008,
+ 0x9a98ffb4,
+ 0x438cb780,
+ 0x2a00c401,
+ 0xc0007500,
+ 0xf2089262,
+ 0xf208aa6d,
+ 0x0906a8f1,
+ 0x7e6cb55f,
+ 0x0a00c010,
+ 0xa26df208,
+ 0x0880c008,
+ 0xa0f1f208,
+ 0x91c0c000,
+ 0xa927f248,
+ 0xaa29f248,
+ 0xa92cf24a,
+ 0xa8b1f248,
+ 0x8021f310,
+ 0x82a3e210,
+ 0xa225f248,
+ 0xa0adf248,
+ 0x438cb780,
+ 0x2a7dcfde,
+ 0x438cb580,
+ 0x438cb780,
+ 0x2a00c021,
+ 0xc0017500,
+ 0xb7609122,
+ 0xc0214414,
+ 0x0d140d02,
+ 0x09c2c002,
+ 0x9a5affb4,
+ 0x4494b760,
+ 0x0d02c021,
+ 0x09c20d04,
+ 0x9a52ffb4,
+ 0x441cb740,
+ 0xaa59f210,
+ 0x4484b740,
+ 0xa8c1f250,
+ 0x4394b720,
+ 0x8021f310,
+ 0x82a3e210,
+ 0x2cfecfdf,
+ 0x4394b520,
+ 0x440cb580,
+ 0x448cb520,
+ 0x4394b720,
+ 0xc4019e4c,
+ 0x75002a00,
+ 0x91a2c000,
+ 0xaa45f250,
+ 0xa8cdf250,
+ 0x1a40c002,
+ 0x440cb580,
+ 0xb52018c0,
+ 0x9e4c448c,
+ 0x2c80c400,
+ 0xcbff7640,
+ 0xb5802a7e,
+ 0xc000438c,
+ 0xffd49142,
+ 0xb7809875,
+ 0xcbfe438c,
+ 0xb5802a7d,
+ 0xb75f438c,
+ 0x76807f74,
+ 0x9362c000,
+ 0x5e0cb760,
+ 0x2d410d3c,
+ 0xa9e6f048,
+ 0x5d0d9e53,
+ 0xc0211d04,
+ 0xffb43d00,
+ 0xb7809a05,
+ 0xb75f5e0c,
+ 0xf2487f64,
+ 0xb760a907,
+ 0xf0105e1c,
+ 0xf0588025,
+ 0xb780a265,
+ 0xc100438c,
+ 0x75002a00,
+ 0x9142c000,
+ 0x9ad8ffb4,
+ 0x438cb780,
+ 0x2a7dcefe,
+ 0x438cb580,
+ 0x430cb780,
+ 0x2a00c004,
+ 0xc0027500,
+ 0xd15292a2,
+ 0xb7200ad8,
+ 0xda10418a,
+ 0xba09aa21,
+ 0xba244002,
+ 0x0a0c4002,
+ 0xc0027048,
+ 0xb73f90f8,
+ 0xb7607eec,
+ 0xc0044e94,
+ 0x0d1e0982,
+ 0x0a12d011,
+ 0x2a7cc00e,
+ 0x7eecb59f,
+ 0x99c6ffb4,
+ 0x4f14b760,
+ 0x0982c002,
+ 0xffb40d0e,
+ 0xb74099bf,
+ 0xf2084e9c,
+ 0xb740aa39,
+ 0xf2104f04,
+ 0xb75fa8a1,
+ 0xf2487eec,
+ 0xc301a8a2,
+ 0xb5408120,
+ 0x70824e9c,
+ 0x8322c001,
+ 0x4f04b540,
+ 0x9286c000,
+ 0x62199e4b,
+ 0xf3106097,
+ 0xe2108821,
+ 0x09028aa3,
+ 0x7eecb55f,
+ 0x0a00c010,
+ 0x4e8cb580,
+ 0x0880c008,
+ 0x4f0cb520,
+ 0x438cb780,
+ 0x3a00c041,
+ 0x438cb580,
+ 0x438cb780,
+ 0x2a00c005,
+ 0xc0047500,
+ 0xf2109142,
+ 0xf210a9c2,
+ 0x09c2a945,
+ 0x0c820d42,
+ 0xffb40882,
+ 0xf210999a,
+ 0xc020aa79,
+ 0x75002a00,
+ 0x9302c000,
+ 0xa9aaf208,
+ 0xa931f208,
+ 0x0d2209a2,
+ 0x08820c82,
+ 0x99a7ffb4,
+ 0xa9aef208,
+ 0xa931f208,
+ 0x0d2209a2,
+ 0x08820c82,
+ 0x99bbffb4,
+ 0x9180c000,
+ 0xa9aaf208,
+ 0xa931f208,
+ 0x0d2209c2,
+ 0x08820c82,
+ 0x9973ffb4,
+ 0x438cb720,
+ 0xc1010203,
+ 0x75002a00,
+ 0x9122c001,
+ 0xa8eada48,
+ 0xa963f208,
+ 0x28feceff,
+ 0x438cb520,
+ 0xa8edda48,
+ 0xa968f20a,
+ 0xe2205c90,
+ 0xf20880ab,
+ 0x0203a967,
+ 0xc200588c,
+ 0xf3105a0c,
+ 0xe2108221,
+ 0xf20880a3,
+ 0xf208a0e2,
+ 0xf208a269,
+ 0xf210a0e5,
+ 0xf210a0c2,
+ 0xf210a0c9,
+ 0xc001a24d,
+ 0xf2109040,
+ 0xf210aa79,
+ 0xc020a8c1,
+ 0x75002a00,
+ 0xf21008c0,
+ 0xc000a0c1,
+ 0xf2089182,
+ 0xf208aa29,
+ 0x0a20a8ad,
+ 0xa229f208,
+ 0xc00008a0,
+ 0xf2089140,
+ 0xf208aa29,
+ 0x0a40a8ad,
+ 0xa229f208,
+ 0xf20808c0,
+ 0xb780a0ad,
+ 0xcffb438c,
+ 0xc0092a7e,
+ 0xb5803a00,
+ 0xb780438c,
+ 0x75004d8c,
+ 0x9142c000,
+ 0x0c82c040,
+ 0xc000b481,
+ 0x0a02c201,
+ 0xc000b481,
+ 0x438cb780,
+ 0x2a00c008,
+ 0xc0007500,
+ 0xc1119362,
+ 0xc04e0902,
+ 0x0df20940,
+ 0x0d020982,
+ 0x9b95ffb4,
+ 0x0902c111,
+ 0x0940c026,
+ 0x09820df6,
+ 0x0d42c004,
+ 0x9b8bffb4,
+ 0x438cb780,
+ 0x2a7dcff6,
+ 0x438cb580,
+ 0x438cb780,
+ 0x2a00c080,
+ 0xc0007500,
+ 0xb76091c2,
+ 0xba1b4192,
+ 0xc0144003,
+ 0xb7809a7f,
+ 0xcf7e438c,
+ 0xb5802a7d,
+ 0xb780438c,
+ 0xc010438c,
+ 0x75002a00,
+ 0x93e2c001,
+ 0x0902c121,
+ 0x0940c00e,
+ 0x09820d9e,
+ 0xffb40d02,
+ 0xc1219b44,
+ 0xc0860902,
+ 0x0da20940,
+ 0x0d020982,
+ 0x9b3bffb4,
+ 0x7e74b75f,
+ 0xc0017680,
+ 0xf2109002,
+ 0x2a40aa79,
+ 0xc0007500,
+ 0xc1219342,
+ 0xc0020902,
+ 0x0da60900,
+ 0x0d060982,
+ 0x9b27ffb4,
+ 0x0902c121,
+ 0x0900c080,
+ 0x09820da6,
+ 0xffb40d16,
+ 0xb7809b1e,
+ 0xc021438c,
+ 0xb5803a00,
+ 0xb780438c,
+ 0xcfee438c,
+ 0xc0202a7d,
+ 0xb5803a00,
+ 0xb780438c,
+ 0xc800438c,
+ 0x75002a00,
+ 0x92c2c000,
+ 0x7d6cb79f,
+ 0x4192b760,
+ 0xa97af210,
+ 0xba1b0189,
+ 0x5d114003,
+ 0x2d044d04,
+ 0x9bd5ffb4,
+ 0x438cb780,
+ 0x2a7ec7fe,
+ 0x438cb580,
+ 0x438cb780,
+ 0x2a00c200,
+ 0xc0007500,
+ 0x0d8690c2,
+ 0xffb40982,
+ 0xb7809a36,
+ 0xc041438c,
+ 0x75002a00,
+ 0x9342c000,
+ 0x0902c101,
+ 0x0940c002,
+ 0x09820da6,
+ 0xffb40d02,
+ 0xc1019ada,
+ 0xc0800902,
+ 0x0da60940,
+ 0x0d120982,
+ 0x9ad1ffb4,
+ 0x438cb780,
+ 0x2a7ecfbf,
+ 0x438cb580,
+ 0x438cb720,
+ 0xc0090203,
+ 0x75002a00,
+ 0x9142c001,
+ 0x0902c101,
+ 0x0940c00e,
+ 0x28fecff7,
+ 0x438cb520,
+ 0x09820d9e,
+ 0xffb40d02,
+ 0xf2109ab6,
+ 0xc020aa79,
+ 0x75002a00,
+ 0x91a2c000,
+ 0x0902c101,
+ 0x0940c006,
+ 0x09820da2,
+ 0xffb40d02,
+ 0xc0009aa6,
+ 0xc1019160,
+ 0xc0860902,
+ 0x0da20940,
+ 0x0d020982,
+ 0x9a9bffb4,
+ 0x0902c1c1,
+ 0x0940c006,
+ 0x09820dce,
+ 0xffb40d02,
+ 0xc014980a,
+ 0xc03099c2,
+ 0xb4c10c8a,
+ 0xb780c000,
+ 0x0c884d8c,
+ 0xc000b481,
+ 0x0882cc01,
+ 0xb4211c88,
+ 0xc034c000,
+ 0xb7209bd9,
+ 0xd0314d8c,
+ 0x75002a10,
+ 0xb55f0902,
+ 0xc0007f6c,
+ 0xc43a91c2,
+ 0xb4c10c82,
+ 0xb104c000,
+ 0xc0114220,
+ 0xc03a3a00,
+ 0xb4810c82,
+ 0xd211c000,
+ 0x75002a10,
+ 0x9342c000,
+ 0x0c8ac450,
+ 0xc000b4c1,
+ 0x4240b102,
+ 0xc00e9e53,
+ 0xb57f29fc,
+ 0x00877f6c,
+ 0xb4c11c84,
+ 0xb104c000,
+ 0x2a104220,
+ 0xc0007500,
+ 0x589090a4,
+ 0x7f6cb53f,
+ 0x430cb780,
+ 0x0c8ac030,
+ 0x4d8cb580,
+ 0xc000b4c1,
+ 0x0a02c801,
+ 0x0a00c002,
+ 0xc000b481,
+ 0xc00408be,
+ 0xb4210c94,
+ 0xc0c0c000,
+ 0xffb40d82,
+ 0xb7609a20,
+ 0xb7804112,
+ 0x9ea4428c,
+ 0xb7209c62,
+ 0xc034468c,
+ 0x58910cae,
+ 0xc000b421,
+ 0x75000a02,
+ 0x9244c000,
+ 0x7f6cb73f,
+ 0xc0007440,
+ 0xd03191a2,
+ 0x2941091e,
+ 0x09820dea,
+ 0x19400d02,
+ 0x3900c121,
+ 0x9a15ffb4,
+ 0x9928c014,
+ 0x6808b785,
+ 0xb7807500,
+ 0xc000478c,
+ 0x2a7990a2,
+ 0x6808b5c5,
+ 0x0c82c03e,
+ 0xc000b481,
+ 0x508cb780,
+ 0xb7208702,
+ 0x0e82418a,
+ 0x7de4b55f,
+ 0x75002a08,
+ 0xb5200884,
+ 0xc000418a,
+ 0xb7209362,
+ 0xb7205c0c,
+ 0xd1114292,
+ 0xda080a18,
+ 0x0c84a881,
+ 0xba249e4c,
+ 0x58914002,
+ 0xb5207102,
+ 0xc0004292,
+ 0xb7809138,
+ 0xb5a0420a,
+ 0x0a044292,
+ 0x420ab580,
+ 0x7d74b73f,
+ 0xffe17640,
+ 0xb7809102,
+ 0xd3ff438c,
+ 0xffe17d3e,
+ 0xb75f9044,
+ 0x74807f6c,
+ 0x93a4ffe0,
+ 0x7ceeb79f,
+ 0x7d6eb7bf,
+ 0x7deeb7df,
+ 0x7e6eb7ff,
+ 0x8c60c002,
+ 0xa6059c22,
+ 0x8420c004,
+ 0x0ca2c829,
+ 0x0ca0c4ce,
+ 0xac3dc030,
+ 0x8d00e133,
+ 0xa45dc038,
+ 0xac3dc030,
+ 0xa45dc038,
+ 0xac3dc010,
+ 0xa45dc018,
+ 0xac25c010,
+ 0xa445c018,
+ 0x4504b740,
+ 0xaa41f000,
+ 0x5c0cb7a0,
+ 0xc2009e2d,
+ 0xd0935a08,
+ 0x9ea90940,
+ 0xa96de020,
+ 0xc0080dc2,
+ 0x09c20d42,
+ 0x9b77ff94,
+ 0x5e0cb780,
+ 0xa8a1f208,
+ 0xf2088502,
+ 0xf208a8a6,
+ 0xf208a103,
+ 0xf208a085,
+ 0xf208a929,
+ 0xf208a08a,
+ 0xf208a92e,
+ 0xf208a8b2,
+ 0xf248a10d,
+ 0xf208a8b1,
+ 0xf208a112,
+ 0xf208a096,
+ 0x090aa09a,
+ 0x0c92c036,
+ 0xf24808c0,
+ 0xb441a085,
+ 0x0a16c000,
+ 0xb4811c8c,
+ 0xf031c000,
+ 0xe1318c00,
+ 0x9ea38d80,
+ 0x7ffcb55f,
+ 0xb9600d02,
+ 0xf2084078,
+ 0x9dbaa103,
+ 0x5d0dd122,
+ 0xf0299e2d,
+ 0xd012a8e5,
+ 0x5c882cae,
+ 0x5908d126,
+ 0xe0389e4a,
+ 0x0d04aa4d,
+ 0x50a828bc,
+ 0xa2413242,
+ 0x91c1ffff,
+ 0xaa61f010,
+ 0x0c8ec036,
+ 0xc000b481,
+ 0x7fecb73f,
+ 0xb4211c84,
+ 0xc034c000,
+ 0xc8019afb,
+ 0xc11208c2,
+ 0xc8090890,
+ 0xc5f20a42,
+ 0xc0320a10,
+ 0xb5800cbe,
+ 0xb421428c,
+ 0x0a3ec000,
+ 0xb4810ce0,
+ 0x0882c000,
+ 0x0cc6c080,
+ 0xc000b421,
+ 0x0a42c801,
+ 0x0a18c112,
+ 0x0cc2c032,
+ 0xc000b481,
+ 0x0cdc08c0,
+ 0xc000b421,
+ 0xc0800a02,
+ 0xb4810cc6,
+ 0xc801c000,
+ 0xc11408c2,
+ 0xc0320890,
+ 0xb4210cc6,
+ 0x0a44c000,
+ 0xb4810cd8,
+ 0x0882c000,
+ 0x0cc6c080,
+ 0xc000b421,
+ 0x0a42c801,
+ 0x0a18c114,
+ 0x0ccac032,
+ 0xc000b481,
+ 0x0cd408c8,
+ 0xc000b421,
+ 0xc0800a02,
+ 0xb4810cc6,
+ 0xb79fc000,
+ 0xb7bf7aee,
+ 0xc0047b6e,
+ 0x9c228c60,
+ 0xc0010882,
+ 0xc3320c92,
+ 0xb4210c84,
+ 0xb780c000,
+ 0x873e4c8c,
+ 0xc0400a10,
+ 0xb7809c8b,
+ 0x9c22c238,
+ 0x468cb780,
+ 0xc00c0a40,
+ 0xb5807520,
+ 0xb340468c,
+ 0x850248b4,
+ 0x469cb540,
+ 0xb7809c22,
+ 0xf2084c8c,
+ 0xf208a895,
+ 0xf208a88e,
+ 0xf208a905,
+ 0xf288a99d,
+ 0xf208a906,
+ 0xf208a09d,
+ 0xf208a096,
+ 0xf208a10d,
+ 0xf208a185,
+ 0xf208a899,
+ 0xf208a892,
+ 0xf248a909,
+ 0xf248a981,
+ 0xf208a081,
+ 0xf208a09a,
+ 0xf208a111,
+ 0xf288a189,
+ 0xf248a881,
+ 0xf248a995,
+ 0xf248a89e,
+ 0xf288a90d,
+ 0xf248a085,
+ 0xf248a18d,
+ 0xf288a999,
+ 0xf248a082,
+ 0xf248a115,
+ 0xf248a891,
+ 0xf288a191,
+ 0xf288a989,
+ 0xf248a89a,
+ 0xf288a099,
+ 0xf248a10a,
+ 0xf288a19d,
+ 0xf288a99d,
+ 0xf288a09e,
+ 0xf288a895,
+ 0xf288a892,
+ 0xf288a90d,
+ 0xf288a099,
+ 0xf288a096,
+ 0xf288a111,
+ 0x9c22a18d,
+ 0xc801a60d,
+ 0xcb100a42,
+ 0xc0320a00,
+ 0xb4810cea,
+ 0xc801c000,
+ 0xc01008c2,
+ 0x0c840888,
+ 0xc000b421,
+ 0x0a42c008,
+ 0x1ce4c002,
+ 0xc000b481,
+ 0x08c2c008,
+ 0x0d0ec030,
+ 0xc000b422,
+ 0x0c82c450,
+ 0x1a40c008,
+ 0xc000b481,
+ 0x4220b101,
+ 0x38c0c002,
+ 0x4e0cb520,
+ 0x0c82c050,
+ 0xc000b421,
+ 0x0d82c0c0,
+ 0xc0080992,
+ 0xc0080d02,
+ 0xffd40902,
+ 0xc45098b8,
+ 0x0a020c86,
+ 0xc000b481,
+ 0x4220b104,
+ 0x0a02c008,
+ 0x0d0ec030,
+ 0xc000b482,
+ 0xc0080c84,
+ 0xb4811a00,
+ 0xb105c000,
+ 0xc2804220,
+ 0xc8015a35,
+ 0x08c00882,
+ 0x2afcc00e,
+ 0x5a90c280,
+ 0x2b4ed072,
+ 0xc0309ead,
+ 0xb4210c8a,
+ 0x0a42c000,
+ 0xb4810c84,
+ 0x7740c000,
+ 0x5e0cb7c0,
+ 0x9002c001,
+ 0x0eded031,
+ 0x09820dea,
+ 0x2ac10d02,
+ 0x1950d051,
+ 0x3900c121,
+ 0x980bffb4,
+ 0xa9c6f248,
+ 0xc280018b,
+ 0x1a845a8d,
+ 0xc0219eaa,
+ 0xff943d00,
+ 0xf248996d,
+ 0xd010aa45,
+ 0x024a16dc,
+ 0xa245f248,
+ 0x0c86c450,
+ 0xb4810a02,
+ 0xb104c000,
+ 0x0a6e4220,
+ 0x0c9ec034,
+ 0xc000b481,
+ 0x5c0cb720,
+ 0xaa45f248,
+ 0x4635b720,
+ 0x1940d053,
+ 0x88abf210,
+ 0x0ca2c080,
+ 0x5a0cc280,
+ 0x420cb580,
+ 0xc000b4a1,
+ 0x5a08b785,
+ 0xc0037500,
+ 0xb7219262,
+ 0xb781590c,
+ 0xc030578c,
+ 0x0a047c40,
+ 0x578cb581,
+ 0x9082c000,
+ 0x98c3c034,
+ 0x538cb720,
+ 0x41b5b720,
+ 0x578cb781,
+ 0x442db740,
+ 0x62439e49,
+ 0xc0007104,
+ 0x850690b8,
+ 0x6018b545,
+ 0x5b08b785,
+ 0xb7a07500,
+ 0xc0005e94,
+ 0xb7a09262,
+ 0xf210550c,
+ 0xf208a83d,
+ 0x0d86a9a1,
+ 0x9c629e84,
+ 0xa021f208,
+ 0xa825f250,
+ 0x09869eab,
+ 0x9c629e84,
+ 0x5b08b785,
+ 0xc0007500,
+ 0xb7609164,
+ 0xf2105514,
+ 0x9e84a825,
+ 0x02819c62,
+ 0x9220c000,
+ 0x5a88b785,
+ 0xc0007500,
+ 0xb7809102,
+ 0xf208560c,
+ 0xc000aa81,
+ 0xb78090c0,
+ 0xf208568c,
+ 0xb720aa8d,
+ 0xb780590c,
+ 0x75004129,
+ 0xc0000303,
+ 0xb7859264,
+ 0x75005b08,
+ 0x90c4c000,
+ 0xaa21f250,
+ 0x9c629ea4,
+ 0x421cb740,
+ 0xaa35f210,
+ 0x89a3e320,
+ 0x9c629ea4,
+ 0xaa39f210,
+ 0x018d9eab,
+ 0x9c629ea4,
+ 0x548cb780,
+ 0x0ca6c080,
+ 0xaa91d2c8,
+ 0xc000b4a1,
+ 0x0d92c002,
+ 0x9be4ffb4,
+ 0xffff700a,
+ 0x0d869364,
+ 0x0d0a09c2,
+ 0x0902c121,
+ 0x98c7ff94,
+ 0x5c0cb780,
+ 0xa992f248,
+ 0x0d02c0a1,
+ 0x09c20d04,
+ 0x98b2ff94,
+ 0x0d82c0c0,
+ 0x0d420992,
+ 0xffb40942,
+ 0x0a429bb2,
+ 0x0c8ec030,
+ 0xc000b481,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x5c0cb700,
+ 0x0c0276c0,
+ 0xc0000d82,
+ 0xb7809342,
+ 0xd131438c,
+ 0xb7200880,
+ 0xb5004033,
+ 0xb5004f94,
+ 0xb5005014,
+ 0x2c884994,
+ 0xcdff7640,
+ 0xb5802a7e,
+ 0x8522438c,
+ 0x9062c000,
+ 0xb5408512,
+ 0x74c04b9c,
+ 0x5a94b740,
+ 0x92e2c000,
+ 0x438cb780,
+ 0xd8108502,
+ 0xb540a8c1,
+ 0xb540501c,
+ 0xb541431c,
+ 0xb5405a9c,
+ 0xb5404c1c,
+ 0xb520499c,
+ 0xcdff4f8c,
+ 0xb5802a7e,
+ 0xd131438c,
+ 0xb7200880,
+ 0xb7804033,
+ 0xd012430c,
+ 0x00892c14,
+ 0x2a00c008,
+ 0xcffa7500,
+ 0xb52028fd,
+ 0xc000430c,
+ 0xb78092c2,
+ 0x7600438c,
+ 0x3a00c800,
+ 0x438cb580,
+ 0x90e4c000,
+ 0xb5458506,
+ 0xc0006c18,
+ 0xb7859100,
+ 0x0d866c08,
+ 0xb5853a08,
+ 0xb7456c08,
+ 0xd0116c08,
+ 0x75002a22,
+ 0x9102c000,
+ 0x438cb780,
+ 0x3a00c010,
+ 0x438cb580,
+ 0x4c0cb780,
+ 0xc0007500,
+ 0xb78090e2,
+ 0x2a79430c,
+ 0x430cb580,
+ 0x4314b720,
+ 0x4b8cb720,
+ 0x79029e4c,
+ 0x2a2ed3f1,
+ 0x5a05c200,
+ 0x6c08b585,
+ 0x9102c000,
+ 0x3e10d211,
+ 0x430cb580,
+ 0x90c0c000,
+ 0x2cfdcff6,
+ 0x4314b520,
+ 0x4314b720,
+ 0x2e10d111,
+ 0xc0007500,
+ 0x850690a2,
+ 0x4a1cb540,
+ 0xd0a27600,
+ 0x08825e1d,
+ 0x0892d002,
+ 0x79022a04,
+ 0x9102c000,
+ 0x3e10d111,
+ 0x430cb580,
+ 0x9120c000,
+ 0xc00076c0,
+ 0xc02090c2,
+ 0xb5203c80,
+ 0xb7204314,
+ 0xd011430c,
+ 0x75002a12,
+ 0x90e2c000,
+ 0x4b8cb780,
+ 0xc0003218,
+ 0xb78090c0,
+ 0x4a7d4b8c,
+ 0xb5802218,
+ 0xb720430c,
+ 0xd011430c,
+ 0x75002a14,
+ 0x9102c000,
+ 0x3a12d011,
+ 0x430cb580,
+ 0x90a0c000,
+ 0xb52028f9,
+ 0xd810430c,
+ 0xb740a8c1,
+ 0xd8104f9c,
+ 0xe210aa45,
+ 0xc20088a3,
+ 0x70485a11,
+ 0x9036c003,
+ 0x0a08d111,
+ 0xa882da08,
+ 0x430cb720,
+ 0x498cb740,
+ 0x9e4c5c91,
+ 0x4394b740,
+ 0xb5203888,
+ 0x7088430c,
+ 0x3d00c100,
+ 0x4394b540,
+ 0x9278c000,
+ 0x5a8cb721,
+ 0x74409e54,
+ 0x3a04c001,
+ 0x438cb580,
+ 0x9124c000,
+ 0x3d04c011,
+ 0x4394b540,
+ 0xb5418506,
+ 0xd1125a9c,
+ 0xb780088c,
+ 0xb720404b,
+ 0xc2004f8c,
+ 0x70485a11,
+ 0x9116c000,
+ 0x438cb780,
+ 0x3a10c001,
+ 0x438cb580,
+ 0x404bb780,
+ 0x5a11c200,
+ 0x70481a08,
+ 0x9116c000,
+ 0x438cb780,
+ 0x3a40c001,
+ 0x438cb580,
+ 0x5014b720,
+ 0x0a08d111,
+ 0xa881da08,
+ 0x58919e4c,
+ 0xc0007102,
+ 0xb7809102,
+ 0xc005438c,
+ 0xb5803a00,
+ 0xb780438c,
+ 0xc084438c,
+ 0xb5803a00,
+ 0xc000438c,
+ 0xb78091a0,
+ 0xb720430c,
+ 0x2a75438c,
+ 0x430cb580,
+ 0x28fdcffa,
+ 0x438cb520,
+ 0x430cb740,
+ 0x2922f012,
+ 0x9102c000,
+ 0x438cb780,
+ 0x3a00c080,
+ 0x438cb580,
+ 0x498cb780,
+ 0x4b94b720,
+ 0x500cb720,
+ 0xb5800a04,
+ 0x9e4c498c,
+ 0x08847888,
+ 0x500cb520,
+ 0x9222c000,
+ 0xc0007680,
+ 0xb72091c4,
+ 0xd011470c,
+ 0xb5803a22,
+ 0x8506430c,
+ 0x4c1cb540,
+ 0xb52028f9,
+ 0xd111470c,
+ 0xda080a08,
+ 0xb720a881,
+ 0xc0025014,
+ 0xc08018c0,
+ 0xc2005a7f,
+ 0x00985a71,
+ 0xb7409e4c,
+ 0x5893470c,
+ 0xb5407102,
+ 0xc001478c,
+ 0xb7409044,
+ 0x0205438c,
+ 0x2a00c080,
+ 0xc0007500,
+ 0xb7209342,
+ 0x02054f94,
+ 0xc2017642,
+ 0xb5803a00,
+ 0xc000438c,
+ 0xd111921c,
+ 0xda080a0c,
+ 0x0c8ca881,
+ 0x58919e4c,
+ 0xc0007102,
+ 0xca0190d6,
+ 0xb5403900,
+ 0xb720438c,
+ 0xd1115014,
+ 0xda080a08,
+ 0x9e4ca881,
+ 0x71025891,
+ 0x9278c000,
+ 0x438cb720,
+ 0xc0050203,
+ 0x75002a00,
+ 0x9162c000,
+ 0x3880c101,
+ 0x438cb520,
+ 0xb5408506,
+ 0xb5404a9c,
+ 0x76004b1c,
+ 0x9122c000,
+ 0x500cb780,
+ 0xc000750c,
+ 0xc0009122,
+ 0xb78092a0,
+ 0x750a500c,
+ 0x9204c000,
+ 0x4a8cb780,
+ 0xc0007500,
+ 0xb7809162,
+ 0x8502438c,
+ 0x4a9cb540,
+ 0x3a00c401,
+ 0x438cb580,
+ 0x500cb780,
+ 0xc0007506,
+ 0xb7809204,
+ 0x75004b0c,
+ 0x9162c000,
+ 0x438cb780,
+ 0xb5408502,
+ 0xc8004b1c,
+ 0xb5803a00,
+ 0xb720438c,
+ 0xd1115014,
+ 0xda080a08,
+ 0x9e4ca881,
+ 0x71025891,
+ 0x9158c000,
+ 0x4f8cb780,
+ 0xb5408502,
+ 0x0a04501c,
+ 0x4f8cb580,
+ 0x430cb780,
+ 0x85027500,
+ 0x9144c000,
+ 0x438cb780,
+ 0x2a00c400,
+ 0x85027500,
+ 0x8522e001,
+ 0x9c229d43,
+ 0x5a88b785,
+ 0xb7607500,
+ 0xc0015a0c,
+ 0xb72093a4,
+ 0xb7805a8c,
+ 0x2a20432d,
+ 0xb7407500,
+ 0xb7404208,
+ 0xc0005f1c,
+ 0xb7409082,
+ 0x9d53601c,
+ 0xa8c5c040,
+ 0x5a14b720,
+ 0x1a24d031,
+ 0x6a72c002,
+ 0x691dd012,
+ 0x0c90d231,
+ 0x75009e4b,
+ 0x4035b540,
+ 0x0c90d251,
+ 0x402db580,
+ 0x4100d03c,
+ 0x4e38b411,
+ 0x402db780,
+ 0x7538c0b8,
+ 0x90dcc000,
+ 0x8572c05c,
+ 0x403db540,
+ 0x6a2dd011,
+ 0x08b0d272,
+ 0x08b8d231,
+ 0x4035b540,
+ 0x404db580,
+ 0x0a30d231,
+ 0xaa01f208,
+ 0xc0007500,
+ 0xc03e90c2,
+ 0xb4810cb6,
+ 0xd251c000,
+ 0xf2080a30,
+ 0xc03ea881,
+ 0xb4210caa,
+ 0xd231c000,
+ 0xf2080a38,
+ 0x7500aa01,
+ 0x9122c000,
+ 0x5a40c200,
+ 0x3a00c801,
+ 0xb4810c90,
+ 0xd251c000,
+ 0xf2080a38,
+ 0x7500aa01,
+ 0x90c2c000,
+ 0x0ca2c03e,
+ 0xc000b481,
+ 0x0a30d271,
+ 0xa881f208,
+ 0x0c8ac03e,
+ 0xc000b421,
+ 0xa6859c22,
+ 0x0c92c43e,
+ 0xb4810a02,
+ 0xb103c000,
+ 0xb7804220,
+ 0xda08588c,
+ 0xda08a885,
+ 0xda08a909,
+ 0xda08a189,
+ 0xda08a081,
+ 0x0cd0a105,
+ 0xb4810a02,
+ 0xb103c000,
+ 0xb7804220,
+ 0xb7c0580c,
+ 0xda08588c,
+ 0x9ea5a885,
+ 0xa88ada08,
+ 0xa189da08,
+ 0x2d80c008,
+ 0xda0876c0,
+ 0xda08a081,
+ 0xc00ba086,
+ 0xb7809102,
+ 0x0a044708,
+ 0x4708b580,
+ 0x0ca6c450,
+ 0xb4810a02,
+ 0xb103c000,
+ 0x00874220,
+ 0x2880c031,
+ 0xc00f0207,
+ 0xd0a42a7c,
+ 0xd2285861,
+ 0x028759c1,
+ 0x2afccffe,
+ 0x0a020c88,
+ 0xc000b481,
+ 0x4220b103,
+ 0x59c1d1a6,
+ 0xcffe0107,
+ 0x0cbc297c,
+ 0xc000b481,
+ 0x4220b103,
+ 0xb7820087,
+ 0xc0fc708a,
+ 0xd0a42880,
+ 0xb7255b19,
+ 0xd0f15a90,
+ 0x1208283e,
+ 0x76409ea2,
+ 0x708ab502,
+ 0x4003ba12,
+ 0x90e4c000,
+ 0x5b08b785,
+ 0xc0027500,
+ 0xb78593a4,
+ 0x75005b08,
+ 0x81b3e331,
+ 0x0127d011,
+ 0x5a8cb780,
+ 0x0c827602,
+ 0x0c92d001,
+ 0xa899f208,
+ 0x28849e4c,
+ 0xb7607848,
+ 0xc0005514,
+ 0xd81090e2,
+ 0x0a04aa69,
+ 0xa269d810,
+ 0xa96bf010,
+ 0xa96cf012,
+ 0x8026f010,
+ 0x82a5e210,
+ 0xa269f010,
+ 0xa0edf010,
+ 0x5008b782,
+ 0x08827500,
+ 0x0892d002,
+ 0x0a027602,
+ 0x0a42d002,
+ 0xc0007848,
+ 0xc07c90c2,
+ 0xda088542,
+ 0x7602a143,
+ 0xa973f010,
+ 0x90c4c000,
+ 0xaa21da10,
+ 0x9080c000,
+ 0xaa41da08,
+ 0x80a1e310,
+ 0xaa6dd810,
+ 0xa0f1f010,
+ 0x0a047606,
+ 0xa26dd810,
+ 0x9124c000,
+ 0x4788b780,
+ 0xb5800a04,
+ 0xc0064788,
+ 0x85029200,
+ 0x4798b540,
+ 0x9160c006,
+ 0x5a8cb720,
+ 0x5514b720,
+ 0x0127d330,
+ 0x432db780,
+ 0x8122c301,
+ 0x4545b740,
+ 0x75002a04,
+ 0x8027f010,
+ 0x8221f310,
+ 0xb5800583,
+ 0xc001454d,
+ 0x760290a2,
+ 0x90c4c000,
+ 0xaa21da10,
+ 0x9080c000,
+ 0xaa41da08,
+ 0xa27dd810,
+ 0xc0017606,
+ 0x76009082,
+ 0x91a4c000,
+ 0xd8107680,
+ 0xe002a973,
+ 0xf2108d2a,
+ 0xd8108025,
+ 0xc000a271,
+ 0x768092c0,
+ 0xa967d850,
+ 0x8d26e002,
+ 0x9160c000,
+ 0xaa21da10,
+ 0xd8507680,
+ 0xd810a967,
+ 0xe002a27d,
+ 0xf2108d2a,
+ 0xd8508025,
+ 0xb785a265,
+ 0x75005c08,
+ 0x92e2c000,
+ 0x410ab780,
+ 0xc0007008,
+ 0x85029244,
+ 0x5c18b545,
+ 0x0c82c43a,
+ 0xb4810a02,
+ 0xb103c000,
+ 0xcfef4220,
+ 0xc03a29fe,
+ 0xb4610c82,
+ 0xb780c000,
+ 0x7008410a,
+ 0xd0020882,
+ 0x76060892,
+ 0xd0010a02,
+ 0x78480a42,
+ 0x9242c000,
+ 0xb5458506,
+ 0xc43a5c18,
+ 0x0a020c82,
+ 0xc000b481,
+ 0x4220b103,
+ 0x3980c011,
+ 0x0c82c03a,
+ 0xc000b461,
+ 0xc0017780,
+ 0x76009162,
+ 0x92c4c000,
+ 0xaa41da08,
+ 0xa967f010,
+ 0xa8f5d810,
+ 0xa8fad810,
+ 0x8021f310,
+ 0xd8100082,
+ 0x0c84a0f5,
+ 0xa0fad810,
+ 0xa265f010,
+ 0x9280c000,
+ 0xaa21da10,
+ 0xa97bf010,
+ 0xa8e9d850,
+ 0xa8eed850,
+ 0x8021f310,
+ 0xd8500082,
+ 0x0c84a0e9,
+ 0xa0eed850,
+ 0xa279f010,
+ 0xaa7dd810,
+ 0xa97ff010,
+ 0xa960f052,
+ 0xa9e7f050,
+ 0x8021f310,
+ 0xa96ff050,
+ 0xa27df010,
+ 0x8223f310,
+ 0xa8e2d850,
+ 0xa261f050,
+ 0x8037f010,
+ 0x80a1e210,
+ 0xd8500c84,
+ 0xf050a0e2,
+ 0xf050a265,
+ 0xb7bfa0ed,
+ 0xb7df7f6e,
+ 0x8c407fee,
+ 0xa6059c22,
+ 0x590cb781,
+ 0x2a00c008,
+ 0xc0007500,
+ 0xb7809282,
+ 0xb720550c,
+ 0xf2085e8c,
+ 0xb700a982,
+ 0x9e84452d,
+ 0xb7819c62,
+ 0xb500590c,
+ 0xcff6400a,
+ 0xb5812a7d,
+ 0xb781590c,
+ 0xc010590c,
+ 0x75002a00,
+ 0x91c2c001,
+ 0x5e8cb7a0,
+ 0x5514b7a0,
+ 0xa825f208,
+ 0x9e84058b,
+ 0xf2489c62,
+ 0x9ea4aa21,
+ 0xb7209c62,
+ 0xb725538c,
+ 0xb7806610,
+ 0x9e49422b,
+ 0xc0007048,
+ 0xf2109222,
+ 0xf208a9a1,
+ 0x0d86a83d,
+ 0x9c629e84,
+ 0xaa25f248,
+ 0xa021f210,
+ 0x0986058b,
+ 0x9c629ea4,
+ 0x590cb781,
+ 0x2a7dcfee,
+ 0x590cb581,
+ 0x590cb721,
+ 0xc0200203,
+ 0x75002a00,
+ 0x90c2c000,
+ 0x28fdcfde,
+ 0x590cb521,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xa205f839,
+ 0x590cb781,
+ 0x7d00c030,
+ 0x9162c000,
+ 0x4d8cb780,
+ 0x2a00c008,
+ 0xc0007500,
+ 0xfff49082,
+ 0xb7609b92,
+ 0xff944d94,
+ 0x0a029b01,
+ 0x0ca2c060,
+ 0xc000b481,
+ 0x4d94b760,
+ 0x99ebfff4,
+ 0x4788b780,
+ 0x7534c01c,
+ 0x9104c000,
+ 0xb5458506,
+ 0x85026818,
+ 0x4798b540,
+ 0x5a08b785,
+ 0xc0017500,
+ 0xb7809282,
+ 0xb720538c,
+ 0xda084710,
+ 0x9e4ca88d,
+ 0xc0017102,
+ 0xb7219044,
+ 0x0203590c,
+ 0x2a00c010,
+ 0xc0007500,
+ 0xc0209102,
+ 0xb5213880,
+ 0xfff4590c,
+ 0xb7819b5c,
+ 0xb725590c,
+ 0xb7206608,
+ 0x85024012,
+ 0x4718b540,
+ 0xb5250884,
+ 0xb5206608,
+ 0xc0184112,
+ 0xb5813a00,
+ 0xb780590c,
+ 0xc0104d8c,
+ 0xc0007500,
+ 0xfff49084,
+ 0xf9f89931,
+ 0x9c22aa1d,
+ 0xb780a61d,
+ 0xd1315c0c,
+ 0xb72008c0,
+ 0xd092402b,
+ 0x76402890,
+ 0xc0040389,
+ 0x850292c2,
+ 0x6018b545,
+ 0xd0118502,
+ 0x75002a14,
+ 0x579cb541,
+ 0xb5458506,
+ 0xc0005a18,
+ 0xb5459082,
+ 0xd1115a98,
+ 0x75002a10,
+ 0x9082c000,
+ 0x5b18b545,
+ 0xc0400203,
+ 0x75002a00,
+ 0x9082c000,
+ 0x5b98b545,
+ 0x5b08b785,
+ 0xb7c07500,
+ 0xc0025e94,
+ 0xb78591e2,
+ 0x75005a88,
+ 0x9144c002,
+ 0x0a42c809,
+ 0x0a70c7b6,
+ 0x08c2c809,
+ 0x08a0c7ba,
+ 0x0cc2c809,
+ 0x0ce0c85e,
+ 0x0942c809,
+ 0x0900c88a,
+ 0x0d42c809,
+ 0x0d20c7a6,
+ 0x09c2c809,
+ 0x09a0c74a,
+ 0x0dc2c809,
+ 0x0dd0c75a,
+ 0x0c42c809,
+ 0x0c30c6b0,
+ 0x0842c809,
+ 0x0800c67e,
+ 0x0ac2c809,
+ 0x0af0c696,
+ 0x0ec2c809,
+ 0x0ec0c684,
+ 0x0b42c809,
+ 0x0b60c8ae,
+ 0xa249f210,
+ 0xa0d1f210,
+ 0xa0d6f210,
+ 0xa159f210,
+ 0xa14ef210,
+ 0xa1ddf210,
+ 0xa1c2f250,
+ 0xa046f250,
+ 0xa049f250,
+ 0xa2c5f210,
+ 0xa2c2f210,
+ 0xa34df250,
+ 0x5d0cb7a0,
+ 0xaa4df210,
+ 0x9ea49eab,
+ 0xdbc89c62,
+ 0xb740aa39,
+ 0x8502548c,
+ 0x409ab540,
+ 0xa8a1d208,
+ 0xa8bef248,
+ 0x2a00c010,
+ 0xd8087500,
+ 0xb520a0cd,
+ 0xc0004614,
+ 0xb7819102,
+ 0xc040590c,
+ 0xb5813a00,
+ 0xb785590c,
+ 0x75005a08,
+ 0x9042c005,
+ 0x590cb781,
+ 0x7d00c030,
+ 0x9082c000,
+ 0x9a91fff4,
+ 0x5394b720,
+ 0xaa65f2c8,
+ 0x434db720,
+ 0xb7c07048,
+ 0x06835e94,
+ 0x9102c000,
+ 0xaa4df250,
+ 0x09f8d132,
+ 0x9c629ea4,
+ 0x408ab720,
+ 0xb5428502,
+ 0x74405098,
+ 0x5118b542,
+ 0x5198b542,
+ 0x90e2c000,
+ 0xaa35da10,
+ 0xc0007048,
+ 0xb7859344,
+ 0xda105a88,
+ 0xf210a9b6,
+ 0x8502a8c9,
+ 0xb5407500,
+ 0x850a409a,
+ 0x8d24e001,
+ 0x1d849d4f,
+ 0x9c629e8c,
+ 0xaa51f210,
+ 0x9ea40d8a,
+ 0xc0009c62,
+ 0xf21090e0,
+ 0x0d86aa51,
+ 0x9c629ea4,
+ 0x590cb781,
+ 0x408ab720,
+ 0x550cb7a0,
+ 0xb5458502,
+ 0xc0086618,
+ 0xb5813a00,
+ 0xf210590c,
+ 0x9eabaa41,
+ 0xb5200884,
+ 0x9ea4408a,
+ 0xb7209c62,
+ 0xb780590c,
+ 0x75004129,
+ 0xc0000303,
+ 0xf20892e4,
+ 0xf210a9a1,
+ 0x0d82a85d,
+ 0x9c629e84,
+ 0xa021f208,
+ 0xa845f250,
+ 0x09829eab,
+ 0x9c629e84,
+ 0xaa21da08,
+ 0x708ab582,
+ 0x9180c000,
+ 0x560cb720,
+ 0xaa29d210,
+ 0x44bbb740,
+ 0x8021f310,
+ 0x44abb580,
+ 0xa8c9d208,
+ 0xc0007440,
+ 0xb7809122,
+ 0x8506450c,
+ 0xa117f208,
+ 0x90c0c000,
+ 0x450cb780,
+ 0xa095f208,
+ 0x548cb720,
+ 0x41abb780,
+ 0x708ab582,
+ 0x400ab580,
+ 0x410ab580,
+ 0x9100c000,
+ 0x450cb780,
+ 0xa899da08,
+ 0x410ab520,
+ 0x7e6eb79f,
+ 0x7eeeb7bf,
+ 0x7f6eb7df,
+ 0x7feeb7ff,
+ 0x8c00c002,
+ 0x9c229c22,
+ 0x4003ba1b,
+ 0x9e5c9e59,
+ 0x4002ba03,
+ 0x4003ba12,
+ 0x9e537040,
+ 0x9136c000,
+ 0xc0007006,
+ 0xc8129158,
+ 0xc00072c4,
+ 0x9e519180,
+ 0xc0007002,
+ 0x9e8290bc,
+ 0x90a0c000,
+ 0x70c8cc10,
+ 0x9e509e9a,
+ 0xa61d9c22,
+ 0xd3f10787,
+ 0x9eab2efe,
+ 0xc0140982,
+ 0x9eab99ed,
+ 0x2a8ed3f2,
+ 0xc0140986,
+ 0xb72099e7,
+ 0xb7405a8c,
+ 0xd0145f9c,
+ 0xb7801952,
+ 0xd3f2432d,
+ 0x9e2d290e,
+ 0x75002a20,
+ 0xa96dc020,
+ 0xc0000183,
+ 0xb74090c2,
+ 0xc020609c,
+ 0xc434a96d,
+ 0x0a020c9e,
+ 0xc000b481,
+ 0x4220b107,
+ 0x5e20d122,
+ 0x0cfac036,
+ 0xb4813228,
+ 0xd2a2c000,
+ 0x0c845ca0,
+ 0xb42130d2,
+ 0x093ec000,
+ 0x1ce0c002,
+ 0xc000b441,
+ 0x508cb780,
+ 0x75002a08,
+ 0x9262c00c,
+ 0xaa79f008,
+ 0x75002a20,
+ 0x91a2c00c,
+ 0x0dc2c008,
+ 0x990cff94,
+ 0xc2800281,
+ 0x9e8d5884,
+ 0x5b43d2a4,
+ 0x4003ba2d,
+ 0x5e7fd2a2,
+ 0xc2009e69,
+ 0x02185a75,
+ 0x5c84d322,
+ 0x5a8fd224,
+ 0xba369e8e,
+ 0xd3224003,
+ 0x9e715e7f,
+ 0x5a75c200,
+ 0xd2240218,
+ 0xc0345b0f,
+ 0x08c20c9e,
+ 0xc000b421,
+ 0x0d92c004,
+ 0x98e6ff94,
+ 0x420ab780,
+ 0x7d3edffc,
+ 0x280c0a82,
+ 0x9004c001,
+ 0x428ab780,
+ 0x7d3edffc,
+ 0x9344c000,
+ 0x5d8cb720,
+ 0x402bb780,
+ 0x6214b720,
+ 0x628cb720,
+ 0x5a11c200,
+ 0x5904d226,
+ 0x80a3e210,
+ 0x80abe220,
+ 0x0d020b02,
+ 0x402bb5a0,
+ 0x404bb5a0,
+ 0x9100c001,
+ 0xd0117402,
+ 0xd0214300,
+ 0xc0014500,
+ 0xc0089022,
+ 0xff940dc2,
+ 0x028198b5,
+ 0x5884c280,
+ 0xba129e8a,
+ 0xd1224003,
+ 0x9e515e7f,
+ 0x5a79c200,
+ 0xd2240218,
+ 0xc280590b,
+ 0xc3005b43,
+ 0xba315884,
+ 0xc3004002,
+ 0xc2005a7f,
+ 0x02685a79,
+ 0x5b0bc200,
+ 0x420ab780,
+ 0x7d3edffc,
+ 0x428ab720,
+ 0x9144c000,
+ 0x7c7edffc,
+ 0x4100d011,
+ 0x4280d011,
+ 0x91c2c004,
+ 0x7d3edffc,
+ 0x92e4c000,
+ 0x400aba21,
+ 0x9262c000,
+ 0x6204b740,
+ 0x6284b760,
+ 0xd2261a04,
+ 0x9e555904,
+ 0xc8309e2d,
+ 0x9e3da14e,
+ 0xc830010d,
+ 0xc003a34d,
+ 0xba0992a0,
+ 0xc001400a,
+ 0xb7209324,
+ 0xb7405d8c,
+ 0xb7806204,
+ 0x9e2d402b,
+ 0x5a11c200,
+ 0xd2261a04,
+ 0xb7a05904,
+ 0xc830628c,
+ 0xb780a14e,
+ 0x9d5d402b,
+ 0xa9c6d821,
+ 0x5a11c200,
+ 0xd2261a04,
+ 0xd8005904,
+ 0x0d02a9c1,
+ 0x4003ba1b,
+ 0xa34dc830,
+ 0x4002ba1b,
+ 0x9ad2fff4,
+ 0x428ab780,
+ 0x4002ba24,
+ 0x5904d226,
+ 0x9d470a04,
+ 0x5904d226,
+ 0xc8509d53,
+ 0xca50a9a6,
+ 0x0d02a985,
+ 0x9200c001,
+ 0x6204b740,
+ 0x1a12d011,
+ 0x5984d228,
+ 0x5904d0a6,
+ 0xb7a09e2d,
+ 0xd011628c,
+ 0xc8200a12,
+ 0xc830a162,
+ 0xd226a9ce,
+ 0x9dd95904,
+ 0xa9cdc830,
+ 0xa361c820,
+ 0x4003ba1b,
+ 0x4002ba1b,
+ 0x9aa2fff4,
+ 0x428ab780,
+ 0x4002ba24,
+ 0x5904d226,
+ 0x9d470a04,
+ 0x5904d226,
+ 0x9d539eb2,
+ 0xa9a6c850,
+ 0xa985ca50,
+ 0x4002ba28,
+ 0x4003ba1b,
+ 0x4002ba1b,
+ 0x9a8afff4,
+ 0x4002ba10,
+ 0x5e04d2a2,
+ 0x124a0d72,
+ 0x4002ba04,
+ 0xc4149e54,
+ 0xba097000,
+ 0xc4104002,
+ 0x74007048,
+ 0xc0000003,
+ 0x10039076,
+ 0x4002ba00,
+ 0x5e04d322,
+ 0x00d0d020,
+ 0xba041244,
+ 0x9e544002,
+ 0x7000c414,
+ 0x4002ba09,
+ 0x7048c410,
+ 0x5e7dd0a2,
+ 0x74009dc9,
+ 0xc0010003,
+ 0x5c870494,
+ 0x4003ba29,
+ 0x9076c000,
+ 0xba001003,
+ 0x02204002,
+ 0x58fdc200,
+ 0xc2000242,
+ 0xc7fe5a07,
+ 0xc7fe2efc,
+ 0x093e2a7c,
+ 0x0c9ec034,
+ 0xc000b441,
+ 0x5c88d2a2,
+ 0x5a48c200,
+ 0x0c92c082,
+ 0x28fccffe,
+ 0xb4a132c2,
+ 0xc082c000,
+ 0xb4a20d16,
+ 0x0c88c000,
+ 0xc000b4a1,
+ 0xb4a20d08,
+ 0x0c88c000,
+ 0xc000b4a1,
+ 0xb4a20d08,
+ 0x0c88c000,
+ 0xc000b4a1,
+ 0xb4a20d08,
+ 0x0c88c000,
+ 0xc000b4a1,
+ 0xb4a20d08,
+ 0x0c88c000,
+ 0xc000b4a1,
+ 0xb4a20d08,
+ 0x0c88c000,
+ 0xc000b4a1,
+ 0xb4a20d08,
+ 0x0c88c000,
+ 0xc000b4a1,
+ 0xb4a20d08,
+ 0xb780c000,
+ 0xdffc418a,
+ 0xc0007d3e,
+ 0x0a4a9184,
+ 0x0c9ec034,
+ 0xc000b481,
+ 0x0d5ac082,
+ 0xb4229e79,
+ 0xc034c000,
+ 0xb4e10c9e,
+ 0xb79fc000,
+ 0xb7bf7e6e,
+ 0xb7df7eee,
+ 0xb7ff7f6e,
+ 0xc0027fee,
+ 0x9c228c00,
+ 0x7cfec01c,
+ 0xc0009e58,
+ 0xd01193e4,
+ 0x75061a02,
+ 0x93f4c000,
+ 0x1a0ad011,
+ 0xc0007506,
+ 0xd02690d2,
+ 0xc0015904,
+ 0xd0319120,
+ 0x751e1a02,
+ 0x90d2c000,
+ 0x0900d033,
+ 0x9000c001,
+ 0x5a04c000,
+ 0x1940d053,
+ 0x9340c000,
+ 0x1a02d011,
+ 0xc0007506,
+ 0x852290b2,
+ 0x9240c000,
+ 0x1a0ad011,
+ 0xc0007526,
+ 0xd0319172,
+ 0xc2000a0a,
+ 0x024258fd,
+ 0x5907d226,
+ 0x9080c000,
+ 0x190cd013,
+ 0x9c229d43,
+ 0x558cb780,
+ 0xa882f208,
+ 0x1432d010,
+ 0xc000743d,
+ 0x087b90b6,
+ 0x90e0c000,
+ 0x850a7406,
+ 0x4478b302,
+ 0xf2089d43,
+ 0xe210a903,
+ 0x0a0a8021,
+ 0xc01208fe,
+ 0xc0107008,
+ 0x9c227002,
+ 0x5494b720,
+ 0xb7208502,
+ 0xd81041cb,
+ 0xd810a17f,
+ 0x8502a173,
+ 0x558cb780,
+ 0xa167f010,
+ 0xa17bd810,
+ 0xa177d810,
+ 0xa167d850,
+ 0xa17bf010,
+ 0xa16fd850,
+ 0xa16bd850,
+ 0xa163d850,
+ 0xa167f050,
+ 0xa163f050,
+ 0xa17ff010,
+ 0xa16ff050,
+ 0xa16bf050,
+ 0xa0e1f010,
+ 0xa11fda08,
+ 0xa113da08,
+ 0xa107f208,
+ 0xa11bda08,
+ 0xa117da08,
+ 0xa107da48,
+ 0xa11bf208,
+ 0xa10fda48,
+ 0xa10bda48,
+ 0xa103da48,
+ 0xa107f248,
+ 0x41cbb720,
+ 0xa103f248,
+ 0xa11ff208,
+ 0xa10ff248,
+ 0xa081f208,
+ 0xa10bf248,
+ 0xb7809c22,
+ 0xf010558c,
+ 0xf208a8e1,
+ 0xd810a081,
+ 0xda08a8f2,
+ 0xd850a092,
+ 0xda48a8e5,
+ 0xf050a085,
+ 0xf248a8e6,
+ 0xf050a086,
+ 0xf248a8e1,
+ 0xd810a081,
+ 0xda08a8fe,
+ 0xf010a09e,
+ 0xf208a8f9,
+ 0xf010a099,
+ 0xf208a8e6,
+ 0xd850a086,
+ 0xda48a8e1,
+ 0xd810a081,
+ 0xda08a8fa,
+ 0xd850a09a,
+ 0xda48a8ed,
+ 0xd810a08d,
+ 0xda08a8f6,
+ 0xd850a096,
+ 0xda48a8e9,
+ 0xf050a089,
+ 0xf248a8ee,
+ 0xf010a08e,
+ 0xb720a8fd,
+ 0xf2085694,
+ 0xb740a09d,
+ 0xf05041dd,
+ 0xc301aa69,
+ 0xb5408120,
+ 0xf05041dd,
+ 0xf310aa61,
+ 0x85028821,
+ 0x40cdb580,
+ 0xa173d810,
+ 0x08028502,
+ 0xa167f010,
+ 0xa17bd810,
+ 0xa177d810,
+ 0xa167d850,
+ 0xa17bf010,
+ 0xa16fd850,
+ 0xa16bd850,
+ 0xa16bf050,
+ 0x74c29c22,
+ 0xc0019e5c,
+ 0xb78091c4,
+ 0xd208590c,
+ 0x7440a885,
+ 0xb5428502,
+ 0xc0015018,
+ 0xb78091a4,
+ 0xb720558c,
+ 0xda485394,
+ 0xb740a881,
+ 0xb78042cd,
+ 0xb740548c,
+ 0x60955694,
+ 0xa917f248,
+ 0xa94df010,
+ 0x44c5b740,
+ 0x444db780,
+ 0x8124c201,
+ 0x88a3e210,
+ 0x8a21f310,
+ 0xc0007048,
+ 0xb56291fc,
+ 0xc0005008,
+ 0x74c09160,
+ 0x9104c000,
+ 0x548cb720,
+ 0xaa01da08,
+ 0x41abb580,
+ 0x5008b702,
+ 0xa61d9c22,
+ 0xba3b0e82,
+ 0xcc124002,
+ 0x9eb872ca,
+ 0x9e969e56,
+ 0x12ac66b1,
+ 0xba017540,
+ 0xc0004003,
+ 0x058b933c,
+ 0x0d02018b,
+ 0x9bdac034,
+ 0x5e0bd322,
+ 0x9e857148,
+ 0x931ac000,
+ 0x5990d324,
+ 0x0d0201ee,
+ 0x9bcec034,
+ 0x60419e6c,
+ 0x5a93d024,
+ 0x9180c000,
+ 0x538cb780,
+ 0xa88ada08,
+ 0x1590d010,
+ 0xc0340d02,
+ 0x9e859bbf,
+ 0xb79f9e68,
+ 0xb7bf7e6e,
+ 0xb7df7eee,
+ 0xb7ff7f6e,
+ 0xc0027fee,
+ 0x9c228c00,
+ 0x8440a61d,
+ 0x5394b7e0,
+ 0xaa75da10,
+ 0x548cb7e0,
+ 0xb740753a,
+ 0xf208558c,
+ 0x0c82aa61,
+ 0x0c92d00a,
+ 0x7e74b53f,
+ 0xd8087504,
+ 0xd848aa5d,
+ 0xb59fa8c1,
+ 0xf0087eec,
+ 0x9e8da8de,
+ 0xba2d0b02,
+ 0xb53f4003,
+ 0xc0017f74,
+ 0xb7c092a4,
+ 0xf2105694,
+ 0xf210a94b,
+ 0x7740aa4d,
+ 0x88a1f310,
+ 0x921cc000,
+ 0xa9c6f048,
+ 0x0d029e6b,
+ 0x9b7ec034,
+ 0xa96bda10,
+ 0x882bf310,
+ 0x12d06009,
+ 0x714cd412,
+ 0xaa69f208,
+ 0xb79f7502,
+ 0x08827e6c,
+ 0x0892d009,
+ 0xc0017848,
+ 0xb77f93a2,
+ 0xb73f7d6a,
+ 0x9eab7f74,
+ 0xa949f250,
+ 0x4002ba1b,
+ 0x048b0503,
+ 0x9b71fff4,
+ 0x92c0c001,
+ 0x5694b720,
+ 0x405db740,
+ 0x41cdb780,
+ 0xf3107740,
+ 0xc00088a1,
+ 0xda10915c,
+ 0xb780a96b,
+ 0xe310464d,
+ 0x624388ab,
+ 0xf20812d8,
+ 0x7502aa69,
+ 0x90f2c000,
+ 0xaa69da08,
+ 0xc0007500,
+ 0xb7409222,
+ 0xb77f45cd,
+ 0xb73f7d6a,
+ 0x9eab7f74,
+ 0x4002ba1b,
+ 0x048b0503,
+ 0x9b45fff4,
+ 0x9140c000,
+ 0xa96bda10,
+ 0xe3109eab,
+ 0x0d0289ab,
+ 0x9b28c034,
+ 0x08020301,
+ 0x7180c012,
+ 0x7d6eb79f,
+ 0x7deeb7bf,
+ 0x7e6eb7df,
+ 0x7eeeb7ff,
+ 0x8c40c002,
+ 0xa6059c22,
+ 0x6304b740,
+ 0x4003ba12,
+ 0x1e22d011,
+ 0x5904d226,
+ 0xc8309e2d,
+ 0xba13a8cd,
+ 0x9e5b4002,
+ 0x6a16d011,
+ 0x9e4d7088,
+ 0x90fcc001,
+ 0xc00074c0,
+ 0xc180921c,
+ 0xd0205a07,
+ 0x0d0201a8,
+ 0x9afac034,
+ 0xaa25f208,
+ 0xd2246241,
+ 0xc0005943,
+ 0xd01190e0,
+ 0x9ea20e22,
+ 0x4003ba12,
+ 0x568cb720,
+ 0x0a10d091,
+ 0xa882d208,
+ 0xb3127282,
+ 0xc000485a,
+ 0xb72090da,
+ 0xc8124fb1,
+ 0x9e507282,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xb720a605,
+ 0xb7205494,
+ 0xb700404d,
+ 0x74445794,
+ 0x1e00d051,
+ 0x4442b340,
+ 0xb7209e4d,
+ 0x9e5c43ca,
+ 0x4003ba12,
+ 0x7c7edffc,
+ 0x4002ba1b,
+ 0x4002ba12,
+ 0x9102c000,
+ 0xfff40481,
+ 0x9e829ba4,
+ 0x4003ba12,
+ 0xaa25d288,
+ 0xc0007502,
+ 0xb78091c4,
+ 0xd208540c,
+ 0x7440a881,
+ 0x90e4c000,
+ 0x0e24d011,
+ 0xba129ea2,
+ 0xd2884003,
+ 0x7502aa29,
+ 0x90e4c000,
+ 0x0e22d011,
+ 0xba129ea2,
+ 0xda484003,
+ 0x9e52aa39,
+ 0x08c8d011,
+ 0xc0007082,
+ 0x9e8a90fc,
+ 0x4003ba12,
+ 0x9140c000,
+ 0x1a109e51,
+ 0xba247048,
+ 0xb3244002,
+ 0x9ea24836,
+ 0x568cb720,
+ 0x4f29b780,
+ 0x12289e52,
+ 0xba129ea2,
+ 0x76844003,
+ 0xc0009e89,
+ 0x0d0a90bc,
+ 0x90e0c000,
+ 0x857b76bb,
+ 0x487ab322,
+ 0xb7409dcb,
+ 0xe2104f59,
+ 0xd09180ad,
+ 0x9e8a0e10,
+ 0xaa01d208,
+ 0x4003ba12,
+ 0x70489e51,
+ 0x445ab342,
+ 0x90fac000,
+ 0x4fc9b780,
+ 0xc8129ea1,
+ 0x9e507282,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xdffca61d,
+ 0xc0007efe,
+ 0xb7809204,
+ 0xb7c0558c,
+ 0xda085794,
+ 0xda08aa99,
+ 0xf208ab11,
+ 0xda08aa86,
+ 0xc000ab95,
+ 0xb78091c0,
+ 0xb7c0558c,
+ 0xda485714,
+ 0xda48aa8d,
+ 0xf208ab05,
+ 0xda48aa9a,
+ 0xc008ab89,
+ 0xc0007540,
+ 0x9eab91dc,
+ 0x9a5ac034,
+ 0xc2009e81,
+ 0xc20052a3,
+ 0xc2005343,
+ 0xc20053e3,
+ 0xb74056a7,
+ 0xd2a66104,
+ 0x9e2d5904,
+ 0xa8cdc830,
+ 0xaa51da10,
+ 0x63f36363,
+ 0x619cb740,
+ 0xda100a04,
+ 0x9e89a251,
+ 0xda109d47,
+ 0xc210aa55,
+ 0x66d3a925,
+ 0xf310856e,
+ 0x9e918821,
+ 0x4002ba2c,
+ 0x56a7c200,
+ 0x7748c00c,
+ 0x534bc200,
+ 0x53ebc200,
+ 0x927cc001,
+ 0x7580c100,
+ 0xc07e9e6b,
+ 0xb3640a7e,
+ 0xd2264438,
+ 0xc2805114,
+ 0xe2205d87,
+ 0x0d0281af,
+ 0x99f0c034,
+ 0xa943f210,
+ 0x618ed032,
+ 0xa9d1da10,
+ 0x81afe220,
+ 0xba1b0d02,
+ 0xf2104002,
+ 0xc034a1c2,
+ 0x755e99e1,
+ 0xa045f210,
+ 0x1a50d04d,
+ 0x5213d01a,
+ 0x90dac000,
+ 0xf3108542,
+ 0x52108823,
+ 0xa245f210,
+ 0xda108506,
+ 0xb79fa15f,
+ 0xb7bf7e6e,
+ 0xb7df7eee,
+ 0xb7ff7f6e,
+ 0xc0027fee,
+ 0x9c228c00,
+ 0x76c2a60d,
+ 0x5394b7a0,
+ 0x92a4c001,
+ 0x558cb7a0,
+ 0xaa2dda48,
+ 0xc0007500,
+ 0x0d8690a2,
+ 0x9b60fff4,
+ 0xaa39da08,
+ 0xc0007500,
+ 0x0d8290a2,
+ 0x9b58fff4,
+ 0xa8a1da48,
+ 0xaa29da10,
+ 0xc0007048,
+ 0xda089382,
+ 0xfff4ab3d,
+ 0xb78099f1,
+ 0xf208548c,
+ 0xd210a881,
+ 0xb720aaa1,
+ 0x74425694,
+ 0x4f49b5a0,
+ 0x9eaa9e83,
+ 0x4002ba1e,
+ 0xfff40916,
+ 0xba009ab9,
+ 0xd2104002,
+ 0xd210a021,
+ 0xb79fa821,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0x9c229c22,
+ 0x4002ba1b,
+ 0x5887d1a4,
+ 0x9e489e5a,
+ 0x52200886,
+ 0x70881a04,
+ 0x907cc001,
+ 0x08029e4c,
+ 0xd0117008,
+ 0x50b01a32,
+ 0x91d6c000,
+ 0xc0007844,
+ 0xd01191a4,
+ 0xba040a02,
+ 0x9e4c4002,
+ 0x58877008,
+ 0x92d8ffff,
+ 0x9c220802,
+ 0xba001030,
+ 0x9c224002,
+ 0x5907d1a6,
+ 0x8821e210,
+ 0x4002ba00,
+ 0xd0119c22,
+ 0x08021e12,
+ 0x50b07008,
+ 0x91f6c000,
+ 0x78449ea1,
+ 0x9204ffff,
+ 0x0a02d011,
+ 0x4002ba04,
+ 0x70089e4c,
+ 0xffff5887,
+ 0x080692d8,
+ 0xb7809c22,
+ 0xf248548c,
+ 0x9e98a917,
+ 0xe22015b0,
+ 0xf24881af,
+ 0xd010a196,
+ 0x7640a8c2,
+ 0xc0050982,
+ 0x85069264,
+ 0xa14bd010,
+ 0xaa01f208,
+ 0xd0107502,
+ 0xc00215b0,
+ 0xb72092c4,
+ 0xb740538c,
+ 0xd12643ad,
+ 0xf2105910,
+ 0xc2008825,
+ 0x70c85a13,
+ 0xb7009e8b,
+ 0xc0045694,
+ 0xf05091b6,
+ 0x70c8aa65,
+ 0x9178c000,
+ 0x4ec8b720,
+ 0x2a1ed3f1,
+ 0xc0037506,
+ 0xc0039274,
+ 0xd03192e0,
+ 0xc2006a29,
+ 0x70c85a13,
+ 0x9178c000,
+ 0x4ec8b720,
+ 0x2a1ed3f1,
+ 0xc0037504,
+ 0xc0039074,
+ 0xd03190e0,
+ 0xc2006a27,
+ 0x70c85a13,
+ 0x9178c000,
+ 0x4ec8b720,
+ 0x2a1ed3f1,
+ 0xc0027502,
+ 0xc0029274,
+ 0xd01192e0,
+ 0xc2006a2d,
+ 0x70c85a13,
+ 0x92d8c002,
+ 0x0cb4d0b1,
+ 0x4e58b740,
+ 0x4029b780,
+ 0x4ec8b720,
+ 0x8021f310,
+ 0xc0017048,
+ 0xc00293b8,
+ 0xb7209020,
+ 0xb740538c,
+ 0xd12643ad,
+ 0xf2105910,
+ 0xc2008825,
+ 0x70c85a13,
+ 0xb7009e8b,
+ 0xc0015694,
+ 0xf0509336,
+ 0x70c8aa65,
+ 0x91d6fffe,
+ 0x6a27d031,
+ 0x5a13c200,
+ 0xc00070c8,
+ 0xb78091b8,
+ 0xc01c4ec8,
+ 0xc0007d3e,
+ 0x0a0493e4,
+ 0x4ec8b580,
+ 0x9040c001,
+ 0x5a07c100,
+ 0xc00070c8,
+ 0xd0b19378,
+ 0xb7400cb4,
+ 0xb7804e58,
+ 0xb7204029,
+ 0xf3104ec8,
+ 0x70488021,
+ 0x9116c000,
+ 0x0a12d011,
+ 0x4ec8b580,
+ 0x9140c000,
+ 0xa0cad010,
+ 0x4ed0b520,
+ 0x9080c000,
+ 0xa0cad010,
+ 0xaa75d810,
+ 0x424cb720,
+ 0x70481a04,
+ 0x48a4b340,
+ 0xd0108502,
+ 0x9c22a14b,
+ 0xa1c9d010,
+ 0xc00e9c22,
+ 0xd3312dfc,
+ 0xd0116cbb,
+ 0x58a11e36,
+ 0xba247048,
+ 0xb3144002,
+ 0x0089443c,
+ 0x5e04d1a2,
+ 0x870a7442,
+ 0xb3120d8c,
+ 0x9e59449a,
+ 0x7102d012,
+ 0x7500c004,
+ 0x5694b720,
+ 0xb342857e,
+ 0xb5404478,
+ 0xc0024fc1,
+ 0xb5400c80,
+ 0x9c224059,
+ 0xc030a605,
+ 0xb7a0ac7d,
+ 0x9d59538c,
+ 0xa45dc038,
+ 0xac7dc030,
+ 0xa45dc038,
+ 0xac7dc030,
+ 0xa45dc038,
+ 0xc0020d82,
+ 0xfff40982,
+ 0xdffc9ac1,
+ 0xda087c3e,
+ 0x0a02a9aa,
+ 0x0a42d002,
+ 0x590cb720,
+ 0xc00209ba,
+ 0x85060aac,
+ 0xa221d208,
+ 0x40b9b540,
+ 0x9aaefff4,
+ 0x5694b720,
+ 0x0e14d131,
+ 0x0c94d171,
+ 0x0d1cd131,
+ 0xa001da08,
+ 0x0e1cd171,
+ 0xb5008502,
+ 0xd808402b,
+ 0xc001a143,
+ 0xda080886,
+ 0xb520a103,
+ 0xb79f48cd,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xb7209c22,
+ 0xb780548c,
+ 0x8502412d,
+ 0x413bb540,
+ 0xb5800a04,
+ 0x9c22412d,
+ 0xb720a61d,
+ 0xb780568c,
+ 0x9e8d422d,
+ 0x538cb7c0,
+ 0x0a0476c4,
+ 0x422db580,
+ 0x9124c000,
+ 0xf2108502,
+ 0xda08a133,
+ 0xf210aa55,
+ 0xb780a235,
+ 0x76c4548c,
+ 0xf2089ea6,
+ 0xc009a182,
+ 0xda089124,
+ 0xb740a956,
+ 0x8502598c,
+ 0xa133d2d0,
+ 0xa14bd290,
+ 0xaa4df208,
+ 0xa947f008,
+ 0x8021f310,
+ 0xd2240089,
+ 0xf80858ff,
+ 0xf248a0d1,
+ 0xf310aa45,
+ 0x00898021,
+ 0x58ffd224,
+ 0xa0c9f808,
+ 0xa0cdf808,
+ 0xa8cdf248,
+ 0x80a3e220,
+ 0x0d109e4b,
+ 0x5a07c080,
+ 0x038570c8,
+ 0xa0c6f008,
+ 0x9256c000,
+ 0x5908d0a6,
+ 0x8023f210,
+ 0x5a13c200,
+ 0x850670c8,
+ 0xa14bd290,
+ 0x90d6c000,
+ 0xa133d2d0,
+ 0xa265f208,
+ 0xa9e6f208,
+ 0x0d029e53,
+ 0x9ba4c014,
+ 0xaa49f210,
+ 0xf2507502,
+ 0xc001a035,
+ 0xd0b192f4,
+ 0xd2080ae4,
+ 0x7500aa21,
+ 0x9202c001,
+ 0xaa49da10,
+ 0x5a40e200,
+ 0x9262c000,
+ 0xa95fda50,
+ 0x5a45c200,
+ 0x8021f310,
+ 0xa9c9da10,
+ 0xa25dda50,
+ 0xa9deda50,
+ 0xc0140d02,
+ 0xda509b81,
+ 0xda50a05d,
+ 0x7530aa5d,
+ 0x9292c000,
+ 0xaa4df248,
+ 0x590cd226,
+ 0xa8e5f208,
+ 0x8821f310,
+ 0x5a0fc200,
+ 0xc0007048,
+ 0xd20890fc,
+ 0x1a04aa21,
+ 0xa221d208,
+ 0xaa35f250,
+ 0xa8e5f208,
+ 0xda508502,
+ 0xd226a15f,
+ 0x74405908,
+ 0x8021f310,
+ 0xa229f210,
+ 0x90b6c000,
+ 0xf2108502,
+ 0xf208a12b,
+ 0xf210aa59,
+ 0xc002a8a9,
+ 0xc2006a4e,
+ 0x70485a1f,
+ 0x909cc000,
+ 0xa229f210,
+ 0xa8e2f248,
+ 0xa8a9f210,
+ 0xaa79f208,
+ 0xc4129e4a,
+ 0xd0107044,
+ 0xf2107102,
+ 0xf210a229,
+ 0xdac8a221,
+ 0x7446a8c1,
+ 0x9174c000,
+ 0x08e0d0d1,
+ 0x4029b780,
+ 0xd3f11a08,
+ 0xc000294e,
+ 0x090a9060,
+ 0xa8caf210,
+ 0x08827642,
+ 0x0892d009,
+ 0x0a0274b8,
+ 0x0a42d009,
+ 0x0af27848,
+ 0x4422b325,
+ 0xc0007642,
+ 0x9eab90f4,
+ 0x9a9ffff4,
+ 0x9140c000,
+ 0x0e50d091,
+ 0xd2d0850a,
+ 0x857ea13f,
+ 0xa103d208,
+ 0xaa31d2d0,
+ 0xc0007502,
+ 0xd0b19164,
+ 0xd2080a64,
+ 0x7440a881,
+ 0x0a54d001,
+ 0x2aced3e1,
+ 0xaa49d290,
+ 0xd0017502,
+ 0xd3e10a54,
+ 0xd0912ace,
+ 0xb7800cd0,
+ 0x71484029,
+ 0x90f2c000,
+ 0xaa3dd2d0,
+ 0xc0007148,
+ 0x02899068,
+ 0xaa41dac8,
+ 0x747d10d8,
+ 0x9136c000,
+ 0x08e0d0d1,
+ 0x4029b780,
+ 0xc0001a08,
+ 0x74449140,
+ 0x913cc000,
+ 0x08e0d0d1,
+ 0x4029b780,
+ 0xd3f10a08,
+ 0xd0912ace,
+ 0xb7800cd0,
+ 0x71484029,
+ 0x90f2c000,
+ 0xaa3dd2d0,
+ 0xc0007148,
+ 0x02899068,
+ 0xa2b9d2d0,
+ 0xa2c1d208,
+ 0x90c0c009,
+ 0x598cb7a0,
+ 0xaa3df250,
+ 0xa933f210,
+ 0xa8b9f210,
+ 0xa920f20a,
+ 0xa9b5f210,
+ 0xa9a6f208,
+ 0x89a3f210,
+ 0x8a21f310,
+ 0xabbaf250,
+ 0xf2080d02,
+ 0xc014a221,
+ 0xf2509aa7,
+ 0xf208a957,
+ 0xf20aaa21,
+ 0xf310a94c,
+ 0xf2088821,
+ 0xc200a8ba,
+ 0xf3105a07,
+ 0xf2488a21,
+ 0x0882a921,
+ 0x7102d012,
+ 0x08040008,
+ 0xc0125807,
+ 0x9e827004,
+ 0x7244c410,
+ 0xf21075c2,
+ 0xc001a0aa,
+ 0xda08901c,
+ 0x058fa9c9,
+ 0xc0140d02,
+ 0xd0b19a81,
+ 0xd20a0a66,
+ 0xe011a900,
+ 0x10028ea2,
+ 0x4002ba00,
+ 0xba00000e,
+ 0x741c4002,
+ 0xb3028536,
+ 0xda084478,
+ 0xf011a8c9,
+ 0xf3108c22,
+ 0xd0328221,
+ 0xf21063c2,
+ 0xf250a92b,
+ 0xe310aa35,
+ 0xc20088af,
+ 0x70485a1b,
+ 0xa0a1f210,
+ 0x4658b425,
+ 0xa9cada08,
+ 0x5dc55dc0,
+ 0xf25005f6,
+ 0xda08a1b2,
+ 0x0d02a9c9,
+ 0x9a50c014,
+ 0xaa49f210,
+ 0xf2507502,
+ 0xc000a031,
+ 0xda1090f2,
+ 0x7500aa49,
+ 0x92c2c001,
+ 0x590cb720,
+ 0x4129b780,
+ 0x03837500,
+ 0x9344c001,
+ 0xaa29f248,
+ 0xdac87500,
+ 0xc000a841,
+ 0xf210919c,
+ 0x6009a9a1,
+ 0xd1a49e81,
+ 0x0d025987,
+ 0xc0140596,
+ 0xdac89a2b,
+ 0x9e4aa8c2,
+ 0x1084e000,
+ 0xb3141220,
+ 0x7504442c,
+ 0x90dac000,
+ 0xa041dac8,
+ 0x9340c000,
+ 0x70c09e4b,
+ 0x90dcc000,
+ 0x1e14d011,
+ 0x9200c000,
+ 0x0e14d011,
+ 0x9180c000,
+ 0xa943dac8,
+ 0xaa45dac8,
+ 0x8021f310,
+ 0x590cb7e0,
+ 0x5a07c200,
+ 0xa241dac8,
+ 0xaa69d208,
+ 0xc0007500,
+ 0xdac89204,
+ 0x753eaa41,
+ 0x90b4c000,
+ 0xc000857e,
+ 0x750090c0,
+ 0x90a4c000,
+ 0xdac88506,
+ 0xf210a143,
+ 0x7502aa49,
+ 0x90f2c000,
+ 0xaa49da10,
+ 0xc0007500,
+ 0xd20891e2,
+ 0x7500aa69,
+ 0x9244c000,
+ 0x0a60d0d1,
+ 0xa982d208,
+ 0x9965fff4,
+ 0x9140c000,
+ 0x0e50d091,
+ 0xd2d0850a,
+ 0x857ea13f,
+ 0xa103d208,
+ 0xaa31d2d0,
+ 0xc0007502,
+ 0xd0b191c4,
+ 0xd2080a64,
+ 0x7440a881,
+ 0x90e4c000,
+ 0xaa41dac8,
+ 0xdac80a08,
+ 0xd0d1a241,
+ 0xd2080a60,
+ 0xd091a881,
+ 0x08840e50,
+ 0xa0c1d208,
+ 0xa882d208,
+ 0x2e1ed3f1,
+ 0x28fcc00e,
+ 0xc0007048,
+ 0xd2d09132,
+ 0xd3f1a8be,
+ 0x70482e1e,
+ 0x9088c000,
+ 0xa0c2d208,
+ 0xa923f210,
+ 0xa8c1d208,
+ 0x802ff310,
+ 0xa0b9d2d0,
+ 0xa229f210,
+ 0xd1318502,
+ 0xd1310e50,
+ 0xf2900cd8,
+ 0xda08a123,
+ 0xd171a103,
+ 0xb5400e50,
+ 0xf290403b,
+ 0xda08a133,
+ 0xd171a103,
+ 0xd2d00e58,
+ 0xda08a8b9,
+ 0xf210a103,
+ 0xf210a12f,
+ 0xda50a127,
+ 0xd208a0d9,
+ 0xda10aa41,
+ 0xb79fa24d,
+ 0xb7bf7e6e,
+ 0xb7df7eee,
+ 0xb7ff7f6e,
+ 0xc0027fee,
+ 0x9c228c00,
+ 0xb780a60d,
+ 0xf208568c,
+ 0xb740a90f,
+ 0xb7405104,
+ 0xe220538c,
+ 0xb72081af,
+ 0xf2085494,
+ 0xf048a18e,
+ 0xe020a8c1,
+ 0xb7408327,
+ 0x9e5046dd,
+ 0xe2107002,
+ 0x098280af,
+ 0x06830309,
+ 0xb5400285,
+ 0xc0005114,
+ 0xf2089158,
+ 0xd226aa2d,
+ 0xe2105904,
+ 0xc00089a3,
+ 0xda1091e0,
+ 0xf208aa29,
+ 0x0a08a8ad,
+ 0x6142d033,
+ 0xf21072b5,
+ 0xb334882d,
+ 0x01894436,
+ 0xc00074c0,
+ 0xb72091fc,
+ 0xd071590c,
+ 0xc2000a3e,
+ 0x85065997,
+ 0x41b9b540,
+ 0x40adb560,
+ 0x9140c000,
+ 0x590cb780,
+ 0xd2088502,
+ 0x8502a10f,
+ 0xa107f208,
+ 0x5594b7c0,
+ 0xa9aada08,
+ 0xa94ff250,
+ 0xa9a9da08,
+ 0x5dc95dc0,
+ 0x81afe220,
+ 0xc0140d02,
+ 0xdac89913,
+ 0xf210a021,
+ 0xd0d1a8a1,
+ 0xd00809d0,
+ 0xf208aa61,
+ 0x7444a946,
+ 0xa221d208,
+ 0xa142f208,
+ 0x93a4c000,
+ 0xaa29f210,
+ 0xc0007502,
+ 0xb7a09244,
+ 0xf248598c,
+ 0x0996aa55,
+ 0xa9aaf248,
+ 0xc2000d02,
+ 0xf2485a0b,
+ 0xc014a259,
+ 0xf24898ef,
+ 0xf210a029,
+ 0xf248aa5d,
+ 0xc000a249,
+ 0xf2509360,
+ 0xf248aa41,
+ 0xf210a259,
+ 0xda50a8de,
+ 0xd808a93f,
+ 0xb740aa61,
+ 0xf248598c,
+ 0xda10a0ce,
+ 0xf310a8a9,
+ 0xf0488021,
+ 0xda50a14a,
+ 0x0884a23d,
+ 0xa0a9da10,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x8420a61d,
+ 0x568cb780,
+ 0xa895f208,
+ 0x18849d39,
+ 0xa095f208,
+ 0xa8cad018,
+ 0x548cb720,
+ 0x76428582,
+ 0xb7609d99,
+ 0xc00048a1,
+ 0xf2089144,
+ 0xf208a183,
+ 0xd080a18e,
+ 0xc000a0c6,
+ 0xb7009140,
+ 0xb780568c,
+ 0xd080422c,
+ 0xb580a1c7,
+ 0xb720432c,
+ 0xb780568c,
+ 0xb7e0538c,
+ 0xb7e05994,
+ 0xf20841ad,
+ 0xfa10a98d,
+ 0x123eab71,
+ 0xd2240089,
+ 0xfa1058ff,
+ 0xe000aae9,
+ 0x07620362,
+ 0x0f62d003,
+ 0x02d2e000,
+ 0xd00306d2,
+ 0xd2a20ed2,
+ 0xc2805e0c,
+ 0xd02058f5,
+ 0xc2803118,
+ 0xe000590c,
+ 0x152a112a,
+ 0x1d22d003,
+ 0x5df4c100,
+ 0x9dcb9e58,
+ 0xc1009ebb,
+ 0x30885a0d,
+ 0x6008b785,
+ 0xf2109d68,
+ 0x0003a967,
+ 0xd0a47502,
+ 0xf310587f,
+ 0xb33389a7,
+ 0xb55f4c24,
+ 0xfa107f64,
+ 0xfa10a371,
+ 0xfa10a2e9,
+ 0xf210a06d,
+ 0xffd4a3e5,
+ 0xb75f9b1c,
+ 0xf0007f64,
+ 0x7504aa41,
+ 0x9244c000,
+ 0x538cb720,
+ 0xa9d6f040,
+ 0x42abb760,
+ 0xf2100d02,
+ 0x1984a1e2,
+ 0x9844c014,
+ 0x568cb780,
+ 0xa01df248,
+ 0x568cb700,
+ 0xb5408502,
+ 0xb79f41bc,
+ 0xb7bf7dee,
+ 0xb7df7e6e,
+ 0xb7ff7eee,
+ 0xc0027f6e,
+ 0x9c228c20,
+ 0x5394b720,
+ 0xa876d810,
+ 0xa96ff010,
+ 0x42d3b500,
+ 0xa96df010,
+ 0x5494b740,
+ 0x41cdb780,
+ 0x598cb760,
+ 0x41cdb540,
+ 0xa8c9d810,
+ 0x8821f310,
+ 0x1d02d013,
+ 0xa964f00a,
+ 0x88a3e210,
+ 0xf0506243,
+ 0xf310a96d,
+ 0xf0088221,
+ 0xb540a265,
+ 0xf01045cd,
+ 0xb580aa71,
+ 0xf010424d,
+ 0xb520a8f5,
+ 0x9c2242cd,
+ 0x74c0c008,
+ 0x9e529e58,
+ 0x90fcc000,
+ 0x70c0d002,
+ 0x51f31a14,
+ 0xc0055013,
+ 0xc0007400,
+ 0xd00290fc,
+ 0x1a507000,
+ 0x01285013,
+ 0x6104b740,
+ 0x618cb780,
+ 0x5904d1a6,
+ 0xc0409e2d,
+ 0xc830a8e5,
+ 0x7044aa4d,
+ 0xd01d6009,
+ 0xd01a1214,
+ 0xb3405013,
+ 0x122248ba,
+ 0x9c225010,
+ 0x72c0c002,
+ 0x1c0ad011,
+ 0x00009c22,
+ 0x87c2c809,
+ 0x0c20b060,
+ 0x87c2c809,
+ 0x0a60b060,
+ 0x87c2c809,
+ 0x09c0b060,
+};
+
+unsigned long aui32H263CBR_MTXTOPAZFWData[] = {
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x809000b0,
+ 0x8090019c,
+ 0x82884c64,
+ 0x8288495c,
+ 0x82884994,
+ 0x828849be,
+ 0x828849d0,
+ 0x82884a0c,
+ 0x82884a3c,
+ 0x82884a6c,
+ 0x82884a94,
+ 0x82884ad4,
+ 0x82884ae4,
+ 0x82884af4,
+ 0x82884afc,
+ 0x82884b04,
+ 0x82884b10,
+ 0x82884e28,
+ 0x82884df8,
+ 0x82884cd8,
+ 0x82884b40,
+ 0x82884d28,
+ 0x82884d70,
+ 0x82884d74,
+ 0x82884d6c,
+ 0x82884db8,
+ 0x828850c8,
+ 0x82884fdf,
+ 0x82884fe0,
+ 0x82884fbf,
+ 0x82884fc0,
+ 0x82885000,
+ 0x82885084,
+ 0x82884ec8,
+ 0x82884f24,
+ 0x82884f80,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x809006dc,
+ 0x80901be8,
+ 0x809024f0,
+ 0x809006e0,
+ 0x80903b54,
+ 0x80904078,
+ 0x8090072c,
+ 0x00000000,
+ 0x80901da8,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x809006dc,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0xa0101162,
+ 0xa0100174,
+ 0xa0101102,
+ 0xa0100184,
+ 0xa0101104,
+ 0xa0100194,
+ 0xa0101106,
+ 0xa01001a4,
+ 0xa01001a2,
+ 0xa01001a2,
+ 0xa0101182,
+ 0xa0100142,
+ 0xa0101122,
+ 0xa0100152,
+ 0x80101124,
+ 0x80101126,
+ 0x80101144,
+ 0x80101146,
+ 0x80100176,
+ 0x80100186,
+ 0x80100196,
+ 0x801001a6,
+ 0x801001b6,
+ 0x801001b4,
+ 0x80300364,
+ 0x8010b100,
+ 0x80105160,
+ 0x80100102,
+ 0x00000b00,
+ 0x00000b00,
+ 0x00000ba0,
+ 0x00000ba0,
+ 0x00000003,
+ 0x00000002,
+ 0x00000002,
+ 0x00000001,
+ 0x00000001,
+ 0x00000001,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000005,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00260019,
+ 0x003f0032,
+ 0x0058004b,
+ 0x00710064,
+ 0x008a007d,
+ 0x00a30096,
+ 0x00bc00af,
+ 0x00d500c8,
+ 0x00ee00e1,
+ 0x010700fa,
+ 0x01070107,
+ 0x01070107,
+ 0x01070107,
+ 0x01070107,
+ 0x01070107,
+ 0x00000107,
+ 0x01010000,
+ 0x03030202,
+ 0x05040404,
+ 0x06060505,
+ 0x07070706,
+ 0x08080807,
+ 0x09090908,
+ 0x000a0a09,
+ 0x02010000,
+ 0x04040303,
+ 0x06060505,
+ 0x08080707,
+ 0x0a0a0909,
+ 0x0b0b0b0b,
+ 0x0c0c0c0c,
+ 0x000d0d0d,
+ 0x00400000,
+ 0x02ab0020,
+ 0x00cd0010,
+ 0x02490155,
+ 0x01c70008,
+ 0x005d00cd,
+ 0x013b0155,
+ 0x01110249,
+ 0x00f10004,
+ 0x01af01c7,
+ 0x00c300cd,
+ 0x0059005d,
+ 0x00290155,
+ 0x025f013b,
+ 0x02350249,
+ 0x00210111,
+ 0x001f0002,
+ 0x007500f1,
+ 0x006f01c7,
+ 0x006901af,
+ 0x001900cd,
+ 0x017d00c3,
+ 0x005b005d,
+ 0x02b90059,
+ 0x00a70155,
+ 0x02830029,
+ 0x0135013b,
+ 0x0095025f,
+ 0x023f0249,
+ 0x008b0235,
+ 0x02190111,
+ 0x00410021,
+ 0x00000001,
+ 0x0b060600,
+ 0x0c0b0a06,
+ 0x0a0b0c06,
+ 0x0c0d0c0c,
+ 0x0d0d0c06,
+ 0x0b0b0c0c,
+ 0x0e0d0a0d,
+ 0x0a0d0e0e,
+ 0x0c0d0a06,
+ 0x0c0e0c0e,
+ 0x0e0d0a0d,
+ 0x0f0c0c0c,
+ 0x0f0b0d0e,
+ 0x0d0f0e0e,
+ 0x0d0f0f0f,
+ 0x0c0b0f0e,
+ 0x00000006,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x1234baac,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+};
diff --git a/fw/H263FirmwareCBR_bin.h b/fw/H263FirmwareCBR_bin.h
new file mode 100644
index 0000000..aaf3074
--- /dev/null
+++ b/fw/H263FirmwareCBR_bin.h
@@ -0,0 +1,35 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+// This file was automatically generated from ../release/H263FirmwareCBR.dnl using dnl2c.
+
+extern unsigned long aui32H263CBR_MTXTOPAZFWText[];
+extern unsigned long ui32H263CBR_MTXTOPAZFWTextSize;
+
+extern unsigned long aui32H263CBR_MTXTOPAZFWData[];
+extern unsigned long ui32H263CBR_MTXTOPAZFWDataSize;
+
+extern unsigned long ui32H263CBR_MTXTOPAZFWDataLocation;
+
diff --git a/fw/H263FirmwareVBR_bin.c b/fw/H263FirmwareVBR_bin.c
new file mode 100644
index 0000000..bc26236
--- /dev/null
+++ b/fw/H263FirmwareVBR_bin.c
@@ -0,0 +1,8216 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+// This file was automatically generated from ../release/H263FirmwareVBR.dnl using dnl2c.
+
+unsigned char *szH263VBR_MTXTOPAZFW_buildtag = "TOPAZ_DDKBUILD_00-00-00-0146";
+
+unsigned long ui32H263VBR_MTXTOPAZFWTextSize = 4578;
+unsigned long ui32H263VBR_MTXTOPAZFWDataSize = 3600;
+unsigned long ui32H263VBR_MTXTOPAZFWDataLocation = 0x828847c0;
+
+unsigned long aui32H263VBR_MTXTOPAZFWText[] = {
+ 0x9040c001,
+ 0xc80993fe,
+ 0xc0000e42,
+ 0xc8290e00,
+ 0xc5308422,
+ 0xc8298400,
+ 0xc47c8622,
+ 0x9e838600,
+ 0xc8099e43,
+ 0xc8ee0d42,
+ 0xc8090d40,
+ 0xc8f00942,
+ 0xc8090900,
+ 0xc00a0e42,
+ 0xc8090e40,
+ 0xc00e87c2,
+ 0x9c1887d0,
+ 0x0c020802,
+ 0x09820d82,
+ 0x09020d02,
+ 0x08820c82,
+ 0x9320fffe,
+ 0xa401c838,
+ 0x0dc2c809,
+ 0x0d80c8ee,
+ 0x0e42c809,
+ 0x0b46b080,
+ 0x7e74b77f,
+ 0xa48d0882,
+ 0xffff9ff3,
+ 0x9d1393e0,
+ 0xf8398081,
+ 0x0707a205,
+ 0x06850307,
+ 0x03839e97,
+ 0x0fa0060f,
+ 0x018d058d,
+ 0x9c62008f,
+ 0x9340ffff,
+ 0x0ea0060b,
+ 0xffff9c62,
+ 0x058d93a0,
+ 0xb700018d,
+ 0xb780518c,
+ 0x9c015114,
+ 0x0687a605,
+ 0x0ea0060b,
+ 0xffff9c62,
+ 0xf9f893a0,
+ 0xf9f8aa9d,
+ 0x9c22aa1d,
+ 0xa60d9c22,
+ 0x9bfefff4,
+ 0x0ca2c829,
+ 0x0ce0c52e,
+ 0x404db720,
+ 0x0a42c809,
+ 0x0a70c5e8,
+ 0x0b027440,
+ 0x428cb580,
+ 0x0a12d002,
+ 0x4644b421,
+ 0xc0540d8a,
+ 0xb78098b0,
+ 0xc807520c,
+ 0xc57008c2,
+ 0xc0320880,
+ 0xb5800c86,
+ 0xb4214c8c,
+ 0x0a06c000,
+ 0x0c98c002,
+ 0xc000b481,
+ 0x09021a04,
+ 0x08bac002,
+ 0x4078b960,
+ 0x0a00c200,
+ 0x588bd224,
+ 0xc000b441,
+ 0x0a11ce00,
+ 0x9301ffff,
+ 0x1884e000,
+ 0x9244ffff,
+ 0x0a42c807,
+ 0x0a00c576,
+ 0x0c86c032,
+ 0xc000b481,
+ 0x08820a02,
+ 0x08840902,
+ 0x4078b960,
+ 0x0a00c200,
+ 0x588bd224,
+ 0xc000b441,
+ 0x0a11ce00,
+ 0x9301ffff,
+ 0x745ac004,
+ 0x923cffff,
+ 0xc0340a02,
+ 0xb4810c9e,
+ 0xc034c000,
+ 0xc05498cd,
+ 0xc054982e,
+ 0x0d8a982a,
+ 0x9861c054,
+ 0x0a42c801,
+ 0x0a08c010,
+ 0x0c86c032,
+ 0xc000b481,
+ 0x08c2c801,
+ 0x0880cb10,
+ 0xb4210ce4,
+ 0x0a06c000,
+ 0xb4810cb4,
+ 0xc123c000,
+ 0xc56608d2,
+ 0xc08008e0,
+ 0xb4210c82,
+ 0x1a04c000,
+ 0xb4810c84,
+ 0x0d86c000,
+ 0x0d0209c2,
+ 0x0902c121,
+ 0x991bc014,
+ 0x458cb780,
+ 0xa982f208,
+ 0x0d02c021,
+ 0x09c20d04,
+ 0x9906c014,
+ 0x458cb780,
+ 0x0ad2c123,
+ 0x0ae0c566,
+ 0xa982f208,
+ 0x0d0609c2,
+ 0x98fac014,
+ 0x09c20d86,
+ 0xc1810d0e,
+ 0xc0140902,
+ 0xc00298fe,
+ 0xc0540dc2,
+ 0x700a980d,
+ 0x9364ffff,
+ 0xc0540d82,
+ 0xc0039814,
+ 0xb74092e0,
+ 0xd2265284,
+ 0x9e2d5908,
+ 0xaa4de030,
+ 0x9c629ea4,
+ 0x4514b720,
+ 0x405db740,
+ 0x58c1c280,
+ 0x2a80cff0,
+ 0x5a21c280,
+ 0x8021f310,
+ 0x753ec004,
+ 0x40cdb520,
+ 0x404db580,
+ 0x4652b431,
+ 0x0a42c801,
+ 0x0a08c010,
+ 0x0c86c032,
+ 0xc000b481,
+ 0xc0020886,
+ 0xb4210c98,
+ 0xb780c000,
+ 0xc080450c,
+ 0xf2080c82,
+ 0xb421a881,
+ 0x0d82c000,
+ 0x9bd0c034,
+ 0x450cb780,
+ 0xa881f208,
+ 0xffff7002,
+ 0x0d869304,
+ 0x0d0209c2,
+ 0x0902c121,
+ 0x98afc014,
+ 0x458cb780,
+ 0xa982f208,
+ 0x0d02c021,
+ 0x09c20d04,
+ 0x989ac014,
+ 0x458cb780,
+ 0xa982f208,
+ 0x0d0609c2,
+ 0x9892c014,
+ 0x09c20d86,
+ 0xc1010d0e,
+ 0xc0140902,
+ 0x77409896,
+ 0x9082c000,
+ 0x9b79c034,
+ 0x9c80c971,
+ 0x5a41e200,
+ 0x9204c000,
+ 0x0dc2c002,
+ 0x9b9ac034,
+ 0x450cb780,
+ 0xa881f208,
+ 0xffff7002,
+ 0x0d8292e4,
+ 0x9b9dc034,
+ 0xc0007580,
+ 0xc0349364,
+ 0x0d8a9b5e,
+ 0x9b95c034,
+ 0x450cb780,
+ 0xa881f208,
+ 0x5908d0a8,
+ 0x0948d073,
+ 0xe0309e2d,
+ 0xd3f1aacd,
+ 0xc2002a5c,
+ 0x75185a05,
+ 0x2ad2d012,
+ 0x9234fffb,
+ 0xb79f0802,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0x9c229c22,
+ 0x451cb740,
+ 0xc200aa41,
+ 0xc0025a08,
+ 0xf3100a00,
+ 0xf2088021,
+ 0xf208a882,
+ 0xc0c0a885,
+ 0x5c890c80,
+ 0xc000b421,
+ 0xa6059c22,
+ 0x451cb740,
+ 0x0886aa41,
+ 0x0c9ec034,
+ 0x5a08c200,
+ 0x0a00c002,
+ 0x80a1f310,
+ 0xc000b421,
+ 0x0c92c080,
+ 0xaa25f208,
+ 0xc000b481,
+ 0xc0340dc2,
+ 0xf2089b3f,
+ 0x7008aa25,
+ 0x9344ffff,
+ 0xc0800a02,
+ 0xb4810c96,
+ 0x0d86c000,
+ 0x0d0609c2,
+ 0x0902c121,
+ 0x981bc014,
+ 0xa9a2f208,
+ 0x0d02c021,
+ 0x09c20d04,
+ 0x9808c014,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xc0409e54,
+ 0x9e590c82,
+ 0xc000b421,
+ 0x0d02c040,
+ 0xc000b482,
+ 0xc00e9c22,
+ 0xc00e2d7c,
+ 0x5d3029e0,
+ 0xc0409e54,
+ 0x31b80c82,
+ 0xc000b461,
+ 0x0d02c040,
+ 0xc000b442,
+ 0x9e4c9c22,
+ 0x28fcc00e,
+ 0x2a7cc00e,
+ 0x0c82c040,
+ 0xb4019e58,
+ 0xc200c000,
+ 0x58e45a6c,
+ 0x1d043242,
+ 0x9e515d10,
+ 0x1984598d,
+ 0x3980c011,
+ 0x590d3246,
+ 0x59301904,
+ 0x32443242,
+ 0xc000b481,
+ 0x9e4c9c22,
+ 0x28fcc00e,
+ 0x2a7cc00e,
+ 0x0c82c040,
+ 0xb4019e58,
+ 0xc200c000,
+ 0x58e45a6c,
+ 0x1d043242,
+ 0x9e515d10,
+ 0x1984598d,
+ 0x3980c019,
+ 0x590d3246,
+ 0x59301904,
+ 0x32443242,
+ 0xc000b481,
+ 0x9e4c9c22,
+ 0x28fcc00e,
+ 0x2a7cc00e,
+ 0x0c82c040,
+ 0xb4019e58,
+ 0xc200c000,
+ 0x58e45a6c,
+ 0x1d043242,
+ 0x9e515d10,
+ 0x1984598d,
+ 0x3980c01d,
+ 0x590d3246,
+ 0x59301904,
+ 0x32443242,
+ 0xc000b481,
+ 0xa60d9c22,
+ 0x07038420,
+ 0xc2800687,
+ 0x1c845c8d,
+ 0x5ca0d0a2,
+ 0xd0110287,
+ 0xc2000a5e,
+ 0x1a045a0d,
+ 0x5a30c200,
+ 0x30985cd0,
+ 0x04059e4c,
+ 0x0c8ac032,
+ 0xc8013098,
+ 0xb4213880,
+ 0x9ea9c000,
+ 0x0a02c801,
+ 0x0a00c002,
+ 0xc0306553,
+ 0xb4810c8a,
+ 0xc002c000,
+ 0x0c840882,
+ 0xc000b421,
+ 0xd0229e93,
+ 0x9e535f09,
+ 0x1d045d0d,
+ 0x9b5afff4,
+ 0x5e91c280,
+ 0xc2801e84,
+ 0x9e6c5e84,
+ 0xc2801a84,
+ 0xc1815a90,
+ 0x0d8a3a80,
+ 0x0d020982,
+ 0xfff4314a,
+ 0xc0c09b54,
+ 0x09920d82,
+ 0x0d02c002,
+ 0x0902c002,
+ 0x9a47c034,
+ 0xc0340a0a,
+ 0xb4810c9e,
+ 0x1b04c000,
+ 0x850275bf,
+ 0x9202c000,
+ 0xb55f9dcf,
+ 0xc0347f7c,
+ 0xf2319a4f,
+ 0xb75fa045,
+ 0x1b047f7c,
+ 0x851075bf,
+ 0x9284ffff,
+ 0xc0300a02,
+ 0xb4810c8e,
+ 0xb79fc000,
+ 0xb7bf7e6e,
+ 0xb7df7eee,
+ 0xc0027f6e,
+ 0x9c228c00,
+ 0xb780a605,
+ 0xc004438c,
+ 0x75002a00,
+ 0x588cb7a0,
+ 0x92c2c002,
+ 0xa9b6f208,
+ 0x0982c050,
+ 0x0d7ec008,
+ 0x9b08fff4,
+ 0xa9bef208,
+ 0x0982c028,
+ 0x0d3ec004,
+ 0x9b00fff4,
+ 0x438cb780,
+ 0x38c0d211,
+ 0x02039e89,
+ 0x2a00c201,
+ 0xcffa7500,
+ 0xb5202cfd,
+ 0xc0014394,
+ 0x744090e2,
+ 0x590cb740,
+ 0x9256c000,
+ 0xaa45f008,
+ 0xa8c9f008,
+ 0x2cfec7ff,
+ 0x0a00c010,
+ 0xa245f008,
+ 0x0880c008,
+ 0xa0c9f008,
+ 0x4394b520,
+ 0xaa45f008,
+ 0x438cb720,
+ 0xa235f208,
+ 0xa8caf008,
+ 0x28fecdff,
+ 0xa0bef208,
+ 0x438cb520,
+ 0x9240c000,
+ 0xa937f208,
+ 0xaa39f208,
+ 0xa93cf20a,
+ 0xa8a1f248,
+ 0x8021f310,
+ 0x82a3e210,
+ 0xa235f208,
+ 0xa0bdf208,
+ 0xa9bef248,
+ 0x0982c002,
+ 0xfff40d0e,
+ 0xf2489ab5,
+ 0xb720aa3d,
+ 0xc002438c,
+ 0xf2480a00,
+ 0xc200a23d,
+ 0xb5203880,
+ 0xc011438c,
+ 0x74402880,
+ 0x92e2c000,
+ 0xa9b6f248,
+ 0x0982c008,
+ 0xfff40d3e,
+ 0xf2489a9d,
+ 0xb720aa35,
+ 0xc008438c,
+ 0xf2480a00,
+ 0xc081a235,
+ 0xcfef3880,
+ 0xb52028fe,
+ 0xb780438c,
+ 0xc001438c,
+ 0x75002a04,
+ 0x92e2c000,
+ 0xa9b6f248,
+ 0x0982c008,
+ 0xfff40d3e,
+ 0xf2489a81,
+ 0xb720aa35,
+ 0xc008438c,
+ 0xf2480a00,
+ 0xc001a235,
+ 0xcfff3888,
+ 0xb52028fa,
+ 0xb720438c,
+ 0x0203438c,
+ 0x2a10c001,
+ 0xc0027500,
+ 0xc0019082,
+ 0x744028c0,
+ 0x9182c001,
+ 0xa9a6f288,
+ 0x0d0609c2,
+ 0x0c820942,
+ 0xfff40882,
+ 0xf2889a96,
+ 0xf288a9b6,
+ 0x5d90a927,
+ 0x81afe220,
+ 0x438cb780,
+ 0x0d0609c2,
+ 0x0c820942,
+ 0xc0010882,
+ 0xb5803a20,
+ 0xfff4438c,
+ 0xb7809aa0,
+ 0xf288438c,
+ 0xc003a8a5,
+ 0x08c03a00,
+ 0xa0a5f288,
+ 0x2a2ecfff,
+ 0x9260c000,
+ 0xa9a6f288,
+ 0x0d0609c2,
+ 0x9a36fff4,
+ 0x438cb780,
+ 0xa8a5f288,
+ 0x3a20c001,
+ 0xf28808c0,
+ 0xcfffa0a5,
+ 0xb5802a6e,
+ 0xb79f438c,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa6059c22,
+ 0x438cb780,
+ 0x2a00c200,
+ 0x9e5d7500,
+ 0x9302c000,
+ 0x0abc6a8e,
+ 0x09829eab,
+ 0xc1010d36,
+ 0xc0140902,
+ 0x9eab98a4,
+ 0x438cb780,
+ 0x0d1a0982,
+ 0x0902c101,
+ 0x2a7dcdfe,
+ 0x438cb580,
+ 0x9897c014,
+ 0x438cb780,
+ 0x2a00c081,
+ 0xc0007500,
+ 0xc1019222,
+ 0xc0060902,
+ 0x0dce0940,
+ 0x0d020982,
+ 0x9887c014,
+ 0x438cb780,
+ 0x2a7ecf7f,
+ 0x438cb580,
+ 0x438cb780,
+ 0x2a08c001,
+ 0xc0007500,
+ 0xc1019222,
+ 0xc0060902,
+ 0x0dde0940,
+ 0x0d020982,
+ 0x9871c014,
+ 0x438cb780,
+ 0x2a76cfff,
+ 0x438cb580,
+ 0x438cb780,
+ 0x2a20c001,
+ 0xc0007500,
+ 0x0de291e2,
+ 0x0d020982,
+ 0x0902c101,
+ 0x985dc014,
+ 0x438cb780,
+ 0x2a5ecfff,
+ 0x438cb580,
+ 0x438cb780,
+ 0x2a00c003,
+ 0xc0007500,
+ 0x0de291e2,
+ 0x0d060982,
+ 0x0902c101,
+ 0x9849c014,
+ 0x438cb780,
+ 0x2a7ecffd,
+ 0x438cb580,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xb7a0a605,
+ 0xf248588c,
+ 0xc021a9ba,
+ 0x0d3c0d02,
+ 0x0982c008,
+ 0x999efff4,
+ 0xa9aaf288,
+ 0x0d02c021,
+ 0x09c20d04,
+ 0x9996fff4,
+ 0xaa39f248,
+ 0xa8a9f288,
+ 0x0a00c008,
+ 0xa239f248,
+ 0xf28808c0,
+ 0xb79fa0a9,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa6059c22,
+ 0x09920687,
+ 0x0d02c002,
+ 0x0902c002,
+ 0x9883c034,
+ 0x0a42c002,
+ 0xc2800eb0,
+ 0xb4855e89,
+ 0xb79fc000,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xb7409c22,
+ 0xd1a64c84,
+ 0x9e2d5d08,
+ 0xa8cde030,
+ 0x5a0cc080,
+ 0xd1f35885,
+ 0xc00e2910,
+ 0xe2202d7c,
+ 0xc00e812d,
+ 0x5d302a40,
+ 0x32429e51,
+ 0x0c82c040,
+ 0xc000b481,
+ 0x0d02c040,
+ 0xc000b442,
+ 0xb7409c22,
+ 0x1df05984,
+ 0x5d08d1a6,
+ 0xe0309e2d,
+ 0xc080a8cd,
+ 0xd0335a05,
+ 0x5991294e,
+ 0x008929bc,
+ 0x81a7e210,
+ 0x2910d1f3,
+ 0x2d7cc00e,
+ 0x812de220,
+ 0x5d305990,
+ 0x31b89e54,
+ 0x0c82c040,
+ 0xc000b461,
+ 0x0d02c040,
+ 0xc000b442,
+ 0xa6059c22,
+ 0x588cb7a0,
+ 0x0e82c111,
+ 0x0ec0c04e,
+ 0xa9b6f208,
+ 0x0982c050,
+ 0x0d7ec008,
+ 0x991efff4,
+ 0x0df29e6a,
+ 0x0982c004,
+ 0xfff40d02,
+ 0xf2089bc8,
+ 0xf248a937,
+ 0xe220a9aa,
+ 0xc05081af,
+ 0xc0080982,
+ 0xfff40d7e,
+ 0x9e6a990b,
+ 0xc0040df2,
+ 0x0d0209c2,
+ 0x9bb5fff4,
+ 0xa937f208,
+ 0xa9aaf248,
+ 0x812ec201,
+ 0x81afe220,
+ 0x0982c050,
+ 0x0d7ec008,
+ 0x98f6fff4,
+ 0x0df29e6a,
+ 0x0982c006,
+ 0xfff40d02,
+ 0xf2089ba0,
+ 0xcfd8a9be,
+ 0xc0280e81,
+ 0xc0040982,
+ 0xfff40d3e,
+ 0x9e6a98e5,
+ 0xc0040df2,
+ 0xc0040982,
+ 0xfff40d42,
+ 0xf2089b8e,
+ 0xf248a93f,
+ 0xe220a9b2,
+ 0xc02881af,
+ 0xc0040982,
+ 0xfff40d3e,
+ 0x9e6a98d1,
+ 0xc0040df2,
+ 0xc00409c2,
+ 0xfff40d42,
+ 0xf2089b7a,
+ 0xf248a93f,
+ 0xc201a9b2,
+ 0xe220812e,
+ 0xc02881af,
+ 0xc0040982,
+ 0xfff40d3e,
+ 0x9e6a98bb,
+ 0xc0060df2,
+ 0xc0040982,
+ 0xfff40d42,
+ 0xf2489b64,
+ 0xf20aaa29,
+ 0xf248a934,
+ 0xd226a8b1,
+ 0xf2085904,
+ 0xf310a9bf,
+ 0xd0a68021,
+ 0xe2105904,
+ 0xf31080a3,
+ 0xe2108221,
+ 0xf20880b3,
+ 0xf208a235,
+ 0xb79fa0bd,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa6059c22,
+ 0x0902c121,
+ 0x0940c006,
+ 0x02870dca,
+ 0x0d020982,
+ 0x2afcc00e,
+ 0x9b1bfff4,
+ 0x09820dca,
+ 0xc2800d1e,
+ 0x010b5aec,
+ 0x3900c121,
+ 0x9b11fff4,
+ 0x438cb780,
+ 0x3a00c400,
+ 0x438cb580,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0x0922c829,
+ 0x0970c5fe,
+ 0x0a22c829,
+ 0x0a50c5fe,
+ 0x5a0cb720,
+ 0x0ca2c829,
+ 0x0ce0c5fe,
+ 0x8502c004,
+ 0x458cb580,
+ 0x450cb520,
+ 0x0a18d071,
+ 0xa241f008,
+ 0x404db520,
+ 0x413db540,
+ 0x8d00c004,
+ 0x40bdb540,
+ 0x403db540,
+ 0xf8399c22,
+ 0xf010a285,
+ 0x7500aa61,
+ 0x9164c000,
+ 0xa8c1d008,
+ 0x0a069e48,
+ 0x5200c200,
+ 0xd0083098,
+ 0xd011a0c1,
+ 0xd0100d38,
+ 0xf011a9f2,
+ 0xf0101a30,
+ 0x1984a943,
+ 0x93e2c000,
+ 0x8702cff1,
+ 0x8700cff0,
+ 0x087ec00f,
+ 0x087cc00e,
+ 0x0c1ac050,
+ 0xa8c5f029,
+ 0x2095d020,
+ 0x9e4d5ca1,
+ 0xc2002210,
+ 0x30d85a20,
+ 0x4006ba09,
+ 0xc000b420,
+ 0x1a30f011,
+ 0xffff1984,
+ 0xf21091e4,
+ 0xf010802f,
+ 0xf9f8a241,
+ 0x9c22aa9d,
+ 0x8420a60d,
+ 0x9e558502,
+ 0x7f7cb55f,
+ 0xaa61f010,
+ 0x8d8ee012,
+ 0xb55f0307,
+ 0x1a087ffc,
+ 0xd226750a,
+ 0x8540590c,
+ 0x8044e05a,
+ 0x91e0c003,
+ 0x9180c000,
+ 0x9000c001,
+ 0x9140c001,
+ 0x92a0c001,
+ 0x9380c001,
+ 0x91c0c002,
+ 0x5b0cb780,
+ 0xa881da08,
+ 0x74402888,
+ 0xb352856a,
+ 0xb7804462,
+ 0x9d57450c,
+ 0x8d88e011,
+ 0x1954d072,
+ 0xa299f208,
+ 0x9abcc014,
+ 0x91e0c002,
+ 0x450cb780,
+ 0xa91af208,
+ 0xe0119ea9,
+ 0x15148d88,
+ 0x9ab0c014,
+ 0x9060c002,
+ 0x8d88e011,
+ 0x295ed3f2,
+ 0xc0140916,
+ 0xb78099df,
+ 0xf208450c,
+ 0xc001a299,
+ 0xe01192c0,
+ 0xd3f28d88,
+ 0x0916295e,
+ 0x99d2c014,
+ 0x91a0c001,
+ 0xaa41d208,
+ 0x8c88f011,
+ 0xd0124a7d,
+ 0x0d062ace,
+ 0x018b0906,
+ 0x99c4c014,
+ 0x9e6a9e83,
+ 0x0d02018b,
+ 0x99bec014,
+ 0x9320c000,
+ 0xaa41d208,
+ 0x8c88f011,
+ 0xd0124a7d,
+ 0x0d022ace,
+ 0x018b0906,
+ 0x99b0c014,
+ 0x9e6a9e83,
+ 0xc00e018b,
+ 0xc0140d7e,
+ 0xc00099a9,
+ 0xc0019080,
+ 0xb79f90e0,
+ 0xc00f7e68,
+ 0xc00e0cfe,
+ 0x9e4a0cfc,
+ 0x7c68b59f,
+ 0x7f6cb73f,
+ 0x0a02cff1,
+ 0x0a00cff0,
+ 0x0c9ac050,
+ 0xc2002218,
+ 0x20945a21,
+ 0x324258a0,
+ 0x4006ba24,
+ 0x7f6cb59f,
+ 0xc000b481,
+ 0xa943f208,
+ 0x7fecb79f,
+ 0x8021f310,
+ 0xa241f208,
+ 0x7e6eb79f,
+ 0x7eeeb7bf,
+ 0x7f6eb7df,
+ 0x8c00c002,
+ 0xa61d9c22,
+ 0x85028440,
+ 0xf0319e9d,
+ 0x0b02abe5,
+ 0x7878b55f,
+ 0x7efcb55f,
+ 0x9d3a718e,
+ 0x91e8c001,
+ 0x7502aa41,
+ 0x9392c000,
+ 0xaad1d018,
+ 0x8d08e032,
+ 0x8d00e051,
+ 0x9eb19dcf,
+ 0xb55f8510,
+ 0xc0027f7c,
+ 0xc2800a9c,
+ 0x018b5a95,
+ 0x9aebfff4,
+ 0x7f7cb75f,
+ 0x5a88c280,
+ 0x8122c301,
+ 0x91a0c000,
+ 0x8d88e031,
+ 0x050b9dcf,
+ 0xb55f8510,
+ 0xfff47f7c,
+ 0xb75f9b19,
+ 0x0b047f7c,
+ 0xfffe718e,
+ 0xb79f92a6,
+ 0xc0507868,
+ 0xb4810c9e,
+ 0xc050c000,
+ 0xb4e20d16,
+ 0xb71fc000,
+ 0xb79f7eec,
+ 0xb7bf7d6e,
+ 0xb7df7dee,
+ 0xb7ff7e6e,
+ 0xc0027eee,
+ 0x9c228c40,
+ 0xa205f839,
+ 0x8400c010,
+ 0x5b0cb780,
+ 0x451cb740,
+ 0xa882da08,
+ 0xd011a8c1,
+ 0x58882e18,
+ 0x0880c002,
+ 0xe2107500,
+ 0xc00080a3,
+ 0x0a0a90a2,
+ 0x9100c000,
+ 0x2e14d011,
+ 0x0a067500,
+ 0x0a44d001,
+ 0x0c82c050,
+ 0xc000b481,
+ 0x0a02c004,
+ 0xb4810cb4,
+ 0x9d87c000,
+ 0x402db740,
+ 0x09a20dc2,
+ 0x0d02c008,
+ 0x0c81cff0,
+ 0x9b4dffd4,
+ 0x0a42c801,
+ 0x0a00cb10,
+ 0x0ceac032,
+ 0xc000b481,
+ 0x08c2c801,
+ 0x0888c010,
+ 0xb4210c84,
+ 0xb760c000,
+ 0x9d8f410a,
+ 0x0d81cff0,
+ 0x9b67fff4,
+ 0x0a02c801,
+ 0x0a00c00a,
+ 0x0c8ac030,
+ 0xc000b481,
+ 0x08c2c008,
+ 0xb4210c84,
+ 0xc008c000,
+ 0x0c880a02,
+ 0xc000b481,
+ 0x0d82c0c0,
+ 0xc0080992,
+ 0xc0080d02,
+ 0xc0140902,
+ 0xc00899ae,
+ 0xc0300a02,
+ 0xb4810c8e,
+ 0xc014c000,
+ 0xb79f982f,
+ 0xc0106fee,
+ 0x9c228c20,
+ 0xa205f839,
+ 0x0c82c450,
+ 0xb4810a02,
+ 0xb101c000,
+ 0xc0084220,
+ 0xc0300a40,
+ 0xb4810c8e,
+ 0xc002c000,
+ 0xc05038c0,
+ 0xb4210c82,
+ 0xc0c0c000,
+ 0x09920d82,
+ 0x0d02c008,
+ 0x0902c008,
+ 0x9983c014,
+ 0x0a02c008,
+ 0x0c8ec030,
+ 0xc000b481,
+ 0xaa1df9f8,
+ 0x9040c000,
+ 0xc450a60d,
+ 0x0a020c8a,
+ 0xc000b481,
+ 0x4240b105,
+ 0x2efce00e,
+ 0x5e90d284,
+ 0x0a02c801,
+ 0xc0300a40,
+ 0xb4810c8a,
+ 0x08c2c000,
+ 0xb4210c84,
+ 0x7740c000,
+ 0x5c0cb7c0,
+ 0x93e2c000,
+ 0x0eded031,
+ 0x09820dea,
+ 0x2ac10d02,
+ 0x1950d051,
+ 0x3900c121,
+ 0x98ddfff4,
+ 0xa9c6f248,
+ 0xc280018b,
+ 0x1a845a8f,
+ 0xc0219eaa,
+ 0xffd43d00,
+ 0xf2489a3f,
+ 0xf310a947,
+ 0xf248802b,
+ 0xc450a245,
+ 0x0a020c86,
+ 0xc000b481,
+ 0x4220b101,
+ 0x0a42c801,
+ 0x0a08c010,
+ 0x0c86c032,
+ 0xc000b481,
+ 0xc0020886,
+ 0xb4210c98,
+ 0xb740c000,
+ 0xf2485a8c,
+ 0xf048a8c5,
+ 0xd053aa51,
+ 0xc0801910,
+ 0xf3100ca2,
+ 0xb4818821,
+ 0xb7a0c000,
+ 0xc0025a8c,
+ 0xc0140d82,
+ 0xf248992f,
+ 0xf248a8c5,
+ 0xd053aa31,
+ 0xf3101910,
+ 0x70088821,
+ 0x9264ffff,
+ 0x09c20d86,
+ 0xc1210d0a,
+ 0xffd40902,
+ 0xf2489a0a,
+ 0xc0a1a9b2,
+ 0x0d040d02,
+ 0xffd409c2,
+ 0xc0c099f7,
+ 0x09920d82,
+ 0x09420d42,
+ 0x98f7c014,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x9e5da60d,
+ 0xf1245940,
+ 0xd3f15841,
+ 0xb3502d2e,
+ 0xc0024422,
+ 0xf00893e2,
+ 0xe000aa61,
+ 0xb4252a1c,
+ 0xd8084422,
+ 0x8522aa61,
+ 0x88a9e210,
+ 0x12182a1c,
+ 0xc00e9ea3,
+ 0xba1b0a7e,
+ 0xc200400b,
+ 0x21285207,
+ 0x9276c001,
+ 0xc1009e59,
+ 0x11035a20,
+ 0x5209c200,
+ 0xc2009ea2,
+ 0x9e8d58a1,
+ 0x0cb0d031,
+ 0xa8a2d208,
+ 0x2a7cc00e,
+ 0x5207c200,
+ 0x2a7cc00e,
+ 0xd208349a,
+ 0xf008a0a2,
+ 0x9ea1a963,
+ 0x2a2ed3f1,
+ 0x8128c201,
+ 0x8821f310,
+ 0xf0088502,
+ 0xd228a261,
+ 0x9eaba127,
+ 0x2d01cff0,
+ 0x59415940,
+ 0xc00e3522,
+ 0xfff42d7c,
+ 0xc0009bb1,
+ 0xd20892e0,
+ 0x9e5eaa21,
+ 0x50d8000b,
+ 0xd0293242,
+ 0xf008a205,
+ 0xd013a8e1,
+ 0xf210291e,
+ 0x75108029,
+ 0x00989e44,
+ 0xa0e1f008,
+ 0x4426b350,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x0685a60d,
+ 0x9e9e9e69,
+ 0x71820b02,
+ 0xc0000a86,
+ 0x9ea99208,
+ 0x9e6916d2,
+ 0x5a84c280,
+ 0x1a52d011,
+ 0xd0117102,
+ 0xd3f108e2,
+ 0xffff2b1e,
+ 0xd0119286,
+ 0x75100a62,
+ 0xc000028d,
+ 0x9e7391d4,
+ 0x09220d02,
+ 0x9b70fff4,
+ 0xd0111aa0,
+ 0x75100a52,
+ 0xffff9e83,
+ 0x9e7392d2,
+ 0xd0110d06,
+ 0xc00e0952,
+ 0xfff4297c,
+ 0x75909b61,
+ 0xc0009e83,
+ 0xd03192f4,
+ 0xd3f11a60,
+ 0x9e6c2b4e,
+ 0xc2009e73,
+ 0xd3f25299,
+ 0x0922295e,
+ 0x9b50fff4,
+ 0xc2009e83,
+ 0x9ea952b8,
+ 0x16d27590,
+ 0x91b2ffff,
+ 0xd3f29e73,
+ 0x010d2d5e,
+ 0x9b42fff4,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x0ca0f011,
+ 0xd09a9e99,
+ 0xd00d5a04,
+ 0xc0001a42,
+ 0x1203909a,
+ 0x9e4b1242,
+ 0xfffc9ea2,
+ 0xc0019360,
+ 0xf83993a0,
+ 0x0d8aa205,
+ 0x9835c014,
+ 0xc0140d8e,
+ 0x0d8a9832,
+ 0xaa1df9f8,
+ 0x91a0c001,
+ 0x9e520507,
+ 0x0d82c0c0,
+ 0xc0000992,
+ 0x9e5c9040,
+ 0xd1a401c6,
+ 0x08825889,
+ 0x3c80c400,
+ 0xc000b421,
+ 0x4220b104,
+ 0x9e532244,
+ 0xffff7106,
+ 0x9c229324,
+ 0xc000b463,
+ 0xf8129c22,
+ 0x9c22a062,
+ 0x0d80c200,
+ 0x9e595d89,
+ 0xc4000982,
+ 0xb4633d80,
+ 0xb203c000,
+ 0x00074620,
+ 0xc1279c22,
+ 0x9c229c8f,
+ 0xb971080a,
+ 0xc01756f1,
+ 0xc0719c81,
+ 0xc0179c80,
+ 0xb9609c80,
+ 0x9c224000,
+ 0x8460a61d,
+ 0x4504b740,
+ 0xb53f0882,
+ 0xb5207f6c,
+ 0xf0004788,
+ 0x9e2daa41,
+ 0x590cb7a0,
+ 0x7e6cb53f,
+ 0x5a08c200,
+ 0x0940d093,
+ 0xe0209ea9,
+ 0x0dc2a96d,
+ 0xc002098e,
+ 0xffd40d42,
+ 0xb7209920,
+ 0xf2085894,
+ 0x0882aa25,
+ 0x7eecb53f,
+ 0xa8a9f208,
+ 0xda089eaf,
+ 0xb580a939,
+ 0xda0842cd,
+ 0xb760a93e,
+ 0xb5205a8c,
+ 0xb54043cd,
+ 0xb540434d,
+ 0xf2084455,
+ 0xda08aa39,
+ 0xf048a9a2,
+ 0xd112a967,
+ 0x9e4d0938,
+ 0xa8c1d810,
+ 0x75002a20,
+ 0xf0489e5c,
+ 0x60c2a97d,
+ 0x5a7fc080,
+ 0x5a71c200,
+ 0x58930098,
+ 0xe2105894,
+ 0xb54080a3,
+ 0xb54046cd,
+ 0xb520474d,
+ 0xc00047cd,
+ 0xe1809182,
+ 0xc0005dc0,
+ 0xf0489284,
+ 0xd810a977,
+ 0xc000aa41,
+ 0xb7409100,
+ 0xd8105a84,
+ 0xf040aa41,
+ 0xf310a957,
+ 0xf2888021,
+ 0xf288a12b,
+ 0xf208a225,
+ 0xb760aa39,
+ 0xf2485a9c,
+ 0xf248a8a1,
+ 0xaa61a229,
+ 0xa969a8e6,
+ 0xa0b1f248,
+ 0xf2089d67,
+ 0xf208a221,
+ 0xf208a0aa,
+ 0xd858a12d,
+ 0xd858a8ea,
+ 0xd111a96d,
+ 0xda080a18,
+ 0xf208a881,
+ 0xb720a0a6,
+ 0xf2085c14,
+ 0x58c0a131,
+ 0xf28858d1,
+ 0xda10a0b5,
+ 0xb740aa61,
+ 0xb740425d,
+ 0x008942c5,
+ 0x5a20c200,
+ 0xf310589c,
+ 0xe2108021,
+ 0xa26d82a3,
+ 0xa0f1f018,
+ 0xa225f248,
+ 0xa0adf248,
+ 0x0a00c00c,
+ 0x4e8cb580,
+ 0x0880c006,
+ 0x4f0cb520,
+ 0x0cf2c42e,
+ 0xb4810a02,
+ 0xb101c000,
+ 0x28844220,
+ 0xc0007440,
+ 0xb7409182,
+ 0xd1115a8c,
+ 0xda080a28,
+ 0xc058a881,
+ 0xc0267460,
+ 0xda109172,
+ 0xb720aa61,
+ 0x8706410a,
+ 0x9dd47500,
+ 0x1ed2d002,
+ 0xb55f7448,
+ 0xc0007de4,
+ 0xf2109112,
+ 0xcffeaa79,
+ 0xf2102a3d,
+ 0xf210a279,
+ 0x2a40aa79,
+ 0xc0007500,
+ 0x0a0a9122,
+ 0x0caec060,
+ 0xc000b481,
+ 0x90e0c000,
+ 0xc0600a06,
+ 0xb4810cae,
+ 0xb720c000,
+ 0xf2c84d14,
+ 0xf288aa21,
+ 0xc801a8bd,
+ 0x9d1e3c80,
+ 0x450cb740,
+ 0x5a40c200,
+ 0xc30158a0,
+ 0x32423246,
+ 0xa251f008,
+ 0x9970c034,
+ 0xc0340a3e,
+ 0xb4810c9e,
+ 0x0882c000,
+ 0xb4210c90,
+ 0xffd4c000,
+ 0xc0069a92,
+ 0xb5408542,
+ 0x0a02469c,
+ 0x0c8ac030,
+ 0xc000b481,
+ 0x0882c002,
+ 0xb4210c84,
+ 0xc801c000,
+ 0xc0020a02,
+ 0x1c840a00,
+ 0xc000b481,
+ 0x0902c1c1,
+ 0x0940c006,
+ 0x09820dce,
+ 0xffb40d02,
+ 0xc0c09baa,
+ 0xffd40d82,
+ 0xb7809a18,
+ 0xc034468c,
+ 0xc2000cae,
+ 0xb4815a11,
+ 0x0882c000,
+ 0xb4210cfc,
+ 0xf210c000,
+ 0x2a04aa79,
+ 0x850a7500,
+ 0x471cb540,
+ 0x90a2c000,
+ 0xb5408504,
+ 0xb780471c,
+ 0xc03e470c,
+ 0xb5800c82,
+ 0xb481478c,
+ 0xc0c8c000,
+ 0xc0500882,
+ 0xb4210ce2,
+ 0xc0e0c000,
+ 0xc0380a3a,
+ 0xb4810cfa,
+ 0xf210c000,
+ 0xb720aa79,
+ 0x871e470c,
+ 0x8562c084,
+ 0x491cb540,
+ 0xc050090a,
+ 0x2a040cb6,
+ 0x38d07500,
+ 0x470cb520,
+ 0x0a02c006,
+ 0x8f28e001,
+ 0x4804b540,
+ 0xc000b481,
+ 0x0d02c03a,
+ 0xc000b442,
+ 0xc03408be,
+ 0xb4210c9e,
+ 0xb785c000,
+ 0x75005608,
+ 0x9082c000,
+ 0x98c2c054,
+ 0x490cb780,
+ 0x0c82c038,
+ 0xc000b481,
+ 0xa965da10,
+ 0xaa35f288,
+ 0x5c8cb720,
+ 0x62458502,
+ 0x462db720,
+ 0x419ab540,
+ 0x421ab540,
+ 0x429ab540,
+ 0xc2007440,
+ 0xb5805a11,
+ 0xc000430a,
+ 0xf2509102,
+ 0xb760a9ea,
+ 0x9e8c430a,
+ 0xb7e09c62,
+ 0x0b025a8c,
+ 0xb7809eae,
+ 0xc050480c,
+ 0xb4810c82,
+ 0xc030c000,
+ 0xb4c20d0a,
+ 0xc00ec000,
+ 0xc03008fe,
+ 0xb4210c8e,
+ 0xf210c000,
+ 0x2a04aa79,
+ 0xc0007500,
+ 0xc4389182,
+ 0xb4c10c8a,
+ 0xb104c000,
+ 0xc03e4220,
+ 0xb4810ca6,
+ 0xb780c000,
+ 0x7500430c,
+ 0x93a2c001,
+ 0x2a00c020,
+ 0xc0017500,
+ 0xc46090e2,
+ 0xb4c10ca2,
+ 0xb104c000,
+ 0x088a4220,
+ 0x0ca2c060,
+ 0xc000b421,
+ 0x0902c004,
+ 0x0c96c030,
+ 0xc000b441,
+ 0x430cb780,
+ 0x2a7dcfde,
+ 0x430cb580,
+ 0x08f8c002,
+ 0x0cecc00e,
+ 0xc000b421,
+ 0x0a02c201,
+ 0xc000b481,
+ 0x8502c004,
+ 0x4d9cb540,
+ 0x430cb720,
+ 0x0c96c030,
+ 0xc000b421,
+ 0x430cb780,
+ 0x75002a04,
+ 0x90e2c000,
+ 0x488cb780,
+ 0xb5800a04,
+ 0xb75f488c,
+ 0xb7807dfc,
+ 0x9d4f430c,
+ 0xb580058b,
+ 0xc034508c,
+ 0xb7809a19,
+ 0xc020438c,
+ 0x75002a00,
+ 0x287cc00e,
+ 0x7d6cb51f,
+ 0x9042c002,
+ 0xa9c6f250,
+ 0x0d02c021,
+ 0xc0100d7c,
+ 0xffb40982,
+ 0xf2509aa1,
+ 0xc021a9ce,
+ 0x0d3c0d02,
+ 0x0982c008,
+ 0x9a98ffb4,
+ 0x438cb780,
+ 0x2a00c401,
+ 0xc0007500,
+ 0xf2089262,
+ 0xf208aa6d,
+ 0x0906a8f1,
+ 0x7e6cb55f,
+ 0x0a00c010,
+ 0xa26df208,
+ 0x0880c008,
+ 0xa0f1f208,
+ 0x91c0c000,
+ 0xa927f248,
+ 0xaa29f248,
+ 0xa92cf24a,
+ 0xa8b1f248,
+ 0x8021f310,
+ 0x82a3e210,
+ 0xa225f248,
+ 0xa0adf248,
+ 0x438cb780,
+ 0x2a7dcfde,
+ 0x438cb580,
+ 0x438cb780,
+ 0x2a00c021,
+ 0xc0017500,
+ 0xb7609122,
+ 0xc0214414,
+ 0x0d140d02,
+ 0x09c2c002,
+ 0x9a5affb4,
+ 0x4494b760,
+ 0x0d02c021,
+ 0x09c20d04,
+ 0x9a52ffb4,
+ 0x441cb740,
+ 0xaa59f210,
+ 0x4484b740,
+ 0xa8c1f250,
+ 0x4394b720,
+ 0x8021f310,
+ 0x82a3e210,
+ 0x2cfecfdf,
+ 0x4394b520,
+ 0x440cb580,
+ 0x448cb520,
+ 0x4394b720,
+ 0xc4019e4c,
+ 0x75002a00,
+ 0x91a2c000,
+ 0xaa45f250,
+ 0xa8cdf250,
+ 0x1a40c002,
+ 0x440cb580,
+ 0xb52018c0,
+ 0x9e4c448c,
+ 0x2c80c400,
+ 0xcbff7640,
+ 0xb5802a7e,
+ 0xc000438c,
+ 0xffd49142,
+ 0xb7809875,
+ 0xcbfe438c,
+ 0xb5802a7d,
+ 0xb75f438c,
+ 0x76807f74,
+ 0x9362c000,
+ 0x5c0cb760,
+ 0x2d410d3c,
+ 0xa9e6f048,
+ 0x5d0d9e53,
+ 0xc0211d04,
+ 0xffb43d00,
+ 0xb7809a05,
+ 0xb75f5c0c,
+ 0xf2487f64,
+ 0xb760a907,
+ 0xf0105c1c,
+ 0xf0588025,
+ 0xb780a265,
+ 0xc100438c,
+ 0x75002a00,
+ 0x9142c000,
+ 0x9ad8ffb4,
+ 0x438cb780,
+ 0x2a7dcefe,
+ 0x438cb580,
+ 0x430cb780,
+ 0x2a00c004,
+ 0xc0027500,
+ 0xd15292a2,
+ 0xb7200ad8,
+ 0xda10418a,
+ 0xba09aa21,
+ 0xba244002,
+ 0x0a0c4002,
+ 0xc0027048,
+ 0xb73f90f8,
+ 0xb7607eec,
+ 0xc0044e94,
+ 0x0d1e0982,
+ 0x0a12d011,
+ 0x2a7cc00e,
+ 0x7eecb59f,
+ 0x99c6ffb4,
+ 0x4f14b760,
+ 0x0982c002,
+ 0xffb40d0e,
+ 0xb74099bf,
+ 0xf2084e9c,
+ 0xb740aa39,
+ 0xf2104f04,
+ 0xb75fa8a1,
+ 0xf2487eec,
+ 0xc301a8a2,
+ 0xb5408120,
+ 0x70824e9c,
+ 0x8322c001,
+ 0x4f04b540,
+ 0x9286c000,
+ 0x62199e4b,
+ 0xf3106097,
+ 0xe2108821,
+ 0x09028aa3,
+ 0x7eecb55f,
+ 0x0a00c010,
+ 0x4e8cb580,
+ 0x0880c008,
+ 0x4f0cb520,
+ 0x438cb780,
+ 0x3a00c041,
+ 0x438cb580,
+ 0x438cb780,
+ 0x2a00c005,
+ 0xc0047500,
+ 0xf2109142,
+ 0xf210a9c2,
+ 0x09c2a945,
+ 0x0c820d42,
+ 0xffb40882,
+ 0xf210999a,
+ 0xc020aa79,
+ 0x75002a00,
+ 0x9302c000,
+ 0xa9aaf208,
+ 0xa931f208,
+ 0x0d2209a2,
+ 0x08820c82,
+ 0x99a7ffb4,
+ 0xa9aef208,
+ 0xa931f208,
+ 0x0d2209a2,
+ 0x08820c82,
+ 0x99bbffb4,
+ 0x9180c000,
+ 0xa9aaf208,
+ 0xa931f208,
+ 0x0d2209c2,
+ 0x08820c82,
+ 0x9973ffb4,
+ 0x438cb720,
+ 0xc1010203,
+ 0x75002a00,
+ 0x9122c001,
+ 0xa8eada48,
+ 0xa963f208,
+ 0x28feceff,
+ 0x438cb520,
+ 0xa8edda48,
+ 0xa968f20a,
+ 0xe2205c90,
+ 0xf20880ab,
+ 0x0203a967,
+ 0xc200588c,
+ 0xf3105a0c,
+ 0xe2108221,
+ 0xf20880a3,
+ 0xf208a0e2,
+ 0xf208a269,
+ 0xf210a0e5,
+ 0xf210a0c2,
+ 0xf210a0c9,
+ 0xc001a24d,
+ 0xf2109040,
+ 0xf210aa79,
+ 0xc020a8c1,
+ 0x75002a00,
+ 0xf21008c0,
+ 0xc000a0c1,
+ 0xf2089182,
+ 0xf208aa29,
+ 0x0a20a8ad,
+ 0xa229f208,
+ 0xc00008a0,
+ 0xf2089140,
+ 0xf208aa29,
+ 0x0a40a8ad,
+ 0xa229f208,
+ 0xf20808c0,
+ 0xb780a0ad,
+ 0xcffb438c,
+ 0xc0092a7e,
+ 0xb5803a00,
+ 0xb780438c,
+ 0x75004d8c,
+ 0x9142c000,
+ 0x0c82c040,
+ 0xc000b481,
+ 0x0a02c201,
+ 0xc000b481,
+ 0x438cb780,
+ 0x2a00c008,
+ 0xc0007500,
+ 0xc1119362,
+ 0xc04e0902,
+ 0x0df20940,
+ 0x0d020982,
+ 0x9b95ffb4,
+ 0x0902c111,
+ 0x0940c026,
+ 0x09820df6,
+ 0x0d42c004,
+ 0x9b8bffb4,
+ 0x438cb780,
+ 0x2a7dcff6,
+ 0x438cb580,
+ 0x438cb780,
+ 0x2a00c080,
+ 0xc0007500,
+ 0xb76091c2,
+ 0xba1b4192,
+ 0xc0144003,
+ 0xb7809a7f,
+ 0xcf7e438c,
+ 0xb5802a7d,
+ 0xb780438c,
+ 0xc010438c,
+ 0x75002a00,
+ 0x93e2c001,
+ 0x0902c121,
+ 0x0940c00e,
+ 0x09820d9e,
+ 0xffb40d02,
+ 0xc1219b44,
+ 0xc0860902,
+ 0x0da20940,
+ 0x0d020982,
+ 0x9b3bffb4,
+ 0x7e74b75f,
+ 0xc0017680,
+ 0xf2109002,
+ 0x2a40aa79,
+ 0xc0007500,
+ 0xc1219342,
+ 0xc0020902,
+ 0x0da60900,
+ 0x0d060982,
+ 0x9b27ffb4,
+ 0x0902c121,
+ 0x0900c080,
+ 0x09820da6,
+ 0xffb40d16,
+ 0xb7809b1e,
+ 0xc021438c,
+ 0xb5803a00,
+ 0xb780438c,
+ 0xcfee438c,
+ 0xc0202a7d,
+ 0xb5803a00,
+ 0xb780438c,
+ 0xc800438c,
+ 0x75002a00,
+ 0x92c2c000,
+ 0x7d6cb79f,
+ 0x4192b760,
+ 0xa97af210,
+ 0xba1b0189,
+ 0x5d114003,
+ 0x2d044d04,
+ 0x9bd5ffb4,
+ 0x438cb780,
+ 0x2a7ec7fe,
+ 0x438cb580,
+ 0x438cb780,
+ 0x2a00c200,
+ 0xc0007500,
+ 0x0d8690c2,
+ 0xffb40982,
+ 0xb7809a36,
+ 0xc041438c,
+ 0x75002a00,
+ 0x9342c000,
+ 0x0902c101,
+ 0x0940c002,
+ 0x09820da6,
+ 0xffb40d02,
+ 0xc1019ada,
+ 0xc0800902,
+ 0x0da60940,
+ 0x0d120982,
+ 0x9ad1ffb4,
+ 0x438cb780,
+ 0x2a7ecfbf,
+ 0x438cb580,
+ 0x438cb720,
+ 0xc0090203,
+ 0x75002a00,
+ 0x9142c001,
+ 0x0902c101,
+ 0x0940c00e,
+ 0x28fecff7,
+ 0x438cb520,
+ 0x09820d9e,
+ 0xffb40d02,
+ 0xf2109ab6,
+ 0xc020aa79,
+ 0x75002a00,
+ 0x91a2c000,
+ 0x0902c101,
+ 0x0940c006,
+ 0x09820da2,
+ 0xffb40d02,
+ 0xc0009aa6,
+ 0xc1019160,
+ 0xc0860902,
+ 0x0da20940,
+ 0x0d020982,
+ 0x9a9bffb4,
+ 0x0902c1c1,
+ 0x0940c006,
+ 0x09820dce,
+ 0xffb40d02,
+ 0xc014980a,
+ 0xc03099c2,
+ 0xb4c10c8a,
+ 0xb780c000,
+ 0x0c884d8c,
+ 0xc000b481,
+ 0x0882cc01,
+ 0xb4211c88,
+ 0xc034c000,
+ 0xb7209bd9,
+ 0xd0314d8c,
+ 0x75002a10,
+ 0xb55f0902,
+ 0xc0007f6c,
+ 0xc43a91c2,
+ 0xb4c10c82,
+ 0xb104c000,
+ 0xc0114220,
+ 0xc03a3a00,
+ 0xb4810c82,
+ 0xd211c000,
+ 0x75002a10,
+ 0x9342c000,
+ 0x0c8ac450,
+ 0xc000b4c1,
+ 0x4240b102,
+ 0xc00e9e53,
+ 0xb57f29fc,
+ 0x00877f6c,
+ 0xb4c11c84,
+ 0xb104c000,
+ 0x2a104220,
+ 0xc0007500,
+ 0x589090a4,
+ 0x7f6cb53f,
+ 0x430cb780,
+ 0x0c8ac030,
+ 0x4d8cb580,
+ 0xc000b4c1,
+ 0x0a02c801,
+ 0x0a00c002,
+ 0xc000b481,
+ 0xc00408be,
+ 0xb4210c94,
+ 0xc0c0c000,
+ 0xffb40d82,
+ 0xb7609a20,
+ 0xb7804112,
+ 0x9ea4428c,
+ 0xb7209c62,
+ 0xc034468c,
+ 0x58910cae,
+ 0xc000b421,
+ 0x75000a02,
+ 0x9244c000,
+ 0x7f6cb73f,
+ 0xc0007440,
+ 0xd03191a2,
+ 0x2941091e,
+ 0x09820dea,
+ 0x19400d02,
+ 0x3900c121,
+ 0x9a15ffb4,
+ 0x9928c014,
+ 0x6408b785,
+ 0xb7807500,
+ 0xc000478c,
+ 0x2a7990a2,
+ 0x6408b5c5,
+ 0x0c82c03e,
+ 0xc000b481,
+ 0x508cb780,
+ 0xb7208702,
+ 0x0e82418a,
+ 0x7de4b55f,
+ 0x75002a08,
+ 0xb5200884,
+ 0xc000418a,
+ 0xb7209362,
+ 0xb7205a8c,
+ 0xd1114292,
+ 0xda080a18,
+ 0x0c84a881,
+ 0xba249e4c,
+ 0x58914002,
+ 0xb5207102,
+ 0xc0004292,
+ 0xb7809138,
+ 0xb5a0420a,
+ 0x0a044292,
+ 0x420ab580,
+ 0x7d74b73f,
+ 0xffe17640,
+ 0xb7809102,
+ 0xd3ff438c,
+ 0xffe17d3e,
+ 0xb75f9044,
+ 0x74807f6c,
+ 0x93a4ffe0,
+ 0x7ceeb79f,
+ 0x7d6eb7bf,
+ 0x7deeb7df,
+ 0x7e6eb7ff,
+ 0x8c60c002,
+ 0xa6059c22,
+ 0x8420c004,
+ 0x0ca2c829,
+ 0x0ce0c4e4,
+ 0xac3dc030,
+ 0x8d00e133,
+ 0xa45dc038,
+ 0xac3dc030,
+ 0xa45dc038,
+ 0xac3dc010,
+ 0xa45dc018,
+ 0xac25c010,
+ 0xa445c018,
+ 0x4504b740,
+ 0xaa41f000,
+ 0x5a8cb7a0,
+ 0xc2009e2d,
+ 0xd0935a08,
+ 0x9ea90940,
+ 0xa96de020,
+ 0xc0080dc2,
+ 0x09c20d42,
+ 0x9b77ff94,
+ 0x5c0cb780,
+ 0xa8a1f208,
+ 0xf2088502,
+ 0xf208a8a6,
+ 0xf208a103,
+ 0xf208a085,
+ 0xf208a929,
+ 0xf208a08a,
+ 0xf208a92e,
+ 0xf208a8b2,
+ 0xf248a10d,
+ 0xf208a8b1,
+ 0xf208a112,
+ 0xf208a096,
+ 0x090aa09a,
+ 0x0c92c036,
+ 0xf24808c0,
+ 0xb441a085,
+ 0x0a16c000,
+ 0xb4811c8c,
+ 0xf031c000,
+ 0xe1318c00,
+ 0x9ea38d80,
+ 0x7ffcb55f,
+ 0xb9600d02,
+ 0xf2084078,
+ 0x9dbaa103,
+ 0x5d0dd122,
+ 0xf0299e2d,
+ 0xd012a8e5,
+ 0x5c882cae,
+ 0x5908d126,
+ 0xe0389e4a,
+ 0x0d04aa4d,
+ 0x50a828bc,
+ 0xa2413242,
+ 0x91c1ffff,
+ 0xaa61f010,
+ 0x0c8ec036,
+ 0xc000b481,
+ 0x7fecb73f,
+ 0xb4211c84,
+ 0xc034c000,
+ 0xc8019afb,
+ 0xc11208c2,
+ 0xc8090890,
+ 0xc5f00a42,
+ 0xc0320a70,
+ 0xb5800cbe,
+ 0xb421428c,
+ 0x0a3ec000,
+ 0xb4810ce0,
+ 0x0882c000,
+ 0x0cc6c080,
+ 0xc000b421,
+ 0x0a42c801,
+ 0x0a18c112,
+ 0x0cc2c032,
+ 0xc000b481,
+ 0x0cdc08c0,
+ 0xc000b421,
+ 0xc0800a02,
+ 0xb4810cc6,
+ 0xc801c000,
+ 0xc11408c2,
+ 0xc0320890,
+ 0xb4210cc6,
+ 0x0a44c000,
+ 0xb4810cd8,
+ 0x0882c000,
+ 0x0cc6c080,
+ 0xc000b421,
+ 0x0a42c801,
+ 0x0a18c114,
+ 0x0ccac032,
+ 0xc000b481,
+ 0x0cd408c8,
+ 0xc000b421,
+ 0xc0800a02,
+ 0xb4810cc6,
+ 0xb79fc000,
+ 0xb7bf7aee,
+ 0xc0047b6e,
+ 0x9c228c60,
+ 0xc0010882,
+ 0xc3320c92,
+ 0xb4210c84,
+ 0xb780c000,
+ 0x873e4c8c,
+ 0xc0400a10,
+ 0xb7809c8b,
+ 0x9c22c238,
+ 0x468cb780,
+ 0xc00c0a40,
+ 0xb5807520,
+ 0xb340468c,
+ 0x850248b4,
+ 0x469cb540,
+ 0xb7809c22,
+ 0xf2084c8c,
+ 0xf208a895,
+ 0xf208a88e,
+ 0xf208a905,
+ 0xf288a99d,
+ 0xf208a906,
+ 0xf208a09d,
+ 0xf208a096,
+ 0xf208a10d,
+ 0xf208a185,
+ 0xf208a899,
+ 0xf208a892,
+ 0xf248a909,
+ 0xf248a981,
+ 0xf208a081,
+ 0xf208a09a,
+ 0xf208a111,
+ 0xf288a189,
+ 0xf248a881,
+ 0xf248a995,
+ 0xf248a89e,
+ 0xf288a90d,
+ 0xf248a085,
+ 0xf248a18d,
+ 0xf288a999,
+ 0xf248a082,
+ 0xf248a115,
+ 0xf248a891,
+ 0xf288a191,
+ 0xf288a989,
+ 0xf248a89a,
+ 0xf288a099,
+ 0xf248a10a,
+ 0xf288a19d,
+ 0xf288a99d,
+ 0xf288a09e,
+ 0xf288a895,
+ 0xf288a892,
+ 0xf288a90d,
+ 0xf288a099,
+ 0xf288a096,
+ 0xf288a111,
+ 0x9c22a18d,
+ 0xc801a60d,
+ 0xcb100a42,
+ 0xc0320a00,
+ 0xb4810cea,
+ 0xc801c000,
+ 0xc01008c2,
+ 0x0c840888,
+ 0xc000b421,
+ 0x0a42c008,
+ 0x1ce4c002,
+ 0xc000b481,
+ 0x08c2c008,
+ 0x0d0ec030,
+ 0xc000b422,
+ 0x0c82c450,
+ 0x1a40c008,
+ 0xc000b481,
+ 0x4220b101,
+ 0x38c0c002,
+ 0x4e0cb520,
+ 0x0c82c050,
+ 0xc000b421,
+ 0x0d82c0c0,
+ 0xc0080992,
+ 0xc0080d02,
+ 0xffd40902,
+ 0xc45098b8,
+ 0x0a020c86,
+ 0xc000b481,
+ 0x4220b104,
+ 0x0a02c008,
+ 0x0d0ec030,
+ 0xc000b482,
+ 0xc0080c84,
+ 0xb4811a00,
+ 0xb105c000,
+ 0xc2804220,
+ 0xc8015a35,
+ 0x08c00882,
+ 0x2afcc00e,
+ 0x5a90c280,
+ 0x2b4ed072,
+ 0xc0309ead,
+ 0xb4210c8a,
+ 0x0a42c000,
+ 0xb4810c84,
+ 0x7740c000,
+ 0x5c0cb7c0,
+ 0x9002c001,
+ 0x0eded031,
+ 0x09820dea,
+ 0x2ac10d02,
+ 0x1950d051,
+ 0x3900c121,
+ 0x980bffb4,
+ 0xa9c6f248,
+ 0xc280018b,
+ 0x1a845a8d,
+ 0xc0219eaa,
+ 0xff943d00,
+ 0xf248996d,
+ 0xd010aa45,
+ 0x024a16dc,
+ 0xa245f248,
+ 0x0c86c450,
+ 0xb4810a02,
+ 0xb104c000,
+ 0x0a6e4220,
+ 0x0c9ec034,
+ 0xc000b481,
+ 0x5a8cb720,
+ 0xaa45f248,
+ 0x4635b720,
+ 0x1940d053,
+ 0x88abf210,
+ 0x0ca2c080,
+ 0x5a0cc280,
+ 0x420cb580,
+ 0xc000b4a1,
+ 0x5608b785,
+ 0xc0037500,
+ 0xb7219262,
+ 0xb781580c,
+ 0xc030568c,
+ 0x0a047c40,
+ 0x568cb581,
+ 0x9082c000,
+ 0x98c3c034,
+ 0x538cb720,
+ 0x41b5b720,
+ 0x568cb781,
+ 0x442db740,
+ 0x62439e49,
+ 0xc0007104,
+ 0x850690b8,
+ 0x5c18b545,
+ 0x5708b785,
+ 0xb7a07500,
+ 0xc0005c94,
+ 0xb7a09262,
+ 0xf210548c,
+ 0xf208a83d,
+ 0x0d86a9a1,
+ 0x9c629e84,
+ 0xa021f208,
+ 0xa825f250,
+ 0x09869eab,
+ 0x9c629e84,
+ 0x5708b785,
+ 0xc0007500,
+ 0xb7609164,
+ 0xf2105494,
+ 0x9e84a825,
+ 0x02819c62,
+ 0x9220c000,
+ 0x5688b785,
+ 0xc0007500,
+ 0xb7809102,
+ 0xf208558c,
+ 0xc000aa81,
+ 0xb78090c0,
+ 0xf208560c,
+ 0xb720aa8d,
+ 0xb780578c,
+ 0x75004129,
+ 0xc0000303,
+ 0xb7859264,
+ 0x75005708,
+ 0x90c4c000,
+ 0xaa21f250,
+ 0x9c629ea4,
+ 0x421cb740,
+ 0xaa35f210,
+ 0x89a3e320,
+ 0x9c629ea4,
+ 0xaa39f210,
+ 0x018d9eab,
+ 0x9c629ea4,
+ 0x540cb780,
+ 0x0ca6c080,
+ 0xaa91d2c8,
+ 0xc000b4a1,
+ 0x0d92c002,
+ 0x9be4ffb4,
+ 0xffff700a,
+ 0x0d869364,
+ 0x0d0a09c2,
+ 0x0902c121,
+ 0x98c7ff94,
+ 0x5a8cb780,
+ 0xa992f248,
+ 0x0d02c0a1,
+ 0x09c20d04,
+ 0x98b2ff94,
+ 0x0d82c0c0,
+ 0x0d420992,
+ 0xffb40942,
+ 0x0a429bb2,
+ 0x0c8ec030,
+ 0xc000b481,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x5a8cb700,
+ 0x0c0276c0,
+ 0xc0000d82,
+ 0xb7809342,
+ 0xd131438c,
+ 0xb7200880,
+ 0xb5004033,
+ 0xb5004f94,
+ 0xb5005014,
+ 0x2c884994,
+ 0xcdff7640,
+ 0xb5802a7e,
+ 0x8522438c,
+ 0x9062c000,
+ 0xb5408512,
+ 0x74c04b9c,
+ 0x5914b740,
+ 0x92e2c000,
+ 0x438cb780,
+ 0xd8108502,
+ 0xb540a8c1,
+ 0xb540501c,
+ 0xb541431c,
+ 0xb540599c,
+ 0xb5404c1c,
+ 0xb520499c,
+ 0xcdff4f8c,
+ 0xb5802a7e,
+ 0xd131438c,
+ 0xb7200880,
+ 0xb7804033,
+ 0xd012430c,
+ 0x00892c14,
+ 0x2a00c008,
+ 0xcffa7500,
+ 0xb52028fd,
+ 0xc000430c,
+ 0xb78092c2,
+ 0x7600438c,
+ 0x3a00c800,
+ 0x438cb580,
+ 0x90e4c000,
+ 0xb5458506,
+ 0xc0006818,
+ 0xb7859100,
+ 0x0d866808,
+ 0xb5853a08,
+ 0xb7456808,
+ 0xd0116808,
+ 0x75002a22,
+ 0x9102c000,
+ 0x438cb780,
+ 0x3a00c010,
+ 0x438cb580,
+ 0x4c0cb780,
+ 0xc0007500,
+ 0xb78090e2,
+ 0x2a79430c,
+ 0x430cb580,
+ 0x4314b720,
+ 0x4b8cb720,
+ 0x79029e4c,
+ 0x2a2ed3f1,
+ 0x5a05c200,
+ 0x6808b585,
+ 0x9102c000,
+ 0x3e10d211,
+ 0x430cb580,
+ 0x90c0c000,
+ 0x2cfdcff6,
+ 0x4314b520,
+ 0x4314b720,
+ 0x2e10d111,
+ 0xc0007500,
+ 0x850690a2,
+ 0x4a1cb540,
+ 0xd0a27600,
+ 0x08825e1d,
+ 0x0892d002,
+ 0x79022a04,
+ 0x9102c000,
+ 0x3e10d111,
+ 0x430cb580,
+ 0x9120c000,
+ 0xc00076c0,
+ 0xc02090c2,
+ 0xb5203c80,
+ 0xb7204314,
+ 0xd011430c,
+ 0x75002a12,
+ 0x90e2c000,
+ 0x4b8cb780,
+ 0xc0003218,
+ 0xb78090c0,
+ 0x4a7d4b8c,
+ 0xb5802218,
+ 0xb720430c,
+ 0xd011430c,
+ 0x75002a14,
+ 0x9102c000,
+ 0x3a12d011,
+ 0x430cb580,
+ 0x90a0c000,
+ 0xb52028f9,
+ 0xd810430c,
+ 0xb740a8c1,
+ 0xd8104f9c,
+ 0xe210aa45,
+ 0xc20088a3,
+ 0x70485a11,
+ 0x9036c003,
+ 0x0a08d111,
+ 0xa882da08,
+ 0x430cb720,
+ 0x498cb740,
+ 0x9e4c5c91,
+ 0x4394b740,
+ 0xb5203888,
+ 0x7088430c,
+ 0x3d00c100,
+ 0x4394b540,
+ 0x9278c000,
+ 0x598cb721,
+ 0x74409e54,
+ 0x3a04c001,
+ 0x438cb580,
+ 0x9124c000,
+ 0x3d04c011,
+ 0x4394b540,
+ 0xb5418506,
+ 0xd112599c,
+ 0xb780088c,
+ 0xb720404b,
+ 0xc2004f8c,
+ 0x70485a11,
+ 0x9116c000,
+ 0x438cb780,
+ 0x3a10c001,
+ 0x438cb580,
+ 0x404bb780,
+ 0x5a11c200,
+ 0x70481a08,
+ 0x9116c000,
+ 0x438cb780,
+ 0x3a40c001,
+ 0x438cb580,
+ 0x5014b720,
+ 0x0a08d111,
+ 0xa881da08,
+ 0x58919e4c,
+ 0xc0007102,
+ 0xb7809102,
+ 0xc005438c,
+ 0xb5803a00,
+ 0xb780438c,
+ 0xc084438c,
+ 0xb5803a00,
+ 0xc000438c,
+ 0xb78091a0,
+ 0xb720430c,
+ 0x2a75438c,
+ 0x430cb580,
+ 0x28fdcffa,
+ 0x438cb520,
+ 0x430cb740,
+ 0x2922f012,
+ 0x9102c000,
+ 0x438cb780,
+ 0x3a00c080,
+ 0x438cb580,
+ 0x498cb780,
+ 0x4b94b720,
+ 0x500cb720,
+ 0xb5800a04,
+ 0x9e4c498c,
+ 0x08847888,
+ 0x500cb520,
+ 0x9222c000,
+ 0xc0007680,
+ 0xb72091c4,
+ 0xd011470c,
+ 0xb5803a22,
+ 0x8506430c,
+ 0x4c1cb540,
+ 0xb52028f9,
+ 0xd111470c,
+ 0xda080a08,
+ 0xb720a881,
+ 0xc0025014,
+ 0xc08018c0,
+ 0xc2005a7f,
+ 0x00985a71,
+ 0xb7409e4c,
+ 0x5893470c,
+ 0xb5407102,
+ 0xc001478c,
+ 0xb7409044,
+ 0x0205438c,
+ 0x2a00c080,
+ 0xc0007500,
+ 0xb7209342,
+ 0x02054f94,
+ 0xc2017642,
+ 0xb5803a00,
+ 0xc000438c,
+ 0xd111921c,
+ 0xda080a0c,
+ 0x0c8ca881,
+ 0x58919e4c,
+ 0xc0007102,
+ 0xca0190d6,
+ 0xb5403900,
+ 0xb720438c,
+ 0xd1115014,
+ 0xda080a08,
+ 0x9e4ca881,
+ 0x71025891,
+ 0x9278c000,
+ 0x438cb720,
+ 0xc0050203,
+ 0x75002a00,
+ 0x9162c000,
+ 0x3880c101,
+ 0x438cb520,
+ 0xb5408506,
+ 0xb5404a9c,
+ 0x76004b1c,
+ 0x9122c000,
+ 0x500cb780,
+ 0xc000750c,
+ 0xc0009122,
+ 0xb78092a0,
+ 0x750a500c,
+ 0x9204c000,
+ 0x4a8cb780,
+ 0xc0007500,
+ 0xb7809162,
+ 0x8502438c,
+ 0x4a9cb540,
+ 0x3a00c401,
+ 0x438cb580,
+ 0x500cb780,
+ 0xc0007506,
+ 0xb7809204,
+ 0x75004b0c,
+ 0x9162c000,
+ 0x438cb780,
+ 0xb5408502,
+ 0xc8004b1c,
+ 0xb5803a00,
+ 0xb720438c,
+ 0xd1115014,
+ 0xda080a08,
+ 0x9e4ca881,
+ 0x71025891,
+ 0x9158c000,
+ 0x4f8cb780,
+ 0xb5408502,
+ 0x0a04501c,
+ 0x4f8cb580,
+ 0x430cb780,
+ 0x85027500,
+ 0x9144c000,
+ 0x438cb780,
+ 0x2a00c400,
+ 0x85027500,
+ 0x8522e001,
+ 0x9c229d43,
+ 0x5688b785,
+ 0xb7607500,
+ 0xc001588c,
+ 0xb72093a4,
+ 0xb780590c,
+ 0x2a20432d,
+ 0xb7407500,
+ 0xb7404208,
+ 0xc0005d1c,
+ 0xb7409082,
+ 0x9d535e1c,
+ 0xa8c5c040,
+ 0x5894b720,
+ 0x1a24d031,
+ 0x6a72c002,
+ 0x691dd012,
+ 0x0c90d231,
+ 0x75009e4b,
+ 0x4035b540,
+ 0x0c90d251,
+ 0x402db580,
+ 0x4100d03c,
+ 0x4e38b411,
+ 0x402db780,
+ 0x7538c0b8,
+ 0x90dcc000,
+ 0x8572c05c,
+ 0x403db540,
+ 0x6a2dd011,
+ 0x08b0d272,
+ 0x08b8d231,
+ 0x4035b540,
+ 0x404db580,
+ 0x0a30d231,
+ 0xaa01f208,
+ 0xc0007500,
+ 0xc03e90c2,
+ 0xb4810cb6,
+ 0xd251c000,
+ 0xf2080a30,
+ 0xc03ea881,
+ 0xb4210caa,
+ 0xd231c000,
+ 0xf2080a38,
+ 0x7500aa01,
+ 0x9122c000,
+ 0x5a40c200,
+ 0x3a00c801,
+ 0xb4810c90,
+ 0xd251c000,
+ 0xf2080a38,
+ 0x7500aa01,
+ 0x90c2c000,
+ 0x0ca2c03e,
+ 0xc000b481,
+ 0x0a30d271,
+ 0xa881f208,
+ 0x0c8ac03e,
+ 0xc000b421,
+ 0xa6859c22,
+ 0x0c92c43e,
+ 0xb4810a02,
+ 0xb103c000,
+ 0xb7804220,
+ 0xda08570c,
+ 0xda08a885,
+ 0xda08a909,
+ 0xda08a189,
+ 0xda08a081,
+ 0x0cd0a105,
+ 0xb4810a02,
+ 0xb103c000,
+ 0xb7804220,
+ 0xb7c0568c,
+ 0xda08570c,
+ 0x9ea5a885,
+ 0xa88ada08,
+ 0xa189da08,
+ 0x2d80c008,
+ 0xda0876c0,
+ 0xda08a081,
+ 0xc00ba086,
+ 0xb7809102,
+ 0x0a044708,
+ 0x4708b580,
+ 0x0ca6c450,
+ 0xb4810a02,
+ 0xb103c000,
+ 0x00874220,
+ 0x2880c031,
+ 0xc00f0207,
+ 0xd0a42a7c,
+ 0xd2285861,
+ 0x028759c1,
+ 0x2afccffe,
+ 0x0a020c88,
+ 0xc000b481,
+ 0x4220b103,
+ 0x59c1d1a6,
+ 0xcffe0107,
+ 0x0cbc297c,
+ 0xc000b481,
+ 0x4220b103,
+ 0xb7820087,
+ 0xc0fc6e8a,
+ 0xd0a42880,
+ 0xb7255b19,
+ 0xd0f15690,
+ 0x1208283e,
+ 0x76409ea2,
+ 0x6e8ab502,
+ 0x4003ba12,
+ 0x90e4c000,
+ 0x5708b785,
+ 0xc0027500,
+ 0xb78593a4,
+ 0x75005708,
+ 0x81b3e331,
+ 0x0127d011,
+ 0x590cb780,
+ 0x0c827602,
+ 0x0c92d001,
+ 0xa899f208,
+ 0x28849e4c,
+ 0xb7607848,
+ 0xc0005494,
+ 0xd81090e2,
+ 0x0a04aa69,
+ 0xa269d810,
+ 0xa96bf010,
+ 0xa96cf012,
+ 0x8026f010,
+ 0x82a5e210,
+ 0xa269f010,
+ 0xa0edf010,
+ 0x4c08b782,
+ 0x08827500,
+ 0x0892d002,
+ 0x0a027602,
+ 0x0a42d002,
+ 0xc0007848,
+ 0xc07c90c2,
+ 0xda088542,
+ 0x7602a143,
+ 0xa973f010,
+ 0x90c4c000,
+ 0xaa21da10,
+ 0x9080c000,
+ 0xaa41da08,
+ 0x80a1e310,
+ 0xaa6dd810,
+ 0xa0f1f010,
+ 0x0a047606,
+ 0xa26dd810,
+ 0x9124c000,
+ 0x4788b780,
+ 0xb5800a04,
+ 0xc0064788,
+ 0x85029200,
+ 0x4798b540,
+ 0x9160c006,
+ 0x590cb720,
+ 0x5494b720,
+ 0x0127d330,
+ 0x432db780,
+ 0x8122c301,
+ 0x4545b740,
+ 0x75002a04,
+ 0x8027f010,
+ 0x8221f310,
+ 0xb5800583,
+ 0xc001454d,
+ 0x760290a2,
+ 0x90c4c000,
+ 0xaa21da10,
+ 0x9080c000,
+ 0xaa41da08,
+ 0xa27dd810,
+ 0xc0017606,
+ 0x76009082,
+ 0x91a4c000,
+ 0xd8107680,
+ 0xe002a973,
+ 0xf2108d2a,
+ 0xd8108025,
+ 0xc000a271,
+ 0x768092c0,
+ 0xa967d850,
+ 0x8d26e002,
+ 0x9160c000,
+ 0xaa21da10,
+ 0xd8507680,
+ 0xd810a967,
+ 0xe002a27d,
+ 0xf2108d2a,
+ 0xd8508025,
+ 0xb785a265,
+ 0x75005808,
+ 0x92e2c000,
+ 0x410ab780,
+ 0xc0007008,
+ 0x85029244,
+ 0x5818b545,
+ 0x0c82c43a,
+ 0xb4810a02,
+ 0xb103c000,
+ 0xcfef4220,
+ 0xc03a29fe,
+ 0xb4610c82,
+ 0xb780c000,
+ 0x7008410a,
+ 0xd0020882,
+ 0x76060892,
+ 0xd0010a02,
+ 0x78480a42,
+ 0x9242c000,
+ 0xb5458506,
+ 0xc43a5818,
+ 0x0a020c82,
+ 0xc000b481,
+ 0x4220b103,
+ 0x3980c011,
+ 0x0c82c03a,
+ 0xc000b461,
+ 0xc0017780,
+ 0x76009162,
+ 0x92c4c000,
+ 0xaa41da08,
+ 0xa967f010,
+ 0xa8f5d810,
+ 0xa8fad810,
+ 0x8021f310,
+ 0xd8100082,
+ 0x0c84a0f5,
+ 0xa0fad810,
+ 0xa265f010,
+ 0x9280c000,
+ 0xaa21da10,
+ 0xa97bf010,
+ 0xa8e9d850,
+ 0xa8eed850,
+ 0x8021f310,
+ 0xd8500082,
+ 0x0c84a0e9,
+ 0xa0eed850,
+ 0xa279f010,
+ 0xaa7dd810,
+ 0xa97ff010,
+ 0xa960f052,
+ 0xa9e7f050,
+ 0x8021f310,
+ 0xa96ff050,
+ 0xa27df010,
+ 0x8223f310,
+ 0xa8e2d850,
+ 0xa261f050,
+ 0x8037f010,
+ 0x80a1e210,
+ 0xd8500c84,
+ 0xf050a0e2,
+ 0xf050a265,
+ 0xb7bfa0ed,
+ 0xb7df7f6e,
+ 0x8c407fee,
+ 0xa6059c22,
+ 0x580cb781,
+ 0x2a00c008,
+ 0xc0007500,
+ 0xb7809282,
+ 0xb720548c,
+ 0xf2085c8c,
+ 0xb700a982,
+ 0x9e84452d,
+ 0xb7819c62,
+ 0xb500580c,
+ 0xcff6400a,
+ 0xb5812a7d,
+ 0xb781580c,
+ 0xc010580c,
+ 0x75002a00,
+ 0x91c2c001,
+ 0x5c8cb7a0,
+ 0x5494b7a0,
+ 0xa825f208,
+ 0x9e84058b,
+ 0xf2489c62,
+ 0x9ea4aa21,
+ 0xb7209c62,
+ 0xb725538c,
+ 0xb7806210,
+ 0x9e49422b,
+ 0xc0007048,
+ 0xf2109222,
+ 0xf208a9a1,
+ 0x0d86a83d,
+ 0x9c629e84,
+ 0xaa25f248,
+ 0xa021f210,
+ 0x0986058b,
+ 0x9c629ea4,
+ 0x580cb781,
+ 0x2a7dcfee,
+ 0x580cb581,
+ 0x580cb721,
+ 0xc0200203,
+ 0x75002a00,
+ 0x90c2c000,
+ 0x28fdcfde,
+ 0x580cb521,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xa205f839,
+ 0x580cb781,
+ 0x7d00c030,
+ 0x9162c000,
+ 0x4d8cb780,
+ 0x2a00c008,
+ 0xc0007500,
+ 0xfff49082,
+ 0xb7609b92,
+ 0xff944d94,
+ 0x0a029b01,
+ 0x0ca2c060,
+ 0xc000b481,
+ 0x4d94b760,
+ 0x99ebfff4,
+ 0x4788b780,
+ 0x7534c01c,
+ 0x9104c000,
+ 0xb5458506,
+ 0x85026418,
+ 0x4798b540,
+ 0x5608b785,
+ 0xc0017500,
+ 0xb7809282,
+ 0xb720538c,
+ 0xda084710,
+ 0x9e4ca88d,
+ 0xc0017102,
+ 0xb7219044,
+ 0x0203580c,
+ 0x2a00c010,
+ 0xc0007500,
+ 0xc0209102,
+ 0xb5213880,
+ 0xfff4580c,
+ 0xb7819b5c,
+ 0xb725580c,
+ 0xb7206208,
+ 0x85024012,
+ 0x4718b540,
+ 0xb5250884,
+ 0xb5206208,
+ 0xc0184112,
+ 0xb5813a00,
+ 0xb780580c,
+ 0xc0104d8c,
+ 0xc0007500,
+ 0xfff49084,
+ 0xf9f89931,
+ 0x9c22aa1d,
+ 0xb780a61d,
+ 0xda085b0c,
+ 0xb720a882,
+ 0xd0915a8c,
+ 0x75002e10,
+ 0xc0040383,
+ 0xd0119282,
+ 0x85022e14,
+ 0x5c18b545,
+ 0xb5e10f82,
+ 0x75005694,
+ 0xb5458506,
+ 0xc0005618,
+ 0xb5459082,
+ 0xd1115698,
+ 0x75002e10,
+ 0x9082c000,
+ 0x5718b545,
+ 0xc0409e4c,
+ 0x75002a00,
+ 0x9082c000,
+ 0x5798b545,
+ 0x5708b785,
+ 0xb7c07500,
+ 0xc0025c94,
+ 0xc8099144,
+ 0xc6920a42,
+ 0xc8090a20,
+ 0xc72c08c2,
+ 0xc80908f0,
+ 0xc77c0cc2,
+ 0xc8090cd0,
+ 0xc74c0942,
+ 0xc8090940,
+ 0xc68a0d42,
+ 0xc8090d10,
+ 0xc80809c2,
+ 0xc80909d0,
+ 0xc8520dc2,
+ 0xc8090de0,
+ 0xc8bc0c42,
+ 0xc8090c00,
+ 0xc67c0842,
+ 0xc8090860,
+ 0xc6820ac2,
+ 0xc8090aa0,
+ 0xc67e0ec2,
+ 0xc8090e80,
+ 0xc8be0b42,
+ 0xf2100b00,
+ 0xf210a249,
+ 0xf210a0d1,
+ 0xf210a0d6,
+ 0xf210a159,
+ 0xf210a14e,
+ 0xf250a1dd,
+ 0xf250a1c2,
+ 0xf250a046,
+ 0xf210a049,
+ 0xf210a2c5,
+ 0xf250a2c2,
+ 0xf210a34d,
+ 0xd131aa4d,
+ 0x9eab0af8,
+ 0x9c629ea4,
+ 0x5b0cb780,
+ 0x5414b740,
+ 0x4092b5e0,
+ 0xa881da08,
+ 0xa921d208,
+ 0x0a70d231,
+ 0xa882f208,
+ 0x2880c010,
+ 0xd8107440,
+ 0xb520a14d,
+ 0xc0004614,
+ 0xb7819102,
+ 0xc040580c,
+ 0xb5813a00,
+ 0xb785580c,
+ 0x75005608,
+ 0x9042c005,
+ 0x580cb781,
+ 0x7d00c030,
+ 0x9082c000,
+ 0x9a93fff4,
+ 0x5394b720,
+ 0xaa65f2c8,
+ 0x434db720,
+ 0xb7c07048,
+ 0x06835c94,
+ 0x9102c000,
+ 0xaa4df250,
+ 0x09f8d132,
+ 0x9c629ea4,
+ 0x408ab720,
+ 0xb5428502,
+ 0x74404c98,
+ 0x4d18b542,
+ 0x4d98b542,
+ 0x90e2c000,
+ 0xaa35da10,
+ 0xc0007048,
+ 0xb7859344,
+ 0xda105688,
+ 0xf210a9b6,
+ 0x8502a8c9,
+ 0xb5407500,
+ 0x850a409a,
+ 0x8d24e001,
+ 0x1d849d4f,
+ 0x9c629e8c,
+ 0xaa51f210,
+ 0x9ea40d8a,
+ 0xc0009c62,
+ 0xf21090e0,
+ 0x0d86aa51,
+ 0x9c629ea4,
+ 0x580cb781,
+ 0x408ab720,
+ 0x548cb7a0,
+ 0xb5458502,
+ 0xc0086218,
+ 0xb5813a00,
+ 0xf210580c,
+ 0x9eabaa41,
+ 0xb5200884,
+ 0x9ea4408a,
+ 0xb7209c62,
+ 0xb780578c,
+ 0x75004129,
+ 0xc0000303,
+ 0xf20892e4,
+ 0xf210a9a1,
+ 0x0d82a85d,
+ 0x9c629e84,
+ 0xa021f208,
+ 0xa845f250,
+ 0x09829eab,
+ 0x9c629e84,
+ 0xaa21da08,
+ 0x6e8ab582,
+ 0x9180c000,
+ 0x558cb720,
+ 0xaa29d210,
+ 0x44bbb740,
+ 0x8021f310,
+ 0x44abb580,
+ 0xa8c9d208,
+ 0xc0007440,
+ 0xb7809122,
+ 0x8506450c,
+ 0xa117f208,
+ 0x90c0c000,
+ 0x450cb780,
+ 0xa095f208,
+ 0x540cb720,
+ 0x41abb780,
+ 0x6e8ab582,
+ 0x400ab580,
+ 0x410ab580,
+ 0x9100c000,
+ 0x450cb780,
+ 0xa899da08,
+ 0x410ab520,
+ 0x7e6eb79f,
+ 0x7eeeb7bf,
+ 0x7f6eb7df,
+ 0x7feeb7ff,
+ 0x8c00c002,
+ 0x9c229c22,
+ 0x4003ba1b,
+ 0x9e5c9e59,
+ 0x4002ba03,
+ 0x4003ba12,
+ 0x9e537040,
+ 0x9136c000,
+ 0xc0007006,
+ 0xc8129158,
+ 0xc00072c4,
+ 0x9e519180,
+ 0xc0007002,
+ 0x9e8290bc,
+ 0x90a0c000,
+ 0x70c8cc10,
+ 0x9e509e9a,
+ 0xa61d9c22,
+ 0xd3f10787,
+ 0x9eab2efe,
+ 0xc0140982,
+ 0x9eab99ed,
+ 0x2a8ed3f2,
+ 0xc0140986,
+ 0xb72099e7,
+ 0xb740590c,
+ 0xd0145d9c,
+ 0xb7801952,
+ 0xd3f2432d,
+ 0x9e2d290e,
+ 0x75002a20,
+ 0xa96dc020,
+ 0xc0000183,
+ 0xb74090c2,
+ 0xc0205e9c,
+ 0xc434a96d,
+ 0x0a020c9e,
+ 0xc000b481,
+ 0x4220b107,
+ 0x5e20d122,
+ 0x0cfac036,
+ 0xb4813228,
+ 0xd2a2c000,
+ 0x0c845ca0,
+ 0xb42130d2,
+ 0x093ec000,
+ 0x1ce0c002,
+ 0xc000b441,
+ 0x508cb780,
+ 0x75002a08,
+ 0x9262c00c,
+ 0xaa79f008,
+ 0x75002a20,
+ 0x91a2c00c,
+ 0x0dc2c008,
+ 0x990eff94,
+ 0xc2800281,
+ 0x9e8d5884,
+ 0x5b43d2a4,
+ 0x4003ba2d,
+ 0x5e7fd2a2,
+ 0xc2009e69,
+ 0x02185a75,
+ 0x5c84d322,
+ 0x5a8fd224,
+ 0xba369e8e,
+ 0xd3224003,
+ 0x9e715e7f,
+ 0x5a75c200,
+ 0xd2240218,
+ 0xc0345b0f,
+ 0x08c20c9e,
+ 0xc000b421,
+ 0x0d92c004,
+ 0x98e8ff94,
+ 0x420ab780,
+ 0x7d3edffc,
+ 0x280c0a82,
+ 0x9004c001,
+ 0x428ab780,
+ 0x7d3edffc,
+ 0x9344c000,
+ 0x5b8cb720,
+ 0x402bb780,
+ 0x6194b720,
+ 0x620cb720,
+ 0x5a11c200,
+ 0x5904d226,
+ 0x80a3e210,
+ 0x80abe220,
+ 0x0d020b02,
+ 0x402bb5a0,
+ 0x404bb5a0,
+ 0x9100c001,
+ 0xd0117402,
+ 0xd0214300,
+ 0xc0014500,
+ 0xc0089022,
+ 0xff940dc2,
+ 0x028198b7,
+ 0x5884c280,
+ 0xba129e8a,
+ 0xd1224003,
+ 0x9e515e7f,
+ 0x5a79c200,
+ 0xd2240218,
+ 0xc280590b,
+ 0xc3005b43,
+ 0xba315884,
+ 0xc3004002,
+ 0xc2005a7f,
+ 0x02685a79,
+ 0x5b0bc200,
+ 0x420ab780,
+ 0x7d3edffc,
+ 0x428ab720,
+ 0x9144c000,
+ 0x7c7edffc,
+ 0x4100d011,
+ 0x4280d011,
+ 0x91c2c004,
+ 0x7d3edffc,
+ 0x92e4c000,
+ 0x400aba21,
+ 0x9262c000,
+ 0x6184b740,
+ 0x6204b760,
+ 0xd2261a04,
+ 0x9e555904,
+ 0xc8309e2d,
+ 0x9e3da14e,
+ 0xc830010d,
+ 0xc003a34d,
+ 0xba0992a0,
+ 0xc001400a,
+ 0xb7209324,
+ 0xb7405b8c,
+ 0xb7806184,
+ 0x9e2d402b,
+ 0x5a11c200,
+ 0xd2261a04,
+ 0xb7a05904,
+ 0xc830620c,
+ 0xb780a14e,
+ 0x9d5d402b,
+ 0xa9c6d821,
+ 0x5a11c200,
+ 0xd2261a04,
+ 0xd8005904,
+ 0x0d02a9c1,
+ 0x4003ba1b,
+ 0xa34dc830,
+ 0x4002ba1b,
+ 0x9ad2fff4,
+ 0x428ab780,
+ 0x4002ba24,
+ 0x5904d226,
+ 0x9d470a04,
+ 0x5904d226,
+ 0xc8509d53,
+ 0xca50a9a6,
+ 0x0d02a985,
+ 0x9200c001,
+ 0x6184b740,
+ 0x1a12d011,
+ 0x5984d228,
+ 0x5904d0a6,
+ 0xb7a09e2d,
+ 0xd011620c,
+ 0xc8200a12,
+ 0xc830a162,
+ 0xd226a9ce,
+ 0x9dd95904,
+ 0xa9cdc830,
+ 0xa361c820,
+ 0x4003ba1b,
+ 0x4002ba1b,
+ 0x9aa2fff4,
+ 0x428ab780,
+ 0x4002ba24,
+ 0x5904d226,
+ 0x9d470a04,
+ 0x5904d226,
+ 0x9d539eb2,
+ 0xa9a6c850,
+ 0xa985ca50,
+ 0x4002ba28,
+ 0x4003ba1b,
+ 0x4002ba1b,
+ 0x9a8afff4,
+ 0x4002ba10,
+ 0x5e04d2a2,
+ 0x124a0d72,
+ 0x4002ba04,
+ 0xc4149e54,
+ 0xba097000,
+ 0xc4104002,
+ 0x74007048,
+ 0xc0000003,
+ 0x10039076,
+ 0x4002ba00,
+ 0x5e04d322,
+ 0x00d0d020,
+ 0xba041244,
+ 0x9e544002,
+ 0x7000c414,
+ 0x4002ba09,
+ 0x7048c410,
+ 0x5e7dd0a2,
+ 0x74009dc9,
+ 0xc0010003,
+ 0x5c870494,
+ 0x4003ba29,
+ 0x9076c000,
+ 0xba001003,
+ 0x02204002,
+ 0x58fdc200,
+ 0xc2000242,
+ 0xc7fe5a07,
+ 0xc7fe2efc,
+ 0x093e2a7c,
+ 0x0c9ec034,
+ 0xc000b441,
+ 0x5c88d2a2,
+ 0x5a48c200,
+ 0x0c92c082,
+ 0x28fccffe,
+ 0xb4a132c2,
+ 0xc082c000,
+ 0xb4a20d16,
+ 0x0c88c000,
+ 0xc000b4a1,
+ 0xb4a20d08,
+ 0x0c88c000,
+ 0xc000b4a1,
+ 0xb4a20d08,
+ 0x0c88c000,
+ 0xc000b4a1,
+ 0xb4a20d08,
+ 0x0c88c000,
+ 0xc000b4a1,
+ 0xb4a20d08,
+ 0x0c88c000,
+ 0xc000b4a1,
+ 0xb4a20d08,
+ 0x0c88c000,
+ 0xc000b4a1,
+ 0xb4a20d08,
+ 0x0c88c000,
+ 0xc000b4a1,
+ 0xb4a20d08,
+ 0xb780c000,
+ 0xdffc418a,
+ 0xc0007d3e,
+ 0x0a4a9184,
+ 0x0c9ec034,
+ 0xc000b481,
+ 0x0d5ac082,
+ 0xb4229e79,
+ 0xc034c000,
+ 0xb4e10c9e,
+ 0xb79fc000,
+ 0xb7bf7e6e,
+ 0xb7df7eee,
+ 0xb7ff7f6e,
+ 0xc0027fee,
+ 0x9c228c00,
+ 0x7cfec01c,
+ 0xc0009e58,
+ 0xd01193e4,
+ 0x75061a02,
+ 0x93f4c000,
+ 0x1a0ad011,
+ 0xc0007506,
+ 0xd02690d2,
+ 0xc0015904,
+ 0xd0319120,
+ 0x751e1a02,
+ 0x90d2c000,
+ 0x0900d033,
+ 0x9000c001,
+ 0x5a04c000,
+ 0x1940d053,
+ 0x9340c000,
+ 0x1a02d011,
+ 0xc0007506,
+ 0x852290b2,
+ 0x9240c000,
+ 0x1a0ad011,
+ 0xc0007526,
+ 0xd0319172,
+ 0xc2000a0a,
+ 0x024258fd,
+ 0x5907d226,
+ 0x9080c000,
+ 0x190cd013,
+ 0x9c229d43,
+ 0x9c220802,
+ 0x540cb780,
+ 0xda088502,
+ 0xf010a88d,
+ 0xf010a16b,
+ 0xf010a16f,
+ 0xd810a173,
+ 0xd810a16f,
+ 0xf010a16b,
+ 0x9c22a0e1,
+ 0x5514b720,
+ 0xa8e9d810,
+ 0x414bb520,
+ 0xaa71f010,
+ 0x558cb740,
+ 0x5a0fc200,
+ 0xa245f048,
+ 0xa8edf010,
+ 0x41cdb520,
+ 0xaa69f010,
+ 0x414db580,
+ 0xa96ff010,
+ 0xa869f010,
+ 0x8021e210,
+ 0xa041f008,
+ 0xc0309c22,
+ 0xb740ac7d,
+ 0xc038539c,
+ 0xc030a45d,
+ 0xc038ac7d,
+ 0xc030a45d,
+ 0xc038ac7d,
+ 0xb720a45d,
+ 0xb7805314,
+ 0x8706540c,
+ 0x578cb720,
+ 0x8576c002,
+ 0xa108d28a,
+ 0x475bb540,
+ 0xb5408502,
+ 0xb5404039,
+ 0x9c2240a1,
+ 0x8440a61d,
+ 0x5688b785,
+ 0x07877500,
+ 0x93c2c000,
+ 0x5394b720,
+ 0x4149b720,
+ 0x2a1ed3f1,
+ 0x7524c004,
+ 0xd0030902,
+ 0x9e4f1922,
+ 0x42440a7f,
+ 0xb55f8752,
+ 0x8f387e64,
+ 0x7ee4b55f,
+ 0xb55f8f0c,
+ 0x20947f64,
+ 0x2a44c002,
+ 0x9340c000,
+ 0x5394b720,
+ 0x4149b720,
+ 0x2a1ed3f1,
+ 0x0902753c,
+ 0x1922d003,
+ 0x0a7f9e4f,
+ 0x87324244,
+ 0x7e64b55f,
+ 0xb55f8f20,
+ 0x8f087ee4,
+ 0x7f64b55f,
+ 0x2a742094,
+ 0xb5203098,
+ 0xb7c04149,
+ 0xb7a0540c,
+ 0xb7a0530c,
+ 0xd0115814,
+ 0x85020e72,
+ 0xa8cdf248,
+ 0xf2080109,
+ 0xf210a127,
+ 0xf248a22d,
+ 0xf208a0a1,
+ 0x0189aa6d,
+ 0x59ffd224,
+ 0xc0540d02,
+ 0x097f98dd,
+ 0x01819e92,
+ 0xc0540581,
+ 0xf20898d7,
+ 0x9eaeaa35,
+ 0xd2240089,
+ 0x720258ff,
+ 0xc0009e6b,
+ 0xc00090fa,
+ 0x700290e4,
+ 0x9094c000,
+ 0xa055f210,
+ 0xa967f008,
+ 0xaa65f248,
+ 0xa949f208,
+ 0x8021f310,
+ 0x5908d124,
+ 0xd2240089,
+ 0x769c58ff,
+ 0xa0e9f808,
+ 0x90b2c000,
+ 0xc000850a,
+ 0xc10091e0,
+ 0x751c5a04,
+ 0x90b2c000,
+ 0xc000850e,
+ 0xc00490e0,
+ 0x850a7698,
+ 0x8d22e009,
+ 0xaa79f208,
+ 0xa8d5f210,
+ 0xc3011209,
+ 0x58906245,
+ 0xc0007048,
+ 0xd2d09236,
+ 0x7500aa45,
+ 0x9184c000,
+ 0xaa59da50,
+ 0xd2d08506,
+ 0x0a04a147,
+ 0xa259da50,
+ 0x93e0c000,
+ 0xa8f9f208,
+ 0xaa55f210,
+ 0x6095c301,
+ 0x5a0cc200,
+ 0xc0007102,
+ 0xd2d0923c,
+ 0x7500aa45,
+ 0x9184c000,
+ 0xaa59da50,
+ 0xd2d08506,
+ 0x1a04a147,
+ 0xa259da50,
+ 0x90a0c000,
+ 0xd2d08502,
+ 0xda50a147,
+ 0xba24aa59,
+ 0xc0044002,
+ 0xc000752a,
+ 0xc00290da,
+ 0xc000855a,
+ 0xc0089100,
+ 0xc0007502,
+ 0xc00490dc,
+ 0xda508506,
+ 0xda50a15b,
+ 0xf008a8d9,
+ 0xf208aa6d,
+ 0xba09a8ee,
+ 0x62434002,
+ 0x5594b740,
+ 0x85029e49,
+ 0xd0506243,
+ 0xc002a959,
+ 0xd2280a00,
+ 0x74825919,
+ 0xa167f008,
+ 0xc0000685,
+ 0xf21090c4,
+ 0xc000aa55,
+ 0xf21092a0,
+ 0xf208a8d6,
+ 0xd0a2aa79,
+ 0x12095c90,
+ 0xc0007048,
+ 0x764090b8,
+ 0x91dcc000,
+ 0x5d04d0a6,
+ 0x802bf210,
+ 0x5a13c200,
+ 0x8a21f310,
+ 0xa265f008,
+ 0x9080c000,
+ 0xa164f00a,
+ 0xaa49f208,
+ 0x75020a04,
+ 0xa3eaf008,
+ 0xa249f208,
+ 0x9144c000,
+ 0xaa61d208,
+ 0xa265dac8,
+ 0xa251da48,
+ 0x9000c009,
+ 0xaa31d250,
+ 0xc0007500,
+ 0xd2509184,
+ 0x7500aa39,
+ 0x9142c000,
+ 0xaa41da88,
+ 0xc0007504,
+ 0x850690b4,
+ 0x9060c000,
+ 0xd2888502,
+ 0xda08a153,
+ 0xf208a94b,
+ 0xf252a9cd,
+ 0xd0b1a954,
+ 0xe2100af0,
+ 0xd20889a7,
+ 0xd1a4a922,
+ 0xe0205987,
+ 0x5d0483a7,
+ 0xc03455eb,
+ 0xf2089b77,
+ 0xf250a9ca,
+ 0xd011aa45,
+ 0x85021cb4,
+ 0xd20860c3,
+ 0xf250a8a2,
+ 0x1d84a157,
+ 0xd0309e5b,
+ 0x5d850102,
+ 0x81afe220,
+ 0xf2500503,
+ 0x55e7a1c6,
+ 0x9b5ec034,
+ 0xaa31d250,
+ 0xf2507500,
+ 0xc001a045,
+ 0xda4890e2,
+ 0x7500aa55,
+ 0xa957da48,
+ 0x9102c000,
+ 0xaa41da88,
+ 0x5a40e200,
+ 0x9144c000,
+ 0x548cb780,
+ 0xa881da08,
+ 0xa0e1dac8,
+ 0x90e0c001,
+ 0x5a45c200,
+ 0x8021f310,
+ 0xa261dac8,
+ 0xa9e2dac8,
+ 0xa9c1da88,
+ 0xc0340d02,
+ 0x18049b35,
+ 0x92a0c000,
+ 0xaa49da08,
+ 0xa927da50,
+ 0x5a40c200,
+ 0x5a45c200,
+ 0x8021f310,
+ 0xa261dac8,
+ 0xa9e2dac8,
+ 0xa9c9da08,
+ 0xc0340d02,
+ 0xdac89b1f,
+ 0xd031a061,
+ 0xd2240e72,
+ 0x76c25993,
+ 0xaa49f208,
+ 0xd00d0d82,
+ 0x75040db2,
+ 0x9094c001,
+ 0xa8e2dac8,
+ 0xa8d1da48,
+ 0x0e14d011,
+ 0xc0007048,
+ 0xda10913a,
+ 0xd011a941,
+ 0x70881a14,
+ 0x90d6c000,
+ 0x1e12d011,
+ 0x91c0c000,
+ 0x1e14d011,
+ 0xc0007048,
+ 0xd01190f8,
+ 0x70880a14,
+ 0x90dcc000,
+ 0x0e12d011,
+ 0xa261dac8,
+ 0xa963dac8,
+ 0x882ff210,
+ 0xa261dac8,
+ 0xa8e1dac8,
+ 0x7e7cb75f,
+ 0xc0007075,
+ 0xda109298,
+ 0xd011a8c2,
+ 0x70481e14,
+ 0x0a12d00e,
+ 0x913cc000,
+ 0x0e14d011,
+ 0xc0007048,
+ 0xd01190dc,
+ 0xdac81a12,
+ 0xf208a261,
+ 0x7504aa49,
+ 0x9034c001,
+ 0xaa6dd208,
+ 0xc000752c,
+ 0xda109392,
+ 0xb75fa943,
+ 0xda487ee4,
+ 0xe010aa5d,
+ 0xba2488a5,
+ 0x71024002,
+ 0x91f6c000,
+ 0x7f64b75f,
+ 0xa8e1dac8,
+ 0x8825f010,
+ 0xc0007048,
+ 0xd01190dc,
+ 0xdac81a14,
+ 0xd208a261,
+ 0xdac8a969,
+ 0x7104aa61,
+ 0xa8e1dac8,
+ 0xd00a0a02,
+ 0x9ea21a42,
+ 0xa8e6d208,
+ 0x4d7d2098,
+ 0x21289e54,
+ 0x9e4a3094,
+ 0x5a40c080,
+ 0x5a41c200,
+ 0x09027088,
+ 0x1922d004,
+ 0x42440a7f,
+ 0x20989e92,
+ 0x24949d19,
+ 0x3494c301,
+ 0xa0e2dac8,
+ 0xa0e6dac8,
+ 0xa0d2da48,
+ 0xdac88502,
+ 0x8706aa65,
+ 0xa148d28a,
+ 0xa14ff208,
+ 0xa133d250,
+ 0xa13bd250,
+ 0xa15bd288,
+ 0xa137d250,
+ 0xa15fd288,
+ 0xa127da50,
+ 0xa14bda08,
+ 0xa157da48,
+ 0xa143da88,
+ 0xa25dda48,
+ 0x7d6eb79f,
+ 0x7deeb7bf,
+ 0x7e6eb7df,
+ 0x7eeeb7ff,
+ 0x8c40c002,
+ 0xa60d9c22,
+ 0x558cb7c0,
+ 0x540cb780,
+ 0x5514b7c0,
+ 0x76c20802,
+ 0xa182f208,
+ 0xc0030289,
+ 0xb7a09044,
+ 0xf2485314,
+ 0xda10a045,
+ 0xf210a049,
+ 0xf210a9b6,
+ 0x0d02a9a5,
+ 0xc0345d84,
+ 0xda089a3f,
+ 0x0a22a8aa,
+ 0x7008c010,
+ 0xc01208c3,
+ 0x76407002,
+ 0x92e2c000,
+ 0x538cb780,
+ 0xa88df208,
+ 0xa8a6f210,
+ 0x5914d0a6,
+ 0x88a3e210,
+ 0x5d04d0a6,
+ 0xc2015897,
+ 0xe210812a,
+ 0x088880a3,
+ 0xf248588b,
+ 0xf210a0b1,
+ 0xd226aa25,
+ 0xf3105904,
+ 0xf2488021,
+ 0xd224a8b1,
+ 0x9e4c5889,
+ 0xb3117102,
+ 0x9e894828,
+ 0xa0b2f248,
+ 0xaa51d248,
+ 0xc0007500,
+ 0xd24891e2,
+ 0x7500aa59,
+ 0x9144c000,
+ 0x5d0cd0a6,
+ 0x802bf210,
+ 0x5a0fc200,
+ 0xa231f248,
+ 0xa8b1f248,
+ 0x580cb740,
+ 0xf0086211,
+ 0xc200a8da,
+ 0x10985a17,
+ 0xc4109e8a,
+ 0xf2487244,
+ 0x8502a0b2,
+ 0xa14bf210,
+ 0xa14ff210,
+ 0xa143f208,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0xb720a61d,
+ 0xb7e05814,
+ 0xb740558c,
+ 0xf20840dd,
+ 0x9e9daa61,
+ 0x8821f310,
+ 0x5404b760,
+ 0x40cdb580,
+ 0xaa29d210,
+ 0xa265d080,
+ 0xa8a9d210,
+ 0x74429e4d,
+ 0xb4279e5c,
+ 0xb7c04622,
+ 0xb7c05394,
+ 0xf20a530c,
+ 0xf210a960,
+ 0xf208aa4d,
+ 0xf040a957,
+ 0xf310a9f7,
+ 0xe3108a21,
+ 0xf31080a1,
+ 0xde018031,
+ 0xf0407440,
+ 0xf208a275,
+ 0xc000a0d5,
+ 0xcf0190d6,
+ 0xf2080a02,
+ 0xf210a255,
+ 0xf208a94f,
+ 0xf310aa61,
+ 0xfa088821,
+ 0x0089a829,
+ 0x58ffd224,
+ 0x0002e000,
+ 0xd0030402,
+ 0xd0220c02,
+ 0xc0005e0c,
+ 0xd02058f5,
+ 0xc0003118,
+ 0xe000590c,
+ 0x15201120,
+ 0x1d22d003,
+ 0x5cf4d122,
+ 0x5a0dc100,
+ 0xf0003198,
+ 0x0087aa61,
+ 0x58ffd1a4,
+ 0xfa087504,
+ 0xfa08a029,
+ 0xc000a0ad,
+ 0xd0b19344,
+ 0xd2080e60,
+ 0xf208a882,
+ 0xf208a9a9,
+ 0x9e4ca8a5,
+ 0x5985d1a4,
+ 0x5133d026,
+ 0x81afe220,
+ 0xf2080503,
+ 0xc034a1c6,
+ 0xf2089963,
+ 0xc001a045,
+ 0xf2089320,
+ 0xd800aa29,
+ 0x8502a8e9,
+ 0xa16fd080,
+ 0xf2081a04,
+ 0x0884a229,
+ 0xa0e9d800,
+ 0xa8a2d210,
+ 0xc0017640,
+ 0xf21090e4,
+ 0xf040aa5d,
+ 0x6a36a8f5,
+ 0x5a13c200,
+ 0xc0007048,
+ 0x8506929c,
+ 0xa12bd210,
+ 0xaa29f208,
+ 0xc0007500,
+ 0xd21091c2,
+ 0xda48aa49,
+ 0xf310a967,
+ 0xda488021,
+ 0xc000a265,
+ 0xd2109080,
+ 0xf208a0aa,
+ 0x7500aa29,
+ 0x9084c000,
+ 0xa229d210,
+ 0x7e6eb79f,
+ 0x7eeeb7bf,
+ 0x7f6eb7df,
+ 0x7feeb7ff,
+ 0x8c00c002,
+ 0xb7809c22,
+ 0xb720558c,
+ 0xf208540c,
+ 0xb720a903,
+ 0x9e8a4035,
+ 0x812fe210,
+ 0x01897642,
+ 0xa101f208,
+ 0x9144c008,
+ 0xaa49d810,
+ 0xc0007500,
+ 0xd09090e2,
+ 0x76c0a9ce,
+ 0x91c2c000,
+ 0x550cb780,
+ 0x530cb720,
+ 0xa88ada08,
+ 0x00039ea0,
+ 0x46b3b520,
+ 0x9220c001,
+ 0x5514b720,
+ 0x538cb720,
+ 0x414bb780,
+ 0x412bb740,
+ 0xd0116a14,
+ 0x710268a6,
+ 0x530cb700,
+ 0xc0000403,
+ 0xb78091bc,
+ 0xb72046aa,
+ 0xba24414a,
+ 0x6a164002,
+ 0x70485888,
+ 0x917ac000,
+ 0x414ab720,
+ 0x6a26d3f1,
+ 0x5a23c200,
+ 0xc0007048,
+ 0x8506915c,
+ 0xa177d048,
+ 0xd090850e,
+ 0xc000a14b,
+ 0xd0489080,
+ 0xb780a1f6,
+ 0xf208580c,
+ 0x747ca88d,
+ 0x93b2c004,
+ 0xaa49f010,
+ 0xc0007502,
+ 0xd8109364,
+ 0x7500aa49,
+ 0x90e2c000,
+ 0xaa4dd090,
+ 0xc0007500,
+ 0xf0489222,
+ 0x8502a8e5,
+ 0xa157d090,
+ 0x412cb520,
+ 0x414ab780,
+ 0x40aab580,
+ 0xa15bd090,
+ 0x93e0c003,
+ 0xa8dad090,
+ 0xc0007640,
+ 0xb7809342,
+ 0xb72040aa,
+ 0xba24414a,
+ 0x688c4002,
+ 0xc2000242,
+ 0xb5805a0b,
+ 0xf04840aa,
+ 0x8502a8e5,
+ 0x412cb520,
+ 0xa15bd090,
+ 0xd0908506,
+ 0xc003a157,
+ 0xb7409040,
+ 0xd090538c,
+ 0xb720a0d6,
+ 0xd808414a,
+ 0x68a8aa49,
+ 0x70486a24,
+ 0x925cc001,
+ 0x40aab780,
+ 0x414ab720,
+ 0x4002ba24,
+ 0x58846a0e,
+ 0xc0017048,
+ 0xb78090fc,
+ 0xf048412c,
+ 0xd226a8e5,
+ 0xf3105904,
+ 0x70488021,
+ 0x939cc000,
+ 0xd0908506,
+ 0xd090a15b,
+ 0xd808a15f,
+ 0xd048aa55,
+ 0xd810a173,
+ 0x6a14a8c9,
+ 0x5a0fc200,
+ 0xd8507048,
+ 0xd890a0d6,
+ 0xc000a0c2,
+ 0x8502907a,
+ 0xa17bd048,
+ 0x90a0c001,
+ 0xaa75d048,
+ 0x85027500,
+ 0xa15bd090,
+ 0x93a4c000,
+ 0x40aab780,
+ 0x414ab720,
+ 0x4002ba24,
+ 0x6947d013,
+ 0x80a3e210,
+ 0x4134b720,
+ 0xb520588b,
+ 0xf04840aa,
+ 0xd0a6aa65,
+ 0xc2015d04,
+ 0xf310812a,
+ 0xc2008021,
+ 0xb5805a0b,
+ 0xb780412c,
+ 0xb580414a,
+ 0xd09046aa,
+ 0x7440a8dd,
+ 0x9202c000,
+ 0xaa71d048,
+ 0x85067500,
+ 0x9102c000,
+ 0xaa79d048,
+ 0xc0007500,
+ 0x850e9064,
+ 0xa14bd090,
+ 0xaa49d810,
+ 0xb3407500,
+ 0xb78048a4,
+ 0xb580414c,
+ 0x9c2245ac,
+ 0xb3407644,
+ 0xc00348a4,
+ 0xc0017486,
+ 0xb78590ba,
+ 0x75005688,
+ 0x9102c000,
+ 0x5394b720,
+ 0x5f04b740,
+ 0x90c0c000,
+ 0x5394b720,
+ 0x5f84b740,
+ 0x4ccbb720,
+ 0xd0a69e2d,
+ 0xc8305904,
+ 0xb720aa4d,
+ 0x6229530c,
+ 0x00030583,
+ 0x41adb580,
+ 0x41acb780,
+ 0x5a37c200,
+ 0x92a0c001,
+ 0x530cb700,
+ 0x5394b760,
+ 0x5a4bc100,
+ 0xb7257500,
+ 0x09025688,
+ 0x911cc000,
+ 0x5a07c200,
+ 0x09047500,
+ 0x939affff,
+ 0x7c7ec01c,
+ 0x9102c000,
+ 0xaa65d8d0,
+ 0x5f04b740,
+ 0x90c0c000,
+ 0xaa65d8d0,
+ 0x5f84b740,
+ 0x5904d226,
+ 0xc8309e2d,
+ 0xf008a8ce,
+ 0x9e4ca8e1,
+ 0x609950ab,
+ 0x41acb520,
+ 0x41acb780,
+ 0xe2108536,
+ 0xc20088a5,
+ 0xb5805207,
+ 0xf01041ac,
+ 0x7502aa49,
+ 0x90e4c000,
+ 0x41acb780,
+ 0x422cb580,
+ 0xd0909c22,
+ 0x74c0a9d1,
+ 0x90c4c005,
+ 0x422cb740,
+ 0x41b4b720,
+ 0x590cd126,
+ 0x5c88d0a2,
+ 0x8825f210,
+ 0xc0007048,
+ 0xd0a69176,
+ 0xe2105d0c,
+ 0xc10088ab,
+ 0x70485a08,
+ 0x919ac004,
+ 0x85869e49,
+ 0xd0907044,
+ 0xd090a1cf,
+ 0xc002a1df,
+ 0xc100903c,
+ 0x70485a04,
+ 0x90f6c000,
+ 0x5e04d0a2,
+ 0xc0007104,
+ 0xb720937a,
+ 0xb720472a,
+ 0x08985814,
+ 0x472ab520,
+ 0x41cdb780,
+ 0xa8edf010,
+ 0x40c5b740,
+ 0x0a206243,
+ 0x5a11c200,
+ 0x8221f310,
+ 0xd090851a,
+ 0x850ea14b,
+ 0x9340c002,
+ 0x472ab720,
+ 0x5814b720,
+ 0xb5200888,
+ 0xb780472a,
+ 0xf01041cd,
+ 0xb740a8ed,
+ 0x624340c5,
+ 0xc2000a40,
+ 0xf3105a15,
+ 0x850e8221,
+ 0xa14bd090,
+ 0x40cdb580,
+ 0x4c38b560,
+ 0x9340fffc,
+ 0xc1009e49,
+ 0x70485a04,
+ 0x90f6c000,
+ 0x5e04d0a2,
+ 0xc0007104,
+ 0xb720937a,
+ 0xb720472a,
+ 0x18885814,
+ 0x472ab520,
+ 0x41cdb780,
+ 0xa8edf010,
+ 0x40c5b740,
+ 0x0a406243,
+ 0x5a15c200,
+ 0x8a21f310,
+ 0xd090851a,
+ 0x857ba14b,
+ 0x9340c000,
+ 0x472ab720,
+ 0x5814b720,
+ 0xb5201884,
+ 0xb780472a,
+ 0xf01041cd,
+ 0xb740a8ed,
+ 0x624340c5,
+ 0x0a00c002,
+ 0x5a19c200,
+ 0x8a21f310,
+ 0xd090850e,
+ 0x857fa14b,
+ 0x40cdb580,
+ 0x4c38b540,
+ 0x9300fffa,
+ 0xa1cdd090,
+ 0x9280fffa,
+ 0xd0908502,
+ 0xfffaa14f,
+ 0xa60d91e0,
+ 0x540cb780,
+ 0xa881f208,
+ 0x74449ea5,
+ 0x03010007,
+ 0x9104c000,
+ 0x538cb780,
+ 0xa805dac8,
+ 0x9240c008,
+ 0xc0087442,
+ 0xda1091e4,
+ 0x7500aa29,
+ 0x9344c000,
+ 0xaa2dd290,
+ 0xc0007500,
+ 0xd29092a4,
+ 0xb720aa25,
+ 0xb720538c,
+ 0x75005594,
+ 0x4cabb700,
+ 0x44dbb740,
+ 0x8526e002,
+ 0x8021f210,
+ 0x44cbb580,
+ 0x9240c007,
+ 0xaa2dd290,
+ 0xc0017500,
+ 0xb7809382,
+ 0xb740530c,
+ 0xd290538c,
+ 0xb760a926,
+ 0xd2c85594,
+ 0xd008a881,
+ 0xd008a9c5,
+ 0x7680a8ca,
+ 0x4000ba09,
+ 0x9e490002,
+ 0xa967d850,
+ 0x0a02d011,
+ 0x4422b304,
+ 0xc0100009,
+ 0xcc127002,
+ 0x768070c0,
+ 0x00070407,
+ 0x8526e002,
+ 0x8021f210,
+ 0xa265d850,
+ 0x4648b780,
+ 0xc0007500,
+ 0xda5091a2,
+ 0xda90a937,
+ 0xe210aa21,
+ 0x0a0480a7,
+ 0xa221da90,
+ 0xa0b5da50,
+ 0xc0050007,
+ 0xd2909260,
+ 0x7500aa39,
+ 0x91a2c001,
+ 0x538cb780,
+ 0xa881d208,
+ 0xa88ad208,
+ 0xa905d208,
+ 0x0812d011,
+ 0xd2909e49,
+ 0xc010aa25,
+ 0xb7207002,
+ 0xc812558c,
+ 0x75007080,
+ 0xb7400005,
+ 0xe00244bb,
+ 0xf2108526,
+ 0xda508021,
+ 0xb580a937,
+ 0xda9044ab,
+ 0xf210a8a1,
+ 0x00058025,
+ 0xda900884,
+ 0xda50a0a1,
+ 0xc004a235,
+ 0xb7809060,
+ 0xf250530c,
+ 0xf248a8b1,
+ 0x7440a991,
+ 0xf2489ea6,
+ 0xc000a189,
+ 0xb7209316,
+ 0xb780558c,
+ 0x75004729,
+ 0xd0029e88,
+ 0xc0000802,
+ 0xd29090a4,
+ 0x0008aa29,
+ 0x538cb780,
+ 0xa889d208,
+ 0xc0100289,
+ 0xc0017040,
+ 0xb7a09280,
+ 0xd0b1538c,
+ 0xd2080a50,
+ 0xf250a882,
+ 0x1196a929,
+ 0xa8adf208,
+ 0x9e4c5c85,
+ 0xcc12588b,
+ 0x515070c2,
+ 0xd12651f3,
+ 0xd1a45914,
+ 0xe2205987,
+ 0x0d0281af,
+ 0xa129f250,
+ 0x9a0ec014,
+ 0x5688b785,
+ 0xc0007500,
+ 0x9e8390e2,
+ 0x9a30c014,
+ 0x9060c000,
+ 0xd2905819,
+ 0xb700aa29,
+ 0x00e85594,
+ 0x7002c010,
+ 0xc0121268,
+ 0xd2907100,
+ 0xd208a8a6,
+ 0x7640a8a9,
+ 0xaaa5d208,
+ 0x0a02d011,
+ 0x4422b304,
+ 0xc0100009,
+ 0xd4127040,
+ 0x76407140,
+ 0x44dab740,
+ 0xe002000b,
+ 0xe2108526,
+ 0xb78080a1,
+ 0x75004648,
+ 0x44cab520,
+ 0x91a2c000,
+ 0xa937da50,
+ 0xaa21da90,
+ 0x80a3e310,
+ 0xda900a04,
+ 0xda50a221,
+ 0xda10a0b5,
+ 0x000ba2c1,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0xb720a60d,
+ 0xb780540c,
+ 0x7502402d,
+ 0xc00c9e8d,
+ 0xb7809264,
+ 0xf208550c,
+ 0xc003a88e,
+ 0x9ea27646,
+ 0x911ac001,
+ 0x5688b785,
+ 0xc0007500,
+ 0xb7809102,
+ 0xb740548c,
+ 0xc0005f04,
+ 0xb78090c0,
+ 0xb740548c,
+ 0xf2085f84,
+ 0x9e2da881,
+ 0x5904d0a6,
+ 0xaa4dc830,
+ 0x62199e49,
+ 0x5817d224,
+ 0x538cb780,
+ 0x08c0d0b1,
+ 0x4031b720,
+ 0xb7c09ea6,
+ 0x5407530c,
+ 0x9300c001,
+ 0x5394b7c0,
+ 0x530cb7c0,
+ 0x5e4bd0a2,
+ 0x5688b725,
+ 0xb7207500,
+ 0x09025494,
+ 0x911cc000,
+ 0x5a07c200,
+ 0x09047500,
+ 0x939affff,
+ 0x7c7ec01c,
+ 0x9102c000,
+ 0x404db780,
+ 0x5f04b740,
+ 0x90c0c000,
+ 0x404db780,
+ 0x5f84b740,
+ 0x5904d226,
+ 0xc8309e2d,
+ 0xf010a8ce,
+ 0x9e4ca8cd,
+ 0x609950ab,
+ 0x5817d0a4,
+ 0x0e60d0b1,
+ 0xa881d208,
+ 0x54079e89,
+ 0x54049e91,
+ 0xaa29da10,
+ 0xc0007500,
+ 0xd29090e2,
+ 0x7500aa2d,
+ 0x92c2c000,
+ 0xa957f248,
+ 0x8029f210,
+ 0xa255f248,
+ 0xa026f250,
+ 0xa02af250,
+ 0xa042f248,
+ 0xaa49f010,
+ 0xa24df248,
+ 0xa251f248,
+ 0x9300c007,
+ 0xaa39d290,
+ 0xc0077500,
+ 0xb72091c4,
+ 0xb780558c,
+ 0x750046a9,
+ 0xc0079e89,
+ 0xf24890c4,
+ 0xf210a957,
+ 0xf2488029,
+ 0xd290a255,
+ 0x7440a8b5,
+ 0x90c2c000,
+ 0xaa49f010,
+ 0x9240c000,
+ 0xa8cdf248,
+ 0xaa49f010,
+ 0x5908d0a6,
+ 0x8123e240,
+ 0x5904d226,
+ 0x8021f310,
+ 0x8221f310,
+ 0x5a0dc200,
+ 0xa24df248,
+ 0xaa4df248,
+ 0xa251f248,
+ 0xa8b5d290,
+ 0xc0007440,
+ 0xf2509102,
+ 0xf250a026,
+ 0xc005a02a,
+ 0xb7809360,
+ 0x75004649,
+ 0x90e2c001,
+ 0xa8a2da90,
+ 0xa925f250,
+ 0xaa21da90,
+ 0x9d1e1c84,
+ 0x0ce0d0b1,
+ 0x6127d333,
+ 0x4031b760,
+ 0x5a40c200,
+ 0x5a45c200,
+ 0x8128c201,
+ 0x8021f310,
+ 0xda909ea1,
+ 0x0507a9a1,
+ 0xa225f250,
+ 0xc01455af,
+ 0xf25098d7,
+ 0xf250a025,
+ 0xc004a029,
+ 0xda109220,
+ 0xf210a92b,
+ 0xf250aa2d,
+ 0xe310a8a6,
+ 0x9e4a88a1,
+ 0xa928da12,
+ 0x18848185,
+ 0x6122d033,
+ 0x88b1f310,
+ 0x8a21f310,
+ 0x7540c008,
+ 0x5a07c200,
+ 0x8128c201,
+ 0x8021f310,
+ 0xa225f250,
+ 0x91bcc000,
+ 0xc0149eab,
+ 0xf25098fd,
+ 0xc200aa25,
+ 0xc20052a3,
+ 0xf2505203,
+ 0xb740a225,
+ 0xf2506004,
+ 0xd2a6aa25,
+ 0x9e2d5904,
+ 0xa8cdc830,
+ 0xd2240189,
+ 0x0c8259ff,
+ 0x05030103,
+ 0x9904c014,
+ 0x609cb740,
+ 0xc2109d47,
+ 0x0181a926,
+ 0xc0140581,
+ 0xf21098e0,
+ 0x7502aa29,
+ 0xa025f250,
+ 0x90c4c000,
+ 0xa029f250,
+ 0x9040c002,
+ 0xa8aada10,
+ 0xa954da12,
+ 0x5c84d0a2,
+ 0x8e22f011,
+ 0xc0007048,
+ 0xf2489176,
+ 0x0208aa41,
+ 0x5a07c200,
+ 0xa229f250,
+ 0x91c0c001,
+ 0xa8c1f248,
+ 0x0e12d011,
+ 0xf3109e4a,
+ 0xd0338a21,
+ 0x60996104,
+ 0x8122c201,
+ 0xa12bf250,
+ 0xaa55da10,
+ 0x0ce0d0b1,
+ 0xc2001a04,
+ 0xf3105a07,
+ 0xb7608021,
+ 0xf2504031,
+ 0xda10a229,
+ 0x9ea1a9d5,
+ 0x55af0507,
+ 0xc0141984,
+ 0xf250984b,
+ 0xc000a029,
+ 0xf21090e0,
+ 0x0a04aa2d,
+ 0xa22df210,
+ 0xa8c5f248,
+ 0xaa29f210,
+ 0xa8aaf250,
+ 0x5904d0a6,
+ 0xc2017502,
+ 0xf2108122,
+ 0xf250802b,
+ 0xc200a0ae,
+ 0xc000588b,
+ 0x9e4a90f4,
+ 0x7044d010,
+ 0xa229f250,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x540cb720,
+ 0xaa61d810,
+ 0xb5800802,
+ 0x9c2241ab,
+ 0x538cb740,
+ 0x5814b720,
+ 0xa96cf012,
+ 0xaa4df008,
+ 0x414db720,
+ 0x40ddb740,
+ 0x8a21f310,
+ 0xf3106243,
+ 0xb5808021,
+ 0xf01040cd,
+ 0xf008a8ed,
+ 0x9c22a0cd,
+ 0x74c0c008,
+ 0x9e529e58,
+ 0x90fcc000,
+ 0x70c0d002,
+ 0x51f31a14,
+ 0xc0055013,
+ 0xc0007400,
+ 0xd00290fc,
+ 0x1a507000,
+ 0x01285013,
+ 0x6004b740,
+ 0x608cb780,
+ 0x5904d1a6,
+ 0xc0409e2d,
+ 0xc830a8e5,
+ 0x7044aa4d,
+ 0xd01d6009,
+ 0xd01a1214,
+ 0xb3405013,
+ 0x122248ba,
+ 0x9c225010,
+ 0x75269e5c,
+ 0xd01e0882,
+ 0xb3404000,
+ 0xc38048bc,
+ 0xc0007500,
+ 0xc00290bc,
+ 0x9c22084e,
+ 0x7508c004,
+ 0x915cc000,
+ 0xc2000a04,
+ 0xc0045a07,
+ 0x08847508,
+ 0x935affff,
+ 0x611cb740,
+ 0xc2209d4b,
+ 0xd013a805,
+ 0xe210691d,
+ 0x9c228021,
+ 0x72c0c002,
+ 0x1c0ad011,
+ 0xe0009c22,
+ 0xb3300d00,
+ 0xb3304422,
+ 0xb3404842,
+ 0xc00248a2,
+ 0xf2108502,
+ 0x7500882d,
+ 0x90fac000,
+ 0x0c029e59,
+ 0x50311209,
+ 0x9e5a9c22,
+ 0x9e5250d0,
+ 0x52695469,
+ 0x9c223042,
+ 0x0007a685,
+ 0x9e909e81,
+ 0x2cfccffe,
+ 0x9e4c9e41,
+ 0x64915c41,
+ 0x28fccffe,
+ 0x584162c3,
+ 0x60839e44,
+ 0xc2806009,
+ 0x9ea05a41,
+ 0x9e880490,
+ 0x04909d09,
+ 0x71029e4c,
+ 0x8504c001,
+ 0x5e41d0a2,
+ 0x4468b302,
+ 0x8121f320,
+ 0x5d40d0a6,
+ 0x2afccffe,
+ 0x8123f310,
+ 0x040d000d,
+ 0xd0339e54,
+ 0x9e5c6138,
+ 0xe2106145,
+ 0x9e918125,
+ 0xb7bf0462,
+ 0xb7df7f6e,
+ 0x8c407fee,
+ 0x00009c22,
+ 0x87c2c809,
+ 0x0c20b060,
+ 0x87c2c809,
+ 0x0a60b060,
+ 0x87c2c809,
+ 0x09c0b060,
+};
+
+unsigned long aui32H263VBR_MTXTOPAZFWData[] = {
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x809000b0,
+ 0x8090019c,
+ 0x82884dd4,
+ 0x82884a94,
+ 0x82884acc,
+ 0x82884b04,
+ 0x82884b40,
+ 0x82884b7c,
+ 0x82884bac,
+ 0x82884bdc,
+ 0x82884c04,
+ 0x82884c64,
+ 0x82884c6c,
+ 0x82884c74,
+ 0x82884c80,
+ 0x82884f98,
+ 0x82884f68,
+ 0x82884e48,
+ 0x82884cb0,
+ 0x82884e98,
+ 0x82884ee0,
+ 0x82884edc,
+ 0x82884f28,
+ 0x828852c4,
+ 0x8288510f,
+ 0x82885110,
+ 0x828850ef,
+ 0x828850f0,
+ 0x82885156,
+ 0x828851be,
+ 0x828851fe,
+ 0x82885280,
+ 0x82885130,
+ 0x82885038,
+ 0x82885094,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x809006dc,
+ 0x80901be8,
+ 0x809024f0,
+ 0x809006e0,
+ 0x80903b54,
+ 0x80904078,
+ 0x8090072c,
+ 0x00000000,
+ 0x80901da8,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x809006dc,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0xa0101162,
+ 0xa0100174,
+ 0xa0101102,
+ 0xa0100184,
+ 0xa0101104,
+ 0xa0100194,
+ 0xa0101106,
+ 0xa01001a4,
+ 0xa01001a2,
+ 0xa01001a2,
+ 0xa0101182,
+ 0xa0100142,
+ 0xa0101122,
+ 0xa0100152,
+ 0x80101124,
+ 0x80101126,
+ 0x80101144,
+ 0x80101146,
+ 0x80100176,
+ 0x80100186,
+ 0x80100196,
+ 0x801001a6,
+ 0x801001b6,
+ 0x801001b4,
+ 0x80300364,
+ 0x8010b100,
+ 0x80105160,
+ 0x80100102,
+ 0x00000b00,
+ 0x00000b00,
+ 0x00000ba0,
+ 0x00000ba0,
+ 0x00000003,
+ 0x00000002,
+ 0x00000002,
+ 0x00000001,
+ 0x00000001,
+ 0x00000001,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000005,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x01010000,
+ 0x03030202,
+ 0x05040404,
+ 0x06060505,
+ 0x07070706,
+ 0x08080807,
+ 0x09090908,
+ 0x000a0a09,
+ 0x02010000,
+ 0x04040303,
+ 0x06060505,
+ 0x08080707,
+ 0x0a0a0909,
+ 0x0b0b0b0b,
+ 0x0c0c0c0c,
+ 0x000d0d0d,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x01010000,
+ 0x02020201,
+ 0x04030303,
+ 0x05040404,
+ 0x00140005,
+ 0x001a0016,
+ 0x0020001c,
+ 0x00280024,
+ 0x0034002c,
+ 0x00400038,
+ 0x00500048,
+ 0x00680058,
+ 0x00800070,
+ 0x00a00090,
+ 0x00d000b0,
+ 0x010000e0,
+ 0x01400120,
+ 0x01a00160,
+ 0x020001c0,
+ 0x02800240,
+ 0x034002c0,
+ 0x04000380,
+ 0x05000480,
+ 0x06800580,
+ 0x08000700,
+ 0x0a000900,
+ 0x0d000b00,
+ 0x10000e00,
+ 0x14001200,
+ 0x1a001600,
+ 0x00001c00,
+ 0x00800040,
+ 0x010000c0,
+ 0x01800140,
+ 0x020001c0,
+ 0x02800240,
+ 0x030002c0,
+ 0x03800340,
+ 0x040003c0,
+ 0x04800440,
+ 0x050004c0,
+ 0x05800540,
+ 0x060005c0,
+ 0x06800640,
+ 0x070006c0,
+ 0x07800740,
+ 0x000007c0,
+ 0x00200040,
+ 0x001002ab,
+ 0x015500cd,
+ 0x00080249,
+ 0x00cd01c7,
+ 0x0155005d,
+ 0x0249013b,
+ 0x00040111,
+ 0x01c700f1,
+ 0x00cd01af,
+ 0x005d00c3,
+ 0x01550059,
+ 0x013b0029,
+ 0x0249025f,
+ 0x01110235,
+ 0x00020021,
+ 0x00f1001f,
+ 0x01c70075,
+ 0x01af006f,
+ 0x00cd0069,
+ 0x00c30019,
+ 0x005d017d,
+ 0x0059005b,
+ 0x015502b9,
+ 0x002900a7,
+ 0x013b0283,
+ 0x025f0135,
+ 0x02490095,
+ 0x0235023f,
+ 0x0111008b,
+ 0x00210219,
+ 0x00010041,
+ 0x0b060600,
+ 0x0c0b0a06,
+ 0x0a0b0c06,
+ 0x0c0d0c0c,
+ 0x0d0d0c06,
+ 0x0b0b0c0c,
+ 0x0e0d0a0d,
+ 0x0a0d0e0e,
+ 0x0c0d0a06,
+ 0x0c0e0c0e,
+ 0x0e0d0a0d,
+ 0x0f0c0c0c,
+ 0x0f0b0d0e,
+ 0x0d0f0e0e,
+ 0x0d0f0f0f,
+ 0x0c0b0f0e,
+ 0x00000006,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x1234baac,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+};
diff --git a/fw/H263FirmwareVBR_bin.h b/fw/H263FirmwareVBR_bin.h
new file mode 100644
index 0000000..3693643
--- /dev/null
+++ b/fw/H263FirmwareVBR_bin.h
@@ -0,0 +1,35 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+// This file was automatically generated from ../release/H263FirmwareVBR.dnl using dnl2c.
+
+extern unsigned long aui32H263VBR_MTXTOPAZFWText[];
+extern unsigned long ui32H263VBR_MTXTOPAZFWTextSize;
+
+extern unsigned long aui32H263VBR_MTXTOPAZFWData[];
+extern unsigned long ui32H263VBR_MTXTOPAZFWDataSize;
+
+extern unsigned long ui32H263VBR_MTXTOPAZFWDataLocation;
+
diff --git a/fw/H263Firmware_bin.c b/fw/H263Firmware_bin.c
new file mode 100644
index 0000000..bf8c207
--- /dev/null
+++ b/fw/H263Firmware_bin.c
@@ -0,0 +1,8222 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+// This file was automatically generated from ../release/H263Firmware.dnl using dnl2c.
+
+unsigned char *szH263_MTXTOPAZFW_buildtag = "TOPAZ_DDKBUILD_00-00-00-0146";
+
+unsigned long ui32H263_MTXTOPAZFWTextSize = 3288;
+unsigned long ui32H263_MTXTOPAZFWDataSize = 4896;
+unsigned long ui32H263_MTXTOPAZFWDataLocation = 0x82883380;
+
+unsigned long aui32H263_MTXTOPAZFWText[] = {
+ 0x9040c001,
+ 0xc80993fe,
+ 0xc0000e42,
+ 0xc8290e00,
+ 0xc3c68422,
+ 0xc8298440,
+ 0xc3388622,
+ 0x9e838600,
+ 0xc8099e43,
+ 0xc66a0d42,
+ 0xc8090d00,
+ 0xc66a0942,
+ 0xc8090940,
+ 0xc00a0e42,
+ 0xc8090e40,
+ 0xc00e87c2,
+ 0x9c1887d0,
+ 0x0c020802,
+ 0x09820d82,
+ 0x09020d02,
+ 0x08820c82,
+ 0x9320fffe,
+ 0xa401c838,
+ 0x0dc2c809,
+ 0x0dc0c668,
+ 0x0e42c809,
+ 0x0b46b080,
+ 0x7e74b77f,
+ 0xa48d0882,
+ 0xffff9ff3,
+ 0x9d1393e0,
+ 0xf8398081,
+ 0x0707a205,
+ 0x06850307,
+ 0x03839e97,
+ 0x0fa0060f,
+ 0x018d058d,
+ 0x9c62008f,
+ 0x9340ffff,
+ 0x0ea0060b,
+ 0xffff9c62,
+ 0x058d93a0,
+ 0xb700018d,
+ 0xb780518c,
+ 0x9c015114,
+ 0x0687a605,
+ 0x0ea0060b,
+ 0xffff9c62,
+ 0xf9f893a0,
+ 0xf9f8aa9d,
+ 0x9c22aa1d,
+ 0xa60d9c22,
+ 0x9bfefff4,
+ 0x0ca2c829,
+ 0x0ca0c3c6,
+ 0x404db720,
+ 0x0a42c809,
+ 0x0a50c5d4,
+ 0x0b027440,
+ 0x428cb580,
+ 0x0a12d002,
+ 0x4644b421,
+ 0xc0540d8a,
+ 0xb78098b0,
+ 0xc807520c,
+ 0xc57008c2,
+ 0xc0320880,
+ 0xb5800c86,
+ 0xb4214c8c,
+ 0x0a06c000,
+ 0x0c98c002,
+ 0xc000b481,
+ 0x09021a04,
+ 0x08bac002,
+ 0x4078b960,
+ 0x0a00c200,
+ 0x588bd224,
+ 0xc000b441,
+ 0x0a11ce00,
+ 0x9301ffff,
+ 0x1884e000,
+ 0x9244ffff,
+ 0x0a42c807,
+ 0x0a00c576,
+ 0x0c86c032,
+ 0xc000b481,
+ 0x08820a02,
+ 0x08840902,
+ 0x4078b960,
+ 0x0a00c200,
+ 0x588bd224,
+ 0xc000b441,
+ 0x0a11ce00,
+ 0x9301ffff,
+ 0x745ac004,
+ 0x923cffff,
+ 0xc0340a02,
+ 0xb4810c9e,
+ 0xc034c000,
+ 0xc05498cd,
+ 0xc054982e,
+ 0x0d8a982a,
+ 0x9861c054,
+ 0x0a42c801,
+ 0x0a08c010,
+ 0x0c86c032,
+ 0xc000b481,
+ 0x08c2c801,
+ 0x0880cb10,
+ 0xb4210ce4,
+ 0x0a06c000,
+ 0xb4810cb4,
+ 0xc123c000,
+ 0xc56608d2,
+ 0xc08008e0,
+ 0xb4210c82,
+ 0x1a04c000,
+ 0xb4810c84,
+ 0x0d86c000,
+ 0x0d0209c2,
+ 0x0902c121,
+ 0x991bc014,
+ 0x458cb780,
+ 0xa982f208,
+ 0x0d02c021,
+ 0x09c20d04,
+ 0x9906c014,
+ 0x458cb780,
+ 0x0ad2c123,
+ 0x0ae0c566,
+ 0xa982f208,
+ 0x0d0609c2,
+ 0x98fac014,
+ 0x09c20d86,
+ 0xc1810d0e,
+ 0xc0140902,
+ 0xc00298fe,
+ 0xc0540dc2,
+ 0x700a980d,
+ 0x9364ffff,
+ 0xc0540d82,
+ 0xc0039814,
+ 0xb74092e0,
+ 0xd2265284,
+ 0x9e2d5908,
+ 0xaa4de030,
+ 0x9c629ea4,
+ 0x4514b720,
+ 0x405db740,
+ 0x58c1c280,
+ 0x2a80cff0,
+ 0x5a21c280,
+ 0x8021f310,
+ 0x753ec004,
+ 0x40cdb520,
+ 0x404db580,
+ 0x4652b431,
+ 0x0a42c801,
+ 0x0a08c010,
+ 0x0c86c032,
+ 0xc000b481,
+ 0xc0020886,
+ 0xb4210c98,
+ 0xb780c000,
+ 0xc080450c,
+ 0xf2080c82,
+ 0xb421a881,
+ 0x0d82c000,
+ 0x9bd0c034,
+ 0x450cb780,
+ 0xa881f208,
+ 0xffff7002,
+ 0x0d869304,
+ 0x0d0209c2,
+ 0x0902c121,
+ 0x98afc014,
+ 0x458cb780,
+ 0xa982f208,
+ 0x0d02c021,
+ 0x09c20d04,
+ 0x989ac014,
+ 0x458cb780,
+ 0xa982f208,
+ 0x0d0609c2,
+ 0x9892c014,
+ 0x09c20d86,
+ 0xc1010d0e,
+ 0xc0140902,
+ 0x77409896,
+ 0x9082c000,
+ 0x9b79c034,
+ 0x9c80c971,
+ 0x5a41e200,
+ 0x9204c000,
+ 0x0dc2c002,
+ 0x9b9ac034,
+ 0x450cb780,
+ 0xa881f208,
+ 0xffff7002,
+ 0x0d8292e4,
+ 0x9b9dc034,
+ 0xc0007580,
+ 0xc0349364,
+ 0x0d8a9b5e,
+ 0x9b95c034,
+ 0x450cb780,
+ 0xa881f208,
+ 0x5908d0a8,
+ 0x0948d073,
+ 0xe0309e2d,
+ 0xd3f1aacd,
+ 0xc2002a5c,
+ 0x75185a05,
+ 0x2ad2d012,
+ 0x9234fffb,
+ 0xb79f0802,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0x9c229c22,
+ 0x451cb740,
+ 0xc200aa41,
+ 0xc0025a08,
+ 0xf3100a00,
+ 0xf2088021,
+ 0xf208a882,
+ 0xc0c0a885,
+ 0x5c890c80,
+ 0xc000b421,
+ 0xa6059c22,
+ 0x451cb740,
+ 0x0886aa41,
+ 0x0c9ec034,
+ 0x5a08c200,
+ 0x0a00c002,
+ 0x80a1f310,
+ 0xc000b421,
+ 0x0c92c080,
+ 0xaa25f208,
+ 0xc000b481,
+ 0xc0340dc2,
+ 0xf2089b3f,
+ 0x7008aa25,
+ 0x9344ffff,
+ 0xc0800a02,
+ 0xb4810c96,
+ 0x0d86c000,
+ 0x0d0609c2,
+ 0x0902c121,
+ 0x981bc014,
+ 0xa9a2f208,
+ 0x0d02c021,
+ 0x09c20d04,
+ 0x9808c014,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xc0409e54,
+ 0x9e590c82,
+ 0xc000b421,
+ 0x0d02c040,
+ 0xc000b482,
+ 0xc00e9c22,
+ 0xc00e2d7c,
+ 0x5d3029e0,
+ 0xc0409e54,
+ 0x31b80c82,
+ 0xc000b461,
+ 0x0d02c040,
+ 0xc000b442,
+ 0x9e4c9c22,
+ 0x28fcc00e,
+ 0x2a7cc00e,
+ 0x0c82c040,
+ 0xb4019e58,
+ 0xc200c000,
+ 0x58e45a6c,
+ 0x1d043242,
+ 0x9e515d10,
+ 0x1984598d,
+ 0x3980c011,
+ 0x590d3246,
+ 0x59301904,
+ 0x32443242,
+ 0xc000b481,
+ 0x9e4c9c22,
+ 0x28fcc00e,
+ 0x2a7cc00e,
+ 0x0c82c040,
+ 0xb4019e58,
+ 0xc200c000,
+ 0x58e45a6c,
+ 0x1d043242,
+ 0x9e515d10,
+ 0x1984598d,
+ 0x3980c019,
+ 0x590d3246,
+ 0x59301904,
+ 0x32443242,
+ 0xc000b481,
+ 0x9e4c9c22,
+ 0x28fcc00e,
+ 0x2a7cc00e,
+ 0x0c82c040,
+ 0xb4019e58,
+ 0xc200c000,
+ 0x58e45a6c,
+ 0x1d043242,
+ 0x9e515d10,
+ 0x1984598d,
+ 0x3980c01d,
+ 0x590d3246,
+ 0x59301904,
+ 0x32443242,
+ 0xc000b481,
+ 0xa60d9c22,
+ 0x07038420,
+ 0xc2800687,
+ 0x1c845c8d,
+ 0x5ca0d0a2,
+ 0xd0110287,
+ 0xc2000a5e,
+ 0x1a045a0d,
+ 0x5a30c200,
+ 0x30985cd0,
+ 0x04059e4c,
+ 0x0c8ac032,
+ 0xc8013098,
+ 0xb4213880,
+ 0x9ea9c000,
+ 0x0a02c801,
+ 0x0a00c002,
+ 0xc0306553,
+ 0xb4810c8a,
+ 0xc002c000,
+ 0x0c840882,
+ 0xc000b421,
+ 0xd0229e93,
+ 0x9e535f09,
+ 0x1d045d0d,
+ 0x9b5afff4,
+ 0x5e91c280,
+ 0xc2801e84,
+ 0x9e6c5e84,
+ 0xc2801a84,
+ 0xc1815a90,
+ 0x0d8a3a80,
+ 0x0d020982,
+ 0xfff4314a,
+ 0xc0c09b54,
+ 0x09920d82,
+ 0x0d02c002,
+ 0x0902c002,
+ 0x9a47c034,
+ 0xc0340a0a,
+ 0xb4810c9e,
+ 0x1b04c000,
+ 0x850275bf,
+ 0x9202c000,
+ 0xb55f9dcf,
+ 0xc0347f7c,
+ 0xf2319a4f,
+ 0xb75fa045,
+ 0x1b047f7c,
+ 0x851075bf,
+ 0x9284ffff,
+ 0xc0300a02,
+ 0xb4810c8e,
+ 0xb79fc000,
+ 0xb7bf7e6e,
+ 0xb7df7eee,
+ 0xc0027f6e,
+ 0x9c228c00,
+ 0xb780a605,
+ 0xc004438c,
+ 0x75002a00,
+ 0x570cb7a0,
+ 0x92c2c002,
+ 0xa9b6f208,
+ 0x0982c050,
+ 0x0d7ec008,
+ 0x9b08fff4,
+ 0xa9bef208,
+ 0x0982c028,
+ 0x0d3ec004,
+ 0x9b00fff4,
+ 0x438cb780,
+ 0x38c0d211,
+ 0x02039e89,
+ 0x2a00c201,
+ 0xcffa7500,
+ 0xb5202cfd,
+ 0xc0014394,
+ 0x744090e2,
+ 0x578cb740,
+ 0x9256c000,
+ 0xaa45f008,
+ 0xa8c9f008,
+ 0x2cfec7ff,
+ 0x0a00c010,
+ 0xa245f008,
+ 0x0880c008,
+ 0xa0c9f008,
+ 0x4394b520,
+ 0xaa45f008,
+ 0x438cb720,
+ 0xa235f208,
+ 0xa8caf008,
+ 0x28fecdff,
+ 0xa0bef208,
+ 0x438cb520,
+ 0x9240c000,
+ 0xa937f208,
+ 0xaa39f208,
+ 0xa93cf20a,
+ 0xa8a1f248,
+ 0x8021f310,
+ 0x82a3e210,
+ 0xa235f208,
+ 0xa0bdf208,
+ 0xa9bef248,
+ 0x0982c002,
+ 0xfff40d0e,
+ 0xf2489ab5,
+ 0xb720aa3d,
+ 0xc002438c,
+ 0xf2480a00,
+ 0xc200a23d,
+ 0xb5203880,
+ 0xc011438c,
+ 0x74402880,
+ 0x92e2c000,
+ 0xa9b6f248,
+ 0x0982c008,
+ 0xfff40d3e,
+ 0xf2489a9d,
+ 0xb720aa35,
+ 0xc008438c,
+ 0xf2480a00,
+ 0xc081a235,
+ 0xcfef3880,
+ 0xb52028fe,
+ 0xb780438c,
+ 0xc001438c,
+ 0x75002a04,
+ 0x92e2c000,
+ 0xa9b6f248,
+ 0x0982c008,
+ 0xfff40d3e,
+ 0xf2489a81,
+ 0xb720aa35,
+ 0xc008438c,
+ 0xf2480a00,
+ 0xc001a235,
+ 0xcfff3888,
+ 0xb52028fa,
+ 0xb720438c,
+ 0x0203438c,
+ 0x2a10c001,
+ 0xc0027500,
+ 0xc0019082,
+ 0x744028c0,
+ 0x9182c001,
+ 0xa9a6f288,
+ 0x0d0609c2,
+ 0x0c820942,
+ 0xfff40882,
+ 0xf2889a96,
+ 0xf288a9b6,
+ 0x5d90a927,
+ 0x81afe220,
+ 0x438cb780,
+ 0x0d0609c2,
+ 0x0c820942,
+ 0xc0010882,
+ 0xb5803a20,
+ 0xfff4438c,
+ 0xb7809aa0,
+ 0xf288438c,
+ 0xc003a8a5,
+ 0x08c03a00,
+ 0xa0a5f288,
+ 0x2a2ecfff,
+ 0x9260c000,
+ 0xa9a6f288,
+ 0x0d0609c2,
+ 0x9a36fff4,
+ 0x438cb780,
+ 0xa8a5f288,
+ 0x3a20c001,
+ 0xf28808c0,
+ 0xcfffa0a5,
+ 0xb5802a6e,
+ 0xb79f438c,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa6059c22,
+ 0x438cb780,
+ 0x2a00c200,
+ 0x9e5d7500,
+ 0x9302c000,
+ 0x0abc6a8e,
+ 0x09829eab,
+ 0xc1010d36,
+ 0xc0140902,
+ 0x9eab98a4,
+ 0x438cb780,
+ 0x0d1a0982,
+ 0x0902c101,
+ 0x2a7dcdfe,
+ 0x438cb580,
+ 0x9897c014,
+ 0x438cb780,
+ 0x2a00c081,
+ 0xc0007500,
+ 0xc1019222,
+ 0xc0060902,
+ 0x0dce0940,
+ 0x0d020982,
+ 0x9887c014,
+ 0x438cb780,
+ 0x2a7ecf7f,
+ 0x438cb580,
+ 0x438cb780,
+ 0x2a08c001,
+ 0xc0007500,
+ 0xc1019222,
+ 0xc0060902,
+ 0x0dde0940,
+ 0x0d020982,
+ 0x9871c014,
+ 0x438cb780,
+ 0x2a76cfff,
+ 0x438cb580,
+ 0x438cb780,
+ 0x2a20c001,
+ 0xc0007500,
+ 0x0de291e2,
+ 0x0d020982,
+ 0x0902c101,
+ 0x985dc014,
+ 0x438cb780,
+ 0x2a5ecfff,
+ 0x438cb580,
+ 0x438cb780,
+ 0x2a00c003,
+ 0xc0007500,
+ 0x0de291e2,
+ 0x0d060982,
+ 0x0902c101,
+ 0x9849c014,
+ 0x438cb780,
+ 0x2a7ecffd,
+ 0x438cb580,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xb7a0a605,
+ 0xf248570c,
+ 0xc021a9ba,
+ 0x0d3c0d02,
+ 0x0982c008,
+ 0x999efff4,
+ 0xa9aaf288,
+ 0x0d02c021,
+ 0x09c20d04,
+ 0x9996fff4,
+ 0xaa39f248,
+ 0xa8a9f288,
+ 0x0a00c008,
+ 0xa239f248,
+ 0xf28808c0,
+ 0xb79fa0a9,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa6059c22,
+ 0x09920687,
+ 0x0d02c002,
+ 0x0902c002,
+ 0x9883c034,
+ 0x0a42c002,
+ 0xc2800eb0,
+ 0xb4855e89,
+ 0xb79fc000,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xb7409c22,
+ 0xd1a64c84,
+ 0x9e2d5d08,
+ 0xa8cde030,
+ 0x5a0cc080,
+ 0xd1f35885,
+ 0xc00e2910,
+ 0xe2202d7c,
+ 0xc00e812d,
+ 0x5d302a40,
+ 0x32429e51,
+ 0x0c82c040,
+ 0xc000b481,
+ 0x0d02c040,
+ 0xc000b442,
+ 0xb7409c22,
+ 0x1df05804,
+ 0x5d08d1a6,
+ 0xe0309e2d,
+ 0xc080a8cd,
+ 0xd0335a05,
+ 0x5991294e,
+ 0x008929bc,
+ 0x81a7e210,
+ 0x2910d1f3,
+ 0x2d7cc00e,
+ 0x812de220,
+ 0x5d305990,
+ 0x31b89e54,
+ 0x0c82c040,
+ 0xc000b461,
+ 0x0d02c040,
+ 0xc000b442,
+ 0xa6059c22,
+ 0x570cb7a0,
+ 0x0e82c111,
+ 0x0ec0c04e,
+ 0xa9b6f208,
+ 0x0982c050,
+ 0x0d7ec008,
+ 0x991efff4,
+ 0x0df29e6a,
+ 0x0982c004,
+ 0xfff40d02,
+ 0xf2089bc8,
+ 0xf248a937,
+ 0xe220a9aa,
+ 0xc05081af,
+ 0xc0080982,
+ 0xfff40d7e,
+ 0x9e6a990b,
+ 0xc0040df2,
+ 0x0d0209c2,
+ 0x9bb5fff4,
+ 0xa937f208,
+ 0xa9aaf248,
+ 0x812ec201,
+ 0x81afe220,
+ 0x0982c050,
+ 0x0d7ec008,
+ 0x98f6fff4,
+ 0x0df29e6a,
+ 0x0982c006,
+ 0xfff40d02,
+ 0xf2089ba0,
+ 0xcfd8a9be,
+ 0xc0280e81,
+ 0xc0040982,
+ 0xfff40d3e,
+ 0x9e6a98e5,
+ 0xc0040df2,
+ 0xc0040982,
+ 0xfff40d42,
+ 0xf2089b8e,
+ 0xf248a93f,
+ 0xe220a9b2,
+ 0xc02881af,
+ 0xc0040982,
+ 0xfff40d3e,
+ 0x9e6a98d1,
+ 0xc0040df2,
+ 0xc00409c2,
+ 0xfff40d42,
+ 0xf2089b7a,
+ 0xf248a93f,
+ 0xc201a9b2,
+ 0xe220812e,
+ 0xc02881af,
+ 0xc0040982,
+ 0xfff40d3e,
+ 0x9e6a98bb,
+ 0xc0060df2,
+ 0xc0040982,
+ 0xfff40d42,
+ 0xf2489b64,
+ 0xf20aaa29,
+ 0xf248a934,
+ 0xd226a8b1,
+ 0xf2085904,
+ 0xf310a9bf,
+ 0xd0a68021,
+ 0xe2105904,
+ 0xf31080a3,
+ 0xe2108221,
+ 0xf20880b3,
+ 0xf208a235,
+ 0xb79fa0bd,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa6059c22,
+ 0x0902c121,
+ 0x0940c006,
+ 0x02870dca,
+ 0x0d020982,
+ 0x2afcc00e,
+ 0x9b1bfff4,
+ 0x09820dca,
+ 0xc2800d1e,
+ 0x010b5aec,
+ 0x3900c121,
+ 0x9b11fff4,
+ 0x438cb780,
+ 0x3a00c400,
+ 0x438cb580,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0x0922c829,
+ 0x0970c5fe,
+ 0x0a22c829,
+ 0x0a50c5fe,
+ 0x588cb720,
+ 0x0ca2c829,
+ 0x0ce0c5fe,
+ 0x8502c004,
+ 0x458cb580,
+ 0x450cb520,
+ 0x0a18d071,
+ 0xa241f008,
+ 0x404db520,
+ 0x413db540,
+ 0x8d00c004,
+ 0x40bdb540,
+ 0x403db540,
+ 0xf8399c22,
+ 0xf010a285,
+ 0x7500aa61,
+ 0x9164c000,
+ 0xa8c1d008,
+ 0x0a069e48,
+ 0x5200c200,
+ 0xd0083098,
+ 0xd011a0c1,
+ 0xd0100d38,
+ 0xf011a9f2,
+ 0xf0101a30,
+ 0x1984a943,
+ 0x93e2c000,
+ 0x8702cff1,
+ 0x8700cff0,
+ 0x087ec00f,
+ 0x087cc00e,
+ 0x0c1ac050,
+ 0xa8c5f029,
+ 0x2095d020,
+ 0x9e4d5ca1,
+ 0xc2002210,
+ 0x30d85a20,
+ 0x4006ba09,
+ 0xc000b420,
+ 0x1a30f011,
+ 0xffff1984,
+ 0xf21091e4,
+ 0xf010802f,
+ 0xf9f8a241,
+ 0x9c22aa9d,
+ 0x8420a60d,
+ 0x9e558502,
+ 0x7f7cb55f,
+ 0xaa61f010,
+ 0x8d8ee012,
+ 0xb55f0307,
+ 0x1a087ffc,
+ 0xd226750a,
+ 0x8540590c,
+ 0x8044e05a,
+ 0x91e0c003,
+ 0x9180c000,
+ 0x9000c001,
+ 0x9140c001,
+ 0x92a0c001,
+ 0x9380c001,
+ 0x91c0c002,
+ 0x598cb780,
+ 0xa881da08,
+ 0x74402888,
+ 0xb352856a,
+ 0xb7804462,
+ 0x9d57450c,
+ 0x8d88e011,
+ 0x1954d072,
+ 0xa299f208,
+ 0x9abcc014,
+ 0x91e0c002,
+ 0x450cb780,
+ 0xa91af208,
+ 0xe0119ea9,
+ 0x15148d88,
+ 0x9ab0c014,
+ 0x9060c002,
+ 0x8d88e011,
+ 0x295ed3f2,
+ 0xc0140916,
+ 0xb78099df,
+ 0xf208450c,
+ 0xc001a299,
+ 0xe01192c0,
+ 0xd3f28d88,
+ 0x0916295e,
+ 0x99d2c014,
+ 0x91a0c001,
+ 0xaa41d208,
+ 0x8c88f011,
+ 0xd0124a7d,
+ 0x0d062ace,
+ 0x018b0906,
+ 0x99c4c014,
+ 0x9e6a9e83,
+ 0x0d02018b,
+ 0x99bec014,
+ 0x9320c000,
+ 0xaa41d208,
+ 0x8c88f011,
+ 0xd0124a7d,
+ 0x0d022ace,
+ 0x018b0906,
+ 0x99b0c014,
+ 0x9e6a9e83,
+ 0xc00e018b,
+ 0xc0140d7e,
+ 0xc00099a9,
+ 0xc0019080,
+ 0xb79f90e0,
+ 0xc00f7e68,
+ 0xc00e0cfe,
+ 0x9e4a0cfc,
+ 0x7c68b59f,
+ 0x7f6cb73f,
+ 0x0a02cff1,
+ 0x0a00cff0,
+ 0x0c9ac050,
+ 0xc2002218,
+ 0x20945a21,
+ 0x324258a0,
+ 0x4006ba24,
+ 0x7f6cb59f,
+ 0xc000b481,
+ 0xa943f208,
+ 0x7fecb79f,
+ 0x8021f310,
+ 0xa241f208,
+ 0x7e6eb79f,
+ 0x7eeeb7bf,
+ 0x7f6eb7df,
+ 0x8c00c002,
+ 0xa61d9c22,
+ 0x85028440,
+ 0xf0319e9d,
+ 0x0b02abe5,
+ 0x7878b55f,
+ 0x7efcb55f,
+ 0x9d3a718e,
+ 0x91e8c001,
+ 0x7502aa41,
+ 0x9392c000,
+ 0xaad1d018,
+ 0x8d08e032,
+ 0x8d00e051,
+ 0x9eb19dcf,
+ 0xb55f8510,
+ 0xc0027f7c,
+ 0xc2800a9c,
+ 0x018b5a95,
+ 0x9aebfff4,
+ 0x7f7cb75f,
+ 0x5a88c280,
+ 0x8122c301,
+ 0x91a0c000,
+ 0x8d88e031,
+ 0x050b9dcf,
+ 0xb55f8510,
+ 0xfff47f7c,
+ 0xb75f9b19,
+ 0x0b047f7c,
+ 0xfffe718e,
+ 0xb79f92a6,
+ 0xc0507868,
+ 0xb4810c9e,
+ 0xc050c000,
+ 0xb4e20d16,
+ 0xb71fc000,
+ 0xb79f7eec,
+ 0xb7bf7d6e,
+ 0xb7df7dee,
+ 0xb7ff7e6e,
+ 0xc0027eee,
+ 0x9c228c40,
+ 0xa205f839,
+ 0x8400c010,
+ 0x598cb780,
+ 0x451cb740,
+ 0xa882da08,
+ 0xd011a8c1,
+ 0x58882e18,
+ 0x0880c002,
+ 0xe2107500,
+ 0xc00080a3,
+ 0x0a0a90a2,
+ 0x9100c000,
+ 0x2e14d011,
+ 0x0a067500,
+ 0x0a44d001,
+ 0x0c82c050,
+ 0xc000b481,
+ 0x0a02c004,
+ 0xb4810cb4,
+ 0x9d87c000,
+ 0x402db740,
+ 0x09a20dc2,
+ 0x0d02c008,
+ 0x0c81cff0,
+ 0x9b4dffd4,
+ 0x0a42c801,
+ 0x0a00cb10,
+ 0x0ceac032,
+ 0xc000b481,
+ 0x08c2c801,
+ 0x0888c010,
+ 0xb4210c84,
+ 0xb760c000,
+ 0x9d8f410a,
+ 0x0d81cff0,
+ 0x9b67fff4,
+ 0x0a02c801,
+ 0x0a00c00a,
+ 0x0c8ac030,
+ 0xc000b481,
+ 0x08c2c008,
+ 0xb4210c84,
+ 0xc008c000,
+ 0x0c880a02,
+ 0xc000b481,
+ 0x0d82c0c0,
+ 0xc0080992,
+ 0xc0080d02,
+ 0xc0140902,
+ 0xc00899ae,
+ 0xc0300a02,
+ 0xb4810c8e,
+ 0xc014c000,
+ 0xb79f982f,
+ 0xc0106fee,
+ 0x9c228c20,
+ 0xa205f839,
+ 0x0c82c450,
+ 0xb4810a02,
+ 0xb101c000,
+ 0xc0084220,
+ 0xc0300a40,
+ 0xb4810c8e,
+ 0xc002c000,
+ 0xc05038c0,
+ 0xb4210c82,
+ 0xc0c0c000,
+ 0x09920d82,
+ 0x0d02c008,
+ 0x0902c008,
+ 0x9983c014,
+ 0x0a02c008,
+ 0x0c8ec030,
+ 0xc000b481,
+ 0xaa1df9f8,
+ 0x9040c000,
+ 0xc450a60d,
+ 0x0a020c8a,
+ 0xc000b481,
+ 0x4240b105,
+ 0x2efce00e,
+ 0x5e90d284,
+ 0x0a02c801,
+ 0xc0300a40,
+ 0xb4810c8a,
+ 0x08c2c000,
+ 0xb4210c84,
+ 0x7740c000,
+ 0x5a8cb7c0,
+ 0x93e2c000,
+ 0x0eded031,
+ 0x09820dea,
+ 0x2ac10d02,
+ 0x1950d051,
+ 0x3900c121,
+ 0x98ddfff4,
+ 0xa9c6f248,
+ 0xc280018b,
+ 0x1a845a8f,
+ 0xc0219eaa,
+ 0xffd43d00,
+ 0xf2489a3f,
+ 0xf310a947,
+ 0xf248802b,
+ 0xc450a245,
+ 0x0a020c86,
+ 0xc000b481,
+ 0x4220b101,
+ 0x0a42c801,
+ 0x0a08c010,
+ 0x0c86c032,
+ 0xc000b481,
+ 0xc0020886,
+ 0xb4210c98,
+ 0xb740c000,
+ 0xf248590c,
+ 0xf048a8c5,
+ 0xd053aa51,
+ 0xc0801910,
+ 0xf3100ca2,
+ 0xb4818821,
+ 0xb7a0c000,
+ 0xc002590c,
+ 0xc0140d82,
+ 0xf248992f,
+ 0xf248a8c5,
+ 0xd053aa31,
+ 0xf3101910,
+ 0x70088821,
+ 0x9264ffff,
+ 0x09c20d86,
+ 0xc1210d0a,
+ 0xffd40902,
+ 0xf2489a0a,
+ 0xc0a1a9b2,
+ 0x0d040d02,
+ 0xffd409c2,
+ 0xc0c099f7,
+ 0x09920d82,
+ 0x09420d42,
+ 0x98f7c014,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x9e5da60d,
+ 0xf1245940,
+ 0xd3f15841,
+ 0xb3502d2e,
+ 0xc0024422,
+ 0xf00893e2,
+ 0xe000aa61,
+ 0xb4252a1c,
+ 0xd8084422,
+ 0x8522aa61,
+ 0x88a9e210,
+ 0x12182a1c,
+ 0xc00e9ea3,
+ 0xba1b0a7e,
+ 0xc200400b,
+ 0x21285207,
+ 0x9276c001,
+ 0xc1009e59,
+ 0x11035a20,
+ 0x5209c200,
+ 0xc2009ea2,
+ 0x9e8d58a1,
+ 0x0cb0d031,
+ 0xa8a2d208,
+ 0x2a7cc00e,
+ 0x5207c200,
+ 0x2a7cc00e,
+ 0xd208349a,
+ 0xf008a0a2,
+ 0x9ea1a963,
+ 0x2a2ed3f1,
+ 0x8128c201,
+ 0x8821f310,
+ 0xf0088502,
+ 0xd228a261,
+ 0x9eaba127,
+ 0x2d01cff0,
+ 0x59415940,
+ 0xc00e3522,
+ 0xfff42d7c,
+ 0xc0009bb1,
+ 0xd20892e0,
+ 0x9e5eaa21,
+ 0x50d8000b,
+ 0xd0293242,
+ 0xf008a205,
+ 0xd013a8e1,
+ 0xf210291e,
+ 0x75108029,
+ 0x00989e44,
+ 0xa0e1f008,
+ 0x4426b350,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x0685a60d,
+ 0x9e9e9e69,
+ 0x71820b02,
+ 0xc0000a86,
+ 0x9ea99208,
+ 0x9e6916d2,
+ 0x5a84c280,
+ 0x1a52d011,
+ 0xd0117102,
+ 0xd3f108e2,
+ 0xffff2b1e,
+ 0xd0119286,
+ 0x75100a62,
+ 0xc000028d,
+ 0x9e7391d4,
+ 0x09220d02,
+ 0x9b70fff4,
+ 0xd0111aa0,
+ 0x75100a52,
+ 0xffff9e83,
+ 0x9e7392d2,
+ 0xd0110d06,
+ 0xc00e0952,
+ 0xfff4297c,
+ 0x75909b61,
+ 0xc0009e83,
+ 0xd03192f4,
+ 0xd3f11a60,
+ 0x9e6c2b4e,
+ 0xc2009e73,
+ 0xd3f25299,
+ 0x0922295e,
+ 0x9b50fff4,
+ 0xc2009e83,
+ 0x9ea952b8,
+ 0x16d27590,
+ 0x91b2ffff,
+ 0xd3f29e73,
+ 0x010d2d5e,
+ 0x9b42fff4,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x0ca0f011,
+ 0xd09a9e99,
+ 0xd00d5a04,
+ 0xc0001a42,
+ 0x1203909a,
+ 0x9e4b1242,
+ 0xfffc9ea2,
+ 0xc0019360,
+ 0xf83993a0,
+ 0x0d8aa205,
+ 0x9835c014,
+ 0xc0140d8e,
+ 0x0d8a9832,
+ 0xaa1df9f8,
+ 0x91a0c001,
+ 0x9e520507,
+ 0x0d82c0c0,
+ 0xc0000992,
+ 0x9e5c9040,
+ 0xd1a401c6,
+ 0x08825889,
+ 0x3c80c400,
+ 0xc000b421,
+ 0x4220b104,
+ 0x9e532244,
+ 0xffff7106,
+ 0x9c229324,
+ 0xc000b463,
+ 0xf8129c22,
+ 0x9c22a062,
+ 0x0d80c200,
+ 0x9e595d89,
+ 0xc4000982,
+ 0xb4633d80,
+ 0xb203c000,
+ 0x00074620,
+ 0xc1279c22,
+ 0x9c229c8f,
+ 0xb971080a,
+ 0xc01756f1,
+ 0xc0719c81,
+ 0xc0179c80,
+ 0xb9609c80,
+ 0x9c224000,
+ 0x8460a61d,
+ 0x4504b740,
+ 0xb53f0882,
+ 0xb5207f6c,
+ 0xf0004788,
+ 0x9e2daa41,
+ 0x578cb7a0,
+ 0x7e6cb53f,
+ 0x5a08c200,
+ 0x0940d093,
+ 0xe0209ea9,
+ 0x0dc2a96d,
+ 0xc002098e,
+ 0xffd40d42,
+ 0xb7209920,
+ 0xf2085714,
+ 0x0882aa25,
+ 0x7eecb53f,
+ 0xa8a9f208,
+ 0xda089eaf,
+ 0xb580a939,
+ 0xda0842cd,
+ 0xb760a93e,
+ 0xb520590c,
+ 0xb54043cd,
+ 0xb540434d,
+ 0xf2084455,
+ 0xda08aa39,
+ 0xf048a9a2,
+ 0xd112a967,
+ 0x9e4d0938,
+ 0xa8c1d810,
+ 0x75002a20,
+ 0xf0489e5c,
+ 0x60c2a97d,
+ 0x5a7fc080,
+ 0x5a71c200,
+ 0x58930098,
+ 0xe2105894,
+ 0xb54080a3,
+ 0xb54046cd,
+ 0xb520474d,
+ 0xc00047cd,
+ 0xe1809182,
+ 0xc0005dc0,
+ 0xf0489284,
+ 0xd810a977,
+ 0xc000aa41,
+ 0xb7409100,
+ 0xd8105904,
+ 0xf040aa41,
+ 0xf310a957,
+ 0xf2888021,
+ 0xf288a12b,
+ 0xf208a225,
+ 0xb760aa39,
+ 0xf248591c,
+ 0xf248a8a1,
+ 0xaa61a229,
+ 0xa969a8e6,
+ 0xa0b1f248,
+ 0xf2089d67,
+ 0xf208a221,
+ 0xf208a0aa,
+ 0xd858a12d,
+ 0xd858a8ea,
+ 0xd111a96d,
+ 0xda080a18,
+ 0xf208a881,
+ 0xb720a0a6,
+ 0xf2085a94,
+ 0x58c0a131,
+ 0xf28858d1,
+ 0xda10a0b5,
+ 0xb740aa61,
+ 0xb740425d,
+ 0x008942c5,
+ 0x5a20c200,
+ 0xf310589c,
+ 0xe2108021,
+ 0xa26d82a3,
+ 0xa0f1f018,
+ 0xa225f248,
+ 0xa0adf248,
+ 0x0a00c00c,
+ 0x4e8cb580,
+ 0x0880c006,
+ 0x4f0cb520,
+ 0x0cf2c42e,
+ 0xb4810a02,
+ 0xb101c000,
+ 0x28844220,
+ 0xc0007440,
+ 0xb7409182,
+ 0xd111590c,
+ 0xda080a28,
+ 0xc058a881,
+ 0xc0267460,
+ 0xda109172,
+ 0xb720aa61,
+ 0x8706410a,
+ 0x9dd47500,
+ 0x1ed2d002,
+ 0xb55f7448,
+ 0xc0007de4,
+ 0xf2109112,
+ 0xcffeaa79,
+ 0xf2102a3d,
+ 0xf210a279,
+ 0x2a40aa79,
+ 0xc0007500,
+ 0x0a0a9122,
+ 0x0caec060,
+ 0xc000b481,
+ 0x90e0c000,
+ 0xc0600a06,
+ 0xb4810cae,
+ 0xb720c000,
+ 0xf2c84d14,
+ 0xf288aa21,
+ 0xc801a8bd,
+ 0x9d1e3c80,
+ 0x450cb740,
+ 0x5a40c200,
+ 0xc30158a0,
+ 0x32423246,
+ 0xa251f008,
+ 0x9970c034,
+ 0xc0340a3e,
+ 0xb4810c9e,
+ 0x0882c000,
+ 0xb4210c90,
+ 0xffd4c000,
+ 0xc0069a92,
+ 0xb5408542,
+ 0x0a02469c,
+ 0x0c8ac030,
+ 0xc000b481,
+ 0x0882c002,
+ 0xb4210c84,
+ 0xc801c000,
+ 0xc0020a02,
+ 0x1c840a00,
+ 0xc000b481,
+ 0x0902c1c1,
+ 0x0940c006,
+ 0x09820dce,
+ 0xffb40d02,
+ 0xc0c09baa,
+ 0xffd40d82,
+ 0xb7809a18,
+ 0xc034468c,
+ 0xc2000cae,
+ 0xb4815a11,
+ 0x0882c000,
+ 0xb4210cfc,
+ 0xf210c000,
+ 0x2a04aa79,
+ 0x850a7500,
+ 0x471cb540,
+ 0x90a2c000,
+ 0xb5408504,
+ 0xb780471c,
+ 0xc03e470c,
+ 0xb5800c82,
+ 0xb481478c,
+ 0xc0c8c000,
+ 0xc0500882,
+ 0xb4210ce2,
+ 0xc0e0c000,
+ 0xc0380a3a,
+ 0xb4810cfa,
+ 0xf210c000,
+ 0xb720aa79,
+ 0x871e470c,
+ 0x8562c084,
+ 0x491cb540,
+ 0xc050090a,
+ 0x2a040cb6,
+ 0x38d07500,
+ 0x470cb520,
+ 0x0a02c006,
+ 0x8f28e001,
+ 0x4804b540,
+ 0xc000b481,
+ 0x0d02c03a,
+ 0xc000b442,
+ 0xc03408be,
+ 0xb4210c9e,
+ 0xb785c000,
+ 0x75004608,
+ 0x9082c000,
+ 0x98c2c054,
+ 0x490cb780,
+ 0x0c82c038,
+ 0xc000b481,
+ 0xa965da10,
+ 0xaa35f288,
+ 0x5b0cb720,
+ 0x62458502,
+ 0x462db720,
+ 0x419ab540,
+ 0x421ab540,
+ 0x429ab540,
+ 0xc2007440,
+ 0xb5805a11,
+ 0xc000430a,
+ 0xf2509102,
+ 0xb760a9ea,
+ 0x9e8c430a,
+ 0xb7e09c62,
+ 0x0b02590c,
+ 0xb7809eae,
+ 0xc050480c,
+ 0xb4810c82,
+ 0xc030c000,
+ 0xb4c20d0a,
+ 0xc00ec000,
+ 0xc03008fe,
+ 0xb4210c8e,
+ 0xf210c000,
+ 0x2a04aa79,
+ 0xc0007500,
+ 0xc4389182,
+ 0xb4c10c8a,
+ 0xb104c000,
+ 0xc03e4220,
+ 0xb4810ca6,
+ 0xb780c000,
+ 0x7500430c,
+ 0x93a2c001,
+ 0x2a00c020,
+ 0xc0017500,
+ 0xc46090e2,
+ 0xb4c10ca2,
+ 0xb104c000,
+ 0x088a4220,
+ 0x0ca2c060,
+ 0xc000b421,
+ 0x0902c004,
+ 0x0c96c030,
+ 0xc000b441,
+ 0x430cb780,
+ 0x2a7dcfde,
+ 0x430cb580,
+ 0x08f8c002,
+ 0x0cecc00e,
+ 0xc000b421,
+ 0x0a02c201,
+ 0xc000b481,
+ 0x8502c004,
+ 0x4d9cb540,
+ 0x430cb720,
+ 0x0c96c030,
+ 0xc000b421,
+ 0x430cb780,
+ 0x75002a04,
+ 0x90e2c000,
+ 0x488cb780,
+ 0xb5800a04,
+ 0xb75f488c,
+ 0xb7807dfc,
+ 0x9d4f430c,
+ 0xb580058b,
+ 0xc034508c,
+ 0xb7809a19,
+ 0xc020438c,
+ 0x75002a00,
+ 0x287cc00e,
+ 0x7d6cb51f,
+ 0x9042c002,
+ 0xa9c6f250,
+ 0x0d02c021,
+ 0xc0100d7c,
+ 0xffb40982,
+ 0xf2509aa1,
+ 0xc021a9ce,
+ 0x0d3c0d02,
+ 0x0982c008,
+ 0x9a98ffb4,
+ 0x438cb780,
+ 0x2a00c401,
+ 0xc0007500,
+ 0xf2089262,
+ 0xf208aa6d,
+ 0x0906a8f1,
+ 0x7e6cb55f,
+ 0x0a00c010,
+ 0xa26df208,
+ 0x0880c008,
+ 0xa0f1f208,
+ 0x91c0c000,
+ 0xa927f248,
+ 0xaa29f248,
+ 0xa92cf24a,
+ 0xa8b1f248,
+ 0x8021f310,
+ 0x82a3e210,
+ 0xa225f248,
+ 0xa0adf248,
+ 0x438cb780,
+ 0x2a7dcfde,
+ 0x438cb580,
+ 0x438cb780,
+ 0x2a00c021,
+ 0xc0017500,
+ 0xb7609122,
+ 0xc0214414,
+ 0x0d140d02,
+ 0x09c2c002,
+ 0x9a5affb4,
+ 0x4494b760,
+ 0x0d02c021,
+ 0x09c20d04,
+ 0x9a52ffb4,
+ 0x441cb740,
+ 0xaa59f210,
+ 0x4484b740,
+ 0xa8c1f250,
+ 0x4394b720,
+ 0x8021f310,
+ 0x82a3e210,
+ 0x2cfecfdf,
+ 0x4394b520,
+ 0x440cb580,
+ 0x448cb520,
+ 0x4394b720,
+ 0xc4019e4c,
+ 0x75002a00,
+ 0x91a2c000,
+ 0xaa45f250,
+ 0xa8cdf250,
+ 0x1a40c002,
+ 0x440cb580,
+ 0xb52018c0,
+ 0x9e4c448c,
+ 0x2c80c400,
+ 0xcbff7640,
+ 0xb5802a7e,
+ 0xc000438c,
+ 0xffd49142,
+ 0xb7809875,
+ 0xcbfe438c,
+ 0xb5802a7d,
+ 0xb75f438c,
+ 0x76807f74,
+ 0x9362c000,
+ 0x5a8cb760,
+ 0x2d410d3c,
+ 0xa9e6f048,
+ 0x5d0d9e53,
+ 0xc0211d04,
+ 0xffb43d00,
+ 0xb7809a05,
+ 0xb75f5a8c,
+ 0xf2487f64,
+ 0xb760a907,
+ 0xf0105a9c,
+ 0xf0588025,
+ 0xb780a265,
+ 0xc100438c,
+ 0x75002a00,
+ 0x9142c000,
+ 0x9ad8ffb4,
+ 0x438cb780,
+ 0x2a7dcefe,
+ 0x438cb580,
+ 0x430cb780,
+ 0x2a00c004,
+ 0xc0027500,
+ 0xd15292a2,
+ 0xb7200ad8,
+ 0xda10418a,
+ 0xba09aa21,
+ 0xba244002,
+ 0x0a0c4002,
+ 0xc0027048,
+ 0xb73f90f8,
+ 0xb7607eec,
+ 0xc0044e94,
+ 0x0d1e0982,
+ 0x0a12d011,
+ 0x2a7cc00e,
+ 0x7eecb59f,
+ 0x99c6ffb4,
+ 0x4f14b760,
+ 0x0982c002,
+ 0xffb40d0e,
+ 0xb74099bf,
+ 0xf2084e9c,
+ 0xb740aa39,
+ 0xf2104f04,
+ 0xb75fa8a1,
+ 0xf2487eec,
+ 0xc301a8a2,
+ 0xb5408120,
+ 0x70824e9c,
+ 0x8322c001,
+ 0x4f04b540,
+ 0x9286c000,
+ 0x62199e4b,
+ 0xf3106097,
+ 0xe2108821,
+ 0x09028aa3,
+ 0x7eecb55f,
+ 0x0a00c010,
+ 0x4e8cb580,
+ 0x0880c008,
+ 0x4f0cb520,
+ 0x438cb780,
+ 0x3a00c041,
+ 0x438cb580,
+ 0x438cb780,
+ 0x2a00c005,
+ 0xc0047500,
+ 0xf2109142,
+ 0xf210a9c2,
+ 0x09c2a945,
+ 0x0c820d42,
+ 0xffb40882,
+ 0xf210999a,
+ 0xc020aa79,
+ 0x75002a00,
+ 0x9302c000,
+ 0xa9aaf208,
+ 0xa931f208,
+ 0x0d2209a2,
+ 0x08820c82,
+ 0x99a7ffb4,
+ 0xa9aef208,
+ 0xa931f208,
+ 0x0d2209a2,
+ 0x08820c82,
+ 0x99bbffb4,
+ 0x9180c000,
+ 0xa9aaf208,
+ 0xa931f208,
+ 0x0d2209c2,
+ 0x08820c82,
+ 0x9973ffb4,
+ 0x438cb720,
+ 0xc1010203,
+ 0x75002a00,
+ 0x9122c001,
+ 0xa8eada48,
+ 0xa963f208,
+ 0x28feceff,
+ 0x438cb520,
+ 0xa8edda48,
+ 0xa968f20a,
+ 0xe2205c90,
+ 0xf20880ab,
+ 0x0203a967,
+ 0xc200588c,
+ 0xf3105a0c,
+ 0xe2108221,
+ 0xf20880a3,
+ 0xf208a0e2,
+ 0xf208a269,
+ 0xf210a0e5,
+ 0xf210a0c2,
+ 0xf210a0c9,
+ 0xc001a24d,
+ 0xf2109040,
+ 0xf210aa79,
+ 0xc020a8c1,
+ 0x75002a00,
+ 0xf21008c0,
+ 0xc000a0c1,
+ 0xf2089182,
+ 0xf208aa29,
+ 0x0a20a8ad,
+ 0xa229f208,
+ 0xc00008a0,
+ 0xf2089140,
+ 0xf208aa29,
+ 0x0a40a8ad,
+ 0xa229f208,
+ 0xf20808c0,
+ 0xb780a0ad,
+ 0xcffb438c,
+ 0xc0092a7e,
+ 0xb5803a00,
+ 0xb780438c,
+ 0x75004d8c,
+ 0x9142c000,
+ 0x0c82c040,
+ 0xc000b481,
+ 0x0a02c201,
+ 0xc000b481,
+ 0x438cb780,
+ 0x2a00c008,
+ 0xc0007500,
+ 0xc1119362,
+ 0xc04e0902,
+ 0x0df20940,
+ 0x0d020982,
+ 0x9b95ffb4,
+ 0x0902c111,
+ 0x0940c026,
+ 0x09820df6,
+ 0x0d42c004,
+ 0x9b8bffb4,
+ 0x438cb780,
+ 0x2a7dcff6,
+ 0x438cb580,
+ 0x438cb780,
+ 0x2a00c080,
+ 0xc0007500,
+ 0xb76091c2,
+ 0xba1b4192,
+ 0xc0144003,
+ 0xb7809a7f,
+ 0xcf7e438c,
+ 0xb5802a7d,
+ 0xb780438c,
+ 0xc010438c,
+ 0x75002a00,
+ 0x93e2c001,
+ 0x0902c121,
+ 0x0940c00e,
+ 0x09820d9e,
+ 0xffb40d02,
+ 0xc1219b44,
+ 0xc0860902,
+ 0x0da20940,
+ 0x0d020982,
+ 0x9b3bffb4,
+ 0x7e74b75f,
+ 0xc0017680,
+ 0xf2109002,
+ 0x2a40aa79,
+ 0xc0007500,
+ 0xc1219342,
+ 0xc0020902,
+ 0x0da60900,
+ 0x0d060982,
+ 0x9b27ffb4,
+ 0x0902c121,
+ 0x0900c080,
+ 0x09820da6,
+ 0xffb40d16,
+ 0xb7809b1e,
+ 0xc021438c,
+ 0xb5803a00,
+ 0xb780438c,
+ 0xcfee438c,
+ 0xc0202a7d,
+ 0xb5803a00,
+ 0xb780438c,
+ 0xc800438c,
+ 0x75002a00,
+ 0x92c2c000,
+ 0x7d6cb79f,
+ 0x4192b760,
+ 0xa97af210,
+ 0xba1b0189,
+ 0x5d114003,
+ 0x2d044d04,
+ 0x9bd5ffb4,
+ 0x438cb780,
+ 0x2a7ec7fe,
+ 0x438cb580,
+ 0x438cb780,
+ 0x2a00c200,
+ 0xc0007500,
+ 0x0d8690c2,
+ 0xffb40982,
+ 0xb7809a36,
+ 0xc041438c,
+ 0x75002a00,
+ 0x9342c000,
+ 0x0902c101,
+ 0x0940c002,
+ 0x09820da6,
+ 0xffb40d02,
+ 0xc1019ada,
+ 0xc0800902,
+ 0x0da60940,
+ 0x0d120982,
+ 0x9ad1ffb4,
+ 0x438cb780,
+ 0x2a7ecfbf,
+ 0x438cb580,
+ 0x438cb720,
+ 0xc0090203,
+ 0x75002a00,
+ 0x9142c001,
+ 0x0902c101,
+ 0x0940c00e,
+ 0x28fecff7,
+ 0x438cb520,
+ 0x09820d9e,
+ 0xffb40d02,
+ 0xf2109ab6,
+ 0xc020aa79,
+ 0x75002a00,
+ 0x91a2c000,
+ 0x0902c101,
+ 0x0940c006,
+ 0x09820da2,
+ 0xffb40d02,
+ 0xc0009aa6,
+ 0xc1019160,
+ 0xc0860902,
+ 0x0da20940,
+ 0x0d020982,
+ 0x9a9bffb4,
+ 0x0902c1c1,
+ 0x0940c006,
+ 0x09820dce,
+ 0xffb40d02,
+ 0xc014980a,
+ 0xc03099c2,
+ 0xb4c10c8a,
+ 0xb780c000,
+ 0x0c884d8c,
+ 0xc000b481,
+ 0x0882cc01,
+ 0xb4211c88,
+ 0xc034c000,
+ 0xb7209bd9,
+ 0xd0314d8c,
+ 0x75002a10,
+ 0xb55f0902,
+ 0xc0007f6c,
+ 0xc43a91c2,
+ 0xb4c10c82,
+ 0xb104c000,
+ 0xc0114220,
+ 0xc03a3a00,
+ 0xb4810c82,
+ 0xd211c000,
+ 0x75002a10,
+ 0x9342c000,
+ 0x0c8ac450,
+ 0xc000b4c1,
+ 0x4240b102,
+ 0xc00e9e53,
+ 0xb57f29fc,
+ 0x00877f6c,
+ 0xb4c11c84,
+ 0xb104c000,
+ 0x2a104220,
+ 0xc0007500,
+ 0x589090a4,
+ 0x7f6cb53f,
+ 0x430cb780,
+ 0x0c8ac030,
+ 0x4d8cb580,
+ 0xc000b4c1,
+ 0x0a02c801,
+ 0x0a00c002,
+ 0xc000b481,
+ 0xc00408be,
+ 0xb4210c94,
+ 0xc0c0c000,
+ 0xffb40d82,
+ 0xb7609a20,
+ 0xb7804112,
+ 0x9ea4428c,
+ 0xb7209c62,
+ 0xc034468c,
+ 0x58910cae,
+ 0xc000b421,
+ 0x75000a02,
+ 0x9244c000,
+ 0x7f6cb73f,
+ 0xc0007440,
+ 0xd03191a2,
+ 0x2941091e,
+ 0x09820dea,
+ 0x19400d02,
+ 0x3900c121,
+ 0x9a15ffb4,
+ 0x9928c014,
+ 0x5408b785,
+ 0xb7807500,
+ 0xc000478c,
+ 0x2a7990a2,
+ 0x5408b5c5,
+ 0x0c82c03e,
+ 0xc000b481,
+ 0x508cb780,
+ 0xb7208702,
+ 0x0e82418a,
+ 0x7de4b55f,
+ 0x75002a08,
+ 0xb5200884,
+ 0xc000418a,
+ 0xb7209362,
+ 0xb720590c,
+ 0xd1114292,
+ 0xda080a18,
+ 0x0c84a881,
+ 0xba249e4c,
+ 0x58914002,
+ 0xb5207102,
+ 0xc0004292,
+ 0xb7809138,
+ 0xb5a0420a,
+ 0x0a044292,
+ 0x420ab580,
+ 0x7d74b73f,
+ 0xffe17640,
+ 0xb7809102,
+ 0xd3ff438c,
+ 0xffe17d3e,
+ 0xb75f9044,
+ 0x74807f6c,
+ 0x93a4ffe0,
+ 0x7ceeb79f,
+ 0x7d6eb7bf,
+ 0x7deeb7df,
+ 0x7e6eb7ff,
+ 0x8c60c002,
+ 0xa6059c22,
+ 0x8420c004,
+ 0x0ca2c829,
+ 0x0ce0c394,
+ 0xac3dc030,
+ 0x8d00e133,
+ 0xa45dc038,
+ 0xac3dc030,
+ 0xa45dc038,
+ 0xac3dc010,
+ 0xa45dc018,
+ 0xac25c010,
+ 0xa445c018,
+ 0x4504b740,
+ 0xaa41f000,
+ 0x590cb7a0,
+ 0xc2009e2d,
+ 0xd0935a08,
+ 0x9ea90940,
+ 0xa96de020,
+ 0xc0080dc2,
+ 0x09c20d42,
+ 0x9b77ff94,
+ 0x5a8cb780,
+ 0xa8a1f208,
+ 0xf2088502,
+ 0xf208a8a6,
+ 0xf208a103,
+ 0xf208a085,
+ 0xf208a929,
+ 0xf208a08a,
+ 0xf208a92e,
+ 0xf208a8b2,
+ 0xf248a10d,
+ 0xf208a8b1,
+ 0xf208a112,
+ 0xf208a096,
+ 0x090aa09a,
+ 0x0c92c036,
+ 0xf24808c0,
+ 0xb441a085,
+ 0x0a16c000,
+ 0xb4811c8c,
+ 0xf031c000,
+ 0xe1318c00,
+ 0x9ea38d80,
+ 0x7ffcb55f,
+ 0xb9600d02,
+ 0xf2084078,
+ 0x9dbaa103,
+ 0x5d0dd122,
+ 0xf0299e2d,
+ 0xd012a8e5,
+ 0x5c882cae,
+ 0x5908d126,
+ 0xe0389e4a,
+ 0x0d04aa4d,
+ 0x50a828bc,
+ 0xa2413242,
+ 0x91c1ffff,
+ 0xaa61f010,
+ 0x0c8ec036,
+ 0xc000b481,
+ 0x7fecb73f,
+ 0xb4211c84,
+ 0xc034c000,
+ 0xc8019afb,
+ 0xc11208c2,
+ 0xc8090890,
+ 0xc5dc0a42,
+ 0xc0320a50,
+ 0xb5800cbe,
+ 0xb421428c,
+ 0x0a3ec000,
+ 0xb4810ce0,
+ 0x0882c000,
+ 0x0cc6c080,
+ 0xc000b421,
+ 0x0a42c801,
+ 0x0a18c112,
+ 0x0cc2c032,
+ 0xc000b481,
+ 0x0cdc08c0,
+ 0xc000b421,
+ 0xc0800a02,
+ 0xb4810cc6,
+ 0xc801c000,
+ 0xc11408c2,
+ 0xc0320890,
+ 0xb4210cc6,
+ 0x0a44c000,
+ 0xb4810cd8,
+ 0x0882c000,
+ 0x0cc6c080,
+ 0xc000b421,
+ 0x0a42c801,
+ 0x0a18c114,
+ 0x0ccac032,
+ 0xc000b481,
+ 0x0cd408c8,
+ 0xc000b421,
+ 0xc0800a02,
+ 0xb4810cc6,
+ 0xb79fc000,
+ 0xb7bf7aee,
+ 0xc0047b6e,
+ 0x9c228c60,
+ 0xc0010882,
+ 0xc3320c92,
+ 0xb4210c84,
+ 0xb780c000,
+ 0x873e4c8c,
+ 0xc0400a10,
+ 0xb7809c8b,
+ 0x9c22c238,
+ 0x468cb780,
+ 0xc00c0a40,
+ 0xb5807520,
+ 0xb340468c,
+ 0x850248b4,
+ 0x469cb540,
+ 0xb7809c22,
+ 0xf2084c8c,
+ 0xf208a895,
+ 0xf208a88e,
+ 0xf208a905,
+ 0xf288a99d,
+ 0xf208a906,
+ 0xf208a09d,
+ 0xf208a096,
+ 0xf208a10d,
+ 0xf208a185,
+ 0xf208a899,
+ 0xf208a892,
+ 0xf248a909,
+ 0xf248a981,
+ 0xf208a081,
+ 0xf208a09a,
+ 0xf208a111,
+ 0xf288a189,
+ 0xf248a881,
+ 0xf248a995,
+ 0xf248a89e,
+ 0xf288a90d,
+ 0xf248a085,
+ 0xf248a18d,
+ 0xf288a999,
+ 0xf248a082,
+ 0xf248a115,
+ 0xf248a891,
+ 0xf288a191,
+ 0xf288a989,
+ 0xf248a89a,
+ 0xf288a099,
+ 0xf248a10a,
+ 0xf288a19d,
+ 0xf288a99d,
+ 0xf288a09e,
+ 0xf288a895,
+ 0xf288a892,
+ 0xf288a90d,
+ 0xf288a099,
+ 0xf288a096,
+ 0xf288a111,
+ 0x9c22a18d,
+ 0xc801a60d,
+ 0xcb100a42,
+ 0xc0320a00,
+ 0xb4810cea,
+ 0xc801c000,
+ 0xc01008c2,
+ 0x0c840888,
+ 0xc000b421,
+ 0x0a42c008,
+ 0x1ce4c002,
+ 0xc000b481,
+ 0x08c2c008,
+ 0x0d0ec030,
+ 0xc000b422,
+ 0x0c82c450,
+ 0x1a40c008,
+ 0xc000b481,
+ 0x4220b101,
+ 0x38c0c002,
+ 0x4e0cb520,
+ 0x0c82c050,
+ 0xc000b421,
+ 0x0d82c0c0,
+ 0xc0080992,
+ 0xc0080d02,
+ 0xffd40902,
+ 0xc45098b8,
+ 0x0a020c86,
+ 0xc000b481,
+ 0x4220b104,
+ 0x0a02c008,
+ 0x0d0ec030,
+ 0xc000b482,
+ 0xc0080c84,
+ 0xb4811a00,
+ 0xb105c000,
+ 0xc2804220,
+ 0xc8015a35,
+ 0x08c00882,
+ 0x2afcc00e,
+ 0x5a90c280,
+ 0x2b4ed072,
+ 0xc0309ead,
+ 0xb4210c8a,
+ 0x0a42c000,
+ 0xb4810c84,
+ 0x7740c000,
+ 0x5a8cb7c0,
+ 0x9002c001,
+ 0x0eded031,
+ 0x09820dea,
+ 0x2ac10d02,
+ 0x1950d051,
+ 0x3900c121,
+ 0x980bffb4,
+ 0xa9c6f248,
+ 0xc280018b,
+ 0x1a845a8d,
+ 0xc0219eaa,
+ 0xff943d00,
+ 0xf248996d,
+ 0xd010aa45,
+ 0x024a16dc,
+ 0xa245f248,
+ 0x0c86c450,
+ 0xb4810a02,
+ 0xb104c000,
+ 0x0a6e4220,
+ 0x0c9ec034,
+ 0xc000b481,
+ 0x590cb720,
+ 0xaa45f248,
+ 0x4635b720,
+ 0x1940d053,
+ 0x88abf210,
+ 0x0ca2c080,
+ 0x5a0cc280,
+ 0x420cb580,
+ 0xc000b4a1,
+ 0x4608b785,
+ 0xc0037500,
+ 0xb7219262,
+ 0xb781540c,
+ 0xc030528c,
+ 0x0a047c40,
+ 0x528cb581,
+ 0x9082c000,
+ 0x98c3c034,
+ 0x530cb720,
+ 0x41b5b720,
+ 0x528cb781,
+ 0x442db740,
+ 0x62439e49,
+ 0xc0007104,
+ 0x850690b8,
+ 0x4c18b545,
+ 0x4708b785,
+ 0xb7a07500,
+ 0xc0005b14,
+ 0xb7a09262,
+ 0xf210540c,
+ 0xf208a83d,
+ 0x0d86a9a1,
+ 0x9c629e84,
+ 0xa021f208,
+ 0xa825f250,
+ 0x09869eab,
+ 0x9c629e84,
+ 0x4708b785,
+ 0xc0007500,
+ 0xb7609164,
+ 0xf2105414,
+ 0x9e84a825,
+ 0x02819c62,
+ 0x9220c000,
+ 0x4688b785,
+ 0xc0007500,
+ 0xb7809102,
+ 0xf208548c,
+ 0xc000aa81,
+ 0xb78090c0,
+ 0xf208550c,
+ 0xb720aa8d,
+ 0xb780568c,
+ 0x75004129,
+ 0xc0000303,
+ 0xb7859264,
+ 0x75004708,
+ 0x90c4c000,
+ 0xaa21f250,
+ 0x9c629ea4,
+ 0x421cb740,
+ 0xaa35f210,
+ 0x89a3e320,
+ 0x9c629ea4,
+ 0xaa39f210,
+ 0x018d9eab,
+ 0x9c629ea4,
+ 0x538cb780,
+ 0x0ca6c080,
+ 0xaa91d2c8,
+ 0xc000b4a1,
+ 0x0d92c002,
+ 0x9be4ffb4,
+ 0xffff700a,
+ 0x0d869364,
+ 0x0d0a09c2,
+ 0x0902c121,
+ 0x98c7ff94,
+ 0x590cb780,
+ 0xa992f248,
+ 0x0d02c0a1,
+ 0x09c20d04,
+ 0x98b2ff94,
+ 0x0d82c0c0,
+ 0x0d420992,
+ 0xffb40942,
+ 0x0a429bb2,
+ 0x0c8ec030,
+ 0xc000b481,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x590cb700,
+ 0x0c0276c0,
+ 0xc0000d82,
+ 0xb7809342,
+ 0xd131438c,
+ 0xb7200880,
+ 0xb5004033,
+ 0xb5004f94,
+ 0xb5005014,
+ 0x2c884994,
+ 0xcdff7640,
+ 0xb5802a7e,
+ 0x8522438c,
+ 0x9062c000,
+ 0xb5408512,
+ 0x74c04b9c,
+ 0x5794b740,
+ 0x92e2c000,
+ 0x438cb780,
+ 0xd8108502,
+ 0xb540a8c1,
+ 0xb540501c,
+ 0xb541431c,
+ 0xb540559c,
+ 0xb5404c1c,
+ 0xb520499c,
+ 0xcdff4f8c,
+ 0xb5802a7e,
+ 0xd131438c,
+ 0xb7200880,
+ 0xb7804033,
+ 0xd012430c,
+ 0x00892c14,
+ 0x2a00c008,
+ 0xcffa7500,
+ 0xb52028fd,
+ 0xc000430c,
+ 0xb78092c2,
+ 0x7600438c,
+ 0x3a00c800,
+ 0x438cb580,
+ 0x90e4c000,
+ 0xb5458506,
+ 0xc0005818,
+ 0xb7859100,
+ 0x0d865808,
+ 0xb5853a08,
+ 0xb7455808,
+ 0xd0115808,
+ 0x75002a22,
+ 0x9102c000,
+ 0x438cb780,
+ 0x3a00c010,
+ 0x438cb580,
+ 0x4c0cb780,
+ 0xc0007500,
+ 0xb78090e2,
+ 0x2a79430c,
+ 0x430cb580,
+ 0x4314b720,
+ 0x4b8cb720,
+ 0x79029e4c,
+ 0x2a2ed3f1,
+ 0x5a05c200,
+ 0x5808b585,
+ 0x9102c000,
+ 0x3e10d211,
+ 0x430cb580,
+ 0x90c0c000,
+ 0x2cfdcff6,
+ 0x4314b520,
+ 0x4314b720,
+ 0x2e10d111,
+ 0xc0007500,
+ 0x850690a2,
+ 0x4a1cb540,
+ 0xd0a27600,
+ 0x08825e1d,
+ 0x0892d002,
+ 0x79022a04,
+ 0x9102c000,
+ 0x3e10d111,
+ 0x430cb580,
+ 0x9120c000,
+ 0xc00076c0,
+ 0xc02090c2,
+ 0xb5203c80,
+ 0xb7204314,
+ 0xd011430c,
+ 0x75002a12,
+ 0x90e2c000,
+ 0x4b8cb780,
+ 0xc0003218,
+ 0xb78090c0,
+ 0x4a7d4b8c,
+ 0xb5802218,
+ 0xb720430c,
+ 0xd011430c,
+ 0x75002a14,
+ 0x9102c000,
+ 0x3a12d011,
+ 0x430cb580,
+ 0x90a0c000,
+ 0xb52028f9,
+ 0xd810430c,
+ 0xb740a8c1,
+ 0xd8104f9c,
+ 0xe210aa45,
+ 0xc20088a3,
+ 0x70485a11,
+ 0x9036c003,
+ 0x0a08d111,
+ 0xa882da08,
+ 0x430cb720,
+ 0x498cb740,
+ 0x9e4c5c91,
+ 0x4394b740,
+ 0xb5203888,
+ 0x7088430c,
+ 0x3d00c100,
+ 0x4394b540,
+ 0x9278c000,
+ 0x558cb721,
+ 0x74409e54,
+ 0x3a04c001,
+ 0x438cb580,
+ 0x9124c000,
+ 0x3d04c011,
+ 0x4394b540,
+ 0xb5418506,
+ 0xd112559c,
+ 0xb780088c,
+ 0xb720404b,
+ 0xc2004f8c,
+ 0x70485a11,
+ 0x9116c000,
+ 0x438cb780,
+ 0x3a10c001,
+ 0x438cb580,
+ 0x404bb780,
+ 0x5a11c200,
+ 0x70481a08,
+ 0x9116c000,
+ 0x438cb780,
+ 0x3a40c001,
+ 0x438cb580,
+ 0x5014b720,
+ 0x0a08d111,
+ 0xa881da08,
+ 0x58919e4c,
+ 0xc0007102,
+ 0xb7809102,
+ 0xc005438c,
+ 0xb5803a00,
+ 0xb780438c,
+ 0xc084438c,
+ 0xb5803a00,
+ 0xc000438c,
+ 0xb78091a0,
+ 0xb720430c,
+ 0x2a75438c,
+ 0x430cb580,
+ 0x28fdcffa,
+ 0x438cb520,
+ 0x430cb740,
+ 0x2922f012,
+ 0x9102c000,
+ 0x438cb780,
+ 0x3a00c080,
+ 0x438cb580,
+ 0x498cb780,
+ 0x4b94b720,
+ 0x500cb720,
+ 0xb5800a04,
+ 0x9e4c498c,
+ 0x08847888,
+ 0x500cb520,
+ 0x9222c000,
+ 0xc0007680,
+ 0xb72091c4,
+ 0xd011470c,
+ 0xb5803a22,
+ 0x8506430c,
+ 0x4c1cb540,
+ 0xb52028f9,
+ 0xd111470c,
+ 0xda080a08,
+ 0xb720a881,
+ 0xc0025014,
+ 0xc08018c0,
+ 0xc2005a7f,
+ 0x00985a71,
+ 0xb7409e4c,
+ 0x5893470c,
+ 0xb5407102,
+ 0xc001478c,
+ 0xb7409044,
+ 0x0205438c,
+ 0x2a00c080,
+ 0xc0007500,
+ 0xb7209342,
+ 0x02054f94,
+ 0xc2017642,
+ 0xb5803a00,
+ 0xc000438c,
+ 0xd111921c,
+ 0xda080a0c,
+ 0x0c8ca881,
+ 0x58919e4c,
+ 0xc0007102,
+ 0xca0190d6,
+ 0xb5403900,
+ 0xb720438c,
+ 0xd1115014,
+ 0xda080a08,
+ 0x9e4ca881,
+ 0x71025891,
+ 0x9278c000,
+ 0x438cb720,
+ 0xc0050203,
+ 0x75002a00,
+ 0x9162c000,
+ 0x3880c101,
+ 0x438cb520,
+ 0xb5408506,
+ 0xb5404a9c,
+ 0x76004b1c,
+ 0x9122c000,
+ 0x500cb780,
+ 0xc000750c,
+ 0xc0009122,
+ 0xb78092a0,
+ 0x750a500c,
+ 0x9204c000,
+ 0x4a8cb780,
+ 0xc0007500,
+ 0xb7809162,
+ 0x8502438c,
+ 0x4a9cb540,
+ 0x3a00c401,
+ 0x438cb580,
+ 0x500cb780,
+ 0xc0007506,
+ 0xb7809204,
+ 0x75004b0c,
+ 0x9162c000,
+ 0x438cb780,
+ 0xb5408502,
+ 0xc8004b1c,
+ 0xb5803a00,
+ 0xb720438c,
+ 0xd1115014,
+ 0xda080a08,
+ 0x9e4ca881,
+ 0x71025891,
+ 0x9158c000,
+ 0x4f8cb780,
+ 0xb5408502,
+ 0x0a04501c,
+ 0x4f8cb580,
+ 0x430cb780,
+ 0x85027500,
+ 0x9144c000,
+ 0x438cb780,
+ 0x2a00c400,
+ 0x85027500,
+ 0x8522e001,
+ 0x9c229d43,
+ 0x4688b785,
+ 0xb7607500,
+ 0xc001570c,
+ 0xb72093a4,
+ 0xb780578c,
+ 0x2a20432d,
+ 0xb7407500,
+ 0xb7404208,
+ 0xc0005b9c,
+ 0xb7409082,
+ 0x9d535c9c,
+ 0xa8c5c040,
+ 0x5714b720,
+ 0x1a24d031,
+ 0x6a72c002,
+ 0x691dd012,
+ 0x0c90d231,
+ 0x75009e4b,
+ 0x4035b540,
+ 0x0c90d251,
+ 0x402db580,
+ 0x4100d03c,
+ 0x4e38b411,
+ 0x402db780,
+ 0x7538c0b8,
+ 0x90dcc000,
+ 0x8572c05c,
+ 0x403db540,
+ 0x6a2dd011,
+ 0x08b0d272,
+ 0x08b8d231,
+ 0x4035b540,
+ 0x404db580,
+ 0x0a30d231,
+ 0xaa01f208,
+ 0xc0007500,
+ 0xc03e90c2,
+ 0xb4810cb6,
+ 0xd251c000,
+ 0xf2080a30,
+ 0xc03ea881,
+ 0xb4210caa,
+ 0xd231c000,
+ 0xf2080a38,
+ 0x7500aa01,
+ 0x9122c000,
+ 0x5a40c200,
+ 0x3a00c801,
+ 0xb4810c90,
+ 0xd251c000,
+ 0xf2080a38,
+ 0x7500aa01,
+ 0x90c2c000,
+ 0x0ca2c03e,
+ 0xc000b481,
+ 0x0a30d271,
+ 0xa881f208,
+ 0x0c8ac03e,
+ 0xc000b421,
+ 0xa6859c22,
+ 0x0c92c43e,
+ 0xb4810a02,
+ 0xb103c000,
+ 0xb7804220,
+ 0xda08560c,
+ 0xda08a885,
+ 0xda08a909,
+ 0xda08a189,
+ 0xda08a081,
+ 0x0cd0a105,
+ 0xb4810a02,
+ 0xb103c000,
+ 0xb7804220,
+ 0xb7c0558c,
+ 0xda08560c,
+ 0x9ea5a885,
+ 0xa88ada08,
+ 0xa189da08,
+ 0x2d80c008,
+ 0xda0876c0,
+ 0xda08a081,
+ 0xc00ba086,
+ 0xb7809102,
+ 0x0a044708,
+ 0x4708b580,
+ 0x0ca6c450,
+ 0xb4810a02,
+ 0xb103c000,
+ 0x00874220,
+ 0x2880c031,
+ 0xc00f0207,
+ 0xd0a42a7c,
+ 0xd2285861,
+ 0x028759c1,
+ 0x2afccffe,
+ 0x0a020c88,
+ 0xc000b481,
+ 0x4220b103,
+ 0x59c1d1a6,
+ 0xcffe0107,
+ 0x0cbc297c,
+ 0xc000b481,
+ 0x4220b103,
+ 0xb7820087,
+ 0xc0fc668a,
+ 0xd0a42880,
+ 0xb7255b19,
+ 0xd0f14690,
+ 0x1208283e,
+ 0x76409ea2,
+ 0x668ab502,
+ 0x4003ba12,
+ 0x90e4c000,
+ 0x4708b785,
+ 0xc0027500,
+ 0xb78593a4,
+ 0x75004708,
+ 0x81b3e331,
+ 0x0127d011,
+ 0x578cb780,
+ 0x0c827602,
+ 0x0c92d001,
+ 0xa899f208,
+ 0x28849e4c,
+ 0xb7607848,
+ 0xc0005414,
+ 0xd81090e2,
+ 0x0a04aa69,
+ 0xa269d810,
+ 0xa96bf010,
+ 0xa96cf012,
+ 0x8026f010,
+ 0x82a5e210,
+ 0xa269f010,
+ 0xa0edf010,
+ 0x7c08b781,
+ 0x08827500,
+ 0x0892d002,
+ 0x0a027602,
+ 0x0a42d002,
+ 0xc0007848,
+ 0xc07c90c2,
+ 0xda088542,
+ 0x7602a143,
+ 0xa973f010,
+ 0x90c4c000,
+ 0xaa21da10,
+ 0x9080c000,
+ 0xaa41da08,
+ 0x80a1e310,
+ 0xaa6dd810,
+ 0xa0f1f010,
+ 0x0a047606,
+ 0xa26dd810,
+ 0x9124c000,
+ 0x4788b780,
+ 0xb5800a04,
+ 0xc0064788,
+ 0x85029200,
+ 0x4798b540,
+ 0x9160c006,
+ 0x578cb720,
+ 0x5414b720,
+ 0x0127d330,
+ 0x432db780,
+ 0x8122c301,
+ 0x4545b740,
+ 0x75002a04,
+ 0x8027f010,
+ 0x8221f310,
+ 0xb5800583,
+ 0xc001454d,
+ 0x760290a2,
+ 0x90c4c000,
+ 0xaa21da10,
+ 0x9080c000,
+ 0xaa41da08,
+ 0xa27dd810,
+ 0xc0017606,
+ 0x76009082,
+ 0x91a4c000,
+ 0xd8107680,
+ 0xe002a973,
+ 0xf2108d2a,
+ 0xd8108025,
+ 0xc000a271,
+ 0x768092c0,
+ 0xa967d850,
+ 0x8d26e002,
+ 0x9160c000,
+ 0xaa21da10,
+ 0xd8507680,
+ 0xd810a967,
+ 0xe002a27d,
+ 0xf2108d2a,
+ 0xd8508025,
+ 0xb785a265,
+ 0x75004808,
+ 0x92e2c000,
+ 0x410ab780,
+ 0xc0007008,
+ 0x85029244,
+ 0x4818b545,
+ 0x0c82c43a,
+ 0xb4810a02,
+ 0xb103c000,
+ 0xcfef4220,
+ 0xc03a29fe,
+ 0xb4610c82,
+ 0xb780c000,
+ 0x7008410a,
+ 0xd0020882,
+ 0x76060892,
+ 0xd0010a02,
+ 0x78480a42,
+ 0x9242c000,
+ 0xb5458506,
+ 0xc43a4818,
+ 0x0a020c82,
+ 0xc000b481,
+ 0x4220b103,
+ 0x3980c011,
+ 0x0c82c03a,
+ 0xc000b461,
+ 0xc0017780,
+ 0x76009162,
+ 0x92c4c000,
+ 0xaa41da08,
+ 0xa967f010,
+ 0xa8f5d810,
+ 0xa8fad810,
+ 0x8021f310,
+ 0xd8100082,
+ 0x0c84a0f5,
+ 0xa0fad810,
+ 0xa265f010,
+ 0x9280c000,
+ 0xaa21da10,
+ 0xa97bf010,
+ 0xa8e9d850,
+ 0xa8eed850,
+ 0x8021f310,
+ 0xd8500082,
+ 0x0c84a0e9,
+ 0xa0eed850,
+ 0xa279f010,
+ 0xaa7dd810,
+ 0xa97ff010,
+ 0xa960f052,
+ 0xa9e7f050,
+ 0x8021f310,
+ 0xa96ff050,
+ 0xa27df010,
+ 0x8223f310,
+ 0xa8e2d850,
+ 0xa261f050,
+ 0x8037f010,
+ 0x80a1e210,
+ 0xd8500c84,
+ 0xf050a0e2,
+ 0xf050a265,
+ 0xb7bfa0ed,
+ 0xb7df7f6e,
+ 0x8c407fee,
+ 0xa6059c22,
+ 0x540cb781,
+ 0x2a00c008,
+ 0xc0007500,
+ 0xb7809282,
+ 0xb720540c,
+ 0xf2085b0c,
+ 0xb700a982,
+ 0x9e84452d,
+ 0xb7819c62,
+ 0xb500540c,
+ 0xcff6400a,
+ 0xb5812a7d,
+ 0xb781540c,
+ 0xc010540c,
+ 0x75002a00,
+ 0x91c2c001,
+ 0x5b0cb7a0,
+ 0x5414b7a0,
+ 0xa825f208,
+ 0x9e84058b,
+ 0xf2489c62,
+ 0x9ea4aa21,
+ 0xb7209c62,
+ 0xb725530c,
+ 0xb7805210,
+ 0x9e49422b,
+ 0xc0007048,
+ 0xf2109222,
+ 0xf208a9a1,
+ 0x0d86a83d,
+ 0x9c629e84,
+ 0xaa25f248,
+ 0xa021f210,
+ 0x0986058b,
+ 0x9c629ea4,
+ 0x540cb781,
+ 0x2a7dcfee,
+ 0x540cb581,
+ 0x540cb721,
+ 0xc0200203,
+ 0x75002a00,
+ 0x90c2c000,
+ 0x28fdcfde,
+ 0x540cb521,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xa205f839,
+ 0x540cb781,
+ 0x7d00c030,
+ 0x9162c000,
+ 0x4d8cb780,
+ 0x2a00c008,
+ 0xc0007500,
+ 0xfff49082,
+ 0xb7609b92,
+ 0xff944d94,
+ 0x0a029b01,
+ 0x0ca2c060,
+ 0xc000b481,
+ 0x4d94b760,
+ 0x99ebfff4,
+ 0x4788b780,
+ 0x7534c01c,
+ 0x9104c000,
+ 0xb5458506,
+ 0x85025418,
+ 0x4798b540,
+ 0x4608b785,
+ 0xc0017500,
+ 0xb7809282,
+ 0xb720530c,
+ 0xda084710,
+ 0x9e4ca88d,
+ 0xc0017102,
+ 0xb7219044,
+ 0x0203540c,
+ 0x2a00c010,
+ 0xc0007500,
+ 0xc0209102,
+ 0xb5213880,
+ 0xfff4540c,
+ 0xb7819b5c,
+ 0xb725540c,
+ 0xb7205208,
+ 0x85024012,
+ 0x4718b540,
+ 0xb5250884,
+ 0xb5205208,
+ 0xc0184112,
+ 0xb5813a00,
+ 0xb780540c,
+ 0xc0104d8c,
+ 0xc0007500,
+ 0xfff49084,
+ 0xf9f89931,
+ 0x9c22aa1d,
+ 0xb720a60d,
+ 0xd132590c,
+ 0xda100b10,
+ 0xd091a8c2,
+ 0x75002e10,
+ 0xc0020303,
+ 0xd01190a2,
+ 0x85022e14,
+ 0x4c18b545,
+ 0xb5a10e82,
+ 0x75005294,
+ 0xb5458506,
+ 0xc0004618,
+ 0xb5459082,
+ 0xd1114698,
+ 0x75002e10,
+ 0x9082c000,
+ 0x4718b545,
+ 0xc0409e4c,
+ 0x75002a00,
+ 0x9082c000,
+ 0x4798b545,
+ 0x5b0cb780,
+ 0xa88df208,
+ 0x0ae8d131,
+ 0x9e8c9eab,
+ 0xb7409c62,
+ 0xda105394,
+ 0xb5a0a8c1,
+ 0xd2084092,
+ 0xd231a921,
+ 0xf2080a60,
+ 0xc010a882,
+ 0x74402880,
+ 0xa14dd810,
+ 0x4614b520,
+ 0x9102c000,
+ 0x540cb781,
+ 0x3a00c040,
+ 0x540cb581,
+ 0x4608b785,
+ 0xc0057500,
+ 0xb7819042,
+ 0xc030540c,
+ 0xc0007d00,
+ 0xfff49082,
+ 0xb7209ae2,
+ 0xf2c85314,
+ 0xb720aa45,
+ 0x7048434d,
+ 0x5b14b7a0,
+ 0xc0000703,
+ 0xf2509102,
+ 0xd132aa2d,
+ 0x9ea409e8,
+ 0xb7209c62,
+ 0x8502408a,
+ 0x7c98b541,
+ 0xb5417440,
+ 0xb5417d18,
+ 0xc0007d98,
+ 0xda1090e2,
+ 0x7048aa55,
+ 0x9344c000,
+ 0x4688b785,
+ 0xa9d6da10,
+ 0xa8a9f210,
+ 0x75008502,
+ 0x409ab540,
+ 0xe001850a,
+ 0x9d4f8d24,
+ 0x9e8c1d84,
+ 0xf2109c62,
+ 0x0d8aaa31,
+ 0x9c629ea4,
+ 0x90e0c000,
+ 0xaa31f210,
+ 0x9ea40d86,
+ 0xb7819c62,
+ 0xb720540c,
+ 0xb7a0408a,
+ 0x8502540c,
+ 0x5218b545,
+ 0x3a00c008,
+ 0x540cb581,
+ 0xaa21f210,
+ 0x08849eab,
+ 0x408ab520,
+ 0x9c629ea4,
+ 0x568cb720,
+ 0x4129b780,
+ 0x03037500,
+ 0x92e4c000,
+ 0xa9a1f208,
+ 0xa83df210,
+ 0x9e840d82,
+ 0xf2089c62,
+ 0xf250a021,
+ 0x9eaba825,
+ 0x9e840982,
+ 0xda089c62,
+ 0xb582aa21,
+ 0xc000668a,
+ 0xb7209180,
+ 0xd210548c,
+ 0xb740aa49,
+ 0xf31044bb,
+ 0xb5808021,
+ 0xd20844ab,
+ 0x7440a8c9,
+ 0x9122c000,
+ 0x450cb780,
+ 0xf2088506,
+ 0xc000a117,
+ 0xb78090c0,
+ 0xf208450c,
+ 0xb720a095,
+ 0xb780538c,
+ 0xb58241ab,
+ 0xb580668a,
+ 0xb580400a,
+ 0xc000410a,
+ 0xb7809100,
+ 0xda08450c,
+ 0xb520a899,
+ 0xb79f410a,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0x9c229c22,
+ 0x4003ba1b,
+ 0x9e5c9e59,
+ 0x4002ba03,
+ 0x4003ba12,
+ 0x9e537040,
+ 0x9136c000,
+ 0xc0007006,
+ 0xc8129158,
+ 0xc00072c4,
+ 0x9e519180,
+ 0xc0007002,
+ 0x9e8290bc,
+ 0x90a0c000,
+ 0x70c8cc10,
+ 0x9e509e9a,
+ 0xa61d9c22,
+ 0xd3f10787,
+ 0x9eab2efe,
+ 0xc0140982,
+ 0x9eab99ed,
+ 0x2a8ed3f2,
+ 0xc0140986,
+ 0xb72099e7,
+ 0xb740578c,
+ 0xd0145c1c,
+ 0xb7801952,
+ 0xd3f2432d,
+ 0x9e2d290e,
+ 0x75002a20,
+ 0xa96dc020,
+ 0xc0000183,
+ 0xb74090c2,
+ 0xc0205d1c,
+ 0xc434a96d,
+ 0x0a020c9e,
+ 0xc000b481,
+ 0x4220b107,
+ 0x5e20d122,
+ 0x0cfac036,
+ 0xb4813228,
+ 0xd2a2c000,
+ 0x0c845ca0,
+ 0xb42130d2,
+ 0x093ec000,
+ 0x1ce0c002,
+ 0xc000b441,
+ 0x508cb780,
+ 0x75002a08,
+ 0x9262c00c,
+ 0xaa79f008,
+ 0x75002a20,
+ 0x91a2c00c,
+ 0x0dc2c008,
+ 0x9960ff94,
+ 0xc2800281,
+ 0x9e8d5884,
+ 0x5b43d2a4,
+ 0x4003ba2d,
+ 0x5e7fd2a2,
+ 0xc2009e69,
+ 0x02185a75,
+ 0x5c84d322,
+ 0x5a8fd224,
+ 0xba369e8e,
+ 0xd3224003,
+ 0x9e715e7f,
+ 0x5a75c200,
+ 0xd2240218,
+ 0xc0345b0f,
+ 0x08c20c9e,
+ 0xc000b421,
+ 0x0d92c004,
+ 0x993aff94,
+ 0x420ab780,
+ 0x7d3edffc,
+ 0x280c0a82,
+ 0x9004c001,
+ 0x428ab780,
+ 0x7d3edffc,
+ 0x9344c000,
+ 0x5a0cb720,
+ 0x402bb780,
+ 0x5d94b720,
+ 0x5e0cb720,
+ 0x5a11c200,
+ 0x5904d226,
+ 0x80a3e210,
+ 0x80abe220,
+ 0x0d020b02,
+ 0x402bb5a0,
+ 0x404bb5a0,
+ 0x9100c001,
+ 0xd0117402,
+ 0xd0214300,
+ 0xc0014500,
+ 0xc0089022,
+ 0xff940dc2,
+ 0x02819909,
+ 0x5884c280,
+ 0xba129e8a,
+ 0xd1224003,
+ 0x9e515e7f,
+ 0x5a79c200,
+ 0xd2240218,
+ 0xc280590b,
+ 0xc3005b43,
+ 0xba315884,
+ 0xc3004002,
+ 0xc2005a7f,
+ 0x02685a79,
+ 0x5b0bc200,
+ 0x420ab780,
+ 0x7d3edffc,
+ 0x428ab720,
+ 0x9144c000,
+ 0x7c7edffc,
+ 0x4100d011,
+ 0x4280d011,
+ 0x91c2c004,
+ 0x7d3edffc,
+ 0x92e4c000,
+ 0x400aba21,
+ 0x9262c000,
+ 0x5d84b740,
+ 0x5e04b760,
+ 0xd2261a04,
+ 0x9e555904,
+ 0xc8309e2d,
+ 0x9e3da14e,
+ 0xc830010d,
+ 0xc003a34d,
+ 0xba0992a0,
+ 0xc001400a,
+ 0xb7209324,
+ 0xb7405a0c,
+ 0xb7805d84,
+ 0x9e2d402b,
+ 0x5a11c200,
+ 0xd2261a04,
+ 0xb7a05904,
+ 0xc8305e0c,
+ 0xb780a14e,
+ 0x9d5d402b,
+ 0xa9c6d821,
+ 0x5a11c200,
+ 0xd2261a04,
+ 0xd8005904,
+ 0x0d02a9c1,
+ 0x4003ba1b,
+ 0xa34dc830,
+ 0x4002ba1b,
+ 0x9ad2fff4,
+ 0x428ab780,
+ 0x4002ba24,
+ 0x5904d226,
+ 0x9d470a04,
+ 0x5904d226,
+ 0xc8509d53,
+ 0xca50a9a6,
+ 0x0d02a985,
+ 0x9200c001,
+ 0x5d84b740,
+ 0x1a12d011,
+ 0x5984d228,
+ 0x5904d0a6,
+ 0xb7a09e2d,
+ 0xd0115e0c,
+ 0xc8200a12,
+ 0xc830a162,
+ 0xd226a9ce,
+ 0x9dd95904,
+ 0xa9cdc830,
+ 0xa361c820,
+ 0x4003ba1b,
+ 0x4002ba1b,
+ 0x9aa2fff4,
+ 0x428ab780,
+ 0x4002ba24,
+ 0x5904d226,
+ 0x9d470a04,
+ 0x5904d226,
+ 0x9d539eb2,
+ 0xa9a6c850,
+ 0xa985ca50,
+ 0x4002ba28,
+ 0x4003ba1b,
+ 0x4002ba1b,
+ 0x9a8afff4,
+ 0x4002ba10,
+ 0x5e04d2a2,
+ 0x124a0d72,
+ 0x4002ba04,
+ 0xc4149e54,
+ 0xba097000,
+ 0xc4104002,
+ 0x74007048,
+ 0xc0000003,
+ 0x10039076,
+ 0x4002ba00,
+ 0x5e04d322,
+ 0x00d0d020,
+ 0xba041244,
+ 0x9e544002,
+ 0x7000c414,
+ 0x4002ba09,
+ 0x7048c410,
+ 0x5e7dd0a2,
+ 0x74009dc9,
+ 0xc0010003,
+ 0x5c870494,
+ 0x4003ba29,
+ 0x9076c000,
+ 0xba001003,
+ 0x02204002,
+ 0x58fdc200,
+ 0xc2000242,
+ 0xc7fe5a07,
+ 0xc7fe2efc,
+ 0x093e2a7c,
+ 0x0c9ec034,
+ 0xc000b441,
+ 0x5c88d2a2,
+ 0x5a48c200,
+ 0x0c92c082,
+ 0x28fccffe,
+ 0xb4a132c2,
+ 0xc082c000,
+ 0xb4a20d16,
+ 0x0c88c000,
+ 0xc000b4a1,
+ 0xb4a20d08,
+ 0x0c88c000,
+ 0xc000b4a1,
+ 0xb4a20d08,
+ 0x0c88c000,
+ 0xc000b4a1,
+ 0xb4a20d08,
+ 0x0c88c000,
+ 0xc000b4a1,
+ 0xb4a20d08,
+ 0x0c88c000,
+ 0xc000b4a1,
+ 0xb4a20d08,
+ 0x0c88c000,
+ 0xc000b4a1,
+ 0xb4a20d08,
+ 0x0c88c000,
+ 0xc000b4a1,
+ 0xb4a20d08,
+ 0xb780c000,
+ 0xdffc418a,
+ 0xc0007d3e,
+ 0x0a4a9184,
+ 0x0c9ec034,
+ 0xc000b481,
+ 0x0d5ac082,
+ 0xb4229e79,
+ 0xc034c000,
+ 0xb4e10c9e,
+ 0xb79fc000,
+ 0xb7bf7e6e,
+ 0xb7df7eee,
+ 0xb7ff7f6e,
+ 0xc0027fee,
+ 0x9c228c00,
+ 0x7cfec01c,
+ 0xc0009e58,
+ 0xd01193e4,
+ 0x75061a02,
+ 0x93f4c000,
+ 0x1a0ad011,
+ 0xc0007506,
+ 0xd02690d2,
+ 0xc0015904,
+ 0xd0319120,
+ 0x751e1a02,
+ 0x90d2c000,
+ 0x0900d033,
+ 0x9000c001,
+ 0x5a04c000,
+ 0x1940d053,
+ 0x9340c000,
+ 0x1a02d011,
+ 0xc0007506,
+ 0x852290b2,
+ 0x9240c000,
+ 0x1a0ad011,
+ 0xc0007526,
+ 0xd0319172,
+ 0xc2000a0a,
+ 0x024258fd,
+ 0x5907d226,
+ 0x9080c000,
+ 0x190cd013,
+ 0x9c229d43,
+ 0x87c2c809,
+ 0x0c20b060,
+ 0x87c2c809,
+ 0x0a60b060,
+ 0x87c2c809,
+ 0x09c0b060,
+};
+
+unsigned long aui32H263_MTXTOPAZFWData[] = {
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x809000b0,
+ 0x8090019c,
+ 0x828838d4,
+ 0x82883634,
+ 0x8288366c,
+ 0x828836a8,
+ 0x828836e4,
+ 0x82883714,
+ 0x8288373c,
+ 0x8288379c,
+ 0x828837a4,
+ 0x828837ac,
+ 0x82883a98,
+ 0x82883a68,
+ 0x82883948,
+ 0x828837b4,
+ 0x82883998,
+ 0x828839e0,
+ 0x828839dc,
+ 0x82883a28,
+ 0x82883c30,
+ 0x82883c0f,
+ 0x82883c10,
+ 0x82883bef,
+ 0x82883bf0,
+ 0x82883b38,
+ 0x82883b94,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x809006dc,
+ 0x80901be8,
+ 0x809024f0,
+ 0x809006e0,
+ 0x80903b54,
+ 0x80904078,
+ 0x8090072c,
+ 0x00000000,
+ 0x80901da8,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x809006dc,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0xa0101162,
+ 0xa0100174,
+ 0xa0101102,
+ 0xa0100184,
+ 0xa0101104,
+ 0xa0100194,
+ 0xa0101106,
+ 0xa01001a4,
+ 0xa01001a2,
+ 0xa01001a2,
+ 0xa0101182,
+ 0xa0100142,
+ 0xa0101122,
+ 0xa0100152,
+ 0x80101124,
+ 0x80101126,
+ 0x80101144,
+ 0x80101146,
+ 0x80100176,
+ 0x80100186,
+ 0x80100196,
+ 0x801001a6,
+ 0x801001b6,
+ 0x801001b4,
+ 0x80300364,
+ 0x8010b100,
+ 0x80105160,
+ 0x80100102,
+ 0x00000b00,
+ 0x00000b00,
+ 0x00000ba0,
+ 0x00000ba0,
+ 0x00000003,
+ 0x00000002,
+ 0x00000002,
+ 0x00000001,
+ 0x00000001,
+ 0x00000001,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000005,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x01010000,
+ 0x03030202,
+ 0x05040404,
+ 0x06060505,
+ 0x07070706,
+ 0x08080807,
+ 0x09090908,
+ 0x000a0a09,
+ 0x02010000,
+ 0x04040303,
+ 0x06060505,
+ 0x08080707,
+ 0x0a0a0909,
+ 0x0b0b0b0b,
+ 0x0c0c0c0c,
+ 0x000d0d0d,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x1234baac,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+};
diff --git a/fw/H263Firmware_bin.h b/fw/H263Firmware_bin.h
new file mode 100644
index 0000000..e8442b4
--- /dev/null
+++ b/fw/H263Firmware_bin.h
@@ -0,0 +1,35 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+// This file was automatically generated from ../release/H263Firmware.dnl using dnl2c.
+
+extern unsigned long aui32H263_MTXTOPAZFWText[];
+extern unsigned long ui32H263_MTXTOPAZFWTextSize;
+
+extern unsigned long aui32H263_MTXTOPAZFWData[];
+extern unsigned long ui32H263_MTXTOPAZFWDataSize;
+
+extern unsigned long ui32H263_MTXTOPAZFWDataLocation;
+
diff --git a/fw/H263MasterFirmwareCBR_bin.c b/fw/H263MasterFirmwareCBR_bin.c
new file mode 100644
index 0000000..c94ab56
--- /dev/null
+++ b/fw/H263MasterFirmwareCBR_bin.c
@@ -0,0 +1,5292 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+
+// This file was automatically generated from ../release/H263MasterFirmwareCBR.dnl using dnl2c.
+
+unsigned char *szH263MasterFirmwareCBR_buildtag = "BUILD_TOPAZ_SC_1_00_00_0318";
+
+unsigned long ui32H263CBR_MasterMTXTOPAZFWTextSize = 4531;
+unsigned long ui32H263CBR_MasterMTXTOPAZFWDataSize = 702;
+unsigned long ui32H263CBR_MasterMTXTOPAZFWTextRelocSize = 0;
+unsigned long ui32H263CBR_MasterMTXTOPAZFWDataRelocSize = 0;
+
+unsigned long ui32H263CBR_MasterMTXTOPAZFWTextOrigin = 0x80900000;
+unsigned long ui32H263CBR_MasterMTXTOPAZFWDataOrigin = 0x82884700;
+
+unsigned long aui32H263CBR_MasterMTXTOPAZFWText[] = {
+ 0x9040c001,
+ 0xc80993fe,
+ 0xc0000e42,
+ 0xc8290e00,
+ 0xc51e8422,
+ 0xc8298460,
+ 0xc4708622,
+ 0x9e838600,
+ 0xc8099e43,
+ 0xc8d60d42,
+ 0xc8090d60,
+ 0xc8d80942,
+ 0xc8090920,
+ 0xc00a0e42,
+ 0xc8090e40,
+ 0xc00e87c2,
+ 0x9c1887d0,
+ 0x0c020802,
+ 0x09820d82,
+ 0x09020d02,
+ 0x08820c82,
+ 0x9320fffe,
+ 0xa401c838,
+ 0x0dc2c809,
+ 0x0da0c8d6,
+ 0x0e42c809,
+ 0x0b46b080,
+ 0x7e74b77f,
+ 0xa48d0882,
+ 0xffff9ff3,
+ 0x9d1393e0,
+ 0xf8398081,
+ 0x0707a205,
+ 0x06850307,
+ 0x03839e97,
+ 0x0fa0060f,
+ 0x018d058d,
+ 0x9c62008f,
+ 0x9340ffff,
+ 0x0ea0060b,
+ 0xffff9c62,
+ 0x058d93a0,
+ 0xb700018d,
+ 0xb780570c,
+ 0x9c015694,
+ 0x0687a605,
+ 0x0ea0060b,
+ 0xffff9c62,
+ 0xf9f893a0,
+ 0xf9f8aa9d,
+ 0x9c22aa1d,
+ 0xa6059c22,
+ 0x85028420,
+ 0xb55f0a82,
+ 0x850a7f7c,
+ 0x9c89c037,
+ 0x9c80c971,
+ 0x75002a08,
+ 0x9184c000,
+ 0x997dc014,
+ 0x460cb780,
+ 0xc0007500,
+ 0x0d8290a4,
+ 0x990ec054,
+ 0x7f6cb79f,
+ 0xc0007500,
+ 0xc05490e4,
+ 0x0d8a9916,
+ 0x9904c054,
+ 0x8d80e032,
+ 0x99b6c014,
+ 0x0800e000,
+ 0x91c4c000,
+ 0x9ac0c014,
+ 0x460cb780,
+ 0x2a797402,
+ 0x460cb580,
+ 0x90e4c000,
+ 0x9100c000,
+ 0xc0149e83,
+ 0x75409a33,
+ 0x9162fffe,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x9c228c60,
+ 0x85028702,
+ 0x4018b544,
+ 0x4098b544,
+ 0x4118b544,
+ 0x4418b544,
+ 0x4498b544,
+ 0x4518b544,
+ 0x4918b544,
+ 0x4998b544,
+ 0x4a18b544,
+ 0x5018b544,
+ 0x4884b540,
+ 0x4904b540,
+ 0x4984b540,
+ 0x4a04b540,
+ 0x4a84b540,
+ 0x4c84b540,
+ 0x4d04b540,
+ 0x4d84b540,
+ 0x4202b540,
+ 0x4282b540,
+ 0x5084b540,
+ 0x4084b541,
+ 0x4f04b540,
+ 0x4702b540,
+ 0xa6059c22,
+ 0xfff48420,
+ 0x0d8a9b87,
+ 0x98aac054,
+ 0x9bc6fff4,
+ 0x98b5c054,
+ 0x0cd2c420,
+ 0xb4810a02,
+ 0xb105c000,
+ 0x0d8a4220,
+ 0x8d80e031,
+ 0x9aebc014,
+ 0x0922c829,
+ 0x0940c51e,
+ 0x7f6cb73f,
+ 0x2a5ed071,
+ 0x458cb580,
+ 0x2a80c01e,
+ 0xf0088502,
+ 0x7102a8c2,
+ 0x5a95c280,
+ 0x468cb5a0,
+ 0x4434b341,
+ 0xb5407640,
+ 0xb520461c,
+ 0xc000450c,
+ 0xd01190c2,
+ 0xf0080e12,
+ 0xb780a241,
+ 0xc807578c,
+ 0xc57008c2,
+ 0xc0320880,
+ 0xb5800caa,
+ 0xb421558c,
+ 0x0a2ac000,
+ 0xb4810cf4,
+ 0x1a28c000,
+ 0xc0020902,
+ 0xb96008ba,
+ 0xc2004078,
+ 0xd2240a00,
+ 0xb441588b,
+ 0xce00c000,
+ 0xffff0a11,
+ 0xe0009301,
+ 0xffff1884,
+ 0xc8079244,
+ 0xc5760a42,
+ 0xc0320a00,
+ 0xb4810caa,
+ 0x0a02c000,
+ 0x09020882,
+ 0xb9600884,
+ 0xc2004078,
+ 0xd2240a00,
+ 0xb441588b,
+ 0xce00c000,
+ 0xffff0a11,
+ 0xc0049301,
+ 0xffff745a,
+ 0x0a02923c,
+ 0x0c9ec034,
+ 0xc000b481,
+ 0x9b0dfff4,
+ 0xb79f0802,
+ 0xb7bf7eee,
+ 0x8c607f6e,
+ 0x9e549c22,
+ 0x0c82c040,
+ 0xb4219e59,
+ 0xc040c000,
+ 0xb4820d02,
+ 0x9c22c000,
+ 0x2d7cc00e,
+ 0x29e0c00e,
+ 0x9e545d30,
+ 0x0c82c040,
+ 0xb46131b8,
+ 0xc040c000,
+ 0xb4420d02,
+ 0x9c22c000,
+ 0x8420a60d,
+ 0x06870703,
+ 0x5c8dc280,
+ 0xd0a21c84,
+ 0x02875ca0,
+ 0x0a5ed011,
+ 0x5a0dc200,
+ 0xc2001a04,
+ 0x5cd05a30,
+ 0x9e4c3098,
+ 0xc0320405,
+ 0x30980c8a,
+ 0x3880c801,
+ 0xc000b421,
+ 0xc8019ea9,
+ 0xc0020a02,
+ 0x65530a00,
+ 0x0c8ac030,
+ 0xc000b481,
+ 0x0882c002,
+ 0xb4210c84,
+ 0x9e93c000,
+ 0x5f09d022,
+ 0x5d0d9e53,
+ 0xfff41d04,
+ 0xc2809bb4,
+ 0x1e845e91,
+ 0x5e84c280,
+ 0x1a849e6c,
+ 0x5a90c280,
+ 0x3a80c181,
+ 0x09820d8a,
+ 0x314a0d02,
+ 0x9baefff4,
+ 0x0d82c0c0,
+ 0xc0020992,
+ 0xc0020d02,
+ 0xc0340902,
+ 0x0a0a9bd4,
+ 0x0c9ec034,
+ 0xc000b481,
+ 0x75bf1b04,
+ 0xc0008502,
+ 0x9dcf9202,
+ 0x7f7cb55f,
+ 0x9ba7c034,
+ 0xa045f231,
+ 0x7f7cb75f,
+ 0x75bf1b04,
+ 0xffff8510,
+ 0xc0029284,
+ 0xc0300a42,
+ 0xb4810c8e,
+ 0xb79fc000,
+ 0xb7bf7e6e,
+ 0xb7df7eee,
+ 0xc0027f6e,
+ 0x9c228c00,
+ 0xf8399c22,
+ 0xb780a285,
+ 0x0986458c,
+ 0x0d0270c8,
+ 0x9096c001,
+ 0x4614b760,
+ 0x08020c06,
+ 0x0902c1cc,
+ 0x19c4d010,
+ 0x9e5d9e44,
+ 0x508cc200,
+ 0xc0007942,
+ 0xd1249202,
+ 0xc400588b,
+ 0xb4013c80,
+ 0xb104c000,
+ 0x9e554220,
+ 0x750230d2,
+ 0x4822b321,
+ 0xc00c9e8a,
+ 0x09840900,
+ 0x9101ffff,
+ 0x4614b540,
+ 0xaa9df9f8,
+ 0xc2009c22,
+ 0xc0378502,
+ 0xc1719c89,
+ 0xc8179c80,
+ 0x9c229c80,
+ 0xb780a605,
+ 0x9e5d460c,
+ 0xc000790a,
+ 0xfff49162,
+ 0xfff49bf0,
+ 0xb7809bbe,
+ 0x790a460c,
+ 0x9324ffff,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xc002a61d,
+ 0x9e5d8400,
+ 0xaa21f208,
+ 0xc0017500,
+ 0xc4209004,
+ 0x0a020cda,
+ 0xc000b481,
+ 0x4220b101,
+ 0xb4811c84,
+ 0xb106c000,
+ 0xb4814220,
+ 0xb107c000,
+ 0x008f4220,
+ 0xc000b481,
+ 0x4240b106,
+ 0xc000b481,
+ 0x4240b105,
+ 0x2a6ed1f1,
+ 0xb40d7516,
+ 0xf2084622,
+ 0x7480a921,
+ 0x92c2c000,
+ 0x8c80e092,
+ 0x098a0dc2,
+ 0x0d02c002,
+ 0x9b0afff4,
+ 0x7cecb7df,
+ 0x7c6cb79f,
+ 0x7d6cb7ff,
+ 0x7df4b7df,
+ 0x7e74b7bf,
+ 0xa221f208,
+ 0x5aa1c300,
+ 0x2afcc00e,
+ 0x0d869ea9,
+ 0xfff455e4,
+ 0xd3129ba3,
+ 0xc1c068d1,
+ 0x5c8b0c80,
+ 0xc000b4c1,
+ 0x6951d312,
+ 0x0d10c1c0,
+ 0xb4e25d0b,
+ 0xd312c000,
+ 0x9e7468d1,
+ 0x0ca0c1c0,
+ 0xb4815c8b,
+ 0xd312c000,
+ 0x9e6c6951,
+ 0x0d30c1c0,
+ 0xb4825d0b,
+ 0xd312c000,
+ 0x0a0268d1,
+ 0x0cc0c1c0,
+ 0xc4005c8b,
+ 0xb4813c80,
+ 0xb106c000,
+ 0xcfff4220,
+ 0xd3122b7c,
+ 0xc1c068d1,
+ 0x5c8b0cc0,
+ 0xc000b4c1,
+ 0x460cb720,
+ 0xc2000a04,
+ 0x000b5214,
+ 0xb5203098,
+ 0xb79f460c,
+ 0xb7bf7c6e,
+ 0xb7df7cee,
+ 0xb7ff7d6e,
+ 0xc0047dee,
+ 0x9c228c00,
+ 0xa205f839,
+ 0x0e30f011,
+ 0x919cc000,
+ 0x9ea10a04,
+ 0x55e40d86,
+ 0xc0343d88,
+ 0x0d8a9aaf,
+ 0x9aacc034,
+ 0xaa1df9f8,
+ 0xa6059c22,
+ 0x0a42c801,
+ 0x0a00c010,
+ 0x2ebed3f2,
+ 0x0caac032,
+ 0xc000b481,
+ 0x0cf408aa,
+ 0xc000b421,
+ 0x580cb780,
+ 0x0c92c080,
+ 0xa881f208,
+ 0xc000b421,
+ 0x580cb780,
+ 0xf2080c88,
+ 0xb421a889,
+ 0xb780c000,
+ 0x0c84580c,
+ 0xa88df208,
+ 0xc000b421,
+ 0x1c980902,
+ 0xc000b441,
+ 0x580cb780,
+ 0xf2080c90,
+ 0xb421a885,
+ 0xb7a0c000,
+ 0x0dd2580c,
+ 0x9a67c034,
+ 0xaa25f208,
+ 0xffff7008,
+ 0x0daa9344,
+ 0x0d060982,
+ 0x0902c121,
+ 0x9a4afff4,
+ 0x4794b760,
+ 0x0d02c021,
+ 0x09c20d04,
+ 0x9a37fff4,
+ 0x4794b760,
+ 0x0d0609c2,
+ 0x9a31fff4,
+ 0x09820daa,
+ 0xc1010d02,
+ 0xfff40902,
+ 0x0d929a35,
+ 0x9a43c034,
+ 0xaa25f208,
+ 0xffff7008,
+ 0x77409344,
+ 0x90a2c000,
+ 0xc0340d8e,
+ 0x0d8a9a45,
+ 0x9a42c034,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xc470a60d,
+ 0x0a020c8e,
+ 0xc000b481,
+ 0x4220b101,
+ 0x580cb780,
+ 0xa085f208,
+ 0x0a021c8c,
+ 0xc000b481,
+ 0x4220b105,
+ 0x2b5ed1f1,
+ 0x580cb780,
+ 0xcff09ead,
+ 0xc2802e80,
+ 0xf2085ea1,
+ 0xc280a281,
+ 0x2a845a9d,
+ 0x0a020c84,
+ 0xc000b481,
+ 0x4220b101,
+ 0x470cb520,
+ 0xb4810c84,
+ 0xb101c000,
+ 0xb5204220,
+ 0xc070478c,
+ 0xb4810c8e,
+ 0x0882c000,
+ 0xb4211c8c,
+ 0x0c90c000,
+ 0xc000b481,
+ 0xb4211c8c,
+ 0x0c84c000,
+ 0xc000b481,
+ 0x6584b740,
+ 0x5908d326,
+ 0xe0309e2d,
+ 0x9ea4aa4d,
+ 0xb7809c62,
+ 0x7740580c,
+ 0x9ea98502,
+ 0xd0010d82,
+ 0xf2080db2,
+ 0x2596a10f,
+ 0x9b3ffff4,
+ 0xc0700a06,
+ 0xb4810c82,
+ 0x000dc000,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x4594b760,
+ 0xc0020a7f,
+ 0x9ea18502,
+ 0x89afe220,
+ 0xfff355ad,
+ 0xc01c91a0,
+ 0xc0007ebe,
+ 0xd1a29244,
+ 0xc0905e08,
+ 0xd2240a00,
+ 0x08825909,
+ 0x3d00c400,
+ 0xc000b422,
+ 0x4220b104,
+ 0xffff7500,
+ 0xc1809364,
+ 0xc0905c88,
+ 0x5c890c80,
+ 0xc000b461,
+ 0xc1809c22,
+ 0xc0905c88,
+ 0x5c890c80,
+ 0x3c80c400,
+ 0xb4810a02,
+ 0xb101c000,
+ 0xf0084220,
+ 0x5d88a0e1,
+ 0x0d80c090,
+ 0xb4835d89,
+ 0x9c22c000,
+ 0xd3129e5b,
+ 0x0a0268b1,
+ 0x0cc0c1c0,
+ 0xc4005c8b,
+ 0xb4813c80,
+ 0xb102c000,
+ 0xb7604220,
+ 0xd3125c94,
+ 0x85026931,
+ 0xb9609e51,
+ 0xc1c04070,
+ 0xf03108e0,
+ 0xd0a4aa65,
+ 0xb4815889,
+ 0x0890c000,
+ 0xffff8510,
+ 0xc1c09301,
+ 0xe2108560,
+ 0xb76080ad,
+ 0xc0015e94,
+ 0xce3e3904,
+ 0xb9608521,
+ 0xf0314048,
+ 0xd0a4aa65,
+ 0xb4815889,
+ 0x0890c000,
+ 0xffff8510,
+ 0xe2209301,
+ 0xb780812d,
+ 0xc0015b8c,
+ 0xc1c03908,
+ 0x5d090d60,
+ 0xa885dac8,
+ 0xc000b422,
+ 0x68b1d312,
+ 0x0cc0c1c0,
+ 0xb4415c8b,
+ 0x9c22c000,
+ 0x510cb740,
+ 0x6cb1d312,
+ 0xc1c00a02,
+ 0x5c8b0cc0,
+ 0x3c80c400,
+ 0xc000b481,
+ 0x4220b101,
+ 0x6cb1d312,
+ 0x0cf0c1ca,
+ 0xb4415c8b,
+ 0xc00cc000,
+ 0xc0016d82,
+ 0xc1c038c0,
+ 0x5d8b0dc0,
+ 0xc000b423,
+ 0x84209c22,
+ 0xe0318502,
+ 0x09068d80,
+ 0x7f7cb55f,
+ 0x0cd2c472,
+ 0xb4810a02,
+ 0xb101c000,
+ 0x9e8a4220,
+ 0xc0010203,
+ 0x75002a40,
+ 0x9362c000,
+ 0x68a1d312,
+ 0xc1ca0a02,
+ 0x5c8b0cf0,
+ 0x3c80c400,
+ 0xc000b481,
+ 0x4220b101,
+ 0xa0e1f008,
+ 0x511cb740,
+ 0x7f6cb79f,
+ 0xf3109e51,
+ 0xcfff8021,
+ 0xb58028be,
+ 0xd312510c,
+ 0xc1c068a1,
+ 0x5c8b0cc0,
+ 0xc000b421,
+ 0x9c228c20,
+ 0xc006a605,
+ 0x87028420,
+ 0xc4720c06,
+ 0x0a020cd2,
+ 0xc000b481,
+ 0x4220b105,
+ 0x020b9eaa,
+ 0x2a04c001,
+ 0xc0017500,
+ 0xd31190c2,
+ 0xe1b16c81,
+ 0xb7608d00,
+ 0x09825c94,
+ 0x4070b960,
+ 0x08e0c1c0,
+ 0x5889d0a4,
+ 0x3c80c400,
+ 0xc000b461,
+ 0x4220b104,
+ 0xa245f029,
+ 0x87100890,
+ 0x9281ffff,
+ 0xa973f050,
+ 0x796cb79f,
+ 0xf3109e55,
+ 0xcfff8021,
+ 0xf0502afa,
+ 0x020ba271,
+ 0x2a08c001,
+ 0xd3127500,
+ 0xc0026e81,
+ 0xe0b19082,
+ 0xc1c08d00,
+ 0xe1108760,
+ 0xb74082a3,
+ 0x09825e94,
+ 0x4048b960,
+ 0xd0a49e93,
+ 0xc4005889,
+ 0xb4613c80,
+ 0xb104c000,
+ 0xf0294220,
+ 0x0890a245,
+ 0x92a1ffff,
+ 0x5b8cb780,
+ 0xa943f010,
+ 0xa891da08,
+ 0xaa61f010,
+ 0xa95cf012,
+ 0xa9c7f050,
+ 0x8021f310,
+ 0xa94bd850,
+ 0xd8101884,
+ 0xf010a0c9,
+ 0xb79fa241,
+ 0xb73f7b6a,
+ 0xb73f7eec,
+ 0xf3107ff4,
+ 0xe2108021,
+ 0xe22082a3,
+ 0xcfff80bb,
+ 0xd8502af6,
+ 0xf010a249,
+ 0xf050a0dd,
+ 0x020ba0c6,
+ 0x2a10c001,
+ 0xc0007500,
+ 0xc01490c2,
+ 0xcfff9838,
+ 0xc1c02aee,
+ 0xc2800ec0,
+ 0xb4a15c8b,
+ 0xb79fc000,
+ 0xb7bf78ee,
+ 0xc006796e,
+ 0x9c228c60,
+ 0x6cb1d312,
+ 0xc1c00a02,
+ 0x5c8b0cc0,
+ 0x3c80c400,
+ 0xc000b481,
+ 0x4220b103,
+ 0x5d94b740,
+ 0x6d31d311,
+ 0x4058b960,
+ 0xc1c00085,
+ 0xf03108e0,
+ 0xd0a4aa45,
+ 0xb4815889,
+ 0x0890c000,
+ 0x9321ffff,
+ 0x3990c001,
+ 0x0940c1c0,
+ 0x588bd124,
+ 0xc000b461,
+ 0xa6059c22,
+ 0x8440c002,
+ 0x5d94b740,
+ 0xc4720a86,
+ 0x08820cd2,
+ 0x8502c00c,
+ 0xc000b421,
+ 0x4220b104,
+ 0xc0010189,
+ 0x75002a10,
+ 0x9302ffff,
+ 0x8d00e0d1,
+ 0x08029d47,
+ 0x4058b960,
+ 0x08e0c1c0,
+ 0x5889d0a4,
+ 0x3c80c400,
+ 0xc000b401,
+ 0x4220b104,
+ 0xa245f029,
+ 0xffff0890,
+ 0x9dc792a1,
+ 0x29eecfff,
+ 0x0cc0c1c0,
+ 0xb4615c8b,
+ 0xf010c000,
+ 0xb79fa94b,
+ 0xf0127b6c,
+ 0xb73fa94c,
+ 0xd8107bec,
+ 0xf310a9cb,
+ 0xf0108021,
+ 0xe210a953,
+ 0xd81282a3,
+ 0xf010a94c,
+ 0xf010a249,
+ 0xb79fa0cd,
+ 0xb73f7c6c,
+ 0xb73f75ea,
+ 0xf3107572,
+ 0xe2108021,
+ 0xe22082a3,
+ 0x0d8680bb,
+ 0xa251f010,
+ 0xa0cdd810,
+ 0xa0cad810,
+ 0x9b7efff4,
+ 0x68d1d312,
+ 0xc1c00a02,
+ 0x5c8b0cc0,
+ 0x3c80c400,
+ 0xc000b481,
+ 0x4220b104,
+ 0x3a20c001,
+ 0x68d1d312,
+ 0x0cc0c1c0,
+ 0xb4815c8b,
+ 0xb79fc000,
+ 0xb7bf7c6e,
+ 0xc0047cee,
+ 0x9c228c00,
+ 0xa285f839,
+ 0xaa61f010,
+ 0xc0007500,
+ 0xd0089164,
+ 0x9e48a8c1,
+ 0xc2000a06,
+ 0x30985200,
+ 0xa0c1d008,
+ 0x0d38d011,
+ 0xa9f2d010,
+ 0x1a30f011,
+ 0xa943f010,
+ 0xc0001984,
+ 0xcff193e2,
+ 0xcff08702,
+ 0xc00f8700,
+ 0xc00e087e,
+ 0xc050087c,
+ 0xf0290c1a,
+ 0xd020a8c5,
+ 0x5ca12095,
+ 0x22109e4d,
+ 0x5a20c200,
+ 0xba0930d8,
+ 0xb4204006,
+ 0xf011c000,
+ 0x19841a30,
+ 0x91e4ffff,
+ 0x802ff210,
+ 0xa241f010,
+ 0xaa9df9f8,
+ 0xa60d9c22,
+ 0x59409e5d,
+ 0x5841f124,
+ 0x2d2ed3f1,
+ 0x4422b350,
+ 0x93e2c002,
+ 0xaa61f008,
+ 0x2a1ce000,
+ 0x4422b425,
+ 0xaa61d808,
+ 0xe2108522,
+ 0x2a1c88a9,
+ 0x9ea31218,
+ 0x0a7ec00e,
+ 0x400bba1b,
+ 0x5207c200,
+ 0xc0012128,
+ 0x9e599276,
+ 0x5a20c100,
+ 0xc2001103,
+ 0x9ea25209,
+ 0x58a1c200,
+ 0xd0319e8d,
+ 0xd2080cb0,
+ 0xc00ea8a2,
+ 0xc2002a7c,
+ 0xc00e5207,
+ 0x349a2a7c,
+ 0xa0a2d208,
+ 0xa963f008,
+ 0xd3f19ea1,
+ 0xc2012a2e,
+ 0xf3108128,
+ 0x85028821,
+ 0xa261f008,
+ 0xa127d228,
+ 0xcff09eab,
+ 0x59402d01,
+ 0x35225941,
+ 0x2d7cc00e,
+ 0x9bb1fff4,
+ 0x92e0c000,
+ 0xaa21d208,
+ 0x000b9e5e,
+ 0x324250d8,
+ 0xa205d029,
+ 0xa8e1f008,
+ 0x291ed013,
+ 0x8029f210,
+ 0x9e447510,
+ 0xf0080098,
+ 0xb350a0e1,
+ 0xb79f4426,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0xa60d9c22,
+ 0x9e690685,
+ 0x0b029e9e,
+ 0x0a867182,
+ 0x9208c000,
+ 0x16d29ea9,
+ 0xc2809e69,
+ 0xd0115a84,
+ 0x71021a52,
+ 0x08e2d011,
+ 0x2b1ed3f1,
+ 0x9286ffff,
+ 0x0a62d011,
+ 0x028d7510,
+ 0x91d4c000,
+ 0x0d029e73,
+ 0xfff40922,
+ 0x1aa09b70,
+ 0x0a52d011,
+ 0x9e837510,
+ 0x92d2ffff,
+ 0x0d069e73,
+ 0x0952d011,
+ 0x297cc00e,
+ 0x9b61fff4,
+ 0x9e837590,
+ 0x92f4c000,
+ 0x1a60d031,
+ 0x2b4ed3f1,
+ 0x9e739e6c,
+ 0x5299c200,
+ 0x295ed3f2,
+ 0xfff40922,
+ 0x9e839b50,
+ 0x52b8c200,
+ 0x75909ea9,
+ 0xffff16d2,
+ 0x9e7391b2,
+ 0x2d5ed3f2,
+ 0xfff4010d,
+ 0xb79f9b42,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0xf0119c22,
+ 0x9e990ca0,
+ 0x5a04d09a,
+ 0x1a42d00d,
+ 0x909ac000,
+ 0x12421203,
+ 0x9ea29e4b,
+ 0x9360fffc,
+ 0x8420a60d,
+ 0x9e558502,
+ 0x7f7cb55f,
+ 0x7ffcb55f,
+ 0xaa61f010,
+ 0x8c8ee011,
+ 0x1a080307,
+ 0xd226750a,
+ 0x8540590c,
+ 0x8044e05a,
+ 0x90a0c003,
+ 0x9180c000,
+ 0x92a0c000,
+ 0x93c0c000,
+ 0x9100c001,
+ 0x9200c001,
+ 0x9060c002,
+ 0x8d88e011,
+ 0xd0729e8b,
+ 0xb5a01954,
+ 0xfff4508c,
+ 0xc0029bc8,
+ 0xb7409200,
+ 0x9ea95094,
+ 0x8d88e011,
+ 0x15149e8b,
+ 0x9bbdfff4,
+ 0x90a0c002,
+ 0x8d88e011,
+ 0xd3f29e8b,
+ 0x0916295e,
+ 0x9aebfff4,
+ 0x508cb5a0,
+ 0x9320c001,
+ 0x8d88e011,
+ 0xd3f29e8b,
+ 0x0916295e,
+ 0x9adffff4,
+ 0x91e0c001,
+ 0xaa41d208,
+ 0xf0119e8b,
+ 0x4a7d8c88,
+ 0x2aced012,
+ 0x09060d06,
+ 0xfff4018b,
+ 0x9e839ad0,
+ 0x018b9e6a,
+ 0xfff40d02,
+ 0xc0009aca,
+ 0xd2089340,
+ 0x9e8baa41,
+ 0x8c88f011,
+ 0xd0124a7d,
+ 0x0d022ace,
+ 0x018b0906,
+ 0x9abbfff4,
+ 0x9e6a9e83,
+ 0xc00e018b,
+ 0xfff40d7e,
+ 0xc0009ab4,
+ 0xc0019080,
+ 0xb79f90e0,
+ 0xc00f7e68,
+ 0xc00e0cfe,
+ 0x9e4a0cfc,
+ 0x7c68b59f,
+ 0x7f6cb73f,
+ 0x0a02cff1,
+ 0x0a00cff0,
+ 0x0c9ac050,
+ 0xc2002218,
+ 0x20945a21,
+ 0x324258a0,
+ 0x4006ba24,
+ 0x7f6cb59f,
+ 0xc000b481,
+ 0xa943f208,
+ 0x7fecb79f,
+ 0x8021f310,
+ 0xa241f208,
+ 0x7e6eb79f,
+ 0x7eeeb7bf,
+ 0x7f6eb7df,
+ 0x8c00c002,
+ 0xa61d9c22,
+ 0x85028440,
+ 0xf0319e9d,
+ 0x0b02abe5,
+ 0x7878b55f,
+ 0x7efcb55f,
+ 0x9d3a718e,
+ 0x91e8c001,
+ 0x7502aa41,
+ 0x9392c000,
+ 0xaad1d018,
+ 0x8d08e032,
+ 0x8d00e051,
+ 0x9eb19dcf,
+ 0xb55f8510,
+ 0xc0027f7c,
+ 0xc2800a9c,
+ 0x018b5a95,
+ 0x9a1efff4,
+ 0x7f7cb75f,
+ 0x5a88c280,
+ 0x8122c301,
+ 0x91a0c000,
+ 0x8d88e031,
+ 0x050b9dcf,
+ 0xb55f8510,
+ 0xfff47f7c,
+ 0xb75f9b23,
+ 0x0b047f7c,
+ 0xfffe718e,
+ 0xb79f92a6,
+ 0xc0507868,
+ 0xb4810c9e,
+ 0xc050c000,
+ 0xb4e20d16,
+ 0xb71fc000,
+ 0xb79f7eec,
+ 0xb7bf7d6e,
+ 0xb7df7dee,
+ 0xb7ff7e6e,
+ 0xc0027eee,
+ 0x9c228c40,
+ 0xc450a605,
+ 0x0a020c8a,
+ 0xc000b481,
+ 0x4240b102,
+ 0x2d7ce00e,
+ 0x5d10d104,
+ 0x0a02c801,
+ 0xc0300a40,
+ 0xb4810c8a,
+ 0x08c2c000,
+ 0xb4210c84,
+ 0xb740c000,
+ 0xf048630c,
+ 0xf210a947,
+ 0xf048802d,
+ 0xc450a245,
+ 0x0a020c86,
+ 0xc000b481,
+ 0x4220b101,
+ 0x0a42c801,
+ 0x0a00c010,
+ 0x0caac032,
+ 0xc000b481,
+ 0xc03408aa,
+ 0xb4220d1e,
+ 0xc450c000,
+ 0x0a020cf2,
+ 0xc000b481,
+ 0x4220b101,
+ 0x1910d053,
+ 0x598cb780,
+ 0xa891f248,
+ 0x88a3f210,
+ 0x0d060d82,
+ 0xffd4018b,
+ 0xc0809b9e,
+ 0xb4a10ca2,
+ 0xc002c000,
+ 0xc0140d82,
+ 0x700a9954,
+ 0x9364ffff,
+ 0x09820daa,
+ 0xc1210d0a,
+ 0xffd40902,
+ 0xb7809939,
+ 0xf248598c,
+ 0xc0a1a992,
+ 0x0d040d02,
+ 0xffd409c2,
+ 0xc0c09924,
+ 0x09920d82,
+ 0x09420d42,
+ 0x9957c014,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xc010a60d,
+ 0xb7208400,
+ 0xb780598c,
+ 0x2a2049ad,
+ 0xb7c07500,
+ 0x09025c94,
+ 0x9182c000,
+ 0x4908b784,
+ 0xc0007500,
+ 0xd29090e2,
+ 0x7500aa41,
+ 0x9164c005,
+ 0x49adb720,
+ 0x2a18d011,
+ 0xd0027500,
+ 0xc0003924,
+ 0xd0119124,
+ 0x75002a14,
+ 0x3922d002,
+ 0x3926d001,
+ 0x0c82c050,
+ 0xc000b441,
+ 0xb7409d87,
+ 0x0dc2470c,
+ 0xc01009c2,
+ 0xcff00d02,
+ 0xffd40c81,
+ 0xb78498fb,
+ 0x9d1b4908,
+ 0xcff07500,
+ 0xc0000b01,
+ 0xd2909282,
+ 0x7500aa41,
+ 0x91e2c000,
+ 0x606cb79f,
+ 0x8d00f211,
+ 0x2a00c010,
+ 0xcff07500,
+ 0xf3100a03,
+ 0xb3468001,
+ 0xb79e4422,
+ 0xc8014068,
+ 0xc01008c2,
+ 0xc0320880,
+ 0xb59f0cea,
+ 0xb421606c,
+ 0xb784c000,
+ 0x75004908,
+ 0x9282c001,
+ 0x4a08b784,
+ 0xc0017500,
+ 0xb72091e2,
+ 0xd011518c,
+ 0x75002a12,
+ 0x9102c001,
+ 0x6414b7a0,
+ 0x5d8cb7a0,
+ 0xaa21f210,
+ 0x28f99eab,
+ 0x518cb520,
+ 0x9c629ea4,
+ 0x618cb720,
+ 0x4129b780,
+ 0xc0007500,
+ 0xf20892a4,
+ 0xf210a9a1,
+ 0x0d82a83d,
+ 0x9c629e84,
+ 0xa8a5f250,
+ 0xf2089eab,
+ 0x0982a021,
+ 0x9c629e8c,
+ 0xaa21da08,
+ 0x478ab582,
+ 0xa9cdda10,
+ 0xfff49eb3,
+ 0xc8019aa6,
+ 0xc00a0a02,
+ 0xc0300a00,
+ 0xb4810c8a,
+ 0xc008c000,
+ 0x0c8408c2,
+ 0xc000b421,
+ 0x0a02c008,
+ 0xb4810c88,
+ 0xc0c0c000,
+ 0x09920d82,
+ 0x0d02c008,
+ 0x0902c008,
+ 0x989dc014,
+ 0x0a02c008,
+ 0x0c8ec030,
+ 0xc000b481,
+ 0x5d0cb720,
+ 0xb5408506,
+ 0xfff44039,
+ 0xb79f9ad1,
+ 0xb7bf6eee,
+ 0xb7df6f6e,
+ 0xc0106fee,
+ 0x9c228c60,
+ 0xa205f839,
+ 0x0c82c450,
+ 0xb4810a02,
+ 0xb101c000,
+ 0xc0084220,
+ 0xc0300a40,
+ 0xb4810c8e,
+ 0xc002c000,
+ 0xc05038c0,
+ 0xb4210c82,
+ 0xc0c0c000,
+ 0x09920d82,
+ 0x0d02c008,
+ 0x0902c008,
+ 0x9869c014,
+ 0x0a02c008,
+ 0x0c8ec030,
+ 0xc000b481,
+ 0xaa1df9f8,
+ 0x9000fff5,
+ 0xf011a60d,
+ 0xc0010eb0,
+ 0xc01e9182,
+ 0xc0080f7e,
+ 0xc0300b02,
+ 0xc0400e8e,
+ 0x9e747540,
+ 0x0c96c050,
+ 0x4426b354,
+ 0xc20012d8,
+ 0xb4815a14,
+ 0xc030c000,
+ 0xb4c20d0a,
+ 0xb4c5c000,
+ 0xc030c000,
+ 0xb4c10c96,
+ 0xc0c0c000,
+ 0x09920d82,
+ 0x0d02c008,
+ 0x0902c008,
+ 0x9835c014,
+ 0xc000b4c5,
+ 0xfffe7540,
+ 0xfff493c4,
+ 0xb79f9a6f,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0xb4639c22,
+ 0x9c22c000,
+ 0xa062f812,
+ 0xc2009c22,
+ 0x5d890d80,
+ 0x09829e59,
+ 0x3d80c400,
+ 0xc000b463,
+ 0x4620b203,
+ 0x9c220007,
+ 0x9c8fc127,
+ 0x080a9c22,
+ 0x56f1b971,
+ 0x9c81c017,
+ 0x9c80c071,
+ 0x9c80c017,
+ 0x4000b960,
+ 0xffff9c22,
+ 0x9e5c9280,
+ 0xd1a401c6,
+ 0x08825889,
+ 0x3c80c400,
+ 0xc000b421,
+ 0x4220b104,
+ 0x9e532244,
+ 0xffff7106,
+ 0x9c229324,
+ 0xc004a60d,
+ 0xc8298420,
+ 0xc4ea0ca2,
+ 0xc0300cf0,
+ 0xe133ac3d,
+ 0xc0388d00,
+ 0xc030a45d,
+ 0xc038ac3d,
+ 0xc010a45d,
+ 0xc018ac3d,
+ 0xc010a45d,
+ 0xc018ac25,
+ 0xb7a0a445,
+ 0x9ea9598c,
+ 0xb5408502,
+ 0xb541661a,
+ 0xb7404d98,
+ 0x0dc2470c,
+ 0x0d42c00a,
+ 0xffb409c2,
+ 0xd2519ba9,
+ 0xda080a58,
+ 0x7502aa01,
+ 0xc0009ead,
+ 0xb5809084,
+ 0xf290450c,
+ 0x2a08aa2d,
+ 0xc0007500,
+ 0x850690a4,
+ 0x451cb540,
+ 0x630cb780,
+ 0xa8a1f210,
+ 0xf2108502,
+ 0xb540a8a6,
+ 0xb540511c,
+ 0xf208481a,
+ 0xf208a103,
+ 0xf210a085,
+ 0xf208a929,
+ 0xf210a08a,
+ 0xf210a92e,
+ 0xf208a8b2,
+ 0xf250a10d,
+ 0xf208a8b1,
+ 0xf208a112,
+ 0xf208a096,
+ 0xc050a09a,
+ 0x08c00cf2,
+ 0xa085f248,
+ 0xc000b421,
+ 0xc0360a0a,
+ 0xb4810c92,
+ 0x0896c000,
+ 0xb4211c8c,
+ 0xf031c000,
+ 0xe1318c00,
+ 0x9ea38d80,
+ 0x618cb7c0,
+ 0x7ffcb55f,
+ 0xb9600d02,
+ 0xf2084078,
+ 0x9dbaa103,
+ 0x5d0dd122,
+ 0xf0299e2d,
+ 0xd012a8e5,
+ 0x5c882cae,
+ 0x5908d126,
+ 0xe0389e4a,
+ 0x0d04aa4d,
+ 0x50a828bc,
+ 0xa2413242,
+ 0x91c1ffff,
+ 0xaa61f010,
+ 0x0c8ec036,
+ 0xc000b481,
+ 0x7fecb73f,
+ 0xb4211c84,
+ 0xc014c000,
+ 0xd2089999,
+ 0x7500aa4d,
+ 0x9262c000,
+ 0xaa2df290,
+ 0x2ac8f011,
+ 0x91a4c000,
+ 0x2a00c800,
+ 0xc0007500,
+ 0xf20890c4,
+ 0xfff4a9c6,
+ 0xd2089ae3,
+ 0xf290a2cd,
+ 0xd011a8ad,
+ 0x75002a14,
+ 0x9104c000,
+ 0x0a42c809,
+ 0x0a70c67a,
+ 0x548cb580,
+ 0x468cb780,
+ 0xc0007500,
+ 0xc0809162,
+ 0x2a045a31,
+ 0x0ceac03e,
+ 0xc000b481,
+ 0x9280c000,
+ 0x450cb780,
+ 0xc0007502,
+ 0xc100915c,
+ 0x74402880,
+ 0xd0010a0e,
+ 0xc0001a46,
+ 0x0a029060,
+ 0x0ceac03e,
+ 0xc000b481,
+ 0x7a6eb79f,
+ 0x7aeeb7bf,
+ 0x7b6eb7df,
+ 0x8c00c006,
+ 0xb7809c22,
+ 0xc0c8558c,
+ 0xb9600892,
+ 0xd01140f8,
+ 0xf0290948,
+ 0xd0a4aa45,
+ 0xb4815889,
+ 0x0890c000,
+ 0x9321ffff,
+ 0xa6059c22,
+ 0x468cb720,
+ 0x430cb781,
+ 0x0a047440,
+ 0x430cb581,
+ 0x9364c000,
+ 0x4908b784,
+ 0xc0007500,
+ 0xb72092c2,
+ 0xb780450c,
+ 0x7442518c,
+ 0xb5803a40,
+ 0xc000518c,
+ 0xb780919c,
+ 0xd208618c,
+ 0x7440a889,
+ 0x90a4c000,
+ 0xb5448506,
+ 0xc8015018,
+ 0xc0100a42,
+ 0xc0320a00,
+ 0xb4810cea,
+ 0xc008c000,
+ 0xc00208c2,
+ 0xb4211ce0,
+ 0xc008c000,
+ 0xc0300a42,
+ 0xb4820d0e,
+ 0xc450c000,
+ 0xc0080c82,
+ 0xb4811a40,
+ 0xb101c000,
+ 0xc0024220,
+ 0xc05038c0,
+ 0xb4210c82,
+ 0xc0c0c000,
+ 0x09920d82,
+ 0x0d02c008,
+ 0x0902c008,
+ 0x9aa7fff4,
+ 0x0c86c450,
+ 0xb4810a02,
+ 0xb105c000,
+ 0xc0084220,
+ 0xc0300a00,
+ 0xb4820d0e,
+ 0x0c84c000,
+ 0x1a00c008,
+ 0xc000b481,
+ 0x4220b101,
+ 0x5a35c080,
+ 0x0902c801,
+ 0xc00e0940,
+ 0xd0a828fc,
+ 0xd0715910,
+ 0xc03029ce,
+ 0x9dc80c8a,
+ 0xc000b441,
+ 0x0c840a42,
+ 0xc000b481,
+ 0xc0007680,
+ 0xb7209182,
+ 0xb740630c,
+ 0xf21044bd,
+ 0xf3108a27,
+ 0xb5808021,
+ 0xc45044ad,
+ 0x0a020c86,
+ 0xc000b481,
+ 0x4220b105,
+ 0xb4810cec,
+ 0xb105c000,
+ 0x12d64220,
+ 0xc03408ea,
+ 0xb4210c9e,
+ 0xb780c000,
+ 0xf248598c,
+ 0xd053a891,
+ 0xf2101950,
+ 0x0d8288a3,
+ 0xc2800d06,
+ 0xb5805a0c,
+ 0x018b510c,
+ 0x9873ffd4,
+ 0x0ca2c080,
+ 0xc000b4a1,
+ 0x480cb780,
+ 0xb4810c88,
+ 0xb7a0c000,
+ 0xc0025b94,
+ 0xfff40d82,
+ 0x700a9a22,
+ 0x9364ffff,
+ 0x430cb781,
+ 0xa8adf210,
+ 0xa8a2f250,
+ 0x9e496243,
+ 0xc0007102,
+ 0x850690b8,
+ 0x4e18b544,
+ 0x468cb780,
+ 0x0a827500,
+ 0x9204c001,
+ 0x450cb780,
+ 0xc0007502,
+ 0xb784933c,
+ 0x75004908,
+ 0x9282c000,
+ 0x460cb780,
+ 0xb5802a79,
+ 0xffd4460c,
+ 0xb7849831,
+ 0x75005008,
+ 0x90c2c000,
+ 0x9908ffd4,
+ 0x5008b5a4,
+ 0x98cdffd4,
+ 0x4908b784,
+ 0xc0007500,
+ 0xc01493e2,
+ 0xb7809993,
+ 0xd208618c,
+ 0x7440a889,
+ 0x92c2c000,
+ 0x0a82c080,
+ 0x9240c000,
+ 0xffd40d82,
+ 0xb7849899,
+ 0x75004a08,
+ 0x90e2c000,
+ 0xffd40d82,
+ 0xc0009845,
+ 0x0d8290a0,
+ 0x997affd4,
+ 0x0ca6c080,
+ 0xc000b4a1,
+ 0x0d92c002,
+ 0x99c5fff4,
+ 0xffff700a,
+ 0x0dea9364,
+ 0x0d0a0982,
+ 0x0902c121,
+ 0x99aaffb4,
+ 0x598cb780,
+ 0xa992f248,
+ 0x0d02c0a1,
+ 0x09c20d04,
+ 0x9995ffb4,
+ 0x0d82c0c0,
+ 0x0d420992,
+ 0xfff40942,
+ 0x0a0299c8,
+ 0x0ceac03e,
+ 0xc000b481,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xb720a61d,
+ 0xb720598c,
+ 0xd09149b5,
+ 0x75002e10,
+ 0xc0040383,
+ 0xd01190e2,
+ 0x85022e14,
+ 0xb5448706,
+ 0x75004900,
+ 0x431cb541,
+ 0x4e18b544,
+ 0x9082c000,
+ 0x4980b544,
+ 0x2e10d111,
+ 0xc0007500,
+ 0xb5449082,
+ 0xd2114a00,
+ 0x75002e10,
+ 0x9082c000,
+ 0x4a80b544,
+ 0x4a08b784,
+ 0xb7c07500,
+ 0xc0026414,
+ 0xb78491e2,
+ 0x75004988,
+ 0x9144c002,
+ 0x0a42c809,
+ 0x0a20c7c8,
+ 0x08c2c809,
+ 0x08d0c7ca,
+ 0x0cc2c809,
+ 0x0c90c870,
+ 0x0942c809,
+ 0x0930c89a,
+ 0x0d42c809,
+ 0x0d50c7b6,
+ 0x09c2c809,
+ 0x09e0c754,
+ 0x0dc2c809,
+ 0x0d90c766,
+ 0x0c42c809,
+ 0x0c70c6ba,
+ 0x0842c809,
+ 0x0840c688,
+ 0x0ac2c809,
+ 0x0ab0c6a2,
+ 0x0ec2c809,
+ 0x0e80c690,
+ 0x0b42c809,
+ 0x0b10c8c0,
+ 0xa249f210,
+ 0xa0d1f210,
+ 0xa0d6f210,
+ 0xa159f210,
+ 0xa14ef210,
+ 0xa1ddf210,
+ 0xa1c2f250,
+ 0xa046f250,
+ 0xa049f250,
+ 0xa2c5f210,
+ 0xa2c2f210,
+ 0xa34df250,
+ 0x5b0cb7a0,
+ 0xaa4df210,
+ 0x9ea49eab,
+ 0xb7209c62,
+ 0xd2085c8c,
+ 0xb580aa21,
+ 0xb72041ab,
+ 0x850241b3,
+ 0x439ab540,
+ 0x5094b520,
+ 0x5b8cb7c0,
+ 0xaa69f2c8,
+ 0xa8d9f208,
+ 0xc0007048,
+ 0xb7809142,
+ 0xf248640c,
+ 0xd152a88d,
+ 0x9e8c09f0,
+ 0xb7849c62,
+ 0x75004908,
+ 0x9062c004,
+ 0x4694b720,
+ 0xc0037640,
+ 0xb72093c4,
+ 0x7440438a,
+ 0x90e2c000,
+ 0xaa55da08,
+ 0xc0017048,
+ 0xb7a09004,
+ 0xb7846194,
+ 0xb7a04988,
+ 0xda08640c,
+ 0xb520a9d6,
+ 0x850a4392,
+ 0xd2107500,
+ 0xf208a0aa,
+ 0xe001a8a9,
+ 0x9d4f8d24,
+ 0x9e8c1d84,
+ 0xf2089c62,
+ 0x9eaeaa31,
+ 0x9ea40d8a,
+ 0xc0009c62,
+ 0xb7809180,
+ 0xf208640c,
+ 0x9ea6a891,
+ 0x6194b7a0,
+ 0x9e8c0d86,
+ 0xb7809c62,
+ 0xb724438a,
+ 0xb7204a08,
+ 0x0a045c94,
+ 0x438ab580,
+ 0xaa29d210,
+ 0xb5807440,
+ 0xc0014849,
+ 0xb7a09024,
+ 0xf2105d8c,
+ 0x9eaba8c1,
+ 0x9c629e8c,
+ 0xaa29d210,
+ 0xc0007500,
+ 0xf20892a4,
+ 0xf210a9a1,
+ 0x0d82a85d,
+ 0x9c629e84,
+ 0xa021f208,
+ 0xa845f250,
+ 0x09829eab,
+ 0x9c629e84,
+ 0xaa21da08,
+ 0x478ab582,
+ 0x450cb780,
+ 0xc0007502,
+ 0x0d8690bc,
+ 0x9afeffb4,
+ 0xaa29d210,
+ 0xc0007500,
+ 0xb7209122,
+ 0xb780580c,
+ 0x3a08412d,
+ 0x90e0c000,
+ 0x580cb720,
+ 0x412db780,
+ 0xb5802a75,
+ 0xb724412d,
+ 0xb7804908,
+ 0x7440518c,
+ 0xb5803a04,
+ 0xc000518c,
+ 0xd15191c4,
+ 0xd2080a70,
+ 0xb740a882,
+ 0xd2085c8c,
+ 0xb520a881,
+ 0xd8085094,
+ 0xb79fa0cd,
+ 0xb7bf7e6e,
+ 0xb7df7eee,
+ 0xb7ff7f6e,
+ 0xc0027fee,
+ 0x9c228c00,
+ 0xb784a60d,
+ 0x75004a08,
+ 0x6414b7a0,
+ 0xc0000b02,
+ 0xb7a09262,
+ 0xf2105d8c,
+ 0xf208a83d,
+ 0x0d8aa9a1,
+ 0x9c629e84,
+ 0xa021f208,
+ 0xa825f250,
+ 0x09869eab,
+ 0x9c629e84,
+ 0x4a08b784,
+ 0xb7c07500,
+ 0xc0005114,
+ 0xb7609164,
+ 0xf2105d94,
+ 0x9e84a825,
+ 0x03019c62,
+ 0x9160c000,
+ 0x4988b784,
+ 0xc0007500,
+ 0xb78090c4,
+ 0xf2085f0c,
+ 0xb720ab0d,
+ 0xb780618c,
+ 0x75004129,
+ 0xc0000283,
+ 0xb7849224,
+ 0x75004a08,
+ 0x90c4c000,
+ 0xaa21f250,
+ 0x9c629ea4,
+ 0xaa35f210,
+ 0x15e29eb1,
+ 0x9c629ea4,
+ 0xaa39f210,
+ 0x018b9eb3,
+ 0x9c629ea4,
+ 0x598cb720,
+ 0x49adb780,
+ 0x2a00c400,
+ 0xc0007500,
+ 0x85029102,
+ 0xa12bd208,
+ 0xd2088506,
+ 0xb780a123,
+ 0xcffe518c,
+ 0xb5802a3d,
+ 0xb79f518c,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0xba1b9c22,
+ 0x9e594003,
+ 0xba039e5c,
+ 0xba124002,
+ 0x70404003,
+ 0xc0009e53,
+ 0x70069136,
+ 0x9158c000,
+ 0x72c4c812,
+ 0x9180c000,
+ 0x70029e51,
+ 0x90bcc000,
+ 0xc0009e82,
+ 0xcc1090a0,
+ 0x9e9a70c8,
+ 0x9c229e50,
+ 0x8460a61d,
+ 0xc0340a46,
+ 0xb4810c9e,
+ 0xb760c000,
+ 0xffd45394,
+ 0xb7809bc0,
+ 0xdffc490a,
+ 0xd0127d3e,
+ 0xc0002b06,
+ 0xb7809104,
+ 0xdffc498a,
+ 0xc0007d3e,
+ 0x778290a2,
+ 0x90c4c000,
+ 0x0b820f82,
+ 0x9000c001,
+ 0x5414b760,
+ 0x9ba7ffd4,
+ 0x5bc3d024,
+ 0x5884c000,
+ 0x4002ba39,
+ 0x5c84d3a2,
+ 0xc3809e8f,
+ 0xc2005a7f,
+ 0x02785a79,
+ 0x5b8bc200,
+ 0x4003ba3f,
+ 0x5e7fd3a2,
+ 0xc2009e79,
+ 0x02185a79,
+ 0x5b8bd224,
+ 0x490ab780,
+ 0x7d3edffc,
+ 0x9164c001,
+ 0x498ab780,
+ 0x400aba24,
+ 0x9124c000,
+ 0xb55f0902,
+ 0xb55f7fec,
+ 0xc00b7f6c,
+ 0xb7409180,
+ 0x9e7e6884,
+ 0x678cb720,
+ 0xd2261a04,
+ 0x9e2d5908,
+ 0x6804b760,
+ 0xb5bf028f,
+ 0xb5df7f6c,
+ 0xe0307fec,
+ 0xd226a34e,
+ 0x9d1d5904,
+ 0xa3cdc830,
+ 0xc8309e3d,
+ 0xc00aa3ce,
+ 0xb7809240,
+ 0xba24498a,
+ 0x0e82400a,
+ 0x92a4c002,
+ 0x5a14b720,
+ 0x678cb7c0,
+ 0x404bb780,
+ 0xc2009d6d,
+ 0x1a045a11,
+ 0x5904d226,
+ 0xa3cdc830,
+ 0x404bb780,
+ 0xb7e0010d,
+ 0x0089688c,
+ 0x5a11c200,
+ 0xd2261a04,
+ 0xd8295908,
+ 0x5891a9c6,
+ 0x9d531884,
+ 0x5904d0a6,
+ 0x680cb7a0,
+ 0xa306e270,
+ 0xd8089d47,
+ 0x0d02a9c1,
+ 0x4003ba1b,
+ 0xa3a6c850,
+ 0x4002ba1b,
+ 0x9b3ffff4,
+ 0x498ab780,
+ 0x4002ba24,
+ 0x5904d226,
+ 0x9d4b0a04,
+ 0x5904d226,
+ 0x4002ba00,
+ 0xc8509d53,
+ 0xca50a9c6,
+ 0x0d02a985,
+ 0x7f6cb51f,
+ 0x4003ba1b,
+ 0x4002ba1b,
+ 0x9b25fff4,
+ 0x9ded9eba,
+ 0x4002ba00,
+ 0x7fecb51f,
+ 0xc002010b,
+ 0xb7c09260,
+ 0x9eba678c,
+ 0x5904d226,
+ 0x680cb7a0,
+ 0x18c2d011,
+ 0x9d4b0a04,
+ 0x5904d226,
+ 0x5904d0a8,
+ 0xd0a69d53,
+ 0x9d445908,
+ 0xb7609ded,
+ 0xc830689c,
+ 0xc860a3c1,
+ 0xca60a9c6,
+ 0xe030a985,
+ 0xc850a34e,
+ 0xba1ba3a6,
+ 0xba1b4003,
+ 0xfff44002,
+ 0xb7809af6,
+ 0xba24498a,
+ 0xd2264002,
+ 0x0a045904,
+ 0xd2269d4b,
+ 0xba005904,
+ 0x9d534002,
+ 0xa9c6c850,
+ 0xa985ca50,
+ 0xb51f050f,
+ 0xba1b7f6c,
+ 0xba1b4003,
+ 0xfff44002,
+ 0x9ded9adc,
+ 0x6894b720,
+ 0x4002ba00,
+ 0x7fecb51f,
+ 0x010b7782,
+ 0xc0000503,
+ 0xb5ff90e2,
+ 0xb5ff7a6a,
+ 0x0e867c72,
+ 0x498ab780,
+ 0x4002ba0c,
+ 0x5908d0a6,
+ 0xe0209dc7,
+ 0x7502aa29,
+ 0x93c2c000,
+ 0x5904d0a6,
+ 0xd2a89e3d,
+ 0xcffe5d04,
+ 0xc8300ca3,
+ 0xc001a8cd,
+ 0xf2108184,
+ 0xda08803b,
+ 0x9d53a081,
+ 0xa886ca20,
+ 0x0e52d011,
+ 0x9ea59d44,
+ 0x8c00f051,
+ 0x4003ba2d,
+ 0xa086ca10,
+ 0x498ab780,
+ 0x4002ba24,
+ 0x08c2d011,
+ 0x5908d0a6,
+ 0xe0209dc7,
+ 0x7502aa29,
+ 0x93c2c000,
+ 0x5904d0a6,
+ 0xd2a89e3d,
+ 0xcffe5d04,
+ 0xc83087a3,
+ 0xc001a8cd,
+ 0xf0108184,
+ 0x9e2d8037,
+ 0xa081da08,
+ 0xd0119d47,
+ 0xc8200e52,
+ 0x9ea5a8a6,
+ 0x8d00e053,
+ 0x4003ba2d,
+ 0xa0cec830,
+ 0xc0017744,
+ 0xc0009142,
+ 0x774290fa,
+ 0x9022c002,
+ 0x9120c002,
+ 0xc0027746,
+ 0xb77f90c4,
+ 0xb77f7a72,
+ 0xb75f7aea,
+ 0xba1b7b72,
+ 0xba1b4003,
+ 0xba124002,
+ 0xfff44003,
+ 0xb77f9a5e,
+ 0xb77f7c72,
+ 0xb75f7cea,
+ 0xba287d72,
+ 0xba1b4002,
+ 0xba1b4003,
+ 0xba124002,
+ 0xc0004003,
+ 0xb77f9300,
+ 0xb77f7a72,
+ 0x0d027aea,
+ 0x4003ba1b,
+ 0x4002ba1b,
+ 0x9a43fff4,
+ 0x7c72b77f,
+ 0x7ceab77f,
+ 0x4002ba28,
+ 0xba1b0d02,
+ 0xba1b4003,
+ 0xfff44002,
+ 0xba309a36,
+ 0xc0004002,
+ 0xb79f91c0,
+ 0xb73f7a6a,
+ 0xba2c7c6a,
+ 0xba314002,
+ 0xc0004002,
+ 0x0b029080,
+ 0xb7200a82,
+ 0xb740550c,
+ 0xd0a66704,
+ 0x9e2d5908,
+ 0xaa4de030,
+ 0x75002a04,
+ 0x9262c008,
+ 0xc0340a42,
+ 0xb4810c9e,
+ 0xb760c000,
+ 0xffd45414,
+ 0xd02499f8,
+ 0xc0005943,
+ 0xba115884,
+ 0xd1224002,
+ 0xc1005c84,
+ 0xc2005a7f,
+ 0x02285a75,
+ 0x590fc200,
+ 0x5a04c100,
+ 0xb73f9e8a,
+ 0xba127f6c,
+ 0x9e524003,
+ 0xba041242,
+ 0xd1224002,
+ 0x09f25e7f,
+ 0x7000c414,
+ 0x4002ba09,
+ 0x7046c410,
+ 0xc2007400,
+ 0x02285a75,
+ 0x590fd224,
+ 0xc0000003,
+ 0x10039076,
+ 0x7f6cb79f,
+ 0x7fecb73f,
+ 0x4002ba00,
+ 0x00c0d020,
+ 0x5e04d122,
+ 0xba041242,
+ 0xd0a24002,
+ 0x9ea25e7d,
+ 0x5c870494,
+ 0xc4149e4a,
+ 0xba097000,
+ 0xc4104002,
+ 0x74007046,
+ 0xba120003,
+ 0xc0004002,
+ 0x10039076,
+ 0x7fecb79f,
+ 0x4002ba00,
+ 0x00c0d020,
+ 0x5a04c100,
+ 0xba04124a,
+ 0xd0a24002,
+ 0x9d4d5e7d,
+ 0x7000c414,
+ 0x4002ba09,
+ 0x7046c410,
+ 0x00037400,
+ 0x0496c301,
+ 0xba115c87,
+ 0xc0004003,
+ 0x10039076,
+ 0x4002ba00,
+ 0x5e04d122,
+ 0x00d0d020,
+ 0xba04124c,
+ 0xd0a24002,
+ 0x9dcd5e7d,
+ 0x0496c001,
+ 0x9e4a5c87,
+ 0x7000c414,
+ 0x4002ba09,
+ 0x7046c410,
+ 0x00037400,
+ 0x4002ba12,
+ 0x9076c000,
+ 0xd1241003,
+ 0xba005888,
+ 0x02604002,
+ 0x58fdc200,
+ 0xcffe0242,
+ 0x9e492cf0,
+ 0x5414b740,
+ 0x5a07c200,
+ 0x5a48c200,
+ 0xc2003042,
+ 0x5d0b0d00,
+ 0xc000b402,
+ 0x5414b720,
+ 0x0c90c200,
+ 0xb4015c8b,
+ 0xb740c000,
+ 0xc2005414,
+ 0x5d0b0d20,
+ 0xc000b402,
+ 0x5414b720,
+ 0x0cb0c200,
+ 0xb4015c8b,
+ 0xb740c000,
+ 0xc2005414,
+ 0x5d0b0d40,
+ 0xc000b402,
+ 0x5414b720,
+ 0x0cd0c200,
+ 0xb4015c8b,
+ 0xb740c000,
+ 0xc2005414,
+ 0x5d0b0d60,
+ 0xc000b402,
+ 0x5414b720,
+ 0x0cf0c200,
+ 0xb4015c8b,
+ 0xb740c000,
+ 0xc2025414,
+ 0x5d0b0d00,
+ 0xc000b402,
+ 0x5414b720,
+ 0x0c90c202,
+ 0xb4015c8b,
+ 0xb740c000,
+ 0xc2025414,
+ 0x5d0b0d20,
+ 0xc000b402,
+ 0x5414b720,
+ 0x0cb0c202,
+ 0xb4015c8b,
+ 0xb740c000,
+ 0xc2025414,
+ 0x5d0b0d40,
+ 0xc000b402,
+ 0x5414b720,
+ 0x0cd0c202,
+ 0xb4015c8b,
+ 0xb740c000,
+ 0xc2025414,
+ 0x5d0b0d60,
+ 0xc000b402,
+ 0x5414b720,
+ 0x0cf0c202,
+ 0xb4015c8b,
+ 0xb79fc000,
+ 0xb7bf7cee,
+ 0xb7df7d6e,
+ 0xb7ff7dee,
+ 0xc0027e6e,
+ 0x9c228c60,
+ 0x4b8cb720,
+ 0xc0ff9e5c,
+ 0xc0ff2a40,
+ 0x710228c0,
+ 0xc0008502,
+ 0x85069062,
+ 0x4c1cb540,
+ 0x4b94b560,
+ 0xa6059c22,
+ 0xd0519e5d,
+ 0x75002a50,
+ 0x90e4c000,
+ 0x4c0cb780,
+ 0xc0007500,
+ 0xc0c09142,
+ 0xc0120d82,
+ 0x0d0209c2,
+ 0xffd40942,
+ 0xb78098de,
+ 0xc0344b8c,
+ 0xb4810cb6,
+ 0xc034c000,
+ 0xb4a20d32,
+ 0xb5a0c000,
+ 0xb79f4b0c,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa61d9c22,
+ 0xb7848420,
+ 0x75004908,
+ 0xc0008702,
+ 0xb7809122,
+ 0xd2885c8c,
+ 0x7440a881,
+ 0x9184c01a,
+ 0x590cb7c0,
+ 0xaa59f208,
+ 0x75002a20,
+ 0x598cb7a0,
+ 0x9162c001,
+ 0x0a50d131,
+ 0xa881da08,
+ 0x680cb780,
+ 0x678cb740,
+ 0xb5408506,
+ 0x5891551c,
+ 0x5904d0a6,
+ 0x8021f310,
+ 0x8125e210,
+ 0x4902b540,
+ 0x4982b540,
+ 0xa100da0a,
+ 0xa140d80a,
+ 0x0c8ac430,
+ 0xb4810a02,
+ 0xb101c000,
+ 0xc1804220,
+ 0xc0303880,
+ 0xb4210c8a,
+ 0xb7a0c000,
+ 0x9eb1598c,
+ 0x470cb740,
+ 0x098e0dc2,
+ 0x0d42c002,
+ 0x7fe4b55f,
+ 0x9860ff94,
+ 0xaa55f208,
+ 0x5894b7a0,
+ 0xa8c9f208,
+ 0xa8dada08,
+ 0xa95dda08,
+ 0x480cb580,
+ 0xaa45f208,
+ 0xa0baf210,
+ 0x08d0d252,
+ 0xa0bdf210,
+ 0xa121f250,
+ 0xa235f210,
+ 0xa942da08,
+ 0x0a50d131,
+ 0xa881da08,
+ 0x404bb740,
+ 0xa947f248,
+ 0xda889e53,
+ 0x60b2a8d2,
+ 0x5a7fc080,
+ 0x5a71c200,
+ 0x58930098,
+ 0xe2105894,
+ 0xdffc80a3,
+ 0x59157e7e,
+ 0x5b90c100,
+ 0xa0bdf250,
+ 0x7fe4b75f,
+ 0x91c2c000,
+ 0x5d40e100,
+ 0x9144c000,
+ 0xaa55da88,
+ 0x4792b520,
+ 0x4882b540,
+ 0x468ab580,
+ 0xaa21f288,
+ 0x09d0d132,
+ 0xa235f250,
+ 0xa239f250,
+ 0xa941da08,
+ 0xaa61d810,
+ 0xa93bf248,
+ 0xf3106228,
+ 0xb7608021,
+ 0xf290630c,
+ 0xda08a229,
+ 0xd810a8c1,
+ 0xf24aaa61,
+ 0xda08a934,
+ 0xf008a942,
+ 0x0884a973,
+ 0x5d206099,
+ 0x812de220,
+ 0x82a3e210,
+ 0xa0a5f290,
+ 0xa12ef208,
+ 0xa8c2da08,
+ 0xa977f008,
+ 0xe2205c9c,
+ 0xf20880ab,
+ 0xf250a0b2,
+ 0xf250a126,
+ 0xda48a0ae,
+ 0xf250aa39,
+ 0xda48a229,
+ 0xf250a8bd,
+ 0xda48a0b1,
+ 0xf208aa29,
+ 0x6228a923,
+ 0x5a10c200,
+ 0x8021f310,
+ 0xa221f210,
+ 0xa8adda48,
+ 0xa927f208,
+ 0x590c6122,
+ 0x8025f210,
+ 0xa229f210,
+ 0xa92bf208,
+ 0x8125e210,
+ 0xa12df210,
+ 0xaa29da48,
+ 0xa225f210,
+ 0xa8adda48,
+ 0xa0b1f210,
+ 0xaa61d810,
+ 0x1d00c004,
+ 0x08d4d131,
+ 0x5a40c200,
+ 0x5a51c200,
+ 0xa235f290,
+ 0x402bb780,
+ 0x1c80c002,
+ 0x4f94b540,
+ 0x5014b520,
+ 0x5a40c200,
+ 0x5a51c200,
+ 0xa239f290,
+ 0x0cf2c42e,
+ 0xb4810a02,
+ 0xb101c000,
+ 0x28844220,
+ 0xd1327440,
+ 0xc0000b50,
+ 0xda109102,
+ 0xc09caa41,
+ 0xc011753e,
+ 0xc0c09332,
+ 0xc05008c6,
+ 0xb4210ce2,
+ 0xf208c000,
+ 0xd131a959,
+ 0xda080a50,
+ 0xd052a881,
+ 0x764028a0,
+ 0xb5205891,
+ 0xc0004f0c,
+ 0x0a029222,
+ 0x0caec060,
+ 0xc000b481,
+ 0xa8c1da08,
+ 0xc0007440,
+ 0x85029302,
+ 0x4f1cb540,
+ 0x9260c000,
+ 0x2900c200,
+ 0xc0007480,
+ 0x0a0a9122,
+ 0x0caec060,
+ 0xc000b481,
+ 0x90e0c000,
+ 0xc0600a06,
+ 0xb4810cae,
+ 0xf208c000,
+ 0x2a04aa59,
+ 0x850a7500,
+ 0x499cb540,
+ 0x90a2c000,
+ 0xb5408504,
+ 0xb784499c,
+ 0x75004908,
+ 0x6414b7e0,
+ 0x92e2c000,
+ 0x4a08b784,
+ 0xc0007500,
+ 0xb7809244,
+ 0x7500468c,
+ 0x91a2c000,
+ 0x4a88b784,
+ 0xc0007500,
+ 0xb7609104,
+ 0xf2105d94,
+ 0x9ea4aa61,
+ 0xf2089c62,
+ 0x2a20aa59,
+ 0xc0007500,
+ 0xda0890e2,
+ 0x7500aa41,
+ 0x9244c000,
+ 0x5c8cb780,
+ 0x548cb720,
+ 0xa98eda08,
+ 0x9c629e8c,
+ 0x4908b784,
+ 0xc0007500,
+ 0x850690a2,
+ 0x5318b544,
+ 0xaa59f208,
+ 0x75002a20,
+ 0x9082c001,
+ 0x08bac0e0,
+ 0x0cfac038,
+ 0xc000b421,
+ 0xaa59f208,
+ 0x498cb720,
+ 0x1cf8851e,
+ 0x75002a04,
+ 0xb52038d0,
+ 0xc084498c,
+ 0xe00108e2,
+ 0xb5408d28,
+ 0xb4214d9c,
+ 0xb780c000,
+ 0x088a660c,
+ 0x0c80c002,
+ 0x528cb580,
+ 0xc000b421,
+ 0x9803ffd4,
+ 0x498cb780,
+ 0x0c82c03e,
+ 0xc000b481,
+ 0x4d8cb720,
+ 0x0c82c050,
+ 0xc000b421,
+ 0xa941da08,
+ 0xa8b5f290,
+ 0xa946da08,
+ 0x9e536123,
+ 0xaa41da08,
+ 0xb7206097,
+ 0x87026294,
+ 0x4882b542,
+ 0xb540857f,
+ 0x851a459a,
+ 0x449ab540,
+ 0x1a040d86,
+ 0x4e0cb580,
+ 0x405bb540,
+ 0xb5408526,
+ 0xb540415b,
+ 0x5891460a,
+ 0xb52018a0,
+ 0xb55f40cb,
+ 0xc0347fe4,
+ 0xb75f9831,
+ 0xda087fe4,
+ 0x8506a8c6,
+ 0x5218b544,
+ 0x5280b544,
+ 0x5800b544,
+ 0x5880b544,
+ 0x5380b544,
+ 0xaa35f290,
+ 0xb7209e49,
+ 0xb5445914,
+ 0x62435400,
+ 0x434db720,
+ 0x58c88502,
+ 0x2880c101,
+ 0xda109e89,
+ 0x0a82a9c2,
+ 0x4e9cb540,
+ 0x521cb540,
+ 0xc0ff5dc0,
+ 0xca012dc0,
+ 0xc2003db0,
+ 0xb5805a11,
+ 0x3596450a,
+ 0x99a2fff4,
+ 0x0d82c0c0,
+ 0x09c2c012,
+ 0x09420d02,
+ 0x9a9bffb4,
+ 0x8546714e,
+ 0x9148c001,
+ 0xfff49dcf,
+ 0xc0c099a4,
+ 0xc0120d82,
+ 0x0d0209c2,
+ 0xffb40906,
+ 0xd0919a8c,
+ 0x71481a70,
+ 0xd00b0a02,
+ 0xda100a42,
+ 0xc200a9c2,
+ 0x9ea15a28,
+ 0xc0ff5dc0,
+ 0xc8012dc0,
+ 0x35963db0,
+ 0x9978fff4,
+ 0x0a50d051,
+ 0x5a40c200,
+ 0x5ac1c200,
+ 0x8506714e,
+ 0x9346fffe,
+ 0xaa71f250,
+ 0xcfce7500,
+ 0xb541857f,
+ 0xc000459c,
+ 0xf2089102,
+ 0xb760a9de,
+ 0x9ea4450a,
+ 0x0d829c62,
+ 0x98f7c014,
+ 0x5288b784,
+ 0x85027500,
+ 0x5218b544,
+ 0x92a4c002,
+ 0x5d8cb7a0,
+ 0x068f0f02,
+ 0x4908b784,
+ 0xc0027500,
+ 0xb7849082,
+ 0x75004a08,
+ 0x93e2c001,
+ 0x5308b784,
+ 0xc0007500,
+ 0xf2089182,
+ 0xb5c4a9a2,
+ 0xf2505310,
+ 0x9e84a869,
+ 0xb5009c62,
+ 0xb784430a,
+ 0x75005408,
+ 0x9382c000,
+ 0xa825f210,
+ 0xb5c49eab,
+ 0x9e845410,
+ 0xf2509c62,
+ 0x9ea4aa21,
+ 0xf2089c62,
+ 0xf210a9a1,
+ 0x0d86a83d,
+ 0x9c629e84,
+ 0xaa25f250,
+ 0xf2089eab,
+ 0x0986a021,
+ 0x9c629ea4,
+ 0x5408b784,
+ 0xc0007500,
+ 0x0d8691e4,
+ 0x98abc014,
+ 0x5408b784,
+ 0xffff7500,
+ 0xc0009342,
+ 0x0d8690a0,
+ 0x98a1c014,
+ 0x5288b784,
+ 0xfffd7500,
+ 0xc0c09262,
+ 0xc0120d82,
+ 0x0d0209c2,
+ 0xffb40906,
+ 0xc80199fa,
+ 0xb5800a02,
+ 0xc0c0520c,
+ 0xc0120d82,
+ 0x0d0209c2,
+ 0xffb40942,
+ 0xb76099ee,
+ 0xfff45214,
+ 0x0d8698e9,
+ 0x98f7fff4,
+ 0x0d82c0c0,
+ 0x09c2c012,
+ 0x09060d02,
+ 0x99dfffb4,
+ 0xc0068502,
+ 0xc4300892,
+ 0x09020c9a,
+ 0x521cb540,
+ 0x8510c006,
+ 0xc000b441,
+ 0x4220b104,
+ 0x75002a40,
+ 0xb3139d4f,
+ 0x00874422,
+ 0x1884e000,
+ 0x9284ffff,
+ 0x4694b740,
+ 0x0892c006,
+ 0x0c9ac430,
+ 0xc0060902,
+ 0xb4418512,
+ 0xb104c000,
+ 0xc0024220,
+ 0x75002a00,
+ 0xb3149d53,
+ 0x00894422,
+ 0x1884e000,
+ 0x9264ffff,
+ 0xc03e0a02,
+ 0xb9600cea,
+ 0xb48140e8,
+ 0xffffc000,
+ 0x768093c1,
+ 0x9122c000,
+ 0xc03e0a02,
+ 0xb4810cea,
+ 0xc000c000,
+ 0xb7809180,
+ 0x7504450c,
+ 0xc03e088a,
+ 0xd00c0cea,
+ 0xb4211894,
+ 0xc0c0c000,
+ 0x09e20d82,
+ 0x09420d02,
+ 0x998bffb4,
+ 0xc0340882,
+ 0xb4210cb6,
+ 0xf208c000,
+ 0x2a20aa59,
+ 0xc0007500,
+ 0xc45091e2,
+ 0x0a020cea,
+ 0xc000b481,
+ 0x4220b101,
+ 0x5c8cb780,
+ 0x28fcc002,
+ 0xa08dda08,
+ 0x7deeb79f,
+ 0x7e6eb7bf,
+ 0x7eeeb7df,
+ 0x7f6eb7ff,
+ 0x8c20c002,
+ 0xa60d9c22,
+ 0x670cb780,
+ 0x520cb720,
+ 0xf2080a82,
+ 0xc01ca882,
+ 0xf2087efe,
+ 0x0309a081,
+ 0xa086f208,
+ 0x9182c000,
+ 0x0d82c0c0,
+ 0x09c2c012,
+ 0x09060d02,
+ 0x994fffb4,
+ 0x9240c000,
+ 0x0cb2c434,
+ 0xb4810a02,
+ 0xb101c000,
+ 0x28844220,
+ 0xc0007440,
+ 0xb78490e2,
+ 0x75005208,
+ 0x92c2c00c,
+ 0x4e8cb780,
+ 0xc0007502,
+ 0x0d8290c4,
+ 0x9a92c014,
+ 0xb7403ac0,
+ 0xb7405914,
+ 0xd810588c,
+ 0xf088a8c5,
+ 0xb720aa55,
+ 0x62434592,
+ 0x9e499e96,
+ 0x5a11c200,
+ 0xba090a04,
+ 0xba244002,
+ 0x70484002,
+ 0xc0000685,
+ 0xb7809138,
+ 0x2a51498c,
+ 0x498cb580,
+ 0x91c0c003,
+ 0xaa39f210,
+ 0x75002a04,
+ 0x93a2c002,
+ 0x498cb780,
+ 0xd0117440,
+ 0xb5403942,
+ 0xc002498c,
+ 0xb760929c,
+ 0x9e5c4792,
+ 0x400aba24,
+ 0x91a2c002,
+ 0x911cc002,
+ 0x660ab760,
+ 0x6384b740,
+ 0x9e2d9e99,
+ 0x4003ba09,
+ 0x5e7fd0a2,
+ 0xc2009e48,
+ 0x02085a6d,
+ 0x5a17c200,
+ 0x5908d226,
+ 0xc2000c06,
+ 0x12085a14,
+ 0xe0389e40,
+ 0xba24a94e,
+ 0x50904002,
+ 0x79029e54,
+ 0x9102c001,
+ 0x4d88b781,
+ 0xc0017500,
+ 0xb7809064,
+ 0x9e48470a,
+ 0x4002ba24,
+ 0xc0007008,
+ 0x76409378,
+ 0x90e4c000,
+ 0x4d08b781,
+ 0xc0007502,
+ 0xd01192c2,
+ 0x29591e32,
+ 0x498cb540,
+ 0x48fd9e52,
+ 0x470ab560,
+ 0x4d90b501,
+ 0x478ab580,
+ 0xa0c120a2,
+ 0x90a0c000,
+ 0xb5418502,
+ 0xb7804d98,
+ 0xba24458a,
+ 0xc000400a,
+ 0xb78090fc,
+ 0x0a04660a,
+ 0x660ab580,
+ 0x498cb720,
+ 0x0c82c03e,
+ 0xc000b421,
+ 0x458ab780,
+ 0xb5800a04,
+ 0xc014458a,
+ 0xb7849aff,
+ 0x75004908,
+ 0x9222c002,
+ 0x4a08b784,
+ 0xc0027500,
+ 0xb7809182,
+ 0x2a40520c,
+ 0xc0007500,
+ 0xb78490e4,
+ 0x751a5808,
+ 0x9024c002,
+ 0x5a8cb780,
+ 0x4892b722,
+ 0xa881da08,
+ 0x71029e4c,
+ 0x9284c000,
+ 0x430ab780,
+ 0xb5428502,
+ 0xb580489a,
+ 0xb760440a,
+ 0xb7804412,
+ 0x8506548c,
+ 0x5318b544,
+ 0x5418b544,
+ 0x9c629ea4,
+ 0xaa39f210,
+ 0x75002a10,
+ 0x93e2c000,
+ 0x5408b784,
+ 0xc0007500,
+ 0xb78290e4,
+ 0x7502488a,
+ 0x92a4c000,
+ 0x5308b784,
+ 0x09027500,
+ 0x0922d001,
+ 0x0c82c438,
+ 0xb4810a02,
+ 0xb101c000,
+ 0x28f14220,
+ 0xc0383094,
+ 0xb4210c82,
+ 0xc014c000,
+ 0xc0c098a7,
+ 0x09e20d82,
+ 0xc01e0d02,
+ 0xffb4097e,
+ 0xc0c0983e,
+ 0x09920d82,
+ 0x0d02c100,
+ 0x0902c100,
+ 0x9835ffb4,
+ 0x0c8ec430,
+ 0xb4810a02,
+ 0xb104c000,
+ 0xc1004220,
+ 0xc0303a00,
+ 0xb4810c8e,
+ 0xf210c000,
+ 0x2a20aa39,
+ 0xc0017500,
+ 0xb7809342,
+ 0xd226550c,
+ 0x9d435908,
+ 0xa885e060,
+ 0x2a12d011,
+ 0xc0007500,
+ 0xd01190e4,
+ 0x75002a14,
+ 0x9082c000,
+ 0x9828ffd4,
+ 0x550cb720,
+ 0x5908d0a6,
+ 0xe0609d47,
+ 0x2a04aa25,
+ 0xc0007500,
+ 0xb7209382,
+ 0xb7205a14,
+ 0xb780498a,
+ 0x0884404b,
+ 0xba099e89,
+ 0x9e4a4003,
+ 0x5a11c200,
+ 0xb5207088,
+ 0xc000498a,
+ 0xb7809158,
+ 0x8502490a,
+ 0x499ab540,
+ 0xb5800a04,
+ 0xc430490a,
+ 0x0a020c8a,
+ 0xc000b481,
+ 0x4220b104,
+ 0x3a00c180,
+ 0x0c8ac030,
+ 0xc000b481,
+ 0x4e8cb780,
+ 0xa955f290,
+ 0x71040a04,
+ 0x4e8cb580,
+ 0x90a4c000,
+ 0xb5408502,
+ 0xda104e9c,
+ 0xb720a8a5,
+ 0x58914592,
+ 0xba0960a3,
+ 0x9e4c4003,
+ 0x08843a84,
+ 0x020b7102,
+ 0x2a3dcffe,
+ 0x4426b354,
+ 0xd0510289,
+ 0x744028d0,
+ 0x9142c000,
+ 0x0d82c0c0,
+ 0x09c2c012,
+ 0x09420d02,
+ 0x9bb1ff94,
+ 0x520cb780,
+ 0xc0007500,
+ 0x9eab90a2,
+ 0x9ab9ffd4,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0xa205f839,
+ 0x5808b724,
+ 0x5284b740,
+ 0x448ab780,
+ 0x5908d0a6,
+ 0xb7409e2d,
+ 0xe030598c,
+ 0xb760a94e,
+ 0xb744669c,
+ 0xb7445898,
+ 0x1a045800,
+ 0x448ab580,
+ 0xa8cdc030,
+ 0x5a40e200,
+ 0x0a20d251,
+ 0xa882da08,
+ 0x82a3e210,
+ 0x5214b540,
+ 0x5c905c95,
+ 0x5808b524,
+ 0x92c4c001,
+ 0x5888b784,
+ 0xd3f10a04,
+ 0x744428ce,
+ 0x5888b584,
+ 0x9034c001,
+ 0x4594b761,
+ 0xb5448506,
+ 0x24a65298,
+ 0xb5447640,
+ 0xb5205418,
+ 0xc0005214,
+ 0xd1319202,
+ 0xb78008a0,
+ 0xc801402b,
+ 0x9e483c80,
+ 0x5a40c200,
+ 0x2a40c0ff,
+ 0xb5803208,
+ 0x0806520c,
+ 0xaa1df9f8,
+ 0xb7249c22,
+ 0xb7405888,
+ 0xd0a66284,
+ 0x9e2d5904,
+ 0xaa4dc830,
+ 0x448ab580,
+ 0x09a0d132,
+ 0x458ab720,
+ 0xaa61d810,
+ 0x4002ba19,
+ 0x5a11c200,
+ 0x70c81a04,
+ 0x9104c000,
+ 0x458cb781,
+ 0x3a00c040,
+ 0x458cb581,
+ 0x4f0cb720,
+ 0x0a18d011,
+ 0xc00070c8,
+ 0xb7819104,
+ 0xc010458c,
+ 0xb5813a00,
+ 0xd011458c,
+ 0x70c80a1c,
+ 0x9104c000,
+ 0x458cb781,
+ 0x3a00c020,
+ 0x458cb581,
+ 0x588cb780,
+ 0xa916f288,
+ 0xa919f288,
+ 0xb7209e50,
+ 0xd011460a,
+ 0x62411a24,
+ 0x4002ba09,
+ 0x704800b2,
+ 0x9106c000,
+ 0x458cb781,
+ 0x2a7acfff,
+ 0x458cb581,
+ 0x1a22d011,
+ 0x62459e52,
+ 0xc0007048,
+ 0xb7819106,
+ 0xc7fe458c,
+ 0xb5812a7e,
+ 0xb740458c,
+ 0xd0a2451a,
+ 0xf3105e11,
+ 0x70c88821,
+ 0x9104c000,
+ 0x458cb781,
+ 0x2a4ecfff,
+ 0x458cb581,
+ 0x590cb740,
+ 0x458cb721,
+ 0xaa45d808,
+ 0x9e8a9e50,
+ 0x5a11c200,
+ 0x62091a04,
+ 0x5214b720,
+ 0xba240a04,
+ 0x70c84002,
+ 0xb5202494,
+ 0xc0005214,
+ 0xc8019118,
+ 0xb5203c80,
+ 0xc0005214,
+ 0xd81091c0,
+ 0xc801aa61,
+ 0x9e483c80,
+ 0x5a40c200,
+ 0x2a40c0ff,
+ 0xb5803208,
+ 0xf008520c,
+ 0xc040aa59,
+ 0x75002a00,
+ 0x9102c000,
+ 0x520cb780,
+ 0x3a00c101,
+ 0x520cb580,
+ 0x5214b760,
+ 0x99a8ffd4,
+ 0xf9f80802,
+ 0x9c22aa1d,
+ 0x5994b700,
+ 0x0e04d251,
+ 0x588cb760,
+ 0xa881da08,
+ 0x2dfcc00e,
+ 0x0cbac034,
+ 0xa961f008,
+ 0xc0805895,
+ 0x9e825810,
+ 0xc000b441,
+ 0x454ab780,
+ 0xa963f008,
+ 0x5a10c200,
+ 0x8021f310,
+ 0xa8e9f008,
+ 0xf0080c84,
+ 0xb421a261,
+ 0xb780c000,
+ 0xf00846ca,
+ 0xf310a96b,
+ 0xf0088021,
+ 0x0c84a8ed,
+ 0xa269f008,
+ 0xc000b421,
+ 0x46cab780,
+ 0xa96ff008,
+ 0x8021f310,
+ 0xa8f5f008,
+ 0xf0080c8c,
+ 0xb421a26d,
+ 0xf008c000,
+ 0x0c84a97d,
+ 0xc000b441,
+ 0x4e0cb780,
+ 0xd2240a08,
+ 0x72445890,
+ 0x931cc000,
+ 0x0e04d131,
+ 0xa903da08,
+ 0xe2109e4c,
+ 0x710288a1,
+ 0x91d6c000,
+ 0xaa75f008,
+ 0xa8fdf008,
+ 0x0a00c010,
+ 0xa275f008,
+ 0x0880c008,
+ 0xa0fdf008,
+ 0x4f8cb780,
+ 0x0cdac034,
+ 0xc000b481,
+ 0x500cb720,
+ 0xb4210c84,
+ 0xb780c000,
+ 0x0ce44f8c,
+ 0xb4810a40,
+ 0xb720c000,
+ 0x0c84500c,
+ 0xb42108c0,
+ 0xb780c000,
+ 0xb7204f8c,
+ 0x1ce4500c,
+ 0x0a00c010,
+ 0x4f8cb580,
+ 0xaa65f048,
+ 0x0880c008,
+ 0x500cb520,
+ 0xc000b481,
+ 0xa8edf048,
+ 0xb4210c84,
+ 0xf048c000,
+ 0xf048aa65,
+ 0x0c84a8ed,
+ 0x0a00c010,
+ 0xa265f048,
+ 0xaa75f048,
+ 0x0880c008,
+ 0xa0edf048,
+ 0xc000b481,
+ 0xa965f088,
+ 0xb4410c88,
+ 0xd131c000,
+ 0xb7800c80,
+ 0xf088402b,
+ 0xcffea967,
+ 0xf3102a40,
+ 0xf0888021,
+ 0x0c88a969,
+ 0xa265f088,
+ 0xc000b441,
+ 0x0c80d131,
+ 0x402bb780,
+ 0xa96bf088,
+ 0x2a40cffe,
+ 0x8021f310,
+ 0xa97df048,
+ 0xf0881c8c,
+ 0xb441a269,
+ 0xd131c000,
+ 0xb7800c80,
+ 0xf048402b,
+ 0x76c0a97f,
+ 0x5a11c200,
+ 0x5a14c200,
+ 0x8021f310,
+ 0xa27df048,
+ 0x9182c001,
+ 0x454ab720,
+ 0xb4211ca8,
+ 0xb780c000,
+ 0x0c8446ca,
+ 0x5a0dc200,
+ 0x58c0c200,
+ 0xb4813242,
+ 0xd131c000,
+ 0xd8080d04,
+ 0x0c8caa41,
+ 0x588cc200,
+ 0x28fccffe,
+ 0x5a50c200,
+ 0xb4213098,
+ 0xd251c000,
+ 0xd8080d04,
+ 0x0ca0aa41,
+ 0x5a11c200,
+ 0x2a3c1a10,
+ 0x3a00c004,
+ 0xc000b481,
+ 0x4e0cb780,
+ 0xb5800a04,
+ 0x9c224e0c,
+ 0xc43ea68d,
+ 0x0a020c92,
+ 0xc000b481,
+ 0x4220b103,
+ 0x610cb780,
+ 0xa885da08,
+ 0xa909da08,
+ 0xa189da08,
+ 0xa081da08,
+ 0xa105da08,
+ 0x0a020cd0,
+ 0xc000b481,
+ 0x4220b103,
+ 0x608cb720,
+ 0x520cb780,
+ 0x610cb7a0,
+ 0x40b3b720,
+ 0x412bb740,
+ 0x412bb560,
+ 0x75002a40,
+ 0xb5200303,
+ 0xb5404033,
+ 0xc00040ab,
+ 0xb78490e2,
+ 0x750a5808,
+ 0x90f2c000,
+ 0x5808b784,
+ 0xc00d751a,
+ 0xb7829204,
+ 0x0a04488a,
+ 0x488ab582,
+ 0x0ca6c450,
+ 0xb4810a02,
+ 0xb103c000,
+ 0x00874220,
+ 0x2880c031,
+ 0xc00f0207,
+ 0xd0a42a7c,
+ 0xd22859e1,
+ 0x000759c1,
+ 0x287ccffe,
+ 0x0a020c88,
+ 0xc000b481,
+ 0x4220b103,
+ 0x5bc1c180,
+ 0xcffe9e9a,
+ 0x0cbc2d7c,
+ 0xc000b481,
+ 0x4220b103,
+ 0xb7400087,
+ 0xb782590c,
+ 0xc0fc478a,
+ 0xd0f22880,
+ 0xd0a4283e,
+ 0x9e415b19,
+ 0xa8d2d888,
+ 0xb5029e95,
+ 0xdffc4792,
+ 0x12187e7e,
+ 0x4002ba1c,
+ 0x91c2c002,
+ 0xc00076c2,
+ 0xb7809384,
+ 0xb740480a,
+ 0xba246384,
+ 0xc2004002,
+ 0x58ed58ff,
+ 0x589700c2,
+ 0x5908d0a6,
+ 0x58949e2d,
+ 0x9e591242,
+ 0xa8cee038,
+ 0x4a7d5230,
+ 0x249e9ea7,
+ 0xc001a0c2,
+ 0xb7809180,
+ 0xda08468a,
+ 0xba24a8a1,
+ 0x70484002,
+ 0x907cc001,
+ 0x488ab780,
+ 0x4812b720,
+ 0x6384b740,
+ 0xb5800a04,
+ 0xba09488a,
+ 0xd0a24003,
+ 0x9e495e7f,
+ 0xc2009e2d,
+ 0x02185a6d,
+ 0x5a17c200,
+ 0x5908d226,
+ 0x5a14c200,
+ 0xe0389ea7,
+ 0x149ea94d,
+ 0x08869e4c,
+ 0x312250b0,
+ 0xb780a141,
+ 0x0a04480a,
+ 0x480ab580,
+ 0x4988b784,
+ 0xb7847500,
+ 0xc0004a08,
+ 0xc01c90c4,
+ 0xc0027d3e,
+ 0xc01c9184,
+ 0xd0117d3e,
+ 0xd02103f0,
+ 0x76c20527,
+ 0xaa39f210,
+ 0xd0010882,
+ 0x2a040892,
+ 0xb7407902,
+ 0xc0005d8c,
+ 0xd80890e2,
+ 0x0a04aa49,
+ 0xa249d808,
+ 0xa94bf008,
+ 0xa94cf00a,
+ 0x8027f310,
+ 0x82a5e010,
+ 0xa249f008,
+ 0xa0cdf008,
+ 0x4e88b784,
+ 0x08827500,
+ 0x0892d002,
+ 0x0a0276c2,
+ 0x0a42d002,
+ 0xc0007848,
+ 0xc07c90c2,
+ 0xda088542,
+ 0x76c2a123,
+ 0xa953f008,
+ 0x90c4c000,
+ 0xaa41da08,
+ 0x9080c000,
+ 0xaa21da08,
+ 0x80a1e310,
+ 0xaa4dd808,
+ 0xa0d1f008,
+ 0xd8080a04,
+ 0xc006a24d,
+ 0xb72091c0,
+ 0x9d2e5d8c,
+ 0xaa39f210,
+ 0x8136c301,
+ 0x8120c201,
+ 0x4525b740,
+ 0x75002a04,
+ 0x8027f010,
+ 0x8221f310,
+ 0xb5800103,
+ 0xc001452d,
+ 0x76c290a2,
+ 0x90c4c000,
+ 0xaa41da08,
+ 0x9080c000,
+ 0xaa21da08,
+ 0xa25dd808,
+ 0xc00176c6,
+ 0x76c09082,
+ 0x91a4c000,
+ 0xd80874c0,
+ 0xe002a953,
+ 0xf2108d2a,
+ 0xd808802d,
+ 0xc000a251,
+ 0x74c092c0,
+ 0xa947d848,
+ 0x8d26e002,
+ 0x9160c000,
+ 0xaa41da08,
+ 0xd84874c0,
+ 0xd808a947,
+ 0xe002a25d,
+ 0xf2108d2a,
+ 0xd848802d,
+ 0xb784a245,
+ 0x75004b08,
+ 0x9302c000,
+ 0x440ab780,
+ 0x70489e41,
+ 0x9244c000,
+ 0xb5448502,
+ 0xc43a4b18,
+ 0x0a020c82,
+ 0xc000b481,
+ 0x4220b103,
+ 0x29fecfef,
+ 0x0c82c03a,
+ 0xc000b461,
+ 0x440ab780,
+ 0x70489e41,
+ 0xd0020882,
+ 0x76c60892,
+ 0xd0010a02,
+ 0x78480a42,
+ 0x9242c000,
+ 0xb5448506,
+ 0xc43a4b18,
+ 0x0a020c82,
+ 0xc000b481,
+ 0x4220b103,
+ 0x3980c011,
+ 0x0c82c03a,
+ 0xc000b461,
+ 0xc0017780,
+ 0x76c091a2,
+ 0x92e4c000,
+ 0xaa21da08,
+ 0xa947f008,
+ 0xa8d5d808,
+ 0x8021f310,
+ 0xa8dad808,
+ 0xa245f008,
+ 0x0c849e44,
+ 0xa0dad808,
+ 0xd80800c2,
+ 0xc000a0d5,
+ 0xda0892a0,
+ 0xf008aa41,
+ 0xd848a95b,
+ 0xf310a8c9,
+ 0xd8488021,
+ 0xf008a8ce,
+ 0x9e44a259,
+ 0xd8480c84,
+ 0x00c2a0ce,
+ 0xa0c9d848,
+ 0xaa5dd808,
+ 0xa95ff008,
+ 0xa940f04a,
+ 0xa9c7f048,
+ 0x8021f310,
+ 0xa94ff048,
+ 0xa25df008,
+ 0x8221f210,
+ 0xa8c2d848,
+ 0xa241f048,
+ 0x8037f010,
+ 0x80a9e210,
+ 0xd8480c84,
+ 0xf048a0c2,
+ 0xf048a245,
+ 0xb7bfa0cd,
+ 0xb7df7eee,
+ 0xb7ff7f6e,
+ 0x8c607fee,
+ 0xb7809c22,
+ 0xd0f15c8c,
+ 0xb72008c0,
+ 0x76424031,
+ 0xc0009ea2,
+ 0xc43c9382,
+ 0x0a020cca,
+ 0xc000b481,
+ 0x4220b101,
+ 0x1914d011,
+ 0x2e3ed3f1,
+ 0xba090888,
+ 0xba124002,
+ 0xc4104002,
+ 0xc00e7048,
+ 0xc81228fc,
+ 0xd3f17044,
+ 0xc00028ae,
+ 0xd3f19080,
+ 0xd0f12cbe,
+ 0x85020e20,
+ 0x0cfec036,
+ 0xa103d208,
+ 0xc000b421,
+ 0xc0029c22,
+ 0xd01172c0,
+ 0x9c221c0a,
+ 0x5e0cb780,
+ 0xa882f208,
+ 0x1432d010,
+ 0xc000743d,
+ 0x087b90b6,
+ 0x90e0c000,
+ 0x850a7406,
+ 0x4478b302,
+ 0xf2089d43,
+ 0xe210a903,
+ 0x0a0a8021,
+ 0xc01208fe,
+ 0xc0107008,
+ 0x9c227002,
+ 0x5c94b720,
+ 0xb7208502,
+ 0xd81041cb,
+ 0xd810a17f,
+ 0x8502a173,
+ 0x5e0cb780,
+ 0xa167f010,
+ 0xa17bd810,
+ 0xa177d810,
+ 0xa167d850,
+ 0xa17bf010,
+ 0xa16fd850,
+ 0xa16bd850,
+ 0xa163d850,
+ 0xa167f050,
+ 0xa163f050,
+ 0xa17ff010,
+ 0xa16ff050,
+ 0xa16bf050,
+ 0xa0e1f010,
+ 0xa11fda08,
+ 0xa113da08,
+ 0xa107f208,
+ 0xa11bda08,
+ 0xa117da08,
+ 0xa107da48,
+ 0xa11bf208,
+ 0xa10fda48,
+ 0xa10bda48,
+ 0xa103da48,
+ 0xa107f248,
+ 0x41cbb720,
+ 0xa103f248,
+ 0xa11ff208,
+ 0xa10ff248,
+ 0xa081f208,
+ 0xa10bf248,
+ 0xb7809c22,
+ 0xf0105e0c,
+ 0xf208a8e1,
+ 0xd810a081,
+ 0xda08a8f2,
+ 0xd850a092,
+ 0xda48a8e5,
+ 0xf050a085,
+ 0xf248a8e6,
+ 0xf050a086,
+ 0xf248a8e1,
+ 0xd810a081,
+ 0xda08a8fe,
+ 0xf010a09e,
+ 0xf208a8f9,
+ 0xf010a099,
+ 0xf208a8e6,
+ 0xd850a086,
+ 0xda48a8e1,
+ 0xd810a081,
+ 0xda08a8fa,
+ 0xd850a09a,
+ 0xda48a8ed,
+ 0xd810a08d,
+ 0xda08a8f6,
+ 0xd850a096,
+ 0xda48a8e9,
+ 0xf050a089,
+ 0xf248a8ee,
+ 0xf010a08e,
+ 0xb720a8fd,
+ 0xf2085f14,
+ 0xb740a09d,
+ 0xf05041dd,
+ 0xc301aa69,
+ 0xb5408120,
+ 0xf05041dd,
+ 0xf310aa61,
+ 0x85028821,
+ 0x40cdb580,
+ 0xa173d810,
+ 0x08028502,
+ 0xa167f010,
+ 0xa17bd810,
+ 0xa177d810,
+ 0xa167d850,
+ 0xa17bf010,
+ 0xa16fd850,
+ 0xa16bd850,
+ 0xa16bf050,
+ 0x74c29c22,
+ 0xc0019e5c,
+ 0xb78091c4,
+ 0xd208618c,
+ 0x7440a885,
+ 0xb5448502,
+ 0xc0014e98,
+ 0xb78091a4,
+ 0xb7205e0c,
+ 0xda485b94,
+ 0xb740a881,
+ 0xb78042cd,
+ 0xb7405c8c,
+ 0x60955f14,
+ 0xa917f248,
+ 0xa94df010,
+ 0x44c5b740,
+ 0x444db780,
+ 0x8124c201,
+ 0x88a3e210,
+ 0x8a21f310,
+ 0xc0007048,
+ 0xb56491fc,
+ 0xc0004e88,
+ 0x74c09160,
+ 0x9104c000,
+ 0x5c8cb720,
+ 0xaa01da08,
+ 0x41abb580,
+ 0x4e88b704,
+ 0xa61d9c22,
+ 0xba3b0e82,
+ 0xcc124002,
+ 0x9eb872ca,
+ 0x9e969e56,
+ 0x12ac66b1,
+ 0xba017540,
+ 0xc0004003,
+ 0x058b933c,
+ 0x0d02018b,
+ 0x9bf1c034,
+ 0x5e0bd322,
+ 0x9e857148,
+ 0x931ac000,
+ 0x5990d324,
+ 0x0d0201ee,
+ 0x9be5c034,
+ 0x60419e6c,
+ 0x5a93d024,
+ 0x9180c000,
+ 0x5b8cb780,
+ 0xa88ada08,
+ 0x1590d010,
+ 0xc0340d02,
+ 0x9e859bd6,
+ 0xb79f9e68,
+ 0xb7bf7e6e,
+ 0xb7df7eee,
+ 0xb7ff7f6e,
+ 0xc0027fee,
+ 0x9c228c00,
+ 0x8440a61d,
+ 0x5b94b7e0,
+ 0xaa75da10,
+ 0x5c8cb7e0,
+ 0xb740753a,
+ 0xf2085e0c,
+ 0x0c82aa61,
+ 0x0c92d00a,
+ 0x7e74b53f,
+ 0xd8087504,
+ 0xd848aa5d,
+ 0xb59fa8c1,
+ 0xf0087eec,
+ 0x9e8da8de,
+ 0xba2d0b02,
+ 0xb53f4003,
+ 0xc0017f74,
+ 0xb7c092a4,
+ 0xf2105f14,
+ 0xf210a94b,
+ 0x7740aa4d,
+ 0x88a1f310,
+ 0x921cc000,
+ 0xa9c6f048,
+ 0x0d029e6b,
+ 0x9b95c034,
+ 0xa96bda10,
+ 0x882bf310,
+ 0x12d06009,
+ 0x714cd412,
+ 0xaa69f208,
+ 0xb79f7502,
+ 0x08827e6c,
+ 0x0892d009,
+ 0xc0017848,
+ 0xb77f93a2,
+ 0xb73f7d6a,
+ 0x9eab7f74,
+ 0xa949f250,
+ 0x4002ba1b,
+ 0x048b0503,
+ 0x9b71fff4,
+ 0x92c0c001,
+ 0x5f14b720,
+ 0x405db740,
+ 0x41cdb780,
+ 0xf3107740,
+ 0xc00088a1,
+ 0xda10915c,
+ 0xb780a96b,
+ 0xe310464d,
+ 0x624388ab,
+ 0xf20812d8,
+ 0x7502aa69,
+ 0x90f2c000,
+ 0xaa69da08,
+ 0xc0007500,
+ 0xb7409222,
+ 0xb77f45cd,
+ 0xb73f7d6a,
+ 0x9eab7f74,
+ 0x4002ba1b,
+ 0x048b0503,
+ 0x9b45fff4,
+ 0x9140c000,
+ 0xa96bda10,
+ 0xe3109eab,
+ 0x0d0289ab,
+ 0x9b3fc034,
+ 0x08020301,
+ 0x7180c012,
+ 0x7d6eb79f,
+ 0x7deeb7bf,
+ 0x7e6eb7df,
+ 0x7eeeb7ff,
+ 0x8c40c002,
+ 0xa6059c22,
+ 0x6904b740,
+ 0x4003ba12,
+ 0x1e22d011,
+ 0x5904d226,
+ 0xc8309e2d,
+ 0xba13a8cd,
+ 0x9e5b4002,
+ 0x6a16d011,
+ 0x9e4d7088,
+ 0x90fcc001,
+ 0xc00074c0,
+ 0xc180921c,
+ 0xd0205a07,
+ 0x0d0201a8,
+ 0x9b11c034,
+ 0xaa25f208,
+ 0xd2246241,
+ 0xc0005943,
+ 0xd01190e0,
+ 0x9ea20e22,
+ 0x4003ba12,
+ 0x5f0cb720,
+ 0x0a10d091,
+ 0xa882d208,
+ 0xb3127282,
+ 0xc000485a,
+ 0xb72090da,
+ 0xc8124fb1,
+ 0x9e507282,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xb720a605,
+ 0xb7205c94,
+ 0xb700404d,
+ 0x74446014,
+ 0x1e00d051,
+ 0x4442b340,
+ 0xb7209e4d,
+ 0x9e5c43ca,
+ 0x4003ba12,
+ 0x7c7edffc,
+ 0x4002ba1b,
+ 0x4002ba12,
+ 0x9102c000,
+ 0xfff40481,
+ 0x9e829ba4,
+ 0x4003ba12,
+ 0xaa25d288,
+ 0xc0007502,
+ 0xb78091c4,
+ 0xd2085c0c,
+ 0x7440a881,
+ 0x90e4c000,
+ 0x0e24d011,
+ 0xba129ea2,
+ 0xd2884003,
+ 0x7502aa29,
+ 0x90e4c000,
+ 0x0e22d011,
+ 0xba129ea2,
+ 0xda484003,
+ 0x9e52aa39,
+ 0x08c8d011,
+ 0xc0007082,
+ 0x9e8a90fc,
+ 0x4003ba12,
+ 0x9140c000,
+ 0x1a109e51,
+ 0xba247048,
+ 0xb3244002,
+ 0x9ea24836,
+ 0x5f0cb720,
+ 0x4f29b780,
+ 0x12289e52,
+ 0xba129ea2,
+ 0x76844003,
+ 0xc0009e89,
+ 0x0d0a90bc,
+ 0x90e0c000,
+ 0x857b76bb,
+ 0x487ab322,
+ 0xb7409dcb,
+ 0xe2104f59,
+ 0xd09180ad,
+ 0x9e8a0e10,
+ 0xaa01d208,
+ 0x4003ba12,
+ 0x70489e51,
+ 0x445ab342,
+ 0x90fac000,
+ 0x4fc9b780,
+ 0xc8129ea1,
+ 0x9e507282,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xdffca61d,
+ 0xc0007efe,
+ 0xb7809204,
+ 0xb7c05e0c,
+ 0xda086014,
+ 0xda08aa99,
+ 0xf208ab11,
+ 0xda08aa86,
+ 0xc000ab95,
+ 0xb78091c0,
+ 0xb7c05e0c,
+ 0xda485f94,
+ 0xda48aa8d,
+ 0xf208ab05,
+ 0xda48aa9a,
+ 0xc008ab89,
+ 0xc0007540,
+ 0x9eab91dc,
+ 0x9937fff4,
+ 0xc2009e81,
+ 0xc20052a3,
+ 0xc2005343,
+ 0xc20053e3,
+ 0xb74056a7,
+ 0xd2a66484,
+ 0x9e2d5904,
+ 0xa8cdc830,
+ 0xaa51da10,
+ 0x63f36363,
+ 0x651cb740,
+ 0xda100a04,
+ 0x9e89a251,
+ 0xda109d47,
+ 0xc210aa55,
+ 0x66d3a925,
+ 0xf310856e,
+ 0x9e918821,
+ 0x4002ba2c,
+ 0x56a7c200,
+ 0x7748c00c,
+ 0x534bc200,
+ 0x53ebc200,
+ 0x927cc001,
+ 0x7580c100,
+ 0xc07e9e6b,
+ 0xb3640a7e,
+ 0xd2264438,
+ 0xc2805114,
+ 0xe2205d87,
+ 0x0d0281af,
+ 0x9a07c034,
+ 0xa943f210,
+ 0x618ed032,
+ 0xa9d1da10,
+ 0x81afe220,
+ 0xba1b0d02,
+ 0xf2104002,
+ 0xc034a1c2,
+ 0x755e99f8,
+ 0xa045f210,
+ 0x1a50d04d,
+ 0x5213d01a,
+ 0x90dac000,
+ 0xf3108542,
+ 0x52108823,
+ 0xa245f210,
+ 0xda108506,
+ 0xb79fa15f,
+ 0xb7bf7e6e,
+ 0xb7df7eee,
+ 0xb7ff7f6e,
+ 0xc0027fee,
+ 0x9c228c00,
+ 0x76c0a60d,
+ 0x5b94b7a0,
+ 0x92a2c001,
+ 0x5e0cb7a0,
+ 0xaa2dda48,
+ 0xc0007500,
+ 0x0d8690a2,
+ 0x9b60fff4,
+ 0xaa39da08,
+ 0xc0007500,
+ 0x0d8290a2,
+ 0x9b58fff4,
+ 0xa8a1da48,
+ 0xaa29da10,
+ 0xc0007048,
+ 0xda089382,
+ 0xfff4ab3d,
+ 0xb78099f1,
+ 0xf2085c8c,
+ 0xd210a881,
+ 0xb720aaa1,
+ 0x74425f14,
+ 0x4f49b5a0,
+ 0x9eaa9e83,
+ 0x4002ba1e,
+ 0xfff40916,
+ 0xba009ab9,
+ 0xd2104002,
+ 0xd210a021,
+ 0xb79fa821,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0x9c229c22,
+ 0x4002ba1b,
+ 0x5887d1a4,
+ 0x9e489e5a,
+ 0x52200886,
+ 0x70881a04,
+ 0x907cc001,
+ 0x08029e4c,
+ 0xd0117008,
+ 0x50b01a32,
+ 0x91d6c000,
+ 0xc0007844,
+ 0xd01191a4,
+ 0xba040a02,
+ 0x9e4c4002,
+ 0x58877008,
+ 0x92d8ffff,
+ 0x9c220802,
+ 0xba001030,
+ 0x9c224002,
+ 0x5907d1a6,
+ 0x8821e210,
+ 0x4002ba00,
+ 0xd0119c22,
+ 0x08021e12,
+ 0x50b07008,
+ 0x91f6c000,
+ 0x78449ea1,
+ 0x9204ffff,
+ 0x0a02d011,
+ 0x4002ba04,
+ 0x70089e4c,
+ 0xffff5887,
+ 0x080692d8,
+ 0xb7009c22,
+ 0xb7405c94,
+ 0x9db946dc,
+ 0x15b4c001,
+ 0x802ff210,
+ 0x0c827500,
+ 0x46ccb580,
+ 0x9196c000,
+ 0x620cb720,
+ 0x40bdb740,
+ 0x8021f310,
+ 0x46d4b520,
+ 0x40adb580,
+ 0xa941d010,
+ 0xc0057480,
+ 0xb7209384,
+ 0x850646d4,
+ 0xa14bd010,
+ 0x404cb780,
+ 0xc0017502,
+ 0xc0021494,
+ 0xb7209344,
+ 0xb7605b8c,
+ 0xd1a643ad,
+ 0x9e485910,
+ 0x8827f210,
+ 0x5a13c200,
+ 0x9e8b7008,
+ 0x5f14b700,
+ 0x9276c004,
+ 0xaa65f050,
+ 0xc0007008,
+ 0xb7209178,
+ 0xd3f14ec8,
+ 0x75062a1e,
+ 0x9334c003,
+ 0x93a0c003,
+ 0x6a39d031,
+ 0xc2009e49,
+ 0x70485a13,
+ 0x9178c000,
+ 0x4ec8b720,
+ 0x2a1ed3f1,
+ 0xc0037504,
+ 0xc0039114,
+ 0xd0319180,
+ 0x9e486a37,
+ 0x5a13c200,
+ 0xc0007008,
+ 0xb7209178,
+ 0xd3f14ec8,
+ 0x75022a1e,
+ 0x92f4c002,
+ 0x9360c002,
+ 0x6a3dd011,
+ 0xc2009e49,
+ 0x70485a13,
+ 0x9338c002,
+ 0x0cb4d0b1,
+ 0x4e58b740,
+ 0x4029b780,
+ 0x4ec8b720,
+ 0x8021f310,
+ 0xc0027048,
+ 0xc0029018,
+ 0xb7209080,
+ 0xb7605b8c,
+ 0xd1a643ad,
+ 0x9e485910,
+ 0x8827f210,
+ 0x5a13c200,
+ 0x9e8b7008,
+ 0x5f14b700,
+ 0x9376c001,
+ 0xaa65f050,
+ 0xfffe7008,
+ 0xd0319196,
+ 0x9e496a37,
+ 0x5a13c200,
+ 0xc0007048,
+ 0xb78091b8,
+ 0xc01c4ec8,
+ 0xc0017d3e,
+ 0x0a049004,
+ 0x4ec8b580,
+ 0x9060c001,
+ 0xc1809e48,
+ 0x70085a07,
+ 0x9378c000,
+ 0x0cb4d0b1,
+ 0x4e58b740,
+ 0x4029b780,
+ 0x4ec8b720,
+ 0x8021f310,
+ 0xc0007048,
+ 0xd0119116,
+ 0xb5800a12,
+ 0xc0004ec8,
+ 0xd0109140,
+ 0xb540a149,
+ 0xc0004ec8,
+ 0xd0109080,
+ 0xd810a149,
+ 0xb720aa75,
+ 0x1a04424c,
+ 0xb3407048,
+ 0x850248a4,
+ 0xa14bd010,
+ 0xd0109c22,
+ 0x9c22a0ca,
+ 0x2dfcc00e,
+ 0x6cbbd331,
+ 0x1e36d011,
+ 0x704858a1,
+ 0x4002ba24,
+ 0x443cb314,
+ 0xd1a20089,
+ 0x74425e04,
+ 0x0d8c870a,
+ 0x449ab312,
+ 0xd0129e59,
+ 0xc0047102,
+ 0xb7207500,
+ 0x857e5f14,
+ 0x4478b342,
+ 0x4fc1b540,
+ 0x0c80c002,
+ 0x4059b540,
+ 0xa6059c22,
+ 0xac7dc030,
+ 0x5b8cb7a0,
+ 0xc0389d59,
+ 0xc030a45d,
+ 0xc038ac7d,
+ 0xc030a45d,
+ 0xc038ac7d,
+ 0x0d82a45d,
+ 0x0982c002,
+ 0x9aaafff4,
+ 0x7c3edffc,
+ 0xa9aada08,
+ 0xd0020a02,
+ 0xb7200a42,
+ 0x09ba618c,
+ 0x0aacc002,
+ 0xd2088506,
+ 0xb540a221,
+ 0xfff440b9,
+ 0xb7209a97,
+ 0xd1315f14,
+ 0xd1710e14,
+ 0xd1310c94,
+ 0xda080d1c,
+ 0xd171a001,
+ 0x85020e1c,
+ 0x402bb500,
+ 0xa143d808,
+ 0x0886c001,
+ 0xa103da08,
+ 0x48cdb520,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0x5c8cb720,
+ 0x412db780,
+ 0xb5408502,
+ 0x0a04413b,
+ 0x412db580,
+ 0xa61d9c22,
+ 0x5f0cb720,
+ 0x422db780,
+ 0xb7c09e8d,
+ 0x76c45b8c,
+ 0xb5800a04,
+ 0xc000422d,
+ 0x85029124,
+ 0xa133f210,
+ 0xaa55da08,
+ 0xa235f210,
+ 0x5c8cb780,
+ 0x9ea676c4,
+ 0xa182f208,
+ 0x9124c009,
+ 0xa956da08,
+ 0x620cb740,
+ 0xd2d08502,
+ 0xd290a133,
+ 0xf208a14b,
+ 0xf008aa4d,
+ 0xf310a947,
+ 0x00898021,
+ 0x58ffd224,
+ 0xa0d1f808,
+ 0xaa45f248,
+ 0x8021f310,
+ 0xd2240089,
+ 0xf80858ff,
+ 0xf808a0c9,
+ 0xf248a0cd,
+ 0xe220a8cd,
+ 0x9e4b80a3,
+ 0xc0800d10,
+ 0x70c85a07,
+ 0xf0080385,
+ 0xc000a0c6,
+ 0xd0a69256,
+ 0xf2105908,
+ 0xc2008023,
+ 0x70c85a13,
+ 0xd2908506,
+ 0xc000a14b,
+ 0xd2d090d6,
+ 0xf208a133,
+ 0xf208a265,
+ 0x9e53a9e6,
+ 0xc0140d02,
+ 0xf2109ba4,
+ 0x7502aa49,
+ 0xa035f250,
+ 0x92f4c001,
+ 0x0ae4d0b1,
+ 0xaa21d208,
+ 0xc0017500,
+ 0xda109202,
+ 0xe200aa49,
+ 0xc0005a40,
+ 0xda509262,
+ 0xc200a95f,
+ 0xf3105a45,
+ 0xda108021,
+ 0xda50a9c9,
+ 0xda50a25d,
+ 0x0d02a9de,
+ 0x9b81c014,
+ 0xa05dda50,
+ 0xaa5dda50,
+ 0xc0007530,
+ 0xf2489292,
+ 0xd226aa4d,
+ 0xf208590c,
+ 0xf310a8e5,
+ 0xc2008821,
+ 0x70485a0f,
+ 0x90fcc000,
+ 0xaa21d208,
+ 0xd2081a04,
+ 0xf250a221,
+ 0xf208aa35,
+ 0x8502a8e5,
+ 0xa15fda50,
+ 0x5908d226,
+ 0xf3107440,
+ 0xf2108021,
+ 0xc000a229,
+ 0x850290b6,
+ 0xa12bf210,
+ 0xaa59f208,
+ 0xa8a9f210,
+ 0x6a4ec002,
+ 0x5a1fc200,
+ 0xc0007048,
+ 0xf210909c,
+ 0xf248a229,
+ 0xf210a8e2,
+ 0xf208a8a9,
+ 0x9e4aaa79,
+ 0x7044c412,
+ 0x7102d010,
+ 0xa229f210,
+ 0xa221f210,
+ 0xa8c1dac8,
+ 0xc0007446,
+ 0xd0d19174,
+ 0xb78008e0,
+ 0x1a084029,
+ 0x294ed3f1,
+ 0x9060c000,
+ 0xf210090a,
+ 0x7642a8ca,
+ 0xd0090882,
+ 0x74b80892,
+ 0xd0090a02,
+ 0x78480a42,
+ 0xb3250af2,
+ 0x76424422,
+ 0x90f4c000,
+ 0xfff49eab,
+ 0xc0009a9f,
+ 0xd0919140,
+ 0x850a0e50,
+ 0xa13fd2d0,
+ 0xd208857e,
+ 0xd2d0a103,
+ 0x7502aa31,
+ 0x9164c000,
+ 0x0a64d0b1,
+ 0xa881d208,
+ 0xd0017440,
+ 0xd3e10a54,
+ 0xd2902ace,
+ 0x7502aa49,
+ 0x0a54d001,
+ 0x2aced3e1,
+ 0x0cd0d091,
+ 0x4029b780,
+ 0xc0007148,
+ 0xd2d090f2,
+ 0x7148aa3d,
+ 0x9068c000,
+ 0xdac80289,
+ 0x10d8aa41,
+ 0xc000747d,
+ 0xd0d19136,
+ 0xb78008e0,
+ 0x1a084029,
+ 0x9140c000,
+ 0xc0007444,
+ 0xd0d1913c,
+ 0xb78008e0,
+ 0x0a084029,
+ 0x2aced3f1,
+ 0x0cd0d091,
+ 0x4029b780,
+ 0xc0007148,
+ 0xd2d090f2,
+ 0x7148aa3d,
+ 0x9068c000,
+ 0xd2d00289,
+ 0xd208a2b9,
+ 0xc009a2c1,
+ 0xb7a090c0,
+ 0xf250620c,
+ 0xf210aa3d,
+ 0xf210a933,
+ 0xf20aa8b9,
+ 0xf210a920,
+ 0xf208a9b5,
+ 0xf210a9a6,
+ 0xf31089a3,
+ 0xf2508a21,
+ 0x0d02abba,
+ 0xa221f208,
+ 0x9aa7c014,
+ 0xa957f250,
+ 0xaa21f208,
+ 0xa94cf20a,
+ 0x8821f310,
+ 0xa8baf208,
+ 0x5a07c200,
+ 0x8a21f310,
+ 0xa921f248,
+ 0xd0120882,
+ 0x00087102,
+ 0x58070804,
+ 0x7004c012,
+ 0xc4109e82,
+ 0x75c27244,
+ 0xa0aaf210,
+ 0x901cc001,
+ 0xa9c9da08,
+ 0x0d02058f,
+ 0x9a81c014,
+ 0x0a66d0b1,
+ 0xa900d20a,
+ 0x8ea2e011,
+ 0xba001002,
+ 0x000e4002,
+ 0x4002ba00,
+ 0x8536741c,
+ 0x4478b302,
+ 0xa8c9da08,
+ 0x8c22f011,
+ 0x8221f310,
+ 0x63c2d032,
+ 0xa92bf210,
+ 0xaa35f250,
+ 0x88afe310,
+ 0x5a1bc200,
+ 0xf2107048,
+ 0xb425a0a1,
+ 0xda084658,
+ 0x5dc0a9ca,
+ 0x05f65dc5,
+ 0xa1b2f250,
+ 0xa9c9da08,
+ 0xc0140d02,
+ 0xf2109a50,
+ 0x7502aa49,
+ 0xa031f250,
+ 0x90f2c000,
+ 0xaa49da10,
+ 0xc0017500,
+ 0xb72092c2,
+ 0xb780618c,
+ 0x75004129,
+ 0xc0010383,
+ 0xf2489344,
+ 0x7500aa29,
+ 0xa841dac8,
+ 0x919cc000,
+ 0xa9a1f210,
+ 0x9e816009,
+ 0x5987d1a4,
+ 0x05960d02,
+ 0x9a2bc014,
+ 0xa8c2dac8,
+ 0xe0009e4a,
+ 0x12201084,
+ 0x442cb314,
+ 0xc0007504,
+ 0xdac890da,
+ 0xc000a041,
+ 0x9e4b9340,
+ 0xc00070c0,
+ 0xd01190dc,
+ 0xc0001e14,
+ 0xd0119200,
+ 0xc0000e14,
+ 0xdac89180,
+ 0xdac8a943,
+ 0xf310aa45,
+ 0xb7e08021,
+ 0xc200618c,
+ 0xdac85a07,
+ 0xd208a241,
+ 0x7500aa69,
+ 0x9204c000,
+ 0xaa41dac8,
+ 0xc000753e,
+ 0x857e90b4,
+ 0x90c0c000,
+ 0xc0007500,
+ 0x850690a4,
+ 0xa143dac8,
+ 0xaa49f210,
+ 0xc0007502,
+ 0xda1090f2,
+ 0x7500aa49,
+ 0x91e2c000,
+ 0xaa69d208,
+ 0xc0007500,
+ 0xd0d19244,
+ 0xd2080a60,
+ 0xfff4a982,
+ 0xc0009965,
+ 0xd0919140,
+ 0x850a0e50,
+ 0xa13fd2d0,
+ 0xd208857e,
+ 0xd2d0a103,
+ 0x7502aa31,
+ 0x91c4c000,
+ 0x0a64d0b1,
+ 0xa881d208,
+ 0xc0007440,
+ 0xdac890e4,
+ 0x0a08aa41,
+ 0xa241dac8,
+ 0x0a60d0d1,
+ 0xa881d208,
+ 0x0e50d091,
+ 0xd2080884,
+ 0xd208a0c1,
+ 0xd3f1a882,
+ 0xc00e2e1e,
+ 0x704828fc,
+ 0x9132c000,
+ 0xa8bed2d0,
+ 0x2e1ed3f1,
+ 0xc0007048,
+ 0xd2089088,
+ 0xf210a0c2,
+ 0xd208a923,
+ 0xf310a8c1,
+ 0xd2d0802f,
+ 0xf210a0b9,
+ 0x8502a229,
+ 0x0e50d131,
+ 0x0cd8d131,
+ 0xa123f290,
+ 0xa103da08,
+ 0x0e50d171,
+ 0x403bb540,
+ 0xa133f290,
+ 0xa103da08,
+ 0x0e58d171,
+ 0xa8b9d2d0,
+ 0xa103da08,
+ 0xa12ff210,
+ 0xa127f210,
+ 0xa0d9da50,
+ 0xaa41d208,
+ 0xa24dda10,
+ 0x7e6eb79f,
+ 0x7eeeb7bf,
+ 0x7f6eb7df,
+ 0x7feeb7ff,
+ 0x8c00c002,
+ 0xa60d9c22,
+ 0x5f0cb780,
+ 0xa90ff208,
+ 0x5604b740,
+ 0x5b8cb740,
+ 0x81afe220,
+ 0x5c94b720,
+ 0xa18ef208,
+ 0xa8c1f048,
+ 0x8327e020,
+ 0x46ddb740,
+ 0x70029e50,
+ 0x80afe210,
+ 0x03090982,
+ 0x02850683,
+ 0x5614b540,
+ 0x9158c000,
+ 0xaa2df208,
+ 0x5904d226,
+ 0x89a3e210,
+ 0x91e0c000,
+ 0xaa29da10,
+ 0xa8adf208,
+ 0xd0330a08,
+ 0x72b56142,
+ 0x882df210,
+ 0x4436b334,
+ 0x74c00189,
+ 0x91fcc000,
+ 0x618cb720,
+ 0x0a3ed071,
+ 0x5997c200,
+ 0xb5408506,
+ 0xb56041b9,
+ 0xc00040ad,
+ 0xb7809140,
+ 0x8502618c,
+ 0xa10fd208,
+ 0xf2088502,
+ 0xb7c0a107,
+ 0xda085e14,
+ 0xf250a9aa,
+ 0xda08a94f,
+ 0x5dc0a9a9,
+ 0xe2205dc9,
+ 0x0d0281af,
+ 0x9913c014,
+ 0xa021dac8,
+ 0xa8a1f210,
+ 0x09d0d0d1,
+ 0xaa61d008,
+ 0xa946f208,
+ 0xd2087444,
+ 0xf208a221,
+ 0xc000a142,
+ 0xf21093a4,
+ 0x7502aa29,
+ 0x9244c000,
+ 0x620cb7a0,
+ 0xaa55f248,
+ 0xf2480996,
+ 0x0d02a9aa,
+ 0x5a0bc200,
+ 0xa259f248,
+ 0x98efc014,
+ 0xa029f248,
+ 0xaa5df210,
+ 0xa249f248,
+ 0x9360c000,
+ 0xaa41f250,
+ 0xa259f248,
+ 0xa8def210,
+ 0xa93fda50,
+ 0xaa61d808,
+ 0x620cb740,
+ 0xa0cef248,
+ 0xa8a9da10,
+ 0x8021f310,
+ 0xa14af048,
+ 0xa23dda50,
+ 0xda100884,
+ 0xb79fa0a9,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0xa61d9c22,
+ 0xb7808420,
+ 0xf2085f0c,
+ 0x9d39a895,
+ 0xf2081884,
+ 0xd018a095,
+ 0xb720a8ca,
+ 0x85825c8c,
+ 0x9d997642,
+ 0x48a1b760,
+ 0x9144c000,
+ 0xa183f208,
+ 0xa18ef208,
+ 0xa0c6d080,
+ 0x9140c000,
+ 0x5f0cb700,
+ 0x422cb780,
+ 0xa1c7d080,
+ 0x432cb580,
+ 0x5f0cb720,
+ 0x5b8cb780,
+ 0x6214b7e0,
+ 0x41adb7e0,
+ 0xa98df208,
+ 0xab71fa10,
+ 0x0089123e,
+ 0x58ffd224,
+ 0xaae9fa10,
+ 0x0362e000,
+ 0xd0030762,
+ 0xe0000f62,
+ 0x06d202d2,
+ 0x0ed2d003,
+ 0x5e0cd2a2,
+ 0x58f5c280,
+ 0x3118d020,
+ 0x590cc280,
+ 0x112ae000,
+ 0xd003152a,
+ 0xc1001d22,
+ 0x9e585df4,
+ 0x9ebb9dcb,
+ 0x5a0dc100,
+ 0xb7843088,
+ 0x9d684e08,
+ 0xa967f210,
+ 0x75020003,
+ 0x587fd0a4,
+ 0x89a7f310,
+ 0x4c24b333,
+ 0x7f64b55f,
+ 0xa371fa10,
+ 0xa2e9fa10,
+ 0xa06dfa10,
+ 0xa3e5f210,
+ 0x9b05ffd4,
+ 0x7f64b75f,
+ 0xaa41f000,
+ 0xc0007504,
+ 0xb7209244,
+ 0xf0405b8c,
+ 0xb760a9d6,
+ 0x0d0242ab,
+ 0xa1e2f210,
+ 0xc0141984,
+ 0xb7809844,
+ 0xf2485f0c,
+ 0xb700a01d,
+ 0x85025f0c,
+ 0x41bcb540,
+ 0x7deeb79f,
+ 0x7e6eb7bf,
+ 0x7eeeb7df,
+ 0x7f6eb7ff,
+ 0x8c20c002,
+ 0xb7209c22,
+ 0xd8105b94,
+ 0xf010a876,
+ 0xb500a96f,
+ 0xf01042d3,
+ 0xb740a96d,
+ 0xb7805c94,
+ 0xb76041cd,
+ 0xb540620c,
+ 0xd81041cd,
+ 0xf310a8c9,
+ 0xd0138821,
+ 0xf00a1d02,
+ 0xe210a964,
+ 0x624388a3,
+ 0xa96df050,
+ 0x8221f310,
+ 0xa265f008,
+ 0x45cdb540,
+ 0xaa71f010,
+ 0x424db580,
+ 0xa8f5f010,
+ 0x42cdb520,
+ 0xc0089c22,
+ 0x9e5874c0,
+ 0xc0009e52,
+ 0xd00290fc,
+ 0x1a1470c0,
+ 0x501351f3,
+ 0x7400c005,
+ 0x90fcc000,
+ 0x7000d002,
+ 0x50131a50,
+ 0xb7400128,
+ 0xb7806484,
+ 0xd1a6650c,
+ 0x9e2d5904,
+ 0xa8e5c040,
+ 0xaa4dc830,
+ 0x60097044,
+ 0x1214d01d,
+ 0x5013d01a,
+ 0x48bab340,
+ 0x50101222,
+ 0x00009c22,
+ 0x87c2c809,
+ 0x0c20b060,
+ 0x87c2c809,
+ 0x0a60b060,
+ 0x87c2c809,
+ 0x09c0b060,
+};
+
+unsigned long aui32H263CBR_MasterMTXTOPAZFWData[] = {
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000044,
+ 0x00000090,
+ 0x00000000,
+ 0x00000001,
+ 0x00000000,
+ 0x00000000,
+ 0x809000b0,
+ 0x80900374,
+ 0x82884e34,
+ 0x82884934,
+ 0x82884944,
+ 0x828849e4,
+ 0x82884850,
+ 0x82884898,
+ 0x828848a6,
+ 0x828848a0,
+ 0x82884a14,
+ 0x82884a3e,
+ 0x82884a50,
+ 0x82884a88,
+ 0x82884a8c,
+ 0x82884abc,
+ 0x82884aec,
+ 0x82884b14,
+ 0x82884b54,
+ 0x82884b64,
+ 0x82884b74,
+ 0x8288490c,
+ 0x82884b7c,
+ 0x82884b88,
+ 0x82884bb8,
+ 0x82884bc0,
+ 0x82884bf4,
+ 0x828851bc,
+ 0x828850f6,
+ 0x82885178,
+ 0x82884df4,
+ 0x82884efc,
+ 0x82884f3c,
+ 0x82884f40,
+ 0x82884f48,
+ 0x82884fa4,
+ 0x82885000,
+ 0x828850b8,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x809007c8,
+ 0x809007c8,
+ 0x809026b8,
+ 0x80902138,
+ 0x8090434c,
+ 0x80902aa4,
+ 0x80902460,
+ 0x809007c8,
+ 0x809007c8,
+ 0x809007c8,
+ 0x809007c8,
+ 0x809007c8,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0xa0101100,
+ 0xa01001b0,
+ 0xa0101102,
+ 0xa01001b2,
+ 0xa0101104,
+ 0xa0100124,
+ 0xa0101106,
+ 0xa0100126,
+ 0xa0100134,
+ 0x00000000,
+ 0xa0101120,
+ 0xa0100136,
+ 0xa0101122,
+ 0xa0100144,
+ 0x80101160,
+ 0x80101162,
+ 0x80101180,
+ 0x80101182,
+ 0x80100140,
+ 0x80100142,
+ 0x80100150,
+ 0x80100152,
+ 0x80100154,
+ 0x80100146,
+ 0x803003a0,
+ 0x80100100,
+ 0x80105156,
+ 0xa0101164,
+ 0xa0100184,
+ 0x80101194,
+ 0x801001b4,
+ 0x80100146,
+ 0x00000000,
+ 0x00000003,
+ 0x00000002,
+ 0x00000002,
+ 0x00000001,
+ 0x00000001,
+ 0x00000001,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000005,
+ 0x000f9400,
+ 0x000f9401,
+ 0x000fd403,
+ 0x000fd40b,
+ 0x000fd41b,
+ 0x000ffc1b,
+ 0x000ffc1b,
+ 0x000ff81b,
+ 0x0000681b,
+ 0x0000681a,
+ 0x0000281a,
+ 0x00002810,
+ 0x00002800,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00010001,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00260019,
+ 0x003f0032,
+ 0x0058004b,
+ 0x00710064,
+ 0x008a007d,
+ 0x00a30096,
+ 0x00bc00af,
+ 0x00d500c8,
+ 0x00ee00e1,
+ 0x010700fa,
+ 0x01070107,
+ 0x01070107,
+ 0x01070107,
+ 0x01070107,
+ 0x01070107,
+ 0x00000107,
+ 0x00200040,
+ 0x001002ab,
+ 0x015500cd,
+ 0x00080249,
+ 0x00cd01c7,
+ 0x0155005d,
+ 0x0249013b,
+ 0x00040111,
+ 0x01c700f1,
+ 0x00cd01af,
+ 0x005d00c3,
+ 0x01550059,
+ 0x013b0029,
+ 0x0249025f,
+ 0x01110235,
+ 0x00020021,
+ 0x00f1001f,
+ 0x01c70075,
+ 0x01af006f,
+ 0x00cd0069,
+ 0x00c30019,
+ 0x005d017d,
+ 0x0059005b,
+ 0x015502b9,
+ 0x002900a7,
+ 0x013b0283,
+ 0x025f0135,
+ 0x02490095,
+ 0x0235023f,
+ 0x0111008b,
+ 0x00210219,
+ 0x00010041,
+ 0x0b060600,
+ 0x0c0b0a06,
+ 0x0a0b0c06,
+ 0x0c0d0c0c,
+ 0x0d0d0c06,
+ 0x0b0b0c0c,
+ 0x0e0d0a0d,
+ 0x0a0d0e0e,
+ 0x0c0d0a06,
+ 0x0c0e0c0e,
+ 0x0e0d0a0d,
+ 0x0f0c0c0c,
+ 0x0f0b0d0e,
+ 0x0d0f0e0e,
+ 0x0d0f0f0f,
+ 0x0c0b0f0e,
+ 0x00000006,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x1234baac,
+ 0x00000000,
+};
+
+unsigned long aui32H263CBR_MasterMTXTOPAZFWTextReloc[] = {
+ 0
+};
+
+unsigned char aui8H263CBR_MasterMTXTOPAZFWTextRelocType[] = {
+ 0
+};
+
+unsigned long aui32H263CBR_MasterMTXTOPAZFWTextRelocFullAddr[] = {
+ 0
+};
+
+unsigned long aui32H263CBR_MasterMTXTOPAZFWDataReloc[] = {
+ 0
+};
diff --git a/fw/H263MasterFirmwareCBR_bin.h b/fw/H263MasterFirmwareCBR_bin.h
new file mode 100644
index 0000000..c98b596
--- /dev/null
+++ b/fw/H263MasterFirmwareCBR_bin.h
@@ -0,0 +1,44 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+
+// This file was automatically generated from ../release/H263MasterFirmwareCBR.dnl using dnl2c.
+
+extern unsigned long aui32H263CBR_MasterMTXTOPAZFWText[];
+extern unsigned long ui32H263CBR_MasterMTXTOPAZFWTextSize;
+
+extern unsigned long aui32H263CBR_MasterMTXTOPAZFWData[];
+extern unsigned long ui32H263CBR_MasterMTXTOPAZFWDataSize;
+
+extern unsigned long aui32H263CBR_MasterMTXTOPAZFWTextReloc[];
+extern unsigned char aui8H263CBR_MasterMTXTOPAZFWTextRelocType[];
+extern unsigned long aui32H263CBR_MasterMTXTOPAZFWTextRelocFullAddr[];
+
+extern unsigned long aui32H263CBR_MasterMTXTOPAZFWDataReloc[];
+extern unsigned long ui32H263CBR_MasterMTXTOPAZFWDataRelocSize;
+
+extern unsigned long ui32H263CBR_MasterMTXTOPAZFWTextOrigin;
+extern unsigned long ui32H263CBR_MasterMTXTOPAZFWDataOrigin;
+
diff --git a/fw/H263MasterFirmwareVBR_bin.c b/fw/H263MasterFirmwareVBR_bin.c
new file mode 100644
index 0000000..0799f0a
--- /dev/null
+++ b/fw/H263MasterFirmwareVBR_bin.c
@@ -0,0 +1,5378 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+
+// This file was automatically generated from ../release/H263MasterFirmwareVBR.dnl using dnl2c.
+
+unsigned char *szH263MasterFirmwareVBR_buildtag = "BUILD_TOPAZ_SC_1_00_00_0318";
+
+unsigned long ui32H263VBR_MasterMTXTOPAZFWTextSize = 4597;
+unsigned long ui32H263VBR_MasterMTXTOPAZFWDataSize = 722;
+unsigned long ui32H263VBR_MasterMTXTOPAZFWTextRelocSize = 0;
+unsigned long ui32H263VBR_MasterMTXTOPAZFWDataRelocSize = 0;
+
+unsigned long ui32H263VBR_MasterMTXTOPAZFWTextOrigin = 0x80900000;
+unsigned long ui32H263VBR_MasterMTXTOPAZFWDataOrigin = 0x82884800;
+
+unsigned long aui32H263VBR_MasterMTXTOPAZFWText[] = {
+ 0x9040c001,
+ 0xc80993fe,
+ 0xc0000e42,
+ 0xc8290e00,
+ 0xc5348422,
+ 0xc8298420,
+ 0xc4808622,
+ 0x9e838600,
+ 0xc8099e43,
+ 0xc8f80d42,
+ 0xc8090d20,
+ 0xc8f80942,
+ 0xc8090960,
+ 0xc00a0e42,
+ 0xc8090e40,
+ 0xc00e87c2,
+ 0x9c1887d0,
+ 0x0c020802,
+ 0x09820d82,
+ 0x09020d02,
+ 0x08820c82,
+ 0x9320fffe,
+ 0xa401c838,
+ 0x0dc2c809,
+ 0x0de0c8f6,
+ 0x0e42c809,
+ 0x0b46b080,
+ 0x7e74b77f,
+ 0xa48d0882,
+ 0xffff9ff3,
+ 0x9d1393e0,
+ 0xf8398081,
+ 0x0707a205,
+ 0x06850307,
+ 0x03839e97,
+ 0x0fa0060f,
+ 0x018d058d,
+ 0x9c62008f,
+ 0x9340ffff,
+ 0x0ea0060b,
+ 0xffff9c62,
+ 0x058d93a0,
+ 0xb700018d,
+ 0xb780568c,
+ 0x9c015614,
+ 0x0687a605,
+ 0x0ea0060b,
+ 0xffff9c62,
+ 0xf9f893a0,
+ 0xf9f8aa9d,
+ 0x9c22aa1d,
+ 0xa6059c22,
+ 0x85028420,
+ 0xb55f0a82,
+ 0x850a7f7c,
+ 0x9c89c037,
+ 0x9c80c971,
+ 0x75002a08,
+ 0x9184c000,
+ 0x997dc014,
+ 0x460cb780,
+ 0xc0007500,
+ 0x0d8290a4,
+ 0x990ec054,
+ 0x7f6cb79f,
+ 0xc0007500,
+ 0xc05490e4,
+ 0x0d8a9916,
+ 0x9904c054,
+ 0x8d80e032,
+ 0x99b6c014,
+ 0x0800e000,
+ 0x91c4c000,
+ 0x9ac0c014,
+ 0x460cb780,
+ 0x2a797402,
+ 0x460cb580,
+ 0x90e4c000,
+ 0x9100c000,
+ 0xc0149e83,
+ 0x75409a33,
+ 0x9162fffe,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x9c228c60,
+ 0x85028702,
+ 0x7818b543,
+ 0x7898b543,
+ 0x7918b543,
+ 0x7c18b543,
+ 0x7c98b543,
+ 0x7d18b543,
+ 0x4118b544,
+ 0x4198b544,
+ 0x4218b544,
+ 0x4818b544,
+ 0x4884b540,
+ 0x4904b540,
+ 0x4984b540,
+ 0x4a04b540,
+ 0x4a84b540,
+ 0x4c84b540,
+ 0x4d04b540,
+ 0x4d84b540,
+ 0x4202b540,
+ 0x4282b540,
+ 0x5084b540,
+ 0x7e84b540,
+ 0x4f04b540,
+ 0x4702b540,
+ 0xa6059c22,
+ 0xfff48420,
+ 0x0d8a9b87,
+ 0x98aac054,
+ 0x9bc6fff4,
+ 0x98b5c054,
+ 0x0cd2c420,
+ 0xb4810a02,
+ 0xb105c000,
+ 0x0d8a4220,
+ 0x8d80e031,
+ 0x9aebc014,
+ 0x0922c829,
+ 0x0900c534,
+ 0x7f6cb73f,
+ 0x2a5ed071,
+ 0x458cb580,
+ 0x2a80c01e,
+ 0xf0088502,
+ 0x7102a8c2,
+ 0x5a95c280,
+ 0x468cb5a0,
+ 0x4434b341,
+ 0xb5407640,
+ 0xb520461c,
+ 0xc000450c,
+ 0xd01190c2,
+ 0xf0080e12,
+ 0xb780a241,
+ 0xc807570c,
+ 0xc57008c2,
+ 0xc0320880,
+ 0xb5800caa,
+ 0xb421558c,
+ 0x0a2ac000,
+ 0xb4810cf4,
+ 0x1a28c000,
+ 0xc0020902,
+ 0xb96008ba,
+ 0xc2004078,
+ 0xd2240a00,
+ 0xb441588b,
+ 0xce00c000,
+ 0xffff0a11,
+ 0xe0009301,
+ 0xffff1884,
+ 0xc8079244,
+ 0xc5760a42,
+ 0xc0320a00,
+ 0xb4810caa,
+ 0x0a02c000,
+ 0x09020882,
+ 0xb9600884,
+ 0xc2004078,
+ 0xd2240a00,
+ 0xb441588b,
+ 0xce00c000,
+ 0xffff0a11,
+ 0xc0049301,
+ 0xffff745a,
+ 0x0a02923c,
+ 0x0c9ec034,
+ 0xc000b481,
+ 0x9b0dfff4,
+ 0xb79f0802,
+ 0xb7bf7eee,
+ 0x8c607f6e,
+ 0x9e549c22,
+ 0x0c82c040,
+ 0xb4219e59,
+ 0xc040c000,
+ 0xb4820d02,
+ 0x9c22c000,
+ 0x2d7cc00e,
+ 0x29e0c00e,
+ 0x9e545d30,
+ 0x0c82c040,
+ 0xb46131b8,
+ 0xc040c000,
+ 0xb4420d02,
+ 0x9c22c000,
+ 0x8420a60d,
+ 0x06870703,
+ 0x5c8dc280,
+ 0xd0a21c84,
+ 0x02875ca0,
+ 0x0a5ed011,
+ 0x5a0dc200,
+ 0xc2001a04,
+ 0x5cd05a30,
+ 0x9e4c3098,
+ 0xc0320405,
+ 0x30980c8a,
+ 0x3880c801,
+ 0xc000b421,
+ 0xc8019ea9,
+ 0xc0020a02,
+ 0x65530a00,
+ 0x0c8ac030,
+ 0xc000b481,
+ 0x0882c002,
+ 0xb4210c84,
+ 0x9e93c000,
+ 0x5f09d022,
+ 0x5d0d9e53,
+ 0xfff41d04,
+ 0xc2809bb4,
+ 0x1e845e91,
+ 0x5e84c280,
+ 0x1a849e6c,
+ 0x5a90c280,
+ 0x3a80c181,
+ 0x09820d8a,
+ 0x314a0d02,
+ 0x9baefff4,
+ 0x0d82c0c0,
+ 0xc0020992,
+ 0xc0020d02,
+ 0xc0340902,
+ 0x0a0a9bd4,
+ 0x0c9ec034,
+ 0xc000b481,
+ 0x75bf1b04,
+ 0xc0008502,
+ 0x9dcf9202,
+ 0x7f7cb55f,
+ 0x9ba7c034,
+ 0xa045f231,
+ 0x7f7cb75f,
+ 0x75bf1b04,
+ 0xffff8510,
+ 0xc0029284,
+ 0xc0300a42,
+ 0xb4810c8e,
+ 0xb79fc000,
+ 0xb7bf7e6e,
+ 0xb7df7eee,
+ 0xc0027f6e,
+ 0x9c228c00,
+ 0xf8399c22,
+ 0xb780a285,
+ 0x0986458c,
+ 0x0d0270c8,
+ 0x9096c001,
+ 0x4614b760,
+ 0x08020c06,
+ 0x0902c1cc,
+ 0x19c4d010,
+ 0x9e5d9e44,
+ 0x508cc200,
+ 0xc0007942,
+ 0xd1249202,
+ 0xc400588b,
+ 0xb4013c80,
+ 0xb104c000,
+ 0x9e554220,
+ 0x750230d2,
+ 0x4822b321,
+ 0xc00c9e8a,
+ 0x09840900,
+ 0x9101ffff,
+ 0x4614b540,
+ 0xaa9df9f8,
+ 0xc2009c22,
+ 0xc0378502,
+ 0xc1719c89,
+ 0xc8179c80,
+ 0x9c229c80,
+ 0xb780a605,
+ 0x9e5d460c,
+ 0xc000790a,
+ 0xfff49162,
+ 0xfff49bf0,
+ 0xb7809bbe,
+ 0x790a460c,
+ 0x9324ffff,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xc002a61d,
+ 0x9e5d8400,
+ 0xaa21f208,
+ 0xc0017500,
+ 0xc4209004,
+ 0x0a020cda,
+ 0xc000b481,
+ 0x4220b101,
+ 0xb4811c84,
+ 0xb106c000,
+ 0xb4814220,
+ 0xb107c000,
+ 0x008f4220,
+ 0xc000b481,
+ 0x4240b106,
+ 0xc000b481,
+ 0x4240b105,
+ 0x2a6ed1f1,
+ 0xb40d7516,
+ 0xf2084622,
+ 0x7480a921,
+ 0x92c2c000,
+ 0x8c80e092,
+ 0x098a0dc2,
+ 0x0d02c002,
+ 0x9b0afff4,
+ 0x7cecb7df,
+ 0x7c6cb79f,
+ 0x7d6cb7ff,
+ 0x7df4b7df,
+ 0x7e74b7bf,
+ 0xa221f208,
+ 0x5aa1c300,
+ 0x2afcc00e,
+ 0x0d869ea9,
+ 0xfff455e4,
+ 0xd3129ba3,
+ 0xc1c068d1,
+ 0x5c8b0c80,
+ 0xc000b4c1,
+ 0x6951d312,
+ 0x0d10c1c0,
+ 0xb4e25d0b,
+ 0xd312c000,
+ 0x9e7468d1,
+ 0x0ca0c1c0,
+ 0xb4815c8b,
+ 0xd312c000,
+ 0x9e6c6951,
+ 0x0d30c1c0,
+ 0xb4825d0b,
+ 0xd312c000,
+ 0x0a0268d1,
+ 0x0cc0c1c0,
+ 0xc4005c8b,
+ 0xb4813c80,
+ 0xb106c000,
+ 0xcfff4220,
+ 0xd3122b7c,
+ 0xc1c068d1,
+ 0x5c8b0cc0,
+ 0xc000b4c1,
+ 0x460cb720,
+ 0xc2000a04,
+ 0x000b5214,
+ 0xb5203098,
+ 0xb79f460c,
+ 0xb7bf7c6e,
+ 0xb7df7cee,
+ 0xb7ff7d6e,
+ 0xc0047dee,
+ 0x9c228c00,
+ 0xa205f839,
+ 0x0e30f011,
+ 0x919cc000,
+ 0x9ea10a04,
+ 0x55e40d86,
+ 0xc0343d88,
+ 0x0d8a9aaf,
+ 0x9aacc034,
+ 0xaa1df9f8,
+ 0xa6059c22,
+ 0x0a42c801,
+ 0x0a00c010,
+ 0x2ebed3f2,
+ 0x0caac032,
+ 0xc000b481,
+ 0x0cf408aa,
+ 0xc000b421,
+ 0x578cb780,
+ 0x0c92c080,
+ 0xa881f208,
+ 0xc000b421,
+ 0x578cb780,
+ 0xf2080c88,
+ 0xb421a889,
+ 0xb780c000,
+ 0x0c84578c,
+ 0xa88df208,
+ 0xc000b421,
+ 0x1c980902,
+ 0xc000b441,
+ 0x578cb780,
+ 0xf2080c90,
+ 0xb421a885,
+ 0xb7a0c000,
+ 0x0dd2578c,
+ 0x9a67c034,
+ 0xaa25f208,
+ 0xffff7008,
+ 0x0daa9344,
+ 0x0d060982,
+ 0x0902c121,
+ 0x9a4afff4,
+ 0x4794b760,
+ 0x0d02c021,
+ 0x09c20d04,
+ 0x9a37fff4,
+ 0x4794b760,
+ 0x0d0609c2,
+ 0x9a31fff4,
+ 0x09820daa,
+ 0xc1010d02,
+ 0xfff40902,
+ 0x0d929a35,
+ 0x9a43c034,
+ 0xaa25f208,
+ 0xffff7008,
+ 0x77409344,
+ 0x90a2c000,
+ 0xc0340d8e,
+ 0x0d8a9a45,
+ 0x9a42c034,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xc470a60d,
+ 0x0a020c8e,
+ 0xc000b481,
+ 0x4220b101,
+ 0x578cb780,
+ 0xa085f208,
+ 0x0a021c8c,
+ 0xc000b481,
+ 0x4220b105,
+ 0x2b5ed1f1,
+ 0x578cb780,
+ 0xcff09ead,
+ 0xc2802e80,
+ 0xf2085ea1,
+ 0xc280a281,
+ 0x2a845a9d,
+ 0x0a020c84,
+ 0xc000b481,
+ 0x4220b101,
+ 0x470cb520,
+ 0xb4810c84,
+ 0xb101c000,
+ 0xb5204220,
+ 0xc070478c,
+ 0xb4810c8e,
+ 0x0882c000,
+ 0xb4211c8c,
+ 0x0c90c000,
+ 0xc000b481,
+ 0xb4211c8c,
+ 0x0c84c000,
+ 0xc000b481,
+ 0x6484b740,
+ 0x5908d326,
+ 0xe0309e2d,
+ 0x9ea4aa4d,
+ 0xb7809c62,
+ 0x7740578c,
+ 0x9ea98502,
+ 0xd0010d82,
+ 0xf2080db2,
+ 0x2596a10f,
+ 0x9b3ffff4,
+ 0xc0700a06,
+ 0xb4810c82,
+ 0x000dc000,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x4594b760,
+ 0xc0020a7f,
+ 0x9ea18502,
+ 0x89afe220,
+ 0xfff355ad,
+ 0xc01c91a0,
+ 0xc0007ebe,
+ 0xd1a29244,
+ 0xc0905e08,
+ 0xd2240a00,
+ 0x08825909,
+ 0x3d00c400,
+ 0xc000b422,
+ 0x4220b104,
+ 0xffff7500,
+ 0xc1809364,
+ 0xc0905c88,
+ 0x5c890c80,
+ 0xc000b461,
+ 0xc1809c22,
+ 0xc0905c88,
+ 0x5c890c80,
+ 0x3c80c400,
+ 0xb4810a02,
+ 0xb101c000,
+ 0xf0084220,
+ 0x5d88a0e1,
+ 0x0d80c090,
+ 0xb4835d89,
+ 0x9c22c000,
+ 0xd3129e5b,
+ 0x0a0268b1,
+ 0x0cc0c1c0,
+ 0xc4005c8b,
+ 0xb4813c80,
+ 0xb102c000,
+ 0xb7604220,
+ 0xd3125b94,
+ 0x85026931,
+ 0xb9609e51,
+ 0xc1c04070,
+ 0xf03108e0,
+ 0xd0a4aa65,
+ 0xb4815889,
+ 0x0890c000,
+ 0xffff8510,
+ 0xc1c09301,
+ 0xe2108560,
+ 0xb76080ad,
+ 0xc0015d94,
+ 0xce3e3904,
+ 0xb9608521,
+ 0xf0314048,
+ 0xd0a4aa65,
+ 0xb4815889,
+ 0x0890c000,
+ 0xffff8510,
+ 0xe2209301,
+ 0xb780812d,
+ 0xc0015b0c,
+ 0xc1c03908,
+ 0x5d090d60,
+ 0xa885dac8,
+ 0xc000b422,
+ 0x68b1d312,
+ 0x0cc0c1c0,
+ 0xb4415c8b,
+ 0x9c22c000,
+ 0x510cb740,
+ 0x6cb1d312,
+ 0xc1c00a02,
+ 0x5c8b0cc0,
+ 0x3c80c400,
+ 0xc000b481,
+ 0x4220b101,
+ 0x6cb1d312,
+ 0x0cf0c1ca,
+ 0xb4415c8b,
+ 0xc00cc000,
+ 0xc0016d82,
+ 0xc1c038c0,
+ 0x5d8b0dc0,
+ 0xc000b423,
+ 0x84209c22,
+ 0xe0318502,
+ 0x09068d80,
+ 0x7f7cb55f,
+ 0x0cd2c472,
+ 0xb4810a02,
+ 0xb101c000,
+ 0x9e8a4220,
+ 0xc0010203,
+ 0x75002a40,
+ 0x9362c000,
+ 0x68a1d312,
+ 0xc1ca0a02,
+ 0x5c8b0cf0,
+ 0x3c80c400,
+ 0xc000b481,
+ 0x4220b101,
+ 0xa0e1f008,
+ 0x511cb740,
+ 0x7f6cb79f,
+ 0xf3109e51,
+ 0xcfff8021,
+ 0xb58028be,
+ 0xd312510c,
+ 0xc1c068a1,
+ 0x5c8b0cc0,
+ 0xc000b421,
+ 0x9c228c20,
+ 0xc006a605,
+ 0x87028420,
+ 0xc4720c06,
+ 0x0a020cd2,
+ 0xc000b481,
+ 0x4220b105,
+ 0x020b9eaa,
+ 0x2a04c001,
+ 0xc0017500,
+ 0xd31190c2,
+ 0xe1b16c81,
+ 0xb7608d00,
+ 0x09825b94,
+ 0x4070b960,
+ 0x08e0c1c0,
+ 0x5889d0a4,
+ 0x3c80c400,
+ 0xc000b461,
+ 0x4220b104,
+ 0xa245f029,
+ 0x87100890,
+ 0x9281ffff,
+ 0xa973f050,
+ 0x796cb79f,
+ 0xf3109e55,
+ 0xcfff8021,
+ 0xf0502afa,
+ 0x020ba271,
+ 0x2a08c001,
+ 0xd3127500,
+ 0xc0026e81,
+ 0xe0b19082,
+ 0xc1c08d00,
+ 0xe1108760,
+ 0xb74082a3,
+ 0x09825d94,
+ 0x4048b960,
+ 0xd0a49e93,
+ 0xc4005889,
+ 0xb4613c80,
+ 0xb104c000,
+ 0xf0294220,
+ 0x0890a245,
+ 0x92a1ffff,
+ 0x5b0cb780,
+ 0xa943f010,
+ 0xa891da08,
+ 0xaa61f010,
+ 0xa95cf012,
+ 0xa9c7f050,
+ 0x8021f310,
+ 0xa94bd850,
+ 0xd8101884,
+ 0xf010a0c9,
+ 0xb79fa241,
+ 0xb73f7b6a,
+ 0xb73f7eec,
+ 0xf3107ff4,
+ 0xe2108021,
+ 0xe22082a3,
+ 0xcfff80bb,
+ 0xd8502af6,
+ 0xf010a249,
+ 0xf050a0dd,
+ 0x020ba0c6,
+ 0x2a10c001,
+ 0xc0007500,
+ 0xc01490c2,
+ 0xcfff9838,
+ 0xc1c02aee,
+ 0xc2800ec0,
+ 0xb4a15c8b,
+ 0xb79fc000,
+ 0xb7bf78ee,
+ 0xc006796e,
+ 0x9c228c60,
+ 0x6cb1d312,
+ 0xc1c00a02,
+ 0x5c8b0cc0,
+ 0x3c80c400,
+ 0xc000b481,
+ 0x4220b103,
+ 0x5c94b740,
+ 0x6d31d311,
+ 0x4058b960,
+ 0xc1c00085,
+ 0xf03108e0,
+ 0xd0a4aa45,
+ 0xb4815889,
+ 0x0890c000,
+ 0x9321ffff,
+ 0x3990c001,
+ 0x0940c1c0,
+ 0x588bd124,
+ 0xc000b461,
+ 0xa6059c22,
+ 0x8440c002,
+ 0x5c94b740,
+ 0xc4720a86,
+ 0x08820cd2,
+ 0x8502c00c,
+ 0xc000b421,
+ 0x4220b104,
+ 0xc0010189,
+ 0x75002a10,
+ 0x9302ffff,
+ 0x8d00e0d1,
+ 0x08029d47,
+ 0x4058b960,
+ 0x08e0c1c0,
+ 0x5889d0a4,
+ 0x3c80c400,
+ 0xc000b401,
+ 0x4220b104,
+ 0xa245f029,
+ 0xffff0890,
+ 0x9dc792a1,
+ 0x29eecfff,
+ 0x0cc0c1c0,
+ 0xb4615c8b,
+ 0xf010c000,
+ 0xb79fa94b,
+ 0xf0127b6c,
+ 0xb73fa94c,
+ 0xd8107bec,
+ 0xf310a9cb,
+ 0xf0108021,
+ 0xe210a953,
+ 0xd81282a3,
+ 0xf010a94c,
+ 0xf010a249,
+ 0xb79fa0cd,
+ 0xb73f7c6c,
+ 0xb73f75ea,
+ 0xf3107572,
+ 0xe2108021,
+ 0xe22082a3,
+ 0x0d8680bb,
+ 0xa251f010,
+ 0xa0cdd810,
+ 0xa0cad810,
+ 0x9b7efff4,
+ 0x68d1d312,
+ 0xc1c00a02,
+ 0x5c8b0cc0,
+ 0x3c80c400,
+ 0xc000b481,
+ 0x4220b104,
+ 0x3a20c001,
+ 0x68d1d312,
+ 0x0cc0c1c0,
+ 0xb4815c8b,
+ 0xb79fc000,
+ 0xb7bf7c6e,
+ 0xc0047cee,
+ 0x9c228c00,
+ 0xa285f839,
+ 0xaa61f010,
+ 0xc0007500,
+ 0xd0089164,
+ 0x9e48a8c1,
+ 0xc2000a06,
+ 0x30985200,
+ 0xa0c1d008,
+ 0x0d38d011,
+ 0xa9f2d010,
+ 0x1a30f011,
+ 0xa943f010,
+ 0xc0001984,
+ 0xcff193e2,
+ 0xcff08702,
+ 0xc00f8700,
+ 0xc00e087e,
+ 0xc050087c,
+ 0xf0290c1a,
+ 0xd020a8c5,
+ 0x5ca12095,
+ 0x22109e4d,
+ 0x5a20c200,
+ 0xba0930d8,
+ 0xb4204006,
+ 0xf011c000,
+ 0x19841a30,
+ 0x91e4ffff,
+ 0x802ff210,
+ 0xa241f010,
+ 0xaa9df9f8,
+ 0xa60d9c22,
+ 0x59409e5d,
+ 0x5841f124,
+ 0x2d2ed3f1,
+ 0x4422b350,
+ 0x93e2c002,
+ 0xaa61f008,
+ 0x2a1ce000,
+ 0x4422b425,
+ 0xaa61d808,
+ 0xe2108522,
+ 0x2a1c88a9,
+ 0x9ea31218,
+ 0x0a7ec00e,
+ 0x400bba1b,
+ 0x5207c200,
+ 0xc0012128,
+ 0x9e599276,
+ 0x5a20c100,
+ 0xc2001103,
+ 0x9ea25209,
+ 0x58a1c200,
+ 0xd0319e8d,
+ 0xd2080cb0,
+ 0xc00ea8a2,
+ 0xc2002a7c,
+ 0xc00e5207,
+ 0x349a2a7c,
+ 0xa0a2d208,
+ 0xa963f008,
+ 0xd3f19ea1,
+ 0xc2012a2e,
+ 0xf3108128,
+ 0x85028821,
+ 0xa261f008,
+ 0xa127d228,
+ 0xcff09eab,
+ 0x59402d01,
+ 0x35225941,
+ 0x2d7cc00e,
+ 0x9bb1fff4,
+ 0x92e0c000,
+ 0xaa21d208,
+ 0x000b9e5e,
+ 0x324250d8,
+ 0xa205d029,
+ 0xa8e1f008,
+ 0x291ed013,
+ 0x8029f210,
+ 0x9e447510,
+ 0xf0080098,
+ 0xb350a0e1,
+ 0xb79f4426,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0xa60d9c22,
+ 0x9e690685,
+ 0x0b029e9e,
+ 0x0a867182,
+ 0x9208c000,
+ 0x16d29ea9,
+ 0xc2809e69,
+ 0xd0115a84,
+ 0x71021a52,
+ 0x08e2d011,
+ 0x2b1ed3f1,
+ 0x9286ffff,
+ 0x0a62d011,
+ 0x028d7510,
+ 0x91d4c000,
+ 0x0d029e73,
+ 0xfff40922,
+ 0x1aa09b70,
+ 0x0a52d011,
+ 0x9e837510,
+ 0x92d2ffff,
+ 0x0d069e73,
+ 0x0952d011,
+ 0x297cc00e,
+ 0x9b61fff4,
+ 0x9e837590,
+ 0x92f4c000,
+ 0x1a60d031,
+ 0x2b4ed3f1,
+ 0x9e739e6c,
+ 0x5299c200,
+ 0x295ed3f2,
+ 0xfff40922,
+ 0x9e839b50,
+ 0x52b8c200,
+ 0x75909ea9,
+ 0xffff16d2,
+ 0x9e7391b2,
+ 0x2d5ed3f2,
+ 0xfff4010d,
+ 0xb79f9b42,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0xf0119c22,
+ 0x9e990ca0,
+ 0x5a04d09a,
+ 0x1a42d00d,
+ 0x909ac000,
+ 0x12421203,
+ 0x9ea29e4b,
+ 0x9360fffc,
+ 0x8420a60d,
+ 0x9e558502,
+ 0x7f7cb55f,
+ 0x7ffcb55f,
+ 0xaa61f010,
+ 0x8c8ee011,
+ 0x1a080307,
+ 0xd226750a,
+ 0x8540590c,
+ 0x8044e05a,
+ 0x90a0c003,
+ 0x9180c000,
+ 0x92a0c000,
+ 0x93c0c000,
+ 0x9100c001,
+ 0x9200c001,
+ 0x9060c002,
+ 0x8d88e011,
+ 0xd0729e8b,
+ 0xb5a01954,
+ 0xfff4508c,
+ 0xc0029bc8,
+ 0xb7409200,
+ 0x9ea95094,
+ 0x8d88e011,
+ 0x15149e8b,
+ 0x9bbdfff4,
+ 0x90a0c002,
+ 0x8d88e011,
+ 0xd3f29e8b,
+ 0x0916295e,
+ 0x9aebfff4,
+ 0x508cb5a0,
+ 0x9320c001,
+ 0x8d88e011,
+ 0xd3f29e8b,
+ 0x0916295e,
+ 0x9adffff4,
+ 0x91e0c001,
+ 0xaa41d208,
+ 0xf0119e8b,
+ 0x4a7d8c88,
+ 0x2aced012,
+ 0x09060d06,
+ 0xfff4018b,
+ 0x9e839ad0,
+ 0x018b9e6a,
+ 0xfff40d02,
+ 0xc0009aca,
+ 0xd2089340,
+ 0x9e8baa41,
+ 0x8c88f011,
+ 0xd0124a7d,
+ 0x0d022ace,
+ 0x018b0906,
+ 0x9abbfff4,
+ 0x9e6a9e83,
+ 0xc00e018b,
+ 0xfff40d7e,
+ 0xc0009ab4,
+ 0xc0019080,
+ 0xb79f90e0,
+ 0xc00f7e68,
+ 0xc00e0cfe,
+ 0x9e4a0cfc,
+ 0x7c68b59f,
+ 0x7f6cb73f,
+ 0x0a02cff1,
+ 0x0a00cff0,
+ 0x0c9ac050,
+ 0xc2002218,
+ 0x20945a21,
+ 0x324258a0,
+ 0x4006ba24,
+ 0x7f6cb59f,
+ 0xc000b481,
+ 0xa943f208,
+ 0x7fecb79f,
+ 0x8021f310,
+ 0xa241f208,
+ 0x7e6eb79f,
+ 0x7eeeb7bf,
+ 0x7f6eb7df,
+ 0x8c00c002,
+ 0xa61d9c22,
+ 0x85028440,
+ 0xf0319e9d,
+ 0x0b02abe5,
+ 0x7878b55f,
+ 0x7efcb55f,
+ 0x9d3a718e,
+ 0x91e8c001,
+ 0x7502aa41,
+ 0x9392c000,
+ 0xaad1d018,
+ 0x8d08e032,
+ 0x8d00e051,
+ 0x9eb19dcf,
+ 0xb55f8510,
+ 0xc0027f7c,
+ 0xc2800a9c,
+ 0x018b5a95,
+ 0x9a1efff4,
+ 0x7f7cb75f,
+ 0x5a88c280,
+ 0x8122c301,
+ 0x91a0c000,
+ 0x8d88e031,
+ 0x050b9dcf,
+ 0xb55f8510,
+ 0xfff47f7c,
+ 0xb75f9b23,
+ 0x0b047f7c,
+ 0xfffe718e,
+ 0xb79f92a6,
+ 0xc0507868,
+ 0xb4810c9e,
+ 0xc050c000,
+ 0xb4e20d16,
+ 0xb71fc000,
+ 0xb79f7eec,
+ 0xb7bf7d6e,
+ 0xb7df7dee,
+ 0xb7ff7e6e,
+ 0xc0027eee,
+ 0x9c228c40,
+ 0xc450a605,
+ 0x0a020c8a,
+ 0xc000b481,
+ 0x4240b102,
+ 0x2d7ce00e,
+ 0x5d10d104,
+ 0x0a02c801,
+ 0xc0300a40,
+ 0xb4810c8a,
+ 0x08c2c000,
+ 0xb4210c84,
+ 0xb740c000,
+ 0xf048608c,
+ 0xf210a947,
+ 0xf048802d,
+ 0xc450a245,
+ 0x0a020c86,
+ 0xc000b481,
+ 0x4220b101,
+ 0x0a42c801,
+ 0x0a00c010,
+ 0x0caac032,
+ 0xc000b481,
+ 0xc03408aa,
+ 0xb4220d1e,
+ 0xc450c000,
+ 0x0a020cf2,
+ 0xc000b481,
+ 0x4220b101,
+ 0x1910d053,
+ 0x590cb780,
+ 0xa891f248,
+ 0x88a3f210,
+ 0x0d060d82,
+ 0xffd4018b,
+ 0xc0809b9e,
+ 0xb4a10ca2,
+ 0xc002c000,
+ 0xc0140d82,
+ 0x700a9954,
+ 0x9364ffff,
+ 0x09820daa,
+ 0xc1210d0a,
+ 0xffd40902,
+ 0xb7809939,
+ 0xf248590c,
+ 0xc0a1a992,
+ 0x0d040d02,
+ 0xffd409c2,
+ 0xc0c09924,
+ 0x09920d82,
+ 0x09420d42,
+ 0x9957c014,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xc010a60d,
+ 0xb7208400,
+ 0xb780590c,
+ 0x2a2049ad,
+ 0xb7c07500,
+ 0x09025b94,
+ 0x9182c000,
+ 0x4108b784,
+ 0xc0007500,
+ 0xd29090e2,
+ 0x7500aa41,
+ 0x9164c005,
+ 0x49adb720,
+ 0x2a18d011,
+ 0xd0027500,
+ 0xc0003924,
+ 0xd0119124,
+ 0x75002a14,
+ 0x3922d002,
+ 0x3926d001,
+ 0x0c82c050,
+ 0xc000b441,
+ 0xb7409d87,
+ 0x0dc2470c,
+ 0xc01009c2,
+ 0xcff00d02,
+ 0xffd40c81,
+ 0xb78498fb,
+ 0x9d1b4108,
+ 0xcff07500,
+ 0xc0000b01,
+ 0xd2909282,
+ 0x7500aa41,
+ 0x91e2c000,
+ 0x606cb79f,
+ 0x8d00f211,
+ 0x2a00c010,
+ 0xcff07500,
+ 0xf3100a03,
+ 0xb3468001,
+ 0xb79e4422,
+ 0xc8014068,
+ 0xc01008c2,
+ 0xc0320880,
+ 0xb59f0cea,
+ 0xb421606c,
+ 0xb784c000,
+ 0x75004108,
+ 0x9282c001,
+ 0x4208b784,
+ 0xc0017500,
+ 0xb72091e2,
+ 0xd011518c,
+ 0x75002a12,
+ 0x9102c001,
+ 0x6194b7a0,
+ 0x5c8cb7a0,
+ 0xaa21f210,
+ 0x28f99eab,
+ 0x518cb520,
+ 0x9c629ea4,
+ 0x5f0cb720,
+ 0x4129b780,
+ 0xc0007500,
+ 0xf20892a4,
+ 0xf210a9a1,
+ 0x0d82a83d,
+ 0x9c629e84,
+ 0xa8a5f250,
+ 0xf2089eab,
+ 0x0982a021,
+ 0x9c629e8c,
+ 0xaa21da08,
+ 0x438ab582,
+ 0xa9cdda10,
+ 0xfff49eb3,
+ 0xc8019aa6,
+ 0xc00a0a02,
+ 0xc0300a00,
+ 0xb4810c8a,
+ 0xc008c000,
+ 0x0c8408c2,
+ 0xc000b421,
+ 0x0a02c008,
+ 0xb4810c88,
+ 0xc0c0c000,
+ 0x09920d82,
+ 0x0d02c008,
+ 0x0902c008,
+ 0x989dc014,
+ 0x0a02c008,
+ 0x0c8ec030,
+ 0xc000b481,
+ 0x5c0cb720,
+ 0xb5408506,
+ 0xfff44039,
+ 0xb79f9ad1,
+ 0xb7bf6eee,
+ 0xb7df6f6e,
+ 0xc0106fee,
+ 0x9c228c60,
+ 0xa205f839,
+ 0x0c82c450,
+ 0xb4810a02,
+ 0xb101c000,
+ 0xc0084220,
+ 0xc0300a40,
+ 0xb4810c8e,
+ 0xc002c000,
+ 0xc05038c0,
+ 0xb4210c82,
+ 0xc0c0c000,
+ 0x09920d82,
+ 0x0d02c008,
+ 0x0902c008,
+ 0x9869c014,
+ 0x0a02c008,
+ 0x0c8ec030,
+ 0xc000b481,
+ 0xaa1df9f8,
+ 0x9000fff5,
+ 0xf011a60d,
+ 0xc0010eb0,
+ 0xc01e9182,
+ 0xc0080f7e,
+ 0xc0300b02,
+ 0xc0400e8e,
+ 0x9e747540,
+ 0x0c96c050,
+ 0x4426b354,
+ 0xc20012d8,
+ 0xb4815a14,
+ 0xc030c000,
+ 0xb4c20d0a,
+ 0xb4c5c000,
+ 0xc030c000,
+ 0xb4c10c96,
+ 0xc0c0c000,
+ 0x09920d82,
+ 0x0d02c008,
+ 0x0902c008,
+ 0x9835c014,
+ 0xc000b4c5,
+ 0xfffe7540,
+ 0xfff493c4,
+ 0xb79f9a6f,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0xb4639c22,
+ 0x9c22c000,
+ 0xa062f812,
+ 0xc2009c22,
+ 0x5d890d80,
+ 0x09829e59,
+ 0x3d80c400,
+ 0xc000b463,
+ 0x4620b203,
+ 0x9c220007,
+ 0x9c8fc127,
+ 0x080a9c22,
+ 0x56f1b971,
+ 0x9c81c017,
+ 0x9c80c071,
+ 0x9c80c017,
+ 0x4000b960,
+ 0xffff9c22,
+ 0x9e5c9280,
+ 0xd1a401c6,
+ 0x08825889,
+ 0x3c80c400,
+ 0xc000b421,
+ 0x4220b104,
+ 0x9e532244,
+ 0xffff7106,
+ 0x9c229324,
+ 0xc004a60d,
+ 0xc8298420,
+ 0xc4f60ca2,
+ 0xc0300cf0,
+ 0xe133ac3d,
+ 0xc0388d00,
+ 0xc030a45d,
+ 0xc038ac3d,
+ 0xc010a45d,
+ 0xc018ac3d,
+ 0xc010a45d,
+ 0xc018ac25,
+ 0xb7a0a445,
+ 0x9ea9590c,
+ 0xb5408502,
+ 0xb541661a,
+ 0xb7404d98,
+ 0x0dc2470c,
+ 0x0d42c00a,
+ 0xffb409c2,
+ 0xd2519ba9,
+ 0xda080a58,
+ 0x7502aa01,
+ 0xc0009ead,
+ 0xb5809084,
+ 0xf290450c,
+ 0x2a08aa2d,
+ 0xc0007500,
+ 0x850690a4,
+ 0x451cb540,
+ 0x608cb780,
+ 0xa8a1f210,
+ 0xf2108502,
+ 0xb540a8a6,
+ 0xb540511c,
+ 0xf208481a,
+ 0xf208a103,
+ 0xf210a085,
+ 0xf208a929,
+ 0xf210a08a,
+ 0xf210a92e,
+ 0xf208a8b2,
+ 0xf250a10d,
+ 0xf208a8b1,
+ 0xf208a112,
+ 0xf208a096,
+ 0xc050a09a,
+ 0x08c00cf2,
+ 0xa085f248,
+ 0xc000b421,
+ 0xc0360a0a,
+ 0xb4810c92,
+ 0x0896c000,
+ 0xb4211c8c,
+ 0xf031c000,
+ 0xe1318c00,
+ 0x9ea38d80,
+ 0x5f0cb7c0,
+ 0x7ffcb55f,
+ 0xb9600d02,
+ 0xf2084078,
+ 0x9dbaa103,
+ 0x5d0dd122,
+ 0xf0299e2d,
+ 0xd012a8e5,
+ 0x5c882cae,
+ 0x5908d126,
+ 0xe0389e4a,
+ 0x0d04aa4d,
+ 0x50a828bc,
+ 0xa2413242,
+ 0x91c1ffff,
+ 0xaa61f010,
+ 0x0c8ec036,
+ 0xc000b481,
+ 0x7fecb73f,
+ 0xb4211c84,
+ 0xc014c000,
+ 0xd2089999,
+ 0x7500aa4d,
+ 0x9262c000,
+ 0xaa2df290,
+ 0x2ac8f011,
+ 0x91a4c000,
+ 0x2a00c800,
+ 0xc0007500,
+ 0xf20890c4,
+ 0xfff4a9c6,
+ 0xd2089ae3,
+ 0xf290a2cd,
+ 0xd011a8ad,
+ 0x75002a14,
+ 0x9104c000,
+ 0x0a42c809,
+ 0x0a60c676,
+ 0x548cb580,
+ 0x468cb780,
+ 0xc0007500,
+ 0xc0809162,
+ 0x2a045a31,
+ 0x0ceac03e,
+ 0xc000b481,
+ 0x9280c000,
+ 0x450cb780,
+ 0xc0007502,
+ 0xc100915c,
+ 0x74402880,
+ 0xd0010a0e,
+ 0xc0001a46,
+ 0x0a029060,
+ 0x0ceac03e,
+ 0xc000b481,
+ 0x7a6eb79f,
+ 0x7aeeb7bf,
+ 0x7b6eb7df,
+ 0x8c00c006,
+ 0xb7809c22,
+ 0xc0c8558c,
+ 0xb9600892,
+ 0xd01140f8,
+ 0xf0290948,
+ 0xd0a4aa45,
+ 0xb4815889,
+ 0x0890c000,
+ 0x9321ffff,
+ 0xa6059c22,
+ 0x468cb720,
+ 0x410cb781,
+ 0x0a047440,
+ 0x410cb581,
+ 0x9364c000,
+ 0x4108b784,
+ 0xc0007500,
+ 0xb72092c2,
+ 0xb780450c,
+ 0x7442518c,
+ 0xb5803a40,
+ 0xc000518c,
+ 0xb780919c,
+ 0xd2085f0c,
+ 0x7440a889,
+ 0x90a4c000,
+ 0xb5448506,
+ 0xc8014818,
+ 0xc0100a42,
+ 0xc0320a00,
+ 0xb4810cea,
+ 0xc008c000,
+ 0xc00208c2,
+ 0xb4211ce0,
+ 0xc008c000,
+ 0xc0300a42,
+ 0xb4820d0e,
+ 0xc450c000,
+ 0xc0080c82,
+ 0xb4811a40,
+ 0xb101c000,
+ 0xc0024220,
+ 0xc05038c0,
+ 0xb4210c82,
+ 0xc0c0c000,
+ 0x09920d82,
+ 0x0d02c008,
+ 0x0902c008,
+ 0x9aa7fff4,
+ 0x0c86c450,
+ 0xb4810a02,
+ 0xb105c000,
+ 0xc0084220,
+ 0xc0300a00,
+ 0xb4820d0e,
+ 0x0c84c000,
+ 0x1a00c008,
+ 0xc000b481,
+ 0x4220b101,
+ 0x5a35c080,
+ 0x0902c801,
+ 0xc00e0940,
+ 0xd0a828fc,
+ 0xd0715910,
+ 0xc03029ce,
+ 0x9dc80c8a,
+ 0xc000b441,
+ 0x0c840a42,
+ 0xc000b481,
+ 0xc0007680,
+ 0xb7209182,
+ 0xb740608c,
+ 0xf21044bd,
+ 0xf3108a27,
+ 0xb5808021,
+ 0xc45044ad,
+ 0x0a020c86,
+ 0xc000b481,
+ 0x4220b105,
+ 0xb4810cec,
+ 0xb105c000,
+ 0x12d64220,
+ 0xc03408ea,
+ 0xb4210c9e,
+ 0xb780c000,
+ 0xf248590c,
+ 0xd053a891,
+ 0xf2101950,
+ 0x0d8288a3,
+ 0xc2800d06,
+ 0xb5805a0c,
+ 0x018b510c,
+ 0x9873ffd4,
+ 0x0ca2c080,
+ 0xc000b4a1,
+ 0x480cb780,
+ 0xb4810c88,
+ 0xb7a0c000,
+ 0xc0025b14,
+ 0xfff40d82,
+ 0x700a9a22,
+ 0x9364ffff,
+ 0x410cb781,
+ 0xa8adf210,
+ 0xa8a2f250,
+ 0x9e496243,
+ 0xc0007102,
+ 0x850690b8,
+ 0x4618b544,
+ 0x468cb780,
+ 0x0a827500,
+ 0x9204c001,
+ 0x450cb780,
+ 0xc0007502,
+ 0xb784933c,
+ 0x75004108,
+ 0x9282c000,
+ 0x460cb780,
+ 0xb5802a79,
+ 0xffd4460c,
+ 0xb7849831,
+ 0x75004808,
+ 0x90c2c000,
+ 0x9908ffd4,
+ 0x4808b5a4,
+ 0x98cdffd4,
+ 0x4108b784,
+ 0xc0007500,
+ 0xc01493e2,
+ 0xb780998d,
+ 0xd2085f0c,
+ 0x7440a889,
+ 0x92c2c000,
+ 0x0a82c080,
+ 0x9240c000,
+ 0xffd40d82,
+ 0xb7849899,
+ 0x75004208,
+ 0x90e2c000,
+ 0xffd40d82,
+ 0xc0009845,
+ 0x0d8290a0,
+ 0x997affd4,
+ 0x0ca6c080,
+ 0xc000b4a1,
+ 0x0d92c002,
+ 0x99c5fff4,
+ 0xffff700a,
+ 0x0dea9364,
+ 0x0d0a0982,
+ 0x0902c121,
+ 0x99aaffb4,
+ 0x590cb780,
+ 0xa992f248,
+ 0x0d02c0a1,
+ 0x09c20d04,
+ 0x9995ffb4,
+ 0x0d82c0c0,
+ 0x0d420992,
+ 0xfff40942,
+ 0x0a0299c8,
+ 0x0ceac03e,
+ 0xc000b481,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xb720a61d,
+ 0xb720590c,
+ 0xd09149b5,
+ 0x75002e10,
+ 0xc0049e8f,
+ 0xd0119022,
+ 0x85062e14,
+ 0x4118b544,
+ 0x75000b82,
+ 0x410cb5e1,
+ 0x4608b5e4,
+ 0x9082c000,
+ 0x4198b544,
+ 0x2e10d111,
+ 0xc0007500,
+ 0xb5449082,
+ 0xd2114218,
+ 0x75002e10,
+ 0x9082c000,
+ 0x4298b544,
+ 0x4208b784,
+ 0xb7c07500,
+ 0xc0026194,
+ 0xc8099144,
+ 0xc6980a42,
+ 0xc8090a70,
+ 0xc73408c2,
+ 0xc80908c0,
+ 0xc7860cc2,
+ 0xc8090ca0,
+ 0xc7540942,
+ 0xc8090910,
+ 0xc6900d42,
+ 0xc8090d60,
+ 0xc81209c2,
+ 0xc80909a0,
+ 0xc85e0dc2,
+ 0xc8090d90,
+ 0xc8c60c42,
+ 0xc8090c30,
+ 0xc6840842,
+ 0xc8090830,
+ 0xc6880ac2,
+ 0xc8090af0,
+ 0xc6840ec2,
+ 0xc8090ed0,
+ 0xc8c80b42,
+ 0xf2100b30,
+ 0xf210a249,
+ 0xf210a0d1,
+ 0xf210a0d6,
+ 0xf210a159,
+ 0xf210a14e,
+ 0xf250a1dd,
+ 0xf250a1c2,
+ 0xf250a046,
+ 0xf210a049,
+ 0xf210a2c5,
+ 0xf250a2c2,
+ 0xf210a34d,
+ 0xd151aa4d,
+ 0x9eab0ef0,
+ 0x9c629ea4,
+ 0x5b8cb720,
+ 0xaa21d208,
+ 0x41abb580,
+ 0x41b3b720,
+ 0x438ab5e0,
+ 0x5094b520,
+ 0x5b0cb7c0,
+ 0xaa69f2d0,
+ 0xa8d9f208,
+ 0xc0007048,
+ 0xb7809142,
+ 0xf248618c,
+ 0xd152a88d,
+ 0x9e8c0df0,
+ 0xb7849c62,
+ 0x75004108,
+ 0x9062c004,
+ 0x4694b720,
+ 0xc0037640,
+ 0xb72093c4,
+ 0x7440438a,
+ 0x90e2c000,
+ 0xaa55da08,
+ 0xc0017048,
+ 0xb7a09004,
+ 0xb7845f14,
+ 0xb7a04188,
+ 0xda08618c,
+ 0xb520a9d6,
+ 0x850a4392,
+ 0xd2107500,
+ 0xf208a0aa,
+ 0xe001a8a9,
+ 0x9d4f8d24,
+ 0x9e8c1d84,
+ 0xf2089c62,
+ 0x9eaeaa31,
+ 0x9ea40d8a,
+ 0xc0009c62,
+ 0xb7809180,
+ 0xf208618c,
+ 0x9ea6a891,
+ 0x5f14b7a0,
+ 0x9e8c0d86,
+ 0xb7809c62,
+ 0xb724438a,
+ 0xb7204208,
+ 0x0a045b94,
+ 0x438ab580,
+ 0xaa29d210,
+ 0xb5807440,
+ 0xc0014849,
+ 0xb7a09024,
+ 0xf2105c8c,
+ 0x9eaba8c1,
+ 0x9c629e8c,
+ 0xaa29d210,
+ 0xc0007500,
+ 0xf20892a4,
+ 0xf210a9a1,
+ 0x0d82a85d,
+ 0x9c629e84,
+ 0xa021f208,
+ 0xa845f250,
+ 0x09829eab,
+ 0x9c629e84,
+ 0xaa21da08,
+ 0x438ab582,
+ 0x450cb780,
+ 0xc0007502,
+ 0x0d8690bc,
+ 0x9b04ffb4,
+ 0xaa29d210,
+ 0xc0007500,
+ 0xb7209122,
+ 0xb780578c,
+ 0x3a08412d,
+ 0x90e0c000,
+ 0x578cb720,
+ 0x412db780,
+ 0xb5802a75,
+ 0xb724412d,
+ 0xb7804108,
+ 0x7440518c,
+ 0xb5803a04,
+ 0xc000518c,
+ 0xd15191c4,
+ 0xb7400e70,
+ 0xd2085b8c,
+ 0xd208a882,
+ 0xb520a881,
+ 0xd8085094,
+ 0xb79fa0cd,
+ 0xb7bf7e6e,
+ 0xb7df7eee,
+ 0xb7ff7f6e,
+ 0xc0027fee,
+ 0x9c228c00,
+ 0xb784a60d,
+ 0x75004208,
+ 0x6194b7a0,
+ 0xc0000b02,
+ 0xb7a09262,
+ 0xf2105c8c,
+ 0xf208a83d,
+ 0x0d8aa9a1,
+ 0x9c629e84,
+ 0xa021f208,
+ 0xa825f250,
+ 0x09869eab,
+ 0x9c629e84,
+ 0x4208b784,
+ 0xb7c07500,
+ 0xc0005114,
+ 0xb7609124,
+ 0xf2105c94,
+ 0x9e84a825,
+ 0x03019c62,
+ 0x5f0cb720,
+ 0x4129b780,
+ 0x02837500,
+ 0x9224c000,
+ 0x4208b784,
+ 0xc0007500,
+ 0xf25090c4,
+ 0x9ea4aa21,
+ 0xf2109c62,
+ 0x9eb1aa35,
+ 0x9ea415e2,
+ 0xf2109c62,
+ 0x9eb3aa39,
+ 0x9ea4018b,
+ 0xb7209c62,
+ 0xb780590c,
+ 0xc40049ad,
+ 0x75002a00,
+ 0x9102c000,
+ 0xd2088502,
+ 0x8506a12b,
+ 0xa123d208,
+ 0x518cb780,
+ 0x2a3dcffe,
+ 0x518cb580,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x4003ba1b,
+ 0x9e5c9e59,
+ 0x4002ba03,
+ 0x4003ba12,
+ 0x9e537040,
+ 0x9136c000,
+ 0xc0007006,
+ 0xc8129158,
+ 0xc00072c4,
+ 0x9e519180,
+ 0xc0007002,
+ 0x9e8290bc,
+ 0x90a0c000,
+ 0x70c8cc10,
+ 0x9e509e9a,
+ 0xa61d9c22,
+ 0x0a468460,
+ 0x0c9ec034,
+ 0xc000b481,
+ 0x5394b760,
+ 0x9bd1ffd4,
+ 0x490ab780,
+ 0x7d3edffc,
+ 0x2b06d012,
+ 0x9104c000,
+ 0x498ab780,
+ 0x7d3edffc,
+ 0x90a2c000,
+ 0xc0007782,
+ 0x0f8290c4,
+ 0xc0010b82,
+ 0xb7609000,
+ 0xffd45414,
+ 0xd0249bb8,
+ 0xc0005bc3,
+ 0xba395884,
+ 0xd3a24002,
+ 0x9e8f5c84,
+ 0x5a7fc380,
+ 0x5a79c200,
+ 0xc2000278,
+ 0xba3f5b8b,
+ 0xd3a24003,
+ 0x9e795e7f,
+ 0x5a79c200,
+ 0xd2240218,
+ 0xb7805b8b,
+ 0xdffc490a,
+ 0xc0017d3e,
+ 0xb7809164,
+ 0xba24498a,
+ 0xc000400a,
+ 0x09029124,
+ 0x7fecb55f,
+ 0x7f6cb55f,
+ 0x9180c00b,
+ 0x6784b740,
+ 0xb7209e7e,
+ 0x1a04668c,
+ 0x5908d226,
+ 0xb7609e2d,
+ 0x028f6704,
+ 0x7f6cb5bf,
+ 0x7fecb5df,
+ 0xa34ee030,
+ 0x5904d226,
+ 0xc8309d1d,
+ 0x9e3da3cd,
+ 0xa3cec830,
+ 0x9240c00a,
+ 0x498ab780,
+ 0x400aba24,
+ 0xc0020e82,
+ 0xb72092a4,
+ 0xb7c05994,
+ 0xb780668c,
+ 0x9d6d404b,
+ 0x5a11c200,
+ 0xd2261a04,
+ 0xc8305904,
+ 0xb780a3cd,
+ 0x010d404b,
+ 0x678cb7e0,
+ 0xc2000089,
+ 0x1a045a11,
+ 0x5908d226,
+ 0xa9c6d829,
+ 0x18845891,
+ 0xd0a69d53,
+ 0xb7a05904,
+ 0xe270670c,
+ 0x9d47a306,
+ 0xa9c1d808,
+ 0xba1b0d02,
+ 0xc8504003,
+ 0xba1ba3a6,
+ 0xfff44002,
+ 0xb7809b3f,
+ 0xba24498a,
+ 0xd2264002,
+ 0x0a045904,
+ 0xd2269d4b,
+ 0xba005904,
+ 0x9d534002,
+ 0xa9c6c850,
+ 0xa985ca50,
+ 0xb51f0d02,
+ 0xba1b7f6c,
+ 0xba1b4003,
+ 0xfff44002,
+ 0x9eba9b25,
+ 0xba009ded,
+ 0xb51f4002,
+ 0x010b7fec,
+ 0x9260c002,
+ 0x668cb7c0,
+ 0xd2269eba,
+ 0xb7a05904,
+ 0xd011670c,
+ 0x0a0418c2,
+ 0xd2269d4b,
+ 0xd0a85904,
+ 0x9d535904,
+ 0x5908d0a6,
+ 0x9ded9d44,
+ 0x679cb760,
+ 0xa3c1c830,
+ 0xa9c6c860,
+ 0xa985ca60,
+ 0xa34ee030,
+ 0xa3a6c850,
+ 0x4003ba1b,
+ 0x4002ba1b,
+ 0x9af6fff4,
+ 0x498ab780,
+ 0x4002ba24,
+ 0x5904d226,
+ 0x9d4b0a04,
+ 0x5904d226,
+ 0x4002ba00,
+ 0xc8509d53,
+ 0xca50a9c6,
+ 0x050fa985,
+ 0x7f6cb51f,
+ 0x4003ba1b,
+ 0x4002ba1b,
+ 0x9adcfff4,
+ 0xb7209ded,
+ 0xba006794,
+ 0xb51f4002,
+ 0x77827fec,
+ 0x0503010b,
+ 0x90e2c000,
+ 0x7a6ab5ff,
+ 0x7c72b5ff,
+ 0xb7800e86,
+ 0xba0c498a,
+ 0xd0a64002,
+ 0x9dc75908,
+ 0xaa29e020,
+ 0xc0007502,
+ 0xd0a693c2,
+ 0x9e3d5904,
+ 0x5d04d2a8,
+ 0x0ca3cffe,
+ 0xa8cdc830,
+ 0x8184c001,
+ 0x803bf210,
+ 0xa081da08,
+ 0xca209d53,
+ 0xd011a886,
+ 0x9d440e52,
+ 0xf0519ea5,
+ 0xba2d8c00,
+ 0xca104003,
+ 0xb780a086,
+ 0xba24498a,
+ 0xd0114002,
+ 0xd0a608c2,
+ 0x9dc75908,
+ 0xaa29e020,
+ 0xc0007502,
+ 0xd0a693c2,
+ 0x9e3d5904,
+ 0x5d04d2a8,
+ 0x87a3cffe,
+ 0xa8cdc830,
+ 0x8184c001,
+ 0x8037f010,
+ 0xda089e2d,
+ 0x9d47a081,
+ 0x0e52d011,
+ 0xa8a6c820,
+ 0xe0539ea5,
+ 0xba2d8d00,
+ 0xc8304003,
+ 0x7744a0ce,
+ 0x9142c001,
+ 0x90fac000,
+ 0xc0027742,
+ 0xc0029022,
+ 0x77469120,
+ 0x90c4c002,
+ 0x7a72b77f,
+ 0x7aeab77f,
+ 0x7b72b75f,
+ 0x4003ba1b,
+ 0x4002ba1b,
+ 0x4003ba12,
+ 0x9a5efff4,
+ 0x7c72b77f,
+ 0x7ceab77f,
+ 0x7d72b75f,
+ 0x4002ba28,
+ 0x4003ba1b,
+ 0x4002ba1b,
+ 0x4003ba12,
+ 0x9300c000,
+ 0x7a72b77f,
+ 0x7aeab77f,
+ 0xba1b0d02,
+ 0xba1b4003,
+ 0xfff44002,
+ 0xb77f9a43,
+ 0xb77f7c72,
+ 0xba287cea,
+ 0x0d024002,
+ 0x4003ba1b,
+ 0x4002ba1b,
+ 0x9a36fff4,
+ 0x4002ba30,
+ 0x91c0c000,
+ 0x7a6ab79f,
+ 0x7c6ab73f,
+ 0x4002ba2c,
+ 0x4002ba31,
+ 0x9080c000,
+ 0x0a820b02,
+ 0x550cb720,
+ 0x6604b740,
+ 0x5908d0a6,
+ 0xe0309e2d,
+ 0x2a04aa4d,
+ 0xc0087500,
+ 0x0a429262,
+ 0x0c9ec034,
+ 0xc000b481,
+ 0x5414b760,
+ 0x9a09ffd4,
+ 0x5943d024,
+ 0x5884c000,
+ 0x4002ba11,
+ 0x5c84d122,
+ 0x5a7fc100,
+ 0x5a75c200,
+ 0xc2000228,
+ 0xc100590f,
+ 0x9e8a5a04,
+ 0x7f6cb73f,
+ 0x4003ba12,
+ 0x12429e52,
+ 0x4002ba04,
+ 0x5e7fd122,
+ 0xc41409f2,
+ 0xba097000,
+ 0xc4104002,
+ 0x74007046,
+ 0x5a75c200,
+ 0xd2240228,
+ 0x0003590f,
+ 0x9076c000,
+ 0xb79f1003,
+ 0xb73f7f6c,
+ 0xba007fec,
+ 0xd0204002,
+ 0xd12200c0,
+ 0x12425e04,
+ 0x4002ba04,
+ 0x5e7dd0a2,
+ 0x04949ea2,
+ 0x9e4a5c87,
+ 0x7000c414,
+ 0x4002ba09,
+ 0x7046c410,
+ 0x00037400,
+ 0x4002ba12,
+ 0x9076c000,
+ 0xb79f1003,
+ 0xba007fec,
+ 0xd0204002,
+ 0xc10000c0,
+ 0x124a5a04,
+ 0x4002ba04,
+ 0x5e7dd0a2,
+ 0xc4149d4d,
+ 0xba097000,
+ 0xc4104002,
+ 0x74007046,
+ 0xc3010003,
+ 0x5c870496,
+ 0x4003ba11,
+ 0x9076c000,
+ 0xba001003,
+ 0xd1224002,
+ 0xd0205e04,
+ 0x124c00d0,
+ 0x4002ba04,
+ 0x5e7dd0a2,
+ 0xc0019dcd,
+ 0x5c870496,
+ 0xc4149e4a,
+ 0xba097000,
+ 0xc4104002,
+ 0x74007046,
+ 0xba120003,
+ 0xc0004002,
+ 0x10039076,
+ 0x5888d124,
+ 0x4002ba00,
+ 0xc2000260,
+ 0x024258fd,
+ 0x2cf0cffe,
+ 0xb7409e49,
+ 0xc2005414,
+ 0xc2005a07,
+ 0x30425a48,
+ 0x0d00c200,
+ 0xb4025d0b,
+ 0xb720c000,
+ 0xc2005414,
+ 0x5c8b0c90,
+ 0xc000b401,
+ 0x5414b740,
+ 0x0d20c200,
+ 0xb4025d0b,
+ 0xb720c000,
+ 0xc2005414,
+ 0x5c8b0cb0,
+ 0xc000b401,
+ 0x5414b740,
+ 0x0d40c200,
+ 0xb4025d0b,
+ 0xb720c000,
+ 0xc2005414,
+ 0x5c8b0cd0,
+ 0xc000b401,
+ 0x5414b740,
+ 0x0d60c200,
+ 0xb4025d0b,
+ 0xb720c000,
+ 0xc2005414,
+ 0x5c8b0cf0,
+ 0xc000b401,
+ 0x5414b740,
+ 0x0d00c202,
+ 0xb4025d0b,
+ 0xb720c000,
+ 0xc2025414,
+ 0x5c8b0c90,
+ 0xc000b401,
+ 0x5414b740,
+ 0x0d20c202,
+ 0xb4025d0b,
+ 0xb720c000,
+ 0xc2025414,
+ 0x5c8b0cb0,
+ 0xc000b401,
+ 0x5414b740,
+ 0x0d40c202,
+ 0xb4025d0b,
+ 0xb720c000,
+ 0xc2025414,
+ 0x5c8b0cd0,
+ 0xc000b401,
+ 0x5414b740,
+ 0x0d60c202,
+ 0xb4025d0b,
+ 0xb720c000,
+ 0xc2025414,
+ 0x5c8b0cf0,
+ 0xc000b401,
+ 0x7ceeb79f,
+ 0x7d6eb7bf,
+ 0x7deeb7df,
+ 0x7e6eb7ff,
+ 0x8c60c002,
+ 0xb7209c22,
+ 0x9e5c4b8c,
+ 0x2a40c0ff,
+ 0x28c0c0ff,
+ 0x85027102,
+ 0x9062c000,
+ 0xb5408506,
+ 0xb5604c1c,
+ 0x9c224b94,
+ 0x9e5da605,
+ 0x2a50d051,
+ 0xc0007500,
+ 0xb78090e4,
+ 0x75004c0c,
+ 0x9142c000,
+ 0x0d82c0c0,
+ 0x09c2c012,
+ 0x09420d02,
+ 0x98efffd4,
+ 0x4b8cb780,
+ 0x0cb6c034,
+ 0xc000b481,
+ 0x0d32c034,
+ 0xc000b4a2,
+ 0x4b0cb5a0,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0x8420a61d,
+ 0x4108b784,
+ 0x87027500,
+ 0x9122c000,
+ 0x5b8cb780,
+ 0xa881d288,
+ 0xc01a7440,
+ 0xb7c09184,
+ 0xf208588c,
+ 0x2a20aa59,
+ 0xb7a07500,
+ 0xc001590c,
+ 0xd1319162,
+ 0xda080a50,
+ 0xb780a881,
+ 0xb740670c,
+ 0x8506668c,
+ 0x551cb540,
+ 0xd0a65891,
+ 0xf3105904,
+ 0xe2108021,
+ 0xb5408125,
+ 0xb5404902,
+ 0xda0a4982,
+ 0xd80aa100,
+ 0xc430a140,
+ 0x0a020c8a,
+ 0xc000b481,
+ 0x4220b101,
+ 0x3880c180,
+ 0x0c8ac030,
+ 0xc000b421,
+ 0x590cb7a0,
+ 0xb7409eb1,
+ 0x0dc2470c,
+ 0xc002098e,
+ 0xb55f0d42,
+ 0xff947fe4,
+ 0xf2089871,
+ 0xb7a0aa55,
+ 0xf2085814,
+ 0xda08a8c9,
+ 0xda08a8da,
+ 0xb580a95d,
+ 0xf208480c,
+ 0xf210aa45,
+ 0xd252a0ba,
+ 0xf21008d0,
+ 0xf250a0bd,
+ 0xf210a121,
+ 0xda08a235,
+ 0xd131a942,
+ 0xda080a50,
+ 0xb740a881,
+ 0xf248404b,
+ 0x9e53a947,
+ 0xa8d2da88,
+ 0xc08060b2,
+ 0xc2005a7f,
+ 0x00985a71,
+ 0x58945893,
+ 0x80a3e210,
+ 0x7e7edffc,
+ 0xc1005915,
+ 0xf2505b90,
+ 0xb75fa0bd,
+ 0xc0007fe4,
+ 0xe10091c2,
+ 0xc0005d40,
+ 0xda889144,
+ 0xb520aa55,
+ 0xb5404792,
+ 0xb5804882,
+ 0xf288468a,
+ 0xd132aa21,
+ 0xf25009d0,
+ 0xf250a235,
+ 0xda08a239,
+ 0xd810a941,
+ 0xf248aa61,
+ 0x6228a93b,
+ 0x8021f310,
+ 0x608cb760,
+ 0xa229f290,
+ 0xa8c1da08,
+ 0xaa61d810,
+ 0xa934f24a,
+ 0xa942da08,
+ 0xa973f008,
+ 0x60990884,
+ 0xe2205d20,
+ 0xe210812d,
+ 0xf29082a3,
+ 0xf208a0a5,
+ 0xda08a12e,
+ 0xf008a8c2,
+ 0x5c9ca977,
+ 0x80abe220,
+ 0xa0b2f208,
+ 0xa126f250,
+ 0xa0aef250,
+ 0xaa39da48,
+ 0xa229f250,
+ 0xa8bdda48,
+ 0xa0b1f250,
+ 0xaa29da48,
+ 0xa923f208,
+ 0xc2006228,
+ 0xf3105a10,
+ 0xf2108021,
+ 0xda48a221,
+ 0xf208a8ad,
+ 0x6122a927,
+ 0xf210590c,
+ 0xf2108025,
+ 0xf208a229,
+ 0xe210a92b,
+ 0xf2108125,
+ 0xda48a12d,
+ 0xf210aa29,
+ 0xda48a225,
+ 0xf210a8ad,
+ 0xd810a0b1,
+ 0xc004aa61,
+ 0xd1311d00,
+ 0xc20008d4,
+ 0xc2005a40,
+ 0xf2905a51,
+ 0xb780a235,
+ 0xc002402b,
+ 0xb5401c80,
+ 0xb5204f94,
+ 0xc2005014,
+ 0xc2005a40,
+ 0xf2905a51,
+ 0xc42ea239,
+ 0x0a020cf2,
+ 0xc000b481,
+ 0x4220b101,
+ 0x74402884,
+ 0x0b50d132,
+ 0x9102c000,
+ 0xaa41da10,
+ 0x753ec09c,
+ 0x9332c011,
+ 0x08c6c0c0,
+ 0x0ce2c050,
+ 0xc000b421,
+ 0xa959f208,
+ 0x0a50d131,
+ 0xa881da08,
+ 0x28a0d052,
+ 0x58917640,
+ 0x4f0cb520,
+ 0x9222c000,
+ 0xc0600a02,
+ 0xb4810cae,
+ 0xda08c000,
+ 0x7440a8c1,
+ 0x9302c000,
+ 0xb5408502,
+ 0xc0004f1c,
+ 0xc2009260,
+ 0x74802900,
+ 0x9122c000,
+ 0xc0600a0a,
+ 0xb4810cae,
+ 0xc000c000,
+ 0x0a0690e0,
+ 0x0caec060,
+ 0xc000b481,
+ 0xaa59f208,
+ 0x75002a04,
+ 0xb540850a,
+ 0xc000499c,
+ 0x850490a2,
+ 0x499cb540,
+ 0x4108b784,
+ 0xb7e07500,
+ 0xc0006194,
+ 0xb78492e2,
+ 0x75004208,
+ 0x9244c000,
+ 0x468cb780,
+ 0xc0007500,
+ 0xb78491a2,
+ 0x75004288,
+ 0x9104c000,
+ 0x5c94b760,
+ 0xaa61f210,
+ 0x9c629ea4,
+ 0xaa59f208,
+ 0x75002a20,
+ 0x90e2c000,
+ 0xaa41da08,
+ 0xc0007500,
+ 0xb7809244,
+ 0xb7205b8c,
+ 0xda08548c,
+ 0x9e8ca98e,
+ 0xb7849c62,
+ 0x75004108,
+ 0x90a2c000,
+ 0xb5448506,
+ 0xf2084b18,
+ 0x2a20aa59,
+ 0xc0017500,
+ 0xc0e09082,
+ 0xc03808ba,
+ 0xb4210cfa,
+ 0xf208c000,
+ 0xb720aa59,
+ 0x851e498c,
+ 0x2a041cf8,
+ 0x38d07500,
+ 0x498cb520,
+ 0x08e2c084,
+ 0x8d28e001,
+ 0x4d9cb540,
+ 0xc000b421,
+ 0x650cb780,
+ 0xc002088a,
+ 0xb5800c80,
+ 0xb421528c,
+ 0xffd4c000,
+ 0xb7809814,
+ 0xc03e498c,
+ 0xb4810c82,
+ 0xb720c000,
+ 0xc0504d8c,
+ 0xb4210c82,
+ 0xda08c000,
+ 0xf290a941,
+ 0xda08a8b5,
+ 0x6123a946,
+ 0xda089e53,
+ 0x6097aa41,
+ 0x6014b720,
+ 0xb5428702,
+ 0x857f4482,
+ 0x459ab540,
+ 0xb540851a,
+ 0x0d86449a,
+ 0xb5801a04,
+ 0xb5404e0c,
+ 0x8526405b,
+ 0x415bb540,
+ 0x460ab540,
+ 0x18a05891,
+ 0x40cbb520,
+ 0x7fe4b55f,
+ 0x9831c034,
+ 0x7fe4b75f,
+ 0xa8c6da08,
+ 0xb5448506,
+ 0xb5444a18,
+ 0xb5444a80,
+ 0xb5445000,
+ 0xb5445080,
+ 0xf2904b80,
+ 0x9e49aa35,
+ 0x5894b720,
+ 0x4c00b544,
+ 0xb7206243,
+ 0x8502434d,
+ 0xc10158c8,
+ 0x9e892880,
+ 0xa9c2da10,
+ 0xb5400a82,
+ 0xb5404e9c,
+ 0x5dc0521c,
+ 0x2dc0c0ff,
+ 0x3db0ca01,
+ 0x5a11c200,
+ 0x450ab580,
+ 0xfff43596,
+ 0xc0c099a2,
+ 0xc0120d82,
+ 0x0d0209c2,
+ 0xffb40942,
+ 0x714e9aac,
+ 0xc0018546,
+ 0x9dcf9148,
+ 0x99a4fff4,
+ 0x0d82c0c0,
+ 0x09c2c012,
+ 0x09060d02,
+ 0x9a9dffb4,
+ 0x1a70d091,
+ 0x0a027148,
+ 0x0a42d00b,
+ 0xa9c2da10,
+ 0x5a28c200,
+ 0x5dc09ea1,
+ 0x2dc0c0ff,
+ 0x3db0c801,
+ 0xfff43596,
+ 0xd0519978,
+ 0xc2000a50,
+ 0xc2005a40,
+ 0x714e5ac1,
+ 0xfffe8506,
+ 0xf2509346,
+ 0x7500aa71,
+ 0x857fcfce,
+ 0x439cb541,
+ 0x9102c000,
+ 0xa9def208,
+ 0x450ab760,
+ 0x9c629ea4,
+ 0xc0140d82,
+ 0xb78498f7,
+ 0x75004a88,
+ 0xb5448502,
+ 0xc0024a18,
+ 0xb7a092a4,
+ 0x0f025c8c,
+ 0xb784068f,
+ 0x75004108,
+ 0x9082c002,
+ 0x4208b784,
+ 0xc0017500,
+ 0xb78493e2,
+ 0x75004b08,
+ 0x9182c000,
+ 0xa9a2f208,
+ 0x4b10b5c4,
+ 0xa869f250,
+ 0x9c629e84,
+ 0x430ab500,
+ 0x4c08b784,
+ 0xc0007500,
+ 0xf2109382,
+ 0x9eaba825,
+ 0x4c10b5c4,
+ 0x9c629e84,
+ 0xaa21f250,
+ 0x9c629ea4,
+ 0xa9a1f208,
+ 0xa83df210,
+ 0x9e840d86,
+ 0xf2509c62,
+ 0x9eabaa25,
+ 0xa021f208,
+ 0x9ea40986,
+ 0xb7849c62,
+ 0x75004c08,
+ 0x91e4c000,
+ 0xc0140d86,
+ 0xb78498ab,
+ 0x75004c08,
+ 0x9342ffff,
+ 0x90a0c000,
+ 0xc0140d86,
+ 0xb78498a1,
+ 0x75004a88,
+ 0x9262fffd,
+ 0x0d82c0c0,
+ 0x09c2c012,
+ 0x09060d02,
+ 0x9a0bffb4,
+ 0x0a02c801,
+ 0x520cb580,
+ 0x0d82c0c0,
+ 0x09c2c012,
+ 0x09420d02,
+ 0x99ffffb4,
+ 0x5214b760,
+ 0x98e9fff4,
+ 0xfff40d86,
+ 0xc0c098f7,
+ 0xc0120d82,
+ 0x0d0209c2,
+ 0xffb40906,
+ 0x850299f0,
+ 0x0892c006,
+ 0x0c9ac430,
+ 0xb5400902,
+ 0xc006521c,
+ 0xb4418510,
+ 0xb104c000,
+ 0x2a404220,
+ 0x9d4f7500,
+ 0x4422b313,
+ 0xe0000087,
+ 0xffff1884,
+ 0xb7409284,
+ 0xc0064694,
+ 0xc4300892,
+ 0x09020c9a,
+ 0x8512c006,
+ 0xc000b441,
+ 0x4220b104,
+ 0x2a00c002,
+ 0x9d537500,
+ 0x4422b314,
+ 0xe0000089,
+ 0xffff1884,
+ 0x0a029264,
+ 0x0ceac03e,
+ 0x40e8b960,
+ 0xc000b481,
+ 0x93c1ffff,
+ 0xc0007680,
+ 0x0a029122,
+ 0x0ceac03e,
+ 0xc000b481,
+ 0x9180c000,
+ 0x450cb780,
+ 0x088a7504,
+ 0x0ceac03e,
+ 0x1894d00c,
+ 0xc000b421,
+ 0x0d82c0c0,
+ 0x0d0209e2,
+ 0xffb40942,
+ 0x0882999c,
+ 0x0cb6c034,
+ 0xc000b421,
+ 0xaa59f208,
+ 0x75002a20,
+ 0x91e2c000,
+ 0x0ceac450,
+ 0xb4810a02,
+ 0xb101c000,
+ 0xb7804220,
+ 0xc0025b8c,
+ 0xda0828fc,
+ 0xb79fa08d,
+ 0xb7bf7dee,
+ 0xb7df7e6e,
+ 0xb7ff7eee,
+ 0xc0027f6e,
+ 0x9c228c20,
+ 0xb780a60d,
+ 0xb720660c,
+ 0x0a82520c,
+ 0xa882f208,
+ 0x7efec01c,
+ 0xa081f208,
+ 0xf2080309,
+ 0xc000a086,
+ 0xc0c09182,
+ 0xc0120d82,
+ 0x0d0209c2,
+ 0xffb40906,
+ 0xc0009960,
+ 0xc4349240,
+ 0x0a020cb2,
+ 0xc000b481,
+ 0x4220b101,
+ 0x74402884,
+ 0x90e2c000,
+ 0x4a08b784,
+ 0xc00c7500,
+ 0xb78092c2,
+ 0x75024e8c,
+ 0x90c4c000,
+ 0xc0140d82,
+ 0x3ac09a92,
+ 0x5894b740,
+ 0x580cb740,
+ 0xa8c5d810,
+ 0xaa55f088,
+ 0x4592b720,
+ 0x9e966243,
+ 0xc2009e49,
+ 0x0a045a11,
+ 0x4002ba09,
+ 0x4002ba24,
+ 0x06857048,
+ 0x9138c000,
+ 0x498cb780,
+ 0xb5802a51,
+ 0xc003498c,
+ 0xf21091c0,
+ 0x2a04aa39,
+ 0xc0027500,
+ 0xb78093a2,
+ 0x7440498c,
+ 0x3942d011,
+ 0x498cb540,
+ 0x929cc002,
+ 0x4792b760,
+ 0xba249e5c,
+ 0xc002400a,
+ 0xc00291a2,
+ 0xb760911c,
+ 0xb740660a,
+ 0x9e996104,
+ 0xba099e2d,
+ 0xd0a24003,
+ 0x9e485e7f,
+ 0x5a6dc200,
+ 0xc2000208,
+ 0xd2265a17,
+ 0x0c065908,
+ 0x5a14c200,
+ 0x9e401208,
+ 0xa94ee038,
+ 0x4002ba24,
+ 0x9e545090,
+ 0xc0017902,
+ 0xb7819102,
+ 0x75004d88,
+ 0x9064c001,
+ 0x470ab780,
+ 0xba249e48,
+ 0x70084002,
+ 0x9378c000,
+ 0xc0007640,
+ 0xb78190e4,
+ 0x75024d08,
+ 0x92c2c000,
+ 0x1e32d011,
+ 0xb5402959,
+ 0x9e52498c,
+ 0xb56048fd,
+ 0xb501470a,
+ 0xb5804d90,
+ 0x20a2478a,
+ 0xc000a0c1,
+ 0x850290a0,
+ 0x4d98b541,
+ 0x458ab780,
+ 0x400aba24,
+ 0x90fcc000,
+ 0x660ab780,
+ 0xb5800a04,
+ 0xb720660a,
+ 0xc03e498c,
+ 0xb4210c82,
+ 0xb780c000,
+ 0x0a04458a,
+ 0x458ab580,
+ 0x9affc014,
+ 0x4108b784,
+ 0xc0027500,
+ 0xb7849222,
+ 0x75004208,
+ 0x9182c002,
+ 0x520cb780,
+ 0x75002a40,
+ 0x90e4c000,
+ 0x5008b784,
+ 0xc002751a,
+ 0xb7809024,
+ 0xb7225a0c,
+ 0xda084492,
+ 0x9e4ca881,
+ 0xc0007102,
+ 0xb7809284,
+ 0x8502430a,
+ 0x449ab542,
+ 0x440ab580,
+ 0x4412b760,
+ 0x548cb780,
+ 0xb5448506,
+ 0xb5444b18,
+ 0x9ea44c18,
+ 0xf2109c62,
+ 0x2a10aa39,
+ 0xc0007500,
+ 0xb78493e2,
+ 0x75004c08,
+ 0x90e4c000,
+ 0x448ab782,
+ 0xc0007502,
+ 0xb78492a4,
+ 0x75004b08,
+ 0xd0010902,
+ 0xc4380922,
+ 0x0a020c82,
+ 0xc000b481,
+ 0x4220b101,
+ 0x309428f1,
+ 0x0c82c038,
+ 0xc000b421,
+ 0x98a7c014,
+ 0x0d82c0c0,
+ 0x0d0209e2,
+ 0x097ec01e,
+ 0x984fffb4,
+ 0x0d82c0c0,
+ 0xc1000992,
+ 0xc1000d02,
+ 0xffb40902,
+ 0xc4309846,
+ 0x0a020c8e,
+ 0xc000b481,
+ 0x4220b104,
+ 0x3a00c100,
+ 0x0c8ec030,
+ 0xc000b481,
+ 0xaa39f210,
+ 0x75002a20,
+ 0x9342c001,
+ 0x550cb780,
+ 0x5908d226,
+ 0xe0609d43,
+ 0xd011a885,
+ 0x75002a12,
+ 0x90e4c000,
+ 0x2a14d011,
+ 0xc0007500,
+ 0xffd49082,
+ 0xb7209828,
+ 0xd0a6550c,
+ 0x9d475908,
+ 0xaa25e060,
+ 0x75002a04,
+ 0x9382c000,
+ 0x5994b720,
+ 0x498ab720,
+ 0x404bb780,
+ 0x9e890884,
+ 0x4003ba09,
+ 0xc2009e4a,
+ 0x70885a11,
+ 0x498ab520,
+ 0x9158c000,
+ 0x490ab780,
+ 0xb5408502,
+ 0x0a04499a,
+ 0x490ab580,
+ 0x0c8ac430,
+ 0xb4810a02,
+ 0xb104c000,
+ 0xc1804220,
+ 0xc0303a00,
+ 0xb4810c8a,
+ 0xb780c000,
+ 0xf2904e8c,
+ 0x0a04a955,
+ 0xb5807104,
+ 0xc0004e8c,
+ 0x850290a4,
+ 0x4e9cb540,
+ 0xa8a5da10,
+ 0x4592b720,
+ 0x60a35891,
+ 0x4003ba09,
+ 0x3a849e4c,
+ 0x71020884,
+ 0xcffe020b,
+ 0xb3542a3d,
+ 0x02894426,
+ 0x28d0d051,
+ 0xc0007440,
+ 0xc0c09142,
+ 0xc0120d82,
+ 0x0d0209c2,
+ 0xff940942,
+ 0xb7809bc2,
+ 0x7500520c,
+ 0x90a2c000,
+ 0xffd49eab,
+ 0xb79f9ab9,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0xf8399c22,
+ 0xb724a205,
+ 0xb7405008,
+ 0xb7805284,
+ 0xd0a6448a,
+ 0x9e2d5908,
+ 0x590cb740,
+ 0xa94ee030,
+ 0x659cb760,
+ 0x5098b744,
+ 0x5000b744,
+ 0xb5801a04,
+ 0xc030448a,
+ 0xe200a8cd,
+ 0xd2515a40,
+ 0xda080a20,
+ 0xe210a882,
+ 0xb54082a3,
+ 0x5c955214,
+ 0xb5245c90,
+ 0xc0015008,
+ 0xb78492c4,
+ 0x0a045088,
+ 0x28ced3f1,
+ 0xb5847444,
+ 0xc0015088,
+ 0xb7619034,
+ 0x85064394,
+ 0x4a98b544,
+ 0x764024a6,
+ 0x4c18b544,
+ 0x5214b520,
+ 0x9202c000,
+ 0x08a0d131,
+ 0x402bb780,
+ 0x3c80c801,
+ 0xc2009e48,
+ 0xc0ff5a40,
+ 0x32082a40,
+ 0x520cb580,
+ 0xf9f80806,
+ 0x9c22aa1d,
+ 0x5088b724,
+ 0x6004b740,
+ 0x5904d0a6,
+ 0xc8309e2d,
+ 0xb580aa4d,
+ 0xd132448a,
+ 0xb72009a0,
+ 0xd810458a,
+ 0xba19aa61,
+ 0xc2004002,
+ 0x1a045a11,
+ 0xc00070c8,
+ 0xb7819104,
+ 0xc040438c,
+ 0xb5813a00,
+ 0xb720438c,
+ 0xd0114f0c,
+ 0x70c80a18,
+ 0x9104c000,
+ 0x438cb781,
+ 0x3a00c010,
+ 0x438cb581,
+ 0x0a1cd011,
+ 0xc00070c8,
+ 0xb7819104,
+ 0xc020438c,
+ 0xb5813a00,
+ 0xb780438c,
+ 0xf288580c,
+ 0xf288a916,
+ 0x9e50a919,
+ 0x460ab720,
+ 0x1a24d011,
+ 0xba096241,
+ 0x00b24002,
+ 0xc0007048,
+ 0xb7819106,
+ 0xcfff438c,
+ 0xb5812a7a,
+ 0xd011438c,
+ 0x9e521a22,
+ 0x70486245,
+ 0x9106c000,
+ 0x438cb781,
+ 0x2a7ec7fe,
+ 0x438cb581,
+ 0x451ab740,
+ 0x5e11d0a2,
+ 0x8821f310,
+ 0xc00070c8,
+ 0xb7819104,
+ 0xcfff438c,
+ 0xb5812a4e,
+ 0xb740438c,
+ 0xb721588c,
+ 0xd808438c,
+ 0x9e50aa45,
+ 0xc2009e8a,
+ 0x1a045a11,
+ 0xb7206209,
+ 0x0a045214,
+ 0x4002ba24,
+ 0x249470c8,
+ 0x5214b520,
+ 0x9118c000,
+ 0x3c80c801,
+ 0x5214b520,
+ 0x91c0c000,
+ 0xaa61d810,
+ 0x3c80c801,
+ 0xc2009e48,
+ 0xc0ff5a40,
+ 0x32082a40,
+ 0x520cb580,
+ 0xaa59f008,
+ 0x2a00c040,
+ 0xc0007500,
+ 0xb7809102,
+ 0xc101520c,
+ 0xb5803a00,
+ 0xb760520c,
+ 0xffd45214,
+ 0x080299a8,
+ 0xaa1df9f8,
+ 0xb7009c22,
+ 0xd2515914,
+ 0xb7600e04,
+ 0xda08580c,
+ 0xc00ea881,
+ 0xc0342dfc,
+ 0xf0080cba,
+ 0x5895a961,
+ 0x5810c080,
+ 0xb4419e82,
+ 0xb780c000,
+ 0xf008454a,
+ 0xc200a963,
+ 0xf3105a10,
+ 0xf0088021,
+ 0x0c84a8e9,
+ 0xa261f008,
+ 0xc000b421,
+ 0x46cab780,
+ 0xa96bf008,
+ 0x8021f310,
+ 0xa8edf008,
+ 0xf0080c84,
+ 0xb421a269,
+ 0xb780c000,
+ 0xf00846ca,
+ 0xf310a96f,
+ 0xf0088021,
+ 0x0c8ca8f5,
+ 0xa26df008,
+ 0xc000b421,
+ 0xa97df008,
+ 0xb4410c84,
+ 0xb780c000,
+ 0x0a084e0c,
+ 0x5890d224,
+ 0xc0007244,
+ 0xd131931c,
+ 0xda080e04,
+ 0x9e4ca903,
+ 0x88a1e210,
+ 0xc0007102,
+ 0xf00891d6,
+ 0xf008aa75,
+ 0xc010a8fd,
+ 0xf0080a00,
+ 0xc008a275,
+ 0xf0080880,
+ 0xb780a0fd,
+ 0xc0344f8c,
+ 0xb4810cda,
+ 0xb720c000,
+ 0x0c84500c,
+ 0xc000b421,
+ 0x4f8cb780,
+ 0x0a400ce4,
+ 0xc000b481,
+ 0x500cb720,
+ 0x08c00c84,
+ 0xc000b421,
+ 0x4f8cb780,
+ 0x500cb720,
+ 0xc0101ce4,
+ 0xb5800a00,
+ 0xf0484f8c,
+ 0xc008aa65,
+ 0xb5200880,
+ 0xb481500c,
+ 0xf048c000,
+ 0x0c84a8ed,
+ 0xc000b421,
+ 0xaa65f048,
+ 0xa8edf048,
+ 0xc0100c84,
+ 0xf0480a00,
+ 0xf048a265,
+ 0xc008aa75,
+ 0xf0480880,
+ 0xb481a0ed,
+ 0xf088c000,
+ 0x0c88a965,
+ 0xc000b441,
+ 0x0c80d131,
+ 0x402bb780,
+ 0xa967f088,
+ 0x2a40cffe,
+ 0x8021f310,
+ 0xa969f088,
+ 0xf0880c88,
+ 0xb441a265,
+ 0xd131c000,
+ 0xb7800c80,
+ 0xf088402b,
+ 0xcffea96b,
+ 0xf3102a40,
+ 0xf0488021,
+ 0x1c8ca97d,
+ 0xa269f088,
+ 0xc000b441,
+ 0x0c80d131,
+ 0x402bb780,
+ 0xa97ff048,
+ 0xc20076c0,
+ 0xc2005a11,
+ 0xf3105a14,
+ 0xf0488021,
+ 0xc001a27d,
+ 0xb7209182,
+ 0x1ca8454a,
+ 0xc000b421,
+ 0x46cab780,
+ 0xc2000c84,
+ 0xc2005a0d,
+ 0x324258c0,
+ 0xc000b481,
+ 0x0d04d131,
+ 0xaa41d808,
+ 0xc2000c8c,
+ 0xcffe588c,
+ 0xc20028fc,
+ 0x30985a50,
+ 0xc000b421,
+ 0x0d04d251,
+ 0xaa41d808,
+ 0xc2000ca0,
+ 0x1a105a11,
+ 0xc0042a3c,
+ 0xb4813a00,
+ 0xb780c000,
+ 0x0a044e0c,
+ 0x4e0cb580,
+ 0xa68d9c22,
+ 0x0c92c43e,
+ 0xb4810a02,
+ 0xb103c000,
+ 0xb7804220,
+ 0xda085e8c,
+ 0xda08a885,
+ 0xda08a909,
+ 0xda08a189,
+ 0xda08a081,
+ 0x0cd0a105,
+ 0xb4810a02,
+ 0xb103c000,
+ 0xb7204220,
+ 0xb7805e0c,
+ 0xb7a0520c,
+ 0xb7205e8c,
+ 0xb74040b3,
+ 0xb560412b,
+ 0x2a40412b,
+ 0x03037500,
+ 0x4033b520,
+ 0x40abb540,
+ 0x90e2c000,
+ 0x5008b784,
+ 0xc000750a,
+ 0xb78490f2,
+ 0x751a5008,
+ 0x9204c00d,
+ 0x448ab782,
+ 0xb5820a04,
+ 0xc450448a,
+ 0x0a020ca6,
+ 0xc000b481,
+ 0x4220b103,
+ 0xc0310087,
+ 0x02072880,
+ 0x2a7cc00f,
+ 0x59e1d0a4,
+ 0x59c1d228,
+ 0xcffe0007,
+ 0x0c88287c,
+ 0xb4810a02,
+ 0xb103c000,
+ 0xc1804220,
+ 0x9e9a5bc1,
+ 0x2d7ccffe,
+ 0xb4810cbc,
+ 0xb103c000,
+ 0x00874220,
+ 0x588cb740,
+ 0x438ab782,
+ 0x2880c0fc,
+ 0x283ed0f2,
+ 0x5b19d0a4,
+ 0xd8889e41,
+ 0x9e95a8d2,
+ 0x4392b502,
+ 0x7e7edffc,
+ 0xba1c1218,
+ 0xc0024002,
+ 0x76c291c2,
+ 0x9384c000,
+ 0x480ab780,
+ 0x6104b740,
+ 0x4002ba24,
+ 0x58ffc200,
+ 0x00c258ed,
+ 0xd0a65897,
+ 0x9e2d5908,
+ 0x12425894,
+ 0xe0389e59,
+ 0x5230a8ce,
+ 0x9ea74a7d,
+ 0xa0c2249e,
+ 0x9180c001,
+ 0x468ab780,
+ 0xa8a1da08,
+ 0x4002ba24,
+ 0xc0017048,
+ 0xb780907c,
+ 0xb720488a,
+ 0xb7404812,
+ 0x0a046104,
+ 0x488ab580,
+ 0x4003ba09,
+ 0x5e7fd0a2,
+ 0x9e2d9e49,
+ 0x5a6dc200,
+ 0xc2000218,
+ 0xd2265a17,
+ 0xc2005908,
+ 0x9ea75a14,
+ 0xa94de038,
+ 0x9e4c149e,
+ 0x50b00886,
+ 0xa1413122,
+ 0x480ab780,
+ 0xb5800a04,
+ 0xb784480a,
+ 0x75004188,
+ 0x4208b784,
+ 0x90c4c000,
+ 0x7d3ec01c,
+ 0x9184c002,
+ 0x7d3ec01c,
+ 0x03f0d011,
+ 0x0527d021,
+ 0xf21076c2,
+ 0x0882aa39,
+ 0x0892d001,
+ 0x79022a04,
+ 0x5c8cb740,
+ 0x90e2c000,
+ 0xaa49d808,
+ 0xd8080a04,
+ 0xf008a249,
+ 0xf00aa94b,
+ 0xf310a94c,
+ 0xe0108027,
+ 0xf00882a5,
+ 0xf008a249,
+ 0xb784a0cd,
+ 0x75004688,
+ 0xd0020882,
+ 0x76c20892,
+ 0xd0020a02,
+ 0x78480a42,
+ 0x90c2c000,
+ 0x8542c07c,
+ 0xa123da08,
+ 0xf00876c2,
+ 0xc000a953,
+ 0xda0890c4,
+ 0xc000aa41,
+ 0xda089080,
+ 0xe310aa21,
+ 0xd80880a1,
+ 0xf008aa4d,
+ 0x0a04a0d1,
+ 0xa24dd808,
+ 0x91c0c006,
+ 0x5c8cb720,
+ 0xf2109d2e,
+ 0xc301aa39,
+ 0xc2018136,
+ 0xb7408120,
+ 0x2a044525,
+ 0xf0107500,
+ 0xf3108027,
+ 0x01038221,
+ 0x452db580,
+ 0x90a2c001,
+ 0xc00076c2,
+ 0xda0890c4,
+ 0xc000aa41,
+ 0xda089080,
+ 0xd808aa21,
+ 0x76c6a25d,
+ 0x9082c001,
+ 0xc00076c0,
+ 0x74c091a4,
+ 0xa953d808,
+ 0x8d2ae002,
+ 0x802df210,
+ 0xa251d808,
+ 0x92c0c000,
+ 0xd84874c0,
+ 0xe002a947,
+ 0xc0008d26,
+ 0xda089160,
+ 0x74c0aa41,
+ 0xa947d848,
+ 0xa25dd808,
+ 0x8d2ae002,
+ 0x802df210,
+ 0xa245d848,
+ 0x4308b784,
+ 0xc0007500,
+ 0xb7809302,
+ 0x9e41440a,
+ 0xc0007048,
+ 0x85029244,
+ 0x4318b544,
+ 0x0c82c43a,
+ 0xb4810a02,
+ 0xb103c000,
+ 0xcfef4220,
+ 0xc03a29fe,
+ 0xb4610c82,
+ 0xb780c000,
+ 0x9e41440a,
+ 0x08827048,
+ 0x0892d002,
+ 0x0a0276c6,
+ 0x0a42d001,
+ 0xc0007848,
+ 0x85069242,
+ 0x4318b544,
+ 0x0c82c43a,
+ 0xb4810a02,
+ 0xb103c000,
+ 0xc0114220,
+ 0xc03a3980,
+ 0xb4610c82,
+ 0x7780c000,
+ 0x91a2c001,
+ 0xc00076c0,
+ 0xda0892e4,
+ 0xf008aa21,
+ 0xd808a947,
+ 0xf310a8d5,
+ 0xd8088021,
+ 0xf008a8da,
+ 0x9e44a245,
+ 0xd8080c84,
+ 0x00c2a0da,
+ 0xa0d5d808,
+ 0x92a0c000,
+ 0xaa41da08,
+ 0xa95bf008,
+ 0xa8c9d848,
+ 0x8021f310,
+ 0xa8ced848,
+ 0xa259f008,
+ 0x0c849e44,
+ 0xa0ced848,
+ 0xd84800c2,
+ 0xd808a0c9,
+ 0xf008aa5d,
+ 0xf04aa95f,
+ 0xf048a940,
+ 0xf310a9c7,
+ 0xf0488021,
+ 0xf008a94f,
+ 0xf210a25d,
+ 0xd8488221,
+ 0xf048a8c2,
+ 0xf010a241,
+ 0xe2108037,
+ 0x0c8480a9,
+ 0xa0c2d848,
+ 0xa245f048,
+ 0xa0cdf048,
+ 0x7eeeb7bf,
+ 0x7f6eb7df,
+ 0x7feeb7ff,
+ 0x9c228c60,
+ 0x5b8cb780,
+ 0x08c0d0f1,
+ 0x4031b720,
+ 0x9ea27642,
+ 0x9382c000,
+ 0x0ccac43c,
+ 0xb4810a02,
+ 0xb101c000,
+ 0xd0114220,
+ 0xd3f11914,
+ 0x08882e3e,
+ 0x4002ba09,
+ 0x4002ba12,
+ 0x7048c410,
+ 0x28fcc00e,
+ 0x7044c812,
+ 0x28aed3f1,
+ 0x9080c000,
+ 0x2cbed3f1,
+ 0x0e20d0f1,
+ 0xc0368502,
+ 0xd2080cfe,
+ 0xb421a103,
+ 0x9c22c000,
+ 0x72c0c002,
+ 0x1c0ad011,
+ 0x08029c22,
+ 0xb7809c22,
+ 0x85025b8c,
+ 0xa88dda08,
+ 0xa16bf010,
+ 0xa16ff010,
+ 0xa173f010,
+ 0xa16fd810,
+ 0xa16bd810,
+ 0xa0e1f010,
+ 0xb7209c22,
+ 0xd8105d14,
+ 0xb520a8e9,
+ 0xf010414b,
+ 0xb740aa71,
+ 0xc2005d8c,
+ 0xf0485a0f,
+ 0xf010a245,
+ 0xb520a8ed,
+ 0xf01041cd,
+ 0xb580aa69,
+ 0xf010414d,
+ 0xf010a96f,
+ 0xe210a869,
+ 0xf0088021,
+ 0x9c22a041,
+ 0xac7dc030,
+ 0x5b1cb740,
+ 0xa45dc038,
+ 0xac7dc030,
+ 0xa45dc038,
+ 0xac7dc030,
+ 0xa45dc038,
+ 0x5a94b720,
+ 0x5b8cb780,
+ 0xb7208706,
+ 0xc0025f0c,
+ 0xd28a8576,
+ 0xb540a108,
+ 0x8502485b,
+ 0x4039b540,
+ 0x40a1b540,
+ 0xa61d9c22,
+ 0xb7848440,
+ 0x75004188,
+ 0xc0000787,
+ 0xb72093c2,
+ 0xb7205b14,
+ 0xd3f14149,
+ 0xc0042a1e,
+ 0x09027524,
+ 0x1922d003,
+ 0x0a7f9e4f,
+ 0x87524244,
+ 0x7e64b55f,
+ 0xb55f8f38,
+ 0x8f0c7ee4,
+ 0x7f64b55f,
+ 0xc0022094,
+ 0xc0002a44,
+ 0xb7209340,
+ 0xb7205b14,
+ 0xd3f14149,
+ 0x753c2a1e,
+ 0xd0030902,
+ 0x9e4f1922,
+ 0x42440a7f,
+ 0xb55f8732,
+ 0x8f207e64,
+ 0x7ee4b55f,
+ 0xb55f8f08,
+ 0x20947f64,
+ 0x30982a74,
+ 0x4149b520,
+ 0x5b8cb7c0,
+ 0x5a8cb7a0,
+ 0x5f94b7a0,
+ 0x0e72d011,
+ 0xf2488502,
+ 0x0109a8cd,
+ 0xa127f208,
+ 0xa22df210,
+ 0xa0a5f248,
+ 0xaa6df208,
+ 0xd2240189,
+ 0x0d0259ff,
+ 0x98e6c054,
+ 0x9e92097f,
+ 0x05810181,
+ 0x98e0c054,
+ 0xaa35f208,
+ 0x00899eae,
+ 0x58ffd224,
+ 0x9e6b7202,
+ 0x90fac000,
+ 0x90e4c000,
+ 0xc0007002,
+ 0xf2109094,
+ 0xf008a055,
+ 0xf248a967,
+ 0xf208aa65,
+ 0xf310a949,
+ 0xd1248021,
+ 0x00895908,
+ 0x58ffd224,
+ 0xf808769c,
+ 0xc000a0e9,
+ 0x850a90b2,
+ 0x91e0c000,
+ 0x5a04c100,
+ 0xc000751c,
+ 0x850e90b2,
+ 0x90e0c000,
+ 0x7698c004,
+ 0xe009850a,
+ 0xf2088d22,
+ 0xf210aa79,
+ 0x1209a8d5,
+ 0x6245c301,
+ 0x70485890,
+ 0x9236c000,
+ 0xaa55d2d0,
+ 0xc0007500,
+ 0xda909184,
+ 0x8506aa41,
+ 0xa157d2d0,
+ 0xda900a04,
+ 0xc000a241,
+ 0xf20893e0,
+ 0xf210a8f9,
+ 0xc301aa55,
+ 0xc2006095,
+ 0x71025a0c,
+ 0x923cc000,
+ 0xaa55d2d0,
+ 0xc0007500,
+ 0xda909184,
+ 0x8506aa41,
+ 0xa157d2d0,
+ 0xda901a04,
+ 0xc000a241,
+ 0x850290a0,
+ 0xa157d2d0,
+ 0xaa41da90,
+ 0x4002ba24,
+ 0x752ac004,
+ 0x90dac000,
+ 0x855ac002,
+ 0x9100c000,
+ 0x7502c008,
+ 0x90dcc000,
+ 0x8506c004,
+ 0xa143da90,
+ 0xa8c1da90,
+ 0xaa6df008,
+ 0xa8eef208,
+ 0x4002ba09,
+ 0xb7406243,
+ 0x9e495d94,
+ 0x62438502,
+ 0xa959d050,
+ 0x0a00c002,
+ 0x5919d228,
+ 0xf0087482,
+ 0x0685a167,
+ 0x90c4c000,
+ 0xaa55f210,
+ 0x92a0c000,
+ 0xa8d6f210,
+ 0xaa79f208,
+ 0x5c90d0a2,
+ 0x70481209,
+ 0x90b8c000,
+ 0xc0007640,
+ 0xd0a691dc,
+ 0xf2105d04,
+ 0xc200802b,
+ 0xf3105a13,
+ 0xf0088a21,
+ 0xc000a265,
+ 0xf00a9080,
+ 0xf208a164,
+ 0x0a04aa49,
+ 0xf0087502,
+ 0xf208a3ea,
+ 0xc000a249,
+ 0xd2089144,
+ 0xdac8aa61,
+ 0xda48a265,
+ 0xc009a251,
+ 0xd2509000,
+ 0x7500aa31,
+ 0x9184c000,
+ 0xaa39d250,
+ 0xc0007500,
+ 0xda889142,
+ 0x7504aa41,
+ 0x90b4c000,
+ 0xc0008506,
+ 0x85029060,
+ 0xa153d288,
+ 0xa94bda08,
+ 0xa9cdf208,
+ 0xa958f252,
+ 0x0af0d0b1,
+ 0x89a7e210,
+ 0xa922d208,
+ 0x5987d1a4,
+ 0x83a7e020,
+ 0x55eb5d04,
+ 0x9b85c034,
+ 0xa9caf208,
+ 0xaa49f250,
+ 0x1cb4d011,
+ 0x60c38502,
+ 0xa8a2d208,
+ 0xa15bf250,
+ 0x9e5b1d84,
+ 0x0102d030,
+ 0xe2205d85,
+ 0x050381af,
+ 0xa1caf250,
+ 0xc03455e7,
+ 0xd2509b6c,
+ 0x7500aa31,
+ 0xa049f250,
+ 0x90e2c001,
+ 0xaa55da48,
+ 0xda487500,
+ 0xc000a957,
+ 0xda889102,
+ 0xe200aa41,
+ 0xc0005a40,
+ 0xb7809144,
+ 0xda085c8c,
+ 0xdac8a881,
+ 0xc001a0e1,
+ 0xc20090e0,
+ 0xf3105a45,
+ 0xdac88021,
+ 0xdac8a261,
+ 0xda88a9e2,
+ 0x0d02a9c1,
+ 0x9b43c034,
+ 0xc0001804,
+ 0xda0892a0,
+ 0xda50aa49,
+ 0xc200a927,
+ 0xc2005a40,
+ 0xf3105a45,
+ 0xdac88021,
+ 0xdac8a261,
+ 0xda08a9e2,
+ 0x0d02a9c9,
+ 0x9b2dc034,
+ 0xa061dac8,
+ 0x0e72d031,
+ 0x5993d224,
+ 0xf20876c2,
+ 0x0d82aa49,
+ 0x0db2d00d,
+ 0xc0017504,
+ 0xdac89094,
+ 0xda48a8e2,
+ 0xd011a8d1,
+ 0x70480e14,
+ 0x913ac000,
+ 0xa941da10,
+ 0x1a14d011,
+ 0xc0007088,
+ 0xd01190d6,
+ 0xc0001e12,
+ 0xd01191c0,
+ 0x70481e14,
+ 0x90f8c000,
+ 0x0a14d011,
+ 0xc0007088,
+ 0xd01190dc,
+ 0xdac80e12,
+ 0xdac8a261,
+ 0xf210a963,
+ 0xdac8882f,
+ 0xdac8a261,
+ 0xb75fa8e1,
+ 0x70757e7c,
+ 0x9298c000,
+ 0xa8c2da10,
+ 0x1e14d011,
+ 0xd00e7048,
+ 0xc0000a12,
+ 0xd011913c,
+ 0x70480e14,
+ 0x90dcc000,
+ 0x1a12d011,
+ 0xa261dac8,
+ 0xaa49f208,
+ 0xc0017504,
+ 0xd2089034,
+ 0x752caa6d,
+ 0x9392c000,
+ 0xa943da10,
+ 0x7ee4b75f,
+ 0xaa5dda48,
+ 0x88a5e010,
+ 0x4002ba24,
+ 0xc0007102,
+ 0xb75f91f6,
+ 0xdac87f64,
+ 0xf010a8e1,
+ 0x70488825,
+ 0x90dcc000,
+ 0x1a14d011,
+ 0xa261dac8,
+ 0xa969d208,
+ 0xaa61dac8,
+ 0xdac87104,
+ 0x0a02a8e1,
+ 0x1a42d00a,
+ 0xd2089ea2,
+ 0x2098a8e6,
+ 0x9e544d7d,
+ 0x30942128,
+ 0xc0809e4a,
+ 0xc2005a40,
+ 0x70885a41,
+ 0xd0040902,
+ 0x0a7f1922,
+ 0x9e924244,
+ 0x9d192098,
+ 0xc3012494,
+ 0xdac83494,
+ 0xdac8a0e2,
+ 0xda48a0e6,
+ 0x8502a0d2,
+ 0xaa65dac8,
+ 0xd28a8706,
+ 0xf208a148,
+ 0xd250a14f,
+ 0xd250a133,
+ 0xd288a13b,
+ 0xd250a15b,
+ 0xd288a137,
+ 0xda50a15f,
+ 0xda08a127,
+ 0xda48a14b,
+ 0xda88a157,
+ 0xda48a143,
+ 0xb79fa25d,
+ 0xb7bf7d6e,
+ 0xb7df7dee,
+ 0xb7ff7e6e,
+ 0xc0027eee,
+ 0x9c228c40,
+ 0xb7c0a60d,
+ 0xb7805d8c,
+ 0xb7c05b8c,
+ 0x08025d14,
+ 0xf20876c2,
+ 0x0289a182,
+ 0x9044c003,
+ 0x5a94b7a0,
+ 0xa045f248,
+ 0xa049da10,
+ 0xa9b6f210,
+ 0xa9a5f210,
+ 0x5d840d02,
+ 0x9a4dc034,
+ 0xa8aada08,
+ 0xc0100a22,
+ 0x08c37008,
+ 0x7002c012,
+ 0xc0007640,
+ 0xb78092e2,
+ 0xf2085b0c,
+ 0xf210a88d,
+ 0xd0a6a8a6,
+ 0xe2105914,
+ 0xd0a688a3,
+ 0x58975d04,
+ 0x812ac201,
+ 0x80a3e210,
+ 0x588b0888,
+ 0xa0b1f248,
+ 0xaa25f210,
+ 0x5904d226,
+ 0x8021f310,
+ 0xa8b1f248,
+ 0x5889d224,
+ 0x71029e4c,
+ 0x4828b311,
+ 0xf2489e89,
+ 0xd248a0b2,
+ 0x7500aa51,
+ 0x91e2c000,
+ 0xaa59d248,
+ 0xc0007500,
+ 0xd0a69144,
+ 0xf2105d0c,
+ 0xc200802b,
+ 0xf2485a0f,
+ 0xf248a231,
+ 0xb740a8b1,
+ 0x62115f8c,
+ 0xa8daf008,
+ 0x5a17c200,
+ 0x9e8a1098,
+ 0x7244c410,
+ 0xa0b2f248,
+ 0xf2108502,
+ 0xf210a14b,
+ 0xf208a14f,
+ 0xb79fa143,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0xa61d9c22,
+ 0x5f94b720,
+ 0x5d8cb7e0,
+ 0x40ddb740,
+ 0xaa61f208,
+ 0xf3109e9d,
+ 0xb7608821,
+ 0xb5805b84,
+ 0xd21040cd,
+ 0xd080aa29,
+ 0xd210a265,
+ 0x9e4da8a9,
+ 0x9e5c7442,
+ 0x4622b427,
+ 0x5b14b7c0,
+ 0x5a8cb7c0,
+ 0xa960f20a,
+ 0xaa4df210,
+ 0xa957f208,
+ 0xa9f7f040,
+ 0x8a21f310,
+ 0x80a1e310,
+ 0x8031f310,
+ 0x7440de01,
+ 0xa275f040,
+ 0xa0d5f208,
+ 0x90d6c000,
+ 0x0a02cf01,
+ 0xa255f208,
+ 0xa94ff210,
+ 0xaa61f208,
+ 0x8821f310,
+ 0xa829fa08,
+ 0xd2240089,
+ 0xe00058ff,
+ 0x04020002,
+ 0x0c02d003,
+ 0x5e0cd022,
+ 0x58f5c000,
+ 0x3118d020,
+ 0x590cc000,
+ 0x1120e000,
+ 0xd0031520,
+ 0xd1221d22,
+ 0xc1005cf4,
+ 0x31985a0d,
+ 0xaa75f040,
+ 0xd1a40087,
+ 0x750058ff,
+ 0xa029fa08,
+ 0xa0adfa08,
+ 0x90b6c000,
+ 0xf0408502,
+ 0xf000a177,
+ 0x7504aa61,
+ 0x9344c000,
+ 0x0e60d0b1,
+ 0xa882d208,
+ 0xa9a9f208,
+ 0xa8a5f208,
+ 0xd1a49e4c,
+ 0xd0265985,
+ 0xe2205133,
+ 0x050381af,
+ 0xa1c6f208,
+ 0x9969c034,
+ 0xa045f208,
+ 0x9320c001,
+ 0xaa29f208,
+ 0xa8e9d800,
+ 0xd0808502,
+ 0x1a04a16f,
+ 0xa229f208,
+ 0xd8000884,
+ 0xd210a0e9,
+ 0x7640a8a2,
+ 0x90e4c001,
+ 0xaa5df210,
+ 0xa8f5f040,
+ 0xc2006a36,
+ 0x70485a13,
+ 0x929cc000,
+ 0xd2108506,
+ 0xf208a12b,
+ 0x7500aa29,
+ 0x91c2c000,
+ 0xaa49d210,
+ 0xa967da48,
+ 0x8021f310,
+ 0xa265da48,
+ 0x9080c000,
+ 0xa0aad210,
+ 0xaa29f208,
+ 0xc0007500,
+ 0xd2109084,
+ 0xb79fa229,
+ 0xb7bf7e6e,
+ 0xb7df7eee,
+ 0xb7ff7f6e,
+ 0xc0027fee,
+ 0x9c228c00,
+ 0x5d8cb780,
+ 0x5b8cb720,
+ 0xa903f208,
+ 0x4035b720,
+ 0xe2109e8a,
+ 0x7642812f,
+ 0xf2080189,
+ 0xc008a101,
+ 0xd8109144,
+ 0x7500aa49,
+ 0x90e2c000,
+ 0xa9ced090,
+ 0xc00076c0,
+ 0xb78091c2,
+ 0xb7205d0c,
+ 0xda085a8c,
+ 0x9ea0a88a,
+ 0xb5200003,
+ 0xc00147b3,
+ 0xb7209220,
+ 0xb7205d14,
+ 0xb7805b0c,
+ 0xb740414b,
+ 0x6a14412b,
+ 0x68a6d011,
+ 0xb7007102,
+ 0x04035a8c,
+ 0x91bcc000,
+ 0x47aab780,
+ 0x414ab720,
+ 0x4002ba24,
+ 0x58886a16,
+ 0xc0007048,
+ 0xb720917a,
+ 0xd3f1414a,
+ 0xc2006a26,
+ 0x70485a23,
+ 0x915cc000,
+ 0xd0488506,
+ 0x850ea177,
+ 0xa14bd090,
+ 0x9080c000,
+ 0xa1f6d048,
+ 0x5f8cb780,
+ 0xa88df208,
+ 0xc004747c,
+ 0xf01093b2,
+ 0x7502aa49,
+ 0x9364c000,
+ 0xaa49d810,
+ 0xc0007500,
+ 0xd09090e2,
+ 0x7500aa4d,
+ 0x9222c000,
+ 0xa8e5f048,
+ 0xd0908502,
+ 0xb520a157,
+ 0xb780412c,
+ 0xb580414a,
+ 0xd09040aa,
+ 0xc003a15b,
+ 0xd09093e0,
+ 0x7640a8da,
+ 0x9342c000,
+ 0x40aab780,
+ 0x414ab720,
+ 0x4002ba24,
+ 0x0242688c,
+ 0x5a0bc200,
+ 0x40aab580,
+ 0xa8e5f048,
+ 0xb5208502,
+ 0xd090412c,
+ 0x8506a15b,
+ 0xa157d090,
+ 0x9040c003,
+ 0x5b0cb740,
+ 0xa0d6d090,
+ 0x414ab720,
+ 0xaa49d808,
+ 0x6a2468a8,
+ 0xc0017048,
+ 0xb780925c,
+ 0xb72040aa,
+ 0xba24414a,
+ 0x6a0e4002,
+ 0x70485884,
+ 0x90fcc001,
+ 0x412cb780,
+ 0xa8e5f048,
+ 0x5904d226,
+ 0x8021f310,
+ 0xc0007048,
+ 0x8506939c,
+ 0xa15bd090,
+ 0xa15fd090,
+ 0xaa55d808,
+ 0xa173d048,
+ 0xa8c9d810,
+ 0xc2006a14,
+ 0x70485a0f,
+ 0xa0d6d850,
+ 0xa0c2d890,
+ 0x907ac000,
+ 0xd0488502,
+ 0xc001a17b,
+ 0xd04890a0,
+ 0x7500aa75,
+ 0xd0908502,
+ 0xc000a15b,
+ 0xb78093a4,
+ 0xb72040aa,
+ 0xba24414a,
+ 0xd0134002,
+ 0xe2106947,
+ 0xb72080a3,
+ 0x588b4134,
+ 0x40aab520,
+ 0xaa65f048,
+ 0x5d04d0a6,
+ 0x812ac201,
+ 0x8021f310,
+ 0x5a0bc200,
+ 0x412cb580,
+ 0x414ab780,
+ 0x47aab580,
+ 0xa8ddd090,
+ 0xc0007440,
+ 0xd0489202,
+ 0x7500aa71,
+ 0xc0008506,
+ 0xd0489102,
+ 0x7500aa79,
+ 0x9064c000,
+ 0xd090850e,
+ 0xd810a14b,
+ 0x7500aa49,
+ 0x48a4b340,
+ 0x414cb780,
+ 0x462cb580,
+ 0x76449c22,
+ 0x48a4b340,
+ 0x7486c003,
+ 0x90bac001,
+ 0x4188b784,
+ 0xc0007500,
+ 0xb7209102,
+ 0xb7405b14,
+ 0xc0006204,
+ 0xb72090c0,
+ 0xb7405b14,
+ 0xb7206284,
+ 0x9e2d4ccb,
+ 0x5904d0a6,
+ 0xaa4dc830,
+ 0x5a8cb720,
+ 0x05836229,
+ 0xb5800003,
+ 0xb78041ad,
+ 0xc20041ac,
+ 0xc0015a37,
+ 0xb70092a0,
+ 0xb7605a8c,
+ 0xc1005b14,
+ 0x75005a4b,
+ 0x4188b724,
+ 0xc0000902,
+ 0xc200911c,
+ 0x75005a07,
+ 0xffff0904,
+ 0xc01c939a,
+ 0xc0007c7e,
+ 0xd8d09102,
+ 0xb740aa65,
+ 0xc0006204,
+ 0xd8d090c0,
+ 0xb740aa65,
+ 0xd2266284,
+ 0x9e2d5904,
+ 0xa8cec830,
+ 0xa8e1f008,
+ 0x50ab9e4c,
+ 0xb5206099,
+ 0xb78041ac,
+ 0x853641ac,
+ 0x88a5e210,
+ 0x5207c200,
+ 0x41acb580,
+ 0xaa49f010,
+ 0xc0007502,
+ 0xb78090e4,
+ 0xb58041ac,
+ 0x9c22422c,
+ 0xa9d1d090,
+ 0xc00574c0,
+ 0xb74090c4,
+ 0xb720422c,
+ 0xd12641b4,
+ 0xd0a2590c,
+ 0xf2105c88,
+ 0x70488825,
+ 0x9176c000,
+ 0x5d0cd0a6,
+ 0x88abe210,
+ 0x5a08c100,
+ 0xc0047048,
+ 0x9e49919a,
+ 0x70448586,
+ 0xa1cfd090,
+ 0xa1dfd090,
+ 0x903cc002,
+ 0x5a04c100,
+ 0xc0007048,
+ 0xd0a290f6,
+ 0x71045e04,
+ 0x937ac000,
+ 0x482ab720,
+ 0x5f94b720,
+ 0xb5200898,
+ 0xb780482a,
+ 0xf01041cd,
+ 0xb740a8ed,
+ 0x624340c5,
+ 0xc2000a20,
+ 0xf3105a11,
+ 0x851a8221,
+ 0xa14bd090,
+ 0xc002850e,
+ 0xb7209340,
+ 0xb720482a,
+ 0x08885f94,
+ 0x482ab520,
+ 0x41cdb780,
+ 0xa8edf010,
+ 0x40c5b740,
+ 0x0a406243,
+ 0x5a15c200,
+ 0x8221f310,
+ 0xd090850e,
+ 0xb580a14b,
+ 0xb56040cd,
+ 0xfffc4e38,
+ 0x9e499340,
+ 0x5a04c100,
+ 0xc0007048,
+ 0xd0a290f6,
+ 0x71045e04,
+ 0x937ac000,
+ 0x482ab720,
+ 0x5f94b720,
+ 0xb5201888,
+ 0xb780482a,
+ 0xf01041cd,
+ 0xb740a8ed,
+ 0x624340c5,
+ 0xc2000a40,
+ 0xf3105a15,
+ 0x851a8a21,
+ 0xa14bd090,
+ 0xc000857b,
+ 0xb7209340,
+ 0xb720482a,
+ 0x18845f94,
+ 0x482ab520,
+ 0x41cdb780,
+ 0xa8edf010,
+ 0x40c5b740,
+ 0xc0026243,
+ 0xc2000a00,
+ 0xf3105a19,
+ 0x850e8a21,
+ 0xa14bd090,
+ 0xb580857f,
+ 0xb54040cd,
+ 0xfffa4e38,
+ 0xd0909300,
+ 0xfffaa1cd,
+ 0x85029280,
+ 0xa14fd090,
+ 0x91e0fffa,
+ 0xb780a60d,
+ 0xf2085b8c,
+ 0x9ea5a881,
+ 0x00077444,
+ 0xc0000301,
+ 0xb7809104,
+ 0xdac85b0c,
+ 0xc008a805,
+ 0x74429300,
+ 0x92a4c008,
+ 0xaa29da10,
+ 0xc0007500,
+ 0xd2909344,
+ 0x7500aa2d,
+ 0x92a4c000,
+ 0xaa25d290,
+ 0x5b0cb720,
+ 0x5d94b720,
+ 0xb7007500,
+ 0xb7404cab,
+ 0xe00244db,
+ 0xf2108526,
+ 0xb5808021,
+ 0xc00744cb,
+ 0xd2909300,
+ 0x7500aa2d,
+ 0x9382c001,
+ 0x5a8cb780,
+ 0x5b0cb740,
+ 0xa926d290,
+ 0x5d94b760,
+ 0xa891d2c8,
+ 0xa9c5d008,
+ 0xa8cad008,
+ 0xba097680,
+ 0x00024000,
+ 0xd8509e49,
+ 0xd011a967,
+ 0xb3040a02,
+ 0x00094422,
+ 0x7002c010,
+ 0x70c0cc12,
+ 0x04077680,
+ 0xe0020007,
+ 0xf2108526,
+ 0xd8508021,
+ 0xb780a265,
+ 0x75004648,
+ 0x91a2c000,
+ 0xa937da50,
+ 0xaa21da90,
+ 0x80a7e210,
+ 0xda900a04,
+ 0xda50a221,
+ 0x0007a0b5,
+ 0x9320c005,
+ 0xaa39d290,
+ 0xc0017500,
+ 0xb78091a2,
+ 0xd2085b0c,
+ 0xd208a881,
+ 0xd208a88a,
+ 0xd011a905,
+ 0x9e490812,
+ 0xaa25d290,
+ 0x7002c010,
+ 0x5d8cb720,
+ 0x7080c812,
+ 0x00057500,
+ 0x44bbb740,
+ 0x8526e002,
+ 0x8021f210,
+ 0xa937da50,
+ 0x44abb580,
+ 0xa8a1da90,
+ 0x8025f210,
+ 0x08840005,
+ 0xa0a1da90,
+ 0xa235da50,
+ 0x9120c004,
+ 0x5a8cb780,
+ 0xa8b1f250,
+ 0xa995f248,
+ 0x9ea67440,
+ 0xa18df248,
+ 0x9316c000,
+ 0x5d8cb720,
+ 0x4729b780,
+ 0x9e887500,
+ 0x0802d002,
+ 0x90a4c000,
+ 0xaa29d290,
+ 0xb7800008,
+ 0xd2085b0c,
+ 0x0289a889,
+ 0x7040c010,
+ 0x9280c001,
+ 0x5b0cb7a0,
+ 0x0a50d0b1,
+ 0xa882d208,
+ 0xa929f250,
+ 0xf2081196,
+ 0x5c85a8ad,
+ 0x588b9e4c,
+ 0x70c2cc12,
+ 0x51f35150,
+ 0x5914d126,
+ 0x5987d1a4,
+ 0x81afe220,
+ 0xf2500d02,
+ 0xc014a129,
+ 0xb7849a14,
+ 0x75004188,
+ 0x90e2c000,
+ 0xc0149e83,
+ 0xc0009a36,
+ 0x58199060,
+ 0xaa29d290,
+ 0x5d94b700,
+ 0xc01000e8,
+ 0x12687002,
+ 0x7100c012,
+ 0xa8a6d290,
+ 0xa8a9d208,
+ 0xd2087640,
+ 0xd011a925,
+ 0xb3040a02,
+ 0x00094422,
+ 0x7040c010,
+ 0x7080c812,
+ 0xb7407640,
+ 0x000544da,
+ 0x8526e002,
+ 0x80a1e210,
+ 0x4648b780,
+ 0xb5207500,
+ 0xc00044ca,
+ 0xda5091a2,
+ 0xda90a937,
+ 0xe210aa21,
+ 0x0a0480a5,
+ 0xa221da90,
+ 0xa0b5da50,
+ 0xaa35da08,
+ 0xa8a9da10,
+ 0x70481a08,
+ 0x4443b416,
+ 0xb79f0005,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0xa60d9c22,
+ 0x5b8cb720,
+ 0x402db780,
+ 0x9e8d7502,
+ 0x9264c00c,
+ 0x5d0cb780,
+ 0xa88ef208,
+ 0x7646c003,
+ 0xc0019ea2,
+ 0xb784911a,
+ 0x75004188,
+ 0x9102c000,
+ 0x5c8cb780,
+ 0x6204b740,
+ 0x90c0c000,
+ 0x5c8cb780,
+ 0x6284b740,
+ 0xa881f208,
+ 0xd0a69e2d,
+ 0xc8305904,
+ 0x9e49aa4d,
+ 0xd2246219,
+ 0xb7805817,
+ 0xd0b15b0c,
+ 0xb72008c0,
+ 0x9ea64031,
+ 0x5a8cb7c0,
+ 0xc0015407,
+ 0xb7c09300,
+ 0xb7c05b14,
+ 0xd0a25a8c,
+ 0xb7245e4b,
+ 0x75004188,
+ 0x5c94b720,
+ 0xc0000902,
+ 0xc200911c,
+ 0x75005a07,
+ 0xffff0904,
+ 0xc01c939a,
+ 0xc0007c7e,
+ 0xb7809102,
+ 0xb740404d,
+ 0xc0006204,
+ 0xb78090c0,
+ 0xb740404d,
+ 0xd2266284,
+ 0x9e2d5904,
+ 0xa8cec830,
+ 0xa8cdf010,
+ 0x50ab9e4c,
+ 0xd0a46099,
+ 0xd0b15817,
+ 0xd2080e60,
+ 0x9e89a881,
+ 0x9e915407,
+ 0xda105404,
+ 0x7500aa29,
+ 0x90e2c000,
+ 0xaa2dd290,
+ 0xc0007500,
+ 0xf24892c2,
+ 0xf210a95b,
+ 0xf2488029,
+ 0xf250a259,
+ 0xf250a026,
+ 0xf248a02a,
+ 0xf010a046,
+ 0xf248aa49,
+ 0xf248a251,
+ 0xc007a255,
+ 0xd2909300,
+ 0x7500aa39,
+ 0x91c4c007,
+ 0x5d8cb720,
+ 0x46a9b780,
+ 0x9e897500,
+ 0x90c4c007,
+ 0xa95bf248,
+ 0x8029f210,
+ 0xa259f248,
+ 0xa8b5d290,
+ 0xc0007440,
+ 0xf01090c2,
+ 0xc000aa49,
+ 0xf2489240,
+ 0xf010a8d1,
+ 0xd0a6aa49,
+ 0xe2405908,
+ 0xd2268123,
+ 0xf3105904,
+ 0xf3108021,
+ 0xc2008221,
+ 0xf2485a0d,
+ 0xf248a251,
+ 0xf248aa51,
+ 0xd290a255,
+ 0x7440a8b5,
+ 0x9102c000,
+ 0xa026f250,
+ 0xa02af250,
+ 0x9360c005,
+ 0x4649b780,
+ 0xc0017500,
+ 0xda9090e2,
+ 0xf250a8a2,
+ 0xda90a925,
+ 0x1c84aa21,
+ 0xd0b19d1e,
+ 0xd3330ce0,
+ 0xb7606127,
+ 0xc2004031,
+ 0xc2005a40,
+ 0xc2015a45,
+ 0xf3108128,
+ 0x9ea18021,
+ 0xa9a1da90,
+ 0xf2500507,
+ 0x55afa225,
+ 0x98d7c014,
+ 0xa025f250,
+ 0xa029f250,
+ 0x9220c004,
+ 0xa92bda10,
+ 0xaa2df210,
+ 0xa8a6f250,
+ 0x88a1e310,
+ 0xda129e4a,
+ 0x8185a928,
+ 0xd0331884,
+ 0xf3106122,
+ 0xf31088b1,
+ 0xc0088a21,
+ 0xc2007540,
+ 0xc2015a07,
+ 0xf3108128,
+ 0xf2508021,
+ 0xc000a225,
+ 0x9eab91bc,
+ 0x9b82ffb4,
+ 0xaa25f250,
+ 0x52a3c200,
+ 0x5203c200,
+ 0xa225f250,
+ 0x6304b740,
+ 0xaa25f250,
+ 0x5904d2a6,
+ 0xc8309e2d,
+ 0x0189a8cd,
+ 0x59ffd224,
+ 0x01030c82,
+ 0xc0140503,
+ 0xb74098ff,
+ 0x9d47639c,
+ 0xa926c210,
+ 0x05810181,
+ 0x98dbc014,
+ 0xaa29f210,
+ 0xf2507502,
+ 0xc000a025,
+ 0xf25090c4,
+ 0xc002a029,
+ 0xda109040,
+ 0xda12a8aa,
+ 0xd0a2a954,
+ 0xf0115c84,
+ 0x70488e22,
+ 0x9176c000,
+ 0xaa45f248,
+ 0xc2000208,
+ 0xf2505a07,
+ 0xc001a229,
+ 0xf24891c0,
+ 0xd011a8c5,
+ 0x9e4a0e12,
+ 0x8a21f310,
+ 0x6104d033,
+ 0xc2016099,
+ 0xf2508122,
+ 0xda10a12b,
+ 0xd0b1aa55,
+ 0x1a040ce0,
+ 0x5a07c200,
+ 0x8021f310,
+ 0x4031b760,
+ 0xa229f250,
+ 0xa9d5da10,
+ 0x05079ea1,
+ 0x198455af,
+ 0x984bc014,
+ 0xa029f250,
+ 0x90e0c000,
+ 0xaa2df210,
+ 0xf2100a04,
+ 0xf248a22d,
+ 0xf210a8c9,
+ 0xf250aa29,
+ 0xd0a6a8aa,
+ 0x75025904,
+ 0x8122c201,
+ 0x802bf210,
+ 0xa0aef250,
+ 0x588bc200,
+ 0x90f4c000,
+ 0xd0109e4a,
+ 0xf2507044,
+ 0xb79fa229,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0xb7209c22,
+ 0xd8105b8c,
+ 0x0802aa61,
+ 0x41abb580,
+ 0xb7409c22,
+ 0xb7205b0c,
+ 0xf0125f94,
+ 0xf008a96c,
+ 0xb720aa4d,
+ 0xb740414d,
+ 0xf31040dd,
+ 0x62438a21,
+ 0x8021f310,
+ 0x40cdb580,
+ 0xa8edf010,
+ 0xa0cdf008,
+ 0xc0089c22,
+ 0x9e5874c0,
+ 0xc0009e52,
+ 0xd00290fc,
+ 0x1a1470c0,
+ 0x501351f3,
+ 0x7400c005,
+ 0x90fcc000,
+ 0x7000d002,
+ 0x50131a50,
+ 0xb7400128,
+ 0xb7806304,
+ 0xd1a6638c,
+ 0x9e2d5904,
+ 0xa8e5c040,
+ 0xaa4dc830,
+ 0x60097044,
+ 0x1214d01d,
+ 0x5013d01a,
+ 0x48bab340,
+ 0x50101222,
+ 0x9e5c9c22,
+ 0x08827526,
+ 0x4000d01e,
+ 0x48bcb340,
+ 0x7500c380,
+ 0x90bcc000,
+ 0x084ec002,
+ 0xc0049c22,
+ 0xc0007508,
+ 0x0a04915c,
+ 0x5a07c200,
+ 0x7508c004,
+ 0xffff0884,
+ 0xb740935a,
+ 0x9d4b641c,
+ 0xa805c220,
+ 0x691dd013,
+ 0x8021e210,
+ 0xe0009c22,
+ 0xb3300d00,
+ 0xb3304422,
+ 0xb3404842,
+ 0xc00248a2,
+ 0xf2108502,
+ 0x7500882d,
+ 0x90fac000,
+ 0x0c029e59,
+ 0x50311209,
+ 0x9e5a9c22,
+ 0x9e5250d0,
+ 0x52695469,
+ 0x9c223042,
+ 0x0007a685,
+ 0x9e909e81,
+ 0x2cfccffe,
+ 0x9e4c9e41,
+ 0x64915c41,
+ 0x28fccffe,
+ 0x584162c3,
+ 0x60839e44,
+ 0xc2806009,
+ 0x9ea05a41,
+ 0x9e880490,
+ 0x04909d09,
+ 0x71029e4c,
+ 0x8504c001,
+ 0x5e41d0a2,
+ 0x4468b302,
+ 0x8121f320,
+ 0x5d40d0a6,
+ 0x2afccffe,
+ 0x8123f310,
+ 0x040d000d,
+ 0xd0339e54,
+ 0x9e5c6138,
+ 0xe2106145,
+ 0x9e918125,
+ 0xb7bf0462,
+ 0xb7df7f6e,
+ 0x8c407fee,
+ 0x00009c22,
+ 0x87c2c809,
+ 0x0c20b060,
+ 0x87c2c809,
+ 0x0a60b060,
+ 0x87c2c809,
+ 0x09c0b060,
+};
+
+unsigned long aui32H263VBR_MasterMTXTOPAZFWData[] = {
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000044,
+ 0x00000090,
+ 0x00000000,
+ 0x00000001,
+ 0x00000000,
+ 0x809000b0,
+ 0x80900374,
+ 0x82884ef4,
+ 0x82884a24,
+ 0x82884a34,
+ 0x82884ad4,
+ 0x82884940,
+ 0x82884988,
+ 0x82884996,
+ 0x82884b04,
+ 0x82884b40,
+ 0x82884b7c,
+ 0x82884bb4,
+ 0x82884bb8,
+ 0x82884be8,
+ 0x82884c18,
+ 0x82884c40,
+ 0x828849fc,
+ 0x82884c48,
+ 0x82884c50,
+ 0x82884c80,
+ 0x82884c88,
+ 0x82884cbc,
+ 0x8288530c,
+ 0x8288519e,
+ 0x82885206,
+ 0x82885246,
+ 0x828852c8,
+ 0x82885178,
+ 0x82884ebc,
+ 0x82884fbc,
+ 0x82884ffc,
+ 0x82885000,
+ 0x82885008,
+ 0x82885064,
+ 0x828850c0,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x809007c8,
+ 0x809007c8,
+ 0x809026b8,
+ 0x80902138,
+ 0x80904308,
+ 0x80902aa4,
+ 0x80902460,
+ 0x809007c8,
+ 0x809007c8,
+ 0x809007c8,
+ 0x809007c8,
+ 0x809007c8,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0xa0101100,
+ 0xa01001b0,
+ 0xa0101102,
+ 0xa01001b2,
+ 0xa0101104,
+ 0xa0100124,
+ 0xa0101106,
+ 0xa0100126,
+ 0xa0100134,
+ 0x00000000,
+ 0xa0101120,
+ 0xa0100136,
+ 0xa0101122,
+ 0xa0100144,
+ 0x80101160,
+ 0x80101162,
+ 0x80101180,
+ 0x80101182,
+ 0x80100140,
+ 0x80100142,
+ 0x80100150,
+ 0x80100152,
+ 0x80100154,
+ 0x80100146,
+ 0x803003a0,
+ 0x80100100,
+ 0x80105156,
+ 0xa0101164,
+ 0xa0100184,
+ 0x80101194,
+ 0x801001b4,
+ 0x80100146,
+ 0x00000000,
+ 0x00000003,
+ 0x00000002,
+ 0x00000002,
+ 0x00000001,
+ 0x00000001,
+ 0x00000001,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000005,
+ 0x000f9400,
+ 0x000f9401,
+ 0x000fd403,
+ 0x000fd40b,
+ 0x000fd41b,
+ 0x000ffc1b,
+ 0x000ffc1b,
+ 0x000ff81b,
+ 0x0000681b,
+ 0x0000681a,
+ 0x0000281a,
+ 0x00002810,
+ 0x00002800,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00010001,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x01010000,
+ 0x02020201,
+ 0x04030303,
+ 0x05040404,
+ 0x00140005,
+ 0x001a0016,
+ 0x0020001c,
+ 0x00280024,
+ 0x0034002c,
+ 0x00400038,
+ 0x00500048,
+ 0x00680058,
+ 0x00800070,
+ 0x00a00090,
+ 0x00d000b0,
+ 0x010000e0,
+ 0x01400120,
+ 0x01a00160,
+ 0x020001c0,
+ 0x02800240,
+ 0x034002c0,
+ 0x04000380,
+ 0x05000480,
+ 0x06800580,
+ 0x08000700,
+ 0x0a000900,
+ 0x0d000b00,
+ 0x10000e00,
+ 0x14001200,
+ 0x1a001600,
+ 0x00001c00,
+ 0x00800040,
+ 0x010000c0,
+ 0x01800140,
+ 0x020001c0,
+ 0x02800240,
+ 0x030002c0,
+ 0x03800340,
+ 0x040003c0,
+ 0x04800440,
+ 0x050004c0,
+ 0x05800540,
+ 0x060005c0,
+ 0x06800640,
+ 0x070006c0,
+ 0x07800740,
+ 0x000007c0,
+ 0x00200040,
+ 0x001002ab,
+ 0x015500cd,
+ 0x00080249,
+ 0x00cd01c7,
+ 0x0155005d,
+ 0x0249013b,
+ 0x00040111,
+ 0x01c700f1,
+ 0x00cd01af,
+ 0x005d00c3,
+ 0x01550059,
+ 0x013b0029,
+ 0x0249025f,
+ 0x01110235,
+ 0x00020021,
+ 0x00f1001f,
+ 0x01c70075,
+ 0x01af006f,
+ 0x00cd0069,
+ 0x00c30019,
+ 0x005d017d,
+ 0x0059005b,
+ 0x015502b9,
+ 0x002900a7,
+ 0x013b0283,
+ 0x025f0135,
+ 0x02490095,
+ 0x0235023f,
+ 0x0111008b,
+ 0x00210219,
+ 0x00010041,
+ 0x0b060600,
+ 0x0c0b0a06,
+ 0x0a0b0c06,
+ 0x0c0d0c0c,
+ 0x0d0d0c06,
+ 0x0b0b0c0c,
+ 0x0e0d0a0d,
+ 0x0a0d0e0e,
+ 0x0c0d0a06,
+ 0x0c0e0c0e,
+ 0x0e0d0a0d,
+ 0x0f0c0c0c,
+ 0x0f0b0d0e,
+ 0x0d0f0e0e,
+ 0x0d0f0f0f,
+ 0x0c0b0f0e,
+ 0x00000006,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x1234baac,
+ 0x00000000,
+};
+
+unsigned long aui32H263VBR_MasterMTXTOPAZFWTextReloc[] = {
+ 0
+};
+
+unsigned char aui8H263VBR_MasterMTXTOPAZFWTextRelocType[] = {
+ 0
+};
+
+unsigned long aui32H263VBR_MasterMTXTOPAZFWTextRelocFullAddr[] = {
+ 0
+};
+
+unsigned long aui32H263VBR_MasterMTXTOPAZFWDataReloc[] = {
+ 0
+};
diff --git a/fw/H263MasterFirmwareVBR_bin.h b/fw/H263MasterFirmwareVBR_bin.h
new file mode 100644
index 0000000..4d95a7b
--- /dev/null
+++ b/fw/H263MasterFirmwareVBR_bin.h
@@ -0,0 +1,44 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+
+// This file was automatically generated from ../release/H263MasterFirmwareVBR.dnl using dnl2c.
+
+extern unsigned long aui32H263VBR_MasterMTXTOPAZFWText[];
+extern unsigned long ui32H263VBR_MasterMTXTOPAZFWTextSize;
+
+extern unsigned long aui32H263VBR_MasterMTXTOPAZFWData[];
+extern unsigned long ui32H263VBR_MasterMTXTOPAZFWDataSize;
+
+extern unsigned long aui32H263VBR_MasterMTXTOPAZFWTextReloc[];
+extern unsigned char aui8H263VBR_MasterMTXTOPAZFWTextRelocType[];
+extern unsigned long aui32H263VBR_MasterMTXTOPAZFWTextRelocFullAddr[];
+
+extern unsigned long aui32H263VBR_MasterMTXTOPAZFWDataReloc[];
+extern unsigned long ui32H263VBR_MasterMTXTOPAZFWDataRelocSize;
+
+extern unsigned long ui32H263VBR_MasterMTXTOPAZFWTextOrigin;
+extern unsigned long ui32H263VBR_MasterMTXTOPAZFWDataOrigin;
+
diff --git a/fw/H263MasterFirmware_bin.c b/fw/H263MasterFirmware_bin.c
new file mode 100644
index 0000000..86a6732
--- /dev/null
+++ b/fw/H263MasterFirmware_bin.c
@@ -0,0 +1,3934 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+
+// This file was automatically generated from ../release/H263MasterFirmware.dnl using dnl2c.
+
+unsigned char *szH263MasterFirmware_buildtag = "BUILD_TOPAZ_SC_1_00_00_0318";
+
+unsigned long ui32H263_MasterMTXTOPAZFWTextSize = 3301;
+unsigned long ui32H263_MasterMTXTOPAZFWDataSize = 574;
+unsigned long ui32H263_MasterMTXTOPAZFWTextRelocSize = 0;
+unsigned long ui32H263_MasterMTXTOPAZFWDataRelocSize = 0;
+
+unsigned long ui32H263_MasterMTXTOPAZFWTextOrigin = 0x80900000;
+unsigned long ui32H263_MasterMTXTOPAZFWDataOrigin = 0x828833c0;
+
+unsigned long aui32H263_MasterMTXTOPAZFWText[] = {
+ 0x9040c001,
+ 0xc80993fe,
+ 0xc0000e42,
+ 0xc8290e00,
+ 0xc3ca8422,
+ 0xc8298460,
+ 0xc33c8622,
+ 0x9e838600,
+ 0xc8099e43,
+ 0xc6700d42,
+ 0xc8090d20,
+ 0xc6700942,
+ 0xc8090960,
+ 0xc00a0e42,
+ 0xc8090e40,
+ 0xc00e87c2,
+ 0x9c1887d0,
+ 0x0c020802,
+ 0x09820d82,
+ 0x09020d02,
+ 0x08820c82,
+ 0x9320fffe,
+ 0xa401c838,
+ 0x0dc2c809,
+ 0x0de0c66e,
+ 0x0e42c809,
+ 0x0b46b080,
+ 0x7e74b77f,
+ 0xa48d0882,
+ 0xffff9ff3,
+ 0x9d1393e0,
+ 0xf8398081,
+ 0x0707a205,
+ 0x06850307,
+ 0x03839e97,
+ 0x0fa0060f,
+ 0x018d058d,
+ 0x9c62008f,
+ 0x9340ffff,
+ 0x0ea0060b,
+ 0xffff9c62,
+ 0x058d93a0,
+ 0xb700018d,
+ 0xb780568c,
+ 0x9c015614,
+ 0x0687a605,
+ 0x0ea0060b,
+ 0xffff9c62,
+ 0xf9f893a0,
+ 0xf9f8aa9d,
+ 0x9c22aa1d,
+ 0xa6059c22,
+ 0x85028420,
+ 0xb55f0a82,
+ 0x850a7f7c,
+ 0x9c89c037,
+ 0x9c80c971,
+ 0x75002a08,
+ 0x9184c000,
+ 0x997dc014,
+ 0x460cb780,
+ 0xc0007500,
+ 0x0d8290a4,
+ 0x990ec054,
+ 0x7f6cb79f,
+ 0xc0007500,
+ 0xc05490e4,
+ 0x0d8a9916,
+ 0x9904c054,
+ 0x8d80e032,
+ 0x99b6c014,
+ 0x0800e000,
+ 0x91c4c000,
+ 0x9ac0c014,
+ 0x460cb780,
+ 0x2a797402,
+ 0x460cb580,
+ 0x90e4c000,
+ 0x9100c000,
+ 0xc0149e83,
+ 0x75409a33,
+ 0x9162fffe,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x9c228c60,
+ 0x85028702,
+ 0x6818b543,
+ 0x6898b543,
+ 0x6918b543,
+ 0x6c18b543,
+ 0x6c98b543,
+ 0x6d18b543,
+ 0x7118b543,
+ 0x7198b543,
+ 0x7218b543,
+ 0x7818b543,
+ 0x4884b540,
+ 0x4904b540,
+ 0x4984b540,
+ 0x4a04b540,
+ 0x4a84b540,
+ 0x4c84b540,
+ 0x4d04b540,
+ 0x4d84b540,
+ 0x4202b540,
+ 0x4282b540,
+ 0x5084b540,
+ 0x7a84b540,
+ 0x4f04b540,
+ 0x4702b540,
+ 0xa6059c22,
+ 0xfff48420,
+ 0x0d8a9b87,
+ 0x98aac054,
+ 0x9bc6fff4,
+ 0x98b5c054,
+ 0x0cd2c420,
+ 0xb4810a02,
+ 0xb105c000,
+ 0x0d8a4220,
+ 0x8d80e031,
+ 0x9aebc014,
+ 0x0922c829,
+ 0x0940c3ca,
+ 0x7f6cb73f,
+ 0x2a5ed071,
+ 0x458cb580,
+ 0x2a80c01e,
+ 0xf0088502,
+ 0x7102a8c2,
+ 0x5a95c280,
+ 0x468cb5a0,
+ 0x4434b341,
+ 0xb5407640,
+ 0xb520461c,
+ 0xc000450c,
+ 0xd01190c2,
+ 0xf0080e12,
+ 0xb780a241,
+ 0xc807570c,
+ 0xc57008c2,
+ 0xc0320880,
+ 0xb5800caa,
+ 0xb421558c,
+ 0x0a2ac000,
+ 0xb4810cf4,
+ 0x1a28c000,
+ 0xc0020902,
+ 0xb96008ba,
+ 0xc2004078,
+ 0xd2240a00,
+ 0xb441588b,
+ 0xce00c000,
+ 0xffff0a11,
+ 0xe0009301,
+ 0xffff1884,
+ 0xc8079244,
+ 0xc5760a42,
+ 0xc0320a00,
+ 0xb4810caa,
+ 0x0a02c000,
+ 0x09020882,
+ 0xb9600884,
+ 0xc2004078,
+ 0xd2240a00,
+ 0xb441588b,
+ 0xce00c000,
+ 0xffff0a11,
+ 0xc0049301,
+ 0xffff745a,
+ 0x0a02923c,
+ 0x0c9ec034,
+ 0xc000b481,
+ 0x9b0dfff4,
+ 0xb79f0802,
+ 0xb7bf7eee,
+ 0x8c607f6e,
+ 0x9e549c22,
+ 0x0c82c040,
+ 0xb4219e59,
+ 0xc040c000,
+ 0xb4820d02,
+ 0x9c22c000,
+ 0x2d7cc00e,
+ 0x29e0c00e,
+ 0x9e545d30,
+ 0x0c82c040,
+ 0xb46131b8,
+ 0xc040c000,
+ 0xb4420d02,
+ 0x9c22c000,
+ 0x8420a60d,
+ 0x06870703,
+ 0x5c8dc280,
+ 0xd0a21c84,
+ 0x02875ca0,
+ 0x0a5ed011,
+ 0x5a0dc200,
+ 0xc2001a04,
+ 0x5cd05a30,
+ 0x9e4c3098,
+ 0xc0320405,
+ 0x30980c8a,
+ 0x3880c801,
+ 0xc000b421,
+ 0xc8019ea9,
+ 0xc0020a02,
+ 0x65530a00,
+ 0x0c8ac030,
+ 0xc000b481,
+ 0x0882c002,
+ 0xb4210c84,
+ 0x9e93c000,
+ 0x5f09d022,
+ 0x5d0d9e53,
+ 0xfff41d04,
+ 0xc2809bb4,
+ 0x1e845e91,
+ 0x5e84c280,
+ 0x1a849e6c,
+ 0x5a90c280,
+ 0x3a80c181,
+ 0x09820d8a,
+ 0x314a0d02,
+ 0x9baefff4,
+ 0x0d82c0c0,
+ 0xc0020992,
+ 0xc0020d02,
+ 0xc0340902,
+ 0x0a0a9bd4,
+ 0x0c9ec034,
+ 0xc000b481,
+ 0x75bf1b04,
+ 0xc0008502,
+ 0x9dcf9202,
+ 0x7f7cb55f,
+ 0x9ba7c034,
+ 0xa045f231,
+ 0x7f7cb75f,
+ 0x75bf1b04,
+ 0xffff8510,
+ 0xc0029284,
+ 0xc0300a42,
+ 0xb4810c8e,
+ 0xb79fc000,
+ 0xb7bf7e6e,
+ 0xb7df7eee,
+ 0xc0027f6e,
+ 0x9c228c00,
+ 0xf8399c22,
+ 0xb780a285,
+ 0x0986458c,
+ 0x0d0270c8,
+ 0x9096c001,
+ 0x4614b760,
+ 0x08020c06,
+ 0x0902c1cc,
+ 0x19c4d010,
+ 0x9e5d9e44,
+ 0x508cc200,
+ 0xc0007942,
+ 0xd1249202,
+ 0xc400588b,
+ 0xb4013c80,
+ 0xb104c000,
+ 0x9e554220,
+ 0x750230d2,
+ 0x4822b321,
+ 0xc00c9e8a,
+ 0x09840900,
+ 0x9101ffff,
+ 0x4614b540,
+ 0xaa9df9f8,
+ 0xc2009c22,
+ 0xc0378502,
+ 0xc1719c89,
+ 0xc8179c80,
+ 0x9c229c80,
+ 0xb780a605,
+ 0x9e5d460c,
+ 0xc000790a,
+ 0xfff49162,
+ 0xfff49bf0,
+ 0xb7809bbe,
+ 0x790a460c,
+ 0x9324ffff,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xc002a61d,
+ 0x9e5d8400,
+ 0xaa21f208,
+ 0xc0017500,
+ 0xc4209004,
+ 0x0a020cda,
+ 0xc000b481,
+ 0x4220b101,
+ 0xb4811c84,
+ 0xb106c000,
+ 0xb4814220,
+ 0xb107c000,
+ 0x008f4220,
+ 0xc000b481,
+ 0x4240b106,
+ 0xc000b481,
+ 0x4240b105,
+ 0x2a6ed1f1,
+ 0xb40d7516,
+ 0xf2084622,
+ 0x7480a921,
+ 0x92c2c000,
+ 0x8c80e092,
+ 0x098a0dc2,
+ 0x0d02c002,
+ 0x9b0afff4,
+ 0x7cecb7df,
+ 0x7c6cb79f,
+ 0x7d6cb7ff,
+ 0x7df4b7df,
+ 0x7e74b7bf,
+ 0xa221f208,
+ 0x5aa1c300,
+ 0x2afcc00e,
+ 0x0d869ea9,
+ 0xfff455e4,
+ 0xd3129ba3,
+ 0xc1c068d1,
+ 0x5c8b0c80,
+ 0xc000b4c1,
+ 0x6951d312,
+ 0x0d10c1c0,
+ 0xb4e25d0b,
+ 0xd312c000,
+ 0x9e7468d1,
+ 0x0ca0c1c0,
+ 0xb4815c8b,
+ 0xd312c000,
+ 0x9e6c6951,
+ 0x0d30c1c0,
+ 0xb4825d0b,
+ 0xd312c000,
+ 0x0a0268d1,
+ 0x0cc0c1c0,
+ 0xc4005c8b,
+ 0xb4813c80,
+ 0xb106c000,
+ 0xcfff4220,
+ 0xd3122b7c,
+ 0xc1c068d1,
+ 0x5c8b0cc0,
+ 0xc000b4c1,
+ 0x460cb720,
+ 0xc2000a04,
+ 0x000b5214,
+ 0xb5203098,
+ 0xb79f460c,
+ 0xb7bf7c6e,
+ 0xb7df7cee,
+ 0xb7ff7d6e,
+ 0xc0047dee,
+ 0x9c228c00,
+ 0xa205f839,
+ 0x0e30f011,
+ 0x919cc000,
+ 0x9ea10a04,
+ 0x55e40d86,
+ 0xc0343d88,
+ 0x0d8a9aaf,
+ 0x9aacc034,
+ 0xaa1df9f8,
+ 0xa6059c22,
+ 0x0a42c801,
+ 0x0a00c010,
+ 0x2ebed3f2,
+ 0x0caac032,
+ 0xc000b481,
+ 0x0cf408aa,
+ 0xc000b421,
+ 0x578cb780,
+ 0x0c92c080,
+ 0xa881f208,
+ 0xc000b421,
+ 0x578cb780,
+ 0xf2080c88,
+ 0xb421a889,
+ 0xb780c000,
+ 0x0c84578c,
+ 0xa88df208,
+ 0xc000b421,
+ 0x1c980902,
+ 0xc000b441,
+ 0x578cb780,
+ 0xf2080c90,
+ 0xb421a885,
+ 0xb7a0c000,
+ 0x0dd2578c,
+ 0x9a67c034,
+ 0xaa25f208,
+ 0xffff7008,
+ 0x0daa9344,
+ 0x0d060982,
+ 0x0902c121,
+ 0x9a4afff4,
+ 0x4794b760,
+ 0x0d02c021,
+ 0x09c20d04,
+ 0x9a37fff4,
+ 0x4794b760,
+ 0x0d0609c2,
+ 0x9a31fff4,
+ 0x09820daa,
+ 0xc1010d02,
+ 0xfff40902,
+ 0x0d929a35,
+ 0x9a43c034,
+ 0xaa25f208,
+ 0xffff7008,
+ 0x77409344,
+ 0x90a2c000,
+ 0xc0340d8e,
+ 0x0d8a9a45,
+ 0x9a42c034,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xc470a60d,
+ 0x0a020c8e,
+ 0xc000b481,
+ 0x4220b101,
+ 0x578cb780,
+ 0xa085f208,
+ 0x0a021c8c,
+ 0xc000b481,
+ 0x4220b105,
+ 0x2b5ed1f1,
+ 0x578cb780,
+ 0xcff09ead,
+ 0xc2802e80,
+ 0xf2085ea1,
+ 0xc280a281,
+ 0x2a845a9d,
+ 0x0a020c84,
+ 0xc000b481,
+ 0x4220b101,
+ 0x470cb520,
+ 0xb4810c84,
+ 0xb101c000,
+ 0xb5204220,
+ 0xc070478c,
+ 0xb4810c8e,
+ 0x0882c000,
+ 0xb4211c8c,
+ 0x0c90c000,
+ 0xc000b481,
+ 0xb4211c8c,
+ 0x0c84c000,
+ 0xc000b481,
+ 0x6084b740,
+ 0x5908d326,
+ 0xe0309e2d,
+ 0x9ea4aa4d,
+ 0xb7809c62,
+ 0x7740578c,
+ 0x9ea98502,
+ 0xd0010d82,
+ 0xf2080db2,
+ 0x2596a10f,
+ 0x9b3ffff4,
+ 0xc0700a06,
+ 0xb4810c82,
+ 0x000dc000,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x4594b760,
+ 0xc0020a7f,
+ 0x9ea18502,
+ 0x89afe220,
+ 0xfff355ad,
+ 0xc01c91a0,
+ 0xc0007ebe,
+ 0xd1a29244,
+ 0xc0905e08,
+ 0xd2240a00,
+ 0x08825909,
+ 0x3d00c400,
+ 0xc000b422,
+ 0x4220b104,
+ 0xffff7500,
+ 0xc1809364,
+ 0xc0905c88,
+ 0x5c890c80,
+ 0xc000b461,
+ 0xc1809c22,
+ 0xc0905c88,
+ 0x5c890c80,
+ 0x3c80c400,
+ 0xb4810a02,
+ 0xb101c000,
+ 0xf0084220,
+ 0x5d88a0e1,
+ 0x0d80c090,
+ 0xb4835d89,
+ 0x9c22c000,
+ 0xd3129e5b,
+ 0x0a0268b1,
+ 0x0cc0c1c0,
+ 0xc4005c8b,
+ 0xb4813c80,
+ 0xb102c000,
+ 0xb7604220,
+ 0xd3125b14,
+ 0x85026931,
+ 0xb9609e51,
+ 0xc1c04070,
+ 0xf03108e0,
+ 0xd0a4aa65,
+ 0xb4815889,
+ 0x0890c000,
+ 0xffff8510,
+ 0xc1c09301,
+ 0xe2108560,
+ 0xb76080ad,
+ 0xc0015c94,
+ 0xce3e3904,
+ 0xb9608521,
+ 0xf0314048,
+ 0xd0a4aa65,
+ 0xb4815889,
+ 0x0890c000,
+ 0xffff8510,
+ 0xe2209301,
+ 0xb780812d,
+ 0xc0015a8c,
+ 0xc1c03908,
+ 0x5d090d60,
+ 0xa885dac8,
+ 0xc000b422,
+ 0x68b1d312,
+ 0x0cc0c1c0,
+ 0xb4415c8b,
+ 0x9c22c000,
+ 0x510cb740,
+ 0x6cb1d312,
+ 0xc1c00a02,
+ 0x5c8b0cc0,
+ 0x3c80c400,
+ 0xc000b481,
+ 0x4220b101,
+ 0x6cb1d312,
+ 0x0cf0c1ca,
+ 0xb4415c8b,
+ 0xc00cc000,
+ 0xc0016d82,
+ 0xc1c038c0,
+ 0x5d8b0dc0,
+ 0xc000b423,
+ 0x84209c22,
+ 0xe0318502,
+ 0x09068d80,
+ 0x7f7cb55f,
+ 0x0cd2c472,
+ 0xb4810a02,
+ 0xb101c000,
+ 0x9e8a4220,
+ 0xc0010203,
+ 0x75002a40,
+ 0x9362c000,
+ 0x68a1d312,
+ 0xc1ca0a02,
+ 0x5c8b0cf0,
+ 0x3c80c400,
+ 0xc000b481,
+ 0x4220b101,
+ 0xa0e1f008,
+ 0x511cb740,
+ 0x7f6cb79f,
+ 0xf3109e51,
+ 0xcfff8021,
+ 0xb58028be,
+ 0xd312510c,
+ 0xc1c068a1,
+ 0x5c8b0cc0,
+ 0xc000b421,
+ 0x9c228c20,
+ 0xc006a605,
+ 0x87028420,
+ 0xc4720c06,
+ 0x0a020cd2,
+ 0xc000b481,
+ 0x4220b105,
+ 0x020b9eaa,
+ 0x2a04c001,
+ 0xc0017500,
+ 0xd31190c2,
+ 0xe1b16c81,
+ 0xb7608d00,
+ 0x09825b14,
+ 0x4070b960,
+ 0x08e0c1c0,
+ 0x5889d0a4,
+ 0x3c80c400,
+ 0xc000b461,
+ 0x4220b104,
+ 0xa245f029,
+ 0x87100890,
+ 0x9281ffff,
+ 0xa973f050,
+ 0x796cb79f,
+ 0xf3109e55,
+ 0xcfff8021,
+ 0xf0502afa,
+ 0x020ba271,
+ 0x2a08c001,
+ 0xd3127500,
+ 0xc0026e81,
+ 0xe0b19082,
+ 0xc1c08d00,
+ 0xe1108760,
+ 0xb74082a3,
+ 0x09825c94,
+ 0x4048b960,
+ 0xd0a49e93,
+ 0xc4005889,
+ 0xb4613c80,
+ 0xb104c000,
+ 0xf0294220,
+ 0x0890a245,
+ 0x92a1ffff,
+ 0x5a8cb780,
+ 0xa943f010,
+ 0xa891da08,
+ 0xaa61f010,
+ 0xa95cf012,
+ 0xa9c7f050,
+ 0x8021f310,
+ 0xa94bd850,
+ 0xd8101884,
+ 0xf010a0c9,
+ 0xb79fa241,
+ 0xb73f7b6a,
+ 0xb73f7eec,
+ 0xf3107ff4,
+ 0xe2108021,
+ 0xe22082a3,
+ 0xcfff80bb,
+ 0xd8502af6,
+ 0xf010a249,
+ 0xf050a0dd,
+ 0x020ba0c6,
+ 0x2a10c001,
+ 0xc0007500,
+ 0xc01490c2,
+ 0xcfff9838,
+ 0xc1c02aee,
+ 0xc2800ec0,
+ 0xb4a15c8b,
+ 0xb79fc000,
+ 0xb7bf78ee,
+ 0xc006796e,
+ 0x9c228c60,
+ 0x6cb1d312,
+ 0xc1c00a02,
+ 0x5c8b0cc0,
+ 0x3c80c400,
+ 0xc000b481,
+ 0x4220b103,
+ 0x5c14b740,
+ 0x6d31d311,
+ 0x4058b960,
+ 0xc1c00085,
+ 0xf03108e0,
+ 0xd0a4aa45,
+ 0xb4815889,
+ 0x0890c000,
+ 0x9321ffff,
+ 0x3990c001,
+ 0x0940c1c0,
+ 0x588bd124,
+ 0xc000b461,
+ 0xa6059c22,
+ 0x8440c002,
+ 0x5c14b740,
+ 0xc4720a86,
+ 0x08820cd2,
+ 0x8502c00c,
+ 0xc000b421,
+ 0x4220b104,
+ 0xc0010189,
+ 0x75002a10,
+ 0x9302ffff,
+ 0x8d00e0d1,
+ 0x08029d47,
+ 0x4058b960,
+ 0x08e0c1c0,
+ 0x5889d0a4,
+ 0x3c80c400,
+ 0xc000b401,
+ 0x4220b104,
+ 0xa245f029,
+ 0xffff0890,
+ 0x9dc792a1,
+ 0x29eecfff,
+ 0x0cc0c1c0,
+ 0xb4615c8b,
+ 0xf010c000,
+ 0xb79fa94b,
+ 0xf0127b6c,
+ 0xb73fa94c,
+ 0xd8107bec,
+ 0xf310a9cb,
+ 0xf0108021,
+ 0xe210a953,
+ 0xd81282a3,
+ 0xf010a94c,
+ 0xf010a249,
+ 0xb79fa0cd,
+ 0xb73f7c6c,
+ 0xb73f75ea,
+ 0xf3107572,
+ 0xe2108021,
+ 0xe22082a3,
+ 0x0d8680bb,
+ 0xa251f010,
+ 0xa0cdd810,
+ 0xa0cad810,
+ 0x9b7efff4,
+ 0x68d1d312,
+ 0xc1c00a02,
+ 0x5c8b0cc0,
+ 0x3c80c400,
+ 0xc000b481,
+ 0x4220b104,
+ 0x3a20c001,
+ 0x68d1d312,
+ 0x0cc0c1c0,
+ 0xb4815c8b,
+ 0xb79fc000,
+ 0xb7bf7c6e,
+ 0xc0047cee,
+ 0x9c228c00,
+ 0xa285f839,
+ 0xaa61f010,
+ 0xc0007500,
+ 0xd0089164,
+ 0x9e48a8c1,
+ 0xc2000a06,
+ 0x30985200,
+ 0xa0c1d008,
+ 0x0d38d011,
+ 0xa9f2d010,
+ 0x1a30f011,
+ 0xa943f010,
+ 0xc0001984,
+ 0xcff193e2,
+ 0xcff08702,
+ 0xc00f8700,
+ 0xc00e087e,
+ 0xc050087c,
+ 0xf0290c1a,
+ 0xd020a8c5,
+ 0x5ca12095,
+ 0x22109e4d,
+ 0x5a20c200,
+ 0xba0930d8,
+ 0xb4204006,
+ 0xf011c000,
+ 0x19841a30,
+ 0x91e4ffff,
+ 0x802ff210,
+ 0xa241f010,
+ 0xaa9df9f8,
+ 0xa60d9c22,
+ 0x59409e5d,
+ 0x5841f124,
+ 0x2d2ed3f1,
+ 0x4422b350,
+ 0x93e2c002,
+ 0xaa61f008,
+ 0x2a1ce000,
+ 0x4422b425,
+ 0xaa61d808,
+ 0xe2108522,
+ 0x2a1c88a9,
+ 0x9ea31218,
+ 0x0a7ec00e,
+ 0x400bba1b,
+ 0x5207c200,
+ 0xc0012128,
+ 0x9e599276,
+ 0x5a20c100,
+ 0xc2001103,
+ 0x9ea25209,
+ 0x58a1c200,
+ 0xd0319e8d,
+ 0xd2080cb0,
+ 0xc00ea8a2,
+ 0xc2002a7c,
+ 0xc00e5207,
+ 0x349a2a7c,
+ 0xa0a2d208,
+ 0xa963f008,
+ 0xd3f19ea1,
+ 0xc2012a2e,
+ 0xf3108128,
+ 0x85028821,
+ 0xa261f008,
+ 0xa127d228,
+ 0xcff09eab,
+ 0x59402d01,
+ 0x35225941,
+ 0x2d7cc00e,
+ 0x9bb1fff4,
+ 0x92e0c000,
+ 0xaa21d208,
+ 0x000b9e5e,
+ 0x324250d8,
+ 0xa205d029,
+ 0xa8e1f008,
+ 0x291ed013,
+ 0x8029f210,
+ 0x9e447510,
+ 0xf0080098,
+ 0xb350a0e1,
+ 0xb79f4426,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0xa60d9c22,
+ 0x9e690685,
+ 0x0b029e9e,
+ 0x0a867182,
+ 0x9208c000,
+ 0x16d29ea9,
+ 0xc2809e69,
+ 0xd0115a84,
+ 0x71021a52,
+ 0x08e2d011,
+ 0x2b1ed3f1,
+ 0x9286ffff,
+ 0x0a62d011,
+ 0x028d7510,
+ 0x91d4c000,
+ 0x0d029e73,
+ 0xfff40922,
+ 0x1aa09b70,
+ 0x0a52d011,
+ 0x9e837510,
+ 0x92d2ffff,
+ 0x0d069e73,
+ 0x0952d011,
+ 0x297cc00e,
+ 0x9b61fff4,
+ 0x9e837590,
+ 0x92f4c000,
+ 0x1a60d031,
+ 0x2b4ed3f1,
+ 0x9e739e6c,
+ 0x5299c200,
+ 0x295ed3f2,
+ 0xfff40922,
+ 0x9e839b50,
+ 0x52b8c200,
+ 0x75909ea9,
+ 0xffff16d2,
+ 0x9e7391b2,
+ 0x2d5ed3f2,
+ 0xfff4010d,
+ 0xb79f9b42,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0xf0119c22,
+ 0x9e990ca0,
+ 0x5a04d09a,
+ 0x1a42d00d,
+ 0x909ac000,
+ 0x12421203,
+ 0x9ea29e4b,
+ 0x9360fffc,
+ 0x8420a60d,
+ 0x9e558502,
+ 0x7f7cb55f,
+ 0x7ffcb55f,
+ 0xaa61f010,
+ 0x8c8ee011,
+ 0x1a080307,
+ 0xd226750a,
+ 0x8540590c,
+ 0x8044e05a,
+ 0x90a0c003,
+ 0x9180c000,
+ 0x92a0c000,
+ 0x93c0c000,
+ 0x9100c001,
+ 0x9200c001,
+ 0x9060c002,
+ 0x8d88e011,
+ 0xd0729e8b,
+ 0xb5a01954,
+ 0xfff4508c,
+ 0xc0029bc8,
+ 0xb7409200,
+ 0x9ea95094,
+ 0x8d88e011,
+ 0x15149e8b,
+ 0x9bbdfff4,
+ 0x90a0c002,
+ 0x8d88e011,
+ 0xd3f29e8b,
+ 0x0916295e,
+ 0x9aebfff4,
+ 0x508cb5a0,
+ 0x9320c001,
+ 0x8d88e011,
+ 0xd3f29e8b,
+ 0x0916295e,
+ 0x9adffff4,
+ 0x91e0c001,
+ 0xaa41d208,
+ 0xf0119e8b,
+ 0x4a7d8c88,
+ 0x2aced012,
+ 0x09060d06,
+ 0xfff4018b,
+ 0x9e839ad0,
+ 0x018b9e6a,
+ 0xfff40d02,
+ 0xc0009aca,
+ 0xd2089340,
+ 0x9e8baa41,
+ 0x8c88f011,
+ 0xd0124a7d,
+ 0x0d022ace,
+ 0x018b0906,
+ 0x9abbfff4,
+ 0x9e6a9e83,
+ 0xc00e018b,
+ 0xfff40d7e,
+ 0xc0009ab4,
+ 0xc0019080,
+ 0xb79f90e0,
+ 0xc00f7e68,
+ 0xc00e0cfe,
+ 0x9e4a0cfc,
+ 0x7c68b59f,
+ 0x7f6cb73f,
+ 0x0a02cff1,
+ 0x0a00cff0,
+ 0x0c9ac050,
+ 0xc2002218,
+ 0x20945a21,
+ 0x324258a0,
+ 0x4006ba24,
+ 0x7f6cb59f,
+ 0xc000b481,
+ 0xa943f208,
+ 0x7fecb79f,
+ 0x8021f310,
+ 0xa241f208,
+ 0x7e6eb79f,
+ 0x7eeeb7bf,
+ 0x7f6eb7df,
+ 0x8c00c002,
+ 0xa61d9c22,
+ 0x85028440,
+ 0xf0319e9d,
+ 0x0b02abe5,
+ 0x7878b55f,
+ 0x7efcb55f,
+ 0x9d3a718e,
+ 0x91e8c001,
+ 0x7502aa41,
+ 0x9392c000,
+ 0xaad1d018,
+ 0x8d08e032,
+ 0x8d00e051,
+ 0x9eb19dcf,
+ 0xb55f8510,
+ 0xc0027f7c,
+ 0xc2800a9c,
+ 0x018b5a95,
+ 0x9a1efff4,
+ 0x7f7cb75f,
+ 0x5a88c280,
+ 0x8122c301,
+ 0x91a0c000,
+ 0x8d88e031,
+ 0x050b9dcf,
+ 0xb55f8510,
+ 0xfff47f7c,
+ 0xb75f9b23,
+ 0x0b047f7c,
+ 0xfffe718e,
+ 0xb79f92a6,
+ 0xc0507868,
+ 0xb4810c9e,
+ 0xc050c000,
+ 0xb4e20d16,
+ 0xb71fc000,
+ 0xb79f7eec,
+ 0xb7bf7d6e,
+ 0xb7df7dee,
+ 0xb7ff7e6e,
+ 0xc0027eee,
+ 0x9c228c40,
+ 0xc450a605,
+ 0x0a020c8a,
+ 0xc000b481,
+ 0x4240b102,
+ 0x2d7ce00e,
+ 0x5d10d104,
+ 0x0a02c801,
+ 0xc0300a40,
+ 0xb4810c8a,
+ 0x08c2c000,
+ 0xb4210c84,
+ 0xb740c000,
+ 0xf0485f0c,
+ 0xf210a947,
+ 0xf048802d,
+ 0xc450a245,
+ 0x0a020c86,
+ 0xc000b481,
+ 0x4220b101,
+ 0x0a42c801,
+ 0x0a00c010,
+ 0x0caac032,
+ 0xc000b481,
+ 0xc03408aa,
+ 0xb4220d1e,
+ 0xc450c000,
+ 0x0a020cf2,
+ 0xc000b481,
+ 0x4220b101,
+ 0x1910d053,
+ 0x590cb780,
+ 0xa891f248,
+ 0x88a3f210,
+ 0x0d060d82,
+ 0xffd4018b,
+ 0xc0809b9e,
+ 0xb4a10ca2,
+ 0xc002c000,
+ 0xc0140d82,
+ 0x700a9954,
+ 0x9364ffff,
+ 0x09820daa,
+ 0xc1210d0a,
+ 0xffd40902,
+ 0xb7809939,
+ 0xf248590c,
+ 0xc0a1a992,
+ 0x0d040d02,
+ 0xffd409c2,
+ 0xc0c09924,
+ 0x09920d82,
+ 0x09420d42,
+ 0x9957c014,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xc010a60d,
+ 0xb7208400,
+ 0xb780590c,
+ 0x2a2049ad,
+ 0xb7c07500,
+ 0x09025b14,
+ 0x9182c000,
+ 0x7108b783,
+ 0xc0007500,
+ 0xd29090e2,
+ 0x7500aa41,
+ 0x9164c005,
+ 0x49adb720,
+ 0x2a18d011,
+ 0xd0027500,
+ 0xc0003924,
+ 0xd0119124,
+ 0x75002a14,
+ 0x3922d002,
+ 0x3926d001,
+ 0x0c82c050,
+ 0xc000b441,
+ 0xb7409d87,
+ 0x0dc2470c,
+ 0xc01009c2,
+ 0xcff00d02,
+ 0xffd40c81,
+ 0xb78398fb,
+ 0x9d1b7108,
+ 0xcff07500,
+ 0xc0000b01,
+ 0xd2909282,
+ 0x7500aa41,
+ 0x91e2c000,
+ 0x606cb79f,
+ 0x8d00f211,
+ 0x2a00c010,
+ 0xcff07500,
+ 0xf3100a03,
+ 0xb3468001,
+ 0xb79e4422,
+ 0xc8014068,
+ 0xc01008c2,
+ 0xc0320880,
+ 0xb59f0cea,
+ 0xb421606c,
+ 0xb783c000,
+ 0x75007108,
+ 0x9282c001,
+ 0x7208b783,
+ 0xc0017500,
+ 0xb72091e2,
+ 0xd011518c,
+ 0x75002a12,
+ 0x9102c001,
+ 0x6014b7a0,
+ 0x5c0cb7a0,
+ 0xaa21f210,
+ 0x28f99eab,
+ 0x518cb520,
+ 0x9c629ea4,
+ 0x5e0cb720,
+ 0x4129b780,
+ 0xc0007500,
+ 0xf20892a4,
+ 0xf210a9a1,
+ 0x0d82a83d,
+ 0x9c629e84,
+ 0xa8a5f250,
+ 0xf2089eab,
+ 0x0982a021,
+ 0x9c629e8c,
+ 0xaa21da08,
+ 0x7b8ab581,
+ 0xa9cdda10,
+ 0xfff49eb3,
+ 0xc8019aa6,
+ 0xc00a0a02,
+ 0xc0300a00,
+ 0xb4810c8a,
+ 0xc008c000,
+ 0x0c8408c2,
+ 0xc000b421,
+ 0x0a02c008,
+ 0xb4810c88,
+ 0xc0c0c000,
+ 0x09920d82,
+ 0x0d02c008,
+ 0x0902c008,
+ 0x989dc014,
+ 0x0a02c008,
+ 0x0c8ec030,
+ 0xc000b481,
+ 0x5b8cb720,
+ 0xb5408506,
+ 0xfff44039,
+ 0xb79f9ad1,
+ 0xb7bf6eee,
+ 0xb7df6f6e,
+ 0xc0106fee,
+ 0x9c228c60,
+ 0xa205f839,
+ 0x0c82c450,
+ 0xb4810a02,
+ 0xb101c000,
+ 0xc0084220,
+ 0xc0300a40,
+ 0xb4810c8e,
+ 0xc002c000,
+ 0xc05038c0,
+ 0xb4210c82,
+ 0xc0c0c000,
+ 0x09920d82,
+ 0x0d02c008,
+ 0x0902c008,
+ 0x9869c014,
+ 0x0a02c008,
+ 0x0c8ec030,
+ 0xc000b481,
+ 0xaa1df9f8,
+ 0x9000fff5,
+ 0xf011a60d,
+ 0xc0010eb0,
+ 0xc01e9182,
+ 0xc0080f7e,
+ 0xc0300b02,
+ 0xc0400e8e,
+ 0x9e747540,
+ 0x0c96c050,
+ 0x4426b354,
+ 0xc20012d8,
+ 0xb4815a14,
+ 0xc030c000,
+ 0xb4c20d0a,
+ 0xb4c5c000,
+ 0xc030c000,
+ 0xb4c10c96,
+ 0xc0c0c000,
+ 0x09920d82,
+ 0x0d02c008,
+ 0x0902c008,
+ 0x9835c014,
+ 0xc000b4c5,
+ 0xfffe7540,
+ 0xfff493c4,
+ 0xb79f9a6f,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0xb4639c22,
+ 0x9c22c000,
+ 0xa062f812,
+ 0xc2009c22,
+ 0x5d890d80,
+ 0x09829e59,
+ 0x3d80c400,
+ 0xc000b463,
+ 0x4620b203,
+ 0x9c220007,
+ 0x9c8fc127,
+ 0x080a9c22,
+ 0x56f1b971,
+ 0x9c81c017,
+ 0x9c80c071,
+ 0x9c80c017,
+ 0x4000b960,
+ 0xffff9c22,
+ 0x9e5c9280,
+ 0xd1a401c6,
+ 0x08825889,
+ 0x3c80c400,
+ 0xc000b421,
+ 0x4220b104,
+ 0x9e532244,
+ 0xffff7106,
+ 0x9c229324,
+ 0xc004a60d,
+ 0xc8298420,
+ 0xc3a60ca2,
+ 0xc0300cf0,
+ 0xe133ac3d,
+ 0xc0388d00,
+ 0xc030a45d,
+ 0xc038ac3d,
+ 0xc010a45d,
+ 0xc018ac3d,
+ 0xc010a45d,
+ 0xc018ac25,
+ 0xb7a0a445,
+ 0x9ea9590c,
+ 0xb5408502,
+ 0xb541661a,
+ 0xb7404d98,
+ 0x0dc2470c,
+ 0x0d42c00a,
+ 0xffb409c2,
+ 0xd2519ba9,
+ 0xda080a58,
+ 0x7502aa01,
+ 0xc0009ead,
+ 0xb5809084,
+ 0xf290450c,
+ 0x2a08aa2d,
+ 0xc0007500,
+ 0x850690a4,
+ 0x451cb540,
+ 0x5f0cb780,
+ 0xa8a1f210,
+ 0xf2108502,
+ 0xb540a8a6,
+ 0xb540511c,
+ 0xf208481a,
+ 0xf208a103,
+ 0xf210a085,
+ 0xf208a929,
+ 0xf210a08a,
+ 0xf210a92e,
+ 0xf208a8b2,
+ 0xf250a10d,
+ 0xf208a8b1,
+ 0xf208a112,
+ 0xf208a096,
+ 0xc050a09a,
+ 0x08c00cf2,
+ 0xa085f248,
+ 0xc000b421,
+ 0xc0360a0a,
+ 0xb4810c92,
+ 0x0896c000,
+ 0xb4211c8c,
+ 0xf031c000,
+ 0xe1318c00,
+ 0x9ea38d80,
+ 0x5e0cb7c0,
+ 0x7ffcb55f,
+ 0xb9600d02,
+ 0xf2084078,
+ 0x9dbaa103,
+ 0x5d0dd122,
+ 0xf0299e2d,
+ 0xd012a8e5,
+ 0x5c882cae,
+ 0x5908d126,
+ 0xe0389e4a,
+ 0x0d04aa4d,
+ 0x50a828bc,
+ 0xa2413242,
+ 0x91c1ffff,
+ 0xaa61f010,
+ 0x0c8ec036,
+ 0xc000b481,
+ 0x7fecb73f,
+ 0xb4211c84,
+ 0xc014c000,
+ 0xd2089999,
+ 0x7500aa4d,
+ 0x9262c000,
+ 0xaa2df290,
+ 0x2ac8f011,
+ 0x91a4c000,
+ 0x2a00c800,
+ 0xc0007500,
+ 0xf20890c4,
+ 0xfff4a9c6,
+ 0xd2089ae3,
+ 0xf290a2cd,
+ 0xd011a8ad,
+ 0x75002a14,
+ 0x9104c000,
+ 0x0a42c809,
+ 0x0a60c662,
+ 0x548cb580,
+ 0x468cb780,
+ 0xc0007500,
+ 0xc0809162,
+ 0x2a045a31,
+ 0x0ceac03e,
+ 0xc000b481,
+ 0x9280c000,
+ 0x450cb780,
+ 0xc0007502,
+ 0xc100915c,
+ 0x74402880,
+ 0xd0010a0e,
+ 0xc0001a46,
+ 0x0a029060,
+ 0x0ceac03e,
+ 0xc000b481,
+ 0x7a6eb79f,
+ 0x7aeeb7bf,
+ 0x7b6eb7df,
+ 0x8c00c006,
+ 0xb7809c22,
+ 0xc0c8558c,
+ 0xb9600892,
+ 0xd01140f8,
+ 0xf0290948,
+ 0xd0a4aa45,
+ 0xb4815889,
+ 0x0890c000,
+ 0x9321ffff,
+ 0xa6059c22,
+ 0x468cb720,
+ 0x7d0cb780,
+ 0x0a047440,
+ 0x7d0cb580,
+ 0x9364c000,
+ 0x7108b783,
+ 0xc0007500,
+ 0xb72092c2,
+ 0xb780450c,
+ 0x7442518c,
+ 0xb5803a40,
+ 0xc000518c,
+ 0xb780919c,
+ 0xd2085e0c,
+ 0x7440a889,
+ 0x90a4c000,
+ 0xb5438506,
+ 0xc8017818,
+ 0xc0100a42,
+ 0xc0320a00,
+ 0xb4810cea,
+ 0xc008c000,
+ 0xc00208c2,
+ 0xb4211ce0,
+ 0xc008c000,
+ 0xc0300a42,
+ 0xb4820d0e,
+ 0xc450c000,
+ 0xc0080c82,
+ 0xb4811a40,
+ 0xb101c000,
+ 0xc0024220,
+ 0xc05038c0,
+ 0xb4210c82,
+ 0xc0c0c000,
+ 0x09920d82,
+ 0x0d02c008,
+ 0x0902c008,
+ 0x9aa7fff4,
+ 0x0c86c450,
+ 0xb4810a02,
+ 0xb105c000,
+ 0xc0084220,
+ 0xc0300a00,
+ 0xb4820d0e,
+ 0x0c84c000,
+ 0x1a00c008,
+ 0xc000b481,
+ 0x4220b101,
+ 0x5a35c080,
+ 0x0902c801,
+ 0xc00e0940,
+ 0xd0a828fc,
+ 0xd0715910,
+ 0xc03029ce,
+ 0x9dc80c8a,
+ 0xc000b441,
+ 0x0c840a42,
+ 0xc000b481,
+ 0xc0007680,
+ 0xb7209182,
+ 0xb7405f0c,
+ 0xf21044bd,
+ 0xf3108a27,
+ 0xb5808021,
+ 0xc45044ad,
+ 0x0a020c86,
+ 0xc000b481,
+ 0x4220b105,
+ 0xb4810cec,
+ 0xb105c000,
+ 0x12d64220,
+ 0xc03408ea,
+ 0xb4210c9e,
+ 0xb780c000,
+ 0xf248590c,
+ 0xd053a891,
+ 0xf2101950,
+ 0x0d8288a3,
+ 0xc2800d06,
+ 0xb5805a0c,
+ 0x018b510c,
+ 0x9873ffd4,
+ 0x0ca2c080,
+ 0xc000b4a1,
+ 0x480cb780,
+ 0xb4810c88,
+ 0xb7a0c000,
+ 0xc0025a94,
+ 0xfff40d82,
+ 0x700a9a22,
+ 0x9364ffff,
+ 0x7d0cb780,
+ 0xa8adf210,
+ 0xa8a2f250,
+ 0x9e496243,
+ 0xc0007102,
+ 0x850690b8,
+ 0x7618b543,
+ 0x468cb780,
+ 0x0a827500,
+ 0x9204c001,
+ 0x450cb780,
+ 0xc0007502,
+ 0xb783933c,
+ 0x75007108,
+ 0x9282c000,
+ 0x460cb780,
+ 0xb5802a79,
+ 0xffd4460c,
+ 0xb7839831,
+ 0x75007808,
+ 0x90c2c000,
+ 0x9908ffd4,
+ 0x7808b5a3,
+ 0x98cdffd4,
+ 0x7108b783,
+ 0xc0007500,
+ 0xc01493e2,
+ 0xb780993d,
+ 0xd2085e0c,
+ 0x7440a889,
+ 0x92c2c000,
+ 0x0a82c080,
+ 0x9240c000,
+ 0xffd40d82,
+ 0xb7839899,
+ 0x75007208,
+ 0x90e2c000,
+ 0xffd40d82,
+ 0xc0009845,
+ 0x0d8290a0,
+ 0x997affd4,
+ 0x0ca6c080,
+ 0xc000b4a1,
+ 0x0d92c002,
+ 0x99c5fff4,
+ 0xffff700a,
+ 0x0dea9364,
+ 0x0d0a0982,
+ 0x0902c121,
+ 0x99aaffb4,
+ 0x590cb780,
+ 0xa992f248,
+ 0x0d02c0a1,
+ 0x09c20d04,
+ 0x9995ffb4,
+ 0x0d82c0c0,
+ 0x0d420992,
+ 0xfff40942,
+ 0x0a0299c8,
+ 0x0ceac03e,
+ 0xc000b481,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xb720a60d,
+ 0xb720590c,
+ 0xd09149b5,
+ 0x75002e10,
+ 0xc0019e8e,
+ 0xd0119282,
+ 0x85062e14,
+ 0x7118b543,
+ 0x75000e82,
+ 0x7d14b5a0,
+ 0x7610b5a3,
+ 0x9082c000,
+ 0x7198b543,
+ 0x2e10d111,
+ 0xc0007500,
+ 0xb5439082,
+ 0xd2117218,
+ 0x75002e10,
+ 0x9082c000,
+ 0x7298b543,
+ 0x600cb780,
+ 0x0ee0d151,
+ 0xa88ef208,
+ 0x06039eab,
+ 0xb7209c62,
+ 0xd2085b0c,
+ 0xb580aa21,
+ 0xb72041ab,
+ 0xb5a041b3,
+ 0xb5204392,
+ 0xb7c05094,
+ 0xf2d05a8c,
+ 0xf208aa49,
+ 0x7048a8d9,
+ 0x9142c000,
+ 0x600cb780,
+ 0xa88df248,
+ 0x0de0d152,
+ 0x9c629e8c,
+ 0x7108b783,
+ 0xc0047500,
+ 0xb7209062,
+ 0x76404694,
+ 0x93c4c003,
+ 0x438ab720,
+ 0xc0007440,
+ 0xda0890e2,
+ 0x7048aa55,
+ 0x9004c001,
+ 0x5e14b7a0,
+ 0x7188b783,
+ 0x600cb7a0,
+ 0xa9d6da08,
+ 0x4392b520,
+ 0x7500850a,
+ 0xa0aad210,
+ 0xa8a9f208,
+ 0x8d24e001,
+ 0x1d849d4f,
+ 0x9c629e8c,
+ 0xaa31f208,
+ 0x0d8a030b,
+ 0x9c629ea4,
+ 0x9180c000,
+ 0x600cb780,
+ 0xa891f208,
+ 0x5e14b7a0,
+ 0x03090d86,
+ 0x9c629e8c,
+ 0x438ab780,
+ 0x7208b723,
+ 0x5b14b720,
+ 0xb5800a04,
+ 0xd210438a,
+ 0x7440aa29,
+ 0x4849b580,
+ 0x9024c001,
+ 0x5c0cb7a0,
+ 0xa8c1f208,
+ 0x9e8c9eab,
+ 0xd2109c62,
+ 0x7500aa29,
+ 0x92a4c000,
+ 0xa9a1f208,
+ 0xa85df208,
+ 0x9e840d82,
+ 0xf2089c62,
+ 0xf248a021,
+ 0x9eaba845,
+ 0x9e840982,
+ 0xda089c62,
+ 0xb581aa21,
+ 0xb7807b8a,
+ 0x7502450c,
+ 0x90bcc000,
+ 0xffb40d86,
+ 0xd2109b51,
+ 0x7500aa29,
+ 0x9122c000,
+ 0x578cb720,
+ 0x412db780,
+ 0xc0003a08,
+ 0xb72090e0,
+ 0xb780578c,
+ 0x2a75412d,
+ 0x412db580,
+ 0x7108b723,
+ 0x518cb780,
+ 0x3a047440,
+ 0x518cb580,
+ 0x91c4c000,
+ 0x0e60d151,
+ 0x5b0cb740,
+ 0xa882d208,
+ 0xa881d208,
+ 0x5094b520,
+ 0xa0cdd808,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0xb783a60d,
+ 0x75007208,
+ 0x6014b7a0,
+ 0xc0000b02,
+ 0xb7a09262,
+ 0xf2105c0c,
+ 0xf208a83d,
+ 0x0d8aa9a1,
+ 0x9c629e84,
+ 0xa021f208,
+ 0xa825f250,
+ 0x09869eab,
+ 0x9c629e84,
+ 0x7208b783,
+ 0xb7c07500,
+ 0xc0005114,
+ 0xb7609124,
+ 0xf2105c14,
+ 0x9e84a825,
+ 0x03019c62,
+ 0x5e0cb720,
+ 0x4129b780,
+ 0x02837500,
+ 0x9224c000,
+ 0x7208b783,
+ 0xc0007500,
+ 0xf25090c4,
+ 0x9ea4aa21,
+ 0xf2109c62,
+ 0x9eb1aa35,
+ 0x9ea415e2,
+ 0xf2109c62,
+ 0x9eb3aa39,
+ 0x9ea4018b,
+ 0xb7209c62,
+ 0xb780590c,
+ 0xc40049ad,
+ 0x75002a00,
+ 0x9102c000,
+ 0xd2088502,
+ 0x8506a12b,
+ 0xa123d208,
+ 0x518cb780,
+ 0x2a3dcffe,
+ 0x518cb580,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x4003ba1b,
+ 0x9e5c9e59,
+ 0x4002ba03,
+ 0x4003ba12,
+ 0x9e537040,
+ 0x9136c000,
+ 0xc0007006,
+ 0xc8129158,
+ 0xc00072c4,
+ 0x9e519180,
+ 0xc0007002,
+ 0x9e8290bc,
+ 0x90a0c000,
+ 0x70c8cc10,
+ 0x9e509e9a,
+ 0xa61d9c22,
+ 0x0a468460,
+ 0x0c9ec034,
+ 0xc000b481,
+ 0x5394b760,
+ 0x9821fff4,
+ 0x490ab780,
+ 0x7d3edffc,
+ 0x2b06d012,
+ 0x9104c000,
+ 0x498ab780,
+ 0x7d3edffc,
+ 0x90a2c000,
+ 0xc0007782,
+ 0x0f8290c4,
+ 0xc0010b82,
+ 0xb7609000,
+ 0xfff45414,
+ 0xd0249808,
+ 0xc0005bc3,
+ 0xba395884,
+ 0xd3a24002,
+ 0x9e8f5c84,
+ 0x5a7fc380,
+ 0x5a79c200,
+ 0xc2000278,
+ 0xba3f5b8b,
+ 0xd3a24003,
+ 0x9e795e7f,
+ 0x5a79c200,
+ 0xd2240218,
+ 0xb7805b8b,
+ 0xdffc490a,
+ 0xc0017d3e,
+ 0xb7809164,
+ 0xba24498a,
+ 0xc000400a,
+ 0x09029124,
+ 0x7fecb55f,
+ 0x7f6cb55f,
+ 0x9180c00b,
+ 0x6384b740,
+ 0xb7209e7e,
+ 0x1a04628c,
+ 0x5908d226,
+ 0xb7609e2d,
+ 0x028f6304,
+ 0x7f6cb5bf,
+ 0x7fecb5df,
+ 0xa34ee030,
+ 0x5904d226,
+ 0xc8309d1d,
+ 0x9e3da3cd,
+ 0xa3cec830,
+ 0x9240c00a,
+ 0x498ab780,
+ 0x400aba24,
+ 0xc0020e82,
+ 0xb72092a4,
+ 0xb7c05994,
+ 0xb780628c,
+ 0x9d6d404b,
+ 0x5a11c200,
+ 0xd2261a04,
+ 0xc8305904,
+ 0xb780a3cd,
+ 0x010d404b,
+ 0x638cb7e0,
+ 0xc2000089,
+ 0x1a045a11,
+ 0x5908d226,
+ 0xa9c6d829,
+ 0x18845891,
+ 0xd0a69d53,
+ 0xb7a05904,
+ 0xe270630c,
+ 0x9d47a306,
+ 0xa9c1d808,
+ 0xba1b0d02,
+ 0xc8504003,
+ 0xba1ba3a6,
+ 0xfff44002,
+ 0xb7809b3f,
+ 0xba24498a,
+ 0xd2264002,
+ 0x0a045904,
+ 0xd2269d4b,
+ 0xba005904,
+ 0x9d534002,
+ 0xa9c6c850,
+ 0xa985ca50,
+ 0xb51f0d02,
+ 0xba1b7f6c,
+ 0xba1b4003,
+ 0xfff44002,
+ 0x9eba9b25,
+ 0xba009ded,
+ 0xb51f4002,
+ 0x010b7fec,
+ 0x9260c002,
+ 0x628cb7c0,
+ 0xd2269eba,
+ 0xb7a05904,
+ 0xd011630c,
+ 0x0a0418c2,
+ 0xd2269d4b,
+ 0xd0a85904,
+ 0x9d535904,
+ 0x5908d0a6,
+ 0x9ded9d44,
+ 0x639cb760,
+ 0xa3c1c830,
+ 0xa9c6c860,
+ 0xa985ca60,
+ 0xa34ee030,
+ 0xa3a6c850,
+ 0x4003ba1b,
+ 0x4002ba1b,
+ 0x9af6fff4,
+ 0x498ab780,
+ 0x4002ba24,
+ 0x5904d226,
+ 0x9d4b0a04,
+ 0x5904d226,
+ 0x4002ba00,
+ 0xc8509d53,
+ 0xca50a9c6,
+ 0x050fa985,
+ 0x7f6cb51f,
+ 0x4003ba1b,
+ 0x4002ba1b,
+ 0x9adcfff4,
+ 0xb7209ded,
+ 0xba006394,
+ 0xb51f4002,
+ 0x77827fec,
+ 0x0503010b,
+ 0x90e2c000,
+ 0x7a6ab5ff,
+ 0x7c72b5ff,
+ 0xb7800e86,
+ 0xba0c498a,
+ 0xd0a64002,
+ 0x9dc75908,
+ 0xaa29e020,
+ 0xc0007502,
+ 0xd0a693c2,
+ 0x9e3d5904,
+ 0x5d04d2a8,
+ 0x0ca3cffe,
+ 0xa8cdc830,
+ 0x8184c001,
+ 0x803bf210,
+ 0xa081da08,
+ 0xca209d53,
+ 0xd011a886,
+ 0x9d440e52,
+ 0xf0519ea5,
+ 0xba2d8c00,
+ 0xca104003,
+ 0xb780a086,
+ 0xba24498a,
+ 0xd0114002,
+ 0xd0a608c2,
+ 0x9dc75908,
+ 0xaa29e020,
+ 0xc0007502,
+ 0xd0a693c2,
+ 0x9e3d5904,
+ 0x5d04d2a8,
+ 0x87a3cffe,
+ 0xa8cdc830,
+ 0x8184c001,
+ 0x8037f010,
+ 0xda089e2d,
+ 0x9d47a081,
+ 0x0e52d011,
+ 0xa8a6c820,
+ 0xe0539ea5,
+ 0xba2d8d00,
+ 0xc8304003,
+ 0x7744a0ce,
+ 0x9142c001,
+ 0x90fac000,
+ 0xc0027742,
+ 0xc0029022,
+ 0x77469120,
+ 0x90c4c002,
+ 0x7a72b77f,
+ 0x7aeab77f,
+ 0x7b72b75f,
+ 0x4003ba1b,
+ 0x4002ba1b,
+ 0x4003ba12,
+ 0x9a5efff4,
+ 0x7c72b77f,
+ 0x7ceab77f,
+ 0x7d72b75f,
+ 0x4002ba28,
+ 0x4003ba1b,
+ 0x4002ba1b,
+ 0x4003ba12,
+ 0x9300c000,
+ 0x7a72b77f,
+ 0x7aeab77f,
+ 0xba1b0d02,
+ 0xba1b4003,
+ 0xfff44002,
+ 0xb77f9a43,
+ 0xb77f7c72,
+ 0xba287cea,
+ 0x0d024002,
+ 0x4003ba1b,
+ 0x4002ba1b,
+ 0x9a36fff4,
+ 0x4002ba30,
+ 0x91c0c000,
+ 0x7a6ab79f,
+ 0x7c6ab73f,
+ 0x4002ba2c,
+ 0x4002ba31,
+ 0x9080c000,
+ 0x0a820b02,
+ 0x550cb720,
+ 0x6204b740,
+ 0x5908d0a6,
+ 0xe0309e2d,
+ 0x2a04aa4d,
+ 0xc0087500,
+ 0x0a429262,
+ 0x0c9ec034,
+ 0xc000b481,
+ 0x5414b760,
+ 0x9a59ffd4,
+ 0x5943d024,
+ 0x5884c000,
+ 0x4002ba11,
+ 0x5c84d122,
+ 0x5a7fc100,
+ 0x5a75c200,
+ 0xc2000228,
+ 0xc100590f,
+ 0x9e8a5a04,
+ 0x7f6cb73f,
+ 0x4003ba12,
+ 0x12429e52,
+ 0x4002ba04,
+ 0x5e7fd122,
+ 0xc41409f2,
+ 0xba097000,
+ 0xc4104002,
+ 0x74007046,
+ 0x5a75c200,
+ 0xd2240228,
+ 0x0003590f,
+ 0x9076c000,
+ 0xb79f1003,
+ 0xb73f7f6c,
+ 0xba007fec,
+ 0xd0204002,
+ 0xd12200c0,
+ 0x12425e04,
+ 0x4002ba04,
+ 0x5e7dd0a2,
+ 0x04949ea2,
+ 0x9e4a5c87,
+ 0x7000c414,
+ 0x4002ba09,
+ 0x7046c410,
+ 0x00037400,
+ 0x4002ba12,
+ 0x9076c000,
+ 0xb79f1003,
+ 0xba007fec,
+ 0xd0204002,
+ 0xc10000c0,
+ 0x124a5a04,
+ 0x4002ba04,
+ 0x5e7dd0a2,
+ 0xc4149d4d,
+ 0xba097000,
+ 0xc4104002,
+ 0x74007046,
+ 0xc3010003,
+ 0x5c870496,
+ 0x4003ba11,
+ 0x9076c000,
+ 0xba001003,
+ 0xd1224002,
+ 0xd0205e04,
+ 0x124c00d0,
+ 0x4002ba04,
+ 0x5e7dd0a2,
+ 0xc0019dcd,
+ 0x5c870496,
+ 0xc4149e4a,
+ 0xba097000,
+ 0xc4104002,
+ 0x74007046,
+ 0xba120003,
+ 0xc0004002,
+ 0x10039076,
+ 0x5888d124,
+ 0x4002ba00,
+ 0xc2000260,
+ 0x024258fd,
+ 0x2cf0cffe,
+ 0xb7409e49,
+ 0xc2005414,
+ 0xc2005a07,
+ 0x30425a48,
+ 0x0d00c200,
+ 0xb4025d0b,
+ 0xb720c000,
+ 0xc2005414,
+ 0x5c8b0c90,
+ 0xc000b401,
+ 0x5414b740,
+ 0x0d20c200,
+ 0xb4025d0b,
+ 0xb720c000,
+ 0xc2005414,
+ 0x5c8b0cb0,
+ 0xc000b401,
+ 0x5414b740,
+ 0x0d40c200,
+ 0xb4025d0b,
+ 0xb720c000,
+ 0xc2005414,
+ 0x5c8b0cd0,
+ 0xc000b401,
+ 0x5414b740,
+ 0x0d60c200,
+ 0xb4025d0b,
+ 0xb720c000,
+ 0xc2005414,
+ 0x5c8b0cf0,
+ 0xc000b401,
+ 0x5414b740,
+ 0x0d00c202,
+ 0xb4025d0b,
+ 0xb720c000,
+ 0xc2025414,
+ 0x5c8b0c90,
+ 0xc000b401,
+ 0x5414b740,
+ 0x0d20c202,
+ 0xb4025d0b,
+ 0xb720c000,
+ 0xc2025414,
+ 0x5c8b0cb0,
+ 0xc000b401,
+ 0x5414b740,
+ 0x0d40c202,
+ 0xb4025d0b,
+ 0xb720c000,
+ 0xc2025414,
+ 0x5c8b0cd0,
+ 0xc000b401,
+ 0x5414b740,
+ 0x0d60c202,
+ 0xb4025d0b,
+ 0xb720c000,
+ 0xc2025414,
+ 0x5c8b0cf0,
+ 0xc000b401,
+ 0x7ceeb79f,
+ 0x7d6eb7bf,
+ 0x7deeb7df,
+ 0x7e6eb7ff,
+ 0x8c60c002,
+ 0xb7209c22,
+ 0x9e5c4b8c,
+ 0x2a40c0ff,
+ 0x28c0c0ff,
+ 0x85027102,
+ 0x9062c000,
+ 0xb5408506,
+ 0xb5604c1c,
+ 0x9c224b94,
+ 0x9e5da605,
+ 0x2a50d051,
+ 0xc0007500,
+ 0xb78090e4,
+ 0x75004c0c,
+ 0x9142c000,
+ 0x0d82c0c0,
+ 0x09c2c012,
+ 0x09420d02,
+ 0x993fffd4,
+ 0x4b8cb780,
+ 0x0cb6c034,
+ 0xc000b481,
+ 0x0d32c034,
+ 0xc000b4a2,
+ 0x4b0cb5a0,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0x8420a61d,
+ 0x7108b783,
+ 0x87027500,
+ 0x9122c000,
+ 0x5b0cb780,
+ 0xa881d288,
+ 0xc01a7440,
+ 0xb7c09184,
+ 0xf208588c,
+ 0x2a20aa59,
+ 0xb7a07500,
+ 0xc001590c,
+ 0xd1319162,
+ 0xda080a50,
+ 0xb780a881,
+ 0xb740630c,
+ 0x8506628c,
+ 0x551cb540,
+ 0xd0a65891,
+ 0xf3105904,
+ 0xe2108021,
+ 0xb5408125,
+ 0xb5404902,
+ 0xda0a4982,
+ 0xd80aa100,
+ 0xc430a140,
+ 0x0a020c8a,
+ 0xc000b481,
+ 0x4220b101,
+ 0x3880c180,
+ 0x0c8ac030,
+ 0xc000b421,
+ 0x590cb7a0,
+ 0xb7409eb1,
+ 0x0dc2470c,
+ 0xc002098e,
+ 0xb55f0d42,
+ 0xff947fe4,
+ 0xf20898c1,
+ 0xb7a0aa55,
+ 0xf2085814,
+ 0xda08a8c9,
+ 0xda08a8da,
+ 0xb580a95d,
+ 0xf208480c,
+ 0xf210aa45,
+ 0xd252a0ba,
+ 0xf21008d0,
+ 0xf250a0bd,
+ 0xf210a121,
+ 0xda08a235,
+ 0xd131a942,
+ 0xda080a50,
+ 0xb740a881,
+ 0xf248404b,
+ 0x9e53a947,
+ 0xa8d2da88,
+ 0xc08060b2,
+ 0xc2005a7f,
+ 0x00985a71,
+ 0x58945893,
+ 0x80a3e210,
+ 0x7e7edffc,
+ 0xc1005915,
+ 0xf2505b90,
+ 0xb75fa0bd,
+ 0xc0007fe4,
+ 0xe10091c2,
+ 0xc0005d40,
+ 0xda889144,
+ 0xb520aa55,
+ 0xb5404792,
+ 0xb5804882,
+ 0xf288468a,
+ 0xd132aa21,
+ 0xf25009d0,
+ 0xf250a235,
+ 0xda08a239,
+ 0xd810a941,
+ 0xf248aa61,
+ 0x6228a93b,
+ 0x8021f310,
+ 0x5f0cb760,
+ 0xa229f290,
+ 0xa8c1da08,
+ 0xaa61d810,
+ 0xa934f24a,
+ 0xa942da08,
+ 0xa973f008,
+ 0x60990884,
+ 0xe2205d20,
+ 0xe210812d,
+ 0xf29082a3,
+ 0xf208a0a5,
+ 0xda08a12e,
+ 0xf008a8c2,
+ 0x5c9ca977,
+ 0x80abe220,
+ 0xa0b2f208,
+ 0xa126f250,
+ 0xa0aef250,
+ 0xaa39da48,
+ 0xa229f250,
+ 0xa8bdda48,
+ 0xa0b1f250,
+ 0xaa29da48,
+ 0xa923f208,
+ 0xc2006228,
+ 0xf3105a10,
+ 0xf2108021,
+ 0xda48a221,
+ 0xf208a8ad,
+ 0x6122a927,
+ 0xf210590c,
+ 0xf2108025,
+ 0xf208a229,
+ 0xe210a92b,
+ 0xf2108125,
+ 0xda48a12d,
+ 0xf210aa29,
+ 0xda48a225,
+ 0xf210a8ad,
+ 0xd810a0b1,
+ 0xc004aa61,
+ 0xd1311d00,
+ 0xc20008d4,
+ 0xc2005a40,
+ 0xf2905a51,
+ 0xb780a235,
+ 0xc002402b,
+ 0xb5401c80,
+ 0xb5204f94,
+ 0xc2005014,
+ 0xc2005a40,
+ 0xf2905a51,
+ 0xc42ea239,
+ 0x0a020cf2,
+ 0xc000b481,
+ 0x4220b101,
+ 0x74402884,
+ 0x0b50d132,
+ 0x9102c000,
+ 0xaa41da10,
+ 0x753ec09c,
+ 0x9332c011,
+ 0x08c6c0c0,
+ 0x0ce2c050,
+ 0xc000b421,
+ 0xa959f208,
+ 0x0a50d131,
+ 0xa881da08,
+ 0x28a0d052,
+ 0x58917640,
+ 0x4f0cb520,
+ 0x9222c000,
+ 0xc0600a02,
+ 0xb4810cae,
+ 0xda08c000,
+ 0x7440a8c1,
+ 0x9302c000,
+ 0xb5408502,
+ 0xc0004f1c,
+ 0xc2009260,
+ 0x74802900,
+ 0x9122c000,
+ 0xc0600a0a,
+ 0xb4810cae,
+ 0xc000c000,
+ 0x0a0690e0,
+ 0x0caec060,
+ 0xc000b481,
+ 0xaa59f208,
+ 0x75002a04,
+ 0xb540850a,
+ 0xc000499c,
+ 0x850490a2,
+ 0x499cb540,
+ 0x7108b783,
+ 0xb7e07500,
+ 0xc0006014,
+ 0xb78392e2,
+ 0x75007208,
+ 0x9244c000,
+ 0x468cb780,
+ 0xc0007500,
+ 0xb78391a2,
+ 0x75007288,
+ 0x9104c000,
+ 0x5c14b760,
+ 0xaa61f210,
+ 0x9c629ea4,
+ 0xaa59f208,
+ 0x75002a20,
+ 0x90e2c000,
+ 0xaa41da08,
+ 0xc0007500,
+ 0xb7809244,
+ 0xb7205b0c,
+ 0xda08548c,
+ 0x9e8ca98e,
+ 0xb7839c62,
+ 0x75007108,
+ 0x90a2c000,
+ 0xb5438506,
+ 0xf2087b18,
+ 0x2a20aa59,
+ 0xc0017500,
+ 0xc0e09082,
+ 0xc03808ba,
+ 0xb4210cfa,
+ 0xf208c000,
+ 0xb720aa59,
+ 0x851e498c,
+ 0x2a041cf8,
+ 0x38d07500,
+ 0x498cb520,
+ 0x08e2c084,
+ 0x8d28e001,
+ 0x4d9cb540,
+ 0xc000b421,
+ 0x610cb780,
+ 0xc002088a,
+ 0xb5800c80,
+ 0xb421528c,
+ 0xffd4c000,
+ 0xb7809864,
+ 0xc03e498c,
+ 0xb4810c82,
+ 0xb720c000,
+ 0xc0504d8c,
+ 0xb4210c82,
+ 0xda08c000,
+ 0xf290a941,
+ 0xda08a8b5,
+ 0x6123a946,
+ 0xda089e53,
+ 0x6097aa41,
+ 0x5e94b720,
+ 0xb5418702,
+ 0x857f7c82,
+ 0x459ab540,
+ 0xb540851a,
+ 0x0d86449a,
+ 0xb5801a04,
+ 0xb5404e0c,
+ 0x8526405b,
+ 0x415bb540,
+ 0x460ab540,
+ 0x18a05891,
+ 0x40cbb520,
+ 0x7fe4b55f,
+ 0x9831c034,
+ 0x7fe4b75f,
+ 0xa8c6da08,
+ 0xb5438506,
+ 0xb5437a18,
+ 0xb5447a80,
+ 0xb5444000,
+ 0xb5434080,
+ 0xf2907b80,
+ 0x9e49aa35,
+ 0x5894b720,
+ 0x7c00b543,
+ 0xb7206243,
+ 0x8502434d,
+ 0xc10158c8,
+ 0x9e892880,
+ 0xa9c2da10,
+ 0xb5400a82,
+ 0xb5404e9c,
+ 0x5dc0521c,
+ 0x2dc0c0ff,
+ 0x3db0ca01,
+ 0x5a11c200,
+ 0x450ab580,
+ 0xfff43596,
+ 0xc0c099a2,
+ 0xc0120d82,
+ 0x0d0209c2,
+ 0xffb40942,
+ 0x714e9afc,
+ 0xc0018546,
+ 0x9dcf9148,
+ 0x99a4fff4,
+ 0x0d82c0c0,
+ 0x09c2c012,
+ 0x09060d02,
+ 0x9aedffb4,
+ 0x1a70d091,
+ 0x0a027148,
+ 0x0a42d00b,
+ 0xa9c2da10,
+ 0x5a28c200,
+ 0x5dc09ea1,
+ 0x2dc0c0ff,
+ 0x3db0c801,
+ 0xfff43596,
+ 0xd0519978,
+ 0xc2000a50,
+ 0xc2005a40,
+ 0x714e5ac1,
+ 0xfffe8506,
+ 0xf2509346,
+ 0x7500aa71,
+ 0x857fcfce,
+ 0x7f9cb540,
+ 0x9102c000,
+ 0xa9def208,
+ 0x450ab760,
+ 0x9c629ea4,
+ 0xc0140d82,
+ 0xb78398f7,
+ 0x75007a88,
+ 0xb5438502,
+ 0xc0027a18,
+ 0xb7a092a4,
+ 0x0f025c0c,
+ 0xb783068f,
+ 0x75007108,
+ 0x9082c002,
+ 0x7208b783,
+ 0xc0017500,
+ 0xb78393e2,
+ 0x75007b08,
+ 0x9182c000,
+ 0xa9a2f208,
+ 0x7b10b5c3,
+ 0xa869f250,
+ 0x9c629e84,
+ 0x430ab500,
+ 0x7c08b783,
+ 0xc0007500,
+ 0xf2109382,
+ 0x9eaba825,
+ 0x7c10b5c3,
+ 0x9c629e84,
+ 0xaa21f250,
+ 0x9c629ea4,
+ 0xa9a1f208,
+ 0xa83df210,
+ 0x9e840d86,
+ 0xf2509c62,
+ 0x9eabaa25,
+ 0xa021f208,
+ 0x9ea40986,
+ 0xb7839c62,
+ 0x75007c08,
+ 0x91e4c000,
+ 0xc0140d86,
+ 0xb78398ab,
+ 0x75007c08,
+ 0x9342ffff,
+ 0x90a0c000,
+ 0xc0140d86,
+ 0xb78398a1,
+ 0x75007a88,
+ 0x9262fffd,
+ 0x0d82c0c0,
+ 0x09c2c012,
+ 0x09060d02,
+ 0x9a5bffb4,
+ 0x0a02c801,
+ 0x520cb580,
+ 0x0d82c0c0,
+ 0x09c2c012,
+ 0x09420d02,
+ 0x9a4fffb4,
+ 0x5214b760,
+ 0x98e9fff4,
+ 0xfff40d86,
+ 0xc0c098f7,
+ 0xc0120d82,
+ 0x0d0209c2,
+ 0xffb40906,
+ 0x85029a40,
+ 0x0892c006,
+ 0x0c9ac430,
+ 0xb5400902,
+ 0xc006521c,
+ 0xb4418510,
+ 0xb104c000,
+ 0x2a404220,
+ 0x9d4f7500,
+ 0x4422b313,
+ 0xe0000087,
+ 0xffff1884,
+ 0xb7409284,
+ 0xc0064694,
+ 0xc4300892,
+ 0x09020c9a,
+ 0x8512c006,
+ 0xc000b441,
+ 0x4220b104,
+ 0x2a00c002,
+ 0x9d537500,
+ 0x4422b314,
+ 0xe0000089,
+ 0xffff1884,
+ 0x0a029264,
+ 0x0ceac03e,
+ 0x40e8b960,
+ 0xc000b481,
+ 0x93c1ffff,
+ 0xc0007680,
+ 0x0a029122,
+ 0x0ceac03e,
+ 0xc000b481,
+ 0x9180c000,
+ 0x450cb780,
+ 0x088a7504,
+ 0x0ceac03e,
+ 0x1894d00c,
+ 0xc000b421,
+ 0x0d82c0c0,
+ 0x0d0209e2,
+ 0xffb40942,
+ 0x088299ec,
+ 0x0cb6c034,
+ 0xc000b421,
+ 0xaa59f208,
+ 0x75002a20,
+ 0x91e2c000,
+ 0x0ceac450,
+ 0xb4810a02,
+ 0xb101c000,
+ 0xb7804220,
+ 0xc0025b0c,
+ 0xda0828fc,
+ 0xb79fa08d,
+ 0xb7bf7dee,
+ 0xb7df7e6e,
+ 0xb7ff7eee,
+ 0xc0027f6e,
+ 0x9c228c20,
+ 0xb780a60d,
+ 0xb720620c,
+ 0x0a82520c,
+ 0xa882f208,
+ 0x7efec01c,
+ 0xa081f208,
+ 0xf2080309,
+ 0xc000a086,
+ 0xc0c09182,
+ 0xc0120d82,
+ 0x0d0209c2,
+ 0xffb40906,
+ 0xc00099b0,
+ 0xc4349240,
+ 0x0a020cb2,
+ 0xc000b481,
+ 0x4220b101,
+ 0x74402884,
+ 0x90e2c000,
+ 0x7a08b783,
+ 0xc00c7500,
+ 0xb78092c2,
+ 0x75024e8c,
+ 0x90c4c000,
+ 0xc0140d82,
+ 0x3ac09a92,
+ 0x5894b740,
+ 0x580cb740,
+ 0xa8c5d810,
+ 0xaa55f088,
+ 0x4592b720,
+ 0x9e966243,
+ 0xc2009e49,
+ 0x0a045a11,
+ 0x4002ba09,
+ 0x4002ba24,
+ 0x06857048,
+ 0x9138c000,
+ 0x498cb780,
+ 0xb5802a51,
+ 0xc003498c,
+ 0xf21091c0,
+ 0x2a04aa39,
+ 0xc0027500,
+ 0xb78093a2,
+ 0x7440498c,
+ 0x3942d011,
+ 0x498cb540,
+ 0x929cc002,
+ 0x4792b760,
+ 0xba249e5c,
+ 0xc002400a,
+ 0xc00291a2,
+ 0xb760911c,
+ 0xb740660a,
+ 0x9e995f84,
+ 0xba099e2d,
+ 0xd0a24003,
+ 0x9e485e7f,
+ 0x5a6dc200,
+ 0xc2000208,
+ 0xd2265a17,
+ 0x0c065908,
+ 0x5a14c200,
+ 0x9e401208,
+ 0xa94ee038,
+ 0x4002ba24,
+ 0x9e545090,
+ 0xc0017902,
+ 0xb7819102,
+ 0x75004d88,
+ 0x9064c001,
+ 0x470ab780,
+ 0xba249e48,
+ 0x70084002,
+ 0x9378c000,
+ 0xc0007640,
+ 0xb78190e4,
+ 0x75024d08,
+ 0x92c2c000,
+ 0x1e32d011,
+ 0xb5402959,
+ 0x9e52498c,
+ 0xb56048fd,
+ 0xb501470a,
+ 0xb5804d90,
+ 0x20a2478a,
+ 0xc000a0c1,
+ 0x850290a0,
+ 0x4d98b541,
+ 0x458ab780,
+ 0x400aba24,
+ 0x90fcc000,
+ 0x660ab780,
+ 0xb5800a04,
+ 0xb720660a,
+ 0xc03e498c,
+ 0xb4210c82,
+ 0xb780c000,
+ 0x0a04458a,
+ 0x458ab580,
+ 0x9affc014,
+ 0x7108b783,
+ 0xc0027500,
+ 0xb7839222,
+ 0x75007208,
+ 0x9182c002,
+ 0x520cb780,
+ 0x75002a40,
+ 0x90e4c000,
+ 0x4008b784,
+ 0xc002751a,
+ 0xb7809024,
+ 0xb7215a0c,
+ 0xda087c92,
+ 0x9e4ca881,
+ 0xc0007102,
+ 0xb7809284,
+ 0x8502430a,
+ 0x7c9ab541,
+ 0x440ab580,
+ 0x4412b760,
+ 0x548cb780,
+ 0xb5438506,
+ 0xb5437b18,
+ 0x9ea47c18,
+ 0xf2109c62,
+ 0x2a10aa39,
+ 0xc0007500,
+ 0xb78393e2,
+ 0x75007c08,
+ 0x90e4c000,
+ 0x7c8ab781,
+ 0xc0007502,
+ 0xb78392a4,
+ 0x75007b08,
+ 0xd0010902,
+ 0xc4380922,
+ 0x0a020c82,
+ 0xc000b481,
+ 0x4220b101,
+ 0x309428f1,
+ 0x0c82c038,
+ 0xc000b421,
+ 0x98a7c014,
+ 0x0d82c0c0,
+ 0x0d0209e2,
+ 0x097ec01e,
+ 0x989fffb4,
+ 0x0d82c0c0,
+ 0xc1000992,
+ 0xc1000d02,
+ 0xffb40902,
+ 0xc4309896,
+ 0x0a020c8e,
+ 0xc000b481,
+ 0x4220b104,
+ 0x3a00c100,
+ 0x0c8ec030,
+ 0xc000b481,
+ 0xaa39f210,
+ 0x75002a20,
+ 0x9342c001,
+ 0x550cb780,
+ 0x5908d226,
+ 0xe0609d43,
+ 0xd011a885,
+ 0x75002a12,
+ 0x90e4c000,
+ 0x2a14d011,
+ 0xc0007500,
+ 0xffd49082,
+ 0xb7209828,
+ 0xd0a6550c,
+ 0x9d475908,
+ 0xaa25e060,
+ 0x75002a04,
+ 0x9382c000,
+ 0x5994b720,
+ 0x498ab720,
+ 0x404bb780,
+ 0x9e890884,
+ 0x4003ba09,
+ 0xc2009e4a,
+ 0x70885a11,
+ 0x498ab520,
+ 0x9158c000,
+ 0x490ab780,
+ 0xb5408502,
+ 0x0a04499a,
+ 0x490ab580,
+ 0x0c8ac430,
+ 0xb4810a02,
+ 0xb104c000,
+ 0xc1804220,
+ 0xc0303a00,
+ 0xb4810c8a,
+ 0xb780c000,
+ 0xf2904e8c,
+ 0x0a04a955,
+ 0xb5807104,
+ 0xc0004e8c,
+ 0x850290a4,
+ 0x4e9cb540,
+ 0xa8a5da10,
+ 0x4592b720,
+ 0x60a35891,
+ 0x4003ba09,
+ 0x3a849e4c,
+ 0x71020884,
+ 0xcffe020b,
+ 0xb3542a3d,
+ 0x02894426,
+ 0x28d0d051,
+ 0xc0007440,
+ 0xc0c09142,
+ 0xc0120d82,
+ 0x0d0209c2,
+ 0xffb40942,
+ 0xb7809812,
+ 0x7500520c,
+ 0x90a2c000,
+ 0xffd49eab,
+ 0xb79f9ab9,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0xf8399c22,
+ 0xb724a205,
+ 0xb7404008,
+ 0xb7805284,
+ 0xd0a6448a,
+ 0x9e2d5908,
+ 0x590cb740,
+ 0xa94ee030,
+ 0x619cb760,
+ 0x4098b744,
+ 0x4000b744,
+ 0xb5801a04,
+ 0xc030448a,
+ 0xe200a8cd,
+ 0xd2515a40,
+ 0xda080a20,
+ 0xe210a882,
+ 0xb54082a3,
+ 0x5c955214,
+ 0xb5245c90,
+ 0xc0014008,
+ 0xb78492c4,
+ 0x0a044088,
+ 0x28ced3f1,
+ 0xb5847444,
+ 0xc0014088,
+ 0xb7609034,
+ 0x85067f94,
+ 0x7a98b543,
+ 0x764024a6,
+ 0x7c18b543,
+ 0x5214b520,
+ 0x9202c000,
+ 0x08a0d131,
+ 0x402bb780,
+ 0x3c80c801,
+ 0xc2009e48,
+ 0xc0ff5a40,
+ 0x32082a40,
+ 0x520cb580,
+ 0xf9f80806,
+ 0x9c22aa1d,
+ 0x4088b724,
+ 0x5e84b740,
+ 0x5904d0a6,
+ 0xc8309e2d,
+ 0xb580aa4d,
+ 0xd132448a,
+ 0xb72009a0,
+ 0xd810458a,
+ 0xba19aa61,
+ 0xc2004002,
+ 0x1a045a11,
+ 0xc00070c8,
+ 0xb7809104,
+ 0xc0407f8c,
+ 0xb5803a00,
+ 0xb7207f8c,
+ 0xd0114f0c,
+ 0x70c80a18,
+ 0x9104c000,
+ 0x7f8cb780,
+ 0x3a00c010,
+ 0x7f8cb580,
+ 0x0a1cd011,
+ 0xc00070c8,
+ 0xb7809104,
+ 0xc0207f8c,
+ 0xb5803a00,
+ 0xb7807f8c,
+ 0xf288580c,
+ 0xf288a916,
+ 0x9e50a919,
+ 0x460ab720,
+ 0x1a24d011,
+ 0xba096241,
+ 0x00b24002,
+ 0xc0007048,
+ 0xb7809106,
+ 0xcfff7f8c,
+ 0xb5802a7a,
+ 0xd0117f8c,
+ 0x9e521a22,
+ 0x70486245,
+ 0x9106c000,
+ 0x7f8cb780,
+ 0x2a7ec7fe,
+ 0x7f8cb580,
+ 0x451ab740,
+ 0x5e11d0a2,
+ 0x8821f310,
+ 0xc00070c8,
+ 0xb7809104,
+ 0xcfff7f8c,
+ 0xb5802a4e,
+ 0xb7407f8c,
+ 0xb720588c,
+ 0xd8087f8c,
+ 0x9e50aa45,
+ 0xc2009e8a,
+ 0x1a045a11,
+ 0xb7206209,
+ 0x0a045214,
+ 0x4002ba24,
+ 0x249470c8,
+ 0x5214b520,
+ 0x9118c000,
+ 0x3c80c801,
+ 0x5214b520,
+ 0x91c0c000,
+ 0xaa61d810,
+ 0x3c80c801,
+ 0xc2009e48,
+ 0xc0ff5a40,
+ 0x32082a40,
+ 0x520cb580,
+ 0xaa59f008,
+ 0x2a00c040,
+ 0xc0007500,
+ 0xb7809102,
+ 0xc101520c,
+ 0xb5803a00,
+ 0xb760520c,
+ 0xffd45214,
+ 0x080299a8,
+ 0xaa1df9f8,
+ 0xb7009c22,
+ 0xd2515914,
+ 0xb7600e04,
+ 0xda08580c,
+ 0xc00ea881,
+ 0xc0342dfc,
+ 0xf0080cba,
+ 0x5895a961,
+ 0x5810c080,
+ 0xb4419e82,
+ 0xb780c000,
+ 0xf008454a,
+ 0xc200a963,
+ 0xf3105a10,
+ 0xf0088021,
+ 0x0c84a8e9,
+ 0xa261f008,
+ 0xc000b421,
+ 0x46cab780,
+ 0xa96bf008,
+ 0x8021f310,
+ 0xa8edf008,
+ 0xf0080c84,
+ 0xb421a269,
+ 0xb780c000,
+ 0xf00846ca,
+ 0xf310a96f,
+ 0xf0088021,
+ 0x0c8ca8f5,
+ 0xa26df008,
+ 0xc000b421,
+ 0xa97df008,
+ 0xb4410c84,
+ 0xb780c000,
+ 0x0a084e0c,
+ 0x5890d224,
+ 0xc0007244,
+ 0xd131931c,
+ 0xda080e04,
+ 0x9e4ca903,
+ 0x88a1e210,
+ 0xc0007102,
+ 0xf00891d6,
+ 0xf008aa75,
+ 0xc010a8fd,
+ 0xf0080a00,
+ 0xc008a275,
+ 0xf0080880,
+ 0xb780a0fd,
+ 0xc0344f8c,
+ 0xb4810cda,
+ 0xb720c000,
+ 0x0c84500c,
+ 0xc000b421,
+ 0x4f8cb780,
+ 0x0a400ce4,
+ 0xc000b481,
+ 0x500cb720,
+ 0x08c00c84,
+ 0xc000b421,
+ 0x4f8cb780,
+ 0x500cb720,
+ 0xc0101ce4,
+ 0xb5800a00,
+ 0xf0484f8c,
+ 0xc008aa65,
+ 0xb5200880,
+ 0xb481500c,
+ 0xf048c000,
+ 0x0c84a8ed,
+ 0xc000b421,
+ 0xaa65f048,
+ 0xa8edf048,
+ 0xc0100c84,
+ 0xf0480a00,
+ 0xf048a265,
+ 0xc008aa75,
+ 0xf0480880,
+ 0xb481a0ed,
+ 0xf088c000,
+ 0x0c88a965,
+ 0xc000b441,
+ 0x0c80d131,
+ 0x402bb780,
+ 0xa967f088,
+ 0x2a40cffe,
+ 0x8021f310,
+ 0xa969f088,
+ 0xf0880c88,
+ 0xb441a265,
+ 0xd131c000,
+ 0xb7800c80,
+ 0xf088402b,
+ 0xcffea96b,
+ 0xf3102a40,
+ 0xf0488021,
+ 0x1c8ca97d,
+ 0xa269f088,
+ 0xc000b441,
+ 0x0c80d131,
+ 0x402bb780,
+ 0xa97ff048,
+ 0xc20076c0,
+ 0xc2005a11,
+ 0xf3105a14,
+ 0xf0488021,
+ 0xc001a27d,
+ 0xb7209182,
+ 0x1ca8454a,
+ 0xc000b421,
+ 0x46cab780,
+ 0xc2000c84,
+ 0xc2005a0d,
+ 0x324258c0,
+ 0xc000b481,
+ 0x0d04d131,
+ 0xaa41d808,
+ 0xc2000c8c,
+ 0xcffe588c,
+ 0xc20028fc,
+ 0x30985a50,
+ 0xc000b421,
+ 0x0d04d251,
+ 0xaa41d808,
+ 0xc2000ca0,
+ 0x1a105a11,
+ 0xc0042a3c,
+ 0xb4813a00,
+ 0xb780c000,
+ 0x0a044e0c,
+ 0x4e0cb580,
+ 0xa68d9c22,
+ 0x0c92c43e,
+ 0xb4810a02,
+ 0xb103c000,
+ 0xb7804220,
+ 0xda085d8c,
+ 0xda08a885,
+ 0xda08a909,
+ 0xda08a189,
+ 0xda08a081,
+ 0x0cd0a105,
+ 0xb4810a02,
+ 0xb103c000,
+ 0xb7204220,
+ 0xb7805d0c,
+ 0xb7a0520c,
+ 0xb7205d8c,
+ 0xb74040b3,
+ 0xb560412b,
+ 0x2a40412b,
+ 0x03037500,
+ 0x4033b520,
+ 0x40abb540,
+ 0x90e2c000,
+ 0x4008b784,
+ 0xc000750a,
+ 0xb78490f2,
+ 0x751a4008,
+ 0x9204c00d,
+ 0x7c8ab781,
+ 0xb5810a04,
+ 0xc4507c8a,
+ 0x0a020ca6,
+ 0xc000b481,
+ 0x4220b103,
+ 0xc0310087,
+ 0x02072880,
+ 0x2a7cc00f,
+ 0x59e1d0a4,
+ 0x59c1d228,
+ 0xcffe0007,
+ 0x0c88287c,
+ 0xb4810a02,
+ 0xb103c000,
+ 0xc1804220,
+ 0x9e9a5bc1,
+ 0x2d7ccffe,
+ 0xb4810cbc,
+ 0xb103c000,
+ 0x00874220,
+ 0x588cb740,
+ 0x7b8ab781,
+ 0x2880c0fc,
+ 0x283ed0f2,
+ 0x5b19d0a4,
+ 0xd8889e41,
+ 0x9e95a8d2,
+ 0x7b92b501,
+ 0x7e7edffc,
+ 0xba1c1218,
+ 0xc0024002,
+ 0x76c291c2,
+ 0x9384c000,
+ 0x480ab780,
+ 0x5f84b740,
+ 0x4002ba24,
+ 0x58ffc200,
+ 0x00c258ed,
+ 0xd0a65897,
+ 0x9e2d5908,
+ 0x12425894,
+ 0xe0389e59,
+ 0x5230a8ce,
+ 0x9ea74a7d,
+ 0xa0c2249e,
+ 0x9180c001,
+ 0x468ab780,
+ 0xa8a1da08,
+ 0x4002ba24,
+ 0xc0017048,
+ 0xb780907c,
+ 0xb720488a,
+ 0xb7404812,
+ 0x0a045f84,
+ 0x488ab580,
+ 0x4003ba09,
+ 0x5e7fd0a2,
+ 0x9e2d9e49,
+ 0x5a6dc200,
+ 0xc2000218,
+ 0xd2265a17,
+ 0xc2005908,
+ 0x9ea75a14,
+ 0xa94de038,
+ 0x9e4c149e,
+ 0x50b00886,
+ 0xa1413122,
+ 0x480ab780,
+ 0xb5800a04,
+ 0xb783480a,
+ 0x75007188,
+ 0x7208b783,
+ 0x90c4c000,
+ 0x7d3ec01c,
+ 0x9184c002,
+ 0x7d3ec01c,
+ 0x03f0d011,
+ 0x0527d021,
+ 0xf21076c2,
+ 0x0882aa39,
+ 0x0892d001,
+ 0x79022a04,
+ 0x5c0cb740,
+ 0x90e2c000,
+ 0xaa49d808,
+ 0xd8080a04,
+ 0xf008a249,
+ 0xf00aa94b,
+ 0xf310a94c,
+ 0xe0108027,
+ 0xf00882a5,
+ 0xf008a249,
+ 0xb783a0cd,
+ 0x75007688,
+ 0xd0020882,
+ 0x76c20892,
+ 0xd0020a02,
+ 0x78480a42,
+ 0x90c2c000,
+ 0x8542c07c,
+ 0xa123da08,
+ 0xf00876c2,
+ 0xc000a953,
+ 0xda0890c4,
+ 0xc000aa41,
+ 0xda089080,
+ 0xe310aa21,
+ 0xd80880a1,
+ 0xf008aa4d,
+ 0x0a04a0d1,
+ 0xa24dd808,
+ 0x91c0c006,
+ 0x5c0cb720,
+ 0xf2109d2e,
+ 0xc301aa39,
+ 0xc2018136,
+ 0xb7408120,
+ 0x2a044525,
+ 0xf0107500,
+ 0xf3108027,
+ 0x01038221,
+ 0x452db580,
+ 0x90a2c001,
+ 0xc00076c2,
+ 0xda0890c4,
+ 0xc000aa41,
+ 0xda089080,
+ 0xd808aa21,
+ 0x76c6a25d,
+ 0x9082c001,
+ 0xc00076c0,
+ 0x74c091a4,
+ 0xa953d808,
+ 0x8d2ae002,
+ 0x802df210,
+ 0xa251d808,
+ 0x92c0c000,
+ 0xd84874c0,
+ 0xe002a947,
+ 0xc0008d26,
+ 0xda089160,
+ 0x74c0aa41,
+ 0xa947d848,
+ 0xa25dd808,
+ 0x8d2ae002,
+ 0x802df210,
+ 0xa245d848,
+ 0x7308b783,
+ 0xc0007500,
+ 0xb7809302,
+ 0x9e41440a,
+ 0xc0007048,
+ 0x85029244,
+ 0x7318b543,
+ 0x0c82c43a,
+ 0xb4810a02,
+ 0xb103c000,
+ 0xcfef4220,
+ 0xc03a29fe,
+ 0xb4610c82,
+ 0xb780c000,
+ 0x9e41440a,
+ 0x08827048,
+ 0x0892d002,
+ 0x0a0276c6,
+ 0x0a42d001,
+ 0xc0007848,
+ 0x85069242,
+ 0x7318b543,
+ 0x0c82c43a,
+ 0xb4810a02,
+ 0xb103c000,
+ 0xc0114220,
+ 0xc03a3980,
+ 0xb4610c82,
+ 0x7780c000,
+ 0x91a2c001,
+ 0xc00076c0,
+ 0xda0892e4,
+ 0xf008aa21,
+ 0xd808a947,
+ 0xf310a8d5,
+ 0xd8088021,
+ 0xf008a8da,
+ 0x9e44a245,
+ 0xd8080c84,
+ 0x00c2a0da,
+ 0xa0d5d808,
+ 0x92a0c000,
+ 0xaa41da08,
+ 0xa95bf008,
+ 0xa8c9d848,
+ 0x8021f310,
+ 0xa8ced848,
+ 0xa259f008,
+ 0x0c849e44,
+ 0xa0ced848,
+ 0xd84800c2,
+ 0xd808a0c9,
+ 0xf008aa5d,
+ 0xf04aa95f,
+ 0xf048a940,
+ 0xf310a9c7,
+ 0xf0488021,
+ 0xf008a94f,
+ 0xf210a25d,
+ 0xd8488221,
+ 0xf048a8c2,
+ 0xf010a241,
+ 0xe2108037,
+ 0x0c8480a9,
+ 0xa0c2d848,
+ 0xa245f048,
+ 0xa0cdf048,
+ 0x7eeeb7bf,
+ 0x7f6eb7df,
+ 0x7feeb7ff,
+ 0x9c228c60,
+ 0x5b0cb780,
+ 0x08c0d0f1,
+ 0x4031b720,
+ 0x9ea27642,
+ 0x9382c000,
+ 0x0ccac43c,
+ 0xb4810a02,
+ 0xb101c000,
+ 0xd0114220,
+ 0xd3f11914,
+ 0x08882e3e,
+ 0x4002ba09,
+ 0x4002ba12,
+ 0x7048c410,
+ 0x28fcc00e,
+ 0x7044c812,
+ 0x28aed3f1,
+ 0x9080c000,
+ 0x2cbed3f1,
+ 0x0e20d0f1,
+ 0xc0368502,
+ 0xd2080cfe,
+ 0xb421a103,
+ 0x9c22c000,
+ 0x87c2c809,
+ 0x0c20b060,
+ 0x87c2c809,
+ 0x0a60b060,
+ 0x87c2c809,
+ 0x09c0b060,
+};
+
+unsigned long aui32H263_MasterMTXTOPAZFWData[] = {
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000044,
+ 0x00000090,
+ 0x00000000,
+ 0x00000001,
+ 0x00000000,
+ 0x809000b0,
+ 0x80900374,
+ 0x828839f4,
+ 0x828835c4,
+ 0x828835d4,
+ 0x82883674,
+ 0x828834e0,
+ 0x82883528,
+ 0x82883536,
+ 0x828836a4,
+ 0x828836e0,
+ 0x82883718,
+ 0x8288371c,
+ 0x8288374c,
+ 0x82883774,
+ 0x8288359c,
+ 0x8288377c,
+ 0x82883784,
+ 0x8288378c,
+ 0x828837c0,
+ 0x82883c78,
+ 0x828839c0,
+ 0x82883abc,
+ 0x82883afc,
+ 0x82883b00,
+ 0x82883b08,
+ 0x82883b64,
+ 0x82883bc0,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x809007c8,
+ 0x809007c8,
+ 0x809026b8,
+ 0x80902138,
+ 0x809041c8,
+ 0x80902aa4,
+ 0x80902460,
+ 0x809007c8,
+ 0x809007c8,
+ 0x809007c8,
+ 0x809007c8,
+ 0x809007c8,
+ 0x00000000,
+ 0x00000000,
+ 0xa0101100,
+ 0xa01001b0,
+ 0xa0101102,
+ 0xa01001b2,
+ 0xa0101104,
+ 0xa0100124,
+ 0xa0101106,
+ 0xa0100126,
+ 0xa0100134,
+ 0x00000000,
+ 0xa0101120,
+ 0xa0100136,
+ 0xa0101122,
+ 0xa0100144,
+ 0x80101160,
+ 0x80101162,
+ 0x80101180,
+ 0x80101182,
+ 0x80100140,
+ 0x80100142,
+ 0x80100150,
+ 0x80100152,
+ 0x80100154,
+ 0x80100146,
+ 0x803003a0,
+ 0x80100100,
+ 0x80105156,
+ 0xa0101164,
+ 0xa0100184,
+ 0x80101194,
+ 0x801001b4,
+ 0x80100146,
+ 0x00000000,
+ 0x00000003,
+ 0x00000002,
+ 0x00000002,
+ 0x00000001,
+ 0x00000001,
+ 0x00000001,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000005,
+ 0x000f9400,
+ 0x000f9401,
+ 0x000fd403,
+ 0x000fd40b,
+ 0x000fd41b,
+ 0x000ffc1b,
+ 0x000ffc1b,
+ 0x000ff81b,
+ 0x0000681b,
+ 0x0000681a,
+ 0x0000281a,
+ 0x00002810,
+ 0x00002800,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00010001,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x1234baac,
+ 0x00000000,
+};
+
+unsigned long aui32H263_MasterMTXTOPAZFWTextReloc[] = {
+ 0
+};
+
+unsigned char aui8H263_MasterMTXTOPAZFWTextRelocType[] = {
+ 0
+};
+
+unsigned long aui32H263_MasterMTXTOPAZFWTextRelocFullAddr[] = {
+ 0
+};
+
+unsigned long aui32H263_MasterMTXTOPAZFWDataReloc[] = {
+ 0
+};
diff --git a/fw/H263MasterFirmware_bin.h b/fw/H263MasterFirmware_bin.h
new file mode 100644
index 0000000..cdb6e9f
--- /dev/null
+++ b/fw/H263MasterFirmware_bin.h
@@ -0,0 +1,44 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+
+// This file was automatically generated from ../release/H263MasterFirmware.dnl using dnl2c.
+
+extern unsigned long aui32H263_MasterMTXTOPAZFWText[];
+extern unsigned long ui32H263_MasterMTXTOPAZFWTextSize;
+
+extern unsigned long aui32H263_MasterMTXTOPAZFWData[];
+extern unsigned long ui32H263_MasterMTXTOPAZFWDataSize;
+
+extern unsigned long aui32H263_MasterMTXTOPAZFWTextReloc[];
+extern unsigned char aui8H263_MasterMTXTOPAZFWTextRelocType[];
+extern unsigned long aui32H263_MasterMTXTOPAZFWTextRelocFullAddr[];
+
+extern unsigned long aui32H263_MasterMTXTOPAZFWDataReloc[];
+extern unsigned long ui32H263_MasterMTXTOPAZFWDataRelocSize;
+
+extern unsigned long ui32H263_MasterMTXTOPAZFWTextOrigin;
+extern unsigned long ui32H263_MasterMTXTOPAZFWDataOrigin;
+
diff --git a/fw/H263SlaveFirmwareCBR_bin.c b/fw/H263SlaveFirmwareCBR_bin.c
new file mode 100644
index 0000000..9dde1a5
--- /dev/null
+++ b/fw/H263SlaveFirmwareCBR_bin.c
@@ -0,0 +1,4326 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+
+// This file was automatically generated from ../release/H263SlaveFirmwareCBR.dnl using dnl2c.
+
+unsigned char *szH263SlaveFirmwareCBR_buildtag = "BUILD_TOPAZ_SC_1_00_00_0318";
+
+unsigned long ui32H263CBR_SlaveMTXTOPAZFWTextSize = 3569;
+unsigned long ui32H263CBR_SlaveMTXTOPAZFWDataSize = 698;
+unsigned long ui32H263CBR_SlaveMTXTOPAZFWTextRelocSize = 0;
+unsigned long ui32H263CBR_SlaveMTXTOPAZFWDataRelocSize = 0;
+
+unsigned long ui32H263CBR_SlaveMTXTOPAZFWTextOrigin = 0x80900000;
+unsigned long ui32H263CBR_SlaveMTXTOPAZFWDataOrigin = 0x82883800;
+
+unsigned long aui32H263CBR_SlaveMTXTOPAZFWText[] = {
+ 0x9040c001,
+ 0xc80993fe,
+ 0xc0000e42,
+ 0xc8290e00,
+ 0xc42e8422,
+ 0xc8298420,
+ 0xc3808622,
+ 0x9e838600,
+ 0xc8099e43,
+ 0xc6f60d42,
+ 0xc8090d20,
+ 0xc6f60942,
+ 0xc8090960,
+ 0xc00a0e42,
+ 0xc8090e40,
+ 0xc00e87c2,
+ 0x9c1887d0,
+ 0x0c020802,
+ 0x09820d82,
+ 0x09020d02,
+ 0x08820c82,
+ 0x9320fffe,
+ 0xa401c838,
+ 0x0dc2c809,
+ 0x0de0c6f4,
+ 0x0e42c809,
+ 0x0b46b080,
+ 0x7e74b77f,
+ 0xa48d0882,
+ 0xffff9ff3,
+ 0x9d1393e0,
+ 0xf8398081,
+ 0x0707a205,
+ 0x06850307,
+ 0x03839e97,
+ 0x0fa0060f,
+ 0x018d058d,
+ 0x9c62008f,
+ 0x9340ffff,
+ 0x0ea0060b,
+ 0xffff9c62,
+ 0x058d93a0,
+ 0xb700018d,
+ 0xb780568c,
+ 0x9c015614,
+ 0x0687a605,
+ 0x0ea0060b,
+ 0xffff9c62,
+ 0xf9f893a0,
+ 0xf9f8aa9d,
+ 0x9c22aa1d,
+ 0xa6059c22,
+ 0x0e860a82,
+ 0xc0340d82,
+ 0xc0149b32,
+ 0x0d8a9967,
+ 0x9b2dc034,
+ 0x4508b784,
+ 0xc0007500,
+ 0xc0149082,
+ 0xc0149abe,
+ 0x740299db,
+ 0xb3549e6c,
+ 0x02894424,
+ 0x995dc014,
+ 0xffff7540,
+ 0xb79f90e2,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0x87029c22,
+ 0xb5438502,
+ 0xb5437c18,
+ 0xb5437c98,
+ 0xb5447d18,
+ 0xb5444018,
+ 0xb5444098,
+ 0xb5444118,
+ 0xb5444518,
+ 0xb5444598,
+ 0xb5444618,
+ 0xb5404c18,
+ 0xb5404884,
+ 0xb5404904,
+ 0xb5404984,
+ 0xb5404a04,
+ 0xb5404a84,
+ 0xb5404c84,
+ 0xb5404d04,
+ 0xb5404d84,
+ 0xb5404202,
+ 0xb5404282,
+ 0xb5405084,
+ 0xb5407f84,
+ 0xb5404f04,
+ 0x9c224702,
+ 0x8420a605,
+ 0x9ba6fff4,
+ 0xc0340d8a,
+ 0xfff49ada,
+ 0xc0349bc6,
+ 0xc4209ae5,
+ 0x0a020cd2,
+ 0xc000b481,
+ 0x4220b105,
+ 0xe0310d8a,
+ 0xc0148d80,
+ 0xc8299a01,
+ 0xc42e0922,
+ 0xb73f0900,
+ 0xd0717f6c,
+ 0xb5802a5e,
+ 0xc01e458c,
+ 0x85022a80,
+ 0xa8c2f008,
+ 0xc2807102,
+ 0xb5a05a95,
+ 0xb341468c,
+ 0x76404434,
+ 0x461cb540,
+ 0x450cb520,
+ 0x90c2c000,
+ 0x0e12d011,
+ 0xa241f008,
+ 0x570cb780,
+ 0x08c2c807,
+ 0x0880c570,
+ 0x0caac032,
+ 0x558cb580,
+ 0xc000b421,
+ 0x0cf40a2a,
+ 0xc000b481,
+ 0x09021a28,
+ 0x08bac002,
+ 0x4078b960,
+ 0x0a00c200,
+ 0x588bd224,
+ 0xc000b441,
+ 0x0a11ce00,
+ 0x9301ffff,
+ 0x1884e000,
+ 0x9244ffff,
+ 0x0a42c807,
+ 0x0a00c576,
+ 0x0caac032,
+ 0xc000b481,
+ 0x08820a02,
+ 0x08840902,
+ 0x4078b960,
+ 0x0a00c200,
+ 0x588bd224,
+ 0xc000b441,
+ 0x0a11ce00,
+ 0x9301ffff,
+ 0x745ac004,
+ 0x923cffff,
+ 0xc0340a02,
+ 0xb4810c9e,
+ 0xfff4c000,
+ 0x08029b2c,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x9c228c60,
+ 0xc0409e54,
+ 0x9e590c82,
+ 0xc000b421,
+ 0x0d02c040,
+ 0xc000b482,
+ 0xc00e9c22,
+ 0xc00e2d7c,
+ 0x5d3029e0,
+ 0xc0409e54,
+ 0x31b80c82,
+ 0xc000b461,
+ 0x0d02c040,
+ 0xc000b442,
+ 0xa60d9c22,
+ 0x07038420,
+ 0xc2800687,
+ 0x1c845c8d,
+ 0x5ca0d0a2,
+ 0xd0110287,
+ 0xc2000a5e,
+ 0x1a045a0d,
+ 0x5a30c200,
+ 0x30985cd0,
+ 0x04059e4c,
+ 0x0c8ac032,
+ 0xc8013098,
+ 0xb4213880,
+ 0x9ea9c000,
+ 0x0a02c801,
+ 0x0a00c002,
+ 0xc0306553,
+ 0xb4810c8a,
+ 0xc002c000,
+ 0x0c840882,
+ 0xc000b421,
+ 0xd0229e93,
+ 0x9e535f09,
+ 0x1d045d0d,
+ 0x9bb4fff4,
+ 0x5e91c280,
+ 0xc2801e84,
+ 0x9e6c5e84,
+ 0xc2801a84,
+ 0xc1815a90,
+ 0x0d8a3a80,
+ 0x0d020982,
+ 0xfff4314a,
+ 0xc0c09bae,
+ 0x09920d82,
+ 0x0d02c002,
+ 0x0902c002,
+ 0x9a04c034,
+ 0xc0340a0a,
+ 0xb4810c9e,
+ 0x1b04c000,
+ 0x850275bf,
+ 0x9202c000,
+ 0xb55f9dcf,
+ 0xc0347f7c,
+ 0xf23199d7,
+ 0xb75fa045,
+ 0x1b047f7c,
+ 0x851075bf,
+ 0x9284ffff,
+ 0x0a42c002,
+ 0x0c8ec030,
+ 0xc000b481,
+ 0x7e6eb79f,
+ 0x7eeeb7bf,
+ 0x7f6eb7df,
+ 0x8c00c002,
+ 0x9c229c22,
+ 0x8502c200,
+ 0x9c89c037,
+ 0x9c80c171,
+ 0x9c80c817,
+ 0xf8399c22,
+ 0x0d9aa205,
+ 0x99bdc034,
+ 0xf9f80d8a,
+ 0xc02daa1d,
+ 0xa6059300,
+ 0x0a42c801,
+ 0x0a00c010,
+ 0x2ebed3f2,
+ 0x0caac032,
+ 0xc000b481,
+ 0x0cf408aa,
+ 0xc000b421,
+ 0x578cb780,
+ 0x0c92c080,
+ 0xa881f208,
+ 0xc000b421,
+ 0x578cb780,
+ 0xf2080c88,
+ 0xb421a889,
+ 0xb780c000,
+ 0x0c84578c,
+ 0xa88df208,
+ 0xc000b421,
+ 0x1c980902,
+ 0xc000b441,
+ 0x578cb780,
+ 0xf2080c90,
+ 0xb421a885,
+ 0xb7a0c000,
+ 0x0dd2578c,
+ 0x9976c034,
+ 0xaa25f208,
+ 0xffff7008,
+ 0x0daa9344,
+ 0x0d060982,
+ 0x0902c121,
+ 0x9b29fff4,
+ 0x4794b760,
+ 0x0d02c021,
+ 0x09c20d04,
+ 0x9b16fff4,
+ 0x4794b760,
+ 0x0d0609c2,
+ 0x9b10fff4,
+ 0x09820daa,
+ 0xc1010d02,
+ 0xfff40902,
+ 0x0d929b14,
+ 0x9952c034,
+ 0xaa25f208,
+ 0xffff7008,
+ 0x77409344,
+ 0x90a2c000,
+ 0xc0340d8e,
+ 0x0d8a9954,
+ 0x9951c034,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xc470a60d,
+ 0x0a020c8e,
+ 0xc000b481,
+ 0x4220b101,
+ 0x578cb780,
+ 0xa085f208,
+ 0x0a021c8c,
+ 0xc000b481,
+ 0x4220b105,
+ 0x2b5ed1f1,
+ 0x578cb780,
+ 0xcff09ead,
+ 0xc2802e80,
+ 0xf2085ea1,
+ 0xc280a281,
+ 0x2a845a9d,
+ 0x0a020c84,
+ 0xc000b481,
+ 0x4220b101,
+ 0x470cb520,
+ 0xb4810c84,
+ 0xb101c000,
+ 0xb5204220,
+ 0xc070478c,
+ 0xb4810c8e,
+ 0x0882c000,
+ 0xb4211c8c,
+ 0x0c90c000,
+ 0xc000b481,
+ 0xb4211c8c,
+ 0x0c84c000,
+ 0xc000b481,
+ 0x6504b740,
+ 0x5908d326,
+ 0xe0309e2d,
+ 0x9ea4aa4d,
+ 0xb7809c62,
+ 0x7740578c,
+ 0x9ea98502,
+ 0xd0010d82,
+ 0xf2080db2,
+ 0x2596a10f,
+ 0x9b3ffff4,
+ 0xc0700a06,
+ 0xb4810c82,
+ 0x000dc000,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x7ebec01c,
+ 0x9244c000,
+ 0x5e08d1a2,
+ 0x0a00c090,
+ 0x5909d224,
+ 0xc4000882,
+ 0xb4223d00,
+ 0xb104c000,
+ 0x75004220,
+ 0x9364ffff,
+ 0x5c88c180,
+ 0x0c80c090,
+ 0xb4615c89,
+ 0x9c22c000,
+ 0x5c88c180,
+ 0x0c80c090,
+ 0xc4005c89,
+ 0x0a023c80,
+ 0xc000b481,
+ 0x4220b101,
+ 0xa0e1f008,
+ 0xc0905d88,
+ 0x5d890d80,
+ 0xc000b483,
+ 0x9e5b9c22,
+ 0x68b1d312,
+ 0xc1c00a02,
+ 0x5c8b0cc0,
+ 0x3c80c400,
+ 0xc000b481,
+ 0x4220b102,
+ 0x5c14b760,
+ 0x6931d312,
+ 0x9e518502,
+ 0x4070b960,
+ 0x08e0c1c0,
+ 0xaa65f031,
+ 0x5889d0a4,
+ 0xc000b481,
+ 0x85100890,
+ 0x9301ffff,
+ 0x8560c1c0,
+ 0x80ade210,
+ 0x5e14b760,
+ 0x3904c001,
+ 0x8521ce3e,
+ 0x4048b960,
+ 0xaa65f031,
+ 0x5889d0a4,
+ 0xc000b481,
+ 0x85100890,
+ 0x9301ffff,
+ 0x812de220,
+ 0x5b0cb780,
+ 0x3908c001,
+ 0x0d60c1c0,
+ 0xdac85d09,
+ 0xb422a885,
+ 0xd312c000,
+ 0xc1c068b1,
+ 0x5c8b0cc0,
+ 0xc000b441,
+ 0x84209c22,
+ 0xc4700882,
+ 0x0a020c92,
+ 0xc000b481,
+ 0x4220b102,
+ 0x02050185,
+ 0x2a04c001,
+ 0xc0007500,
+ 0xb7409362,
+ 0x09025c14,
+ 0x4070b960,
+ 0x08e0c1c0,
+ 0x5889d0a4,
+ 0x08a1ce3e,
+ 0x3c80c400,
+ 0xc000b441,
+ 0x4220b104,
+ 0xa245f031,
+ 0xffff0890,
+ 0x01079221,
+ 0x297acfff,
+ 0xc0010205,
+ 0x75002a08,
+ 0x91e2c001,
+ 0x5e14b740,
+ 0xb9600982,
+ 0xc1c04048,
+ 0xd0a408e0,
+ 0xce3e5889,
+ 0xc40008a1,
+ 0xb4613c80,
+ 0xb104c000,
+ 0xf0314220,
+ 0x0890a245,
+ 0x9221ffff,
+ 0x8d00e032,
+ 0x08e0c1c0,
+ 0x5889d0a4,
+ 0xc4000a02,
+ 0xb4813c80,
+ 0xb101c000,
+ 0xf0104220,
+ 0xb73fa0c1,
+ 0xb7807e72,
+ 0xdac85b0c,
+ 0xcfffa086,
+ 0xc0702976,
+ 0xb4410c92,
+ 0x8c20c000,
+ 0xb7409c22,
+ 0xd312510c,
+ 0x0a026cb1,
+ 0x0cc0c1c0,
+ 0xc4005c8b,
+ 0xb4813c80,
+ 0xb101c000,
+ 0xd3124220,
+ 0xc1ca6cb1,
+ 0x5c8b0cf0,
+ 0xc000b441,
+ 0x6d82c00c,
+ 0x38c0c001,
+ 0x0dc0c1c0,
+ 0xb4235d8b,
+ 0x9c22c000,
+ 0x6cb1d312,
+ 0xc1c00a02,
+ 0x5c8b0cc0,
+ 0x3c80c400,
+ 0xc000b481,
+ 0x4220b103,
+ 0x5d14b740,
+ 0x6d31d311,
+ 0x4058b960,
+ 0xc1c00085,
+ 0xf03108e0,
+ 0xd0a4aa45,
+ 0xb4815889,
+ 0x0890c000,
+ 0x9321ffff,
+ 0x3990c001,
+ 0x0940c1c0,
+ 0x588bd124,
+ 0xc000b461,
+ 0xf8399c22,
+ 0xf010a285,
+ 0x7500aa61,
+ 0x9164c000,
+ 0xa8c1d008,
+ 0x0a069e48,
+ 0x5200c200,
+ 0xd0083098,
+ 0xd011a0c1,
+ 0xd0100d38,
+ 0xf011a9f2,
+ 0xf0101a30,
+ 0x1984a943,
+ 0x93e2c000,
+ 0x8702cff1,
+ 0x8700cff0,
+ 0x087ec00f,
+ 0x087cc00e,
+ 0x0c1ac050,
+ 0xa8c5f029,
+ 0x2095d020,
+ 0x9e4d5ca1,
+ 0xc2002210,
+ 0x30d85a20,
+ 0x4006ba09,
+ 0xc000b420,
+ 0x1a30f011,
+ 0xffff1984,
+ 0xf21091e4,
+ 0xf010802f,
+ 0xf9f8a241,
+ 0x9c22aa9d,
+ 0x9e5da60d,
+ 0xf1245940,
+ 0xd3f15841,
+ 0xb3502d2e,
+ 0xc0024422,
+ 0xf00893e2,
+ 0xe000aa61,
+ 0xb4252a1c,
+ 0xd8084422,
+ 0x8522aa61,
+ 0x88a9e210,
+ 0x12182a1c,
+ 0xc00e9ea3,
+ 0xba1b0a7e,
+ 0xc200400b,
+ 0x21285207,
+ 0x9276c001,
+ 0xc1009e59,
+ 0x11035a20,
+ 0x5209c200,
+ 0xc2009ea2,
+ 0x9e8d58a1,
+ 0x0cb0d031,
+ 0xa8a2d208,
+ 0x2a7cc00e,
+ 0x5207c200,
+ 0x2a7cc00e,
+ 0xd208349a,
+ 0xf008a0a2,
+ 0x9ea1a963,
+ 0x2a2ed3f1,
+ 0x8128c201,
+ 0x8821f310,
+ 0xf0088502,
+ 0xd228a261,
+ 0x9eaba127,
+ 0x2d01cff0,
+ 0x59415940,
+ 0xc00e3522,
+ 0xfff42d7c,
+ 0xc0009bb1,
+ 0xd20892e0,
+ 0x9e5eaa21,
+ 0x50d8000b,
+ 0xd0293242,
+ 0xf008a205,
+ 0xd013a8e1,
+ 0xf210291e,
+ 0x75108029,
+ 0x00989e44,
+ 0xa0e1f008,
+ 0x4426b350,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x0685a60d,
+ 0x9e9e9e69,
+ 0x71820b02,
+ 0xc0000a86,
+ 0x9ea99208,
+ 0x9e6916d2,
+ 0x5a84c280,
+ 0x1a52d011,
+ 0xd0117102,
+ 0xd3f108e2,
+ 0xffff2b1e,
+ 0xd0119286,
+ 0x75100a62,
+ 0xc000028d,
+ 0x9e7391d4,
+ 0x09220d02,
+ 0x9b70fff4,
+ 0xd0111aa0,
+ 0x75100a52,
+ 0xffff9e83,
+ 0x9e7392d2,
+ 0xd0110d06,
+ 0xc00e0952,
+ 0xfff4297c,
+ 0x75909b61,
+ 0xc0009e83,
+ 0xd03192f4,
+ 0xd3f11a60,
+ 0x9e6c2b4e,
+ 0xc2009e73,
+ 0xd3f25299,
+ 0x0922295e,
+ 0x9b50fff4,
+ 0xc2009e83,
+ 0x9ea952b8,
+ 0x16d27590,
+ 0x91b2ffff,
+ 0xd3f29e73,
+ 0x010d2d5e,
+ 0x9b42fff4,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x0ca0f011,
+ 0xd09a9e99,
+ 0xd00d5a04,
+ 0xc0001a42,
+ 0x1203909a,
+ 0x9e4b1242,
+ 0xfffc9ea2,
+ 0xa60d9360,
+ 0x85028420,
+ 0xb55f9e55,
+ 0xb55f7f7c,
+ 0xf0107ffc,
+ 0xe011aa61,
+ 0x03078c8e,
+ 0x750a1a08,
+ 0x590cd226,
+ 0xe05a8540,
+ 0xc0038044,
+ 0xc00090a0,
+ 0xc0009180,
+ 0xc00092a0,
+ 0xc00193c0,
+ 0xc0019100,
+ 0xc0029200,
+ 0xe0119060,
+ 0x9e8b8d88,
+ 0x1954d072,
+ 0x508cb5a0,
+ 0x9bc8fff4,
+ 0x9200c002,
+ 0x5094b740,
+ 0xe0119ea9,
+ 0x9e8b8d88,
+ 0xfff41514,
+ 0xc0029bbd,
+ 0xe01190a0,
+ 0x9e8b8d88,
+ 0x295ed3f2,
+ 0xfff40916,
+ 0xb5a09aeb,
+ 0xc001508c,
+ 0xe0119320,
+ 0x9e8b8d88,
+ 0x295ed3f2,
+ 0xfff40916,
+ 0xc0019adf,
+ 0xd20891e0,
+ 0x9e8baa41,
+ 0x8c88f011,
+ 0xd0124a7d,
+ 0x0d062ace,
+ 0x018b0906,
+ 0x9ad0fff4,
+ 0x9e6a9e83,
+ 0x0d02018b,
+ 0x9acafff4,
+ 0x9340c000,
+ 0xaa41d208,
+ 0xf0119e8b,
+ 0x4a7d8c88,
+ 0x2aced012,
+ 0x09060d02,
+ 0xfff4018b,
+ 0x9e839abb,
+ 0x018b9e6a,
+ 0x0d7ec00e,
+ 0x9ab4fff4,
+ 0x9080c000,
+ 0x90e0c001,
+ 0x7e68b79f,
+ 0x0cfec00f,
+ 0x0cfcc00e,
+ 0xb59f9e4a,
+ 0xb73f7c68,
+ 0xcff17f6c,
+ 0xcff00a02,
+ 0xc0500a00,
+ 0x22180c9a,
+ 0x5a21c200,
+ 0x58a02094,
+ 0xba243242,
+ 0xb59f4006,
+ 0xb4817f6c,
+ 0xf208c000,
+ 0xb79fa943,
+ 0xf3107fec,
+ 0xf2088021,
+ 0xb79fa241,
+ 0xb7bf7e6e,
+ 0xb7df7eee,
+ 0xc0027f6e,
+ 0x9c228c00,
+ 0x8440a61d,
+ 0x9e9d8502,
+ 0xabe5f031,
+ 0xb55f0b02,
+ 0xb55f7878,
+ 0x718e7efc,
+ 0xc0019d3a,
+ 0xaa4191e8,
+ 0xc0007502,
+ 0xd0189392,
+ 0xe032aad1,
+ 0xe0518d08,
+ 0x9dcf8d00,
+ 0x85109eb1,
+ 0x7f7cb55f,
+ 0x0a9cc002,
+ 0x5a95c280,
+ 0xfff4018b,
+ 0xb75f9a1e,
+ 0xc2807f7c,
+ 0xc3015a88,
+ 0xc0008122,
+ 0xe03191a0,
+ 0x9dcf8d88,
+ 0x8510050b,
+ 0x7f7cb55f,
+ 0x9b23fff4,
+ 0x7f7cb75f,
+ 0x718e0b04,
+ 0x92a6fffe,
+ 0x7868b79f,
+ 0x0c9ec050,
+ 0xc000b481,
+ 0x0d16c050,
+ 0xc000b4e2,
+ 0x7eecb71f,
+ 0x7d6eb79f,
+ 0x7deeb7bf,
+ 0x7e6eb7df,
+ 0x7eeeb7ff,
+ 0x8c40c002,
+ 0xa6059c22,
+ 0x0c8ac450,
+ 0xb4810a02,
+ 0xb102c000,
+ 0xe00e4240,
+ 0xd1042d7c,
+ 0xc8015d10,
+ 0x0a400a02,
+ 0x0c8ac030,
+ 0xc000b481,
+ 0x0c8408c2,
+ 0xc000b421,
+ 0x628cb740,
+ 0xa947f048,
+ 0x802df210,
+ 0xa245f048,
+ 0x0c86c450,
+ 0xb4810a02,
+ 0xb101c000,
+ 0xc8014220,
+ 0xc0100a42,
+ 0xc0320a00,
+ 0xb4810caa,
+ 0x08aac000,
+ 0x0d1ec034,
+ 0xc000b422,
+ 0x0cf2c450,
+ 0xb4810a02,
+ 0xb101c000,
+ 0xd0534220,
+ 0xb7801910,
+ 0xf248590c,
+ 0xf210a891,
+ 0x0d8288a3,
+ 0x018b0d06,
+ 0x9884fff4,
+ 0x0ca2c080,
+ 0xc000b4a1,
+ 0x0d82c002,
+ 0x9954c014,
+ 0xffff700a,
+ 0x0daa9364,
+ 0x0d0a0982,
+ 0x0902c121,
+ 0x9b09ffd4,
+ 0x590cb780,
+ 0xa992f248,
+ 0x0d02c0a1,
+ 0x09c20d04,
+ 0x9af4ffd4,
+ 0x0d82c0c0,
+ 0x0d420992,
+ 0xc0140942,
+ 0xb79f9957,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa60d9c22,
+ 0x8400c010,
+ 0x590cb720,
+ 0x49adb780,
+ 0x75002a20,
+ 0x5c14b7c0,
+ 0xc0000902,
+ 0xb7849182,
+ 0x75004508,
+ 0x90e2c000,
+ 0xaa41d290,
+ 0xc0057500,
+ 0xb7209164,
+ 0xd01149ad,
+ 0x75002a18,
+ 0x3924d002,
+ 0x9124c000,
+ 0x2a14d011,
+ 0xd0027500,
+ 0xd0013922,
+ 0xc0503926,
+ 0xb4410c82,
+ 0x9d87c000,
+ 0x470cb740,
+ 0x09c20dc2,
+ 0x0d02c010,
+ 0x0c81cff0,
+ 0x9acbffd4,
+ 0x4508b784,
+ 0x75009d1b,
+ 0x0b01cff0,
+ 0x9282c000,
+ 0xaa41d290,
+ 0xc0007500,
+ 0xb79f91e2,
+ 0xf211606c,
+ 0xc0108d00,
+ 0x75002a00,
+ 0x0a03cff0,
+ 0x8001f310,
+ 0x4422b346,
+ 0x4068b79e,
+ 0x08c2c801,
+ 0x0880c010,
+ 0x0ceac032,
+ 0x606cb59f,
+ 0xc000b421,
+ 0x4508b784,
+ 0xc0017500,
+ 0xb7849282,
+ 0x75004608,
+ 0x91e2c001,
+ 0x518cb720,
+ 0x2a12d011,
+ 0xc0017500,
+ 0xb7a09102,
+ 0xb7a06394,
+ 0xf2105d0c,
+ 0x9eabaa21,
+ 0xb52028f9,
+ 0x9ea4518c,
+ 0xb7209c62,
+ 0xb780610c,
+ 0x75004129,
+ 0x92a4c000,
+ 0xa9a1f208,
+ 0xa83df210,
+ 0x9e840d82,
+ 0xf2509c62,
+ 0x9eaba8a5,
+ 0xa021f208,
+ 0x9e8c0982,
+ 0xda089c62,
+ 0xb582aa21,
+ 0xda10458a,
+ 0x9eb3a9cd,
+ 0x9aa6fff4,
+ 0x0a02c801,
+ 0x0a00c00a,
+ 0x0c8ac030,
+ 0xc000b481,
+ 0x08c2c008,
+ 0xb4210c84,
+ 0xc008c000,
+ 0x0c880a02,
+ 0xc000b481,
+ 0x0d82c0c0,
+ 0xc0080992,
+ 0xc0080d02,
+ 0xc0140902,
+ 0xc008989d,
+ 0xc0300a02,
+ 0xb4810c8e,
+ 0xb720c000,
+ 0x85065c8c,
+ 0x4039b540,
+ 0x9ad1fff4,
+ 0x6eeeb79f,
+ 0x6f6eb7bf,
+ 0x6feeb7df,
+ 0x8c60c010,
+ 0xf8399c22,
+ 0xc450a205,
+ 0x0a020c82,
+ 0xc000b481,
+ 0x4220b101,
+ 0x0a40c008,
+ 0x0c8ec030,
+ 0xc000b481,
+ 0x38c0c002,
+ 0x0c82c050,
+ 0xc000b421,
+ 0x0d82c0c0,
+ 0xc0080992,
+ 0xc0080d02,
+ 0xc0140902,
+ 0xc0089869,
+ 0xc0300a02,
+ 0xb4810c8e,
+ 0xf9f8c000,
+ 0xfff5aa1d,
+ 0xa60d9000,
+ 0x0eb0f011,
+ 0x9182c001,
+ 0x0f7ec01e,
+ 0x0b02c008,
+ 0x0e8ec030,
+ 0x7540c040,
+ 0xc0509e74,
+ 0xb3540c96,
+ 0x12d84426,
+ 0x5a14c200,
+ 0xc000b481,
+ 0x0d0ac030,
+ 0xc000b4c2,
+ 0xc000b4c5,
+ 0x0c96c030,
+ 0xc000b4c1,
+ 0x0d82c0c0,
+ 0xc0080992,
+ 0xc0080d02,
+ 0xc0140902,
+ 0xb4c59835,
+ 0x7540c000,
+ 0x93c4fffe,
+ 0x9a6ffff4,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0xc000b463,
+ 0xf8129c22,
+ 0x9c22a062,
+ 0x0d80c200,
+ 0x9e595d89,
+ 0xc4000982,
+ 0xb4633d80,
+ 0xb203c000,
+ 0x00074620,
+ 0xc1279c22,
+ 0x9c229c8f,
+ 0xb971080a,
+ 0xc01756f1,
+ 0xc0719c81,
+ 0xc0179c80,
+ 0xb9609c80,
+ 0x9c224000,
+ 0x9280ffff,
+ 0x01c69e5c,
+ 0x5889d1a4,
+ 0xc4000882,
+ 0xb4213c80,
+ 0xb104c000,
+ 0x22444220,
+ 0x71069e53,
+ 0x9324ffff,
+ 0xa60d9c22,
+ 0x8420c004,
+ 0x0ca2c829,
+ 0x0cb0c3fa,
+ 0xac3dc030,
+ 0x8d00e133,
+ 0xa45dc038,
+ 0xac3dc030,
+ 0xa45dc038,
+ 0xac3dc010,
+ 0xa45dc018,
+ 0xac25c010,
+ 0xa445c018,
+ 0x590cb7a0,
+ 0x85029ea9,
+ 0x661ab540,
+ 0x4d98b541,
+ 0x470cb740,
+ 0xc00a0dc2,
+ 0x09c20d42,
+ 0x9979ffd4,
+ 0x0a58d251,
+ 0xaa01da08,
+ 0x9ead7502,
+ 0x9084c000,
+ 0x450cb580,
+ 0xaa2df290,
+ 0x75002a08,
+ 0x90a4c000,
+ 0xb5408506,
+ 0xb780451c,
+ 0xf210628c,
+ 0x8502a8a1,
+ 0xa8a6f210,
+ 0x511cb540,
+ 0x481ab540,
+ 0xa103f208,
+ 0xa085f208,
+ 0xa929f210,
+ 0xa08af208,
+ 0xa92ef210,
+ 0xa8b2f210,
+ 0xa10df208,
+ 0xa8b1f250,
+ 0xa112f208,
+ 0xa096f208,
+ 0xa09af208,
+ 0x0cf2c050,
+ 0xf24808c0,
+ 0xb421a085,
+ 0x0a0ac000,
+ 0x0c92c036,
+ 0xc000b481,
+ 0x1c8c0896,
+ 0xc000b421,
+ 0x8c00f031,
+ 0x8d80e131,
+ 0xb7c09ea3,
+ 0xb55f610c,
+ 0x0d027ffc,
+ 0x4078b960,
+ 0xa103f208,
+ 0xd1229dba,
+ 0x9e2d5d0d,
+ 0xa8e5f029,
+ 0x2caed012,
+ 0xd1265c88,
+ 0x9e4a5908,
+ 0xaa4de038,
+ 0x28bc0d04,
+ 0x324250a8,
+ 0xffffa241,
+ 0xf01091c1,
+ 0xc036aa61,
+ 0xb4810c8e,
+ 0xb73fc000,
+ 0x1c847fec,
+ 0xc000b421,
+ 0x996bc014,
+ 0xaa4dd208,
+ 0xc0007500,
+ 0xf2909262,
+ 0xf011aa2d,
+ 0xc0002ac8,
+ 0xc80091a4,
+ 0x75002a00,
+ 0x90c4c000,
+ 0xa9c6f208,
+ 0x9ae3fff4,
+ 0xa2cdd208,
+ 0xa8adf290,
+ 0x2a14d011,
+ 0xc0007500,
+ 0xc8099104,
+ 0xc5d20a42,
+ 0xb5800a20,
+ 0xb780548c,
+ 0x7500468c,
+ 0x9162c000,
+ 0x5a31c080,
+ 0xc03e2a04,
+ 0xb4810cea,
+ 0xc000c000,
+ 0xb7809280,
+ 0x7502450c,
+ 0x915cc000,
+ 0x2880c100,
+ 0x0a0e7440,
+ 0x1a46d001,
+ 0x9060c000,
+ 0xc03e0a02,
+ 0xb4810cea,
+ 0xb79fc000,
+ 0xb7bf7a6e,
+ 0xb7df7aee,
+ 0xc0067b6e,
+ 0x9c228c00,
+ 0x558cb780,
+ 0x0892c0c8,
+ 0x40f8b960,
+ 0x0948d011,
+ 0xaa45f029,
+ 0x5889d0a4,
+ 0xc000b481,
+ 0xffff0890,
+ 0x9c229321,
+ 0xb720a605,
+ 0xb781468c,
+ 0x7440420c,
+ 0xb5810a04,
+ 0xc000420c,
+ 0xb7849364,
+ 0x75004508,
+ 0x92c2c000,
+ 0x450cb720,
+ 0x518cb780,
+ 0x3a407442,
+ 0x518cb580,
+ 0x919cc000,
+ 0x610cb780,
+ 0xa889d208,
+ 0xc0007440,
+ 0x850690a4,
+ 0x4c18b544,
+ 0x0a42c801,
+ 0x0a00c010,
+ 0x0ceac032,
+ 0xc000b481,
+ 0x08c2c008,
+ 0x1ce0c002,
+ 0xc000b421,
+ 0x0a42c008,
+ 0x0d0ec030,
+ 0xc000b482,
+ 0x0c82c450,
+ 0x1a40c008,
+ 0xc000b481,
+ 0x4220b101,
+ 0x38c0c002,
+ 0x0c82c050,
+ 0xc000b421,
+ 0x0d82c0c0,
+ 0xc0080992,
+ 0xc0080d02,
+ 0xfff40902,
+ 0xc4509aa7,
+ 0x0a020c86,
+ 0xc000b481,
+ 0x4260b102,
+ 0x0a00c008,
+ 0x0d0ec030,
+ 0xc000b482,
+ 0xc0080c84,
+ 0xb4811a00,
+ 0xb101c000,
+ 0xc0804220,
+ 0xc8015a35,
+ 0x09400902,
+ 0x28fcc00e,
+ 0x5910d0a8,
+ 0x29ced071,
+ 0x0c8ac030,
+ 0xb4419dc8,
+ 0x0a42c000,
+ 0xb4810c84,
+ 0x7680c000,
+ 0x9182c000,
+ 0x628cb720,
+ 0x44bdb740,
+ 0x8a27f210,
+ 0x8021f310,
+ 0x44adb580,
+ 0x0c86c450,
+ 0xb4810a02,
+ 0xb102c000,
+ 0x0cec4260,
+ 0xc000b481,
+ 0x4260b102,
+ 0x8926c201,
+ 0xc03408ea,
+ 0xb4210c9e,
+ 0xb780c000,
+ 0xf248590c,
+ 0x8d40a891,
+ 0x88a3f210,
+ 0x0d060d82,
+ 0x5a0cc280,
+ 0x510cb580,
+ 0xffd4018b,
+ 0xc0809959,
+ 0xb4a10ca2,
+ 0xb780c000,
+ 0x0c88480c,
+ 0xc000b481,
+ 0x5b14b7a0,
+ 0x0d82c002,
+ 0x9a22fff4,
+ 0xffff700a,
+ 0xb7819364,
+ 0xf210420c,
+ 0xf250a8ad,
+ 0x6243a8a2,
+ 0x71029e49,
+ 0x90b8c000,
+ 0xb5448506,
+ 0xb7804a18,
+ 0x7500468c,
+ 0x9242c000,
+ 0xffd40d82,
+ 0xb7849a10,
+ 0x75004608,
+ 0x90e2c000,
+ 0xffd40d82,
+ 0xc000995a,
+ 0x0d8290a0,
+ 0x9a22ffd4,
+ 0xc0800a02,
+ 0xb4810ca6,
+ 0xc002c000,
+ 0xfff40d92,
+ 0x740099f3,
+ 0x9364ffff,
+ 0x09820dea,
+ 0xc1210d0a,
+ 0xffb40902,
+ 0xb7809ba8,
+ 0xf248590c,
+ 0xc0a1a992,
+ 0x0d040d02,
+ 0xffb409c2,
+ 0xc0c09b93,
+ 0x09920d82,
+ 0x09420d42,
+ 0x99f6fff4,
+ 0xc03e0a02,
+ 0xb4810cea,
+ 0xb79fc000,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa60d9c22,
+ 0x590cb720,
+ 0x49b5b720,
+ 0x2e10d091,
+ 0x9e8e7500,
+ 0x91e2c003,
+ 0x2e14d011,
+ 0x87068502,
+ 0x4500b544,
+ 0xb5417500,
+ 0xb544421c,
+ 0xc0004a18,
+ 0xb5449082,
+ 0xd1114580,
+ 0x75002e10,
+ 0x9082c000,
+ 0x4600b544,
+ 0x2e10d211,
+ 0xc0007500,
+ 0xb5449082,
+ 0xb7844680,
+ 0x75004608,
+ 0x638cb7c0,
+ 0x92e2c001,
+ 0x4588b784,
+ 0xc0017500,
+ 0xc8099244,
+ 0xc6ce0a42,
+ 0xc8090a00,
+ 0xc6ac08c2,
+ 0xc8090890,
+ 0xc6bc0cc2,
+ 0xc8090cc0,
+ 0xc6120942,
+ 0xc8090920,
+ 0xc5de0d42,
+ 0xc8090d70,
+ 0xc5f809c2,
+ 0xc80909e0,
+ 0xc5e60dc2,
+ 0xc8090db0,
+ 0xc6de0c42,
+ 0xf2080c50,
+ 0xf208a24d,
+ 0xf248a0dd,
+ 0xf248a0c2,
+ 0xf248a145,
+ 0xf208a14a,
+ 0xf208a1c5,
+ 0xf248a1c2,
+ 0xb7a0a04e,
+ 0xf2085a8c,
+ 0x9eabaa4d,
+ 0x9c629ea4,
+ 0x5c0cb720,
+ 0xaa21d208,
+ 0x41abb580,
+ 0x41b3b720,
+ 0xb5408502,
+ 0xb520439a,
+ 0xb7c05094,
+ 0xf2d05b0c,
+ 0xf208aa49,
+ 0x7048a8d9,
+ 0x9142c000,
+ 0x638cb780,
+ 0xa88df248,
+ 0x0de0d152,
+ 0x9c629e8c,
+ 0x4508b784,
+ 0xc0047500,
+ 0xb7209062,
+ 0x76404694,
+ 0x93c4c003,
+ 0x438ab720,
+ 0xc0007440,
+ 0xda0890e2,
+ 0x7048aa55,
+ 0x9004c001,
+ 0x6114b7a0,
+ 0x4588b784,
+ 0x638cb7a0,
+ 0xa9d6da08,
+ 0x4392b520,
+ 0x7500850a,
+ 0xa0aad210,
+ 0xa8a9f208,
+ 0x8d24e001,
+ 0x1d849d4f,
+ 0x9c629e8c,
+ 0xaa31f208,
+ 0x0d8a030b,
+ 0x9c629ea4,
+ 0x9180c000,
+ 0x638cb780,
+ 0xa891f208,
+ 0x6114b7a0,
+ 0x03090d86,
+ 0x9c629e8c,
+ 0x438ab780,
+ 0x4608b724,
+ 0x5c14b720,
+ 0xb5800a04,
+ 0xd210438a,
+ 0x7440aa29,
+ 0x4849b580,
+ 0x9024c001,
+ 0x5d0cb7a0,
+ 0xa8c1f208,
+ 0x9e8c9eab,
+ 0xd2109c62,
+ 0x7500aa29,
+ 0x92a4c000,
+ 0xa9a1f208,
+ 0xa85df208,
+ 0x9e840d82,
+ 0xf2089c62,
+ 0xf248a021,
+ 0x9eaba845,
+ 0x9e840982,
+ 0xda089c62,
+ 0xb582aa21,
+ 0xb780458a,
+ 0x7502450c,
+ 0x90bcc000,
+ 0xffd40d86,
+ 0xd210982a,
+ 0x7500aa29,
+ 0x9122c000,
+ 0x578cb720,
+ 0x412db780,
+ 0xc0003a08,
+ 0xb72090e0,
+ 0xb780578c,
+ 0x2a75412d,
+ 0x412db580,
+ 0x4508b724,
+ 0x518cb780,
+ 0x3a047440,
+ 0x518cb580,
+ 0x91c4c000,
+ 0x0e60d151,
+ 0x5c0cb740,
+ 0xa882d208,
+ 0xa881d208,
+ 0x5094b520,
+ 0xa0cdd808,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x4003ba1b,
+ 0x9e5c9e59,
+ 0x4002ba03,
+ 0x4003ba12,
+ 0x9e537040,
+ 0x9136c000,
+ 0xc0007006,
+ 0xc8129158,
+ 0xc00072c4,
+ 0x9e519180,
+ 0xc0007002,
+ 0x9e8290bc,
+ 0x90a0c000,
+ 0x70c8cc10,
+ 0x9e509e9a,
+ 0xa61d9c22,
+ 0x0a468460,
+ 0x0c9ec034,
+ 0xc000b481,
+ 0x5394b760,
+ 0x9876fff4,
+ 0x490ab780,
+ 0x7d3edffc,
+ 0x2b06d012,
+ 0x9104c000,
+ 0x498ab780,
+ 0x7d3edffc,
+ 0x90a2c000,
+ 0xc0007782,
+ 0x0f8290c4,
+ 0xc0010b82,
+ 0xb7609000,
+ 0xfff45414,
+ 0xd024985d,
+ 0xc0005bc3,
+ 0xba395884,
+ 0xd3a24002,
+ 0x9e8f5c84,
+ 0x5a7fc380,
+ 0x5a79c200,
+ 0xc2000278,
+ 0xba3f5b8b,
+ 0xd3a24003,
+ 0x9e795e7f,
+ 0x5a79c200,
+ 0xd2240218,
+ 0xb7805b8b,
+ 0xdffc490a,
+ 0xc0017d3e,
+ 0xb7809164,
+ 0xba24498a,
+ 0xc000400a,
+ 0x09029124,
+ 0x7fecb55f,
+ 0x7f6cb55f,
+ 0x9180c00b,
+ 0x6804b740,
+ 0xb7209e7e,
+ 0x1a04670c,
+ 0x5908d226,
+ 0xb7609e2d,
+ 0x028f6784,
+ 0x7f6cb5bf,
+ 0x7fecb5df,
+ 0xa34ee030,
+ 0x5904d226,
+ 0xc8309d1d,
+ 0x9e3da3cd,
+ 0xa3cec830,
+ 0x9240c00a,
+ 0x498ab780,
+ 0x400aba24,
+ 0xc0020e82,
+ 0xb72092a4,
+ 0xb7c05994,
+ 0xb780670c,
+ 0x9d6d404b,
+ 0x5a11c200,
+ 0xd2261a04,
+ 0xc8305904,
+ 0xb780a3cd,
+ 0x010d404b,
+ 0x680cb7e0,
+ 0xc2000089,
+ 0x1a045a11,
+ 0x5908d226,
+ 0xa9c6d829,
+ 0x18845891,
+ 0xd0a69d53,
+ 0xb7a05904,
+ 0xe270678c,
+ 0x9d47a306,
+ 0xa9c1d808,
+ 0xba1b0d02,
+ 0xc8504003,
+ 0xba1ba3a6,
+ 0xfff44002,
+ 0xb7809b3f,
+ 0xba24498a,
+ 0xd2264002,
+ 0x0a045904,
+ 0xd2269d4b,
+ 0xba005904,
+ 0x9d534002,
+ 0xa9c6c850,
+ 0xa985ca50,
+ 0xb51f0d02,
+ 0xba1b7f6c,
+ 0xba1b4003,
+ 0xfff44002,
+ 0x9eba9b25,
+ 0xba009ded,
+ 0xb51f4002,
+ 0x010b7fec,
+ 0x9260c002,
+ 0x670cb7c0,
+ 0xd2269eba,
+ 0xb7a05904,
+ 0xd011678c,
+ 0x0a0418c2,
+ 0xd2269d4b,
+ 0xd0a85904,
+ 0x9d535904,
+ 0x5908d0a6,
+ 0x9ded9d44,
+ 0x681cb760,
+ 0xa3c1c830,
+ 0xa9c6c860,
+ 0xa985ca60,
+ 0xa34ee030,
+ 0xa3a6c850,
+ 0x4003ba1b,
+ 0x4002ba1b,
+ 0x9af6fff4,
+ 0x498ab780,
+ 0x4002ba24,
+ 0x5904d226,
+ 0x9d4b0a04,
+ 0x5904d226,
+ 0x4002ba00,
+ 0xc8509d53,
+ 0xca50a9c6,
+ 0x050fa985,
+ 0x7f6cb51f,
+ 0x4003ba1b,
+ 0x4002ba1b,
+ 0x9adcfff4,
+ 0xb7209ded,
+ 0xba006814,
+ 0xb51f4002,
+ 0x77827fec,
+ 0x0503010b,
+ 0x90e2c000,
+ 0x7a6ab5ff,
+ 0x7c72b5ff,
+ 0xb7800e86,
+ 0xba0c498a,
+ 0xd0a64002,
+ 0x9dc75908,
+ 0xaa29e020,
+ 0xc0007502,
+ 0xd0a693c2,
+ 0x9e3d5904,
+ 0x5d04d2a8,
+ 0x0ca3cffe,
+ 0xa8cdc830,
+ 0x8184c001,
+ 0x803bf210,
+ 0xa081da08,
+ 0xca209d53,
+ 0xd011a886,
+ 0x9d440e52,
+ 0xf0519ea5,
+ 0xba2d8c00,
+ 0xca104003,
+ 0xb780a086,
+ 0xba24498a,
+ 0xd0114002,
+ 0xd0a608c2,
+ 0x9dc75908,
+ 0xaa29e020,
+ 0xc0007502,
+ 0xd0a693c2,
+ 0x9e3d5904,
+ 0x5d04d2a8,
+ 0x87a3cffe,
+ 0xa8cdc830,
+ 0x8184c001,
+ 0x8037f010,
+ 0xda089e2d,
+ 0x9d47a081,
+ 0x0e52d011,
+ 0xa8a6c820,
+ 0xe0539ea5,
+ 0xba2d8d00,
+ 0xc8304003,
+ 0x7744a0ce,
+ 0x9142c001,
+ 0x90fac000,
+ 0xc0027742,
+ 0xc0029022,
+ 0x77469120,
+ 0x90c4c002,
+ 0x7a72b77f,
+ 0x7aeab77f,
+ 0x7b72b75f,
+ 0x4003ba1b,
+ 0x4002ba1b,
+ 0x4003ba12,
+ 0x9a5efff4,
+ 0x7c72b77f,
+ 0x7ceab77f,
+ 0x7d72b75f,
+ 0x4002ba28,
+ 0x4003ba1b,
+ 0x4002ba1b,
+ 0x4003ba12,
+ 0x9300c000,
+ 0x7a72b77f,
+ 0x7aeab77f,
+ 0xba1b0d02,
+ 0xba1b4003,
+ 0xfff44002,
+ 0xb77f9a43,
+ 0xb77f7c72,
+ 0xba287cea,
+ 0x0d024002,
+ 0x4003ba1b,
+ 0x4002ba1b,
+ 0x9a36fff4,
+ 0x4002ba30,
+ 0x91c0c000,
+ 0x7a6ab79f,
+ 0x7c6ab73f,
+ 0x4002ba2c,
+ 0x4002ba31,
+ 0x9080c000,
+ 0x0a820b02,
+ 0x550cb720,
+ 0x6684b740,
+ 0x5908d0a6,
+ 0xe0309e2d,
+ 0x2a04aa4d,
+ 0xc0087500,
+ 0x0a429262,
+ 0x0c9ec034,
+ 0xc000b481,
+ 0x5414b760,
+ 0x9aaeffd4,
+ 0x5943d024,
+ 0x5884c000,
+ 0x4002ba11,
+ 0x5c84d122,
+ 0x5a7fc100,
+ 0x5a75c200,
+ 0xc2000228,
+ 0xc100590f,
+ 0x9e8a5a04,
+ 0x7f6cb73f,
+ 0x4003ba12,
+ 0x12429e52,
+ 0x4002ba04,
+ 0x5e7fd122,
+ 0xc41409f2,
+ 0xba097000,
+ 0xc4104002,
+ 0x74007046,
+ 0x5a75c200,
+ 0xd2240228,
+ 0x0003590f,
+ 0x9076c000,
+ 0xb79f1003,
+ 0xb73f7f6c,
+ 0xba007fec,
+ 0xd0204002,
+ 0xd12200c0,
+ 0x12425e04,
+ 0x4002ba04,
+ 0x5e7dd0a2,
+ 0x04949ea2,
+ 0x9e4a5c87,
+ 0x7000c414,
+ 0x4002ba09,
+ 0x7046c410,
+ 0x00037400,
+ 0x4002ba12,
+ 0x9076c000,
+ 0xb79f1003,
+ 0xba007fec,
+ 0xd0204002,
+ 0xc10000c0,
+ 0x124a5a04,
+ 0x4002ba04,
+ 0x5e7dd0a2,
+ 0xc4149d4d,
+ 0xba097000,
+ 0xc4104002,
+ 0x74007046,
+ 0xc3010003,
+ 0x5c870496,
+ 0x4003ba11,
+ 0x9076c000,
+ 0xba001003,
+ 0xd1224002,
+ 0xd0205e04,
+ 0x124c00d0,
+ 0x4002ba04,
+ 0x5e7dd0a2,
+ 0xc0019dcd,
+ 0x5c870496,
+ 0xc4149e4a,
+ 0xba097000,
+ 0xc4104002,
+ 0x74007046,
+ 0xba120003,
+ 0xc0004002,
+ 0x10039076,
+ 0x5888d124,
+ 0x4002ba00,
+ 0xc2000260,
+ 0x024258fd,
+ 0x2cf0cffe,
+ 0xb7409e49,
+ 0xc2005414,
+ 0xc2005a07,
+ 0x30425a48,
+ 0x0d00c200,
+ 0xb4025d0b,
+ 0xb720c000,
+ 0xc2005414,
+ 0x5c8b0c90,
+ 0xc000b401,
+ 0x5414b740,
+ 0x0d20c200,
+ 0xb4025d0b,
+ 0xb720c000,
+ 0xc2005414,
+ 0x5c8b0cb0,
+ 0xc000b401,
+ 0x5414b740,
+ 0x0d40c200,
+ 0xb4025d0b,
+ 0xb720c000,
+ 0xc2005414,
+ 0x5c8b0cd0,
+ 0xc000b401,
+ 0x5414b740,
+ 0x0d60c200,
+ 0xb4025d0b,
+ 0xb720c000,
+ 0xc2005414,
+ 0x5c8b0cf0,
+ 0xc000b401,
+ 0x5414b740,
+ 0x0d00c202,
+ 0xb4025d0b,
+ 0xb720c000,
+ 0xc2025414,
+ 0x5c8b0c90,
+ 0xc000b401,
+ 0x5414b740,
+ 0x0d20c202,
+ 0xb4025d0b,
+ 0xb720c000,
+ 0xc2025414,
+ 0x5c8b0cb0,
+ 0xc000b401,
+ 0x5414b740,
+ 0x0d40c202,
+ 0xb4025d0b,
+ 0xb720c000,
+ 0xc2025414,
+ 0x5c8b0cd0,
+ 0xc000b401,
+ 0x5414b740,
+ 0x0d60c202,
+ 0xb4025d0b,
+ 0xb720c000,
+ 0xc2025414,
+ 0x5c8b0cf0,
+ 0xc000b401,
+ 0x7ceeb79f,
+ 0x7d6eb7bf,
+ 0x7deeb7df,
+ 0x7e6eb7ff,
+ 0x8c60c002,
+ 0xb7209c22,
+ 0x9e5c4b8c,
+ 0x2a40c0ff,
+ 0x28c0c0ff,
+ 0x85027102,
+ 0x9062c000,
+ 0xb5408506,
+ 0xb5604c1c,
+ 0x9c224b94,
+ 0x9e5da605,
+ 0x2a50d051,
+ 0xc0007500,
+ 0xb78090e4,
+ 0x75004c0c,
+ 0x9142c000,
+ 0x0d82c0c0,
+ 0x09c2c012,
+ 0x09420d02,
+ 0x9994ffd4,
+ 0x4b8cb780,
+ 0x0cb6c034,
+ 0xc000b481,
+ 0x0d32c034,
+ 0xc000b4a2,
+ 0x4b0cb5a0,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0x8420a61d,
+ 0x4508b784,
+ 0x87027500,
+ 0x9122c000,
+ 0x5c0cb780,
+ 0xa881d288,
+ 0xc01a7440,
+ 0xb7c09184,
+ 0xf208588c,
+ 0x2a20aa59,
+ 0xb7a07500,
+ 0xc001590c,
+ 0xd1319162,
+ 0xda080a50,
+ 0xb780a881,
+ 0xb740678c,
+ 0x8506670c,
+ 0x551cb540,
+ 0xd0a65891,
+ 0xf3105904,
+ 0xe2108021,
+ 0xb5408125,
+ 0xb5404902,
+ 0xda0a4982,
+ 0xd80aa100,
+ 0xc430a140,
+ 0x0a020c8a,
+ 0xc000b481,
+ 0x4220b101,
+ 0x3880c180,
+ 0x0c8ac030,
+ 0xc000b421,
+ 0x590cb7a0,
+ 0xb7409eb1,
+ 0x0dc2470c,
+ 0xc002098e,
+ 0xb55f0d42,
+ 0xff947fe4,
+ 0xf2089ae6,
+ 0xb7a0aa55,
+ 0xf2085814,
+ 0xda08a8c9,
+ 0xda08a8da,
+ 0xb580a95d,
+ 0xf208480c,
+ 0xf210aa45,
+ 0xd252a0ba,
+ 0xf21008d0,
+ 0xf250a0bd,
+ 0xf210a121,
+ 0xda08a235,
+ 0xd131a942,
+ 0xda080a50,
+ 0xb740a881,
+ 0xf248404b,
+ 0x9e53a947,
+ 0xa8d2da88,
+ 0xc08060b2,
+ 0xc2005a7f,
+ 0x00985a71,
+ 0x58945893,
+ 0x80a3e210,
+ 0x7e7edffc,
+ 0xc1005915,
+ 0xf2505b90,
+ 0xb75fa0bd,
+ 0xc0007fe4,
+ 0xe10091c2,
+ 0xc0005d40,
+ 0xda889144,
+ 0xb520aa55,
+ 0xb5404792,
+ 0xb5804882,
+ 0xf288468a,
+ 0xd132aa21,
+ 0xf25009d0,
+ 0xf250a235,
+ 0xda08a239,
+ 0xd810a941,
+ 0xf248aa61,
+ 0x6228a93b,
+ 0x8021f310,
+ 0x628cb760,
+ 0xa229f290,
+ 0xa8c1da08,
+ 0xaa61d810,
+ 0xa934f24a,
+ 0xa942da08,
+ 0xa973f008,
+ 0x60990884,
+ 0xe2205d20,
+ 0xe210812d,
+ 0xf29082a3,
+ 0xf208a0a5,
+ 0xda08a12e,
+ 0xf008a8c2,
+ 0x5c9ca977,
+ 0x80abe220,
+ 0xa0b2f208,
+ 0xa126f250,
+ 0xa0aef250,
+ 0xaa39da48,
+ 0xa229f250,
+ 0xa8bdda48,
+ 0xa0b1f250,
+ 0xaa29da48,
+ 0xa923f208,
+ 0xc2006228,
+ 0xf3105a10,
+ 0xf2108021,
+ 0xda48a221,
+ 0xf208a8ad,
+ 0x6122a927,
+ 0xf210590c,
+ 0xf2108025,
+ 0xf208a229,
+ 0xe210a92b,
+ 0xf2108125,
+ 0xda48a12d,
+ 0xf210aa29,
+ 0xda48a225,
+ 0xf210a8ad,
+ 0xd810a0b1,
+ 0xc004aa61,
+ 0xd1311d00,
+ 0xc20008d4,
+ 0xc2005a40,
+ 0xf2905a51,
+ 0xb780a235,
+ 0xc002402b,
+ 0xb5401c80,
+ 0xb5204f94,
+ 0xc2005014,
+ 0xc2005a40,
+ 0xf2905a51,
+ 0xc42ea239,
+ 0x0a020cf2,
+ 0xc000b481,
+ 0x4220b101,
+ 0x74402884,
+ 0x0b50d132,
+ 0x9102c000,
+ 0xaa41da10,
+ 0x753ec09c,
+ 0x9332c011,
+ 0x08c6c0c0,
+ 0x0ce2c050,
+ 0xc000b421,
+ 0xa959f208,
+ 0x0a50d131,
+ 0xa881da08,
+ 0x28a0d052,
+ 0x58917640,
+ 0x4f0cb520,
+ 0x9222c000,
+ 0xc0600a02,
+ 0xb4810cae,
+ 0xda08c000,
+ 0x7440a8c1,
+ 0x9302c000,
+ 0xb5408502,
+ 0xc0004f1c,
+ 0xc2009260,
+ 0x74802900,
+ 0x9122c000,
+ 0xc0600a0a,
+ 0xb4810cae,
+ 0xc000c000,
+ 0x0a0690e0,
+ 0x0caec060,
+ 0xc000b481,
+ 0xaa59f208,
+ 0x75002a04,
+ 0xb540850a,
+ 0xc000499c,
+ 0x850490a2,
+ 0x499cb540,
+ 0x4508b784,
+ 0xb7e07500,
+ 0xc0006394,
+ 0xb78492e2,
+ 0x75004608,
+ 0x9244c000,
+ 0x468cb780,
+ 0xc0007500,
+ 0xb78491a2,
+ 0x75004688,
+ 0x9104c000,
+ 0x5d14b760,
+ 0xaa61f210,
+ 0x9c629ea4,
+ 0xaa59f208,
+ 0x75002a20,
+ 0x90e2c000,
+ 0xaa41da08,
+ 0xc0007500,
+ 0xb7809244,
+ 0xb7205c0c,
+ 0xda08548c,
+ 0x9e8ca98e,
+ 0xb7849c62,
+ 0x75004508,
+ 0x90a2c000,
+ 0xb5448506,
+ 0xf2084f18,
+ 0x2a20aa59,
+ 0xc0017500,
+ 0xc0e09082,
+ 0xc03808ba,
+ 0xb4210cfa,
+ 0xf208c000,
+ 0xb720aa59,
+ 0x851e498c,
+ 0x2a041cf8,
+ 0x38d07500,
+ 0x498cb520,
+ 0x08e2c084,
+ 0x8d28e001,
+ 0x4d9cb540,
+ 0xc000b421,
+ 0x658cb780,
+ 0xc002088a,
+ 0xb5800c80,
+ 0xb421528c,
+ 0xffd4c000,
+ 0xb78098b9,
+ 0xc03e498c,
+ 0xb4810c82,
+ 0xb720c000,
+ 0xc0504d8c,
+ 0xb4210c82,
+ 0xda08c000,
+ 0xf290a941,
+ 0xda08a8b5,
+ 0x6123a946,
+ 0xda089e53,
+ 0x6097aa41,
+ 0x6214b720,
+ 0xb5428702,
+ 0x857f4682,
+ 0x459ab540,
+ 0xb540851a,
+ 0x0d86449a,
+ 0xb5801a04,
+ 0xb5404e0c,
+ 0x8526405b,
+ 0x415bb540,
+ 0x460ab540,
+ 0x18a05891,
+ 0x40cbb520,
+ 0x7fe4b55f,
+ 0x9831c034,
+ 0x7fe4b75f,
+ 0xa8c6da08,
+ 0xb5448506,
+ 0xb5444e18,
+ 0xb5444e80,
+ 0xb5445400,
+ 0xb5445480,
+ 0xf2904f80,
+ 0x9e49aa35,
+ 0x5894b720,
+ 0x5000b544,
+ 0xb7206243,
+ 0x8502434d,
+ 0xc10158c8,
+ 0x9e892880,
+ 0xa9c2da10,
+ 0xb5400a82,
+ 0xb5404e9c,
+ 0x5dc0521c,
+ 0x2dc0c0ff,
+ 0x3db0ca01,
+ 0x5a11c200,
+ 0x450ab580,
+ 0xfff43596,
+ 0xc0c099a2,
+ 0xc0120d82,
+ 0x0d0209c2,
+ 0xffb40942,
+ 0x714e9b51,
+ 0xc0018546,
+ 0x9dcf9148,
+ 0x99a4fff4,
+ 0x0d82c0c0,
+ 0x09c2c012,
+ 0x09060d02,
+ 0x9b42ffb4,
+ 0x1a70d091,
+ 0x0a027148,
+ 0x0a42d00b,
+ 0xa9c2da10,
+ 0x5a28c200,
+ 0x5dc09ea1,
+ 0x2dc0c0ff,
+ 0x3db0c801,
+ 0xfff43596,
+ 0xd0519978,
+ 0xc2000a50,
+ 0xc2005a40,
+ 0x714e5ac1,
+ 0xfffe8506,
+ 0xf2509346,
+ 0x7500aa71,
+ 0x857fcfce,
+ 0x449cb541,
+ 0x9102c000,
+ 0xa9def208,
+ 0x450ab760,
+ 0x9c629ea4,
+ 0xc0140d82,
+ 0xb78498f7,
+ 0x75004e88,
+ 0xb5448502,
+ 0xc0024e18,
+ 0xb7a092a4,
+ 0x0f025d0c,
+ 0xb784068f,
+ 0x75004508,
+ 0x9082c002,
+ 0x4608b784,
+ 0xc0017500,
+ 0xb78493e2,
+ 0x75004f08,
+ 0x9182c000,
+ 0xa9a2f208,
+ 0x4f10b5c4,
+ 0xa869f250,
+ 0x9c629e84,
+ 0x430ab500,
+ 0x5008b784,
+ 0xc0007500,
+ 0xf2109382,
+ 0x9eaba825,
+ 0x5010b5c4,
+ 0x9c629e84,
+ 0xaa21f250,
+ 0x9c629ea4,
+ 0xa9a1f208,
+ 0xa83df210,
+ 0x9e840d86,
+ 0xf2509c62,
+ 0x9eabaa25,
+ 0xa021f208,
+ 0x9ea40986,
+ 0xb7849c62,
+ 0x75005008,
+ 0x91e4c000,
+ 0xc0140d86,
+ 0xb78498ab,
+ 0x75005008,
+ 0x9342ffff,
+ 0x90a0c000,
+ 0xc0140d86,
+ 0xb78498a1,
+ 0x75004e88,
+ 0x9262fffd,
+ 0x0d82c0c0,
+ 0x09c2c012,
+ 0x09060d02,
+ 0x9ab0ffb4,
+ 0x0a02c801,
+ 0x520cb580,
+ 0x0d82c0c0,
+ 0x09c2c012,
+ 0x09420d02,
+ 0x9aa4ffb4,
+ 0x5214b760,
+ 0x98e9fff4,
+ 0xfff40d86,
+ 0xc0c098f7,
+ 0xc0120d82,
+ 0x0d0209c2,
+ 0xffb40906,
+ 0x85029a95,
+ 0x0892c006,
+ 0x0c9ac430,
+ 0xb5400902,
+ 0xc006521c,
+ 0xb4418510,
+ 0xb104c000,
+ 0x2a404220,
+ 0x9d4f7500,
+ 0x4422b313,
+ 0xe0000087,
+ 0xffff1884,
+ 0xb7409284,
+ 0xc0064694,
+ 0xc4300892,
+ 0x09020c9a,
+ 0x8512c006,
+ 0xc000b441,
+ 0x4220b104,
+ 0x2a00c002,
+ 0x9d537500,
+ 0x4422b314,
+ 0xe0000089,
+ 0xffff1884,
+ 0x0a029264,
+ 0x0ceac03e,
+ 0x40e8b960,
+ 0xc000b481,
+ 0x93c1ffff,
+ 0xc0007680,
+ 0x0a029122,
+ 0x0ceac03e,
+ 0xc000b481,
+ 0x9180c000,
+ 0x450cb780,
+ 0x088a7504,
+ 0x0ceac03e,
+ 0x1894d00c,
+ 0xc000b421,
+ 0x0d82c0c0,
+ 0x0d0209e2,
+ 0xffb40942,
+ 0x08829a41,
+ 0x0cb6c034,
+ 0xc000b421,
+ 0xaa59f208,
+ 0x75002a20,
+ 0x91e2c000,
+ 0x0ceac450,
+ 0xb4810a02,
+ 0xb101c000,
+ 0xb7804220,
+ 0xc0025c0c,
+ 0xda0828fc,
+ 0xb79fa08d,
+ 0xb7bf7dee,
+ 0xb7df7e6e,
+ 0xb7ff7eee,
+ 0xc0027f6e,
+ 0x9c228c20,
+ 0xb780a60d,
+ 0xb720668c,
+ 0x0a82520c,
+ 0xa882f208,
+ 0x7efec01c,
+ 0xa081f208,
+ 0xf2080309,
+ 0xc000a086,
+ 0xc0c09182,
+ 0xc0120d82,
+ 0x0d0209c2,
+ 0xffb40906,
+ 0xc0009a05,
+ 0xc4349240,
+ 0x0a020cb2,
+ 0xc000b481,
+ 0x4220b101,
+ 0x74402884,
+ 0x90e2c000,
+ 0x4e08b784,
+ 0xc00c7500,
+ 0xb78092c2,
+ 0x75024e8c,
+ 0x90c4c000,
+ 0xc0140d82,
+ 0x3ac09a92,
+ 0x5894b740,
+ 0x580cb740,
+ 0xa8c5d810,
+ 0xaa55f088,
+ 0x4592b720,
+ 0x9e966243,
+ 0xc2009e49,
+ 0x0a045a11,
+ 0x4002ba09,
+ 0x4002ba24,
+ 0x06857048,
+ 0x9138c000,
+ 0x498cb780,
+ 0xb5802a51,
+ 0xc003498c,
+ 0xf21091c0,
+ 0x2a04aa39,
+ 0xc0027500,
+ 0xb78093a2,
+ 0x7440498c,
+ 0x3942d011,
+ 0x498cb540,
+ 0x929cc002,
+ 0x4792b760,
+ 0xba249e5c,
+ 0xc002400a,
+ 0xc00291a2,
+ 0xb760911c,
+ 0xb740660a,
+ 0x9e996304,
+ 0xba099e2d,
+ 0xd0a24003,
+ 0x9e485e7f,
+ 0x5a6dc200,
+ 0xc2000208,
+ 0xd2265a17,
+ 0x0c065908,
+ 0x5a14c200,
+ 0x9e401208,
+ 0xa94ee038,
+ 0x4002ba24,
+ 0x9e545090,
+ 0xc0017902,
+ 0xb7819102,
+ 0x75004d88,
+ 0x9064c001,
+ 0x470ab780,
+ 0xba249e48,
+ 0x70084002,
+ 0x9378c000,
+ 0xc0007640,
+ 0xb78190e4,
+ 0x75024d08,
+ 0x92c2c000,
+ 0x1e32d011,
+ 0xb5402959,
+ 0x9e52498c,
+ 0xb56048fd,
+ 0xb501470a,
+ 0xb5804d90,
+ 0x20a2478a,
+ 0xc000a0c1,
+ 0x850290a0,
+ 0x4d98b541,
+ 0x458ab780,
+ 0x400aba24,
+ 0x90fcc000,
+ 0x660ab780,
+ 0xb5800a04,
+ 0xb720660a,
+ 0xc03e498c,
+ 0xb4210c82,
+ 0xb780c000,
+ 0x0a04458a,
+ 0x458ab580,
+ 0x9affc014,
+ 0x4508b784,
+ 0xc0027500,
+ 0xb7849222,
+ 0x75004608,
+ 0x9182c002,
+ 0x520cb780,
+ 0x75002a40,
+ 0x90e4c000,
+ 0x5408b784,
+ 0xc002751a,
+ 0xb7809024,
+ 0xb7225a0c,
+ 0xda084692,
+ 0x9e4ca881,
+ 0xc0007102,
+ 0xb7809284,
+ 0x8502430a,
+ 0x469ab542,
+ 0x440ab580,
+ 0x4412b760,
+ 0x548cb780,
+ 0xb5448506,
+ 0xb5444f18,
+ 0x9ea45018,
+ 0xf2109c62,
+ 0x2a10aa39,
+ 0xc0007500,
+ 0xb78493e2,
+ 0x75005008,
+ 0x90e4c000,
+ 0x468ab782,
+ 0xc0007502,
+ 0xb78492a4,
+ 0x75004f08,
+ 0xd0010902,
+ 0xc4380922,
+ 0x0a020c82,
+ 0xc000b481,
+ 0x4220b101,
+ 0x309428f1,
+ 0x0c82c038,
+ 0xc000b421,
+ 0x98a7c014,
+ 0x0d82c0c0,
+ 0x0d0209e2,
+ 0x097ec01e,
+ 0x98f4ffb4,
+ 0x0d82c0c0,
+ 0xc1000992,
+ 0xc1000d02,
+ 0xffb40902,
+ 0xc43098eb,
+ 0x0a020c8e,
+ 0xc000b481,
+ 0x4220b104,
+ 0x3a00c100,
+ 0x0c8ec030,
+ 0xc000b481,
+ 0xaa39f210,
+ 0x75002a20,
+ 0x9342c001,
+ 0x550cb780,
+ 0x5908d226,
+ 0xe0609d43,
+ 0xd011a885,
+ 0x75002a12,
+ 0x90e4c000,
+ 0x2a14d011,
+ 0xc0007500,
+ 0xffd49082,
+ 0xb7209828,
+ 0xd0a6550c,
+ 0x9d475908,
+ 0xaa25e060,
+ 0x75002a04,
+ 0x9382c000,
+ 0x5994b720,
+ 0x498ab720,
+ 0x404bb780,
+ 0x9e890884,
+ 0x4003ba09,
+ 0xc2009e4a,
+ 0x70885a11,
+ 0x498ab520,
+ 0x9158c000,
+ 0x490ab780,
+ 0xb5408502,
+ 0x0a04499a,
+ 0x490ab580,
+ 0x0c8ac430,
+ 0xb4810a02,
+ 0xb104c000,
+ 0xc1804220,
+ 0xc0303a00,
+ 0xb4810c8a,
+ 0xb780c000,
+ 0xf2904e8c,
+ 0x0a04a955,
+ 0xb5807104,
+ 0xc0004e8c,
+ 0x850290a4,
+ 0x4e9cb540,
+ 0xa8a5da10,
+ 0x4592b720,
+ 0x60a35891,
+ 0x4003ba09,
+ 0x3a849e4c,
+ 0x71020884,
+ 0xcffe020b,
+ 0xb3542a3d,
+ 0x02894426,
+ 0x28d0d051,
+ 0xc0007440,
+ 0xc0c09142,
+ 0xc0120d82,
+ 0x0d0209c2,
+ 0xffb40942,
+ 0xb7809867,
+ 0x7500520c,
+ 0x90a2c000,
+ 0xffd49eab,
+ 0xb79f9ab9,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0xf8399c22,
+ 0xb724a205,
+ 0xb7405408,
+ 0xb7805284,
+ 0xd0a6448a,
+ 0x9e2d5908,
+ 0x590cb740,
+ 0xa94ee030,
+ 0x661cb760,
+ 0x5498b744,
+ 0x5400b744,
+ 0xb5801a04,
+ 0xc030448a,
+ 0xe200a8cd,
+ 0xd2515a40,
+ 0xda080a20,
+ 0xe210a882,
+ 0xb54082a3,
+ 0x5c955214,
+ 0xb5245c90,
+ 0xc0015408,
+ 0xb78492c4,
+ 0x0a045488,
+ 0x28ced3f1,
+ 0xb5847444,
+ 0xc0015488,
+ 0xb7619034,
+ 0x85064494,
+ 0x4e98b544,
+ 0x764024a6,
+ 0x5018b544,
+ 0x5214b520,
+ 0x9202c000,
+ 0x08a0d131,
+ 0x402bb780,
+ 0x3c80c801,
+ 0xc2009e48,
+ 0xc0ff5a40,
+ 0x32082a40,
+ 0x520cb580,
+ 0xf9f80806,
+ 0x9c22aa1d,
+ 0x5488b724,
+ 0x6204b740,
+ 0x5904d0a6,
+ 0xc8309e2d,
+ 0xb580aa4d,
+ 0xd132448a,
+ 0xb72009a0,
+ 0xd810458a,
+ 0xba19aa61,
+ 0xc2004002,
+ 0x1a045a11,
+ 0xc00070c8,
+ 0xb7819104,
+ 0xc040448c,
+ 0xb5813a00,
+ 0xb720448c,
+ 0xd0114f0c,
+ 0x70c80a18,
+ 0x9104c000,
+ 0x448cb781,
+ 0x3a00c010,
+ 0x448cb581,
+ 0x0a1cd011,
+ 0xc00070c8,
+ 0xb7819104,
+ 0xc020448c,
+ 0xb5813a00,
+ 0xb780448c,
+ 0xf288580c,
+ 0xf288a916,
+ 0x9e50a919,
+ 0x460ab720,
+ 0x1a24d011,
+ 0xba096241,
+ 0x00b24002,
+ 0xc0007048,
+ 0xb7819106,
+ 0xcfff448c,
+ 0xb5812a7a,
+ 0xd011448c,
+ 0x9e521a22,
+ 0x70486245,
+ 0x9106c000,
+ 0x448cb781,
+ 0x2a7ec7fe,
+ 0x448cb581,
+ 0x451ab740,
+ 0x5e11d0a2,
+ 0x8821f310,
+ 0xc00070c8,
+ 0xb7819104,
+ 0xcfff448c,
+ 0xb5812a4e,
+ 0xb740448c,
+ 0xb721588c,
+ 0xd808448c,
+ 0x9e50aa45,
+ 0xc2009e8a,
+ 0x1a045a11,
+ 0xb7206209,
+ 0x0a045214,
+ 0x4002ba24,
+ 0x249470c8,
+ 0x5214b520,
+ 0x9118c000,
+ 0x3c80c801,
+ 0x5214b520,
+ 0x91c0c000,
+ 0xaa61d810,
+ 0x3c80c801,
+ 0xc2009e48,
+ 0xc0ff5a40,
+ 0x32082a40,
+ 0x520cb580,
+ 0xaa59f008,
+ 0x2a00c040,
+ 0xc0007500,
+ 0xb7809102,
+ 0xc101520c,
+ 0xb5803a00,
+ 0xb760520c,
+ 0xffd45214,
+ 0x080299a8,
+ 0xaa1df9f8,
+ 0xb7009c22,
+ 0xd2515914,
+ 0xb7600e04,
+ 0xda08580c,
+ 0xc00ea881,
+ 0xc0342dfc,
+ 0xf0080cba,
+ 0x5895a961,
+ 0x5810c080,
+ 0xb4419e82,
+ 0xb780c000,
+ 0xf008454a,
+ 0xc200a963,
+ 0xf3105a10,
+ 0xf0088021,
+ 0x0c84a8e9,
+ 0xa261f008,
+ 0xc000b421,
+ 0x46cab780,
+ 0xa96bf008,
+ 0x8021f310,
+ 0xa8edf008,
+ 0xf0080c84,
+ 0xb421a269,
+ 0xb780c000,
+ 0xf00846ca,
+ 0xf310a96f,
+ 0xf0088021,
+ 0x0c8ca8f5,
+ 0xa26df008,
+ 0xc000b421,
+ 0xa97df008,
+ 0xb4410c84,
+ 0xb780c000,
+ 0x0a084e0c,
+ 0x5890d224,
+ 0xc0007244,
+ 0xd131931c,
+ 0xda080e04,
+ 0x9e4ca903,
+ 0x88a1e210,
+ 0xc0007102,
+ 0xf00891d6,
+ 0xf008aa75,
+ 0xc010a8fd,
+ 0xf0080a00,
+ 0xc008a275,
+ 0xf0080880,
+ 0xb780a0fd,
+ 0xc0344f8c,
+ 0xb4810cda,
+ 0xb720c000,
+ 0x0c84500c,
+ 0xc000b421,
+ 0x4f8cb780,
+ 0x0a400ce4,
+ 0xc000b481,
+ 0x500cb720,
+ 0x08c00c84,
+ 0xc000b421,
+ 0x4f8cb780,
+ 0x500cb720,
+ 0xc0101ce4,
+ 0xb5800a00,
+ 0xf0484f8c,
+ 0xc008aa65,
+ 0xb5200880,
+ 0xb481500c,
+ 0xf048c000,
+ 0x0c84a8ed,
+ 0xc000b421,
+ 0xaa65f048,
+ 0xa8edf048,
+ 0xc0100c84,
+ 0xf0480a00,
+ 0xf048a265,
+ 0xc008aa75,
+ 0xf0480880,
+ 0xb481a0ed,
+ 0xf088c000,
+ 0x0c88a965,
+ 0xc000b441,
+ 0x0c80d131,
+ 0x402bb780,
+ 0xa967f088,
+ 0x2a40cffe,
+ 0x8021f310,
+ 0xa969f088,
+ 0xf0880c88,
+ 0xb441a265,
+ 0xd131c000,
+ 0xb7800c80,
+ 0xf088402b,
+ 0xcffea96b,
+ 0xf3102a40,
+ 0xf0488021,
+ 0x1c8ca97d,
+ 0xa269f088,
+ 0xc000b441,
+ 0x0c80d131,
+ 0x402bb780,
+ 0xa97ff048,
+ 0xc20076c0,
+ 0xc2005a11,
+ 0xf3105a14,
+ 0xf0488021,
+ 0xc001a27d,
+ 0xb7209182,
+ 0x1ca8454a,
+ 0xc000b421,
+ 0x46cab780,
+ 0xc2000c84,
+ 0xc2005a0d,
+ 0x324258c0,
+ 0xc000b481,
+ 0x0d04d131,
+ 0xaa41d808,
+ 0xc2000c8c,
+ 0xcffe588c,
+ 0xc20028fc,
+ 0x30985a50,
+ 0xc000b421,
+ 0x0d04d251,
+ 0xaa41d808,
+ 0xc2000ca0,
+ 0x1a105a11,
+ 0xc0042a3c,
+ 0xb4813a00,
+ 0xb780c000,
+ 0x0a044e0c,
+ 0x4e0cb580,
+ 0xa68d9c22,
+ 0x0c92c43e,
+ 0xb4810a02,
+ 0xb103c000,
+ 0xb7804220,
+ 0xda08608c,
+ 0xda08a885,
+ 0xda08a909,
+ 0xda08a189,
+ 0xda08a081,
+ 0x0cd0a105,
+ 0xb4810a02,
+ 0xb103c000,
+ 0xb7204220,
+ 0xb780600c,
+ 0xb7a0520c,
+ 0xb720608c,
+ 0xb74040b3,
+ 0xb560412b,
+ 0x2a40412b,
+ 0x03037500,
+ 0x4033b520,
+ 0x40abb540,
+ 0x90e2c000,
+ 0x5408b784,
+ 0xc000750a,
+ 0xb78490f2,
+ 0x751a5408,
+ 0x9204c00d,
+ 0x468ab782,
+ 0xb5820a04,
+ 0xc450468a,
+ 0x0a020ca6,
+ 0xc000b481,
+ 0x4220b103,
+ 0xc0310087,
+ 0x02072880,
+ 0x2a7cc00f,
+ 0x59e1d0a4,
+ 0x59c1d228,
+ 0xcffe0007,
+ 0x0c88287c,
+ 0xb4810a02,
+ 0xb103c000,
+ 0xc1804220,
+ 0x9e9a5bc1,
+ 0x2d7ccffe,
+ 0xb4810cbc,
+ 0xb103c000,
+ 0x00874220,
+ 0x588cb740,
+ 0x458ab782,
+ 0x2880c0fc,
+ 0x283ed0f2,
+ 0x5b19d0a4,
+ 0xd8889e41,
+ 0x9e95a8d2,
+ 0x4592b502,
+ 0x7e7edffc,
+ 0xba1c1218,
+ 0xc0024002,
+ 0x76c291c2,
+ 0x9384c000,
+ 0x480ab780,
+ 0x6304b740,
+ 0x4002ba24,
+ 0x58ffc200,
+ 0x00c258ed,
+ 0xd0a65897,
+ 0x9e2d5908,
+ 0x12425894,
+ 0xe0389e59,
+ 0x5230a8ce,
+ 0x9ea74a7d,
+ 0xa0c2249e,
+ 0x9180c001,
+ 0x468ab780,
+ 0xa8a1da08,
+ 0x4002ba24,
+ 0xc0017048,
+ 0xb780907c,
+ 0xb720488a,
+ 0xb7404812,
+ 0x0a046304,
+ 0x488ab580,
+ 0x4003ba09,
+ 0x5e7fd0a2,
+ 0x9e2d9e49,
+ 0x5a6dc200,
+ 0xc2000218,
+ 0xd2265a17,
+ 0xc2005908,
+ 0x9ea75a14,
+ 0xa94de038,
+ 0x9e4c149e,
+ 0x50b00886,
+ 0xa1413122,
+ 0x480ab780,
+ 0xb5800a04,
+ 0xb784480a,
+ 0x75004588,
+ 0x4608b784,
+ 0x90c4c000,
+ 0x7d3ec01c,
+ 0x9184c002,
+ 0x7d3ec01c,
+ 0x03f0d011,
+ 0x0527d021,
+ 0xf21076c2,
+ 0x0882aa39,
+ 0x0892d001,
+ 0x79022a04,
+ 0x5d0cb740,
+ 0x90e2c000,
+ 0xaa49d808,
+ 0xd8080a04,
+ 0xf008a249,
+ 0xf00aa94b,
+ 0xf310a94c,
+ 0xe0108027,
+ 0xf00882a5,
+ 0xf008a249,
+ 0xb784a0cd,
+ 0x75004a88,
+ 0xd0020882,
+ 0x76c20892,
+ 0xd0020a02,
+ 0x78480a42,
+ 0x90c2c000,
+ 0x8542c07c,
+ 0xa123da08,
+ 0xf00876c2,
+ 0xc000a953,
+ 0xda0890c4,
+ 0xc000aa41,
+ 0xda089080,
+ 0xe310aa21,
+ 0xd80880a1,
+ 0xf008aa4d,
+ 0x0a04a0d1,
+ 0xa24dd808,
+ 0x91c0c006,
+ 0x5d0cb720,
+ 0xf2109d2e,
+ 0xc301aa39,
+ 0xc2018136,
+ 0xb7408120,
+ 0x2a044525,
+ 0xf0107500,
+ 0xf3108027,
+ 0x01038221,
+ 0x452db580,
+ 0x90a2c001,
+ 0xc00076c2,
+ 0xda0890c4,
+ 0xc000aa41,
+ 0xda089080,
+ 0xd808aa21,
+ 0x76c6a25d,
+ 0x9082c001,
+ 0xc00076c0,
+ 0x74c091a4,
+ 0xa953d808,
+ 0x8d2ae002,
+ 0x802df210,
+ 0xa251d808,
+ 0x92c0c000,
+ 0xd84874c0,
+ 0xe002a947,
+ 0xc0008d26,
+ 0xda089160,
+ 0x74c0aa41,
+ 0xa947d848,
+ 0xa25dd808,
+ 0x8d2ae002,
+ 0x802df210,
+ 0xa245d848,
+ 0x4708b784,
+ 0xc0007500,
+ 0xb7809302,
+ 0x9e41440a,
+ 0xc0007048,
+ 0x85029244,
+ 0x4718b544,
+ 0x0c82c43a,
+ 0xb4810a02,
+ 0xb103c000,
+ 0xcfef4220,
+ 0xc03a29fe,
+ 0xb4610c82,
+ 0xb780c000,
+ 0x9e41440a,
+ 0x08827048,
+ 0x0892d002,
+ 0x0a0276c6,
+ 0x0a42d001,
+ 0xc0007848,
+ 0x85069242,
+ 0x4718b544,
+ 0x0c82c43a,
+ 0xb4810a02,
+ 0xb103c000,
+ 0xc0114220,
+ 0xc03a3980,
+ 0xb4610c82,
+ 0x7780c000,
+ 0x91a2c001,
+ 0xc00076c0,
+ 0xda0892e4,
+ 0xf008aa21,
+ 0xd808a947,
+ 0xf310a8d5,
+ 0xd8088021,
+ 0xf008a8da,
+ 0x9e44a245,
+ 0xd8080c84,
+ 0x00c2a0da,
+ 0xa0d5d808,
+ 0x92a0c000,
+ 0xaa41da08,
+ 0xa95bf008,
+ 0xa8c9d848,
+ 0x8021f310,
+ 0xa8ced848,
+ 0xa259f008,
+ 0x0c849e44,
+ 0xa0ced848,
+ 0xd84800c2,
+ 0xd808a0c9,
+ 0xf008aa5d,
+ 0xf04aa95f,
+ 0xf048a940,
+ 0xf310a9c7,
+ 0xf0488021,
+ 0xf008a94f,
+ 0xf210a25d,
+ 0xd8488221,
+ 0xf048a8c2,
+ 0xf010a241,
+ 0xe2108037,
+ 0x0c8480a9,
+ 0xa0c2d848,
+ 0xa245f048,
+ 0xa0cdf048,
+ 0x7eeeb7bf,
+ 0x7f6eb7df,
+ 0x7feeb7ff,
+ 0x9c228c60,
+ 0x5c0cb780,
+ 0x08c0d0f1,
+ 0x4031b720,
+ 0x9ea27642,
+ 0x9382c000,
+ 0x0ccac43c,
+ 0xb4810a02,
+ 0xb101c000,
+ 0xd0114220,
+ 0xd3f11914,
+ 0x08882e3e,
+ 0x4002ba09,
+ 0x4002ba12,
+ 0x7048c410,
+ 0x28fcc00e,
+ 0x7044c812,
+ 0x28aed3f1,
+ 0x9080c000,
+ 0x2cbed3f1,
+ 0x0e20d0f1,
+ 0xc0368502,
+ 0xd2080cfe,
+ 0xb421a103,
+ 0x9c22c000,
+ 0x72c0c002,
+ 0x1c0ad011,
+ 0xb7809c22,
+ 0xf2085d8c,
+ 0xd010a882,
+ 0x743d1432,
+ 0x90b6c000,
+ 0xc000087b,
+ 0x740690e0,
+ 0xb302850a,
+ 0x9d434478,
+ 0xa903f208,
+ 0x8021e210,
+ 0x08fe0a0a,
+ 0x7008c012,
+ 0x7002c010,
+ 0xb7209c22,
+ 0x85025c14,
+ 0x41cbb720,
+ 0xa17fd810,
+ 0xa173d810,
+ 0xb7808502,
+ 0xf0105d8c,
+ 0xd810a167,
+ 0xd810a17b,
+ 0xd850a177,
+ 0xf010a167,
+ 0xd850a17b,
+ 0xd850a16f,
+ 0xd850a16b,
+ 0xf050a163,
+ 0xf050a167,
+ 0xf010a163,
+ 0xf050a17f,
+ 0xf050a16f,
+ 0xf010a16b,
+ 0xda08a0e1,
+ 0xda08a11f,
+ 0xf208a113,
+ 0xda08a107,
+ 0xda08a11b,
+ 0xda48a117,
+ 0xf208a107,
+ 0xda48a11b,
+ 0xda48a10f,
+ 0xda48a10b,
+ 0xf248a103,
+ 0xb720a107,
+ 0xf24841cb,
+ 0xf208a103,
+ 0xf248a11f,
+ 0xf208a10f,
+ 0xf248a081,
+ 0x9c22a10b,
+ 0x5d8cb780,
+ 0xa8e1f010,
+ 0xa081f208,
+ 0xa8f2d810,
+ 0xa092da08,
+ 0xa8e5d850,
+ 0xa085da48,
+ 0xa8e6f050,
+ 0xa086f248,
+ 0xa8e1f050,
+ 0xa081f248,
+ 0xa8fed810,
+ 0xa09eda08,
+ 0xa8f9f010,
+ 0xa099f208,
+ 0xa8e6f010,
+ 0xa086f208,
+ 0xa8e1d850,
+ 0xa081da48,
+ 0xa8fad810,
+ 0xa09ada08,
+ 0xa8edd850,
+ 0xa08dda48,
+ 0xa8f6d810,
+ 0xa096da08,
+ 0xa8e9d850,
+ 0xa089da48,
+ 0xa8eef050,
+ 0xa08ef248,
+ 0xa8fdf010,
+ 0x5e94b720,
+ 0xa09df208,
+ 0x41ddb740,
+ 0xaa69f050,
+ 0x8120c301,
+ 0x41ddb540,
+ 0xaa61f050,
+ 0x8821f310,
+ 0xb5808502,
+ 0xd81040cd,
+ 0x8502a173,
+ 0xf0100802,
+ 0xd810a167,
+ 0xd810a17b,
+ 0xd850a177,
+ 0xf010a167,
+ 0xd850a17b,
+ 0xd850a16f,
+ 0xf050a16b,
+ 0x9c22a16b,
+ 0x9e5c74c2,
+ 0x91c4c001,
+ 0x610cb780,
+ 0xa885d208,
+ 0x85027440,
+ 0x4a98b544,
+ 0x91a4c001,
+ 0x5d8cb780,
+ 0x5b14b720,
+ 0xa881da48,
+ 0x42cdb740,
+ 0x5c0cb780,
+ 0x5e94b740,
+ 0xf2486095,
+ 0xf010a917,
+ 0xb740a94d,
+ 0xb78044c5,
+ 0xc201444d,
+ 0xe2108124,
+ 0xf31088a3,
+ 0x70488a21,
+ 0x91fcc000,
+ 0x4a88b564,
+ 0x9160c000,
+ 0xc00074c0,
+ 0xb7209104,
+ 0xda085c0c,
+ 0xb580aa01,
+ 0xb70441ab,
+ 0x9c224a88,
+ 0x0e82a61d,
+ 0x4002ba3b,
+ 0x72cacc12,
+ 0x9e569eb8,
+ 0x66b19e96,
+ 0x754012ac,
+ 0x4003ba01,
+ 0x933cc000,
+ 0x018b058b,
+ 0xc0140d02,
+ 0xd3229b12,
+ 0x71485e0b,
+ 0xc0009e85,
+ 0xd324931a,
+ 0x01ee5990,
+ 0xc0140d02,
+ 0x9e6c9b06,
+ 0xd0246041,
+ 0xc0005a93,
+ 0xb7809180,
+ 0xda085b0c,
+ 0xd010a88a,
+ 0x0d021590,
+ 0x9af7c014,
+ 0x9e689e85,
+ 0x7e6eb79f,
+ 0x7eeeb7bf,
+ 0x7f6eb7df,
+ 0x7feeb7ff,
+ 0x8c00c002,
+ 0xa61d9c22,
+ 0xb7e08440,
+ 0xda105b14,
+ 0xb7e0aa75,
+ 0x753a5c0c,
+ 0x5d8cb740,
+ 0xaa61f208,
+ 0xd00a0c82,
+ 0xb53f0c92,
+ 0x75047e74,
+ 0xaa5dd808,
+ 0xa8c1d848,
+ 0x7eecb59f,
+ 0xa8def008,
+ 0x0b029e8d,
+ 0x4003ba2d,
+ 0x7f74b53f,
+ 0x92a4c001,
+ 0x5e94b7c0,
+ 0xa94bf210,
+ 0xaa4df210,
+ 0xf3107740,
+ 0xc00088a1,
+ 0xf048921c,
+ 0x9e6ba9c6,
+ 0xc0140d02,
+ 0xda109ab6,
+ 0xf310a96b,
+ 0x6009882b,
+ 0xd41212d0,
+ 0xf208714c,
+ 0x7502aa69,
+ 0x7e6cb79f,
+ 0xd0090882,
+ 0x78480892,
+ 0x93a2c001,
+ 0x7d6ab77f,
+ 0x7f74b73f,
+ 0xf2509eab,
+ 0xba1ba949,
+ 0x05034002,
+ 0xfff4048b,
+ 0xc0019b71,
+ 0xb72092c0,
+ 0xb7405e94,
+ 0xb780405d,
+ 0x774041cd,
+ 0x88a1f310,
+ 0x915cc000,
+ 0xa96bda10,
+ 0x464db780,
+ 0x88abe310,
+ 0x12d86243,
+ 0xaa69f208,
+ 0xc0007502,
+ 0xda0890f2,
+ 0x7500aa69,
+ 0x9222c000,
+ 0x45cdb740,
+ 0x7d6ab77f,
+ 0x7f74b73f,
+ 0xba1b9eab,
+ 0x05034002,
+ 0xfff4048b,
+ 0xc0009b45,
+ 0xda109140,
+ 0x9eaba96b,
+ 0x89abe310,
+ 0xc0140d02,
+ 0x03019a60,
+ 0xc0120802,
+ 0xb79f7180,
+ 0xb7bf7d6e,
+ 0xb7df7dee,
+ 0xb7ff7e6e,
+ 0xc0027eee,
+ 0x9c228c40,
+ 0xb740a605,
+ 0xba126884,
+ 0xd0114003,
+ 0xd2261e22,
+ 0x9e2d5904,
+ 0xa8cdc830,
+ 0x4002ba13,
+ 0xd0119e5b,
+ 0x70886a16,
+ 0xc0019e4d,
+ 0x74c090fc,
+ 0x921cc000,
+ 0x5a07c180,
+ 0x01a8d020,
+ 0xc0140d02,
+ 0xf2089a32,
+ 0x6241aa25,
+ 0x5943d224,
+ 0x90e0c000,
+ 0x0e22d011,
+ 0xba129ea2,
+ 0xb7204003,
+ 0xd0915e8c,
+ 0xd2080a10,
+ 0x7282a882,
+ 0x485ab312,
+ 0x90dac000,
+ 0x4fb1b720,
+ 0x7282c812,
+ 0xb79f9e50,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa6059c22,
+ 0x5c14b720,
+ 0x404db720,
+ 0x5f94b700,
+ 0xd0517444,
+ 0xb3401e00,
+ 0x9e4d4442,
+ 0x43cab720,
+ 0xba129e5c,
+ 0xdffc4003,
+ 0xba1b7c7e,
+ 0xba124002,
+ 0xc0004002,
+ 0x04819102,
+ 0x9ba4fff4,
+ 0xba129e82,
+ 0xd2884003,
+ 0x7502aa25,
+ 0x91c4c000,
+ 0x5b8cb780,
+ 0xa881d208,
+ 0xc0007440,
+ 0xd01190e4,
+ 0x9ea20e24,
+ 0x4003ba12,
+ 0xaa29d288,
+ 0xc0007502,
+ 0xd01190e4,
+ 0x9ea20e22,
+ 0x4003ba12,
+ 0xaa39da48,
+ 0xd0119e52,
+ 0x708208c8,
+ 0x90fcc000,
+ 0xba129e8a,
+ 0xc0004003,
+ 0x9e519140,
+ 0x70481a10,
+ 0x4002ba24,
+ 0x4836b324,
+ 0xb7209ea2,
+ 0xb7805e8c,
+ 0x9e524f29,
+ 0x9ea21228,
+ 0x4003ba12,
+ 0x9e897684,
+ 0x90bcc000,
+ 0xc0000d0a,
+ 0x76bb90e0,
+ 0xb322857b,
+ 0x9dcb487a,
+ 0x4f59b740,
+ 0x80ade210,
+ 0x0e10d091,
+ 0xd2089e8a,
+ 0xba12aa01,
+ 0x9e514003,
+ 0xb3427048,
+ 0xc000445a,
+ 0xb78090fa,
+ 0x9ea14fc9,
+ 0x7282c812,
+ 0xb79f9e50,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa61d9c22,
+ 0x7efedffc,
+ 0x9204c000,
+ 0x5d8cb780,
+ 0x5f94b7c0,
+ 0xaa99da08,
+ 0xab11da08,
+ 0xaa86f208,
+ 0xab95da08,
+ 0x91c0c000,
+ 0x5d8cb780,
+ 0x5f14b7c0,
+ 0xaa8dda48,
+ 0xab05da48,
+ 0xaa9af208,
+ 0xab89da48,
+ 0x7540c008,
+ 0x91dcc000,
+ 0xfff49eab,
+ 0x9e819937,
+ 0x52a3c200,
+ 0x5343c200,
+ 0x53e3c200,
+ 0x56a7c200,
+ 0x6404b740,
+ 0x5904d2a6,
+ 0xc8309e2d,
+ 0xda10a8cd,
+ 0x6363aa51,
+ 0xb74063f3,
+ 0x0a04649c,
+ 0xa251da10,
+ 0x9d479e89,
+ 0xaa55da10,
+ 0xa925c210,
+ 0x856e66d3,
+ 0x8821f310,
+ 0xba2c9e91,
+ 0xc2004002,
+ 0xc00c56a7,
+ 0xc2007748,
+ 0xc200534b,
+ 0xc00153eb,
+ 0xc100927c,
+ 0x9e6b7580,
+ 0x0a7ec07e,
+ 0x4438b364,
+ 0x5114d226,
+ 0x5d87c280,
+ 0x81afe220,
+ 0xc0140d02,
+ 0xf2109928,
+ 0xd032a943,
+ 0xda10618e,
+ 0xe220a9d1,
+ 0x0d0281af,
+ 0x4002ba1b,
+ 0xa1c2f210,
+ 0x9919c014,
+ 0xf210755e,
+ 0xd04da045,
+ 0xd01a1a50,
+ 0xc0005213,
+ 0x854290da,
+ 0x8823f310,
+ 0xf2105210,
+ 0x8506a245,
+ 0xa15fda10,
+ 0x7e6eb79f,
+ 0x7eeeb7bf,
+ 0x7f6eb7df,
+ 0x7feeb7ff,
+ 0x8c00c002,
+ 0xa60d9c22,
+ 0xb7a076c0,
+ 0xc0015b14,
+ 0xb7a092a2,
+ 0xda485d8c,
+ 0x7500aa2d,
+ 0x90a2c000,
+ 0xfff40d86,
+ 0xda089b60,
+ 0x7500aa39,
+ 0x90a2c000,
+ 0xfff40d82,
+ 0xda489b58,
+ 0xda10a8a1,
+ 0x7048aa29,
+ 0x9382c000,
+ 0xab3dda08,
+ 0x99f1fff4,
+ 0x5c0cb780,
+ 0xa881f208,
+ 0xaaa1d210,
+ 0x5e94b720,
+ 0xb5a07442,
+ 0x9e834f49,
+ 0xba1e9eaa,
+ 0x09164002,
+ 0x9ab9fff4,
+ 0x4002ba00,
+ 0xa021d210,
+ 0xa821d210,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0xba1b9c22,
+ 0xd1a44002,
+ 0x9e5a5887,
+ 0x08869e48,
+ 0x1a045220,
+ 0xc0017088,
+ 0x9e4c907c,
+ 0x70080802,
+ 0x1a32d011,
+ 0xc00050b0,
+ 0x784491d6,
+ 0x91a4c000,
+ 0x0a02d011,
+ 0x4002ba04,
+ 0x70089e4c,
+ 0xffff5887,
+ 0x080292d8,
+ 0x10309c22,
+ 0x4002ba00,
+ 0xd1a69c22,
+ 0xe2105907,
+ 0xba008821,
+ 0x9c224002,
+ 0x1e12d011,
+ 0x70080802,
+ 0xc00050b0,
+ 0x9ea191f6,
+ 0xffff7844,
+ 0xd0119204,
+ 0xba040a02,
+ 0x9e4c4002,
+ 0x58877008,
+ 0x92d8ffff,
+ 0x9c220806,
+ 0xc030a605,
+ 0xb7a0ac7d,
+ 0x9d595b0c,
+ 0xa45dc038,
+ 0xac7dc030,
+ 0xa45dc038,
+ 0xac7dc030,
+ 0xa45dc038,
+ 0xc0020d82,
+ 0xfff40982,
+ 0xdffc9baa,
+ 0xda087c3e,
+ 0x0a02a9aa,
+ 0x0a42d002,
+ 0x610cb720,
+ 0xc00209ba,
+ 0x85060aac,
+ 0xa221d208,
+ 0x40b9b540,
+ 0x9b97fff4,
+ 0x5e94b720,
+ 0x0e14d131,
+ 0x0c94d171,
+ 0x0d1cd131,
+ 0xa001da08,
+ 0x0e1cd171,
+ 0xb5008502,
+ 0xd808402b,
+ 0xc001a143,
+ 0xda080886,
+ 0xb520a103,
+ 0xb79f48cd,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xb7209c22,
+ 0xd8105b14,
+ 0xf010a876,
+ 0xb500a96f,
+ 0xf01042d3,
+ 0xb740a96d,
+ 0xb7805c14,
+ 0xb76041cd,
+ 0xb540618c,
+ 0xd81041cd,
+ 0xf310a8c9,
+ 0xd0138821,
+ 0xf00a1d02,
+ 0xe210a964,
+ 0x624388a3,
+ 0xa96df050,
+ 0x8221f310,
+ 0xa265f008,
+ 0x45cdb540,
+ 0xaa71f010,
+ 0x424db580,
+ 0xa8f5f010,
+ 0x42cdb520,
+ 0xc0089c22,
+ 0x9e5874c0,
+ 0xc0009e52,
+ 0xd00290fc,
+ 0x1a1470c0,
+ 0x501351f3,
+ 0x7400c005,
+ 0x90fcc000,
+ 0x7000d002,
+ 0x50131a50,
+ 0xb7400128,
+ 0xb7806404,
+ 0xd1a6648c,
+ 0x9e2d5904,
+ 0xa8e5c040,
+ 0xaa4dc830,
+ 0x60097044,
+ 0x1214d01d,
+ 0x5013d01a,
+ 0x48bab340,
+ 0x50101222,
+ 0x00009c22,
+ 0x87c2c809,
+ 0x0c20b060,
+ 0x87c2c809,
+ 0x0a60b060,
+ 0x87c2c809,
+ 0x09c0b060,
+};
+
+unsigned long aui32H263CBR_SlaveMTXTOPAZFWData[] = {
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000044,
+ 0x00000090,
+ 0x00000000,
+ 0x00000001,
+ 0x00000000,
+ 0x809000b0,
+ 0x809002f8,
+ 0x82883f24,
+ 0x82883a2c,
+ 0x82883a3c,
+ 0x82883adc,
+ 0x82883948,
+ 0x82883990,
+ 0x8288399e,
+ 0x82883998,
+ 0x82883b0c,
+ 0x82883b36,
+ 0x82883b48,
+ 0x82883b80,
+ 0x82883b84,
+ 0x82883bb4,
+ 0x82883be4,
+ 0x82883c0c,
+ 0x82883c4c,
+ 0x82883c5c,
+ 0x82883c6c,
+ 0x82883a04,
+ 0x82883c74,
+ 0x82883c80,
+ 0x82883cb0,
+ 0x82883cb8,
+ 0x82883cec,
+ 0x828842ac,
+ 0x828841e6,
+ 0x82884268,
+ 0x82883eec,
+ 0x82883fec,
+ 0x8288402c,
+ 0x82884030,
+ 0x82884038,
+ 0x82884094,
+ 0x828840f0,
+ 0x828841a8,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x8090074c,
+ 0x8090074c,
+ 0x80901efc,
+ 0x8090197c,
+ 0x809038b8,
+ 0x809022e8,
+ 0x80901ca4,
+ 0x8090074c,
+ 0x8090074c,
+ 0x8090074c,
+ 0x8090074c,
+ 0x8090074c,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0xa0101100,
+ 0xa01001b0,
+ 0xa0101102,
+ 0xa01001b2,
+ 0xa0101104,
+ 0xa0100124,
+ 0xa0101106,
+ 0xa0100126,
+ 0xa0100134,
+ 0x00000000,
+ 0xa0101120,
+ 0xa0100136,
+ 0xa0101122,
+ 0xa0100144,
+ 0x80101160,
+ 0x80101162,
+ 0x80101180,
+ 0x80101182,
+ 0x80100140,
+ 0x80100142,
+ 0x80100150,
+ 0x80100152,
+ 0x80100154,
+ 0x80100146,
+ 0x803003a0,
+ 0x80100100,
+ 0x80105156,
+ 0xa0101164,
+ 0xa0100184,
+ 0x80101194,
+ 0x801001b4,
+ 0x80100146,
+ 0x00000000,
+ 0x00000003,
+ 0x00000002,
+ 0x00000002,
+ 0x00000001,
+ 0x00000001,
+ 0x00000001,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000005,
+ 0x000f9400,
+ 0x000f9401,
+ 0x000fd403,
+ 0x000fd40b,
+ 0x000fd41b,
+ 0x000ffc1b,
+ 0x000ffc1b,
+ 0x000ff81b,
+ 0x0000681b,
+ 0x0000681a,
+ 0x0000281a,
+ 0x00002810,
+ 0x00002800,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00010001,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00260019,
+ 0x003f0032,
+ 0x0058004b,
+ 0x00710064,
+ 0x008a007d,
+ 0x00a30096,
+ 0x00bc00af,
+ 0x00d500c8,
+ 0x00ee00e1,
+ 0x010700fa,
+ 0x01070107,
+ 0x01070107,
+ 0x01070107,
+ 0x01070107,
+ 0x01070107,
+ 0x00000107,
+ 0x00200040,
+ 0x001002ab,
+ 0x015500cd,
+ 0x00080249,
+ 0x00cd01c7,
+ 0x0155005d,
+ 0x0249013b,
+ 0x00040111,
+ 0x01c700f1,
+ 0x00cd01af,
+ 0x005d00c3,
+ 0x01550059,
+ 0x013b0029,
+ 0x0249025f,
+ 0x01110235,
+ 0x00020021,
+ 0x00f1001f,
+ 0x01c70075,
+ 0x01af006f,
+ 0x00cd0069,
+ 0x00c30019,
+ 0x005d017d,
+ 0x0059005b,
+ 0x015502b9,
+ 0x002900a7,
+ 0x013b0283,
+ 0x025f0135,
+ 0x02490095,
+ 0x0235023f,
+ 0x0111008b,
+ 0x00210219,
+ 0x00010041,
+ 0x0b060600,
+ 0x0c0b0a06,
+ 0x0a0b0c06,
+ 0x0c0d0c0c,
+ 0x0d0d0c06,
+ 0x0b0b0c0c,
+ 0x0e0d0a0d,
+ 0x0a0d0e0e,
+ 0x0c0d0a06,
+ 0x0c0e0c0e,
+ 0x0e0d0a0d,
+ 0x0f0c0c0c,
+ 0x0f0b0d0e,
+ 0x0d0f0e0e,
+ 0x0d0f0f0f,
+ 0x0c0b0f0e,
+ 0x00000006,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x1234baac,
+ 0x00000000,
+};
+
+unsigned long aui32H263CBR_SlaveMTXTOPAZFWTextReloc[] = {
+ 0
+};
+
+unsigned char aui8H263CBR_SlaveMTXTOPAZFWTextRelocType[] = {
+ 0
+};
+
+unsigned long aui32H263CBR_SlaveMTXTOPAZFWTextRelocFullAddr[] = {
+ 0
+};
+
+unsigned long aui32H263CBR_SlaveMTXTOPAZFWDataReloc[] = {
+ 0
+};
diff --git a/fw/H263SlaveFirmwareCBR_bin.h b/fw/H263SlaveFirmwareCBR_bin.h
new file mode 100644
index 0000000..35895e6
--- /dev/null
+++ b/fw/H263SlaveFirmwareCBR_bin.h
@@ -0,0 +1,44 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+
+// This file was automatically generated from ../release/H263SlaveFirmwareCBR.dnl using dnl2c.
+
+extern unsigned long aui32H263CBR_SlaveMTXTOPAZFWText[];
+extern unsigned long ui32H263CBR_SlaveMTXTOPAZFWTextSize;
+
+extern unsigned long aui32H263CBR_SlaveMTXTOPAZFWData[];
+extern unsigned long ui32H263CBR_SlaveMTXTOPAZFWDataSize;
+
+extern unsigned long aui32H263CBR_SlaveMTXTOPAZFWTextReloc[];
+extern unsigned char aui8H263CBR_SlaveMTXTOPAZFWTextRelocType[];
+extern unsigned long aui32H263CBR_SlaveMTXTOPAZFWTextRelocFullAddr[];
+
+extern unsigned long aui32H263CBR_SlaveMTXTOPAZFWDataReloc[];
+extern unsigned long ui32H263CBR_SlaveMTXTOPAZFWDataRelocSize;
+
+extern unsigned long ui32H263CBR_SlaveMTXTOPAZFWTextOrigin;
+extern unsigned long ui32H263CBR_SlaveMTXTOPAZFWDataOrigin;
+
diff --git a/fw/H263SlaveFirmwareVBR_bin.c b/fw/H263SlaveFirmwareVBR_bin.c
new file mode 100644
index 0000000..14fe405
--- /dev/null
+++ b/fw/H263SlaveFirmwareVBR_bin.c
@@ -0,0 +1,4291 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+
+// This file was automatically generated from ../release/H263SlaveFirmwareVBR.dnl using dnl2c.
+
+unsigned char *szH263SlaveFirmwareVBR_buildtag = "BUILD_TOPAZ_SC_1_00_00_0318";
+
+unsigned long ui32H263VBR_SlaveMTXTOPAZFWTextSize = 3510;
+unsigned long ui32H263VBR_SlaveMTXTOPAZFWDataSize = 722;
+unsigned long ui32H263VBR_SlaveMTXTOPAZFWTextRelocSize = 0;
+unsigned long ui32H263VBR_SlaveMTXTOPAZFWDataRelocSize = 0;
+
+unsigned long ui32H263VBR_SlaveMTXTOPAZFWTextOrigin = 0x80900000;
+unsigned long ui32H263VBR_SlaveMTXTOPAZFWDataOrigin = 0x82883700;
+
+unsigned long aui32H263VBR_SlaveMTXTOPAZFWText[] = {
+ 0x9040c001,
+ 0xc80993fe,
+ 0xc0000e42,
+ 0xc8290e00,
+ 0xc4248422,
+ 0xc8298420,
+ 0xc3708622,
+ 0x9e838600,
+ 0xc8099e43,
+ 0xc6d80d42,
+ 0xc8090d40,
+ 0xc6da0942,
+ 0xc8090900,
+ 0xc00a0e42,
+ 0xc8090e40,
+ 0xc00e87c2,
+ 0x9c1887d0,
+ 0x0c020802,
+ 0x09820d82,
+ 0x09020d02,
+ 0x08820c82,
+ 0x9320fffe,
+ 0xa401c838,
+ 0x0dc2c809,
+ 0x0d80c6d8,
+ 0x0e42c809,
+ 0x0b46b080,
+ 0x7e74b77f,
+ 0xa48d0882,
+ 0xffff9ff3,
+ 0x9d1393e0,
+ 0xf8398081,
+ 0x0707a205,
+ 0x06850307,
+ 0x03839e97,
+ 0x0fa0060f,
+ 0x018d058d,
+ 0x9c62008f,
+ 0x9340ffff,
+ 0x0ea0060b,
+ 0xffff9c62,
+ 0x058d93a0,
+ 0xb700018d,
+ 0xb780568c,
+ 0x9c015614,
+ 0x0687a605,
+ 0x0ea0060b,
+ 0xffff9c62,
+ 0xf9f893a0,
+ 0xf9f8aa9d,
+ 0x9c22aa1d,
+ 0xa6059c22,
+ 0x0e860a82,
+ 0xc0340d82,
+ 0xc0149b32,
+ 0x0d8a9967,
+ 0x9b2dc034,
+ 0x4108b784,
+ 0xc0007500,
+ 0xc0149082,
+ 0xc0149abe,
+ 0x740299db,
+ 0xb3549e6c,
+ 0x02894424,
+ 0x995dc014,
+ 0xffff7540,
+ 0xb79f90e2,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0x87029c22,
+ 0xb5438502,
+ 0xb5437818,
+ 0xb5437898,
+ 0xb5437918,
+ 0xb5437c18,
+ 0xb5437c98,
+ 0xb5447d18,
+ 0xb5444118,
+ 0xb5444198,
+ 0xb5444218,
+ 0xb5404818,
+ 0xb5404884,
+ 0xb5404904,
+ 0xb5404984,
+ 0xb5404a04,
+ 0xb5404a84,
+ 0xb5404c84,
+ 0xb5404d04,
+ 0xb5404d84,
+ 0xb5404202,
+ 0xb5404282,
+ 0xb5405084,
+ 0xb5407e84,
+ 0xb5404f04,
+ 0x9c224702,
+ 0x8420a605,
+ 0x9ba6fff4,
+ 0xc0340d8a,
+ 0xfff49ada,
+ 0xc0349bc6,
+ 0xc4209ae5,
+ 0x0a020cd2,
+ 0xc000b481,
+ 0x4220b105,
+ 0xe0310d8a,
+ 0xc0148d80,
+ 0xc8299a01,
+ 0xc4240922,
+ 0xb73f0900,
+ 0xd0717f6c,
+ 0xb5802a5e,
+ 0xc01e458c,
+ 0x85022a80,
+ 0xa8c2f008,
+ 0xc2807102,
+ 0xb5a05a95,
+ 0xb341468c,
+ 0x76404434,
+ 0x461cb540,
+ 0x450cb520,
+ 0x90c2c000,
+ 0x0e12d011,
+ 0xa241f008,
+ 0x570cb780,
+ 0x08c2c807,
+ 0x0880c570,
+ 0x0caac032,
+ 0x558cb580,
+ 0xc000b421,
+ 0x0cf40a2a,
+ 0xc000b481,
+ 0x09021a28,
+ 0x08bac002,
+ 0x4078b960,
+ 0x0a00c200,
+ 0x588bd224,
+ 0xc000b441,
+ 0x0a11ce00,
+ 0x9301ffff,
+ 0x1884e000,
+ 0x9244ffff,
+ 0x0a42c807,
+ 0x0a00c576,
+ 0x0caac032,
+ 0xc000b481,
+ 0x08820a02,
+ 0x08840902,
+ 0x4078b960,
+ 0x0a00c200,
+ 0x588bd224,
+ 0xc000b441,
+ 0x0a11ce00,
+ 0x9301ffff,
+ 0x745ac004,
+ 0x923cffff,
+ 0xc0340a02,
+ 0xb4810c9e,
+ 0xfff4c000,
+ 0x08029b2c,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x9c228c60,
+ 0xc0409e54,
+ 0x9e590c82,
+ 0xc000b421,
+ 0x0d02c040,
+ 0xc000b482,
+ 0xc00e9c22,
+ 0xc00e2d7c,
+ 0x5d3029e0,
+ 0xc0409e54,
+ 0x31b80c82,
+ 0xc000b461,
+ 0x0d02c040,
+ 0xc000b442,
+ 0xa60d9c22,
+ 0x07038420,
+ 0xc2800687,
+ 0x1c845c8d,
+ 0x5ca0d0a2,
+ 0xd0110287,
+ 0xc2000a5e,
+ 0x1a045a0d,
+ 0x5a30c200,
+ 0x30985cd0,
+ 0x04059e4c,
+ 0x0c8ac032,
+ 0xc8013098,
+ 0xb4213880,
+ 0x9ea9c000,
+ 0x0a02c801,
+ 0x0a00c002,
+ 0xc0306553,
+ 0xb4810c8a,
+ 0xc002c000,
+ 0x0c840882,
+ 0xc000b421,
+ 0xd0229e93,
+ 0x9e535f09,
+ 0x1d045d0d,
+ 0x9bb4fff4,
+ 0x5e91c280,
+ 0xc2801e84,
+ 0x9e6c5e84,
+ 0xc2801a84,
+ 0xc1815a90,
+ 0x0d8a3a80,
+ 0x0d020982,
+ 0xfff4314a,
+ 0xc0c09bae,
+ 0x09920d82,
+ 0x0d02c002,
+ 0x0902c002,
+ 0x9a04c034,
+ 0xc0340a0a,
+ 0xb4810c9e,
+ 0x1b04c000,
+ 0x850275bf,
+ 0x9202c000,
+ 0xb55f9dcf,
+ 0xc0347f7c,
+ 0xf23199d7,
+ 0xb75fa045,
+ 0x1b047f7c,
+ 0x851075bf,
+ 0x9284ffff,
+ 0x0a42c002,
+ 0x0c8ec030,
+ 0xc000b481,
+ 0x7e6eb79f,
+ 0x7eeeb7bf,
+ 0x7f6eb7df,
+ 0x8c00c002,
+ 0x9c229c22,
+ 0x8502c200,
+ 0x9c89c037,
+ 0x9c80c171,
+ 0x9c80c817,
+ 0xf8399c22,
+ 0x0d9aa205,
+ 0x99bdc034,
+ 0xf9f80d8a,
+ 0xc02daa1d,
+ 0xa6059300,
+ 0x0a42c801,
+ 0x0a00c010,
+ 0x2ebed3f2,
+ 0x0caac032,
+ 0xc000b481,
+ 0x0cf408aa,
+ 0xc000b421,
+ 0x578cb780,
+ 0x0c92c080,
+ 0xa881f208,
+ 0xc000b421,
+ 0x578cb780,
+ 0xf2080c88,
+ 0xb421a889,
+ 0xb780c000,
+ 0x0c84578c,
+ 0xa88df208,
+ 0xc000b421,
+ 0x1c980902,
+ 0xc000b441,
+ 0x578cb780,
+ 0xf2080c90,
+ 0xb421a885,
+ 0xb7a0c000,
+ 0x0dd2578c,
+ 0x9976c034,
+ 0xaa25f208,
+ 0xffff7008,
+ 0x0daa9344,
+ 0x0d060982,
+ 0x0902c121,
+ 0x9b29fff4,
+ 0x4794b760,
+ 0x0d02c021,
+ 0x09c20d04,
+ 0x9b16fff4,
+ 0x4794b760,
+ 0x0d0609c2,
+ 0x9b10fff4,
+ 0x09820daa,
+ 0xc1010d02,
+ 0xfff40902,
+ 0x0d929b14,
+ 0x9952c034,
+ 0xaa25f208,
+ 0xffff7008,
+ 0x77409344,
+ 0x90a2c000,
+ 0xc0340d8e,
+ 0x0d8a9954,
+ 0x9951c034,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xc470a60d,
+ 0x0a020c8e,
+ 0xc000b481,
+ 0x4220b101,
+ 0x578cb780,
+ 0xa085f208,
+ 0x0a021c8c,
+ 0xc000b481,
+ 0x4220b105,
+ 0x2b5ed1f1,
+ 0x578cb780,
+ 0xcff09ead,
+ 0xc2802e80,
+ 0xf2085ea1,
+ 0xc280a281,
+ 0x2a845a9d,
+ 0x0a020c84,
+ 0xc000b481,
+ 0x4220b101,
+ 0x470cb520,
+ 0xb4810c84,
+ 0xb101c000,
+ 0xb5204220,
+ 0xc070478c,
+ 0xb4810c8e,
+ 0x0882c000,
+ 0xb4211c8c,
+ 0x0c90c000,
+ 0xc000b481,
+ 0xb4211c8c,
+ 0x0c84c000,
+ 0xc000b481,
+ 0x6484b740,
+ 0x5908d326,
+ 0xe0309e2d,
+ 0x9ea4aa4d,
+ 0xb7809c62,
+ 0x7740578c,
+ 0x9ea98502,
+ 0xd0010d82,
+ 0xf2080db2,
+ 0x2596a10f,
+ 0x9b3ffff4,
+ 0xc0700a06,
+ 0xb4810c82,
+ 0x000dc000,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x7ebec01c,
+ 0x9244c000,
+ 0x5e08d1a2,
+ 0x0a00c090,
+ 0x5909d224,
+ 0xc4000882,
+ 0xb4223d00,
+ 0xb104c000,
+ 0x75004220,
+ 0x9364ffff,
+ 0x5c88c180,
+ 0x0c80c090,
+ 0xb4615c89,
+ 0x9c22c000,
+ 0x5c88c180,
+ 0x0c80c090,
+ 0xc4005c89,
+ 0x0a023c80,
+ 0xc000b481,
+ 0x4220b101,
+ 0xa0e1f008,
+ 0xc0905d88,
+ 0x5d890d80,
+ 0xc000b483,
+ 0x9e5b9c22,
+ 0x68b1d312,
+ 0xc1c00a02,
+ 0x5c8b0cc0,
+ 0x3c80c400,
+ 0xc000b481,
+ 0x4220b102,
+ 0x5b94b760,
+ 0x6931d312,
+ 0x9e518502,
+ 0x4070b960,
+ 0x08e0c1c0,
+ 0xaa65f031,
+ 0x5889d0a4,
+ 0xc000b481,
+ 0x85100890,
+ 0x9301ffff,
+ 0x8560c1c0,
+ 0x80ade210,
+ 0x5d94b760,
+ 0x3904c001,
+ 0x8521ce3e,
+ 0x4048b960,
+ 0xaa65f031,
+ 0x5889d0a4,
+ 0xc000b481,
+ 0x85100890,
+ 0x9301ffff,
+ 0x812de220,
+ 0x5b0cb780,
+ 0x3908c001,
+ 0x0d60c1c0,
+ 0xdac85d09,
+ 0xb422a885,
+ 0xd312c000,
+ 0xc1c068b1,
+ 0x5c8b0cc0,
+ 0xc000b441,
+ 0x84209c22,
+ 0xc4700882,
+ 0x0a020c92,
+ 0xc000b481,
+ 0x4220b102,
+ 0x02050185,
+ 0x2a04c001,
+ 0xc0007500,
+ 0xb7409362,
+ 0x09025b94,
+ 0x4070b960,
+ 0x08e0c1c0,
+ 0x5889d0a4,
+ 0x08a1ce3e,
+ 0x3c80c400,
+ 0xc000b441,
+ 0x4220b104,
+ 0xa245f031,
+ 0xffff0890,
+ 0x01079221,
+ 0x297acfff,
+ 0xc0010205,
+ 0x75002a08,
+ 0x91e2c001,
+ 0x5d94b740,
+ 0xb9600982,
+ 0xc1c04048,
+ 0xd0a408e0,
+ 0xce3e5889,
+ 0xc40008a1,
+ 0xb4613c80,
+ 0xb104c000,
+ 0xf0314220,
+ 0x0890a245,
+ 0x9221ffff,
+ 0x8d00e032,
+ 0x08e0c1c0,
+ 0x5889d0a4,
+ 0xc4000a02,
+ 0xb4813c80,
+ 0xb101c000,
+ 0xf0104220,
+ 0xb73fa0c1,
+ 0xb7807e72,
+ 0xdac85b0c,
+ 0xcfffa086,
+ 0xc0702976,
+ 0xb4410c92,
+ 0x8c20c000,
+ 0xb7409c22,
+ 0xd312510c,
+ 0x0a026cb1,
+ 0x0cc0c1c0,
+ 0xc4005c8b,
+ 0xb4813c80,
+ 0xb101c000,
+ 0xd3124220,
+ 0xc1ca6cb1,
+ 0x5c8b0cf0,
+ 0xc000b441,
+ 0x6d82c00c,
+ 0x38c0c001,
+ 0x0dc0c1c0,
+ 0xb4235d8b,
+ 0x9c22c000,
+ 0x6cb1d312,
+ 0xc1c00a02,
+ 0x5c8b0cc0,
+ 0x3c80c400,
+ 0xc000b481,
+ 0x4220b103,
+ 0x5c94b740,
+ 0x6d31d311,
+ 0x4058b960,
+ 0xc1c00085,
+ 0xf03108e0,
+ 0xd0a4aa45,
+ 0xb4815889,
+ 0x0890c000,
+ 0x9321ffff,
+ 0x3990c001,
+ 0x0940c1c0,
+ 0x588bd124,
+ 0xc000b461,
+ 0xf8399c22,
+ 0xf010a285,
+ 0x7500aa61,
+ 0x9164c000,
+ 0xa8c1d008,
+ 0x0a069e48,
+ 0x5200c200,
+ 0xd0083098,
+ 0xd011a0c1,
+ 0xd0100d38,
+ 0xf011a9f2,
+ 0xf0101a30,
+ 0x1984a943,
+ 0x93e2c000,
+ 0x8702cff1,
+ 0x8700cff0,
+ 0x087ec00f,
+ 0x087cc00e,
+ 0x0c1ac050,
+ 0xa8c5f029,
+ 0x2095d020,
+ 0x9e4d5ca1,
+ 0xc2002210,
+ 0x30d85a20,
+ 0x4006ba09,
+ 0xc000b420,
+ 0x1a30f011,
+ 0xffff1984,
+ 0xf21091e4,
+ 0xf010802f,
+ 0xf9f8a241,
+ 0x9c22aa9d,
+ 0x9e5da60d,
+ 0xf1245940,
+ 0xd3f15841,
+ 0xb3502d2e,
+ 0xc0024422,
+ 0xf00893e2,
+ 0xe000aa61,
+ 0xb4252a1c,
+ 0xd8084422,
+ 0x8522aa61,
+ 0x88a9e210,
+ 0x12182a1c,
+ 0xc00e9ea3,
+ 0xba1b0a7e,
+ 0xc200400b,
+ 0x21285207,
+ 0x9276c001,
+ 0xc1009e59,
+ 0x11035a20,
+ 0x5209c200,
+ 0xc2009ea2,
+ 0x9e8d58a1,
+ 0x0cb0d031,
+ 0xa8a2d208,
+ 0x2a7cc00e,
+ 0x5207c200,
+ 0x2a7cc00e,
+ 0xd208349a,
+ 0xf008a0a2,
+ 0x9ea1a963,
+ 0x2a2ed3f1,
+ 0x8128c201,
+ 0x8821f310,
+ 0xf0088502,
+ 0xd228a261,
+ 0x9eaba127,
+ 0x2d01cff0,
+ 0x59415940,
+ 0xc00e3522,
+ 0xfff42d7c,
+ 0xc0009bb1,
+ 0xd20892e0,
+ 0x9e5eaa21,
+ 0x50d8000b,
+ 0xd0293242,
+ 0xf008a205,
+ 0xd013a8e1,
+ 0xf210291e,
+ 0x75108029,
+ 0x00989e44,
+ 0xa0e1f008,
+ 0x4426b350,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x0685a60d,
+ 0x9e9e9e69,
+ 0x71820b02,
+ 0xc0000a86,
+ 0x9ea99208,
+ 0x9e6916d2,
+ 0x5a84c280,
+ 0x1a52d011,
+ 0xd0117102,
+ 0xd3f108e2,
+ 0xffff2b1e,
+ 0xd0119286,
+ 0x75100a62,
+ 0xc000028d,
+ 0x9e7391d4,
+ 0x09220d02,
+ 0x9b70fff4,
+ 0xd0111aa0,
+ 0x75100a52,
+ 0xffff9e83,
+ 0x9e7392d2,
+ 0xd0110d06,
+ 0xc00e0952,
+ 0xfff4297c,
+ 0x75909b61,
+ 0xc0009e83,
+ 0xd03192f4,
+ 0xd3f11a60,
+ 0x9e6c2b4e,
+ 0xc2009e73,
+ 0xd3f25299,
+ 0x0922295e,
+ 0x9b50fff4,
+ 0xc2009e83,
+ 0x9ea952b8,
+ 0x16d27590,
+ 0x91b2ffff,
+ 0xd3f29e73,
+ 0x010d2d5e,
+ 0x9b42fff4,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x0ca0f011,
+ 0xd09a9e99,
+ 0xd00d5a04,
+ 0xc0001a42,
+ 0x1203909a,
+ 0x9e4b1242,
+ 0xfffc9ea2,
+ 0xa60d9360,
+ 0x85028420,
+ 0xb55f9e55,
+ 0xb55f7f7c,
+ 0xf0107ffc,
+ 0xe011aa61,
+ 0x03078c8e,
+ 0x750a1a08,
+ 0x590cd226,
+ 0xe05a8540,
+ 0xc0038044,
+ 0xc00090a0,
+ 0xc0009180,
+ 0xc00092a0,
+ 0xc00193c0,
+ 0xc0019100,
+ 0xc0029200,
+ 0xe0119060,
+ 0x9e8b8d88,
+ 0x1954d072,
+ 0x508cb5a0,
+ 0x9bc8fff4,
+ 0x9200c002,
+ 0x5094b740,
+ 0xe0119ea9,
+ 0x9e8b8d88,
+ 0xfff41514,
+ 0xc0029bbd,
+ 0xe01190a0,
+ 0x9e8b8d88,
+ 0x295ed3f2,
+ 0xfff40916,
+ 0xb5a09aeb,
+ 0xc001508c,
+ 0xe0119320,
+ 0x9e8b8d88,
+ 0x295ed3f2,
+ 0xfff40916,
+ 0xc0019adf,
+ 0xd20891e0,
+ 0x9e8baa41,
+ 0x8c88f011,
+ 0xd0124a7d,
+ 0x0d062ace,
+ 0x018b0906,
+ 0x9ad0fff4,
+ 0x9e6a9e83,
+ 0x0d02018b,
+ 0x9acafff4,
+ 0x9340c000,
+ 0xaa41d208,
+ 0xf0119e8b,
+ 0x4a7d8c88,
+ 0x2aced012,
+ 0x09060d02,
+ 0xfff4018b,
+ 0x9e839abb,
+ 0x018b9e6a,
+ 0x0d7ec00e,
+ 0x9ab4fff4,
+ 0x9080c000,
+ 0x90e0c001,
+ 0x7e68b79f,
+ 0x0cfec00f,
+ 0x0cfcc00e,
+ 0xb59f9e4a,
+ 0xb73f7c68,
+ 0xcff17f6c,
+ 0xcff00a02,
+ 0xc0500a00,
+ 0x22180c9a,
+ 0x5a21c200,
+ 0x58a02094,
+ 0xba243242,
+ 0xb59f4006,
+ 0xb4817f6c,
+ 0xf208c000,
+ 0xb79fa943,
+ 0xf3107fec,
+ 0xf2088021,
+ 0xb79fa241,
+ 0xb7bf7e6e,
+ 0xb7df7eee,
+ 0xc0027f6e,
+ 0x9c228c00,
+ 0x8440a61d,
+ 0x9e9d8502,
+ 0xabe5f031,
+ 0xb55f0b02,
+ 0xb55f7878,
+ 0x718e7efc,
+ 0xc0019d3a,
+ 0xaa4191e8,
+ 0xc0007502,
+ 0xd0189392,
+ 0xe032aad1,
+ 0xe0518d08,
+ 0x9dcf8d00,
+ 0x85109eb1,
+ 0x7f7cb55f,
+ 0x0a9cc002,
+ 0x5a95c280,
+ 0xfff4018b,
+ 0xb75f9a1e,
+ 0xc2807f7c,
+ 0xc3015a88,
+ 0xc0008122,
+ 0xe03191a0,
+ 0x9dcf8d88,
+ 0x8510050b,
+ 0x7f7cb55f,
+ 0x9b23fff4,
+ 0x7f7cb75f,
+ 0x718e0b04,
+ 0x92a6fffe,
+ 0x7868b79f,
+ 0x0c9ec050,
+ 0xc000b481,
+ 0x0d16c050,
+ 0xc000b4e2,
+ 0x7eecb71f,
+ 0x7d6eb79f,
+ 0x7deeb7bf,
+ 0x7e6eb7df,
+ 0x7eeeb7ff,
+ 0x8c40c002,
+ 0xa6059c22,
+ 0x0c8ac450,
+ 0xb4810a02,
+ 0xb102c000,
+ 0xe00e4240,
+ 0xd1042d7c,
+ 0xc8015d10,
+ 0x0a400a02,
+ 0x0c8ac030,
+ 0xc000b481,
+ 0x0c8408c2,
+ 0xc000b421,
+ 0x608cb740,
+ 0xa947f048,
+ 0x802df210,
+ 0xa245f048,
+ 0x0c86c450,
+ 0xb4810a02,
+ 0xb101c000,
+ 0xc8014220,
+ 0xc0100a42,
+ 0xc0320a00,
+ 0xb4810caa,
+ 0x08aac000,
+ 0x0d1ec034,
+ 0xc000b422,
+ 0x0cf2c450,
+ 0xb4810a02,
+ 0xb101c000,
+ 0xd0534220,
+ 0xb7801910,
+ 0xf248590c,
+ 0xf210a891,
+ 0x0d8288a3,
+ 0x018b0d06,
+ 0x9884fff4,
+ 0x0ca2c080,
+ 0xc000b4a1,
+ 0x0d82c002,
+ 0x9954c014,
+ 0xffff700a,
+ 0x0daa9364,
+ 0x0d0a0982,
+ 0x0902c121,
+ 0x9b09ffd4,
+ 0x590cb780,
+ 0xa992f248,
+ 0x0d02c0a1,
+ 0x09c20d04,
+ 0x9af4ffd4,
+ 0x0d82c0c0,
+ 0x0d420992,
+ 0xc0140942,
+ 0xb79f9957,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa60d9c22,
+ 0x8400c010,
+ 0x590cb720,
+ 0x49adb780,
+ 0x75002a20,
+ 0x5b94b7c0,
+ 0xc0000902,
+ 0xb7849182,
+ 0x75004108,
+ 0x90e2c000,
+ 0xaa41d290,
+ 0xc0057500,
+ 0xb7209164,
+ 0xd01149ad,
+ 0x75002a18,
+ 0x3924d002,
+ 0x9124c000,
+ 0x2a14d011,
+ 0xd0027500,
+ 0xd0013922,
+ 0xc0503926,
+ 0xb4410c82,
+ 0x9d87c000,
+ 0x470cb740,
+ 0x09c20dc2,
+ 0x0d02c010,
+ 0x0c81cff0,
+ 0x9acbffd4,
+ 0x4108b784,
+ 0x75009d1b,
+ 0x0b01cff0,
+ 0x9282c000,
+ 0xaa41d290,
+ 0xc0007500,
+ 0xb79f91e2,
+ 0xf211606c,
+ 0xc0108d00,
+ 0x75002a00,
+ 0x0a03cff0,
+ 0x8001f310,
+ 0x4422b346,
+ 0x4068b79e,
+ 0x08c2c801,
+ 0x0880c010,
+ 0x0ceac032,
+ 0x606cb59f,
+ 0xc000b421,
+ 0x4108b784,
+ 0xc0017500,
+ 0xb7849282,
+ 0x75004208,
+ 0x91e2c001,
+ 0x518cb720,
+ 0x2a12d011,
+ 0xc0017500,
+ 0xb7a09102,
+ 0xb7a06194,
+ 0xf2105c8c,
+ 0x9eabaa21,
+ 0xb52028f9,
+ 0x9ea4518c,
+ 0xb7209c62,
+ 0xb7805f0c,
+ 0x75004129,
+ 0x92a4c000,
+ 0xa9a1f208,
+ 0xa83df210,
+ 0x9e840d82,
+ 0xf2509c62,
+ 0x9eaba8a5,
+ 0xa021f208,
+ 0x9e8c0982,
+ 0xda089c62,
+ 0xb582aa21,
+ 0xda10438a,
+ 0x9eb3a9cd,
+ 0x9aa6fff4,
+ 0x0a02c801,
+ 0x0a00c00a,
+ 0x0c8ac030,
+ 0xc000b481,
+ 0x08c2c008,
+ 0xb4210c84,
+ 0xc008c000,
+ 0x0c880a02,
+ 0xc000b481,
+ 0x0d82c0c0,
+ 0xc0080992,
+ 0xc0080d02,
+ 0xc0140902,
+ 0xc008989d,
+ 0xc0300a02,
+ 0xb4810c8e,
+ 0xb720c000,
+ 0x85065c0c,
+ 0x4039b540,
+ 0x9ad1fff4,
+ 0x6eeeb79f,
+ 0x6f6eb7bf,
+ 0x6feeb7df,
+ 0x8c60c010,
+ 0xf8399c22,
+ 0xc450a205,
+ 0x0a020c82,
+ 0xc000b481,
+ 0x4220b101,
+ 0x0a40c008,
+ 0x0c8ec030,
+ 0xc000b481,
+ 0x38c0c002,
+ 0x0c82c050,
+ 0xc000b421,
+ 0x0d82c0c0,
+ 0xc0080992,
+ 0xc0080d02,
+ 0xc0140902,
+ 0xc0089869,
+ 0xc0300a02,
+ 0xb4810c8e,
+ 0xf9f8c000,
+ 0xfff5aa1d,
+ 0xa60d9000,
+ 0x0eb0f011,
+ 0x9182c001,
+ 0x0f7ec01e,
+ 0x0b02c008,
+ 0x0e8ec030,
+ 0x7540c040,
+ 0xc0509e74,
+ 0xb3540c96,
+ 0x12d84426,
+ 0x5a14c200,
+ 0xc000b481,
+ 0x0d0ac030,
+ 0xc000b4c2,
+ 0xc000b4c5,
+ 0x0c96c030,
+ 0xc000b4c1,
+ 0x0d82c0c0,
+ 0xc0080992,
+ 0xc0080d02,
+ 0xc0140902,
+ 0xb4c59835,
+ 0x7540c000,
+ 0x93c4fffe,
+ 0x9a6ffff4,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0xc000b463,
+ 0xf8129c22,
+ 0x9c22a062,
+ 0x0d80c200,
+ 0x9e595d89,
+ 0xc4000982,
+ 0xb4633d80,
+ 0xb203c000,
+ 0x00074620,
+ 0xc1279c22,
+ 0x9c229c8f,
+ 0xb971080a,
+ 0xc01756f1,
+ 0xc0719c81,
+ 0xc0179c80,
+ 0xb9609c80,
+ 0x9c224000,
+ 0x9280ffff,
+ 0x01c69e5c,
+ 0x5889d1a4,
+ 0xc4000882,
+ 0xb4213c80,
+ 0xb104c000,
+ 0x22444220,
+ 0x71069e53,
+ 0x9324ffff,
+ 0xa60d9c22,
+ 0x8420c004,
+ 0x0ca2c829,
+ 0x0cf0c3e6,
+ 0xac3dc030,
+ 0x8d00e133,
+ 0xa45dc038,
+ 0xac3dc030,
+ 0xa45dc038,
+ 0xac3dc010,
+ 0xa45dc018,
+ 0xac25c010,
+ 0xa445c018,
+ 0x590cb7a0,
+ 0x85029ea9,
+ 0x661ab540,
+ 0x4d98b541,
+ 0x470cb740,
+ 0xc00a0dc2,
+ 0x09c20d42,
+ 0x9979ffd4,
+ 0x0a58d251,
+ 0xaa01da08,
+ 0x9ead7502,
+ 0x9084c000,
+ 0x450cb580,
+ 0xaa2df290,
+ 0x75002a08,
+ 0x90a4c000,
+ 0xb5408506,
+ 0xb780451c,
+ 0xf210608c,
+ 0x8502a8a1,
+ 0xa8a6f210,
+ 0x511cb540,
+ 0x481ab540,
+ 0xa103f208,
+ 0xa085f208,
+ 0xa929f210,
+ 0xa08af208,
+ 0xa92ef210,
+ 0xa8b2f210,
+ 0xa10df208,
+ 0xa8b1f250,
+ 0xa112f208,
+ 0xa096f208,
+ 0xa09af208,
+ 0x0cf2c050,
+ 0xf24808c0,
+ 0xb421a085,
+ 0x0a0ac000,
+ 0x0c92c036,
+ 0xc000b481,
+ 0x1c8c0896,
+ 0xc000b421,
+ 0x8c00f031,
+ 0x8d80e131,
+ 0xb7c09ea3,
+ 0xb55f5f0c,
+ 0x0d027ffc,
+ 0x4078b960,
+ 0xa103f208,
+ 0xd1229dba,
+ 0x9e2d5d0d,
+ 0xa8e5f029,
+ 0x2caed012,
+ 0xd1265c88,
+ 0x9e4a5908,
+ 0xaa4de038,
+ 0x28bc0d04,
+ 0x324250a8,
+ 0xffffa241,
+ 0xf01091c1,
+ 0xc036aa61,
+ 0xb4810c8e,
+ 0xb73fc000,
+ 0x1c847fec,
+ 0xc000b421,
+ 0x996bc014,
+ 0xaa4dd208,
+ 0xc0007500,
+ 0xf2909262,
+ 0xf011aa2d,
+ 0xc0002ac8,
+ 0xc80091a4,
+ 0x75002a00,
+ 0x90c4c000,
+ 0xa9c6f208,
+ 0x9ae3fff4,
+ 0xa2cdd208,
+ 0xa8adf290,
+ 0x2a14d011,
+ 0xc0007500,
+ 0xc8099104,
+ 0xc5d00a42,
+ 0xb5800a40,
+ 0xb780548c,
+ 0x7500468c,
+ 0x9162c000,
+ 0x5a31c080,
+ 0xc03e2a04,
+ 0xb4810cea,
+ 0xc000c000,
+ 0xb7809280,
+ 0x7502450c,
+ 0x915cc000,
+ 0x2880c100,
+ 0x0a0e7440,
+ 0x1a46d001,
+ 0x9060c000,
+ 0xc03e0a02,
+ 0xb4810cea,
+ 0xb79fc000,
+ 0xb7bf7a6e,
+ 0xb7df7aee,
+ 0xc0067b6e,
+ 0x9c228c00,
+ 0x558cb780,
+ 0x0892c0c8,
+ 0x40f8b960,
+ 0x0948d011,
+ 0xaa45f029,
+ 0x5889d0a4,
+ 0xc000b481,
+ 0xffff0890,
+ 0x9c229321,
+ 0xb720a605,
+ 0xb781468c,
+ 0x7440410c,
+ 0xb5810a04,
+ 0xc000410c,
+ 0xb7849364,
+ 0x75004108,
+ 0x92c2c000,
+ 0x450cb720,
+ 0x518cb780,
+ 0x3a407442,
+ 0x518cb580,
+ 0x919cc000,
+ 0x5f0cb780,
+ 0xa889d208,
+ 0xc0007440,
+ 0x850690a4,
+ 0x4818b544,
+ 0x0a42c801,
+ 0x0a00c010,
+ 0x0ceac032,
+ 0xc000b481,
+ 0x08c2c008,
+ 0x1ce0c002,
+ 0xc000b421,
+ 0x0a42c008,
+ 0x0d0ec030,
+ 0xc000b482,
+ 0x0c82c450,
+ 0x1a40c008,
+ 0xc000b481,
+ 0x4220b101,
+ 0x38c0c002,
+ 0x0c82c050,
+ 0xc000b421,
+ 0x0d82c0c0,
+ 0xc0080992,
+ 0xc0080d02,
+ 0xfff40902,
+ 0xc4509aa7,
+ 0x0a020c86,
+ 0xc000b481,
+ 0x4260b102,
+ 0x0a00c008,
+ 0x0d0ec030,
+ 0xc000b482,
+ 0xc0080c84,
+ 0xb4811a00,
+ 0xb101c000,
+ 0xc0804220,
+ 0xc8015a35,
+ 0x09400902,
+ 0x28fcc00e,
+ 0x5910d0a8,
+ 0x29ced071,
+ 0x0c8ac030,
+ 0xb4419dc8,
+ 0x0a42c000,
+ 0xb4810c84,
+ 0x7680c000,
+ 0x9182c000,
+ 0x608cb720,
+ 0x44bdb740,
+ 0x8a27f210,
+ 0x8021f310,
+ 0x44adb580,
+ 0x0c86c450,
+ 0xb4810a02,
+ 0xb102c000,
+ 0x0cec4260,
+ 0xc000b481,
+ 0x4260b102,
+ 0x8926c201,
+ 0xc03408ea,
+ 0xb4210c9e,
+ 0xb780c000,
+ 0xf248590c,
+ 0x8d40a891,
+ 0x88a3f210,
+ 0x0d060d82,
+ 0x5a0cc280,
+ 0x510cb580,
+ 0xffd4018b,
+ 0xc0809959,
+ 0xb4a10ca2,
+ 0xb780c000,
+ 0x0c88480c,
+ 0xc000b481,
+ 0x5b14b7a0,
+ 0x0d82c002,
+ 0x9a22fff4,
+ 0xffff700a,
+ 0xb7819364,
+ 0xf210410c,
+ 0xf250a8ad,
+ 0x6243a8a2,
+ 0x71029e49,
+ 0x90b8c000,
+ 0xb5448506,
+ 0xb7804618,
+ 0x7500468c,
+ 0x9242c000,
+ 0xffd40d82,
+ 0xb7849a10,
+ 0x75004208,
+ 0x90e2c000,
+ 0xffd40d82,
+ 0xc000995a,
+ 0x0d8290a0,
+ 0x9a22ffd4,
+ 0xc0800a02,
+ 0xb4810ca6,
+ 0xc002c000,
+ 0xfff40d92,
+ 0x740099f3,
+ 0x9364ffff,
+ 0x09820dea,
+ 0xc1210d0a,
+ 0xffb40902,
+ 0xb7809ba8,
+ 0xf248590c,
+ 0xc0a1a992,
+ 0x0d040d02,
+ 0xffb409c2,
+ 0xc0c09b93,
+ 0x09920d82,
+ 0x09420d42,
+ 0x99f6fff4,
+ 0xc03e0a02,
+ 0xb4810cea,
+ 0xb79fc000,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa60d9c22,
+ 0x590cb720,
+ 0x49b5b720,
+ 0x2e10d091,
+ 0x9e8e7500,
+ 0x9122c003,
+ 0x2e14d011,
+ 0xb5448506,
+ 0x0e824118,
+ 0xb5a17500,
+ 0xb5a44114,
+ 0xc0004610,
+ 0xb5449082,
+ 0xd1114198,
+ 0x75002e10,
+ 0x9082c000,
+ 0x4218b544,
+ 0x2e10d211,
+ 0xc0007500,
+ 0xb5449082,
+ 0xb7844298,
+ 0x75004208,
+ 0x618cb7c0,
+ 0x9244c001,
+ 0x0a42c809,
+ 0x0a40c5ea,
+ 0x08c2c809,
+ 0x08d0c5f2,
+ 0x0cc2c809,
+ 0x0cc0c63e,
+ 0x0942c809,
+ 0x0960c6a6,
+ 0x0d42c809,
+ 0x0d10c5de,
+ 0x09c2c809,
+ 0x09d0c5e2,
+ 0x0dc2c809,
+ 0x0db0c5de,
+ 0x0c42c809,
+ 0x0c60c6a8,
+ 0xa24df208,
+ 0xa0ddf208,
+ 0xa0c2f248,
+ 0xa145f248,
+ 0xa14af248,
+ 0xa1c5f208,
+ 0xa1c2f208,
+ 0xa04ef248,
+ 0xaa4df208,
+ 0x0ee0d151,
+ 0x9ea49eab,
+ 0xb7209c62,
+ 0xd2085b8c,
+ 0xb580aa21,
+ 0xb72041ab,
+ 0xb5a041b3,
+ 0xb5204392,
+ 0xb7c05094,
+ 0xf2d05b0c,
+ 0xf208aa49,
+ 0x7048a8d9,
+ 0x9142c000,
+ 0x618cb780,
+ 0xa88df248,
+ 0x0de0d152,
+ 0x9c629e8c,
+ 0x4108b784,
+ 0xc0047500,
+ 0xb7209062,
+ 0x76404694,
+ 0x93c4c003,
+ 0x438ab720,
+ 0xc0007440,
+ 0xda0890e2,
+ 0x7048aa55,
+ 0x9004c001,
+ 0x5f14b7a0,
+ 0x4188b784,
+ 0x618cb7a0,
+ 0xa9d6da08,
+ 0x4392b520,
+ 0x7500850a,
+ 0xa0aad210,
+ 0xa8a9f208,
+ 0x8d24e001,
+ 0x1d849d4f,
+ 0x9c629e8c,
+ 0xaa31f208,
+ 0x0d8a030b,
+ 0x9c629ea4,
+ 0x9180c000,
+ 0x618cb780,
+ 0xa891f208,
+ 0x5f14b7a0,
+ 0x03090d86,
+ 0x9c629e8c,
+ 0x438ab780,
+ 0x4208b724,
+ 0x5b94b720,
+ 0xb5800a04,
+ 0xd210438a,
+ 0x7440aa29,
+ 0x4849b580,
+ 0x9024c001,
+ 0x5c8cb7a0,
+ 0xa8c1f208,
+ 0x9e8c9eab,
+ 0xd2109c62,
+ 0x7500aa29,
+ 0x92a4c000,
+ 0xa9a1f208,
+ 0xa85df208,
+ 0x9e840d82,
+ 0xf2089c62,
+ 0xf248a021,
+ 0x9eaba845,
+ 0x9e840982,
+ 0xda089c62,
+ 0xb582aa21,
+ 0xb780438a,
+ 0x7502450c,
+ 0x90bcc000,
+ 0xffd40d86,
+ 0xd2109830,
+ 0x7500aa29,
+ 0x9122c000,
+ 0x578cb720,
+ 0x412db780,
+ 0xc0003a08,
+ 0xb72090e0,
+ 0xb780578c,
+ 0x2a75412d,
+ 0x412db580,
+ 0x4108b724,
+ 0x518cb780,
+ 0x3a047440,
+ 0x518cb580,
+ 0x91c4c000,
+ 0x0e60d151,
+ 0x5b8cb740,
+ 0xa882d208,
+ 0xa881d208,
+ 0x5094b520,
+ 0xa0cdd808,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x4003ba1b,
+ 0x9e5c9e59,
+ 0x4002ba03,
+ 0x4003ba12,
+ 0x9e537040,
+ 0x9136c000,
+ 0xc0007006,
+ 0xc8129158,
+ 0xc00072c4,
+ 0x9e519180,
+ 0xc0007002,
+ 0x9e8290bc,
+ 0x90a0c000,
+ 0x70c8cc10,
+ 0x9e509e9a,
+ 0xa61d9c22,
+ 0x0a468460,
+ 0x0c9ec034,
+ 0xc000b481,
+ 0x5394b760,
+ 0x987cfff4,
+ 0x490ab780,
+ 0x7d3edffc,
+ 0x2b06d012,
+ 0x9104c000,
+ 0x498ab780,
+ 0x7d3edffc,
+ 0x90a2c000,
+ 0xc0007782,
+ 0x0f8290c4,
+ 0xc0010b82,
+ 0xb7609000,
+ 0xfff45414,
+ 0xd0249863,
+ 0xc0005bc3,
+ 0xba395884,
+ 0xd3a24002,
+ 0x9e8f5c84,
+ 0x5a7fc380,
+ 0x5a79c200,
+ 0xc2000278,
+ 0xba3f5b8b,
+ 0xd3a24003,
+ 0x9e795e7f,
+ 0x5a79c200,
+ 0xd2240218,
+ 0xb7805b8b,
+ 0xdffc490a,
+ 0xc0017d3e,
+ 0xb7809164,
+ 0xba24498a,
+ 0xc000400a,
+ 0x09029124,
+ 0x7fecb55f,
+ 0x7f6cb55f,
+ 0x9180c00b,
+ 0x6784b740,
+ 0xb7209e7e,
+ 0x1a04668c,
+ 0x5908d226,
+ 0xb7609e2d,
+ 0x028f6704,
+ 0x7f6cb5bf,
+ 0x7fecb5df,
+ 0xa34ee030,
+ 0x5904d226,
+ 0xc8309d1d,
+ 0x9e3da3cd,
+ 0xa3cec830,
+ 0x9240c00a,
+ 0x498ab780,
+ 0x400aba24,
+ 0xc0020e82,
+ 0xb72092a4,
+ 0xb7c05994,
+ 0xb780668c,
+ 0x9d6d404b,
+ 0x5a11c200,
+ 0xd2261a04,
+ 0xc8305904,
+ 0xb780a3cd,
+ 0x010d404b,
+ 0x678cb7e0,
+ 0xc2000089,
+ 0x1a045a11,
+ 0x5908d226,
+ 0xa9c6d829,
+ 0x18845891,
+ 0xd0a69d53,
+ 0xb7a05904,
+ 0xe270670c,
+ 0x9d47a306,
+ 0xa9c1d808,
+ 0xba1b0d02,
+ 0xc8504003,
+ 0xba1ba3a6,
+ 0xfff44002,
+ 0xb7809b3f,
+ 0xba24498a,
+ 0xd2264002,
+ 0x0a045904,
+ 0xd2269d4b,
+ 0xba005904,
+ 0x9d534002,
+ 0xa9c6c850,
+ 0xa985ca50,
+ 0xb51f0d02,
+ 0xba1b7f6c,
+ 0xba1b4003,
+ 0xfff44002,
+ 0x9eba9b25,
+ 0xba009ded,
+ 0xb51f4002,
+ 0x010b7fec,
+ 0x9260c002,
+ 0x668cb7c0,
+ 0xd2269eba,
+ 0xb7a05904,
+ 0xd011670c,
+ 0x0a0418c2,
+ 0xd2269d4b,
+ 0xd0a85904,
+ 0x9d535904,
+ 0x5908d0a6,
+ 0x9ded9d44,
+ 0x679cb760,
+ 0xa3c1c830,
+ 0xa9c6c860,
+ 0xa985ca60,
+ 0xa34ee030,
+ 0xa3a6c850,
+ 0x4003ba1b,
+ 0x4002ba1b,
+ 0x9af6fff4,
+ 0x498ab780,
+ 0x4002ba24,
+ 0x5904d226,
+ 0x9d4b0a04,
+ 0x5904d226,
+ 0x4002ba00,
+ 0xc8509d53,
+ 0xca50a9c6,
+ 0x050fa985,
+ 0x7f6cb51f,
+ 0x4003ba1b,
+ 0x4002ba1b,
+ 0x9adcfff4,
+ 0xb7209ded,
+ 0xba006794,
+ 0xb51f4002,
+ 0x77827fec,
+ 0x0503010b,
+ 0x90e2c000,
+ 0x7a6ab5ff,
+ 0x7c72b5ff,
+ 0xb7800e86,
+ 0xba0c498a,
+ 0xd0a64002,
+ 0x9dc75908,
+ 0xaa29e020,
+ 0xc0007502,
+ 0xd0a693c2,
+ 0x9e3d5904,
+ 0x5d04d2a8,
+ 0x0ca3cffe,
+ 0xa8cdc830,
+ 0x8184c001,
+ 0x803bf210,
+ 0xa081da08,
+ 0xca209d53,
+ 0xd011a886,
+ 0x9d440e52,
+ 0xf0519ea5,
+ 0xba2d8c00,
+ 0xca104003,
+ 0xb780a086,
+ 0xba24498a,
+ 0xd0114002,
+ 0xd0a608c2,
+ 0x9dc75908,
+ 0xaa29e020,
+ 0xc0007502,
+ 0xd0a693c2,
+ 0x9e3d5904,
+ 0x5d04d2a8,
+ 0x87a3cffe,
+ 0xa8cdc830,
+ 0x8184c001,
+ 0x8037f010,
+ 0xda089e2d,
+ 0x9d47a081,
+ 0x0e52d011,
+ 0xa8a6c820,
+ 0xe0539ea5,
+ 0xba2d8d00,
+ 0xc8304003,
+ 0x7744a0ce,
+ 0x9142c001,
+ 0x90fac000,
+ 0xc0027742,
+ 0xc0029022,
+ 0x77469120,
+ 0x90c4c002,
+ 0x7a72b77f,
+ 0x7aeab77f,
+ 0x7b72b75f,
+ 0x4003ba1b,
+ 0x4002ba1b,
+ 0x4003ba12,
+ 0x9a5efff4,
+ 0x7c72b77f,
+ 0x7ceab77f,
+ 0x7d72b75f,
+ 0x4002ba28,
+ 0x4003ba1b,
+ 0x4002ba1b,
+ 0x4003ba12,
+ 0x9300c000,
+ 0x7a72b77f,
+ 0x7aeab77f,
+ 0xba1b0d02,
+ 0xba1b4003,
+ 0xfff44002,
+ 0xb77f9a43,
+ 0xb77f7c72,
+ 0xba287cea,
+ 0x0d024002,
+ 0x4003ba1b,
+ 0x4002ba1b,
+ 0x9a36fff4,
+ 0x4002ba30,
+ 0x91c0c000,
+ 0x7a6ab79f,
+ 0x7c6ab73f,
+ 0x4002ba2c,
+ 0x4002ba31,
+ 0x9080c000,
+ 0x0a820b02,
+ 0x550cb720,
+ 0x6604b740,
+ 0x5908d0a6,
+ 0xe0309e2d,
+ 0x2a04aa4d,
+ 0xc0087500,
+ 0x0a429262,
+ 0x0c9ec034,
+ 0xc000b481,
+ 0x5414b760,
+ 0x9ab4ffd4,
+ 0x5943d024,
+ 0x5884c000,
+ 0x4002ba11,
+ 0x5c84d122,
+ 0x5a7fc100,
+ 0x5a75c200,
+ 0xc2000228,
+ 0xc100590f,
+ 0x9e8a5a04,
+ 0x7f6cb73f,
+ 0x4003ba12,
+ 0x12429e52,
+ 0x4002ba04,
+ 0x5e7fd122,
+ 0xc41409f2,
+ 0xba097000,
+ 0xc4104002,
+ 0x74007046,
+ 0x5a75c200,
+ 0xd2240228,
+ 0x0003590f,
+ 0x9076c000,
+ 0xb79f1003,
+ 0xb73f7f6c,
+ 0xba007fec,
+ 0xd0204002,
+ 0xd12200c0,
+ 0x12425e04,
+ 0x4002ba04,
+ 0x5e7dd0a2,
+ 0x04949ea2,
+ 0x9e4a5c87,
+ 0x7000c414,
+ 0x4002ba09,
+ 0x7046c410,
+ 0x00037400,
+ 0x4002ba12,
+ 0x9076c000,
+ 0xb79f1003,
+ 0xba007fec,
+ 0xd0204002,
+ 0xc10000c0,
+ 0x124a5a04,
+ 0x4002ba04,
+ 0x5e7dd0a2,
+ 0xc4149d4d,
+ 0xba097000,
+ 0xc4104002,
+ 0x74007046,
+ 0xc3010003,
+ 0x5c870496,
+ 0x4003ba11,
+ 0x9076c000,
+ 0xba001003,
+ 0xd1224002,
+ 0xd0205e04,
+ 0x124c00d0,
+ 0x4002ba04,
+ 0x5e7dd0a2,
+ 0xc0019dcd,
+ 0x5c870496,
+ 0xc4149e4a,
+ 0xba097000,
+ 0xc4104002,
+ 0x74007046,
+ 0xba120003,
+ 0xc0004002,
+ 0x10039076,
+ 0x5888d124,
+ 0x4002ba00,
+ 0xc2000260,
+ 0x024258fd,
+ 0x2cf0cffe,
+ 0xb7409e49,
+ 0xc2005414,
+ 0xc2005a07,
+ 0x30425a48,
+ 0x0d00c200,
+ 0xb4025d0b,
+ 0xb720c000,
+ 0xc2005414,
+ 0x5c8b0c90,
+ 0xc000b401,
+ 0x5414b740,
+ 0x0d20c200,
+ 0xb4025d0b,
+ 0xb720c000,
+ 0xc2005414,
+ 0x5c8b0cb0,
+ 0xc000b401,
+ 0x5414b740,
+ 0x0d40c200,
+ 0xb4025d0b,
+ 0xb720c000,
+ 0xc2005414,
+ 0x5c8b0cd0,
+ 0xc000b401,
+ 0x5414b740,
+ 0x0d60c200,
+ 0xb4025d0b,
+ 0xb720c000,
+ 0xc2005414,
+ 0x5c8b0cf0,
+ 0xc000b401,
+ 0x5414b740,
+ 0x0d00c202,
+ 0xb4025d0b,
+ 0xb720c000,
+ 0xc2025414,
+ 0x5c8b0c90,
+ 0xc000b401,
+ 0x5414b740,
+ 0x0d20c202,
+ 0xb4025d0b,
+ 0xb720c000,
+ 0xc2025414,
+ 0x5c8b0cb0,
+ 0xc000b401,
+ 0x5414b740,
+ 0x0d40c202,
+ 0xb4025d0b,
+ 0xb720c000,
+ 0xc2025414,
+ 0x5c8b0cd0,
+ 0xc000b401,
+ 0x5414b740,
+ 0x0d60c202,
+ 0xb4025d0b,
+ 0xb720c000,
+ 0xc2025414,
+ 0x5c8b0cf0,
+ 0xc000b401,
+ 0x7ceeb79f,
+ 0x7d6eb7bf,
+ 0x7deeb7df,
+ 0x7e6eb7ff,
+ 0x8c60c002,
+ 0xb7209c22,
+ 0x9e5c4b8c,
+ 0x2a40c0ff,
+ 0x28c0c0ff,
+ 0x85027102,
+ 0x9062c000,
+ 0xb5408506,
+ 0xb5604c1c,
+ 0x9c224b94,
+ 0x9e5da605,
+ 0x2a50d051,
+ 0xc0007500,
+ 0xb78090e4,
+ 0x75004c0c,
+ 0x9142c000,
+ 0x0d82c0c0,
+ 0x09c2c012,
+ 0x09420d02,
+ 0x999affd4,
+ 0x4b8cb780,
+ 0x0cb6c034,
+ 0xc000b481,
+ 0x0d32c034,
+ 0xc000b4a2,
+ 0x4b0cb5a0,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0x8420a61d,
+ 0x4108b784,
+ 0x87027500,
+ 0x9122c000,
+ 0x5b8cb780,
+ 0xa881d288,
+ 0xc01a7440,
+ 0xb7c09184,
+ 0xf208588c,
+ 0x2a20aa59,
+ 0xb7a07500,
+ 0xc001590c,
+ 0xd1319162,
+ 0xda080a50,
+ 0xb780a881,
+ 0xb740670c,
+ 0x8506668c,
+ 0x551cb540,
+ 0xd0a65891,
+ 0xf3105904,
+ 0xe2108021,
+ 0xb5408125,
+ 0xb5404902,
+ 0xda0a4982,
+ 0xd80aa100,
+ 0xc430a140,
+ 0x0a020c8a,
+ 0xc000b481,
+ 0x4220b101,
+ 0x3880c180,
+ 0x0c8ac030,
+ 0xc000b421,
+ 0x590cb7a0,
+ 0xb7409eb1,
+ 0x0dc2470c,
+ 0xc002098e,
+ 0xb55f0d42,
+ 0xff947fe4,
+ 0xf2089aec,
+ 0xb7a0aa55,
+ 0xf2085814,
+ 0xda08a8c9,
+ 0xda08a8da,
+ 0xb580a95d,
+ 0xf208480c,
+ 0xf210aa45,
+ 0xd252a0ba,
+ 0xf21008d0,
+ 0xf250a0bd,
+ 0xf210a121,
+ 0xda08a235,
+ 0xd131a942,
+ 0xda080a50,
+ 0xb740a881,
+ 0xf248404b,
+ 0x9e53a947,
+ 0xa8d2da88,
+ 0xc08060b2,
+ 0xc2005a7f,
+ 0x00985a71,
+ 0x58945893,
+ 0x80a3e210,
+ 0x7e7edffc,
+ 0xc1005915,
+ 0xf2505b90,
+ 0xb75fa0bd,
+ 0xc0007fe4,
+ 0xe10091c2,
+ 0xc0005d40,
+ 0xda889144,
+ 0xb520aa55,
+ 0xb5404792,
+ 0xb5804882,
+ 0xf288468a,
+ 0xd132aa21,
+ 0xf25009d0,
+ 0xf250a235,
+ 0xda08a239,
+ 0xd810a941,
+ 0xf248aa61,
+ 0x6228a93b,
+ 0x8021f310,
+ 0x608cb760,
+ 0xa229f290,
+ 0xa8c1da08,
+ 0xaa61d810,
+ 0xa934f24a,
+ 0xa942da08,
+ 0xa973f008,
+ 0x60990884,
+ 0xe2205d20,
+ 0xe210812d,
+ 0xf29082a3,
+ 0xf208a0a5,
+ 0xda08a12e,
+ 0xf008a8c2,
+ 0x5c9ca977,
+ 0x80abe220,
+ 0xa0b2f208,
+ 0xa126f250,
+ 0xa0aef250,
+ 0xaa39da48,
+ 0xa229f250,
+ 0xa8bdda48,
+ 0xa0b1f250,
+ 0xaa29da48,
+ 0xa923f208,
+ 0xc2006228,
+ 0xf3105a10,
+ 0xf2108021,
+ 0xda48a221,
+ 0xf208a8ad,
+ 0x6122a927,
+ 0xf210590c,
+ 0xf2108025,
+ 0xf208a229,
+ 0xe210a92b,
+ 0xf2108125,
+ 0xda48a12d,
+ 0xf210aa29,
+ 0xda48a225,
+ 0xf210a8ad,
+ 0xd810a0b1,
+ 0xc004aa61,
+ 0xd1311d00,
+ 0xc20008d4,
+ 0xc2005a40,
+ 0xf2905a51,
+ 0xb780a235,
+ 0xc002402b,
+ 0xb5401c80,
+ 0xb5204f94,
+ 0xc2005014,
+ 0xc2005a40,
+ 0xf2905a51,
+ 0xc42ea239,
+ 0x0a020cf2,
+ 0xc000b481,
+ 0x4220b101,
+ 0x74402884,
+ 0x0b50d132,
+ 0x9102c000,
+ 0xaa41da10,
+ 0x753ec09c,
+ 0x9332c011,
+ 0x08c6c0c0,
+ 0x0ce2c050,
+ 0xc000b421,
+ 0xa959f208,
+ 0x0a50d131,
+ 0xa881da08,
+ 0x28a0d052,
+ 0x58917640,
+ 0x4f0cb520,
+ 0x9222c000,
+ 0xc0600a02,
+ 0xb4810cae,
+ 0xda08c000,
+ 0x7440a8c1,
+ 0x9302c000,
+ 0xb5408502,
+ 0xc0004f1c,
+ 0xc2009260,
+ 0x74802900,
+ 0x9122c000,
+ 0xc0600a0a,
+ 0xb4810cae,
+ 0xc000c000,
+ 0x0a0690e0,
+ 0x0caec060,
+ 0xc000b481,
+ 0xaa59f208,
+ 0x75002a04,
+ 0xb540850a,
+ 0xc000499c,
+ 0x850490a2,
+ 0x499cb540,
+ 0x4108b784,
+ 0xb7e07500,
+ 0xc0006194,
+ 0xb78492e2,
+ 0x75004208,
+ 0x9244c000,
+ 0x468cb780,
+ 0xc0007500,
+ 0xb78491a2,
+ 0x75004288,
+ 0x9104c000,
+ 0x5c94b760,
+ 0xaa61f210,
+ 0x9c629ea4,
+ 0xaa59f208,
+ 0x75002a20,
+ 0x90e2c000,
+ 0xaa41da08,
+ 0xc0007500,
+ 0xb7809244,
+ 0xb7205b8c,
+ 0xda08548c,
+ 0x9e8ca98e,
+ 0xb7849c62,
+ 0x75004108,
+ 0x90a2c000,
+ 0xb5448506,
+ 0xf2084b18,
+ 0x2a20aa59,
+ 0xc0017500,
+ 0xc0e09082,
+ 0xc03808ba,
+ 0xb4210cfa,
+ 0xf208c000,
+ 0xb720aa59,
+ 0x851e498c,
+ 0x2a041cf8,
+ 0x38d07500,
+ 0x498cb520,
+ 0x08e2c084,
+ 0x8d28e001,
+ 0x4d9cb540,
+ 0xc000b421,
+ 0x650cb780,
+ 0xc002088a,
+ 0xb5800c80,
+ 0xb421528c,
+ 0xffd4c000,
+ 0xb78098bf,
+ 0xc03e498c,
+ 0xb4810c82,
+ 0xb720c000,
+ 0xc0504d8c,
+ 0xb4210c82,
+ 0xda08c000,
+ 0xf290a941,
+ 0xda08a8b5,
+ 0x6123a946,
+ 0xda089e53,
+ 0x6097aa41,
+ 0x6014b720,
+ 0xb5428702,
+ 0x857f4482,
+ 0x459ab540,
+ 0xb540851a,
+ 0x0d86449a,
+ 0xb5801a04,
+ 0xb5404e0c,
+ 0x8526405b,
+ 0x415bb540,
+ 0x460ab540,
+ 0x18a05891,
+ 0x40cbb520,
+ 0x7fe4b55f,
+ 0x9831c034,
+ 0x7fe4b75f,
+ 0xa8c6da08,
+ 0xb5448506,
+ 0xb5444a18,
+ 0xb5444a80,
+ 0xb5445000,
+ 0xb5445080,
+ 0xf2904b80,
+ 0x9e49aa35,
+ 0x5894b720,
+ 0x4c00b544,
+ 0xb7206243,
+ 0x8502434d,
+ 0xc10158c8,
+ 0x9e892880,
+ 0xa9c2da10,
+ 0xb5400a82,
+ 0xb5404e9c,
+ 0x5dc0521c,
+ 0x2dc0c0ff,
+ 0x3db0ca01,
+ 0x5a11c200,
+ 0x450ab580,
+ 0xfff43596,
+ 0xc0c099a2,
+ 0xc0120d82,
+ 0x0d0209c2,
+ 0xffb40942,
+ 0x714e9b57,
+ 0xc0018546,
+ 0x9dcf9148,
+ 0x99a4fff4,
+ 0x0d82c0c0,
+ 0x09c2c012,
+ 0x09060d02,
+ 0x9b48ffb4,
+ 0x1a70d091,
+ 0x0a027148,
+ 0x0a42d00b,
+ 0xa9c2da10,
+ 0x5a28c200,
+ 0x5dc09ea1,
+ 0x2dc0c0ff,
+ 0x3db0c801,
+ 0xfff43596,
+ 0xd0519978,
+ 0xc2000a50,
+ 0xc2005a40,
+ 0x714e5ac1,
+ 0xfffe8506,
+ 0xf2509346,
+ 0x7500aa71,
+ 0x857fcfce,
+ 0x439cb541,
+ 0x9102c000,
+ 0xa9def208,
+ 0x450ab760,
+ 0x9c629ea4,
+ 0xc0140d82,
+ 0xb78498f7,
+ 0x75004a88,
+ 0xb5448502,
+ 0xc0024a18,
+ 0xb7a092a4,
+ 0x0f025c8c,
+ 0xb784068f,
+ 0x75004108,
+ 0x9082c002,
+ 0x4208b784,
+ 0xc0017500,
+ 0xb78493e2,
+ 0x75004b08,
+ 0x9182c000,
+ 0xa9a2f208,
+ 0x4b10b5c4,
+ 0xa869f250,
+ 0x9c629e84,
+ 0x430ab500,
+ 0x4c08b784,
+ 0xc0007500,
+ 0xf2109382,
+ 0x9eaba825,
+ 0x4c10b5c4,
+ 0x9c629e84,
+ 0xaa21f250,
+ 0x9c629ea4,
+ 0xa9a1f208,
+ 0xa83df210,
+ 0x9e840d86,
+ 0xf2509c62,
+ 0x9eabaa25,
+ 0xa021f208,
+ 0x9ea40986,
+ 0xb7849c62,
+ 0x75004c08,
+ 0x91e4c000,
+ 0xc0140d86,
+ 0xb78498ab,
+ 0x75004c08,
+ 0x9342ffff,
+ 0x90a0c000,
+ 0xc0140d86,
+ 0xb78498a1,
+ 0x75004a88,
+ 0x9262fffd,
+ 0x0d82c0c0,
+ 0x09c2c012,
+ 0x09060d02,
+ 0x9ab6ffb4,
+ 0x0a02c801,
+ 0x520cb580,
+ 0x0d82c0c0,
+ 0x09c2c012,
+ 0x09420d02,
+ 0x9aaaffb4,
+ 0x5214b760,
+ 0x98e9fff4,
+ 0xfff40d86,
+ 0xc0c098f7,
+ 0xc0120d82,
+ 0x0d0209c2,
+ 0xffb40906,
+ 0x85029a9b,
+ 0x0892c006,
+ 0x0c9ac430,
+ 0xb5400902,
+ 0xc006521c,
+ 0xb4418510,
+ 0xb104c000,
+ 0x2a404220,
+ 0x9d4f7500,
+ 0x4422b313,
+ 0xe0000087,
+ 0xffff1884,
+ 0xb7409284,
+ 0xc0064694,
+ 0xc4300892,
+ 0x09020c9a,
+ 0x8512c006,
+ 0xc000b441,
+ 0x4220b104,
+ 0x2a00c002,
+ 0x9d537500,
+ 0x4422b314,
+ 0xe0000089,
+ 0xffff1884,
+ 0x0a029264,
+ 0x0ceac03e,
+ 0x40e8b960,
+ 0xc000b481,
+ 0x93c1ffff,
+ 0xc0007680,
+ 0x0a029122,
+ 0x0ceac03e,
+ 0xc000b481,
+ 0x9180c000,
+ 0x450cb780,
+ 0x088a7504,
+ 0x0ceac03e,
+ 0x1894d00c,
+ 0xc000b421,
+ 0x0d82c0c0,
+ 0x0d0209e2,
+ 0xffb40942,
+ 0x08829a47,
+ 0x0cb6c034,
+ 0xc000b421,
+ 0xaa59f208,
+ 0x75002a20,
+ 0x91e2c000,
+ 0x0ceac450,
+ 0xb4810a02,
+ 0xb101c000,
+ 0xb7804220,
+ 0xc0025b8c,
+ 0xda0828fc,
+ 0xb79fa08d,
+ 0xb7bf7dee,
+ 0xb7df7e6e,
+ 0xb7ff7eee,
+ 0xc0027f6e,
+ 0x9c228c20,
+ 0xb780a60d,
+ 0xb720660c,
+ 0x0a82520c,
+ 0xa882f208,
+ 0x7efec01c,
+ 0xa081f208,
+ 0xf2080309,
+ 0xc000a086,
+ 0xc0c09182,
+ 0xc0120d82,
+ 0x0d0209c2,
+ 0xffb40906,
+ 0xc0009a0b,
+ 0xc4349240,
+ 0x0a020cb2,
+ 0xc000b481,
+ 0x4220b101,
+ 0x74402884,
+ 0x90e2c000,
+ 0x4a08b784,
+ 0xc00c7500,
+ 0xb78092c2,
+ 0x75024e8c,
+ 0x90c4c000,
+ 0xc0140d82,
+ 0x3ac09a92,
+ 0x5894b740,
+ 0x580cb740,
+ 0xa8c5d810,
+ 0xaa55f088,
+ 0x4592b720,
+ 0x9e966243,
+ 0xc2009e49,
+ 0x0a045a11,
+ 0x4002ba09,
+ 0x4002ba24,
+ 0x06857048,
+ 0x9138c000,
+ 0x498cb780,
+ 0xb5802a51,
+ 0xc003498c,
+ 0xf21091c0,
+ 0x2a04aa39,
+ 0xc0027500,
+ 0xb78093a2,
+ 0x7440498c,
+ 0x3942d011,
+ 0x498cb540,
+ 0x929cc002,
+ 0x4792b760,
+ 0xba249e5c,
+ 0xc002400a,
+ 0xc00291a2,
+ 0xb760911c,
+ 0xb740660a,
+ 0x9e996104,
+ 0xba099e2d,
+ 0xd0a24003,
+ 0x9e485e7f,
+ 0x5a6dc200,
+ 0xc2000208,
+ 0xd2265a17,
+ 0x0c065908,
+ 0x5a14c200,
+ 0x9e401208,
+ 0xa94ee038,
+ 0x4002ba24,
+ 0x9e545090,
+ 0xc0017902,
+ 0xb7819102,
+ 0x75004d88,
+ 0x9064c001,
+ 0x470ab780,
+ 0xba249e48,
+ 0x70084002,
+ 0x9378c000,
+ 0xc0007640,
+ 0xb78190e4,
+ 0x75024d08,
+ 0x92c2c000,
+ 0x1e32d011,
+ 0xb5402959,
+ 0x9e52498c,
+ 0xb56048fd,
+ 0xb501470a,
+ 0xb5804d90,
+ 0x20a2478a,
+ 0xc000a0c1,
+ 0x850290a0,
+ 0x4d98b541,
+ 0x458ab780,
+ 0x400aba24,
+ 0x90fcc000,
+ 0x660ab780,
+ 0xb5800a04,
+ 0xb720660a,
+ 0xc03e498c,
+ 0xb4210c82,
+ 0xb780c000,
+ 0x0a04458a,
+ 0x458ab580,
+ 0x9affc014,
+ 0x4108b784,
+ 0xc0027500,
+ 0xb7849222,
+ 0x75004208,
+ 0x9182c002,
+ 0x520cb780,
+ 0x75002a40,
+ 0x90e4c000,
+ 0x5008b784,
+ 0xc002751a,
+ 0xb7809024,
+ 0xb7225a0c,
+ 0xda084492,
+ 0x9e4ca881,
+ 0xc0007102,
+ 0xb7809284,
+ 0x8502430a,
+ 0x449ab542,
+ 0x440ab580,
+ 0x4412b760,
+ 0x548cb780,
+ 0xb5448506,
+ 0xb5444b18,
+ 0x9ea44c18,
+ 0xf2109c62,
+ 0x2a10aa39,
+ 0xc0007500,
+ 0xb78493e2,
+ 0x75004c08,
+ 0x90e4c000,
+ 0x448ab782,
+ 0xc0007502,
+ 0xb78492a4,
+ 0x75004b08,
+ 0xd0010902,
+ 0xc4380922,
+ 0x0a020c82,
+ 0xc000b481,
+ 0x4220b101,
+ 0x309428f1,
+ 0x0c82c038,
+ 0xc000b421,
+ 0x98a7c014,
+ 0x0d82c0c0,
+ 0x0d0209e2,
+ 0x097ec01e,
+ 0x98faffb4,
+ 0x0d82c0c0,
+ 0xc1000992,
+ 0xc1000d02,
+ 0xffb40902,
+ 0xc43098f1,
+ 0x0a020c8e,
+ 0xc000b481,
+ 0x4220b104,
+ 0x3a00c100,
+ 0x0c8ec030,
+ 0xc000b481,
+ 0xaa39f210,
+ 0x75002a20,
+ 0x9342c001,
+ 0x550cb780,
+ 0x5908d226,
+ 0xe0609d43,
+ 0xd011a885,
+ 0x75002a12,
+ 0x90e4c000,
+ 0x2a14d011,
+ 0xc0007500,
+ 0xffd49082,
+ 0xb7209828,
+ 0xd0a6550c,
+ 0x9d475908,
+ 0xaa25e060,
+ 0x75002a04,
+ 0x9382c000,
+ 0x5994b720,
+ 0x498ab720,
+ 0x404bb780,
+ 0x9e890884,
+ 0x4003ba09,
+ 0xc2009e4a,
+ 0x70885a11,
+ 0x498ab520,
+ 0x9158c000,
+ 0x490ab780,
+ 0xb5408502,
+ 0x0a04499a,
+ 0x490ab580,
+ 0x0c8ac430,
+ 0xb4810a02,
+ 0xb104c000,
+ 0xc1804220,
+ 0xc0303a00,
+ 0xb4810c8a,
+ 0xb780c000,
+ 0xf2904e8c,
+ 0x0a04a955,
+ 0xb5807104,
+ 0xc0004e8c,
+ 0x850290a4,
+ 0x4e9cb540,
+ 0xa8a5da10,
+ 0x4592b720,
+ 0x60a35891,
+ 0x4003ba09,
+ 0x3a849e4c,
+ 0x71020884,
+ 0xcffe020b,
+ 0xb3542a3d,
+ 0x02894426,
+ 0x28d0d051,
+ 0xc0007440,
+ 0xc0c09142,
+ 0xc0120d82,
+ 0x0d0209c2,
+ 0xffb40942,
+ 0xb780986d,
+ 0x7500520c,
+ 0x90a2c000,
+ 0xffd49eab,
+ 0xb79f9ab9,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0xf8399c22,
+ 0xb724a205,
+ 0xb7405008,
+ 0xb7805284,
+ 0xd0a6448a,
+ 0x9e2d5908,
+ 0x590cb740,
+ 0xa94ee030,
+ 0x659cb760,
+ 0x5098b744,
+ 0x5000b744,
+ 0xb5801a04,
+ 0xc030448a,
+ 0xe200a8cd,
+ 0xd2515a40,
+ 0xda080a20,
+ 0xe210a882,
+ 0xb54082a3,
+ 0x5c955214,
+ 0xb5245c90,
+ 0xc0015008,
+ 0xb78492c4,
+ 0x0a045088,
+ 0x28ced3f1,
+ 0xb5847444,
+ 0xc0015088,
+ 0xb7619034,
+ 0x85064394,
+ 0x4a98b544,
+ 0x764024a6,
+ 0x4c18b544,
+ 0x5214b520,
+ 0x9202c000,
+ 0x08a0d131,
+ 0x402bb780,
+ 0x3c80c801,
+ 0xc2009e48,
+ 0xc0ff5a40,
+ 0x32082a40,
+ 0x520cb580,
+ 0xf9f80806,
+ 0x9c22aa1d,
+ 0x5088b724,
+ 0x6004b740,
+ 0x5904d0a6,
+ 0xc8309e2d,
+ 0xb580aa4d,
+ 0xd132448a,
+ 0xb72009a0,
+ 0xd810458a,
+ 0xba19aa61,
+ 0xc2004002,
+ 0x1a045a11,
+ 0xc00070c8,
+ 0xb7819104,
+ 0xc040438c,
+ 0xb5813a00,
+ 0xb720438c,
+ 0xd0114f0c,
+ 0x70c80a18,
+ 0x9104c000,
+ 0x438cb781,
+ 0x3a00c010,
+ 0x438cb581,
+ 0x0a1cd011,
+ 0xc00070c8,
+ 0xb7819104,
+ 0xc020438c,
+ 0xb5813a00,
+ 0xb780438c,
+ 0xf288580c,
+ 0xf288a916,
+ 0x9e50a919,
+ 0x460ab720,
+ 0x1a24d011,
+ 0xba096241,
+ 0x00b24002,
+ 0xc0007048,
+ 0xb7819106,
+ 0xcfff438c,
+ 0xb5812a7a,
+ 0xd011438c,
+ 0x9e521a22,
+ 0x70486245,
+ 0x9106c000,
+ 0x438cb781,
+ 0x2a7ec7fe,
+ 0x438cb581,
+ 0x451ab740,
+ 0x5e11d0a2,
+ 0x8821f310,
+ 0xc00070c8,
+ 0xb7819104,
+ 0xcfff438c,
+ 0xb5812a4e,
+ 0xb740438c,
+ 0xb721588c,
+ 0xd808438c,
+ 0x9e50aa45,
+ 0xc2009e8a,
+ 0x1a045a11,
+ 0xb7206209,
+ 0x0a045214,
+ 0x4002ba24,
+ 0x249470c8,
+ 0x5214b520,
+ 0x9118c000,
+ 0x3c80c801,
+ 0x5214b520,
+ 0x91c0c000,
+ 0xaa61d810,
+ 0x3c80c801,
+ 0xc2009e48,
+ 0xc0ff5a40,
+ 0x32082a40,
+ 0x520cb580,
+ 0xaa59f008,
+ 0x2a00c040,
+ 0xc0007500,
+ 0xb7809102,
+ 0xc101520c,
+ 0xb5803a00,
+ 0xb760520c,
+ 0xffd45214,
+ 0x080299a8,
+ 0xaa1df9f8,
+ 0xb7009c22,
+ 0xd2515914,
+ 0xb7600e04,
+ 0xda08580c,
+ 0xc00ea881,
+ 0xc0342dfc,
+ 0xf0080cba,
+ 0x5895a961,
+ 0x5810c080,
+ 0xb4419e82,
+ 0xb780c000,
+ 0xf008454a,
+ 0xc200a963,
+ 0xf3105a10,
+ 0xf0088021,
+ 0x0c84a8e9,
+ 0xa261f008,
+ 0xc000b421,
+ 0x46cab780,
+ 0xa96bf008,
+ 0x8021f310,
+ 0xa8edf008,
+ 0xf0080c84,
+ 0xb421a269,
+ 0xb780c000,
+ 0xf00846ca,
+ 0xf310a96f,
+ 0xf0088021,
+ 0x0c8ca8f5,
+ 0xa26df008,
+ 0xc000b421,
+ 0xa97df008,
+ 0xb4410c84,
+ 0xb780c000,
+ 0x0a084e0c,
+ 0x5890d224,
+ 0xc0007244,
+ 0xd131931c,
+ 0xda080e04,
+ 0x9e4ca903,
+ 0x88a1e210,
+ 0xc0007102,
+ 0xf00891d6,
+ 0xf008aa75,
+ 0xc010a8fd,
+ 0xf0080a00,
+ 0xc008a275,
+ 0xf0080880,
+ 0xb780a0fd,
+ 0xc0344f8c,
+ 0xb4810cda,
+ 0xb720c000,
+ 0x0c84500c,
+ 0xc000b421,
+ 0x4f8cb780,
+ 0x0a400ce4,
+ 0xc000b481,
+ 0x500cb720,
+ 0x08c00c84,
+ 0xc000b421,
+ 0x4f8cb780,
+ 0x500cb720,
+ 0xc0101ce4,
+ 0xb5800a00,
+ 0xf0484f8c,
+ 0xc008aa65,
+ 0xb5200880,
+ 0xb481500c,
+ 0xf048c000,
+ 0x0c84a8ed,
+ 0xc000b421,
+ 0xaa65f048,
+ 0xa8edf048,
+ 0xc0100c84,
+ 0xf0480a00,
+ 0xf048a265,
+ 0xc008aa75,
+ 0xf0480880,
+ 0xb481a0ed,
+ 0xf088c000,
+ 0x0c88a965,
+ 0xc000b441,
+ 0x0c80d131,
+ 0x402bb780,
+ 0xa967f088,
+ 0x2a40cffe,
+ 0x8021f310,
+ 0xa969f088,
+ 0xf0880c88,
+ 0xb441a265,
+ 0xd131c000,
+ 0xb7800c80,
+ 0xf088402b,
+ 0xcffea96b,
+ 0xf3102a40,
+ 0xf0488021,
+ 0x1c8ca97d,
+ 0xa269f088,
+ 0xc000b441,
+ 0x0c80d131,
+ 0x402bb780,
+ 0xa97ff048,
+ 0xc20076c0,
+ 0xc2005a11,
+ 0xf3105a14,
+ 0xf0488021,
+ 0xc001a27d,
+ 0xb7209182,
+ 0x1ca8454a,
+ 0xc000b421,
+ 0x46cab780,
+ 0xc2000c84,
+ 0xc2005a0d,
+ 0x324258c0,
+ 0xc000b481,
+ 0x0d04d131,
+ 0xaa41d808,
+ 0xc2000c8c,
+ 0xcffe588c,
+ 0xc20028fc,
+ 0x30985a50,
+ 0xc000b421,
+ 0x0d04d251,
+ 0xaa41d808,
+ 0xc2000ca0,
+ 0x1a105a11,
+ 0xc0042a3c,
+ 0xb4813a00,
+ 0xb780c000,
+ 0x0a044e0c,
+ 0x4e0cb580,
+ 0xa68d9c22,
+ 0x0c92c43e,
+ 0xb4810a02,
+ 0xb103c000,
+ 0xb7804220,
+ 0xda085e8c,
+ 0xda08a885,
+ 0xda08a909,
+ 0xda08a189,
+ 0xda08a081,
+ 0x0cd0a105,
+ 0xb4810a02,
+ 0xb103c000,
+ 0xb7204220,
+ 0xb7805e0c,
+ 0xb7a0520c,
+ 0xb7205e8c,
+ 0xb74040b3,
+ 0xb560412b,
+ 0x2a40412b,
+ 0x03037500,
+ 0x4033b520,
+ 0x40abb540,
+ 0x90e2c000,
+ 0x5008b784,
+ 0xc000750a,
+ 0xb78490f2,
+ 0x751a5008,
+ 0x9204c00d,
+ 0x448ab782,
+ 0xb5820a04,
+ 0xc450448a,
+ 0x0a020ca6,
+ 0xc000b481,
+ 0x4220b103,
+ 0xc0310087,
+ 0x02072880,
+ 0x2a7cc00f,
+ 0x59e1d0a4,
+ 0x59c1d228,
+ 0xcffe0007,
+ 0x0c88287c,
+ 0xb4810a02,
+ 0xb103c000,
+ 0xc1804220,
+ 0x9e9a5bc1,
+ 0x2d7ccffe,
+ 0xb4810cbc,
+ 0xb103c000,
+ 0x00874220,
+ 0x588cb740,
+ 0x438ab782,
+ 0x2880c0fc,
+ 0x283ed0f2,
+ 0x5b19d0a4,
+ 0xd8889e41,
+ 0x9e95a8d2,
+ 0x4392b502,
+ 0x7e7edffc,
+ 0xba1c1218,
+ 0xc0024002,
+ 0x76c291c2,
+ 0x9384c000,
+ 0x480ab780,
+ 0x6104b740,
+ 0x4002ba24,
+ 0x58ffc200,
+ 0x00c258ed,
+ 0xd0a65897,
+ 0x9e2d5908,
+ 0x12425894,
+ 0xe0389e59,
+ 0x5230a8ce,
+ 0x9ea74a7d,
+ 0xa0c2249e,
+ 0x9180c001,
+ 0x468ab780,
+ 0xa8a1da08,
+ 0x4002ba24,
+ 0xc0017048,
+ 0xb780907c,
+ 0xb720488a,
+ 0xb7404812,
+ 0x0a046104,
+ 0x488ab580,
+ 0x4003ba09,
+ 0x5e7fd0a2,
+ 0x9e2d9e49,
+ 0x5a6dc200,
+ 0xc2000218,
+ 0xd2265a17,
+ 0xc2005908,
+ 0x9ea75a14,
+ 0xa94de038,
+ 0x9e4c149e,
+ 0x50b00886,
+ 0xa1413122,
+ 0x480ab780,
+ 0xb5800a04,
+ 0xb784480a,
+ 0x75004188,
+ 0x4208b784,
+ 0x90c4c000,
+ 0x7d3ec01c,
+ 0x9184c002,
+ 0x7d3ec01c,
+ 0x03f0d011,
+ 0x0527d021,
+ 0xf21076c2,
+ 0x0882aa39,
+ 0x0892d001,
+ 0x79022a04,
+ 0x5c8cb740,
+ 0x90e2c000,
+ 0xaa49d808,
+ 0xd8080a04,
+ 0xf008a249,
+ 0xf00aa94b,
+ 0xf310a94c,
+ 0xe0108027,
+ 0xf00882a5,
+ 0xf008a249,
+ 0xb784a0cd,
+ 0x75004688,
+ 0xd0020882,
+ 0x76c20892,
+ 0xd0020a02,
+ 0x78480a42,
+ 0x90c2c000,
+ 0x8542c07c,
+ 0xa123da08,
+ 0xf00876c2,
+ 0xc000a953,
+ 0xda0890c4,
+ 0xc000aa41,
+ 0xda089080,
+ 0xe310aa21,
+ 0xd80880a1,
+ 0xf008aa4d,
+ 0x0a04a0d1,
+ 0xa24dd808,
+ 0x91c0c006,
+ 0x5c8cb720,
+ 0xf2109d2e,
+ 0xc301aa39,
+ 0xc2018136,
+ 0xb7408120,
+ 0x2a044525,
+ 0xf0107500,
+ 0xf3108027,
+ 0x01038221,
+ 0x452db580,
+ 0x90a2c001,
+ 0xc00076c2,
+ 0xda0890c4,
+ 0xc000aa41,
+ 0xda089080,
+ 0xd808aa21,
+ 0x76c6a25d,
+ 0x9082c001,
+ 0xc00076c0,
+ 0x74c091a4,
+ 0xa953d808,
+ 0x8d2ae002,
+ 0x802df210,
+ 0xa251d808,
+ 0x92c0c000,
+ 0xd84874c0,
+ 0xe002a947,
+ 0xc0008d26,
+ 0xda089160,
+ 0x74c0aa41,
+ 0xa947d848,
+ 0xa25dd808,
+ 0x8d2ae002,
+ 0x802df210,
+ 0xa245d848,
+ 0x4308b784,
+ 0xc0007500,
+ 0xb7809302,
+ 0x9e41440a,
+ 0xc0007048,
+ 0x85029244,
+ 0x4318b544,
+ 0x0c82c43a,
+ 0xb4810a02,
+ 0xb103c000,
+ 0xcfef4220,
+ 0xc03a29fe,
+ 0xb4610c82,
+ 0xb780c000,
+ 0x9e41440a,
+ 0x08827048,
+ 0x0892d002,
+ 0x0a0276c6,
+ 0x0a42d001,
+ 0xc0007848,
+ 0x85069242,
+ 0x4318b544,
+ 0x0c82c43a,
+ 0xb4810a02,
+ 0xb103c000,
+ 0xc0114220,
+ 0xc03a3980,
+ 0xb4610c82,
+ 0x7780c000,
+ 0x91a2c001,
+ 0xc00076c0,
+ 0xda0892e4,
+ 0xf008aa21,
+ 0xd808a947,
+ 0xf310a8d5,
+ 0xd8088021,
+ 0xf008a8da,
+ 0x9e44a245,
+ 0xd8080c84,
+ 0x00c2a0da,
+ 0xa0d5d808,
+ 0x92a0c000,
+ 0xaa41da08,
+ 0xa95bf008,
+ 0xa8c9d848,
+ 0x8021f310,
+ 0xa8ced848,
+ 0xa259f008,
+ 0x0c849e44,
+ 0xa0ced848,
+ 0xd84800c2,
+ 0xd808a0c9,
+ 0xf008aa5d,
+ 0xf04aa95f,
+ 0xf048a940,
+ 0xf310a9c7,
+ 0xf0488021,
+ 0xf008a94f,
+ 0xf210a25d,
+ 0xd8488221,
+ 0xf048a8c2,
+ 0xf010a241,
+ 0xe2108037,
+ 0x0c8480a9,
+ 0xa0c2d848,
+ 0xa245f048,
+ 0xa0cdf048,
+ 0x7eeeb7bf,
+ 0x7f6eb7df,
+ 0x7feeb7ff,
+ 0x9c228c60,
+ 0x5b8cb780,
+ 0x08c0d0f1,
+ 0x4031b720,
+ 0x9ea27642,
+ 0x9382c000,
+ 0x0ccac43c,
+ 0xb4810a02,
+ 0xb101c000,
+ 0xd0114220,
+ 0xd3f11914,
+ 0x08882e3e,
+ 0x4002ba09,
+ 0x4002ba12,
+ 0x7048c410,
+ 0x28fcc00e,
+ 0x7044c812,
+ 0x28aed3f1,
+ 0x9080c000,
+ 0x2cbed3f1,
+ 0x0e20d0f1,
+ 0xc0368502,
+ 0xd2080cfe,
+ 0xb421a103,
+ 0x9c22c000,
+ 0x72c0c002,
+ 0x1c0ad011,
+ 0x08029c22,
+ 0xb7809c22,
+ 0x85025b8c,
+ 0xa88dda08,
+ 0xa16bf010,
+ 0xa16ff010,
+ 0xa173f010,
+ 0xa16fd810,
+ 0xa16bd810,
+ 0xa0e1f010,
+ 0xb7209c22,
+ 0xd8105d14,
+ 0xb520a8e9,
+ 0xf010414b,
+ 0xb740aa71,
+ 0xc2005d8c,
+ 0xf0485a0f,
+ 0xf010a245,
+ 0xb520a8ed,
+ 0xf01041cd,
+ 0xb580aa69,
+ 0xf010414d,
+ 0xf010a96f,
+ 0xe210a869,
+ 0xf0088021,
+ 0x9c22a041,
+ 0xac7dc030,
+ 0x5b1cb740,
+ 0xa45dc038,
+ 0xac7dc030,
+ 0xa45dc038,
+ 0xac7dc030,
+ 0xa45dc038,
+ 0x5a94b720,
+ 0x5b8cb780,
+ 0xb7208706,
+ 0xc0025f0c,
+ 0xd28a8576,
+ 0xb540a108,
+ 0x8502485b,
+ 0x4039b540,
+ 0x40a1b540,
+ 0xa60d9c22,
+ 0x5b8cb780,
+ 0xa881f208,
+ 0x74449ea5,
+ 0x03010007,
+ 0x9104c000,
+ 0x5b0cb780,
+ 0xa805dac8,
+ 0x9300c008,
+ 0xc0087442,
+ 0xda1092a4,
+ 0x7500aa29,
+ 0x9344c000,
+ 0xaa2dd290,
+ 0xc0007500,
+ 0xd29092a4,
+ 0xb720aa25,
+ 0xb7205b0c,
+ 0x75005d94,
+ 0x4cabb700,
+ 0x44dbb740,
+ 0x8526e002,
+ 0x8021f210,
+ 0x44cbb580,
+ 0x9300c007,
+ 0xaa2dd290,
+ 0xc0017500,
+ 0xb7809382,
+ 0xb7405a8c,
+ 0xd2905b0c,
+ 0xb760a926,
+ 0xd2c85d94,
+ 0xd008a891,
+ 0xd008a9c5,
+ 0x7680a8ca,
+ 0x4000ba09,
+ 0x9e490002,
+ 0xa967d850,
+ 0x0a02d011,
+ 0x4422b304,
+ 0xc0100009,
+ 0xcc127002,
+ 0x768070c0,
+ 0x00070407,
+ 0x8526e002,
+ 0x8021f210,
+ 0xa265d850,
+ 0x4648b780,
+ 0xc0007500,
+ 0xda5091a2,
+ 0xda90a937,
+ 0xe210aa21,
+ 0x0a0480a7,
+ 0xa221da90,
+ 0xa0b5da50,
+ 0xc0050007,
+ 0xd2909320,
+ 0x7500aa39,
+ 0x91a2c001,
+ 0x5b0cb780,
+ 0xa881d208,
+ 0xa88ad208,
+ 0xa905d208,
+ 0x0812d011,
+ 0xd2909e49,
+ 0xc010aa25,
+ 0xb7207002,
+ 0xc8125d8c,
+ 0x75007080,
+ 0xb7400005,
+ 0xe00244bb,
+ 0xf2108526,
+ 0xda508021,
+ 0xb580a937,
+ 0xda9044ab,
+ 0xf210a8a1,
+ 0x00058025,
+ 0xda900884,
+ 0xda50a0a1,
+ 0xc004a235,
+ 0xb7809120,
+ 0xf2505a8c,
+ 0xf248a8b1,
+ 0x7440a995,
+ 0xf2489ea6,
+ 0xc000a18d,
+ 0xb7209316,
+ 0xb7805d8c,
+ 0x75004729,
+ 0xd0029e88,
+ 0xc0000802,
+ 0xd29090a4,
+ 0x0008aa29,
+ 0x5b0cb780,
+ 0xa889d208,
+ 0xc0100289,
+ 0xc0017040,
+ 0xb7a09280,
+ 0xd0b15b0c,
+ 0xd2080a50,
+ 0xf250a882,
+ 0x1196a929,
+ 0xa8adf208,
+ 0x9e4c5c85,
+ 0xcc12588b,
+ 0x515070c2,
+ 0xd12651f3,
+ 0xd1a45914,
+ 0xe2205987,
+ 0x0d0281af,
+ 0xa129f250,
+ 0x9a14c014,
+ 0x4188b784,
+ 0xc0007500,
+ 0x9e8390e2,
+ 0x9a36c014,
+ 0x9060c000,
+ 0xd2905819,
+ 0xb700aa29,
+ 0x00e85d94,
+ 0x7002c010,
+ 0xc0121268,
+ 0xd2907100,
+ 0xd208a8a6,
+ 0x7640a8a9,
+ 0xa925d208,
+ 0x0a02d011,
+ 0x4422b304,
+ 0xc0100009,
+ 0xc8127040,
+ 0x76407080,
+ 0x44dab740,
+ 0xe0020005,
+ 0xe2108526,
+ 0xb78080a1,
+ 0x75004648,
+ 0x44cab520,
+ 0x91a2c000,
+ 0xa937da50,
+ 0xaa21da90,
+ 0x80a5e210,
+ 0xda900a04,
+ 0xda50a221,
+ 0xda08a0b5,
+ 0xda10aa35,
+ 0x1a08a8a9,
+ 0xb4167048,
+ 0x00054443,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0xb720a60d,
+ 0xb7805b8c,
+ 0x7502402d,
+ 0xc00c9e8d,
+ 0xb7809264,
+ 0xf2085d0c,
+ 0xc003a88e,
+ 0x9ea27646,
+ 0x911ac001,
+ 0x4188b784,
+ 0xc0007500,
+ 0xb7809102,
+ 0xb7405c8c,
+ 0xc0006204,
+ 0xb78090c0,
+ 0xb7405c8c,
+ 0xf2086284,
+ 0x9e2da881,
+ 0x5904d0a6,
+ 0xaa4dc830,
+ 0x62199e49,
+ 0x5817d224,
+ 0x5b0cb780,
+ 0x08c0d0b1,
+ 0x4031b720,
+ 0xb7c09ea6,
+ 0x54075a8c,
+ 0x9300c001,
+ 0x5b14b7c0,
+ 0x5a8cb7c0,
+ 0x5e4bd0a2,
+ 0x4188b724,
+ 0xb7207500,
+ 0x09025c94,
+ 0x911cc000,
+ 0x5a07c200,
+ 0x09047500,
+ 0x939affff,
+ 0x7c7ec01c,
+ 0x9102c000,
+ 0x404db780,
+ 0x6204b740,
+ 0x90c0c000,
+ 0x404db780,
+ 0x6284b740,
+ 0x5904d226,
+ 0xc8309e2d,
+ 0xf010a8ce,
+ 0x9e4ca8cd,
+ 0x609950ab,
+ 0x5817d0a4,
+ 0x0e60d0b1,
+ 0xa881d208,
+ 0x54079e89,
+ 0x54049e91,
+ 0xaa29da10,
+ 0xc0007500,
+ 0xd29090e2,
+ 0x7500aa2d,
+ 0x92c2c000,
+ 0xa95bf248,
+ 0x8029f210,
+ 0xa259f248,
+ 0xa026f250,
+ 0xa02af250,
+ 0xa046f248,
+ 0xaa49f010,
+ 0xa251f248,
+ 0xa255f248,
+ 0x9300c007,
+ 0xaa39d290,
+ 0xc0077500,
+ 0xb72091c4,
+ 0xb7805d8c,
+ 0x750046a9,
+ 0xc0079e89,
+ 0xf24890c4,
+ 0xf210a95b,
+ 0xf2488029,
+ 0xd290a259,
+ 0x7440a8b5,
+ 0x90c2c000,
+ 0xaa49f010,
+ 0x9240c000,
+ 0xa8d1f248,
+ 0xaa49f010,
+ 0x5908d0a6,
+ 0x8123e240,
+ 0x5904d226,
+ 0x8021f310,
+ 0x8221f310,
+ 0x5a0dc200,
+ 0xa251f248,
+ 0xaa51f248,
+ 0xa255f248,
+ 0xa8b5d290,
+ 0xc0007440,
+ 0xf2509102,
+ 0xf250a026,
+ 0xc005a02a,
+ 0xb7809360,
+ 0x75004649,
+ 0x90e2c001,
+ 0xa8a2da90,
+ 0xa925f250,
+ 0xaa21da90,
+ 0x9d1e1c84,
+ 0x0ce0d0b1,
+ 0x6127d333,
+ 0x4031b760,
+ 0x5a40c200,
+ 0x5a45c200,
+ 0x8128c201,
+ 0x8021f310,
+ 0xda909ea1,
+ 0x0507a9a1,
+ 0xa225f250,
+ 0xc01455af,
+ 0xf25098d7,
+ 0xf250a025,
+ 0xc004a029,
+ 0xda109220,
+ 0xf210a92b,
+ 0xf250aa2d,
+ 0xe310a8a6,
+ 0x9e4a88a1,
+ 0xa928da12,
+ 0x18848185,
+ 0x6122d033,
+ 0x88b1f310,
+ 0x8a21f310,
+ 0x7540c008,
+ 0x5a07c200,
+ 0x8128c201,
+ 0x8021f310,
+ 0xa225f250,
+ 0x91bcc000,
+ 0xfff49eab,
+ 0xf2509965,
+ 0xc200aa25,
+ 0xc20052a3,
+ 0xf2505203,
+ 0xb740a225,
+ 0xf2506304,
+ 0xd2a6aa25,
+ 0x9e2d5904,
+ 0xa8cdc830,
+ 0xd2240189,
+ 0x0c8259ff,
+ 0x05030103,
+ 0x98ffc014,
+ 0x639cb740,
+ 0xc2109d47,
+ 0x0181a926,
+ 0xc0140581,
+ 0xf21098db,
+ 0x7502aa29,
+ 0xa025f250,
+ 0x90c4c000,
+ 0xa029f250,
+ 0x9040c002,
+ 0xa8aada10,
+ 0xa954da12,
+ 0x5c84d0a2,
+ 0x8e22f011,
+ 0xc0007048,
+ 0xf2489176,
+ 0x0208aa45,
+ 0x5a07c200,
+ 0xa229f250,
+ 0x91c0c001,
+ 0xa8c5f248,
+ 0x0e12d011,
+ 0xf3109e4a,
+ 0xd0338a21,
+ 0x60996104,
+ 0x8122c201,
+ 0xa12bf250,
+ 0xaa55da10,
+ 0x0ce0d0b1,
+ 0xc2001a04,
+ 0xf3105a07,
+ 0xb7608021,
+ 0xf2504031,
+ 0xda10a229,
+ 0x9ea1a9d5,
+ 0x55af0507,
+ 0xc0141984,
+ 0xf250984b,
+ 0xc000a029,
+ 0xf21090e0,
+ 0x0a04aa2d,
+ 0xa22df210,
+ 0xa8c9f248,
+ 0xaa29f210,
+ 0xa8aaf250,
+ 0x5904d0a6,
+ 0xc2017502,
+ 0xf2108122,
+ 0xf250802b,
+ 0xc200a0ae,
+ 0xc000588b,
+ 0x9e4a90f4,
+ 0x7044d010,
+ 0xa229f250,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x5b8cb720,
+ 0xaa61d810,
+ 0xb5800802,
+ 0x9c2241ab,
+ 0x5b0cb740,
+ 0x5f94b720,
+ 0xa96cf012,
+ 0xaa4df008,
+ 0x414db720,
+ 0x40ddb740,
+ 0x8a21f310,
+ 0xf3106243,
+ 0xb5808021,
+ 0xf01040cd,
+ 0xf008a8ed,
+ 0x9c22a0cd,
+ 0x74c0c008,
+ 0x9e529e58,
+ 0x90fcc000,
+ 0x70c0d002,
+ 0x51f31a14,
+ 0xc0055013,
+ 0xc0007400,
+ 0xd00290fc,
+ 0x1a507000,
+ 0x01285013,
+ 0x6304b740,
+ 0x638cb780,
+ 0x5904d1a6,
+ 0xc0409e2d,
+ 0xc830a8e5,
+ 0x7044aa4d,
+ 0xd01d6009,
+ 0xd01a1214,
+ 0xb3405013,
+ 0x122248ba,
+ 0x9c225010,
+ 0x75269e5c,
+ 0xd01e0882,
+ 0xb3404000,
+ 0xc38048bc,
+ 0xc0007500,
+ 0xc00290bc,
+ 0x9c22084e,
+ 0x7508c004,
+ 0x915cc000,
+ 0xc2000a04,
+ 0xc0045a07,
+ 0x08847508,
+ 0x935affff,
+ 0x641cb740,
+ 0xc2209d4b,
+ 0xd013a805,
+ 0xe210691d,
+ 0x9c228021,
+ 0x0d00e000,
+ 0x4422b330,
+ 0x4842b330,
+ 0x48a2b340,
+ 0x8502c002,
+ 0x882df210,
+ 0xc0007500,
+ 0x9e5990fa,
+ 0x12090c02,
+ 0x9c225031,
+ 0x50d09e5a,
+ 0x54699e52,
+ 0x30425269,
+ 0xa6859c22,
+ 0x9e810007,
+ 0xcffe9e90,
+ 0x9e412cfc,
+ 0x5c419e4c,
+ 0xcffe6491,
+ 0x62c328fc,
+ 0x9e445841,
+ 0x60096083,
+ 0x5a41c280,
+ 0x04909ea0,
+ 0x9d099e88,
+ 0x9e4c0490,
+ 0xc0017102,
+ 0xd0a28504,
+ 0xb3025e41,
+ 0xf3204468,
+ 0xd0a68121,
+ 0xcffe5d40,
+ 0xf3102afc,
+ 0x000d8123,
+ 0x9e54040d,
+ 0x6138d033,
+ 0x61459e5c,
+ 0x8125e210,
+ 0x04629e91,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c40,
+ 0x87c2c809,
+ 0x0c20b060,
+ 0x87c2c809,
+ 0x0a60b060,
+ 0x87c2c809,
+ 0x09c0b060,
+};
+
+unsigned long aui32H263VBR_SlaveMTXTOPAZFWData[] = {
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000044,
+ 0x00000090,
+ 0x00000000,
+ 0x00000001,
+ 0x00000000,
+ 0x809000b0,
+ 0x809002f8,
+ 0x82883df4,
+ 0x82883924,
+ 0x82883934,
+ 0x828839d4,
+ 0x82883840,
+ 0x82883888,
+ 0x82883896,
+ 0x82883a04,
+ 0x82883a40,
+ 0x82883a7c,
+ 0x82883ab4,
+ 0x82883ab8,
+ 0x82883ae8,
+ 0x82883b18,
+ 0x82883b40,
+ 0x828838fc,
+ 0x82883b48,
+ 0x82883b50,
+ 0x82883b80,
+ 0x82883b88,
+ 0x82883bbc,
+ 0x8288420c,
+ 0x8288409e,
+ 0x82884106,
+ 0x82884146,
+ 0x828841c8,
+ 0x82884078,
+ 0x82883dbc,
+ 0x82883ebc,
+ 0x82883efc,
+ 0x82883f00,
+ 0x82883f08,
+ 0x82883f64,
+ 0x82883fc0,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x8090074c,
+ 0x8090074c,
+ 0x80901efc,
+ 0x8090197c,
+ 0x809038a0,
+ 0x809022e8,
+ 0x80901ca4,
+ 0x8090074c,
+ 0x8090074c,
+ 0x8090074c,
+ 0x8090074c,
+ 0x8090074c,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0xa0101100,
+ 0xa01001b0,
+ 0xa0101102,
+ 0xa01001b2,
+ 0xa0101104,
+ 0xa0100124,
+ 0xa0101106,
+ 0xa0100126,
+ 0xa0100134,
+ 0x00000000,
+ 0xa0101120,
+ 0xa0100136,
+ 0xa0101122,
+ 0xa0100144,
+ 0x80101160,
+ 0x80101162,
+ 0x80101180,
+ 0x80101182,
+ 0x80100140,
+ 0x80100142,
+ 0x80100150,
+ 0x80100152,
+ 0x80100154,
+ 0x80100146,
+ 0x803003a0,
+ 0x80100100,
+ 0x80105156,
+ 0xa0101164,
+ 0xa0100184,
+ 0x80101194,
+ 0x801001b4,
+ 0x80100146,
+ 0x00000000,
+ 0x00000003,
+ 0x00000002,
+ 0x00000002,
+ 0x00000001,
+ 0x00000001,
+ 0x00000001,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000005,
+ 0x000f9400,
+ 0x000f9401,
+ 0x000fd403,
+ 0x000fd40b,
+ 0x000fd41b,
+ 0x000ffc1b,
+ 0x000ffc1b,
+ 0x000ff81b,
+ 0x0000681b,
+ 0x0000681a,
+ 0x0000281a,
+ 0x00002810,
+ 0x00002800,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00010001,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x01010000,
+ 0x02020201,
+ 0x04030303,
+ 0x05040404,
+ 0x00140005,
+ 0x001a0016,
+ 0x0020001c,
+ 0x00280024,
+ 0x0034002c,
+ 0x00400038,
+ 0x00500048,
+ 0x00680058,
+ 0x00800070,
+ 0x00a00090,
+ 0x00d000b0,
+ 0x010000e0,
+ 0x01400120,
+ 0x01a00160,
+ 0x020001c0,
+ 0x02800240,
+ 0x034002c0,
+ 0x04000380,
+ 0x05000480,
+ 0x06800580,
+ 0x08000700,
+ 0x0a000900,
+ 0x0d000b00,
+ 0x10000e00,
+ 0x14001200,
+ 0x1a001600,
+ 0x00001c00,
+ 0x00800040,
+ 0x010000c0,
+ 0x01800140,
+ 0x020001c0,
+ 0x02800240,
+ 0x030002c0,
+ 0x03800340,
+ 0x040003c0,
+ 0x04800440,
+ 0x050004c0,
+ 0x05800540,
+ 0x060005c0,
+ 0x06800640,
+ 0x070006c0,
+ 0x07800740,
+ 0x000007c0,
+ 0x00200040,
+ 0x001002ab,
+ 0x015500cd,
+ 0x00080249,
+ 0x00cd01c7,
+ 0x0155005d,
+ 0x0249013b,
+ 0x00040111,
+ 0x01c700f1,
+ 0x00cd01af,
+ 0x005d00c3,
+ 0x01550059,
+ 0x013b0029,
+ 0x0249025f,
+ 0x01110235,
+ 0x00020021,
+ 0x00f1001f,
+ 0x01c70075,
+ 0x01af006f,
+ 0x00cd0069,
+ 0x00c30019,
+ 0x005d017d,
+ 0x0059005b,
+ 0x015502b9,
+ 0x002900a7,
+ 0x013b0283,
+ 0x025f0135,
+ 0x02490095,
+ 0x0235023f,
+ 0x0111008b,
+ 0x00210219,
+ 0x00010041,
+ 0x0b060600,
+ 0x0c0b0a06,
+ 0x0a0b0c06,
+ 0x0c0d0c0c,
+ 0x0d0d0c06,
+ 0x0b0b0c0c,
+ 0x0e0d0a0d,
+ 0x0a0d0e0e,
+ 0x0c0d0a06,
+ 0x0c0e0c0e,
+ 0x0e0d0a0d,
+ 0x0f0c0c0c,
+ 0x0f0b0d0e,
+ 0x0d0f0e0e,
+ 0x0d0f0f0f,
+ 0x0c0b0f0e,
+ 0x00000006,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x1234baac,
+ 0x00000000,
+};
+
+unsigned long aui32H263VBR_SlaveMTXTOPAZFWTextReloc[] = {
+ 0
+};
+
+unsigned char aui8H263VBR_SlaveMTXTOPAZFWTextRelocType[] = {
+ 0
+};
+
+unsigned long aui32H263VBR_SlaveMTXTOPAZFWTextRelocFullAddr[] = {
+ 0
+};
+
+unsigned long aui32H263VBR_SlaveMTXTOPAZFWDataReloc[] = {
+ 0
+};
diff --git a/fw/H263SlaveFirmwareVBR_bin.h b/fw/H263SlaveFirmwareVBR_bin.h
new file mode 100644
index 0000000..4a56208
--- /dev/null
+++ b/fw/H263SlaveFirmwareVBR_bin.h
@@ -0,0 +1,44 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+
+// This file was automatically generated from ../release/H263SlaveFirmwareVBR.dnl using dnl2c.
+
+extern unsigned long aui32H263VBR_SlaveMTXTOPAZFWText[];
+extern unsigned long ui32H263VBR_SlaveMTXTOPAZFWTextSize;
+
+extern unsigned long aui32H263VBR_SlaveMTXTOPAZFWData[];
+extern unsigned long ui32H263VBR_SlaveMTXTOPAZFWDataSize;
+
+extern unsigned long aui32H263VBR_SlaveMTXTOPAZFWTextReloc[];
+extern unsigned char aui8H263VBR_SlaveMTXTOPAZFWTextRelocType[];
+extern unsigned long aui32H263VBR_SlaveMTXTOPAZFWTextRelocFullAddr[];
+
+extern unsigned long aui32H263VBR_SlaveMTXTOPAZFWDataReloc[];
+extern unsigned long ui32H263VBR_SlaveMTXTOPAZFWDataRelocSize;
+
+extern unsigned long ui32H263VBR_SlaveMTXTOPAZFWTextOrigin;
+extern unsigned long ui32H263VBR_SlaveMTXTOPAZFWDataOrigin;
+
diff --git a/fw/H263SlaveFirmware_bin.c b/fw/H263SlaveFirmware_bin.c
new file mode 100644
index 0000000..be89da1
--- /dev/null
+++ b/fw/H263SlaveFirmware_bin.c
@@ -0,0 +1,3615 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+
+// This file was automatically generated from ../release/H263SlaveFirmware.dnl using dnl2c.
+
+unsigned char *szH263SlaveFirmware_buildtag = "BUILD_TOPAZ_SC_1_00_00_0318";
+
+unsigned long ui32H263_SlaveMTXTOPAZFWTextSize = 2982;
+unsigned long ui32H263_SlaveMTXTOPAZFWDataSize = 574;
+unsigned long ui32H263_SlaveMTXTOPAZFWTextRelocSize = 0;
+unsigned long ui32H263_SlaveMTXTOPAZFWDataRelocSize = 0;
+
+unsigned long ui32H263_SlaveMTXTOPAZFWTextOrigin = 0x80900000;
+unsigned long ui32H263_SlaveMTXTOPAZFWDataOrigin = 0x82882ec0;
+
+unsigned long aui32H263_SlaveMTXTOPAZFWText[] = {
+ 0x9040c001,
+ 0xc80993fe,
+ 0xc0000e42,
+ 0xc8290e00,
+ 0xc37a8422,
+ 0xc8298460,
+ 0xc2ec8622,
+ 0x9e838600,
+ 0xc8099e43,
+ 0xc5d00d42,
+ 0xc8090d40,
+ 0xc5d20942,
+ 0xc8090900,
+ 0xc00a0e42,
+ 0xc8090e40,
+ 0xc00e87c2,
+ 0x9c1887d0,
+ 0x0c020802,
+ 0x09820d82,
+ 0x09020d02,
+ 0x08820c82,
+ 0x9320fffe,
+ 0xa401c838,
+ 0x0dc2c809,
+ 0x0d80c5d0,
+ 0x0e42c809,
+ 0x0b46b080,
+ 0x7e74b77f,
+ 0xa48d0882,
+ 0xffff9ff3,
+ 0x9d1393e0,
+ 0xf8398081,
+ 0x0707a205,
+ 0x06850307,
+ 0x03839e97,
+ 0x0fa0060f,
+ 0x018d058d,
+ 0x9c62008f,
+ 0x9340ffff,
+ 0x0ea0060b,
+ 0xffff9c62,
+ 0x058d93a0,
+ 0xb700018d,
+ 0xb780568c,
+ 0x9c015614,
+ 0x0687a605,
+ 0x0ea0060b,
+ 0xffff9c62,
+ 0xf9f893a0,
+ 0xf9f8aa9d,
+ 0x9c22aa1d,
+ 0xa6059c22,
+ 0x0e860a82,
+ 0xc0340d82,
+ 0xc0149b32,
+ 0x0d8a9967,
+ 0x9b2dc034,
+ 0x7108b783,
+ 0xc0007500,
+ 0xc0149082,
+ 0xc0149abe,
+ 0x740299db,
+ 0xb3549e6c,
+ 0x02894424,
+ 0x995dc014,
+ 0xffff7540,
+ 0xb79f90e2,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0x87029c22,
+ 0xb5438502,
+ 0xb5436818,
+ 0xb5436898,
+ 0xb5436918,
+ 0xb5436c18,
+ 0xb5436c98,
+ 0xb5436d18,
+ 0xb5437118,
+ 0xb5437198,
+ 0xb5437218,
+ 0xb5407818,
+ 0xb5404884,
+ 0xb5404904,
+ 0xb5404984,
+ 0xb5404a04,
+ 0xb5404a84,
+ 0xb5404c84,
+ 0xb5404d04,
+ 0xb5404d84,
+ 0xb5404202,
+ 0xb5404282,
+ 0xb5405084,
+ 0xb5407a84,
+ 0xb5404f04,
+ 0x9c224702,
+ 0x8420a605,
+ 0x9ba6fff4,
+ 0xc0340d8a,
+ 0xfff49ada,
+ 0xc0349bc6,
+ 0xc4209ae5,
+ 0x0a020cd2,
+ 0xc000b481,
+ 0x4220b105,
+ 0xe0310d8a,
+ 0xc0148d80,
+ 0xc8299a01,
+ 0xc37a0922,
+ 0xb73f0940,
+ 0xd0717f6c,
+ 0xb5802a5e,
+ 0xc01e458c,
+ 0x85022a80,
+ 0xa8c2f008,
+ 0xc2807102,
+ 0xb5a05a95,
+ 0xb341468c,
+ 0x76404434,
+ 0x461cb540,
+ 0x450cb520,
+ 0x90c2c000,
+ 0x0e12d011,
+ 0xa241f008,
+ 0x570cb780,
+ 0x08c2c807,
+ 0x0880c570,
+ 0x0caac032,
+ 0x558cb580,
+ 0xc000b421,
+ 0x0cf40a2a,
+ 0xc000b481,
+ 0x09021a28,
+ 0x08bac002,
+ 0x4078b960,
+ 0x0a00c200,
+ 0x588bd224,
+ 0xc000b441,
+ 0x0a11ce00,
+ 0x9301ffff,
+ 0x1884e000,
+ 0x9244ffff,
+ 0x0a42c807,
+ 0x0a00c576,
+ 0x0caac032,
+ 0xc000b481,
+ 0x08820a02,
+ 0x08840902,
+ 0x4078b960,
+ 0x0a00c200,
+ 0x588bd224,
+ 0xc000b441,
+ 0x0a11ce00,
+ 0x9301ffff,
+ 0x745ac004,
+ 0x923cffff,
+ 0xc0340a02,
+ 0xb4810c9e,
+ 0xfff4c000,
+ 0x08029b2c,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x9c228c60,
+ 0xc0409e54,
+ 0x9e590c82,
+ 0xc000b421,
+ 0x0d02c040,
+ 0xc000b482,
+ 0xc00e9c22,
+ 0xc00e2d7c,
+ 0x5d3029e0,
+ 0xc0409e54,
+ 0x31b80c82,
+ 0xc000b461,
+ 0x0d02c040,
+ 0xc000b442,
+ 0xa60d9c22,
+ 0x07038420,
+ 0xc2800687,
+ 0x1c845c8d,
+ 0x5ca0d0a2,
+ 0xd0110287,
+ 0xc2000a5e,
+ 0x1a045a0d,
+ 0x5a30c200,
+ 0x30985cd0,
+ 0x04059e4c,
+ 0x0c8ac032,
+ 0xc8013098,
+ 0xb4213880,
+ 0x9ea9c000,
+ 0x0a02c801,
+ 0x0a00c002,
+ 0xc0306553,
+ 0xb4810c8a,
+ 0xc002c000,
+ 0x0c840882,
+ 0xc000b421,
+ 0xd0229e93,
+ 0x9e535f09,
+ 0x1d045d0d,
+ 0x9bb4fff4,
+ 0x5e91c280,
+ 0xc2801e84,
+ 0x9e6c5e84,
+ 0xc2801a84,
+ 0xc1815a90,
+ 0x0d8a3a80,
+ 0x0d020982,
+ 0xfff4314a,
+ 0xc0c09bae,
+ 0x09920d82,
+ 0x0d02c002,
+ 0x0902c002,
+ 0x9a04c034,
+ 0xc0340a0a,
+ 0xb4810c9e,
+ 0x1b04c000,
+ 0x850275bf,
+ 0x9202c000,
+ 0xb55f9dcf,
+ 0xc0347f7c,
+ 0xf23199d7,
+ 0xb75fa045,
+ 0x1b047f7c,
+ 0x851075bf,
+ 0x9284ffff,
+ 0x0a42c002,
+ 0x0c8ec030,
+ 0xc000b481,
+ 0x7e6eb79f,
+ 0x7eeeb7bf,
+ 0x7f6eb7df,
+ 0x8c00c002,
+ 0x9c229c22,
+ 0x8502c200,
+ 0x9c89c037,
+ 0x9c80c171,
+ 0x9c80c817,
+ 0xf8399c22,
+ 0x0d9aa205,
+ 0x99bdc034,
+ 0xf9f80d8a,
+ 0xc02daa1d,
+ 0xa6059300,
+ 0x0a42c801,
+ 0x0a00c010,
+ 0x2ebed3f2,
+ 0x0caac032,
+ 0xc000b481,
+ 0x0cf408aa,
+ 0xc000b421,
+ 0x578cb780,
+ 0x0c92c080,
+ 0xa881f208,
+ 0xc000b421,
+ 0x578cb780,
+ 0xf2080c88,
+ 0xb421a889,
+ 0xb780c000,
+ 0x0c84578c,
+ 0xa88df208,
+ 0xc000b421,
+ 0x1c980902,
+ 0xc000b441,
+ 0x578cb780,
+ 0xf2080c90,
+ 0xb421a885,
+ 0xb7a0c000,
+ 0x0dd2578c,
+ 0x9976c034,
+ 0xaa25f208,
+ 0xffff7008,
+ 0x0daa9344,
+ 0x0d060982,
+ 0x0902c121,
+ 0x9b29fff4,
+ 0x4794b760,
+ 0x0d02c021,
+ 0x09c20d04,
+ 0x9b16fff4,
+ 0x4794b760,
+ 0x0d0609c2,
+ 0x9b10fff4,
+ 0x09820daa,
+ 0xc1010d02,
+ 0xfff40902,
+ 0x0d929b14,
+ 0x9952c034,
+ 0xaa25f208,
+ 0xffff7008,
+ 0x77409344,
+ 0x90a2c000,
+ 0xc0340d8e,
+ 0x0d8a9954,
+ 0x9951c034,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xc470a60d,
+ 0x0a020c8e,
+ 0xc000b481,
+ 0x4220b101,
+ 0x578cb780,
+ 0xa085f208,
+ 0x0a021c8c,
+ 0xc000b481,
+ 0x4220b105,
+ 0x2b5ed1f1,
+ 0x578cb780,
+ 0xcff09ead,
+ 0xc2802e80,
+ 0xf2085ea1,
+ 0xc280a281,
+ 0x2a845a9d,
+ 0x0a020c84,
+ 0xc000b481,
+ 0x4220b101,
+ 0x470cb520,
+ 0xb4810c84,
+ 0xb101c000,
+ 0xb5204220,
+ 0xc070478c,
+ 0xb4810c8e,
+ 0x0882c000,
+ 0xb4211c8c,
+ 0x0c90c000,
+ 0xc000b481,
+ 0xb4211c8c,
+ 0x0c84c000,
+ 0xc000b481,
+ 0x6084b740,
+ 0x5908d326,
+ 0xe0309e2d,
+ 0x9ea4aa4d,
+ 0xb7809c62,
+ 0x7740578c,
+ 0x9ea98502,
+ 0xd0010d82,
+ 0xf2080db2,
+ 0x2596a10f,
+ 0x9b3ffff4,
+ 0xc0700a06,
+ 0xb4810c82,
+ 0x000dc000,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x7ebec01c,
+ 0x9244c000,
+ 0x5e08d1a2,
+ 0x0a00c090,
+ 0x5909d224,
+ 0xc4000882,
+ 0xb4223d00,
+ 0xb104c000,
+ 0x75004220,
+ 0x9364ffff,
+ 0x5c88c180,
+ 0x0c80c090,
+ 0xb4615c89,
+ 0x9c22c000,
+ 0x5c88c180,
+ 0x0c80c090,
+ 0xc4005c89,
+ 0x0a023c80,
+ 0xc000b481,
+ 0x4220b101,
+ 0xa0e1f008,
+ 0xc0905d88,
+ 0x5d890d80,
+ 0xc000b483,
+ 0x9e5b9c22,
+ 0x68b1d312,
+ 0xc1c00a02,
+ 0x5c8b0cc0,
+ 0x3c80c400,
+ 0xc000b481,
+ 0x4220b102,
+ 0x5b14b760,
+ 0x6931d312,
+ 0x9e518502,
+ 0x4070b960,
+ 0x08e0c1c0,
+ 0xaa65f031,
+ 0x5889d0a4,
+ 0xc000b481,
+ 0x85100890,
+ 0x9301ffff,
+ 0x8560c1c0,
+ 0x80ade210,
+ 0x5c94b760,
+ 0x3904c001,
+ 0x8521ce3e,
+ 0x4048b960,
+ 0xaa65f031,
+ 0x5889d0a4,
+ 0xc000b481,
+ 0x85100890,
+ 0x9301ffff,
+ 0x812de220,
+ 0x5a8cb780,
+ 0x3908c001,
+ 0x0d60c1c0,
+ 0xdac85d09,
+ 0xb422a885,
+ 0xd312c000,
+ 0xc1c068b1,
+ 0x5c8b0cc0,
+ 0xc000b441,
+ 0x84209c22,
+ 0xc4700882,
+ 0x0a020c92,
+ 0xc000b481,
+ 0x4220b102,
+ 0x02050185,
+ 0x2a04c001,
+ 0xc0007500,
+ 0xb7409362,
+ 0x09025b14,
+ 0x4070b960,
+ 0x08e0c1c0,
+ 0x5889d0a4,
+ 0x08a1ce3e,
+ 0x3c80c400,
+ 0xc000b441,
+ 0x4220b104,
+ 0xa245f031,
+ 0xffff0890,
+ 0x01079221,
+ 0x297acfff,
+ 0xc0010205,
+ 0x75002a08,
+ 0x91e2c001,
+ 0x5c94b740,
+ 0xb9600982,
+ 0xc1c04048,
+ 0xd0a408e0,
+ 0xce3e5889,
+ 0xc40008a1,
+ 0xb4613c80,
+ 0xb104c000,
+ 0xf0314220,
+ 0x0890a245,
+ 0x9221ffff,
+ 0x8d00e032,
+ 0x08e0c1c0,
+ 0x5889d0a4,
+ 0xc4000a02,
+ 0xb4813c80,
+ 0xb101c000,
+ 0xf0104220,
+ 0xb73fa0c1,
+ 0xb7807e72,
+ 0xdac85a8c,
+ 0xcfffa086,
+ 0xc0702976,
+ 0xb4410c92,
+ 0x8c20c000,
+ 0xb7409c22,
+ 0xd312510c,
+ 0x0a026cb1,
+ 0x0cc0c1c0,
+ 0xc4005c8b,
+ 0xb4813c80,
+ 0xb101c000,
+ 0xd3124220,
+ 0xc1ca6cb1,
+ 0x5c8b0cf0,
+ 0xc000b441,
+ 0x6d82c00c,
+ 0x38c0c001,
+ 0x0dc0c1c0,
+ 0xb4235d8b,
+ 0x9c22c000,
+ 0x6cb1d312,
+ 0xc1c00a02,
+ 0x5c8b0cc0,
+ 0x3c80c400,
+ 0xc000b481,
+ 0x4220b103,
+ 0x5c14b740,
+ 0x6d31d311,
+ 0x4058b960,
+ 0xc1c00085,
+ 0xf03108e0,
+ 0xd0a4aa45,
+ 0xb4815889,
+ 0x0890c000,
+ 0x9321ffff,
+ 0x3990c001,
+ 0x0940c1c0,
+ 0x588bd124,
+ 0xc000b461,
+ 0xf8399c22,
+ 0xf010a285,
+ 0x7500aa61,
+ 0x9164c000,
+ 0xa8c1d008,
+ 0x0a069e48,
+ 0x5200c200,
+ 0xd0083098,
+ 0xd011a0c1,
+ 0xd0100d38,
+ 0xf011a9f2,
+ 0xf0101a30,
+ 0x1984a943,
+ 0x93e2c000,
+ 0x8702cff1,
+ 0x8700cff0,
+ 0x087ec00f,
+ 0x087cc00e,
+ 0x0c1ac050,
+ 0xa8c5f029,
+ 0x2095d020,
+ 0x9e4d5ca1,
+ 0xc2002210,
+ 0x30d85a20,
+ 0x4006ba09,
+ 0xc000b420,
+ 0x1a30f011,
+ 0xffff1984,
+ 0xf21091e4,
+ 0xf010802f,
+ 0xf9f8a241,
+ 0x9c22aa9d,
+ 0x9e5da60d,
+ 0xf1245940,
+ 0xd3f15841,
+ 0xb3502d2e,
+ 0xc0024422,
+ 0xf00893e2,
+ 0xe000aa61,
+ 0xb4252a1c,
+ 0xd8084422,
+ 0x8522aa61,
+ 0x88a9e210,
+ 0x12182a1c,
+ 0xc00e9ea3,
+ 0xba1b0a7e,
+ 0xc200400b,
+ 0x21285207,
+ 0x9276c001,
+ 0xc1009e59,
+ 0x11035a20,
+ 0x5209c200,
+ 0xc2009ea2,
+ 0x9e8d58a1,
+ 0x0cb0d031,
+ 0xa8a2d208,
+ 0x2a7cc00e,
+ 0x5207c200,
+ 0x2a7cc00e,
+ 0xd208349a,
+ 0xf008a0a2,
+ 0x9ea1a963,
+ 0x2a2ed3f1,
+ 0x8128c201,
+ 0x8821f310,
+ 0xf0088502,
+ 0xd228a261,
+ 0x9eaba127,
+ 0x2d01cff0,
+ 0x59415940,
+ 0xc00e3522,
+ 0xfff42d7c,
+ 0xc0009bb1,
+ 0xd20892e0,
+ 0x9e5eaa21,
+ 0x50d8000b,
+ 0xd0293242,
+ 0xf008a205,
+ 0xd013a8e1,
+ 0xf210291e,
+ 0x75108029,
+ 0x00989e44,
+ 0xa0e1f008,
+ 0x4426b350,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x0685a60d,
+ 0x9e9e9e69,
+ 0x71820b02,
+ 0xc0000a86,
+ 0x9ea99208,
+ 0x9e6916d2,
+ 0x5a84c280,
+ 0x1a52d011,
+ 0xd0117102,
+ 0xd3f108e2,
+ 0xffff2b1e,
+ 0xd0119286,
+ 0x75100a62,
+ 0xc000028d,
+ 0x9e7391d4,
+ 0x09220d02,
+ 0x9b70fff4,
+ 0xd0111aa0,
+ 0x75100a52,
+ 0xffff9e83,
+ 0x9e7392d2,
+ 0xd0110d06,
+ 0xc00e0952,
+ 0xfff4297c,
+ 0x75909b61,
+ 0xc0009e83,
+ 0xd03192f4,
+ 0xd3f11a60,
+ 0x9e6c2b4e,
+ 0xc2009e73,
+ 0xd3f25299,
+ 0x0922295e,
+ 0x9b50fff4,
+ 0xc2009e83,
+ 0x9ea952b8,
+ 0x16d27590,
+ 0x91b2ffff,
+ 0xd3f29e73,
+ 0x010d2d5e,
+ 0x9b42fff4,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x0ca0f011,
+ 0xd09a9e99,
+ 0xd00d5a04,
+ 0xc0001a42,
+ 0x1203909a,
+ 0x9e4b1242,
+ 0xfffc9ea2,
+ 0xa60d9360,
+ 0x85028420,
+ 0xb55f9e55,
+ 0xb55f7f7c,
+ 0xf0107ffc,
+ 0xe011aa61,
+ 0x03078c8e,
+ 0x750a1a08,
+ 0x590cd226,
+ 0xe05a8540,
+ 0xc0038044,
+ 0xc00090a0,
+ 0xc0009180,
+ 0xc00092a0,
+ 0xc00193c0,
+ 0xc0019100,
+ 0xc0029200,
+ 0xe0119060,
+ 0x9e8b8d88,
+ 0x1954d072,
+ 0x508cb5a0,
+ 0x9bc8fff4,
+ 0x9200c002,
+ 0x5094b740,
+ 0xe0119ea9,
+ 0x9e8b8d88,
+ 0xfff41514,
+ 0xc0029bbd,
+ 0xe01190a0,
+ 0x9e8b8d88,
+ 0x295ed3f2,
+ 0xfff40916,
+ 0xb5a09aeb,
+ 0xc001508c,
+ 0xe0119320,
+ 0x9e8b8d88,
+ 0x295ed3f2,
+ 0xfff40916,
+ 0xc0019adf,
+ 0xd20891e0,
+ 0x9e8baa41,
+ 0x8c88f011,
+ 0xd0124a7d,
+ 0x0d062ace,
+ 0x018b0906,
+ 0x9ad0fff4,
+ 0x9e6a9e83,
+ 0x0d02018b,
+ 0x9acafff4,
+ 0x9340c000,
+ 0xaa41d208,
+ 0xf0119e8b,
+ 0x4a7d8c88,
+ 0x2aced012,
+ 0x09060d02,
+ 0xfff4018b,
+ 0x9e839abb,
+ 0x018b9e6a,
+ 0x0d7ec00e,
+ 0x9ab4fff4,
+ 0x9080c000,
+ 0x90e0c001,
+ 0x7e68b79f,
+ 0x0cfec00f,
+ 0x0cfcc00e,
+ 0xb59f9e4a,
+ 0xb73f7c68,
+ 0xcff17f6c,
+ 0xcff00a02,
+ 0xc0500a00,
+ 0x22180c9a,
+ 0x5a21c200,
+ 0x58a02094,
+ 0xba243242,
+ 0xb59f4006,
+ 0xb4817f6c,
+ 0xf208c000,
+ 0xb79fa943,
+ 0xf3107fec,
+ 0xf2088021,
+ 0xb79fa241,
+ 0xb7bf7e6e,
+ 0xb7df7eee,
+ 0xc0027f6e,
+ 0x9c228c00,
+ 0x8440a61d,
+ 0x9e9d8502,
+ 0xabe5f031,
+ 0xb55f0b02,
+ 0xb55f7878,
+ 0x718e7efc,
+ 0xc0019d3a,
+ 0xaa4191e8,
+ 0xc0007502,
+ 0xd0189392,
+ 0xe032aad1,
+ 0xe0518d08,
+ 0x9dcf8d00,
+ 0x85109eb1,
+ 0x7f7cb55f,
+ 0x0a9cc002,
+ 0x5a95c280,
+ 0xfff4018b,
+ 0xb75f9a1e,
+ 0xc2807f7c,
+ 0xc3015a88,
+ 0xc0008122,
+ 0xe03191a0,
+ 0x9dcf8d88,
+ 0x8510050b,
+ 0x7f7cb55f,
+ 0x9b23fff4,
+ 0x7f7cb75f,
+ 0x718e0b04,
+ 0x92a6fffe,
+ 0x7868b79f,
+ 0x0c9ec050,
+ 0xc000b481,
+ 0x0d16c050,
+ 0xc000b4e2,
+ 0x7eecb71f,
+ 0x7d6eb79f,
+ 0x7deeb7bf,
+ 0x7e6eb7df,
+ 0x7eeeb7ff,
+ 0x8c40c002,
+ 0xa6059c22,
+ 0x0c8ac450,
+ 0xb4810a02,
+ 0xb102c000,
+ 0xe00e4240,
+ 0xd1042d7c,
+ 0xc8015d10,
+ 0x0a400a02,
+ 0x0c8ac030,
+ 0xc000b481,
+ 0x0c8408c2,
+ 0xc000b421,
+ 0x5f0cb740,
+ 0xa947f048,
+ 0x802df210,
+ 0xa245f048,
+ 0x0c86c450,
+ 0xb4810a02,
+ 0xb101c000,
+ 0xc8014220,
+ 0xc0100a42,
+ 0xc0320a00,
+ 0xb4810caa,
+ 0x08aac000,
+ 0x0d1ec034,
+ 0xc000b422,
+ 0x0cf2c450,
+ 0xb4810a02,
+ 0xb101c000,
+ 0xd0534220,
+ 0xb7801910,
+ 0xf248590c,
+ 0xf210a891,
+ 0x0d8288a3,
+ 0x018b0d06,
+ 0x9884fff4,
+ 0x0ca2c080,
+ 0xc000b4a1,
+ 0x0d82c002,
+ 0x9954c014,
+ 0xffff700a,
+ 0x0daa9364,
+ 0x0d0a0982,
+ 0x0902c121,
+ 0x9b09ffd4,
+ 0x590cb780,
+ 0xa992f248,
+ 0x0d02c0a1,
+ 0x09c20d04,
+ 0x9af4ffd4,
+ 0x0d82c0c0,
+ 0x0d420992,
+ 0xc0140942,
+ 0xb79f9957,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa60d9c22,
+ 0x8400c010,
+ 0x590cb720,
+ 0x49adb780,
+ 0x75002a20,
+ 0x5b14b7c0,
+ 0xc0000902,
+ 0xb7839182,
+ 0x75007108,
+ 0x90e2c000,
+ 0xaa41d290,
+ 0xc0057500,
+ 0xb7209164,
+ 0xd01149ad,
+ 0x75002a18,
+ 0x3924d002,
+ 0x9124c000,
+ 0x2a14d011,
+ 0xd0027500,
+ 0xd0013922,
+ 0xc0503926,
+ 0xb4410c82,
+ 0x9d87c000,
+ 0x470cb740,
+ 0x09c20dc2,
+ 0x0d02c010,
+ 0x0c81cff0,
+ 0x9acbffd4,
+ 0x7108b783,
+ 0x75009d1b,
+ 0x0b01cff0,
+ 0x9282c000,
+ 0xaa41d290,
+ 0xc0007500,
+ 0xb79f91e2,
+ 0xf211606c,
+ 0xc0108d00,
+ 0x75002a00,
+ 0x0a03cff0,
+ 0x8001f310,
+ 0x4422b346,
+ 0x4068b79e,
+ 0x08c2c801,
+ 0x0880c010,
+ 0x0ceac032,
+ 0x606cb59f,
+ 0xc000b421,
+ 0x7108b783,
+ 0xc0017500,
+ 0xb7839282,
+ 0x75007208,
+ 0x91e2c001,
+ 0x518cb720,
+ 0x2a12d011,
+ 0xc0017500,
+ 0xb7a09102,
+ 0xb7a06014,
+ 0xf2105c0c,
+ 0x9eabaa21,
+ 0xb52028f9,
+ 0x9ea4518c,
+ 0xb7209c62,
+ 0xb7805e0c,
+ 0x75004129,
+ 0x92a4c000,
+ 0xa9a1f208,
+ 0xa83df210,
+ 0x9e840d82,
+ 0xf2509c62,
+ 0x9eaba8a5,
+ 0xa021f208,
+ 0x9e8c0982,
+ 0xda089c62,
+ 0xb581aa21,
+ 0xda107b8a,
+ 0x9eb3a9cd,
+ 0x9aa6fff4,
+ 0x0a02c801,
+ 0x0a00c00a,
+ 0x0c8ac030,
+ 0xc000b481,
+ 0x08c2c008,
+ 0xb4210c84,
+ 0xc008c000,
+ 0x0c880a02,
+ 0xc000b481,
+ 0x0d82c0c0,
+ 0xc0080992,
+ 0xc0080d02,
+ 0xc0140902,
+ 0xc008989d,
+ 0xc0300a02,
+ 0xb4810c8e,
+ 0xb720c000,
+ 0x85065b8c,
+ 0x4039b540,
+ 0x9ad1fff4,
+ 0x6eeeb79f,
+ 0x6f6eb7bf,
+ 0x6feeb7df,
+ 0x8c60c010,
+ 0xf8399c22,
+ 0xc450a205,
+ 0x0a020c82,
+ 0xc000b481,
+ 0x4220b101,
+ 0x0a40c008,
+ 0x0c8ec030,
+ 0xc000b481,
+ 0x38c0c002,
+ 0x0c82c050,
+ 0xc000b421,
+ 0x0d82c0c0,
+ 0xc0080992,
+ 0xc0080d02,
+ 0xc0140902,
+ 0xc0089869,
+ 0xc0300a02,
+ 0xb4810c8e,
+ 0xf9f8c000,
+ 0xfff5aa1d,
+ 0xa60d9000,
+ 0x0eb0f011,
+ 0x9182c001,
+ 0x0f7ec01e,
+ 0x0b02c008,
+ 0x0e8ec030,
+ 0x7540c040,
+ 0xc0509e74,
+ 0xb3540c96,
+ 0x12d84426,
+ 0x5a14c200,
+ 0xc000b481,
+ 0x0d0ac030,
+ 0xc000b4c2,
+ 0xc000b4c5,
+ 0x0c96c030,
+ 0xc000b4c1,
+ 0x0d82c0c0,
+ 0xc0080992,
+ 0xc0080d02,
+ 0xc0140902,
+ 0xb4c59835,
+ 0x7540c000,
+ 0x93c4fffe,
+ 0x9a6ffff4,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0xc000b463,
+ 0xf8129c22,
+ 0x9c22a062,
+ 0x0d80c200,
+ 0x9e595d89,
+ 0xc4000982,
+ 0xb4633d80,
+ 0xb203c000,
+ 0x00074620,
+ 0xc1279c22,
+ 0x9c229c8f,
+ 0xb971080a,
+ 0xc01756f1,
+ 0xc0719c81,
+ 0xc0179c80,
+ 0xb9609c80,
+ 0x9c224000,
+ 0x9280ffff,
+ 0x01c69e5c,
+ 0x5889d1a4,
+ 0xc4000882,
+ 0xb4213c80,
+ 0xb104c000,
+ 0x22444220,
+ 0x71069e53,
+ 0x9324ffff,
+ 0xa60d9c22,
+ 0x8420c004,
+ 0x0ca2c829,
+ 0x0cf0c356,
+ 0xac3dc030,
+ 0x8d00e133,
+ 0xa45dc038,
+ 0xac3dc030,
+ 0xa45dc038,
+ 0xac3dc010,
+ 0xa45dc018,
+ 0xac25c010,
+ 0xa445c018,
+ 0x590cb7a0,
+ 0x85029ea9,
+ 0x661ab540,
+ 0x4d98b541,
+ 0x470cb740,
+ 0xc00a0dc2,
+ 0x09c20d42,
+ 0x9979ffd4,
+ 0x0a58d251,
+ 0xaa01da08,
+ 0x9ead7502,
+ 0x9084c000,
+ 0x450cb580,
+ 0xaa2df290,
+ 0x75002a08,
+ 0x90a4c000,
+ 0xb5408506,
+ 0xb780451c,
+ 0xf2105f0c,
+ 0x8502a8a1,
+ 0xa8a6f210,
+ 0x511cb540,
+ 0x481ab540,
+ 0xa103f208,
+ 0xa085f208,
+ 0xa929f210,
+ 0xa08af208,
+ 0xa92ef210,
+ 0xa8b2f210,
+ 0xa10df208,
+ 0xa8b1f250,
+ 0xa112f208,
+ 0xa096f208,
+ 0xa09af208,
+ 0x0cf2c050,
+ 0xf24808c0,
+ 0xb421a085,
+ 0x0a0ac000,
+ 0x0c92c036,
+ 0xc000b481,
+ 0x1c8c0896,
+ 0xc000b421,
+ 0x8c00f031,
+ 0x8d80e131,
+ 0xb7c09ea3,
+ 0xb55f5e0c,
+ 0x0d027ffc,
+ 0x4078b960,
+ 0xa103f208,
+ 0xd1229dba,
+ 0x9e2d5d0d,
+ 0xa8e5f029,
+ 0x2caed012,
+ 0xd1265c88,
+ 0x9e4a5908,
+ 0xaa4de038,
+ 0x28bc0d04,
+ 0x324250a8,
+ 0xffffa241,
+ 0xf01091c1,
+ 0xc036aa61,
+ 0xb4810c8e,
+ 0xb73fc000,
+ 0x1c847fec,
+ 0xc000b421,
+ 0x996bc014,
+ 0xaa4dd208,
+ 0xc0007500,
+ 0xf2909262,
+ 0xf011aa2d,
+ 0xc0002ac8,
+ 0xc80091a4,
+ 0x75002a00,
+ 0x90c4c000,
+ 0xa9c6f208,
+ 0x9ae3fff4,
+ 0xa2cdd208,
+ 0xa8adf290,
+ 0x2a14d011,
+ 0xc0007500,
+ 0xc8099104,
+ 0xc5c20a42,
+ 0xb5800a70,
+ 0xb780548c,
+ 0x7500468c,
+ 0x9162c000,
+ 0x5a31c080,
+ 0xc03e2a04,
+ 0xb4810cea,
+ 0xc000c000,
+ 0xb7809280,
+ 0x7502450c,
+ 0x915cc000,
+ 0x2880c100,
+ 0x0a0e7440,
+ 0x1a46d001,
+ 0x9060c000,
+ 0xc03e0a02,
+ 0xb4810cea,
+ 0xb79fc000,
+ 0xb7bf7a6e,
+ 0xb7df7aee,
+ 0xc0067b6e,
+ 0x9c228c00,
+ 0x558cb780,
+ 0x0892c0c8,
+ 0x40f8b960,
+ 0x0948d011,
+ 0xaa45f029,
+ 0x5889d0a4,
+ 0xc000b481,
+ 0xffff0890,
+ 0x9c229321,
+ 0xb720a605,
+ 0xb780468c,
+ 0x74407d0c,
+ 0xb5800a04,
+ 0xc0007d0c,
+ 0xb7839364,
+ 0x75007108,
+ 0x92c2c000,
+ 0x450cb720,
+ 0x518cb780,
+ 0x3a407442,
+ 0x518cb580,
+ 0x919cc000,
+ 0x5e0cb780,
+ 0xa889d208,
+ 0xc0007440,
+ 0x850690a4,
+ 0x7818b543,
+ 0x0a42c801,
+ 0x0a00c010,
+ 0x0ceac032,
+ 0xc000b481,
+ 0x08c2c008,
+ 0x1ce0c002,
+ 0xc000b421,
+ 0x0a42c008,
+ 0x0d0ec030,
+ 0xc000b482,
+ 0x0c82c450,
+ 0x1a40c008,
+ 0xc000b481,
+ 0x4220b101,
+ 0x38c0c002,
+ 0x0c82c050,
+ 0xc000b421,
+ 0x0d82c0c0,
+ 0xc0080992,
+ 0xc0080d02,
+ 0xfff40902,
+ 0xc4509aa7,
+ 0x0a020c86,
+ 0xc000b481,
+ 0x4260b102,
+ 0x0a00c008,
+ 0x0d0ec030,
+ 0xc000b482,
+ 0xc0080c84,
+ 0xb4811a00,
+ 0xb101c000,
+ 0xc0804220,
+ 0xc8015a35,
+ 0x09400902,
+ 0x28fcc00e,
+ 0x5910d0a8,
+ 0x29ced071,
+ 0x0c8ac030,
+ 0xb4419dc8,
+ 0x0a42c000,
+ 0xb4810c84,
+ 0x7680c000,
+ 0x9182c000,
+ 0x5f0cb720,
+ 0x44bdb740,
+ 0x8a27f210,
+ 0x8021f310,
+ 0x44adb580,
+ 0x0c86c450,
+ 0xb4810a02,
+ 0xb102c000,
+ 0x0cec4260,
+ 0xc000b481,
+ 0x4260b102,
+ 0x8926c201,
+ 0xc03408ea,
+ 0xb4210c9e,
+ 0xb780c000,
+ 0xf248590c,
+ 0x8d40a891,
+ 0x88a3f210,
+ 0x0d060d82,
+ 0x5a0cc280,
+ 0x510cb580,
+ 0xffd4018b,
+ 0xc0809959,
+ 0xb4a10ca2,
+ 0xb780c000,
+ 0x0c88480c,
+ 0xc000b481,
+ 0x5a94b7a0,
+ 0x0d82c002,
+ 0x9a22fff4,
+ 0xffff700a,
+ 0xb7809364,
+ 0xf2107d0c,
+ 0xf250a8ad,
+ 0x6243a8a2,
+ 0x71029e49,
+ 0x90b8c000,
+ 0xb5438506,
+ 0xb7807618,
+ 0x7500468c,
+ 0x9242c000,
+ 0xffd40d82,
+ 0xb7839a10,
+ 0x75007208,
+ 0x90e2c000,
+ 0xffd40d82,
+ 0xc000995a,
+ 0x0d8290a0,
+ 0x9a22ffd4,
+ 0xc0800a02,
+ 0xb4810ca6,
+ 0xc002c000,
+ 0xfff40d92,
+ 0x740099f3,
+ 0x9364ffff,
+ 0x09820dea,
+ 0xc1210d0a,
+ 0xffb40902,
+ 0xb7809ba8,
+ 0xf248590c,
+ 0xc0a1a992,
+ 0x0d040d02,
+ 0xffb409c2,
+ 0xc0c09b93,
+ 0x09920d82,
+ 0x09420d42,
+ 0x99f6fff4,
+ 0xc03e0a02,
+ 0xb4810cea,
+ 0xb79fc000,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa60d9c22,
+ 0x590cb720,
+ 0x49b5b720,
+ 0x2e10d091,
+ 0x9e8e7500,
+ 0x9282c001,
+ 0x2e14d011,
+ 0xb5438506,
+ 0x0e827118,
+ 0xb5a07500,
+ 0xb5a37d14,
+ 0xc0007610,
+ 0xb5439082,
+ 0xd1117198,
+ 0x75002e10,
+ 0x9082c000,
+ 0x7218b543,
+ 0x2e10d211,
+ 0xc0007500,
+ 0xb5439082,
+ 0xb7807298,
+ 0xd151600c,
+ 0xf2080ee0,
+ 0x9eaba88e,
+ 0x9c620603,
+ 0x5b0cb720,
+ 0xaa21d208,
+ 0x41abb580,
+ 0x41b3b720,
+ 0x4392b5a0,
+ 0x5094b520,
+ 0x5a8cb7c0,
+ 0xaa49f2d0,
+ 0xa8d9f208,
+ 0xc0007048,
+ 0xb7809142,
+ 0xf248600c,
+ 0xd152a88d,
+ 0x9e8c0de0,
+ 0xb7839c62,
+ 0x75007108,
+ 0x9062c004,
+ 0x4694b720,
+ 0xc0037640,
+ 0xb72093c4,
+ 0x7440438a,
+ 0x90e2c000,
+ 0xaa55da08,
+ 0xc0017048,
+ 0xb7a09004,
+ 0xb7835e14,
+ 0xb7a07188,
+ 0xda08600c,
+ 0xb520a9d6,
+ 0x850a4392,
+ 0xd2107500,
+ 0xf208a0aa,
+ 0xe001a8a9,
+ 0x9d4f8d24,
+ 0x9e8c1d84,
+ 0xf2089c62,
+ 0x030baa31,
+ 0x9ea40d8a,
+ 0xc0009c62,
+ 0xb7809180,
+ 0xf208600c,
+ 0xb7a0a891,
+ 0x0d865e14,
+ 0x9e8c0309,
+ 0xb7809c62,
+ 0xb723438a,
+ 0xb7207208,
+ 0x0a045b14,
+ 0x438ab580,
+ 0xaa29d210,
+ 0xb5807440,
+ 0xc0014849,
+ 0xb7a09024,
+ 0xf2085c0c,
+ 0x9eaba8c1,
+ 0x9c629e8c,
+ 0xaa29d210,
+ 0xc0007500,
+ 0xf20892a4,
+ 0xf208a9a1,
+ 0x0d82a85d,
+ 0x9c629e84,
+ 0xa021f208,
+ 0xa845f248,
+ 0x09829eab,
+ 0x9c629e84,
+ 0xaa21da08,
+ 0x7b8ab581,
+ 0x450cb780,
+ 0xc0007502,
+ 0x0d8690bc,
+ 0x9865ffd4,
+ 0xaa29d210,
+ 0xc0007500,
+ 0xb7209122,
+ 0xb780578c,
+ 0x3a08412d,
+ 0x90e0c000,
+ 0x578cb720,
+ 0x412db780,
+ 0xb5802a75,
+ 0xb723412d,
+ 0xb7807108,
+ 0x7440518c,
+ 0xb5803a04,
+ 0xc000518c,
+ 0xd15191c4,
+ 0xb7400e60,
+ 0xd2085b0c,
+ 0xd208a882,
+ 0xb520a881,
+ 0xd8085094,
+ 0xb79fa0cd,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0xba1b9c22,
+ 0x9e594003,
+ 0xba039e5c,
+ 0xba124002,
+ 0x70404003,
+ 0xc0009e53,
+ 0x70069136,
+ 0x9158c000,
+ 0x72c4c812,
+ 0x9180c000,
+ 0x70029e51,
+ 0x90bcc000,
+ 0xc0009e82,
+ 0xcc1090a0,
+ 0x9e9a70c8,
+ 0x9c229e50,
+ 0x8460a61d,
+ 0xc0340a46,
+ 0xb4810c9e,
+ 0xb760c000,
+ 0xfff45394,
+ 0xb78098b1,
+ 0xdffc490a,
+ 0xd0127d3e,
+ 0xc0002b06,
+ 0xb7809104,
+ 0xdffc498a,
+ 0xc0007d3e,
+ 0x778290a2,
+ 0x90c4c000,
+ 0x0b820f82,
+ 0x9000c001,
+ 0x5414b760,
+ 0x9898fff4,
+ 0x5bc3d024,
+ 0x5884c000,
+ 0x4002ba39,
+ 0x5c84d3a2,
+ 0xc3809e8f,
+ 0xc2005a7f,
+ 0x02785a79,
+ 0x5b8bc200,
+ 0x4003ba3f,
+ 0x5e7fd3a2,
+ 0xc2009e79,
+ 0x02185a79,
+ 0x5b8bd224,
+ 0x490ab780,
+ 0x7d3edffc,
+ 0x9164c001,
+ 0x498ab780,
+ 0x400aba24,
+ 0x9124c000,
+ 0xb55f0902,
+ 0xb55f7fec,
+ 0xc00b7f6c,
+ 0xb7409180,
+ 0x9e7e6384,
+ 0x628cb720,
+ 0xd2261a04,
+ 0x9e2d5908,
+ 0x6304b760,
+ 0xb5bf028f,
+ 0xb5df7f6c,
+ 0xe0307fec,
+ 0xd226a34e,
+ 0x9d1d5904,
+ 0xa3cdc830,
+ 0xc8309e3d,
+ 0xc00aa3ce,
+ 0xb7809240,
+ 0xba24498a,
+ 0x0e82400a,
+ 0x92a4c002,
+ 0x5994b720,
+ 0x628cb7c0,
+ 0x404bb780,
+ 0xc2009d6d,
+ 0x1a045a11,
+ 0x5904d226,
+ 0xa3cdc830,
+ 0x404bb780,
+ 0xb7e0010d,
+ 0x0089638c,
+ 0x5a11c200,
+ 0xd2261a04,
+ 0xd8295908,
+ 0x5891a9c6,
+ 0x9d531884,
+ 0x5904d0a6,
+ 0x630cb7a0,
+ 0xa306e270,
+ 0xd8089d47,
+ 0x0d02a9c1,
+ 0x4003ba1b,
+ 0xa3a6c850,
+ 0x4002ba1b,
+ 0x9b3ffff4,
+ 0x498ab780,
+ 0x4002ba24,
+ 0x5904d226,
+ 0x9d4b0a04,
+ 0x5904d226,
+ 0x4002ba00,
+ 0xc8509d53,
+ 0xca50a9c6,
+ 0x0d02a985,
+ 0x7f6cb51f,
+ 0x4003ba1b,
+ 0x4002ba1b,
+ 0x9b25fff4,
+ 0x9ded9eba,
+ 0x4002ba00,
+ 0x7fecb51f,
+ 0xc002010b,
+ 0xb7c09260,
+ 0x9eba628c,
+ 0x5904d226,
+ 0x630cb7a0,
+ 0x18c2d011,
+ 0x9d4b0a04,
+ 0x5904d226,
+ 0x5904d0a8,
+ 0xd0a69d53,
+ 0x9d445908,
+ 0xb7609ded,
+ 0xc830639c,
+ 0xc860a3c1,
+ 0xca60a9c6,
+ 0xe030a985,
+ 0xc850a34e,
+ 0xba1ba3a6,
+ 0xba1b4003,
+ 0xfff44002,
+ 0xb7809af6,
+ 0xba24498a,
+ 0xd2264002,
+ 0x0a045904,
+ 0xd2269d4b,
+ 0xba005904,
+ 0x9d534002,
+ 0xa9c6c850,
+ 0xa985ca50,
+ 0xb51f050f,
+ 0xba1b7f6c,
+ 0xba1b4003,
+ 0xfff44002,
+ 0x9ded9adc,
+ 0x6394b720,
+ 0x4002ba00,
+ 0x7fecb51f,
+ 0x010b7782,
+ 0xc0000503,
+ 0xb5ff90e2,
+ 0xb5ff7a6a,
+ 0x0e867c72,
+ 0x498ab780,
+ 0x4002ba0c,
+ 0x5908d0a6,
+ 0xe0209dc7,
+ 0x7502aa29,
+ 0x93c2c000,
+ 0x5904d0a6,
+ 0xd2a89e3d,
+ 0xcffe5d04,
+ 0xc8300ca3,
+ 0xc001a8cd,
+ 0xf2108184,
+ 0xda08803b,
+ 0x9d53a081,
+ 0xa886ca20,
+ 0x0e52d011,
+ 0x9ea59d44,
+ 0x8c00f051,
+ 0x4003ba2d,
+ 0xa086ca10,
+ 0x498ab780,
+ 0x4002ba24,
+ 0x08c2d011,
+ 0x5908d0a6,
+ 0xe0209dc7,
+ 0x7502aa29,
+ 0x93c2c000,
+ 0x5904d0a6,
+ 0xd2a89e3d,
+ 0xcffe5d04,
+ 0xc83087a3,
+ 0xc001a8cd,
+ 0xf0108184,
+ 0x9e2d8037,
+ 0xa081da08,
+ 0xd0119d47,
+ 0xc8200e52,
+ 0x9ea5a8a6,
+ 0x8d00e053,
+ 0x4003ba2d,
+ 0xa0cec830,
+ 0xc0017744,
+ 0xc0009142,
+ 0x774290fa,
+ 0x9022c002,
+ 0x9120c002,
+ 0xc0027746,
+ 0xb77f90c4,
+ 0xb77f7a72,
+ 0xb75f7aea,
+ 0xba1b7b72,
+ 0xba1b4003,
+ 0xba124002,
+ 0xfff44003,
+ 0xb77f9a5e,
+ 0xb77f7c72,
+ 0xb75f7cea,
+ 0xba287d72,
+ 0xba1b4002,
+ 0xba1b4003,
+ 0xba124002,
+ 0xc0004003,
+ 0xb77f9300,
+ 0xb77f7a72,
+ 0x0d027aea,
+ 0x4003ba1b,
+ 0x4002ba1b,
+ 0x9a43fff4,
+ 0x7c72b77f,
+ 0x7ceab77f,
+ 0x4002ba28,
+ 0xba1b0d02,
+ 0xba1b4003,
+ 0xfff44002,
+ 0xba309a36,
+ 0xc0004002,
+ 0xb79f91c0,
+ 0xb73f7a6a,
+ 0xba2c7c6a,
+ 0xba314002,
+ 0xc0004002,
+ 0x0b029080,
+ 0xb7200a82,
+ 0xb740550c,
+ 0xd0a66204,
+ 0x9e2d5908,
+ 0xaa4de030,
+ 0x75002a04,
+ 0x9262c008,
+ 0xc0340a42,
+ 0xb4810c9e,
+ 0xb760c000,
+ 0xffd45414,
+ 0xd0249ae9,
+ 0xc0005943,
+ 0xba115884,
+ 0xd1224002,
+ 0xc1005c84,
+ 0xc2005a7f,
+ 0x02285a75,
+ 0x590fc200,
+ 0x5a04c100,
+ 0xb73f9e8a,
+ 0xba127f6c,
+ 0x9e524003,
+ 0xba041242,
+ 0xd1224002,
+ 0x09f25e7f,
+ 0x7000c414,
+ 0x4002ba09,
+ 0x7046c410,
+ 0xc2007400,
+ 0x02285a75,
+ 0x590fd224,
+ 0xc0000003,
+ 0x10039076,
+ 0x7f6cb79f,
+ 0x7fecb73f,
+ 0x4002ba00,
+ 0x00c0d020,
+ 0x5e04d122,
+ 0xba041242,
+ 0xd0a24002,
+ 0x9ea25e7d,
+ 0x5c870494,
+ 0xc4149e4a,
+ 0xba097000,
+ 0xc4104002,
+ 0x74007046,
+ 0xba120003,
+ 0xc0004002,
+ 0x10039076,
+ 0x7fecb79f,
+ 0x4002ba00,
+ 0x00c0d020,
+ 0x5a04c100,
+ 0xba04124a,
+ 0xd0a24002,
+ 0x9d4d5e7d,
+ 0x7000c414,
+ 0x4002ba09,
+ 0x7046c410,
+ 0x00037400,
+ 0x0496c301,
+ 0xba115c87,
+ 0xc0004003,
+ 0x10039076,
+ 0x4002ba00,
+ 0x5e04d122,
+ 0x00d0d020,
+ 0xba04124c,
+ 0xd0a24002,
+ 0x9dcd5e7d,
+ 0x0496c001,
+ 0x9e4a5c87,
+ 0x7000c414,
+ 0x4002ba09,
+ 0x7046c410,
+ 0x00037400,
+ 0x4002ba12,
+ 0x9076c000,
+ 0xd1241003,
+ 0xba005888,
+ 0x02604002,
+ 0x58fdc200,
+ 0xcffe0242,
+ 0x9e492cf0,
+ 0x5414b740,
+ 0x5a07c200,
+ 0x5a48c200,
+ 0xc2003042,
+ 0x5d0b0d00,
+ 0xc000b402,
+ 0x5414b720,
+ 0x0c90c200,
+ 0xb4015c8b,
+ 0xb740c000,
+ 0xc2005414,
+ 0x5d0b0d20,
+ 0xc000b402,
+ 0x5414b720,
+ 0x0cb0c200,
+ 0xb4015c8b,
+ 0xb740c000,
+ 0xc2005414,
+ 0x5d0b0d40,
+ 0xc000b402,
+ 0x5414b720,
+ 0x0cd0c200,
+ 0xb4015c8b,
+ 0xb740c000,
+ 0xc2005414,
+ 0x5d0b0d60,
+ 0xc000b402,
+ 0x5414b720,
+ 0x0cf0c200,
+ 0xb4015c8b,
+ 0xb740c000,
+ 0xc2025414,
+ 0x5d0b0d00,
+ 0xc000b402,
+ 0x5414b720,
+ 0x0c90c202,
+ 0xb4015c8b,
+ 0xb740c000,
+ 0xc2025414,
+ 0x5d0b0d20,
+ 0xc000b402,
+ 0x5414b720,
+ 0x0cb0c202,
+ 0xb4015c8b,
+ 0xb740c000,
+ 0xc2025414,
+ 0x5d0b0d40,
+ 0xc000b402,
+ 0x5414b720,
+ 0x0cd0c202,
+ 0xb4015c8b,
+ 0xb740c000,
+ 0xc2025414,
+ 0x5d0b0d60,
+ 0xc000b402,
+ 0x5414b720,
+ 0x0cf0c202,
+ 0xb4015c8b,
+ 0xb79fc000,
+ 0xb7bf7cee,
+ 0xb7df7d6e,
+ 0xb7ff7dee,
+ 0xc0027e6e,
+ 0x9c228c60,
+ 0x4b8cb720,
+ 0xc0ff9e5c,
+ 0xc0ff2a40,
+ 0x710228c0,
+ 0xc0008502,
+ 0x85069062,
+ 0x4c1cb540,
+ 0x4b94b560,
+ 0xa6059c22,
+ 0xd0519e5d,
+ 0x75002a50,
+ 0x90e4c000,
+ 0x4c0cb780,
+ 0xc0007500,
+ 0xc0c09142,
+ 0xc0120d82,
+ 0x0d0209c2,
+ 0xffd40942,
+ 0xb78099cf,
+ 0xc0344b8c,
+ 0xb4810cb6,
+ 0xc034c000,
+ 0xb4a20d32,
+ 0xb5a0c000,
+ 0xb79f4b0c,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa61d9c22,
+ 0xb7838420,
+ 0x75007108,
+ 0xc0008702,
+ 0xb7809122,
+ 0xd2885b0c,
+ 0x7440a881,
+ 0x9184c01a,
+ 0x588cb7c0,
+ 0xaa59f208,
+ 0x75002a20,
+ 0x590cb7a0,
+ 0x9162c001,
+ 0x0a50d131,
+ 0xa881da08,
+ 0x630cb780,
+ 0x628cb740,
+ 0xb5408506,
+ 0x5891551c,
+ 0x5904d0a6,
+ 0x8021f310,
+ 0x8125e210,
+ 0x4902b540,
+ 0x4982b540,
+ 0xa100da0a,
+ 0xa140d80a,
+ 0x0c8ac430,
+ 0xb4810a02,
+ 0xb101c000,
+ 0xc1804220,
+ 0xc0303880,
+ 0xb4210c8a,
+ 0xb7a0c000,
+ 0x9eb1590c,
+ 0x470cb740,
+ 0x098e0dc2,
+ 0x0d42c002,
+ 0x7fe4b55f,
+ 0x9b21ff94,
+ 0xaa55f208,
+ 0x5814b7a0,
+ 0xa8c9f208,
+ 0xa8dada08,
+ 0xa95dda08,
+ 0x480cb580,
+ 0xaa45f208,
+ 0xa0baf210,
+ 0x08d0d252,
+ 0xa0bdf210,
+ 0xa121f250,
+ 0xa235f210,
+ 0xa942da08,
+ 0x0a50d131,
+ 0xa881da08,
+ 0x404bb740,
+ 0xa947f248,
+ 0xda889e53,
+ 0x60b2a8d2,
+ 0x5a7fc080,
+ 0x5a71c200,
+ 0x58930098,
+ 0xe2105894,
+ 0xdffc80a3,
+ 0x59157e7e,
+ 0x5b90c100,
+ 0xa0bdf250,
+ 0x7fe4b75f,
+ 0x91c2c000,
+ 0x5d40e100,
+ 0x9144c000,
+ 0xaa55da88,
+ 0x4792b520,
+ 0x4882b540,
+ 0x468ab580,
+ 0xaa21f288,
+ 0x09d0d132,
+ 0xa235f250,
+ 0xa239f250,
+ 0xa941da08,
+ 0xaa61d810,
+ 0xa93bf248,
+ 0xf3106228,
+ 0xb7608021,
+ 0xf2905f0c,
+ 0xda08a229,
+ 0xd810a8c1,
+ 0xf24aaa61,
+ 0xda08a934,
+ 0xf008a942,
+ 0x0884a973,
+ 0x5d206099,
+ 0x812de220,
+ 0x82a3e210,
+ 0xa0a5f290,
+ 0xa12ef208,
+ 0xa8c2da08,
+ 0xa977f008,
+ 0xe2205c9c,
+ 0xf20880ab,
+ 0xf250a0b2,
+ 0xf250a126,
+ 0xda48a0ae,
+ 0xf250aa39,
+ 0xda48a229,
+ 0xf250a8bd,
+ 0xda48a0b1,
+ 0xf208aa29,
+ 0x6228a923,
+ 0x5a10c200,
+ 0x8021f310,
+ 0xa221f210,
+ 0xa8adda48,
+ 0xa927f208,
+ 0x590c6122,
+ 0x8025f210,
+ 0xa229f210,
+ 0xa92bf208,
+ 0x8125e210,
+ 0xa12df210,
+ 0xaa29da48,
+ 0xa225f210,
+ 0xa8adda48,
+ 0xa0b1f210,
+ 0xaa61d810,
+ 0x1d00c004,
+ 0x08d4d131,
+ 0x5a40c200,
+ 0x5a51c200,
+ 0xa235f290,
+ 0x402bb780,
+ 0x1c80c002,
+ 0x4f94b540,
+ 0x5014b520,
+ 0x5a40c200,
+ 0x5a51c200,
+ 0xa239f290,
+ 0x0cf2c42e,
+ 0xb4810a02,
+ 0xb101c000,
+ 0x28844220,
+ 0xd1327440,
+ 0xc0000b50,
+ 0xda109102,
+ 0xc09caa41,
+ 0xc011753e,
+ 0xc0c09332,
+ 0xc05008c6,
+ 0xb4210ce2,
+ 0xf208c000,
+ 0xd131a959,
+ 0xda080a50,
+ 0xd052a881,
+ 0x764028a0,
+ 0xb5205891,
+ 0xc0004f0c,
+ 0x0a029222,
+ 0x0caec060,
+ 0xc000b481,
+ 0xa8c1da08,
+ 0xc0007440,
+ 0x85029302,
+ 0x4f1cb540,
+ 0x9260c000,
+ 0x2900c200,
+ 0xc0007480,
+ 0x0a0a9122,
+ 0x0caec060,
+ 0xc000b481,
+ 0x90e0c000,
+ 0xc0600a06,
+ 0xb4810cae,
+ 0xf208c000,
+ 0x2a04aa59,
+ 0x850a7500,
+ 0x499cb540,
+ 0x90a2c000,
+ 0xb5408504,
+ 0xb783499c,
+ 0x75007108,
+ 0x6014b7e0,
+ 0x92e2c000,
+ 0x7208b783,
+ 0xc0007500,
+ 0xb7809244,
+ 0x7500468c,
+ 0x91a2c000,
+ 0x7288b783,
+ 0xc0007500,
+ 0xb7609104,
+ 0xf2105c14,
+ 0x9ea4aa61,
+ 0xf2089c62,
+ 0x2a20aa59,
+ 0xc0007500,
+ 0xda0890e2,
+ 0x7500aa41,
+ 0x9244c000,
+ 0x5b0cb780,
+ 0x548cb720,
+ 0xa98eda08,
+ 0x9c629e8c,
+ 0x7108b783,
+ 0xc0007500,
+ 0x850690a2,
+ 0x7b18b543,
+ 0xaa59f208,
+ 0x75002a20,
+ 0x9082c001,
+ 0x08bac0e0,
+ 0x0cfac038,
+ 0xc000b421,
+ 0xaa59f208,
+ 0x498cb720,
+ 0x1cf8851e,
+ 0x75002a04,
+ 0xb52038d0,
+ 0xc084498c,
+ 0xe00108e2,
+ 0xb5408d28,
+ 0xb4214d9c,
+ 0xb780c000,
+ 0x088a610c,
+ 0x0c80c002,
+ 0x528cb580,
+ 0xc000b421,
+ 0x98f4ffd4,
+ 0x498cb780,
+ 0x0c82c03e,
+ 0xc000b481,
+ 0x4d8cb720,
+ 0x0c82c050,
+ 0xc000b421,
+ 0xa941da08,
+ 0xa8b5f290,
+ 0xa946da08,
+ 0x9e536123,
+ 0xaa41da08,
+ 0xb7206097,
+ 0x87025e94,
+ 0x7c82b541,
+ 0xb540857f,
+ 0x851a459a,
+ 0x449ab540,
+ 0x1a040d86,
+ 0x4e0cb580,
+ 0x405bb540,
+ 0xb5408526,
+ 0xb540415b,
+ 0x5891460a,
+ 0xb52018a0,
+ 0xb55f40cb,
+ 0xc0347fe4,
+ 0xb75f9831,
+ 0xda087fe4,
+ 0x8506a8c6,
+ 0x7a18b543,
+ 0x7a80b543,
+ 0x4000b544,
+ 0x4080b544,
+ 0x7b80b543,
+ 0xaa35f290,
+ 0xb7209e49,
+ 0xb5435894,
+ 0x62437c00,
+ 0x434db720,
+ 0x58c88502,
+ 0x2880c101,
+ 0xda109e89,
+ 0x0a82a9c2,
+ 0x4e9cb540,
+ 0x521cb540,
+ 0xc0ff5dc0,
+ 0xca012dc0,
+ 0xc2003db0,
+ 0xb5805a11,
+ 0x3596450a,
+ 0x99a2fff4,
+ 0x0d82c0c0,
+ 0x09c2c012,
+ 0x09420d02,
+ 0x9b8cffb4,
+ 0x8546714e,
+ 0x9148c001,
+ 0xfff49dcf,
+ 0xc0c099a4,
+ 0xc0120d82,
+ 0x0d0209c2,
+ 0xffb40906,
+ 0xd0919b7d,
+ 0x71481a70,
+ 0xd00b0a02,
+ 0xda100a42,
+ 0xc200a9c2,
+ 0x9ea15a28,
+ 0xc0ff5dc0,
+ 0xc8012dc0,
+ 0x35963db0,
+ 0x9978fff4,
+ 0x0a50d051,
+ 0x5a40c200,
+ 0x5ac1c200,
+ 0x8506714e,
+ 0x9346fffe,
+ 0xaa71f250,
+ 0xcfce7500,
+ 0xb540857f,
+ 0xc0007f9c,
+ 0xf2089102,
+ 0xb760a9de,
+ 0x9ea4450a,
+ 0x0d829c62,
+ 0x98f7c014,
+ 0x7a88b783,
+ 0x85027500,
+ 0x7a18b543,
+ 0x92a4c002,
+ 0x5c0cb7a0,
+ 0x068f0f02,
+ 0x7108b783,
+ 0xc0027500,
+ 0xb7839082,
+ 0x75007208,
+ 0x93e2c001,
+ 0x7b08b783,
+ 0xc0007500,
+ 0xf2089182,
+ 0xb5c3a9a2,
+ 0xf2507b10,
+ 0x9e84a869,
+ 0xb5009c62,
+ 0xb783430a,
+ 0x75007c08,
+ 0x9382c000,
+ 0xa825f210,
+ 0xb5c39eab,
+ 0x9e847c10,
+ 0xf2509c62,
+ 0x9ea4aa21,
+ 0xf2089c62,
+ 0xf210a9a1,
+ 0x0d86a83d,
+ 0x9c629e84,
+ 0xaa25f250,
+ 0xf2089eab,
+ 0x0986a021,
+ 0x9c629ea4,
+ 0x7c08b783,
+ 0xc0007500,
+ 0x0d8691e4,
+ 0x98abc014,
+ 0x7c08b783,
+ 0xffff7500,
+ 0xc0009342,
+ 0x0d8690a0,
+ 0x98a1c014,
+ 0x7a88b783,
+ 0xfffd7500,
+ 0xc0c09262,
+ 0xc0120d82,
+ 0x0d0209c2,
+ 0xffb40906,
+ 0xc8019aeb,
+ 0xb5800a02,
+ 0xc0c0520c,
+ 0xc0120d82,
+ 0x0d0209c2,
+ 0xffb40942,
+ 0xb7609adf,
+ 0xfff45214,
+ 0x0d8698e9,
+ 0x98f7fff4,
+ 0x0d82c0c0,
+ 0x09c2c012,
+ 0x09060d02,
+ 0x9ad0ffb4,
+ 0xc0068502,
+ 0xc4300892,
+ 0x09020c9a,
+ 0x521cb540,
+ 0x8510c006,
+ 0xc000b441,
+ 0x4220b104,
+ 0x75002a40,
+ 0xb3139d4f,
+ 0x00874422,
+ 0x1884e000,
+ 0x9284ffff,
+ 0x4694b740,
+ 0x0892c006,
+ 0x0c9ac430,
+ 0xc0060902,
+ 0xb4418512,
+ 0xb104c000,
+ 0xc0024220,
+ 0x75002a00,
+ 0xb3149d53,
+ 0x00894422,
+ 0x1884e000,
+ 0x9264ffff,
+ 0xc03e0a02,
+ 0xb9600cea,
+ 0xb48140e8,
+ 0xffffc000,
+ 0x768093c1,
+ 0x9122c000,
+ 0xc03e0a02,
+ 0xb4810cea,
+ 0xc000c000,
+ 0xb7809180,
+ 0x7504450c,
+ 0xc03e088a,
+ 0xd00c0cea,
+ 0xb4211894,
+ 0xc0c0c000,
+ 0x09e20d82,
+ 0x09420d02,
+ 0x9a7cffb4,
+ 0xc0340882,
+ 0xb4210cb6,
+ 0xf208c000,
+ 0x2a20aa59,
+ 0xc0007500,
+ 0xc45091e2,
+ 0x0a020cea,
+ 0xc000b481,
+ 0x4220b101,
+ 0x5b0cb780,
+ 0x28fcc002,
+ 0xa08dda08,
+ 0x7deeb79f,
+ 0x7e6eb7bf,
+ 0x7eeeb7df,
+ 0x7f6eb7ff,
+ 0x8c20c002,
+ 0xa60d9c22,
+ 0x620cb780,
+ 0x520cb720,
+ 0xf2080a82,
+ 0xc01ca882,
+ 0xf2087efe,
+ 0x0309a081,
+ 0xa086f208,
+ 0x9182c000,
+ 0x0d82c0c0,
+ 0x09c2c012,
+ 0x09060d02,
+ 0x9a40ffb4,
+ 0x9240c000,
+ 0x0cb2c434,
+ 0xb4810a02,
+ 0xb101c000,
+ 0x28844220,
+ 0xc0007440,
+ 0xb78390e2,
+ 0x75007a08,
+ 0x92c2c00c,
+ 0x4e8cb780,
+ 0xc0007502,
+ 0x0d8290c4,
+ 0x9a92c014,
+ 0xb7403ac0,
+ 0xb7405894,
+ 0xd810580c,
+ 0xf088a8c5,
+ 0xb720aa55,
+ 0x62434592,
+ 0x9e499e96,
+ 0x5a11c200,
+ 0xba090a04,
+ 0xba244002,
+ 0x70484002,
+ 0xc0000685,
+ 0xb7809138,
+ 0x2a51498c,
+ 0x498cb580,
+ 0x91c0c003,
+ 0xaa39f210,
+ 0x75002a04,
+ 0x93a2c002,
+ 0x498cb780,
+ 0xd0117440,
+ 0xb5403942,
+ 0xc002498c,
+ 0xb760929c,
+ 0x9e5c4792,
+ 0x400aba24,
+ 0x91a2c002,
+ 0x911cc002,
+ 0x660ab760,
+ 0x5f84b740,
+ 0x9e2d9e99,
+ 0x4003ba09,
+ 0x5e7fd0a2,
+ 0xc2009e48,
+ 0x02085a6d,
+ 0x5a17c200,
+ 0x5908d226,
+ 0xc2000c06,
+ 0x12085a14,
+ 0xe0389e40,
+ 0xba24a94e,
+ 0x50904002,
+ 0x79029e54,
+ 0x9102c001,
+ 0x4d88b781,
+ 0xc0017500,
+ 0xb7809064,
+ 0x9e48470a,
+ 0x4002ba24,
+ 0xc0007008,
+ 0x76409378,
+ 0x90e4c000,
+ 0x4d08b781,
+ 0xc0007502,
+ 0xd01192c2,
+ 0x29591e32,
+ 0x498cb540,
+ 0x48fd9e52,
+ 0x470ab560,
+ 0x4d90b501,
+ 0x478ab580,
+ 0xa0c120a2,
+ 0x90a0c000,
+ 0xb5418502,
+ 0xb7804d98,
+ 0xba24458a,
+ 0xc000400a,
+ 0xb78090fc,
+ 0x0a04660a,
+ 0x660ab580,
+ 0x498cb720,
+ 0x0c82c03e,
+ 0xc000b421,
+ 0x458ab780,
+ 0xb5800a04,
+ 0xc014458a,
+ 0xb7839aff,
+ 0x75007108,
+ 0x9222c002,
+ 0x7208b783,
+ 0xc0027500,
+ 0xb7809182,
+ 0x2a40520c,
+ 0xc0007500,
+ 0xb78490e4,
+ 0x751a4008,
+ 0x9024c002,
+ 0x5a0cb780,
+ 0x7c92b721,
+ 0xa881da08,
+ 0x71029e4c,
+ 0x9284c000,
+ 0x430ab780,
+ 0xb5418502,
+ 0xb5807c9a,
+ 0xb760440a,
+ 0xb7804412,
+ 0x8506548c,
+ 0x7b18b543,
+ 0x7c18b543,
+ 0x9c629ea4,
+ 0xaa39f210,
+ 0x75002a10,
+ 0x93e2c000,
+ 0x7c08b783,
+ 0xc0007500,
+ 0xb78190e4,
+ 0x75027c8a,
+ 0x92a4c000,
+ 0x7b08b783,
+ 0x09027500,
+ 0x0922d001,
+ 0x0c82c438,
+ 0xb4810a02,
+ 0xb101c000,
+ 0x28f14220,
+ 0xc0383094,
+ 0xb4210c82,
+ 0xc014c000,
+ 0xc0c098a7,
+ 0x09e20d82,
+ 0xc01e0d02,
+ 0xffb4097e,
+ 0xc0c0992f,
+ 0x09920d82,
+ 0x0d02c100,
+ 0x0902c100,
+ 0x9926ffb4,
+ 0x0c8ec430,
+ 0xb4810a02,
+ 0xb104c000,
+ 0xc1004220,
+ 0xc0303a00,
+ 0xb4810c8e,
+ 0xf210c000,
+ 0x2a20aa39,
+ 0xc0017500,
+ 0xb7809342,
+ 0xd226550c,
+ 0x9d435908,
+ 0xa885e060,
+ 0x2a12d011,
+ 0xc0007500,
+ 0xd01190e4,
+ 0x75002a14,
+ 0x9082c000,
+ 0x9828ffd4,
+ 0x550cb720,
+ 0x5908d0a6,
+ 0xe0609d47,
+ 0x2a04aa25,
+ 0xc0007500,
+ 0xb7209382,
+ 0xb7205994,
+ 0xb780498a,
+ 0x0884404b,
+ 0xba099e89,
+ 0x9e4a4003,
+ 0x5a11c200,
+ 0xb5207088,
+ 0xc000498a,
+ 0xb7809158,
+ 0x8502490a,
+ 0x499ab540,
+ 0xb5800a04,
+ 0xc430490a,
+ 0x0a020c8a,
+ 0xc000b481,
+ 0x4220b104,
+ 0x3a00c180,
+ 0x0c8ac030,
+ 0xc000b481,
+ 0x4e8cb780,
+ 0xa955f290,
+ 0x71040a04,
+ 0x4e8cb580,
+ 0x90a4c000,
+ 0xb5408502,
+ 0xda104e9c,
+ 0xb720a8a5,
+ 0x58914592,
+ 0xba0960a3,
+ 0x9e4c4003,
+ 0x08843a84,
+ 0x020b7102,
+ 0x2a3dcffe,
+ 0x4426b354,
+ 0xd0510289,
+ 0x744028d0,
+ 0x9142c000,
+ 0x0d82c0c0,
+ 0x09c2c012,
+ 0x09420d02,
+ 0x98a2ffb4,
+ 0x520cb780,
+ 0xc0007500,
+ 0x9eab90a2,
+ 0x9ab9ffd4,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0xa205f839,
+ 0x4008b724,
+ 0x5284b740,
+ 0x448ab780,
+ 0x5908d0a6,
+ 0xb7409e2d,
+ 0xe030590c,
+ 0xb760a94e,
+ 0xb744619c,
+ 0xb7444098,
+ 0x1a044000,
+ 0x448ab580,
+ 0xa8cdc030,
+ 0x5a40e200,
+ 0x0a20d251,
+ 0xa882da08,
+ 0x82a3e210,
+ 0x5214b540,
+ 0x5c905c95,
+ 0x4008b524,
+ 0x92c4c001,
+ 0x4088b784,
+ 0xd3f10a04,
+ 0x744428ce,
+ 0x4088b584,
+ 0x9034c001,
+ 0x7f94b760,
+ 0xb5438506,
+ 0x24a67a98,
+ 0xb5437640,
+ 0xb5207c18,
+ 0xc0005214,
+ 0xd1319202,
+ 0xb78008a0,
+ 0xc801402b,
+ 0x9e483c80,
+ 0x5a40c200,
+ 0x2a40c0ff,
+ 0xb5803208,
+ 0x0806520c,
+ 0xaa1df9f8,
+ 0xb7249c22,
+ 0xb7404088,
+ 0xd0a65e84,
+ 0x9e2d5904,
+ 0xaa4dc830,
+ 0x448ab580,
+ 0x09a0d132,
+ 0x458ab720,
+ 0xaa61d810,
+ 0x4002ba19,
+ 0x5a11c200,
+ 0x70c81a04,
+ 0x9104c000,
+ 0x7f8cb780,
+ 0x3a00c040,
+ 0x7f8cb580,
+ 0x4f0cb720,
+ 0x0a18d011,
+ 0xc00070c8,
+ 0xb7809104,
+ 0xc0107f8c,
+ 0xb5803a00,
+ 0xd0117f8c,
+ 0x70c80a1c,
+ 0x9104c000,
+ 0x7f8cb780,
+ 0x3a00c020,
+ 0x7f8cb580,
+ 0x580cb780,
+ 0xa916f288,
+ 0xa919f288,
+ 0xb7209e50,
+ 0xd011460a,
+ 0x62411a24,
+ 0x4002ba09,
+ 0x704800b2,
+ 0x9106c000,
+ 0x7f8cb780,
+ 0x2a7acfff,
+ 0x7f8cb580,
+ 0x1a22d011,
+ 0x62459e52,
+ 0xc0007048,
+ 0xb7809106,
+ 0xc7fe7f8c,
+ 0xb5802a7e,
+ 0xb7407f8c,
+ 0xd0a2451a,
+ 0xf3105e11,
+ 0x70c88821,
+ 0x9104c000,
+ 0x7f8cb780,
+ 0x2a4ecfff,
+ 0x7f8cb580,
+ 0x588cb740,
+ 0x7f8cb720,
+ 0xaa45d808,
+ 0x9e8a9e50,
+ 0x5a11c200,
+ 0x62091a04,
+ 0x5214b720,
+ 0xba240a04,
+ 0x70c84002,
+ 0xb5202494,
+ 0xc0005214,
+ 0xc8019118,
+ 0xb5203c80,
+ 0xc0005214,
+ 0xd81091c0,
+ 0xc801aa61,
+ 0x9e483c80,
+ 0x5a40c200,
+ 0x2a40c0ff,
+ 0xb5803208,
+ 0xf008520c,
+ 0xc040aa59,
+ 0x75002a00,
+ 0x9102c000,
+ 0x520cb780,
+ 0x3a00c101,
+ 0x520cb580,
+ 0x5214b760,
+ 0x99a8ffd4,
+ 0xf9f80802,
+ 0x9c22aa1d,
+ 0x5914b700,
+ 0x0e04d251,
+ 0x580cb760,
+ 0xa881da08,
+ 0x2dfcc00e,
+ 0x0cbac034,
+ 0xa961f008,
+ 0xc0805895,
+ 0x9e825810,
+ 0xc000b441,
+ 0x454ab780,
+ 0xa963f008,
+ 0x5a10c200,
+ 0x8021f310,
+ 0xa8e9f008,
+ 0xf0080c84,
+ 0xb421a261,
+ 0xb780c000,
+ 0xf00846ca,
+ 0xf310a96b,
+ 0xf0088021,
+ 0x0c84a8ed,
+ 0xa269f008,
+ 0xc000b421,
+ 0x46cab780,
+ 0xa96ff008,
+ 0x8021f310,
+ 0xa8f5f008,
+ 0xf0080c8c,
+ 0xb421a26d,
+ 0xf008c000,
+ 0x0c84a97d,
+ 0xc000b441,
+ 0x4e0cb780,
+ 0xd2240a08,
+ 0x72445890,
+ 0x931cc000,
+ 0x0e04d131,
+ 0xa903da08,
+ 0xe2109e4c,
+ 0x710288a1,
+ 0x91d6c000,
+ 0xaa75f008,
+ 0xa8fdf008,
+ 0x0a00c010,
+ 0xa275f008,
+ 0x0880c008,
+ 0xa0fdf008,
+ 0x4f8cb780,
+ 0x0cdac034,
+ 0xc000b481,
+ 0x500cb720,
+ 0xb4210c84,
+ 0xb780c000,
+ 0x0ce44f8c,
+ 0xb4810a40,
+ 0xb720c000,
+ 0x0c84500c,
+ 0xb42108c0,
+ 0xb780c000,
+ 0xb7204f8c,
+ 0x1ce4500c,
+ 0x0a00c010,
+ 0x4f8cb580,
+ 0xaa65f048,
+ 0x0880c008,
+ 0x500cb520,
+ 0xc000b481,
+ 0xa8edf048,
+ 0xb4210c84,
+ 0xf048c000,
+ 0xf048aa65,
+ 0x0c84a8ed,
+ 0x0a00c010,
+ 0xa265f048,
+ 0xaa75f048,
+ 0x0880c008,
+ 0xa0edf048,
+ 0xc000b481,
+ 0xa965f088,
+ 0xb4410c88,
+ 0xd131c000,
+ 0xb7800c80,
+ 0xf088402b,
+ 0xcffea967,
+ 0xf3102a40,
+ 0xf0888021,
+ 0x0c88a969,
+ 0xa265f088,
+ 0xc000b441,
+ 0x0c80d131,
+ 0x402bb780,
+ 0xa96bf088,
+ 0x2a40cffe,
+ 0x8021f310,
+ 0xa97df048,
+ 0xf0881c8c,
+ 0xb441a269,
+ 0xd131c000,
+ 0xb7800c80,
+ 0xf048402b,
+ 0x76c0a97f,
+ 0x5a11c200,
+ 0x5a14c200,
+ 0x8021f310,
+ 0xa27df048,
+ 0x9182c001,
+ 0x454ab720,
+ 0xb4211ca8,
+ 0xb780c000,
+ 0x0c8446ca,
+ 0x5a0dc200,
+ 0x58c0c200,
+ 0xb4813242,
+ 0xd131c000,
+ 0xd8080d04,
+ 0x0c8caa41,
+ 0x588cc200,
+ 0x28fccffe,
+ 0x5a50c200,
+ 0xb4213098,
+ 0xd251c000,
+ 0xd8080d04,
+ 0x0ca0aa41,
+ 0x5a11c200,
+ 0x2a3c1a10,
+ 0x3a00c004,
+ 0xc000b481,
+ 0x4e0cb780,
+ 0xb5800a04,
+ 0x9c224e0c,
+ 0xc43ea68d,
+ 0x0a020c92,
+ 0xc000b481,
+ 0x4220b103,
+ 0x5d8cb780,
+ 0xa885da08,
+ 0xa909da08,
+ 0xa189da08,
+ 0xa081da08,
+ 0xa105da08,
+ 0x0a020cd0,
+ 0xc000b481,
+ 0x4220b103,
+ 0x5d0cb720,
+ 0x520cb780,
+ 0x5d8cb7a0,
+ 0x40b3b720,
+ 0x412bb740,
+ 0x412bb560,
+ 0x75002a40,
+ 0xb5200303,
+ 0xb5404033,
+ 0xc00040ab,
+ 0xb78490e2,
+ 0x750a4008,
+ 0x90f2c000,
+ 0x4008b784,
+ 0xc00d751a,
+ 0xb7819204,
+ 0x0a047c8a,
+ 0x7c8ab581,
+ 0x0ca6c450,
+ 0xb4810a02,
+ 0xb103c000,
+ 0x00874220,
+ 0x2880c031,
+ 0xc00f0207,
+ 0xd0a42a7c,
+ 0xd22859e1,
+ 0x000759c1,
+ 0x287ccffe,
+ 0x0a020c88,
+ 0xc000b481,
+ 0x4220b103,
+ 0x5bc1c180,
+ 0xcffe9e9a,
+ 0x0cbc2d7c,
+ 0xc000b481,
+ 0x4220b103,
+ 0xb7400087,
+ 0xb781588c,
+ 0xc0fc7b8a,
+ 0xd0f22880,
+ 0xd0a4283e,
+ 0x9e415b19,
+ 0xa8d2d888,
+ 0xb5019e95,
+ 0xdffc7b92,
+ 0x12187e7e,
+ 0x4002ba1c,
+ 0x91c2c002,
+ 0xc00076c2,
+ 0xb7809384,
+ 0xb740480a,
+ 0xba245f84,
+ 0xc2004002,
+ 0x58ed58ff,
+ 0x589700c2,
+ 0x5908d0a6,
+ 0x58949e2d,
+ 0x9e591242,
+ 0xa8cee038,
+ 0x4a7d5230,
+ 0x249e9ea7,
+ 0xc001a0c2,
+ 0xb7809180,
+ 0xda08468a,
+ 0xba24a8a1,
+ 0x70484002,
+ 0x907cc001,
+ 0x488ab780,
+ 0x4812b720,
+ 0x5f84b740,
+ 0xb5800a04,
+ 0xba09488a,
+ 0xd0a24003,
+ 0x9e495e7f,
+ 0xc2009e2d,
+ 0x02185a6d,
+ 0x5a17c200,
+ 0x5908d226,
+ 0x5a14c200,
+ 0xe0389ea7,
+ 0x149ea94d,
+ 0x08869e4c,
+ 0x312250b0,
+ 0xb780a141,
+ 0x0a04480a,
+ 0x480ab580,
+ 0x7188b783,
+ 0xb7837500,
+ 0xc0007208,
+ 0xc01c90c4,
+ 0xc0027d3e,
+ 0xc01c9184,
+ 0xd0117d3e,
+ 0xd02103f0,
+ 0x76c20527,
+ 0xaa39f210,
+ 0xd0010882,
+ 0x2a040892,
+ 0xb7407902,
+ 0xc0005c0c,
+ 0xd80890e2,
+ 0x0a04aa49,
+ 0xa249d808,
+ 0xa94bf008,
+ 0xa94cf00a,
+ 0x8027f310,
+ 0x82a5e010,
+ 0xa249f008,
+ 0xa0cdf008,
+ 0x7688b783,
+ 0x08827500,
+ 0x0892d002,
+ 0x0a0276c2,
+ 0x0a42d002,
+ 0xc0007848,
+ 0xc07c90c2,
+ 0xda088542,
+ 0x76c2a123,
+ 0xa953f008,
+ 0x90c4c000,
+ 0xaa41da08,
+ 0x9080c000,
+ 0xaa21da08,
+ 0x80a1e310,
+ 0xaa4dd808,
+ 0xa0d1f008,
+ 0xd8080a04,
+ 0xc006a24d,
+ 0xb72091c0,
+ 0x9d2e5c0c,
+ 0xaa39f210,
+ 0x8136c301,
+ 0x8120c201,
+ 0x4525b740,
+ 0x75002a04,
+ 0x8027f010,
+ 0x8221f310,
+ 0xb5800103,
+ 0xc001452d,
+ 0x76c290a2,
+ 0x90c4c000,
+ 0xaa41da08,
+ 0x9080c000,
+ 0xaa21da08,
+ 0xa25dd808,
+ 0xc00176c6,
+ 0x76c09082,
+ 0x91a4c000,
+ 0xd80874c0,
+ 0xe002a953,
+ 0xf2108d2a,
+ 0xd808802d,
+ 0xc000a251,
+ 0x74c092c0,
+ 0xa947d848,
+ 0x8d26e002,
+ 0x9160c000,
+ 0xaa41da08,
+ 0xd84874c0,
+ 0xd808a947,
+ 0xe002a25d,
+ 0xf2108d2a,
+ 0xd848802d,
+ 0xb783a245,
+ 0x75007308,
+ 0x9302c000,
+ 0x440ab780,
+ 0x70489e41,
+ 0x9244c000,
+ 0xb5438502,
+ 0xc43a7318,
+ 0x0a020c82,
+ 0xc000b481,
+ 0x4220b103,
+ 0x29fecfef,
+ 0x0c82c03a,
+ 0xc000b461,
+ 0x440ab780,
+ 0x70489e41,
+ 0xd0020882,
+ 0x76c60892,
+ 0xd0010a02,
+ 0x78480a42,
+ 0x9242c000,
+ 0xb5438506,
+ 0xc43a7318,
+ 0x0a020c82,
+ 0xc000b481,
+ 0x4220b103,
+ 0x3980c011,
+ 0x0c82c03a,
+ 0xc000b461,
+ 0xc0017780,
+ 0x76c091a2,
+ 0x92e4c000,
+ 0xaa21da08,
+ 0xa947f008,
+ 0xa8d5d808,
+ 0x8021f310,
+ 0xa8dad808,
+ 0xa245f008,
+ 0x0c849e44,
+ 0xa0dad808,
+ 0xd80800c2,
+ 0xc000a0d5,
+ 0xda0892a0,
+ 0xf008aa41,
+ 0xd848a95b,
+ 0xf310a8c9,
+ 0xd8488021,
+ 0xf008a8ce,
+ 0x9e44a259,
+ 0xd8480c84,
+ 0x00c2a0ce,
+ 0xa0c9d848,
+ 0xaa5dd808,
+ 0xa95ff008,
+ 0xa940f04a,
+ 0xa9c7f048,
+ 0x8021f310,
+ 0xa94ff048,
+ 0xa25df008,
+ 0x8221f210,
+ 0xa8c2d848,
+ 0xa241f048,
+ 0x8037f010,
+ 0x80a9e210,
+ 0xd8480c84,
+ 0xf048a0c2,
+ 0xf048a245,
+ 0xb7bfa0cd,
+ 0xb7df7eee,
+ 0xb7ff7f6e,
+ 0x8c607fee,
+ 0xb7809c22,
+ 0xd0f15b0c,
+ 0xb72008c0,
+ 0x76424031,
+ 0xc0009ea2,
+ 0xc43c9382,
+ 0x0a020cca,
+ 0xc000b481,
+ 0x4220b101,
+ 0x1914d011,
+ 0x2e3ed3f1,
+ 0xba090888,
+ 0xba124002,
+ 0xc4104002,
+ 0xc00e7048,
+ 0xc81228fc,
+ 0xd3f17044,
+ 0xc00028ae,
+ 0xd3f19080,
+ 0xd0f12cbe,
+ 0x85020e20,
+ 0x0cfec036,
+ 0xa103d208,
+ 0xc000b421,
+ 0x00009c22,
+ 0x87c2c809,
+ 0x0c20b060,
+ 0x87c2c809,
+ 0x0a60b060,
+ 0x87c2c809,
+ 0x09c0b060,
+};
+
+unsigned long aui32H263_SlaveMTXTOPAZFWData[] = {
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000044,
+ 0x00000090,
+ 0x00000000,
+ 0x00000001,
+ 0x00000000,
+ 0x809000b0,
+ 0x809002f8,
+ 0x828834f4,
+ 0x828830c4,
+ 0x828830d4,
+ 0x82883174,
+ 0x82882fe0,
+ 0x82883028,
+ 0x82883036,
+ 0x828831a4,
+ 0x828831e0,
+ 0x82883218,
+ 0x8288321c,
+ 0x8288324c,
+ 0x82883274,
+ 0x8288309c,
+ 0x8288327c,
+ 0x82883284,
+ 0x8288328c,
+ 0x828832c0,
+ 0x82883778,
+ 0x828834c0,
+ 0x828835bc,
+ 0x828835fc,
+ 0x82883600,
+ 0x82883608,
+ 0x82883664,
+ 0x828836c0,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x8090074c,
+ 0x8090074c,
+ 0x80901efc,
+ 0x8090197c,
+ 0x809037cc,
+ 0x809022e8,
+ 0x80901ca4,
+ 0x8090074c,
+ 0x8090074c,
+ 0x8090074c,
+ 0x8090074c,
+ 0x8090074c,
+ 0x00000000,
+ 0x00000000,
+ 0xa0101100,
+ 0xa01001b0,
+ 0xa0101102,
+ 0xa01001b2,
+ 0xa0101104,
+ 0xa0100124,
+ 0xa0101106,
+ 0xa0100126,
+ 0xa0100134,
+ 0x00000000,
+ 0xa0101120,
+ 0xa0100136,
+ 0xa0101122,
+ 0xa0100144,
+ 0x80101160,
+ 0x80101162,
+ 0x80101180,
+ 0x80101182,
+ 0x80100140,
+ 0x80100142,
+ 0x80100150,
+ 0x80100152,
+ 0x80100154,
+ 0x80100146,
+ 0x803003a0,
+ 0x80100100,
+ 0x80105156,
+ 0xa0101164,
+ 0xa0100184,
+ 0x80101194,
+ 0x801001b4,
+ 0x80100146,
+ 0x00000000,
+ 0x00000003,
+ 0x00000002,
+ 0x00000002,
+ 0x00000001,
+ 0x00000001,
+ 0x00000001,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000005,
+ 0x000f9400,
+ 0x000f9401,
+ 0x000fd403,
+ 0x000fd40b,
+ 0x000fd41b,
+ 0x000ffc1b,
+ 0x000ffc1b,
+ 0x000ff81b,
+ 0x0000681b,
+ 0x0000681a,
+ 0x0000281a,
+ 0x00002810,
+ 0x00002800,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00010001,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x1234baac,
+ 0x00000000,
+};
+
+unsigned long aui32H263_SlaveMTXTOPAZFWTextReloc[] = {
+ 0
+};
+
+unsigned char aui8H263_SlaveMTXTOPAZFWTextRelocType[] = {
+ 0
+};
+
+unsigned long aui32H263_SlaveMTXTOPAZFWTextRelocFullAddr[] = {
+ 0
+};
+
+unsigned long aui32H263_SlaveMTXTOPAZFWDataReloc[] = {
+ 0
+};
diff --git a/fw/H263SlaveFirmware_bin.h b/fw/H263SlaveFirmware_bin.h
new file mode 100644
index 0000000..4c6ed6b
--- /dev/null
+++ b/fw/H263SlaveFirmware_bin.h
@@ -0,0 +1,44 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+
+// This file was automatically generated from ../release/H263SlaveFirmware.dnl using dnl2c.
+
+extern unsigned long aui32H263_SlaveMTXTOPAZFWText[];
+extern unsigned long ui32H263_SlaveMTXTOPAZFWTextSize;
+
+extern unsigned long aui32H263_SlaveMTXTOPAZFWData[];
+extern unsigned long ui32H263_SlaveMTXTOPAZFWDataSize;
+
+extern unsigned long aui32H263_SlaveMTXTOPAZFWTextReloc[];
+extern unsigned char aui8H263_SlaveMTXTOPAZFWTextRelocType[];
+extern unsigned long aui32H263_SlaveMTXTOPAZFWTextRelocFullAddr[];
+
+extern unsigned long aui32H263_SlaveMTXTOPAZFWDataReloc[];
+extern unsigned long ui32H263_SlaveMTXTOPAZFWDataRelocSize;
+
+extern unsigned long ui32H263_SlaveMTXTOPAZFWTextOrigin;
+extern unsigned long ui32H263_SlaveMTXTOPAZFWDataOrigin;
+
diff --git a/fw/H264FirmwareCBR_bin.c b/fw/H264FirmwareCBR_bin.c
new file mode 100644
index 0000000..70e3ac4
--- /dev/null
+++ b/fw/H264FirmwareCBR_bin.c
@@ -0,0 +1,8215 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+// This file was automatically generated from ../release/H264FirmwareCBR.dnl using dnl2c.
+
+unsigned char *szH264CBR_MTXTOPAZFW_buildtag = "TOPAZ_DDKBUILD_00-00-00-0146";
+
+unsigned long ui32H264CBR_MTXTOPAZFWTextSize = 5169;
+unsigned long ui32H264CBR_MTXTOPAZFWDataSize = 3008;
+unsigned long ui32H264CBR_MTXTOPAZFWDataLocation = 0x82885100;
+
+unsigned long aui32H264CBR_MTXTOPAZFWText[] = {
+ 0x9040c001,
+ 0xc80993fe,
+ 0xc0000e42,
+ 0xc8290e00,
+ 0xc5d48422,
+ 0xc8298460,
+ 0xc5108622,
+ 0x9e838600,
+ 0xc8099e43,
+ 0xca160d42,
+ 0xc8090d20,
+ 0xca160942,
+ 0xc8090960,
+ 0xc00a0e42,
+ 0xc8090e40,
+ 0xc00e87c2,
+ 0x9c1887d0,
+ 0x0c020802,
+ 0x09820d82,
+ 0x09020d02,
+ 0x08820c82,
+ 0x9320fffe,
+ 0xa401c838,
+ 0x0dc2c809,
+ 0x0de0ca14,
+ 0x0e42c809,
+ 0x0b46b080,
+ 0x7e74b77f,
+ 0xa48d0882,
+ 0xffff9ff3,
+ 0x9d1393e0,
+ 0xf8398081,
+ 0x0707a205,
+ 0x06850307,
+ 0x03839e97,
+ 0x0fa0060f,
+ 0x018d058d,
+ 0x9c62008f,
+ 0x9340ffff,
+ 0x0ea0060b,
+ 0xffff9c62,
+ 0x058d93a0,
+ 0xb700018d,
+ 0xb780500c,
+ 0x9c014f94,
+ 0x0687a605,
+ 0x0ea0060b,
+ 0xffff9c62,
+ 0xf9f893a0,
+ 0xf9f8aa9d,
+ 0x9c22aa1d,
+ 0xa60d9c22,
+ 0x9bfefff4,
+ 0x0ca2c829,
+ 0x0cc0c5d4,
+ 0x404db720,
+ 0x0a42c809,
+ 0x0a00c6e4,
+ 0x0b027440,
+ 0x420cb580,
+ 0x0a12d002,
+ 0x4644b421,
+ 0xc0540d8a,
+ 0xb78098b0,
+ 0xc807508c,
+ 0xc57008c2,
+ 0xc0320880,
+ 0xb5800c86,
+ 0xb4214b8c,
+ 0x0a06c000,
+ 0x0c98c002,
+ 0xc000b481,
+ 0x09021a04,
+ 0x08bac002,
+ 0x4078b960,
+ 0x0a00c200,
+ 0x588bd224,
+ 0xc000b441,
+ 0x0a11ce00,
+ 0x9301ffff,
+ 0x1884e000,
+ 0x9244ffff,
+ 0x0a42c807,
+ 0x0a00c576,
+ 0x0c86c032,
+ 0xc000b481,
+ 0x08820a02,
+ 0x08840902,
+ 0x4078b960,
+ 0x0a00c200,
+ 0x588bd224,
+ 0xc000b441,
+ 0x0a11ce00,
+ 0x9301ffff,
+ 0x745ac004,
+ 0x923cffff,
+ 0xc0340a02,
+ 0xb4810c9e,
+ 0xc034c000,
+ 0xc05498cd,
+ 0xc054982e,
+ 0x0d8a982a,
+ 0x9861c054,
+ 0x0a42c801,
+ 0x0a08c010,
+ 0x0c86c032,
+ 0xc000b481,
+ 0x08c2c801,
+ 0x0880cb10,
+ 0xb4210ce4,
+ 0x0a06c000,
+ 0xb4810cb4,
+ 0xc123c000,
+ 0xc56608d2,
+ 0xc08008e0,
+ 0xb4210c82,
+ 0x1a04c000,
+ 0xb4810c84,
+ 0x0d86c000,
+ 0x0d0209c2,
+ 0x0902c121,
+ 0x991bc014,
+ 0x450cb780,
+ 0xa982f208,
+ 0x0d02c021,
+ 0x09c20d04,
+ 0x9906c014,
+ 0x450cb780,
+ 0x0ad2c123,
+ 0x0ae0c566,
+ 0xa982f208,
+ 0x0d0609c2,
+ 0x98fac014,
+ 0x09c20d86,
+ 0xc1810d0e,
+ 0xc0140902,
+ 0xc00298fe,
+ 0xc0540dc2,
+ 0x700a980d,
+ 0x9364ffff,
+ 0xc0540d82,
+ 0xc0039814,
+ 0xb74092e0,
+ 0xd2265104,
+ 0x9e2d5908,
+ 0xaa4de030,
+ 0x9c629ea4,
+ 0x4494b720,
+ 0x405db740,
+ 0x58c1c280,
+ 0x2a80cff0,
+ 0x5a21c280,
+ 0x8021f310,
+ 0x753ec004,
+ 0x40cdb520,
+ 0x404db580,
+ 0x4652b431,
+ 0x0a42c801,
+ 0x0a08c010,
+ 0x0c86c032,
+ 0xc000b481,
+ 0xc0020886,
+ 0xb4210c98,
+ 0xb780c000,
+ 0xc080448c,
+ 0xf2080c82,
+ 0xb421a881,
+ 0x0d82c000,
+ 0x9bd0c034,
+ 0x448cb780,
+ 0xa881f208,
+ 0xffff7002,
+ 0x0d869304,
+ 0x0d0209c2,
+ 0x0902c121,
+ 0x98afc014,
+ 0x450cb780,
+ 0xa982f208,
+ 0x0d02c021,
+ 0x09c20d04,
+ 0x989ac014,
+ 0x450cb780,
+ 0xa982f208,
+ 0x0d0609c2,
+ 0x9892c014,
+ 0x09c20d86,
+ 0xc1010d0e,
+ 0xc0140902,
+ 0x77409896,
+ 0x9082c000,
+ 0x9b79c034,
+ 0x9c80c971,
+ 0x5a41e200,
+ 0x9204c000,
+ 0x0dc2c002,
+ 0x9b9ac034,
+ 0x448cb780,
+ 0xa881f208,
+ 0xffff7002,
+ 0x0d8292e4,
+ 0x9b9dc034,
+ 0xc0007580,
+ 0xc0349364,
+ 0x0d8a9b5e,
+ 0x9b95c034,
+ 0x448cb780,
+ 0xa881f208,
+ 0x5908d0a8,
+ 0x0948d073,
+ 0xe0309e2d,
+ 0xd3f1aacd,
+ 0xc2002a5c,
+ 0x75185a05,
+ 0x2ad2d012,
+ 0x9234fffb,
+ 0xb79f0802,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0x9c229c22,
+ 0x449cb740,
+ 0xc200aa41,
+ 0xc0025a08,
+ 0xf3100a00,
+ 0xf2088021,
+ 0xf208a882,
+ 0xc0c0a885,
+ 0x5c890c80,
+ 0xc000b421,
+ 0xa6059c22,
+ 0x449cb740,
+ 0x0886aa41,
+ 0x0c9ec034,
+ 0x5a08c200,
+ 0x0a00c002,
+ 0x80a1f310,
+ 0xc000b421,
+ 0x0c92c080,
+ 0xaa25f208,
+ 0xc000b481,
+ 0xc0340dc2,
+ 0xf2089b3f,
+ 0x7008aa25,
+ 0x9344ffff,
+ 0xc0800a02,
+ 0xb4810c96,
+ 0x0d86c000,
+ 0x0d0609c2,
+ 0x0902c121,
+ 0x981bc014,
+ 0xa9a2f208,
+ 0x0d02c021,
+ 0x09c20d04,
+ 0x9808c014,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xc0409e54,
+ 0x9e590c82,
+ 0xc000b421,
+ 0x0d02c040,
+ 0xc000b482,
+ 0xc00e9c22,
+ 0xc00e2d7c,
+ 0x5d3029e0,
+ 0xc0409e54,
+ 0x31b80c82,
+ 0xc000b461,
+ 0x0d02c040,
+ 0xc000b442,
+ 0x9e4c9c22,
+ 0x28fcc00e,
+ 0x2a7cc00e,
+ 0x0c82c040,
+ 0xb4019e58,
+ 0xc200c000,
+ 0x58e45a6c,
+ 0x1d043242,
+ 0x9e515d10,
+ 0x1984598d,
+ 0x3980c011,
+ 0x590d3246,
+ 0x59301904,
+ 0x32443242,
+ 0xc000b481,
+ 0x9e4c9c22,
+ 0x28fcc00e,
+ 0x2a7cc00e,
+ 0x0c82c040,
+ 0xb4019e58,
+ 0xc200c000,
+ 0x58e45a6c,
+ 0x1d043242,
+ 0x9e515d10,
+ 0x1984598d,
+ 0x3980c019,
+ 0x590d3246,
+ 0x59301904,
+ 0x32443242,
+ 0xc000b481,
+ 0x9e4c9c22,
+ 0x28fcc00e,
+ 0x2a7cc00e,
+ 0x0c82c040,
+ 0xb4019e58,
+ 0xc200c000,
+ 0x58e45a6c,
+ 0x1d043242,
+ 0x9e515d10,
+ 0x1984598d,
+ 0x3980c01d,
+ 0x590d3246,
+ 0x59301904,
+ 0x32443242,
+ 0xc000b481,
+ 0xa60d9c22,
+ 0x07038420,
+ 0xc2800687,
+ 0x1c845c8d,
+ 0x5ca0d0a2,
+ 0xd0110287,
+ 0xc2000a5e,
+ 0x1a045a0d,
+ 0x5a30c200,
+ 0x30985cd0,
+ 0x04059e4c,
+ 0x0c8ac032,
+ 0xc8013098,
+ 0xb4213880,
+ 0x9ea9c000,
+ 0x0a02c801,
+ 0x0a00c002,
+ 0xc0306553,
+ 0xb4810c8a,
+ 0xc002c000,
+ 0x0c840882,
+ 0xc000b421,
+ 0xd0229e93,
+ 0x9e535f09,
+ 0x1d045d0d,
+ 0x9b5afff4,
+ 0x5e91c280,
+ 0xc2801e84,
+ 0x9e6c5e84,
+ 0xc2801a84,
+ 0xc1815a90,
+ 0x0d8a3a80,
+ 0x0d020982,
+ 0xfff4314a,
+ 0xc0c09b54,
+ 0x09920d82,
+ 0x0d02c002,
+ 0x0902c002,
+ 0x9a47c034,
+ 0xc0340a0a,
+ 0xb4810c9e,
+ 0x1b04c000,
+ 0x850275bf,
+ 0x9202c000,
+ 0xb55f9dcf,
+ 0xc0347f7c,
+ 0xf2319a4f,
+ 0xb75fa045,
+ 0x1b047f7c,
+ 0x851075bf,
+ 0x9284ffff,
+ 0xc0300a02,
+ 0xb4810c8e,
+ 0xb79fc000,
+ 0xb7bf7e6e,
+ 0xb7df7eee,
+ 0xc0027f6e,
+ 0x9c228c00,
+ 0xb780a605,
+ 0xc004430c,
+ 0x75002a00,
+ 0x598cb7a0,
+ 0x92c2c002,
+ 0xa9b6f208,
+ 0x0982c050,
+ 0x0d7ec008,
+ 0x9b08fff4,
+ 0xa9bef208,
+ 0x0982c028,
+ 0x0d3ec004,
+ 0x9b00fff4,
+ 0x430cb780,
+ 0x38c0d211,
+ 0x02039e89,
+ 0x2a00c201,
+ 0xcffa7500,
+ 0xb5202cfd,
+ 0xc0014314,
+ 0x744090e2,
+ 0x5a0cb740,
+ 0x9256c000,
+ 0xaa45f008,
+ 0xa8c9f008,
+ 0x2cfec7ff,
+ 0x0a00c010,
+ 0xa245f008,
+ 0x0880c008,
+ 0xa0c9f008,
+ 0x4314b520,
+ 0xaa45f008,
+ 0x430cb720,
+ 0xa235f208,
+ 0xa8caf008,
+ 0x28fecdff,
+ 0xa0bef208,
+ 0x430cb520,
+ 0x9240c000,
+ 0xa937f208,
+ 0xaa39f208,
+ 0xa93cf20a,
+ 0xa8a1f248,
+ 0x8021f310,
+ 0x82a3e210,
+ 0xa235f208,
+ 0xa0bdf208,
+ 0xa9bef248,
+ 0x0982c002,
+ 0xfff40d0e,
+ 0xf2489ab5,
+ 0xb720aa3d,
+ 0xc002430c,
+ 0xf2480a00,
+ 0xc200a23d,
+ 0xb5203880,
+ 0xc011430c,
+ 0x74402880,
+ 0x92e2c000,
+ 0xa9b6f248,
+ 0x0982c008,
+ 0xfff40d3e,
+ 0xf2489a9d,
+ 0xb720aa35,
+ 0xc008430c,
+ 0xf2480a00,
+ 0xc081a235,
+ 0xcfef3880,
+ 0xb52028fe,
+ 0xb780430c,
+ 0xc001430c,
+ 0x75002a04,
+ 0x92e2c000,
+ 0xa9b6f248,
+ 0x0982c008,
+ 0xfff40d3e,
+ 0xf2489a81,
+ 0xb720aa35,
+ 0xc008430c,
+ 0xf2480a00,
+ 0xc001a235,
+ 0xcfff3888,
+ 0xb52028fa,
+ 0xb720430c,
+ 0x0203430c,
+ 0x2a10c001,
+ 0xc0027500,
+ 0xc0019082,
+ 0x744028c0,
+ 0x9182c001,
+ 0xa9a6f288,
+ 0x0d0609c2,
+ 0x0c820942,
+ 0xfff40882,
+ 0xf2889a96,
+ 0xf288a9b6,
+ 0x5d90a927,
+ 0x81afe220,
+ 0x430cb780,
+ 0x0d0609c2,
+ 0x0c820942,
+ 0xc0010882,
+ 0xb5803a20,
+ 0xfff4430c,
+ 0xb7809aa0,
+ 0xf288430c,
+ 0xc003a8a5,
+ 0x08c03a00,
+ 0xa0a5f288,
+ 0x2a2ecfff,
+ 0x9260c000,
+ 0xa9a6f288,
+ 0x0d0609c2,
+ 0x9a36fff4,
+ 0x430cb780,
+ 0xa8a5f288,
+ 0x3a20c001,
+ 0xf28808c0,
+ 0xcfffa0a5,
+ 0xb5802a6e,
+ 0xb79f430c,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa6059c22,
+ 0x430cb780,
+ 0x2a00c200,
+ 0x9e5d7500,
+ 0x9302c000,
+ 0x0abc6a8e,
+ 0x09829eab,
+ 0xc1010d36,
+ 0xc0140902,
+ 0x9eab98a4,
+ 0x430cb780,
+ 0x0d1a0982,
+ 0x0902c101,
+ 0x2a7dcdfe,
+ 0x430cb580,
+ 0x9897c014,
+ 0x430cb780,
+ 0x2a00c081,
+ 0xc0007500,
+ 0xc1019222,
+ 0xc0060902,
+ 0x0dce0940,
+ 0x0d020982,
+ 0x9887c014,
+ 0x430cb780,
+ 0x2a7ecf7f,
+ 0x430cb580,
+ 0x430cb780,
+ 0x2a08c001,
+ 0xc0007500,
+ 0xc1019222,
+ 0xc0060902,
+ 0x0dde0940,
+ 0x0d020982,
+ 0x9871c014,
+ 0x430cb780,
+ 0x2a76cfff,
+ 0x430cb580,
+ 0x430cb780,
+ 0x2a20c001,
+ 0xc0007500,
+ 0x0de291e2,
+ 0x0d020982,
+ 0x0902c101,
+ 0x985dc014,
+ 0x430cb780,
+ 0x2a5ecfff,
+ 0x430cb580,
+ 0x430cb780,
+ 0x2a00c003,
+ 0xc0007500,
+ 0x0de291e2,
+ 0x0d060982,
+ 0x0902c101,
+ 0x9849c014,
+ 0x430cb780,
+ 0x2a7ecffd,
+ 0x430cb580,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xb7a0a605,
+ 0xf248598c,
+ 0xc021a9ba,
+ 0x0d3c0d02,
+ 0x0982c008,
+ 0x999efff4,
+ 0xa9aaf288,
+ 0x0d02c021,
+ 0x09c20d04,
+ 0x9996fff4,
+ 0xaa39f248,
+ 0xa8a9f288,
+ 0x0a00c008,
+ 0xa239f248,
+ 0xf28808c0,
+ 0xb79fa0a9,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa6059c22,
+ 0x09920687,
+ 0x0d02c002,
+ 0x0902c002,
+ 0x9883c034,
+ 0x0a42c002,
+ 0xc2800eb0,
+ 0xb4855e89,
+ 0xb79fc000,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xb7409c22,
+ 0xd1a64b84,
+ 0x9e2d5d08,
+ 0xa8cde030,
+ 0x5a0cc080,
+ 0xd1f35885,
+ 0xc00e2910,
+ 0xe2202d7c,
+ 0xc00e812d,
+ 0x5d302a40,
+ 0x32429e51,
+ 0x0c82c040,
+ 0xc000b481,
+ 0x0d02c040,
+ 0xc000b442,
+ 0xb7409c22,
+ 0x1df05a84,
+ 0x5d08d1a6,
+ 0xe0309e2d,
+ 0xc080a8cd,
+ 0xd0335a05,
+ 0x5991294e,
+ 0x008929bc,
+ 0x81a7e210,
+ 0x2910d1f3,
+ 0x2d7cc00e,
+ 0x812de220,
+ 0x5d305990,
+ 0x31b89e54,
+ 0x0c82c040,
+ 0xc000b461,
+ 0x0d02c040,
+ 0xc000b442,
+ 0xa6059c22,
+ 0x598cb7a0,
+ 0x0e82c111,
+ 0x0ec0c04e,
+ 0xa9b6f208,
+ 0x0982c050,
+ 0x0d7ec008,
+ 0x991efff4,
+ 0x0df29e6a,
+ 0x0982c004,
+ 0xfff40d02,
+ 0xf2089bc8,
+ 0xf248a937,
+ 0xe220a9aa,
+ 0xc05081af,
+ 0xc0080982,
+ 0xfff40d7e,
+ 0x9e6a990b,
+ 0xc0040df2,
+ 0x0d0209c2,
+ 0x9bb5fff4,
+ 0xa937f208,
+ 0xa9aaf248,
+ 0x812ec201,
+ 0x81afe220,
+ 0x0982c050,
+ 0x0d7ec008,
+ 0x98f6fff4,
+ 0x0df29e6a,
+ 0x0982c006,
+ 0xfff40d02,
+ 0xf2089ba0,
+ 0xcfd8a9be,
+ 0xc0280e81,
+ 0xc0040982,
+ 0xfff40d3e,
+ 0x9e6a98e5,
+ 0xc0040df2,
+ 0xc0040982,
+ 0xfff40d42,
+ 0xf2089b8e,
+ 0xf248a93f,
+ 0xe220a9b2,
+ 0xc02881af,
+ 0xc0040982,
+ 0xfff40d3e,
+ 0x9e6a98d1,
+ 0xc0040df2,
+ 0xc00409c2,
+ 0xfff40d42,
+ 0xf2089b7a,
+ 0xf248a93f,
+ 0xc201a9b2,
+ 0xe220812e,
+ 0xc02881af,
+ 0xc0040982,
+ 0xfff40d3e,
+ 0x9e6a98bb,
+ 0xc0060df2,
+ 0xc0040982,
+ 0xfff40d42,
+ 0xf2489b64,
+ 0xf20aaa29,
+ 0xf248a934,
+ 0xd226a8b1,
+ 0xf2085904,
+ 0xf310a9bf,
+ 0xd0a68021,
+ 0xe2105904,
+ 0xf31080a3,
+ 0xe2108221,
+ 0xf20880b3,
+ 0xf208a235,
+ 0xb79fa0bd,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa6059c22,
+ 0x0902c121,
+ 0x0940c006,
+ 0x02870dca,
+ 0x0d020982,
+ 0x2afcc00e,
+ 0x9b1bfff4,
+ 0x09820dca,
+ 0xc2800d1e,
+ 0x010b5aec,
+ 0x3900c121,
+ 0x9b11fff4,
+ 0x430cb780,
+ 0x3a00c400,
+ 0x430cb580,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0x0922c829,
+ 0x0970c5fe,
+ 0x0a22c829,
+ 0x0a50c5fe,
+ 0x5b0cb720,
+ 0x0ca2c829,
+ 0x0ce0c5fe,
+ 0x8502c004,
+ 0x450cb580,
+ 0x448cb520,
+ 0x0a18d071,
+ 0xa241f008,
+ 0x404db520,
+ 0x413db540,
+ 0x8d00c004,
+ 0x40bdb540,
+ 0x403db540,
+ 0xf8399c22,
+ 0xf010a285,
+ 0x7500aa61,
+ 0x9164c000,
+ 0xa8c1d008,
+ 0x0a069e48,
+ 0x5200c200,
+ 0xd0083098,
+ 0xd011a0c1,
+ 0xd0100d38,
+ 0xf011a9f2,
+ 0xf0101a30,
+ 0x1984a943,
+ 0x93e2c000,
+ 0x8702cff1,
+ 0x8700cff0,
+ 0x087ec00f,
+ 0x087cc00e,
+ 0x0c1ac050,
+ 0xa8c5f029,
+ 0x2095d020,
+ 0x9e4d5ca1,
+ 0xc2002210,
+ 0x30d85a20,
+ 0x4006ba09,
+ 0xc000b420,
+ 0x1a30f011,
+ 0xffff1984,
+ 0xf21091e4,
+ 0xf010802f,
+ 0xf9f8a241,
+ 0x9c22aa9d,
+ 0x8420a60d,
+ 0x9e558502,
+ 0x7f7cb55f,
+ 0xaa61f010,
+ 0x8d8ee012,
+ 0xb55f0307,
+ 0x1a087ffc,
+ 0xd226750a,
+ 0x8540590c,
+ 0x8044e05a,
+ 0x91e0c003,
+ 0x9180c000,
+ 0x9000c001,
+ 0x9140c001,
+ 0x92a0c001,
+ 0x9380c001,
+ 0x91c0c002,
+ 0x5c0cb780,
+ 0xa881da08,
+ 0x74402888,
+ 0xb352856a,
+ 0xb7804462,
+ 0x9d57448c,
+ 0x8d88e011,
+ 0x1954d072,
+ 0xa299f208,
+ 0x9abcc014,
+ 0x91e0c002,
+ 0x448cb780,
+ 0xa91af208,
+ 0xe0119ea9,
+ 0x15148d88,
+ 0x9ab0c014,
+ 0x9060c002,
+ 0x8d88e011,
+ 0x295ed3f2,
+ 0xc0140916,
+ 0xb78099df,
+ 0xf208448c,
+ 0xc001a299,
+ 0xe01192c0,
+ 0xd3f28d88,
+ 0x0916295e,
+ 0x99d2c014,
+ 0x91a0c001,
+ 0xaa41d208,
+ 0x8c88f011,
+ 0xd0124a7d,
+ 0x0d062ace,
+ 0x018b0906,
+ 0x99c4c014,
+ 0x9e6a9e83,
+ 0x0d02018b,
+ 0x99bec014,
+ 0x9320c000,
+ 0xaa41d208,
+ 0x8c88f011,
+ 0xd0124a7d,
+ 0x0d022ace,
+ 0x018b0906,
+ 0x99b0c014,
+ 0x9e6a9e83,
+ 0xc00e018b,
+ 0xc0140d7e,
+ 0xc00099a9,
+ 0xc0019080,
+ 0xb79f90e0,
+ 0xc00f7e68,
+ 0xc00e0cfe,
+ 0x9e4a0cfc,
+ 0x7c68b59f,
+ 0x7f6cb73f,
+ 0x0a02cff1,
+ 0x0a00cff0,
+ 0x0c9ac050,
+ 0xc2002218,
+ 0x20945a21,
+ 0x324258a0,
+ 0x4006ba24,
+ 0x7f6cb59f,
+ 0xc000b481,
+ 0xa943f208,
+ 0x7fecb79f,
+ 0x8021f310,
+ 0xa241f208,
+ 0x7e6eb79f,
+ 0x7eeeb7bf,
+ 0x7f6eb7df,
+ 0x8c00c002,
+ 0xa61d9c22,
+ 0x85028440,
+ 0xf0319e9d,
+ 0x0b02abe5,
+ 0x7878b55f,
+ 0x7efcb55f,
+ 0x9d3a718e,
+ 0x91e8c001,
+ 0x7502aa41,
+ 0x9392c000,
+ 0xaad1d018,
+ 0x8d08e032,
+ 0x8d00e051,
+ 0x9eb19dcf,
+ 0xb55f8510,
+ 0xc0027f7c,
+ 0xc2800a9c,
+ 0x018b5a95,
+ 0x9aebfff4,
+ 0x7f7cb75f,
+ 0x5a88c280,
+ 0x8122c301,
+ 0x91a0c000,
+ 0x8d88e031,
+ 0x050b9dcf,
+ 0xb55f8510,
+ 0xfff47f7c,
+ 0xb75f9b19,
+ 0x0b047f7c,
+ 0xfffe718e,
+ 0xb79f92a6,
+ 0xc0507868,
+ 0xb4810c9e,
+ 0xc050c000,
+ 0xb4e20d16,
+ 0xb71fc000,
+ 0xb79f7eec,
+ 0xb7bf7d6e,
+ 0xb7df7dee,
+ 0xb7ff7e6e,
+ 0xc0027eee,
+ 0x9c228c40,
+ 0xa205f839,
+ 0x8400c010,
+ 0x5c0cb780,
+ 0x449cb740,
+ 0xa882da08,
+ 0xd011a8c1,
+ 0x58882e18,
+ 0x0880c002,
+ 0xe2107500,
+ 0xc00080a3,
+ 0x0a0a90a2,
+ 0x9100c000,
+ 0x2e14d011,
+ 0x0a067500,
+ 0x0a44d001,
+ 0x0c82c050,
+ 0xc000b481,
+ 0x0a02c004,
+ 0xb4810cb4,
+ 0x9d87c000,
+ 0x402db740,
+ 0x09a20dc2,
+ 0x0d02c008,
+ 0x0c81cff0,
+ 0x9b4dffd4,
+ 0x0a42c801,
+ 0x0a00cb10,
+ 0x0ceac032,
+ 0xc000b481,
+ 0x08c2c801,
+ 0x0888c010,
+ 0xb4210c84,
+ 0xb760c000,
+ 0x9d8f410a,
+ 0x0d81cff0,
+ 0x9b67fff4,
+ 0x0a02c801,
+ 0x0a00c00a,
+ 0x0c8ac030,
+ 0xc000b481,
+ 0x08c2c008,
+ 0xb4210c84,
+ 0xc008c000,
+ 0x0c880a02,
+ 0xc000b481,
+ 0x0d82c0c0,
+ 0xc0080992,
+ 0xc0080d02,
+ 0xc0140902,
+ 0xc00899ae,
+ 0xc0300a02,
+ 0xb4810c8e,
+ 0xc014c000,
+ 0xb79f982f,
+ 0xc0106fee,
+ 0x9c228c20,
+ 0xa205f839,
+ 0x0c82c450,
+ 0xb4810a02,
+ 0xb101c000,
+ 0xc0084220,
+ 0xc0300a40,
+ 0xb4810c8e,
+ 0xc002c000,
+ 0xc05038c0,
+ 0xb4210c82,
+ 0xc0c0c000,
+ 0x09920d82,
+ 0x0d02c008,
+ 0x0902c008,
+ 0x9983c014,
+ 0x0a02c008,
+ 0x0c8ec030,
+ 0xc000b481,
+ 0xaa1df9f8,
+ 0x9040c000,
+ 0xc450a60d,
+ 0x0a020c8a,
+ 0xc000b481,
+ 0x4240b105,
+ 0x2efce00e,
+ 0x5e90d284,
+ 0x0a02c801,
+ 0xc0300a40,
+ 0xb4810c8a,
+ 0x08c2c000,
+ 0xb4210c84,
+ 0x7740c000,
+ 0x5d0cb7c0,
+ 0x93e2c000,
+ 0x0eded031,
+ 0x09820dea,
+ 0x2ac10d02,
+ 0x1950d051,
+ 0x3900c121,
+ 0x98ddfff4,
+ 0xa9c6f248,
+ 0xc280018b,
+ 0x1a845a8f,
+ 0xc0219eaa,
+ 0xffd43d00,
+ 0xf2489a3f,
+ 0xf310a947,
+ 0xf248802b,
+ 0xc450a245,
+ 0x0a020c86,
+ 0xc000b481,
+ 0x4220b101,
+ 0x0a42c801,
+ 0x0a08c010,
+ 0x0c86c032,
+ 0xc000b481,
+ 0xc0020886,
+ 0xb4210c98,
+ 0xb740c000,
+ 0xf2485b8c,
+ 0xf048a8c5,
+ 0xd053aa51,
+ 0xc0801910,
+ 0xf3100ca2,
+ 0xb4818821,
+ 0xb7a0c000,
+ 0xc0025b8c,
+ 0xc0140d82,
+ 0xf248992f,
+ 0xf248a8c5,
+ 0xd053aa31,
+ 0xf3101910,
+ 0x70088821,
+ 0x9264ffff,
+ 0x09c20d86,
+ 0xc1210d0a,
+ 0xffd40902,
+ 0xf2489a0a,
+ 0xc0a1a9b2,
+ 0x0d040d02,
+ 0xffd409c2,
+ 0xc0c099f7,
+ 0x09920d82,
+ 0x09420d42,
+ 0x98f7c014,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x9e5da60d,
+ 0xf1245940,
+ 0xd3f15841,
+ 0xb3502d2e,
+ 0xc0024422,
+ 0xf00893e2,
+ 0xe000aa61,
+ 0xb4252a1c,
+ 0xd8084422,
+ 0x8522aa61,
+ 0x88a9e210,
+ 0x12182a1c,
+ 0xc00e9ea3,
+ 0xba1b0a7e,
+ 0xc200400b,
+ 0x21285207,
+ 0x9276c001,
+ 0xc1009e59,
+ 0x11035a20,
+ 0x5209c200,
+ 0xc2009ea2,
+ 0x9e8d58a1,
+ 0x0cb0d031,
+ 0xa8a2d208,
+ 0x2a7cc00e,
+ 0x5207c200,
+ 0x2a7cc00e,
+ 0xd208349a,
+ 0xf008a0a2,
+ 0x9ea1a963,
+ 0x2a2ed3f1,
+ 0x8128c201,
+ 0x8821f310,
+ 0xf0088502,
+ 0xd228a261,
+ 0x9eaba127,
+ 0x2d01cff0,
+ 0x59415940,
+ 0xc00e3522,
+ 0xfff42d7c,
+ 0xc0009bb1,
+ 0xd20892e0,
+ 0x9e5eaa21,
+ 0x50d8000b,
+ 0xd0293242,
+ 0xf008a205,
+ 0xd013a8e1,
+ 0xf210291e,
+ 0x75108029,
+ 0x00989e44,
+ 0xa0e1f008,
+ 0x4426b350,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x0685a60d,
+ 0x9e9e9e69,
+ 0x71820b02,
+ 0xc0000a86,
+ 0x9ea99208,
+ 0x9e6916d2,
+ 0x5a84c280,
+ 0x1a52d011,
+ 0xd0117102,
+ 0xd3f108e2,
+ 0xffff2b1e,
+ 0xd0119286,
+ 0x75100a62,
+ 0xc000028d,
+ 0x9e7391d4,
+ 0x09220d02,
+ 0x9b70fff4,
+ 0xd0111aa0,
+ 0x75100a52,
+ 0xffff9e83,
+ 0x9e7392d2,
+ 0xd0110d06,
+ 0xc00e0952,
+ 0xfff4297c,
+ 0x75909b61,
+ 0xc0009e83,
+ 0xd03192f4,
+ 0xd3f11a60,
+ 0x9e6c2b4e,
+ 0xc2009e73,
+ 0xd3f25299,
+ 0x0922295e,
+ 0x9b50fff4,
+ 0xc2009e83,
+ 0x9ea952b8,
+ 0x16d27590,
+ 0x91b2ffff,
+ 0xd3f29e73,
+ 0x010d2d5e,
+ 0x9b42fff4,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x0ca0f011,
+ 0xd09a9e99,
+ 0xd00d5a04,
+ 0xc0001a42,
+ 0x1203909a,
+ 0x9e4b1242,
+ 0xfffc9ea2,
+ 0xc0019360,
+ 0xf83993a0,
+ 0x0d8aa205,
+ 0x9835c014,
+ 0xc0140d8e,
+ 0x0d8a9832,
+ 0xaa1df9f8,
+ 0x91a0c001,
+ 0x9e520507,
+ 0x0d82c0c0,
+ 0xc0000992,
+ 0x9e5c9040,
+ 0xd1a401c6,
+ 0x08825889,
+ 0x3c80c400,
+ 0xc000b421,
+ 0x4220b104,
+ 0x9e532244,
+ 0xffff7106,
+ 0x9c229324,
+ 0xc000b463,
+ 0xf8129c22,
+ 0x9c22a062,
+ 0x0d80c200,
+ 0x9e595d89,
+ 0xc4000982,
+ 0xb4633d80,
+ 0xb203c000,
+ 0x00074620,
+ 0xc1279c22,
+ 0x9c229c8f,
+ 0xb971080a,
+ 0xc01756f1,
+ 0xc0719c81,
+ 0xc0179c80,
+ 0xb9609c80,
+ 0x9c224000,
+ 0x8460a61d,
+ 0x4484b740,
+ 0xb53f0882,
+ 0xb53f7dec,
+ 0x01037e6c,
+ 0x7d6cb55f,
+ 0x4588b540,
+ 0xaa41f000,
+ 0xb7a09e2d,
+ 0xb53f5a0c,
+ 0xc2007eec,
+ 0xd0935a08,
+ 0x9ea90940,
+ 0xa96de020,
+ 0x098e0dc2,
+ 0x0d42c002,
+ 0x991bffd4,
+ 0x5994b720,
+ 0xaa25f208,
+ 0xb53f0882,
+ 0xf2087f6c,
+ 0xb760a8a9,
+ 0xda085b8c,
+ 0xb580a939,
+ 0xda0842cd,
+ 0xd112a93e,
+ 0x9e4e09b8,
+ 0x43cdb520,
+ 0x434db540,
+ 0x4455b540,
+ 0xaa39f208,
+ 0xa822da08,
+ 0xa8e1d810,
+ 0xf0489e9a,
+ 0x2a20a967,
+ 0x9e447500,
+ 0xa97df048,
+ 0xc08060c2,
+ 0xc2005a7f,
+ 0x00985a71,
+ 0x58945893,
+ 0x80a3e210,
+ 0x46cdb540,
+ 0x474db540,
+ 0x47cdb520,
+ 0x90c2c000,
+ 0x5c40e000,
+ 0x9184c000,
+ 0xa957f050,
+ 0xaa61d810,
+ 0x8021f310,
+ 0xa14bf288,
+ 0xa245f288,
+ 0xaa59f208,
+ 0xa8c1f248,
+ 0x5a1cb760,
+ 0xa249f248,
+ 0xaa41f010,
+ 0xa8c6f010,
+ 0xa949f010,
+ 0xa0d1f248,
+ 0xa241f208,
+ 0xa0caf208,
+ 0xa14df208,
+ 0xa8cad850,
+ 0x0e28d111,
+ 0xa94dd850,
+ 0xa881da08,
+ 0xa0c6f208,
+ 0x5d14b720,
+ 0xa151f208,
+ 0x58d158c0,
+ 0xa0d5f288,
+ 0xaa61d818,
+ 0x425db740,
+ 0x42c5b740,
+ 0xc2000089,
+ 0x589c5a20,
+ 0x8021f310,
+ 0x82a3e210,
+ 0xa24df010,
+ 0xa0d1f010,
+ 0xa245f248,
+ 0xa0cdf248,
+ 0x0a00c00c,
+ 0x4d8cb580,
+ 0x0880c006,
+ 0x4e0cb520,
+ 0x0cf2c42e,
+ 0xb4810a02,
+ 0xb101c000,
+ 0x28844220,
+ 0xc0007440,
+ 0xd1119142,
+ 0xda080e28,
+ 0xc058a881,
+ 0xc02b7460,
+ 0xb7209012,
+ 0xb7805a0c,
+ 0x0a86402b,
+ 0x410ab720,
+ 0x9ead7500,
+ 0x1ed2d002,
+ 0xc0007448,
+ 0xb7409152,
+ 0xf0085a0c,
+ 0xcffeaa59,
+ 0xf0082a3d,
+ 0xb760a259,
+ 0xf0085a0c,
+ 0x2a40aa79,
+ 0xc0007500,
+ 0x0a0a9122,
+ 0x0caec060,
+ 0xc000b481,
+ 0x90e0c000,
+ 0xc0600a06,
+ 0xb4810cae,
+ 0xb720c000,
+ 0xf2c84c14,
+ 0xf288aa41,
+ 0xc801a8dd,
+ 0x9d1e3c80,
+ 0x448cb740,
+ 0x5a40c200,
+ 0xc30158a0,
+ 0x32423246,
+ 0xa251f008,
+ 0x9a01c034,
+ 0xc0340a3e,
+ 0xb4810c9e,
+ 0x0882c000,
+ 0xb4210c90,
+ 0xffd4c000,
+ 0xc0069a90,
+ 0xb5408542,
+ 0x0a02459c,
+ 0x0c8ac030,
+ 0xc000b481,
+ 0x0882c002,
+ 0xb4210c84,
+ 0xc801c000,
+ 0xc0020a02,
+ 0x1c840a00,
+ 0xc000b481,
+ 0x0902c1c1,
+ 0x0940c006,
+ 0x09820dce,
+ 0xffb40d02,
+ 0xc0c09ba8,
+ 0xffd40d82,
+ 0xb7809a16,
+ 0xc034458c,
+ 0xc2000cae,
+ 0xb4815a11,
+ 0x0882c000,
+ 0xb4210cfc,
+ 0xb720c000,
+ 0xb7805a0c,
+ 0x2a04432d,
+ 0x850a7500,
+ 0x461cb540,
+ 0x90a2c000,
+ 0xb5408504,
+ 0xb780461c,
+ 0xc03e460c,
+ 0xb5800c82,
+ 0xb481468c,
+ 0xc0c8c000,
+ 0xc0500882,
+ 0xb4210ce2,
+ 0xb740c000,
+ 0xf0085a0c,
+ 0x8516aa59,
+ 0x0cfac038,
+ 0x75002a04,
+ 0xcffe0902,
+ 0xe0010a7e,
+ 0xb5408d28,
+ 0xb481471c,
+ 0xc284c000,
+ 0xb540856a,
+ 0xc002481c,
+ 0xc0500a42,
+ 0xb4810cb6,
+ 0xc03ac000,
+ 0xb4420d02,
+ 0x08bec000,
+ 0x0c9ec034,
+ 0xc000b421,
+ 0x5008b785,
+ 0xc0007500,
+ 0xc0749082,
+ 0xb780988a,
+ 0xc038480c,
+ 0xb4810c82,
+ 0xb760c000,
+ 0xb7205a0c,
+ 0xf2885d8c,
+ 0xd808aa55,
+ 0xb720a965,
+ 0x6245462d,
+ 0xb5408502,
+ 0x7440419a,
+ 0x5a11c200,
+ 0x420ab580,
+ 0x9102c000,
+ 0xa9eaf048,
+ 0x420ab760,
+ 0x9c629e8c,
+ 0x5b94b7e0,
+ 0x9eb60b82,
+ 0x470cb780,
+ 0x0c82c050,
+ 0xc000b481,
+ 0x0d0ac030,
+ 0xc000b4e2,
+ 0x08fec00e,
+ 0x0c8ec030,
+ 0xc000b421,
+ 0x5a1cb760,
+ 0xaa79f018,
+ 0x75002a04,
+ 0x9182c000,
+ 0x0c8ac438,
+ 0xc000b4e1,
+ 0x4220b104,
+ 0x0ca6c03e,
+ 0xc000b481,
+ 0x428cb780,
+ 0xc0017500,
+ 0xc02093a2,
+ 0x75002a00,
+ 0x90e2c001,
+ 0x0ca2c460,
+ 0xc000b4e1,
+ 0x4220b104,
+ 0xc060088a,
+ 0xb4210ca2,
+ 0xc004c000,
+ 0xc0300902,
+ 0xb4410c96,
+ 0xb780c000,
+ 0xcfde428c,
+ 0xb5802a7d,
+ 0xc002428c,
+ 0xc00e08f8,
+ 0xb4210cec,
+ 0xc201c000,
+ 0xb4810a02,
+ 0xc004c000,
+ 0xb5408502,
+ 0xb7204c9c,
+ 0xc030428c,
+ 0xb4210c96,
+ 0xb780c000,
+ 0x2a04428c,
+ 0xc0007500,
+ 0xb78090e2,
+ 0x0a04478c,
+ 0x478cb580,
+ 0x018b058b,
+ 0x99e7c054,
+ 0x430cb780,
+ 0x2a00c020,
+ 0xc00e7500,
+ 0xb51f287c,
+ 0xc0027dec,
+ 0xf2509042,
+ 0xc021a9c6,
+ 0x0d7c0d02,
+ 0x0982c010,
+ 0x9aa6ffb4,
+ 0xa9cef250,
+ 0x0d02c021,
+ 0xc0080d3c,
+ 0xffb40982,
+ 0xb7809a9d,
+ 0xc401430c,
+ 0x75002a00,
+ 0x9262c000,
+ 0xaa6df210,
+ 0xa8f1f210,
+ 0xb55f0906,
+ 0xc0107eec,
+ 0xf2100a00,
+ 0xc008a26d,
+ 0xf2100880,
+ 0xc000a0f1,
+ 0xf24891c0,
+ 0xf248a947,
+ 0xf24aaa49,
+ 0xf248a94c,
+ 0xf310a8d1,
+ 0xe2108021,
+ 0xf24882a3,
+ 0xf248a245,
+ 0xb780a0cd,
+ 0xcfde430c,
+ 0xb5802a7d,
+ 0xb780430c,
+ 0xc021430c,
+ 0x75002a00,
+ 0x9122c001,
+ 0x4394b760,
+ 0x0d02c021,
+ 0xc0020d14,
+ 0xffb409c2,
+ 0xb7609a5f,
+ 0xc0214414,
+ 0x0d040d02,
+ 0xffb409c2,
+ 0xb7409a57,
+ 0xf210439c,
+ 0xb740aa59,
+ 0xf2504404,
+ 0xb720a8c1,
+ 0xf3104314,
+ 0xe2108021,
+ 0xcfdf82a3,
+ 0xb5202cfe,
+ 0xb5804314,
+ 0xb520438c,
+ 0xb720440c,
+ 0x9e4c4314,
+ 0x2a00c401,
+ 0xc0007500,
+ 0xf25091a2,
+ 0xf250aa45,
+ 0xc002a8cd,
+ 0xb5801a40,
+ 0x18c0438c,
+ 0x440cb520,
+ 0xc4009e4c,
+ 0x76402c80,
+ 0x2a7ecbff,
+ 0x430cb580,
+ 0x9142c000,
+ 0x987affd4,
+ 0x430cb780,
+ 0x2a7dcbfe,
+ 0x430cb580,
+ 0x7d6cb79f,
+ 0xc0007500,
+ 0xb76093c2,
+ 0xd0325d0c,
+ 0x2d41094e,
+ 0xa9e6f048,
+ 0x5d0d9e53,
+ 0xc0211d04,
+ 0xffb43d00,
+ 0xb7809a09,
+ 0xf2485d0c,
+ 0xb79fa907,
+ 0xb7607d6c,
+ 0xf3105d1c,
+ 0xb5ff8021,
+ 0xf0587d6c,
+ 0xb73fa265,
+ 0x74407e6c,
+ 0x9002c005,
+ 0x0902c101,
+ 0x0940c002,
+ 0x09820da6,
+ 0xffd40d02,
+ 0xc1019880,
+ 0xc0800902,
+ 0x0da60940,
+ 0x0d120982,
+ 0x9877ffd4,
+ 0x5a0cb740,
+ 0xa9c0f212,
+ 0xaa59f008,
+ 0xa948f212,
+ 0xa9cff210,
+ 0xc0208522,
+ 0x75002a00,
+ 0x8eb0e051,
+ 0x4f0cb780,
+ 0x8520e021,
+ 0x8aadf210,
+ 0xf0207502,
+ 0xc00088b4,
+ 0xf2889364,
+ 0xf208aa55,
+ 0x1a04a8c5,
+ 0x6145c301,
+ 0xa8d2f208,
+ 0xe2305890,
+ 0xc2008b33,
+ 0x5c8c5a10,
+ 0x80a1e310,
+ 0x8b23e030,
+ 0x80a5f210,
+ 0x893ac201,
+ 0x80a5f220,
+ 0xf2089e8b,
+ 0x09c2a945,
+ 0x0c820d42,
+ 0xffb40882,
+ 0xb76099c2,
+ 0xf0085a0c,
+ 0xc020aa79,
+ 0x75002a00,
+ 0x92c2c000,
+ 0xf2089eab,
+ 0x09a2a951,
+ 0x0c820d22,
+ 0xffb40882,
+ 0xf20899ce,
+ 0x058ba951,
+ 0x0d2209a2,
+ 0x08820c82,
+ 0x99e3ffb4,
+ 0x9160c000,
+ 0xf2089eab,
+ 0x09c2a951,
+ 0x0c820d22,
+ 0xffb40882,
+ 0xc101999c,
+ 0xc00e0902,
+ 0x0d860940,
+ 0x0d020982,
+ 0x980bffd4,
+ 0x5a1cb760,
+ 0xaa79f018,
+ 0x2a00c020,
+ 0xc0007500,
+ 0xc10191a2,
+ 0xc0060902,
+ 0x0d8a0940,
+ 0x0d020982,
+ 0x9bf9ffb4,
+ 0x9160c000,
+ 0x0902c101,
+ 0x0940c086,
+ 0x09820d8a,
+ 0xffb40d02,
+ 0x08829bee,
+ 0x7e6cb53f,
+ 0x430cb780,
+ 0x2a00c100,
+ 0xc0007500,
+ 0xffb49142,
+ 0xb7809a37,
+ 0xcefe430c,
+ 0xb5802a7d,
+ 0xb780430c,
+ 0xc004428c,
+ 0x75002a00,
+ 0x92c2c002,
+ 0x0ae8d152,
+ 0x418ab720,
+ 0xaa21da10,
+ 0x4002ba09,
+ 0x4002ba24,
+ 0x70480a0c,
+ 0x9118c002,
+ 0x7f6cb75f,
+ 0x4d94b760,
+ 0x0982c004,
+ 0xd0110d1e,
+ 0xc00e0a22,
+ 0xb59f2a7c,
+ 0xffb47f6c,
+ 0xb7609925,
+ 0xc0024e14,
+ 0x0d0e0982,
+ 0x991effb4,
+ 0x4d9cb740,
+ 0xaa59f208,
+ 0x4e04b740,
+ 0xa8a1f210,
+ 0x7f6cb77f,
+ 0xa8c2f248,
+ 0x8120c301,
+ 0x4d9cb540,
+ 0xc00170c2,
+ 0xb5408322,
+ 0xc0004e04,
+ 0x9d1e92a6,
+ 0xc3016219,
+ 0xf3106097,
+ 0xe2108821,
+ 0x09028aa3,
+ 0x7f6cb55f,
+ 0x0a00c010,
+ 0x4d8cb580,
+ 0x0880c008,
+ 0x4e0cb520,
+ 0x430cb780,
+ 0x3a00c041,
+ 0x430cb580,
+ 0x430cb780,
+ 0x2a00c005,
+ 0xc0047500,
+ 0xf21091c2,
+ 0xf210a9c2,
+ 0x09c2a945,
+ 0x0c820d42,
+ 0xffb40882,
+ 0xb76098f8,
+ 0xf0085a0c,
+ 0xc020aa79,
+ 0x75002a00,
+ 0x9302c000,
+ 0xa9caf208,
+ 0xa951f208,
+ 0x0d2209a2,
+ 0x08820c82,
+ 0x9903ffb4,
+ 0xa9cef208,
+ 0xa951f208,
+ 0x0d2209a2,
+ 0x08820c82,
+ 0x9917ffb4,
+ 0x9180c000,
+ 0xa9caf208,
+ 0xa951f208,
+ 0x0d2209c2,
+ 0x08820c82,
+ 0x98cfffb4,
+ 0x430cb720,
+ 0xc1010203,
+ 0x75002a00,
+ 0x9122c001,
+ 0xa8eada50,
+ 0xa963f210,
+ 0x28feceff,
+ 0x430cb520,
+ 0xa8edda50,
+ 0xa968f212,
+ 0xe2205c90,
+ 0xf21080ab,
+ 0x0203a967,
+ 0xc200588c,
+ 0xf3105a0c,
+ 0xe2108221,
+ 0xf21080a3,
+ 0xf210a0e2,
+ 0xf210a269,
+ 0xf210a0e5,
+ 0xf210a0c2,
+ 0xf210a0c9,
+ 0xc001a24d,
+ 0xb7609080,
+ 0xf0185a1c,
+ 0xf210aa79,
+ 0xc020a8c1,
+ 0x75002a00,
+ 0xf21008c0,
+ 0xc000a0c1,
+ 0xf2089182,
+ 0xf208aa49,
+ 0x0a20a8cd,
+ 0xa249f208,
+ 0xc00008a0,
+ 0xf2089140,
+ 0xf208aa49,
+ 0x0a40a8cd,
+ 0xa249f208,
+ 0xf20808c0,
+ 0xb780a0cd,
+ 0xcffb430c,
+ 0xc0092a7e,
+ 0xb5803a00,
+ 0xb780430c,
+ 0x75004c8c,
+ 0x9142c000,
+ 0x0c82c040,
+ 0xc000b481,
+ 0x0a02c201,
+ 0xc000b481,
+ 0x430cb780,
+ 0x2a00c008,
+ 0xc0007500,
+ 0xc1119362,
+ 0xc04e0902,
+ 0x0df20940,
+ 0x0d020982,
+ 0x9aefffb4,
+ 0x0902c111,
+ 0x0940c026,
+ 0x09820df6,
+ 0x0d42c004,
+ 0x9ae5ffb4,
+ 0x430cb780,
+ 0x2a7dcff6,
+ 0x430cb580,
+ 0x430cb780,
+ 0x2a00c080,
+ 0xc0007500,
+ 0xb76091c2,
+ 0xba1b4192,
+ 0xc0144003,
+ 0xb7809a6c,
+ 0xcf7e430c,
+ 0xb5802a7d,
+ 0xb780430c,
+ 0xc010430c,
+ 0x75002a00,
+ 0x9022c002,
+ 0x0902c121,
+ 0x0940c00e,
+ 0x09820d9e,
+ 0xffb40d02,
+ 0xc1219a9e,
+ 0xc0860902,
+ 0x0da20940,
+ 0x0d020982,
+ 0x9a95ffb4,
+ 0x7eecb73f,
+ 0xc0017440,
+ 0xb7409042,
+ 0xf0085a0c,
+ 0x2a40aa59,
+ 0xc0007500,
+ 0xc1219342,
+ 0xc0020902,
+ 0x0da60900,
+ 0x0d060982,
+ 0x9a7fffb4,
+ 0x0902c121,
+ 0x0900c080,
+ 0x09820da6,
+ 0xffb40d16,
+ 0xb7809a76,
+ 0xc021430c,
+ 0xb5803a00,
+ 0xb780430c,
+ 0xcfee430c,
+ 0xc0202a7d,
+ 0xb5803a00,
+ 0xb780430c,
+ 0xc800430c,
+ 0x75002a00,
+ 0x9302c000,
+ 0x5a0cb760,
+ 0x7decb79f,
+ 0x4192b760,
+ 0xa97af008,
+ 0xba1b0189,
+ 0x5d114003,
+ 0x2d044d04,
+ 0x9b2bffb4,
+ 0x430cb780,
+ 0x2a7ec7fe,
+ 0x430cb580,
+ 0x430cb780,
+ 0x2a00c200,
+ 0xc0007500,
+ 0x0d8690c2,
+ 0xffb40982,
+ 0xb780998c,
+ 0xc041430c,
+ 0x75002a00,
+ 0x9342c000,
+ 0x0902c101,
+ 0x0940c002,
+ 0x09820da6,
+ 0xffb40d02,
+ 0xc1019a30,
+ 0xc0800902,
+ 0x0da60940,
+ 0x0d120982,
+ 0x9a27ffb4,
+ 0x430cb780,
+ 0x2a7ecfbf,
+ 0x430cb580,
+ 0x430cb720,
+ 0xc0090203,
+ 0x75002a00,
+ 0x9182c001,
+ 0x0902c101,
+ 0x0940c00e,
+ 0x28fecff7,
+ 0x430cb520,
+ 0x09820d9e,
+ 0xffb40d02,
+ 0xb7609a0c,
+ 0xf0185a1c,
+ 0xc020aa79,
+ 0x75002a00,
+ 0x91a2c000,
+ 0x0902c101,
+ 0x0940c006,
+ 0x09820da2,
+ 0xffb40d02,
+ 0xc00099fa,
+ 0xc1019160,
+ 0xc0860902,
+ 0x0da20940,
+ 0x0d020982,
+ 0x99efffb4,
+ 0x0902c1c1,
+ 0x0940c006,
+ 0x09820dce,
+ 0xff940d02,
+ 0xc0149b5e,
+ 0xc03099a9,
+ 0xb4e10c8a,
+ 0xb780c000,
+ 0x0c884c8c,
+ 0xc000b481,
+ 0x0882cc01,
+ 0xb4211c88,
+ 0xc054c000,
+ 0xb7809b0f,
+ 0xc0084c8c,
+ 0x75002a00,
+ 0x7d6cb5ff,
+ 0x9282c001,
+ 0x0c8ac450,
+ 0xc000b4e1,
+ 0x4220b104,
+ 0x2a7cc00e,
+ 0x7d6cb59f,
+ 0xb4e11c84,
+ 0xb104c000,
+ 0x2a104220,
+ 0xc0007500,
+ 0xb7809362,
+ 0xc008428c,
+ 0x75002a00,
+ 0x8d80e071,
+ 0x7d6cb79f,
+ 0xd0010d02,
+ 0xb7600d22,
+ 0x08864714,
+ 0x7e6cb53f,
+ 0x5a10c200,
+ 0x7d6cb59f,
+ 0x99bdc014,
+ 0x9100c000,
+ 0x7d6cb79f,
+ 0x5a10c200,
+ 0x7d6cb59f,
+ 0x428cb780,
+ 0x0c8ac030,
+ 0x4c8cb580,
+ 0xc000b4e1,
+ 0x0a02c801,
+ 0x0a00c002,
+ 0xc000b481,
+ 0xc00408be,
+ 0xb4210c94,
+ 0xc0c0c000,
+ 0xffb40d82,
+ 0xb760996c,
+ 0xb7804112,
+ 0x9ea4420c,
+ 0xb7209c62,
+ 0xc034458c,
+ 0x58910cae,
+ 0xc000b421,
+ 0x7e6cb75f,
+ 0xc0007480,
+ 0xb75f9224,
+ 0x74807d6c,
+ 0x9182c000,
+ 0x2941093c,
+ 0x09820dea,
+ 0x19400d02,
+ 0x3900c121,
+ 0x9961ffb4,
+ 0x9907c014,
+ 0x6008b785,
+ 0xb7807500,
+ 0xc000468c,
+ 0x2a7990a2,
+ 0x6008b5e5,
+ 0x0c82c03e,
+ 0xc000b481,
+ 0x7decb77f,
+ 0x418ab780,
+ 0x0e820a82,
+ 0x0a0474c0,
+ 0x418ab580,
+ 0x9282ffdc,
+ 0x430cb780,
+ 0x7d3ed3ff,
+ 0x91c4ffdc,
+ 0x7d6cb79f,
+ 0xffdc7500,
+ 0xb79f9124,
+ 0xb7bf7cee,
+ 0xb7df7d6e,
+ 0xb7ff7dee,
+ 0xc0027e6e,
+ 0x9c228c60,
+ 0xc004a605,
+ 0xc8298420,
+ 0xc5980ca2,
+ 0xc0300ca0,
+ 0xe133ac3d,
+ 0xc0388d00,
+ 0xc030a45d,
+ 0xc038ac3d,
+ 0xc010a45d,
+ 0xc018ac3d,
+ 0xc010a45d,
+ 0xc018ac25,
+ 0xb740a445,
+ 0xf0004484,
+ 0xb7a0aa41,
+ 0x9e2d5b8c,
+ 0x5a08c200,
+ 0x0940d093,
+ 0xe0209ea9,
+ 0x0dc2a96d,
+ 0x0d42c008,
+ 0xff9409c2,
+ 0xb7809ae4,
+ 0xf2085d0c,
+ 0x8502a8a1,
+ 0xa8a6f208,
+ 0xa103f208,
+ 0xa085f208,
+ 0xa929f208,
+ 0xa08af208,
+ 0xa92ef208,
+ 0xa8b2f208,
+ 0xa10df208,
+ 0xa8b1f248,
+ 0xa112f208,
+ 0xa096f208,
+ 0xa09af208,
+ 0xc036090a,
+ 0x08c00c92,
+ 0xa085f248,
+ 0xc000b441,
+ 0x1c8c0a16,
+ 0xc000b481,
+ 0x8c00f031,
+ 0x8d80e131,
+ 0xb55f9ea3,
+ 0x0d027ffc,
+ 0x4078b960,
+ 0xa103f208,
+ 0xd1229dba,
+ 0x9e2d5d0d,
+ 0xa8e5f029,
+ 0x2caed012,
+ 0xd1265c88,
+ 0x9e4a5908,
+ 0xaa4de038,
+ 0x28bc0d04,
+ 0x324250a8,
+ 0xffffa241,
+ 0xf01091c1,
+ 0xc036aa61,
+ 0xb4810c8e,
+ 0xb73fc000,
+ 0x1c847fec,
+ 0xc000b421,
+ 0x9a4ac054,
+ 0x08c2c801,
+ 0x0890c112,
+ 0x0a42c809,
+ 0x0a00c6e4,
+ 0x0cbec032,
+ 0x420cb580,
+ 0xc000b421,
+ 0x0ce00a3e,
+ 0xc000b481,
+ 0xc0800882,
+ 0xb4210cc6,
+ 0xc801c000,
+ 0xc1120a42,
+ 0xc0320a18,
+ 0xb4810cc2,
+ 0x08c0c000,
+ 0xb4210cdc,
+ 0x0a02c000,
+ 0x0cc6c080,
+ 0xc000b481,
+ 0x08c2c801,
+ 0x0890c114,
+ 0x0cc6c032,
+ 0xc000b421,
+ 0x0cd80a44,
+ 0xc000b481,
+ 0xc0800882,
+ 0xb4210cc6,
+ 0xc801c000,
+ 0xc1140a42,
+ 0xc0320a18,
+ 0xb4810cca,
+ 0x08c8c000,
+ 0xb4210cd4,
+ 0x0a02c000,
+ 0x0cc6c080,
+ 0xc000b481,
+ 0x7aeeb79f,
+ 0x7b6eb7bf,
+ 0x8c60c004,
+ 0x08829c22,
+ 0x0c92c001,
+ 0x0c84c332,
+ 0xc000b421,
+ 0x4b8cb780,
+ 0x0a10873e,
+ 0x9c8bc040,
+ 0xc238b780,
+ 0xb7809c22,
+ 0x0a40458c,
+ 0x7520c00c,
+ 0x458cb580,
+ 0x48b4b340,
+ 0xb5408502,
+ 0x9c22459c,
+ 0x4b8cb780,
+ 0xa895f208,
+ 0xa88ef208,
+ 0xa905f208,
+ 0xa99df208,
+ 0xa906f288,
+ 0xa09df208,
+ 0xa096f208,
+ 0xa10df208,
+ 0xa185f208,
+ 0xa899f208,
+ 0xa892f208,
+ 0xa909f208,
+ 0xa981f248,
+ 0xa081f248,
+ 0xa09af208,
+ 0xa111f208,
+ 0xa189f208,
+ 0xa881f288,
+ 0xa995f248,
+ 0xa89ef248,
+ 0xa90df248,
+ 0xa085f288,
+ 0xa18df248,
+ 0xa999f248,
+ 0xa082f288,
+ 0xa115f248,
+ 0xa891f248,
+ 0xa191f248,
+ 0xa989f288,
+ 0xa89af288,
+ 0xa099f248,
+ 0xa10af288,
+ 0xa19df248,
+ 0xa99df288,
+ 0xa09ef288,
+ 0xa895f288,
+ 0xa892f288,
+ 0xa90df288,
+ 0xa099f288,
+ 0xa096f288,
+ 0xa111f288,
+ 0xa18df288,
+ 0xa61d9c22,
+ 0x8440c012,
+ 0x9e9e9e5f,
+ 0x0d82c0c0,
+ 0x2d7cc00e,
+ 0x7c74b55f,
+ 0x9bc3ff94,
+ 0x0a02c004,
+ 0x0c8ac030,
+ 0xc000b481,
+ 0x0882c004,
+ 0x0d0ec030,
+ 0xc000b422,
+ 0x0ca2c460,
+ 0x1a00c004,
+ 0xc000b481,
+ 0x4220b101,
+ 0x38880283,
+ 0x0ca2c060,
+ 0xc000b421,
+ 0x0a00c004,
+ 0x0c96c030,
+ 0xc000b481,
+ 0x0d82c004,
+ 0x9822ffd4,
+ 0x0ca2c060,
+ 0xc000b4a1,
+ 0xc0300a02,
+ 0xb4810c8a,
+ 0xc00ec000,
+ 0xc03008de,
+ 0xb4220d0e,
+ 0xc450c000,
+ 0xb4810c82,
+ 0xb101c000,
+ 0xb53f4220,
+ 0x0c947a6c,
+ 0xc000b481,
+ 0x4220b101,
+ 0x7aecb53f,
+ 0xb4810c88,
+ 0xb101c000,
+ 0xb53f4220,
+ 0x85027b6c,
+ 0x0c8ac030,
+ 0xa143f210,
+ 0xb4810a40,
+ 0xc008c000,
+ 0x0c840882,
+ 0xc000b421,
+ 0xc402020f,
+ 0xc0503a40,
+ 0xb4810c82,
+ 0xc0c0c000,
+ 0x09920d82,
+ 0x0d02c008,
+ 0x0902c008,
+ 0x9be7ffb4,
+ 0x0a02c008,
+ 0x0c8ec030,
+ 0xc000b481,
+ 0x0d02c050,
+ 0xc000b4e2,
+ 0x0c8ac450,
+ 0x1a00c008,
+ 0xc000b481,
+ 0x4220b101,
+ 0xc0340a68,
+ 0xb4820d1e,
+ 0x0cd4c000,
+ 0xb4811a68,
+ 0xb101c000,
+ 0x03034220,
+ 0x2b7cc03e,
+ 0xd0718502,
+ 0xe2000a6e,
+ 0xe0d35a95,
+ 0xb57f8d80,
+ 0xe3d37d7c,
+ 0xb57f8d80,
+ 0xe2d37dfc,
+ 0xb57f8d80,
+ 0xe1d37e7c,
+ 0xb57f8d80,
+ 0xc0007cfc,
+ 0x9d979262,
+ 0x0ec1cfec,
+ 0xb55f9dcf,
+ 0xffb47f7c,
+ 0xf2319bbf,
+ 0xb75fa025,
+ 0xe0007f7c,
+ 0x85101a84,
+ 0x9284ffff,
+ 0x9eb39d0f,
+ 0x9e729eba,
+ 0x08820c82,
+ 0x09c1cfec,
+ 0x9991c014,
+ 0x5a0cb780,
+ 0xa899f208,
+ 0x87028536,
+ 0x74402884,
+ 0x6878b55d,
+ 0x68e0b55d,
+ 0x9122c000,
+ 0xb55d853e,
+ 0xc0086878,
+ 0xb55d8502,
+ 0x9d0f68f8,
+ 0x09e2d032,
+ 0x9e729eba,
+ 0x2d9c8522,
+ 0x89afe220,
+ 0x6960b55d,
+ 0x69e0b55d,
+ 0x08860c86,
+ 0x09c1cfec,
+ 0x0da42d9c,
+ 0x9967c014,
+ 0x0df2c008,
+ 0x0d02c00a,
+ 0x0c9ec432,
+ 0xb4810a02,
+ 0xb107c000,
+ 0x9e794240,
+ 0x0d00c0c0,
+ 0x5c89c100,
+ 0x0d01cf40,
+ 0x3c80c400,
+ 0xc000b481,
+ 0x4220b106,
+ 0xcdff020d,
+ 0xc0c028fe,
+ 0x5d890d80,
+ 0xc000b423,
+ 0x2a7ecdff,
+ 0x0d00c0c0,
+ 0xb4825d09,
+ 0x089ec000,
+ 0x0c9ec034,
+ 0xc000b421,
+ 0x0e829d17,
+ 0xcfec8506,
+ 0x058b0ac1,
+ 0x7f7cb55f,
+ 0x9b4cffb4,
+ 0xa021f208,
+ 0xaa21d208,
+ 0xb75f7500,
+ 0xb4157f7c,
+ 0xd2084c22,
+ 0x7500aa25,
+ 0x9084c000,
+ 0xa127d208,
+ 0xaa29d208,
+ 0xc0007500,
+ 0xd2089084,
+ 0xd208a12b,
+ 0x7500aa2d,
+ 0x9084c000,
+ 0xa12fd208,
+ 0xc01c0e90,
+ 0x0a90777e,
+ 0x9334fffe,
+ 0x9eba9d0f,
+ 0xc0209e72,
+ 0x0c860d82,
+ 0xcfec0882,
+ 0xc01409c1,
+ 0xb73f9902,
+ 0x9eba7dec,
+ 0xc0209e72,
+ 0x0c860d82,
+ 0x08820183,
+ 0x98f7c014,
+ 0x9e729eba,
+ 0x7e6cb79f,
+ 0x0d82c020,
+ 0x08820c86,
+ 0xc0140189,
+ 0xb73f98ec,
+ 0x9eba7cec,
+ 0xc0209e72,
+ 0x0c860d82,
+ 0x08820183,
+ 0x98e1c014,
+ 0xc0340a22,
+ 0xb4810c9e,
+ 0x9d17c000,
+ 0x87060e82,
+ 0x0ac1cfec,
+ 0x2d5ed013,
+ 0x2de1058b,
+ 0xe2205d84,
+ 0xb55f81af,
+ 0xffb47fe4,
+ 0xf2089ae7,
+ 0xd208a021,
+ 0x7500aa21,
+ 0x7fe4b75f,
+ 0x5022b415,
+ 0xaa25d208,
+ 0xc0007500,
+ 0xd20a9084,
+ 0xd208a124,
+ 0x7500aa29,
+ 0x9084c000,
+ 0xa128d20a,
+ 0xaa2dd208,
+ 0xc0007500,
+ 0xd20a9084,
+ 0x0e90a12c,
+ 0x777ec004,
+ 0xfffe0a90,
+ 0x9d179274,
+ 0x87060e82,
+ 0x0ac1cfec,
+ 0x2d5ed013,
+ 0x2de1058b,
+ 0x0da05d84,
+ 0x81afe220,
+ 0x7fe4b55f,
+ 0x9ab2ffb4,
+ 0xaa21d208,
+ 0xf2887500,
+ 0xb75fa021,
+ 0xb4157fe4,
+ 0xd2085022,
+ 0x7500aa25,
+ 0x9084c000,
+ 0xa124d20a,
+ 0xaa29d208,
+ 0xc0007500,
+ 0xd20a9084,
+ 0xd208a128,
+ 0x7500aa2d,
+ 0x9084c000,
+ 0xa12cd20a,
+ 0xc0040e90,
+ 0x0a90777e,
+ 0x9254fffe,
+ 0x9eba9d0f,
+ 0xc0209e72,
+ 0x0c860d82,
+ 0xcfec0882,
+ 0xc01409c1,
+ 0x9eba9868,
+ 0xb79f9e72,
+ 0xc0207dec,
+ 0x0c860d82,
+ 0x01890882,
+ 0x985dc014,
+ 0x7c6cb73f,
+ 0xc0007440,
+ 0x9d0f9202,
+ 0x9e729eba,
+ 0x8502c008,
+ 0x6878b55d,
+ 0x0c860d8a,
+ 0xcfec0882,
+ 0xc01409c1,
+ 0xb77f984a,
+ 0xc0507d7c,
+ 0xaa610c82,
+ 0xc000b481,
+ 0x7aecb73f,
+ 0xb4210c94,
+ 0xb79fc000,
+ 0x0c887b6c,
+ 0xc000b481,
+ 0x598cb720,
+ 0x4d9cb740,
+ 0x4335b760,
+ 0x89afe220,
+ 0x0982c004,
+ 0xff740d1e,
+ 0xb7809b29,
+ 0xb740598c,
+ 0xf2484e1c,
+ 0xe220a982,
+ 0xc00289af,
+ 0x0d0e0982,
+ 0x9b1cff74,
+ 0x0c9ec032,
+ 0xb4219e79,
+ 0xc032c000,
+ 0xb4c20d22,
+ 0xc1c1c000,
+ 0xc0060902,
+ 0x0dce0940,
+ 0x0d020982,
+ 0x9b15ff74,
+ 0x6b6eb79f,
+ 0x6beeb7bf,
+ 0x6c6eb7df,
+ 0x6ceeb7ff,
+ 0x8c40c014,
+ 0xa61d9c22,
+ 0x9e968440,
+ 0xe0000a82,
+ 0xd3f20d80,
+ 0xd3f12e9e,
+ 0xc0022b1e,
+ 0xc00690e2,
+ 0xc00c87e2,
+ 0x9d6876f2,
+ 0xb3328502,
+ 0x74804826,
+ 0xc1000a84,
+ 0xc0015860,
+ 0x858e9082,
+ 0xc0508722,
+ 0x74920c1a,
+ 0xe0129d50,
+ 0xd0088522,
+ 0xb324a8e2,
+ 0x11284426,
+ 0x2e26d011,
+ 0xf3107506,
+ 0x9e4f8831,
+ 0x5a0cc200,
+ 0x50f0c200,
+ 0xc0003002,
+ 0xb40090a4,
+ 0x0802c000,
+ 0x9d2a7480,
+ 0xffff0984,
+ 0xf0119084,
+ 0x4a7d8422,
+ 0x75062a0c,
+ 0x90c2c000,
+ 0x0c9ac050,
+ 0xc000b401,
+ 0x76f2c00c,
+ 0xb3349d70,
+ 0x9ea14826,
+ 0x15b2e000,
+ 0x93e4fffd,
+ 0xc0300a42,
+ 0xb4810c8a,
+ 0x08c2c000,
+ 0x0d0ec030,
+ 0xc000b422,
+ 0x0c82c450,
+ 0xb4811a40,
+ 0xb101c000,
+ 0xb53f4220,
+ 0x0c947e6c,
+ 0xc000b481,
+ 0x4220b101,
+ 0x7eecb53f,
+ 0xb4810c88,
+ 0xb101c000,
+ 0xb53f4220,
+ 0xc0507f6c,
+ 0xb4a10c96,
+ 0x7740c000,
+ 0xc8018502,
+ 0xb3210882,
+ 0x75804c24,
+ 0xd0020a02,
+ 0x0c880a42,
+ 0xb4213098,
+ 0xc008c000,
+ 0xc0300a02,
+ 0xb4810c8e,
+ 0xc008c000,
+ 0x0c880882,
+ 0xc000b421,
+ 0x0d82c0c0,
+ 0xc0080992,
+ 0xc0080d02,
+ 0xffb40902,
+ 0xc008996e,
+ 0xc0300a02,
+ 0xb4820d0e,
+ 0xc450c000,
+ 0xc0080c8a,
+ 0xb4811a00,
+ 0xb101c000,
+ 0xc00e4220,
+ 0xc08028fc,
+ 0x010b5a90,
+ 0x0a00c002,
+ 0x0c8ac030,
+ 0xc000b481,
+ 0x0882c002,
+ 0xb4210c84,
+ 0x7480c000,
+ 0x92a2c000,
+ 0x09820dea,
+ 0xd0510d02,
+ 0xc1a11950,
+ 0xff943900,
+ 0xc0c098d0,
+ 0xff940d82,
+ 0xf21098b6,
+ 0xf310a943,
+ 0xf2108023,
+ 0xc002a241,
+ 0xc0300a02,
+ 0xb4810c8a,
+ 0xc002c000,
+ 0x0c840882,
+ 0xc000b421,
+ 0x7d6eb79f,
+ 0x7deeb7bf,
+ 0x7e6eb7df,
+ 0x7eeeb7ff,
+ 0x8c40c002,
+ 0xa60d9c22,
+ 0x0a42c801,
+ 0x0a00cb10,
+ 0x0ceac032,
+ 0xc000b481,
+ 0x08c2c801,
+ 0x0888c010,
+ 0xb4210c84,
+ 0xc008c000,
+ 0xc0020a42,
+ 0xb4811ce4,
+ 0xc008c000,
+ 0xc03008c2,
+ 0xb4220d0e,
+ 0xc450c000,
+ 0xc0080c82,
+ 0xb4811a40,
+ 0xb101c000,
+ 0xc0024220,
+ 0xb52038c0,
+ 0xc0504d0c,
+ 0xb4210c82,
+ 0xc0c0c000,
+ 0x09920d82,
+ 0x0d02c008,
+ 0x0902c008,
+ 0x98efffb4,
+ 0x0c86c450,
+ 0xb4810a02,
+ 0xb104c000,
+ 0xc0084220,
+ 0xc0300a02,
+ 0xb4820d0e,
+ 0x0c84c000,
+ 0x1a00c008,
+ 0xc000b481,
+ 0x4220b105,
+ 0x5a35c280,
+ 0x0882c801,
+ 0xc00e08c0,
+ 0xc2802afc,
+ 0xd0725a90,
+ 0x9ead2b4e,
+ 0x0c8ac030,
+ 0xc000b421,
+ 0x0c840a42,
+ 0xc000b481,
+ 0xb7c07740,
+ 0xc0015d0c,
+ 0xd0319002,
+ 0x0dea0ede,
+ 0x0d020982,
+ 0xd0512ac1,
+ 0xc1211950,
+ 0xff943900,
+ 0xf2489842,
+ 0x018ba9c6,
+ 0x5a8dc280,
+ 0x9eaa1a84,
+ 0x3d00c021,
+ 0x99a4ff74,
+ 0xaa45f248,
+ 0x16dcd010,
+ 0xf248024a,
+ 0xc450a245,
+ 0x0a020c86,
+ 0xc000b481,
+ 0x4220b104,
+ 0xc0340a6e,
+ 0xb4810c9e,
+ 0xb720c000,
+ 0xf2485b8c,
+ 0xb720aa45,
+ 0xd0534635,
+ 0xf2101940,
+ 0xc08088ab,
+ 0xc2800ca2,
+ 0xb5805a0c,
+ 0xb4a1418c,
+ 0xb785c000,
+ 0x75005008,
+ 0x9262c003,
+ 0x568cb721,
+ 0x550cb781,
+ 0x7c40c030,
+ 0xb5810a04,
+ 0xc000550c,
+ 0xc0349082,
+ 0xb72098dc,
+ 0xb720520c,
+ 0xb78141b5,
+ 0xb740550c,
+ 0x9e49442d,
+ 0x71046243,
+ 0x90b8c000,
+ 0xb5458506,
+ 0xb7855618,
+ 0x75005108,
+ 0x5d94b7a0,
+ 0x9262c000,
+ 0x530cb7a0,
+ 0xa83df210,
+ 0xa9a1f208,
+ 0x9e840d86,
+ 0xf2089c62,
+ 0xf250a021,
+ 0x9eaba825,
+ 0x9e840986,
+ 0xb7859c62,
+ 0x75005108,
+ 0x9164c000,
+ 0x5314b760,
+ 0xa825f210,
+ 0x9c629e84,
+ 0xc0000281,
+ 0xb7859220,
+ 0x75005088,
+ 0x9102c000,
+ 0x540cb780,
+ 0xaa81f208,
+ 0x90c0c000,
+ 0x548cb780,
+ 0xaa8df208,
+ 0x580cb720,
+ 0x4129b780,
+ 0x03037500,
+ 0x9264c000,
+ 0x5108b785,
+ 0xc0007500,
+ 0xf25090c4,
+ 0x9ea4aa21,
+ 0xb7409c62,
+ 0xf210419c,
+ 0xe320aa35,
+ 0x9ea489a3,
+ 0xf2109c62,
+ 0x9eabaa39,
+ 0x9ea4018d,
+ 0xb7809c62,
+ 0xc080528c,
+ 0xd2c80ca6,
+ 0xb4a1aa91,
+ 0xc002c000,
+ 0xffb40d92,
+ 0x700a981b,
+ 0x9364ffff,
+ 0x09c20d86,
+ 0xc1210d0a,
+ 0xff740902,
+ 0xb78098fe,
+ 0xf2485b8c,
+ 0xc0a1a992,
+ 0x0d040d02,
+ 0xff7409c2,
+ 0xc0c098e9,
+ 0x09920d82,
+ 0x09420d42,
+ 0x9be9ff94,
+ 0xc0300a42,
+ 0xb4810c8e,
+ 0xb79fc000,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0xb7009c22,
+ 0x76c05b8c,
+ 0x0d820c02,
+ 0x9342c000,
+ 0x430cb780,
+ 0x0880d131,
+ 0x4033b720,
+ 0x4e94b500,
+ 0x4f14b500,
+ 0x4894b500,
+ 0x76402c88,
+ 0x2a7ecdff,
+ 0x430cb580,
+ 0xc0008522,
+ 0x85129062,
+ 0x4a9cb540,
+ 0xb74074c0,
+ 0xc0005a14,
+ 0xb78092e2,
+ 0x8502430c,
+ 0xa8c1d810,
+ 0x4f1cb540,
+ 0x429cb540,
+ 0x589cb541,
+ 0x4b1cb540,
+ 0x489cb540,
+ 0x4e8cb520,
+ 0x2a7ecdff,
+ 0x430cb580,
+ 0x0880d131,
+ 0x4033b720,
+ 0x428cb780,
+ 0x2c14d012,
+ 0xc0080089,
+ 0x75002a00,
+ 0x28fdcffa,
+ 0x428cb520,
+ 0x92c2c000,
+ 0x430cb780,
+ 0xc8007600,
+ 0xb5803a00,
+ 0xc000430c,
+ 0x850690e4,
+ 0x6418b545,
+ 0x9100c000,
+ 0x6408b785,
+ 0x3a080d86,
+ 0x6408b585,
+ 0x6408b745,
+ 0x2a22d011,
+ 0xc0007500,
+ 0xb7809102,
+ 0xc010430c,
+ 0xb5803a00,
+ 0xb780430c,
+ 0x75004b0c,
+ 0x90e2c000,
+ 0x428cb780,
+ 0xb5802a79,
+ 0xb720428c,
+ 0xb7204294,
+ 0x9e4c4a8c,
+ 0xd3f17902,
+ 0xc2002a2e,
+ 0xb5855a05,
+ 0xc0006408,
+ 0xd2119102,
+ 0xb5803e10,
+ 0xc000428c,
+ 0xcff690c0,
+ 0xb5202cfd,
+ 0xb7204294,
+ 0xd1114294,
+ 0x75002e10,
+ 0x90a2c000,
+ 0xb5408506,
+ 0x7600491c,
+ 0x5e1dd0a2,
+ 0xd0020882,
+ 0x2a040892,
+ 0xc0007902,
+ 0xd1119102,
+ 0xb5803e10,
+ 0xc000428c,
+ 0x76c09120,
+ 0x90c2c000,
+ 0x3c80c020,
+ 0x4294b520,
+ 0x428cb720,
+ 0x2a12d011,
+ 0xc0007500,
+ 0xb78090e2,
+ 0x32184a8c,
+ 0x90c0c000,
+ 0x4a8cb780,
+ 0x22184a7d,
+ 0x428cb580,
+ 0x428cb720,
+ 0x2a14d011,
+ 0xc0007500,
+ 0xd0119102,
+ 0xb5803a12,
+ 0xc000428c,
+ 0x28f990a0,
+ 0x428cb520,
+ 0xa8c1d810,
+ 0x4e9cb740,
+ 0xaa45d810,
+ 0x88a3e210,
+ 0x5a11c200,
+ 0xc0037048,
+ 0xd1119036,
+ 0xda080a08,
+ 0xb720a882,
+ 0xb740428c,
+ 0x5c91488c,
+ 0xb7409e4c,
+ 0x38884314,
+ 0x428cb520,
+ 0xc1007088,
+ 0xb5403d00,
+ 0xc0004314,
+ 0xb7219278,
+ 0x9e54588c,
+ 0xc0017440,
+ 0xb5803a04,
+ 0xc000430c,
+ 0xc0119124,
+ 0xb5403d04,
+ 0x85064314,
+ 0x589cb541,
+ 0x088cd112,
+ 0x404bb780,
+ 0x4e8cb720,
+ 0x5a11c200,
+ 0xc0007048,
+ 0xb7809116,
+ 0xc001430c,
+ 0xb5803a10,
+ 0xb780430c,
+ 0xc200404b,
+ 0x1a085a11,
+ 0xc0007048,
+ 0xb7809116,
+ 0xc001430c,
+ 0xb5803a40,
+ 0xb720430c,
+ 0xd1114f14,
+ 0xda080a08,
+ 0x9e4ca881,
+ 0x71025891,
+ 0x9102c000,
+ 0x430cb780,
+ 0x3a00c005,
+ 0x430cb580,
+ 0x430cb780,
+ 0x3a00c084,
+ 0x430cb580,
+ 0x91a0c000,
+ 0x428cb780,
+ 0x430cb720,
+ 0xb5802a75,
+ 0xcffa428c,
+ 0xb52028fd,
+ 0xb740430c,
+ 0xf012428c,
+ 0xc0002922,
+ 0xb7809102,
+ 0xc080430c,
+ 0xb5803a00,
+ 0xb780430c,
+ 0xb720488c,
+ 0xb7204a94,
+ 0x0a044f0c,
+ 0x488cb580,
+ 0x78889e4c,
+ 0xb5200884,
+ 0xc0004f0c,
+ 0x76809222,
+ 0x91c4c000,
+ 0x460cb720,
+ 0x3a22d011,
+ 0x428cb580,
+ 0xb5408506,
+ 0x28f94b1c,
+ 0x460cb520,
+ 0x0a08d111,
+ 0xa881da08,
+ 0x4f14b720,
+ 0x18c0c002,
+ 0x5a7fc080,
+ 0x5a71c200,
+ 0x9e4c0098,
+ 0x460cb740,
+ 0x71025893,
+ 0x468cb540,
+ 0x9044c001,
+ 0x430cb740,
+ 0xc0800205,
+ 0x75002a00,
+ 0x9342c000,
+ 0x4e94b720,
+ 0x76420205,
+ 0x3a00c201,
+ 0x430cb580,
+ 0x921cc000,
+ 0x0a0cd111,
+ 0xa881da08,
+ 0x9e4c0c8c,
+ 0x71025891,
+ 0x90d6c000,
+ 0x3900ca01,
+ 0x430cb540,
+ 0x4f14b720,
+ 0x0a08d111,
+ 0xa881da08,
+ 0x58919e4c,
+ 0xc0007102,
+ 0xb7209278,
+ 0x0203430c,
+ 0x2a00c005,
+ 0xc0007500,
+ 0xc1019162,
+ 0xb5203880,
+ 0x8506430c,
+ 0x499cb540,
+ 0x4a1cb540,
+ 0xc0007600,
+ 0xb7809122,
+ 0x750c4f0c,
+ 0x9122c000,
+ 0x92a0c000,
+ 0x4f0cb780,
+ 0xc000750a,
+ 0xb7809204,
+ 0x7500498c,
+ 0x9162c000,
+ 0x430cb780,
+ 0xb5408502,
+ 0xc401499c,
+ 0xb5803a00,
+ 0xb780430c,
+ 0x75064f0c,
+ 0x9204c000,
+ 0x4a0cb780,
+ 0xc0007500,
+ 0xb7809162,
+ 0x8502430c,
+ 0x4a1cb540,
+ 0x3a00c800,
+ 0x430cb580,
+ 0x4f14b720,
+ 0x0a08d111,
+ 0xa881da08,
+ 0x58919e4c,
+ 0xc0007102,
+ 0xb7809158,
+ 0x85024e8c,
+ 0x4f1cb540,
+ 0xb5800a04,
+ 0xb7804e8c,
+ 0x7500428c,
+ 0xc0008502,
+ 0xb7809144,
+ 0xc400430c,
+ 0x75002a00,
+ 0xe0018502,
+ 0x9d438522,
+ 0xa6059c22,
+ 0x5088b785,
+ 0xb7a07500,
+ 0xc002598c,
+ 0xb7609202,
+ 0xb7614210,
+ 0xb7a0578c,
+ 0xba1b5914,
+ 0xc0944001,
+ 0xd2109877,
+ 0xd231a9a2,
+ 0xba000a50,
+ 0xf2084002,
+ 0xba1ba001,
+ 0xc0944001,
+ 0xb7619857,
+ 0xd210578c,
+ 0xd251a9a2,
+ 0xba000a50,
+ 0xf2084002,
+ 0xba1ba001,
+ 0xc0944001,
+ 0xb721985d,
+ 0xd2315694,
+ 0xe04008d8,
+ 0xba002c80,
+ 0xb5004002,
+ 0xc000402d,
+ 0xd2109202,
+ 0xba1ba9a2,
+ 0xc0944001,
+ 0xd2519871,
+ 0xba000a58,
+ 0xf2084002,
+ 0xc000a001,
+ 0xd25190c0,
+ 0xf2080a58,
+ 0xb722a082,
+ 0xd2716b92,
+ 0xb78008d8,
+ 0x9e49402d,
+ 0xd2716243,
+ 0xb58008d0,
+ 0xd231402d,
+ 0xf2080a50,
+ 0x7500aa01,
+ 0x90c2c000,
+ 0x0cb6c03e,
+ 0xc000b481,
+ 0x0a50d251,
+ 0xa881f208,
+ 0x0caac03e,
+ 0xc000b421,
+ 0x0a58d231,
+ 0xaa01f208,
+ 0xc0007500,
+ 0xc2009122,
+ 0xc8015a40,
+ 0x0c903a00,
+ 0xc000b481,
+ 0x0a58d251,
+ 0xaa01f208,
+ 0xc0007500,
+ 0xc03e90c2,
+ 0xb4810ca2,
+ 0xd271c000,
+ 0xf2080a50,
+ 0xc03ea881,
+ 0xb4210c8a,
+ 0xb79fc000,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa6859c22,
+ 0x0c92c43e,
+ 0xb4810a02,
+ 0xb103c000,
+ 0xb7804220,
+ 0xda08568c,
+ 0xda08a885,
+ 0xda08a909,
+ 0xda08a189,
+ 0xda08a081,
+ 0x0cd0a105,
+ 0xb4810a02,
+ 0xb103c000,
+ 0xb7804220,
+ 0xb7c0560c,
+ 0xda08568c,
+ 0x9ea5a885,
+ 0xa88ada08,
+ 0xa189da08,
+ 0x2d80c008,
+ 0xda0876c0,
+ 0xda08a081,
+ 0xc00ba086,
+ 0xb7809102,
+ 0x0a044508,
+ 0x4508b580,
+ 0x0ca6c450,
+ 0xb4810a02,
+ 0xb103c000,
+ 0x00874220,
+ 0x2880c031,
+ 0xc00f0207,
+ 0xd0a42a7c,
+ 0xd2285861,
+ 0x028759c1,
+ 0x2afccffe,
+ 0x0a020c88,
+ 0xc000b481,
+ 0x4220b103,
+ 0x59c1d1a6,
+ 0xcffe0107,
+ 0x0cbc297c,
+ 0xc000b481,
+ 0x4220b103,
+ 0xb7820087,
+ 0xc0fc6b8a,
+ 0xd0a42880,
+ 0xb7255b19,
+ 0xd0f15090,
+ 0x1208283e,
+ 0x76409ea2,
+ 0x6b8ab502,
+ 0x4003ba12,
+ 0x90e4c000,
+ 0x5108b785,
+ 0xc0027500,
+ 0xb78593a4,
+ 0x75005108,
+ 0x81b3e331,
+ 0x0127d011,
+ 0x5a0cb780,
+ 0x0c827602,
+ 0x0c92d001,
+ 0xa899f208,
+ 0x28849e4c,
+ 0xb7607848,
+ 0xc0005314,
+ 0xd81090e2,
+ 0x0a04aa69,
+ 0xa269d810,
+ 0xa96bf010,
+ 0xa96cf012,
+ 0x8026f010,
+ 0x82a5e210,
+ 0xa269f010,
+ 0xa0edf010,
+ 0x4608b782,
+ 0x08827500,
+ 0x0892d002,
+ 0x0a027602,
+ 0x0a42d002,
+ 0xc0007848,
+ 0xc07c90c2,
+ 0xda088542,
+ 0x7602a143,
+ 0xa973f010,
+ 0x90c4c000,
+ 0xaa21da10,
+ 0x9080c000,
+ 0xaa41da08,
+ 0x80a1e310,
+ 0xaa6dd810,
+ 0xa0f1f010,
+ 0x0a047606,
+ 0xa26dd810,
+ 0x9124c000,
+ 0x4588b780,
+ 0xb5800a04,
+ 0xc0064588,
+ 0x85029200,
+ 0x4598b540,
+ 0x9160c006,
+ 0x5a0cb720,
+ 0x5314b720,
+ 0x0127d330,
+ 0x432db780,
+ 0x8122c301,
+ 0x4545b740,
+ 0x75002a04,
+ 0x8027f010,
+ 0x8221f310,
+ 0xb5800583,
+ 0xc001454d,
+ 0x760290a2,
+ 0x90c4c000,
+ 0xaa21da10,
+ 0x9080c000,
+ 0xaa41da08,
+ 0xa27dd810,
+ 0xc0017606,
+ 0x76009082,
+ 0x91a4c000,
+ 0xd8107680,
+ 0xe002a973,
+ 0xf2108d2a,
+ 0xd8108025,
+ 0xc000a271,
+ 0x768092c0,
+ 0xa967d850,
+ 0x8d26e002,
+ 0x9160c000,
+ 0xaa21da10,
+ 0xd8507680,
+ 0xd810a967,
+ 0xe002a27d,
+ 0xf2108d2a,
+ 0xd8508025,
+ 0xb785a265,
+ 0x75005208,
+ 0x92e2c000,
+ 0x410ab780,
+ 0xc0007008,
+ 0x85029244,
+ 0x5218b545,
+ 0x0c82c43a,
+ 0xb4810a02,
+ 0xb103c000,
+ 0xcfef4220,
+ 0xc03a29fe,
+ 0xb4610c82,
+ 0xb780c000,
+ 0x7008410a,
+ 0xd0020882,
+ 0x76060892,
+ 0xd0010a02,
+ 0x78480a42,
+ 0x9242c000,
+ 0xb5458506,
+ 0xc43a5218,
+ 0x0a020c82,
+ 0xc000b481,
+ 0x4220b103,
+ 0x3980c011,
+ 0x0c82c03a,
+ 0xc000b461,
+ 0xc0017780,
+ 0x76009162,
+ 0x92c4c000,
+ 0xaa41da08,
+ 0xa967f010,
+ 0xa8f5d810,
+ 0xa8fad810,
+ 0x8021f310,
+ 0xd8100082,
+ 0x0c84a0f5,
+ 0xa0fad810,
+ 0xa265f010,
+ 0x9280c000,
+ 0xaa21da10,
+ 0xa97bf010,
+ 0xa8e9d850,
+ 0xa8eed850,
+ 0x8021f310,
+ 0xd8500082,
+ 0x0c84a0e9,
+ 0xa0eed850,
+ 0xa279f010,
+ 0xaa7dd810,
+ 0xa97ff010,
+ 0xa960f052,
+ 0xa9e7f050,
+ 0x8021f310,
+ 0xa96ff050,
+ 0xa27df010,
+ 0x8223f310,
+ 0xa8e2d850,
+ 0xa261f050,
+ 0x8037f010,
+ 0x80a1e210,
+ 0xd8500c84,
+ 0xf050a0e2,
+ 0xf050a265,
+ 0xb7bfa0ed,
+ 0xb7df7f6e,
+ 0x8c407fee,
+ 0xa6059c22,
+ 0x568cb781,
+ 0x2a00c008,
+ 0xc0007500,
+ 0xb7809282,
+ 0xb720530c,
+ 0xf2085d8c,
+ 0xb700a982,
+ 0x9e84452d,
+ 0xb7819c62,
+ 0xb500568c,
+ 0xcff6400a,
+ 0xb5812a7d,
+ 0xb781568c,
+ 0xc010568c,
+ 0x75002a00,
+ 0x91c2c001,
+ 0x5d8cb7a0,
+ 0x5314b7a0,
+ 0xa825f208,
+ 0x9e84058b,
+ 0xf2489c62,
+ 0x9ea4aa21,
+ 0xb7209c62,
+ 0xb725520c,
+ 0xb7805c10,
+ 0x9e49422b,
+ 0xc0007048,
+ 0xf2109222,
+ 0xf208a9a1,
+ 0x0d86a83d,
+ 0x9c629e84,
+ 0xaa25f248,
+ 0xa021f210,
+ 0x0986058b,
+ 0x9c629ea4,
+ 0x568cb781,
+ 0x2a7dcfee,
+ 0x568cb581,
+ 0x568cb721,
+ 0xc0200203,
+ 0x75002a00,
+ 0x90c2c000,
+ 0x28fdcfde,
+ 0x568cb521,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xa205f839,
+ 0x568cb781,
+ 0x7d00c030,
+ 0x9162c000,
+ 0x4c8cb780,
+ 0x2a00c008,
+ 0xc0007500,
+ 0xfff49082,
+ 0xb7609b92,
+ 0xff744c94,
+ 0x0a029b1f,
+ 0x0ca2c060,
+ 0xc000b481,
+ 0x4c94b760,
+ 0x99ebfff4,
+ 0x4588b780,
+ 0x7534c01c,
+ 0x9104c000,
+ 0xb5458506,
+ 0x85026018,
+ 0x4598b540,
+ 0x5008b785,
+ 0xc0017500,
+ 0xb7809282,
+ 0xb720520c,
+ 0xda084510,
+ 0x9e4ca88d,
+ 0xc0017102,
+ 0xb7219044,
+ 0x0203568c,
+ 0x2a00c010,
+ 0xc0007500,
+ 0xc0209102,
+ 0xb5213880,
+ 0xfff4568c,
+ 0xb7819b5c,
+ 0xb725568c,
+ 0xb7205c08,
+ 0x85024012,
+ 0x4518b540,
+ 0xb5250884,
+ 0xb5205c08,
+ 0xc0184112,
+ 0xb5813a00,
+ 0xb780568c,
+ 0xc0104c8c,
+ 0xc0007500,
+ 0xfff49084,
+ 0xf9f89918,
+ 0x9c22aa1d,
+ 0xb780a61d,
+ 0xd1315b8c,
+ 0xb72008c0,
+ 0xd092402b,
+ 0x76402890,
+ 0xc0040389,
+ 0x85029362,
+ 0x5618b545,
+ 0xd0118502,
+ 0x75002a14,
+ 0x551cb541,
+ 0xb5458506,
+ 0xc0005018,
+ 0xb5459082,
+ 0xd1115098,
+ 0x75002a10,
+ 0x9082c000,
+ 0x5118b545,
+ 0xc0400203,
+ 0x75002a00,
+ 0x9082c000,
+ 0x5198b545,
+ 0x5108b785,
+ 0xb7c07500,
+ 0xc0025d94,
+ 0xb7859282,
+ 0x75005088,
+ 0x91e2c002,
+ 0x5188b785,
+ 0xc0027500,
+ 0xc8099144,
+ 0xc88e0a42,
+ 0xc8090a60,
+ 0xc91608c2,
+ 0xc80908e0,
+ 0xc9b00cc2,
+ 0xc8090cc0,
+ 0xc95a0942,
+ 0xc8090960,
+ 0xc8600d42,
+ 0xc8090d00,
+ 0xc73809c2,
+ 0xc80909f0,
+ 0xc7fe0dc2,
+ 0xc8090dc0,
+ 0xc7240c42,
+ 0xc8090c00,
+ 0xc6f60842,
+ 0xc8090810,
+ 0xc7100ac2,
+ 0xc8090a80,
+ 0xc7060ec2,
+ 0xc8090eb0,
+ 0xc86e0b42,
+ 0xf2100b40,
+ 0xf210a249,
+ 0xf210a0d1,
+ 0xf210a0d6,
+ 0xf210a159,
+ 0xf210a14e,
+ 0xf250a1dd,
+ 0xf250a1c2,
+ 0xf250a046,
+ 0xf210a049,
+ 0xf210a2c5,
+ 0xf250a2c2,
+ 0xb7a0a34d,
+ 0xf2105c8c,
+ 0x9eabaa4d,
+ 0x9c629ea4,
+ 0xaa39dbc8,
+ 0x528cb740,
+ 0xb5408502,
+ 0xd208409a,
+ 0xf248a8a1,
+ 0xc010a8be,
+ 0x75002a00,
+ 0xa0cdd808,
+ 0x5794b521,
+ 0x9102c000,
+ 0x568cb781,
+ 0x3a00c040,
+ 0x568cb581,
+ 0x5008b785,
+ 0xc0057500,
+ 0xb7819042,
+ 0xc030568c,
+ 0xc0007d00,
+ 0xfff49082,
+ 0xb7209a8c,
+ 0xf2c85214,
+ 0xb720aa65,
+ 0x7048434d,
+ 0x5d94b7c0,
+ 0xc0000683,
+ 0xf2509102,
+ 0xd132aa4d,
+ 0x9ea409f8,
+ 0xb7209c62,
+ 0x8502408a,
+ 0x4698b542,
+ 0xb5427440,
+ 0xb5424718,
+ 0xc0004798,
+ 0xda1090e2,
+ 0x7048aa35,
+ 0x9344c000,
+ 0x5088b785,
+ 0xa9b6da10,
+ 0xa8c9f210,
+ 0x75008502,
+ 0x409ab540,
+ 0xe001850a,
+ 0x9d4f8d24,
+ 0x9e8c1d84,
+ 0xf2109c62,
+ 0x0d8aaa51,
+ 0x9c629ea4,
+ 0x90e0c000,
+ 0xaa51f210,
+ 0x9ea40d86,
+ 0xb7819c62,
+ 0xb720568c,
+ 0xb7a0408a,
+ 0x8502530c,
+ 0x5c18b545,
+ 0x3a00c008,
+ 0x568cb581,
+ 0xaa41f210,
+ 0x08849eab,
+ 0x408ab520,
+ 0x9c629ea4,
+ 0x580cb720,
+ 0x4129b780,
+ 0x03037500,
+ 0x92e4c000,
+ 0xa9a1f208,
+ 0xa85df210,
+ 0x9e840d82,
+ 0xf2089c62,
+ 0xf250a021,
+ 0x9eaba845,
+ 0x9e840982,
+ 0xda089c62,
+ 0xb582aa21,
+ 0xc0006b8a,
+ 0xb7209180,
+ 0xd210540c,
+ 0xb740aa29,
+ 0xf31044bb,
+ 0xb5808021,
+ 0xd20844ab,
+ 0x7440a8c9,
+ 0x9122c000,
+ 0x448cb780,
+ 0xf2088506,
+ 0xc000a117,
+ 0xb78090c0,
+ 0xf208448c,
+ 0xb720a095,
+ 0xb780528c,
+ 0xb58241ab,
+ 0xb5806b8a,
+ 0xb580400a,
+ 0xc000410a,
+ 0xb7809100,
+ 0xda08448c,
+ 0xb520a899,
+ 0xb79f410a,
+ 0xb7bf7e6e,
+ 0xb7df7eee,
+ 0xb7ff7f6e,
+ 0xc0027fee,
+ 0x9c228c00,
+ 0x418ab780,
+ 0x1d38f034,
+ 0xb3228502,
+ 0xdffc506c,
+ 0x9e2a7d3e,
+ 0x5e84b760,
+ 0x9364c000,
+ 0xc0340a4a,
+ 0xb4810c9e,
+ 0xb740c000,
+ 0x9dc75e9c,
+ 0xaa69c010,
+ 0xc0829e59,
+ 0xc2000cda,
+ 0x32185a20,
+ 0xc000b481,
+ 0xc03408be,
+ 0xb4210c9e,
+ 0xb760c000,
+ 0xb7405e84,
+ 0x9e2d5e1c,
+ 0xa96dc020,
+ 0x4000ba12,
+ 0x6a21d071,
+ 0x0cfac036,
+ 0x58ffc200,
+ 0x024258f1,
+ 0x5a13c200,
+ 0x5a20c200,
+ 0xb4413128,
+ 0x9de4c000,
+ 0xaa69c010,
+ 0xc0369e59,
+ 0xc2000cfe,
+ 0x32185a20,
+ 0xc000b481,
+ 0xb7209c22,
+ 0xb7805294,
+ 0x7504404d,
+ 0xc0009d3a,
+ 0xb72091c4,
+ 0xb780520c,
+ 0xb5804cab,
+ 0xc20041cb,
+ 0xd2245a40,
+ 0xc00159c1,
+ 0xb72091c0,
+ 0xb780538c,
+ 0xe310402d,
+ 0x74278821,
+ 0x90b6c000,
+ 0xc000084f,
+ 0x741a90e0,
+ 0xb3028532,
+ 0x9d434478,
+ 0x403db740,
+ 0x6b8ab722,
+ 0x81a1e220,
+ 0xd0719e5a,
+ 0x70881a14,
+ 0x90f8c000,
+ 0x0a12d071,
+ 0xc0007088,
+ 0x9dcf907c,
+ 0x9ea10a1e,
+ 0x08cec002,
+ 0x72c2cc12,
+ 0xcc109e89,
+ 0x9e5872c2,
+ 0xb7209c22,
+ 0x85025294,
+ 0x538cb780,
+ 0xb7208702,
+ 0xf01041cb,
+ 0xf010a16b,
+ 0xf010a16f,
+ 0xd810a173,
+ 0xd810a16f,
+ 0xf010a16b,
+ 0xb542a0e1,
+ 0xf2084600,
+ 0xf208a10b,
+ 0xb720a10f,
+ 0xf20841cb,
+ 0xda08a113,
+ 0xda08a10f,
+ 0xf208a10b,
+ 0x9c22a081,
+ 0xb7209e5b,
+ 0xf0085394,
+ 0xf00aaa61,
+ 0xf008a968,
+ 0xb740a96e,
+ 0xb58041db,
+ 0xd808404d,
+ 0xf310aa6d,
+ 0xb7408021,
+ 0xb580415b,
+ 0xd80841cb,
+ 0xf310aa69,
+ 0xb5808021,
+ 0xf008414b,
+ 0xb520a8e9,
+ 0xf008414d,
+ 0xb760aa6d,
+ 0xb7205414,
+ 0xb580528c,
+ 0xf01041cd,
+ 0xe020a963,
+ 0xb7408325,
+ 0xf008402d,
+ 0xf210a8f1,
+ 0x7482802d,
+ 0xa261f010,
+ 0x424db520,
+ 0x9184c000,
+ 0xaa71f008,
+ 0xa967f050,
+ 0x5a0fc200,
+ 0x8021f310,
+ 0xa265f050,
+ 0xd8088502,
+ 0xd808a16f,
+ 0x8502a16b,
+ 0xf0089e50,
+ 0xf008a16b,
+ 0xf008a16f,
+ 0x9c22a173,
+ 0x5214b720,
+ 0xf0089e5a,
+ 0xb720aa41,
+ 0xc4104149,
+ 0xf0087048,
+ 0xb780a0c1,
+ 0xd01240c9,
+ 0x74c07102,
+ 0xa241f008,
+ 0x91c4c000,
+ 0x528cb720,
+ 0xaa41d808,
+ 0x5394b720,
+ 0x41abb580,
+ 0xaa41f008,
+ 0x404db580,
+ 0x9c220802,
+ 0xf011a605,
+ 0xb7a00c30,
+ 0xb7a05414,
+ 0xc000520c,
+ 0xda509124,
+ 0xda08a9aa,
+ 0x0d02a9b1,
+ 0x9b48c054,
+ 0x528cb720,
+ 0xa8aad208,
+ 0xa926d208,
+ 0x412bb740,
+ 0xda089e49,
+ 0xc010aa35,
+ 0x9e817040,
+ 0xc8121a08,
+ 0x70887282,
+ 0x90c4c000,
+ 0x518cb780,
+ 0xa102da08,
+ 0xa927da50,
+ 0xf2109e50,
+ 0xda50802d,
+ 0xb79fa225,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa61d9c22,
+ 0x76c28420,
+ 0xb5bf0287,
+ 0xc0007f6c,
+ 0xb72091c4,
+ 0xb780540c,
+ 0x9e8e412b,
+ 0x528cb7e0,
+ 0xb5800a04,
+ 0xc000412b,
+ 0xb72593a0,
+ 0x74405188,
+ 0x9202c000,
+ 0x528cb780,
+ 0xa891f248,
+ 0x5194b720,
+ 0x5414b7c0,
+ 0x588f0389,
+ 0x484db520,
+ 0x9140c000,
+ 0x518cb780,
+ 0x5414b7c0,
+ 0x528cb7e0,
+ 0xa081f288,
+ 0x5214b720,
+ 0xa8c9da10,
+ 0x424bb780,
+ 0x41c9b740,
+ 0xb7807048,
+ 0x098241cb,
+ 0x09b2d001,
+ 0xa8e1f208,
+ 0x0f967104,
+ 0x1ff4d003,
+ 0x9e4e7444,
+ 0x9044c001,
+ 0xc00074c0,
+ 0xda509184,
+ 0xdac8a94b,
+ 0xf310aa45,
+ 0xda508021,
+ 0xc000a249,
+ 0xda509220,
+ 0xdac8a94b,
+ 0xf310aa45,
+ 0x0d828021,
+ 0xa249da50,
+ 0x9b6efff4,
+ 0xa079da48,
+ 0xa045dac8,
+ 0xaac5dac8,
+ 0x9080c015,
+ 0xc0157442,
+ 0x74ac9024,
+ 0x538cb780,
+ 0xd0090d8e,
+ 0x9e580db4,
+ 0xa88eda08,
+ 0x6104d033,
+ 0x72759ea0,
+ 0xc0000902,
+ 0xda089178,
+ 0x9e4aaa4d,
+ 0x8021f310,
+ 0x01037088,
+ 0x1912d00b,
+ 0xaa69f208,
+ 0x9e927502,
+ 0x9204c001,
+ 0xaa69da08,
+ 0xc0017500,
+ 0x74c09164,
+ 0x93e4c000,
+ 0xaac5dac8,
+ 0xaa49d208,
+ 0xa8c5d208,
+ 0x710ad410,
+ 0x704ad412,
+ 0xc0007680,
+ 0xb78091c2,
+ 0xda10414a,
+ 0xd250a8c1,
+ 0xda10a1d1,
+ 0xda10a251,
+ 0xda10a24d,
+ 0xda50a0d5,
+ 0xc011aa49,
+ 0xda5093e0,
+ 0x024aaa45,
+ 0xa245da50,
+ 0xa2f9da48,
+ 0x9280c012,
+ 0xaa6dd288,
+ 0xc0017500,
+ 0x74c09122,
+ 0x9044c001,
+ 0xc0007480,
+ 0xd20891e2,
+ 0xf250aa4d,
+ 0xc00aa8c5,
+ 0x70486a02,
+ 0x90dcc000,
+ 0xaa41da10,
+ 0xa255da10,
+ 0xa8c1d208,
+ 0xaa71da48,
+ 0xc0007102,
+ 0xda489088,
+ 0xd288a0f1,
+ 0x7500aa65,
+ 0xaaf1da48,
+ 0x9140c010,
+ 0xa9f2da48,
+ 0x9240c005,
+ 0xc0037480,
+ 0xd20893a2,
+ 0xb720aa4d,
+ 0x6a0e414a,
+ 0x85027048,
+ 0x915cc000,
+ 0xaa4dda10,
+ 0x6a0c5884,
+ 0xc0007048,
+ 0x8506907c,
+ 0xa157d250,
+ 0xa8ced208,
+ 0xa8c5f250,
+ 0x6e11d291,
+ 0x70489d9a,
+ 0x1e32d011,
+ 0x414ab720,
+ 0x6245c001,
+ 0xd00d0d02,
+ 0x70480d22,
+ 0x905cc001,
+ 0xaa51da10,
+ 0x5884d0a4,
+ 0x6a0c9e48,
+ 0x9e527008,
+ 0xd00d0882,
+ 0x78440892,
+ 0x9282c000,
+ 0xa8c1f210,
+ 0xaa55da10,
+ 0x6a0c5884,
+ 0xc0007048,
+ 0x8506917c,
+ 0xa153d250,
+ 0xa17bd288,
+ 0xaa41da10,
+ 0x93c0c000,
+ 0xa8d1da10,
+ 0xd2508502,
+ 0xb780a153,
+ 0xd013414a,
+ 0xf3106916,
+ 0x76808021,
+ 0x5a0bc200,
+ 0xa251da10,
+ 0x91c2c000,
+ 0xa8d5da10,
+ 0xaa41f210,
+ 0x6916d013,
+ 0x8021f310,
+ 0x5a0bc200,
+ 0xa255da10,
+ 0xaa51d250,
+ 0xc0007500,
+ 0xda0891e2,
+ 0xda08aa55,
+ 0x6a14a8e9,
+ 0x5a0fc200,
+ 0xc0007048,
+ 0x850690bc,
+ 0xa15bd250,
+ 0x414ab780,
+ 0xa24dda10,
+ 0xaad2d250,
+ 0xc0017740,
+ 0x74c092a2,
+ 0x9164c001,
+ 0xaa41d208,
+ 0xa978da4a,
+ 0x1244e001,
+ 0x442cb343,
+ 0x751e0207,
+ 0xa8d9d250,
+ 0xb342853e,
+ 0x74404478,
+ 0x82adf210,
+ 0x91c2c000,
+ 0xa8eada08,
+ 0xaa55da08,
+ 0x1a0c9e48,
+ 0xd0117008,
+ 0xb35108d4,
+ 0x0283443c,
+ 0xa8e6d288,
+ 0xa8c9d208,
+ 0xd2087640,
+ 0xc00aa945,
+ 0x0d8291a0,
+ 0x9a38fff4,
+ 0xa079da48,
+ 0x9240c00b,
+ 0xaa79d288,
+ 0xc0017500,
+ 0x74c091c2,
+ 0x9244c000,
+ 0xaa79da48,
+ 0xaac1d208,
+ 0xa8e6d288,
+ 0xa8c9d208,
+ 0xd4120a04,
+ 0x76407148,
+ 0xa945d208,
+ 0x91c0c009,
+ 0xfff40d82,
+ 0xd2889a19,
+ 0x7500aa7d,
+ 0xa079da48,
+ 0xa2fad288,
+ 0x91c2c00a,
+ 0xa977da48,
+ 0xaa61da88,
+ 0x80a1e210,
+ 0xda880a04,
+ 0xda48a261,
+ 0xc00aa0f5,
+ 0xda109020,
+ 0x7500aa49,
+ 0x9144c001,
+ 0x578cb780,
+ 0xa95bf210,
+ 0xa881da08,
+ 0x88a3e210,
+ 0xa0d9f210,
+ 0xaa71f248,
+ 0xda487500,
+ 0xc000aaf9,
+ 0xd250921a,
+ 0xb720aa59,
+ 0x0a88518c,
+ 0x75008506,
+ 0x4d39b540,
+ 0x0a52d011,
+ 0x4424b354,
+ 0xd2880289,
+ 0xd208a8e6,
+ 0x7640a8c9,
+ 0xa945d208,
+ 0x9100c007,
+ 0xc00774c0,
+ 0xb7409304,
+ 0xb7804144,
+ 0xf24841cc,
+ 0xf310a973,
+ 0xb7208221,
+ 0xf3105194,
+ 0xf2488821,
+ 0xb720a271,
+ 0x7102484d,
+ 0xc0010683,
+ 0xda1092b6,
+ 0xb740a8c9,
+ 0xd0a65784,
+ 0x9e2d5904,
+ 0xaa4dc830,
+ 0xa95bf210,
+ 0x8821f310,
+ 0xa259f210,
+ 0xa8a9d2d0,
+ 0xa8dad250,
+ 0x0a887442,
+ 0x0a54d011,
+ 0x4424b354,
+ 0x02897640,
+ 0x90e2c000,
+ 0xaa79da48,
+ 0xd4120a04,
+ 0xda48710a,
+ 0xd208a97b,
+ 0xd288a8c9,
+ 0xf310a8e6,
+ 0xd410802f,
+ 0xd410704a,
+ 0x7640710a,
+ 0xa945d208,
+ 0x93c0c004,
+ 0xaa49da10,
+ 0x5784b740,
+ 0x5904d226,
+ 0xc8309e2d,
+ 0xda90a8ce,
+ 0x9e48a8c1,
+ 0xc0806091,
+ 0xc2005a7f,
+ 0x00985a61,
+ 0xf21058a3,
+ 0xda90a0bd,
+ 0x7440aa41,
+ 0xa959f210,
+ 0xd00e0882,
+ 0x62450892,
+ 0x59a3d224,
+ 0x0a0276c0,
+ 0x0a42d00e,
+ 0x3098e000,
+ 0x90a2c000,
+ 0xa0bef210,
+ 0xf2109e93,
+ 0x76c0a95b,
+ 0x882bf210,
+ 0xa259f210,
+ 0x90fcc000,
+ 0xa8bdf210,
+ 0xc0007440,
+ 0xf208911a,
+ 0xc200aa51,
+ 0xc0005804,
+ 0xf24891a0,
+ 0xd033aa71,
+ 0x9e5b6142,
+ 0xe2205d87,
+ 0x0d0281af,
+ 0x9898c054,
+ 0xaa49da10,
+ 0x5704b740,
+ 0xa93df210,
+ 0xa8e9f248,
+ 0x5904d226,
+ 0xc8309e2d,
+ 0xf208a8ce,
+ 0xd033aa51,
+ 0x9e496122,
+ 0x5a07c200,
+ 0xc0121002,
+ 0xd0247008,
+ 0xe2205987,
+ 0x0d0281af,
+ 0xc0540181,
+ 0xd0249879,
+ 0xc054598f,
+ 0xd288989f,
+ 0xb75fa969,
+ 0xda487f64,
+ 0xd250a97b,
+ 0xf210a8d6,
+ 0xe3108225,
+ 0xe21080af,
+ 0xb7408b25,
+ 0xd4105814,
+ 0xd4107008,
+ 0xf3107142,
+ 0xd010882f,
+ 0xd412a8cd,
+ 0xd412710a,
+ 0x7642708a,
+ 0xa8e6d288,
+ 0xa945d208,
+ 0x0a52d011,
+ 0x4424b354,
+ 0xd2087440,
+ 0x0289a8c9,
+ 0x1a52d011,
+ 0x4422b354,
+ 0x02897640,
+ 0x0a54d011,
+ 0x4422b354,
+ 0xd4100289,
+ 0xd412704a,
+ 0x7640708a,
+ 0xaa49da50,
+ 0x0a46d002,
+ 0xda50024a,
+ 0xc000a249,
+ 0x0d829360,
+ 0x98dafff4,
+ 0xaa7dd288,
+ 0xda487500,
+ 0xc000a079,
+ 0xda4891a2,
+ 0xda88a977,
+ 0xe210aa61,
+ 0x0a0480a1,
+ 0xa261da88,
+ 0xa0f5da48,
+ 0xaa79da48,
+ 0xa26dda08,
+ 0xb79f000b,
+ 0xb7bf7dee,
+ 0xb7df7e6e,
+ 0xb7ff7eee,
+ 0xc0027f6e,
+ 0x9c228c20,
+ 0x8460a61d,
+ 0x528cb720,
+ 0x402db780,
+ 0x09020f82,
+ 0x7decb55f,
+ 0xb55f7502,
+ 0x03037e6c,
+ 0x9164c00b,
+ 0x538cb7a0,
+ 0x5214b7a0,
+ 0xa9b2f208,
+ 0xa9adda10,
+ 0xc0340d02,
+ 0xb7809bf3,
+ 0xb720540c,
+ 0xd2885194,
+ 0xf208a8cd,
+ 0x070ba91f,
+ 0x43cdb500,
+ 0xe2109ea5,
+ 0x74408021,
+ 0xf208038b,
+ 0xc000a01d,
+ 0xda0893c4,
+ 0x7502aa49,
+ 0x9334c000,
+ 0xa8aada10,
+ 0x5704b740,
+ 0x5d04d0a6,
+ 0xa8e9f208,
+ 0xc8389e2e,
+ 0xd0a6aa41,
+ 0xc2015904,
+ 0xf3108122,
+ 0xc2008021,
+ 0xd8005a0b,
+ 0xc000a241,
+ 0xda1091a0,
+ 0xb740aa29,
+ 0xda085704,
+ 0xd226a8f1,
+ 0x9e2d5904,
+ 0xa0cdc830,
+ 0xaa49da08,
+ 0xa8d1da10,
+ 0xa9a8da12,
+ 0x62431a04,
+ 0x0942d013,
+ 0x80a7e010,
+ 0x7e7cb77f,
+ 0x7d6cb53f,
+ 0xa8eef208,
+ 0x8506744a,
+ 0x4c78b332,
+ 0xb55f7640,
+ 0xc0007e7c,
+ 0xf2089124,
+ 0x0a04aa4d,
+ 0xa24df208,
+ 0x9060c004,
+ 0x530cb780,
+ 0x5f04b740,
+ 0xa881f208,
+ 0xd0a69e2d,
+ 0xb7205904,
+ 0xc830518c,
+ 0x9e4aaa4d,
+ 0x43b5b760,
+ 0x6128d033,
+ 0xa8cdf208,
+ 0x5d8fd1a2,
+ 0xe2205d93,
+ 0xf21081af,
+ 0x0d028ab3,
+ 0x9b78c034,
+ 0xaa4dda10,
+ 0x6a00c028,
+ 0xc0007008,
+ 0xf24892d6,
+ 0xd012aa45,
+ 0x624b09d2,
+ 0xd0309e5b,
+ 0x5d870108,
+ 0x81afe220,
+ 0xf2480d02,
+ 0xc034a1c6,
+ 0xf2489b61,
+ 0xc000a045,
+ 0xf20890e0,
+ 0x0a04aa4d,
+ 0xa24df208,
+ 0xa951da10,
+ 0xaa29da10,
+ 0x58c0d124,
+ 0x08c2d011,
+ 0x5e49d0a2,
+ 0xc0007048,
+ 0xf2489216,
+ 0xf24aaa4d,
+ 0xd226a944,
+ 0xf3105904,
+ 0xf3108021,
+ 0xc2008221,
+ 0xc0015a0b,
+ 0xd0a29100,
+ 0x70485e45,
+ 0x9196c000,
+ 0xa947f248,
+ 0xaa4df248,
+ 0x8021f310,
+ 0x5a07c200,
+ 0x9320c000,
+ 0x6a26d011,
+ 0x5a0bc200,
+ 0xc0007048,
+ 0xf2489216,
+ 0xf248a8c5,
+ 0xd0a6aa4d,
+ 0xc2015904,
+ 0xf3108122,
+ 0xc2008021,
+ 0xc0005a0b,
+ 0xf2489080,
+ 0xf248aa45,
+ 0xda08a249,
+ 0x7500aa49,
+ 0x5784b740,
+ 0x9202c003,
+ 0xaa6df208,
+ 0xc0037500,
+ 0xb7409162,
+ 0xf0105194,
+ 0x7500aa5d,
+ 0x9082c003,
+ 0x558cb760,
+ 0x5514b740,
+ 0x4038b960,
+ 0x0938d071,
+ 0x0ca8d072,
+ 0x7fcdb79f,
+ 0xa8ddf1c8,
+ 0xa23df1f1,
+ 0xa0ddf1e9,
+ 0x9301ffff,
+ 0x519cb760,
+ 0xa8a9da10,
+ 0xaa7df018,
+ 0x5904d0a6,
+ 0xf0109e2d,
+ 0xb73fa241,
+ 0xc8307e6c,
+ 0x7440aa4d,
+ 0xa261f008,
+ 0x9382c001,
+ 0xaa29da10,
+ 0x2a0c0a04,
+ 0xc0017506,
+ 0xb75f92a4,
+ 0x0a267d6c,
+ 0x7088d010,
+ 0xc0007502,
+ 0xd01192bc,
+ 0xd0120d28,
+ 0xd01008b8,
+ 0xf03119c4,
+ 0xf029aa25,
+ 0x9ea2a8c5,
+ 0x7decb79f,
+ 0x024207f4,
+ 0x7decb59f,
+ 0x92a1ffff,
+ 0xc00077c0,
+ 0xc0109104,
+ 0xda908502,
+ 0xc000a123,
+ 0xb73f9220,
+ 0xd3a27df4,
+ 0x0d025d91,
+ 0x7f64b55f,
+ 0x5d90c080,
+ 0x9aa4c034,
+ 0xa021da90,
+ 0x7f64b75f,
+ 0x518cb740,
+ 0xaa29da10,
+ 0xa8d9d848,
+ 0xd2269e2d,
+ 0xc8305904,
+ 0xb79fa0cd,
+ 0xb7bf7cee,
+ 0xb7df7d6e,
+ 0xb7ff7dee,
+ 0xc0027e6e,
+ 0x9c228c60,
+ 0xac7dc030,
+ 0x521cb740,
+ 0xa45dc038,
+ 0xac7dc030,
+ 0xa45dc038,
+ 0xac7dc030,
+ 0xa45dc038,
+ 0x580cb720,
+ 0x528cb780,
+ 0xb5408502,
+ 0xb5404039,
+ 0x850a40b9,
+ 0xa10bd288,
+ 0x8502c010,
+ 0xa10bf248,
+ 0xa107f248,
+ 0xa10ff248,
+ 0xa6059c22,
+ 0x5f04b740,
+ 0xd2a69e5d,
+ 0x9e2d5904,
+ 0xa9cec830,
+ 0x0d0265a7,
+ 0x9a5ac034,
+ 0xc0349e83,
+ 0x000a9a81,
+ 0x58050804,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xb7a0a60d,
+ 0x9e5d5214,
+ 0x5894b7c0,
+ 0xa92ff208,
+ 0xa92ef210,
+ 0xa8d1da10,
+ 0x882df210,
+ 0xa944f212,
+ 0x4002ba09,
+ 0xf3106243,
+ 0xf2108221,
+ 0xd208a245,
+ 0xb7c0a8a1,
+ 0xd210528c,
+ 0xdac8a0a1,
+ 0xda48aa25,
+ 0xdad0a9d2,
+ 0xf208a225,
+ 0xfff4a9ad,
+ 0xda489bc2,
+ 0xda48a9da,
+ 0xf208a051,
+ 0xf210a9ad,
+ 0xfff4a92e,
+ 0xda089bb8,
+ 0xb720aa49,
+ 0xda48540c,
+ 0x6008a059,
+ 0x44abb500,
+ 0xaa21f248,
+ 0xa255f248,
+ 0xa8a1f248,
+ 0xa0c1f210,
+ 0xaa2df208,
+ 0xa22df210,
+ 0xa8b1f208,
+ 0xa0b1f210,
+ 0xaa35f208,
+ 0xa235f210,
+ 0xa8bdf208,
+ 0xa0bdf210,
+ 0xaa21f248,
+ 0xa221f250,
+ 0xa8a5f248,
+ 0xa0a5f250,
+ 0xaa3df208,
+ 0xa23df210,
+ 0xa8a5d208,
+ 0xa0a5d210,
+ 0xaa29d208,
+ 0xa229d210,
+ 0xa8b5da08,
+ 0xa0b5da10,
+ 0xaa39f208,
+ 0x08d0d0b1,
+ 0xa239f210,
+ 0x4031b720,
+ 0x0e50d0b1,
+ 0xa082d208,
+ 0xa8b9f248,
+ 0xa0b9f250,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x8420a60d,
+ 0x610cb7c0,
+ 0x518cb7a0,
+ 0x588cb760,
+ 0xd0118582,
+ 0xb7a00e32,
+ 0xf2485214,
+ 0xf208a1a3,
+ 0xf00aa1a7,
+ 0xf210a964,
+ 0xf008a8ad,
+ 0xf008a26d,
+ 0xf250a1ea,
+ 0xb720aa25,
+ 0xe2105294,
+ 0xf31082a3,
+ 0xb7408221,
+ 0xc08046dd,
+ 0x75802b00,
+ 0xd0a40103,
+ 0xf250597f,
+ 0x0009a8a1,
+ 0x587fd224,
+ 0x414db780,
+ 0xe2109e4e,
+ 0x0a0488a3,
+ 0x414db580,
+ 0xa0b5f208,
+ 0xa171f808,
+ 0xa069f808,
+ 0x9162c000,
+ 0xaa3df210,
+ 0x8221f310,
+ 0xd2240089,
+ 0xf80858ff,
+ 0xf210a0e9,
+ 0xf008aa2d,
+ 0xf208a9ee,
+ 0x9ea1a8c9,
+ 0xf2086533,
+ 0x7442a935,
+ 0x12149e51,
+ 0xa265f008,
+ 0xaa21f250,
+ 0x4500d041,
+ 0x92e2c000,
+ 0xb32276fc,
+ 0xc0004492,
+ 0x74809252,
+ 0x90d6c000,
+ 0x5907d128,
+ 0x90e0c000,
+ 0xaa39f250,
+ 0xd2286229,
+ 0xf2485933,
+ 0xf010a957,
+ 0xf0088825,
+ 0xb780a261,
+ 0xd248540c,
+ 0xc001a899,
+ 0xf00814a4,
+ 0x7442a0e6,
+ 0xc0009ea1,
+ 0xf20891a4,
+ 0x7500aa35,
+ 0x90dcc002,
+ 0xc2009e52,
+ 0x12285a07,
+ 0x93c0c001,
+ 0xaa35f208,
+ 0xc2009e51,
+ 0x70485a0c,
+ 0x90b6c000,
+ 0xd2c88506,
+ 0xf208a12b,
+ 0x9e52a8b5,
+ 0x5a0cc080,
+ 0xc0007088,
+ 0xc0809156,
+ 0x70885a08,
+ 0x90b8c000,
+ 0xc0008586,
+ 0xf2089220,
+ 0x9e52a8b5,
+ 0x5a08c080,
+ 0x858e7088,
+ 0x9116c000,
+ 0x5a04c080,
+ 0x8d847088,
+ 0x85b2e00c,
+ 0xa8a5f248,
+ 0xc0007440,
+ 0xd0a6923c,
+ 0xf00a5904,
+ 0xf210a964,
+ 0xc2008023,
+ 0x10985a0f,
+ 0x8a21f310,
+ 0xa0a5f248,
+ 0xa265f008,
+ 0xaa49f208,
+ 0xc0007502,
+ 0xb78590e2,
+ 0x75005188,
+ 0x9202c000,
+ 0xaa21d210,
+ 0x5314b720,
+ 0xa225dad0,
+ 0xa8a5dad0,
+ 0xa231da48,
+ 0x404db520,
+ 0x9320c008,
+ 0xaa5dd288,
+ 0xc0007500,
+ 0xb7809184,
+ 0x75004749,
+ 0x9142c000,
+ 0xaa41da88,
+ 0xc0007504,
+ 0x850690b4,
+ 0x9060c000,
+ 0xd2888502,
+ 0xd288a153,
+ 0x7500aa5d,
+ 0x9002c001,
+ 0xaa41da88,
+ 0x5a40c200,
+ 0x7502c001,
+ 0x9314c000,
+ 0xa957da48,
+ 0x5a45c200,
+ 0x8021f310,
+ 0xa9c1da88,
+ 0xa221dad0,
+ 0xa9a2dad0,
+ 0xb57f0d02,
+ 0xc0347f7c,
+ 0xb77f98b9,
+ 0x18047f7c,
+ 0x9320c000,
+ 0xaa49da08,
+ 0x44dbb740,
+ 0x5a40c200,
+ 0x5a45c200,
+ 0x8021f310,
+ 0xa9c9da08,
+ 0xa221dad0,
+ 0xa9a2dad0,
+ 0xb57f0d02,
+ 0xc0347f7c,
+ 0xb77f989f,
+ 0xdad07f7c,
+ 0xf208a021,
+ 0x7504aa49,
+ 0x9094c001,
+ 0xa8a2dad0,
+ 0xa8b1da48,
+ 0x0e14d011,
+ 0xc0007048,
+ 0xda08913a,
+ 0xd011a921,
+ 0x70881a14,
+ 0x90d6c000,
+ 0x1e12d011,
+ 0x91c0c000,
+ 0x1e14d011,
+ 0xc0007048,
+ 0xd01190f8,
+ 0x70880a14,
+ 0x90dcc000,
+ 0x0e12d011,
+ 0xa221dad0,
+ 0xaa21dad0,
+ 0xc0007526,
+ 0xda0892b4,
+ 0x0089a8a2,
+ 0x1e14d011,
+ 0xd00e7048,
+ 0xc0000a12,
+ 0xd011913c,
+ 0x70480e14,
+ 0x90dcc000,
+ 0x1a12d011,
+ 0xa221dad0,
+ 0xa8ddda48,
+ 0xaa21da08,
+ 0x4002ba09,
+ 0x70481a28,
+ 0x9176c000,
+ 0xaa5dda48,
+ 0xa8a1dad0,
+ 0xc4100a1c,
+ 0xdad07048,
+ 0xd210a0a1,
+ 0x752caa2d,
+ 0x9152c001,
+ 0xa8a2da08,
+ 0xaa5dda48,
+ 0x1c90d031,
+ 0x4002ba24,
+ 0xc0007102,
+ 0xdad091b6,
+ 0xd011a8a1,
+ 0x70481e16,
+ 0x90dcc000,
+ 0x1a16d011,
+ 0xa221dad0,
+ 0xaa31da48,
+ 0xa8a1dad0,
+ 0xd0121a0c,
+ 0xda487102,
+ 0xdad0a8b1,
+ 0xdad0a221,
+ 0x088caa21,
+ 0x7102d010,
+ 0xa221dad0,
+ 0xa8b5f208,
+ 0xaa21f250,
+ 0xc0007048,
+ 0xda48923c,
+ 0xdad0a8d9,
+ 0x7048aa21,
+ 0xa958da4a,
+ 0xa923dad0,
+ 0x8026f013,
+ 0x822ff214,
+ 0xa221dad0,
+ 0xa9bef210,
+ 0xa9a9f248,
+ 0xc0140d02,
+ 0xc00e9bff,
+ 0x7404287c,
+ 0x90f2c000,
+ 0xaa21dad0,
+ 0xc0000a08,
+ 0x74069100,
+ 0x90f2c000,
+ 0xaa21dad0,
+ 0xdad00a04,
+ 0xd210a221,
+ 0xdad0aa29,
+ 0x1a08a8a1,
+ 0x7048c410,
+ 0xaa25d210,
+ 0xa0a1dad0,
+ 0xa8a1dad0,
+ 0xd0120a08,
+ 0xdad07102,
+ 0xdad0a221,
+ 0xda48a225,
+ 0xda48a259,
+ 0xd288a231,
+ 0x7502aa5d,
+ 0x9244c000,
+ 0xaa25dad0,
+ 0x5314b720,
+ 0xa8a5dad0,
+ 0xa231da48,
+ 0xa221dad0,
+ 0xa259da48,
+ 0xa24dda08,
+ 0x404db520,
+ 0xf2488502,
+ 0xf248a12f,
+ 0xf248a133,
+ 0xf248a137,
+ 0xd2c8a13f,
+ 0xb79fa12b,
+ 0xb7bf7e6e,
+ 0xb7df7eee,
+ 0xc0027f6e,
+ 0x9c228c00,
+ 0xb740a61d,
+ 0x9e5a5294,
+ 0x9e557482,
+ 0xa141f010,
+ 0x93a4c006,
+ 0x5894b720,
+ 0x540cb720,
+ 0x40cdb780,
+ 0x9e4e8502,
+ 0xb5407500,
+ 0x038344bd,
+ 0x90d6c000,
+ 0x518cb780,
+ 0xa109d2c8,
+ 0x5188b785,
+ 0xf0107500,
+ 0xc006a14f,
+ 0xf0109304,
+ 0x7442a8c9,
+ 0xab52f050,
+ 0x90e4c000,
+ 0xaa49d810,
+ 0xc0007500,
+ 0x744290a4,
+ 0x91b4c003,
+ 0x5214b7a0,
+ 0x0e50d0b1,
+ 0xa882d208,
+ 0xa9c9f208,
+ 0xa8c5f208,
+ 0xd1a49e4c,
+ 0xd0265985,
+ 0xe2205133,
+ 0x050381af,
+ 0xa1b2f248,
+ 0x9b64c014,
+ 0x610cb780,
+ 0xc0809d0d,
+ 0x75002a00,
+ 0xa1b3f248,
+ 0x9362c000,
+ 0xa937f248,
+ 0xaa41f208,
+ 0x8821f310,
+ 0xa92cf212,
+ 0xc2006a0e,
+ 0xf3105a0b,
+ 0x08828a21,
+ 0x7102d012,
+ 0x8031f310,
+ 0xc2000a04,
+ 0xf2485a07,
+ 0xc001a231,
+ 0xf2089280,
+ 0x753caa4d,
+ 0x91f4c001,
+ 0x5608b785,
+ 0xa92cf212,
+ 0xf24a7502,
+ 0xc000a130,
+ 0xf2489122,
+ 0xf208a8b5,
+ 0x7048aa41,
+ 0x91dcc000,
+ 0xa943f208,
+ 0xaa35f248,
+ 0x8821f310,
+ 0x5a13c200,
+ 0x8221f310,
+ 0xa231f248,
+ 0x5188b785,
+ 0xc0007500,
+ 0xf24891c4,
+ 0xd322a8b1,
+ 0x71025e10,
+ 0x90fcc000,
+ 0xaa39da48,
+ 0xda481a04,
+ 0xb780a239,
+ 0xc080610c,
+ 0x75002a00,
+ 0x9202c001,
+ 0x520cb780,
+ 0xa88df208,
+ 0xa8b6f248,
+ 0x5904d0a6,
+ 0xe2109e4c,
+ 0x588b80a3,
+ 0xc0007102,
+ 0xf248915c,
+ 0xd226aa31,
+ 0xf310590c,
+ 0xc0018821,
+ 0xb78090c0,
+ 0xf248518c,
+ 0xf248a88e,
+ 0x9e4ca89d,
+ 0xc0017102,
+ 0xda0892dc,
+ 0x7508aa29,
+ 0x9234c001,
+ 0xaa31f248,
+ 0x590cd226,
+ 0x8021f310,
+ 0x91e0c000,
+ 0xaa3dd288,
+ 0xc0017500,
+ 0xf2089082,
+ 0x753caa4d,
+ 0x93f2c000,
+ 0xaa31f248,
+ 0xc2006a2e,
+ 0xf2485a0f,
+ 0xc000a231,
+ 0x748492c0,
+ 0x540cb7e0,
+ 0x9224c000,
+ 0xda488502,
+ 0xd810a167,
+ 0xd850a14b,
+ 0xd890a157,
+ 0xd090a143,
+ 0xd248a15f,
+ 0xd090a17b,
+ 0x8702a15b,
+ 0xda488502,
+ 0xda08a16b,
+ 0xd248a16b,
+ 0xd248a173,
+ 0xf20aa177,
+ 0xb79fa160,
+ 0xb7bf7e6e,
+ 0xb7df7eee,
+ 0xb7ff7f6e,
+ 0xc0027fee,
+ 0x9c228c00,
+ 0x9d3da61d,
+ 0xaa69d018,
+ 0xb7e07502,
+ 0xc000540c,
+ 0xc00890c4,
+ 0xf2088502,
+ 0xb720a163,
+ 0xb7c0588c,
+ 0xb7255294,
+ 0xf2085610,
+ 0xb740a961,
+ 0xf25040a5,
+ 0x9d9da957,
+ 0xf2109e76,
+ 0xb7e08a25,
+ 0x76425214,
+ 0x8124c201,
+ 0x40adb580,
+ 0xa157f250,
+ 0x9104c000,
+ 0xaa6df210,
+ 0x8821f310,
+ 0xa255f248,
+ 0xa963f208,
+ 0xaa6df210,
+ 0x8821f310,
+ 0xaaf1f800,
+ 0xd2240089,
+ 0xf80058ff,
+ 0xe000a869,
+ 0x16d212d2,
+ 0x1ed2d003,
+ 0x1002e000,
+ 0xd0031402,
+ 0xd0221c02,
+ 0xc0005e0c,
+ 0xd02058f5,
+ 0xc0003198,
+ 0xe000598c,
+ 0x15b011b0,
+ 0x1db2d003,
+ 0x5cf4d1a2,
+ 0x5a0dc180,
+ 0x00853118,
+ 0x58ffd124,
+ 0xa2f1f800,
+ 0xa069f800,
+ 0xa0edf800,
+ 0xaa69d018,
+ 0x85027500,
+ 0x90e4c000,
+ 0x4608b782,
+ 0xc0007500,
+ 0x85069062,
+ 0xd2908702,
+ 0xa164a147,
+ 0x5608b785,
+ 0xc0007502,
+ 0xf2109344,
+ 0xb780a8ed,
+ 0xd0a6610c,
+ 0xe2105904,
+ 0xc08080a3,
+ 0x75002a00,
+ 0x5907d0a6,
+ 0xaa55f248,
+ 0x4c82b322,
+ 0x71359e29,
+ 0x90b6c000,
+ 0x8821f310,
+ 0xaa65a265,
+ 0xc0007500,
+ 0x85069162,
+ 0xa16fd018,
+ 0xc2000a7c,
+ 0xa2655a15,
+ 0x9080c000,
+ 0xa26dd018,
+ 0xaa55f248,
+ 0xc0007500,
+ 0xf000917a,
+ 0x8702a967,
+ 0x8021f310,
+ 0xa154f24a,
+ 0xa265f000,
+ 0xaa41f208,
+ 0xc0017504,
+ 0xd0b19004,
+ 0xd2080e70,
+ 0xf000a882,
+ 0xf000a9e9,
+ 0x9e4ca8e5,
+ 0x5985d1a4,
+ 0x5133d026,
+ 0x518cb7a0,
+ 0x81afe220,
+ 0xf2080503,
+ 0xc014a1a6,
+ 0xf20899d7,
+ 0xf208a025,
+ 0xf248aa61,
+ 0xc004a229,
+ 0xb7209000,
+ 0xf2085194,
+ 0xb740aa61,
+ 0xf310445d,
+ 0xb5808021,
+ 0xd018444d,
+ 0x7440a8e9,
+ 0x90e4c001,
+ 0x610cb780,
+ 0xa97ff208,
+ 0x2a00c080,
+ 0xf2087500,
+ 0xf208a0fd,
+ 0xc000a17b,
+ 0xb7809342,
+ 0xb74046cd,
+ 0xb7204645,
+ 0xb58045cd,
+ 0xf310474d,
+ 0xb5408221,
+ 0xc20145dd,
+ 0xf3108122,
+ 0xb5408021,
+ 0xb52046c5,
+ 0xc200464d,
+ 0xb5805a0b,
+ 0xf00047cd,
+ 0xda08aa69,
+ 0x8502a8c9,
+ 0xa14fd288,
+ 0xf0001a04,
+ 0x0884a269,
+ 0xa0c9da08,
+ 0xaa61d018,
+ 0xc0017500,
+ 0xb7859344,
+ 0x75005188,
+ 0x92a4c001,
+ 0x610cb780,
+ 0x2a00c080,
+ 0xc0007500,
+ 0xf2109102,
+ 0xc200aa6d,
+ 0xc0005884,
+ 0xf21090e0,
+ 0x6a36aa7d,
+ 0x5893c200,
+ 0xaa55f248,
+ 0xc0007102,
+ 0x8506929c,
+ 0xa16bd018,
+ 0xaa69f000,
+ 0xc0007500,
+ 0xd21091e2,
+ 0xda48aa69,
+ 0xf310a967,
+ 0xda488021,
+ 0xc000a265,
+ 0x850290a0,
+ 0xa16bd018,
+ 0xa8e9f000,
+ 0xc0007440,
+ 0xd0189084,
+ 0xb79fa0e9,
+ 0xb7bf7e6e,
+ 0xb7df7eee,
+ 0xb7ff7f6e,
+ 0xc0027fee,
+ 0x9c228c00,
+ 0x540cb780,
+ 0x5294b720,
+ 0xa903f208,
+ 0x404db720,
+ 0x9e4b9ea0,
+ 0x81afe220,
+ 0xf2087442,
+ 0xc006a182,
+ 0xb78093a4,
+ 0x75004648,
+ 0x9164c000,
+ 0x4b49b780,
+ 0xc0007500,
+ 0xb78090c4,
+ 0xb580454d,
+ 0xb72045cd,
+ 0xb780588c,
+ 0x753c41ad,
+ 0xc0059d1d,
+ 0xb7859112,
+ 0x75005188,
+ 0x9064c005,
+ 0xaa69f008,
+ 0xc0007502,
+ 0xd80890e4,
+ 0x7500aa69,
+ 0x90e2c000,
+ 0xa9eed088,
+ 0xc00076c0,
+ 0xb7809262,
+ 0xb720538c,
+ 0xb720518c,
+ 0xda0844d4,
+ 0x8502a909,
+ 0xa17bd088,
+ 0x4135b520,
+ 0x40abb540,
+ 0x9060c004,
+ 0xa879d088,
+ 0xc0007400,
+ 0xb7209342,
+ 0xb7405194,
+ 0xb740538c,
+ 0xb78044d4,
+ 0xd80840cb,
+ 0xd088a8c9,
+ 0xb540a1fa,
+ 0xba244155,
+ 0x688c4002,
+ 0xc2000242,
+ 0xb5805a0b,
+ 0xc00340cb,
+ 0xb78090c0,
+ 0x75004648,
+ 0x5214b740,
+ 0x90a4c001,
+ 0x5394b720,
+ 0xaa49d810,
+ 0x414bb720,
+ 0x68a86a24,
+ 0xb7407048,
+ 0xc001518c,
+ 0xd808929c,
+ 0xb720aa45,
+ 0xba24414b,
+ 0x6a0e4002,
+ 0x70485884,
+ 0x913cc001,
+ 0xaa49f008,
+ 0x44ccb720,
+ 0x5904d226,
+ 0x8021f310,
+ 0xc0007048,
+ 0x850693dc,
+ 0xa17bd088,
+ 0xa17fd088,
+ 0xaa55d810,
+ 0xa8e9d808,
+ 0xc2006a14,
+ 0x70485a0f,
+ 0x90dac000,
+ 0x4748b500,
+ 0x9080c000,
+ 0x4758b540,
+ 0xd8488502,
+ 0xd888a177,
+ 0xc001a163,
+ 0x85029000,
+ 0xa17bd088,
+ 0xaa45d808,
+ 0x414bb720,
+ 0x4002ba24,
+ 0x6947d013,
+ 0x80a3e210,
+ 0xa8caf008,
+ 0xd808588b,
+ 0xb780a0c5,
+ 0xd0a644cc,
+ 0xc2015d04,
+ 0xf310812a,
+ 0xc2008021,
+ 0xf0085a0b,
+ 0xd088a249,
+ 0x7500aa7d,
+ 0xc000850a,
+ 0x850e9062,
+ 0xa16bd088,
+ 0xaa79d088,
+ 0xb3407500,
+ 0xb78048a2,
+ 0xb720404c,
+ 0xd226518c,
+ 0xa9645904,
+ 0x8021f310,
+ 0x5a17c200,
+ 0x44adb580,
+ 0x8221f310,
+ 0x9c22a265,
+ 0xb3407444,
+ 0xb78048a4,
+ 0xdac8520c,
+ 0xb520a885,
+ 0x9c2247cb,
+ 0x4001ba1b,
+ 0x76d6c004,
+ 0x90bcc000,
+ 0x0862c024,
+ 0xc0049c22,
+ 0xc00076c6,
+ 0xd09190fc,
+ 0xc0041c36,
+ 0x9c22681a,
+ 0x9c220852,
+ 0x5e1cb740,
+ 0x4001ba1b,
+ 0x9e591db0,
+ 0xc0120a02,
+ 0x9d537048,
+ 0xc0409e99,
+ 0x7642a885,
+ 0x4000ba01,
+ 0x91a2c000,
+ 0x90a6c000,
+ 0xc0007644,
+ 0x08029082,
+ 0xc0009c22,
+ 0xba045a04,
+ 0xd0264002,
+ 0xc000590c,
+ 0xf3105a08,
+ 0xba048021,
+ 0x9c224002,
+ 0x9ea10a02,
+ 0x5e1cb740,
+ 0x4001ba1b,
+ 0xcc121db0,
+ 0x9dc772c2,
+ 0xa9eac010,
+ 0x4001ba1b,
+ 0x5d18d1a6,
+ 0xe2105d88,
+ 0x9c22882f,
+ 0x74c0c008,
+ 0x9e529e58,
+ 0x90fcc000,
+ 0x70c0d002,
+ 0x51f31a14,
+ 0xc0055013,
+ 0xc0007400,
+ 0xd00290fc,
+ 0x1a507000,
+ 0x01285013,
+ 0x6004b740,
+ 0x608cb780,
+ 0x5904d1a6,
+ 0xc0409e2d,
+ 0xc830a8e5,
+ 0x7044aa4d,
+ 0xd01d6009,
+ 0xd01a1214,
+ 0xb3405013,
+ 0x122248ba,
+ 0x9c225010,
+ 0x75269e5c,
+ 0xd01e0882,
+ 0xb3404000,
+ 0xc38048bc,
+ 0xc0007500,
+ 0xc00290bc,
+ 0x9c22084e,
+ 0x7508c004,
+ 0x915cc000,
+ 0xc2000a04,
+ 0xc0045a07,
+ 0x08847508,
+ 0x935affff,
+ 0x5f9cb740,
+ 0xc2209d4b,
+ 0xd013a805,
+ 0xe210691d,
+ 0x9c228021,
+ 0x87c2c809,
+ 0x0c20b060,
+ 0x87c2c809,
+ 0x0a60b060,
+ 0x87c2c809,
+ 0x09c0b060,
+};
+
+unsigned long aui32H264CBR_MTXTOPAZFWData[] = {
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x809000b0,
+ 0x8090019c,
+ 0x82885904,
+ 0x828853cc,
+ 0x82885404,
+ 0x82885448,
+ 0x82885484,
+ 0x828854c0,
+ 0x828854f0,
+ 0x82885520,
+ 0x82885548,
+ 0x828855a8,
+ 0x828855d8,
+ 0x82885608,
+ 0x82885610,
+ 0x82885618,
+ 0x82885210,
+ 0x828857a8,
+ 0x828857b0,
+ 0x828853ae,
+ 0x82885ac8,
+ 0x82885a98,
+ 0x82885978,
+ 0x828857e0,
+ 0x828859c8,
+ 0x82885a10,
+ 0x82885a14,
+ 0x82885a58,
+ 0x82885d18,
+ 0x82885b9c,
+ 0x82885b68,
+ 0x82885bea,
+ 0x82885bc4,
+ 0x82885c52,
+ 0x82885cd4,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x809006dc,
+ 0x80901be8,
+ 0x809024f0,
+ 0x809006e0,
+ 0x80903da0,
+ 0x80904f9c,
+ 0x8090072c,
+ 0x00000000,
+ 0x80901da8,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x809006dc,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0xa0101162,
+ 0xa0100174,
+ 0xa0101102,
+ 0xa0100184,
+ 0xa0101104,
+ 0xa0100194,
+ 0xa0101106,
+ 0xa01001a4,
+ 0xa01001a2,
+ 0xa01001a2,
+ 0xa0101182,
+ 0xa0100142,
+ 0xa0101122,
+ 0xa0100152,
+ 0x80101124,
+ 0x80101126,
+ 0x80101144,
+ 0x80101146,
+ 0x80100176,
+ 0x80100186,
+ 0x80100196,
+ 0x801001a6,
+ 0x801001b6,
+ 0x801001b4,
+ 0x80300364,
+ 0x8010b100,
+ 0x80105160,
+ 0x80100102,
+ 0x00000b00,
+ 0x00000b00,
+ 0x00000ba0,
+ 0x00000ba0,
+ 0x00000003,
+ 0x00000002,
+ 0x00000002,
+ 0x00000001,
+ 0x00000001,
+ 0x00000001,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000005,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x03020100,
+ 0x07060504,
+ 0x0b0a0908,
+ 0x0f0e0d0c,
+ 0x13121110,
+ 0x17161514,
+ 0x1b1a1918,
+ 0x1e1d1d1c,
+ 0x2120201f,
+ 0x23232222,
+ 0x25252424,
+ 0x26262625,
+ 0x27272727,
+ 0x02020202,
+ 0x04040303,
+ 0x05050504,
+ 0x06060505,
+ 0x07070706,
+ 0x0b090808,
+ 0x110f0e0d,
+ 0x1f1b1714,
+ 0x3e332924,
+ 0x5b554f4a,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x01010000,
+ 0x02020201,
+ 0x04030303,
+ 0x05040404,
+ 0x00140005,
+ 0x001a0016,
+ 0x0020001c,
+ 0x00280024,
+ 0x0034002c,
+ 0x00400038,
+ 0x00500048,
+ 0x00680058,
+ 0x00800070,
+ 0x00a00090,
+ 0x00d000b0,
+ 0x010000e0,
+ 0x01400120,
+ 0x01a00160,
+ 0x020001c0,
+ 0x02800240,
+ 0x034002c0,
+ 0x04000380,
+ 0x05000480,
+ 0x06800580,
+ 0x08000700,
+ 0x0a000900,
+ 0x0d000b00,
+ 0x10000e00,
+ 0x14001200,
+ 0x1a001600,
+ 0x00001c00,
+ 0x00200040,
+ 0x001002ab,
+ 0x015500cd,
+ 0x00080249,
+ 0x00cd01c7,
+ 0x0155005d,
+ 0x0249013b,
+ 0x00040111,
+ 0x01c700f1,
+ 0x00cd01af,
+ 0x005d00c3,
+ 0x01550059,
+ 0x013b0029,
+ 0x0249025f,
+ 0x01110235,
+ 0x00020021,
+ 0x00f1001f,
+ 0x01c70075,
+ 0x01af006f,
+ 0x00cd0069,
+ 0x00c30019,
+ 0x005d017d,
+ 0x0059005b,
+ 0x015502b9,
+ 0x002900a7,
+ 0x013b0283,
+ 0x025f0135,
+ 0x02490095,
+ 0x0235023f,
+ 0x0111008b,
+ 0x00210219,
+ 0x00010041,
+ 0x0b060600,
+ 0x0c0b0a06,
+ 0x0a0b0c06,
+ 0x0c0d0c0c,
+ 0x0d0d0c06,
+ 0x0b0b0c0c,
+ 0x0e0d0a0d,
+ 0x0a0d0e0e,
+ 0x0c0d0a06,
+ 0x0c0e0c0e,
+ 0x0e0d0a0d,
+ 0x0f0c0c0c,
+ 0x0f0b0d0e,
+ 0x0d0f0e0e,
+ 0x0d0f0f0f,
+ 0x0c0b0f0e,
+ 0x00000006,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x1234baac,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+};
diff --git a/fw/H264FirmwareCBR_bin.h b/fw/H264FirmwareCBR_bin.h
new file mode 100644
index 0000000..b8bc8bb
--- /dev/null
+++ b/fw/H264FirmwareCBR_bin.h
@@ -0,0 +1,35 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+// This file was automatically generated from ../release/H264FirmwareCBR.dnl using dnl2c.
+
+extern unsigned long aui32H264CBR_MTXTOPAZFWText[];
+extern unsigned long ui32H264CBR_MTXTOPAZFWTextSize;
+
+extern unsigned long aui32H264CBR_MTXTOPAZFWData[];
+extern unsigned long ui32H264CBR_MTXTOPAZFWDataSize;
+
+extern unsigned long ui32H264CBR_MTXTOPAZFWDataLocation;
+
diff --git a/fw/H264FirmwareVBR_bin.c b/fw/H264FirmwareVBR_bin.c
new file mode 100644
index 0000000..bf16eec
--- /dev/null
+++ b/fw/H264FirmwareVBR_bin.c
@@ -0,0 +1,8221 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+// This file was automatically generated from ../release/H264FirmwareVBR.dnl using dnl2c.
+
+unsigned char *szH264VBR_MTXTOPAZFW_buildtag = "TOPAZ_DDKBUILD_00-00-00-0146";
+
+unsigned long ui32H264VBR_MTXTOPAZFWTextSize = 4855;
+unsigned long ui32H264VBR_MTXTOPAZFWDataSize = 3328;
+unsigned long ui32H264VBR_MTXTOPAZFWDataLocation = 0x82884c00;
+
+unsigned long aui32H264VBR_MTXTOPAZFWText[] = {
+ 0x9040c001,
+ 0xc80993fe,
+ 0xc0000e42,
+ 0xc8290e00,
+ 0xc5688422,
+ 0xc8298460,
+ 0xc4c08622,
+ 0x9e838600,
+ 0xc8099e43,
+ 0xc9780d42,
+ 0xc8090d60,
+ 0xc97a0942,
+ 0xc8090920,
+ 0xc00a0e42,
+ 0xc8090e40,
+ 0xc00e87c2,
+ 0x9c1887d0,
+ 0x0c020802,
+ 0x09820d82,
+ 0x09020d02,
+ 0x08820c82,
+ 0x9320fffe,
+ 0xa401c838,
+ 0x0dc2c809,
+ 0x0da0c978,
+ 0x0e42c809,
+ 0x0b46b080,
+ 0x7e74b77f,
+ 0xa48d0882,
+ 0xffff9ff3,
+ 0x9d1393e0,
+ 0xf8398081,
+ 0x0707a205,
+ 0x06850307,
+ 0x03839e97,
+ 0x0fa0060f,
+ 0x018d058d,
+ 0x9c62008f,
+ 0x9340ffff,
+ 0x0ea0060b,
+ 0xffff9c62,
+ 0x058d93a0,
+ 0xb700018d,
+ 0xb780500c,
+ 0x9c014f94,
+ 0x0687a605,
+ 0x0ea0060b,
+ 0xffff9c62,
+ 0xf9f893a0,
+ 0xf9f8aa9d,
+ 0x9c22aa1d,
+ 0xa60d9c22,
+ 0x9bfefff4,
+ 0x0ca2c829,
+ 0x0cc0c568,
+ 0x404db720,
+ 0x0a42c809,
+ 0x0a10c6e2,
+ 0x0b027440,
+ 0x420cb580,
+ 0x0a12d002,
+ 0x4644b421,
+ 0xc0540d8a,
+ 0xb78098b0,
+ 0xc807508c,
+ 0xc57008c2,
+ 0xc0320880,
+ 0xb5800c86,
+ 0xb4214b8c,
+ 0x0a06c000,
+ 0x0c98c002,
+ 0xc000b481,
+ 0x09021a04,
+ 0x08bac002,
+ 0x4078b960,
+ 0x0a00c200,
+ 0x588bd224,
+ 0xc000b441,
+ 0x0a11ce00,
+ 0x9301ffff,
+ 0x1884e000,
+ 0x9244ffff,
+ 0x0a42c807,
+ 0x0a00c576,
+ 0x0c86c032,
+ 0xc000b481,
+ 0x08820a02,
+ 0x08840902,
+ 0x4078b960,
+ 0x0a00c200,
+ 0x588bd224,
+ 0xc000b441,
+ 0x0a11ce00,
+ 0x9301ffff,
+ 0x745ac004,
+ 0x923cffff,
+ 0xc0340a02,
+ 0xb4810c9e,
+ 0xc034c000,
+ 0xc05498cd,
+ 0xc054982e,
+ 0x0d8a982a,
+ 0x9861c054,
+ 0x0a42c801,
+ 0x0a08c010,
+ 0x0c86c032,
+ 0xc000b481,
+ 0x08c2c801,
+ 0x0880cb10,
+ 0xb4210ce4,
+ 0x0a06c000,
+ 0xb4810cb4,
+ 0xc123c000,
+ 0xc56608d2,
+ 0xc08008e0,
+ 0xb4210c82,
+ 0x1a04c000,
+ 0xb4810c84,
+ 0x0d86c000,
+ 0x0d0209c2,
+ 0x0902c121,
+ 0x991bc014,
+ 0x450cb780,
+ 0xa982f208,
+ 0x0d02c021,
+ 0x09c20d04,
+ 0x9906c014,
+ 0x450cb780,
+ 0x0ad2c123,
+ 0x0ae0c566,
+ 0xa982f208,
+ 0x0d0609c2,
+ 0x98fac014,
+ 0x09c20d86,
+ 0xc1810d0e,
+ 0xc0140902,
+ 0xc00298fe,
+ 0xc0540dc2,
+ 0x700a980d,
+ 0x9364ffff,
+ 0xc0540d82,
+ 0xc0039814,
+ 0xb74092e0,
+ 0xd2265104,
+ 0x9e2d5908,
+ 0xaa4de030,
+ 0x9c629ea4,
+ 0x4494b720,
+ 0x405db740,
+ 0x58c1c280,
+ 0x2a80cff0,
+ 0x5a21c280,
+ 0x8021f310,
+ 0x753ec004,
+ 0x40cdb520,
+ 0x404db580,
+ 0x4652b431,
+ 0x0a42c801,
+ 0x0a08c010,
+ 0x0c86c032,
+ 0xc000b481,
+ 0xc0020886,
+ 0xb4210c98,
+ 0xb780c000,
+ 0xc080448c,
+ 0xf2080c82,
+ 0xb421a881,
+ 0x0d82c000,
+ 0x9bd0c034,
+ 0x448cb780,
+ 0xa881f208,
+ 0xffff7002,
+ 0x0d869304,
+ 0x0d0209c2,
+ 0x0902c121,
+ 0x98afc014,
+ 0x450cb780,
+ 0xa982f208,
+ 0x0d02c021,
+ 0x09c20d04,
+ 0x989ac014,
+ 0x450cb780,
+ 0xa982f208,
+ 0x0d0609c2,
+ 0x9892c014,
+ 0x09c20d86,
+ 0xc1010d0e,
+ 0xc0140902,
+ 0x77409896,
+ 0x9082c000,
+ 0x9b79c034,
+ 0x9c80c971,
+ 0x5a41e200,
+ 0x9204c000,
+ 0x0dc2c002,
+ 0x9b9ac034,
+ 0x448cb780,
+ 0xa881f208,
+ 0xffff7002,
+ 0x0d8292e4,
+ 0x9b9dc034,
+ 0xc0007580,
+ 0xc0349364,
+ 0x0d8a9b5e,
+ 0x9b95c034,
+ 0x448cb780,
+ 0xa881f208,
+ 0x5908d0a8,
+ 0x0948d073,
+ 0xe0309e2d,
+ 0xd3f1aacd,
+ 0xc2002a5c,
+ 0x75185a05,
+ 0x2ad2d012,
+ 0x9234fffb,
+ 0xb79f0802,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0x9c229c22,
+ 0x449cb740,
+ 0xc200aa41,
+ 0xc0025a08,
+ 0xf3100a00,
+ 0xf2088021,
+ 0xf208a882,
+ 0xc0c0a885,
+ 0x5c890c80,
+ 0xc000b421,
+ 0xa6059c22,
+ 0x449cb740,
+ 0x0886aa41,
+ 0x0c9ec034,
+ 0x5a08c200,
+ 0x0a00c002,
+ 0x80a1f310,
+ 0xc000b421,
+ 0x0c92c080,
+ 0xaa25f208,
+ 0xc000b481,
+ 0xc0340dc2,
+ 0xf2089b3f,
+ 0x7008aa25,
+ 0x9344ffff,
+ 0xc0800a02,
+ 0xb4810c96,
+ 0x0d86c000,
+ 0x0d0609c2,
+ 0x0902c121,
+ 0x981bc014,
+ 0xa9a2f208,
+ 0x0d02c021,
+ 0x09c20d04,
+ 0x9808c014,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xc0409e54,
+ 0x9e590c82,
+ 0xc000b421,
+ 0x0d02c040,
+ 0xc000b482,
+ 0xc00e9c22,
+ 0xc00e2d7c,
+ 0x5d3029e0,
+ 0xc0409e54,
+ 0x31b80c82,
+ 0xc000b461,
+ 0x0d02c040,
+ 0xc000b442,
+ 0x9e4c9c22,
+ 0x28fcc00e,
+ 0x2a7cc00e,
+ 0x0c82c040,
+ 0xb4019e58,
+ 0xc200c000,
+ 0x58e45a6c,
+ 0x1d043242,
+ 0x9e515d10,
+ 0x1984598d,
+ 0x3980c011,
+ 0x590d3246,
+ 0x59301904,
+ 0x32443242,
+ 0xc000b481,
+ 0x9e4c9c22,
+ 0x28fcc00e,
+ 0x2a7cc00e,
+ 0x0c82c040,
+ 0xb4019e58,
+ 0xc200c000,
+ 0x58e45a6c,
+ 0x1d043242,
+ 0x9e515d10,
+ 0x1984598d,
+ 0x3980c019,
+ 0x590d3246,
+ 0x59301904,
+ 0x32443242,
+ 0xc000b481,
+ 0x9e4c9c22,
+ 0x28fcc00e,
+ 0x2a7cc00e,
+ 0x0c82c040,
+ 0xb4019e58,
+ 0xc200c000,
+ 0x58e45a6c,
+ 0x1d043242,
+ 0x9e515d10,
+ 0x1984598d,
+ 0x3980c01d,
+ 0x590d3246,
+ 0x59301904,
+ 0x32443242,
+ 0xc000b481,
+ 0xa60d9c22,
+ 0x07038420,
+ 0xc2800687,
+ 0x1c845c8d,
+ 0x5ca0d0a2,
+ 0xd0110287,
+ 0xc2000a5e,
+ 0x1a045a0d,
+ 0x5a30c200,
+ 0x30985cd0,
+ 0x04059e4c,
+ 0x0c8ac032,
+ 0xc8013098,
+ 0xb4213880,
+ 0x9ea9c000,
+ 0x0a02c801,
+ 0x0a00c002,
+ 0xc0306553,
+ 0xb4810c8a,
+ 0xc002c000,
+ 0x0c840882,
+ 0xc000b421,
+ 0xd0229e93,
+ 0x9e535f09,
+ 0x1d045d0d,
+ 0x9b5afff4,
+ 0x5e91c280,
+ 0xc2801e84,
+ 0x9e6c5e84,
+ 0xc2801a84,
+ 0xc1815a90,
+ 0x0d8a3a80,
+ 0x0d020982,
+ 0xfff4314a,
+ 0xc0c09b54,
+ 0x09920d82,
+ 0x0d02c002,
+ 0x0902c002,
+ 0x9a47c034,
+ 0xc0340a0a,
+ 0xb4810c9e,
+ 0x1b04c000,
+ 0x850275bf,
+ 0x9202c000,
+ 0xb55f9dcf,
+ 0xc0347f7c,
+ 0xf2319a4f,
+ 0xb75fa045,
+ 0x1b047f7c,
+ 0x851075bf,
+ 0x9284ffff,
+ 0xc0300a02,
+ 0xb4810c8e,
+ 0xb79fc000,
+ 0xb7bf7e6e,
+ 0xb7df7eee,
+ 0xc0027f6e,
+ 0x9c228c00,
+ 0xb780a605,
+ 0xc004430c,
+ 0x75002a00,
+ 0x578cb7a0,
+ 0x92c2c002,
+ 0xa9b6f208,
+ 0x0982c050,
+ 0x0d7ec008,
+ 0x9b08fff4,
+ 0xa9bef208,
+ 0x0982c028,
+ 0x0d3ec004,
+ 0x9b00fff4,
+ 0x430cb780,
+ 0x38c0d211,
+ 0x02039e89,
+ 0x2a00c201,
+ 0xcffa7500,
+ 0xb5202cfd,
+ 0xc0014314,
+ 0x744090e2,
+ 0x580cb740,
+ 0x9256c000,
+ 0xaa45f008,
+ 0xa8c9f008,
+ 0x2cfec7ff,
+ 0x0a00c010,
+ 0xa245f008,
+ 0x0880c008,
+ 0xa0c9f008,
+ 0x4314b520,
+ 0xaa45f008,
+ 0x430cb720,
+ 0xa235f208,
+ 0xa8caf008,
+ 0x28fecdff,
+ 0xa0bef208,
+ 0x430cb520,
+ 0x9240c000,
+ 0xa937f208,
+ 0xaa39f208,
+ 0xa93cf20a,
+ 0xa8a1f248,
+ 0x8021f310,
+ 0x82a3e210,
+ 0xa235f208,
+ 0xa0bdf208,
+ 0xa9bef248,
+ 0x0982c002,
+ 0xfff40d0e,
+ 0xf2489ab5,
+ 0xb720aa3d,
+ 0xc002430c,
+ 0xf2480a00,
+ 0xc200a23d,
+ 0xb5203880,
+ 0xc011430c,
+ 0x74402880,
+ 0x92e2c000,
+ 0xa9b6f248,
+ 0x0982c008,
+ 0xfff40d3e,
+ 0xf2489a9d,
+ 0xb720aa35,
+ 0xc008430c,
+ 0xf2480a00,
+ 0xc081a235,
+ 0xcfef3880,
+ 0xb52028fe,
+ 0xb780430c,
+ 0xc001430c,
+ 0x75002a04,
+ 0x92e2c000,
+ 0xa9b6f248,
+ 0x0982c008,
+ 0xfff40d3e,
+ 0xf2489a81,
+ 0xb720aa35,
+ 0xc008430c,
+ 0xf2480a00,
+ 0xc001a235,
+ 0xcfff3888,
+ 0xb52028fa,
+ 0xb720430c,
+ 0x0203430c,
+ 0x2a10c001,
+ 0xc0027500,
+ 0xc0019082,
+ 0x744028c0,
+ 0x9182c001,
+ 0xa9a6f288,
+ 0x0d0609c2,
+ 0x0c820942,
+ 0xfff40882,
+ 0xf2889a96,
+ 0xf288a9b6,
+ 0x5d90a927,
+ 0x81afe220,
+ 0x430cb780,
+ 0x0d0609c2,
+ 0x0c820942,
+ 0xc0010882,
+ 0xb5803a20,
+ 0xfff4430c,
+ 0xb7809aa0,
+ 0xf288430c,
+ 0xc003a8a5,
+ 0x08c03a00,
+ 0xa0a5f288,
+ 0x2a2ecfff,
+ 0x9260c000,
+ 0xa9a6f288,
+ 0x0d0609c2,
+ 0x9a36fff4,
+ 0x430cb780,
+ 0xa8a5f288,
+ 0x3a20c001,
+ 0xf28808c0,
+ 0xcfffa0a5,
+ 0xb5802a6e,
+ 0xb79f430c,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa6059c22,
+ 0x430cb780,
+ 0x2a00c200,
+ 0x9e5d7500,
+ 0x9302c000,
+ 0x0abc6a8e,
+ 0x09829eab,
+ 0xc1010d36,
+ 0xc0140902,
+ 0x9eab98a4,
+ 0x430cb780,
+ 0x0d1a0982,
+ 0x0902c101,
+ 0x2a7dcdfe,
+ 0x430cb580,
+ 0x9897c014,
+ 0x430cb780,
+ 0x2a00c081,
+ 0xc0007500,
+ 0xc1019222,
+ 0xc0060902,
+ 0x0dce0940,
+ 0x0d020982,
+ 0x9887c014,
+ 0x430cb780,
+ 0x2a7ecf7f,
+ 0x430cb580,
+ 0x430cb780,
+ 0x2a08c001,
+ 0xc0007500,
+ 0xc1019222,
+ 0xc0060902,
+ 0x0dde0940,
+ 0x0d020982,
+ 0x9871c014,
+ 0x430cb780,
+ 0x2a76cfff,
+ 0x430cb580,
+ 0x430cb780,
+ 0x2a20c001,
+ 0xc0007500,
+ 0x0de291e2,
+ 0x0d020982,
+ 0x0902c101,
+ 0x985dc014,
+ 0x430cb780,
+ 0x2a5ecfff,
+ 0x430cb580,
+ 0x430cb780,
+ 0x2a00c003,
+ 0xc0007500,
+ 0x0de291e2,
+ 0x0d060982,
+ 0x0902c101,
+ 0x9849c014,
+ 0x430cb780,
+ 0x2a7ecffd,
+ 0x430cb580,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xb7a0a605,
+ 0xf248578c,
+ 0xc021a9ba,
+ 0x0d3c0d02,
+ 0x0982c008,
+ 0x999efff4,
+ 0xa9aaf288,
+ 0x0d02c021,
+ 0x09c20d04,
+ 0x9996fff4,
+ 0xaa39f248,
+ 0xa8a9f288,
+ 0x0a00c008,
+ 0xa239f248,
+ 0xf28808c0,
+ 0xb79fa0a9,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa6059c22,
+ 0x09920687,
+ 0x0d02c002,
+ 0x0902c002,
+ 0x9883c034,
+ 0x0a42c002,
+ 0xc2800eb0,
+ 0xb4855e89,
+ 0xb79fc000,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xb7409c22,
+ 0xd1a64b84,
+ 0x9e2d5d08,
+ 0xa8cde030,
+ 0x5a0cc080,
+ 0xd1f35885,
+ 0xc00e2910,
+ 0xe2202d7c,
+ 0xc00e812d,
+ 0x5d302a40,
+ 0x32429e51,
+ 0x0c82c040,
+ 0xc000b481,
+ 0x0d02c040,
+ 0xc000b442,
+ 0xb7409c22,
+ 0x1df05884,
+ 0x5d08d1a6,
+ 0xe0309e2d,
+ 0xc080a8cd,
+ 0xd0335a05,
+ 0x5991294e,
+ 0x008929bc,
+ 0x81a7e210,
+ 0x2910d1f3,
+ 0x2d7cc00e,
+ 0x812de220,
+ 0x5d305990,
+ 0x31b89e54,
+ 0x0c82c040,
+ 0xc000b461,
+ 0x0d02c040,
+ 0xc000b442,
+ 0xa6059c22,
+ 0x578cb7a0,
+ 0x0e82c111,
+ 0x0ec0c04e,
+ 0xa9b6f208,
+ 0x0982c050,
+ 0x0d7ec008,
+ 0x991efff4,
+ 0x0df29e6a,
+ 0x0982c004,
+ 0xfff40d02,
+ 0xf2089bc8,
+ 0xf248a937,
+ 0xe220a9aa,
+ 0xc05081af,
+ 0xc0080982,
+ 0xfff40d7e,
+ 0x9e6a990b,
+ 0xc0040df2,
+ 0x0d0209c2,
+ 0x9bb5fff4,
+ 0xa937f208,
+ 0xa9aaf248,
+ 0x812ec201,
+ 0x81afe220,
+ 0x0982c050,
+ 0x0d7ec008,
+ 0x98f6fff4,
+ 0x0df29e6a,
+ 0x0982c006,
+ 0xfff40d02,
+ 0xf2089ba0,
+ 0xcfd8a9be,
+ 0xc0280e81,
+ 0xc0040982,
+ 0xfff40d3e,
+ 0x9e6a98e5,
+ 0xc0040df2,
+ 0xc0040982,
+ 0xfff40d42,
+ 0xf2089b8e,
+ 0xf248a93f,
+ 0xe220a9b2,
+ 0xc02881af,
+ 0xc0040982,
+ 0xfff40d3e,
+ 0x9e6a98d1,
+ 0xc0040df2,
+ 0xc00409c2,
+ 0xfff40d42,
+ 0xf2089b7a,
+ 0xf248a93f,
+ 0xc201a9b2,
+ 0xe220812e,
+ 0xc02881af,
+ 0xc0040982,
+ 0xfff40d3e,
+ 0x9e6a98bb,
+ 0xc0060df2,
+ 0xc0040982,
+ 0xfff40d42,
+ 0xf2489b64,
+ 0xf20aaa29,
+ 0xf248a934,
+ 0xd226a8b1,
+ 0xf2085904,
+ 0xf310a9bf,
+ 0xd0a68021,
+ 0xe2105904,
+ 0xf31080a3,
+ 0xe2108221,
+ 0xf20880b3,
+ 0xf208a235,
+ 0xb79fa0bd,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa6059c22,
+ 0x0902c121,
+ 0x0940c006,
+ 0x02870dca,
+ 0x0d020982,
+ 0x2afcc00e,
+ 0x9b1bfff4,
+ 0x09820dca,
+ 0xc2800d1e,
+ 0x010b5aec,
+ 0x3900c121,
+ 0x9b11fff4,
+ 0x430cb780,
+ 0x3a00c400,
+ 0x430cb580,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0x0922c829,
+ 0x0970c5fe,
+ 0x0a22c829,
+ 0x0a50c5fe,
+ 0x590cb720,
+ 0x0ca2c829,
+ 0x0ce0c5fe,
+ 0x8502c004,
+ 0x450cb580,
+ 0x448cb520,
+ 0x0a18d071,
+ 0xa241f008,
+ 0x404db520,
+ 0x413db540,
+ 0x8d00c004,
+ 0x40bdb540,
+ 0x403db540,
+ 0xf8399c22,
+ 0xf010a285,
+ 0x7500aa61,
+ 0x9164c000,
+ 0xa8c1d008,
+ 0x0a069e48,
+ 0x5200c200,
+ 0xd0083098,
+ 0xd011a0c1,
+ 0xd0100d38,
+ 0xf011a9f2,
+ 0xf0101a30,
+ 0x1984a943,
+ 0x93e2c000,
+ 0x8702cff1,
+ 0x8700cff0,
+ 0x087ec00f,
+ 0x087cc00e,
+ 0x0c1ac050,
+ 0xa8c5f029,
+ 0x2095d020,
+ 0x9e4d5ca1,
+ 0xc2002210,
+ 0x30d85a20,
+ 0x4006ba09,
+ 0xc000b420,
+ 0x1a30f011,
+ 0xffff1984,
+ 0xf21091e4,
+ 0xf010802f,
+ 0xf9f8a241,
+ 0x9c22aa9d,
+ 0x8420a60d,
+ 0x9e558502,
+ 0x7f7cb55f,
+ 0xaa61f010,
+ 0x8d8ee012,
+ 0xb55f0307,
+ 0x1a087ffc,
+ 0xd226750a,
+ 0x8540590c,
+ 0x8044e05a,
+ 0x91e0c003,
+ 0x9180c000,
+ 0x9000c001,
+ 0x9140c001,
+ 0x92a0c001,
+ 0x9380c001,
+ 0x91c0c002,
+ 0x5a0cb780,
+ 0xa881da08,
+ 0x74402888,
+ 0xb352856a,
+ 0xb7804462,
+ 0x9d57448c,
+ 0x8d88e011,
+ 0x1954d072,
+ 0xa299f208,
+ 0x9abcc014,
+ 0x91e0c002,
+ 0x448cb780,
+ 0xa91af208,
+ 0xe0119ea9,
+ 0x15148d88,
+ 0x9ab0c014,
+ 0x9060c002,
+ 0x8d88e011,
+ 0x295ed3f2,
+ 0xc0140916,
+ 0xb78099df,
+ 0xf208448c,
+ 0xc001a299,
+ 0xe01192c0,
+ 0xd3f28d88,
+ 0x0916295e,
+ 0x99d2c014,
+ 0x91a0c001,
+ 0xaa41d208,
+ 0x8c88f011,
+ 0xd0124a7d,
+ 0x0d062ace,
+ 0x018b0906,
+ 0x99c4c014,
+ 0x9e6a9e83,
+ 0x0d02018b,
+ 0x99bec014,
+ 0x9320c000,
+ 0xaa41d208,
+ 0x8c88f011,
+ 0xd0124a7d,
+ 0x0d022ace,
+ 0x018b0906,
+ 0x99b0c014,
+ 0x9e6a9e83,
+ 0xc00e018b,
+ 0xc0140d7e,
+ 0xc00099a9,
+ 0xc0019080,
+ 0xb79f90e0,
+ 0xc00f7e68,
+ 0xc00e0cfe,
+ 0x9e4a0cfc,
+ 0x7c68b59f,
+ 0x7f6cb73f,
+ 0x0a02cff1,
+ 0x0a00cff0,
+ 0x0c9ac050,
+ 0xc2002218,
+ 0x20945a21,
+ 0x324258a0,
+ 0x4006ba24,
+ 0x7f6cb59f,
+ 0xc000b481,
+ 0xa943f208,
+ 0x7fecb79f,
+ 0x8021f310,
+ 0xa241f208,
+ 0x7e6eb79f,
+ 0x7eeeb7bf,
+ 0x7f6eb7df,
+ 0x8c00c002,
+ 0xa61d9c22,
+ 0x85028440,
+ 0xf0319e9d,
+ 0x0b02abe5,
+ 0x7878b55f,
+ 0x7efcb55f,
+ 0x9d3a718e,
+ 0x91e8c001,
+ 0x7502aa41,
+ 0x9392c000,
+ 0xaad1d018,
+ 0x8d08e032,
+ 0x8d00e051,
+ 0x9eb19dcf,
+ 0xb55f8510,
+ 0xc0027f7c,
+ 0xc2800a9c,
+ 0x018b5a95,
+ 0x9aebfff4,
+ 0x7f7cb75f,
+ 0x5a88c280,
+ 0x8122c301,
+ 0x91a0c000,
+ 0x8d88e031,
+ 0x050b9dcf,
+ 0xb55f8510,
+ 0xfff47f7c,
+ 0xb75f9b19,
+ 0x0b047f7c,
+ 0xfffe718e,
+ 0xb79f92a6,
+ 0xc0507868,
+ 0xb4810c9e,
+ 0xc050c000,
+ 0xb4e20d16,
+ 0xb71fc000,
+ 0xb79f7eec,
+ 0xb7bf7d6e,
+ 0xb7df7dee,
+ 0xb7ff7e6e,
+ 0xc0027eee,
+ 0x9c228c40,
+ 0xa205f839,
+ 0x8400c010,
+ 0x5a0cb780,
+ 0x449cb740,
+ 0xa882da08,
+ 0xd011a8c1,
+ 0x58882e18,
+ 0x0880c002,
+ 0xe2107500,
+ 0xc00080a3,
+ 0x0a0a90a2,
+ 0x9100c000,
+ 0x2e14d011,
+ 0x0a067500,
+ 0x0a44d001,
+ 0x0c82c050,
+ 0xc000b481,
+ 0x0a02c004,
+ 0xb4810cb4,
+ 0x9d87c000,
+ 0x402db740,
+ 0x09a20dc2,
+ 0x0d02c008,
+ 0x0c81cff0,
+ 0x9b4dffd4,
+ 0x0a42c801,
+ 0x0a00cb10,
+ 0x0ceac032,
+ 0xc000b481,
+ 0x08c2c801,
+ 0x0888c010,
+ 0xb4210c84,
+ 0xb760c000,
+ 0x9d8f410a,
+ 0x0d81cff0,
+ 0x9b67fff4,
+ 0x0a02c801,
+ 0x0a00c00a,
+ 0x0c8ac030,
+ 0xc000b481,
+ 0x08c2c008,
+ 0xb4210c84,
+ 0xc008c000,
+ 0x0c880a02,
+ 0xc000b481,
+ 0x0d82c0c0,
+ 0xc0080992,
+ 0xc0080d02,
+ 0xc0140902,
+ 0xc00899ae,
+ 0xc0300a02,
+ 0xb4810c8e,
+ 0xc014c000,
+ 0xb79f982f,
+ 0xc0106fee,
+ 0x9c228c20,
+ 0xa205f839,
+ 0x0c82c450,
+ 0xb4810a02,
+ 0xb101c000,
+ 0xc0084220,
+ 0xc0300a40,
+ 0xb4810c8e,
+ 0xc002c000,
+ 0xc05038c0,
+ 0xb4210c82,
+ 0xc0c0c000,
+ 0x09920d82,
+ 0x0d02c008,
+ 0x0902c008,
+ 0x9983c014,
+ 0x0a02c008,
+ 0x0c8ec030,
+ 0xc000b481,
+ 0xaa1df9f8,
+ 0x9040c000,
+ 0xc450a60d,
+ 0x0a020c8a,
+ 0xc000b481,
+ 0x4240b105,
+ 0x2efce00e,
+ 0x5e90d284,
+ 0x0a02c801,
+ 0xc0300a40,
+ 0xb4810c8a,
+ 0x08c2c000,
+ 0xb4210c84,
+ 0x7740c000,
+ 0x5a8cb7c0,
+ 0x93e2c000,
+ 0x0eded031,
+ 0x09820dea,
+ 0x2ac10d02,
+ 0x1950d051,
+ 0x3900c121,
+ 0x98ddfff4,
+ 0xa9c6f248,
+ 0xc280018b,
+ 0x1a845a8f,
+ 0xc0219eaa,
+ 0xffd43d00,
+ 0xf2489a3f,
+ 0xf310a947,
+ 0xf248802b,
+ 0xc450a245,
+ 0x0a020c86,
+ 0xc000b481,
+ 0x4220b101,
+ 0x0a42c801,
+ 0x0a08c010,
+ 0x0c86c032,
+ 0xc000b481,
+ 0xc0020886,
+ 0xb4210c98,
+ 0xb740c000,
+ 0xf248598c,
+ 0xf048a8c5,
+ 0xd053aa51,
+ 0xc0801910,
+ 0xf3100ca2,
+ 0xb4818821,
+ 0xb7a0c000,
+ 0xc002598c,
+ 0xc0140d82,
+ 0xf248992f,
+ 0xf248a8c5,
+ 0xd053aa31,
+ 0xf3101910,
+ 0x70088821,
+ 0x9264ffff,
+ 0x09c20d86,
+ 0xc1210d0a,
+ 0xffd40902,
+ 0xf2489a0a,
+ 0xc0a1a9b2,
+ 0x0d040d02,
+ 0xffd409c2,
+ 0xc0c099f7,
+ 0x09920d82,
+ 0x09420d42,
+ 0x98f7c014,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x9e5da60d,
+ 0xf1245940,
+ 0xd3f15841,
+ 0xb3502d2e,
+ 0xc0024422,
+ 0xf00893e2,
+ 0xe000aa61,
+ 0xb4252a1c,
+ 0xd8084422,
+ 0x8522aa61,
+ 0x88a9e210,
+ 0x12182a1c,
+ 0xc00e9ea3,
+ 0xba1b0a7e,
+ 0xc200400b,
+ 0x21285207,
+ 0x9276c001,
+ 0xc1009e59,
+ 0x11035a20,
+ 0x5209c200,
+ 0xc2009ea2,
+ 0x9e8d58a1,
+ 0x0cb0d031,
+ 0xa8a2d208,
+ 0x2a7cc00e,
+ 0x5207c200,
+ 0x2a7cc00e,
+ 0xd208349a,
+ 0xf008a0a2,
+ 0x9ea1a963,
+ 0x2a2ed3f1,
+ 0x8128c201,
+ 0x8821f310,
+ 0xf0088502,
+ 0xd228a261,
+ 0x9eaba127,
+ 0x2d01cff0,
+ 0x59415940,
+ 0xc00e3522,
+ 0xfff42d7c,
+ 0xc0009bb1,
+ 0xd20892e0,
+ 0x9e5eaa21,
+ 0x50d8000b,
+ 0xd0293242,
+ 0xf008a205,
+ 0xd013a8e1,
+ 0xf210291e,
+ 0x75108029,
+ 0x00989e44,
+ 0xa0e1f008,
+ 0x4426b350,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x0685a60d,
+ 0x9e9e9e69,
+ 0x71820b02,
+ 0xc0000a86,
+ 0x9ea99208,
+ 0x9e6916d2,
+ 0x5a84c280,
+ 0x1a52d011,
+ 0xd0117102,
+ 0xd3f108e2,
+ 0xffff2b1e,
+ 0xd0119286,
+ 0x75100a62,
+ 0xc000028d,
+ 0x9e7391d4,
+ 0x09220d02,
+ 0x9b70fff4,
+ 0xd0111aa0,
+ 0x75100a52,
+ 0xffff9e83,
+ 0x9e7392d2,
+ 0xd0110d06,
+ 0xc00e0952,
+ 0xfff4297c,
+ 0x75909b61,
+ 0xc0009e83,
+ 0xd03192f4,
+ 0xd3f11a60,
+ 0x9e6c2b4e,
+ 0xc2009e73,
+ 0xd3f25299,
+ 0x0922295e,
+ 0x9b50fff4,
+ 0xc2009e83,
+ 0x9ea952b8,
+ 0x16d27590,
+ 0x91b2ffff,
+ 0xd3f29e73,
+ 0x010d2d5e,
+ 0x9b42fff4,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x0ca0f011,
+ 0xd09a9e99,
+ 0xd00d5a04,
+ 0xc0001a42,
+ 0x1203909a,
+ 0x9e4b1242,
+ 0xfffc9ea2,
+ 0xc0019360,
+ 0xf83993a0,
+ 0x0d8aa205,
+ 0x9835c014,
+ 0xc0140d8e,
+ 0x0d8a9832,
+ 0xaa1df9f8,
+ 0x91a0c001,
+ 0x9e520507,
+ 0x0d82c0c0,
+ 0xc0000992,
+ 0x9e5c9040,
+ 0xd1a401c6,
+ 0x08825889,
+ 0x3c80c400,
+ 0xc000b421,
+ 0x4220b104,
+ 0x9e532244,
+ 0xffff7106,
+ 0x9c229324,
+ 0xc000b463,
+ 0xf8129c22,
+ 0x9c22a062,
+ 0x0d80c200,
+ 0x9e595d89,
+ 0xc4000982,
+ 0xb4633d80,
+ 0xb203c000,
+ 0x00074620,
+ 0xc1279c22,
+ 0x9c229c8f,
+ 0xb971080a,
+ 0xc01756f1,
+ 0xc0719c81,
+ 0xc0179c80,
+ 0xb9609c80,
+ 0x9c224000,
+ 0x8460a61d,
+ 0x4484b740,
+ 0xb53f0882,
+ 0xb53f7dec,
+ 0x01037e6c,
+ 0x7d6cb55f,
+ 0x4588b540,
+ 0xaa41f000,
+ 0xb7a09e2d,
+ 0xb53f580c,
+ 0xc2007eec,
+ 0xd0935a08,
+ 0x9ea90940,
+ 0xa96de020,
+ 0x098e0dc2,
+ 0x0d42c002,
+ 0x991bffd4,
+ 0x5794b720,
+ 0xaa25f208,
+ 0xb53f0882,
+ 0xf2087f6c,
+ 0xb760a8a9,
+ 0xda08598c,
+ 0xb580a939,
+ 0xda0842cd,
+ 0xd112a93e,
+ 0x9e4e09b8,
+ 0x43cdb520,
+ 0x434db540,
+ 0x4455b540,
+ 0xaa39f208,
+ 0xa822da08,
+ 0xa8e1d810,
+ 0xf0489e9a,
+ 0x2a20a967,
+ 0x9e447500,
+ 0xa97df048,
+ 0xc08060c2,
+ 0xc2005a7f,
+ 0x00985a71,
+ 0x58945893,
+ 0x80a3e210,
+ 0x46cdb540,
+ 0x474db540,
+ 0x47cdb520,
+ 0x90c2c000,
+ 0x5c40e000,
+ 0x9184c000,
+ 0xa957f050,
+ 0xaa61d810,
+ 0x8021f310,
+ 0xa14bf288,
+ 0xa245f288,
+ 0xaa59f208,
+ 0xa8c1f248,
+ 0x581cb760,
+ 0xa249f248,
+ 0xaa41f010,
+ 0xa8c6f010,
+ 0xa949f010,
+ 0xa0d1f248,
+ 0xa241f208,
+ 0xa0caf208,
+ 0xa14df208,
+ 0xa8cad850,
+ 0x0e28d111,
+ 0xa94dd850,
+ 0xa881da08,
+ 0xa0c6f208,
+ 0x5a94b720,
+ 0xa151f208,
+ 0x58d158c0,
+ 0xa0d5f288,
+ 0xaa61d818,
+ 0x425db740,
+ 0x42c5b740,
+ 0xc2000089,
+ 0x589c5a20,
+ 0x8021f310,
+ 0x82a3e210,
+ 0xa24df010,
+ 0xa0d1f010,
+ 0xa245f248,
+ 0xa0cdf248,
+ 0x0a00c00c,
+ 0x4d8cb580,
+ 0x0880c006,
+ 0x4e0cb520,
+ 0x0cf2c42e,
+ 0xb4810a02,
+ 0xb101c000,
+ 0x28844220,
+ 0xc0007440,
+ 0xd1119142,
+ 0xda080e28,
+ 0xc058a881,
+ 0xc02b7460,
+ 0xb7209012,
+ 0xb780580c,
+ 0x0a86402b,
+ 0x410ab720,
+ 0x9ead7500,
+ 0x1ed2d002,
+ 0xc0007448,
+ 0xb7409152,
+ 0xf008580c,
+ 0xcffeaa59,
+ 0xf0082a3d,
+ 0xb760a259,
+ 0xf008580c,
+ 0x2a40aa79,
+ 0xc0007500,
+ 0x0a0a9122,
+ 0x0caec060,
+ 0xc000b481,
+ 0x90e0c000,
+ 0xc0600a06,
+ 0xb4810cae,
+ 0xb720c000,
+ 0xf2c84c14,
+ 0xf288aa41,
+ 0xc801a8dd,
+ 0x9d1e3c80,
+ 0x448cb740,
+ 0x5a40c200,
+ 0xc30158a0,
+ 0x32423246,
+ 0xa251f008,
+ 0x9a01c034,
+ 0xc0340a3e,
+ 0xb4810c9e,
+ 0x0882c000,
+ 0xb4210c90,
+ 0xffd4c000,
+ 0xc0069a90,
+ 0xb5408542,
+ 0x0a02459c,
+ 0x0c8ac030,
+ 0xc000b481,
+ 0x0882c002,
+ 0xb4210c84,
+ 0xc801c000,
+ 0xc0020a02,
+ 0x1c840a00,
+ 0xc000b481,
+ 0x0902c1c1,
+ 0x0940c006,
+ 0x09820dce,
+ 0xffb40d02,
+ 0xc0c09ba8,
+ 0xffd40d82,
+ 0xb7809a16,
+ 0xc034458c,
+ 0xc2000cae,
+ 0xb4815a11,
+ 0x0882c000,
+ 0xb4210cfc,
+ 0xb720c000,
+ 0xb780580c,
+ 0x2a04432d,
+ 0x850a7500,
+ 0x461cb540,
+ 0x90a2c000,
+ 0xb5408504,
+ 0xb780461c,
+ 0xc03e460c,
+ 0xb5800c82,
+ 0xb481468c,
+ 0xc0c8c000,
+ 0xc0500882,
+ 0xb4210ce2,
+ 0xb740c000,
+ 0xf008580c,
+ 0x8516aa59,
+ 0x0cfac038,
+ 0x75002a04,
+ 0xcffe0902,
+ 0xe0010a7e,
+ 0xb5408d28,
+ 0xb481471c,
+ 0xc284c000,
+ 0xb540856a,
+ 0xc002481c,
+ 0xc0500a42,
+ 0xb4810cb6,
+ 0xc03ac000,
+ 0xb4420d02,
+ 0x08bec000,
+ 0x0c9ec034,
+ 0xc000b421,
+ 0x4808b785,
+ 0xc0007500,
+ 0xc0749082,
+ 0xb780988a,
+ 0xc038480c,
+ 0xb4810c82,
+ 0xb760c000,
+ 0xb720580c,
+ 0xf2885b0c,
+ 0xd808aa55,
+ 0xb720a965,
+ 0x6245462d,
+ 0xb5408502,
+ 0x7440419a,
+ 0x5a11c200,
+ 0x420ab580,
+ 0x9102c000,
+ 0xa9eaf048,
+ 0x420ab760,
+ 0x9c629e8c,
+ 0x5994b7e0,
+ 0x9eb60b82,
+ 0x470cb780,
+ 0x0c82c050,
+ 0xc000b481,
+ 0x0d0ac030,
+ 0xc000b4e2,
+ 0x08fec00e,
+ 0x0c8ec030,
+ 0xc000b421,
+ 0x581cb760,
+ 0xaa79f018,
+ 0x75002a04,
+ 0x9182c000,
+ 0x0c8ac438,
+ 0xc000b4e1,
+ 0x4220b104,
+ 0x0ca6c03e,
+ 0xc000b481,
+ 0x428cb780,
+ 0xc0017500,
+ 0xc02093a2,
+ 0x75002a00,
+ 0x90e2c001,
+ 0x0ca2c460,
+ 0xc000b4e1,
+ 0x4220b104,
+ 0xc060088a,
+ 0xb4210ca2,
+ 0xc004c000,
+ 0xc0300902,
+ 0xb4410c96,
+ 0xb780c000,
+ 0xcfde428c,
+ 0xb5802a7d,
+ 0xc002428c,
+ 0xc00e08f8,
+ 0xb4210cec,
+ 0xc201c000,
+ 0xb4810a02,
+ 0xc004c000,
+ 0xb5408502,
+ 0xb7204c9c,
+ 0xc030428c,
+ 0xb4210c96,
+ 0xb780c000,
+ 0x2a04428c,
+ 0xc0007500,
+ 0xb78090e2,
+ 0x0a04478c,
+ 0x478cb580,
+ 0x018b058b,
+ 0x99e7c054,
+ 0x430cb780,
+ 0x2a00c020,
+ 0xc00e7500,
+ 0xb51f287c,
+ 0xc0027dec,
+ 0xf2509042,
+ 0xc021a9c6,
+ 0x0d7c0d02,
+ 0x0982c010,
+ 0x9aa6ffb4,
+ 0xa9cef250,
+ 0x0d02c021,
+ 0xc0080d3c,
+ 0xffb40982,
+ 0xb7809a9d,
+ 0xc401430c,
+ 0x75002a00,
+ 0x9262c000,
+ 0xaa6df210,
+ 0xa8f1f210,
+ 0xb55f0906,
+ 0xc0107eec,
+ 0xf2100a00,
+ 0xc008a26d,
+ 0xf2100880,
+ 0xc000a0f1,
+ 0xf24891c0,
+ 0xf248a947,
+ 0xf24aaa49,
+ 0xf248a94c,
+ 0xf310a8d1,
+ 0xe2108021,
+ 0xf24882a3,
+ 0xf248a245,
+ 0xb780a0cd,
+ 0xcfde430c,
+ 0xb5802a7d,
+ 0xb780430c,
+ 0xc021430c,
+ 0x75002a00,
+ 0x9122c001,
+ 0x4394b760,
+ 0x0d02c021,
+ 0xc0020d14,
+ 0xffb409c2,
+ 0xb7609a5f,
+ 0xc0214414,
+ 0x0d040d02,
+ 0xffb409c2,
+ 0xb7409a57,
+ 0xf210439c,
+ 0xb740aa59,
+ 0xf2504404,
+ 0xb720a8c1,
+ 0xf3104314,
+ 0xe2108021,
+ 0xcfdf82a3,
+ 0xb5202cfe,
+ 0xb5804314,
+ 0xb520438c,
+ 0xb720440c,
+ 0x9e4c4314,
+ 0x2a00c401,
+ 0xc0007500,
+ 0xf25091a2,
+ 0xf250aa45,
+ 0xc002a8cd,
+ 0xb5801a40,
+ 0x18c0438c,
+ 0x440cb520,
+ 0xc4009e4c,
+ 0x76402c80,
+ 0x2a7ecbff,
+ 0x430cb580,
+ 0x9142c000,
+ 0x987affd4,
+ 0x430cb780,
+ 0x2a7dcbfe,
+ 0x430cb580,
+ 0x7d6cb79f,
+ 0xc0007500,
+ 0xb76093c2,
+ 0xd0325a8c,
+ 0x2d41094e,
+ 0xa9e6f048,
+ 0x5d0d9e53,
+ 0xc0211d04,
+ 0xffb43d00,
+ 0xb7809a09,
+ 0xf2485a8c,
+ 0xb79fa907,
+ 0xb7607d6c,
+ 0xf3105a9c,
+ 0xb5ff8021,
+ 0xf0587d6c,
+ 0xb73fa265,
+ 0x74407e6c,
+ 0x9002c005,
+ 0x0902c101,
+ 0x0940c002,
+ 0x09820da6,
+ 0xffd40d02,
+ 0xc1019880,
+ 0xc0800902,
+ 0x0da60940,
+ 0x0d120982,
+ 0x9877ffd4,
+ 0x580cb740,
+ 0xa9c0f212,
+ 0xaa59f008,
+ 0xa948f212,
+ 0xa9cff210,
+ 0xc0208522,
+ 0x75002a00,
+ 0x8eb0e051,
+ 0x4f0cb780,
+ 0x8520e021,
+ 0x8aadf210,
+ 0xf0207502,
+ 0xc00088b4,
+ 0xf2889364,
+ 0xf208aa55,
+ 0x1a04a8c5,
+ 0x6145c301,
+ 0xa8d2f208,
+ 0xe2305890,
+ 0xc2008b33,
+ 0x5c8c5a10,
+ 0x80a1e310,
+ 0x8b23e030,
+ 0x80a5f210,
+ 0x893ac201,
+ 0x80a5f220,
+ 0xf2089e8b,
+ 0x09c2a945,
+ 0x0c820d42,
+ 0xffb40882,
+ 0xb76099c2,
+ 0xf008580c,
+ 0xc020aa79,
+ 0x75002a00,
+ 0x92c2c000,
+ 0xf2089eab,
+ 0x09a2a951,
+ 0x0c820d22,
+ 0xffb40882,
+ 0xf20899ce,
+ 0x058ba951,
+ 0x0d2209a2,
+ 0x08820c82,
+ 0x99e3ffb4,
+ 0x9160c000,
+ 0xf2089eab,
+ 0x09c2a951,
+ 0x0c820d22,
+ 0xffb40882,
+ 0xc101999c,
+ 0xc00e0902,
+ 0x0d860940,
+ 0x0d020982,
+ 0x980bffd4,
+ 0x581cb760,
+ 0xaa79f018,
+ 0x2a00c020,
+ 0xc0007500,
+ 0xc10191a2,
+ 0xc0060902,
+ 0x0d8a0940,
+ 0x0d020982,
+ 0x9bf9ffb4,
+ 0x9160c000,
+ 0x0902c101,
+ 0x0940c086,
+ 0x09820d8a,
+ 0xffb40d02,
+ 0x08829bee,
+ 0x7e6cb53f,
+ 0x430cb780,
+ 0x2a00c100,
+ 0xc0007500,
+ 0xffb49142,
+ 0xb7809a37,
+ 0xcefe430c,
+ 0xb5802a7d,
+ 0xb780430c,
+ 0xc004428c,
+ 0x75002a00,
+ 0x92c2c002,
+ 0x0ae8d152,
+ 0x418ab720,
+ 0xaa21da10,
+ 0x4002ba09,
+ 0x4002ba24,
+ 0x70480a0c,
+ 0x9118c002,
+ 0x7f6cb75f,
+ 0x4d94b760,
+ 0x0982c004,
+ 0xd0110d1e,
+ 0xc00e0a22,
+ 0xb59f2a7c,
+ 0xffb47f6c,
+ 0xb7609925,
+ 0xc0024e14,
+ 0x0d0e0982,
+ 0x991effb4,
+ 0x4d9cb740,
+ 0xaa59f208,
+ 0x4e04b740,
+ 0xa8a1f210,
+ 0x7f6cb77f,
+ 0xa8c2f248,
+ 0x8120c301,
+ 0x4d9cb540,
+ 0xc00170c2,
+ 0xb5408322,
+ 0xc0004e04,
+ 0x9d1e92a6,
+ 0xc3016219,
+ 0xf3106097,
+ 0xe2108821,
+ 0x09028aa3,
+ 0x7f6cb55f,
+ 0x0a00c010,
+ 0x4d8cb580,
+ 0x0880c008,
+ 0x4e0cb520,
+ 0x430cb780,
+ 0x3a00c041,
+ 0x430cb580,
+ 0x430cb780,
+ 0x2a00c005,
+ 0xc0047500,
+ 0xf21091c2,
+ 0xf210a9c2,
+ 0x09c2a945,
+ 0x0c820d42,
+ 0xffb40882,
+ 0xb76098f8,
+ 0xf008580c,
+ 0xc020aa79,
+ 0x75002a00,
+ 0x9302c000,
+ 0xa9caf208,
+ 0xa951f208,
+ 0x0d2209a2,
+ 0x08820c82,
+ 0x9903ffb4,
+ 0xa9cef208,
+ 0xa951f208,
+ 0x0d2209a2,
+ 0x08820c82,
+ 0x9917ffb4,
+ 0x9180c000,
+ 0xa9caf208,
+ 0xa951f208,
+ 0x0d2209c2,
+ 0x08820c82,
+ 0x98cfffb4,
+ 0x430cb720,
+ 0xc1010203,
+ 0x75002a00,
+ 0x9122c001,
+ 0xa8eada50,
+ 0xa963f210,
+ 0x28feceff,
+ 0x430cb520,
+ 0xa8edda50,
+ 0xa968f212,
+ 0xe2205c90,
+ 0xf21080ab,
+ 0x0203a967,
+ 0xc200588c,
+ 0xf3105a0c,
+ 0xe2108221,
+ 0xf21080a3,
+ 0xf210a0e2,
+ 0xf210a269,
+ 0xf210a0e5,
+ 0xf210a0c2,
+ 0xf210a0c9,
+ 0xc001a24d,
+ 0xb7609080,
+ 0xf018581c,
+ 0xf210aa79,
+ 0xc020a8c1,
+ 0x75002a00,
+ 0xf21008c0,
+ 0xc000a0c1,
+ 0xf2089182,
+ 0xf208aa49,
+ 0x0a20a8cd,
+ 0xa249f208,
+ 0xc00008a0,
+ 0xf2089140,
+ 0xf208aa49,
+ 0x0a40a8cd,
+ 0xa249f208,
+ 0xf20808c0,
+ 0xb780a0cd,
+ 0xcffb430c,
+ 0xc0092a7e,
+ 0xb5803a00,
+ 0xb780430c,
+ 0x75004c8c,
+ 0x9142c000,
+ 0x0c82c040,
+ 0xc000b481,
+ 0x0a02c201,
+ 0xc000b481,
+ 0x430cb780,
+ 0x2a00c008,
+ 0xc0007500,
+ 0xc1119362,
+ 0xc04e0902,
+ 0x0df20940,
+ 0x0d020982,
+ 0x9aefffb4,
+ 0x0902c111,
+ 0x0940c026,
+ 0x09820df6,
+ 0x0d42c004,
+ 0x9ae5ffb4,
+ 0x430cb780,
+ 0x2a7dcff6,
+ 0x430cb580,
+ 0x430cb780,
+ 0x2a00c080,
+ 0xc0007500,
+ 0xb76091c2,
+ 0xba1b4192,
+ 0xc0144003,
+ 0xb7809a6c,
+ 0xcf7e430c,
+ 0xb5802a7d,
+ 0xb780430c,
+ 0xc010430c,
+ 0x75002a00,
+ 0x9022c002,
+ 0x0902c121,
+ 0x0940c00e,
+ 0x09820d9e,
+ 0xffb40d02,
+ 0xc1219a9e,
+ 0xc0860902,
+ 0x0da20940,
+ 0x0d020982,
+ 0x9a95ffb4,
+ 0x7eecb73f,
+ 0xc0017440,
+ 0xb7409042,
+ 0xf008580c,
+ 0x2a40aa59,
+ 0xc0007500,
+ 0xc1219342,
+ 0xc0020902,
+ 0x0da60900,
+ 0x0d060982,
+ 0x9a7fffb4,
+ 0x0902c121,
+ 0x0900c080,
+ 0x09820da6,
+ 0xffb40d16,
+ 0xb7809a76,
+ 0xc021430c,
+ 0xb5803a00,
+ 0xb780430c,
+ 0xcfee430c,
+ 0xc0202a7d,
+ 0xb5803a00,
+ 0xb780430c,
+ 0xc800430c,
+ 0x75002a00,
+ 0x9302c000,
+ 0x580cb760,
+ 0x7decb79f,
+ 0x4192b760,
+ 0xa97af008,
+ 0xba1b0189,
+ 0x5d114003,
+ 0x2d044d04,
+ 0x9b2bffb4,
+ 0x430cb780,
+ 0x2a7ec7fe,
+ 0x430cb580,
+ 0x430cb780,
+ 0x2a00c200,
+ 0xc0007500,
+ 0x0d8690c2,
+ 0xffb40982,
+ 0xb780998c,
+ 0xc041430c,
+ 0x75002a00,
+ 0x9342c000,
+ 0x0902c101,
+ 0x0940c002,
+ 0x09820da6,
+ 0xffb40d02,
+ 0xc1019a30,
+ 0xc0800902,
+ 0x0da60940,
+ 0x0d120982,
+ 0x9a27ffb4,
+ 0x430cb780,
+ 0x2a7ecfbf,
+ 0x430cb580,
+ 0x430cb720,
+ 0xc0090203,
+ 0x75002a00,
+ 0x9182c001,
+ 0x0902c101,
+ 0x0940c00e,
+ 0x28fecff7,
+ 0x430cb520,
+ 0x09820d9e,
+ 0xffb40d02,
+ 0xb7609a0c,
+ 0xf018581c,
+ 0xc020aa79,
+ 0x75002a00,
+ 0x91a2c000,
+ 0x0902c101,
+ 0x0940c006,
+ 0x09820da2,
+ 0xffb40d02,
+ 0xc00099fa,
+ 0xc1019160,
+ 0xc0860902,
+ 0x0da20940,
+ 0x0d020982,
+ 0x99efffb4,
+ 0x0902c1c1,
+ 0x0940c006,
+ 0x09820dce,
+ 0xff940d02,
+ 0xc0149b5e,
+ 0xc03099a9,
+ 0xb4e10c8a,
+ 0xb780c000,
+ 0x0c884c8c,
+ 0xc000b481,
+ 0x0882cc01,
+ 0xb4211c88,
+ 0xc054c000,
+ 0xb7809b0f,
+ 0xc0084c8c,
+ 0x75002a00,
+ 0x7d6cb5ff,
+ 0x9282c001,
+ 0x0c8ac450,
+ 0xc000b4e1,
+ 0x4220b104,
+ 0x2a7cc00e,
+ 0x7d6cb59f,
+ 0xb4e11c84,
+ 0xb104c000,
+ 0x2a104220,
+ 0xc0007500,
+ 0xb7809362,
+ 0xc008428c,
+ 0x75002a00,
+ 0x8d80e071,
+ 0x7d6cb79f,
+ 0xd0010d02,
+ 0xb7600d22,
+ 0x08864714,
+ 0x7e6cb53f,
+ 0x5a10c200,
+ 0x7d6cb59f,
+ 0x99bdc014,
+ 0x9100c000,
+ 0x7d6cb79f,
+ 0x5a10c200,
+ 0x7d6cb59f,
+ 0x428cb780,
+ 0x0c8ac030,
+ 0x4c8cb580,
+ 0xc000b4e1,
+ 0x0a02c801,
+ 0x0a00c002,
+ 0xc000b481,
+ 0xc00408be,
+ 0xb4210c94,
+ 0xc0c0c000,
+ 0xffb40d82,
+ 0xb760996c,
+ 0xb7804112,
+ 0x9ea4420c,
+ 0xb7209c62,
+ 0xc034458c,
+ 0x58910cae,
+ 0xc000b421,
+ 0x7e6cb75f,
+ 0xc0007480,
+ 0xb75f9224,
+ 0x74807d6c,
+ 0x9182c000,
+ 0x2941093c,
+ 0x09820dea,
+ 0x19400d02,
+ 0x3900c121,
+ 0x9961ffb4,
+ 0x9907c014,
+ 0x5808b785,
+ 0xb7807500,
+ 0xc000468c,
+ 0x2a7990a2,
+ 0x5808b5e5,
+ 0x0c82c03e,
+ 0xc000b481,
+ 0x7decb77f,
+ 0x418ab780,
+ 0x0e820a82,
+ 0x0a0474c0,
+ 0x418ab580,
+ 0x9282ffdc,
+ 0x430cb780,
+ 0x7d3ed3ff,
+ 0x91c4ffdc,
+ 0x7d6cb79f,
+ 0xffdc7500,
+ 0xb79f9124,
+ 0xb7bf7cee,
+ 0xb7df7d6e,
+ 0xb7ff7dee,
+ 0xc0027e6e,
+ 0x9c228c60,
+ 0xc004a605,
+ 0xc8298420,
+ 0xc5280ca2,
+ 0xc0300ca0,
+ 0xe133ac3d,
+ 0xc0388d00,
+ 0xc030a45d,
+ 0xc038ac3d,
+ 0xc010a45d,
+ 0xc018ac3d,
+ 0xc010a45d,
+ 0xc018ac25,
+ 0xb740a445,
+ 0xf0004484,
+ 0xb7a0aa41,
+ 0x9e2d598c,
+ 0x5a08c200,
+ 0x0940d093,
+ 0xe0209ea9,
+ 0x0dc2a96d,
+ 0x0d42c008,
+ 0xff9409c2,
+ 0xb7809ae4,
+ 0xf2085a8c,
+ 0x8502a8a1,
+ 0xa8a6f208,
+ 0xa103f208,
+ 0xa085f208,
+ 0xa929f208,
+ 0xa08af208,
+ 0xa92ef208,
+ 0xa8b2f208,
+ 0xa10df208,
+ 0xa8b1f248,
+ 0xa112f208,
+ 0xa096f208,
+ 0xa09af208,
+ 0xc036090a,
+ 0x08c00c92,
+ 0xa085f248,
+ 0xc000b441,
+ 0x1c8c0a16,
+ 0xc000b481,
+ 0x8c00f031,
+ 0x8d80e131,
+ 0xb55f9ea3,
+ 0x0d027ffc,
+ 0x4078b960,
+ 0xa103f208,
+ 0xd1229dba,
+ 0x9e2d5d0d,
+ 0xa8e5f029,
+ 0x2caed012,
+ 0xd1265c88,
+ 0x9e4a5908,
+ 0xaa4de038,
+ 0x28bc0d04,
+ 0x324250a8,
+ 0xffffa241,
+ 0xf01091c1,
+ 0xc036aa61,
+ 0xb4810c8e,
+ 0xb73fc000,
+ 0x1c847fec,
+ 0xc000b421,
+ 0x9a4ac054,
+ 0x08c2c801,
+ 0x0890c112,
+ 0x0a42c809,
+ 0x0a10c6e2,
+ 0x0cbec032,
+ 0x420cb580,
+ 0xc000b421,
+ 0x0ce00a3e,
+ 0xc000b481,
+ 0xc0800882,
+ 0xb4210cc6,
+ 0xc801c000,
+ 0xc1120a42,
+ 0xc0320a18,
+ 0xb4810cc2,
+ 0x08c0c000,
+ 0xb4210cdc,
+ 0x0a02c000,
+ 0x0cc6c080,
+ 0xc000b481,
+ 0x08c2c801,
+ 0x0890c114,
+ 0x0cc6c032,
+ 0xc000b421,
+ 0x0cd80a44,
+ 0xc000b481,
+ 0xc0800882,
+ 0xb4210cc6,
+ 0xc801c000,
+ 0xc1140a42,
+ 0xc0320a18,
+ 0xb4810cca,
+ 0x08c8c000,
+ 0xb4210cd4,
+ 0x0a02c000,
+ 0x0cc6c080,
+ 0xc000b481,
+ 0x7aeeb79f,
+ 0x7b6eb7bf,
+ 0x8c60c004,
+ 0x08829c22,
+ 0x0c92c001,
+ 0x0c84c332,
+ 0xc000b421,
+ 0x4b8cb780,
+ 0x0a10873e,
+ 0x9c8bc040,
+ 0xc238b780,
+ 0xb7809c22,
+ 0x0a40458c,
+ 0x7520c00c,
+ 0x458cb580,
+ 0x48b4b340,
+ 0xb5408502,
+ 0x9c22459c,
+ 0x4b8cb780,
+ 0xa895f208,
+ 0xa88ef208,
+ 0xa905f208,
+ 0xa99df208,
+ 0xa906f288,
+ 0xa09df208,
+ 0xa096f208,
+ 0xa10df208,
+ 0xa185f208,
+ 0xa899f208,
+ 0xa892f208,
+ 0xa909f208,
+ 0xa981f248,
+ 0xa081f248,
+ 0xa09af208,
+ 0xa111f208,
+ 0xa189f208,
+ 0xa881f288,
+ 0xa995f248,
+ 0xa89ef248,
+ 0xa90df248,
+ 0xa085f288,
+ 0xa18df248,
+ 0xa999f248,
+ 0xa082f288,
+ 0xa115f248,
+ 0xa891f248,
+ 0xa191f248,
+ 0xa989f288,
+ 0xa89af288,
+ 0xa099f248,
+ 0xa10af288,
+ 0xa19df248,
+ 0xa99df288,
+ 0xa09ef288,
+ 0xa895f288,
+ 0xa892f288,
+ 0xa90df288,
+ 0xa099f288,
+ 0xa096f288,
+ 0xa111f288,
+ 0xa18df288,
+ 0xa61d9c22,
+ 0x8440c012,
+ 0x9e9e9e5f,
+ 0x0d82c0c0,
+ 0x2d7cc00e,
+ 0x7c74b55f,
+ 0x9bc3ff94,
+ 0x0a02c004,
+ 0x0c8ac030,
+ 0xc000b481,
+ 0x0882c004,
+ 0x0d0ec030,
+ 0xc000b422,
+ 0x0ca2c460,
+ 0x1a00c004,
+ 0xc000b481,
+ 0x4220b101,
+ 0x38880283,
+ 0x0ca2c060,
+ 0xc000b421,
+ 0x0a00c004,
+ 0x0c96c030,
+ 0xc000b481,
+ 0x0d82c004,
+ 0x9822ffd4,
+ 0x0ca2c060,
+ 0xc000b4a1,
+ 0xc0300a02,
+ 0xb4810c8a,
+ 0xc00ec000,
+ 0xc03008de,
+ 0xb4220d0e,
+ 0xc450c000,
+ 0xb4810c82,
+ 0xb101c000,
+ 0xb53f4220,
+ 0x0c947a6c,
+ 0xc000b481,
+ 0x4220b101,
+ 0x7aecb53f,
+ 0xb4810c88,
+ 0xb101c000,
+ 0xb53f4220,
+ 0x85027b6c,
+ 0x0c8ac030,
+ 0xa143f210,
+ 0xb4810a40,
+ 0xc008c000,
+ 0x0c840882,
+ 0xc000b421,
+ 0xc402020f,
+ 0xc0503a40,
+ 0xb4810c82,
+ 0xc0c0c000,
+ 0x09920d82,
+ 0x0d02c008,
+ 0x0902c008,
+ 0x9be7ffb4,
+ 0x0a02c008,
+ 0x0c8ec030,
+ 0xc000b481,
+ 0x0d02c050,
+ 0xc000b4e2,
+ 0x0c8ac450,
+ 0x1a00c008,
+ 0xc000b481,
+ 0x4220b101,
+ 0xc0340a68,
+ 0xb4820d1e,
+ 0x0cd4c000,
+ 0xb4811a68,
+ 0xb101c000,
+ 0x03034220,
+ 0x2b7cc03e,
+ 0xd0718502,
+ 0xe2000a6e,
+ 0xe0d35a95,
+ 0xb57f8d80,
+ 0xe3d37d7c,
+ 0xb57f8d80,
+ 0xe2d37dfc,
+ 0xb57f8d80,
+ 0xe1d37e7c,
+ 0xb57f8d80,
+ 0xc0007cfc,
+ 0x9d979262,
+ 0x0ec1cfec,
+ 0xb55f9dcf,
+ 0xffb47f7c,
+ 0xf2319bbf,
+ 0xb75fa025,
+ 0xe0007f7c,
+ 0x85101a84,
+ 0x9284ffff,
+ 0x9eb39d0f,
+ 0x9e729eba,
+ 0x08820c82,
+ 0x09c1cfec,
+ 0x9991c014,
+ 0x580cb780,
+ 0xa899f208,
+ 0x87028536,
+ 0x74402884,
+ 0x6878b55d,
+ 0x68e0b55d,
+ 0x9122c000,
+ 0xb55d853e,
+ 0xc0086878,
+ 0xb55d8502,
+ 0x9d0f68f8,
+ 0x09e2d032,
+ 0x9e729eba,
+ 0x2d9c8522,
+ 0x89afe220,
+ 0x6960b55d,
+ 0x69e0b55d,
+ 0x08860c86,
+ 0x09c1cfec,
+ 0x0da42d9c,
+ 0x9967c014,
+ 0x0df2c008,
+ 0x0d02c00a,
+ 0x0c9ec432,
+ 0xb4810a02,
+ 0xb107c000,
+ 0x9e794240,
+ 0x0d00c0c0,
+ 0x5c89c100,
+ 0x0d01cf40,
+ 0x3c80c400,
+ 0xc000b481,
+ 0x4220b106,
+ 0xcdff020d,
+ 0xc0c028fe,
+ 0x5d890d80,
+ 0xc000b423,
+ 0x2a7ecdff,
+ 0x0d00c0c0,
+ 0xb4825d09,
+ 0x089ec000,
+ 0x0c9ec034,
+ 0xc000b421,
+ 0x0e829d17,
+ 0xcfec8506,
+ 0x058b0ac1,
+ 0x7f7cb55f,
+ 0x9b4cffb4,
+ 0xa021f208,
+ 0xaa21d208,
+ 0xb75f7500,
+ 0xb4157f7c,
+ 0xd2084c22,
+ 0x7500aa25,
+ 0x9084c000,
+ 0xa127d208,
+ 0xaa29d208,
+ 0xc0007500,
+ 0xd2089084,
+ 0xd208a12b,
+ 0x7500aa2d,
+ 0x9084c000,
+ 0xa12fd208,
+ 0xc01c0e90,
+ 0x0a90777e,
+ 0x9334fffe,
+ 0x9eba9d0f,
+ 0xc0209e72,
+ 0x0c860d82,
+ 0xcfec0882,
+ 0xc01409c1,
+ 0xb73f9902,
+ 0x9eba7dec,
+ 0xc0209e72,
+ 0x0c860d82,
+ 0x08820183,
+ 0x98f7c014,
+ 0x9e729eba,
+ 0x7e6cb79f,
+ 0x0d82c020,
+ 0x08820c86,
+ 0xc0140189,
+ 0xb73f98ec,
+ 0x9eba7cec,
+ 0xc0209e72,
+ 0x0c860d82,
+ 0x08820183,
+ 0x98e1c014,
+ 0xc0340a22,
+ 0xb4810c9e,
+ 0x9d17c000,
+ 0x87060e82,
+ 0x0ac1cfec,
+ 0x2d5ed013,
+ 0x2de1058b,
+ 0xe2205d84,
+ 0xb55f81af,
+ 0xffb47fe4,
+ 0xf2089ae7,
+ 0xd208a021,
+ 0x7500aa21,
+ 0x7fe4b75f,
+ 0x5022b415,
+ 0xaa25d208,
+ 0xc0007500,
+ 0xd20a9084,
+ 0xd208a124,
+ 0x7500aa29,
+ 0x9084c000,
+ 0xa128d20a,
+ 0xaa2dd208,
+ 0xc0007500,
+ 0xd20a9084,
+ 0x0e90a12c,
+ 0x777ec004,
+ 0xfffe0a90,
+ 0x9d179274,
+ 0x87060e82,
+ 0x0ac1cfec,
+ 0x2d5ed013,
+ 0x2de1058b,
+ 0x0da05d84,
+ 0x81afe220,
+ 0x7fe4b55f,
+ 0x9ab2ffb4,
+ 0xaa21d208,
+ 0xf2887500,
+ 0xb75fa021,
+ 0xb4157fe4,
+ 0xd2085022,
+ 0x7500aa25,
+ 0x9084c000,
+ 0xa124d20a,
+ 0xaa29d208,
+ 0xc0007500,
+ 0xd20a9084,
+ 0xd208a128,
+ 0x7500aa2d,
+ 0x9084c000,
+ 0xa12cd20a,
+ 0xc0040e90,
+ 0x0a90777e,
+ 0x9254fffe,
+ 0x9eba9d0f,
+ 0xc0209e72,
+ 0x0c860d82,
+ 0xcfec0882,
+ 0xc01409c1,
+ 0x9eba9868,
+ 0xb79f9e72,
+ 0xc0207dec,
+ 0x0c860d82,
+ 0x01890882,
+ 0x985dc014,
+ 0x7c6cb73f,
+ 0xc0007440,
+ 0x9d0f9202,
+ 0x9e729eba,
+ 0x8502c008,
+ 0x6878b55d,
+ 0x0c860d8a,
+ 0xcfec0882,
+ 0xc01409c1,
+ 0xb77f984a,
+ 0xc0507d7c,
+ 0xaa610c82,
+ 0xc000b481,
+ 0x7aecb73f,
+ 0xb4210c94,
+ 0xb79fc000,
+ 0x0c887b6c,
+ 0xc000b481,
+ 0x578cb720,
+ 0x4d9cb740,
+ 0x4335b760,
+ 0x89afe220,
+ 0x0982c004,
+ 0xff740d1e,
+ 0xb7809b29,
+ 0xb740578c,
+ 0xf2484e1c,
+ 0xe220a982,
+ 0xc00289af,
+ 0x0d0e0982,
+ 0x9b1cff74,
+ 0x0c9ec032,
+ 0xb4219e79,
+ 0xc032c000,
+ 0xb4c20d22,
+ 0xc1c1c000,
+ 0xc0060902,
+ 0x0dce0940,
+ 0x0d020982,
+ 0x9b15ff74,
+ 0x6b6eb79f,
+ 0x6beeb7bf,
+ 0x6c6eb7df,
+ 0x6ceeb7ff,
+ 0x8c40c014,
+ 0xa61d9c22,
+ 0x9e968440,
+ 0xe0000a82,
+ 0xd3f20d80,
+ 0xd3f12e9e,
+ 0xc0022b1e,
+ 0xc00690e2,
+ 0xc00c87e2,
+ 0x9d6876f2,
+ 0xb3328502,
+ 0x74804826,
+ 0xc1000a84,
+ 0xc0015860,
+ 0x858e9082,
+ 0xc0508722,
+ 0x74920c1a,
+ 0xe0129d50,
+ 0xd0088522,
+ 0xb324a8e2,
+ 0x11284426,
+ 0x2e26d011,
+ 0xf3107506,
+ 0x9e4f8831,
+ 0x5a0cc200,
+ 0x50f0c200,
+ 0xc0003002,
+ 0xb40090a4,
+ 0x0802c000,
+ 0x9d2a7480,
+ 0xffff0984,
+ 0xf0119084,
+ 0x4a7d8422,
+ 0x75062a0c,
+ 0x90c2c000,
+ 0x0c9ac050,
+ 0xc000b401,
+ 0x76f2c00c,
+ 0xb3349d70,
+ 0x9ea14826,
+ 0x15b2e000,
+ 0x93e4fffd,
+ 0xc0300a42,
+ 0xb4810c8a,
+ 0x08c2c000,
+ 0x0d0ec030,
+ 0xc000b422,
+ 0x0c82c450,
+ 0xb4811a40,
+ 0xb101c000,
+ 0xb53f4220,
+ 0x0c947e6c,
+ 0xc000b481,
+ 0x4220b101,
+ 0x7eecb53f,
+ 0xb4810c88,
+ 0xb101c000,
+ 0xb53f4220,
+ 0xc0507f6c,
+ 0xb4a10c96,
+ 0x7740c000,
+ 0xc8018502,
+ 0xb3210882,
+ 0x75804c24,
+ 0xd0020a02,
+ 0x0c880a42,
+ 0xb4213098,
+ 0xc008c000,
+ 0xc0300a02,
+ 0xb4810c8e,
+ 0xc008c000,
+ 0x0c880882,
+ 0xc000b421,
+ 0x0d82c0c0,
+ 0xc0080992,
+ 0xc0080d02,
+ 0xffb40902,
+ 0xc008996e,
+ 0xc0300a02,
+ 0xb4820d0e,
+ 0xc450c000,
+ 0xc0080c8a,
+ 0xb4811a00,
+ 0xb101c000,
+ 0xc00e4220,
+ 0xc08028fc,
+ 0x010b5a90,
+ 0x0a00c002,
+ 0x0c8ac030,
+ 0xc000b481,
+ 0x0882c002,
+ 0xb4210c84,
+ 0x7480c000,
+ 0x92a2c000,
+ 0x09820dea,
+ 0xd0510d02,
+ 0xc1a11950,
+ 0xff943900,
+ 0xc0c098d0,
+ 0xff940d82,
+ 0xf21098b6,
+ 0xf310a943,
+ 0xf2108023,
+ 0xc002a241,
+ 0xc0300a02,
+ 0xb4810c8a,
+ 0xc002c000,
+ 0x0c840882,
+ 0xc000b421,
+ 0x7d6eb79f,
+ 0x7deeb7bf,
+ 0x7e6eb7df,
+ 0x7eeeb7ff,
+ 0x8c40c002,
+ 0xa60d9c22,
+ 0x0a42c801,
+ 0x0a00cb10,
+ 0x0ceac032,
+ 0xc000b481,
+ 0x08c2c801,
+ 0x0888c010,
+ 0xb4210c84,
+ 0xc008c000,
+ 0xc0020a42,
+ 0xb4811ce4,
+ 0xc008c000,
+ 0xc03008c2,
+ 0xb4220d0e,
+ 0xc450c000,
+ 0xc0080c82,
+ 0xb4811a40,
+ 0xb101c000,
+ 0xc0024220,
+ 0xb52038c0,
+ 0xc0504d0c,
+ 0xb4210c82,
+ 0xc0c0c000,
+ 0x09920d82,
+ 0x0d02c008,
+ 0x0902c008,
+ 0x98efffb4,
+ 0x0c86c450,
+ 0xb4810a02,
+ 0xb104c000,
+ 0xc0084220,
+ 0xc0300a02,
+ 0xb4820d0e,
+ 0x0c84c000,
+ 0x1a00c008,
+ 0xc000b481,
+ 0x4220b105,
+ 0x5a35c280,
+ 0x0882c801,
+ 0xc00e08c0,
+ 0xc2802afc,
+ 0xd0725a90,
+ 0x9ead2b4e,
+ 0x0c8ac030,
+ 0xc000b421,
+ 0x0c840a42,
+ 0xc000b481,
+ 0xb7c07740,
+ 0xc0015a8c,
+ 0xd0319002,
+ 0x0dea0ede,
+ 0x0d020982,
+ 0xd0512ac1,
+ 0xc1211950,
+ 0xff943900,
+ 0xf2489842,
+ 0x018ba9c6,
+ 0x5a8dc280,
+ 0x9eaa1a84,
+ 0x3d00c021,
+ 0x99a4ff74,
+ 0xaa45f248,
+ 0x16dcd010,
+ 0xf248024a,
+ 0xc450a245,
+ 0x0a020c86,
+ 0xc000b481,
+ 0x4220b104,
+ 0xc0340a6e,
+ 0xb4810c9e,
+ 0xb720c000,
+ 0xf248598c,
+ 0xb720aa45,
+ 0xd0534635,
+ 0xf2101940,
+ 0xc08088ab,
+ 0xc2800ca2,
+ 0xb5805a0c,
+ 0xb4a1418c,
+ 0xb785c000,
+ 0x75004808,
+ 0x9262c003,
+ 0x548cb721,
+ 0x530cb781,
+ 0x7c40c030,
+ 0xb5810a04,
+ 0xc000530c,
+ 0xc0349082,
+ 0xb72098dc,
+ 0xb720520c,
+ 0xb78141b5,
+ 0xb740530c,
+ 0x9e49442d,
+ 0x71046243,
+ 0x90b8c000,
+ 0xb5458506,
+ 0xb7854e18,
+ 0x75004908,
+ 0x5b14b7a0,
+ 0x9262c000,
+ 0x530cb7a0,
+ 0xa83df210,
+ 0xa9a1f208,
+ 0x9e840d86,
+ 0xf2089c62,
+ 0xf250a021,
+ 0x9eaba825,
+ 0x9e840986,
+ 0xb7859c62,
+ 0x75004908,
+ 0x9164c000,
+ 0x5314b760,
+ 0xa825f210,
+ 0x9c629e84,
+ 0xc0000281,
+ 0xb7859220,
+ 0x75004888,
+ 0x9102c000,
+ 0x540cb780,
+ 0xaa81f208,
+ 0x90c0c000,
+ 0x548cb780,
+ 0xaa8df208,
+ 0x560cb720,
+ 0x4129b780,
+ 0x03037500,
+ 0x9264c000,
+ 0x4908b785,
+ 0xc0007500,
+ 0xf25090c4,
+ 0x9ea4aa21,
+ 0xb7409c62,
+ 0xf210419c,
+ 0xe320aa35,
+ 0x9ea489a3,
+ 0xf2109c62,
+ 0x9eabaa39,
+ 0x9ea4018d,
+ 0xb7809c62,
+ 0xc080528c,
+ 0xd2c80ca6,
+ 0xb4a1aa91,
+ 0xc002c000,
+ 0xffb40d92,
+ 0x700a981b,
+ 0x9364ffff,
+ 0x09c20d86,
+ 0xc1210d0a,
+ 0xff740902,
+ 0xb78098fe,
+ 0xf248598c,
+ 0xc0a1a992,
+ 0x0d040d02,
+ 0xff7409c2,
+ 0xc0c098e9,
+ 0x09920d82,
+ 0x09420d42,
+ 0x9be9ff94,
+ 0xc0300a42,
+ 0xb4810c8e,
+ 0xb79fc000,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0xb7009c22,
+ 0x76c0598c,
+ 0x0d820c02,
+ 0x9342c000,
+ 0x430cb780,
+ 0x0880d131,
+ 0x4033b720,
+ 0x4e94b500,
+ 0x4f14b500,
+ 0x4894b500,
+ 0x76402c88,
+ 0x2a7ecdff,
+ 0x430cb580,
+ 0xc0008522,
+ 0x85129062,
+ 0x4a9cb540,
+ 0xb74074c0,
+ 0xc0005814,
+ 0xb78092e2,
+ 0x8502430c,
+ 0xa8c1d810,
+ 0x4f1cb540,
+ 0x429cb540,
+ 0x569cb541,
+ 0x4b1cb540,
+ 0x489cb540,
+ 0x4e8cb520,
+ 0x2a7ecdff,
+ 0x430cb580,
+ 0x0880d131,
+ 0x4033b720,
+ 0x428cb780,
+ 0x2c14d012,
+ 0xc0080089,
+ 0x75002a00,
+ 0x28fdcffa,
+ 0x428cb520,
+ 0x92c2c000,
+ 0x430cb780,
+ 0xc8007600,
+ 0xb5803a00,
+ 0xc000430c,
+ 0x850690e4,
+ 0x5c18b545,
+ 0x9100c000,
+ 0x5c08b785,
+ 0x3a080d86,
+ 0x5c08b585,
+ 0x5c08b745,
+ 0x2a22d011,
+ 0xc0007500,
+ 0xb7809102,
+ 0xc010430c,
+ 0xb5803a00,
+ 0xb780430c,
+ 0x75004b0c,
+ 0x90e2c000,
+ 0x428cb780,
+ 0xb5802a79,
+ 0xb720428c,
+ 0xb7204294,
+ 0x9e4c4a8c,
+ 0xd3f17902,
+ 0xc2002a2e,
+ 0xb5855a05,
+ 0xc0005c08,
+ 0xd2119102,
+ 0xb5803e10,
+ 0xc000428c,
+ 0xcff690c0,
+ 0xb5202cfd,
+ 0xb7204294,
+ 0xd1114294,
+ 0x75002e10,
+ 0x90a2c000,
+ 0xb5408506,
+ 0x7600491c,
+ 0x5e1dd0a2,
+ 0xd0020882,
+ 0x2a040892,
+ 0xc0007902,
+ 0xd1119102,
+ 0xb5803e10,
+ 0xc000428c,
+ 0x76c09120,
+ 0x90c2c000,
+ 0x3c80c020,
+ 0x4294b520,
+ 0x428cb720,
+ 0x2a12d011,
+ 0xc0007500,
+ 0xb78090e2,
+ 0x32184a8c,
+ 0x90c0c000,
+ 0x4a8cb780,
+ 0x22184a7d,
+ 0x428cb580,
+ 0x428cb720,
+ 0x2a14d011,
+ 0xc0007500,
+ 0xd0119102,
+ 0xb5803a12,
+ 0xc000428c,
+ 0x28f990a0,
+ 0x428cb520,
+ 0xa8c1d810,
+ 0x4e9cb740,
+ 0xaa45d810,
+ 0x88a3e210,
+ 0x5a11c200,
+ 0xc0037048,
+ 0xd1119036,
+ 0xda080a08,
+ 0xb720a882,
+ 0xb740428c,
+ 0x5c91488c,
+ 0xb7409e4c,
+ 0x38884314,
+ 0x428cb520,
+ 0xc1007088,
+ 0xb5403d00,
+ 0xc0004314,
+ 0xb7219278,
+ 0x9e54568c,
+ 0xc0017440,
+ 0xb5803a04,
+ 0xc000430c,
+ 0xc0119124,
+ 0xb5403d04,
+ 0x85064314,
+ 0x569cb541,
+ 0x088cd112,
+ 0x404bb780,
+ 0x4e8cb720,
+ 0x5a11c200,
+ 0xc0007048,
+ 0xb7809116,
+ 0xc001430c,
+ 0xb5803a10,
+ 0xb780430c,
+ 0xc200404b,
+ 0x1a085a11,
+ 0xc0007048,
+ 0xb7809116,
+ 0xc001430c,
+ 0xb5803a40,
+ 0xb720430c,
+ 0xd1114f14,
+ 0xda080a08,
+ 0x9e4ca881,
+ 0x71025891,
+ 0x9102c000,
+ 0x430cb780,
+ 0x3a00c005,
+ 0x430cb580,
+ 0x430cb780,
+ 0x3a00c084,
+ 0x430cb580,
+ 0x91a0c000,
+ 0x428cb780,
+ 0x430cb720,
+ 0xb5802a75,
+ 0xcffa428c,
+ 0xb52028fd,
+ 0xb740430c,
+ 0xf012428c,
+ 0xc0002922,
+ 0xb7809102,
+ 0xc080430c,
+ 0xb5803a00,
+ 0xb780430c,
+ 0xb720488c,
+ 0xb7204a94,
+ 0x0a044f0c,
+ 0x488cb580,
+ 0x78889e4c,
+ 0xb5200884,
+ 0xc0004f0c,
+ 0x76809222,
+ 0x91c4c000,
+ 0x460cb720,
+ 0x3a22d011,
+ 0x428cb580,
+ 0xb5408506,
+ 0x28f94b1c,
+ 0x460cb520,
+ 0x0a08d111,
+ 0xa881da08,
+ 0x4f14b720,
+ 0x18c0c002,
+ 0x5a7fc080,
+ 0x5a71c200,
+ 0x9e4c0098,
+ 0x460cb740,
+ 0x71025893,
+ 0x468cb540,
+ 0x9044c001,
+ 0x430cb740,
+ 0xc0800205,
+ 0x75002a00,
+ 0x9342c000,
+ 0x4e94b720,
+ 0x76420205,
+ 0x3a00c201,
+ 0x430cb580,
+ 0x921cc000,
+ 0x0a0cd111,
+ 0xa881da08,
+ 0x9e4c0c8c,
+ 0x71025891,
+ 0x90d6c000,
+ 0x3900ca01,
+ 0x430cb540,
+ 0x4f14b720,
+ 0x0a08d111,
+ 0xa881da08,
+ 0x58919e4c,
+ 0xc0007102,
+ 0xb7209278,
+ 0x0203430c,
+ 0x2a00c005,
+ 0xc0007500,
+ 0xc1019162,
+ 0xb5203880,
+ 0x8506430c,
+ 0x499cb540,
+ 0x4a1cb540,
+ 0xc0007600,
+ 0xb7809122,
+ 0x750c4f0c,
+ 0x9122c000,
+ 0x92a0c000,
+ 0x4f0cb780,
+ 0xc000750a,
+ 0xb7809204,
+ 0x7500498c,
+ 0x9162c000,
+ 0x430cb780,
+ 0xb5408502,
+ 0xc401499c,
+ 0xb5803a00,
+ 0xb780430c,
+ 0x75064f0c,
+ 0x9204c000,
+ 0x4a0cb780,
+ 0xc0007500,
+ 0xb7809162,
+ 0x8502430c,
+ 0x4a1cb540,
+ 0x3a00c800,
+ 0x430cb580,
+ 0x4f14b720,
+ 0x0a08d111,
+ 0xa881da08,
+ 0x58919e4c,
+ 0xc0007102,
+ 0xb7809158,
+ 0x85024e8c,
+ 0x4f1cb540,
+ 0xb5800a04,
+ 0xb7804e8c,
+ 0x7500428c,
+ 0xc0008502,
+ 0xb7809144,
+ 0xc400430c,
+ 0x75002a00,
+ 0xe0018502,
+ 0x9d438522,
+ 0xa6059c22,
+ 0x4888b785,
+ 0xb7a07500,
+ 0xc002578c,
+ 0xb7609202,
+ 0xb7614210,
+ 0xb7a0558c,
+ 0xba1b5714,
+ 0xc0744001,
+ 0xd21099a9,
+ 0xd231a9a2,
+ 0xba000a50,
+ 0xf2084002,
+ 0xba1ba001,
+ 0xc0744001,
+ 0xb7619989,
+ 0xd210558c,
+ 0xd251a9a2,
+ 0xba000a50,
+ 0xf2084002,
+ 0xba1ba001,
+ 0xc0744001,
+ 0xb721998f,
+ 0xd2315494,
+ 0xe04008d8,
+ 0xba002c80,
+ 0xb5004002,
+ 0xc000402d,
+ 0xd2109202,
+ 0xba1ba9a2,
+ 0xc0744001,
+ 0xd25199a3,
+ 0xba000a58,
+ 0xf2084002,
+ 0xc000a001,
+ 0xd25190c0,
+ 0xf2080a58,
+ 0xb722a082,
+ 0xd2716792,
+ 0xb78008d8,
+ 0x9e49402d,
+ 0xd2716243,
+ 0xb58008d0,
+ 0xd231402d,
+ 0xf2080a50,
+ 0x7500aa01,
+ 0x90c2c000,
+ 0x0cb6c03e,
+ 0xc000b481,
+ 0x0a50d251,
+ 0xa881f208,
+ 0x0caac03e,
+ 0xc000b421,
+ 0x0a58d231,
+ 0xaa01f208,
+ 0xc0007500,
+ 0xc2009122,
+ 0xc8015a40,
+ 0x0c903a00,
+ 0xc000b481,
+ 0x0a58d251,
+ 0xaa01f208,
+ 0xc0007500,
+ 0xc03e90c2,
+ 0xb4810ca2,
+ 0xd271c000,
+ 0xf2080a50,
+ 0xc03ea881,
+ 0xb4210c8a,
+ 0xb79fc000,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa6859c22,
+ 0x0c92c43e,
+ 0xb4810a02,
+ 0xb103c000,
+ 0xb7804220,
+ 0xda08558c,
+ 0xda08a885,
+ 0xda08a909,
+ 0xda08a189,
+ 0xda08a081,
+ 0x0cd0a105,
+ 0xb4810a02,
+ 0xb103c000,
+ 0xb7804220,
+ 0xb7c0550c,
+ 0xda08558c,
+ 0x9ea5a885,
+ 0xa88ada08,
+ 0xa189da08,
+ 0x2d80c008,
+ 0xda0876c0,
+ 0xda08a081,
+ 0xc00ba086,
+ 0xb7809102,
+ 0x0a044508,
+ 0x4508b580,
+ 0x0ca6c450,
+ 0xb4810a02,
+ 0xb103c000,
+ 0x00874220,
+ 0x2880c031,
+ 0xc00f0207,
+ 0xd0a42a7c,
+ 0xd2285861,
+ 0x028759c1,
+ 0x2afccffe,
+ 0x0a020c88,
+ 0xc000b481,
+ 0x4220b103,
+ 0x59c1d1a6,
+ 0xcffe0107,
+ 0x0cbc297c,
+ 0xc000b481,
+ 0x4220b103,
+ 0xb7820087,
+ 0xc0fc678a,
+ 0xd0a42880,
+ 0xb7255b19,
+ 0xd0f14890,
+ 0x1208283e,
+ 0x76409ea2,
+ 0x678ab502,
+ 0x4003ba12,
+ 0x90e4c000,
+ 0x4908b785,
+ 0xc0027500,
+ 0xb78593a4,
+ 0x75004908,
+ 0x81b3e331,
+ 0x0127d011,
+ 0x580cb780,
+ 0x0c827602,
+ 0x0c92d001,
+ 0xa899f208,
+ 0x28849e4c,
+ 0xb7607848,
+ 0xc0005314,
+ 0xd81090e2,
+ 0x0a04aa69,
+ 0xa269d810,
+ 0xa96bf010,
+ 0xa96cf012,
+ 0x8026f010,
+ 0x82a5e210,
+ 0xa269f010,
+ 0xa0edf010,
+ 0x7e08b781,
+ 0x08827500,
+ 0x0892d002,
+ 0x0a027602,
+ 0x0a42d002,
+ 0xc0007848,
+ 0xc07c90c2,
+ 0xda088542,
+ 0x7602a143,
+ 0xa973f010,
+ 0x90c4c000,
+ 0xaa21da10,
+ 0x9080c000,
+ 0xaa41da08,
+ 0x80a1e310,
+ 0xaa6dd810,
+ 0xa0f1f010,
+ 0x0a047606,
+ 0xa26dd810,
+ 0x9124c000,
+ 0x4588b780,
+ 0xb5800a04,
+ 0xc0064588,
+ 0x85029200,
+ 0x4598b540,
+ 0x9160c006,
+ 0x580cb720,
+ 0x5314b720,
+ 0x0127d330,
+ 0x432db780,
+ 0x8122c301,
+ 0x4545b740,
+ 0x75002a04,
+ 0x8027f010,
+ 0x8221f310,
+ 0xb5800583,
+ 0xc001454d,
+ 0x760290a2,
+ 0x90c4c000,
+ 0xaa21da10,
+ 0x9080c000,
+ 0xaa41da08,
+ 0xa27dd810,
+ 0xc0017606,
+ 0x76009082,
+ 0x91a4c000,
+ 0xd8107680,
+ 0xe002a973,
+ 0xf2108d2a,
+ 0xd8108025,
+ 0xc000a271,
+ 0x768092c0,
+ 0xa967d850,
+ 0x8d26e002,
+ 0x9160c000,
+ 0xaa21da10,
+ 0xd8507680,
+ 0xd810a967,
+ 0xe002a27d,
+ 0xf2108d2a,
+ 0xd8508025,
+ 0xb785a265,
+ 0x75004a08,
+ 0x92e2c000,
+ 0x410ab780,
+ 0xc0007008,
+ 0x85029244,
+ 0x4a18b545,
+ 0x0c82c43a,
+ 0xb4810a02,
+ 0xb103c000,
+ 0xcfef4220,
+ 0xc03a29fe,
+ 0xb4610c82,
+ 0xb780c000,
+ 0x7008410a,
+ 0xd0020882,
+ 0x76060892,
+ 0xd0010a02,
+ 0x78480a42,
+ 0x9242c000,
+ 0xb5458506,
+ 0xc43a4a18,
+ 0x0a020c82,
+ 0xc000b481,
+ 0x4220b103,
+ 0x3980c011,
+ 0x0c82c03a,
+ 0xc000b461,
+ 0xc0017780,
+ 0x76009162,
+ 0x92c4c000,
+ 0xaa41da08,
+ 0xa967f010,
+ 0xa8f5d810,
+ 0xa8fad810,
+ 0x8021f310,
+ 0xd8100082,
+ 0x0c84a0f5,
+ 0xa0fad810,
+ 0xa265f010,
+ 0x9280c000,
+ 0xaa21da10,
+ 0xa97bf010,
+ 0xa8e9d850,
+ 0xa8eed850,
+ 0x8021f310,
+ 0xd8500082,
+ 0x0c84a0e9,
+ 0xa0eed850,
+ 0xa279f010,
+ 0xaa7dd810,
+ 0xa97ff010,
+ 0xa960f052,
+ 0xa9e7f050,
+ 0x8021f310,
+ 0xa96ff050,
+ 0xa27df010,
+ 0x8223f310,
+ 0xa8e2d850,
+ 0xa261f050,
+ 0x8037f010,
+ 0x80a1e210,
+ 0xd8500c84,
+ 0xf050a0e2,
+ 0xf050a265,
+ 0xb7bfa0ed,
+ 0xb7df7f6e,
+ 0x8c407fee,
+ 0xa6059c22,
+ 0x548cb781,
+ 0x2a00c008,
+ 0xc0007500,
+ 0xb7809282,
+ 0xb720530c,
+ 0xf2085b0c,
+ 0xb700a982,
+ 0x9e84452d,
+ 0xb7819c62,
+ 0xb500548c,
+ 0xcff6400a,
+ 0xb5812a7d,
+ 0xb781548c,
+ 0xc010548c,
+ 0x75002a00,
+ 0x91c2c001,
+ 0x5b0cb7a0,
+ 0x5314b7a0,
+ 0xa825f208,
+ 0x9e84058b,
+ 0xf2489c62,
+ 0x9ea4aa21,
+ 0xb7209c62,
+ 0xb725520c,
+ 0xb7805410,
+ 0x9e49422b,
+ 0xc0007048,
+ 0xf2109222,
+ 0xf208a9a1,
+ 0x0d86a83d,
+ 0x9c629e84,
+ 0xaa25f248,
+ 0xa021f210,
+ 0x0986058b,
+ 0x9c629ea4,
+ 0x548cb781,
+ 0x2a7dcfee,
+ 0x548cb581,
+ 0x548cb721,
+ 0xc0200203,
+ 0x75002a00,
+ 0x90c2c000,
+ 0x28fdcfde,
+ 0x548cb521,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xa205f839,
+ 0x548cb781,
+ 0x7d00c030,
+ 0x9162c000,
+ 0x4c8cb780,
+ 0x2a00c008,
+ 0xc0007500,
+ 0xfff49082,
+ 0xb7609b92,
+ 0xff744c94,
+ 0x0a029b1f,
+ 0x0ca2c060,
+ 0xc000b481,
+ 0x4c94b760,
+ 0x99ebfff4,
+ 0x4588b780,
+ 0x7534c01c,
+ 0x9104c000,
+ 0xb5458506,
+ 0x85025818,
+ 0x4598b540,
+ 0x4808b785,
+ 0xc0017500,
+ 0xb7809282,
+ 0xb720520c,
+ 0xda084510,
+ 0x9e4ca88d,
+ 0xc0017102,
+ 0xb7219044,
+ 0x0203548c,
+ 0x2a00c010,
+ 0xc0007500,
+ 0xc0209102,
+ 0xb5213880,
+ 0xfff4548c,
+ 0xb7819b5c,
+ 0xb725548c,
+ 0xb7205408,
+ 0x85024012,
+ 0x4518b540,
+ 0xb5250884,
+ 0xb5205408,
+ 0xc0184112,
+ 0xb5813a00,
+ 0xb780548c,
+ 0xc0104c8c,
+ 0xc0007500,
+ 0xfff49084,
+ 0xf9f89918,
+ 0x9c22aa1d,
+ 0xb780a61d,
+ 0xda085a0c,
+ 0xb720a882,
+ 0xd091598c,
+ 0x75002e10,
+ 0xc0040383,
+ 0xd0119282,
+ 0x85022e14,
+ 0x4e18b545,
+ 0xb5e10f82,
+ 0x75005314,
+ 0xb5458506,
+ 0xc0004818,
+ 0xb5459082,
+ 0xd1114898,
+ 0x75002e10,
+ 0x9082c000,
+ 0x4918b545,
+ 0xc0409e4c,
+ 0x75002a00,
+ 0x9082c000,
+ 0x4998b545,
+ 0x4908b785,
+ 0xb7c07500,
+ 0xc0025b14,
+ 0xc8099144,
+ 0xc7080a42,
+ 0xc8090a60,
+ 0xc7a408c2,
+ 0xc80908b0,
+ 0xc7f40cc2,
+ 0xc8090c90,
+ 0xc7c40942,
+ 0xc8090900,
+ 0xc7000d42,
+ 0xc8090d50,
+ 0xc88009c2,
+ 0xc8090990,
+ 0xc8ca0dc2,
+ 0xc8090da0,
+ 0xc9320c42,
+ 0xc8090c40,
+ 0xc6f40842,
+ 0xc8090820,
+ 0xc6f80ac2,
+ 0xc8090ae0,
+ 0xc6f40ec2,
+ 0xc8090ec0,
+ 0xc9340b42,
+ 0xf2100b40,
+ 0xf210a249,
+ 0xf210a0d1,
+ 0xf210a0d6,
+ 0xf210a159,
+ 0xf210a14e,
+ 0xf250a1dd,
+ 0xf250a1c2,
+ 0xf250a046,
+ 0xf210a049,
+ 0xf210a2c5,
+ 0xf250a2c2,
+ 0xf210a34d,
+ 0xd131aa4d,
+ 0x9eab0af8,
+ 0x9c629ea4,
+ 0x5a0cb780,
+ 0x5294b740,
+ 0x4092b5e0,
+ 0xa881da08,
+ 0xa921d208,
+ 0x0a70d231,
+ 0xa882f208,
+ 0x2880c010,
+ 0xd8107440,
+ 0xb521a14d,
+ 0xc0005594,
+ 0xb7819102,
+ 0xc040548c,
+ 0xb5813a00,
+ 0xb785548c,
+ 0x75004808,
+ 0x9042c005,
+ 0x548cb781,
+ 0x7d00c030,
+ 0x9082c000,
+ 0x9a93fff4,
+ 0x5214b720,
+ 0xaa65f2c8,
+ 0x434db720,
+ 0xb7c07048,
+ 0x06835b14,
+ 0x9102c000,
+ 0xaa4df250,
+ 0x09f8d132,
+ 0x9c629ea4,
+ 0x408ab720,
+ 0xb5418502,
+ 0x74407e98,
+ 0x7f18b541,
+ 0x7f98b541,
+ 0x90e2c000,
+ 0xaa35da10,
+ 0xc0007048,
+ 0xb7859344,
+ 0xda104888,
+ 0xf210a9b6,
+ 0x8502a8c9,
+ 0xb5407500,
+ 0x850a409a,
+ 0x8d24e001,
+ 0x1d849d4f,
+ 0x9c629e8c,
+ 0xaa51f210,
+ 0x9ea40d8a,
+ 0xc0009c62,
+ 0xf21090e0,
+ 0x0d86aa51,
+ 0x9c629ea4,
+ 0x548cb781,
+ 0x408ab720,
+ 0x530cb7a0,
+ 0xb5458502,
+ 0xc0085418,
+ 0xb5813a00,
+ 0xf210548c,
+ 0x9eabaa41,
+ 0xb5200884,
+ 0x9ea4408a,
+ 0xb7209c62,
+ 0xb780560c,
+ 0x75004129,
+ 0xc0000303,
+ 0xf20892e4,
+ 0xf210a9a1,
+ 0x0d82a85d,
+ 0x9c629e84,
+ 0xa021f208,
+ 0xa845f250,
+ 0x09829eab,
+ 0x9c629e84,
+ 0xaa21da08,
+ 0x678ab582,
+ 0x9180c000,
+ 0x540cb720,
+ 0xaa29d210,
+ 0x44bbb740,
+ 0x8021f310,
+ 0x44abb580,
+ 0xa8c9d208,
+ 0xc0007440,
+ 0xb7809122,
+ 0x8506448c,
+ 0xa117f208,
+ 0x90c0c000,
+ 0x448cb780,
+ 0xa095f208,
+ 0x528cb720,
+ 0x41abb780,
+ 0x678ab582,
+ 0x400ab580,
+ 0x410ab580,
+ 0x9100c000,
+ 0x448cb780,
+ 0xa899da08,
+ 0x410ab520,
+ 0x7e6eb79f,
+ 0x7eeeb7bf,
+ 0x7f6eb7df,
+ 0x7feeb7ff,
+ 0x8c00c002,
+ 0xb7809c22,
+ 0xf034418a,
+ 0x85021d38,
+ 0x506cb322,
+ 0x7d3edffc,
+ 0xb7609e2a,
+ 0xc0005c04,
+ 0x0a4a9364,
+ 0x0c9ec034,
+ 0xc000b481,
+ 0x5c1cb740,
+ 0xc0109dc7,
+ 0x9e59aa69,
+ 0x0cdac082,
+ 0x5a20c200,
+ 0xb4813218,
+ 0x08bec000,
+ 0x0c9ec034,
+ 0xc000b421,
+ 0x5c04b760,
+ 0x5b9cb740,
+ 0xc0209e2d,
+ 0xba12a96d,
+ 0xd0714000,
+ 0xc0366a21,
+ 0xc2000cfa,
+ 0x58f158ff,
+ 0xc2000242,
+ 0xc2005a13,
+ 0x31285a20,
+ 0xc000b441,
+ 0xc0109de4,
+ 0x9e59aa69,
+ 0x0cfec036,
+ 0x5a20c200,
+ 0xb4813218,
+ 0x9c22c000,
+ 0x9c220802,
+ 0x528cb780,
+ 0xda088502,
+ 0xf010a88d,
+ 0xf010a16b,
+ 0xf010a16f,
+ 0xd810a173,
+ 0xd810a16f,
+ 0xf010a16b,
+ 0x9c22a0e1,
+ 0x5394b720,
+ 0xa8e9d810,
+ 0x414bb520,
+ 0xaa71f010,
+ 0x540cb740,
+ 0x5a0fc200,
+ 0xa245f048,
+ 0xa8edf010,
+ 0x41cdb520,
+ 0xaa69f010,
+ 0x414db580,
+ 0xa96ff010,
+ 0xa869f010,
+ 0x8021e210,
+ 0xa041f008,
+ 0xc0309c22,
+ 0xb740ac7d,
+ 0xc038521c,
+ 0xc030a45d,
+ 0xc038ac7d,
+ 0xc030a45d,
+ 0xc038ac7d,
+ 0xb720a45d,
+ 0xb7805194,
+ 0x8706528c,
+ 0x560cb720,
+ 0x8576c002,
+ 0xa108d28a,
+ 0x475bb540,
+ 0xb5408502,
+ 0xb5404039,
+ 0x9c2240a1,
+ 0x8440a61d,
+ 0x4888b785,
+ 0x07877500,
+ 0x93c2c000,
+ 0x5214b720,
+ 0x4149b720,
+ 0x2a1ed3f1,
+ 0x7524c004,
+ 0xd0030902,
+ 0x9e4f1922,
+ 0x42440a7f,
+ 0xb55f8752,
+ 0x8f387e64,
+ 0x7ee4b55f,
+ 0xb55f8f0c,
+ 0x20947f64,
+ 0x2a44c002,
+ 0x9340c000,
+ 0x5214b720,
+ 0x4149b720,
+ 0x2a1ed3f1,
+ 0x0902753c,
+ 0x1922d003,
+ 0x0a7f9e4f,
+ 0x87324244,
+ 0x7e64b55f,
+ 0xb55f8f20,
+ 0x8f087ee4,
+ 0x7f64b55f,
+ 0x2a742094,
+ 0xb5203098,
+ 0xb7c04149,
+ 0xb7a0528c,
+ 0xb7a0518c,
+ 0xd0115694,
+ 0x85020e72,
+ 0xa8cdf248,
+ 0xf2080109,
+ 0xf210a127,
+ 0xf248a22d,
+ 0xf208a0a1,
+ 0x0189aa6d,
+ 0x59ffd224,
+ 0xc0540d02,
+ 0x097f992b,
+ 0x01819e92,
+ 0xc0540581,
+ 0xf2089925,
+ 0x9eaeaa35,
+ 0xd2240089,
+ 0x720258ff,
+ 0xc0009e6b,
+ 0xc00090fa,
+ 0x700290e4,
+ 0x9094c000,
+ 0xa055f210,
+ 0xa967f008,
+ 0xaa65f248,
+ 0xa949f208,
+ 0x8021f310,
+ 0x5908d124,
+ 0xd2240089,
+ 0x769c58ff,
+ 0xa0e9f808,
+ 0x90b2c000,
+ 0xc000850a,
+ 0xc10091e0,
+ 0x751c5a04,
+ 0x90b2c000,
+ 0xc000850e,
+ 0xc00490e0,
+ 0x850a7698,
+ 0x8d22e009,
+ 0xaa79f208,
+ 0xa8d5f210,
+ 0xc3011209,
+ 0x58906245,
+ 0xc0007048,
+ 0xd2d09236,
+ 0x7500aa45,
+ 0x9184c000,
+ 0xaa59da50,
+ 0xd2d08506,
+ 0x0a04a147,
+ 0xa259da50,
+ 0x93e0c000,
+ 0xa8f9f208,
+ 0xaa55f210,
+ 0x6095c301,
+ 0x5a0cc200,
+ 0xc0007102,
+ 0xd2d0923c,
+ 0x7500aa45,
+ 0x9184c000,
+ 0xaa59da50,
+ 0xd2d08506,
+ 0x1a04a147,
+ 0xa259da50,
+ 0x90a0c000,
+ 0xd2d08502,
+ 0xda50a147,
+ 0xba24aa59,
+ 0xc0044002,
+ 0xc000752a,
+ 0xc00290da,
+ 0xc000855a,
+ 0xc0089100,
+ 0xc0007502,
+ 0xc00490dc,
+ 0xda508506,
+ 0xda50a15b,
+ 0xf008a8d9,
+ 0xf208aa6d,
+ 0xba09a8ee,
+ 0x62434002,
+ 0x5414b740,
+ 0x85029e49,
+ 0xd0506243,
+ 0xc002a959,
+ 0xd2280a00,
+ 0x74825919,
+ 0xa167f008,
+ 0xc0000685,
+ 0xf21090c4,
+ 0xc000aa55,
+ 0xf21092a0,
+ 0xf208a8d6,
+ 0xd0a2aa79,
+ 0x12095c90,
+ 0xc0007048,
+ 0x764090b8,
+ 0x91dcc000,
+ 0x5d04d0a6,
+ 0x802bf210,
+ 0x5a13c200,
+ 0x8a21f310,
+ 0xa265f008,
+ 0x9080c000,
+ 0xa164f00a,
+ 0xaa49f208,
+ 0x75020a04,
+ 0xa3eaf008,
+ 0xa249f208,
+ 0x9144c000,
+ 0xaa61d208,
+ 0xa265dac8,
+ 0xa251da48,
+ 0x9000c009,
+ 0xaa31d250,
+ 0xc0007500,
+ 0xd2509184,
+ 0x7500aa39,
+ 0x9142c000,
+ 0xaa41da88,
+ 0xc0007504,
+ 0x850690b4,
+ 0x9060c000,
+ 0xd2888502,
+ 0xda08a153,
+ 0xf208a94b,
+ 0xf252a9cd,
+ 0xd0b1a954,
+ 0xe2100af0,
+ 0xd20889a7,
+ 0xd1a4a922,
+ 0xe0205987,
+ 0x5d0483a7,
+ 0xc03455eb,
+ 0xf2089bc5,
+ 0xf250a9ca,
+ 0xd011aa45,
+ 0x85021cb4,
+ 0xd20860c3,
+ 0xf250a8a2,
+ 0x1d84a157,
+ 0xd0309e5b,
+ 0x5d850102,
+ 0x81afe220,
+ 0xf2500503,
+ 0x55e7a1c6,
+ 0x9bacc034,
+ 0xaa31d250,
+ 0xf2507500,
+ 0xc001a045,
+ 0xda4890e2,
+ 0x7500aa55,
+ 0xa957da48,
+ 0x9102c000,
+ 0xaa41da88,
+ 0x5a40e200,
+ 0x9144c000,
+ 0x530cb780,
+ 0xa881da08,
+ 0xa0e1dac8,
+ 0x90e0c001,
+ 0x5a45c200,
+ 0x8021f310,
+ 0xa261dac8,
+ 0xa9e2dac8,
+ 0xa9c1da88,
+ 0xc0340d02,
+ 0x18049b83,
+ 0x92a0c000,
+ 0xaa49da08,
+ 0xa927da50,
+ 0x5a40c200,
+ 0x5a45c200,
+ 0x8021f310,
+ 0xa261dac8,
+ 0xa9e2dac8,
+ 0xa9c9da08,
+ 0xc0340d02,
+ 0xdac89b6d,
+ 0xd031a061,
+ 0xd2240e72,
+ 0x76c25993,
+ 0xaa49f208,
+ 0xd00d0d82,
+ 0x75040db2,
+ 0x9094c001,
+ 0xa8e2dac8,
+ 0xa8d1da48,
+ 0x0e14d011,
+ 0xc0007048,
+ 0xda10913a,
+ 0xd011a941,
+ 0x70881a14,
+ 0x90d6c000,
+ 0x1e12d011,
+ 0x91c0c000,
+ 0x1e14d011,
+ 0xc0007048,
+ 0xd01190f8,
+ 0x70880a14,
+ 0x90dcc000,
+ 0x0e12d011,
+ 0xa261dac8,
+ 0xa963dac8,
+ 0x882ff210,
+ 0xa261dac8,
+ 0xa8e1dac8,
+ 0x7e7cb75f,
+ 0xc0007075,
+ 0xda109298,
+ 0xd011a8c2,
+ 0x70481e14,
+ 0x0a12d00e,
+ 0x913cc000,
+ 0x0e14d011,
+ 0xc0007048,
+ 0xd01190dc,
+ 0xdac81a12,
+ 0xf208a261,
+ 0x7504aa49,
+ 0x9034c001,
+ 0xaa6dd208,
+ 0xc000752c,
+ 0xda109392,
+ 0xb75fa943,
+ 0xda487ee4,
+ 0xe010aa5d,
+ 0xba2488a5,
+ 0x71024002,
+ 0x91f6c000,
+ 0x7f64b75f,
+ 0xa8e1dac8,
+ 0x8825f010,
+ 0xc0007048,
+ 0xd01190dc,
+ 0xdac81a14,
+ 0xd208a261,
+ 0xdac8a969,
+ 0x7104aa61,
+ 0xa8e1dac8,
+ 0xd00a0a02,
+ 0x9ea21a42,
+ 0xa8e6d208,
+ 0x4d7d2098,
+ 0x21289e54,
+ 0x9e4a3094,
+ 0x5a40c080,
+ 0x5a41c200,
+ 0x09027088,
+ 0x1922d004,
+ 0x42440a7f,
+ 0x20989e92,
+ 0x24949d19,
+ 0x3494c301,
+ 0xa0e2dac8,
+ 0xa0e6dac8,
+ 0xa0d2da48,
+ 0xdac88502,
+ 0x8706aa65,
+ 0xa148d28a,
+ 0xa14ff208,
+ 0xa133d250,
+ 0xa13bd250,
+ 0xa15bd288,
+ 0xa137d250,
+ 0xa15fd288,
+ 0xa127da50,
+ 0xa14bda08,
+ 0xa157da48,
+ 0xa143da88,
+ 0xa25dda48,
+ 0x7d6eb79f,
+ 0x7deeb7bf,
+ 0x7e6eb7df,
+ 0x7eeeb7ff,
+ 0x8c40c002,
+ 0xa60d9c22,
+ 0x540cb7c0,
+ 0x528cb780,
+ 0x5394b7c0,
+ 0x76c20802,
+ 0xa182f208,
+ 0xc0030289,
+ 0xb7a09044,
+ 0xf2485194,
+ 0xda10a045,
+ 0xf210a049,
+ 0xf210a9b6,
+ 0x0d02a9a5,
+ 0xc0345d84,
+ 0xda089a8d,
+ 0x0a22a8aa,
+ 0x7008c010,
+ 0xc01208c3,
+ 0x76407002,
+ 0x92e2c000,
+ 0x520cb780,
+ 0xa88df208,
+ 0xa8a6f210,
+ 0x5914d0a6,
+ 0x88a3e210,
+ 0x5d04d0a6,
+ 0xc2015897,
+ 0xe210812a,
+ 0x088880a3,
+ 0xf248588b,
+ 0xf210a0b1,
+ 0xd226aa25,
+ 0xf3105904,
+ 0xf2488021,
+ 0xd224a8b1,
+ 0x9e4c5889,
+ 0xb3117102,
+ 0x9e894828,
+ 0xa0b2f248,
+ 0xaa51d248,
+ 0xc0007500,
+ 0xd24891e2,
+ 0x7500aa59,
+ 0x9144c000,
+ 0x5d0cd0a6,
+ 0x802bf210,
+ 0x5a0fc200,
+ 0xa231f248,
+ 0xa8b1f248,
+ 0x568cb740,
+ 0xf0086211,
+ 0xc200a8da,
+ 0x10985a17,
+ 0xc4109e8a,
+ 0xf2487244,
+ 0x8502a0b2,
+ 0xa14bf210,
+ 0xa14ff210,
+ 0xa143f208,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0xb720a61d,
+ 0xb7e05694,
+ 0xb740540c,
+ 0xf20840dd,
+ 0x9e9daa61,
+ 0x8821f310,
+ 0x5284b760,
+ 0x40cdb580,
+ 0xaa29d210,
+ 0xa265d080,
+ 0xa8a9d210,
+ 0x74429e4d,
+ 0xb4279e5c,
+ 0xb7c04622,
+ 0xb7c05214,
+ 0xf20a518c,
+ 0xf210a960,
+ 0xf208aa4d,
+ 0xf040a957,
+ 0xf310a9f7,
+ 0xe3108a21,
+ 0xf31080a1,
+ 0xde018031,
+ 0xf0407440,
+ 0xf208a275,
+ 0xc000a0d5,
+ 0xcf0190d6,
+ 0xf2080a02,
+ 0xf210a255,
+ 0xf208a94f,
+ 0xf310aa61,
+ 0xfa088821,
+ 0x0089a829,
+ 0x58ffd224,
+ 0x0002e000,
+ 0xd0030402,
+ 0xd0220c02,
+ 0xc0005e0c,
+ 0xd02058f5,
+ 0xc0003118,
+ 0xe000590c,
+ 0x15201120,
+ 0x1d22d003,
+ 0x5cf4d122,
+ 0x5a0dc100,
+ 0xf0003198,
+ 0x0087aa61,
+ 0x58ffd1a4,
+ 0xfa087504,
+ 0xfa08a029,
+ 0xc000a0ad,
+ 0xd0b19344,
+ 0xd2080e60,
+ 0xf208a882,
+ 0xf208a9a9,
+ 0x9e4ca8a5,
+ 0x5985d1a4,
+ 0x5133d026,
+ 0x81afe220,
+ 0xf2080503,
+ 0xc034a1c6,
+ 0xf20899b1,
+ 0xc001a045,
+ 0xf2089320,
+ 0xd800aa29,
+ 0x8502a8e9,
+ 0xa16fd080,
+ 0xf2081a04,
+ 0x0884a229,
+ 0xa0e9d800,
+ 0xa8a2d210,
+ 0xc0017640,
+ 0xf21090e4,
+ 0xf040aa5d,
+ 0x6a36a8f5,
+ 0x5a13c200,
+ 0xc0007048,
+ 0x8506929c,
+ 0xa12bd210,
+ 0xaa29f208,
+ 0xc0007500,
+ 0xd21091c2,
+ 0xda48aa49,
+ 0xf310a967,
+ 0xda488021,
+ 0xc000a265,
+ 0xd2109080,
+ 0xf208a0aa,
+ 0x7500aa29,
+ 0x9084c000,
+ 0xa229d210,
+ 0x7e6eb79f,
+ 0x7eeeb7bf,
+ 0x7f6eb7df,
+ 0x7feeb7ff,
+ 0x8c00c002,
+ 0xb7809c22,
+ 0xb720540c,
+ 0xf208528c,
+ 0xb720a903,
+ 0x9e8a4035,
+ 0x812fe210,
+ 0x01897642,
+ 0xa101f208,
+ 0x9144c008,
+ 0xaa49d810,
+ 0xc0007500,
+ 0xd09090e2,
+ 0x76c0a9ce,
+ 0x91c2c000,
+ 0x538cb780,
+ 0x518cb720,
+ 0xa88ada08,
+ 0x00039ea0,
+ 0x46b3b520,
+ 0x9220c001,
+ 0x5394b720,
+ 0x520cb720,
+ 0x414bb780,
+ 0x412bb740,
+ 0xd0116a14,
+ 0x710268a6,
+ 0x518cb700,
+ 0xc0000403,
+ 0xb78091bc,
+ 0xb72046aa,
+ 0xba24414a,
+ 0x6a164002,
+ 0x70485888,
+ 0x917ac000,
+ 0x414ab720,
+ 0x6a26d3f1,
+ 0x5a23c200,
+ 0xc0007048,
+ 0x8506915c,
+ 0xa177d048,
+ 0xd090850e,
+ 0xc000a14b,
+ 0xd0489080,
+ 0xb780a1f6,
+ 0xf208568c,
+ 0x747ca88d,
+ 0x93b2c004,
+ 0xaa49f010,
+ 0xc0007502,
+ 0xd8109364,
+ 0x7500aa49,
+ 0x90e2c000,
+ 0xaa4dd090,
+ 0xc0007500,
+ 0xf0489222,
+ 0x8502a8e5,
+ 0xa157d090,
+ 0x412cb520,
+ 0x414ab780,
+ 0x40aab580,
+ 0xa15bd090,
+ 0x93e0c003,
+ 0xa8dad090,
+ 0xc0007640,
+ 0xb7809342,
+ 0xb72040aa,
+ 0xba24414a,
+ 0x688c4002,
+ 0xc2000242,
+ 0xb5805a0b,
+ 0xf04840aa,
+ 0x8502a8e5,
+ 0x412cb520,
+ 0xa15bd090,
+ 0xd0908506,
+ 0xc003a157,
+ 0xb7409040,
+ 0xd090520c,
+ 0xb720a0d6,
+ 0xd808414a,
+ 0x68a8aa49,
+ 0x70486a24,
+ 0x925cc001,
+ 0x40aab780,
+ 0x414ab720,
+ 0x4002ba24,
+ 0x58846a0e,
+ 0xc0017048,
+ 0xb78090fc,
+ 0xf048412c,
+ 0xd226a8e5,
+ 0xf3105904,
+ 0x70488021,
+ 0x939cc000,
+ 0xd0908506,
+ 0xd090a15b,
+ 0xd808a15f,
+ 0xd048aa55,
+ 0xd810a173,
+ 0x6a14a8c9,
+ 0x5a0fc200,
+ 0xd8507048,
+ 0xd890a0d6,
+ 0xc000a0c2,
+ 0x8502907a,
+ 0xa17bd048,
+ 0x90a0c001,
+ 0xaa75d048,
+ 0x85027500,
+ 0xa15bd090,
+ 0x93a4c000,
+ 0x40aab780,
+ 0x414ab720,
+ 0x4002ba24,
+ 0x6947d013,
+ 0x80a3e210,
+ 0x4134b720,
+ 0xb520588b,
+ 0xf04840aa,
+ 0xd0a6aa65,
+ 0xc2015d04,
+ 0xf310812a,
+ 0xc2008021,
+ 0xb5805a0b,
+ 0xb780412c,
+ 0xb580414a,
+ 0xd09046aa,
+ 0x7440a8dd,
+ 0x9202c000,
+ 0xaa71d048,
+ 0x85067500,
+ 0x9102c000,
+ 0xaa79d048,
+ 0xc0007500,
+ 0x850e9064,
+ 0xa14bd090,
+ 0xaa49d810,
+ 0xb3407500,
+ 0xb78048a4,
+ 0xb580414c,
+ 0x9c2245ac,
+ 0xb3407644,
+ 0xc00348a4,
+ 0xc0017486,
+ 0xb78590ba,
+ 0x75004888,
+ 0x9102c000,
+ 0x5214b720,
+ 0x5c84b740,
+ 0x90c0c000,
+ 0x5214b720,
+ 0x5d04b740,
+ 0x4ccbb720,
+ 0xd0a69e2d,
+ 0xc8305904,
+ 0xb720aa4d,
+ 0x6229518c,
+ 0x00030583,
+ 0x41adb580,
+ 0x41acb780,
+ 0x5a37c200,
+ 0x92a0c001,
+ 0x518cb700,
+ 0x5214b760,
+ 0x5a4bc100,
+ 0xb7257500,
+ 0x09024888,
+ 0x911cc000,
+ 0x5a07c200,
+ 0x09047500,
+ 0x939affff,
+ 0x7c7ec01c,
+ 0x9102c000,
+ 0xaa65d8d0,
+ 0x5c84b740,
+ 0x90c0c000,
+ 0xaa65d8d0,
+ 0x5d04b740,
+ 0x5904d226,
+ 0xc8309e2d,
+ 0xf008a8ce,
+ 0x9e4ca8e1,
+ 0x609950ab,
+ 0x41acb520,
+ 0x41acb780,
+ 0xe2108536,
+ 0xc20088a5,
+ 0xb5805207,
+ 0xf01041ac,
+ 0x7502aa49,
+ 0x90e4c000,
+ 0x41acb780,
+ 0x422cb580,
+ 0xd0909c22,
+ 0x74c0a9d1,
+ 0x90c4c005,
+ 0x422cb740,
+ 0x41b4b720,
+ 0x590cd126,
+ 0x5c88d0a2,
+ 0x8825f210,
+ 0xc0007048,
+ 0xd0a69176,
+ 0xe2105d0c,
+ 0xc10088ab,
+ 0x70485a08,
+ 0x919ac004,
+ 0x85869e49,
+ 0xd0907044,
+ 0xd090a1cf,
+ 0xc002a1df,
+ 0xc100903c,
+ 0x70485a04,
+ 0x90f6c000,
+ 0x5e04d0a2,
+ 0xc0007104,
+ 0xb720937a,
+ 0xb720472a,
+ 0x08985694,
+ 0x472ab520,
+ 0x41cdb780,
+ 0xa8edf010,
+ 0x40c5b740,
+ 0x0a206243,
+ 0x5a11c200,
+ 0x8221f310,
+ 0xd090851a,
+ 0x850ea14b,
+ 0x9340c002,
+ 0x472ab720,
+ 0x5694b720,
+ 0xb5200888,
+ 0xb780472a,
+ 0xf01041cd,
+ 0xb740a8ed,
+ 0x624340c5,
+ 0xc2000a40,
+ 0xf3105a15,
+ 0x850e8221,
+ 0xa14bd090,
+ 0x40cdb580,
+ 0x4c38b560,
+ 0x9340fffc,
+ 0xc1009e49,
+ 0x70485a04,
+ 0x90f6c000,
+ 0x5e04d0a2,
+ 0xc0007104,
+ 0xb720937a,
+ 0xb720472a,
+ 0x18885694,
+ 0x472ab520,
+ 0x41cdb780,
+ 0xa8edf010,
+ 0x40c5b740,
+ 0x0a406243,
+ 0x5a15c200,
+ 0x8a21f310,
+ 0xd090851a,
+ 0x857ba14b,
+ 0x9340c000,
+ 0x472ab720,
+ 0x5694b720,
+ 0xb5201884,
+ 0xb780472a,
+ 0xf01041cd,
+ 0xb740a8ed,
+ 0x624340c5,
+ 0x0a00c002,
+ 0x5a19c200,
+ 0x8a21f310,
+ 0xd090850e,
+ 0x857fa14b,
+ 0x40cdb580,
+ 0x4c38b540,
+ 0x9300fffa,
+ 0xa1cdd090,
+ 0x9280fffa,
+ 0xd0908502,
+ 0xfffaa14f,
+ 0xa60d91e0,
+ 0x528cb780,
+ 0xa881f208,
+ 0x74449ea5,
+ 0x03010007,
+ 0x9104c000,
+ 0x520cb780,
+ 0xa805dac8,
+ 0x9240c008,
+ 0xc0087442,
+ 0xda1091e4,
+ 0x7500aa29,
+ 0x9344c000,
+ 0xaa2dd290,
+ 0xc0007500,
+ 0xd29092a4,
+ 0xb720aa25,
+ 0xb720520c,
+ 0x75005414,
+ 0x4cabb700,
+ 0x44dbb740,
+ 0x8526e002,
+ 0x8021f210,
+ 0x44cbb580,
+ 0x9240c007,
+ 0xaa2dd290,
+ 0xc0017500,
+ 0xb7809382,
+ 0xb740518c,
+ 0xd290520c,
+ 0xb760a926,
+ 0xd2c85414,
+ 0xd008a881,
+ 0xd008a9c5,
+ 0x7680a8ca,
+ 0x4000ba09,
+ 0x9e490002,
+ 0xa967d850,
+ 0x0a02d011,
+ 0x4422b304,
+ 0xc0100009,
+ 0xcc127002,
+ 0x768070c0,
+ 0x00070407,
+ 0x8526e002,
+ 0x8021f210,
+ 0xa265d850,
+ 0x4648b780,
+ 0xc0007500,
+ 0xda5091a2,
+ 0xda90a937,
+ 0xe210aa21,
+ 0x0a0480a7,
+ 0xa221da90,
+ 0xa0b5da50,
+ 0xc0050007,
+ 0xd2909260,
+ 0x7500aa39,
+ 0x91a2c001,
+ 0x520cb780,
+ 0xa881d208,
+ 0xa88ad208,
+ 0xa905d208,
+ 0x0812d011,
+ 0xd2909e49,
+ 0xc010aa25,
+ 0xb7207002,
+ 0xc812540c,
+ 0x75007080,
+ 0xb7400005,
+ 0xe00244bb,
+ 0xf2108526,
+ 0xda508021,
+ 0xb580a937,
+ 0xda9044ab,
+ 0xf210a8a1,
+ 0x00058025,
+ 0xda900884,
+ 0xda50a0a1,
+ 0xc004a235,
+ 0xb7809060,
+ 0xf250518c,
+ 0xf248a8b1,
+ 0x7440a991,
+ 0xf2489ea6,
+ 0xc000a189,
+ 0xb7209316,
+ 0xb780540c,
+ 0x75004729,
+ 0xd0029e88,
+ 0xc0000802,
+ 0xd29090a4,
+ 0x0008aa29,
+ 0x520cb780,
+ 0xa889d208,
+ 0xc0100289,
+ 0xc0017040,
+ 0xb7a09280,
+ 0xd0b1520c,
+ 0xd2080a50,
+ 0xf250a882,
+ 0x1196a929,
+ 0xa8adf208,
+ 0x9e4c5c85,
+ 0xcc12588b,
+ 0x515070c2,
+ 0xd12651f3,
+ 0xd1a45914,
+ 0xe2205987,
+ 0x0d0281af,
+ 0xa129f250,
+ 0x9a5cc014,
+ 0x4888b785,
+ 0xc0007500,
+ 0x9e8390e2,
+ 0x9a7ec014,
+ 0x9060c000,
+ 0xd2905819,
+ 0xb700aa29,
+ 0x00e85414,
+ 0x7002c010,
+ 0xc0121268,
+ 0xd2907100,
+ 0xd208a8a6,
+ 0x7640a8a9,
+ 0xaaa5d208,
+ 0x0a02d011,
+ 0x4422b304,
+ 0xc0100009,
+ 0xd4127040,
+ 0x76407140,
+ 0x44dab740,
+ 0xe002000b,
+ 0xe2108526,
+ 0xb78080a1,
+ 0x75004648,
+ 0x44cab520,
+ 0x91a2c000,
+ 0xa937da50,
+ 0xaa21da90,
+ 0x80a3e310,
+ 0xda900a04,
+ 0xda50a221,
+ 0xda10a0b5,
+ 0x000ba2c1,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0xb720a60d,
+ 0xb780528c,
+ 0x7502402d,
+ 0xc00c9e8d,
+ 0xb7809264,
+ 0xf208538c,
+ 0xc003a88e,
+ 0x9ea27646,
+ 0x911ac001,
+ 0x4888b785,
+ 0xc0007500,
+ 0xb7809102,
+ 0xb740530c,
+ 0xc0005c84,
+ 0xb78090c0,
+ 0xb740530c,
+ 0xf2085d04,
+ 0x9e2da881,
+ 0x5904d0a6,
+ 0xaa4dc830,
+ 0x62199e49,
+ 0x5817d224,
+ 0x520cb780,
+ 0x08c0d0b1,
+ 0x4031b720,
+ 0xb7c09ea6,
+ 0x5407518c,
+ 0x9300c001,
+ 0x5214b7c0,
+ 0x518cb7c0,
+ 0x5e4bd0a2,
+ 0x4888b725,
+ 0xb7207500,
+ 0x09025314,
+ 0x911cc000,
+ 0x5a07c200,
+ 0x09047500,
+ 0x939affff,
+ 0x7c7ec01c,
+ 0x9102c000,
+ 0x404db780,
+ 0x5c84b740,
+ 0x90c0c000,
+ 0x404db780,
+ 0x5d04b740,
+ 0x5904d226,
+ 0xc8309e2d,
+ 0xf010a8ce,
+ 0x9e4ca8cd,
+ 0x609950ab,
+ 0x5817d0a4,
+ 0x0e60d0b1,
+ 0xa881d208,
+ 0x54079e89,
+ 0x54049e91,
+ 0xaa29da10,
+ 0xc0007500,
+ 0xd29090e2,
+ 0x7500aa2d,
+ 0x92c2c000,
+ 0xa957f248,
+ 0x8029f210,
+ 0xa255f248,
+ 0xa026f250,
+ 0xa02af250,
+ 0xa042f248,
+ 0xaa49f010,
+ 0xa24df248,
+ 0xa251f248,
+ 0x9300c007,
+ 0xaa39d290,
+ 0xc0077500,
+ 0xb72091c4,
+ 0xb780540c,
+ 0x750046a9,
+ 0xc0079e89,
+ 0xf24890c4,
+ 0xf210a957,
+ 0xf2488029,
+ 0xd290a255,
+ 0x7440a8b5,
+ 0x90c2c000,
+ 0xaa49f010,
+ 0x9240c000,
+ 0xa8cdf248,
+ 0xaa49f010,
+ 0x5908d0a6,
+ 0x8123e240,
+ 0x5904d226,
+ 0x8021f310,
+ 0x8221f310,
+ 0x5a0dc200,
+ 0xa24df248,
+ 0xaa4df248,
+ 0xa251f248,
+ 0xa8b5d290,
+ 0xc0007440,
+ 0xf2509102,
+ 0xf250a026,
+ 0xc005a02a,
+ 0xb7809360,
+ 0x75004649,
+ 0x90e2c001,
+ 0xa8a2da90,
+ 0xa925f250,
+ 0xaa21da90,
+ 0x9d1e1c84,
+ 0x0ce0d0b1,
+ 0x6127d333,
+ 0x4031b760,
+ 0x5a40c200,
+ 0x5a45c200,
+ 0x8128c201,
+ 0x8021f310,
+ 0xda909ea1,
+ 0x0507a9a1,
+ 0xa225f250,
+ 0xc01455af,
+ 0xf2509925,
+ 0xf250a025,
+ 0xc004a029,
+ 0xda109220,
+ 0xf210a92b,
+ 0xf250aa2d,
+ 0xe310a8a6,
+ 0x9e4a88a1,
+ 0xa928da12,
+ 0x18848185,
+ 0x6122d033,
+ 0x88b1f310,
+ 0x8a21f310,
+ 0x7540c008,
+ 0x5a07c200,
+ 0x8128c201,
+ 0x8021f310,
+ 0xa225f250,
+ 0x91bcc000,
+ 0xc0149eab,
+ 0xf250994b,
+ 0xc200aa25,
+ 0xc20052a3,
+ 0xf2505203,
+ 0xb740a225,
+ 0xf2505d84,
+ 0xd2a6aa25,
+ 0x9e2d5904,
+ 0xa8cdc830,
+ 0xd2240189,
+ 0x0c8259ff,
+ 0x05030103,
+ 0x9952c014,
+ 0x5e1cb740,
+ 0xc2109d47,
+ 0x0181a926,
+ 0xc0140581,
+ 0xf210992e,
+ 0x7502aa29,
+ 0xa025f250,
+ 0x90c4c000,
+ 0xa029f250,
+ 0x9040c002,
+ 0xa8aada10,
+ 0xa954da12,
+ 0x5c84d0a2,
+ 0x8e22f011,
+ 0xc0007048,
+ 0xf2489176,
+ 0x0208aa41,
+ 0x5a07c200,
+ 0xa229f250,
+ 0x91c0c001,
+ 0xa8c1f248,
+ 0x0e12d011,
+ 0xf3109e4a,
+ 0xd0338a21,
+ 0x60996104,
+ 0x8122c201,
+ 0xa12bf250,
+ 0xaa55da10,
+ 0x0ce0d0b1,
+ 0xc2001a04,
+ 0xf3105a07,
+ 0xb7608021,
+ 0xf2504031,
+ 0xda10a229,
+ 0x9ea1a9d5,
+ 0x55af0507,
+ 0xc0141984,
+ 0xf2509899,
+ 0xc000a029,
+ 0xf21090e0,
+ 0x0a04aa2d,
+ 0xa22df210,
+ 0xa8c5f248,
+ 0xaa29f210,
+ 0xa8aaf250,
+ 0x5904d0a6,
+ 0xc2017502,
+ 0xf2108122,
+ 0xf250802b,
+ 0xc200a0ae,
+ 0xc000588b,
+ 0x9e4a90f4,
+ 0x7044d010,
+ 0xa229f250,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x528cb720,
+ 0xaa61d810,
+ 0xb5800802,
+ 0x9c2241ab,
+ 0x520cb740,
+ 0x5694b720,
+ 0xa96cf012,
+ 0xaa4df008,
+ 0x414db720,
+ 0x40ddb740,
+ 0x8a21f310,
+ 0xf3106243,
+ 0xb5808021,
+ 0xf01040cd,
+ 0xf008a8ed,
+ 0x9c22a0cd,
+ 0x4001ba1b,
+ 0x76d6c004,
+ 0x90bcc000,
+ 0x0862c024,
+ 0xc0049c22,
+ 0xc00076c6,
+ 0xd09190fc,
+ 0xc0041c36,
+ 0x9c22681a,
+ 0x9c220852,
+ 0x5b9cb740,
+ 0x4001ba1b,
+ 0x9e591db0,
+ 0xc0120a02,
+ 0x9d537048,
+ 0xc0409e99,
+ 0x7642a885,
+ 0x4000ba01,
+ 0x91a2c000,
+ 0x90a6c000,
+ 0xc0007644,
+ 0x08029082,
+ 0xc0009c22,
+ 0xba045a04,
+ 0xd0264002,
+ 0xc000590c,
+ 0xf3105a08,
+ 0xba048021,
+ 0x9c224002,
+ 0x9ea10a02,
+ 0x5b9cb740,
+ 0x4001ba1b,
+ 0xcc121db0,
+ 0x9dc772c2,
+ 0xa9eac010,
+ 0x4001ba1b,
+ 0x5d18d1a6,
+ 0xe2105d88,
+ 0x9c22882f,
+ 0x74c0c008,
+ 0x9e529e58,
+ 0x90fcc000,
+ 0x70c0d002,
+ 0x51f31a14,
+ 0xc0055013,
+ 0xc0007400,
+ 0xd00290fc,
+ 0x1a507000,
+ 0x01285013,
+ 0x5d84b740,
+ 0x5e0cb780,
+ 0x5904d1a6,
+ 0xc0409e2d,
+ 0xc830a8e5,
+ 0x7044aa4d,
+ 0xd01d6009,
+ 0xd01a1214,
+ 0xb3405013,
+ 0x122248ba,
+ 0x9c225010,
+ 0x75269e5c,
+ 0xd01e0882,
+ 0xb3404000,
+ 0xc38048bc,
+ 0xc0007500,
+ 0xc00290bc,
+ 0x9c22084e,
+ 0x7508c004,
+ 0x915cc000,
+ 0xc2000a04,
+ 0xc0045a07,
+ 0x08847508,
+ 0x935affff,
+ 0x5e9cb740,
+ 0xc2209d4b,
+ 0xd013a805,
+ 0xe210691d,
+ 0x9c228021,
+ 0x72c0c002,
+ 0x1c0ad011,
+ 0xe0009c22,
+ 0xb3300d00,
+ 0xb3304422,
+ 0xb3404842,
+ 0xc00248a2,
+ 0xf2108502,
+ 0x7500882d,
+ 0x90fac000,
+ 0x0c029e59,
+ 0x50311209,
+ 0x9e5a9c22,
+ 0x9e5250d0,
+ 0x52695469,
+ 0x9c223042,
+ 0x0007a685,
+ 0x9e909e81,
+ 0x2cfccffe,
+ 0x9e4c9e41,
+ 0x64915c41,
+ 0x28fccffe,
+ 0x584162c3,
+ 0x60839e44,
+ 0xc2806009,
+ 0x9ea05a41,
+ 0x9e880490,
+ 0x04909d09,
+ 0x71029e4c,
+ 0x8504c001,
+ 0x5e41d0a2,
+ 0x4468b302,
+ 0x8121f320,
+ 0x5d40d0a6,
+ 0x2afccffe,
+ 0x8123f310,
+ 0x040d000d,
+ 0xd0339e54,
+ 0x9e5c6138,
+ 0xe2106145,
+ 0x9e918125,
+ 0xb7bf0462,
+ 0xb7df7f6e,
+ 0x8c407fee,
+ 0x00009c22,
+ 0x87c2c809,
+ 0x0c20b060,
+ 0x87c2c809,
+ 0x0a60b060,
+ 0x87c2c809,
+ 0x09c0b060,
+};
+
+unsigned long aui32H264VBR_MTXTOPAZFWData[] = {
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x809000b0,
+ 0x8090019c,
+ 0x82885204,
+ 0x82884ebc,
+ 0x82884ef4,
+ 0x82884f2c,
+ 0x82884f68,
+ 0x82884fa4,
+ 0x82884fd4,
+ 0x82885004,
+ 0x8288502c,
+ 0x8288508c,
+ 0x82885094,
+ 0x8288509c,
+ 0x828850a8,
+ 0x82884e9e,
+ 0x828853c8,
+ 0x82885398,
+ 0x82885278,
+ 0x828850d8,
+ 0x828852c8,
+ 0x82885310,
+ 0x82885358,
+ 0x82885658,
+ 0x8288549c,
+ 0x82885468,
+ 0x828854ea,
+ 0x82885552,
+ 0x82885592,
+ 0x82885614,
+ 0x828854c4,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x809006dc,
+ 0x80901be8,
+ 0x809024f0,
+ 0x809006e0,
+ 0x80903da0,
+ 0x80904f9c,
+ 0x8090072c,
+ 0x00000000,
+ 0x80901da8,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x809006dc,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0xa0101162,
+ 0xa0100174,
+ 0xa0101102,
+ 0xa0100184,
+ 0xa0101104,
+ 0xa0100194,
+ 0xa0101106,
+ 0xa01001a4,
+ 0xa01001a2,
+ 0xa01001a2,
+ 0xa0101182,
+ 0xa0100142,
+ 0xa0101122,
+ 0xa0100152,
+ 0x80101124,
+ 0x80101126,
+ 0x80101144,
+ 0x80101146,
+ 0x80100176,
+ 0x80100186,
+ 0x80100196,
+ 0x801001a6,
+ 0x801001b6,
+ 0x801001b4,
+ 0x80300364,
+ 0x8010b100,
+ 0x80105160,
+ 0x80100102,
+ 0x00000b00,
+ 0x00000b00,
+ 0x00000ba0,
+ 0x00000ba0,
+ 0x00000003,
+ 0x00000002,
+ 0x00000002,
+ 0x00000001,
+ 0x00000001,
+ 0x00000001,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000005,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x03020100,
+ 0x07060504,
+ 0x0b0a0908,
+ 0x0f0e0d0c,
+ 0x13121110,
+ 0x17161514,
+ 0x1b1a1918,
+ 0x1e1d1d1c,
+ 0x2120201f,
+ 0x23232222,
+ 0x25252424,
+ 0x26262625,
+ 0x27272727,
+ 0x02020202,
+ 0x04040303,
+ 0x05050504,
+ 0x06060505,
+ 0x07070706,
+ 0x0b090808,
+ 0x110f0e0d,
+ 0x1f1b1714,
+ 0x3e332924,
+ 0x5b554f4a,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x01010000,
+ 0x02020201,
+ 0x04030303,
+ 0x05040404,
+ 0x00140005,
+ 0x001a0016,
+ 0x0020001c,
+ 0x00280024,
+ 0x0034002c,
+ 0x00400038,
+ 0x00500048,
+ 0x00680058,
+ 0x00800070,
+ 0x00a00090,
+ 0x00d000b0,
+ 0x010000e0,
+ 0x01400120,
+ 0x01a00160,
+ 0x020001c0,
+ 0x02800240,
+ 0x034002c0,
+ 0x04000380,
+ 0x05000480,
+ 0x06800580,
+ 0x08000700,
+ 0x0a000900,
+ 0x0d000b00,
+ 0x10000e00,
+ 0x14001200,
+ 0x1a001600,
+ 0x00001c00,
+ 0x00800040,
+ 0x010000c0,
+ 0x01800140,
+ 0x020001c0,
+ 0x02800240,
+ 0x030002c0,
+ 0x03800340,
+ 0x040003c0,
+ 0x04800440,
+ 0x050004c0,
+ 0x05800540,
+ 0x060005c0,
+ 0x06800640,
+ 0x070006c0,
+ 0x07800740,
+ 0x000007c0,
+ 0x00200040,
+ 0x001002ab,
+ 0x015500cd,
+ 0x00080249,
+ 0x00cd01c7,
+ 0x0155005d,
+ 0x0249013b,
+ 0x00040111,
+ 0x01c700f1,
+ 0x00cd01af,
+ 0x005d00c3,
+ 0x01550059,
+ 0x013b0029,
+ 0x0249025f,
+ 0x01110235,
+ 0x00020021,
+ 0x00f1001f,
+ 0x01c70075,
+ 0x01af006f,
+ 0x00cd0069,
+ 0x00c30019,
+ 0x005d017d,
+ 0x0059005b,
+ 0x015502b9,
+ 0x002900a7,
+ 0x013b0283,
+ 0x025f0135,
+ 0x02490095,
+ 0x0235023f,
+ 0x0111008b,
+ 0x00210219,
+ 0x00010041,
+ 0x0b060600,
+ 0x0c0b0a06,
+ 0x0a0b0c06,
+ 0x0c0d0c0c,
+ 0x0d0d0c06,
+ 0x0b0b0c0c,
+ 0x0e0d0a0d,
+ 0x0a0d0e0e,
+ 0x0c0d0a06,
+ 0x0c0e0c0e,
+ 0x0e0d0a0d,
+ 0x0f0c0c0c,
+ 0x0f0b0d0e,
+ 0x0d0f0e0e,
+ 0x0d0f0f0f,
+ 0x0c0b0f0e,
+ 0x00000006,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x1234baac,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+};
diff --git a/fw/H264FirmwareVBR_bin.h b/fw/H264FirmwareVBR_bin.h
new file mode 100644
index 0000000..3658ae4
--- /dev/null
+++ b/fw/H264FirmwareVBR_bin.h
@@ -0,0 +1,35 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+// This file was automatically generated from ../release/H264FirmwareVBR.dnl using dnl2c.
+
+extern unsigned long aui32H264VBR_MTXTOPAZFWText[];
+extern unsigned long ui32H264VBR_MTXTOPAZFWTextSize;
+
+extern unsigned long aui32H264VBR_MTXTOPAZFWData[];
+extern unsigned long ui32H264VBR_MTXTOPAZFWDataSize;
+
+extern unsigned long ui32H264VBR_MTXTOPAZFWDataLocation;
+
diff --git a/fw/H264FirmwareVCM_bin.c b/fw/H264FirmwareVCM_bin.c
new file mode 100644
index 0000000..2cb39d7
--- /dev/null
+++ b/fw/H264FirmwareVCM_bin.c
@@ -0,0 +1,8216 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+// This file was automatically generated from ../release/H264FirmwareVCM.dnl using dnl2c.
+
+unsigned char *szH264VCM_MTXTOPAZFW_buildtag = "TOPAZ_DDKBUILD_00-00-00-0146";
+
+unsigned long ui32H264VCM_MTXTOPAZFWTextSize = 4834;
+unsigned long ui32H264VCM_MTXTOPAZFWDataSize = 3344;
+unsigned long ui32H264VCM_MTXTOPAZFWDataLocation = 0x82884bc0;
+
+unsigned long aui32H264VCM_MTXTOPAZFWText[] = {
+ 0x9040c001,
+ 0xc80993fe,
+ 0xc0000e42,
+ 0xc8290e00,
+ 0xc5d48422,
+ 0xc8298460,
+ 0xc4bc8622,
+ 0x9e838600,
+ 0xc8099e43,
+ 0xc96e0d42,
+ 0xc8090d40,
+ 0xc9700942,
+ 0xc8090900,
+ 0xc00a0e42,
+ 0xc8090e40,
+ 0xc00e87c2,
+ 0x9c1887d0,
+ 0x0c020802,
+ 0x09820d82,
+ 0x09020d02,
+ 0x08820c82,
+ 0x9320fffe,
+ 0xa401c838,
+ 0x0dc2c809,
+ 0x0d80c96e,
+ 0x0e42c809,
+ 0x0b46b080,
+ 0x7e74b77f,
+ 0xa48d0882,
+ 0xffff9ff3,
+ 0x9d1393e0,
+ 0xf8398081,
+ 0x0707a205,
+ 0x06850307,
+ 0x03839e97,
+ 0x0fa0060f,
+ 0x018d058d,
+ 0x9c62008f,
+ 0x9340ffff,
+ 0x0ea0060b,
+ 0xffff9c62,
+ 0x058d93a0,
+ 0xb700018d,
+ 0xb780518c,
+ 0x9c015114,
+ 0x0687a605,
+ 0x0ea0060b,
+ 0xffff9c62,
+ 0xf9f893a0,
+ 0xf9f8aa9d,
+ 0x9c22aa1d,
+ 0xa60d9c22,
+ 0x9bfefff4,
+ 0x0ca2c829,
+ 0x0cc0c5d4,
+ 0x404db720,
+ 0x0a42c809,
+ 0x0a30c65e,
+ 0x0b027440,
+ 0x438cb580,
+ 0x0a12d002,
+ 0x4644b421,
+ 0xc0540d8a,
+ 0xb78098b0,
+ 0xc807520c,
+ 0xc57008c2,
+ 0xc0320880,
+ 0xb5800c86,
+ 0xb4214d0c,
+ 0x0a06c000,
+ 0x0c98c002,
+ 0xc000b481,
+ 0x09021a04,
+ 0x08bac002,
+ 0x4078b960,
+ 0x0a00c200,
+ 0x588bd224,
+ 0xc000b441,
+ 0x0a11ce00,
+ 0x9301ffff,
+ 0x1884e000,
+ 0x9244ffff,
+ 0x0a42c807,
+ 0x0a00c576,
+ 0x0c86c032,
+ 0xc000b481,
+ 0x08820a02,
+ 0x08840902,
+ 0x4078b960,
+ 0x0a00c200,
+ 0x588bd224,
+ 0xc000b441,
+ 0x0a11ce00,
+ 0x9301ffff,
+ 0x745ac004,
+ 0x923cffff,
+ 0xc0340a02,
+ 0xb4810c9e,
+ 0xc034c000,
+ 0xc05498cd,
+ 0xc054982e,
+ 0x0d8a982a,
+ 0x9861c054,
+ 0x0a42c801,
+ 0x0a08c010,
+ 0x0c86c032,
+ 0xc000b481,
+ 0x08c2c801,
+ 0x0880cb10,
+ 0xb4210ce4,
+ 0x0a06c000,
+ 0xb4810cb4,
+ 0xc123c000,
+ 0xc56608d2,
+ 0xc08008e0,
+ 0xb4210c82,
+ 0x1a04c000,
+ 0xb4810c84,
+ 0x0d86c000,
+ 0x0d0209c2,
+ 0x0902c121,
+ 0x991bc014,
+ 0x468cb780,
+ 0xa982f208,
+ 0x0d02c021,
+ 0x09c20d04,
+ 0x9906c014,
+ 0x468cb780,
+ 0x0ad2c123,
+ 0x0ae0c566,
+ 0xa982f208,
+ 0x0d0609c2,
+ 0x98fac014,
+ 0x09c20d86,
+ 0xc1810d0e,
+ 0xc0140902,
+ 0xc00298fe,
+ 0xc0540dc2,
+ 0x700a980d,
+ 0x9364ffff,
+ 0xc0540d82,
+ 0xc0039814,
+ 0xb74092e0,
+ 0xd2265284,
+ 0x9e2d5908,
+ 0xaa4de030,
+ 0x9c629ea4,
+ 0x4614b720,
+ 0x405db740,
+ 0x58c1c280,
+ 0x2a80cff0,
+ 0x5a21c280,
+ 0x8021f310,
+ 0x752ec014,
+ 0x40cdb520,
+ 0x404db580,
+ 0x4652b431,
+ 0x0a42c801,
+ 0x0a08c010,
+ 0x0c86c032,
+ 0xc000b481,
+ 0xc0020886,
+ 0xb4210c98,
+ 0xb780c000,
+ 0xc080460c,
+ 0xf2080c82,
+ 0xb421a881,
+ 0x0d82c000,
+ 0x9bd0c034,
+ 0x460cb780,
+ 0xa881f208,
+ 0xffff7002,
+ 0x0d869304,
+ 0x0d0209c2,
+ 0x0902c121,
+ 0x98afc014,
+ 0x468cb780,
+ 0xa982f208,
+ 0x0d02c021,
+ 0x09c20d04,
+ 0x989ac014,
+ 0x468cb780,
+ 0xa982f208,
+ 0x0d0609c2,
+ 0x9892c014,
+ 0x09c20d86,
+ 0xc1010d0e,
+ 0xc0140902,
+ 0x77409896,
+ 0x9082c000,
+ 0x9b79c034,
+ 0x9c80c971,
+ 0x5a41e200,
+ 0x9204c000,
+ 0x0dc2c002,
+ 0x9b9ac034,
+ 0x460cb780,
+ 0xa881f208,
+ 0xffff7002,
+ 0x0d8292e4,
+ 0x9b9dc034,
+ 0xc0007580,
+ 0xc0349364,
+ 0x0d8a9b5e,
+ 0x9b95c034,
+ 0x460cb780,
+ 0xa881f208,
+ 0x5908d0a8,
+ 0x0948d073,
+ 0xe0309e2d,
+ 0xd3f1aacd,
+ 0xc2002a5c,
+ 0x75185a05,
+ 0x2ad2d012,
+ 0x9234fffb,
+ 0xb79f0802,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0x9c229c22,
+ 0x461cb740,
+ 0xc200aa41,
+ 0xc0025a08,
+ 0xf3100a00,
+ 0xf2088021,
+ 0xf208a882,
+ 0xc0c0a885,
+ 0x5c890c80,
+ 0xc000b421,
+ 0xa6059c22,
+ 0x461cb740,
+ 0x0886aa41,
+ 0x0c9ec034,
+ 0x5a08c200,
+ 0x0a00c002,
+ 0x80a1f310,
+ 0xc000b421,
+ 0x0c92c080,
+ 0xaa25f208,
+ 0xc000b481,
+ 0xc0340dc2,
+ 0xf2089b3f,
+ 0x7008aa25,
+ 0x9344ffff,
+ 0xc0800a02,
+ 0xb4810c96,
+ 0x0d86c000,
+ 0x0d0609c2,
+ 0x0902c121,
+ 0x981bc014,
+ 0xa9a2f208,
+ 0x0d02c021,
+ 0x09c20d04,
+ 0x9808c014,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xc0409e54,
+ 0x9e590c82,
+ 0xc000b421,
+ 0x0d02c040,
+ 0xc000b482,
+ 0xc00e9c22,
+ 0xc00e2d7c,
+ 0x5d3029e0,
+ 0xc0409e54,
+ 0x31b80c82,
+ 0xc000b461,
+ 0x0d02c040,
+ 0xc000b442,
+ 0x9e4c9c22,
+ 0x28fcc00e,
+ 0x2a7cc00e,
+ 0x0c82c040,
+ 0xb4019e58,
+ 0xc200c000,
+ 0x58e45a6c,
+ 0x1d043242,
+ 0x9e515d10,
+ 0x1984598d,
+ 0x3980c011,
+ 0x590d3246,
+ 0x59301904,
+ 0x32443242,
+ 0xc000b481,
+ 0x9e4c9c22,
+ 0x28fcc00e,
+ 0x2a7cc00e,
+ 0x0c82c040,
+ 0xb4019e58,
+ 0xc200c000,
+ 0x58e45a6c,
+ 0x1d043242,
+ 0x9e515d10,
+ 0x1984598d,
+ 0x3980c019,
+ 0x590d3246,
+ 0x59301904,
+ 0x32443242,
+ 0xc000b481,
+ 0x9e4c9c22,
+ 0x28fcc00e,
+ 0x2a7cc00e,
+ 0x0c82c040,
+ 0xb4019e58,
+ 0xc200c000,
+ 0x58e45a6c,
+ 0x1d043242,
+ 0x9e515d10,
+ 0x1984598d,
+ 0x3980c01d,
+ 0x590d3246,
+ 0x59301904,
+ 0x32443242,
+ 0xc000b481,
+ 0xa60d9c22,
+ 0x07038420,
+ 0xc2800687,
+ 0x1c845c8d,
+ 0x5ca0d0a2,
+ 0xd0110287,
+ 0xc2000a5e,
+ 0x1a045a0d,
+ 0x5a30c200,
+ 0x30985cd0,
+ 0x04059e4c,
+ 0x0c8ac032,
+ 0xc8013098,
+ 0xb4213880,
+ 0x9ea9c000,
+ 0x0a02c801,
+ 0x0a00c002,
+ 0xc0306553,
+ 0xb4810c8a,
+ 0xc002c000,
+ 0x0c840882,
+ 0xc000b421,
+ 0xd0229e93,
+ 0x9e535f09,
+ 0x1d045d0d,
+ 0x9b5afff4,
+ 0x5e91c280,
+ 0xc2801e84,
+ 0x9e6c5e84,
+ 0xc2801a84,
+ 0xc1815a90,
+ 0x0d8a3a80,
+ 0x0d020982,
+ 0xfff4314a,
+ 0xc0c09b54,
+ 0x09920d82,
+ 0x0d02c002,
+ 0x0902c002,
+ 0x9a47c034,
+ 0xc0340a0a,
+ 0xb4810c9e,
+ 0x1b04c000,
+ 0x850275bf,
+ 0x9202c000,
+ 0xb55f9dcf,
+ 0xc0347f7c,
+ 0xf2319a4f,
+ 0xb75fa045,
+ 0x1b047f7c,
+ 0x851075bf,
+ 0x9284ffff,
+ 0xc0300a02,
+ 0xb4810c8e,
+ 0xb79fc000,
+ 0xb7bf7e6e,
+ 0xb7df7eee,
+ 0xc0027f6e,
+ 0x9c228c00,
+ 0xb780a605,
+ 0xc004448c,
+ 0x75002a00,
+ 0x5d8cb7a0,
+ 0x92c2c002,
+ 0xa9b6f208,
+ 0x0982c050,
+ 0x0d7ec008,
+ 0x9b08fff4,
+ 0xa9bef208,
+ 0x0982c028,
+ 0x0d3ec004,
+ 0x9b00fff4,
+ 0x448cb780,
+ 0x38c0d211,
+ 0x02039e89,
+ 0x2a00c201,
+ 0xcffa7500,
+ 0xb5202cfd,
+ 0xc0014494,
+ 0x744090e2,
+ 0x5e0cb740,
+ 0x9256c000,
+ 0xaa45f008,
+ 0xa8c9f008,
+ 0x2cfec7ff,
+ 0x0a00c010,
+ 0xa245f008,
+ 0x0880c008,
+ 0xa0c9f008,
+ 0x4494b520,
+ 0xaa45f008,
+ 0x448cb720,
+ 0xa235f208,
+ 0xa8caf008,
+ 0x28fecdff,
+ 0xa0bef208,
+ 0x448cb520,
+ 0x9240c000,
+ 0xa937f208,
+ 0xaa39f208,
+ 0xa93cf20a,
+ 0xa8a1f248,
+ 0x8021f310,
+ 0x82a3e210,
+ 0xa235f208,
+ 0xa0bdf208,
+ 0xa9bef248,
+ 0x0982c002,
+ 0xfff40d0e,
+ 0xf2489ab5,
+ 0xb720aa3d,
+ 0xc002448c,
+ 0xf2480a00,
+ 0xc200a23d,
+ 0xb5203880,
+ 0xc011448c,
+ 0x74402880,
+ 0x92e2c000,
+ 0xa9b6f248,
+ 0x0982c008,
+ 0xfff40d3e,
+ 0xf2489a9d,
+ 0xb720aa35,
+ 0xc008448c,
+ 0xf2480a00,
+ 0xc081a235,
+ 0xcfef3880,
+ 0xb52028fe,
+ 0xb780448c,
+ 0xc001448c,
+ 0x75002a04,
+ 0x92e2c000,
+ 0xa9b6f248,
+ 0x0982c008,
+ 0xfff40d3e,
+ 0xf2489a81,
+ 0xb720aa35,
+ 0xc008448c,
+ 0xf2480a00,
+ 0xc001a235,
+ 0xcfff3888,
+ 0xb52028fa,
+ 0xb720448c,
+ 0x0203448c,
+ 0x2a10c001,
+ 0xc0027500,
+ 0xc0019082,
+ 0x744028c0,
+ 0x9182c001,
+ 0xa9a6f288,
+ 0x0d0609c2,
+ 0x0c820942,
+ 0xfff40882,
+ 0xf2889a96,
+ 0xf288a9b6,
+ 0x5d90a927,
+ 0x81afe220,
+ 0x448cb780,
+ 0x0d0609c2,
+ 0x0c820942,
+ 0xc0010882,
+ 0xb5803a20,
+ 0xfff4448c,
+ 0xb7809aa0,
+ 0xf288448c,
+ 0xc003a8a5,
+ 0x08c03a00,
+ 0xa0a5f288,
+ 0x2a2ecfff,
+ 0x9260c000,
+ 0xa9a6f288,
+ 0x0d0609c2,
+ 0x9a36fff4,
+ 0x448cb780,
+ 0xa8a5f288,
+ 0x3a20c001,
+ 0xf28808c0,
+ 0xcfffa0a5,
+ 0xb5802a6e,
+ 0xb79f448c,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa6059c22,
+ 0x448cb780,
+ 0x2a00c200,
+ 0x9e5d7500,
+ 0x9302c000,
+ 0x0abc6a8e,
+ 0x09829eab,
+ 0xc1010d36,
+ 0xc0140902,
+ 0x9eab98a4,
+ 0x448cb780,
+ 0x0d1a0982,
+ 0x0902c101,
+ 0x2a7dcdfe,
+ 0x448cb580,
+ 0x9897c014,
+ 0x448cb780,
+ 0x2a00c081,
+ 0xc0007500,
+ 0xc1019222,
+ 0xc0060902,
+ 0x0dce0940,
+ 0x0d020982,
+ 0x9887c014,
+ 0x448cb780,
+ 0x2a7ecf7f,
+ 0x448cb580,
+ 0x448cb780,
+ 0x2a08c001,
+ 0xc0007500,
+ 0xc1019222,
+ 0xc0060902,
+ 0x0dde0940,
+ 0x0d020982,
+ 0x9871c014,
+ 0x448cb780,
+ 0x2a76cfff,
+ 0x448cb580,
+ 0x448cb780,
+ 0x2a20c001,
+ 0xc0007500,
+ 0x0de291e2,
+ 0x0d020982,
+ 0x0902c101,
+ 0x985dc014,
+ 0x448cb780,
+ 0x2a5ecfff,
+ 0x448cb580,
+ 0x448cb780,
+ 0x2a00c003,
+ 0xc0007500,
+ 0x0de291e2,
+ 0x0d060982,
+ 0x0902c101,
+ 0x9849c014,
+ 0x448cb780,
+ 0x2a7ecffd,
+ 0x448cb580,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xb7a0a605,
+ 0xf2485d8c,
+ 0xc021a9ba,
+ 0x0d3c0d02,
+ 0x0982c008,
+ 0x999efff4,
+ 0xa9aaf288,
+ 0x0d02c021,
+ 0x09c20d04,
+ 0x9996fff4,
+ 0xaa39f248,
+ 0xa8a9f288,
+ 0x0a00c008,
+ 0xa239f248,
+ 0xf28808c0,
+ 0xb79fa0a9,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa6059c22,
+ 0x09920687,
+ 0x0d02c002,
+ 0x0902c002,
+ 0x9883c034,
+ 0x0a42c002,
+ 0xc2800eb0,
+ 0xb4855e89,
+ 0xb79fc000,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xb7409c22,
+ 0xd1a64d04,
+ 0x9e2d5d08,
+ 0xa8cde030,
+ 0x5a0cc080,
+ 0xd1f35885,
+ 0xc00e2910,
+ 0xe2202d7c,
+ 0xc00e812d,
+ 0x5d302a40,
+ 0x32429e51,
+ 0x0c82c040,
+ 0xc000b481,
+ 0x0d02c040,
+ 0xc000b442,
+ 0xb7409c22,
+ 0x1df05e84,
+ 0x5d08d1a6,
+ 0xe0309e2d,
+ 0xc080a8cd,
+ 0xd0335a05,
+ 0x5991294e,
+ 0x008929bc,
+ 0x81a7e210,
+ 0x2910d1f3,
+ 0x2d7cc00e,
+ 0x812de220,
+ 0x5d305990,
+ 0x31b89e54,
+ 0x0c82c040,
+ 0xc000b461,
+ 0x0d02c040,
+ 0xc000b442,
+ 0xa6059c22,
+ 0x5d8cb7a0,
+ 0x0e82c111,
+ 0x0ec0c04e,
+ 0xa9b6f208,
+ 0x0982c050,
+ 0x0d7ec008,
+ 0x991efff4,
+ 0x0df29e6a,
+ 0x0982c004,
+ 0xfff40d02,
+ 0xf2089bc8,
+ 0xf248a937,
+ 0xe220a9aa,
+ 0xc05081af,
+ 0xc0080982,
+ 0xfff40d7e,
+ 0x9e6a990b,
+ 0xc0040df2,
+ 0x0d0209c2,
+ 0x9bb5fff4,
+ 0xa937f208,
+ 0xa9aaf248,
+ 0x812ec201,
+ 0x81afe220,
+ 0x0982c050,
+ 0x0d7ec008,
+ 0x98f6fff4,
+ 0x0df29e6a,
+ 0x0982c006,
+ 0xfff40d02,
+ 0xf2089ba0,
+ 0xcfd8a9be,
+ 0xc0280e81,
+ 0xc0040982,
+ 0xfff40d3e,
+ 0x9e6a98e5,
+ 0xc0040df2,
+ 0xc0040982,
+ 0xfff40d42,
+ 0xf2089b8e,
+ 0xf248a93f,
+ 0xe220a9b2,
+ 0xc02881af,
+ 0xc0040982,
+ 0xfff40d3e,
+ 0x9e6a98d1,
+ 0xc0040df2,
+ 0xc00409c2,
+ 0xfff40d42,
+ 0xf2089b7a,
+ 0xf248a93f,
+ 0xc201a9b2,
+ 0xe220812e,
+ 0xc02881af,
+ 0xc0040982,
+ 0xfff40d3e,
+ 0x9e6a98bb,
+ 0xc0060df2,
+ 0xc0040982,
+ 0xfff40d42,
+ 0xf2489b64,
+ 0xf20aaa29,
+ 0xf248a934,
+ 0xd226a8b1,
+ 0xf2085904,
+ 0xf310a9bf,
+ 0xd0a68021,
+ 0xe2105904,
+ 0xf31080a3,
+ 0xe2108221,
+ 0xf20880b3,
+ 0xf208a235,
+ 0xb79fa0bd,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa6059c22,
+ 0x0902c121,
+ 0x0940c006,
+ 0x02870dca,
+ 0x0d020982,
+ 0x2afcc00e,
+ 0x9b1bfff4,
+ 0x09820dca,
+ 0xc2800d1e,
+ 0x010b5aec,
+ 0x3900c121,
+ 0x9b11fff4,
+ 0x448cb780,
+ 0x3a00c400,
+ 0x448cb580,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0x0922c829,
+ 0x0970c5fe,
+ 0x0a22c829,
+ 0x0a50c5fe,
+ 0x5f0cb720,
+ 0x0ca2c829,
+ 0x0ce0c5fe,
+ 0x8562c00a,
+ 0x468cb580,
+ 0x460cb520,
+ 0x0a18d071,
+ 0xa241f008,
+ 0x404db520,
+ 0x413db540,
+ 0x8d60c00a,
+ 0x40bdb540,
+ 0x403db540,
+ 0xf8399c22,
+ 0xf010a285,
+ 0x7500aa61,
+ 0x9164c000,
+ 0xa8c1d008,
+ 0x0a069e48,
+ 0x5200c200,
+ 0xd0083098,
+ 0xd011a0c1,
+ 0xd0100d38,
+ 0xf011a9f2,
+ 0xf0101a30,
+ 0x1984a943,
+ 0x93e2c000,
+ 0x8702cff1,
+ 0x8700cff0,
+ 0x087ec00f,
+ 0x087cc00e,
+ 0x0c1ac050,
+ 0xa8c5f029,
+ 0x2095d020,
+ 0x9e4d5ca1,
+ 0xc2002210,
+ 0x30d85a20,
+ 0x4006ba09,
+ 0xc000b420,
+ 0x1a30f011,
+ 0xffff1984,
+ 0xf21091e4,
+ 0xf010802f,
+ 0xf9f8a241,
+ 0x9c22aa9d,
+ 0x8420a60d,
+ 0x9e558502,
+ 0x7f7cb55f,
+ 0xaa61f010,
+ 0x8d8ee012,
+ 0xb55f0307,
+ 0x1a087ffc,
+ 0xd226750a,
+ 0x8540590c,
+ 0x8044e05a,
+ 0x91e0c003,
+ 0x9180c000,
+ 0x9000c001,
+ 0x9140c001,
+ 0x92a0c001,
+ 0x9380c001,
+ 0x91c0c002,
+ 0x600cb780,
+ 0xa881da08,
+ 0x74402888,
+ 0xb352856a,
+ 0xb7804462,
+ 0x9d57460c,
+ 0x8d88e011,
+ 0x1954d072,
+ 0xa299f208,
+ 0x9abcc014,
+ 0x91e0c002,
+ 0x460cb780,
+ 0xa91af208,
+ 0xe0119ea9,
+ 0x15148d88,
+ 0x9ab0c014,
+ 0x9060c002,
+ 0x8d88e011,
+ 0x295ed3f2,
+ 0xc0140916,
+ 0xb78099df,
+ 0xf208460c,
+ 0xc001a299,
+ 0xe01192c0,
+ 0xd3f28d88,
+ 0x0916295e,
+ 0x99d2c014,
+ 0x91a0c001,
+ 0xaa41d208,
+ 0x8c88f011,
+ 0xd0124a7d,
+ 0x0d062ace,
+ 0x018b0906,
+ 0x99c4c014,
+ 0x9e6a9e83,
+ 0x0d02018b,
+ 0x99bec014,
+ 0x9320c000,
+ 0xaa41d208,
+ 0x8c88f011,
+ 0xd0124a7d,
+ 0x0d022ace,
+ 0x018b0906,
+ 0x99b0c014,
+ 0x9e6a9e83,
+ 0xc00e018b,
+ 0xc0140d7e,
+ 0xc00099a9,
+ 0xc0019080,
+ 0xb79f90e0,
+ 0xc00f7e68,
+ 0xc00e0cfe,
+ 0x9e4a0cfc,
+ 0x7c68b59f,
+ 0x7f6cb73f,
+ 0x0a02cff1,
+ 0x0a00cff0,
+ 0x0c9ac050,
+ 0xc2002218,
+ 0x20945a21,
+ 0x324258a0,
+ 0x4006ba24,
+ 0x7f6cb59f,
+ 0xc000b481,
+ 0xa943f208,
+ 0x7fecb79f,
+ 0x8021f310,
+ 0xa241f208,
+ 0x7e6eb79f,
+ 0x7eeeb7bf,
+ 0x7f6eb7df,
+ 0x8c00c002,
+ 0xa61d9c22,
+ 0x85028440,
+ 0xf0319e9d,
+ 0x0b02abe5,
+ 0x7878b55f,
+ 0x7efcb55f,
+ 0x9d3a718e,
+ 0x91e8c001,
+ 0x7502aa41,
+ 0x9392c000,
+ 0xaad1d018,
+ 0x8d08e032,
+ 0x8d00e051,
+ 0x9eb19dcf,
+ 0xb55f8510,
+ 0xc0027f7c,
+ 0xc2800a9c,
+ 0x018b5a95,
+ 0x9aebfff4,
+ 0x7f7cb75f,
+ 0x5a88c280,
+ 0x8122c301,
+ 0x91a0c000,
+ 0x8d88e031,
+ 0x050b9dcf,
+ 0xb55f8510,
+ 0xfff47f7c,
+ 0xb75f9b19,
+ 0x0b047f7c,
+ 0xfffe718e,
+ 0xb79f92a6,
+ 0xc0507868,
+ 0xb4810c9e,
+ 0xc050c000,
+ 0xb4e20d16,
+ 0xb71fc000,
+ 0xb79f7eec,
+ 0xb7bf7d6e,
+ 0xb7df7dee,
+ 0xb7ff7e6e,
+ 0xc0027eee,
+ 0x9c228c40,
+ 0xa205f839,
+ 0x8400c010,
+ 0x600cb780,
+ 0x461cb740,
+ 0xa882da08,
+ 0xd011a8c1,
+ 0x58882e18,
+ 0x0880c002,
+ 0xe2107500,
+ 0xc00080a3,
+ 0x0a0a90a2,
+ 0x9100c000,
+ 0x2e14d011,
+ 0x0a067500,
+ 0x0a44d001,
+ 0x0c82c050,
+ 0xc000b481,
+ 0x0a02c004,
+ 0xb4810cb4,
+ 0x9d87c000,
+ 0x402db740,
+ 0x09a20dc2,
+ 0x0d02c008,
+ 0x0c81cff0,
+ 0x9b4dffd4,
+ 0x0a42c801,
+ 0x0a00cb10,
+ 0x0ceac032,
+ 0xc000b481,
+ 0x08c2c801,
+ 0x0888c010,
+ 0xb4210c84,
+ 0xb760c000,
+ 0x9d8f410a,
+ 0x0d81cff0,
+ 0x9b67fff4,
+ 0x0a02c801,
+ 0x0a00c00a,
+ 0x0c8ac030,
+ 0xc000b481,
+ 0x08c2c008,
+ 0xb4210c84,
+ 0xc008c000,
+ 0x0c880a02,
+ 0xc000b481,
+ 0x0d82c0c0,
+ 0xc0080992,
+ 0xc0080d02,
+ 0xc0140902,
+ 0xc00899ae,
+ 0xc0300a02,
+ 0xb4810c8e,
+ 0xc014c000,
+ 0xb79f982f,
+ 0xc0106fee,
+ 0x9c228c20,
+ 0xa205f839,
+ 0x0c82c450,
+ 0xb4810a02,
+ 0xb101c000,
+ 0xc0084220,
+ 0xc0300a40,
+ 0xb4810c8e,
+ 0xc002c000,
+ 0xc05038c0,
+ 0xb4210c82,
+ 0xc0c0c000,
+ 0x09920d82,
+ 0x0d02c008,
+ 0x0902c008,
+ 0x9983c014,
+ 0x0a02c008,
+ 0x0c8ec030,
+ 0xc000b481,
+ 0xaa1df9f8,
+ 0x9040c000,
+ 0xc450a60d,
+ 0x0a020c8a,
+ 0xc000b481,
+ 0x4240b105,
+ 0x2efce00e,
+ 0x5e90d284,
+ 0x0a02c801,
+ 0xc0300a40,
+ 0xb4810c8a,
+ 0x08c2c000,
+ 0xb4210c84,
+ 0x7740c000,
+ 0x610cb7c0,
+ 0x93e2c000,
+ 0x0eded031,
+ 0x09820dea,
+ 0x2ac10d02,
+ 0x1950d051,
+ 0x3900c121,
+ 0x98ddfff4,
+ 0xa9c6f248,
+ 0xc280018b,
+ 0x1a845a8f,
+ 0xc0219eaa,
+ 0xffd43d00,
+ 0xf2489a3f,
+ 0xf310a947,
+ 0xf248802b,
+ 0xc450a245,
+ 0x0a020c86,
+ 0xc000b481,
+ 0x4220b101,
+ 0x0a42c801,
+ 0x0a08c010,
+ 0x0c86c032,
+ 0xc000b481,
+ 0xc0020886,
+ 0xb4210c98,
+ 0xb740c000,
+ 0xf2485f8c,
+ 0xf048a8c5,
+ 0xd053aa51,
+ 0xc0801910,
+ 0xf3100ca2,
+ 0xb4818821,
+ 0xb7a0c000,
+ 0xc0025f8c,
+ 0xc0140d82,
+ 0xf248992f,
+ 0xf248a8c5,
+ 0xd053aa31,
+ 0xf3101910,
+ 0x70088821,
+ 0x9264ffff,
+ 0x09c20d86,
+ 0xc1210d0a,
+ 0xffd40902,
+ 0xf2489a0a,
+ 0xc0a1a9b2,
+ 0x0d040d02,
+ 0xffd409c2,
+ 0xc0c099f7,
+ 0x09920d82,
+ 0x09420d42,
+ 0x98f7c014,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x9e5da60d,
+ 0xf1245940,
+ 0xd3f15841,
+ 0xb3502d2e,
+ 0xc0024422,
+ 0xf00893e2,
+ 0xe000aa61,
+ 0xb4252a1c,
+ 0xd8084422,
+ 0x8522aa61,
+ 0x88a9e210,
+ 0x12182a1c,
+ 0xc00e9ea3,
+ 0xba1b0a7e,
+ 0xc200400b,
+ 0x21285207,
+ 0x9276c001,
+ 0xc1009e59,
+ 0x11035a20,
+ 0x5209c200,
+ 0xc2009ea2,
+ 0x9e8d58a1,
+ 0x0cb0d031,
+ 0xa8a2d208,
+ 0x2a7cc00e,
+ 0x5207c200,
+ 0x2a7cc00e,
+ 0xd208349a,
+ 0xf008a0a2,
+ 0x9ea1a963,
+ 0x2a2ed3f1,
+ 0x8128c201,
+ 0x8821f310,
+ 0xf0088502,
+ 0xd228a261,
+ 0x9eaba127,
+ 0x2d01cff0,
+ 0x59415940,
+ 0xc00e3522,
+ 0xfff42d7c,
+ 0xc0009bb1,
+ 0xd20892e0,
+ 0x9e5eaa21,
+ 0x50d8000b,
+ 0xd0293242,
+ 0xf008a205,
+ 0xd013a8e1,
+ 0xf210291e,
+ 0x75108029,
+ 0x00989e44,
+ 0xa0e1f008,
+ 0x4426b350,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x0685a60d,
+ 0x9e9e9e69,
+ 0x71820b02,
+ 0xc0000a86,
+ 0x9ea99208,
+ 0x9e6916d2,
+ 0x5a84c280,
+ 0x1a52d011,
+ 0xd0117102,
+ 0xd3f108e2,
+ 0xffff2b1e,
+ 0xd0119286,
+ 0x75100a62,
+ 0xc000028d,
+ 0x9e7391d4,
+ 0x09220d02,
+ 0x9b70fff4,
+ 0xd0111aa0,
+ 0x75100a52,
+ 0xffff9e83,
+ 0x9e7392d2,
+ 0xd0110d06,
+ 0xc00e0952,
+ 0xfff4297c,
+ 0x75909b61,
+ 0xc0009e83,
+ 0xd03192f4,
+ 0xd3f11a60,
+ 0x9e6c2b4e,
+ 0xc2009e73,
+ 0xd3f25299,
+ 0x0922295e,
+ 0x9b50fff4,
+ 0xc2009e83,
+ 0x9ea952b8,
+ 0x16d27590,
+ 0x91b2ffff,
+ 0xd3f29e73,
+ 0x010d2d5e,
+ 0x9b42fff4,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x0ca0f011,
+ 0xd09a9e99,
+ 0xd00d5a04,
+ 0xc0001a42,
+ 0x1203909a,
+ 0x9e4b1242,
+ 0xfffc9ea2,
+ 0xc0019360,
+ 0xf83993a0,
+ 0x0d8aa205,
+ 0x9835c014,
+ 0xc0140d8e,
+ 0x0d8a9832,
+ 0xaa1df9f8,
+ 0x91a0c001,
+ 0x9e520507,
+ 0x0d82c0c0,
+ 0xc0000992,
+ 0x9e5c9040,
+ 0xd1a401c6,
+ 0x08825889,
+ 0x3c80c400,
+ 0xc000b421,
+ 0x4220b104,
+ 0x9e532244,
+ 0xffff7106,
+ 0x9c229324,
+ 0xc000b463,
+ 0xf8129c22,
+ 0x9c22a062,
+ 0x0d80c200,
+ 0x9e595d89,
+ 0xc4000982,
+ 0xb4633d80,
+ 0xb203c000,
+ 0x00074620,
+ 0xc1279c22,
+ 0x9c229c8f,
+ 0xb971080a,
+ 0xc01756f1,
+ 0xc0719c81,
+ 0xc0179c80,
+ 0xb9609c80,
+ 0x9c224000,
+ 0x8460a61d,
+ 0x4604b740,
+ 0xb53f0882,
+ 0xb5207f6c,
+ 0xf0004a88,
+ 0xb7a0aa41,
+ 0x9e2d5e0c,
+ 0x5a08c200,
+ 0x0940d093,
+ 0xe0209ea9,
+ 0x0dc2a96d,
+ 0xc002098e,
+ 0xffd40d42,
+ 0xda889922,
+ 0x0902a8b9,
+ 0x7e6cb55f,
+ 0x7c7edffc,
+ 0x7eecb55f,
+ 0xc000030b,
+ 0xda089242,
+ 0x7500aa41,
+ 0x91a4c000,
+ 0x7e6ab77f,
+ 0xaa5dda88,
+ 0x428ab520,
+ 0x768ab562,
+ 0xb5802a1c,
+ 0xb720418a,
+ 0xf2085d94,
+ 0xf208aa45,
+ 0xb760a8c9,
+ 0xda085f8c,
+ 0xb580a959,
+ 0xda0842cd,
+ 0xd112a95e,
+ 0xb52009b8,
+ 0xb54043cd,
+ 0xb540434d,
+ 0xf2084455,
+ 0xda08aa59,
+ 0xd810a842,
+ 0x9e9aa8e1,
+ 0xa967f048,
+ 0x75002a20,
+ 0xf0489e44,
+ 0x60c2a97d,
+ 0x5a7fc080,
+ 0x5a71c200,
+ 0x58930098,
+ 0xe2105894,
+ 0x068380a3,
+ 0x46cdb540,
+ 0x474db540,
+ 0x47cdb520,
+ 0x90c2c000,
+ 0x5c40e000,
+ 0x9184c000,
+ 0xa957f050,
+ 0xaa61d810,
+ 0x8021f310,
+ 0xa12bf290,
+ 0xa225f290,
+ 0xaa39f210,
+ 0xa8a1f250,
+ 0xa229f250,
+ 0xaa41f010,
+ 0xa8c6f010,
+ 0xa949f010,
+ 0xa0b1f250,
+ 0xa221f210,
+ 0xa0aaf210,
+ 0xa12df210,
+ 0xa8cad850,
+ 0x0e28d111,
+ 0xa94dd850,
+ 0xa881da08,
+ 0xa0a6f210,
+ 0x6114b720,
+ 0xa131f210,
+ 0x58d158c0,
+ 0xa0b5f290,
+ 0xaa41da08,
+ 0x425db740,
+ 0x42c5b740,
+ 0xc2000089,
+ 0x589c5a20,
+ 0x8021f310,
+ 0x82a3e210,
+ 0xa24df010,
+ 0xa0d1f010,
+ 0xa225f250,
+ 0xa0adf250,
+ 0x0a00c00c,
+ 0x4f0cb580,
+ 0x0880c006,
+ 0x4f8cb520,
+ 0x0cf2c42e,
+ 0xb4810a02,
+ 0xb101c000,
+ 0x28844220,
+ 0xc0007440,
+ 0xd1119142,
+ 0xda080e28,
+ 0xc058a881,
+ 0xc0277460,
+ 0xda0893f2,
+ 0xb720aa41,
+ 0x8706410a,
+ 0x9d547500,
+ 0x1ad2d002,
+ 0xb55f7448,
+ 0xc0007de4,
+ 0xf2089112,
+ 0xcffeaa59,
+ 0xf2082a3d,
+ 0xf208a259,
+ 0x2a40aa59,
+ 0xc0007500,
+ 0x0a0a9122,
+ 0x0caec060,
+ 0xc000b481,
+ 0x90e0c000,
+ 0xc0600a06,
+ 0xb4810cae,
+ 0xb720c000,
+ 0xf2d04d94,
+ 0xf290aa21,
+ 0xc801a8bd,
+ 0x9d1e3c80,
+ 0x460cb740,
+ 0x5a40c200,
+ 0xc30158a0,
+ 0x32423246,
+ 0xa251f008,
+ 0x99b7c034,
+ 0xc0340a3e,
+ 0xb4810c9e,
+ 0x0882c000,
+ 0xb4210c90,
+ 0xffd4c000,
+ 0xc0069a84,
+ 0xb5408542,
+ 0x0a02471c,
+ 0x0c8ac030,
+ 0xc000b481,
+ 0x0882c002,
+ 0xb4210c84,
+ 0xc801c000,
+ 0xc0020a02,
+ 0x1c840a00,
+ 0xc000b481,
+ 0x0902c1c1,
+ 0x0940c006,
+ 0x09820dce,
+ 0xffb40d02,
+ 0xc0c09b9c,
+ 0xffd40d82,
+ 0xb7809a0a,
+ 0xc034470c,
+ 0xc2000cae,
+ 0xb4815a11,
+ 0x0882c000,
+ 0xb4210cfc,
+ 0xf208c000,
+ 0x2a04aa59,
+ 0x850a7500,
+ 0x479cb540,
+ 0x90a2c000,
+ 0xb5408504,
+ 0xb780479c,
+ 0xc03e478c,
+ 0xb5800c82,
+ 0xb481480c,
+ 0xc0c8c000,
+ 0xc0500882,
+ 0xb4210ce2,
+ 0xf208c000,
+ 0x8516aa59,
+ 0x2a040902,
+ 0xc0387500,
+ 0xcffe0cfa,
+ 0xe0010a7e,
+ 0xb5408d28,
+ 0xb481489c,
+ 0xc284c000,
+ 0xb540856a,
+ 0xc002499c,
+ 0xc0500a42,
+ 0xb4810cb6,
+ 0xc03ac000,
+ 0xb4420d02,
+ 0x08bec000,
+ 0x0c9ec034,
+ 0xc000b421,
+ 0x6008b785,
+ 0xc0007500,
+ 0xc0549082,
+ 0xb780996e,
+ 0xc038498c,
+ 0xb4810c82,
+ 0xda08c000,
+ 0xb720a945,
+ 0xf290618c,
+ 0xb720aa35,
+ 0x6245462d,
+ 0xb5408502,
+ 0x7440441a,
+ 0x5a11c200,
+ 0x448ab580,
+ 0x9102c000,
+ 0xa9caf248,
+ 0x448ab760,
+ 0x9c629e8c,
+ 0x5f8cb7e0,
+ 0x070b0f82,
+ 0x488cb780,
+ 0x0c82c050,
+ 0xc000b481,
+ 0x0d0ac030,
+ 0xb4229e79,
+ 0xc00ec000,
+ 0xc03008fe,
+ 0xb4210c8e,
+ 0xf208c000,
+ 0x2a04aa59,
+ 0xc0007500,
+ 0xc43891a2,
+ 0x9e7a0c8a,
+ 0xc000b441,
+ 0x4220b104,
+ 0x0ca6c03e,
+ 0xc000b481,
+ 0x440cb780,
+ 0xc0017500,
+ 0xc02093c2,
+ 0x75002a00,
+ 0x9102c001,
+ 0x0ca2c460,
+ 0xb4619e7b,
+ 0xb104c000,
+ 0x088a4220,
+ 0x0ca2c060,
+ 0xc000b421,
+ 0x0902c004,
+ 0x0c96c030,
+ 0xc000b441,
+ 0x440cb780,
+ 0x2a7dcfde,
+ 0x440cb580,
+ 0x08f8c002,
+ 0x0cecc00e,
+ 0xc000b421,
+ 0x0a02c201,
+ 0xc000b481,
+ 0x8502c004,
+ 0x4e1cb540,
+ 0x440cb720,
+ 0x0c96c030,
+ 0xc000b421,
+ 0x440cb780,
+ 0x75002a04,
+ 0x90e2c000,
+ 0x490cb780,
+ 0xb5800a04,
+ 0xb75f490c,
+ 0x9eab7dfc,
+ 0xc0349d4f,
+ 0xb7809aca,
+ 0xc020448c,
+ 0x75002a00,
+ 0x287cc00e,
+ 0x7d6cb51f,
+ 0x9042c002,
+ 0xa9c6f250,
+ 0x0d02c021,
+ 0xc0100d7c,
+ 0xffb40982,
+ 0xf2509a9d,
+ 0xc021a9ce,
+ 0x0d3c0d02,
+ 0x0982c008,
+ 0x9a94ffb4,
+ 0x448cb780,
+ 0x2a00c401,
+ 0xc0007500,
+ 0xf2089262,
+ 0xf208aa6d,
+ 0x0906a8f1,
+ 0x7e6cb55f,
+ 0x0a00c010,
+ 0xa26df208,
+ 0x0880c008,
+ 0xa0f1f208,
+ 0x91c0c000,
+ 0xa927f250,
+ 0xaa29f250,
+ 0xa92cf252,
+ 0xa8b1f250,
+ 0x8021f310,
+ 0x82a3e210,
+ 0xa225f250,
+ 0xa0adf250,
+ 0x448cb780,
+ 0x2a7dcfde,
+ 0x448cb580,
+ 0x448cb780,
+ 0x2a00c021,
+ 0xc0017500,
+ 0xb7609122,
+ 0xc0214514,
+ 0x0d140d02,
+ 0x09c2c002,
+ 0x9a56ffb4,
+ 0x4594b760,
+ 0x0d02c021,
+ 0x09c20d04,
+ 0x9a4effb4,
+ 0x451cb740,
+ 0xaa59f210,
+ 0x4584b740,
+ 0xa8c1f250,
+ 0x4494b720,
+ 0x8021f310,
+ 0x82a3e210,
+ 0x2cfecfdf,
+ 0x4494b520,
+ 0x450cb580,
+ 0x458cb520,
+ 0x4494b720,
+ 0xc4019e4c,
+ 0x75002a00,
+ 0x91a2c000,
+ 0xaa45f250,
+ 0xa8cdf250,
+ 0x1a40c002,
+ 0x450cb580,
+ 0xb52018c0,
+ 0x9e4c458c,
+ 0x2c80c400,
+ 0xcbff7640,
+ 0xb5802a7e,
+ 0xc000448c,
+ 0xffd49142,
+ 0xb7809871,
+ 0xcbfe448c,
+ 0xb5802a7d,
+ 0xb77f448c,
+ 0x74c07f6c,
+ 0x9362c000,
+ 0xb7809e99,
+ 0xd032610c,
+ 0x2d410d1e,
+ 0xf2489e53,
+ 0x5d0da986,
+ 0xc0211d04,
+ 0xffb43d00,
+ 0xb74099ff,
+ 0xb77f610c,
+ 0xf0487f6c,
+ 0xf210a947,
+ 0xf0488027,
+ 0xb780a245,
+ 0xc100448c,
+ 0x75002a00,
+ 0x9142c000,
+ 0x9ad4ffb4,
+ 0x448cb780,
+ 0x2a7dcefe,
+ 0x448cb580,
+ 0x440cb780,
+ 0x2a00c004,
+ 0xc0027500,
+ 0xd15192a2,
+ 0xb7200ed8,
+ 0xda08440a,
+ 0xba09aa21,
+ 0xba244002,
+ 0x0a0c4002,
+ 0xc0027048,
+ 0xb73f90f8,
+ 0xb7607eec,
+ 0xc0044f14,
+ 0x0d1e0982,
+ 0x0a12d011,
+ 0x2a7cc00e,
+ 0x7eecb59f,
+ 0x99c2ffb4,
+ 0x4f94b760,
+ 0x0982c002,
+ 0xffb40d0e,
+ 0xb74099bb,
+ 0xf2104f1c,
+ 0xb740aa39,
+ 0xf2084f84,
+ 0xb75fa8a1,
+ 0xf2507eec,
+ 0xc301a8a2,
+ 0xb5408120,
+ 0x70824f1c,
+ 0x8322c001,
+ 0x4f84b540,
+ 0x9286c000,
+ 0x62199e4b,
+ 0xf3106097,
+ 0xe2108821,
+ 0x09028aa3,
+ 0x7eecb55f,
+ 0x0a00c010,
+ 0x4f0cb580,
+ 0x0880c008,
+ 0x4f8cb520,
+ 0x448cb780,
+ 0x3a00c041,
+ 0x448cb580,
+ 0x448cb780,
+ 0x2a00c005,
+ 0xc0047500,
+ 0xf2109142,
+ 0xf210a9c2,
+ 0x09c2a945,
+ 0x0c820d42,
+ 0xffb40882,
+ 0xf2089996,
+ 0xc020aa59,
+ 0x75002a00,
+ 0x9302c000,
+ 0xa9aaf210,
+ 0xa931f210,
+ 0x0d2209a2,
+ 0x08820c82,
+ 0x99a3ffb4,
+ 0xa9aef210,
+ 0xa931f210,
+ 0x0d2209a2,
+ 0x08820c82,
+ 0x99b7ffb4,
+ 0x9180c000,
+ 0xa9aaf210,
+ 0xa931f210,
+ 0x0d2209c2,
+ 0x08820c82,
+ 0x996fffb4,
+ 0x448cb720,
+ 0xc1010203,
+ 0x75002a00,
+ 0x9122c001,
+ 0xa8eada48,
+ 0xa963f208,
+ 0x28feceff,
+ 0x448cb520,
+ 0xa8edda48,
+ 0xa968f20a,
+ 0xe2205c90,
+ 0xf20880ab,
+ 0x0203a967,
+ 0xc200588c,
+ 0xf3105a0c,
+ 0xe2108221,
+ 0xf20880a3,
+ 0xf208a0e2,
+ 0xf208a269,
+ 0xf210a0e5,
+ 0xf210a0c2,
+ 0xf210a0c9,
+ 0xc001a24d,
+ 0xf2089040,
+ 0xf210aa59,
+ 0xc020a8c1,
+ 0x75002a00,
+ 0xf21008c0,
+ 0xc000a0c1,
+ 0xf2109182,
+ 0xf210aa29,
+ 0x0a20a8ad,
+ 0xa229f210,
+ 0xc00008a0,
+ 0xf2109140,
+ 0xf210aa29,
+ 0x0a40a8ad,
+ 0xa229f210,
+ 0xf21008c0,
+ 0xb780a0ad,
+ 0xcffb448c,
+ 0xc0092a7e,
+ 0xb5803a00,
+ 0xb780448c,
+ 0x75004e0c,
+ 0x9142c000,
+ 0x0c82c040,
+ 0xc000b481,
+ 0x0a02c201,
+ 0xc000b481,
+ 0x448cb780,
+ 0x2a00c008,
+ 0xc0007500,
+ 0xc1119362,
+ 0xc04e0902,
+ 0x0df20940,
+ 0x0d020982,
+ 0x9b91ffb4,
+ 0x0902c111,
+ 0x0940c026,
+ 0x09820df6,
+ 0x0d42c004,
+ 0x9b87ffb4,
+ 0x448cb780,
+ 0x2a7dcff6,
+ 0x448cb580,
+ 0x448cb780,
+ 0x2a00c080,
+ 0xc0007500,
+ 0xb76091c2,
+ 0xba1b4412,
+ 0xc0144003,
+ 0xb7809ad0,
+ 0xcf7e448c,
+ 0xb5802a7d,
+ 0xb780448c,
+ 0xc010448c,
+ 0x75002a00,
+ 0x93e2c001,
+ 0x0902c121,
+ 0x0940c00e,
+ 0x09820d9e,
+ 0xffb40d02,
+ 0xc1219b40,
+ 0xc0860902,
+ 0x0da20940,
+ 0x0d020982,
+ 0x9b37ffb4,
+ 0x7e6cb77f,
+ 0xc00174c0,
+ 0xf2089002,
+ 0x2a40aa59,
+ 0xc0007500,
+ 0xc1219342,
+ 0xc0020902,
+ 0x0da60900,
+ 0x0d060982,
+ 0x9b23ffb4,
+ 0x0902c121,
+ 0x0900c080,
+ 0x09820da6,
+ 0xffb40d16,
+ 0xb7809b1a,
+ 0xc021448c,
+ 0xb5803a00,
+ 0xb780448c,
+ 0xcfee448c,
+ 0xc0202a7d,
+ 0xb5803a00,
+ 0xb780448c,
+ 0xc800448c,
+ 0x75002a00,
+ 0x92c2c000,
+ 0x7d6cb79f,
+ 0x4412b760,
+ 0xa95af208,
+ 0xba1b0189,
+ 0x5d114003,
+ 0x2d044d04,
+ 0x9bd1ffb4,
+ 0x448cb780,
+ 0x2a7ec7fe,
+ 0x448cb580,
+ 0x448cb780,
+ 0x2a00c200,
+ 0xc0007500,
+ 0x0d8690c2,
+ 0xffb40982,
+ 0xb7809a32,
+ 0xc041448c,
+ 0x75002a00,
+ 0x9342c000,
+ 0x0902c101,
+ 0x0940c002,
+ 0x09820da6,
+ 0xffb40d02,
+ 0xc1019ad6,
+ 0xc0800902,
+ 0x0da60940,
+ 0x0d120982,
+ 0x9acdffb4,
+ 0x448cb780,
+ 0x2a7ecfbf,
+ 0x448cb580,
+ 0x448cb720,
+ 0xc0090203,
+ 0x75002a00,
+ 0x9142c001,
+ 0x0902c101,
+ 0x0940c00e,
+ 0x28fecff7,
+ 0x448cb520,
+ 0x09820d9e,
+ 0xffb40d02,
+ 0xf2089ab2,
+ 0xc020aa59,
+ 0x75002a00,
+ 0x91a2c000,
+ 0x0902c101,
+ 0x0940c006,
+ 0x09820da2,
+ 0xffb40d02,
+ 0xc0009aa2,
+ 0xc1019160,
+ 0xc0860902,
+ 0x0da20940,
+ 0x0d020982,
+ 0x9a97ffb4,
+ 0x0902c1c1,
+ 0x0940c006,
+ 0x09820dce,
+ 0xffb40d02,
+ 0xc0149806,
+ 0xc0309a13,
+ 0x9e790c8a,
+ 0xc000b421,
+ 0x4e0cb780,
+ 0xb4810c88,
+ 0xcc01c000,
+ 0x1c880882,
+ 0xc000b421,
+ 0x9999c054,
+ 0x4e0cb780,
+ 0x2a00c008,
+ 0x09027500,
+ 0x7f6cb55f,
+ 0x9342c000,
+ 0x0c8ac450,
+ 0xb4619e7b,
+ 0xb104c000,
+ 0xc00e4220,
+ 0xb59f2a7c,
+ 0x00897f6c,
+ 0xb4611c84,
+ 0xb104c000,
+ 0x2a104220,
+ 0xc0007500,
+ 0x589090a4,
+ 0x7f6cb53f,
+ 0x440cb780,
+ 0xc0309e79,
+ 0xb5800c8a,
+ 0xb4214e0c,
+ 0xc801c000,
+ 0xc0020a02,
+ 0xb4810a00,
+ 0x08bec000,
+ 0x0c94c004,
+ 0xc000b421,
+ 0x0d82c0c0,
+ 0x9a2bffb4,
+ 0x4112b760,
+ 0x438cb780,
+ 0x9c629ea4,
+ 0x470cb720,
+ 0x0caec034,
+ 0xb4215891,
+ 0x0c82c000,
+ 0xc0007640,
+ 0xb75f9224,
+ 0x74807f6c,
+ 0x9182c000,
+ 0x2941093c,
+ 0x09820dea,
+ 0x19400d02,
+ 0x3900c121,
+ 0x9a21ffb4,
+ 0x9989c014,
+ 0x7408b785,
+ 0xb7607500,
+ 0xc000480c,
+ 0x29f990a2,
+ 0x7410b5e5,
+ 0xaa59da88,
+ 0x7d3edffc,
+ 0x92c2c002,
+ 0x4292b700,
+ 0xba249e44,
+ 0xc001400a,
+ 0xb72093dc,
+ 0xb7404392,
+ 0x9e4a5d04,
+ 0xba129e2d,
+ 0xc1004002,
+ 0xc2005a7f,
+ 0x02285a6d,
+ 0x5a17c200,
+ 0x5908d226,
+ 0xc2000886,
+ 0xe0385a14,
+ 0x1228a9ce,
+ 0x5130d024,
+ 0xc0017ac4,
+ 0xb7209042,
+ 0xda88420a,
+ 0xba09aa5d,
+ 0x2a1c4002,
+ 0x70820098,
+ 0x92f8c000,
+ 0xc0007482,
+ 0xb78590e4,
+ 0x75026e08,
+ 0x91e2c000,
+ 0x1c82d011,
+ 0xb5209e54,
+ 0x9e59428a,
+ 0xb5200c84,
+ 0x29f94212,
+ 0x22184a7d,
+ 0xb780a241,
+ 0xb720440a,
+ 0xba24448a,
+ 0x71024002,
+ 0x438ab780,
+ 0xd00c0882,
+ 0xba240892,
+ 0x02424002,
+ 0x438ab580,
+ 0xaa59f208,
+ 0x75002a04,
+ 0x91e2c000,
+ 0x5608b782,
+ 0xc0007500,
+ 0xb7859142,
+ 0x75006188,
+ 0x38b2d031,
+ 0x4422b331,
+ 0xc03e0183,
+ 0xb4610c82,
+ 0xb73fc000,
+ 0x87027d6c,
+ 0x440ab780,
+ 0xb55f0a82,
+ 0x74407de4,
+ 0xb5800a04,
+ 0xffdf440a,
+ 0xb7809162,
+ 0xd3ff448c,
+ 0xffdf7d3e,
+ 0xb73f90a4,
+ 0x76407f74,
+ 0x9004ffdf,
+ 0x7ceeb79f,
+ 0x7d6eb7bf,
+ 0x7deeb7df,
+ 0x7e6eb7ff,
+ 0x8c60c002,
+ 0xa6059c22,
+ 0x8420c004,
+ 0x0ca2c829,
+ 0x0ca0c598,
+ 0xac3dc030,
+ 0x8d00e133,
+ 0xa45dc038,
+ 0xac3dc030,
+ 0xa45dc038,
+ 0xac3dc010,
+ 0xa45dc018,
+ 0xac25c010,
+ 0xa445c018,
+ 0x4604b740,
+ 0xaa41f000,
+ 0x5f8cb7a0,
+ 0xc2009e2d,
+ 0xd0935a08,
+ 0x9ea90940,
+ 0xa96de020,
+ 0xc0080dc2,
+ 0x09c20d42,
+ 0x9b35ff94,
+ 0x610cb780,
+ 0xa8a1f208,
+ 0xf2088502,
+ 0xf208a8a6,
+ 0xf208a103,
+ 0xf208a085,
+ 0xf208a929,
+ 0xf208a08a,
+ 0xf208a92e,
+ 0xf208a8b2,
+ 0xf248a10d,
+ 0xf208a8b1,
+ 0xf208a112,
+ 0xf208a096,
+ 0x090aa09a,
+ 0x0c92c036,
+ 0xf24808c0,
+ 0xb441a085,
+ 0x0a16c000,
+ 0xb4811c8c,
+ 0xf031c000,
+ 0xe1318c00,
+ 0x9ea38d80,
+ 0x5f8cb7a0,
+ 0x7ffcb55f,
+ 0xb9600d02,
+ 0xf2084078,
+ 0x9dbaa103,
+ 0x5d0dd122,
+ 0xf0299e2d,
+ 0xd012a8e5,
+ 0x5c882cae,
+ 0x5908d126,
+ 0xe0389e4a,
+ 0x0d04aa4d,
+ 0x50a828bc,
+ 0xa2413242,
+ 0x91c1ffff,
+ 0xaa61f010,
+ 0x0c8ec036,
+ 0xc000b481,
+ 0x7fecb73f,
+ 0xb4211c84,
+ 0xc054c000,
+ 0xd111987c,
+ 0xd1120a5c,
+ 0xc80108d8,
+ 0xc11209c2,
+ 0xda080990,
+ 0x8502a881,
+ 0x0a42c809,
+ 0x0a30c65e,
+ 0x404bb740,
+ 0x439ab540,
+ 0x431ab540,
+ 0x438cb580,
+ 0x0cbec032,
+ 0x58a36094,
+ 0x778ab522,
+ 0xc000b461,
+ 0x0ce00a3e,
+ 0xc000b481,
+ 0xc0800882,
+ 0xb4210cc6,
+ 0xc801c000,
+ 0xc1120a42,
+ 0xc0320a18,
+ 0xb4810cc2,
+ 0x08c0c000,
+ 0xb4210cdc,
+ 0x0a02c000,
+ 0x0cc6c080,
+ 0xc000b481,
+ 0x08c2c801,
+ 0x0890c114,
+ 0x0cc6c032,
+ 0xc000b421,
+ 0x0cd80a44,
+ 0xc000b481,
+ 0xc0800882,
+ 0xb4210cc6,
+ 0xc801c000,
+ 0xc1140a42,
+ 0xc0320a18,
+ 0xb4810cca,
+ 0x08c8c000,
+ 0xb4210cd4,
+ 0x0a02c000,
+ 0x0cc6c080,
+ 0xc000b481,
+ 0x7aeeb79f,
+ 0x7b6eb7bf,
+ 0x8c60c004,
+ 0x08829c22,
+ 0x0c92c001,
+ 0x0c84c332,
+ 0xc000b421,
+ 0x4d0cb780,
+ 0x0a10873e,
+ 0x9c8bc040,
+ 0xc238b780,
+ 0xb7809c22,
+ 0x0a40470c,
+ 0x7520c00c,
+ 0x470cb580,
+ 0x48b4b340,
+ 0xb5408502,
+ 0x9c22471c,
+ 0x4d0cb780,
+ 0xa895f208,
+ 0xa88ef208,
+ 0xa905f208,
+ 0xa99df208,
+ 0xa906f288,
+ 0xa09df208,
+ 0xa096f208,
+ 0xa10df208,
+ 0xa185f208,
+ 0xa899f208,
+ 0xa892f208,
+ 0xa909f208,
+ 0xa981f248,
+ 0xa081f248,
+ 0xa09af208,
+ 0xa111f208,
+ 0xa189f208,
+ 0xa881f288,
+ 0xa995f248,
+ 0xa89ef248,
+ 0xa90df248,
+ 0xa085f288,
+ 0xa18df248,
+ 0xa999f248,
+ 0xa082f288,
+ 0xa115f248,
+ 0xa891f248,
+ 0xa191f248,
+ 0xa989f288,
+ 0xa89af288,
+ 0xa099f248,
+ 0xa10af288,
+ 0xa19df248,
+ 0xa99df288,
+ 0xa09ef288,
+ 0xa895f288,
+ 0xa892f288,
+ 0xa90df288,
+ 0xa099f288,
+ 0xa096f288,
+ 0xa111f288,
+ 0xa18df288,
+ 0xa60d9c22,
+ 0x0a42c801,
+ 0x0a00cb10,
+ 0x0ceac032,
+ 0xc000b481,
+ 0x08c2c801,
+ 0x0888c010,
+ 0xb4210c84,
+ 0xc008c000,
+ 0xc0020a42,
+ 0xb4811ce4,
+ 0xc008c000,
+ 0xc03008c2,
+ 0xb4220d0e,
+ 0xc450c000,
+ 0xc0080c82,
+ 0xb4811a40,
+ 0xb101c000,
+ 0xc0024220,
+ 0xb52038c0,
+ 0xc0504e8c,
+ 0xb4210c82,
+ 0xc0c0c000,
+ 0x09920d82,
+ 0x0d02c008,
+ 0x0902c008,
+ 0x9863ffd4,
+ 0x0c86c450,
+ 0xb4810a02,
+ 0xb103c000,
+ 0xc0084220,
+ 0xc0300a00,
+ 0xb4820d0e,
+ 0x0c84c000,
+ 0x1a00c008,
+ 0xc000b481,
+ 0x4220b105,
+ 0x5a35c280,
+ 0x0882c801,
+ 0xc00e08c0,
+ 0xc2802afc,
+ 0xd0725a90,
+ 0x9ead2b4e,
+ 0x0c8ac030,
+ 0xc000b421,
+ 0x0c840a42,
+ 0xc000b481,
+ 0xb7c07740,
+ 0xc001610c,
+ 0xd0319002,
+ 0x0dea0ede,
+ 0x0d020982,
+ 0xd0512ac1,
+ 0xc1211950,
+ 0xff943900,
+ 0xf2489bb6,
+ 0x018ba9c6,
+ 0x5a8dc280,
+ 0x9eaa1a84,
+ 0x3d00c021,
+ 0x9918ff94,
+ 0xaa45f248,
+ 0x16dcd010,
+ 0xf248024a,
+ 0xc450a245,
+ 0x0a020c86,
+ 0xc000b481,
+ 0x4220b103,
+ 0xc0340a6c,
+ 0xb4810c9e,
+ 0xb720c000,
+ 0xf2485f8c,
+ 0xb720aa45,
+ 0xd0534635,
+ 0xf2101940,
+ 0xc08088ab,
+ 0xc2800ca2,
+ 0xb5805a0c,
+ 0xb4a1430c,
+ 0xb785c000,
+ 0x75006008,
+ 0x9262c003,
+ 0x5a8cb721,
+ 0x590cb781,
+ 0x7c40c030,
+ 0xb5810a04,
+ 0xc000590c,
+ 0xc0349082,
+ 0xb7209a33,
+ 0xb720558c,
+ 0xb78141b5,
+ 0xb740590c,
+ 0x9e49442d,
+ 0x71046243,
+ 0x90b8c000,
+ 0xb5458506,
+ 0xb7856618,
+ 0x75006108,
+ 0x6194b7a0,
+ 0x9262c000,
+ 0x568cb7a0,
+ 0xa83df210,
+ 0xa9a1f208,
+ 0x9e840d86,
+ 0xf2089c62,
+ 0xf250a021,
+ 0x9eaba825,
+ 0x9e840986,
+ 0xb7859c62,
+ 0x75006108,
+ 0x9164c000,
+ 0x5694b760,
+ 0xa825f210,
+ 0x9c629e84,
+ 0xc0000281,
+ 0xb7859220,
+ 0x75006088,
+ 0x9102c000,
+ 0x578cb780,
+ 0xaa81f208,
+ 0x90c0c000,
+ 0x580cb780,
+ 0xaa8df208,
+ 0x5b8cb720,
+ 0x4129b780,
+ 0x03037500,
+ 0x9264c000,
+ 0x6108b785,
+ 0xc0007500,
+ 0xf25090c4,
+ 0x9ea4aa21,
+ 0xb7409c62,
+ 0xf210431c,
+ 0xe320aa35,
+ 0x9ea489a3,
+ 0xf2109c62,
+ 0x9eabaa39,
+ 0x9ea4018d,
+ 0xb7829c62,
+ 0x75005688,
+ 0x5788b722,
+ 0xd0020c82,
+ 0xb7600c92,
+ 0x7440560c,
+ 0x7008b785,
+ 0x5710b742,
+ 0xd0020902,
+ 0xd0c80922,
+ 0x7500a9f1,
+ 0x9e4c5ca0,
+ 0xd0020882,
+ 0x76800892,
+ 0x0a0231c6,
+ 0x0a42d002,
+ 0x7692b722,
+ 0x31a65924,
+ 0x319658a8,
+ 0x767ec01c,
+ 0x5a2cc200,
+ 0xc00031c6,
+ 0xc00e90d4,
+ 0xb542857e,
+ 0xb720769a,
+ 0xb782428a,
+ 0xdffc768a,
+ 0xc2007c7e,
+ 0x32b85a40,
+ 0x91c4c000,
+ 0x5594b720,
+ 0x420ab720,
+ 0x414bb780,
+ 0x4002ba09,
+ 0x70481a04,
+ 0x91b8c000,
+ 0x6e08b785,
+ 0x08827500,
+ 0x0892d001,
+ 0xb5408502,
+ 0xb525421a,
+ 0xc0806e08,
+ 0xb4a10ca6,
+ 0xb720c000,
+ 0x0c84538c,
+ 0x402db780,
+ 0xc000b481,
+ 0x5394b7a0,
+ 0x0da2c002,
+ 0x9b38ffb4,
+ 0xaa21f210,
+ 0xffff7008,
+ 0xc0029324,
+ 0xffb40d92,
+ 0x700a9b2f,
+ 0x9364ffff,
+ 0x09c20d86,
+ 0xc1210d0a,
+ 0xff940902,
+ 0xb7809812,
+ 0xf2485f8c,
+ 0xc0a1a992,
+ 0x0d040d02,
+ 0xff7409c2,
+ 0xc0c09bfd,
+ 0x09920d82,
+ 0x09420d42,
+ 0x9afdffb4,
+ 0xc0300a42,
+ 0xb4810c8e,
+ 0xb79fc000,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0xb7009c22,
+ 0x76c05f8c,
+ 0x0d820c02,
+ 0x9342c000,
+ 0x448cb780,
+ 0x0880d131,
+ 0x4033b720,
+ 0x5014b500,
+ 0x5094b500,
+ 0x4a14b500,
+ 0x76402c88,
+ 0x2a7ecdff,
+ 0x448cb580,
+ 0xc0008522,
+ 0x85129062,
+ 0x4c1cb540,
+ 0xb74074c0,
+ 0xc0005e14,
+ 0xb78092e2,
+ 0x8502448c,
+ 0xa8c1d810,
+ 0x509cb540,
+ 0x441cb540,
+ 0x5d9cb541,
+ 0x4c9cb540,
+ 0x4a1cb540,
+ 0x500cb520,
+ 0x2a7ecdff,
+ 0x448cb580,
+ 0x0880d131,
+ 0x4033b720,
+ 0x440cb780,
+ 0x2c14d012,
+ 0xc0080089,
+ 0x75002a00,
+ 0x28fdcffa,
+ 0x440cb520,
+ 0x92c2c000,
+ 0x448cb780,
+ 0xc8007600,
+ 0xb5803a00,
+ 0xc000448c,
+ 0x850690e4,
+ 0x7818b545,
+ 0x9100c000,
+ 0x7808b785,
+ 0x3a080d86,
+ 0x7808b585,
+ 0x7808b745,
+ 0x2a22d011,
+ 0xc0007500,
+ 0xb7809102,
+ 0xc010448c,
+ 0xb5803a00,
+ 0xb780448c,
+ 0x75004c8c,
+ 0x90e2c000,
+ 0x440cb780,
+ 0xb5802a79,
+ 0xb720440c,
+ 0xb7204414,
+ 0x9e4c4c0c,
+ 0xd3f17902,
+ 0xc2002a2e,
+ 0xb5855a05,
+ 0xc0007808,
+ 0xd2119102,
+ 0xb5803e10,
+ 0xc000440c,
+ 0xcff690c0,
+ 0xb5202cfd,
+ 0xb7204414,
+ 0xd1114414,
+ 0x75002e10,
+ 0x90a2c000,
+ 0xb5408506,
+ 0x76004a9c,
+ 0x5e1dd0a2,
+ 0xd0020882,
+ 0x2a040892,
+ 0xc0007902,
+ 0xd1119102,
+ 0xb5803e10,
+ 0xc000440c,
+ 0x76c09120,
+ 0x90c2c000,
+ 0x3c80c020,
+ 0x4414b520,
+ 0x440cb720,
+ 0x2a12d011,
+ 0xc0007500,
+ 0xb78090e2,
+ 0x32184c0c,
+ 0x90c0c000,
+ 0x4c0cb780,
+ 0x22184a7d,
+ 0x440cb580,
+ 0x440cb720,
+ 0x2a14d011,
+ 0xc0007500,
+ 0xd0119102,
+ 0xb5803a12,
+ 0xc000440c,
+ 0x28f990a0,
+ 0x440cb520,
+ 0xa8c1d810,
+ 0x501cb740,
+ 0xaa45d810,
+ 0x88a3e210,
+ 0x5a11c200,
+ 0xc0037048,
+ 0xd1119036,
+ 0xda080a08,
+ 0xb720a882,
+ 0xb740440c,
+ 0x5c914a0c,
+ 0xb7409e4c,
+ 0x38884494,
+ 0x440cb520,
+ 0xc1007088,
+ 0xb5403d00,
+ 0xc0004494,
+ 0xb7219278,
+ 0x9e545d8c,
+ 0xc0017440,
+ 0xb5803a04,
+ 0xc000448c,
+ 0xc0119124,
+ 0xb5403d04,
+ 0x85064494,
+ 0x5d9cb541,
+ 0x088cd112,
+ 0x404bb780,
+ 0x500cb720,
+ 0x5a11c200,
+ 0xc0007048,
+ 0xb7809116,
+ 0xc001448c,
+ 0xb5803a10,
+ 0xb780448c,
+ 0xc200404b,
+ 0x1a085a11,
+ 0xc0007048,
+ 0xb7809116,
+ 0xc001448c,
+ 0xb5803a40,
+ 0xb720448c,
+ 0xd1115094,
+ 0xda080a08,
+ 0x9e4ca881,
+ 0x71025891,
+ 0x9102c000,
+ 0x448cb780,
+ 0x3a00c005,
+ 0x448cb580,
+ 0x448cb780,
+ 0x3a00c084,
+ 0x448cb580,
+ 0x91a0c000,
+ 0x440cb780,
+ 0x448cb720,
+ 0xb5802a75,
+ 0xcffa440c,
+ 0xb52028fd,
+ 0xb740448c,
+ 0xf012440c,
+ 0xc0002922,
+ 0xb7809102,
+ 0xc080448c,
+ 0xb5803a00,
+ 0xb780448c,
+ 0xb7204a0c,
+ 0xb7204c14,
+ 0x0a04508c,
+ 0x4a0cb580,
+ 0x78889e4c,
+ 0xb5200884,
+ 0xc000508c,
+ 0x76809222,
+ 0x91c4c000,
+ 0x478cb720,
+ 0x3a22d011,
+ 0x440cb580,
+ 0xb5408506,
+ 0x28f94c9c,
+ 0x478cb520,
+ 0x0a08d111,
+ 0xa881da08,
+ 0x5094b720,
+ 0x18c0c002,
+ 0x5a7fc080,
+ 0x5a71c200,
+ 0x9e4c0098,
+ 0x478cb740,
+ 0x71025893,
+ 0x480cb540,
+ 0x9044c001,
+ 0x448cb740,
+ 0xc0800205,
+ 0x75002a00,
+ 0x9342c000,
+ 0x5014b720,
+ 0x76420205,
+ 0x3a00c201,
+ 0x448cb580,
+ 0x921cc000,
+ 0x0a0cd111,
+ 0xa881da08,
+ 0x9e4c0c8c,
+ 0x71025891,
+ 0x90d6c000,
+ 0x3900ca01,
+ 0x448cb540,
+ 0x5094b720,
+ 0x0a08d111,
+ 0xa881da08,
+ 0x58919e4c,
+ 0xc0007102,
+ 0xb7209278,
+ 0x0203448c,
+ 0x2a00c005,
+ 0xc0007500,
+ 0xc1019162,
+ 0xb5203880,
+ 0x8506448c,
+ 0x4b1cb540,
+ 0x4b9cb540,
+ 0xc0007600,
+ 0xb7809122,
+ 0x750c508c,
+ 0x9122c000,
+ 0x92a0c000,
+ 0x508cb780,
+ 0xc000750a,
+ 0xb7809204,
+ 0x75004b0c,
+ 0x9162c000,
+ 0x448cb780,
+ 0xb5408502,
+ 0xc4014b1c,
+ 0xb5803a00,
+ 0xb780448c,
+ 0x7506508c,
+ 0x9204c000,
+ 0x4b8cb780,
+ 0xc0007500,
+ 0xb7809162,
+ 0x8502448c,
+ 0x4b9cb540,
+ 0x3a00c800,
+ 0x448cb580,
+ 0x5094b720,
+ 0x0a08d111,
+ 0xa881da08,
+ 0x58919e4c,
+ 0xc0007102,
+ 0xb7809158,
+ 0x8502500c,
+ 0x509cb540,
+ 0xb5800a04,
+ 0xb780500c,
+ 0x7500440c,
+ 0xc0008502,
+ 0xb7809144,
+ 0xc400448c,
+ 0x75002a00,
+ 0xe0018502,
+ 0x9d438522,
+ 0xa6059c22,
+ 0x6088b785,
+ 0xb7a07500,
+ 0xc0025d8c,
+ 0xb7609202,
+ 0xb7614210,
+ 0xb7a05c8c,
+ 0xba1b5c94,
+ 0xc0944001,
+ 0xd21098cf,
+ 0xd231a9a2,
+ 0xba000a50,
+ 0xf2084002,
+ 0xba1ba001,
+ 0xc0944001,
+ 0xb76198af,
+ 0xd2105c8c,
+ 0xd251a9a2,
+ 0xba000a50,
+ 0xf2084002,
+ 0xba1ba001,
+ 0xc0944001,
+ 0xb72198b5,
+ 0xd2315a94,
+ 0xe04008d8,
+ 0xba002c80,
+ 0xb5004002,
+ 0xc000402d,
+ 0xd2109202,
+ 0xba1ba9a2,
+ 0xc0944001,
+ 0xd25198c9,
+ 0xba000a58,
+ 0xf2084002,
+ 0xc000a001,
+ 0xd25190c0,
+ 0xf2080a58,
+ 0xb722a082,
+ 0xd2717392,
+ 0xb78008d8,
+ 0x9e49402d,
+ 0xd2716243,
+ 0xb58008d0,
+ 0xd231402d,
+ 0xf2080a50,
+ 0x7500aa01,
+ 0x90c2c000,
+ 0x0cb6c03e,
+ 0xc000b481,
+ 0x0a50d251,
+ 0xa881f208,
+ 0x0caac03e,
+ 0xc000b421,
+ 0x0a58d231,
+ 0xaa01f208,
+ 0xc0007500,
+ 0xc2009122,
+ 0xc8015a40,
+ 0x0c903a00,
+ 0xc000b481,
+ 0x0a58d251,
+ 0xaa01f208,
+ 0xc0007500,
+ 0xc03e90c2,
+ 0xb4810ca2,
+ 0xd271c000,
+ 0xf2080a50,
+ 0xc03ea881,
+ 0xb4210c8a,
+ 0xb79fc000,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa60d9c22,
+ 0x0c92c43e,
+ 0xb4810a02,
+ 0xb103c000,
+ 0xb7804220,
+ 0xda085a0c,
+ 0xda08a885,
+ 0xda08a909,
+ 0xda08a189,
+ 0xda08a081,
+ 0x0cd0a105,
+ 0xb4810a02,
+ 0xb103c000,
+ 0xb7804220,
+ 0xb760598c,
+ 0xda085a1c,
+ 0xda08a885,
+ 0xda08a88a,
+ 0xc008a189,
+ 0x76c02d80,
+ 0xda080309,
+ 0xda08a081,
+ 0xc012a086,
+ 0xb78093a2,
+ 0x0a044a08,
+ 0x4a08b580,
+ 0x0ca6c450,
+ 0xb4810a02,
+ 0xb103c000,
+ 0x00874220,
+ 0x2880c031,
+ 0xc00f0207,
+ 0xd0a42a7c,
+ 0xd2285961,
+ 0x028759c1,
+ 0x2afccffe,
+ 0x0a020c88,
+ 0xc000b481,
+ 0x4220b103,
+ 0x5ac1d1a4,
+ 0xcffe0007,
+ 0x0cbc287c,
+ 0xc000b481,
+ 0x4220b103,
+ 0xb7250087,
+ 0xb7826090,
+ 0xc0fc738a,
+ 0xd0f22880,
+ 0xd0a429be,
+ 0x9e595b19,
+ 0x7392b562,
+ 0x12187640,
+ 0x4002ba14,
+ 0x90e4c000,
+ 0x6108b785,
+ 0xc0057500,
+ 0xb7859284,
+ 0x75006108,
+ 0x4442b351,
+ 0x0007d011,
+ 0x06d2d021,
+ 0x5e0cb780,
+ 0x0c827682,
+ 0x0c92d001,
+ 0xa899f208,
+ 0x28849e4a,
+ 0x9ea17844,
+ 0x5694b700,
+ 0x90e2c000,
+ 0x414ab780,
+ 0xb5800a04,
+ 0xb740414a,
+ 0xb740415c,
+ 0xf31041c4,
+ 0xe210802b,
+ 0xb58082a1,
+ 0xb520414c,
+ 0xb78241cc,
+ 0x75005608,
+ 0xd0020882,
+ 0x76820892,
+ 0xd0020a02,
+ 0x78480a42,
+ 0x90c2c000,
+ 0x8542c07c,
+ 0xa163d818,
+ 0xb7407682,
+ 0xc000425c,
+ 0xda0890c4,
+ 0xc000aa41,
+ 0xd8189080,
+ 0xe310aa61,
+ 0xb78080a1,
+ 0xb52041ca,
+ 0x7686424c,
+ 0xb5800a04,
+ 0xc00041ca,
+ 0xb7809124,
+ 0x0a044a88,
+ 0x4a88b580,
+ 0x90a0c000,
+ 0xb5408502,
+ 0xb7804a98,
+ 0xdffc4b4b,
+ 0xc0087d3e,
+ 0x768293e2,
+ 0x93a4c000,
+ 0x430ab780,
+ 0x5d04b740,
+ 0x4002ba24,
+ 0xc2000a04,
+ 0x58ed58ff,
+ 0x589700c2,
+ 0x5908d0a6,
+ 0x58949e2d,
+ 0x9e511242,
+ 0xa8cee038,
+ 0x4a7d5230,
+ 0x24949ea2,
+ 0xc001a0c2,
+ 0xb78091a0,
+ 0xd818418a,
+ 0xba24a8e1,
+ 0x70484002,
+ 0x909cc001,
+ 0x768ab782,
+ 0x4312b720,
+ 0x5d04b740,
+ 0xb5820a04,
+ 0xba09768a,
+ 0x0c844003,
+ 0x5e7fd0a2,
+ 0x9e2d9e49,
+ 0x5a6dc200,
+ 0xc2000218,
+ 0xd2265a17,
+ 0xc2005908,
+ 0x9ea25a14,
+ 0xa94de038,
+ 0x9e4c1494,
+ 0x50b00886,
+ 0xa1413122,
+ 0x430ab780,
+ 0xb5800a04,
+ 0xc006430a,
+ 0xb72091e0,
+ 0xb7205e0c,
+ 0xb7805694,
+ 0x9e69432d,
+ 0x4545b740,
+ 0x75002a04,
+ 0xd0300202,
+ 0xf010014a,
+ 0xf3108027,
+ 0x04038221,
+ 0x454db580,
+ 0x90a2c001,
+ 0xc0007682,
+ 0xda0890c4,
+ 0xc000aa41,
+ 0xd8189080,
+ 0xb580aa61,
+ 0x768643ca,
+ 0x9082c001,
+ 0xc0007680,
+ 0x748091a4,
+ 0x425ab740,
+ 0x8d2ae002,
+ 0x8021f210,
+ 0x424ab580,
+ 0x92c0c000,
+ 0xb7407480,
+ 0xe00244da,
+ 0xc0008d26,
+ 0xda089160,
+ 0x7480aa41,
+ 0x44dab740,
+ 0x43cab580,
+ 0x8d2ae002,
+ 0x8021f210,
+ 0x44cab580,
+ 0x6208b785,
+ 0xc0007500,
+ 0xb7809302,
+ 0x9e5a410a,
+ 0xc0007088,
+ 0x85029244,
+ 0x6218b545,
+ 0x0c82c43a,
+ 0xb4810a02,
+ 0xb103c000,
+ 0xcfef4220,
+ 0xc03a29fe,
+ 0xb4610c82,
+ 0xb780c000,
+ 0x9e59410a,
+ 0x08827048,
+ 0x0892d002,
+ 0x0a027686,
+ 0x0a42d001,
+ 0xc0007848,
+ 0x85069242,
+ 0x6218b545,
+ 0x0c82c43a,
+ 0xb4810a02,
+ 0xb103c000,
+ 0xc0114220,
+ 0xc03a3980,
+ 0xb4610c82,
+ 0x7780c000,
+ 0x91a2c001,
+ 0xc0007680,
+ 0xd81892e4,
+ 0xb740aa61,
+ 0xb72040dc,
+ 0xb72042ca,
+ 0x9e5a4352,
+ 0x8021f310,
+ 0xb52000a2,
+ 0x0c8442ca,
+ 0x4352b520,
+ 0x40ccb580,
+ 0x92a0c000,
+ 0xaa41da08,
+ 0x435cb740,
+ 0x454ab720,
+ 0x8021f310,
+ 0x45d2b720,
+ 0x434cb580,
+ 0x0c849e5c,
+ 0x45d2b520,
+ 0xb52000c2,
+ 0xb780454a,
+ 0xb74043ca,
+ 0xb74043dc,
+ 0xb7604444,
+ 0xf31044dc,
+ 0xb7408021,
+ 0xb58045dc,
+ 0xf31043cc,
+ 0xb7208223,
+ 0xb5804452,
+ 0xf010444c,
+ 0xe2108037,
+ 0x0c8480af,
+ 0x4452b520,
+ 0x44ccb580,
+ 0x45ccb520,
+ 0x6188b785,
+ 0xc0047500,
+ 0xb74092e2,
+ 0xb7205794,
+ 0xb7c0530c,
+ 0xb720558c,
+ 0xb7404154,
+ 0xf01041cc,
+ 0xb740a943,
+ 0xf2484025,
+ 0xc201aa55,
+ 0xe210812a,
+ 0xf31080a5,
+ 0x70488a21,
+ 0xc0009e55,
+ 0x850690f8,
+ 0x5618b542,
+ 0x5718b542,
+ 0xc0007045,
+ 0x850690b8,
+ 0x7018b545,
+ 0xaa3df248,
+ 0xc0037500,
+ 0xf24891a2,
+ 0x9d5ea93b,
+ 0xa8b1f248,
+ 0x0206c301,
+ 0x8021f310,
+ 0xf2487440,
+ 0xc000a239,
+ 0xf24890c4,
+ 0xf248aa29,
+ 0xf248a22d,
+ 0xf248aa31,
+ 0x0a04a8ad,
+ 0xf2487102,
+ 0xc000a231,
+ 0xf2489278,
+ 0xf248a8b9,
+ 0x7048aa3d,
+ 0x90b8c000,
+ 0xb5428506,
+ 0x85025798,
+ 0xa13bf248,
+ 0xa133f248,
+ 0x9000c002,
+ 0x9a8cc074,
+ 0xa8b5f248,
+ 0xaa31f248,
+ 0xf2887048,
+ 0xc001a021,
+ 0xb78092b8,
+ 0xf208560c,
+ 0x74c2a981,
+ 0x93c4c000,
+ 0xa8baf248,
+ 0x5d04d0a6,
+ 0xa8bdf248,
+ 0x802bf210,
+ 0xf2488502,
+ 0xc080a956,
+ 0x70885904,
+ 0x9e549e4a,
+ 0xe02e1094,
+ 0x70488524,
+ 0x9136c000,
+ 0x5608b562,
+ 0x5688b562,
+ 0x9060c000,
+ 0xb7828566,
+ 0x75005608,
+ 0x9184c000,
+ 0xaa21f288,
+ 0xc0007135,
+ 0x850690f6,
+ 0x5618b542,
+ 0x5698b542,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0xb781a605,
+ 0xc0085a8c,
+ 0x75002a00,
+ 0x9282c000,
+ 0x568cb780,
+ 0x618cb720,
+ 0xa982f208,
+ 0x452db700,
+ 0x9c629e84,
+ 0x5a8cb781,
+ 0x400ab500,
+ 0x2a7dcff6,
+ 0x5a8cb581,
+ 0x5a8cb781,
+ 0x2a00c010,
+ 0xc0017500,
+ 0xb7a091c2,
+ 0xb7a0618c,
+ 0xf2085694,
+ 0x058ba825,
+ 0x9c629e84,
+ 0xaa21f248,
+ 0x9c629ea4,
+ 0x558cb720,
+ 0x6c10b725,
+ 0x422bb780,
+ 0x70489e49,
+ 0x9222c000,
+ 0xa9a1f210,
+ 0xa83df208,
+ 0x9e840d86,
+ 0xf2489c62,
+ 0xf210aa25,
+ 0x058ba021,
+ 0x9ea40986,
+ 0xb7819c62,
+ 0xcfee5a8c,
+ 0xb5812a7d,
+ 0xb7215a8c,
+ 0x02035a8c,
+ 0x2a00c020,
+ 0xc0007500,
+ 0xcfde90c2,
+ 0xb52128fd,
+ 0xb79f5a8c,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xf8399c22,
+ 0xb781a205,
+ 0xc0305a8c,
+ 0xc0007d00,
+ 0xb7809162,
+ 0xc0084e0c,
+ 0x75002a00,
+ 0x9082c000,
+ 0x9b92fff4,
+ 0x4e14b760,
+ 0x993cff94,
+ 0xc0600a02,
+ 0xb4810ca2,
+ 0xb760c000,
+ 0xfff44e14,
+ 0xb78098f4,
+ 0xc01c4a88,
+ 0xc0007534,
+ 0x85069104,
+ 0x7418b545,
+ 0xb5408502,
+ 0xb7854a98,
+ 0x75006008,
+ 0x9282c001,
+ 0x558cb780,
+ 0x4a10b720,
+ 0xa88dda08,
+ 0x71029e4c,
+ 0x9044c001,
+ 0x5a8cb721,
+ 0xc0100203,
+ 0x75002a00,
+ 0x9102c000,
+ 0x3880c020,
+ 0x5a8cb521,
+ 0x9b5cfff4,
+ 0x5a8cb781,
+ 0x6c08b725,
+ 0x4012b720,
+ 0xb5408502,
+ 0x08844a18,
+ 0x6c08b525,
+ 0x4112b520,
+ 0x3a00c018,
+ 0x5a8cb581,
+ 0x4e0cb780,
+ 0x7500c010,
+ 0x9084c000,
+ 0x9821fff4,
+ 0xaa1df9f8,
+ 0xa61d9c22,
+ 0x5f8cb780,
+ 0x08c0d131,
+ 0x402bb720,
+ 0x2890d092,
+ 0x9ea77640,
+ 0x9022c005,
+ 0xb5458502,
+ 0x85026618,
+ 0x2a14d011,
+ 0xb5417500,
+ 0x8506591c,
+ 0x6018b545,
+ 0x9082c000,
+ 0x6098b545,
+ 0x2a10d111,
+ 0xc0007500,
+ 0xb5459082,
+ 0x02036118,
+ 0x2a00c040,
+ 0xc0007500,
+ 0xb5459082,
+ 0xb7856198,
+ 0x75006108,
+ 0x618cb7e0,
+ 0x9342c002,
+ 0x6088b785,
+ 0xc0027500,
+ 0xb78592a2,
+ 0x75006188,
+ 0x9202c002,
+ 0x0a42c809,
+ 0x0a00c84a,
+ 0x08c2c809,
+ 0x0880c8d2,
+ 0x0cc2c809,
+ 0x0cb0c92c,
+ 0x0942c809,
+ 0x0950c8f0,
+ 0x0d42c809,
+ 0x0d60c806,
+ 0x09c2c809,
+ 0x0990c6c8,
+ 0x0dc2c809,
+ 0x0da0c7a6,
+ 0x0c42c809,
+ 0x0c20c6b2,
+ 0x0842c809,
+ 0x0840c670,
+ 0x0ac2c809,
+ 0x0aa0c69e,
+ 0x0ec2c809,
+ 0x0ee0c680,
+ 0x0b42c809,
+ 0x0b10c81a,
+ 0x0f42c809,
+ 0x0f30c68e,
+ 0xa269f208,
+ 0xa0f1f208,
+ 0xa0f6f208,
+ 0xa179f208,
+ 0xa16ef208,
+ 0xa1fdf208,
+ 0xa1e2f248,
+ 0xa066f248,
+ 0xa069f248,
+ 0xa2e5f208,
+ 0xa2e2f208,
+ 0xa36df248,
+ 0xa372f248,
+ 0x608cb7a0,
+ 0xaa6df208,
+ 0x9ea49eab,
+ 0xdbc89c62,
+ 0xb740aa39,
+ 0x8502560c,
+ 0x409ab540,
+ 0xa8a1d208,
+ 0xa8bef248,
+ 0x2a00c010,
+ 0xd8087500,
+ 0xb521a0cd,
+ 0xc0005c94,
+ 0xb7819102,
+ 0xc0405a8c,
+ 0xb5813a00,
+ 0xb7855a8c,
+ 0x75006008,
+ 0x9082c005,
+ 0x5a8cb781,
+ 0x7d00c030,
+ 0x9082c000,
+ 0x9a86fff4,
+ 0x5594b720,
+ 0xaa65f2d0,
+ 0x434db720,
+ 0xb7e07048,
+ 0x0683618c,
+ 0x9102c000,
+ 0xaa6df248,
+ 0x0df8d132,
+ 0x9c629ea4,
+ 0x408ab720,
+ 0xb5428502,
+ 0xb5425698,
+ 0x74405718,
+ 0x5798b542,
+ 0x7018b545,
+ 0x90e2c000,
+ 0xaa35da10,
+ 0xc0007048,
+ 0xb7859344,
+ 0xda106088,
+ 0xf208a9b6,
+ 0x8502a8e9,
+ 0xb5407500,
+ 0x850a409a,
+ 0x8d24e001,
+ 0x1d849d4f,
+ 0x9c629e8c,
+ 0xaa71f208,
+ 0x9ea40d8a,
+ 0xc0009c62,
+ 0xf20890e0,
+ 0x0d86aa71,
+ 0x9c629ea4,
+ 0x5a8cb781,
+ 0x408ab720,
+ 0x568cb7a0,
+ 0xb5458502,
+ 0xc0086c18,
+ 0xb5813a00,
+ 0xf2085a8c,
+ 0x9eabaa61,
+ 0xb5200884,
+ 0x9ea4408a,
+ 0xb7209c62,
+ 0xb7805b8c,
+ 0x75004129,
+ 0xc0000303,
+ 0xf20892e4,
+ 0xf208a9a1,
+ 0x0d82a87d,
+ 0x9c629e84,
+ 0xa021f208,
+ 0xa865f248,
+ 0x09829eab,
+ 0x9c629e84,
+ 0xaa21da08,
+ 0x738ab582,
+ 0x9180c000,
+ 0x578cb720,
+ 0xaa29d210,
+ 0x44bbb740,
+ 0x8021f310,
+ 0x44abb580,
+ 0xa8c9d208,
+ 0xc0007440,
+ 0xb7809122,
+ 0x8506460c,
+ 0xa117f208,
+ 0x90c0c000,
+ 0x460cb780,
+ 0xa095f208,
+ 0x560cb720,
+ 0x41abb780,
+ 0x738ab582,
+ 0x400ab580,
+ 0x410ab580,
+ 0x9100c000,
+ 0x460cb780,
+ 0xa899da08,
+ 0x410ab520,
+ 0x7e6eb79f,
+ 0x7eeeb7bf,
+ 0x7f6eb7df,
+ 0x7feeb7ff,
+ 0x8c00c002,
+ 0xb7809c22,
+ 0xf034440a,
+ 0x85021d38,
+ 0x506cb322,
+ 0x7d3edffc,
+ 0xb7609e2a,
+ 0xc0006284,
+ 0x0a4a9364,
+ 0x0c9ec034,
+ 0xc000b481,
+ 0x629cb740,
+ 0xc0109dc7,
+ 0x9e59aa69,
+ 0x0cdac082,
+ 0x5a20c200,
+ 0xb4813218,
+ 0x08bec000,
+ 0x0c9ec034,
+ 0xc000b421,
+ 0x6284b760,
+ 0x621cb740,
+ 0xc0209e2d,
+ 0xba12a96d,
+ 0xd0714000,
+ 0xc0366a21,
+ 0xc2000cfa,
+ 0x58f158ff,
+ 0xc2000242,
+ 0xc2005a13,
+ 0x31285a20,
+ 0xc000b441,
+ 0xc0109de4,
+ 0x9e59aa69,
+ 0x0cfec036,
+ 0x5a20c200,
+ 0xb4813218,
+ 0x9c22c000,
+ 0x5614b720,
+ 0x404db780,
+ 0x9d3a7504,
+ 0x91c4c000,
+ 0x558cb720,
+ 0x4cabb780,
+ 0x41cbb580,
+ 0x5a40c200,
+ 0x59c1d224,
+ 0x91c0c001,
+ 0x570cb720,
+ 0x402db780,
+ 0x8821e310,
+ 0xc0007427,
+ 0x084f90b6,
+ 0x90e0c000,
+ 0x8532741a,
+ 0x4478b302,
+ 0xb7409d43,
+ 0xb722403d,
+ 0xe220738a,
+ 0x9e5a81a1,
+ 0x1a14d071,
+ 0xc0007088,
+ 0xd07190f8,
+ 0x70880a12,
+ 0x907cc000,
+ 0x0a1e9dcf,
+ 0xc0029ea1,
+ 0xcc1208ce,
+ 0x9e8972c2,
+ 0x72c2cc10,
+ 0x9c229e58,
+ 0x560cb740,
+ 0xb7208502,
+ 0x8702570c,
+ 0xaa4dd808,
+ 0xa16bf010,
+ 0xa16ff010,
+ 0xa173f010,
+ 0xa16fd810,
+ 0xa16bd810,
+ 0xa261f010,
+ 0x578cb780,
+ 0x5600b542,
+ 0x413db540,
+ 0x41bdb540,
+ 0x423db540,
+ 0x41bbb540,
+ 0x413bb540,
+ 0xa11bf248,
+ 0xa117f248,
+ 0xa113f248,
+ 0xa10bf248,
+ 0xa8ced808,
+ 0xa11ff248,
+ 0xa103f288,
+ 0xa107f288,
+ 0x4035b520,
+ 0xa6059c22,
+ 0x578cb780,
+ 0x76c09e9d,
+ 0xa19ef248,
+ 0xc0010289,
+ 0xb7809222,
+ 0xf208560c,
+ 0x7444a881,
+ 0x92e4c000,
+ 0xaa25f288,
+ 0xc0007500,
+ 0xf2489242,
+ 0xd1a4a9b5,
+ 0x9e9959fd,
+ 0x9ea10596,
+ 0x5d870d02,
+ 0xc0540596,
+ 0xb7809af1,
+ 0xdac8558c,
+ 0xf208a005,
+ 0x7500aa21,
+ 0x90e2c000,
+ 0xf2488502,
+ 0xf288a137,
+ 0xf248a127,
+ 0xc054a2aa,
+ 0xf2889b2d,
+ 0x8502a021,
+ 0x5618b542,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xb7209e5b,
+ 0xf0085714,
+ 0xf00aaa61,
+ 0xf008a968,
+ 0xb740a96e,
+ 0xb58041db,
+ 0xd808404d,
+ 0xf310aa6d,
+ 0xb7408021,
+ 0xb580415b,
+ 0xd80841cb,
+ 0xf310aa69,
+ 0xb5808021,
+ 0xf008414b,
+ 0xb520a8e9,
+ 0xf008414d,
+ 0xb760aa6d,
+ 0xb7205794,
+ 0xb580560c,
+ 0xf01041cd,
+ 0xe020a963,
+ 0xb7408325,
+ 0xf008402d,
+ 0xf210a8f1,
+ 0x7482802d,
+ 0xa261f010,
+ 0x424db520,
+ 0x9184c000,
+ 0xaa71f008,
+ 0xa967f050,
+ 0x5a0fc200,
+ 0x8021f310,
+ 0xa265f050,
+ 0xd8088502,
+ 0xd808a16f,
+ 0x8502a16b,
+ 0xf0089e50,
+ 0xf008a16b,
+ 0xf008a16f,
+ 0x9c22a173,
+ 0x5594b720,
+ 0xf0089e5a,
+ 0xb720aa41,
+ 0xc4104149,
+ 0xf0087048,
+ 0xb780a0c1,
+ 0xd01240c9,
+ 0x74c07102,
+ 0xa241f008,
+ 0x91c4c000,
+ 0x560cb720,
+ 0xaa41d808,
+ 0x5714b720,
+ 0x41abb580,
+ 0xaa41f008,
+ 0x404db580,
+ 0x9c220802,
+ 0xf011a605,
+ 0xb7a00c30,
+ 0xb7a05794,
+ 0xc000558c,
+ 0xda509124,
+ 0xda08a9aa,
+ 0x0d02a9b1,
+ 0x9a52c054,
+ 0x560cb720,
+ 0xa8aad208,
+ 0xa926d208,
+ 0x412bb740,
+ 0xda089e49,
+ 0xc010aa35,
+ 0x9e817040,
+ 0xc8121a08,
+ 0x70887282,
+ 0x90c4c000,
+ 0x540cb780,
+ 0xa102da08,
+ 0xa927da50,
+ 0xf2109e50,
+ 0xda50802d,
+ 0xb79fa225,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa61d9c22,
+ 0x76c28420,
+ 0xb5bf0287,
+ 0xc0007f6c,
+ 0xb72091c4,
+ 0xb780578c,
+ 0x9e8e412b,
+ 0x560cb7e0,
+ 0xb5800a04,
+ 0xc000412b,
+ 0xb72593a0,
+ 0x74406188,
+ 0x9202c000,
+ 0x560cb780,
+ 0xa891f248,
+ 0x5414b720,
+ 0x5794b7c0,
+ 0x588f0389,
+ 0x484db520,
+ 0x9140c000,
+ 0x540cb780,
+ 0x5794b7c0,
+ 0x560cb7e0,
+ 0xa081f288,
+ 0x558cb720,
+ 0xa957f250,
+ 0x4233b720,
+ 0x41abb780,
+ 0xa949da10,
+ 0xf3109e4b,
+ 0x70868021,
+ 0xa255f250,
+ 0xa862f208,
+ 0xd0010802,
+ 0x76040802,
+ 0xc0029e8d,
+ 0x740090a4,
+ 0x90c4c001,
+ 0x5608b782,
+ 0xc0007500,
+ 0xdad09122,
+ 0xd210aa25,
+ 0x0a14a8a9,
+ 0x9180c000,
+ 0x5688b782,
+ 0xc0007500,
+ 0xdad09162,
+ 0xd210aa25,
+ 0x0a08a8a9,
+ 0x7048c410,
+ 0xa0a5dad0,
+ 0xa94bda50,
+ 0xaa25dad0,
+ 0x8021f310,
+ 0xa249da50,
+ 0x9220c000,
+ 0xa94bda50,
+ 0xaa25dad0,
+ 0x8021f310,
+ 0xda500d82,
+ 0xfff4a249,
+ 0xda489b53,
+ 0xdad0a079,
+ 0xdad0a025,
+ 0xda10aaa5,
+ 0xf290aa2d,
+ 0x6259a947,
+ 0x8021f310,
+ 0xa245f290,
+ 0x9080c017,
+ 0xc0177602,
+ 0xd2109024,
+ 0xb720aa2d,
+ 0xd210570c,
+ 0x752ca9ae,
+ 0xb720098e,
+ 0xd00941b3,
+ 0xd03309b4,
+ 0x9d1d6138,
+ 0x0d027275,
+ 0x9178c000,
+ 0xaa2dda10,
+ 0xf3109e49,
+ 0x70488021,
+ 0xd00b0501,
+ 0xf2081d22,
+ 0x7502aa69,
+ 0xc0009e52,
+ 0xda0890e4,
+ 0x7500aa69,
+ 0x9182c000,
+ 0x548cb780,
+ 0xa881d208,
+ 0x0a51cfea,
+ 0x9ea77440,
+ 0x9164c001,
+ 0xc0007400,
+ 0xdad093e4,
+ 0xd210aaa5,
+ 0xd210aa29,
+ 0xd410a8a5,
+ 0xd412710a,
+ 0x7680704a,
+ 0x91c2c000,
+ 0xaa69d818,
+ 0xa8c1da10,
+ 0xa051d250,
+ 0xa251da10,
+ 0xa24dda10,
+ 0xa0d5da10,
+ 0xaa49da50,
+ 0x9240c013,
+ 0xaa45da50,
+ 0xda50024a,
+ 0xda48a245,
+ 0xc014a2f9,
+ 0xd28890e0,
+ 0x7500aa6d,
+ 0x90e2c001,
+ 0xc0017400,
+ 0x74809004,
+ 0x91a2c000,
+ 0xa8c5f250,
+ 0x6e31d291,
+ 0xc0007048,
+ 0xda1090dc,
+ 0xda10aa41,
+ 0xd210a255,
+ 0xda48a8a1,
+ 0x7102aa71,
+ 0x9088c000,
+ 0xa0f1da48,
+ 0xaa65d288,
+ 0xda487500,
+ 0xc011aaf1,
+ 0xda4893e0,
+ 0xc006a9f2,
+ 0x74809120,
+ 0x93a2c003,
+ 0xa8e9d818,
+ 0x6e37d011,
+ 0xc0007048,
+ 0xda1091bc,
+ 0x5884aa4d,
+ 0x70486a0c,
+ 0x90dcc000,
+ 0xa056d250,
+ 0x90a0c000,
+ 0xd2508502,
+ 0xd210a157,
+ 0xf250a8ae,
+ 0xd291a8c5,
+ 0x70486e11,
+ 0x1a32d011,
+ 0xd8189e4b,
+ 0x6247a8e9,
+ 0xd00d0902,
+ 0x70480922,
+ 0x903cc001,
+ 0xaa51da10,
+ 0x5884d0a4,
+ 0x6a0c9e49,
+ 0x08827048,
+ 0x0892d00d,
+ 0xc0007844,
+ 0xf2109282,
+ 0xda10a8c1,
+ 0x5884aa55,
+ 0x70486a0c,
+ 0x917cc000,
+ 0xd2508506,
+ 0xd288a153,
+ 0xda10a17b,
+ 0xc000aa41,
+ 0xda1093c0,
+ 0x8502a8d1,
+ 0xa153d250,
+ 0xaa69d818,
+ 0x6916d013,
+ 0x8021f310,
+ 0xc2007480,
+ 0xda105a0b,
+ 0xc000a251,
+ 0xda1091c2,
+ 0xf210a8d5,
+ 0xd013aa41,
+ 0xf3106916,
+ 0xc2008021,
+ 0xda105a0b,
+ 0xd250a255,
+ 0x7500aa51,
+ 0x91e2c000,
+ 0xaa35da10,
+ 0xa8e9da08,
+ 0xc2006a14,
+ 0x70485a0f,
+ 0x90bcc000,
+ 0xd2508506,
+ 0xd818a15b,
+ 0xda10aa69,
+ 0xd250a24d,
+ 0x7580ab51,
+ 0x9182c002,
+ 0xc0027400,
+ 0xd2109044,
+ 0xda4aaa21,
+ 0xe001a978,
+ 0xb3401244,
+ 0x0201442c,
+ 0xd250751e,
+ 0x853ea8d9,
+ 0x4478b342,
+ 0xf2107440,
+ 0xc00082ad,
+ 0xda0891c2,
+ 0xda10a8ea,
+ 0x9e4baa35,
+ 0x70c81a0c,
+ 0x08d4d011,
+ 0x443cb351,
+ 0xd2880283,
+ 0xb722a966,
+ 0x76805688,
+ 0x5610b722,
+ 0x0a54d011,
+ 0x4422b354,
+ 0x02897440,
+ 0x0a54d011,
+ 0x4422b354,
+ 0xd2107640,
+ 0x0289a929,
+ 0x4424b325,
+ 0xaa25d210,
+ 0x708ad410,
+ 0x710ad412,
+ 0xc00b7680,
+ 0x0d8292a0,
+ 0x99f2fff4,
+ 0xa079da48,
+ 0x9200c00c,
+ 0xaa79d288,
+ 0xc0017500,
+ 0x740091c2,
+ 0x9244c000,
+ 0xaa79da48,
+ 0xaaa1d210,
+ 0xa965d288,
+ 0x5688b722,
+ 0xd4120a04,
+ 0x74807148,
+ 0x5610b722,
+ 0x93a0c009,
+ 0xfff40d82,
+ 0xd28899d3,
+ 0x7500aa7d,
+ 0xa079da48,
+ 0xa379d288,
+ 0x9182c00b,
+ 0xa977da48,
+ 0xaa61da88,
+ 0x80a1e210,
+ 0xda880a04,
+ 0xda48a261,
+ 0xc00aa0f5,
+ 0xda1093e0,
+ 0x7500aa49,
+ 0x9244c001,
+ 0x5b0cb780,
+ 0xa95bf210,
+ 0xa881da08,
+ 0x88a3e210,
+ 0xa0d9f210,
+ 0xaa71f248,
+ 0xda487500,
+ 0xc000aaf9,
+ 0xd25091da,
+ 0x0a88aa59,
+ 0x75008506,
+ 0xa16bd2d0,
+ 0x0a52d011,
+ 0x4424b354,
+ 0xd2880289,
+ 0xd210a8e6,
+ 0x7640a8a9,
+ 0xa925d210,
+ 0x0a54d011,
+ 0x4422b354,
+ 0xd4100289,
+ 0xd412704a,
+ 0x7640708a,
+ 0x9100c008,
+ 0xc0087400,
+ 0xa96891c4,
+ 0xf248aa6d,
+ 0xf310a973,
+ 0xf3108221,
+ 0xf2488821,
+ 0xf290a271,
+ 0x7102a8e1,
+ 0x92d6c001,
+ 0xa8c9da10,
+ 0x5b04b740,
+ 0x5904d0a6,
+ 0xc8309e2d,
+ 0xf210aa4d,
+ 0xf310a95b,
+ 0xf2108821,
+ 0xd2d0a259,
+ 0xd250a8e9,
+ 0x7442a8da,
+ 0xd0110a88,
+ 0xb3540a54,
+ 0x76404424,
+ 0xc0000289,
+ 0xda4890e2,
+ 0x0a04aa79,
+ 0x710ad412,
+ 0xa8a9d210,
+ 0xaa79da48,
+ 0xa965d288,
+ 0x704ad410,
+ 0x5688b722,
+ 0xd4100a0c,
+ 0x7480710a,
+ 0x5610b722,
+ 0x9120c005,
+ 0xaa49da10,
+ 0x5b04b740,
+ 0x5904d226,
+ 0xc8309e2d,
+ 0xda90a8ce,
+ 0x9e4ba8c1,
+ 0xc0806097,
+ 0xc2005a7f,
+ 0x00985a61,
+ 0xf21058a3,
+ 0xda90a0fd,
+ 0x7440aa41,
+ 0xa959f210,
+ 0xd00e0882,
+ 0x62450892,
+ 0x59a3d224,
+ 0x0a0276c0,
+ 0x0a42d00e,
+ 0x3098e000,
+ 0x90a2c000,
+ 0xa0fef210,
+ 0xf2109e93,
+ 0x76c0a95b,
+ 0x882bf210,
+ 0xa259f210,
+ 0x90fcc000,
+ 0xa8fdf210,
+ 0xc0007440,
+ 0xf210911a,
+ 0xc200aa31,
+ 0xc0005804,
+ 0xf24891a0,
+ 0xd033aa71,
+ 0x9e5b6142,
+ 0xe2205d87,
+ 0x0d0281af,
+ 0x9b58c034,
+ 0xaa5df250,
+ 0xc0007500,
+ 0xda109122,
+ 0xf290a8ad,
+ 0x6243aa41,
+ 0x7008c010,
+ 0xaa49da10,
+ 0x5a84b740,
+ 0xa97df210,
+ 0xa8e9f248,
+ 0x5904d226,
+ 0xc8309e2d,
+ 0xf210a8ce,
+ 0xd033aa31,
+ 0x9e496122,
+ 0x5a07c200,
+ 0xc0121002,
+ 0xd0247008,
+ 0xe2205987,
+ 0x0d0281af,
+ 0xc0340181,
+ 0xd0249b2d,
+ 0xc034598f,
+ 0xd2889b53,
+ 0xb75fa9e9,
+ 0xda487f64,
+ 0xf210a979,
+ 0xe2108227,
+ 0xb7208ba7,
+ 0xd0115b94,
+ 0x190c08a6,
+ 0x7008d410,
+ 0xaa55d250,
+ 0x7142d410,
+ 0x41c9b720,
+ 0x708ad412,
+ 0xa965d288,
+ 0x70cad412,
+ 0xb7227502,
+ 0xd0115610,
+ 0xb3540a52,
+ 0x74404424,
+ 0x5688b722,
+ 0xd0110289,
+ 0xb3541a52,
+ 0x74804422,
+ 0xd0110289,
+ 0xb3540a54,
+ 0x74404422,
+ 0xd0110289,
+ 0xb3540a54,
+ 0x76404422,
+ 0xc0000289,
+ 0xd2109082,
+ 0xd210aaa9,
+ 0xd210aa29,
+ 0xd410a8a5,
+ 0xd412710a,
+ 0x7480704a,
+ 0xaa49da50,
+ 0x0a46d002,
+ 0xda50024a,
+ 0xc000a249,
+ 0x0d829360,
+ 0x9876fff4,
+ 0xaa7dd288,
+ 0xda487500,
+ 0xc000a079,
+ 0xda4891a2,
+ 0xda88a977,
+ 0xe210aa61,
+ 0x0a0480a1,
+ 0xa261da88,
+ 0xa0f5da48,
+ 0xaa79da48,
+ 0xa26dda08,
+ 0xb79f000b,
+ 0xb7bf7dee,
+ 0xb7df7e6e,
+ 0xb7ff7eee,
+ 0xc0027f6e,
+ 0x9c228c20,
+ 0x8460a61d,
+ 0x560cb720,
+ 0x402db780,
+ 0x09020f82,
+ 0x7decb55f,
+ 0xb55f7502,
+ 0x03037e6c,
+ 0x9164c00b,
+ 0x570cb7a0,
+ 0x5594b7a0,
+ 0xa9b2f208,
+ 0xa9adda10,
+ 0xc0340d02,
+ 0xb7809a99,
+ 0xb720578c,
+ 0xd2885414,
+ 0xf208a8cd,
+ 0x070ba91f,
+ 0x43cdb500,
+ 0xe2109ea5,
+ 0x74408021,
+ 0xf208038b,
+ 0xc000a01d,
+ 0xda0893c4,
+ 0x7502aa49,
+ 0x9334c000,
+ 0xa8aada10,
+ 0x5a84b740,
+ 0x5d04d0a6,
+ 0xa8e9f208,
+ 0xc8389e2e,
+ 0xd0a6aa41,
+ 0xc2015904,
+ 0xf3108122,
+ 0xc2008021,
+ 0xd8005a0b,
+ 0xc000a241,
+ 0xda1091a0,
+ 0xb740aa29,
+ 0xda085a84,
+ 0xd226a8f1,
+ 0x9e2d5904,
+ 0xa0cdc830,
+ 0xaa49da08,
+ 0xa8d1da10,
+ 0xa9a8da12,
+ 0x62431a04,
+ 0x0942d013,
+ 0x80a7e010,
+ 0x7e7cb77f,
+ 0x7d6cb53f,
+ 0xa8eef208,
+ 0x8506744a,
+ 0x4c78b332,
+ 0xb55f7640,
+ 0xc0007e7c,
+ 0xf2089124,
+ 0x0a04aa4d,
+ 0xa24df208,
+ 0x9060c004,
+ 0x568cb780,
+ 0x6304b740,
+ 0xa881f208,
+ 0xd0a69e2d,
+ 0xb7205904,
+ 0xc830540c,
+ 0x9e4aaa4d,
+ 0x43b5b760,
+ 0x6128d033,
+ 0xa8cdf208,
+ 0x5d8fd1a2,
+ 0xe2205d93,
+ 0xf21081af,
+ 0x0d028ab3,
+ 0x9a1ec034,
+ 0xaa4dda10,
+ 0x6a00c028,
+ 0xc0007008,
+ 0xf24892d6,
+ 0xd012aa45,
+ 0x624b09d2,
+ 0xd0309e5b,
+ 0x5d870108,
+ 0x81afe220,
+ 0xf2480d02,
+ 0xc034a1c6,
+ 0xf2489a07,
+ 0xc000a045,
+ 0xf20890e0,
+ 0x0a04aa4d,
+ 0xa24df208,
+ 0xa951da10,
+ 0xaa29da10,
+ 0x58c0d124,
+ 0x08c2d011,
+ 0x5e49d0a2,
+ 0xc0007048,
+ 0xf2489216,
+ 0xf24aaa4d,
+ 0xd226a944,
+ 0xf3105904,
+ 0xf3108021,
+ 0xc2008221,
+ 0xc0015a0b,
+ 0xd0a29100,
+ 0x70485e45,
+ 0x9196c000,
+ 0xa947f248,
+ 0xaa4df248,
+ 0x8021f310,
+ 0x5a07c200,
+ 0x9320c000,
+ 0x6a26d011,
+ 0x5a0bc200,
+ 0xc0007048,
+ 0xf2489216,
+ 0xf248a8c5,
+ 0xd0a6aa4d,
+ 0xc2015904,
+ 0xf3108122,
+ 0xc2008021,
+ 0xc0005a0b,
+ 0xf2489080,
+ 0xf248aa45,
+ 0xda08a249,
+ 0x7500aa49,
+ 0x5b04b740,
+ 0x9202c003,
+ 0xaa6df208,
+ 0xc0037500,
+ 0xb7409162,
+ 0xf0105414,
+ 0x7500aa5d,
+ 0x9082c003,
+ 0x590cb760,
+ 0x5894b740,
+ 0x4038b960,
+ 0x0938d071,
+ 0x0ca8d072,
+ 0x7fcdb79f,
+ 0xa8ddf1c8,
+ 0xa23df1f1,
+ 0xa0ddf1e9,
+ 0x9301ffff,
+ 0x541cb760,
+ 0xa8a9da10,
+ 0xaa7df018,
+ 0x5904d0a6,
+ 0xf0109e2d,
+ 0xb73fa241,
+ 0xc8307e6c,
+ 0x7440aa4d,
+ 0xa261f008,
+ 0x9382c001,
+ 0xaa29da10,
+ 0x2a0c0a04,
+ 0xc0017506,
+ 0xb75f92a4,
+ 0x0a267d6c,
+ 0x7088d010,
+ 0xc0007502,
+ 0xd01192bc,
+ 0xd0120d28,
+ 0xd01008b8,
+ 0xf03119c4,
+ 0xf029aa25,
+ 0x9ea2a8c5,
+ 0x7decb79f,
+ 0x024207f4,
+ 0x7decb59f,
+ 0x92a1ffff,
+ 0xc00077c0,
+ 0xc0109104,
+ 0xda908502,
+ 0xc000a123,
+ 0xb73f9220,
+ 0xd3a27df4,
+ 0x0d025d91,
+ 0x7f64b55f,
+ 0x5d90c080,
+ 0x994ac034,
+ 0xa021da90,
+ 0x7f64b75f,
+ 0x540cb740,
+ 0xaa29da10,
+ 0xa8d9d848,
+ 0xd2269e2d,
+ 0xc8305904,
+ 0xb79fa0cd,
+ 0xb7bf7cee,
+ 0xb7df7d6e,
+ 0xb7ff7dee,
+ 0xc0027e6e,
+ 0x9c228c60,
+ 0xc0300487,
+ 0xb740ac3d,
+ 0x9d2a5594,
+ 0xa45dc038,
+ 0xac3dc030,
+ 0xa45dc038,
+ 0xac3dc030,
+ 0xa45dc038,
+ 0x5b8cb720,
+ 0xb7808702,
+ 0x8512560c,
+ 0x4021b540,
+ 0x40a1b540,
+ 0x548cb720,
+ 0xa10bd288,
+ 0x8502c010,
+ 0xa10bf248,
+ 0xa107f248,
+ 0xa8c2d010,
+ 0xa941d010,
+ 0xa10ff248,
+ 0x4021b540,
+ 0xa092da48,
+ 0xa119da48,
+ 0x9360c000,
+ 0xb740a605,
+ 0x9e5d6304,
+ 0x5904d2a6,
+ 0xc8309e2d,
+ 0x65a7a9ce,
+ 0xc0340d02,
+ 0x9e8398f1,
+ 0x9918c034,
+ 0x0804000a,
+ 0xb79f5805,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa60d9c22,
+ 0xb7209e5d,
+ 0xf2085594,
+ 0xb580aa2d,
+ 0xf20841cd,
+ 0xb520a8b1,
+ 0xf208424d,
+ 0xb580aa35,
+ 0xf20842cd,
+ 0xb520a8bd,
+ 0xf24843cd,
+ 0xb580aa21,
+ 0xf248444d,
+ 0xb520a8a5,
+ 0xf20844cd,
+ 0xb580aa3d,
+ 0xd20843cd,
+ 0xb520a8a5,
+ 0xd20840c9,
+ 0xb580aa29,
+ 0xda084149,
+ 0xb520a8b5,
+ 0xf20842cb,
+ 0xd0b1aa39,
+ 0xb58008d0,
+ 0xb740434d,
+ 0xd0b14029,
+ 0xd2080e10,
+ 0xf248a101,
+ 0xd0b1a8b9,
+ 0xb5200a52,
+ 0xd208474d,
+ 0xd0b1a881,
+ 0xb7400d92,
+ 0xd008550c,
+ 0xf248a0e1,
+ 0x8502aa35,
+ 0xa143f008,
+ 0x46cdb580,
+ 0xa8bdf208,
+ 0x0d72c002,
+ 0xc4120a0e,
+ 0xc0047048,
+ 0xcfec747a,
+ 0x9e900931,
+ 0x4446b312,
+ 0x0c60c012,
+ 0x4054b540,
+ 0xaa2df208,
+ 0x62439e51,
+ 0x0970c012,
+ 0xa241f008,
+ 0xa8e1d008,
+ 0xaa2df208,
+ 0xb7c06243,
+ 0x0d82560c,
+ 0x76820683,
+ 0x0911cfec,
+ 0x589fc200,
+ 0x91e2c000,
+ 0xd1120501,
+ 0xf03108a8,
+ 0xf010a0a5,
+ 0x0d84aa41,
+ 0x1a049e5b,
+ 0xffff70c8,
+ 0x02059306,
+ 0x0a60c012,
+ 0xa882f208,
+ 0x1c849e8a,
+ 0x008564a3,
+ 0x0890c014,
+ 0xb5200a40,
+ 0xf2084035,
+ 0xd208a082,
+ 0xd210a8a1,
+ 0xdac8a0a1,
+ 0xf210aa25,
+ 0xda48a92e,
+ 0xdad0a9d2,
+ 0xf208a225,
+ 0xfff4a9ad,
+ 0xda489b45,
+ 0xda48a9da,
+ 0xf208a051,
+ 0xf210a9ad,
+ 0xfff4a92e,
+ 0xda089b3b,
+ 0xb780a8c9,
+ 0xda48578c,
+ 0x6002a059,
+ 0xa005da48,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x8420a60d,
+ 0x650cb7c0,
+ 0x540cb7a0,
+ 0x5c0cb760,
+ 0xd0118582,
+ 0xb7a00e32,
+ 0xf2485594,
+ 0xf208a1a3,
+ 0xf00aa1a7,
+ 0xf210a964,
+ 0xf008a8ad,
+ 0xf008a26d,
+ 0xf250a1ea,
+ 0xb720aa25,
+ 0xe2105614,
+ 0xf31082a3,
+ 0xb7408221,
+ 0xc08046dd,
+ 0x75802b00,
+ 0xd0a40103,
+ 0xf250597f,
+ 0x0009a8a1,
+ 0x587fd224,
+ 0x414db780,
+ 0xe2109e4e,
+ 0x0a0488a3,
+ 0x414db580,
+ 0xa0b5f208,
+ 0xa171f808,
+ 0xa069f808,
+ 0x9162c000,
+ 0xaa3df210,
+ 0x8221f310,
+ 0xd2240089,
+ 0xf80858ff,
+ 0xf210a0e9,
+ 0xf008aa2d,
+ 0xf208a9ee,
+ 0x9ea1a8c9,
+ 0xf2086533,
+ 0x7442a935,
+ 0x12149e51,
+ 0xa265f008,
+ 0xaa21f250,
+ 0x4500d041,
+ 0x92e2c000,
+ 0xb32276fc,
+ 0xc0004492,
+ 0x74809252,
+ 0x90d6c000,
+ 0x5907d128,
+ 0x90e0c000,
+ 0xaa39f250,
+ 0xd2286229,
+ 0xf2485933,
+ 0xf010a957,
+ 0xf0088825,
+ 0xb780a261,
+ 0xd248578c,
+ 0xc001a899,
+ 0xf00814a4,
+ 0x7442a0e6,
+ 0xc0009ea1,
+ 0xf20891a4,
+ 0x7500aa35,
+ 0x90dcc002,
+ 0xc2009e52,
+ 0x12285a07,
+ 0x93c0c001,
+ 0xaa35f208,
+ 0xc2009e51,
+ 0x70485a0c,
+ 0x90b6c000,
+ 0xd2c88506,
+ 0xf208a12b,
+ 0x9e52a8b5,
+ 0x5a0cc080,
+ 0xc0007088,
+ 0xc0809156,
+ 0x70885a08,
+ 0x90b8c000,
+ 0xc0008586,
+ 0xf2089220,
+ 0x9e52a8b5,
+ 0x5a08c080,
+ 0x858e7088,
+ 0x9116c000,
+ 0x5a04c080,
+ 0x8d847088,
+ 0x85b2e00c,
+ 0xa8a5f248,
+ 0xc0007440,
+ 0xd0a6923c,
+ 0xf00a5904,
+ 0xf210a964,
+ 0xc2008023,
+ 0x10985a0f,
+ 0x8a21f310,
+ 0xa0a5f248,
+ 0xa265f008,
+ 0xaa49f208,
+ 0xc0007502,
+ 0xb78590e2,
+ 0x75006188,
+ 0x9202c000,
+ 0xaa21d210,
+ 0x5694b720,
+ 0xa225dad0,
+ 0xa8a5dad0,
+ 0xa231da48,
+ 0x404db520,
+ 0x9320c008,
+ 0xaa5dd288,
+ 0xc0007500,
+ 0xb7809184,
+ 0x75004749,
+ 0x9142c000,
+ 0xaa41da88,
+ 0xc0007504,
+ 0x850690b4,
+ 0x9060c000,
+ 0xd2888502,
+ 0xd288a153,
+ 0x7500aa5d,
+ 0x9002c001,
+ 0xaa41da88,
+ 0x5a40c200,
+ 0x7502c001,
+ 0x9314c000,
+ 0xa957da48,
+ 0x5a45c200,
+ 0x8021f310,
+ 0xa9c1da88,
+ 0xa221dad0,
+ 0xa9a2dad0,
+ 0xb57f0d02,
+ 0xc0147f7c,
+ 0xb77f9b13,
+ 0x18047f7c,
+ 0x9320c000,
+ 0xaa49da08,
+ 0x44dbb740,
+ 0x5a40c200,
+ 0x5a45c200,
+ 0x8021f310,
+ 0xa9c9da08,
+ 0xa221dad0,
+ 0xa9a2dad0,
+ 0xb57f0d02,
+ 0xc0147f7c,
+ 0xb77f9af9,
+ 0xdad07f7c,
+ 0xf208a021,
+ 0x7504aa49,
+ 0x9094c001,
+ 0xa8a2dad0,
+ 0xa8b1da48,
+ 0x0e14d011,
+ 0xc0007048,
+ 0xda08913a,
+ 0xd011a921,
+ 0x70881a14,
+ 0x90d6c000,
+ 0x1e12d011,
+ 0x91c0c000,
+ 0x1e14d011,
+ 0xc0007048,
+ 0xd01190f8,
+ 0x70880a14,
+ 0x90dcc000,
+ 0x0e12d011,
+ 0xa221dad0,
+ 0xaa21dad0,
+ 0xc0007526,
+ 0xda0892b4,
+ 0x0089a8a2,
+ 0x1e14d011,
+ 0xd00e7048,
+ 0xc0000a12,
+ 0xd011913c,
+ 0x70480e14,
+ 0x90dcc000,
+ 0x1a12d011,
+ 0xa221dad0,
+ 0xa8ddda48,
+ 0xaa21da08,
+ 0x4002ba09,
+ 0x70481a28,
+ 0x9176c000,
+ 0xaa5dda48,
+ 0xa8a1dad0,
+ 0xc4100a1c,
+ 0xdad07048,
+ 0xd210a0a1,
+ 0x752caa2d,
+ 0x9152c001,
+ 0xa8a2da08,
+ 0xaa5dda48,
+ 0x1c90d031,
+ 0x4002ba24,
+ 0xc0007102,
+ 0xdad091b6,
+ 0xd011a8a1,
+ 0x70481e16,
+ 0x90dcc000,
+ 0x1a16d011,
+ 0xa221dad0,
+ 0xaa31da48,
+ 0xa8a1dad0,
+ 0xd0121a0c,
+ 0xda487102,
+ 0xdad0a8b1,
+ 0xdad0a221,
+ 0x088caa21,
+ 0x7102d010,
+ 0xa221dad0,
+ 0xa8b5f208,
+ 0xaa21f250,
+ 0xc0007048,
+ 0xda48923c,
+ 0xdad0a8d9,
+ 0x7048aa21,
+ 0xa958da4a,
+ 0xa923dad0,
+ 0x8026f013,
+ 0x822ff214,
+ 0xa221dad0,
+ 0xa9bef210,
+ 0xa9a9f248,
+ 0xc0140d02,
+ 0xc00e9a59,
+ 0x7404287c,
+ 0x90f2c000,
+ 0xaa21dad0,
+ 0xc0000a08,
+ 0x74069100,
+ 0x90f2c000,
+ 0xaa21dad0,
+ 0xdad00a04,
+ 0xd210a221,
+ 0xdad0aa29,
+ 0x1a08a8a1,
+ 0x7048c410,
+ 0xaa25d210,
+ 0xa0a1dad0,
+ 0xa8a1dad0,
+ 0xd0120a08,
+ 0xdad07102,
+ 0xdad0a221,
+ 0xda48a225,
+ 0xda48a259,
+ 0xd288a231,
+ 0x7502aa5d,
+ 0x9244c000,
+ 0xaa25dad0,
+ 0x5694b720,
+ 0xa8a5dad0,
+ 0xa231da48,
+ 0xa221dad0,
+ 0xa259da48,
+ 0xa24dda08,
+ 0x404db520,
+ 0xf2488502,
+ 0xf248a12f,
+ 0xf248a133,
+ 0xf248a137,
+ 0xd2c8a13f,
+ 0xb79fa12b,
+ 0xb7bf7e6e,
+ 0xb7df7eee,
+ 0xc0027f6e,
+ 0x9c228c00,
+ 0xa285f839,
+ 0x560cb780,
+ 0x74829e5a,
+ 0xa101f208,
+ 0xc0000009,
+ 0xb78092e4,
+ 0xb7205c0c,
+ 0xf2085794,
+ 0x8502a885,
+ 0x74409d1e,
+ 0x44ddb540,
+ 0x90d6c000,
+ 0x540cb780,
+ 0xa109d2c8,
+ 0x41bcb540,
+ 0x92c0c000,
+ 0xb7607484,
+ 0xc000579c,
+ 0x85029224,
+ 0xa167d858,
+ 0x413ab540,
+ 0x46bab540,
+ 0x483ab540,
+ 0x4bb8b540,
+ 0xa17bd058,
+ 0x4b38b540,
+ 0x6188b785,
+ 0xc0017500,
+ 0xb7209302,
+ 0xb700540c,
+ 0x01035594,
+ 0x08f0c012,
+ 0xaa25f029,
+ 0x0c82d0b2,
+ 0x4051b760,
+ 0x41d4b740,
+ 0x0910c014,
+ 0xf0089ea5,
+ 0x65d7a842,
+ 0x4049b760,
+ 0x9e528512,
+ 0x61a79e45,
+ 0x4049b740,
+ 0xf029124a,
+ 0xb720a229,
+ 0xb5404035,
+ 0xd1a64938,
+ 0x599f5d1d,
+ 0xe2209e9d,
+ 0x624588ab,
+ 0x7282c810,
+ 0x728ac812,
+ 0xc2009e51,
+ 0xd0105a1f,
+ 0xb5807102,
+ 0x8702462c,
+ 0xd8588502,
+ 0xd818a16b,
+ 0xd058a16b,
+ 0xd058a173,
+ 0xa160a177,
+ 0xaa9df9f8,
+ 0xa60d9c22,
+ 0xd2109e9d,
+ 0x7502aa29,
+ 0x578cb7c0,
+ 0x90c4c000,
+ 0x8502c008,
+ 0xa143f208,
+ 0x558cb740,
+ 0x5614b740,
+ 0xaa4df008,
+ 0xa8c1f208,
+ 0xa8c2f010,
+ 0x5a07c200,
+ 0x7048c412,
+ 0xb7a09e88,
+ 0x7644540c,
+ 0x05850005,
+ 0x91c2c000,
+ 0x5608b782,
+ 0xc0007500,
+ 0xc0149124,
+ 0x85060ab0,
+ 0xa123d208,
+ 0x0ad1cfea,
+ 0xc012018b,
+ 0xf00809d0,
+ 0x9eaaaa61,
+ 0x0958d114,
+ 0x5908d226,
+ 0x0d10c014,
+ 0xf0109e2e,
+ 0xe038a943,
+ 0xf210a8c2,
+ 0xf010882b,
+ 0xb720a241,
+ 0x010b41ac,
+ 0x0920c014,
+ 0xa943f008,
+ 0x9e8e5887,
+ 0x724cc412,
+ 0x88abe220,
+ 0xa0c2f008,
+ 0xaa41f208,
+ 0xa241f000,
+ 0xa943f010,
+ 0x8021f310,
+ 0xa241f010,
+ 0xa943f008,
+ 0x8029f210,
+ 0x0ae0c012,
+ 0xa241f008,
+ 0xa8e1f008,
+ 0xaa21f208,
+ 0x1a040884,
+ 0x85027048,
+ 0x4466b312,
+ 0xa163f008,
+ 0xaa29d210,
+ 0xcfec7500,
+ 0x85020aa1,
+ 0x90e4c000,
+ 0x5608b782,
+ 0xc0007500,
+ 0x85069062,
+ 0xd0908702,
+ 0xf212a167,
+ 0xf010a124,
+ 0x7504aa61,
+ 0x9024c001,
+ 0x5c0cb720,
+ 0x0900d0b1,
+ 0xa8c2d008,
+ 0x40adb780,
+ 0x412db760,
+ 0xd2269e49,
+ 0xd1a45107,
+ 0xe2205985,
+ 0xf20881af,
+ 0xd008a1a6,
+ 0xc014a942,
+ 0xf20898e9,
+ 0xf208a025,
+ 0xf248aa41,
+ 0xc001a229,
+ 0xf2489060,
+ 0xf208a923,
+ 0xf310aa41,
+ 0xf2488021,
+ 0xd210a221,
+ 0x7440a8a9,
+ 0x9104c000,
+ 0xaa5df208,
+ 0xa15cf20a,
+ 0xa259f208,
+ 0x5c0cb780,
+ 0xa8e9d810,
+ 0xa88af208,
+ 0xa16cd092,
+ 0xd8100884,
+ 0x1c84a0e9,
+ 0xa08af208,
+ 0xc0129eaa,
+ 0xf3eb0af0,
+ 0x8502a93c,
+ 0x0d10c014,
+ 0xa941f010,
+ 0xa12bd210,
+ 0xa8c2f010,
+ 0xe210020b,
+ 0xf2088b25,
+ 0x5c85a881,
+ 0x18849e4c,
+ 0x70886123,
+ 0x90b6c000,
+ 0xd2108506,
+ 0xb79fa12b,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0xb7809c22,
+ 0xb740578c,
+ 0xf208560c,
+ 0xf008a903,
+ 0x9e92a8c2,
+ 0x81afe220,
+ 0x00897642,
+ 0xa182f208,
+ 0x9244c001,
+ 0x4629b780,
+ 0xc0007500,
+ 0xd0889164,
+ 0x7500aa59,
+ 0x90c4c000,
+ 0xaa49f048,
+ 0xa24df048,
+ 0xaa5dd090,
+ 0x850a7500,
+ 0x9062c000,
+ 0xd090850e,
+ 0xd090a14b,
+ 0x7500aa59,
+ 0x48a2b340,
+ 0x402db720,
+ 0x5c0cb780,
+ 0x5414b720,
+ 0x5904d0a6,
+ 0xa904f20a,
+ 0x80a3e210,
+ 0xb5205897,
+ 0xe21044cd,
+ 0xf20882a3,
+ 0x9c22a085,
+ 0xb3407644,
+ 0xb78048a4,
+ 0xdac8558c,
+ 0xd848a885,
+ 0x9c22a0dd,
+ 0x4001ba1b,
+ 0x76d6c004,
+ 0x90bcc000,
+ 0x0862c024,
+ 0xc0049c22,
+ 0xc00076c6,
+ 0xd09190fc,
+ 0xc0041c36,
+ 0x9c22681a,
+ 0x9c220852,
+ 0x621cb740,
+ 0x4001ba1b,
+ 0x9e591db0,
+ 0xc0120a02,
+ 0x9d537048,
+ 0xc0409e99,
+ 0x7642a885,
+ 0x4000ba01,
+ 0x91a2c000,
+ 0x90a6c000,
+ 0xc0007644,
+ 0x08029082,
+ 0xc0009c22,
+ 0xba045a04,
+ 0xd0264002,
+ 0xc000590c,
+ 0xf3105a08,
+ 0xba048021,
+ 0x9c224002,
+ 0x9ea10a02,
+ 0x621cb740,
+ 0x4001ba1b,
+ 0xcc121db0,
+ 0x9dc772c2,
+ 0xa9eac010,
+ 0x4001ba1b,
+ 0x5d18d1a6,
+ 0xe2105d88,
+ 0x9c22882f,
+ 0x74c0c008,
+ 0x9e529e58,
+ 0x90fcc000,
+ 0x70c0d002,
+ 0x51f31a14,
+ 0xc0055013,
+ 0xc0007400,
+ 0xd00290fc,
+ 0x1a507000,
+ 0x01285013,
+ 0x6404b740,
+ 0x648cb780,
+ 0x5904d1a6,
+ 0xc0409e2d,
+ 0xc830a8e5,
+ 0x7044aa4d,
+ 0xd01d6009,
+ 0xd01a1214,
+ 0xb3405013,
+ 0x122248ba,
+ 0x9c225010,
+ 0x75269e5c,
+ 0xd01e0882,
+ 0xb3404000,
+ 0xc38048bc,
+ 0xc0007500,
+ 0xc00290bc,
+ 0x9c22084e,
+ 0x7508c004,
+ 0x915cc000,
+ 0xc2000a04,
+ 0xc0045a07,
+ 0x08847508,
+ 0x935affff,
+ 0x639cb740,
+ 0xc2209d4b,
+ 0xd013a805,
+ 0xe210691d,
+ 0x9c228021,
+ 0x578cb780,
+ 0xa908f24a,
+ 0xa891f248,
+ 0xa91ff248,
+ 0xa89af248,
+ 0x8ba3e210,
+ 0xc20174c0,
+ 0xd01e892a,
+ 0xb3404000,
+ 0xd1a448bc,
+ 0x9e9959fd,
+ 0x5d870596,
+ 0x81afe220,
+ 0xfffc0d02,
+ 0x000092e0,
+ 0x87c2c809,
+ 0x0c20b060,
+ 0x87c2c809,
+ 0x0a60b060,
+ 0x87c2c809,
+ 0x09c0b060,
+};
+
+unsigned long aui32H264VCM_MTXTOPAZFWData[] = {
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x809000b0,
+ 0x8090019c,
+ 0x82885904,
+ 0x82884eb4,
+ 0x8288502c,
+ 0x82885030,
+ 0x82884eec,
+ 0x82885038,
+ 0x82885020,
+ 0x8288503c,
+ 0x82885078,
+ 0x828850b4,
+ 0x828850e4,
+ 0x82885114,
+ 0x8288515c,
+ 0x828851bc,
+ 0x828851ec,
+ 0x8288521c,
+ 0x82885224,
+ 0x8288522c,
+ 0x82884cf0,
+ 0x828853bc,
+ 0x828853c8,
+ 0x82884e8e,
+ 0x828853f8,
+ 0x82885ac8,
+ 0x82885a98,
+ 0x82885978,
+ 0x828855f8,
+ 0x828859c8,
+ 0x82885a10,
+ 0x82885a14,
+ 0x82885a58,
+ 0x82885d18,
+ 0x82885b9c,
+ 0x82885b68,
+ 0x82885bea,
+ 0x82885bc4,
+ 0x82885c52,
+ 0x82885cd4,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x809006dc,
+ 0x80901be8,
+ 0x809024f0,
+ 0x809006e0,
+ 0x80903c5c,
+ 0x809041cc,
+ 0x8090072c,
+ 0x00000000,
+ 0x80901da8,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x809006dc,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0xa0101162,
+ 0xa0100174,
+ 0xa0101102,
+ 0xa0100184,
+ 0xa0101104,
+ 0xa0100194,
+ 0xa0101106,
+ 0xa01001a4,
+ 0xa01001a2,
+ 0xa01001a2,
+ 0xa0101182,
+ 0xa0100142,
+ 0xa0101122,
+ 0xa0100152,
+ 0x80101124,
+ 0x80101126,
+ 0x80101144,
+ 0x80101146,
+ 0x80100176,
+ 0x80100186,
+ 0x80100196,
+ 0x801001a6,
+ 0x801001b6,
+ 0x801001b4,
+ 0x80300364,
+ 0x8010b100,
+ 0x80105160,
+ 0x80100102,
+ 0x00000b00,
+ 0x00000b00,
+ 0x00000ba0,
+ 0x00000ba0,
+ 0x00000003,
+ 0x00000002,
+ 0x00000002,
+ 0x00000001,
+ 0x00000001,
+ 0x00000001,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000005,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x03020100,
+ 0x07060504,
+ 0x0b0a0908,
+ 0x0f0e0d0c,
+ 0x13121110,
+ 0x17161514,
+ 0x1b1a1918,
+ 0x1e1d1d1c,
+ 0x2120201f,
+ 0x23232222,
+ 0x25252424,
+ 0x26262625,
+ 0x27272727,
+ 0x02020202,
+ 0x04040303,
+ 0x05050504,
+ 0x06060505,
+ 0x07070706,
+ 0x0b090808,
+ 0x110f0e0d,
+ 0x1f1b1714,
+ 0x3e332924,
+ 0x5b554f4a,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x01010000,
+ 0x02020201,
+ 0x04030303,
+ 0x05040404,
+ 0x00140005,
+ 0x001a0016,
+ 0x0020001c,
+ 0x00280024,
+ 0x0034002c,
+ 0x00400038,
+ 0x00500048,
+ 0x00680058,
+ 0x00800070,
+ 0x00a00090,
+ 0x00d000b0,
+ 0x010000e0,
+ 0x01400120,
+ 0x01a00160,
+ 0x020001c0,
+ 0x02800240,
+ 0x034002c0,
+ 0x04000380,
+ 0x05000480,
+ 0x06800580,
+ 0x08000700,
+ 0x0a000900,
+ 0x0d000b00,
+ 0x10000e00,
+ 0x14001200,
+ 0x1a001600,
+ 0x00001c00,
+ 0x00200040,
+ 0x001002ab,
+ 0x015500cd,
+ 0x00080249,
+ 0x00cd01c7,
+ 0x0155005d,
+ 0x0249013b,
+ 0x00040111,
+ 0x01c700f1,
+ 0x00cd01af,
+ 0x005d00c3,
+ 0x01550059,
+ 0x013b0029,
+ 0x0249025f,
+ 0x01110235,
+ 0x00020021,
+ 0x00f1001f,
+ 0x01c70075,
+ 0x01af006f,
+ 0x00cd0069,
+ 0x00c30019,
+ 0x005d017d,
+ 0x0059005b,
+ 0x015502b9,
+ 0x002900a7,
+ 0x013b0283,
+ 0x025f0135,
+ 0x02490095,
+ 0x0235023f,
+ 0x0111008b,
+ 0x00210219,
+ 0x00010041,
+ 0x0b060600,
+ 0x0c0b0a06,
+ 0x0a0b0c06,
+ 0x0c0d0c0c,
+ 0x0d0d0c06,
+ 0x0b0b0c0c,
+ 0x0e0d0a0d,
+ 0x0a0d0e0e,
+ 0x0c0d0a06,
+ 0x0c0e0c0e,
+ 0x0e0d0a0d,
+ 0x0f0c0c0c,
+ 0x0f0b0d0e,
+ 0x0d0f0e0e,
+ 0x0d0f0f0f,
+ 0x0c0b0f0e,
+ 0x00000006,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x1234baac,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+};
diff --git a/fw/H264FirmwareVCM_bin.h b/fw/H264FirmwareVCM_bin.h
new file mode 100644
index 0000000..a2ea1b2
--- /dev/null
+++ b/fw/H264FirmwareVCM_bin.h
@@ -0,0 +1,35 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+// This file was automatically generated from ../release/H264FirmwareVCM.dnl using dnl2c.
+
+extern unsigned long aui32H264VCM_MTXTOPAZFWText[];
+extern unsigned long ui32H264VCM_MTXTOPAZFWTextSize;
+
+extern unsigned long aui32H264VCM_MTXTOPAZFWData[];
+extern unsigned long ui32H264VCM_MTXTOPAZFWDataSize;
+
+extern unsigned long ui32H264VCM_MTXTOPAZFWDataLocation;
+
diff --git a/fw/H264Firmware_bin.c b/fw/H264Firmware_bin.c
new file mode 100644
index 0000000..27a2a30
--- /dev/null
+++ b/fw/H264Firmware_bin.c
@@ -0,0 +1,8227 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+// This file was automatically generated from ../release/H264Firmware.dnl using dnl2c.
+
+unsigned char *szH264_MTXTOPAZFW_buildtag = "TOPAZ_DDKBUILD_00-00-00-0146";
+
+unsigned long ui32H264_MTXTOPAZFWTextSize = 3565;
+unsigned long ui32H264_MTXTOPAZFWDataSize = 4624;
+unsigned long ui32H264_MTXTOPAZFWDataLocation = 0x828837c0;
+
+unsigned long aui32H264_MTXTOPAZFWText[] = {
+ 0x9040c001,
+ 0xc80993fe,
+ 0xc0000e42,
+ 0xc8290e00,
+ 0xc4008422,
+ 0xc8298400,
+ 0xc37c8622,
+ 0x9e838600,
+ 0xc8099e43,
+ 0xc6f40d42,
+ 0xc8090d20,
+ 0xc6f40942,
+ 0xc8090960,
+ 0xc00a0e42,
+ 0xc8090e40,
+ 0xc00e87c2,
+ 0x9c1887d0,
+ 0x0c020802,
+ 0x09820d82,
+ 0x09020d02,
+ 0x08820c82,
+ 0x9320fffe,
+ 0xa401c838,
+ 0x0dc2c809,
+ 0x0de0c6f2,
+ 0x0e42c809,
+ 0x0b46b080,
+ 0x7e74b77f,
+ 0xa48d0882,
+ 0xffff9ff3,
+ 0x9d1393e0,
+ 0xf8398081,
+ 0x0707a205,
+ 0x06850307,
+ 0x03839e97,
+ 0x0fa0060f,
+ 0x018d058d,
+ 0x9c62008f,
+ 0x9340ffff,
+ 0x0ea0060b,
+ 0xffff9c62,
+ 0x058d93a0,
+ 0xb700018d,
+ 0xb780500c,
+ 0x9c014f94,
+ 0x0687a605,
+ 0x0ea0060b,
+ 0xffff9c62,
+ 0xf9f893a0,
+ 0xf9f8aa9d,
+ 0x9c22aa1d,
+ 0xa60d9c22,
+ 0x9bfefff4,
+ 0x0ca2c829,
+ 0x0ce0c3fe,
+ 0x404db720,
+ 0x0a42c809,
+ 0x0a70c6cc,
+ 0x0b027440,
+ 0x420cb580,
+ 0x0a12d002,
+ 0x4644b421,
+ 0xc0540d8a,
+ 0xb78098b0,
+ 0xc807508c,
+ 0xc57008c2,
+ 0xc0320880,
+ 0xb5800c86,
+ 0xb4214b8c,
+ 0x0a06c000,
+ 0x0c98c002,
+ 0xc000b481,
+ 0x09021a04,
+ 0x08bac002,
+ 0x4078b960,
+ 0x0a00c200,
+ 0x588bd224,
+ 0xc000b441,
+ 0x0a11ce00,
+ 0x9301ffff,
+ 0x1884e000,
+ 0x9244ffff,
+ 0x0a42c807,
+ 0x0a00c576,
+ 0x0c86c032,
+ 0xc000b481,
+ 0x08820a02,
+ 0x08840902,
+ 0x4078b960,
+ 0x0a00c200,
+ 0x588bd224,
+ 0xc000b441,
+ 0x0a11ce00,
+ 0x9301ffff,
+ 0x745ac004,
+ 0x923cffff,
+ 0xc0340a02,
+ 0xb4810c9e,
+ 0xc034c000,
+ 0xc05498cd,
+ 0xc054982e,
+ 0x0d8a982a,
+ 0x9861c054,
+ 0x0a42c801,
+ 0x0a08c010,
+ 0x0c86c032,
+ 0xc000b481,
+ 0x08c2c801,
+ 0x0880cb10,
+ 0xb4210ce4,
+ 0x0a06c000,
+ 0xb4810cb4,
+ 0xc123c000,
+ 0xc56608d2,
+ 0xc08008e0,
+ 0xb4210c82,
+ 0x1a04c000,
+ 0xb4810c84,
+ 0x0d86c000,
+ 0x0d0209c2,
+ 0x0902c121,
+ 0x991bc014,
+ 0x450cb780,
+ 0xa982f208,
+ 0x0d02c021,
+ 0x09c20d04,
+ 0x9906c014,
+ 0x450cb780,
+ 0x0ad2c123,
+ 0x0ae0c566,
+ 0xa982f208,
+ 0x0d0609c2,
+ 0x98fac014,
+ 0x09c20d86,
+ 0xc1810d0e,
+ 0xc0140902,
+ 0xc00298fe,
+ 0xc0540dc2,
+ 0x700a980d,
+ 0x9364ffff,
+ 0xc0540d82,
+ 0xc0039814,
+ 0xb74092e0,
+ 0xd2265104,
+ 0x9e2d5908,
+ 0xaa4de030,
+ 0x9c629ea4,
+ 0x4494b720,
+ 0x405db740,
+ 0x58c1c280,
+ 0x2a80cff0,
+ 0x5a21c280,
+ 0x8021f310,
+ 0x753ec004,
+ 0x40cdb520,
+ 0x404db580,
+ 0x4652b431,
+ 0x0a42c801,
+ 0x0a08c010,
+ 0x0c86c032,
+ 0xc000b481,
+ 0xc0020886,
+ 0xb4210c98,
+ 0xb780c000,
+ 0xc080448c,
+ 0xf2080c82,
+ 0xb421a881,
+ 0x0d82c000,
+ 0x9bd0c034,
+ 0x448cb780,
+ 0xa881f208,
+ 0xffff7002,
+ 0x0d869304,
+ 0x0d0209c2,
+ 0x0902c121,
+ 0x98afc014,
+ 0x450cb780,
+ 0xa982f208,
+ 0x0d02c021,
+ 0x09c20d04,
+ 0x989ac014,
+ 0x450cb780,
+ 0xa982f208,
+ 0x0d0609c2,
+ 0x9892c014,
+ 0x09c20d86,
+ 0xc1010d0e,
+ 0xc0140902,
+ 0x77409896,
+ 0x9082c000,
+ 0x9b79c034,
+ 0x9c80c971,
+ 0x5a41e200,
+ 0x9204c000,
+ 0x0dc2c002,
+ 0x9b9ac034,
+ 0x448cb780,
+ 0xa881f208,
+ 0xffff7002,
+ 0x0d8292e4,
+ 0x9b9dc034,
+ 0xc0007580,
+ 0xc0349364,
+ 0x0d8a9b5e,
+ 0x9b95c034,
+ 0x448cb780,
+ 0xa881f208,
+ 0x5908d0a8,
+ 0x0948d073,
+ 0xe0309e2d,
+ 0xd3f1aacd,
+ 0xc2002a5c,
+ 0x75185a05,
+ 0x2ad2d012,
+ 0x9234fffb,
+ 0xb79f0802,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0x9c229c22,
+ 0x449cb740,
+ 0xc200aa41,
+ 0xc0025a08,
+ 0xf3100a00,
+ 0xf2088021,
+ 0xf208a882,
+ 0xc0c0a885,
+ 0x5c890c80,
+ 0xc000b421,
+ 0xa6059c22,
+ 0x449cb740,
+ 0x0886aa41,
+ 0x0c9ec034,
+ 0x5a08c200,
+ 0x0a00c002,
+ 0x80a1f310,
+ 0xc000b421,
+ 0x0c92c080,
+ 0xaa25f208,
+ 0xc000b481,
+ 0xc0340dc2,
+ 0xf2089b3f,
+ 0x7008aa25,
+ 0x9344ffff,
+ 0xc0800a02,
+ 0xb4810c96,
+ 0x0d86c000,
+ 0x0d0609c2,
+ 0x0902c121,
+ 0x981bc014,
+ 0xa9a2f208,
+ 0x0d02c021,
+ 0x09c20d04,
+ 0x9808c014,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xc0409e54,
+ 0x9e590c82,
+ 0xc000b421,
+ 0x0d02c040,
+ 0xc000b482,
+ 0xc00e9c22,
+ 0xc00e2d7c,
+ 0x5d3029e0,
+ 0xc0409e54,
+ 0x31b80c82,
+ 0xc000b461,
+ 0x0d02c040,
+ 0xc000b442,
+ 0x9e4c9c22,
+ 0x28fcc00e,
+ 0x2a7cc00e,
+ 0x0c82c040,
+ 0xb4019e58,
+ 0xc200c000,
+ 0x58e45a6c,
+ 0x1d043242,
+ 0x9e515d10,
+ 0x1984598d,
+ 0x3980c011,
+ 0x590d3246,
+ 0x59301904,
+ 0x32443242,
+ 0xc000b481,
+ 0x9e4c9c22,
+ 0x28fcc00e,
+ 0x2a7cc00e,
+ 0x0c82c040,
+ 0xb4019e58,
+ 0xc200c000,
+ 0x58e45a6c,
+ 0x1d043242,
+ 0x9e515d10,
+ 0x1984598d,
+ 0x3980c019,
+ 0x590d3246,
+ 0x59301904,
+ 0x32443242,
+ 0xc000b481,
+ 0x9e4c9c22,
+ 0x28fcc00e,
+ 0x2a7cc00e,
+ 0x0c82c040,
+ 0xb4019e58,
+ 0xc200c000,
+ 0x58e45a6c,
+ 0x1d043242,
+ 0x9e515d10,
+ 0x1984598d,
+ 0x3980c01d,
+ 0x590d3246,
+ 0x59301904,
+ 0x32443242,
+ 0xc000b481,
+ 0xa60d9c22,
+ 0x07038420,
+ 0xc2800687,
+ 0x1c845c8d,
+ 0x5ca0d0a2,
+ 0xd0110287,
+ 0xc2000a5e,
+ 0x1a045a0d,
+ 0x5a30c200,
+ 0x30985cd0,
+ 0x04059e4c,
+ 0x0c8ac032,
+ 0xc8013098,
+ 0xb4213880,
+ 0x9ea9c000,
+ 0x0a02c801,
+ 0x0a00c002,
+ 0xc0306553,
+ 0xb4810c8a,
+ 0xc002c000,
+ 0x0c840882,
+ 0xc000b421,
+ 0xd0229e93,
+ 0x9e535f09,
+ 0x1d045d0d,
+ 0x9b5afff4,
+ 0x5e91c280,
+ 0xc2801e84,
+ 0x9e6c5e84,
+ 0xc2801a84,
+ 0xc1815a90,
+ 0x0d8a3a80,
+ 0x0d020982,
+ 0xfff4314a,
+ 0xc0c09b54,
+ 0x09920d82,
+ 0x0d02c002,
+ 0x0902c002,
+ 0x9a47c034,
+ 0xc0340a0a,
+ 0xb4810c9e,
+ 0x1b04c000,
+ 0x850275bf,
+ 0x9202c000,
+ 0xb55f9dcf,
+ 0xc0347f7c,
+ 0xf2319a4f,
+ 0xb75fa045,
+ 0x1b047f7c,
+ 0x851075bf,
+ 0x9284ffff,
+ 0xc0300a02,
+ 0xb4810c8e,
+ 0xb79fc000,
+ 0xb7bf7e6e,
+ 0xb7df7eee,
+ 0xc0027f6e,
+ 0x9c228c00,
+ 0xb780a605,
+ 0xc004430c,
+ 0x75002a00,
+ 0x560cb7a0,
+ 0x92c2c002,
+ 0xa9b6f208,
+ 0x0982c050,
+ 0x0d7ec008,
+ 0x9b08fff4,
+ 0xa9bef208,
+ 0x0982c028,
+ 0x0d3ec004,
+ 0x9b00fff4,
+ 0x430cb780,
+ 0x38c0d211,
+ 0x02039e89,
+ 0x2a00c201,
+ 0xcffa7500,
+ 0xb5202cfd,
+ 0xc0014314,
+ 0x744090e2,
+ 0x568cb740,
+ 0x9256c000,
+ 0xaa45f008,
+ 0xa8c9f008,
+ 0x2cfec7ff,
+ 0x0a00c010,
+ 0xa245f008,
+ 0x0880c008,
+ 0xa0c9f008,
+ 0x4314b520,
+ 0xaa45f008,
+ 0x430cb720,
+ 0xa235f208,
+ 0xa8caf008,
+ 0x28fecdff,
+ 0xa0bef208,
+ 0x430cb520,
+ 0x9240c000,
+ 0xa937f208,
+ 0xaa39f208,
+ 0xa93cf20a,
+ 0xa8a1f248,
+ 0x8021f310,
+ 0x82a3e210,
+ 0xa235f208,
+ 0xa0bdf208,
+ 0xa9bef248,
+ 0x0982c002,
+ 0xfff40d0e,
+ 0xf2489ab5,
+ 0xb720aa3d,
+ 0xc002430c,
+ 0xf2480a00,
+ 0xc200a23d,
+ 0xb5203880,
+ 0xc011430c,
+ 0x74402880,
+ 0x92e2c000,
+ 0xa9b6f248,
+ 0x0982c008,
+ 0xfff40d3e,
+ 0xf2489a9d,
+ 0xb720aa35,
+ 0xc008430c,
+ 0xf2480a00,
+ 0xc081a235,
+ 0xcfef3880,
+ 0xb52028fe,
+ 0xb780430c,
+ 0xc001430c,
+ 0x75002a04,
+ 0x92e2c000,
+ 0xa9b6f248,
+ 0x0982c008,
+ 0xfff40d3e,
+ 0xf2489a81,
+ 0xb720aa35,
+ 0xc008430c,
+ 0xf2480a00,
+ 0xc001a235,
+ 0xcfff3888,
+ 0xb52028fa,
+ 0xb720430c,
+ 0x0203430c,
+ 0x2a10c001,
+ 0xc0027500,
+ 0xc0019082,
+ 0x744028c0,
+ 0x9182c001,
+ 0xa9a6f288,
+ 0x0d0609c2,
+ 0x0c820942,
+ 0xfff40882,
+ 0xf2889a96,
+ 0xf288a9b6,
+ 0x5d90a927,
+ 0x81afe220,
+ 0x430cb780,
+ 0x0d0609c2,
+ 0x0c820942,
+ 0xc0010882,
+ 0xb5803a20,
+ 0xfff4430c,
+ 0xb7809aa0,
+ 0xf288430c,
+ 0xc003a8a5,
+ 0x08c03a00,
+ 0xa0a5f288,
+ 0x2a2ecfff,
+ 0x9260c000,
+ 0xa9a6f288,
+ 0x0d0609c2,
+ 0x9a36fff4,
+ 0x430cb780,
+ 0xa8a5f288,
+ 0x3a20c001,
+ 0xf28808c0,
+ 0xcfffa0a5,
+ 0xb5802a6e,
+ 0xb79f430c,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa6059c22,
+ 0x430cb780,
+ 0x2a00c200,
+ 0x9e5d7500,
+ 0x9302c000,
+ 0x0abc6a8e,
+ 0x09829eab,
+ 0xc1010d36,
+ 0xc0140902,
+ 0x9eab98a4,
+ 0x430cb780,
+ 0x0d1a0982,
+ 0x0902c101,
+ 0x2a7dcdfe,
+ 0x430cb580,
+ 0x9897c014,
+ 0x430cb780,
+ 0x2a00c081,
+ 0xc0007500,
+ 0xc1019222,
+ 0xc0060902,
+ 0x0dce0940,
+ 0x0d020982,
+ 0x9887c014,
+ 0x430cb780,
+ 0x2a7ecf7f,
+ 0x430cb580,
+ 0x430cb780,
+ 0x2a08c001,
+ 0xc0007500,
+ 0xc1019222,
+ 0xc0060902,
+ 0x0dde0940,
+ 0x0d020982,
+ 0x9871c014,
+ 0x430cb780,
+ 0x2a76cfff,
+ 0x430cb580,
+ 0x430cb780,
+ 0x2a20c001,
+ 0xc0007500,
+ 0x0de291e2,
+ 0x0d020982,
+ 0x0902c101,
+ 0x985dc014,
+ 0x430cb780,
+ 0x2a5ecfff,
+ 0x430cb580,
+ 0x430cb780,
+ 0x2a00c003,
+ 0xc0007500,
+ 0x0de291e2,
+ 0x0d060982,
+ 0x0902c101,
+ 0x9849c014,
+ 0x430cb780,
+ 0x2a7ecffd,
+ 0x430cb580,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xb7a0a605,
+ 0xf248560c,
+ 0xc021a9ba,
+ 0x0d3c0d02,
+ 0x0982c008,
+ 0x999efff4,
+ 0xa9aaf288,
+ 0x0d02c021,
+ 0x09c20d04,
+ 0x9996fff4,
+ 0xaa39f248,
+ 0xa8a9f288,
+ 0x0a00c008,
+ 0xa239f248,
+ 0xf28808c0,
+ 0xb79fa0a9,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa6059c22,
+ 0x09920687,
+ 0x0d02c002,
+ 0x0902c002,
+ 0x9883c034,
+ 0x0a42c002,
+ 0xc2800eb0,
+ 0xb4855e89,
+ 0xb79fc000,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xb7409c22,
+ 0xd1a64b84,
+ 0x9e2d5d08,
+ 0xa8cde030,
+ 0x5a0cc080,
+ 0xd1f35885,
+ 0xc00e2910,
+ 0xe2202d7c,
+ 0xc00e812d,
+ 0x5d302a40,
+ 0x32429e51,
+ 0x0c82c040,
+ 0xc000b481,
+ 0x0d02c040,
+ 0xc000b442,
+ 0xb7409c22,
+ 0x1df05704,
+ 0x5d08d1a6,
+ 0xe0309e2d,
+ 0xc080a8cd,
+ 0xd0335a05,
+ 0x5991294e,
+ 0x008929bc,
+ 0x81a7e210,
+ 0x2910d1f3,
+ 0x2d7cc00e,
+ 0x812de220,
+ 0x5d305990,
+ 0x31b89e54,
+ 0x0c82c040,
+ 0xc000b461,
+ 0x0d02c040,
+ 0xc000b442,
+ 0xa6059c22,
+ 0x560cb7a0,
+ 0x0e82c111,
+ 0x0ec0c04e,
+ 0xa9b6f208,
+ 0x0982c050,
+ 0x0d7ec008,
+ 0x991efff4,
+ 0x0df29e6a,
+ 0x0982c004,
+ 0xfff40d02,
+ 0xf2089bc8,
+ 0xf248a937,
+ 0xe220a9aa,
+ 0xc05081af,
+ 0xc0080982,
+ 0xfff40d7e,
+ 0x9e6a990b,
+ 0xc0040df2,
+ 0x0d0209c2,
+ 0x9bb5fff4,
+ 0xa937f208,
+ 0xa9aaf248,
+ 0x812ec201,
+ 0x81afe220,
+ 0x0982c050,
+ 0x0d7ec008,
+ 0x98f6fff4,
+ 0x0df29e6a,
+ 0x0982c006,
+ 0xfff40d02,
+ 0xf2089ba0,
+ 0xcfd8a9be,
+ 0xc0280e81,
+ 0xc0040982,
+ 0xfff40d3e,
+ 0x9e6a98e5,
+ 0xc0040df2,
+ 0xc0040982,
+ 0xfff40d42,
+ 0xf2089b8e,
+ 0xf248a93f,
+ 0xe220a9b2,
+ 0xc02881af,
+ 0xc0040982,
+ 0xfff40d3e,
+ 0x9e6a98d1,
+ 0xc0040df2,
+ 0xc00409c2,
+ 0xfff40d42,
+ 0xf2089b7a,
+ 0xf248a93f,
+ 0xc201a9b2,
+ 0xe220812e,
+ 0xc02881af,
+ 0xc0040982,
+ 0xfff40d3e,
+ 0x9e6a98bb,
+ 0xc0060df2,
+ 0xc0040982,
+ 0xfff40d42,
+ 0xf2489b64,
+ 0xf20aaa29,
+ 0xf248a934,
+ 0xd226a8b1,
+ 0xf2085904,
+ 0xf310a9bf,
+ 0xd0a68021,
+ 0xe2105904,
+ 0xf31080a3,
+ 0xe2108221,
+ 0xf20880b3,
+ 0xf208a235,
+ 0xb79fa0bd,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa6059c22,
+ 0x0902c121,
+ 0x0940c006,
+ 0x02870dca,
+ 0x0d020982,
+ 0x2afcc00e,
+ 0x9b1bfff4,
+ 0x09820dca,
+ 0xc2800d1e,
+ 0x010b5aec,
+ 0x3900c121,
+ 0x9b11fff4,
+ 0x430cb780,
+ 0x3a00c400,
+ 0x430cb580,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0x0922c829,
+ 0x0970c5fe,
+ 0x0a22c829,
+ 0x0a50c5fe,
+ 0x578cb720,
+ 0x0ca2c829,
+ 0x0ce0c5fe,
+ 0x8502c004,
+ 0x450cb580,
+ 0x448cb520,
+ 0x0a18d071,
+ 0xa241f008,
+ 0x404db520,
+ 0x413db540,
+ 0x8d00c004,
+ 0x40bdb540,
+ 0x403db540,
+ 0xf8399c22,
+ 0xf010a285,
+ 0x7500aa61,
+ 0x9164c000,
+ 0xa8c1d008,
+ 0x0a069e48,
+ 0x5200c200,
+ 0xd0083098,
+ 0xd011a0c1,
+ 0xd0100d38,
+ 0xf011a9f2,
+ 0xf0101a30,
+ 0x1984a943,
+ 0x93e2c000,
+ 0x8702cff1,
+ 0x8700cff0,
+ 0x087ec00f,
+ 0x087cc00e,
+ 0x0c1ac050,
+ 0xa8c5f029,
+ 0x2095d020,
+ 0x9e4d5ca1,
+ 0xc2002210,
+ 0x30d85a20,
+ 0x4006ba09,
+ 0xc000b420,
+ 0x1a30f011,
+ 0xffff1984,
+ 0xf21091e4,
+ 0xf010802f,
+ 0xf9f8a241,
+ 0x9c22aa9d,
+ 0x8420a60d,
+ 0x9e558502,
+ 0x7f7cb55f,
+ 0xaa61f010,
+ 0x8d8ee012,
+ 0xb55f0307,
+ 0x1a087ffc,
+ 0xd226750a,
+ 0x8540590c,
+ 0x8044e05a,
+ 0x91e0c003,
+ 0x9180c000,
+ 0x9000c001,
+ 0x9140c001,
+ 0x92a0c001,
+ 0x9380c001,
+ 0x91c0c002,
+ 0x588cb780,
+ 0xa881da08,
+ 0x74402888,
+ 0xb352856a,
+ 0xb7804462,
+ 0x9d57448c,
+ 0x8d88e011,
+ 0x1954d072,
+ 0xa299f208,
+ 0x9abcc014,
+ 0x91e0c002,
+ 0x448cb780,
+ 0xa91af208,
+ 0xe0119ea9,
+ 0x15148d88,
+ 0x9ab0c014,
+ 0x9060c002,
+ 0x8d88e011,
+ 0x295ed3f2,
+ 0xc0140916,
+ 0xb78099df,
+ 0xf208448c,
+ 0xc001a299,
+ 0xe01192c0,
+ 0xd3f28d88,
+ 0x0916295e,
+ 0x99d2c014,
+ 0x91a0c001,
+ 0xaa41d208,
+ 0x8c88f011,
+ 0xd0124a7d,
+ 0x0d062ace,
+ 0x018b0906,
+ 0x99c4c014,
+ 0x9e6a9e83,
+ 0x0d02018b,
+ 0x99bec014,
+ 0x9320c000,
+ 0xaa41d208,
+ 0x8c88f011,
+ 0xd0124a7d,
+ 0x0d022ace,
+ 0x018b0906,
+ 0x99b0c014,
+ 0x9e6a9e83,
+ 0xc00e018b,
+ 0xc0140d7e,
+ 0xc00099a9,
+ 0xc0019080,
+ 0xb79f90e0,
+ 0xc00f7e68,
+ 0xc00e0cfe,
+ 0x9e4a0cfc,
+ 0x7c68b59f,
+ 0x7f6cb73f,
+ 0x0a02cff1,
+ 0x0a00cff0,
+ 0x0c9ac050,
+ 0xc2002218,
+ 0x20945a21,
+ 0x324258a0,
+ 0x4006ba24,
+ 0x7f6cb59f,
+ 0xc000b481,
+ 0xa943f208,
+ 0x7fecb79f,
+ 0x8021f310,
+ 0xa241f208,
+ 0x7e6eb79f,
+ 0x7eeeb7bf,
+ 0x7f6eb7df,
+ 0x8c00c002,
+ 0xa61d9c22,
+ 0x85028440,
+ 0xf0319e9d,
+ 0x0b02abe5,
+ 0x7878b55f,
+ 0x7efcb55f,
+ 0x9d3a718e,
+ 0x91e8c001,
+ 0x7502aa41,
+ 0x9392c000,
+ 0xaad1d018,
+ 0x8d08e032,
+ 0x8d00e051,
+ 0x9eb19dcf,
+ 0xb55f8510,
+ 0xc0027f7c,
+ 0xc2800a9c,
+ 0x018b5a95,
+ 0x9aebfff4,
+ 0x7f7cb75f,
+ 0x5a88c280,
+ 0x8122c301,
+ 0x91a0c000,
+ 0x8d88e031,
+ 0x050b9dcf,
+ 0xb55f8510,
+ 0xfff47f7c,
+ 0xb75f9b19,
+ 0x0b047f7c,
+ 0xfffe718e,
+ 0xb79f92a6,
+ 0xc0507868,
+ 0xb4810c9e,
+ 0xc050c000,
+ 0xb4e20d16,
+ 0xb71fc000,
+ 0xb79f7eec,
+ 0xb7bf7d6e,
+ 0xb7df7dee,
+ 0xb7ff7e6e,
+ 0xc0027eee,
+ 0x9c228c40,
+ 0xa205f839,
+ 0x8400c010,
+ 0x588cb780,
+ 0x449cb740,
+ 0xa882da08,
+ 0xd011a8c1,
+ 0x58882e18,
+ 0x0880c002,
+ 0xe2107500,
+ 0xc00080a3,
+ 0x0a0a90a2,
+ 0x9100c000,
+ 0x2e14d011,
+ 0x0a067500,
+ 0x0a44d001,
+ 0x0c82c050,
+ 0xc000b481,
+ 0x0a02c004,
+ 0xb4810cb4,
+ 0x9d87c000,
+ 0x402db740,
+ 0x09a20dc2,
+ 0x0d02c008,
+ 0x0c81cff0,
+ 0x9b4dffd4,
+ 0x0a42c801,
+ 0x0a00cb10,
+ 0x0ceac032,
+ 0xc000b481,
+ 0x08c2c801,
+ 0x0888c010,
+ 0xb4210c84,
+ 0xb760c000,
+ 0x9d8f410a,
+ 0x0d81cff0,
+ 0x9b67fff4,
+ 0x0a02c801,
+ 0x0a00c00a,
+ 0x0c8ac030,
+ 0xc000b481,
+ 0x08c2c008,
+ 0xb4210c84,
+ 0xc008c000,
+ 0x0c880a02,
+ 0xc000b481,
+ 0x0d82c0c0,
+ 0xc0080992,
+ 0xc0080d02,
+ 0xc0140902,
+ 0xc00899ae,
+ 0xc0300a02,
+ 0xb4810c8e,
+ 0xc014c000,
+ 0xb79f982f,
+ 0xc0106fee,
+ 0x9c228c20,
+ 0xa205f839,
+ 0x0c82c450,
+ 0xb4810a02,
+ 0xb101c000,
+ 0xc0084220,
+ 0xc0300a40,
+ 0xb4810c8e,
+ 0xc002c000,
+ 0xc05038c0,
+ 0xb4210c82,
+ 0xc0c0c000,
+ 0x09920d82,
+ 0x0d02c008,
+ 0x0902c008,
+ 0x9983c014,
+ 0x0a02c008,
+ 0x0c8ec030,
+ 0xc000b481,
+ 0xaa1df9f8,
+ 0x9040c000,
+ 0xc450a60d,
+ 0x0a020c8a,
+ 0xc000b481,
+ 0x4240b105,
+ 0x2efce00e,
+ 0x5e90d284,
+ 0x0a02c801,
+ 0xc0300a40,
+ 0xb4810c8a,
+ 0x08c2c000,
+ 0xb4210c84,
+ 0x7740c000,
+ 0x590cb7c0,
+ 0x93e2c000,
+ 0x0eded031,
+ 0x09820dea,
+ 0x2ac10d02,
+ 0x1950d051,
+ 0x3900c121,
+ 0x98ddfff4,
+ 0xa9c6f248,
+ 0xc280018b,
+ 0x1a845a8f,
+ 0xc0219eaa,
+ 0xffd43d00,
+ 0xf2489a3f,
+ 0xf310a947,
+ 0xf248802b,
+ 0xc450a245,
+ 0x0a020c86,
+ 0xc000b481,
+ 0x4220b101,
+ 0x0a42c801,
+ 0x0a08c010,
+ 0x0c86c032,
+ 0xc000b481,
+ 0xc0020886,
+ 0xb4210c98,
+ 0xb740c000,
+ 0xf248580c,
+ 0xf048a8c5,
+ 0xd053aa51,
+ 0xc0801910,
+ 0xf3100ca2,
+ 0xb4818821,
+ 0xb7a0c000,
+ 0xc002580c,
+ 0xc0140d82,
+ 0xf248992f,
+ 0xf248a8c5,
+ 0xd053aa31,
+ 0xf3101910,
+ 0x70088821,
+ 0x9264ffff,
+ 0x09c20d86,
+ 0xc1210d0a,
+ 0xffd40902,
+ 0xf2489a0a,
+ 0xc0a1a9b2,
+ 0x0d040d02,
+ 0xffd409c2,
+ 0xc0c099f7,
+ 0x09920d82,
+ 0x09420d42,
+ 0x98f7c014,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x9e5da60d,
+ 0xf1245940,
+ 0xd3f15841,
+ 0xb3502d2e,
+ 0xc0024422,
+ 0xf00893e2,
+ 0xe000aa61,
+ 0xb4252a1c,
+ 0xd8084422,
+ 0x8522aa61,
+ 0x88a9e210,
+ 0x12182a1c,
+ 0xc00e9ea3,
+ 0xba1b0a7e,
+ 0xc200400b,
+ 0x21285207,
+ 0x9276c001,
+ 0xc1009e59,
+ 0x11035a20,
+ 0x5209c200,
+ 0xc2009ea2,
+ 0x9e8d58a1,
+ 0x0cb0d031,
+ 0xa8a2d208,
+ 0x2a7cc00e,
+ 0x5207c200,
+ 0x2a7cc00e,
+ 0xd208349a,
+ 0xf008a0a2,
+ 0x9ea1a963,
+ 0x2a2ed3f1,
+ 0x8128c201,
+ 0x8821f310,
+ 0xf0088502,
+ 0xd228a261,
+ 0x9eaba127,
+ 0x2d01cff0,
+ 0x59415940,
+ 0xc00e3522,
+ 0xfff42d7c,
+ 0xc0009bb1,
+ 0xd20892e0,
+ 0x9e5eaa21,
+ 0x50d8000b,
+ 0xd0293242,
+ 0xf008a205,
+ 0xd013a8e1,
+ 0xf210291e,
+ 0x75108029,
+ 0x00989e44,
+ 0xa0e1f008,
+ 0x4426b350,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x0685a60d,
+ 0x9e9e9e69,
+ 0x71820b02,
+ 0xc0000a86,
+ 0x9ea99208,
+ 0x9e6916d2,
+ 0x5a84c280,
+ 0x1a52d011,
+ 0xd0117102,
+ 0xd3f108e2,
+ 0xffff2b1e,
+ 0xd0119286,
+ 0x75100a62,
+ 0xc000028d,
+ 0x9e7391d4,
+ 0x09220d02,
+ 0x9b70fff4,
+ 0xd0111aa0,
+ 0x75100a52,
+ 0xffff9e83,
+ 0x9e7392d2,
+ 0xd0110d06,
+ 0xc00e0952,
+ 0xfff4297c,
+ 0x75909b61,
+ 0xc0009e83,
+ 0xd03192f4,
+ 0xd3f11a60,
+ 0x9e6c2b4e,
+ 0xc2009e73,
+ 0xd3f25299,
+ 0x0922295e,
+ 0x9b50fff4,
+ 0xc2009e83,
+ 0x9ea952b8,
+ 0x16d27590,
+ 0x91b2ffff,
+ 0xd3f29e73,
+ 0x010d2d5e,
+ 0x9b42fff4,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x0ca0f011,
+ 0xd09a9e99,
+ 0xd00d5a04,
+ 0xc0001a42,
+ 0x1203909a,
+ 0x9e4b1242,
+ 0xfffc9ea2,
+ 0xc0019360,
+ 0xf83993a0,
+ 0x0d8aa205,
+ 0x9835c014,
+ 0xc0140d8e,
+ 0x0d8a9832,
+ 0xaa1df9f8,
+ 0x91a0c001,
+ 0x9e520507,
+ 0x0d82c0c0,
+ 0xc0000992,
+ 0x9e5c9040,
+ 0xd1a401c6,
+ 0x08825889,
+ 0x3c80c400,
+ 0xc000b421,
+ 0x4220b104,
+ 0x9e532244,
+ 0xffff7106,
+ 0x9c229324,
+ 0xc000b463,
+ 0xf8129c22,
+ 0x9c22a062,
+ 0x0d80c200,
+ 0x9e595d89,
+ 0xc4000982,
+ 0xb4633d80,
+ 0xb203c000,
+ 0x00074620,
+ 0xc1279c22,
+ 0x9c229c8f,
+ 0xb971080a,
+ 0xc01756f1,
+ 0xc0719c81,
+ 0xc0179c80,
+ 0xb9609c80,
+ 0x9c224000,
+ 0x8460a61d,
+ 0x4484b740,
+ 0xb53f0882,
+ 0xb53f7dec,
+ 0x01037e6c,
+ 0x7d6cb55f,
+ 0x4588b540,
+ 0xaa41f000,
+ 0xb7a09e2d,
+ 0xb53f568c,
+ 0xc2007eec,
+ 0xd0935a08,
+ 0x9ea90940,
+ 0xa96de020,
+ 0x098e0dc2,
+ 0x0d42c002,
+ 0x991bffd4,
+ 0x5614b720,
+ 0xaa25f208,
+ 0xb53f0882,
+ 0xf2087f6c,
+ 0xb760a8a9,
+ 0xda08580c,
+ 0xb580a939,
+ 0xda0842cd,
+ 0xd112a93e,
+ 0x9e4e09b8,
+ 0x43cdb520,
+ 0x434db540,
+ 0x4455b540,
+ 0xaa39f208,
+ 0xa822da08,
+ 0xa8e1d810,
+ 0xf0489e9a,
+ 0x2a20a967,
+ 0x9e447500,
+ 0xa97df048,
+ 0xc08060c2,
+ 0xc2005a7f,
+ 0x00985a71,
+ 0x58945893,
+ 0x80a3e210,
+ 0x46cdb540,
+ 0x474db540,
+ 0x47cdb520,
+ 0x90c2c000,
+ 0x5c40e000,
+ 0x9184c000,
+ 0xa957f050,
+ 0xaa61d810,
+ 0x8021f310,
+ 0xa14bf288,
+ 0xa245f288,
+ 0xaa59f208,
+ 0xa8c1f248,
+ 0x569cb760,
+ 0xa249f248,
+ 0xaa41f010,
+ 0xa8c6f010,
+ 0xa949f010,
+ 0xa0d1f248,
+ 0xa241f208,
+ 0xa0caf208,
+ 0xa14df208,
+ 0xa8cad850,
+ 0x0e28d111,
+ 0xa94dd850,
+ 0xa881da08,
+ 0xa0c6f208,
+ 0x5914b720,
+ 0xa151f208,
+ 0x58d158c0,
+ 0xa0d5f288,
+ 0xaa61d818,
+ 0x425db740,
+ 0x42c5b740,
+ 0xc2000089,
+ 0x589c5a20,
+ 0x8021f310,
+ 0x82a3e210,
+ 0xa24df010,
+ 0xa0d1f010,
+ 0xa245f248,
+ 0xa0cdf248,
+ 0x0a00c00c,
+ 0x4d8cb580,
+ 0x0880c006,
+ 0x4e0cb520,
+ 0x0cf2c42e,
+ 0xb4810a02,
+ 0xb101c000,
+ 0x28844220,
+ 0xc0007440,
+ 0xd1119142,
+ 0xda080e28,
+ 0xc058a881,
+ 0xc02b7460,
+ 0xb7209012,
+ 0xb780568c,
+ 0x0a86402b,
+ 0x410ab720,
+ 0x9ead7500,
+ 0x1ed2d002,
+ 0xc0007448,
+ 0xb7409152,
+ 0xf008568c,
+ 0xcffeaa59,
+ 0xf0082a3d,
+ 0xb760a259,
+ 0xf008568c,
+ 0x2a40aa79,
+ 0xc0007500,
+ 0x0a0a9122,
+ 0x0caec060,
+ 0xc000b481,
+ 0x90e0c000,
+ 0xc0600a06,
+ 0xb4810cae,
+ 0xb720c000,
+ 0xf2c84c14,
+ 0xf288aa41,
+ 0xc801a8dd,
+ 0x9d1e3c80,
+ 0x448cb740,
+ 0x5a40c200,
+ 0xc30158a0,
+ 0x32423246,
+ 0xa251f008,
+ 0x9a01c034,
+ 0xc0340a3e,
+ 0xb4810c9e,
+ 0x0882c000,
+ 0xb4210c90,
+ 0xffd4c000,
+ 0xc0069a90,
+ 0xb5408542,
+ 0x0a02459c,
+ 0x0c8ac030,
+ 0xc000b481,
+ 0x0882c002,
+ 0xb4210c84,
+ 0xc801c000,
+ 0xc0020a02,
+ 0x1c840a00,
+ 0xc000b481,
+ 0x0902c1c1,
+ 0x0940c006,
+ 0x09820dce,
+ 0xffb40d02,
+ 0xc0c09ba8,
+ 0xffd40d82,
+ 0xb7809a16,
+ 0xc034458c,
+ 0xc2000cae,
+ 0xb4815a11,
+ 0x0882c000,
+ 0xb4210cfc,
+ 0xb720c000,
+ 0xb780568c,
+ 0x2a04432d,
+ 0x850a7500,
+ 0x461cb540,
+ 0x90a2c000,
+ 0xb5408504,
+ 0xb780461c,
+ 0xc03e460c,
+ 0xb5800c82,
+ 0xb481468c,
+ 0xc0c8c000,
+ 0xc0500882,
+ 0xb4210ce2,
+ 0xb740c000,
+ 0xf008568c,
+ 0x8516aa59,
+ 0x0cfac038,
+ 0x75002a04,
+ 0xcffe0902,
+ 0xe0010a7e,
+ 0xb5408d28,
+ 0xb481471c,
+ 0xc284c000,
+ 0xb540856a,
+ 0xc002481c,
+ 0xc0500a42,
+ 0xb4810cb6,
+ 0xc03ac000,
+ 0xb4420d02,
+ 0x08bec000,
+ 0x0c9ec034,
+ 0xc000b421,
+ 0x7808b784,
+ 0xc0007500,
+ 0xc0749082,
+ 0xb780988a,
+ 0xc038480c,
+ 0xb4810c82,
+ 0xb760c000,
+ 0xb720568c,
+ 0xf288598c,
+ 0xd808aa55,
+ 0xb720a965,
+ 0x6245462d,
+ 0xb5408502,
+ 0x7440419a,
+ 0x5a11c200,
+ 0x420ab580,
+ 0x9102c000,
+ 0xa9eaf048,
+ 0x420ab760,
+ 0x9c629e8c,
+ 0x5814b7e0,
+ 0x9eb60b82,
+ 0x470cb780,
+ 0x0c82c050,
+ 0xc000b481,
+ 0x0d0ac030,
+ 0xc000b4e2,
+ 0x08fec00e,
+ 0x0c8ec030,
+ 0xc000b421,
+ 0x569cb760,
+ 0xaa79f018,
+ 0x75002a04,
+ 0x9182c000,
+ 0x0c8ac438,
+ 0xc000b4e1,
+ 0x4220b104,
+ 0x0ca6c03e,
+ 0xc000b481,
+ 0x428cb780,
+ 0xc0017500,
+ 0xc02093a2,
+ 0x75002a00,
+ 0x90e2c001,
+ 0x0ca2c460,
+ 0xc000b4e1,
+ 0x4220b104,
+ 0xc060088a,
+ 0xb4210ca2,
+ 0xc004c000,
+ 0xc0300902,
+ 0xb4410c96,
+ 0xb780c000,
+ 0xcfde428c,
+ 0xb5802a7d,
+ 0xc002428c,
+ 0xc00e08f8,
+ 0xb4210cec,
+ 0xc201c000,
+ 0xb4810a02,
+ 0xc004c000,
+ 0xb5408502,
+ 0xb7204c9c,
+ 0xc030428c,
+ 0xb4210c96,
+ 0xb780c000,
+ 0x2a04428c,
+ 0xc0007500,
+ 0xb78090e2,
+ 0x0a04478c,
+ 0x478cb580,
+ 0x018b058b,
+ 0x99e7c054,
+ 0x430cb780,
+ 0x2a00c020,
+ 0xc00e7500,
+ 0xb51f287c,
+ 0xc0027dec,
+ 0xf2509042,
+ 0xc021a9c6,
+ 0x0d7c0d02,
+ 0x0982c010,
+ 0x9aa6ffb4,
+ 0xa9cef250,
+ 0x0d02c021,
+ 0xc0080d3c,
+ 0xffb40982,
+ 0xb7809a9d,
+ 0xc401430c,
+ 0x75002a00,
+ 0x9262c000,
+ 0xaa6df210,
+ 0xa8f1f210,
+ 0xb55f0906,
+ 0xc0107eec,
+ 0xf2100a00,
+ 0xc008a26d,
+ 0xf2100880,
+ 0xc000a0f1,
+ 0xf24891c0,
+ 0xf248a947,
+ 0xf24aaa49,
+ 0xf248a94c,
+ 0xf310a8d1,
+ 0xe2108021,
+ 0xf24882a3,
+ 0xf248a245,
+ 0xb780a0cd,
+ 0xcfde430c,
+ 0xb5802a7d,
+ 0xb780430c,
+ 0xc021430c,
+ 0x75002a00,
+ 0x9122c001,
+ 0x4394b760,
+ 0x0d02c021,
+ 0xc0020d14,
+ 0xffb409c2,
+ 0xb7609a5f,
+ 0xc0214414,
+ 0x0d040d02,
+ 0xffb409c2,
+ 0xb7409a57,
+ 0xf210439c,
+ 0xb740aa59,
+ 0xf2504404,
+ 0xb720a8c1,
+ 0xf3104314,
+ 0xe2108021,
+ 0xcfdf82a3,
+ 0xb5202cfe,
+ 0xb5804314,
+ 0xb520438c,
+ 0xb720440c,
+ 0x9e4c4314,
+ 0x2a00c401,
+ 0xc0007500,
+ 0xf25091a2,
+ 0xf250aa45,
+ 0xc002a8cd,
+ 0xb5801a40,
+ 0x18c0438c,
+ 0x440cb520,
+ 0xc4009e4c,
+ 0x76402c80,
+ 0x2a7ecbff,
+ 0x430cb580,
+ 0x9142c000,
+ 0x987affd4,
+ 0x430cb780,
+ 0x2a7dcbfe,
+ 0x430cb580,
+ 0x7d6cb79f,
+ 0xc0007500,
+ 0xb76093c2,
+ 0xd032590c,
+ 0x2d41094e,
+ 0xa9e6f048,
+ 0x5d0d9e53,
+ 0xc0211d04,
+ 0xffb43d00,
+ 0xb7809a09,
+ 0xf248590c,
+ 0xb79fa907,
+ 0xb7607d6c,
+ 0xf310591c,
+ 0xb5ff8021,
+ 0xf0587d6c,
+ 0xb73fa265,
+ 0x74407e6c,
+ 0x9002c005,
+ 0x0902c101,
+ 0x0940c002,
+ 0x09820da6,
+ 0xffd40d02,
+ 0xc1019880,
+ 0xc0800902,
+ 0x0da60940,
+ 0x0d120982,
+ 0x9877ffd4,
+ 0x568cb740,
+ 0xa9c0f212,
+ 0xaa59f008,
+ 0xa948f212,
+ 0xa9cff210,
+ 0xc0208522,
+ 0x75002a00,
+ 0x8eb0e051,
+ 0x4f0cb780,
+ 0x8520e021,
+ 0x8aadf210,
+ 0xf0207502,
+ 0xc00088b4,
+ 0xf2889364,
+ 0xf208aa55,
+ 0x1a04a8c5,
+ 0x6145c301,
+ 0xa8d2f208,
+ 0xe2305890,
+ 0xc2008b33,
+ 0x5c8c5a10,
+ 0x80a1e310,
+ 0x8b23e030,
+ 0x80a5f210,
+ 0x893ac201,
+ 0x80a5f220,
+ 0xf2089e8b,
+ 0x09c2a945,
+ 0x0c820d42,
+ 0xffb40882,
+ 0xb76099c2,
+ 0xf008568c,
+ 0xc020aa79,
+ 0x75002a00,
+ 0x92c2c000,
+ 0xf2089eab,
+ 0x09a2a951,
+ 0x0c820d22,
+ 0xffb40882,
+ 0xf20899ce,
+ 0x058ba951,
+ 0x0d2209a2,
+ 0x08820c82,
+ 0x99e3ffb4,
+ 0x9160c000,
+ 0xf2089eab,
+ 0x09c2a951,
+ 0x0c820d22,
+ 0xffb40882,
+ 0xc101999c,
+ 0xc00e0902,
+ 0x0d860940,
+ 0x0d020982,
+ 0x980bffd4,
+ 0x569cb760,
+ 0xaa79f018,
+ 0x2a00c020,
+ 0xc0007500,
+ 0xc10191a2,
+ 0xc0060902,
+ 0x0d8a0940,
+ 0x0d020982,
+ 0x9bf9ffb4,
+ 0x9160c000,
+ 0x0902c101,
+ 0x0940c086,
+ 0x09820d8a,
+ 0xffb40d02,
+ 0x08829bee,
+ 0x7e6cb53f,
+ 0x430cb780,
+ 0x2a00c100,
+ 0xc0007500,
+ 0xffb49142,
+ 0xb7809a37,
+ 0xcefe430c,
+ 0xb5802a7d,
+ 0xb780430c,
+ 0xc004428c,
+ 0x75002a00,
+ 0x92c2c002,
+ 0x0ae8d152,
+ 0x418ab720,
+ 0xaa21da10,
+ 0x4002ba09,
+ 0x4002ba24,
+ 0x70480a0c,
+ 0x9118c002,
+ 0x7f6cb75f,
+ 0x4d94b760,
+ 0x0982c004,
+ 0xd0110d1e,
+ 0xc00e0a22,
+ 0xb59f2a7c,
+ 0xffb47f6c,
+ 0xb7609925,
+ 0xc0024e14,
+ 0x0d0e0982,
+ 0x991effb4,
+ 0x4d9cb740,
+ 0xaa59f208,
+ 0x4e04b740,
+ 0xa8a1f210,
+ 0x7f6cb77f,
+ 0xa8c2f248,
+ 0x8120c301,
+ 0x4d9cb540,
+ 0xc00170c2,
+ 0xb5408322,
+ 0xc0004e04,
+ 0x9d1e92a6,
+ 0xc3016219,
+ 0xf3106097,
+ 0xe2108821,
+ 0x09028aa3,
+ 0x7f6cb55f,
+ 0x0a00c010,
+ 0x4d8cb580,
+ 0x0880c008,
+ 0x4e0cb520,
+ 0x430cb780,
+ 0x3a00c041,
+ 0x430cb580,
+ 0x430cb780,
+ 0x2a00c005,
+ 0xc0047500,
+ 0xf21091c2,
+ 0xf210a9c2,
+ 0x09c2a945,
+ 0x0c820d42,
+ 0xffb40882,
+ 0xb76098f8,
+ 0xf008568c,
+ 0xc020aa79,
+ 0x75002a00,
+ 0x9302c000,
+ 0xa9caf208,
+ 0xa951f208,
+ 0x0d2209a2,
+ 0x08820c82,
+ 0x9903ffb4,
+ 0xa9cef208,
+ 0xa951f208,
+ 0x0d2209a2,
+ 0x08820c82,
+ 0x9917ffb4,
+ 0x9180c000,
+ 0xa9caf208,
+ 0xa951f208,
+ 0x0d2209c2,
+ 0x08820c82,
+ 0x98cfffb4,
+ 0x430cb720,
+ 0xc1010203,
+ 0x75002a00,
+ 0x9122c001,
+ 0xa8eada50,
+ 0xa963f210,
+ 0x28feceff,
+ 0x430cb520,
+ 0xa8edda50,
+ 0xa968f212,
+ 0xe2205c90,
+ 0xf21080ab,
+ 0x0203a967,
+ 0xc200588c,
+ 0xf3105a0c,
+ 0xe2108221,
+ 0xf21080a3,
+ 0xf210a0e2,
+ 0xf210a269,
+ 0xf210a0e5,
+ 0xf210a0c2,
+ 0xf210a0c9,
+ 0xc001a24d,
+ 0xb7609080,
+ 0xf018569c,
+ 0xf210aa79,
+ 0xc020a8c1,
+ 0x75002a00,
+ 0xf21008c0,
+ 0xc000a0c1,
+ 0xf2089182,
+ 0xf208aa49,
+ 0x0a20a8cd,
+ 0xa249f208,
+ 0xc00008a0,
+ 0xf2089140,
+ 0xf208aa49,
+ 0x0a40a8cd,
+ 0xa249f208,
+ 0xf20808c0,
+ 0xb780a0cd,
+ 0xcffb430c,
+ 0xc0092a7e,
+ 0xb5803a00,
+ 0xb780430c,
+ 0x75004c8c,
+ 0x9142c000,
+ 0x0c82c040,
+ 0xc000b481,
+ 0x0a02c201,
+ 0xc000b481,
+ 0x430cb780,
+ 0x2a00c008,
+ 0xc0007500,
+ 0xc1119362,
+ 0xc04e0902,
+ 0x0df20940,
+ 0x0d020982,
+ 0x9aefffb4,
+ 0x0902c111,
+ 0x0940c026,
+ 0x09820df6,
+ 0x0d42c004,
+ 0x9ae5ffb4,
+ 0x430cb780,
+ 0x2a7dcff6,
+ 0x430cb580,
+ 0x430cb780,
+ 0x2a00c080,
+ 0xc0007500,
+ 0xb76091c2,
+ 0xba1b4192,
+ 0xc0144003,
+ 0xb7809a6c,
+ 0xcf7e430c,
+ 0xb5802a7d,
+ 0xb780430c,
+ 0xc010430c,
+ 0x75002a00,
+ 0x9022c002,
+ 0x0902c121,
+ 0x0940c00e,
+ 0x09820d9e,
+ 0xffb40d02,
+ 0xc1219a9e,
+ 0xc0860902,
+ 0x0da20940,
+ 0x0d020982,
+ 0x9a95ffb4,
+ 0x7eecb73f,
+ 0xc0017440,
+ 0xb7409042,
+ 0xf008568c,
+ 0x2a40aa59,
+ 0xc0007500,
+ 0xc1219342,
+ 0xc0020902,
+ 0x0da60900,
+ 0x0d060982,
+ 0x9a7fffb4,
+ 0x0902c121,
+ 0x0900c080,
+ 0x09820da6,
+ 0xffb40d16,
+ 0xb7809a76,
+ 0xc021430c,
+ 0xb5803a00,
+ 0xb780430c,
+ 0xcfee430c,
+ 0xc0202a7d,
+ 0xb5803a00,
+ 0xb780430c,
+ 0xc800430c,
+ 0x75002a00,
+ 0x9302c000,
+ 0x568cb760,
+ 0x7decb79f,
+ 0x4192b760,
+ 0xa97af008,
+ 0xba1b0189,
+ 0x5d114003,
+ 0x2d044d04,
+ 0x9b2bffb4,
+ 0x430cb780,
+ 0x2a7ec7fe,
+ 0x430cb580,
+ 0x430cb780,
+ 0x2a00c200,
+ 0xc0007500,
+ 0x0d8690c2,
+ 0xffb40982,
+ 0xb780998c,
+ 0xc041430c,
+ 0x75002a00,
+ 0x9342c000,
+ 0x0902c101,
+ 0x0940c002,
+ 0x09820da6,
+ 0xffb40d02,
+ 0xc1019a30,
+ 0xc0800902,
+ 0x0da60940,
+ 0x0d120982,
+ 0x9a27ffb4,
+ 0x430cb780,
+ 0x2a7ecfbf,
+ 0x430cb580,
+ 0x430cb720,
+ 0xc0090203,
+ 0x75002a00,
+ 0x9182c001,
+ 0x0902c101,
+ 0x0940c00e,
+ 0x28fecff7,
+ 0x430cb520,
+ 0x09820d9e,
+ 0xffb40d02,
+ 0xb7609a0c,
+ 0xf018569c,
+ 0xc020aa79,
+ 0x75002a00,
+ 0x91a2c000,
+ 0x0902c101,
+ 0x0940c006,
+ 0x09820da2,
+ 0xffb40d02,
+ 0xc00099fa,
+ 0xc1019160,
+ 0xc0860902,
+ 0x0da20940,
+ 0x0d020982,
+ 0x99efffb4,
+ 0x0902c1c1,
+ 0x0940c006,
+ 0x09820dce,
+ 0xff940d02,
+ 0xc0149b5e,
+ 0xc03099a9,
+ 0xb4e10c8a,
+ 0xb780c000,
+ 0x0c884c8c,
+ 0xc000b481,
+ 0x0882cc01,
+ 0xb4211c88,
+ 0xc054c000,
+ 0xb7809b0f,
+ 0xc0084c8c,
+ 0x75002a00,
+ 0x7d6cb5ff,
+ 0x9282c001,
+ 0x0c8ac450,
+ 0xc000b4e1,
+ 0x4220b104,
+ 0x2a7cc00e,
+ 0x7d6cb59f,
+ 0xb4e11c84,
+ 0xb104c000,
+ 0x2a104220,
+ 0xc0007500,
+ 0xb7809362,
+ 0xc008428c,
+ 0x75002a00,
+ 0x8d80e071,
+ 0x7d6cb79f,
+ 0xd0010d02,
+ 0xb7600d22,
+ 0x08864714,
+ 0x7e6cb53f,
+ 0x5a10c200,
+ 0x7d6cb59f,
+ 0x99bdc014,
+ 0x9100c000,
+ 0x7d6cb79f,
+ 0x5a10c200,
+ 0x7d6cb59f,
+ 0x428cb780,
+ 0x0c8ac030,
+ 0x4c8cb580,
+ 0xc000b4e1,
+ 0x0a02c801,
+ 0x0a00c002,
+ 0xc000b481,
+ 0xc00408be,
+ 0xb4210c94,
+ 0xc0c0c000,
+ 0xffb40d82,
+ 0xb760996c,
+ 0xb7804112,
+ 0x9ea4420c,
+ 0xb7209c62,
+ 0xc034458c,
+ 0x58910cae,
+ 0xc000b421,
+ 0x7e6cb75f,
+ 0xc0007480,
+ 0xb75f9224,
+ 0x74807d6c,
+ 0x9182c000,
+ 0x2941093c,
+ 0x09820dea,
+ 0x19400d02,
+ 0x3900c121,
+ 0x9961ffb4,
+ 0x9907c014,
+ 0x4808b785,
+ 0xb7807500,
+ 0xc000468c,
+ 0x2a7990a2,
+ 0x4808b5e5,
+ 0x0c82c03e,
+ 0xc000b481,
+ 0x7decb77f,
+ 0x418ab780,
+ 0x0e820a82,
+ 0x0a0474c0,
+ 0x418ab580,
+ 0x9282ffdc,
+ 0x430cb780,
+ 0x7d3ed3ff,
+ 0x91c4ffdc,
+ 0x7d6cb79f,
+ 0xffdc7500,
+ 0xb79f9124,
+ 0xb7bf7cee,
+ 0xb7df7d6e,
+ 0xb7ff7dee,
+ 0xc0027e6e,
+ 0x9c228c60,
+ 0xc004a605,
+ 0xc8298420,
+ 0xc3d80ca2,
+ 0xc0300ca0,
+ 0xe133ac3d,
+ 0xc0388d00,
+ 0xc030a45d,
+ 0xc038ac3d,
+ 0xc010a45d,
+ 0xc018ac3d,
+ 0xc010a45d,
+ 0xc018ac25,
+ 0xb740a445,
+ 0xf0004484,
+ 0xb7a0aa41,
+ 0x9e2d580c,
+ 0x5a08c200,
+ 0x0940d093,
+ 0xe0209ea9,
+ 0x0dc2a96d,
+ 0x0d42c008,
+ 0xff9409c2,
+ 0xb7809ae4,
+ 0xf208590c,
+ 0x8502a8a1,
+ 0xa8a6f208,
+ 0xa103f208,
+ 0xa085f208,
+ 0xa929f208,
+ 0xa08af208,
+ 0xa92ef208,
+ 0xa8b2f208,
+ 0xa10df208,
+ 0xa8b1f248,
+ 0xa112f208,
+ 0xa096f208,
+ 0xa09af208,
+ 0xc036090a,
+ 0x08c00c92,
+ 0xa085f248,
+ 0xc000b441,
+ 0x1c8c0a16,
+ 0xc000b481,
+ 0x8c00f031,
+ 0x8d80e131,
+ 0xb55f9ea3,
+ 0x0d027ffc,
+ 0x4078b960,
+ 0xa103f208,
+ 0xd1229dba,
+ 0x9e2d5d0d,
+ 0xa8e5f029,
+ 0x2caed012,
+ 0xd1265c88,
+ 0x9e4a5908,
+ 0xaa4de038,
+ 0x28bc0d04,
+ 0x324250a8,
+ 0xffffa241,
+ 0xf01091c1,
+ 0xc036aa61,
+ 0xb4810c8e,
+ 0xb73fc000,
+ 0x1c847fec,
+ 0xc000b421,
+ 0x9a4ac054,
+ 0x08c2c801,
+ 0x0890c112,
+ 0x0a42c809,
+ 0x0a70c6cc,
+ 0x0cbec032,
+ 0x420cb580,
+ 0xc000b421,
+ 0x0ce00a3e,
+ 0xc000b481,
+ 0xc0800882,
+ 0xb4210cc6,
+ 0xc801c000,
+ 0xc1120a42,
+ 0xc0320a18,
+ 0xb4810cc2,
+ 0x08c0c000,
+ 0xb4210cdc,
+ 0x0a02c000,
+ 0x0cc6c080,
+ 0xc000b481,
+ 0x08c2c801,
+ 0x0890c114,
+ 0x0cc6c032,
+ 0xc000b421,
+ 0x0cd80a44,
+ 0xc000b481,
+ 0xc0800882,
+ 0xb4210cc6,
+ 0xc801c000,
+ 0xc1140a42,
+ 0xc0320a18,
+ 0xb4810cca,
+ 0x08c8c000,
+ 0xb4210cd4,
+ 0x0a02c000,
+ 0x0cc6c080,
+ 0xc000b481,
+ 0x7aeeb79f,
+ 0x7b6eb7bf,
+ 0x8c60c004,
+ 0x08829c22,
+ 0x0c92c001,
+ 0x0c84c332,
+ 0xc000b421,
+ 0x4b8cb780,
+ 0x0a10873e,
+ 0x9c8bc040,
+ 0xc238b780,
+ 0xb7809c22,
+ 0x0a40458c,
+ 0x7520c00c,
+ 0x458cb580,
+ 0x48b4b340,
+ 0xb5408502,
+ 0x9c22459c,
+ 0x4b8cb780,
+ 0xa895f208,
+ 0xa88ef208,
+ 0xa905f208,
+ 0xa99df208,
+ 0xa906f288,
+ 0xa09df208,
+ 0xa096f208,
+ 0xa10df208,
+ 0xa185f208,
+ 0xa899f208,
+ 0xa892f208,
+ 0xa909f208,
+ 0xa981f248,
+ 0xa081f248,
+ 0xa09af208,
+ 0xa111f208,
+ 0xa189f208,
+ 0xa881f288,
+ 0xa995f248,
+ 0xa89ef248,
+ 0xa90df248,
+ 0xa085f288,
+ 0xa18df248,
+ 0xa999f248,
+ 0xa082f288,
+ 0xa115f248,
+ 0xa891f248,
+ 0xa191f248,
+ 0xa989f288,
+ 0xa89af288,
+ 0xa099f248,
+ 0xa10af288,
+ 0xa19df248,
+ 0xa99df288,
+ 0xa09ef288,
+ 0xa895f288,
+ 0xa892f288,
+ 0xa90df288,
+ 0xa099f288,
+ 0xa096f288,
+ 0xa111f288,
+ 0xa18df288,
+ 0xa61d9c22,
+ 0x8440c012,
+ 0x9e9e9e5f,
+ 0x0d82c0c0,
+ 0x2d7cc00e,
+ 0x7c74b55f,
+ 0x9bc3ff94,
+ 0x0a02c004,
+ 0x0c8ac030,
+ 0xc000b481,
+ 0x0882c004,
+ 0x0d0ec030,
+ 0xc000b422,
+ 0x0ca2c460,
+ 0x1a00c004,
+ 0xc000b481,
+ 0x4220b101,
+ 0x38880283,
+ 0x0ca2c060,
+ 0xc000b421,
+ 0x0a00c004,
+ 0x0c96c030,
+ 0xc000b481,
+ 0x0d82c004,
+ 0x9822ffd4,
+ 0x0ca2c060,
+ 0xc000b4a1,
+ 0xc0300a02,
+ 0xb4810c8a,
+ 0xc00ec000,
+ 0xc03008de,
+ 0xb4220d0e,
+ 0xc450c000,
+ 0xb4810c82,
+ 0xb101c000,
+ 0xb53f4220,
+ 0x0c947a6c,
+ 0xc000b481,
+ 0x4220b101,
+ 0x7aecb53f,
+ 0xb4810c88,
+ 0xb101c000,
+ 0xb53f4220,
+ 0x85027b6c,
+ 0x0c8ac030,
+ 0xa143f210,
+ 0xb4810a40,
+ 0xc008c000,
+ 0x0c840882,
+ 0xc000b421,
+ 0xc402020f,
+ 0xc0503a40,
+ 0xb4810c82,
+ 0xc0c0c000,
+ 0x09920d82,
+ 0x0d02c008,
+ 0x0902c008,
+ 0x9be7ffb4,
+ 0x0a02c008,
+ 0x0c8ec030,
+ 0xc000b481,
+ 0x0d02c050,
+ 0xc000b4e2,
+ 0x0c8ac450,
+ 0x1a00c008,
+ 0xc000b481,
+ 0x4220b101,
+ 0xc0340a68,
+ 0xb4820d1e,
+ 0x0cd4c000,
+ 0xb4811a68,
+ 0xb101c000,
+ 0x03034220,
+ 0x2b7cc03e,
+ 0xd0718502,
+ 0xe2000a6e,
+ 0xe0d35a95,
+ 0xb57f8d80,
+ 0xe3d37d7c,
+ 0xb57f8d80,
+ 0xe2d37dfc,
+ 0xb57f8d80,
+ 0xe1d37e7c,
+ 0xb57f8d80,
+ 0xc0007cfc,
+ 0x9d979262,
+ 0x0ec1cfec,
+ 0xb55f9dcf,
+ 0xffb47f7c,
+ 0xf2319bbf,
+ 0xb75fa025,
+ 0xe0007f7c,
+ 0x85101a84,
+ 0x9284ffff,
+ 0x9eb39d0f,
+ 0x9e729eba,
+ 0x08820c82,
+ 0x09c1cfec,
+ 0x9991c014,
+ 0x568cb780,
+ 0xa899f208,
+ 0x87028536,
+ 0x74402884,
+ 0x6878b55d,
+ 0x68e0b55d,
+ 0x9122c000,
+ 0xb55d853e,
+ 0xc0086878,
+ 0xb55d8502,
+ 0x9d0f68f8,
+ 0x09e2d032,
+ 0x9e729eba,
+ 0x2d9c8522,
+ 0x89afe220,
+ 0x6960b55d,
+ 0x69e0b55d,
+ 0x08860c86,
+ 0x09c1cfec,
+ 0x0da42d9c,
+ 0x9967c014,
+ 0x0df2c008,
+ 0x0d02c00a,
+ 0x0c9ec432,
+ 0xb4810a02,
+ 0xb107c000,
+ 0x9e794240,
+ 0x0d00c0c0,
+ 0x5c89c100,
+ 0x0d01cf40,
+ 0x3c80c400,
+ 0xc000b481,
+ 0x4220b106,
+ 0xcdff020d,
+ 0xc0c028fe,
+ 0x5d890d80,
+ 0xc000b423,
+ 0x2a7ecdff,
+ 0x0d00c0c0,
+ 0xb4825d09,
+ 0x089ec000,
+ 0x0c9ec034,
+ 0xc000b421,
+ 0x0e829d17,
+ 0xcfec8506,
+ 0x058b0ac1,
+ 0x7f7cb55f,
+ 0x9b4cffb4,
+ 0xa021f208,
+ 0xaa21d208,
+ 0xb75f7500,
+ 0xb4157f7c,
+ 0xd2084c22,
+ 0x7500aa25,
+ 0x9084c000,
+ 0xa127d208,
+ 0xaa29d208,
+ 0xc0007500,
+ 0xd2089084,
+ 0xd208a12b,
+ 0x7500aa2d,
+ 0x9084c000,
+ 0xa12fd208,
+ 0xc01c0e90,
+ 0x0a90777e,
+ 0x9334fffe,
+ 0x9eba9d0f,
+ 0xc0209e72,
+ 0x0c860d82,
+ 0xcfec0882,
+ 0xc01409c1,
+ 0xb73f9902,
+ 0x9eba7dec,
+ 0xc0209e72,
+ 0x0c860d82,
+ 0x08820183,
+ 0x98f7c014,
+ 0x9e729eba,
+ 0x7e6cb79f,
+ 0x0d82c020,
+ 0x08820c86,
+ 0xc0140189,
+ 0xb73f98ec,
+ 0x9eba7cec,
+ 0xc0209e72,
+ 0x0c860d82,
+ 0x08820183,
+ 0x98e1c014,
+ 0xc0340a22,
+ 0xb4810c9e,
+ 0x9d17c000,
+ 0x87060e82,
+ 0x0ac1cfec,
+ 0x2d5ed013,
+ 0x2de1058b,
+ 0xe2205d84,
+ 0xb55f81af,
+ 0xffb47fe4,
+ 0xf2089ae7,
+ 0xd208a021,
+ 0x7500aa21,
+ 0x7fe4b75f,
+ 0x5022b415,
+ 0xaa25d208,
+ 0xc0007500,
+ 0xd20a9084,
+ 0xd208a124,
+ 0x7500aa29,
+ 0x9084c000,
+ 0xa128d20a,
+ 0xaa2dd208,
+ 0xc0007500,
+ 0xd20a9084,
+ 0x0e90a12c,
+ 0x777ec004,
+ 0xfffe0a90,
+ 0x9d179274,
+ 0x87060e82,
+ 0x0ac1cfec,
+ 0x2d5ed013,
+ 0x2de1058b,
+ 0x0da05d84,
+ 0x81afe220,
+ 0x7fe4b55f,
+ 0x9ab2ffb4,
+ 0xaa21d208,
+ 0xf2887500,
+ 0xb75fa021,
+ 0xb4157fe4,
+ 0xd2085022,
+ 0x7500aa25,
+ 0x9084c000,
+ 0xa124d20a,
+ 0xaa29d208,
+ 0xc0007500,
+ 0xd20a9084,
+ 0xd208a128,
+ 0x7500aa2d,
+ 0x9084c000,
+ 0xa12cd20a,
+ 0xc0040e90,
+ 0x0a90777e,
+ 0x9254fffe,
+ 0x9eba9d0f,
+ 0xc0209e72,
+ 0x0c860d82,
+ 0xcfec0882,
+ 0xc01409c1,
+ 0x9eba9868,
+ 0xb79f9e72,
+ 0xc0207dec,
+ 0x0c860d82,
+ 0x01890882,
+ 0x985dc014,
+ 0x7c6cb73f,
+ 0xc0007440,
+ 0x9d0f9202,
+ 0x9e729eba,
+ 0x8502c008,
+ 0x6878b55d,
+ 0x0c860d8a,
+ 0xcfec0882,
+ 0xc01409c1,
+ 0xb77f984a,
+ 0xc0507d7c,
+ 0xaa610c82,
+ 0xc000b481,
+ 0x7aecb73f,
+ 0xb4210c94,
+ 0xb79fc000,
+ 0x0c887b6c,
+ 0xc000b481,
+ 0x560cb720,
+ 0x4d9cb740,
+ 0x4335b760,
+ 0x89afe220,
+ 0x0982c004,
+ 0xff740d1e,
+ 0xb7809b29,
+ 0xb740560c,
+ 0xf2484e1c,
+ 0xe220a982,
+ 0xc00289af,
+ 0x0d0e0982,
+ 0x9b1cff74,
+ 0x0c9ec032,
+ 0xb4219e79,
+ 0xc032c000,
+ 0xb4c20d22,
+ 0xc1c1c000,
+ 0xc0060902,
+ 0x0dce0940,
+ 0x0d020982,
+ 0x9b15ff74,
+ 0x6b6eb79f,
+ 0x6beeb7bf,
+ 0x6c6eb7df,
+ 0x6ceeb7ff,
+ 0x8c40c014,
+ 0xa61d9c22,
+ 0x9e968440,
+ 0xe0000a82,
+ 0xd3f20d80,
+ 0xd3f12e9e,
+ 0xc0022b1e,
+ 0xc00690e2,
+ 0xc00c87e2,
+ 0x9d6876f2,
+ 0xb3328502,
+ 0x74804826,
+ 0xc1000a84,
+ 0xc0015860,
+ 0x858e9082,
+ 0xc0508722,
+ 0x74920c1a,
+ 0xe0129d50,
+ 0xd0088522,
+ 0xb324a8e2,
+ 0x11284426,
+ 0x2e26d011,
+ 0xf3107506,
+ 0x9e4f8831,
+ 0x5a0cc200,
+ 0x50f0c200,
+ 0xc0003002,
+ 0xb40090a4,
+ 0x0802c000,
+ 0x9d2a7480,
+ 0xffff0984,
+ 0xf0119084,
+ 0x4a7d8422,
+ 0x75062a0c,
+ 0x90c2c000,
+ 0x0c9ac050,
+ 0xc000b401,
+ 0x76f2c00c,
+ 0xb3349d70,
+ 0x9ea14826,
+ 0x15b2e000,
+ 0x93e4fffd,
+ 0xc0300a42,
+ 0xb4810c8a,
+ 0x08c2c000,
+ 0x0d0ec030,
+ 0xc000b422,
+ 0x0c82c450,
+ 0xb4811a40,
+ 0xb101c000,
+ 0xb53f4220,
+ 0x0c947e6c,
+ 0xc000b481,
+ 0x4220b101,
+ 0x7eecb53f,
+ 0xb4810c88,
+ 0xb101c000,
+ 0xb53f4220,
+ 0xc0507f6c,
+ 0xb4a10c96,
+ 0x7740c000,
+ 0xc8018502,
+ 0xb3210882,
+ 0x75804c24,
+ 0xd0020a02,
+ 0x0c880a42,
+ 0xb4213098,
+ 0xc008c000,
+ 0xc0300a02,
+ 0xb4810c8e,
+ 0xc008c000,
+ 0x0c880882,
+ 0xc000b421,
+ 0x0d82c0c0,
+ 0xc0080992,
+ 0xc0080d02,
+ 0xffb40902,
+ 0xc008996e,
+ 0xc0300a02,
+ 0xb4820d0e,
+ 0xc450c000,
+ 0xc0080c8a,
+ 0xb4811a00,
+ 0xb101c000,
+ 0xc00e4220,
+ 0xc08028fc,
+ 0x010b5a90,
+ 0x0a00c002,
+ 0x0c8ac030,
+ 0xc000b481,
+ 0x0882c002,
+ 0xb4210c84,
+ 0x7480c000,
+ 0x92a2c000,
+ 0x09820dea,
+ 0xd0510d02,
+ 0xc1a11950,
+ 0xff943900,
+ 0xc0c098d0,
+ 0xff940d82,
+ 0xf21098b6,
+ 0xf310a943,
+ 0xf2108023,
+ 0xc002a241,
+ 0xc0300a02,
+ 0xb4810c8a,
+ 0xc002c000,
+ 0x0c840882,
+ 0xc000b421,
+ 0x7d6eb79f,
+ 0x7deeb7bf,
+ 0x7e6eb7df,
+ 0x7eeeb7ff,
+ 0x8c40c002,
+ 0xa60d9c22,
+ 0x0a42c801,
+ 0x0a00cb10,
+ 0x0ceac032,
+ 0xc000b481,
+ 0x08c2c801,
+ 0x0888c010,
+ 0xb4210c84,
+ 0xc008c000,
+ 0xc0020a42,
+ 0xb4811ce4,
+ 0xc008c000,
+ 0xc03008c2,
+ 0xb4220d0e,
+ 0xc450c000,
+ 0xc0080c82,
+ 0xb4811a40,
+ 0xb101c000,
+ 0xc0024220,
+ 0xb52038c0,
+ 0xc0504d0c,
+ 0xb4210c82,
+ 0xc0c0c000,
+ 0x09920d82,
+ 0x0d02c008,
+ 0x0902c008,
+ 0x98efffb4,
+ 0x0c86c450,
+ 0xb4810a02,
+ 0xb104c000,
+ 0xc0084220,
+ 0xc0300a02,
+ 0xb4820d0e,
+ 0x0c84c000,
+ 0x1a00c008,
+ 0xc000b481,
+ 0x4220b105,
+ 0x5a35c280,
+ 0x0882c801,
+ 0xc00e08c0,
+ 0xc2802afc,
+ 0xd0725a90,
+ 0x9ead2b4e,
+ 0x0c8ac030,
+ 0xc000b421,
+ 0x0c840a42,
+ 0xc000b481,
+ 0xb7c07740,
+ 0xc001590c,
+ 0xd0319002,
+ 0x0dea0ede,
+ 0x0d020982,
+ 0xd0512ac1,
+ 0xc1211950,
+ 0xff943900,
+ 0xf2489842,
+ 0x018ba9c6,
+ 0x5a8dc280,
+ 0x9eaa1a84,
+ 0x3d00c021,
+ 0x99a4ff74,
+ 0xaa45f248,
+ 0x16dcd010,
+ 0xf248024a,
+ 0xc450a245,
+ 0x0a020c86,
+ 0xc000b481,
+ 0x4220b104,
+ 0xc0340a6e,
+ 0xb4810c9e,
+ 0xb720c000,
+ 0xf248580c,
+ 0xb720aa45,
+ 0xd0534635,
+ 0xf2101940,
+ 0xc08088ab,
+ 0xc2800ca2,
+ 0xb5805a0c,
+ 0xb4a1418c,
+ 0xb784c000,
+ 0x75007808,
+ 0x9262c003,
+ 0x508cb721,
+ 0x4f0cb781,
+ 0x7c40c030,
+ 0xb5810a04,
+ 0xc0004f0c,
+ 0xc0349082,
+ 0xb72098dc,
+ 0xb720518c,
+ 0xb78141b5,
+ 0xb7404f0c,
+ 0x9e49442d,
+ 0x71046243,
+ 0x90b8c000,
+ 0xb5448506,
+ 0xb7847e18,
+ 0x75007908,
+ 0x5994b7a0,
+ 0x9262c000,
+ 0x528cb7a0,
+ 0xa83df210,
+ 0xa9a1f208,
+ 0x9e840d86,
+ 0xf2089c62,
+ 0xf250a021,
+ 0x9eaba825,
+ 0x9e840986,
+ 0xb7849c62,
+ 0x75007908,
+ 0x9164c000,
+ 0x5294b760,
+ 0xa825f210,
+ 0x9c629e84,
+ 0xc0000281,
+ 0xb7849220,
+ 0x75007888,
+ 0x9102c000,
+ 0x530cb780,
+ 0xaa81f208,
+ 0x90c0c000,
+ 0x538cb780,
+ 0xaa8df208,
+ 0x550cb720,
+ 0x4129b780,
+ 0x03037500,
+ 0x9264c000,
+ 0x7908b784,
+ 0xc0007500,
+ 0xf25090c4,
+ 0x9ea4aa21,
+ 0xb7409c62,
+ 0xf210419c,
+ 0xe320aa35,
+ 0x9ea489a3,
+ 0xf2109c62,
+ 0x9eabaa39,
+ 0x9ea4018d,
+ 0xb7809c62,
+ 0xc080520c,
+ 0xd2c80ca6,
+ 0xb4a1aa91,
+ 0xc002c000,
+ 0xffb40d92,
+ 0x700a981b,
+ 0x9364ffff,
+ 0x09c20d86,
+ 0xc1210d0a,
+ 0xff740902,
+ 0xb78098fe,
+ 0xf248580c,
+ 0xc0a1a992,
+ 0x0d040d02,
+ 0xff7409c2,
+ 0xc0c098e9,
+ 0x09920d82,
+ 0x09420d42,
+ 0x9be9ff94,
+ 0xc0300a42,
+ 0xb4810c8e,
+ 0xb79fc000,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0xb7009c22,
+ 0x76c0580c,
+ 0x0d820c02,
+ 0x9342c000,
+ 0x430cb780,
+ 0x0880d131,
+ 0x4033b720,
+ 0x4e94b500,
+ 0x4f14b500,
+ 0x4894b500,
+ 0x76402c88,
+ 0x2a7ecdff,
+ 0x430cb580,
+ 0xc0008522,
+ 0x85129062,
+ 0x4a9cb540,
+ 0xb74074c0,
+ 0xc0005694,
+ 0xb78092e2,
+ 0x8502430c,
+ 0xa8c1d810,
+ 0x4f1cb540,
+ 0x429cb540,
+ 0x529cb541,
+ 0x4b1cb540,
+ 0x489cb540,
+ 0x4e8cb520,
+ 0x2a7ecdff,
+ 0x430cb580,
+ 0x0880d131,
+ 0x4033b720,
+ 0x428cb780,
+ 0x2c14d012,
+ 0xc0080089,
+ 0x75002a00,
+ 0x28fdcffa,
+ 0x428cb520,
+ 0x92c2c000,
+ 0x430cb780,
+ 0xc8007600,
+ 0xb5803a00,
+ 0xc000430c,
+ 0x850690e4,
+ 0x4c18b545,
+ 0x9100c000,
+ 0x4c08b785,
+ 0x3a080d86,
+ 0x4c08b585,
+ 0x4c08b745,
+ 0x2a22d011,
+ 0xc0007500,
+ 0xb7809102,
+ 0xc010430c,
+ 0xb5803a00,
+ 0xb780430c,
+ 0x75004b0c,
+ 0x90e2c000,
+ 0x428cb780,
+ 0xb5802a79,
+ 0xb720428c,
+ 0xb7204294,
+ 0x9e4c4a8c,
+ 0xd3f17902,
+ 0xc2002a2e,
+ 0xb5855a05,
+ 0xc0004c08,
+ 0xd2119102,
+ 0xb5803e10,
+ 0xc000428c,
+ 0xcff690c0,
+ 0xb5202cfd,
+ 0xb7204294,
+ 0xd1114294,
+ 0x75002e10,
+ 0x90a2c000,
+ 0xb5408506,
+ 0x7600491c,
+ 0x5e1dd0a2,
+ 0xd0020882,
+ 0x2a040892,
+ 0xc0007902,
+ 0xd1119102,
+ 0xb5803e10,
+ 0xc000428c,
+ 0x76c09120,
+ 0x90c2c000,
+ 0x3c80c020,
+ 0x4294b520,
+ 0x428cb720,
+ 0x2a12d011,
+ 0xc0007500,
+ 0xb78090e2,
+ 0x32184a8c,
+ 0x90c0c000,
+ 0x4a8cb780,
+ 0x22184a7d,
+ 0x428cb580,
+ 0x428cb720,
+ 0x2a14d011,
+ 0xc0007500,
+ 0xd0119102,
+ 0xb5803a12,
+ 0xc000428c,
+ 0x28f990a0,
+ 0x428cb520,
+ 0xa8c1d810,
+ 0x4e9cb740,
+ 0xaa45d810,
+ 0x88a3e210,
+ 0x5a11c200,
+ 0xc0037048,
+ 0xd1119036,
+ 0xda080a08,
+ 0xb720a882,
+ 0xb740428c,
+ 0x5c91488c,
+ 0xb7409e4c,
+ 0x38884314,
+ 0x428cb520,
+ 0xc1007088,
+ 0xb5403d00,
+ 0xc0004314,
+ 0xb7219278,
+ 0x9e54528c,
+ 0xc0017440,
+ 0xb5803a04,
+ 0xc000430c,
+ 0xc0119124,
+ 0xb5403d04,
+ 0x85064314,
+ 0x529cb541,
+ 0x088cd112,
+ 0x404bb780,
+ 0x4e8cb720,
+ 0x5a11c200,
+ 0xc0007048,
+ 0xb7809116,
+ 0xc001430c,
+ 0xb5803a10,
+ 0xb780430c,
+ 0xc200404b,
+ 0x1a085a11,
+ 0xc0007048,
+ 0xb7809116,
+ 0xc001430c,
+ 0xb5803a40,
+ 0xb720430c,
+ 0xd1114f14,
+ 0xda080a08,
+ 0x9e4ca881,
+ 0x71025891,
+ 0x9102c000,
+ 0x430cb780,
+ 0x3a00c005,
+ 0x430cb580,
+ 0x430cb780,
+ 0x3a00c084,
+ 0x430cb580,
+ 0x91a0c000,
+ 0x428cb780,
+ 0x430cb720,
+ 0xb5802a75,
+ 0xcffa428c,
+ 0xb52028fd,
+ 0xb740430c,
+ 0xf012428c,
+ 0xc0002922,
+ 0xb7809102,
+ 0xc080430c,
+ 0xb5803a00,
+ 0xb780430c,
+ 0xb720488c,
+ 0xb7204a94,
+ 0x0a044f0c,
+ 0x488cb580,
+ 0x78889e4c,
+ 0xb5200884,
+ 0xc0004f0c,
+ 0x76809222,
+ 0x91c4c000,
+ 0x460cb720,
+ 0x3a22d011,
+ 0x428cb580,
+ 0xb5408506,
+ 0x28f94b1c,
+ 0x460cb520,
+ 0x0a08d111,
+ 0xa881da08,
+ 0x4f14b720,
+ 0x18c0c002,
+ 0x5a7fc080,
+ 0x5a71c200,
+ 0x9e4c0098,
+ 0x460cb740,
+ 0x71025893,
+ 0x468cb540,
+ 0x9044c001,
+ 0x430cb740,
+ 0xc0800205,
+ 0x75002a00,
+ 0x9342c000,
+ 0x4e94b720,
+ 0x76420205,
+ 0x3a00c201,
+ 0x430cb580,
+ 0x921cc000,
+ 0x0a0cd111,
+ 0xa881da08,
+ 0x9e4c0c8c,
+ 0x71025891,
+ 0x90d6c000,
+ 0x3900ca01,
+ 0x430cb540,
+ 0x4f14b720,
+ 0x0a08d111,
+ 0xa881da08,
+ 0x58919e4c,
+ 0xc0007102,
+ 0xb7209278,
+ 0x0203430c,
+ 0x2a00c005,
+ 0xc0007500,
+ 0xc1019162,
+ 0xb5203880,
+ 0x8506430c,
+ 0x499cb540,
+ 0x4a1cb540,
+ 0xc0007600,
+ 0xb7809122,
+ 0x750c4f0c,
+ 0x9122c000,
+ 0x92a0c000,
+ 0x4f0cb780,
+ 0xc000750a,
+ 0xb7809204,
+ 0x7500498c,
+ 0x9162c000,
+ 0x430cb780,
+ 0xb5408502,
+ 0xc401499c,
+ 0xb5803a00,
+ 0xb780430c,
+ 0x75064f0c,
+ 0x9204c000,
+ 0x4a0cb780,
+ 0xc0007500,
+ 0xb7809162,
+ 0x8502430c,
+ 0x4a1cb540,
+ 0x3a00c800,
+ 0x430cb580,
+ 0x4f14b720,
+ 0x0a08d111,
+ 0xa881da08,
+ 0x58919e4c,
+ 0xc0007102,
+ 0xb7809158,
+ 0x85024e8c,
+ 0x4f1cb540,
+ 0xb5800a04,
+ 0xb7804e8c,
+ 0x7500428c,
+ 0xc0008502,
+ 0xb7809144,
+ 0xc400430c,
+ 0x75002a00,
+ 0xe0018502,
+ 0x9d438522,
+ 0xa6059c22,
+ 0x7888b784,
+ 0xb7a07500,
+ 0xc002560c,
+ 0xb7609202,
+ 0xb7614210,
+ 0xb7a0518c,
+ 0xba1b5594,
+ 0xc0344001,
+ 0xd210983d,
+ 0xd231a9a2,
+ 0xba000a50,
+ 0xf2084002,
+ 0xba1ba001,
+ 0xc0344001,
+ 0xb761981d,
+ 0xd210518c,
+ 0xd251a9a2,
+ 0xba000a50,
+ 0xf2084002,
+ 0xba1ba001,
+ 0xc0344001,
+ 0xb7219823,
+ 0xd2315094,
+ 0xe04008d8,
+ 0xba002c80,
+ 0xb5004002,
+ 0xc000402d,
+ 0xd2109202,
+ 0xba1ba9a2,
+ 0xc0344001,
+ 0xd2519837,
+ 0xba000a58,
+ 0xf2084002,
+ 0xc000a001,
+ 0xd25190c0,
+ 0xf2080a58,
+ 0xb722a082,
+ 0xd2715f92,
+ 0xb78008d8,
+ 0x9e49402d,
+ 0xd2716243,
+ 0xb58008d0,
+ 0xd231402d,
+ 0xf2080a50,
+ 0x7500aa01,
+ 0x90c2c000,
+ 0x0cb6c03e,
+ 0xc000b481,
+ 0x0a50d251,
+ 0xa881f208,
+ 0x0caac03e,
+ 0xc000b421,
+ 0x0a58d231,
+ 0xaa01f208,
+ 0xc0007500,
+ 0xc2009122,
+ 0xc8015a40,
+ 0x0c903a00,
+ 0xc000b481,
+ 0x0a58d251,
+ 0xaa01f208,
+ 0xc0007500,
+ 0xc03e90c2,
+ 0xb4810ca2,
+ 0xd271c000,
+ 0xf2080a50,
+ 0xc03ea881,
+ 0xb4210c8a,
+ 0xb79fc000,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa6859c22,
+ 0x0c92c43e,
+ 0xb4810a02,
+ 0xb103c000,
+ 0xb7804220,
+ 0xda08548c,
+ 0xda08a885,
+ 0xda08a909,
+ 0xda08a189,
+ 0xda08a081,
+ 0x0cd0a105,
+ 0xb4810a02,
+ 0xb103c000,
+ 0xb7804220,
+ 0xb7c0540c,
+ 0xda08548c,
+ 0x9ea5a885,
+ 0xa88ada08,
+ 0xa189da08,
+ 0x2d80c008,
+ 0xda0876c0,
+ 0xda08a081,
+ 0xc00ba086,
+ 0xb7809102,
+ 0x0a044508,
+ 0x4508b580,
+ 0x0ca6c450,
+ 0xb4810a02,
+ 0xb103c000,
+ 0x00874220,
+ 0x2880c031,
+ 0xc00f0207,
+ 0xd0a42a7c,
+ 0xd2285861,
+ 0x028759c1,
+ 0x2afccffe,
+ 0x0a020c88,
+ 0xc000b481,
+ 0x4220b103,
+ 0x59c1d1a6,
+ 0xcffe0107,
+ 0x0cbc297c,
+ 0xc000b481,
+ 0x4220b103,
+ 0xb7820087,
+ 0xc0fc5f8a,
+ 0xd0a42880,
+ 0xb7245b19,
+ 0xd0f17890,
+ 0x1208283e,
+ 0x76409ea2,
+ 0x5f8ab502,
+ 0x4003ba12,
+ 0x90e4c000,
+ 0x7908b784,
+ 0xc0027500,
+ 0xb78493a4,
+ 0x75007908,
+ 0x81b3e331,
+ 0x0127d011,
+ 0x568cb780,
+ 0x0c827602,
+ 0x0c92d001,
+ 0xa899f208,
+ 0x28849e4c,
+ 0xb7607848,
+ 0xc0005294,
+ 0xd81090e2,
+ 0x0a04aa69,
+ 0xa269d810,
+ 0xa96bf010,
+ 0xa96cf012,
+ 0x8026f010,
+ 0x82a5e210,
+ 0xa269f010,
+ 0xa0edf010,
+ 0x6e08b781,
+ 0x08827500,
+ 0x0892d002,
+ 0x0a027602,
+ 0x0a42d002,
+ 0xc0007848,
+ 0xc07c90c2,
+ 0xda088542,
+ 0x7602a143,
+ 0xa973f010,
+ 0x90c4c000,
+ 0xaa21da10,
+ 0x9080c000,
+ 0xaa41da08,
+ 0x80a1e310,
+ 0xaa6dd810,
+ 0xa0f1f010,
+ 0x0a047606,
+ 0xa26dd810,
+ 0x9124c000,
+ 0x4588b780,
+ 0xb5800a04,
+ 0xc0064588,
+ 0x85029200,
+ 0x4598b540,
+ 0x9160c006,
+ 0x568cb720,
+ 0x5294b720,
+ 0x0127d330,
+ 0x432db780,
+ 0x8122c301,
+ 0x4545b740,
+ 0x75002a04,
+ 0x8027f010,
+ 0x8221f310,
+ 0xb5800583,
+ 0xc001454d,
+ 0x760290a2,
+ 0x90c4c000,
+ 0xaa21da10,
+ 0x9080c000,
+ 0xaa41da08,
+ 0xa27dd810,
+ 0xc0017606,
+ 0x76009082,
+ 0x91a4c000,
+ 0xd8107680,
+ 0xe002a973,
+ 0xf2108d2a,
+ 0xd8108025,
+ 0xc000a271,
+ 0x768092c0,
+ 0xa967d850,
+ 0x8d26e002,
+ 0x9160c000,
+ 0xaa21da10,
+ 0xd8507680,
+ 0xd810a967,
+ 0xe002a27d,
+ 0xf2108d2a,
+ 0xd8508025,
+ 0xb784a265,
+ 0x75007a08,
+ 0x92e2c000,
+ 0x410ab780,
+ 0xc0007008,
+ 0x85029244,
+ 0x7a18b544,
+ 0x0c82c43a,
+ 0xb4810a02,
+ 0xb103c000,
+ 0xcfef4220,
+ 0xc03a29fe,
+ 0xb4610c82,
+ 0xb780c000,
+ 0x7008410a,
+ 0xd0020882,
+ 0x76060892,
+ 0xd0010a02,
+ 0x78480a42,
+ 0x9242c000,
+ 0xb5448506,
+ 0xc43a7a18,
+ 0x0a020c82,
+ 0xc000b481,
+ 0x4220b103,
+ 0x3980c011,
+ 0x0c82c03a,
+ 0xc000b461,
+ 0xc0017780,
+ 0x76009162,
+ 0x92c4c000,
+ 0xaa41da08,
+ 0xa967f010,
+ 0xa8f5d810,
+ 0xa8fad810,
+ 0x8021f310,
+ 0xd8100082,
+ 0x0c84a0f5,
+ 0xa0fad810,
+ 0xa265f010,
+ 0x9280c000,
+ 0xaa21da10,
+ 0xa97bf010,
+ 0xa8e9d850,
+ 0xa8eed850,
+ 0x8021f310,
+ 0xd8500082,
+ 0x0c84a0e9,
+ 0xa0eed850,
+ 0xa279f010,
+ 0xaa7dd810,
+ 0xa97ff010,
+ 0xa960f052,
+ 0xa9e7f050,
+ 0x8021f310,
+ 0xa96ff050,
+ 0xa27df010,
+ 0x8223f310,
+ 0xa8e2d850,
+ 0xa261f050,
+ 0x8037f010,
+ 0x80a1e210,
+ 0xd8500c84,
+ 0xf050a0e2,
+ 0xf050a265,
+ 0xb7bfa0ed,
+ 0xb7df7f6e,
+ 0x8c407fee,
+ 0xa6059c22,
+ 0x508cb781,
+ 0x2a00c008,
+ 0xc0007500,
+ 0xb7809282,
+ 0xb720528c,
+ 0xf208598c,
+ 0xb700a982,
+ 0x9e84452d,
+ 0xb7819c62,
+ 0xb500508c,
+ 0xcff6400a,
+ 0xb5812a7d,
+ 0xb781508c,
+ 0xc010508c,
+ 0x75002a00,
+ 0x91c2c001,
+ 0x598cb7a0,
+ 0x5294b7a0,
+ 0xa825f208,
+ 0x9e84058b,
+ 0xf2489c62,
+ 0x9ea4aa21,
+ 0xb7209c62,
+ 0xb725518c,
+ 0xb7804410,
+ 0x9e49422b,
+ 0xc0007048,
+ 0xf2109222,
+ 0xf208a9a1,
+ 0x0d86a83d,
+ 0x9c629e84,
+ 0xaa25f248,
+ 0xa021f210,
+ 0x0986058b,
+ 0x9c629ea4,
+ 0x508cb781,
+ 0x2a7dcfee,
+ 0x508cb581,
+ 0x508cb721,
+ 0xc0200203,
+ 0x75002a00,
+ 0x90c2c000,
+ 0x28fdcfde,
+ 0x508cb521,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xa205f839,
+ 0x508cb781,
+ 0x7d00c030,
+ 0x9162c000,
+ 0x4c8cb780,
+ 0x2a00c008,
+ 0xc0007500,
+ 0xfff49082,
+ 0xb7609b92,
+ 0xff744c94,
+ 0x0a029b1f,
+ 0x0ca2c060,
+ 0xc000b481,
+ 0x4c94b760,
+ 0x99ebfff4,
+ 0x4588b780,
+ 0x7534c01c,
+ 0x9104c000,
+ 0xb5458506,
+ 0x85024818,
+ 0x4598b540,
+ 0x7808b784,
+ 0xc0017500,
+ 0xb7809282,
+ 0xb720518c,
+ 0xda084510,
+ 0x9e4ca88d,
+ 0xc0017102,
+ 0xb7219044,
+ 0x0203508c,
+ 0x2a00c010,
+ 0xc0007500,
+ 0xc0209102,
+ 0xb5213880,
+ 0xfff4508c,
+ 0xb7819b5c,
+ 0xb725508c,
+ 0xb7204408,
+ 0x85024012,
+ 0x4518b540,
+ 0xb5250884,
+ 0xb5204408,
+ 0xc0184112,
+ 0xb5813a00,
+ 0xb780508c,
+ 0xc0104c8c,
+ 0xc0007500,
+ 0xfff49084,
+ 0xf9f89918,
+ 0x9c22aa1d,
+ 0xb720a60d,
+ 0xd132580c,
+ 0xda100b10,
+ 0xd091a8c2,
+ 0x75002e10,
+ 0xc0020303,
+ 0xd01190a2,
+ 0x85022e14,
+ 0x7e18b544,
+ 0xb5a10e82,
+ 0x75004f14,
+ 0xb5448506,
+ 0xc0007818,
+ 0xb5449082,
+ 0xd1117898,
+ 0x75002e10,
+ 0x9082c000,
+ 0x7918b544,
+ 0xc0409e4c,
+ 0x75002a00,
+ 0x9082c000,
+ 0x7998b544,
+ 0x598cb780,
+ 0xa88df208,
+ 0x0ae8d131,
+ 0x9e8c9eab,
+ 0xb7409c62,
+ 0xda105214,
+ 0xb5a0a8c1,
+ 0xd2084092,
+ 0xd231a921,
+ 0xf2080a60,
+ 0xc010a882,
+ 0x74402880,
+ 0xa14dd810,
+ 0x5194b521,
+ 0x9102c000,
+ 0x508cb781,
+ 0x3a00c040,
+ 0x508cb581,
+ 0x7808b784,
+ 0xc0057500,
+ 0xb7819042,
+ 0xc030508c,
+ 0xc0007d00,
+ 0xfff49082,
+ 0xb7209ae2,
+ 0xf2c85194,
+ 0xb720aa45,
+ 0x7048434d,
+ 0x5994b7a0,
+ 0xc0000703,
+ 0xf2509102,
+ 0xd132aa2d,
+ 0x9ea409e8,
+ 0xb7209c62,
+ 0x8502408a,
+ 0x6e98b541,
+ 0xb5417440,
+ 0xb5416f18,
+ 0xc0006f98,
+ 0xda1090e2,
+ 0x7048aa55,
+ 0x9344c000,
+ 0x7888b784,
+ 0xa9d6da10,
+ 0xa8a9f210,
+ 0x75008502,
+ 0x409ab540,
+ 0xe001850a,
+ 0x9d4f8d24,
+ 0x9e8c1d84,
+ 0xf2109c62,
+ 0x0d8aaa31,
+ 0x9c629ea4,
+ 0x90e0c000,
+ 0xaa31f210,
+ 0x9ea40d86,
+ 0xb7819c62,
+ 0xb720508c,
+ 0xb7a0408a,
+ 0x8502528c,
+ 0x4418b545,
+ 0x3a00c008,
+ 0x508cb581,
+ 0xaa21f210,
+ 0x08849eab,
+ 0x408ab520,
+ 0x9c629ea4,
+ 0x550cb720,
+ 0x4129b780,
+ 0x03037500,
+ 0x92e4c000,
+ 0xa9a1f208,
+ 0xa83df210,
+ 0x9e840d82,
+ 0xf2089c62,
+ 0xf250a021,
+ 0x9eaba825,
+ 0x9e840982,
+ 0xda089c62,
+ 0xb582aa21,
+ 0xc0005f8a,
+ 0xb7209180,
+ 0xd210530c,
+ 0xb740aa49,
+ 0xf31044bb,
+ 0xb5808021,
+ 0xd20844ab,
+ 0x7440a8c9,
+ 0x9122c000,
+ 0x448cb780,
+ 0xf2088506,
+ 0xc000a117,
+ 0xb78090c0,
+ 0xf208448c,
+ 0xb720a095,
+ 0xb780520c,
+ 0xb58241ab,
+ 0xb5805f8a,
+ 0xb580400a,
+ 0xc000410a,
+ 0xb7809100,
+ 0xda08448c,
+ 0xb520a899,
+ 0xb79f410a,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0xb7809c22,
+ 0xf034418a,
+ 0x85021d38,
+ 0x506cb322,
+ 0x7d3edffc,
+ 0xb7609e2a,
+ 0xc0005a84,
+ 0x0a4a9364,
+ 0x0c9ec034,
+ 0xc000b481,
+ 0x5a9cb740,
+ 0xc0109dc7,
+ 0x9e59aa69,
+ 0x0cdac082,
+ 0x5a20c200,
+ 0xb4813218,
+ 0x08bec000,
+ 0x0c9ec034,
+ 0xc000b421,
+ 0x5a84b760,
+ 0x5a1cb740,
+ 0xc0209e2d,
+ 0xba12a96d,
+ 0xd0714000,
+ 0xc0366a21,
+ 0xc2000cfa,
+ 0x58f158ff,
+ 0xc2000242,
+ 0xc2005a13,
+ 0x31285a20,
+ 0xc000b441,
+ 0xc0109de4,
+ 0x9e59aa69,
+ 0x0cfec036,
+ 0x5a20c200,
+ 0xb4813218,
+ 0x9c22c000,
+ 0x4001ba1b,
+ 0x76d6c004,
+ 0x90bcc000,
+ 0x0862c024,
+ 0xc0049c22,
+ 0xc00076c6,
+ 0xd09190fc,
+ 0xc0041c36,
+ 0x9c22681a,
+ 0x9c220852,
+ 0x5a1cb740,
+ 0x4001ba1b,
+ 0x9e591db0,
+ 0xc0120a02,
+ 0x9d537048,
+ 0xc0409e99,
+ 0x7642a885,
+ 0x4000ba01,
+ 0x91a2c000,
+ 0x90a6c000,
+ 0xc0007644,
+ 0x08029082,
+ 0xc0009c22,
+ 0xba045a04,
+ 0xd0264002,
+ 0xc000590c,
+ 0xf3105a08,
+ 0xba048021,
+ 0x9c224002,
+ 0x9ea10a02,
+ 0x5a1cb740,
+ 0x4001ba1b,
+ 0xcc121db0,
+ 0x9dc772c2,
+ 0xa9eac010,
+ 0x4001ba1b,
+ 0x5d18d1a6,
+ 0xe2105d88,
+ 0x9c22882f,
+ 0x87c2c809,
+ 0x0c20b060,
+ 0x87c2c809,
+ 0x0a60b060,
+ 0x87c2c809,
+ 0x09c0b060,
+};
+
+unsigned long aui32H264_MTXTOPAZFWData[] = {
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x809000b0,
+ 0x8090019c,
+ 0x82883d04,
+ 0x82883a5c,
+ 0x82883a94,
+ 0x82883ad0,
+ 0x82883b0c,
+ 0x82883b3c,
+ 0x82883b64,
+ 0x82883bc4,
+ 0x82883bcc,
+ 0x82883bd4,
+ 0x82883a3e,
+ 0x82883ec8,
+ 0x82883e98,
+ 0x82883d78,
+ 0x82883bdc,
+ 0x82883dc8,
+ 0x82883e10,
+ 0x82883e58,
+ 0x82883fc4,
+ 0x82883f9c,
+ 0x82883f68,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x809006dc,
+ 0x80901be8,
+ 0x809024f0,
+ 0x809006e0,
+ 0x80903da0,
+ 0x80904f9c,
+ 0x8090072c,
+ 0x00000000,
+ 0x80901da8,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x809006dc,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0xa0101162,
+ 0xa0100174,
+ 0xa0101102,
+ 0xa0100184,
+ 0xa0101104,
+ 0xa0100194,
+ 0xa0101106,
+ 0xa01001a4,
+ 0xa01001a2,
+ 0xa01001a2,
+ 0xa0101182,
+ 0xa0100142,
+ 0xa0101122,
+ 0xa0100152,
+ 0x80101124,
+ 0x80101126,
+ 0x80101144,
+ 0x80101146,
+ 0x80100176,
+ 0x80100186,
+ 0x80100196,
+ 0x801001a6,
+ 0x801001b6,
+ 0x801001b4,
+ 0x80300364,
+ 0x8010b100,
+ 0x80105160,
+ 0x80100102,
+ 0x00000b00,
+ 0x00000b00,
+ 0x00000ba0,
+ 0x00000ba0,
+ 0x00000003,
+ 0x00000002,
+ 0x00000002,
+ 0x00000001,
+ 0x00000001,
+ 0x00000001,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000005,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x03020100,
+ 0x07060504,
+ 0x0b0a0908,
+ 0x0f0e0d0c,
+ 0x13121110,
+ 0x17161514,
+ 0x1b1a1918,
+ 0x1e1d1d1c,
+ 0x2120201f,
+ 0x23232222,
+ 0x25252424,
+ 0x26262625,
+ 0x27272727,
+ 0x02020202,
+ 0x04040303,
+ 0x05050504,
+ 0x06060505,
+ 0x07070706,
+ 0x0b090808,
+ 0x110f0e0d,
+ 0x1f1b1714,
+ 0x3e332924,
+ 0x5b554f4a,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x1234baac,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+};
diff --git a/fw/H264Firmware_bin.h b/fw/H264Firmware_bin.h
new file mode 100644
index 0000000..0397380
--- /dev/null
+++ b/fw/H264Firmware_bin.h
@@ -0,0 +1,35 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+// This file was automatically generated from ../release/H264Firmware.dnl using dnl2c.
+
+extern unsigned long aui32H264_MTXTOPAZFWText[];
+extern unsigned long ui32H264_MTXTOPAZFWTextSize;
+
+extern unsigned long aui32H264_MTXTOPAZFWData[];
+extern unsigned long ui32H264_MTXTOPAZFWDataSize;
+
+extern unsigned long ui32H264_MTXTOPAZFWDataLocation;
+
diff --git a/fw/H264MasterFirmwareCBR_bin.c b/fw/H264MasterFirmwareCBR_bin.c
new file mode 100644
index 0000000..1f8dd5c
--- /dev/null
+++ b/fw/H264MasterFirmwareCBR_bin.c
@@ -0,0 +1,5411 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+
+// This file was automatically generated from ../release/H264MasterFirmwareCBR.dnl using dnl2c.
+
+unsigned char *szH264MasterFirmwareCBR_buildtag = "BUILD_TOPAZ_SC_1_00_00_0318";
+
+unsigned long ui32H264CBR_MasterMTXTOPAZFWTextSize = 4516;
+unsigned long ui32H264CBR_MasterMTXTOPAZFWDataSize = 836;
+unsigned long ui32H264CBR_MasterMTXTOPAZFWTextRelocSize = 0;
+unsigned long ui32H264CBR_MasterMTXTOPAZFWDataRelocSize = 0;
+
+unsigned long ui32H264CBR_MasterMTXTOPAZFWTextOrigin = 0x80900000;
+unsigned long ui32H264CBR_MasterMTXTOPAZFWDataOrigin = 0x828846c0;
+
+unsigned long aui32H264CBR_MasterMTXTOPAZFWText[] = {
+ 0x9040c001,
+ 0xc80993fe,
+ 0xc0000e42,
+ 0xc8290e00,
+ 0xc53c8422,
+ 0xc8298440,
+ 0xc46c8622,
+ 0x9e838600,
+ 0xc8099e43,
+ 0xc8d00d42,
+ 0xc8090d00,
+ 0xc8d00942,
+ 0xc8090940,
+ 0xc00a0e42,
+ 0xc8090e40,
+ 0xc00e87c2,
+ 0x9c1887d0,
+ 0x0c020802,
+ 0x09820d82,
+ 0x09020d02,
+ 0x08820c82,
+ 0x9320fffe,
+ 0xa401c838,
+ 0x0dc2c809,
+ 0x0dc0c8ce,
+ 0x0e42c809,
+ 0x0b46b080,
+ 0x7e74b77f,
+ 0xa48d0882,
+ 0xffff9ff3,
+ 0x9d1393e0,
+ 0xf8398081,
+ 0x0707a205,
+ 0x06850307,
+ 0x03839e97,
+ 0x0fa0060f,
+ 0x018d058d,
+ 0x9c62008f,
+ 0x9340ffff,
+ 0x0ea0060b,
+ 0xffff9c62,
+ 0x058d93a0,
+ 0xb700018d,
+ 0xb780548c,
+ 0x9c015414,
+ 0x0687a605,
+ 0x0ea0060b,
+ 0xffff9c62,
+ 0xf9f893a0,
+ 0xf9f8aa9d,
+ 0x9c22aa1d,
+ 0xa6059c22,
+ 0x85028420,
+ 0xb55f0a82,
+ 0x850a7f7c,
+ 0x9c89c037,
+ 0x9c80c971,
+ 0x75002a08,
+ 0x9184c000,
+ 0x997dc014,
+ 0x458cb780,
+ 0xc0007500,
+ 0x0d8290a4,
+ 0x99cbc054,
+ 0x7f6cb79f,
+ 0xc0007500,
+ 0xc05490e4,
+ 0x0d8a99d3,
+ 0x99c1c054,
+ 0x8d80e032,
+ 0x99b6c014,
+ 0x0800e000,
+ 0x91c4c000,
+ 0x9ac0c014,
+ 0x458cb780,
+ 0x2a797402,
+ 0x458cb580,
+ 0x90e4c000,
+ 0x9100c000,
+ 0xc0149e83,
+ 0x75409a33,
+ 0x9162fffe,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x9c228c60,
+ 0x85028702,
+ 0x7018b543,
+ 0x7098b543,
+ 0x7118b543,
+ 0x7418b543,
+ 0x7498b543,
+ 0x7518b543,
+ 0x7e18b546,
+ 0x7e98b546,
+ 0x7f18b546,
+ 0x4618b547,
+ 0x4804b540,
+ 0x4884b540,
+ 0x4904b540,
+ 0x4984b540,
+ 0x4a04b540,
+ 0x4c04b540,
+ 0x4c84b540,
+ 0x4d04b540,
+ 0x4202b540,
+ 0x4282b540,
+ 0x5004b540,
+ 0x7c84b540,
+ 0x4e84b540,
+ 0x4702b540,
+ 0xa6059c22,
+ 0xfff48420,
+ 0x0d8a9b87,
+ 0x9967c054,
+ 0x9bc6fff4,
+ 0x9972c054,
+ 0x0cd2c420,
+ 0xb4810a02,
+ 0xb105c000,
+ 0x0d8a4220,
+ 0x8d80e031,
+ 0x9aebc014,
+ 0x0922c829,
+ 0x0920c53c,
+ 0x7f6cb73f,
+ 0x2a5ed071,
+ 0x450cb580,
+ 0x2a80c01e,
+ 0xf0088502,
+ 0x7102a8c2,
+ 0x5a95c280,
+ 0x460cb5a0,
+ 0x4434b341,
+ 0xb5407640,
+ 0xb520459c,
+ 0xc000448c,
+ 0xd01190c2,
+ 0xf0080e12,
+ 0xb780a241,
+ 0xc807550c,
+ 0xc57008c2,
+ 0xc0320880,
+ 0xb5800caa,
+ 0xb421538c,
+ 0x0a2ac000,
+ 0xb4810cf4,
+ 0x1a28c000,
+ 0xc0020902,
+ 0xb96008ba,
+ 0xc2004078,
+ 0xd2240a00,
+ 0xb441588b,
+ 0xce00c000,
+ 0xffff0a11,
+ 0xe0009301,
+ 0xffff1884,
+ 0xc8079244,
+ 0xc5760a42,
+ 0xc0320a00,
+ 0xb4810caa,
+ 0x0a02c000,
+ 0x09020882,
+ 0xb9600884,
+ 0xc2004078,
+ 0xd2240a00,
+ 0xb441588b,
+ 0xce00c000,
+ 0xffff0a11,
+ 0xc0049301,
+ 0xffff745a,
+ 0x0a02923c,
+ 0x0c9ec034,
+ 0xc000b481,
+ 0x9b0dfff4,
+ 0xb79f0802,
+ 0xb7bf7eee,
+ 0x8c607f6e,
+ 0x9e549c22,
+ 0x0c82c040,
+ 0xb4219e59,
+ 0xc040c000,
+ 0xb4820d02,
+ 0x9c22c000,
+ 0x2d7cc00e,
+ 0x29e0c00e,
+ 0x9e545d30,
+ 0x0c82c040,
+ 0xb46131b8,
+ 0xc040c000,
+ 0xb4420d02,
+ 0x9c22c000,
+ 0x8420a60d,
+ 0x06870703,
+ 0x5c8dc280,
+ 0xd0a21c84,
+ 0x02875ca0,
+ 0x0a5ed011,
+ 0x5a0dc200,
+ 0xc2001a04,
+ 0x5cd05a30,
+ 0x9e4c3098,
+ 0xc0320405,
+ 0x30980c8a,
+ 0x3880c801,
+ 0xc000b421,
+ 0xc8019ea9,
+ 0xc0020a02,
+ 0x65530a00,
+ 0x0c8ac030,
+ 0xc000b481,
+ 0x0882c002,
+ 0xb4210c84,
+ 0x9e93c000,
+ 0x5f09d022,
+ 0x5d0d9e53,
+ 0xfff41d04,
+ 0xc2809bb4,
+ 0x1e845e91,
+ 0x5e84c280,
+ 0x1a849e6c,
+ 0x5a90c280,
+ 0x3a80c181,
+ 0x09820d8a,
+ 0x314a0d02,
+ 0x9baefff4,
+ 0x0d82c0c0,
+ 0xc0020992,
+ 0xc0020d02,
+ 0xc0540902,
+ 0x0a0a9891,
+ 0x0c9ec034,
+ 0xc000b481,
+ 0x75bf1b04,
+ 0xc0008502,
+ 0x9dcf9202,
+ 0x7f7cb55f,
+ 0x9864c054,
+ 0xa045f231,
+ 0x7f7cb75f,
+ 0x75bf1b04,
+ 0xffff8510,
+ 0xc0029284,
+ 0xc0300a42,
+ 0xb4810c8e,
+ 0xb79fc000,
+ 0xb7bf7e6e,
+ 0xb7df7eee,
+ 0xc0027f6e,
+ 0x9c228c00,
+ 0xf8399c22,
+ 0xb780a285,
+ 0x0986450c,
+ 0x0d0270c8,
+ 0x9096c001,
+ 0x4594b760,
+ 0x08020c06,
+ 0x0902c1cc,
+ 0x19c4d010,
+ 0x9e5d9e44,
+ 0x508cc200,
+ 0xc0007942,
+ 0xd1249202,
+ 0xc400588b,
+ 0xb4013c80,
+ 0xb104c000,
+ 0x9e554220,
+ 0x750230d2,
+ 0x4822b321,
+ 0xc00c9e8a,
+ 0x09840900,
+ 0x9101ffff,
+ 0x4594b540,
+ 0xaa9df9f8,
+ 0xc2009c22,
+ 0xc0378502,
+ 0xc1719c89,
+ 0xc8179c80,
+ 0x9c229c80,
+ 0xb780a605,
+ 0x9e5d458c,
+ 0xc000790a,
+ 0xfff49162,
+ 0xfff49bf0,
+ 0xb7809bbe,
+ 0x790a458c,
+ 0x9324ffff,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xc002a61d,
+ 0x9e5d8400,
+ 0xaa21f208,
+ 0xc0017500,
+ 0xc4209004,
+ 0x0a020cda,
+ 0xc000b481,
+ 0x4220b101,
+ 0xb4811c84,
+ 0xb106c000,
+ 0xb4814220,
+ 0xb107c000,
+ 0x008f4220,
+ 0xc000b481,
+ 0x4240b106,
+ 0xc000b481,
+ 0x4240b105,
+ 0x2a6ed1f1,
+ 0xb40d7516,
+ 0xf2084622,
+ 0x7480a921,
+ 0x92c2c000,
+ 0x8c80e092,
+ 0x098a0dc2,
+ 0x0d02c002,
+ 0x9b0afff4,
+ 0x7cecb7df,
+ 0x7c6cb79f,
+ 0x7d6cb7ff,
+ 0x7df4b7df,
+ 0x7e74b7bf,
+ 0xa221f208,
+ 0x5aa1c300,
+ 0x2afcc00e,
+ 0x0d869ea9,
+ 0xfff455e4,
+ 0xd3129ba3,
+ 0xc1c068d1,
+ 0x5c8b0c80,
+ 0xc000b4c1,
+ 0x6951d312,
+ 0x0d10c1c0,
+ 0xb4e25d0b,
+ 0xd312c000,
+ 0x9e7468d1,
+ 0x0ca0c1c0,
+ 0xb4815c8b,
+ 0xd312c000,
+ 0x9e6c6951,
+ 0x0d30c1c0,
+ 0xb4825d0b,
+ 0xd312c000,
+ 0x0a0268d1,
+ 0x0cc0c1c0,
+ 0xc4005c8b,
+ 0xb4813c80,
+ 0xb106c000,
+ 0xcfff4220,
+ 0xd3122b7c,
+ 0xc1c068d1,
+ 0x5c8b0cc0,
+ 0xc000b4c1,
+ 0x458cb720,
+ 0xc2000a04,
+ 0x000b5214,
+ 0xb5203098,
+ 0xb79f458c,
+ 0xb7bf7c6e,
+ 0xb7df7cee,
+ 0xb7ff7d6e,
+ 0xc0047dee,
+ 0x9c228c00,
+ 0xa205f839,
+ 0x0e30f011,
+ 0x919cc000,
+ 0x9ea10a04,
+ 0x55e40d86,
+ 0xc0343d88,
+ 0x0d8a9b6c,
+ 0x9b69c034,
+ 0xaa1df9f8,
+ 0xa6059c22,
+ 0x0a42c801,
+ 0x0a00c010,
+ 0x2ebed3f2,
+ 0x0caac032,
+ 0xc000b481,
+ 0x0cf408aa,
+ 0xc000b421,
+ 0x558cb780,
+ 0x0c92c080,
+ 0xa881f208,
+ 0xc000b421,
+ 0x558cb780,
+ 0xf2080c88,
+ 0xb421a889,
+ 0xb780c000,
+ 0x0c84558c,
+ 0xa88df208,
+ 0xc000b421,
+ 0x1c980902,
+ 0xc000b441,
+ 0x558cb780,
+ 0xf2080c90,
+ 0xb421a885,
+ 0xb7a0c000,
+ 0x0dd2558c,
+ 0x9b24c034,
+ 0xaa25f208,
+ 0xffff7008,
+ 0x0daa9344,
+ 0x0d060982,
+ 0x0902c121,
+ 0x9a4afff4,
+ 0x4714b760,
+ 0x0d02c021,
+ 0x09c20d04,
+ 0x9a37fff4,
+ 0x4714b760,
+ 0x0d0609c2,
+ 0x9a31fff4,
+ 0x09820daa,
+ 0xc1010d02,
+ 0xfff40902,
+ 0x0d929a35,
+ 0x9b00c034,
+ 0xaa25f208,
+ 0xffff7008,
+ 0x77409344,
+ 0x90a2c000,
+ 0xc0340d8e,
+ 0x0d8a9b02,
+ 0x9affc034,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xc470a60d,
+ 0x0a020c8e,
+ 0xc000b481,
+ 0x4220b101,
+ 0x558cb780,
+ 0xa085f208,
+ 0x0a021c8c,
+ 0xc000b481,
+ 0x4220b105,
+ 0x2b5ed1f1,
+ 0x558cb780,
+ 0xcff09ead,
+ 0xc2802e80,
+ 0xf2085ea1,
+ 0xc280a281,
+ 0x2a845a9d,
+ 0x0a020c84,
+ 0xc000b481,
+ 0x4220b101,
+ 0x468cb520,
+ 0xb4810c84,
+ 0xb101c000,
+ 0xb5204220,
+ 0xc070470c,
+ 0xb4810c8e,
+ 0x0882c000,
+ 0xb4211c8c,
+ 0x0c90c000,
+ 0xc000b481,
+ 0xb4211c8c,
+ 0x0c84c000,
+ 0xc000b481,
+ 0x6484b740,
+ 0x5908d326,
+ 0xe0309e2d,
+ 0x9ea4aa4d,
+ 0xb7809c62,
+ 0x7740558c,
+ 0x9ea98502,
+ 0xd0010d82,
+ 0xf2080db2,
+ 0x2596a10f,
+ 0x9b3ffff4,
+ 0xc0700a06,
+ 0xb4810c82,
+ 0x000dc000,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x4514b760,
+ 0xc0020a7f,
+ 0x9ea18502,
+ 0x89afe220,
+ 0xfff355ad,
+ 0xc01c91a0,
+ 0xc0007ebe,
+ 0xd1a29244,
+ 0xc0905e08,
+ 0xd2240a00,
+ 0x08825909,
+ 0x3d00c400,
+ 0xc000b422,
+ 0x4220b104,
+ 0xffff7500,
+ 0xc1809364,
+ 0xc0905c88,
+ 0x5c890c80,
+ 0xc000b461,
+ 0xc1809c22,
+ 0xc0905c88,
+ 0x5c890c80,
+ 0x3c80c400,
+ 0xb4810a02,
+ 0xb101c000,
+ 0xf0084220,
+ 0x5d88a0e1,
+ 0x0d80c090,
+ 0xb4835d89,
+ 0x9c22c000,
+ 0xd3129e5b,
+ 0x0a0268b1,
+ 0x0cc0c1c0,
+ 0xc4005c8b,
+ 0xb4813c80,
+ 0xb102c000,
+ 0xb7604220,
+ 0xd3125a14,
+ 0x85026931,
+ 0xb9609e51,
+ 0xc1c04070,
+ 0xf03108e0,
+ 0xd0a4aa65,
+ 0xb4815889,
+ 0x0890c000,
+ 0xffff8510,
+ 0xc1c09301,
+ 0xe2108560,
+ 0xb76080ad,
+ 0xc0015c14,
+ 0xce3e3904,
+ 0xb9608521,
+ 0xf0314048,
+ 0xd0a4aa65,
+ 0xb4815889,
+ 0x0890c000,
+ 0xffff8510,
+ 0xe2209301,
+ 0xb780812d,
+ 0xc001598c,
+ 0xc1c03908,
+ 0x5d090d60,
+ 0xa885dac8,
+ 0xc000b422,
+ 0x68b1d312,
+ 0x0cc0c1c0,
+ 0xb4415c8b,
+ 0x9c22c000,
+ 0x508cb740,
+ 0x6cb1d312,
+ 0xc1c00a02,
+ 0x5c8b0cc0,
+ 0x3c80c400,
+ 0xc000b481,
+ 0x4220b101,
+ 0x6cb1d312,
+ 0x0cf0c1ca,
+ 0xb4415c8b,
+ 0xc00cc000,
+ 0xc0016d82,
+ 0xc1c038c0,
+ 0x5d8b0dc0,
+ 0xc000b423,
+ 0x84209c22,
+ 0xe0318502,
+ 0x09068d80,
+ 0x7f7cb55f,
+ 0x0cd2c472,
+ 0xb4810a02,
+ 0xb101c000,
+ 0x9e8a4220,
+ 0xc0010203,
+ 0x75002a40,
+ 0x9362c000,
+ 0x68a1d312,
+ 0xc1ca0a02,
+ 0x5c8b0cf0,
+ 0x3c80c400,
+ 0xc000b481,
+ 0x4220b101,
+ 0xa0e1f008,
+ 0x509cb740,
+ 0x7f6cb79f,
+ 0xf3109e51,
+ 0xcfff8021,
+ 0xb58028be,
+ 0xd312508c,
+ 0xc1c068a1,
+ 0x5c8b0cc0,
+ 0xc000b421,
+ 0x9c228c20,
+ 0xc006a605,
+ 0x87028420,
+ 0xc4720c06,
+ 0x0a020cd2,
+ 0xc000b481,
+ 0x4220b105,
+ 0x020b9eaa,
+ 0x2a04c001,
+ 0xc0017500,
+ 0xd31190c2,
+ 0xe1b16c81,
+ 0xb7608d00,
+ 0x09825a14,
+ 0x4070b960,
+ 0x08e0c1c0,
+ 0x5889d0a4,
+ 0x3c80c400,
+ 0xc000b461,
+ 0x4220b104,
+ 0xa245f029,
+ 0x87100890,
+ 0x9281ffff,
+ 0xa973f050,
+ 0x796cb79f,
+ 0xf3109e55,
+ 0xcfff8021,
+ 0xf0502afa,
+ 0x020ba271,
+ 0x2a08c001,
+ 0xd3127500,
+ 0xc0026e81,
+ 0xe0b19082,
+ 0xc1c08d00,
+ 0xe1108760,
+ 0xb74082a3,
+ 0x09825c14,
+ 0x4048b960,
+ 0xd0a49e93,
+ 0xc4005889,
+ 0xb4613c80,
+ 0xb104c000,
+ 0xf0294220,
+ 0x0890a245,
+ 0x92a1ffff,
+ 0x598cb780,
+ 0xa943f010,
+ 0xa891da08,
+ 0xaa61f010,
+ 0xa95cf012,
+ 0xa9c7f050,
+ 0x8021f310,
+ 0xa94bd850,
+ 0xd8101884,
+ 0xf010a0c9,
+ 0xb79fa241,
+ 0xb73f7b6a,
+ 0xb73f7eec,
+ 0xf3107ff4,
+ 0xe2108021,
+ 0xe22082a3,
+ 0xcfff80bb,
+ 0xd8502af6,
+ 0xf010a249,
+ 0xf050a0dd,
+ 0x020ba0c6,
+ 0x2a10c001,
+ 0xc0007500,
+ 0xc01490c2,
+ 0xcfff9838,
+ 0xc1c02aee,
+ 0xc2800ec0,
+ 0xb4a15c8b,
+ 0xb79fc000,
+ 0xb7bf78ee,
+ 0xc006796e,
+ 0x9c228c60,
+ 0x6cb1d312,
+ 0xc1c00a02,
+ 0x5c8b0cc0,
+ 0x3c80c400,
+ 0xc000b481,
+ 0x4220b103,
+ 0x5b14b740,
+ 0x6d31d311,
+ 0x4058b960,
+ 0xc1c00085,
+ 0xf03108e0,
+ 0xd0a4aa45,
+ 0xb4815889,
+ 0x0890c000,
+ 0x9321ffff,
+ 0x3990c001,
+ 0x0940c1c0,
+ 0x588bd124,
+ 0xc000b461,
+ 0xa6059c22,
+ 0x8440c002,
+ 0x5b14b740,
+ 0xc4720a86,
+ 0x08820cd2,
+ 0x8502c00c,
+ 0xc000b421,
+ 0x4220b104,
+ 0xc0010189,
+ 0x75002a10,
+ 0x9302ffff,
+ 0x8d00e0d1,
+ 0x08029d47,
+ 0x4058b960,
+ 0x08e0c1c0,
+ 0x5889d0a4,
+ 0x3c80c400,
+ 0xc000b401,
+ 0x4220b104,
+ 0xa245f029,
+ 0xffff0890,
+ 0x9dc792a1,
+ 0x29eecfff,
+ 0x0cc0c1c0,
+ 0xb4615c8b,
+ 0xf010c000,
+ 0xb79fa94b,
+ 0xf0127b6c,
+ 0xb73fa94c,
+ 0xd8107bec,
+ 0xf310a9cb,
+ 0xf0108021,
+ 0xe210a953,
+ 0xd81282a3,
+ 0xf010a94c,
+ 0xf010a249,
+ 0xb79fa0cd,
+ 0xb73f7c6c,
+ 0xb73f75ea,
+ 0xf3107572,
+ 0xe2108021,
+ 0xe22082a3,
+ 0x0d8680bb,
+ 0xa251f010,
+ 0xa0cdd810,
+ 0xa0cad810,
+ 0x9b7efff4,
+ 0x68d1d312,
+ 0xc1c00a02,
+ 0x5c8b0cc0,
+ 0x3c80c400,
+ 0xc000b481,
+ 0x4220b104,
+ 0x3a20c001,
+ 0x68d1d312,
+ 0x0cc0c1c0,
+ 0xb4815c8b,
+ 0xb79fc000,
+ 0xb7bf7c6e,
+ 0xc0047cee,
+ 0x9c228c00,
+ 0xa285f839,
+ 0xaa61f010,
+ 0xc0007500,
+ 0xd0089164,
+ 0x9e48a8c1,
+ 0xc2000a06,
+ 0x30985200,
+ 0xa0c1d008,
+ 0x0d38d011,
+ 0xa9f2d010,
+ 0x1a30f011,
+ 0xa943f010,
+ 0xc0001984,
+ 0xcff193e2,
+ 0xcff08702,
+ 0xc00f8700,
+ 0xc00e087e,
+ 0xc050087c,
+ 0xf0290c1a,
+ 0xd020a8c5,
+ 0x5ca12095,
+ 0x22109e4d,
+ 0x5a20c200,
+ 0xba0930d8,
+ 0xb4204006,
+ 0xf011c000,
+ 0x19841a30,
+ 0x91e4ffff,
+ 0x802ff210,
+ 0xa241f010,
+ 0xaa9df9f8,
+ 0xa60d9c22,
+ 0x59409e5d,
+ 0x5841f124,
+ 0x2d2ed3f1,
+ 0x4422b350,
+ 0x93e2c002,
+ 0xaa61f008,
+ 0x2a1ce000,
+ 0x4422b425,
+ 0xaa61d808,
+ 0xe2108522,
+ 0x2a1c88a9,
+ 0x9ea31218,
+ 0x0a7ec00e,
+ 0x400bba1b,
+ 0x5207c200,
+ 0xc0012128,
+ 0x9e599276,
+ 0x5a20c100,
+ 0xc2001103,
+ 0x9ea25209,
+ 0x58a1c200,
+ 0xd0319e8d,
+ 0xd2080cb0,
+ 0xc00ea8a2,
+ 0xc2002a7c,
+ 0xc00e5207,
+ 0x349a2a7c,
+ 0xa0a2d208,
+ 0xa963f008,
+ 0xd3f19ea1,
+ 0xc2012a2e,
+ 0xf3108128,
+ 0x85028821,
+ 0xa261f008,
+ 0xa127d228,
+ 0xcff09eab,
+ 0x59402d01,
+ 0x35225941,
+ 0x2d7cc00e,
+ 0x9bb1fff4,
+ 0x92e0c000,
+ 0xaa21d208,
+ 0x000b9e5e,
+ 0x324250d8,
+ 0xa205d029,
+ 0xa8e1f008,
+ 0x291ed013,
+ 0x8029f210,
+ 0x9e447510,
+ 0xf0080098,
+ 0xb350a0e1,
+ 0xb79f4426,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0xa6059c22,
+ 0x59409e58,
+ 0x74b05941,
+ 0x06850287,
+ 0x9374c000,
+ 0x5d61c280,
+ 0x59401960,
+ 0xfff45941,
+ 0x9e839b82,
+ 0xc280018b,
+ 0xc00e5d41,
+ 0x09222d7c,
+ 0x9b79fff4,
+ 0x018b9e83,
+ 0x5d21c280,
+ 0x2d7cc00e,
+ 0xc0010922,
+ 0x74a090a0,
+ 0x92d4c000,
+ 0x018b9e83,
+ 0x5d41c280,
+ 0x2d7cc00e,
+ 0x59401940,
+ 0xfff45941,
+ 0x9e839b62,
+ 0xc280018b,
+ 0xc00e5d21,
+ 0x09222d7c,
+ 0x91c0c000,
+ 0xc0007490,
+ 0x9e8392d4,
+ 0xc280018b,
+ 0xc00e5d21,
+ 0x19202d7c,
+ 0x59415940,
+ 0x9b4bfff4,
+ 0x018b9e83,
+ 0x2d5ed3f2,
+ 0xfff40922,
+ 0xc0009b44,
+ 0x9e839100,
+ 0xd3f2018b,
+ 0xfff42d5e,
+ 0xb79f9b3c,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa60d9c22,
+ 0x9e690685,
+ 0x0b029e9e,
+ 0x0a867182,
+ 0x9208c000,
+ 0x16d29ea9,
+ 0xc2809e69,
+ 0xd0115a84,
+ 0x71021a52,
+ 0x08e2d011,
+ 0x2b1ed3f1,
+ 0x9286ffff,
+ 0x0a62d011,
+ 0x028d7510,
+ 0x91d4c000,
+ 0x0d029e73,
+ 0xfff40922,
+ 0x1aa09b14,
+ 0x0a52d011,
+ 0x9e837510,
+ 0x92d2ffff,
+ 0x0d069e73,
+ 0x0952d011,
+ 0x297cc00e,
+ 0x9b05fff4,
+ 0x9e837590,
+ 0x92f4c000,
+ 0x1a60d031,
+ 0x2b4ed3f1,
+ 0x9e739e6c,
+ 0x5299c200,
+ 0x295ed3f2,
+ 0xfff40922,
+ 0x9e839af4,
+ 0x52b8c200,
+ 0x75909ea9,
+ 0xffff16d2,
+ 0x9e7391b2,
+ 0x2d5ed3f2,
+ 0xfff4010d,
+ 0xb79f9ae6,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0xf0119c22,
+ 0x9e990ca0,
+ 0x5a04d09a,
+ 0x1a42d00d,
+ 0x909ac000,
+ 0x12421203,
+ 0x9ea29e4b,
+ 0x9360fffc,
+ 0x8420a60d,
+ 0x9e9e8502,
+ 0x7f7cb55f,
+ 0x7ffcb55f,
+ 0xaa61f010,
+ 0xf0129e55,
+ 0x1a088c8e,
+ 0xd2267512,
+ 0x8540590c,
+ 0x8044e05a,
+ 0x90c0c006,
+ 0x9280c000,
+ 0x93a0c000,
+ 0x90c0c001,
+ 0x9200c001,
+ 0x9300c001,
+ 0x9160c002,
+ 0x93e0c002,
+ 0x91e0c004,
+ 0x9320c004,
+ 0x9100c005,
+ 0x8d88e011,
+ 0x1954d072,
+ 0x500cb5a0,
+ 0xfff4058b,
+ 0xc0059bc0,
+ 0xb7409120,
+ 0xe0115014,
+ 0x9ea98d88,
+ 0x1514058b,
+ 0x9bb5fff4,
+ 0x93c0c004,
+ 0x8d88e011,
+ 0x295ed3f2,
+ 0x0916058b,
+ 0x9a87fff4,
+ 0x500cb5a0,
+ 0x9240c004,
+ 0x8d88e011,
+ 0x295ed3f2,
+ 0x0916058b,
+ 0x9a7bfff4,
+ 0x9100c004,
+ 0xaa41d210,
+ 0x8c88f011,
+ 0x4a7d058b,
+ 0x2aced012,
+ 0x09060d06,
+ 0xfff4018b,
+ 0x9e839a6c,
+ 0x018b9e6a,
+ 0xfff40d02,
+ 0xc0039a66,
+ 0xd2109260,
+ 0xf011aa41,
+ 0x058b8c88,
+ 0xd0124a7d,
+ 0x0d022ace,
+ 0x018b0906,
+ 0x9a57fff4,
+ 0x9e6a9e83,
+ 0xc00e018b,
+ 0xfff40d7e,
+ 0xc0029a50,
+ 0xb72093a0,
+ 0xd272570c,
+ 0xb7800890,
+ 0x7500404d,
+ 0xc0000303,
+ 0xf2c89104,
+ 0xb580aa51,
+ 0xc000404d,
+ 0xb7809100,
+ 0xf2485a0c,
+ 0xb520a895,
+ 0xd271404d,
+ 0xf2080ae0,
+ 0xfa88a8a1,
+ 0x0c82a951,
+ 0x05830183,
+ 0x9b24c0d4,
+ 0x0a60d2b1,
+ 0xa903f208,
+ 0xe0119e41,
+ 0xe2208d88,
+ 0x058b8923,
+ 0xf208095e,
+ 0xfff4a0a1,
+ 0xc0019a8e,
+ 0xb7809160,
+ 0xe011578c,
+ 0xf2088d88,
+ 0x058ba902,
+ 0xfff4095e,
+ 0xc0009a82,
+ 0xb74193e0,
+ 0xb787741c,
+ 0xe0115208,
+ 0xf3108d88,
+ 0x9dcb8021,
+ 0x095e058b,
+ 0x740cb581,
+ 0x9a71fff4,
+ 0x91c0c000,
+ 0x5210b747,
+ 0x8d88e011,
+ 0x091e058b,
+ 0x99f7fff4,
+ 0x9080c000,
+ 0x90e0c001,
+ 0x7e68b79f,
+ 0x0cfec00f,
+ 0x0cfcc00e,
+ 0xb59f9e4a,
+ 0xb73f7c68,
+ 0xcff17f6c,
+ 0xcff00a02,
+ 0xc0500a00,
+ 0x22180c9a,
+ 0x5a21c200,
+ 0x58a02094,
+ 0xba243242,
+ 0xb59f4006,
+ 0xb4817f6c,
+ 0xf210c000,
+ 0xb79fa943,
+ 0xf3107fec,
+ 0xf2108021,
+ 0xb79fa241,
+ 0xb7bf7e6e,
+ 0xb7df7eee,
+ 0xc0027f6e,
+ 0x9c228c00,
+ 0x8440a61d,
+ 0x9e9d8502,
+ 0xabe5f031,
+ 0xb55f0b02,
+ 0xb55f7878,
+ 0x718e7efc,
+ 0xc0019d3a,
+ 0xaa4191e8,
+ 0xc0007502,
+ 0xd0189392,
+ 0xe032aad1,
+ 0xe0518d08,
+ 0x9dcf8d00,
+ 0x85109eb1,
+ 0x7f7cb55f,
+ 0x0a9cc002,
+ 0x5a95c280,
+ 0xfff4018b,
+ 0xb75f9961,
+ 0xc2807f7c,
+ 0xc3015a88,
+ 0xc0008122,
+ 0xe03191a0,
+ 0x9dcf8d88,
+ 0x8510050b,
+ 0x7f7cb55f,
+ 0x9ac2fff4,
+ 0x7f7cb75f,
+ 0x718e0b04,
+ 0x92a6fffe,
+ 0x7868b79f,
+ 0x0c9ec050,
+ 0xc000b481,
+ 0x0d16c050,
+ 0xc000b4e2,
+ 0x7eecb71f,
+ 0x7d6eb79f,
+ 0x7deeb7bf,
+ 0x7e6eb7df,
+ 0x7eeeb7ff,
+ 0x8c40c002,
+ 0xa6059c22,
+ 0x0c8ac450,
+ 0xb4810a02,
+ 0xb102c000,
+ 0xe00e4240,
+ 0xd1042d7c,
+ 0xc8015d10,
+ 0x0a400a02,
+ 0x0c8ac030,
+ 0xc000b481,
+ 0x0c8408c2,
+ 0xc000b421,
+ 0x610cb740,
+ 0xa947f048,
+ 0x802df210,
+ 0xa245f048,
+ 0x0c86c450,
+ 0xb4810a02,
+ 0xb101c000,
+ 0xc8014220,
+ 0xc0100a42,
+ 0xc0320a00,
+ 0xb4810caa,
+ 0x08aac000,
+ 0x0d1ec034,
+ 0xc000b422,
+ 0x0cf2c450,
+ 0xb4810a02,
+ 0xb101c000,
+ 0xd0534220,
+ 0xb7801910,
+ 0xf248570c,
+ 0xf210a891,
+ 0x0d8288a3,
+ 0x018b0d06,
+ 0x9ae1ffd4,
+ 0x0ca2c080,
+ 0xc000b4a1,
+ 0x0d82c002,
+ 0x9954c014,
+ 0xffff700a,
+ 0x0daa9364,
+ 0x0d0a0982,
+ 0x0902c121,
+ 0x987cffd4,
+ 0x570cb780,
+ 0xa992f248,
+ 0x0d02c0a1,
+ 0x09c20d04,
+ 0x9867ffd4,
+ 0x0d82c0c0,
+ 0x0d420992,
+ 0xc0140942,
+ 0xb79f9957,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa60d9c22,
+ 0x8400c010,
+ 0x570cb720,
+ 0x49adb780,
+ 0x75002a20,
+ 0x5a14b7c0,
+ 0xc0000902,
+ 0xb7869182,
+ 0x75007e08,
+ 0x90e2c000,
+ 0xaa41d290,
+ 0xc0057500,
+ 0xb7209164,
+ 0xd01149ad,
+ 0x75002a18,
+ 0x3924d002,
+ 0x9124c000,
+ 0x2a14d011,
+ 0xd0027500,
+ 0xd0013922,
+ 0xc0503926,
+ 0xb4410c82,
+ 0x9d87c000,
+ 0x468cb740,
+ 0x09c20dc2,
+ 0x0d02c010,
+ 0x0c81cff0,
+ 0x983effd4,
+ 0x7e08b786,
+ 0x75009d1b,
+ 0x0b01cff0,
+ 0x9282c000,
+ 0xaa41d290,
+ 0xc0007500,
+ 0xb79f91e2,
+ 0xf211606c,
+ 0xc0108d00,
+ 0x75002a00,
+ 0x0a03cff0,
+ 0x8001f310,
+ 0x4422b346,
+ 0x4068b79e,
+ 0x08c2c801,
+ 0x0880c010,
+ 0x0ceac032,
+ 0x606cb59f,
+ 0xc000b421,
+ 0x7e08b786,
+ 0xc0017500,
+ 0xb7869282,
+ 0x75007f08,
+ 0x91e2c001,
+ 0x510cb720,
+ 0x2a12d011,
+ 0xc0017500,
+ 0xb7a09102,
+ 0xb7a06214,
+ 0xf2105b0c,
+ 0x9eabaa21,
+ 0xb52028f9,
+ 0x9ea4510c,
+ 0xb7209c62,
+ 0xb7805f8c,
+ 0x75004129,
+ 0x92a4c000,
+ 0xa9a1f208,
+ 0xa83df210,
+ 0x9e840d82,
+ 0xf2509c62,
+ 0x9eaba8a5,
+ 0xa021f208,
+ 0x9e8c0982,
+ 0xda089c62,
+ 0xb583aa21,
+ 0xda10628a,
+ 0x9eb3a9cd,
+ 0x9aa6fff4,
+ 0x0a02c801,
+ 0x0a00c00a,
+ 0x0c8ac030,
+ 0xc000b481,
+ 0x08c2c008,
+ 0xb4210c84,
+ 0xc008c000,
+ 0x0c880a02,
+ 0xc000b481,
+ 0x0d82c0c0,
+ 0xc0080992,
+ 0xc0080d02,
+ 0xc0140902,
+ 0xc008989d,
+ 0xc0300a02,
+ 0xb4810c8e,
+ 0xb720c000,
+ 0x85065a8c,
+ 0x4039b540,
+ 0x9ad1fff4,
+ 0x6eeeb79f,
+ 0x6f6eb7bf,
+ 0x6feeb7df,
+ 0x8c60c010,
+ 0xf8399c22,
+ 0xc450a205,
+ 0x0a020c82,
+ 0xc000b481,
+ 0x4220b101,
+ 0x0a40c008,
+ 0x0c8ec030,
+ 0xc000b481,
+ 0x38c0c002,
+ 0x0c82c050,
+ 0xc000b421,
+ 0x0d82c0c0,
+ 0xc0080992,
+ 0xc0080d02,
+ 0xc0140902,
+ 0xc0089869,
+ 0xc0300a02,
+ 0xb4810c8e,
+ 0xf9f8c000,
+ 0xfff5aa1d,
+ 0xa60d9000,
+ 0x0eb0f011,
+ 0x9182c001,
+ 0x0f7ec01e,
+ 0x0b02c008,
+ 0x0e8ec030,
+ 0x7540c040,
+ 0xc0509e74,
+ 0xb3540c96,
+ 0x12d84426,
+ 0x5a14c200,
+ 0xc000b481,
+ 0x0d0ac030,
+ 0xc000b4c2,
+ 0xc000b4c5,
+ 0x0c96c030,
+ 0xc000b4c1,
+ 0x0d82c0c0,
+ 0xc0080992,
+ 0xc0080d02,
+ 0xc0140902,
+ 0xb4c59835,
+ 0x7540c000,
+ 0x93c4fffe,
+ 0x9a6ffff4,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0xc000b463,
+ 0xf8129c22,
+ 0x9c22a062,
+ 0x0d80c200,
+ 0x9e595d89,
+ 0xc4000982,
+ 0xb4633d80,
+ 0xb203c000,
+ 0x00074620,
+ 0xc1279c22,
+ 0x9c229c8f,
+ 0xb971080a,
+ 0xc01756f1,
+ 0xc0719c81,
+ 0xc0179c80,
+ 0xb9609c80,
+ 0x9c224000,
+ 0x9280ffff,
+ 0x01c69e5c,
+ 0x5889d1a4,
+ 0xc4000882,
+ 0xb4213c80,
+ 0xb104c000,
+ 0x22444220,
+ 0x71069e53,
+ 0x9324ffff,
+ 0xa60d9c22,
+ 0x8420c004,
+ 0x0ca2c829,
+ 0x0cf0c51a,
+ 0xac3dc030,
+ 0x8d00e133,
+ 0xa45dc038,
+ 0xac3dc030,
+ 0xa45dc038,
+ 0xac3dc010,
+ 0xa45dc018,
+ 0xac25c010,
+ 0xa445c018,
+ 0x570cb7a0,
+ 0x85029ea9,
+ 0x651ab540,
+ 0x4b98b541,
+ 0x468cb740,
+ 0xc00a0dc2,
+ 0x09c20d42,
+ 0x9aecffb4,
+ 0x0a58d251,
+ 0xaa01da08,
+ 0x9ead7502,
+ 0x9084c000,
+ 0x448cb580,
+ 0x610cb780,
+ 0xf2108702,
+ 0x850aa8a2,
+ 0x5218b547,
+ 0xa8a5f210,
+ 0x5084b540,
+ 0x4802b540,
+ 0xa100f20a,
+ 0xa086f208,
+ 0xa929f210,
+ 0xa089f208,
+ 0xa92ef210,
+ 0xa8b2f210,
+ 0xa10df208,
+ 0xa8b1f250,
+ 0xa112f208,
+ 0xa096f208,
+ 0xa09af208,
+ 0x0cf2c050,
+ 0xf24808c0,
+ 0xb421a085,
+ 0x0a0ac000,
+ 0x0c92c036,
+ 0xc000b481,
+ 0x1c8c0896,
+ 0xc000b421,
+ 0xf0318502,
+ 0xe1318c00,
+ 0x9ea38d80,
+ 0x5f8cb7c0,
+ 0xb9600d02,
+ 0xb55f4078,
+ 0xf2087ffc,
+ 0x9dbaa103,
+ 0x5d0dd122,
+ 0xf0299e2d,
+ 0xd012a8e5,
+ 0x5c882cae,
+ 0x5908d126,
+ 0xe0389e4a,
+ 0x0d04aa4d,
+ 0x50a828bc,
+ 0xa2413242,
+ 0x91c1ffff,
+ 0xaa61f010,
+ 0x0c8ec036,
+ 0xc000b481,
+ 0x7fecb73f,
+ 0xb4211c84,
+ 0xc014c000,
+ 0xd2089999,
+ 0x7500aa4d,
+ 0x9262c000,
+ 0xaa2df290,
+ 0x2ac8f011,
+ 0x91a4c000,
+ 0x2a00c800,
+ 0xc0007500,
+ 0xf20890c4,
+ 0xfff4a9c6,
+ 0xd2089ae8,
+ 0xf290a2cd,
+ 0xd011aaad,
+ 0x75002a54,
+ 0x9102c000,
+ 0x0a42c809,
+ 0x0a70c5ba,
+ 0x530cb580,
+ 0x460cb780,
+ 0xc0007500,
+ 0xc2809162,
+ 0x2a045a31,
+ 0x0ceac03e,
+ 0xc000b481,
+ 0x9280c000,
+ 0x448cb780,
+ 0xc0007502,
+ 0xc100915c,
+ 0x75402a80,
+ 0xd0010a0e,
+ 0xc0001a46,
+ 0x0a029060,
+ 0x0ceac03e,
+ 0xc000b481,
+ 0x7a6eb79f,
+ 0x7aeeb7bf,
+ 0x7b6eb7df,
+ 0x8c00c006,
+ 0xb7809c22,
+ 0xc0c8538c,
+ 0xb9600892,
+ 0xd01140f8,
+ 0xf0290948,
+ 0xd0a4aa45,
+ 0xb4815889,
+ 0x0890c000,
+ 0x9321ffff,
+ 0xa6059c22,
+ 0x460cb720,
+ 0x708cb781,
+ 0x0a047440,
+ 0x708cb581,
+ 0x9364c000,
+ 0x7e08b786,
+ 0xc0007500,
+ 0xb72092c2,
+ 0xb780448c,
+ 0x7442510c,
+ 0xb5803a40,
+ 0xc000510c,
+ 0xb780919c,
+ 0xd2085f8c,
+ 0x7440a889,
+ 0x90a4c000,
+ 0xb5478506,
+ 0xc8014618,
+ 0xc0100a42,
+ 0xc0320a00,
+ 0xb4810cea,
+ 0xc008c000,
+ 0xc00208c2,
+ 0xb4211ce0,
+ 0xc008c000,
+ 0xc0300a42,
+ 0xb4820d0e,
+ 0xc450c000,
+ 0xc0080c82,
+ 0xb4811a40,
+ 0xb101c000,
+ 0xc0024220,
+ 0xc05038c0,
+ 0xb4210c82,
+ 0xc0c0c000,
+ 0x09920d82,
+ 0x0d02c008,
+ 0x0902c008,
+ 0x9aacfff4,
+ 0x0c86c450,
+ 0xb4810a02,
+ 0xb105c000,
+ 0xc0084220,
+ 0xc0300a00,
+ 0xb4820d0e,
+ 0x0c84c000,
+ 0x1a00c008,
+ 0xc000b481,
+ 0x4220b101,
+ 0x5a35c080,
+ 0x0902c801,
+ 0xc00e0940,
+ 0xd0a828fc,
+ 0xd0715910,
+ 0xc03029ce,
+ 0x9dc80c8a,
+ 0xc000b441,
+ 0x0c840a42,
+ 0xc000b481,
+ 0xc0007680,
+ 0xb7209182,
+ 0xb740610c,
+ 0xf21044bd,
+ 0xf3108a27,
+ 0xb5808021,
+ 0xc45044ad,
+ 0x0a020c86,
+ 0xc000b481,
+ 0x4220b105,
+ 0xb4810cec,
+ 0xb105c000,
+ 0x12d64220,
+ 0xc03408ea,
+ 0xb4210c9e,
+ 0xb780c000,
+ 0xf248570c,
+ 0xd053a891,
+ 0xf2101950,
+ 0x0d8288a3,
+ 0xc2800d06,
+ 0xb5805a0c,
+ 0x018b508c,
+ 0x9bbbffb4,
+ 0x0ca2c080,
+ 0xc000b4a1,
+ 0x478cb780,
+ 0xb4810c88,
+ 0xb7a0c000,
+ 0xc0025994,
+ 0xfff40d82,
+ 0x700a9a27,
+ 0x9364ffff,
+ 0x708cb781,
+ 0xa8adf210,
+ 0xa8a2f250,
+ 0x9e496243,
+ 0xc0007102,
+ 0x850690b8,
+ 0x4418b547,
+ 0x460cb780,
+ 0x0a827500,
+ 0x9204c001,
+ 0x448cb780,
+ 0xc0007502,
+ 0xb786933c,
+ 0x75007e08,
+ 0x9282c000,
+ 0x458cb780,
+ 0xb5802a79,
+ 0xffb4458c,
+ 0xb7879b79,
+ 0x75004608,
+ 0x90c2c000,
+ 0x9850ffd4,
+ 0x4608b5a7,
+ 0x9815ffd4,
+ 0x7e08b786,
+ 0xc0007500,
+ 0xc01493e2,
+ 0xb7809998,
+ 0xd2085f8c,
+ 0x7440a889,
+ 0x92c2c000,
+ 0x0a82c080,
+ 0x9240c000,
+ 0xffb40d82,
+ 0xb7869be1,
+ 0x75007f08,
+ 0x90e2c000,
+ 0xffb40d82,
+ 0xc0009b8d,
+ 0x0d8290a0,
+ 0x98c2ffd4,
+ 0x0ca6c080,
+ 0xc000b4a1,
+ 0x0d92c002,
+ 0x99cafff4,
+ 0xffff700a,
+ 0x0dea9364,
+ 0x0d0a0982,
+ 0x0902c121,
+ 0x98f2ffb4,
+ 0x570cb780,
+ 0xa992f248,
+ 0x0d02c0a1,
+ 0x09c20d04,
+ 0x98ddffb4,
+ 0x0d82c0c0,
+ 0x0d420992,
+ 0xfff40942,
+ 0x0a0299cd,
+ 0x0ceac03e,
+ 0xc000b481,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xb720a61d,
+ 0xb720570c,
+ 0xd09149b5,
+ 0x75002e10,
+ 0xc0049e8e,
+ 0xd0119182,
+ 0x85022e14,
+ 0xb5468706,
+ 0x75007e00,
+ 0x709cb541,
+ 0x4418b547,
+ 0x9082c000,
+ 0x7e80b546,
+ 0x2e10d111,
+ 0xc0007500,
+ 0xb5469082,
+ 0xd2117f00,
+ 0x75002e10,
+ 0x9082c000,
+ 0x7f80b546,
+ 0x7f08b786,
+ 0xb7e07500,
+ 0xc002620c,
+ 0xb7869282,
+ 0x75007e88,
+ 0x91e2c002,
+ 0x7f88b786,
+ 0xc0027500,
+ 0xc8099144,
+ 0xc75c0a42,
+ 0xc8090a60,
+ 0xc7e208c2,
+ 0xc80908e0,
+ 0xc8700cc2,
+ 0xc8090cb0,
+ 0xc8240942,
+ 0xc8090940,
+ 0xc72e0d42,
+ 0xc8090d10,
+ 0xc60009c2,
+ 0xc80909c0,
+ 0xc6c60dc2,
+ 0xc8090dc0,
+ 0xc5ea0c42,
+ 0xc8090c50,
+ 0xc5bc0842,
+ 0xc8090850,
+ 0xc5d60ac2,
+ 0xc8090ad0,
+ 0xc5ce0ec2,
+ 0xc8090e80,
+ 0xc73e0b42,
+ 0xf2080b00,
+ 0xf208a269,
+ 0xf208a0f1,
+ 0xf208a0f6,
+ 0xf208a179,
+ 0xf208a16e,
+ 0xf248a1fd,
+ 0xf248a1e2,
+ 0xf248a066,
+ 0xf208a069,
+ 0xf208a2e5,
+ 0xf248a2e2,
+ 0xb7a0a36d,
+ 0xf208588c,
+ 0x9eabaa6d,
+ 0x9c629ea4,
+ 0x5a0cb720,
+ 0xaa21d208,
+ 0x41abb580,
+ 0x41b3b720,
+ 0xb5408502,
+ 0xb520439a,
+ 0xb7c05014,
+ 0xf2d0598c,
+ 0xf208aa49,
+ 0x7048a8d9,
+ 0x9142c000,
+ 0x620cb780,
+ 0xa88df248,
+ 0x0de0d152,
+ 0x9c629e8c,
+ 0x7e08b786,
+ 0xc0047500,
+ 0xb7209062,
+ 0x76404614,
+ 0x93c4c003,
+ 0x438ab720,
+ 0xc0007440,
+ 0xda0890e2,
+ 0x7048aa55,
+ 0x9004c001,
+ 0x5f94b7a0,
+ 0x7e88b786,
+ 0x620cb7a0,
+ 0xa9d6da08,
+ 0x4392b520,
+ 0x7500850a,
+ 0xa0aad210,
+ 0xa8a9f208,
+ 0x8d24e001,
+ 0x1d849d4f,
+ 0x9c629e8c,
+ 0xaa31f208,
+ 0x0d8a038b,
+ 0x9c629ea4,
+ 0x9180c000,
+ 0x620cb780,
+ 0xa891f208,
+ 0x5f94b7a0,
+ 0x03890d86,
+ 0x9c629e8c,
+ 0x438ab780,
+ 0x7f08b726,
+ 0x5a14b720,
+ 0xb5800a04,
+ 0xd210438a,
+ 0x7440aa29,
+ 0x4849b580,
+ 0x9024c001,
+ 0x5b0cb7a0,
+ 0xa8e1f208,
+ 0x9e8c9eab,
+ 0xd2109c62,
+ 0x7500aa29,
+ 0x92a4c000,
+ 0xa9a1f208,
+ 0xa87df208,
+ 0x9e840d82,
+ 0xf2089c62,
+ 0xf248a021,
+ 0x9eaba865,
+ 0x9e840982,
+ 0xda089c62,
+ 0xb583aa21,
+ 0xb780628a,
+ 0x7502448c,
+ 0x90bcc000,
+ 0xffb40d86,
+ 0xd2109a41,
+ 0x7500aa29,
+ 0x9122c000,
+ 0x558cb720,
+ 0x412db780,
+ 0xc0003a08,
+ 0xb72090e0,
+ 0xb780558c,
+ 0x2a75412d,
+ 0x412db580,
+ 0x7e08b726,
+ 0x510cb780,
+ 0x3a047440,
+ 0x510cb580,
+ 0x91c4c000,
+ 0x0e60d151,
+ 0x5a0cb740,
+ 0xa882d208,
+ 0xa881d208,
+ 0x5014b520,
+ 0xa0cdd808,
+ 0x7e6eb79f,
+ 0x7eeeb7bf,
+ 0x7f6eb7df,
+ 0x7feeb7ff,
+ 0x8c00c002,
+ 0xa60d9c22,
+ 0x7f08b786,
+ 0xb7a07500,
+ 0x0b026214,
+ 0x9262c000,
+ 0x5b0cb7a0,
+ 0xa83df210,
+ 0xa9a1f208,
+ 0x9e840d8a,
+ 0xf2089c62,
+ 0xf250a021,
+ 0x9eaba825,
+ 0x9e840986,
+ 0xb7869c62,
+ 0x75007f08,
+ 0x5094b7c0,
+ 0x9164c000,
+ 0x5b14b760,
+ 0xa825f210,
+ 0x9c629e84,
+ 0xc0000301,
+ 0xb7869160,
+ 0x75007e88,
+ 0x90c2c000,
+ 0x5c0cb780,
+ 0xab01f208,
+ 0x5f8cb720,
+ 0x4129b780,
+ 0x02837500,
+ 0x9224c000,
+ 0x7f08b786,
+ 0xc0007500,
+ 0xf25090c4,
+ 0x9ea4aa21,
+ 0xf2109c62,
+ 0x9eb1aa35,
+ 0x9ea415e2,
+ 0xf2109c62,
+ 0x9eb3aa39,
+ 0x9ea4018b,
+ 0xb7209c62,
+ 0xb780570c,
+ 0xc40049ad,
+ 0x75002a00,
+ 0x9102c000,
+ 0xd2088502,
+ 0x8506a12b,
+ 0xa123d208,
+ 0x510cb780,
+ 0x2a3dcffe,
+ 0x510cb580,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x4b0cb720,
+ 0xc0ff9e5c,
+ 0xc0ff2a40,
+ 0x710228c0,
+ 0xc0008502,
+ 0x85069062,
+ 0x4b9cb540,
+ 0x4b14b560,
+ 0xa6059c22,
+ 0xd0519e5d,
+ 0x75002a50,
+ 0x90e4c000,
+ 0x4b8cb780,
+ 0xc0007500,
+ 0xc0c09142,
+ 0xc0120d82,
+ 0x0d0209c2,
+ 0xffd40942,
+ 0xb7809be3,
+ 0xc0344b0c,
+ 0xb4810cb6,
+ 0xc034c000,
+ 0xb4a20d32,
+ 0xb5a0c000,
+ 0xb79f4a8c,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa61d9c22,
+ 0xb7868420,
+ 0x75007e08,
+ 0x9122c000,
+ 0x5a0cb780,
+ 0xa881d288,
+ 0xc0187440,
+ 0xb7409124,
+ 0xb7a0468c,
+ 0x0dc25694,
+ 0xc002098e,
+ 0x048b0d42,
+ 0x9adcff94,
+ 0xaa35f210,
+ 0x560cb7c0,
+ 0xa8a5f210,
+ 0xa8aaf210,
+ 0x570cb7a0,
+ 0x478cb580,
+ 0xa0d5f208,
+ 0xaa39da10,
+ 0xa8bdda10,
+ 0xa0def208,
+ 0x08d0d252,
+ 0xa259f208,
+ 0xa0c1f248,
+ 0xa922da10,
+ 0x0a50d131,
+ 0xa881da08,
+ 0x404bb740,
+ 0xa927f250,
+ 0xda909e53,
+ 0x60b2a8b2,
+ 0x5a7fc080,
+ 0x5a71c200,
+ 0x58930098,
+ 0xe2105894,
+ 0xdffc80a3,
+ 0x59157e7e,
+ 0x5b90c100,
+ 0xf248018b,
+ 0xc000a0dd,
+ 0xe10091e2,
+ 0xc0005d40,
+ 0xda909164,
+ 0x8502aa35,
+ 0x4792b520,
+ 0x489ab540,
+ 0x468ab580,
+ 0xaa21f288,
+ 0x0950d132,
+ 0xa255f248,
+ 0xa259f248,
+ 0xa8a1da10,
+ 0xaa41d810,
+ 0xa93bf248,
+ 0xa8bada48,
+ 0xf3106218,
+ 0xda488021,
+ 0xf248a93d,
+ 0xf288a0ca,
+ 0xda48a249,
+ 0xf248aa29,
+ 0xf208a151,
+ 0xda48a923,
+ 0x6218a8ae,
+ 0x5a10c200,
+ 0x8021f310,
+ 0xa241f208,
+ 0xa927f208,
+ 0xf20a9e4c,
+ 0x6098a928,
+ 0xf210588c,
+ 0xe2108023,
+ 0xf20882a3,
+ 0xda48a249,
+ 0xf208a8aa,
+ 0xda10a0cd,
+ 0xd810aa21,
+ 0xf208a8c1,
+ 0xf248a0c6,
+ 0x0a04a937,
+ 0xb7406243,
+ 0xf310610c,
+ 0xf2888021,
+ 0xda10a245,
+ 0xf008a8a1,
+ 0xda10a953,
+ 0xf00aa8a2,
+ 0x58a0a954,
+ 0x80a3e210,
+ 0xe0205c9c,
+ 0xda4882a3,
+ 0xf208aa2d,
+ 0xf208a0ad,
+ 0xf248a0b2,
+ 0xf248a0c5,
+ 0xf208a0ce,
+ 0xd810a251,
+ 0xc004a941,
+ 0xb5201880,
+ 0xd1314f0c,
+ 0xda080a54,
+ 0xc002a881,
+ 0xb5201c80,
+ 0x59404f94,
+ 0xf2885951,
+ 0x58c0a155,
+ 0xf28858d1,
+ 0xc42ea0d9,
+ 0x0a020cf2,
+ 0xc000b481,
+ 0x4220b101,
+ 0x74402884,
+ 0x0b50d132,
+ 0x9102c000,
+ 0xaa41da10,
+ 0x753ec09c,
+ 0x9152c011,
+ 0x08c6c0c0,
+ 0x0ce2c050,
+ 0xc000b421,
+ 0xa939f210,
+ 0x0a30d131,
+ 0xa881da08,
+ 0x28a0d052,
+ 0x58917640,
+ 0x4e8cb520,
+ 0x9222c000,
+ 0xc0600a02,
+ 0xb4810cae,
+ 0xda10c000,
+ 0x7440a8a1,
+ 0x9302c000,
+ 0xb5408502,
+ 0xc0004e9c,
+ 0xc2009260,
+ 0x74802900,
+ 0x9122c000,
+ 0xc0600a0a,
+ 0xb4810cae,
+ 0xc000c000,
+ 0x0a0690e0,
+ 0x0caec060,
+ 0xc000b481,
+ 0xaa39f210,
+ 0x75002a04,
+ 0xb540850a,
+ 0xc000491c,
+ 0x850490a2,
+ 0x491cb540,
+ 0x7e08b786,
+ 0xb7e07500,
+ 0xc0006214,
+ 0xb78692e2,
+ 0x75007f08,
+ 0x9244c000,
+ 0x460cb780,
+ 0xc0007500,
+ 0xb78691a2,
+ 0x75007f88,
+ 0x9104c000,
+ 0x5b14b760,
+ 0xaa61f210,
+ 0x9c629ea4,
+ 0xaa39f210,
+ 0x75002a20,
+ 0x90e2c000,
+ 0xaa21da10,
+ 0xc0007500,
+ 0xb7809244,
+ 0xb7205a0c,
+ 0xda08530c,
+ 0x9e8ca98e,
+ 0xb7869c62,
+ 0x75007e08,
+ 0x90a2c000,
+ 0xb5478506,
+ 0xf2104918,
+ 0xd011a8b9,
+ 0x75002a14,
+ 0x90e2c001,
+ 0x2a12d011,
+ 0x85167500,
+ 0x0a7ecffe,
+ 0x0cfac038,
+ 0x8d28e001,
+ 0x4d1cb540,
+ 0xc000b481,
+ 0xa8c1da10,
+ 0x6514b720,
+ 0x0a6ac284,
+ 0x856ac684,
+ 0x7462c058,
+ 0x5214b520,
+ 0x0c82c038,
+ 0x4c28b324,
+ 0xc000b481,
+ 0xc0020882,
+ 0xb4210c80,
+ 0xffd4c000,
+ 0xb7809b34,
+ 0xc03e490c,
+ 0xb4810c82,
+ 0xb720c000,
+ 0xc0504d0c,
+ 0xb4210c82,
+ 0xda10c000,
+ 0xf288a921,
+ 0xda10a8d5,
+ 0x6123a926,
+ 0xda109e53,
+ 0x6097aa21,
+ 0x6094b720,
+ 0xb5438702,
+ 0x857f6382,
+ 0x459ab540,
+ 0xb540851a,
+ 0x0d86449a,
+ 0xb5801a04,
+ 0xb5404d8c,
+ 0x8526405b,
+ 0x415bb540,
+ 0x460ab540,
+ 0x18a05891,
+ 0x40cbb520,
+ 0x7fe4b55f,
+ 0x9baac014,
+ 0x7fe4b75f,
+ 0xb5478506,
+ 0xb5474818,
+ 0xb5474880,
+ 0xb5474e00,
+ 0xb5474e80,
+ 0xda104980,
+ 0xf288a8a6,
+ 0x9e49aa55,
+ 0x5694b720,
+ 0x4a00b547,
+ 0xb7206243,
+ 0x8502434d,
+ 0xc10158c8,
+ 0x9e892880,
+ 0xa9c2da10,
+ 0xb5400a82,
+ 0xb5404e1c,
+ 0x5dc0519c,
+ 0x2dc0c0ff,
+ 0x3db0ca01,
+ 0x5a11c200,
+ 0x450ab580,
+ 0xfff43596,
+ 0xc0c099d3,
+ 0xc0120d82,
+ 0x0d0209c2,
+ 0xffd40942,
+ 0x714e99d1,
+ 0xc0018546,
+ 0x9dcf9148,
+ 0x99d5fff4,
+ 0x0d82c0c0,
+ 0x09c2c012,
+ 0x09060d02,
+ 0x99c2ffd4,
+ 0x1a70d091,
+ 0x0a027148,
+ 0x0a42d00b,
+ 0xa9c2da10,
+ 0x5a28c200,
+ 0x5dc09ea1,
+ 0x2dc0c0ff,
+ 0x3db0c801,
+ 0xfff43596,
+ 0xd05199a9,
+ 0xc2000a50,
+ 0xc2005a40,
+ 0x714e5ac1,
+ 0xfffe8506,
+ 0xf2509346,
+ 0x7500aa71,
+ 0x857fcfce,
+ 0x731cb541,
+ 0x9102c000,
+ 0xa9bef210,
+ 0x450ab760,
+ 0x9c629ea4,
+ 0xc0140d82,
+ 0xb78798e4,
+ 0x75004888,
+ 0xb5478502,
+ 0xc0024818,
+ 0xb7a092a4,
+ 0x0b025b0c,
+ 0xb786068f,
+ 0x75007e08,
+ 0x9082c002,
+ 0x7f08b786,
+ 0xc0017500,
+ 0xb78793e2,
+ 0x75004908,
+ 0x9182c000,
+ 0xa9a2f208,
+ 0x4908b5c7,
+ 0xa869f250,
+ 0x9c629e84,
+ 0x430ab500,
+ 0x4a08b787,
+ 0xc0007500,
+ 0xf2109382,
+ 0x9eaba825,
+ 0x4a08b5c7,
+ 0x9c629e84,
+ 0xaa21f250,
+ 0x9c629ea4,
+ 0xa9a1f208,
+ 0xa83df210,
+ 0x9e840d86,
+ 0xf2509c62,
+ 0x9eabaa25,
+ 0xa021f208,
+ 0x9ea40986,
+ 0xb7879c62,
+ 0x75004a08,
+ 0x91e4c000,
+ 0xc0140d86,
+ 0xb7879898,
+ 0x75004a08,
+ 0x9342ffff,
+ 0x90a0c000,
+ 0xc0140d86,
+ 0xb787988e,
+ 0x75004888,
+ 0x9262fffd,
+ 0x0d82c0c0,
+ 0x09c2c012,
+ 0x09060d02,
+ 0x9930ffd4,
+ 0x0a02c801,
+ 0x518cb580,
+ 0x0d82c0c0,
+ 0x09c2c012,
+ 0x09420d02,
+ 0x9924ffd4,
+ 0x5194b760,
+ 0x991afff4,
+ 0xfff40d86,
+ 0xc0c09928,
+ 0xc0120d82,
+ 0x0d0209c2,
+ 0xffd40906,
+ 0x85029915,
+ 0x0892c006,
+ 0x0c9ac430,
+ 0xb5400902,
+ 0xc006519c,
+ 0xb4418510,
+ 0xb104c000,
+ 0x2a404220,
+ 0x9d4f7500,
+ 0x4422b313,
+ 0xe0000087,
+ 0xffff1884,
+ 0xb7409284,
+ 0xc0064614,
+ 0xc4300892,
+ 0x09020c9a,
+ 0x8512c006,
+ 0xc000b441,
+ 0x4220b104,
+ 0x2a00c002,
+ 0x9d537500,
+ 0x4422b314,
+ 0xe0000089,
+ 0xffff1884,
+ 0x0a029264,
+ 0x0ceac03e,
+ 0x40e8b960,
+ 0xc000b481,
+ 0x93c1ffff,
+ 0xc0007680,
+ 0x0a029122,
+ 0x0ceac03e,
+ 0xc000b481,
+ 0x9180c000,
+ 0x448cb780,
+ 0x088a7504,
+ 0x0ceac03e,
+ 0x1894d00c,
+ 0xc000b421,
+ 0x0d82c0c0,
+ 0x0d0209e2,
+ 0xffd40942,
+ 0x0a0298c1,
+ 0x0cb6c034,
+ 0xc000b481,
+ 0x7deeb79f,
+ 0x7e6eb7bf,
+ 0x7eeeb7df,
+ 0x7f6eb7ff,
+ 0x8c20c002,
+ 0xa60d9c22,
+ 0x7efec01c,
+ 0xc0000a82,
+ 0xc0c09182,
+ 0xc0120d82,
+ 0x0d0209c2,
+ 0xffd40906,
+ 0xc00098a3,
+ 0xc4349240,
+ 0x0a020cb2,
+ 0xc000b481,
+ 0x4220b101,
+ 0x74402884,
+ 0x90e2c000,
+ 0x4808b787,
+ 0xc0097500,
+ 0xb78091a2,
+ 0x75024e0c,
+ 0x90c4c000,
+ 0xc0140d82,
+ 0x3ac09a29,
+ 0x5694b740,
+ 0x560cb740,
+ 0xa8c5d810,
+ 0xaa55f088,
+ 0x4592b720,
+ 0x9e496243,
+ 0x5a11c200,
+ 0xba090a04,
+ 0xba244002,
+ 0x70484002,
+ 0x06850305,
+ 0x9138c000,
+ 0x490cb780,
+ 0xb5802a51,
+ 0xc003490c,
+ 0xf21091c0,
+ 0x2a04aa39,
+ 0xc0027500,
+ 0xb78093a2,
+ 0x7440490c,
+ 0x3942d011,
+ 0x490cb540,
+ 0x929cc002,
+ 0x4792b760,
+ 0xba249e5c,
+ 0xc002400a,
+ 0xc00291a2,
+ 0xb760911c,
+ 0xb740650a,
+ 0x9e996184,
+ 0xba099e2d,
+ 0xd0a24003,
+ 0x9e485e7f,
+ 0x5a6dc200,
+ 0xc2000208,
+ 0xd2265a17,
+ 0x0c065908,
+ 0x5a14c200,
+ 0x9e401208,
+ 0xa94ee038,
+ 0x4002ba24,
+ 0x9e545090,
+ 0xc0017902,
+ 0xb7819102,
+ 0x75004b88,
+ 0x9064c001,
+ 0x470ab780,
+ 0xba249e48,
+ 0x70084002,
+ 0x9378c000,
+ 0xc0007640,
+ 0xb78190e4,
+ 0x75024b08,
+ 0x92c2c000,
+ 0x1e32d011,
+ 0x478ab580,
+ 0x48fd9e54,
+ 0x470ab560,
+ 0x4b90b501,
+ 0xb5402959,
+ 0x20c2490c,
+ 0xc000a0c1,
+ 0x850290a0,
+ 0x4b98b541,
+ 0x458ab780,
+ 0x400aba24,
+ 0x90fcc000,
+ 0x650ab780,
+ 0xb5800a04,
+ 0xb720650a,
+ 0xc03e490c,
+ 0xb4210c82,
+ 0xb780c000,
+ 0x0a04458a,
+ 0x458ab580,
+ 0x9a96c014,
+ 0x7e08b786,
+ 0xc0027500,
+ 0xb7869222,
+ 0x75007f08,
+ 0x9182c002,
+ 0x518cb780,
+ 0x75002a40,
+ 0x90e4c000,
+ 0x4e08b787,
+ 0xc002751a,
+ 0xb7809024,
+ 0xb723580c,
+ 0xda086392,
+ 0x9e48a881,
+ 0xc0007002,
+ 0xb7809284,
+ 0x8502430a,
+ 0x639ab543,
+ 0x440ab580,
+ 0x4412b760,
+ 0x530cb780,
+ 0xb5478506,
+ 0xb5474918,
+ 0x9ea44a18,
+ 0xf2109c62,
+ 0x2a10aa39,
+ 0xc0007500,
+ 0xb78793e2,
+ 0x75004a08,
+ 0x90e4c000,
+ 0x638ab783,
+ 0xc0007502,
+ 0xb78792a4,
+ 0x75004908,
+ 0xd0010902,
+ 0xc4380922,
+ 0x0a020c82,
+ 0xc000b481,
+ 0x4220b101,
+ 0x309428f1,
+ 0x0c82c038,
+ 0xc000b421,
+ 0x983ec014,
+ 0x4e0cb780,
+ 0xa955f288,
+ 0x71040a04,
+ 0x4e0cb580,
+ 0x90a4c000,
+ 0xb5408502,
+ 0xda104e1c,
+ 0xb720a8a5,
+ 0x58914592,
+ 0xba0960a3,
+ 0x9e4c4003,
+ 0x08843a84,
+ 0x020b7102,
+ 0x2a3dcffe,
+ 0x4426b354,
+ 0xd0510289,
+ 0x744028d0,
+ 0x9142c000,
+ 0x0d82c0c0,
+ 0x09c2c012,
+ 0x09420d02,
+ 0x9b6effb4,
+ 0x518cb780,
+ 0xc0007500,
+ 0x9eab90a2,
+ 0x9b71ffd4,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0xa205f839,
+ 0x4e08b727,
+ 0x5204b740,
+ 0x448ab780,
+ 0x5908d0a6,
+ 0xb7409e2d,
+ 0xe030570c,
+ 0xb760a94e,
+ 0xb747659c,
+ 0xb7474e98,
+ 0x1a044e00,
+ 0x448ab580,
+ 0xa8cdc030,
+ 0x5a40e200,
+ 0x0a20d251,
+ 0xa882da08,
+ 0x82a3e210,
+ 0x5194b540,
+ 0x5c905c95,
+ 0x4e08b527,
+ 0x92c4c001,
+ 0x4e88b787,
+ 0xd3f10a04,
+ 0x744428ce,
+ 0x4e88b587,
+ 0x9034c001,
+ 0x7314b761,
+ 0xb5478506,
+ 0x24a64898,
+ 0xb5477640,
+ 0xb5204a18,
+ 0xc0005194,
+ 0xd1319202,
+ 0xb78008a0,
+ 0xc801402b,
+ 0x9e483c80,
+ 0x5a40c200,
+ 0x2a40c0ff,
+ 0xb5803208,
+ 0x0806518c,
+ 0xaa1df9f8,
+ 0xb7279c22,
+ 0xb7404e88,
+ 0xd0a66084,
+ 0x9e2d5904,
+ 0xaa4dc830,
+ 0x448ab580,
+ 0x09a0d132,
+ 0x458ab720,
+ 0xaa61d810,
+ 0x4002ba19,
+ 0x5a11c200,
+ 0x70c81a04,
+ 0x9104c000,
+ 0x730cb781,
+ 0x3a00c040,
+ 0x730cb581,
+ 0x4e8cb720,
+ 0x0a18d011,
+ 0xc00070c8,
+ 0xb7819104,
+ 0xc010730c,
+ 0xb5813a00,
+ 0xd011730c,
+ 0x70c80a1c,
+ 0x9104c000,
+ 0x730cb781,
+ 0x3a00c020,
+ 0x730cb581,
+ 0x560cb780,
+ 0xa916f288,
+ 0xa919f288,
+ 0xb7209e50,
+ 0xd011460a,
+ 0x62411a24,
+ 0x4002ba09,
+ 0x704800b2,
+ 0x9106c000,
+ 0x730cb781,
+ 0x2a7acfff,
+ 0x730cb581,
+ 0x1a22d011,
+ 0x62459e52,
+ 0xc0007048,
+ 0xb7819106,
+ 0xc7fe730c,
+ 0xb5812a7e,
+ 0xb740730c,
+ 0xd0a2451a,
+ 0xf3105e11,
+ 0x70c88821,
+ 0x9104c000,
+ 0x730cb781,
+ 0x2a4ecfff,
+ 0x730cb581,
+ 0x568cb740,
+ 0x730cb721,
+ 0xaa45d808,
+ 0x9e8a9e50,
+ 0x5a11c200,
+ 0x62091a04,
+ 0x5194b720,
+ 0xba240a04,
+ 0x70c84002,
+ 0xb5202494,
+ 0xc0005194,
+ 0xc8019118,
+ 0xb5203c80,
+ 0xc0005194,
+ 0xd81091c0,
+ 0xc801aa61,
+ 0x9e483c80,
+ 0x5a40c200,
+ 0x2a40c0ff,
+ 0xb5803208,
+ 0xf008518c,
+ 0xc040aa59,
+ 0x75002a00,
+ 0x9102c000,
+ 0x518cb780,
+ 0x3a00c101,
+ 0x518cb580,
+ 0x5194b760,
+ 0x9a60ffd4,
+ 0xf9f80802,
+ 0x9c22aa1d,
+ 0x5714b700,
+ 0x0e04d251,
+ 0x560cb760,
+ 0xa881da08,
+ 0x2dfcc00e,
+ 0x0cbac034,
+ 0xa961f008,
+ 0xc0805895,
+ 0x9e825810,
+ 0xc000b441,
+ 0x454ab780,
+ 0xa963f008,
+ 0x5a10c200,
+ 0x8021f310,
+ 0xa8e9f008,
+ 0xf0080c84,
+ 0xb421a261,
+ 0xb780c000,
+ 0xf00846ca,
+ 0xf310a96b,
+ 0xf0088021,
+ 0x0c84a8ed,
+ 0xa269f008,
+ 0xc000b421,
+ 0x46cab780,
+ 0xa96ff008,
+ 0x8021f310,
+ 0xa8f5f008,
+ 0xf0080c8c,
+ 0xb421a26d,
+ 0xf008c000,
+ 0x0c84a97d,
+ 0xc000b441,
+ 0x4d8cb780,
+ 0xd2240a08,
+ 0x72445890,
+ 0x931cc000,
+ 0x0e04d131,
+ 0xa903da08,
+ 0xe2109e4c,
+ 0x710288a1,
+ 0x91d6c000,
+ 0xaa75f008,
+ 0xa8fdf008,
+ 0x0a00c010,
+ 0xa275f008,
+ 0x0880c008,
+ 0xa0fdf008,
+ 0x4f0cb780,
+ 0x0cdac034,
+ 0xc000b481,
+ 0x4f8cb720,
+ 0xb4210c84,
+ 0xb780c000,
+ 0x0ce44f0c,
+ 0xb4810a40,
+ 0xb720c000,
+ 0x0c844f8c,
+ 0xb42108c0,
+ 0xb780c000,
+ 0xb7204f0c,
+ 0x1ce44f8c,
+ 0x0a00c010,
+ 0x4f0cb580,
+ 0xaa65f048,
+ 0x0880c008,
+ 0x4f8cb520,
+ 0xc000b481,
+ 0xa8edf048,
+ 0xb4210c84,
+ 0xf048c000,
+ 0xf048aa65,
+ 0x0c84a8ed,
+ 0x0a00c010,
+ 0xa265f048,
+ 0xaa75f048,
+ 0x0880c008,
+ 0xa0edf048,
+ 0xc000b481,
+ 0xa965f088,
+ 0xb4410c88,
+ 0xd131c000,
+ 0xb7800c80,
+ 0xf088402b,
+ 0xcffea967,
+ 0xf3102a40,
+ 0xf0888021,
+ 0x0c88a969,
+ 0xa265f088,
+ 0xc000b441,
+ 0x0c80d131,
+ 0x402bb780,
+ 0xa96bf088,
+ 0x2a40cffe,
+ 0x8021f310,
+ 0xa97df048,
+ 0xf0881c8c,
+ 0xb441a269,
+ 0xd131c000,
+ 0xb7800c80,
+ 0xf048402b,
+ 0x76c0a97f,
+ 0x5a11c200,
+ 0x5a14c200,
+ 0x8021f310,
+ 0xa27df048,
+ 0x9182c001,
+ 0x454ab720,
+ 0xb4211ca8,
+ 0xb780c000,
+ 0x0c8446ca,
+ 0x5a0dc200,
+ 0x58c0c200,
+ 0xb4813242,
+ 0xd131c000,
+ 0xd8080d04,
+ 0x0c8caa41,
+ 0x588cc200,
+ 0x28fccffe,
+ 0x5a50c200,
+ 0xb4213098,
+ 0xd251c000,
+ 0xd8080d04,
+ 0x0ca0aa41,
+ 0x5a11c200,
+ 0x2a3c1a10,
+ 0x3a00c004,
+ 0xc000b481,
+ 0x4d8cb780,
+ 0xb5800a04,
+ 0x9c224d8c,
+ 0xc43ea68d,
+ 0x0a020c92,
+ 0xc000b481,
+ 0x4220b103,
+ 0x5e0cb780,
+ 0xa885da08,
+ 0xa909da08,
+ 0xa189da08,
+ 0xa081da08,
+ 0xa105da08,
+ 0x0a020cd0,
+ 0xc000b481,
+ 0x4220b103,
+ 0x5d8cb720,
+ 0x518cb780,
+ 0x5e0cb7a0,
+ 0x40b3b720,
+ 0x412bb740,
+ 0x412bb560,
+ 0x75002a40,
+ 0xb5200303,
+ 0xb5404033,
+ 0xc00040ab,
+ 0xb78790e2,
+ 0x750a4e08,
+ 0x90f2c000,
+ 0x4e08b787,
+ 0xc00d751a,
+ 0xb7839204,
+ 0x0a04638a,
+ 0x638ab583,
+ 0x0ca6c450,
+ 0xb4810a02,
+ 0xb103c000,
+ 0x00874220,
+ 0x2880c031,
+ 0xc00f0207,
+ 0xd0a42a7c,
+ 0xd22859e1,
+ 0x000759c1,
+ 0x287ccffe,
+ 0x0a020c88,
+ 0xc000b481,
+ 0x4220b103,
+ 0x5bc1c180,
+ 0xcffe9e9a,
+ 0x0cbc2d7c,
+ 0xc000b481,
+ 0x4220b103,
+ 0xb7400087,
+ 0xb783568c,
+ 0xc0fc628a,
+ 0xd0f22880,
+ 0xd0a4283e,
+ 0x9e415b19,
+ 0xa8d2d888,
+ 0xb5039e95,
+ 0xdffc6292,
+ 0x12187e7e,
+ 0x4002ba1c,
+ 0x91c2c002,
+ 0xc00076c2,
+ 0xb7809384,
+ 0xb740480a,
+ 0xba246184,
+ 0xc2004002,
+ 0x58ed58ff,
+ 0x589700c2,
+ 0x5908d0a6,
+ 0x58949e2d,
+ 0x9e591242,
+ 0xa8cee038,
+ 0x4a7d5230,
+ 0x249e9ea7,
+ 0xc001a0c2,
+ 0xb7809180,
+ 0xda08468a,
+ 0xba24a8a1,
+ 0x70484002,
+ 0x907cc001,
+ 0x488ab780,
+ 0x4812b720,
+ 0x6184b740,
+ 0xb5800a04,
+ 0xba09488a,
+ 0xd0a24003,
+ 0x9e495e7f,
+ 0xc2009e2d,
+ 0x02185a6d,
+ 0x5a17c200,
+ 0x5908d226,
+ 0x5a14c200,
+ 0xe0389ea7,
+ 0x149ea94d,
+ 0x08869e4c,
+ 0x312250b0,
+ 0xb780a141,
+ 0x0a04480a,
+ 0x480ab580,
+ 0x7e88b786,
+ 0xb7867500,
+ 0xc0007f08,
+ 0xc01c90c4,
+ 0xc0027d3e,
+ 0xc01c9184,
+ 0xd0117d3e,
+ 0xd02103f0,
+ 0x76c20527,
+ 0xaa39f210,
+ 0xd0010882,
+ 0x2a040892,
+ 0xb7407902,
+ 0xc0005b0c,
+ 0xd80890e2,
+ 0x0a04aa49,
+ 0xa249d808,
+ 0xa94bf008,
+ 0xa94cf00a,
+ 0x8027f310,
+ 0x82a5e010,
+ 0xa249f008,
+ 0xa0cdf008,
+ 0x4488b787,
+ 0x08827500,
+ 0x0892d002,
+ 0x0a0276c2,
+ 0x0a42d002,
+ 0xc0007848,
+ 0xc07c90c2,
+ 0xda088542,
+ 0x76c2a123,
+ 0xa953f008,
+ 0x90c4c000,
+ 0xaa41da08,
+ 0x9080c000,
+ 0xaa21da08,
+ 0x80a1e310,
+ 0xaa4dd808,
+ 0xa0d1f008,
+ 0xd8080a04,
+ 0xc006a24d,
+ 0xb72091c0,
+ 0x9d2e5b0c,
+ 0xaa39f210,
+ 0x8136c301,
+ 0x8120c201,
+ 0x4525b740,
+ 0x75002a04,
+ 0x8027f010,
+ 0x8221f310,
+ 0xb5800103,
+ 0xc001452d,
+ 0x76c290a2,
+ 0x90c4c000,
+ 0xaa41da08,
+ 0x9080c000,
+ 0xaa21da08,
+ 0xa25dd808,
+ 0xc00176c6,
+ 0x76c09082,
+ 0x91a4c000,
+ 0xd80874c0,
+ 0xe002a953,
+ 0xf2108d2a,
+ 0xd808802d,
+ 0xc000a251,
+ 0x74c092c0,
+ 0xa947d848,
+ 0x8d26e002,
+ 0x9160c000,
+ 0xaa41da08,
+ 0xd84874c0,
+ 0xd808a947,
+ 0xe002a25d,
+ 0xf2108d2a,
+ 0xd848802d,
+ 0xb787a245,
+ 0x75004008,
+ 0x9302c000,
+ 0x440ab780,
+ 0x70489e41,
+ 0x9244c000,
+ 0xb5478502,
+ 0xc43a4018,
+ 0x0a020c82,
+ 0xc000b481,
+ 0x4220b103,
+ 0x29fecfef,
+ 0x0c82c03a,
+ 0xc000b461,
+ 0x440ab780,
+ 0x70489e41,
+ 0xd0020882,
+ 0x76c60892,
+ 0xd0010a02,
+ 0x78480a42,
+ 0x9242c000,
+ 0xb5478506,
+ 0xc43a4018,
+ 0x0a020c82,
+ 0xc000b481,
+ 0x4220b103,
+ 0x3980c011,
+ 0x0c82c03a,
+ 0xc000b461,
+ 0xc0017780,
+ 0x76c091a2,
+ 0x92e4c000,
+ 0xaa21da08,
+ 0xa947f008,
+ 0xa8d5d808,
+ 0x8021f310,
+ 0xa8dad808,
+ 0xa245f008,
+ 0x0c849e44,
+ 0xa0dad808,
+ 0xd80800c2,
+ 0xc000a0d5,
+ 0xda0892a0,
+ 0xf008aa41,
+ 0xd848a95b,
+ 0xf310a8c9,
+ 0xd8488021,
+ 0xf008a8ce,
+ 0x9e44a259,
+ 0xd8480c84,
+ 0x00c2a0ce,
+ 0xa0c9d848,
+ 0xaa5dd808,
+ 0xa95ff008,
+ 0xa940f04a,
+ 0xa9c7f048,
+ 0x8021f310,
+ 0xa94ff048,
+ 0xa25df008,
+ 0x8221f210,
+ 0xa8c2d848,
+ 0xa241f048,
+ 0x8037f010,
+ 0x80a9e210,
+ 0xd8480c84,
+ 0xf048a0c2,
+ 0xf048a245,
+ 0xb7bfa0cd,
+ 0xb7df7eee,
+ 0xb7ff7f6e,
+ 0x8c607fee,
+ 0xc0369c22,
+ 0x9e5c0cfe,
+ 0xc000b481,
+ 0xb7209c22,
+ 0xb7805a14,
+ 0x7504404d,
+ 0xc0009d3a,
+ 0xb72091c4,
+ 0xb780598c,
+ 0xb5804cab,
+ 0xc20041cb,
+ 0xc2005a40,
+ 0xc0015941,
+ 0xb7209100,
+ 0xb7805b8c,
+ 0xe310402d,
+ 0x74278821,
+ 0x90b6c000,
+ 0xc000084f,
+ 0x741a90e0,
+ 0xb3028532,
+ 0x9d434478,
+ 0x403db740,
+ 0x628ab723,
+ 0x8121e210,
+ 0x1a14d071,
+ 0xc0007088,
+ 0xd0719138,
+ 0x70880a12,
+ 0x598cb720,
+ 0x90bcc000,
+ 0x598cb720,
+ 0xb7809d4b,
+ 0xb70040a9,
+ 0xc8124129,
+ 0xc0107104,
+ 0x9c227080,
+ 0x5a14b720,
+ 0xb7808502,
+ 0x87025b8c,
+ 0x41cbb720,
+ 0xa16bf010,
+ 0xa16ff010,
+ 0xa173f010,
+ 0xa16fd810,
+ 0xa16bd810,
+ 0xa0e1f010,
+ 0x4480b547,
+ 0xa10bf208,
+ 0xa10ff208,
+ 0x41cbb720,
+ 0xa113f208,
+ 0xa10fda08,
+ 0xa10bda08,
+ 0xa081f208,
+ 0x9e5b9c22,
+ 0x5b94b720,
+ 0xaa61f008,
+ 0xa968f00a,
+ 0xa96ef008,
+ 0x41dbb740,
+ 0x404db580,
+ 0xaa6dd808,
+ 0x8021f310,
+ 0x415bb740,
+ 0x41cbb580,
+ 0xaa69d808,
+ 0x8021f310,
+ 0x414bb580,
+ 0xa8e9f008,
+ 0x414db520,
+ 0xaa6df008,
+ 0x5c14b760,
+ 0x5a0cb720,
+ 0x41cdb580,
+ 0xa963f010,
+ 0x8325e020,
+ 0x402db740,
+ 0xa8f1f008,
+ 0x802df210,
+ 0xf0107482,
+ 0xb520a261,
+ 0xc000424d,
+ 0xf0089184,
+ 0xf050aa71,
+ 0xc200a967,
+ 0xf3105a0f,
+ 0xf0508021,
+ 0x8502a265,
+ 0xa16fd808,
+ 0xa16bd808,
+ 0x9e508502,
+ 0xa16bf008,
+ 0xa16ff008,
+ 0xa173f008,
+ 0xb7209c22,
+ 0x9e5a5994,
+ 0xaa41f008,
+ 0x4149b720,
+ 0x7048c410,
+ 0xa0c1f008,
+ 0x40c9b780,
+ 0x7102d012,
+ 0xf00874c0,
+ 0xc000a241,
+ 0xb72091c4,
+ 0xd8085a0c,
+ 0xb720aa41,
+ 0xb5805b94,
+ 0xf00841ab,
+ 0xb580aa41,
+ 0x0802404d,
+ 0xa6059c22,
+ 0x0c30f011,
+ 0x5c14b7a0,
+ 0x598cb7a0,
+ 0x9124c000,
+ 0xa9aada50,
+ 0xa9b1da08,
+ 0xc0540d02,
+ 0xb7209ad7,
+ 0xd2085a0c,
+ 0xd208a8aa,
+ 0xb740a926,
+ 0x9e49412b,
+ 0xaa35da08,
+ 0x7040c010,
+ 0x1a089e81,
+ 0x7282c812,
+ 0xc0007088,
+ 0xb78090c4,
+ 0xda08590c,
+ 0xda50a102,
+ 0x9e50a927,
+ 0x802df210,
+ 0xa225da50,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0x8440a61d,
+ 0x77c20787,
+ 0xb5bf0287,
+ 0xc0007e6c,
+ 0xb72091a4,
+ 0xb7805c0c,
+ 0xb7c0412b,
+ 0x0a045a14,
+ 0x412bb580,
+ 0x9320c000,
+ 0x7f88b726,
+ 0xc0007440,
+ 0xb78091c2,
+ 0xf2485a0c,
+ 0xb720a891,
+ 0x9ea65914,
+ 0xb520588f,
+ 0xc000484d,
+ 0xb7809100,
+ 0xb7c0590c,
+ 0xf2885a14,
+ 0xb720a081,
+ 0x77c4598c,
+ 0x41a9b740,
+ 0x41abb780,
+ 0xd0010982,
+ 0xf21009b2,
+ 0x7104a8c2,
+ 0xd0030b96,
+ 0x76441bf4,
+ 0xc0000303,
+ 0x74c09384,
+ 0x91c4c000,
+ 0x5c0cb720,
+ 0xaa45dac8,
+ 0x453bb740,
+ 0x8021f310,
+ 0x452bb580,
+ 0x9120c000,
+ 0xfff40d82,
+ 0xda509b7c,
+ 0xdac8a059,
+ 0xdac8a045,
+ 0xc015aac5,
+ 0x764291c0,
+ 0x9164c015,
+ 0xb78074ac,
+ 0x0d8e5b8c,
+ 0x0db4d009,
+ 0xda089e58,
+ 0xd033a88d,
+ 0x9ea06104,
+ 0x09027075,
+ 0x9158c000,
+ 0xaa4dda08,
+ 0x8021f310,
+ 0xd00b7048,
+ 0x9e4a1c92,
+ 0xaa49f210,
+ 0x9e927502,
+ 0x9284c001,
+ 0xaa49da10,
+ 0xc0017500,
+ 0x74c091e4,
+ 0x9024c001,
+ 0xaac5dac8,
+ 0xaa49d208,
+ 0xa8c5d208,
+ 0x710ad410,
+ 0x704ad412,
+ 0xb7607680,
+ 0xc0005c1c,
+ 0xb78091c2,
+ 0xd818414a,
+ 0xd058a8e1,
+ 0xd818a1f1,
+ 0xd818a271,
+ 0xd818a26d,
+ 0xd858a0f5,
+ 0xc012aa69,
+ 0xb7209100,
+ 0xb7805c0c,
+ 0x024a44ab,
+ 0x44abb580,
+ 0xa2d9da50,
+ 0x9360c012,
+ 0xaa4dd290,
+ 0xc0017500,
+ 0x74c09162,
+ 0x9084c001,
+ 0xb7607480,
+ 0xc0005c1c,
+ 0xd20891e2,
+ 0xf058aa4d,
+ 0xc00aa8e5,
+ 0x70486a02,
+ 0x90dcc000,
+ 0xaa61d818,
+ 0xa275d818,
+ 0xa8c1d208,
+ 0xaa51da50,
+ 0xc0007102,
+ 0xda509088,
+ 0xd290a0d1,
+ 0x7500aa45,
+ 0xaad1da50,
+ 0x91e0c010,
+ 0xa9d2da50,
+ 0x9220c005,
+ 0xb7607480,
+ 0xc0035c1c,
+ 0xd2089342,
+ 0xb720aa4d,
+ 0x6a0e414a,
+ 0x85027048,
+ 0x915cc000,
+ 0xaa6dd818,
+ 0x6a0c5884,
+ 0xc0007048,
+ 0x8506907c,
+ 0xa177d058,
+ 0xa8ced208,
+ 0xa8e5f058,
+ 0x6e11d291,
+ 0x70489e4a,
+ 0x1e32d011,
+ 0x414ab720,
+ 0x0d026245,
+ 0x0d22d00d,
+ 0xc0017048,
+ 0xd818903c,
+ 0xd0a4aa71,
+ 0x9e485884,
+ 0x70086a0c,
+ 0x08829e52,
+ 0x0892d00d,
+ 0xc0007844,
+ 0xa8e19262,
+ 0xaa75d818,
+ 0x6a0c5884,
+ 0xc0007048,
+ 0x8506917c,
+ 0xa173d058,
+ 0xa15bd290,
+ 0xaa61d818,
+ 0x93a0c000,
+ 0xa8f1d818,
+ 0xd0588502,
+ 0xb780a173,
+ 0xd013414a,
+ 0xf3106916,
+ 0x76808021,
+ 0x5a0bc200,
+ 0xa271d818,
+ 0x91a2c000,
+ 0xa8f5d818,
+ 0xd013aa61,
+ 0xf3106916,
+ 0xc2008021,
+ 0xd8185a0b,
+ 0xd058a275,
+ 0x7500aa71,
+ 0x91e2c000,
+ 0xaa55da08,
+ 0xa8c9da10,
+ 0xc2006a14,
+ 0x70485a0f,
+ 0x90bcc000,
+ 0xd0588506,
+ 0xb780a17b,
+ 0xd818414a,
+ 0xd058a26d,
+ 0x7740aaf2,
+ 0x92a2c001,
+ 0xc00174c0,
+ 0xd2089164,
+ 0xda52aa41,
+ 0xe001a958,
+ 0xb3431244,
+ 0x0207442c,
+ 0xd058751e,
+ 0x853ea8f9,
+ 0x4478b342,
+ 0xf2107440,
+ 0xc00082ad,
+ 0xda1091c2,
+ 0xda08a8ca,
+ 0x9e48aa55,
+ 0x70081a0c,
+ 0x08d4d011,
+ 0x443cb351,
+ 0xd2900283,
+ 0xd208a8c6,
+ 0x7640a8c9,
+ 0xa945d208,
+ 0x9260c00a,
+ 0xfff40d82,
+ 0xda509a42,
+ 0xc00ba059,
+ 0xd2909300,
+ 0x7500aa59,
+ 0x91c2c001,
+ 0xc00074c0,
+ 0xda509244,
+ 0xd208aa59,
+ 0xd290aac1,
+ 0xd208a8c6,
+ 0x0a04a8c9,
+ 0x7148d412,
+ 0xd2087640,
+ 0xc009a945,
+ 0x0d829280,
+ 0x9a23fff4,
+ 0xaa5dd290,
+ 0xda507500,
+ 0xd290a059,
+ 0xc00aa2da,
+ 0xda509282,
+ 0xda90a957,
+ 0xe210aa41,
+ 0x0a0480a1,
+ 0xa241da90,
+ 0xa0d5da50,
+ 0x90e0c00a,
+ 0xaa69d818,
+ 0xc0017500,
+ 0xb7809144,
+ 0xf0185f0c,
+ 0xda08a97b,
+ 0xe210a881,
+ 0xf01888a3,
+ 0xf250a0f9,
+ 0x7500aa51,
+ 0xaad9da50,
+ 0x921ac000,
+ 0xaa79d058,
+ 0x590cb720,
+ 0x85060a88,
+ 0xb5407500,
+ 0xd0114f39,
+ 0xb3540a52,
+ 0x02894424,
+ 0xa8c6d290,
+ 0xa8c9d208,
+ 0xd2087640,
+ 0xc007a945,
+ 0x74c091c0,
+ 0x93c4c007,
+ 0x4144b740,
+ 0x41ccb780,
+ 0xa953f250,
+ 0x8221f310,
+ 0x5914b720,
+ 0x8821f310,
+ 0xa251f250,
+ 0x484db720,
+ 0x06837102,
+ 0x9296c001,
+ 0xa8e9d818,
+ 0x5f04b740,
+ 0x5984d0a8,
+ 0xa97bf018,
+ 0xaa61c820,
+ 0x8821f310,
+ 0xa279f018,
+ 0xa8b9d2d0,
+ 0xa8fad058,
+ 0x0a887442,
+ 0x0a54d011,
+ 0x4424b354,
+ 0x02897640,
+ 0x90e2c000,
+ 0xaa59da50,
+ 0xd4120a04,
+ 0xda50710a,
+ 0xd208a95b,
+ 0xd290a8c9,
+ 0xf310a8c6,
+ 0xd4108027,
+ 0xd410704a,
+ 0x7640710a,
+ 0xa945d208,
+ 0x90a0c005,
+ 0xaa69d818,
+ 0x5f04b740,
+ 0x5984d228,
+ 0xa8e2c820,
+ 0xa8e1d898,
+ 0x60959e4a,
+ 0x5a7fc080,
+ 0x5a61c200,
+ 0x58a30098,
+ 0xa0a1f250,
+ 0xaa61d898,
+ 0xf0187440,
+ 0x0882a979,
+ 0x0892d00e,
+ 0xd2246245,
+ 0x76c059a3,
+ 0xd00e0a02,
+ 0xe0000a42,
+ 0xc0003098,
+ 0xf25090a2,
+ 0x9e93a0a2,
+ 0xa97bf018,
+ 0xf21076c0,
+ 0xf018882b,
+ 0xc000a279,
+ 0xf25090fc,
+ 0x7440a8a1,
+ 0x911ac000,
+ 0xaa51f208,
+ 0x5804c200,
+ 0x9220c000,
+ 0xaa51f250,
+ 0x6142d033,
+ 0x5d879e5b,
+ 0x81afe220,
+ 0xb57f0d02,
+ 0xc0547f7c,
+ 0xb77f9831,
+ 0xd8187f7c,
+ 0xb740aa69,
+ 0xf2505e84,
+ 0xf250a921,
+ 0xd228a8c9,
+ 0xc8205984,
+ 0xf208a8e2,
+ 0xd033aa51,
+ 0x9d9a6122,
+ 0x5a07c200,
+ 0x1004c001,
+ 0x7008c012,
+ 0x5987d024,
+ 0x81afe220,
+ 0xb57f0d02,
+ 0x01817f7c,
+ 0x980ec054,
+ 0x598fd024,
+ 0x9834c054,
+ 0xa949d290,
+ 0x7e64b75f,
+ 0xa95bda50,
+ 0x7f7cb77f,
+ 0x5f94b740,
+ 0x8225f210,
+ 0x80a7e310,
+ 0x8b25e210,
+ 0xa8f6d058,
+ 0x7008d410,
+ 0x7142d410,
+ 0x8827f310,
+ 0xa8cdd010,
+ 0x710ad412,
+ 0x708ad412,
+ 0xa945d208,
+ 0xd0117642,
+ 0xd2900a52,
+ 0xb354a8c6,
+ 0x74404424,
+ 0xa8c9d208,
+ 0xd0110289,
+ 0xb3541a52,
+ 0x76404422,
+ 0xd0110289,
+ 0xb3540a54,
+ 0x02894422,
+ 0x704ad410,
+ 0x708ad412,
+ 0xd8587640,
+ 0xd002aa69,
+ 0x024a0a46,
+ 0xa269d858,
+ 0x9360c000,
+ 0xfff40d82,
+ 0xd29098de,
+ 0x7500aa5d,
+ 0xa059da50,
+ 0x91a2c000,
+ 0xa957da50,
+ 0xaa41da90,
+ 0x80a1e210,
+ 0xda900a04,
+ 0xda50a241,
+ 0xda50a0d5,
+ 0xda10aa59,
+ 0x77c0a24d,
+ 0x90c4c000,
+ 0x5c0cb780,
+ 0xa38ada48,
+ 0xb79f000b,
+ 0xb7bf7d6e,
+ 0xb7df7dee,
+ 0xb7ff7e6e,
+ 0xc0027eee,
+ 0x9c228c40,
+ 0x8460a61d,
+ 0x5a0cb720,
+ 0x402db780,
+ 0x09020f82,
+ 0x7decb55f,
+ 0xb55f7502,
+ 0x03037e6c,
+ 0x9164c00b,
+ 0x5b8cb7a0,
+ 0x5994b7a0,
+ 0xa9b2f208,
+ 0xa9adda10,
+ 0xc0340d02,
+ 0xb7809b7f,
+ 0xb7205c0c,
+ 0xd2885914,
+ 0xf208a8cd,
+ 0x070ba91f,
+ 0x444db500,
+ 0xe2109ea5,
+ 0x74408021,
+ 0xf208038b,
+ 0xc000a01d,
+ 0xda0893c4,
+ 0x7502aa49,
+ 0x9334c000,
+ 0xa8aada10,
+ 0x5e84b740,
+ 0x5d04d0a6,
+ 0xa8e9f208,
+ 0xc8389e2e,
+ 0xd0a6aa41,
+ 0xc2015904,
+ 0xf3108122,
+ 0xc2008021,
+ 0xd8005a0b,
+ 0xc000a241,
+ 0xda1091a0,
+ 0xb740aa29,
+ 0xda085e84,
+ 0xd226a8f1,
+ 0x9e2d5904,
+ 0xa0cdc830,
+ 0xaa49da08,
+ 0xa8d1da10,
+ 0xa9a8da12,
+ 0x62431a04,
+ 0x0942d013,
+ 0x80a7e010,
+ 0x7e7cb77f,
+ 0x7d6cb53f,
+ 0xa8eef208,
+ 0x8506744a,
+ 0x4c78b332,
+ 0xb55f7640,
+ 0xc0007e7c,
+ 0xf2089124,
+ 0x0a04aa4d,
+ 0xa24df208,
+ 0x9060c004,
+ 0x5b0cb780,
+ 0x6284b740,
+ 0xa881f208,
+ 0xd0a69e2d,
+ 0xb7205904,
+ 0xc830590c,
+ 0x9e4aaa4d,
+ 0x4435b760,
+ 0x6128d033,
+ 0xa8cdf208,
+ 0x5d8fd1a2,
+ 0xe2205d93,
+ 0xf21081af,
+ 0x0d028ab3,
+ 0x9b04c034,
+ 0xaa4dda10,
+ 0x6a00c028,
+ 0xc0007008,
+ 0xf24892d6,
+ 0xd012aa45,
+ 0x624b09d2,
+ 0xd0309e5b,
+ 0x5d870108,
+ 0x81afe220,
+ 0xf2480d02,
+ 0xc034a1c6,
+ 0xf2489aed,
+ 0xc000a045,
+ 0xf20890e0,
+ 0x0a04aa4d,
+ 0xa24df208,
+ 0xa951da10,
+ 0xaa29da10,
+ 0x58c0d124,
+ 0x08c2d011,
+ 0x5e49d0a2,
+ 0xc0007048,
+ 0xf2489216,
+ 0xf24aaa4d,
+ 0xd226a944,
+ 0xf3105904,
+ 0xf3108021,
+ 0xc2008221,
+ 0xc0015a0b,
+ 0xd0a29100,
+ 0x70485e45,
+ 0x9196c000,
+ 0xa947f248,
+ 0xaa4df248,
+ 0x8021f310,
+ 0x5a07c200,
+ 0x9320c000,
+ 0x6a26d011,
+ 0x5a0bc200,
+ 0xc0007048,
+ 0xf2489216,
+ 0xf248a8c5,
+ 0xd0a6aa4d,
+ 0xc2015904,
+ 0xf3108122,
+ 0xc2008021,
+ 0xc0005a0b,
+ 0xf2489080,
+ 0xf248aa45,
+ 0xda08a249,
+ 0x7500aa49,
+ 0x5f04b740,
+ 0x9202c003,
+ 0xaa6df208,
+ 0xc0037500,
+ 0xb7409162,
+ 0xf0505914,
+ 0x7500aa41,
+ 0x9082c003,
+ 0x5d0cb760,
+ 0x5c94b740,
+ 0x4038b960,
+ 0x0938d071,
+ 0x0ca8d072,
+ 0x7fcdb79f,
+ 0xa8ddf1c8,
+ 0xa23df1f1,
+ 0xa0ddf1e9,
+ 0x9301ffff,
+ 0x591cb760,
+ 0xa8a9da10,
+ 0xaa61f058,
+ 0x5904d0a6,
+ 0xf0109e2d,
+ 0xb73fa241,
+ 0xc8307e6c,
+ 0x7440aa4d,
+ 0xa261f008,
+ 0x9382c001,
+ 0xaa29da10,
+ 0x2a0c0a04,
+ 0xc0017506,
+ 0xb75f92a4,
+ 0x0a267d6c,
+ 0x7088d010,
+ 0xc0007502,
+ 0xd01192bc,
+ 0xd0120d28,
+ 0xd01008b8,
+ 0xf03119c4,
+ 0xf029aa25,
+ 0x9ea2a8c5,
+ 0x7decb79f,
+ 0x024207f4,
+ 0x7decb59f,
+ 0x92a1ffff,
+ 0xc00077c0,
+ 0xc0109104,
+ 0xda908502,
+ 0xc000a123,
+ 0xb73f9220,
+ 0xd3a27df4,
+ 0x0d025d91,
+ 0x7f64b55f,
+ 0x5d90c080,
+ 0x9a30c034,
+ 0xa021da90,
+ 0x7f64b75f,
+ 0x590cb740,
+ 0xaa29da10,
+ 0xa8c1d888,
+ 0xd2269e2d,
+ 0xc8305904,
+ 0xb79fa0cd,
+ 0xb7bf7cee,
+ 0xb7df7d6e,
+ 0xb7ff7dee,
+ 0xc0027e6e,
+ 0x9c228c60,
+ 0xb740a605,
+ 0x9e5d6284,
+ 0x5904d2a6,
+ 0xc8309e2d,
+ 0x65a7a9ce,
+ 0xc0340d02,
+ 0x9e839a09,
+ 0x9a30c034,
+ 0x0804000a,
+ 0xb79f5805,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa6059c22,
+ 0xac7dc030,
+ 0x598cb7a0,
+ 0xc0389d59,
+ 0xc030a45d,
+ 0xc038ac7d,
+ 0xc030a45d,
+ 0xc038ac7d,
+ 0xb720a45d,
+ 0xb7805f8c,
+ 0x85025a0c,
+ 0x4039b540,
+ 0x40b9b540,
+ 0xd288850a,
+ 0xc010a10b,
+ 0xf2488502,
+ 0xf208a10b,
+ 0x0d02a8bd,
+ 0x5a90d0a4,
+ 0xa9aef208,
+ 0xf248098a,
+ 0xf248a107,
+ 0xc034a10f,
+ 0xf20899cf,
+ 0x9e81a9ad,
+ 0x05d20d02,
+ 0x99c8c034,
+ 0x590cb780,
+ 0xa019f208,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xb7a0a60d,
+ 0x9e5d5994,
+ 0x6014b7c0,
+ 0xa92ff208,
+ 0xa92ef210,
+ 0xa8d1da10,
+ 0x882df210,
+ 0xa944f212,
+ 0x4002ba09,
+ 0xf3106243,
+ 0xf2108221,
+ 0xd208a245,
+ 0xb7c0a8a1,
+ 0xd2105a0c,
+ 0xdac8a0a1,
+ 0xda48aa25,
+ 0xdad0a9d2,
+ 0xf208a225,
+ 0xfff4a9ad,
+ 0xda489b83,
+ 0xda48a9da,
+ 0xf208a051,
+ 0xf210a9ad,
+ 0xfff4a92e,
+ 0xda089b79,
+ 0xb720aa49,
+ 0xda485c0c,
+ 0x6008a059,
+ 0x44abb500,
+ 0xaa21f248,
+ 0xa255f248,
+ 0xa8a1f248,
+ 0xa0c1f210,
+ 0xaa2df208,
+ 0xa22df210,
+ 0xa8b1f208,
+ 0xa0b1f210,
+ 0xaa3df208,
+ 0xa23df210,
+ 0xa8a1f248,
+ 0xa0a1f250,
+ 0xaa25f248,
+ 0xa225f250,
+ 0xa8bdf208,
+ 0xa0bdf210,
+ 0xaa25d208,
+ 0xa225d210,
+ 0xa8a9d208,
+ 0xa0a9d210,
+ 0xaa35da08,
+ 0xa235da10,
+ 0xa8b9f208,
+ 0x0a50d0b1,
+ 0xa0b9f210,
+ 0xa882d208,
+ 0x0cd0d0b1,
+ 0x4031b520,
+ 0xaa39f248,
+ 0xa239f250,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x8420a60d,
+ 0x5114b720,
+ 0x600cb760,
+ 0x598cb7a0,
+ 0xd0118582,
+ 0xf00a0e32,
+ 0xf008a964,
+ 0xf208a26d,
+ 0xf008a8ad,
+ 0xf248a1ea,
+ 0xc080aa25,
+ 0x76402c80,
+ 0x5a14b720,
+ 0x5914b760,
+ 0x82a3e210,
+ 0x8221f310,
+ 0xb7409e4e,
+ 0x010346dd,
+ 0x597fd0a4,
+ 0xa8a1f248,
+ 0xd2240009,
+ 0xb780587f,
+ 0xe210414d,
+ 0x068788a3,
+ 0xb5800a04,
+ 0xf010414d,
+ 0xf808a0f5,
+ 0xf808a171,
+ 0xc000a069,
+ 0xf2089162,
+ 0xf310aa3d,
+ 0x00898221,
+ 0x58ffd224,
+ 0xa0e9f808,
+ 0xaa2df208,
+ 0xa9eef008,
+ 0xa8c9f208,
+ 0x65339ea1,
+ 0xa935f210,
+ 0x9e517442,
+ 0xf0081214,
+ 0xf248a265,
+ 0xd041aa21,
+ 0xc0004500,
+ 0x76fc92e2,
+ 0x4492b322,
+ 0x9252c000,
+ 0xc0007480,
+ 0xd12890d6,
+ 0xc0005907,
+ 0xf24890e0,
+ 0x6229aa39,
+ 0x5933d228,
+ 0xa957f248,
+ 0x8825f010,
+ 0xa261f008,
+ 0x5c0cb780,
+ 0xa899d248,
+ 0x14a4c001,
+ 0xa0e6f008,
+ 0x9ea17442,
+ 0x91a4c000,
+ 0xaa35f210,
+ 0xc0027500,
+ 0x9e5290dc,
+ 0x5a07c200,
+ 0xc0011228,
+ 0xf21093c0,
+ 0x9e51aa35,
+ 0x5a0cc200,
+ 0xc0007048,
+ 0x850690b6,
+ 0xa13bd2d0,
+ 0xa8b5f210,
+ 0xc0809e52,
+ 0x70885a0c,
+ 0x9156c000,
+ 0x5a08c080,
+ 0xc0007088,
+ 0x858690b8,
+ 0x9220c000,
+ 0xa8b5f210,
+ 0xc0809e52,
+ 0x70885a08,
+ 0xc000858e,
+ 0xc0809116,
+ 0x70885a04,
+ 0xe00c8d84,
+ 0xf25085b2,
+ 0x7440a8a5,
+ 0x923cc000,
+ 0x5904d0a6,
+ 0xa964f00a,
+ 0x8023f210,
+ 0x5a0fc200,
+ 0xf3101098,
+ 0xf2508a21,
+ 0xf008a0a5,
+ 0xf208a265,
+ 0x7502aa49,
+ 0x9204c000,
+ 0xaa21d208,
+ 0x5b14b720,
+ 0xa225dac8,
+ 0xa8a5dac8,
+ 0xa239da50,
+ 0x404db520,
+ 0x9320c008,
+ 0xaa5dd288,
+ 0xc0007500,
+ 0xb7809184,
+ 0x75004749,
+ 0x9142c000,
+ 0xaa41da88,
+ 0xc0007504,
+ 0x850690b4,
+ 0x9060c000,
+ 0xd2888502,
+ 0xd288a153,
+ 0x7500aa5d,
+ 0x9002c001,
+ 0xaa41da88,
+ 0x5a40c200,
+ 0x7502c001,
+ 0x9314c000,
+ 0xa957da48,
+ 0x5a45c200,
+ 0x8021f310,
+ 0xa9c1da88,
+ 0xa221dac8,
+ 0xa9a2dac8,
+ 0xb57f0d02,
+ 0xc0347f7c,
+ 0xb77f9835,
+ 0x18047f7c,
+ 0x9320c000,
+ 0xaa49da08,
+ 0x44dbb740,
+ 0x5a40c200,
+ 0x5a45c200,
+ 0x8021f310,
+ 0xa9c9da08,
+ 0xa221dac8,
+ 0xa9a2dac8,
+ 0xb57f0d02,
+ 0xc0347f7c,
+ 0xb77f981b,
+ 0xdac87f7c,
+ 0xf208a021,
+ 0x7504aa49,
+ 0x9094c001,
+ 0xa8a2dac8,
+ 0xa8b9da50,
+ 0x0e14d011,
+ 0xc0007048,
+ 0xda10913a,
+ 0xd011a921,
+ 0x70881a14,
+ 0x90d6c000,
+ 0x1e12d011,
+ 0x91c0c000,
+ 0x1e14d011,
+ 0xc0007048,
+ 0xd01190f8,
+ 0x70880a14,
+ 0x90dcc000,
+ 0x0e12d011,
+ 0xa221dac8,
+ 0xaa21dac8,
+ 0xc0007526,
+ 0xda1092b4,
+ 0x0089a8a2,
+ 0x1e14d011,
+ 0xd00e7048,
+ 0xc0000a12,
+ 0xd011913c,
+ 0x70480e14,
+ 0x90dcc000,
+ 0x1a12d011,
+ 0xa221dac8,
+ 0xa8ddda48,
+ 0xaa21da10,
+ 0x4002ba09,
+ 0x70481a28,
+ 0x9176c000,
+ 0xaa5dda48,
+ 0xa8a1dac8,
+ 0xc4100a1c,
+ 0xdac87048,
+ 0xd208a0a1,
+ 0x752caa2d,
+ 0x9152c001,
+ 0xa8a2da10,
+ 0xaa5dda48,
+ 0x1c90d031,
+ 0x4002ba24,
+ 0xc0007102,
+ 0xdac891b6,
+ 0xd011a8a1,
+ 0x70481e16,
+ 0x90dcc000,
+ 0x1a16d011,
+ 0xa221dac8,
+ 0xaa39da50,
+ 0xa8a1dac8,
+ 0xd0121a0c,
+ 0xdac87102,
+ 0xda50a221,
+ 0xdac8a8b9,
+ 0x088caa21,
+ 0x7102d010,
+ 0xa221dac8,
+ 0xa8b5f210,
+ 0xaa21f248,
+ 0xc0007048,
+ 0xda48923c,
+ 0xdac8a8d9,
+ 0x7048aa21,
+ 0xa958da4a,
+ 0xa923dac8,
+ 0x8026f013,
+ 0x822ff214,
+ 0xa221dac8,
+ 0xa9bef208,
+ 0xa9a9f250,
+ 0xc0140d02,
+ 0xc00e9b7b,
+ 0x7404287c,
+ 0x90f2c000,
+ 0xaa21dac8,
+ 0xc0000a08,
+ 0x74069100,
+ 0x90f2c000,
+ 0xaa21dac8,
+ 0xdac80a04,
+ 0xd208a221,
+ 0xdac8aa29,
+ 0x1a08a8a1,
+ 0x7048c410,
+ 0xaa25d208,
+ 0xa0a1dac8,
+ 0xa8a1dac8,
+ 0xd0120a08,
+ 0xdac87102,
+ 0xdac8a221,
+ 0xda48a225,
+ 0xda50a259,
+ 0xd288a239,
+ 0x7502aa5d,
+ 0x9244c000,
+ 0xaa25dac8,
+ 0x5b14b720,
+ 0xa239da50,
+ 0xa8a5dac8,
+ 0xa221dac8,
+ 0xa259da48,
+ 0xa24dda08,
+ 0x404db520,
+ 0xf2508502,
+ 0xf250a12f,
+ 0xf250a133,
+ 0xf250a137,
+ 0xd2d0a13f,
+ 0xb79fa13b,
+ 0xb7bf7e6e,
+ 0xb7df7eee,
+ 0xc0027f6e,
+ 0x9c228c00,
+ 0xb740a61d,
+ 0x9e5a5a14,
+ 0x9e557482,
+ 0xa141f010,
+ 0x9264c006,
+ 0x6014b720,
+ 0x5c0cb720,
+ 0x40cdb780,
+ 0xb5408502,
+ 0x750044bd,
+ 0x06830383,
+ 0x90d6c000,
+ 0x590cb780,
+ 0xa119d2c8,
+ 0xa8c9f010,
+ 0xf0507442,
+ 0xf010ab52,
+ 0xc000a14f,
+ 0xd81090e4,
+ 0x7500aa49,
+ 0x90a4c000,
+ 0xc0037442,
+ 0xb7c09114,
+ 0xd0b1598c,
+ 0xd2080a60,
+ 0xf210a882,
+ 0xf210a9a9,
+ 0x9e4ca8a5,
+ 0x5985d1a4,
+ 0x5133d026,
+ 0x81afe220,
+ 0xf2480503,
+ 0xc014a1b2,
+ 0xb7809ae5,
+ 0x9d0d510c,
+ 0x2a00c080,
+ 0xf2487500,
+ 0xc000a1b3,
+ 0xf2489362,
+ 0xf210a937,
+ 0xf310aa21,
+ 0xf20a8821,
+ 0x6a0ea94c,
+ 0x5a0bc200,
+ 0x8a21f310,
+ 0xd0120882,
+ 0xf3107102,
+ 0x0a048031,
+ 0x5a07c200,
+ 0xa231f248,
+ 0x91e0c001,
+ 0xaa2df210,
+ 0xc001753c,
+ 0xb7879154,
+ 0xf20a4408,
+ 0x7502a94c,
+ 0xa130f24a,
+ 0x9122c000,
+ 0xa8b5f248,
+ 0xaa21f210,
+ 0xc0007048,
+ 0xf21091dc,
+ 0xf248a923,
+ 0xf310aa35,
+ 0xc2008821,
+ 0xf3105a13,
+ 0xf2488221,
+ 0xf248a231,
+ 0xd322a8b1,
+ 0x71025e10,
+ 0x90fcc000,
+ 0xaa39da48,
+ 0xda481a04,
+ 0xb780a239,
+ 0xc080510c,
+ 0x75002a00,
+ 0x9202c001,
+ 0x598cb780,
+ 0xa88df208,
+ 0xa8b6f248,
+ 0x5904d0a6,
+ 0xe2109e4c,
+ 0x588b80a3,
+ 0xc0007102,
+ 0xf248915c,
+ 0xd226aa31,
+ 0xf310590c,
+ 0xc0018821,
+ 0xb78090c0,
+ 0xf248590c,
+ 0xf248a88e,
+ 0x9e4ca89d,
+ 0xc0017102,
+ 0xda0892dc,
+ 0x7508aa29,
+ 0x9234c001,
+ 0xaa31f248,
+ 0x590cd226,
+ 0x8021f310,
+ 0x91e0c000,
+ 0xaa3dd288,
+ 0xc0017500,
+ 0xf2109082,
+ 0x753caa2d,
+ 0x93f2c000,
+ 0xaa31f248,
+ 0xc2006a2e,
+ 0xf2485a0f,
+ 0xc000a231,
+ 0x748492c0,
+ 0x5c0cb7e0,
+ 0x9224c000,
+ 0xda488502,
+ 0xd810a167,
+ 0xd850a14b,
+ 0xd890a157,
+ 0xd090a143,
+ 0xd248a15f,
+ 0xd090a17b,
+ 0x8702a15b,
+ 0xda488502,
+ 0xda08a16b,
+ 0xd248a16b,
+ 0xd248a173,
+ 0xf20aa177,
+ 0xb79fa160,
+ 0xb7bf7e6e,
+ 0xb7df7eee,
+ 0xb7ff7f6e,
+ 0xc0027fee,
+ 0x9c228c00,
+ 0x9d3da68d,
+ 0xaa69d018,
+ 0xb7e07502,
+ 0xc0005c0c,
+ 0xc00890c4,
+ 0xf2088502,
+ 0xb720a163,
+ 0xb7c0600c,
+ 0xb7275a14,
+ 0xf2084410,
+ 0xb740a961,
+ 0xf25040a5,
+ 0x9d9da957,
+ 0xf2109e76,
+ 0xb7e08a25,
+ 0x76425994,
+ 0x8124c201,
+ 0x40adb580,
+ 0xa157f250,
+ 0x9104c000,
+ 0xaa6df210,
+ 0x8821f310,
+ 0xa255f248,
+ 0xa963f208,
+ 0xaa6df210,
+ 0x8821f310,
+ 0xaaf1f800,
+ 0xd2240089,
+ 0xf80058ff,
+ 0xe000a869,
+ 0x16d212d2,
+ 0x1ed2d003,
+ 0x1002e000,
+ 0xd0031402,
+ 0xd0221c02,
+ 0xc0005e0c,
+ 0xd02058f5,
+ 0xc0003198,
+ 0xe000598c,
+ 0x15b011b0,
+ 0x1db2d003,
+ 0x5cf4d1a2,
+ 0x5a0dc180,
+ 0x00853118,
+ 0x58ffd124,
+ 0xa2f1f800,
+ 0xa069f800,
+ 0xa0edf800,
+ 0xaa69d018,
+ 0x85027500,
+ 0x90e4c000,
+ 0x4488b787,
+ 0xc0007500,
+ 0x85069062,
+ 0xd2908702,
+ 0xa164a147,
+ 0x4408b787,
+ 0xc0007502,
+ 0xf2109344,
+ 0xb780a8ed,
+ 0xd0a6510c,
+ 0xe2105904,
+ 0xc08080a3,
+ 0x75002a00,
+ 0x5907d0a6,
+ 0xaa55f248,
+ 0x4c82b322,
+ 0x71359e29,
+ 0x90b6c000,
+ 0x8821f310,
+ 0xaa65a265,
+ 0xc0007500,
+ 0x85069162,
+ 0xa16fd018,
+ 0xc2000a7c,
+ 0xa2655a15,
+ 0x9080c000,
+ 0xa26dd018,
+ 0xaa55f248,
+ 0xc0007500,
+ 0xf000917a,
+ 0x8702a967,
+ 0x8021f310,
+ 0xa154f24a,
+ 0xa265f000,
+ 0xaa41f208,
+ 0xc0007504,
+ 0xb7209144,
+ 0xf208590c,
+ 0xb580aa61,
+ 0xc003452d,
+ 0xd0189240,
+ 0x7440a8e9,
+ 0x9104c001,
+ 0x510cb780,
+ 0xa97ff208,
+ 0x2a00c080,
+ 0xf2087500,
+ 0xf208a0fd,
+ 0xc000a17b,
+ 0xb7809362,
+ 0xf248590c,
+ 0xf24aa895,
+ 0xf248a910,
+ 0xf248a88e,
+ 0xe210a099,
+ 0xf24882a3,
+ 0xc201a10f,
+ 0xe210812a,
+ 0xf24a80a3,
+ 0xf248a114,
+ 0x588ba092,
+ 0xa09df248,
+ 0xaa69f000,
+ 0xa8c9da08,
+ 0xd2888502,
+ 0x1a04a14f,
+ 0xa269f000,
+ 0xda080884,
+ 0xd018a0c9,
+ 0x7500aa61,
+ 0x92a4c001,
+ 0x510cb780,
+ 0x2a00c080,
+ 0xc0007500,
+ 0xf2109102,
+ 0xc200aa6d,
+ 0xc0005884,
+ 0xf21090e0,
+ 0x6a36aa7d,
+ 0x5893c200,
+ 0xaa55f248,
+ 0xc0007102,
+ 0x8506929c,
+ 0xa16bd018,
+ 0xaa69f000,
+ 0xc0007500,
+ 0xd21091e2,
+ 0xda48aa69,
+ 0xf310a967,
+ 0xda488021,
+ 0xc000a265,
+ 0x850290a0,
+ 0xa16bd018,
+ 0xa8e9f000,
+ 0xc0007440,
+ 0xd0189084,
+ 0xb7bfa0e9,
+ 0xb7df7eee,
+ 0xb7ff7f6e,
+ 0x8c607fee,
+ 0xb7809c22,
+ 0xb7205c0c,
+ 0xf2085a14,
+ 0xb720a903,
+ 0x9ea0404d,
+ 0xe2209e4b,
+ 0x744281af,
+ 0xa182f208,
+ 0x9304c006,
+ 0x4648b780,
+ 0xc0007500,
+ 0xb7809164,
+ 0x75004b49,
+ 0x90c4c000,
+ 0x454db780,
+ 0x45cdb580,
+ 0x600cb720,
+ 0x41adb780,
+ 0x9d1d753c,
+ 0x9072c005,
+ 0xaa69f008,
+ 0xc0007502,
+ 0xd80890e4,
+ 0x7500aa69,
+ 0x90e2c000,
+ 0xa9eed088,
+ 0xc00076c0,
+ 0xb7809262,
+ 0xb7205b8c,
+ 0xb720590c,
+ 0xda0844d4,
+ 0x8502a909,
+ 0xa17bd088,
+ 0x4135b520,
+ 0x40abb540,
+ 0x9060c004,
+ 0xa879d088,
+ 0xc0007400,
+ 0xb7209342,
+ 0xb7405914,
+ 0xb7405b8c,
+ 0xb78044d4,
+ 0xd80840cb,
+ 0xd088a8c9,
+ 0xb540a1fa,
+ 0xba244155,
+ 0x688c4002,
+ 0xc2000242,
+ 0xb5805a0b,
+ 0xc00340cb,
+ 0xb78090c0,
+ 0x75004648,
+ 0x5994b740,
+ 0x90a4c001,
+ 0x5b94b720,
+ 0xaa49d810,
+ 0x414bb720,
+ 0x68a86a24,
+ 0xb7407048,
+ 0xc001590c,
+ 0xd808929c,
+ 0xb720aa45,
+ 0xba24414b,
+ 0x6a0e4002,
+ 0x70485884,
+ 0x913cc001,
+ 0xaa49f008,
+ 0x44ccb720,
+ 0x5904d226,
+ 0x8021f310,
+ 0xc0007048,
+ 0x850693dc,
+ 0xa17bd088,
+ 0xa17fd088,
+ 0xaa55d810,
+ 0xa8e9d808,
+ 0xc2006a14,
+ 0x70485a0f,
+ 0x90dac000,
+ 0x4748b500,
+ 0x9080c000,
+ 0x4758b540,
+ 0xd8488502,
+ 0xd888a177,
+ 0xc001a163,
+ 0x85029000,
+ 0xa17bd088,
+ 0xaa45d808,
+ 0x414bb720,
+ 0x4002ba24,
+ 0x6947d013,
+ 0x80a3e210,
+ 0xa8caf008,
+ 0xd808588b,
+ 0xb780a0c5,
+ 0xd0a644cc,
+ 0xc2015d04,
+ 0xf310812a,
+ 0xc2008021,
+ 0xf0085a0b,
+ 0xd088a249,
+ 0x7500aa7d,
+ 0xc000850a,
+ 0x850e9062,
+ 0xa16bd088,
+ 0xaa79d088,
+ 0xb3407500,
+ 0xb78048a2,
+ 0xb720404c,
+ 0xd226590c,
+ 0xa9645904,
+ 0x8021f310,
+ 0x5a17c200,
+ 0x44adb580,
+ 0x8221f310,
+ 0x9c22a265,
+ 0xb3407444,
+ 0xb78048a4,
+ 0xdac8598c,
+ 0xb520a885,
+ 0x9c2247cb,
+ 0x74c0c008,
+ 0x9e529e58,
+ 0x90fcc000,
+ 0x70c0d002,
+ 0x51f31a14,
+ 0xc0055013,
+ 0xc0007400,
+ 0xd00290fc,
+ 0x1a507000,
+ 0x01285013,
+ 0x6384b740,
+ 0x640cb780,
+ 0x5904d1a6,
+ 0xc0409e2d,
+ 0xc830a8e5,
+ 0x7044aa4d,
+ 0xd01d6009,
+ 0xd01a1214,
+ 0xb3405013,
+ 0x122248ba,
+ 0x9c225010,
+ 0x75269e5c,
+ 0xd01e0882,
+ 0xb3404000,
+ 0xc38048bc,
+ 0xc0007500,
+ 0xc00290bc,
+ 0x9c22084e,
+ 0x7508c004,
+ 0x915cc000,
+ 0xc2000a04,
+ 0xc0045a07,
+ 0x08847508,
+ 0x935affff,
+ 0x631cb740,
+ 0xc2209d4b,
+ 0xd013a805,
+ 0xe210691d,
+ 0x9c228021,
+ 0x0007a685,
+ 0x9e909e81,
+ 0x2cfccffe,
+ 0x9e4c9e41,
+ 0x64915c41,
+ 0x28fccffe,
+ 0x584162c3,
+ 0x60839e44,
+ 0xc2806009,
+ 0x9ea05a41,
+ 0x9e880490,
+ 0x04909d09,
+ 0x71029e4c,
+ 0x8504c001,
+ 0x5e41d0a2,
+ 0x4468b302,
+ 0x8121f320,
+ 0x5d40d0a6,
+ 0x2afccffe,
+ 0x8123f310,
+ 0x040d000d,
+ 0xd0339e54,
+ 0x9e5c6138,
+ 0xe2106145,
+ 0x9e918125,
+ 0xb7bf0462,
+ 0xb7df7f6e,
+ 0x8c407fee,
+ 0x00009c22,
+ 0x87c2c809,
+ 0x0c20b060,
+ 0x87c2c809,
+ 0x0a60b060,
+ 0x87c2c809,
+ 0x09c0b060,
+};
+
+unsigned long aui32H264CBR_MasterMTXTOPAZFWData[] = {
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x809000b0,
+ 0x80900374,
+ 0x82885134,
+ 0x82884a68,
+ 0x82884a78,
+ 0x82884b18,
+ 0x828847f0,
+ 0x82884888,
+ 0x82884846,
+ 0x82884840,
+ 0x82884b48,
+ 0x82884b8c,
+ 0x82884bc8,
+ 0x82884c00,
+ 0x82884c04,
+ 0x82884c34,
+ 0x82884c64,
+ 0x82884c8c,
+ 0x82884cbc,
+ 0x82884cec,
+ 0x82884cf2,
+ 0x82884cf8,
+ 0x828848ac,
+ 0x82884e88,
+ 0x82884e90,
+ 0x82884ec0,
+ 0x82884ec8,
+ 0x82884efc,
+ 0x82885394,
+ 0x82885266,
+ 0x82885240,
+ 0x828852ce,
+ 0x82885350,
+ 0x828850fc,
+ 0x828851fc,
+ 0x8288523c,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x809007c8,
+ 0x809007c8,
+ 0x809029ac,
+ 0x8090242c,
+ 0x80903a2c,
+ 0x80902d84,
+ 0x80902754,
+ 0x809007c8,
+ 0x809007c8,
+ 0x809007c8,
+ 0x809007c8,
+ 0x809007c8,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0xa0101100,
+ 0xa01001b0,
+ 0xa0101102,
+ 0xa01001b2,
+ 0xa0101104,
+ 0xa0100124,
+ 0xa0101106,
+ 0xa0100126,
+ 0xa0100134,
+ 0x00000000,
+ 0xa0101120,
+ 0xa0100136,
+ 0xa0101122,
+ 0xa0100144,
+ 0x80101160,
+ 0x80101162,
+ 0x80101180,
+ 0x80101182,
+ 0x80100140,
+ 0x80100142,
+ 0x80100150,
+ 0x80100152,
+ 0x80100154,
+ 0x80100146,
+ 0x803003a0,
+ 0x80100100,
+ 0x80105156,
+ 0xa0101164,
+ 0xa0100184,
+ 0x80101194,
+ 0x801001b4,
+ 0x80100146,
+ 0x00000000,
+ 0x00000003,
+ 0x00000002,
+ 0x00000002,
+ 0x00000001,
+ 0x00000001,
+ 0x00000001,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000005,
+ 0x000f9400,
+ 0x000f9401,
+ 0x000fd403,
+ 0x000fd407,
+ 0x000fd517,
+ 0x000fdd37,
+ 0x000fff37,
+ 0x000ffb37,
+ 0x00006b37,
+ 0x00006b36,
+ 0x00002b36,
+ 0x00002b30,
+ 0x00002a20,
+ 0x40002220,
+ 0x00000000,
+ 0x00000000,
+ 0x00010001,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x01010000,
+ 0x02020201,
+ 0x04030303,
+ 0x05040404,
+ 0x00140005,
+ 0x001a0016,
+ 0x0020001c,
+ 0x00280024,
+ 0x0034002c,
+ 0x00400038,
+ 0x00500048,
+ 0x00680058,
+ 0x00800070,
+ 0x00a00090,
+ 0x00d000b0,
+ 0x010000e0,
+ 0x01400120,
+ 0x01a00160,
+ 0x020001c0,
+ 0x02800240,
+ 0x034002c0,
+ 0x04000380,
+ 0x05000480,
+ 0x06800580,
+ 0x08000700,
+ 0x0a000900,
+ 0x0d000b00,
+ 0x10000e00,
+ 0x14001200,
+ 0x1a001600,
+ 0x00001c00,
+ 0x00200040,
+ 0x001002ab,
+ 0x015500cd,
+ 0x00080249,
+ 0x00cd01c7,
+ 0x0155005d,
+ 0x0249013b,
+ 0x00040111,
+ 0x01c700f1,
+ 0x00cd01af,
+ 0x005d00c3,
+ 0x01550059,
+ 0x013b0029,
+ 0x0249025f,
+ 0x01110235,
+ 0x00020021,
+ 0x00f1001f,
+ 0x01c70075,
+ 0x01af006f,
+ 0x00cd0069,
+ 0x00c30019,
+ 0x005d017d,
+ 0x0059005b,
+ 0x015502b9,
+ 0x002900a7,
+ 0x013b0283,
+ 0x025f0135,
+ 0x02490095,
+ 0x0235023f,
+ 0x0111008b,
+ 0x00210219,
+ 0x00010041,
+ 0x0b060600,
+ 0x0c0b0a06,
+ 0x0a0b0c06,
+ 0x0c0d0c0c,
+ 0x0d0d0c06,
+ 0x0b0b0c0c,
+ 0x0e0d0a0d,
+ 0x0a0d0e0e,
+ 0x0c0d0a06,
+ 0x0c0e0c0e,
+ 0x0e0d0a0d,
+ 0x0f0c0c0c,
+ 0x0f0b0d0e,
+ 0x0d0f0e0e,
+ 0x0d0f0f0f,
+ 0x0c0b0f0e,
+ 0x00000006,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x1234baac,
+ 0x00000000,
+};
+
+unsigned long aui32H264CBR_MasterMTXTOPAZFWTextReloc[] = {
+ 0
+};
+
+unsigned char aui8H264CBR_MasterMTXTOPAZFWTextRelocType[] = {
+ 0
+};
+
+unsigned long aui32H264CBR_MasterMTXTOPAZFWTextRelocFullAddr[] = {
+ 0
+};
+
+unsigned long aui32H264CBR_MasterMTXTOPAZFWDataReloc[] = {
+ 0
+};
diff --git a/fw/H264MasterFirmwareCBR_bin.h b/fw/H264MasterFirmwareCBR_bin.h
new file mode 100644
index 0000000..0caac6d
--- /dev/null
+++ b/fw/H264MasterFirmwareCBR_bin.h
@@ -0,0 +1,44 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+
+// This file was automatically generated from ../release/H264MasterFirmwareCBR.dnl using dnl2c.
+
+extern unsigned long aui32H264CBR_MasterMTXTOPAZFWText[];
+extern unsigned long ui32H264CBR_MasterMTXTOPAZFWTextSize;
+
+extern unsigned long aui32H264CBR_MasterMTXTOPAZFWData[];
+extern unsigned long ui32H264CBR_MasterMTXTOPAZFWDataSize;
+
+extern unsigned long aui32H264CBR_MasterMTXTOPAZFWTextReloc[];
+extern unsigned char aui8H264CBR_MasterMTXTOPAZFWTextRelocType[];
+extern unsigned long aui32H264CBR_MasterMTXTOPAZFWTextRelocFullAddr[];
+
+extern unsigned long aui32H264CBR_MasterMTXTOPAZFWDataReloc[];
+extern unsigned long ui32H264CBR_MasterMTXTOPAZFWDataRelocSize;
+
+extern unsigned long ui32H264CBR_MasterMTXTOPAZFWTextOrigin;
+extern unsigned long ui32H264CBR_MasterMTXTOPAZFWDataOrigin;
+
diff --git a/fw/H264MasterFirmwareVBR_bin.c b/fw/H264MasterFirmwareVBR_bin.c
new file mode 100644
index 0000000..4036e22
--- /dev/null
+++ b/fw/H264MasterFirmwareVBR_bin.c
@@ -0,0 +1,4872 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+
+// This file was automatically generated from ../release/H264MasterFirmwareVBR.dnl using dnl2c.
+
+unsigned char *szH264MasterFirmwareVBR_buildtag = "BUILD_TOPAZ_SC_1_00_00_0318";
+
+unsigned long ui32H264VBR_MasterMTXTOPAZFWTextSize = 4189;
+unsigned long ui32H264VBR_MasterMTXTOPAZFWDataSize = 624;
+unsigned long ui32H264VBR_MasterMTXTOPAZFWTextRelocSize = 0;
+unsigned long ui32H264VBR_MasterMTXTOPAZFWDataRelocSize = 0;
+
+unsigned long ui32H264VBR_MasterMTXTOPAZFWTextOrigin = 0x80900000;
+unsigned long ui32H264VBR_MasterMTXTOPAZFWDataOrigin = 0x82884180;
+
+unsigned long aui32H264VBR_MasterMTXTOPAZFWText[] = {
+ 0x9040c001,
+ 0xc80993fe,
+ 0xc0000e42,
+ 0xc8290e00,
+ 0xc4b48422,
+ 0xc8298400,
+ 0xc4188622,
+ 0x9e838600,
+ 0xc8099e43,
+ 0xc82c0d42,
+ 0xc8090d20,
+ 0xc82c0942,
+ 0xc8090960,
+ 0xc00a0e42,
+ 0xc8090e40,
+ 0xc00e87c2,
+ 0x9c1887d0,
+ 0x0c020802,
+ 0x09820d82,
+ 0x09020d02,
+ 0x08820c82,
+ 0x9320fffe,
+ 0xa401c838,
+ 0x0dc2c809,
+ 0x0de0c82a,
+ 0x0e42c809,
+ 0x0b46b080,
+ 0x7e74b77f,
+ 0xa48d0882,
+ 0xffff9ff3,
+ 0x9d1393e0,
+ 0xf8398081,
+ 0x0707a205,
+ 0x06850307,
+ 0x03839e97,
+ 0x0fa0060f,
+ 0x018d058d,
+ 0x9c62008f,
+ 0x9340ffff,
+ 0x0ea0060b,
+ 0xffff9c62,
+ 0x058d93a0,
+ 0xb700018d,
+ 0xb780548c,
+ 0x9c015414,
+ 0x0687a605,
+ 0x0ea0060b,
+ 0xffff9c62,
+ 0xf9f893a0,
+ 0xf9f8aa9d,
+ 0x9c22aa1d,
+ 0xa6059c22,
+ 0x85028420,
+ 0xb55f0a82,
+ 0x850a7f7c,
+ 0x9c89c037,
+ 0x9c80c971,
+ 0x75002a08,
+ 0x9184c000,
+ 0x997dc014,
+ 0x458cb780,
+ 0xc0007500,
+ 0x0d8290a4,
+ 0x99cbc054,
+ 0x7f6cb79f,
+ 0xc0007500,
+ 0xc05490e4,
+ 0x0d8a99d3,
+ 0x99c1c054,
+ 0x8d80e032,
+ 0x99b6c014,
+ 0x0800e000,
+ 0x91c4c000,
+ 0x9ac0c014,
+ 0x458cb780,
+ 0x2a797402,
+ 0x458cb580,
+ 0x90e4c000,
+ 0x9100c000,
+ 0xc0149e83,
+ 0x75409a33,
+ 0x9162fffe,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x9c228c60,
+ 0x85028702,
+ 0x6818b543,
+ 0x6898b543,
+ 0x6918b543,
+ 0x6c18b543,
+ 0x6c98b543,
+ 0x6d18b543,
+ 0x7118b543,
+ 0x7198b543,
+ 0x7218b543,
+ 0x7818b543,
+ 0x4804b540,
+ 0x4884b540,
+ 0x4904b540,
+ 0x4984b540,
+ 0x4a04b540,
+ 0x4c04b540,
+ 0x4c84b540,
+ 0x4d04b540,
+ 0x4202b540,
+ 0x4282b540,
+ 0x5004b540,
+ 0x7a84b540,
+ 0x4e84b540,
+ 0x4702b540,
+ 0xa6059c22,
+ 0xfff48420,
+ 0x0d8a9b87,
+ 0x9967c054,
+ 0x9bc6fff4,
+ 0x9972c054,
+ 0x0cd2c420,
+ 0xb4810a02,
+ 0xb105c000,
+ 0x0d8a4220,
+ 0x8d80e031,
+ 0x9aebc014,
+ 0x0922c829,
+ 0x0960c4b2,
+ 0x7f6cb73f,
+ 0x2a5ed071,
+ 0x450cb580,
+ 0x2a80c01e,
+ 0xf0088502,
+ 0x7102a8c2,
+ 0x5a95c280,
+ 0x460cb5a0,
+ 0x4434b341,
+ 0xb5407640,
+ 0xb520459c,
+ 0xc000448c,
+ 0xd01190c2,
+ 0xf0080e12,
+ 0xb780a241,
+ 0xc807550c,
+ 0xc57008c2,
+ 0xc0320880,
+ 0xb5800caa,
+ 0xb421538c,
+ 0x0a2ac000,
+ 0xb4810cf4,
+ 0x1a28c000,
+ 0xc0020902,
+ 0xb96008ba,
+ 0xc2004078,
+ 0xd2240a00,
+ 0xb441588b,
+ 0xce00c000,
+ 0xffff0a11,
+ 0xe0009301,
+ 0xffff1884,
+ 0xc8079244,
+ 0xc5760a42,
+ 0xc0320a00,
+ 0xb4810caa,
+ 0x0a02c000,
+ 0x09020882,
+ 0xb9600884,
+ 0xc2004078,
+ 0xd2240a00,
+ 0xb441588b,
+ 0xce00c000,
+ 0xffff0a11,
+ 0xc0049301,
+ 0xffff745a,
+ 0x0a02923c,
+ 0x0c9ec034,
+ 0xc000b481,
+ 0x9b0dfff4,
+ 0xb79f0802,
+ 0xb7bf7eee,
+ 0x8c607f6e,
+ 0x9e549c22,
+ 0x0c82c040,
+ 0xb4219e59,
+ 0xc040c000,
+ 0xb4820d02,
+ 0x9c22c000,
+ 0x2d7cc00e,
+ 0x29e0c00e,
+ 0x9e545d30,
+ 0x0c82c040,
+ 0xb46131b8,
+ 0xc040c000,
+ 0xb4420d02,
+ 0x9c22c000,
+ 0x8420a60d,
+ 0x06870703,
+ 0x5c8dc280,
+ 0xd0a21c84,
+ 0x02875ca0,
+ 0x0a5ed011,
+ 0x5a0dc200,
+ 0xc2001a04,
+ 0x5cd05a30,
+ 0x9e4c3098,
+ 0xc0320405,
+ 0x30980c8a,
+ 0x3880c801,
+ 0xc000b421,
+ 0xc8019ea9,
+ 0xc0020a02,
+ 0x65530a00,
+ 0x0c8ac030,
+ 0xc000b481,
+ 0x0882c002,
+ 0xb4210c84,
+ 0x9e93c000,
+ 0x5f09d022,
+ 0x5d0d9e53,
+ 0xfff41d04,
+ 0xc2809bb4,
+ 0x1e845e91,
+ 0x5e84c280,
+ 0x1a849e6c,
+ 0x5a90c280,
+ 0x3a80c181,
+ 0x09820d8a,
+ 0x314a0d02,
+ 0x9baefff4,
+ 0x0d82c0c0,
+ 0xc0020992,
+ 0xc0020d02,
+ 0xc0540902,
+ 0x0a0a9891,
+ 0x0c9ec034,
+ 0xc000b481,
+ 0x75bf1b04,
+ 0xc0008502,
+ 0x9dcf9202,
+ 0x7f7cb55f,
+ 0x9864c054,
+ 0xa045f231,
+ 0x7f7cb75f,
+ 0x75bf1b04,
+ 0xffff8510,
+ 0xc0029284,
+ 0xc0300a42,
+ 0xb4810c8e,
+ 0xb79fc000,
+ 0xb7bf7e6e,
+ 0xb7df7eee,
+ 0xc0027f6e,
+ 0x9c228c00,
+ 0xf8399c22,
+ 0xb780a285,
+ 0x0986450c,
+ 0x0d0270c8,
+ 0x9096c001,
+ 0x4594b760,
+ 0x08020c06,
+ 0x0902c1cc,
+ 0x19c4d010,
+ 0x9e5d9e44,
+ 0x508cc200,
+ 0xc0007942,
+ 0xd1249202,
+ 0xc400588b,
+ 0xb4013c80,
+ 0xb104c000,
+ 0x9e554220,
+ 0x750230d2,
+ 0x4822b321,
+ 0xc00c9e8a,
+ 0x09840900,
+ 0x9101ffff,
+ 0x4594b540,
+ 0xaa9df9f8,
+ 0xc2009c22,
+ 0xc0378502,
+ 0xc1719c89,
+ 0xc8179c80,
+ 0x9c229c80,
+ 0xb780a605,
+ 0x9e5d458c,
+ 0xc000790a,
+ 0xfff49162,
+ 0xfff49bf0,
+ 0xb7809bbe,
+ 0x790a458c,
+ 0x9324ffff,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xc002a61d,
+ 0x9e5d8400,
+ 0xaa21f208,
+ 0xc0017500,
+ 0xc4209004,
+ 0x0a020cda,
+ 0xc000b481,
+ 0x4220b101,
+ 0xb4811c84,
+ 0xb106c000,
+ 0xb4814220,
+ 0xb107c000,
+ 0x008f4220,
+ 0xc000b481,
+ 0x4240b106,
+ 0xc000b481,
+ 0x4240b105,
+ 0x2a6ed1f1,
+ 0xb40d7516,
+ 0xf2084622,
+ 0x7480a921,
+ 0x92c2c000,
+ 0x8c80e092,
+ 0x098a0dc2,
+ 0x0d02c002,
+ 0x9b0afff4,
+ 0x7cecb7df,
+ 0x7c6cb79f,
+ 0x7d6cb7ff,
+ 0x7df4b7df,
+ 0x7e74b7bf,
+ 0xa221f208,
+ 0x5aa1c300,
+ 0x2afcc00e,
+ 0x0d869ea9,
+ 0xfff455e4,
+ 0xd3129ba3,
+ 0xc1c068d1,
+ 0x5c8b0c80,
+ 0xc000b4c1,
+ 0x6951d312,
+ 0x0d10c1c0,
+ 0xb4e25d0b,
+ 0xd312c000,
+ 0x9e7468d1,
+ 0x0ca0c1c0,
+ 0xb4815c8b,
+ 0xd312c000,
+ 0x9e6c6951,
+ 0x0d30c1c0,
+ 0xb4825d0b,
+ 0xd312c000,
+ 0x0a0268d1,
+ 0x0cc0c1c0,
+ 0xc4005c8b,
+ 0xb4813c80,
+ 0xb106c000,
+ 0xcfff4220,
+ 0xd3122b7c,
+ 0xc1c068d1,
+ 0x5c8b0cc0,
+ 0xc000b4c1,
+ 0x458cb720,
+ 0xc2000a04,
+ 0x000b5214,
+ 0xb5203098,
+ 0xb79f458c,
+ 0xb7bf7c6e,
+ 0xb7df7cee,
+ 0xb7ff7d6e,
+ 0xc0047dee,
+ 0x9c228c00,
+ 0xa205f839,
+ 0x0e30f011,
+ 0x919cc000,
+ 0x9ea10a04,
+ 0x55e40d86,
+ 0xc0343d88,
+ 0x0d8a9b6c,
+ 0x9b69c034,
+ 0xaa1df9f8,
+ 0xa6059c22,
+ 0x0a42c801,
+ 0x0a00c010,
+ 0x2ebed3f2,
+ 0x0caac032,
+ 0xc000b481,
+ 0x0cf408aa,
+ 0xc000b421,
+ 0x558cb780,
+ 0x0c92c080,
+ 0xa881f208,
+ 0xc000b421,
+ 0x558cb780,
+ 0xf2080c88,
+ 0xb421a889,
+ 0xb780c000,
+ 0x0c84558c,
+ 0xa88df208,
+ 0xc000b421,
+ 0x1c980902,
+ 0xc000b441,
+ 0x558cb780,
+ 0xf2080c90,
+ 0xb421a885,
+ 0xb7a0c000,
+ 0x0dd2558c,
+ 0x9b24c034,
+ 0xaa25f208,
+ 0xffff7008,
+ 0x0daa9344,
+ 0x0d060982,
+ 0x0902c121,
+ 0x9a4afff4,
+ 0x4714b760,
+ 0x0d02c021,
+ 0x09c20d04,
+ 0x9a37fff4,
+ 0x4714b760,
+ 0x0d0609c2,
+ 0x9a31fff4,
+ 0x09820daa,
+ 0xc1010d02,
+ 0xfff40902,
+ 0x0d929a35,
+ 0x9b00c034,
+ 0xaa25f208,
+ 0xffff7008,
+ 0x77409344,
+ 0x90a2c000,
+ 0xc0340d8e,
+ 0x0d8a9b02,
+ 0x9affc034,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xc470a60d,
+ 0x0a020c8e,
+ 0xc000b481,
+ 0x4220b101,
+ 0x558cb780,
+ 0xa085f208,
+ 0x0a021c8c,
+ 0xc000b481,
+ 0x4220b105,
+ 0x2b5ed1f1,
+ 0x558cb780,
+ 0xcff09ead,
+ 0xc2802e80,
+ 0xf2085ea1,
+ 0xc280a281,
+ 0x2a845a9d,
+ 0x0a020c84,
+ 0xc000b481,
+ 0x4220b101,
+ 0x468cb520,
+ 0xb4810c84,
+ 0xb101c000,
+ 0xb5204220,
+ 0xc070470c,
+ 0xb4810c8e,
+ 0x0882c000,
+ 0xb4211c8c,
+ 0x0c90c000,
+ 0xc000b481,
+ 0xb4211c8c,
+ 0x0c84c000,
+ 0xc000b481,
+ 0x6284b740,
+ 0x5908d326,
+ 0xe0309e2d,
+ 0x9ea4aa4d,
+ 0xb7809c62,
+ 0x7740558c,
+ 0x9ea98502,
+ 0xd0010d82,
+ 0xf2080db2,
+ 0x2596a10f,
+ 0x9b3ffff4,
+ 0xc0700a06,
+ 0xb4810c82,
+ 0x000dc000,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x4514b760,
+ 0xc0020a7f,
+ 0x9ea18502,
+ 0x89afe220,
+ 0xfff355ad,
+ 0xc01c91a0,
+ 0xc0007ebe,
+ 0xd1a29244,
+ 0xc0905e08,
+ 0xd2240a00,
+ 0x08825909,
+ 0x3d00c400,
+ 0xc000b422,
+ 0x4220b104,
+ 0xffff7500,
+ 0xc1809364,
+ 0xc0905c88,
+ 0x5c890c80,
+ 0xc000b461,
+ 0xc1809c22,
+ 0xc0905c88,
+ 0x5c890c80,
+ 0x3c80c400,
+ 0xb4810a02,
+ 0xb101c000,
+ 0xf0084220,
+ 0x5d88a0e1,
+ 0x0d80c090,
+ 0xb4835d89,
+ 0x9c22c000,
+ 0xd3129e5b,
+ 0x0a0268b1,
+ 0x0cc0c1c0,
+ 0xc4005c8b,
+ 0xb4813c80,
+ 0xb102c000,
+ 0xb7604220,
+ 0xd3125994,
+ 0x85026931,
+ 0xb9609e51,
+ 0xc1c04070,
+ 0xf03108e0,
+ 0xd0a4aa65,
+ 0xb4815889,
+ 0x0890c000,
+ 0xffff8510,
+ 0xc1c09301,
+ 0xe2108560,
+ 0xb76080ad,
+ 0xc0015b94,
+ 0xce3e3904,
+ 0xb9608521,
+ 0xf0314048,
+ 0xd0a4aa65,
+ 0xb4815889,
+ 0x0890c000,
+ 0xffff8510,
+ 0xe2209301,
+ 0xb780812d,
+ 0xc001590c,
+ 0xc1c03908,
+ 0x5d090d60,
+ 0xa885dac8,
+ 0xc000b422,
+ 0x68b1d312,
+ 0x0cc0c1c0,
+ 0xb4415c8b,
+ 0x9c22c000,
+ 0x508cb740,
+ 0x6cb1d312,
+ 0xc1c00a02,
+ 0x5c8b0cc0,
+ 0x3c80c400,
+ 0xc000b481,
+ 0x4220b101,
+ 0x6cb1d312,
+ 0x0cf0c1ca,
+ 0xb4415c8b,
+ 0xc00cc000,
+ 0xc0016d82,
+ 0xc1c038c0,
+ 0x5d8b0dc0,
+ 0xc000b423,
+ 0x84209c22,
+ 0xe0318502,
+ 0x09068d80,
+ 0x7f7cb55f,
+ 0x0cd2c472,
+ 0xb4810a02,
+ 0xb101c000,
+ 0x9e8a4220,
+ 0xc0010203,
+ 0x75002a40,
+ 0x9362c000,
+ 0x68a1d312,
+ 0xc1ca0a02,
+ 0x5c8b0cf0,
+ 0x3c80c400,
+ 0xc000b481,
+ 0x4220b101,
+ 0xa0e1f008,
+ 0x509cb740,
+ 0x7f6cb79f,
+ 0xf3109e51,
+ 0xcfff8021,
+ 0xb58028be,
+ 0xd312508c,
+ 0xc1c068a1,
+ 0x5c8b0cc0,
+ 0xc000b421,
+ 0x9c228c20,
+ 0xc006a605,
+ 0x87028420,
+ 0xc4720c06,
+ 0x0a020cd2,
+ 0xc000b481,
+ 0x4220b105,
+ 0x020b9eaa,
+ 0x2a04c001,
+ 0xc0017500,
+ 0xd31190c2,
+ 0xe1b16c81,
+ 0xb7608d00,
+ 0x09825994,
+ 0x4070b960,
+ 0x08e0c1c0,
+ 0x5889d0a4,
+ 0x3c80c400,
+ 0xc000b461,
+ 0x4220b104,
+ 0xa245f029,
+ 0x87100890,
+ 0x9281ffff,
+ 0xa973f050,
+ 0x796cb79f,
+ 0xf3109e55,
+ 0xcfff8021,
+ 0xf0502afa,
+ 0x020ba271,
+ 0x2a08c001,
+ 0xd3127500,
+ 0xc0026e81,
+ 0xe0b19082,
+ 0xc1c08d00,
+ 0xe1108760,
+ 0xb74082a3,
+ 0x09825b94,
+ 0x4048b960,
+ 0xd0a49e93,
+ 0xc4005889,
+ 0xb4613c80,
+ 0xb104c000,
+ 0xf0294220,
+ 0x0890a245,
+ 0x92a1ffff,
+ 0x590cb780,
+ 0xa943f010,
+ 0xa891da08,
+ 0xaa61f010,
+ 0xa95cf012,
+ 0xa9c7f050,
+ 0x8021f310,
+ 0xa94bd850,
+ 0xd8101884,
+ 0xf010a0c9,
+ 0xb79fa241,
+ 0xb73f7b6a,
+ 0xb73f7eec,
+ 0xf3107ff4,
+ 0xe2108021,
+ 0xe22082a3,
+ 0xcfff80bb,
+ 0xd8502af6,
+ 0xf010a249,
+ 0xf050a0dd,
+ 0x020ba0c6,
+ 0x2a10c001,
+ 0xc0007500,
+ 0xc01490c2,
+ 0xcfff9838,
+ 0xc1c02aee,
+ 0xc2800ec0,
+ 0xb4a15c8b,
+ 0xb79fc000,
+ 0xb7bf78ee,
+ 0xc006796e,
+ 0x9c228c60,
+ 0x6cb1d312,
+ 0xc1c00a02,
+ 0x5c8b0cc0,
+ 0x3c80c400,
+ 0xc000b481,
+ 0x4220b103,
+ 0x5a94b740,
+ 0x6d31d311,
+ 0x4058b960,
+ 0xc1c00085,
+ 0xf03108e0,
+ 0xd0a4aa45,
+ 0xb4815889,
+ 0x0890c000,
+ 0x9321ffff,
+ 0x3990c001,
+ 0x0940c1c0,
+ 0x588bd124,
+ 0xc000b461,
+ 0xa6059c22,
+ 0x8440c002,
+ 0x5a94b740,
+ 0xc4720a86,
+ 0x08820cd2,
+ 0x8502c00c,
+ 0xc000b421,
+ 0x4220b104,
+ 0xc0010189,
+ 0x75002a10,
+ 0x9302ffff,
+ 0x8d00e0d1,
+ 0x08029d47,
+ 0x4058b960,
+ 0x08e0c1c0,
+ 0x5889d0a4,
+ 0x3c80c400,
+ 0xc000b401,
+ 0x4220b104,
+ 0xa245f029,
+ 0xffff0890,
+ 0x9dc792a1,
+ 0x29eecfff,
+ 0x0cc0c1c0,
+ 0xb4615c8b,
+ 0xf010c000,
+ 0xb79fa94b,
+ 0xf0127b6c,
+ 0xb73fa94c,
+ 0xd8107bec,
+ 0xf310a9cb,
+ 0xf0108021,
+ 0xe210a953,
+ 0xd81282a3,
+ 0xf010a94c,
+ 0xf010a249,
+ 0xb79fa0cd,
+ 0xb73f7c6c,
+ 0xb73f75ea,
+ 0xf3107572,
+ 0xe2108021,
+ 0xe22082a3,
+ 0x0d8680bb,
+ 0xa251f010,
+ 0xa0cdd810,
+ 0xa0cad810,
+ 0x9b7efff4,
+ 0x68d1d312,
+ 0xc1c00a02,
+ 0x5c8b0cc0,
+ 0x3c80c400,
+ 0xc000b481,
+ 0x4220b104,
+ 0x3a20c001,
+ 0x68d1d312,
+ 0x0cc0c1c0,
+ 0xb4815c8b,
+ 0xb79fc000,
+ 0xb7bf7c6e,
+ 0xc0047cee,
+ 0x9c228c00,
+ 0xa285f839,
+ 0xaa61f010,
+ 0xc0007500,
+ 0xd0089164,
+ 0x9e48a8c1,
+ 0xc2000a06,
+ 0x30985200,
+ 0xa0c1d008,
+ 0x0d38d011,
+ 0xa9f2d010,
+ 0x1a30f011,
+ 0xa943f010,
+ 0xc0001984,
+ 0xcff193e2,
+ 0xcff08702,
+ 0xc00f8700,
+ 0xc00e087e,
+ 0xc050087c,
+ 0xf0290c1a,
+ 0xd020a8c5,
+ 0x5ca12095,
+ 0x22109e4d,
+ 0x5a20c200,
+ 0xba0930d8,
+ 0xb4204006,
+ 0xf011c000,
+ 0x19841a30,
+ 0x91e4ffff,
+ 0x802ff210,
+ 0xa241f010,
+ 0xaa9df9f8,
+ 0xa60d9c22,
+ 0x59409e5d,
+ 0x5841f124,
+ 0x2d2ed3f1,
+ 0x4422b350,
+ 0x93e2c002,
+ 0xaa61f008,
+ 0x2a1ce000,
+ 0x4422b425,
+ 0xaa61d808,
+ 0xe2108522,
+ 0x2a1c88a9,
+ 0x9ea31218,
+ 0x0a7ec00e,
+ 0x400bba1b,
+ 0x5207c200,
+ 0xc0012128,
+ 0x9e599276,
+ 0x5a20c100,
+ 0xc2001103,
+ 0x9ea25209,
+ 0x58a1c200,
+ 0xd0319e8d,
+ 0xd2080cb0,
+ 0xc00ea8a2,
+ 0xc2002a7c,
+ 0xc00e5207,
+ 0x349a2a7c,
+ 0xa0a2d208,
+ 0xa963f008,
+ 0xd3f19ea1,
+ 0xc2012a2e,
+ 0xf3108128,
+ 0x85028821,
+ 0xa261f008,
+ 0xa127d228,
+ 0xcff09eab,
+ 0x59402d01,
+ 0x35225941,
+ 0x2d7cc00e,
+ 0x9bb1fff4,
+ 0x92e0c000,
+ 0xaa21d208,
+ 0x000b9e5e,
+ 0x324250d8,
+ 0xa205d029,
+ 0xa8e1f008,
+ 0x291ed013,
+ 0x8029f210,
+ 0x9e447510,
+ 0xf0080098,
+ 0xb350a0e1,
+ 0xb79f4426,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0xa6059c22,
+ 0x59409e58,
+ 0x74b05941,
+ 0x06850287,
+ 0x9374c000,
+ 0x5d61c280,
+ 0x59401960,
+ 0xfff45941,
+ 0x9e839b82,
+ 0xc280018b,
+ 0xc00e5d41,
+ 0x09222d7c,
+ 0x9b79fff4,
+ 0x018b9e83,
+ 0x5d21c280,
+ 0x2d7cc00e,
+ 0xc0010922,
+ 0x74a090a0,
+ 0x92d4c000,
+ 0x018b9e83,
+ 0x5d41c280,
+ 0x2d7cc00e,
+ 0x59401940,
+ 0xfff45941,
+ 0x9e839b62,
+ 0xc280018b,
+ 0xc00e5d21,
+ 0x09222d7c,
+ 0x91c0c000,
+ 0xc0007490,
+ 0x9e8392d4,
+ 0xc280018b,
+ 0xc00e5d21,
+ 0x19202d7c,
+ 0x59415940,
+ 0x9b4bfff4,
+ 0x018b9e83,
+ 0x2d5ed3f2,
+ 0xfff40922,
+ 0xc0009b44,
+ 0x9e839100,
+ 0xd3f2018b,
+ 0xfff42d5e,
+ 0xb79f9b3c,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa60d9c22,
+ 0x9e690685,
+ 0x0b029e9e,
+ 0x0a867182,
+ 0x9208c000,
+ 0x16d29ea9,
+ 0xc2809e69,
+ 0xd0115a84,
+ 0x71021a52,
+ 0x08e2d011,
+ 0x2b1ed3f1,
+ 0x9286ffff,
+ 0x0a62d011,
+ 0x028d7510,
+ 0x91d4c000,
+ 0x0d029e73,
+ 0xfff40922,
+ 0x1aa09b14,
+ 0x0a52d011,
+ 0x9e837510,
+ 0x92d2ffff,
+ 0x0d069e73,
+ 0x0952d011,
+ 0x297cc00e,
+ 0x9b05fff4,
+ 0x9e837590,
+ 0x92f4c000,
+ 0x1a60d031,
+ 0x2b4ed3f1,
+ 0x9e739e6c,
+ 0x5299c200,
+ 0x295ed3f2,
+ 0xfff40922,
+ 0x9e839af4,
+ 0x52b8c200,
+ 0x75909ea9,
+ 0xffff16d2,
+ 0x9e7391b2,
+ 0x2d5ed3f2,
+ 0xfff4010d,
+ 0xb79f9ae6,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0xf0119c22,
+ 0x9e990ca0,
+ 0x5a04d09a,
+ 0x1a42d00d,
+ 0x909ac000,
+ 0x12421203,
+ 0x9ea29e4b,
+ 0x9360fffc,
+ 0x8420a60d,
+ 0x9e9e8502,
+ 0x7f7cb55f,
+ 0x7ffcb55f,
+ 0xaa61f010,
+ 0xf0129e55,
+ 0x1a088c8e,
+ 0xd2267512,
+ 0x8540590c,
+ 0x8044e05a,
+ 0x90c0c006,
+ 0x9280c000,
+ 0x93a0c000,
+ 0x90c0c001,
+ 0x9200c001,
+ 0x9300c001,
+ 0x9160c002,
+ 0x93e0c002,
+ 0x91e0c004,
+ 0x9320c004,
+ 0x9100c005,
+ 0x8d88e011,
+ 0x1954d072,
+ 0x500cb5a0,
+ 0xfff4058b,
+ 0xc0059bc0,
+ 0xb7409120,
+ 0xe0115014,
+ 0x9ea98d88,
+ 0x1514058b,
+ 0x9bb5fff4,
+ 0x93c0c004,
+ 0x8d88e011,
+ 0x295ed3f2,
+ 0x0916058b,
+ 0x9a87fff4,
+ 0x500cb5a0,
+ 0x9240c004,
+ 0x8d88e011,
+ 0x295ed3f2,
+ 0x0916058b,
+ 0x9a7bfff4,
+ 0x9100c004,
+ 0xaa41d210,
+ 0x8c88f011,
+ 0x4a7d058b,
+ 0x2aced012,
+ 0x09060d06,
+ 0xfff4018b,
+ 0x9e839a6c,
+ 0x018b9e6a,
+ 0xfff40d02,
+ 0xc0039a66,
+ 0xd2109260,
+ 0xf011aa41,
+ 0x058b8c88,
+ 0xd0124a7d,
+ 0x0d022ace,
+ 0x018b0906,
+ 0x9a57fff4,
+ 0x9e6a9e83,
+ 0xc00e018b,
+ 0xfff40d7e,
+ 0xc0029a50,
+ 0xb72093a0,
+ 0xd272570c,
+ 0xb7800890,
+ 0x7500404d,
+ 0xc0000303,
+ 0xf2c89104,
+ 0xb580aa51,
+ 0xc000404d,
+ 0xb7809100,
+ 0xf248598c,
+ 0xb520a895,
+ 0xd271404d,
+ 0xf2080ae0,
+ 0xfa88a8a1,
+ 0x0c82a951,
+ 0x05830183,
+ 0x9897c0d4,
+ 0x0a60d2b1,
+ 0xa903f208,
+ 0xe0119e41,
+ 0xe2208d88,
+ 0x058b8923,
+ 0xf208095e,
+ 0xfff4a0a1,
+ 0xc0019a8e,
+ 0xb7809160,
+ 0xe011578c,
+ 0xf2088d88,
+ 0x058ba902,
+ 0xfff4095e,
+ 0xc0009a82,
+ 0xb74193e0,
+ 0xb784409c,
+ 0xe0114408,
+ 0xf3108d88,
+ 0x9dcb8021,
+ 0x095e058b,
+ 0x408cb581,
+ 0x9a71fff4,
+ 0x91c0c000,
+ 0x4410b744,
+ 0x8d88e011,
+ 0x091e058b,
+ 0x99f7fff4,
+ 0x9080c000,
+ 0x90e0c001,
+ 0x7e68b79f,
+ 0x0cfec00f,
+ 0x0cfcc00e,
+ 0xb59f9e4a,
+ 0xb73f7c68,
+ 0xcff17f6c,
+ 0xcff00a02,
+ 0xc0500a00,
+ 0x22180c9a,
+ 0x5a21c200,
+ 0x58a02094,
+ 0xba243242,
+ 0xb59f4006,
+ 0xb4817f6c,
+ 0xf210c000,
+ 0xb79fa943,
+ 0xf3107fec,
+ 0xf2108021,
+ 0xb79fa241,
+ 0xb7bf7e6e,
+ 0xb7df7eee,
+ 0xc0027f6e,
+ 0x9c228c00,
+ 0x8440a61d,
+ 0x9e9d8502,
+ 0xabe5f031,
+ 0xb55f0b02,
+ 0xb55f7878,
+ 0x718e7efc,
+ 0xc0019d3a,
+ 0xaa4191e8,
+ 0xc0007502,
+ 0xd0189392,
+ 0xe032aad1,
+ 0xe0518d08,
+ 0x9dcf8d00,
+ 0x85109eb1,
+ 0x7f7cb55f,
+ 0x0a9cc002,
+ 0x5a95c280,
+ 0xfff4018b,
+ 0xb75f9961,
+ 0xc2807f7c,
+ 0xc3015a88,
+ 0xc0008122,
+ 0xe03191a0,
+ 0x9dcf8d88,
+ 0x8510050b,
+ 0x7f7cb55f,
+ 0x9ac2fff4,
+ 0x7f7cb75f,
+ 0x718e0b04,
+ 0x92a6fffe,
+ 0x7868b79f,
+ 0x0c9ec050,
+ 0xc000b481,
+ 0x0d16c050,
+ 0xc000b4e2,
+ 0x7eecb71f,
+ 0x7d6eb79f,
+ 0x7deeb7bf,
+ 0x7e6eb7df,
+ 0x7eeeb7ff,
+ 0x8c40c002,
+ 0xa6059c22,
+ 0x0c8ac450,
+ 0xb4810a02,
+ 0xb102c000,
+ 0xe00e4240,
+ 0xd1042d7c,
+ 0xc8015d10,
+ 0x0a400a02,
+ 0x0c8ac030,
+ 0xc000b481,
+ 0x0c8408c2,
+ 0xc000b421,
+ 0x5e8cb740,
+ 0xa947f048,
+ 0x802df210,
+ 0xa245f048,
+ 0x0c86c450,
+ 0xb4810a02,
+ 0xb101c000,
+ 0xc8014220,
+ 0xc0100a42,
+ 0xc0320a00,
+ 0xb4810caa,
+ 0x08aac000,
+ 0x0d1ec034,
+ 0xc000b422,
+ 0x0cf2c450,
+ 0xb4810a02,
+ 0xb101c000,
+ 0xd0534220,
+ 0xb7801910,
+ 0xf248570c,
+ 0xf210a891,
+ 0x0d8288a3,
+ 0x018b0d06,
+ 0x9ae1ffd4,
+ 0x0ca2c080,
+ 0xc000b4a1,
+ 0x0d82c002,
+ 0x9954c014,
+ 0xffff700a,
+ 0x0daa9364,
+ 0x0d0a0982,
+ 0x0902c121,
+ 0x987cffd4,
+ 0x570cb780,
+ 0xa992f248,
+ 0x0d02c0a1,
+ 0x09c20d04,
+ 0x9867ffd4,
+ 0x0d82c0c0,
+ 0x0d420992,
+ 0xc0140942,
+ 0xb79f9957,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa60d9c22,
+ 0x8400c010,
+ 0x570cb720,
+ 0x49adb780,
+ 0x75002a20,
+ 0x5994b7c0,
+ 0xc0000902,
+ 0xb7839182,
+ 0x75007108,
+ 0x90e2c000,
+ 0xaa41d290,
+ 0xc0057500,
+ 0xb7209164,
+ 0xd01149ad,
+ 0x75002a18,
+ 0x3924d002,
+ 0x9124c000,
+ 0x2a14d011,
+ 0xd0027500,
+ 0xd0013922,
+ 0xc0503926,
+ 0xb4410c82,
+ 0x9d87c000,
+ 0x468cb740,
+ 0x09c20dc2,
+ 0x0d02c010,
+ 0x0c81cff0,
+ 0x983effd4,
+ 0x7108b783,
+ 0x75009d1b,
+ 0x0b01cff0,
+ 0x9282c000,
+ 0xaa41d290,
+ 0xc0007500,
+ 0xb79f91e2,
+ 0xf211606c,
+ 0xc0108d00,
+ 0x75002a00,
+ 0x0a03cff0,
+ 0x8001f310,
+ 0x4422b346,
+ 0x4068b79e,
+ 0x08c2c801,
+ 0x0880c010,
+ 0x0ceac032,
+ 0x606cb59f,
+ 0xc000b421,
+ 0x7108b783,
+ 0xc0017500,
+ 0xb7839282,
+ 0x75007208,
+ 0x91e2c001,
+ 0x510cb720,
+ 0x2a12d011,
+ 0xc0017500,
+ 0xb7a09102,
+ 0xb7a05f94,
+ 0xf2105a8c,
+ 0x9eabaa21,
+ 0xb52028f9,
+ 0x9ea4510c,
+ 0xb7209c62,
+ 0xb7805d0c,
+ 0x75004129,
+ 0x92a4c000,
+ 0xa9a1f208,
+ 0xa83df210,
+ 0x9e840d82,
+ 0xf2509c62,
+ 0x9eaba8a5,
+ 0xa021f208,
+ 0x9e8c0982,
+ 0xda089c62,
+ 0xb581aa21,
+ 0xda107b8a,
+ 0x9eb3a9cd,
+ 0x9aa6fff4,
+ 0x0a02c801,
+ 0x0a00c00a,
+ 0x0c8ac030,
+ 0xc000b481,
+ 0x08c2c008,
+ 0xb4210c84,
+ 0xc008c000,
+ 0x0c880a02,
+ 0xc000b481,
+ 0x0d82c0c0,
+ 0xc0080992,
+ 0xc0080d02,
+ 0xc0140902,
+ 0xc008989d,
+ 0xc0300a02,
+ 0xb4810c8e,
+ 0xb720c000,
+ 0x85065a0c,
+ 0x4039b540,
+ 0x9ad1fff4,
+ 0x6eeeb79f,
+ 0x6f6eb7bf,
+ 0x6feeb7df,
+ 0x8c60c010,
+ 0xf8399c22,
+ 0xc450a205,
+ 0x0a020c82,
+ 0xc000b481,
+ 0x4220b101,
+ 0x0a40c008,
+ 0x0c8ec030,
+ 0xc000b481,
+ 0x38c0c002,
+ 0x0c82c050,
+ 0xc000b421,
+ 0x0d82c0c0,
+ 0xc0080992,
+ 0xc0080d02,
+ 0xc0140902,
+ 0xc0089869,
+ 0xc0300a02,
+ 0xb4810c8e,
+ 0xf9f8c000,
+ 0xfff5aa1d,
+ 0xa60d9000,
+ 0x0eb0f011,
+ 0x9182c001,
+ 0x0f7ec01e,
+ 0x0b02c008,
+ 0x0e8ec030,
+ 0x7540c040,
+ 0xc0509e74,
+ 0xb3540c96,
+ 0x12d84426,
+ 0x5a14c200,
+ 0xc000b481,
+ 0x0d0ac030,
+ 0xc000b4c2,
+ 0xc000b4c5,
+ 0x0c96c030,
+ 0xc000b4c1,
+ 0x0d82c0c0,
+ 0xc0080992,
+ 0xc0080d02,
+ 0xc0140902,
+ 0xb4c59835,
+ 0x7540c000,
+ 0x93c4fffe,
+ 0x9a6ffff4,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0xc000b463,
+ 0xf8129c22,
+ 0x9c22a062,
+ 0x0d80c200,
+ 0x9e595d89,
+ 0xc4000982,
+ 0xb4633d80,
+ 0xb203c000,
+ 0x00074620,
+ 0xc1279c22,
+ 0x9c229c8f,
+ 0xb971080a,
+ 0xc01756f1,
+ 0xc0719c81,
+ 0xc0179c80,
+ 0xb9609c80,
+ 0x9c224000,
+ 0x9280ffff,
+ 0x01c69e5c,
+ 0x5889d1a4,
+ 0xc4000882,
+ 0xb4213c80,
+ 0xb104c000,
+ 0x22444220,
+ 0x71069e53,
+ 0x9324ffff,
+ 0xa60d9c22,
+ 0x8420c004,
+ 0x0ca2c829,
+ 0x0cb0c48e,
+ 0xac3dc030,
+ 0x8d00e133,
+ 0xa45dc038,
+ 0xac3dc030,
+ 0xa45dc038,
+ 0xac3dc010,
+ 0xa45dc018,
+ 0xac25c010,
+ 0xa445c018,
+ 0x570cb7a0,
+ 0x85029ea9,
+ 0x651ab540,
+ 0x4b98b541,
+ 0x468cb740,
+ 0xc00a0dc2,
+ 0x09c20d42,
+ 0x9aecffb4,
+ 0x0a58d251,
+ 0xaa01da08,
+ 0x9ead7502,
+ 0x9084c000,
+ 0x448cb580,
+ 0x5e8cb780,
+ 0xf2108702,
+ 0x850aa8a2,
+ 0x4418b544,
+ 0xa8a5f210,
+ 0x5084b540,
+ 0x4802b540,
+ 0xa100f20a,
+ 0xa086f208,
+ 0xa929f210,
+ 0xa089f208,
+ 0xa92ef210,
+ 0xa8b2f210,
+ 0xa10df208,
+ 0xa8b1f250,
+ 0xa112f208,
+ 0xa096f208,
+ 0xa09af208,
+ 0x0cf2c050,
+ 0xf24808c0,
+ 0xb421a085,
+ 0x0a0ac000,
+ 0x0c92c036,
+ 0xc000b481,
+ 0x1c8c0896,
+ 0xc000b421,
+ 0xf0318502,
+ 0xe1318c00,
+ 0x9ea38d80,
+ 0x5d0cb7c0,
+ 0xb9600d02,
+ 0xb55f4078,
+ 0xf2087ffc,
+ 0x9dbaa103,
+ 0x5d0dd122,
+ 0xf0299e2d,
+ 0xd012a8e5,
+ 0x5c882cae,
+ 0x5908d126,
+ 0xe0389e4a,
+ 0x0d04aa4d,
+ 0x50a828bc,
+ 0xa2413242,
+ 0x91c1ffff,
+ 0xaa61f010,
+ 0x0c8ec036,
+ 0xc000b481,
+ 0x7fecb73f,
+ 0xb4211c84,
+ 0xc014c000,
+ 0xd2089999,
+ 0x7500aa4d,
+ 0x9262c000,
+ 0xaa2df290,
+ 0x2ac8f011,
+ 0x91a4c000,
+ 0x2a00c800,
+ 0xc0007500,
+ 0xf20890c4,
+ 0xfff4a9c6,
+ 0xd2089ae8,
+ 0xf290a2cd,
+ 0xd011aaad,
+ 0x75002a54,
+ 0x9102c000,
+ 0x0a42c809,
+ 0x0a10c5b6,
+ 0x530cb580,
+ 0x460cb780,
+ 0xc0007500,
+ 0xc2809162,
+ 0x2a045a31,
+ 0x0ceac03e,
+ 0xc000b481,
+ 0x9280c000,
+ 0x448cb780,
+ 0xc0007502,
+ 0xc100915c,
+ 0x75402a80,
+ 0xd0010a0e,
+ 0xc0001a46,
+ 0x0a029060,
+ 0x0ceac03e,
+ 0xc000b481,
+ 0x7a6eb79f,
+ 0x7aeeb7bf,
+ 0x7b6eb7df,
+ 0x8c00c006,
+ 0xb7809c22,
+ 0xc0c8538c,
+ 0xb9600892,
+ 0xd01140f8,
+ 0xf0290948,
+ 0xd0a4aa45,
+ 0xb4815889,
+ 0x0890c000,
+ 0x9321ffff,
+ 0xa6059c22,
+ 0x460cb720,
+ 0x7d0cb780,
+ 0x0a047440,
+ 0x7d0cb580,
+ 0x9364c000,
+ 0x7108b783,
+ 0xc0007500,
+ 0xb72092c2,
+ 0xb780448c,
+ 0x7442510c,
+ 0xb5803a40,
+ 0xc000510c,
+ 0xb780919c,
+ 0xd2085d0c,
+ 0x7440a889,
+ 0x90a4c000,
+ 0xb5438506,
+ 0xc8017818,
+ 0xc0100a42,
+ 0xc0320a00,
+ 0xb4810cea,
+ 0xc008c000,
+ 0xc00208c2,
+ 0xb4211ce0,
+ 0xc008c000,
+ 0xc0300a42,
+ 0xb4820d0e,
+ 0xc450c000,
+ 0xc0080c82,
+ 0xb4811a40,
+ 0xb101c000,
+ 0xc0024220,
+ 0xc05038c0,
+ 0xb4210c82,
+ 0xc0c0c000,
+ 0x09920d82,
+ 0x0d02c008,
+ 0x0902c008,
+ 0x9aacfff4,
+ 0x0c86c450,
+ 0xb4810a02,
+ 0xb105c000,
+ 0xc0084220,
+ 0xc0300a00,
+ 0xb4820d0e,
+ 0x0c84c000,
+ 0x1a00c008,
+ 0xc000b481,
+ 0x4220b101,
+ 0x5a35c080,
+ 0x0902c801,
+ 0xc00e0940,
+ 0xd0a828fc,
+ 0xd0715910,
+ 0xc03029ce,
+ 0x9dc80c8a,
+ 0xc000b441,
+ 0x0c840a42,
+ 0xc000b481,
+ 0xc0007680,
+ 0xb7209182,
+ 0xb7405e8c,
+ 0xf21044bd,
+ 0xf3108a27,
+ 0xb5808021,
+ 0xc45044ad,
+ 0x0a020c86,
+ 0xc000b481,
+ 0x4220b105,
+ 0xb4810cec,
+ 0xb105c000,
+ 0x12d64220,
+ 0xc03408ea,
+ 0xb4210c9e,
+ 0xb780c000,
+ 0xf248570c,
+ 0xd053a891,
+ 0xf2101950,
+ 0x0d8288a3,
+ 0xc2800d06,
+ 0xb5805a0c,
+ 0x018b508c,
+ 0x9bbbffb4,
+ 0x0ca2c080,
+ 0xc000b4a1,
+ 0x478cb780,
+ 0xb4810c88,
+ 0xb7a0c000,
+ 0xc0025914,
+ 0xfff40d82,
+ 0x700a9a27,
+ 0x9364ffff,
+ 0x7d0cb780,
+ 0xa8adf210,
+ 0xa8a2f250,
+ 0x9e496243,
+ 0xc0007102,
+ 0x850690b8,
+ 0x7618b543,
+ 0x460cb780,
+ 0x0a827500,
+ 0x9204c001,
+ 0x448cb780,
+ 0xc0007502,
+ 0xb783933c,
+ 0x75007108,
+ 0x9282c000,
+ 0x458cb780,
+ 0xb5802a79,
+ 0xffb4458c,
+ 0xb7839b79,
+ 0x75007808,
+ 0x90c2c000,
+ 0x9850ffd4,
+ 0x7808b5a3,
+ 0x9815ffd4,
+ 0x7108b783,
+ 0xc0007500,
+ 0xc01493e2,
+ 0xb780998d,
+ 0xd2085d0c,
+ 0x7440a889,
+ 0x92c2c000,
+ 0x0a82c080,
+ 0x9240c000,
+ 0xffb40d82,
+ 0xb7839be1,
+ 0x75007208,
+ 0x90e2c000,
+ 0xffb40d82,
+ 0xc0009b8d,
+ 0x0d8290a0,
+ 0x98c2ffd4,
+ 0x0ca6c080,
+ 0xc000b4a1,
+ 0x0d92c002,
+ 0x99cafff4,
+ 0xffff700a,
+ 0x0dea9364,
+ 0x0d0a0982,
+ 0x0902c121,
+ 0x98f2ffb4,
+ 0x570cb780,
+ 0xa992f248,
+ 0x0d02c0a1,
+ 0x09c20d04,
+ 0x98ddffb4,
+ 0x0d82c0c0,
+ 0x0d420992,
+ 0xfff40942,
+ 0x0a0299cd,
+ 0x0ceac03e,
+ 0xc000b481,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xb720a61d,
+ 0xb720570c,
+ 0xd09149b5,
+ 0x75002e10,
+ 0xc0049e8f,
+ 0xd0119022,
+ 0x85062e14,
+ 0x7118b543,
+ 0x75000b82,
+ 0x7d0cb5e0,
+ 0x7608b5e3,
+ 0x9082c000,
+ 0x7198b543,
+ 0x2e10d111,
+ 0xc0007500,
+ 0xb5439082,
+ 0xd2117218,
+ 0x75002e10,
+ 0x9082c000,
+ 0x7298b543,
+ 0x7208b783,
+ 0xb7c07500,
+ 0xc0025f94,
+ 0xc8099144,
+ 0xc5ce0a42,
+ 0xc8090a00,
+ 0xc66808c2,
+ 0xc80908d0,
+ 0xc6ba0cc2,
+ 0xc8090cb0,
+ 0xc6880942,
+ 0xc8090920,
+ 0xc5c40d42,
+ 0xc8090d70,
+ 0xc74609c2,
+ 0xc80909b0,
+ 0xc7920dc2,
+ 0xc8090da0,
+ 0xc7fa0c42,
+ 0xc8090c40,
+ 0xc5b80842,
+ 0xc8090840,
+ 0xc5be0ac2,
+ 0xc8090a80,
+ 0xc5b80ec2,
+ 0xc8090ee0,
+ 0xc7fc0b42,
+ 0xf2100b40,
+ 0xf210a249,
+ 0xf210a0d1,
+ 0xf210a0d6,
+ 0xf210a159,
+ 0xf210a14e,
+ 0xf250a1dd,
+ 0xf250a1c2,
+ 0xf250a046,
+ 0xf210a049,
+ 0xf210a2c5,
+ 0xf250a2c2,
+ 0xf210a34d,
+ 0xd151aa4d,
+ 0x9eab0ef0,
+ 0x9c629ea4,
+ 0x598cb720,
+ 0xaa21d208,
+ 0x41abb580,
+ 0x41b3b720,
+ 0x438ab5e0,
+ 0x5014b520,
+ 0x590cb7c0,
+ 0xaa69f2d0,
+ 0xa8d9f208,
+ 0xc0007048,
+ 0xb7809142,
+ 0xf2485f8c,
+ 0xd152a88d,
+ 0x9e8c0df0,
+ 0xb7839c62,
+ 0x75007108,
+ 0x9062c004,
+ 0x4614b720,
+ 0xc0037640,
+ 0xb72093c4,
+ 0x7440438a,
+ 0x90e2c000,
+ 0xaa55da08,
+ 0xc0017048,
+ 0xb7a09004,
+ 0xb7835d14,
+ 0xb7a07188,
+ 0xda085f8c,
+ 0xb520a9d6,
+ 0x850a4392,
+ 0xd2107500,
+ 0xf208a0aa,
+ 0xe001a8a9,
+ 0x9d4f8d24,
+ 0x9e8c1d84,
+ 0xf2089c62,
+ 0x9eaeaa31,
+ 0x9ea40d8a,
+ 0xc0009c62,
+ 0xb7809180,
+ 0xf2085f8c,
+ 0x9ea6a891,
+ 0x5d14b7a0,
+ 0x9e8c0d86,
+ 0xb7809c62,
+ 0xb723438a,
+ 0xb7207208,
+ 0x0a045994,
+ 0x438ab580,
+ 0xaa29d210,
+ 0xb5807440,
+ 0xc0014849,
+ 0xb7a09024,
+ 0xf2105a8c,
+ 0x9eaba8c1,
+ 0x9c629e8c,
+ 0xaa29d210,
+ 0xc0007500,
+ 0xf20892a4,
+ 0xf210a9a1,
+ 0x0d82a85d,
+ 0x9c629e84,
+ 0xa021f208,
+ 0xa845f250,
+ 0x09829eab,
+ 0x9c629e84,
+ 0xaa21da08,
+ 0x7b8ab581,
+ 0x448cb780,
+ 0xc0007502,
+ 0x0d8690bc,
+ 0x9a4cffb4,
+ 0xaa29d210,
+ 0xc0007500,
+ 0xb7209122,
+ 0xb780558c,
+ 0x3a08412d,
+ 0x90e0c000,
+ 0x558cb720,
+ 0x412db780,
+ 0xb5802a75,
+ 0xb723412d,
+ 0xb7807108,
+ 0x7440510c,
+ 0xb5803a04,
+ 0xc000510c,
+ 0xd15191c4,
+ 0xb7400e70,
+ 0xd208598c,
+ 0xd208a882,
+ 0xb520a881,
+ 0xd8085014,
+ 0xb79fa0cd,
+ 0xb7bf7e6e,
+ 0xb7df7eee,
+ 0xb7ff7f6e,
+ 0xc0027fee,
+ 0x9c228c00,
+ 0xb783a60d,
+ 0x75007208,
+ 0x5f94b7a0,
+ 0xc0000b02,
+ 0xb7a09262,
+ 0xf2105a8c,
+ 0xf208a83d,
+ 0x0d8aa9a1,
+ 0x9c629e84,
+ 0xa021f208,
+ 0xa825f250,
+ 0x09869eab,
+ 0x9c629e84,
+ 0x7208b783,
+ 0xb7c07500,
+ 0xc0005094,
+ 0xb7609124,
+ 0xf2105a94,
+ 0x9e84a825,
+ 0x03019c62,
+ 0x5d0cb720,
+ 0x4129b780,
+ 0x02837500,
+ 0x9224c000,
+ 0x7208b783,
+ 0xc0007500,
+ 0xf25090c4,
+ 0x9ea4aa21,
+ 0xf2109c62,
+ 0x9eb1aa35,
+ 0x9ea415e2,
+ 0xf2109c62,
+ 0x9eb3aa39,
+ 0x9ea4018b,
+ 0xb7209c62,
+ 0xb780570c,
+ 0xc40049ad,
+ 0x75002a00,
+ 0x9102c000,
+ 0xd2088502,
+ 0x8506a12b,
+ 0xa123d208,
+ 0x510cb780,
+ 0x2a3dcffe,
+ 0x510cb580,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x4b0cb720,
+ 0xc0ff9e5c,
+ 0xc0ff2a40,
+ 0x710228c0,
+ 0xc0008502,
+ 0x85069062,
+ 0x4b9cb540,
+ 0x4b14b560,
+ 0xa6059c22,
+ 0xd0519e5d,
+ 0x75002a50,
+ 0x90e4c000,
+ 0x4b8cb780,
+ 0xc0007500,
+ 0xc0c09142,
+ 0xc0120d82,
+ 0x0d0209c2,
+ 0xffd40942,
+ 0xb7809bf9,
+ 0xc0344b0c,
+ 0xb4810cb6,
+ 0xc034c000,
+ 0xb4a20d32,
+ 0xb5a0c000,
+ 0xb79f4a8c,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa61d9c22,
+ 0xb7838420,
+ 0x75007108,
+ 0x9122c000,
+ 0x598cb780,
+ 0xa881d288,
+ 0xc0187440,
+ 0xb7409124,
+ 0xb7a0468c,
+ 0x0dc25694,
+ 0xc002098e,
+ 0x048b0d42,
+ 0x9af2ff94,
+ 0xaa35f210,
+ 0x560cb7c0,
+ 0xa8a5f210,
+ 0xa8aaf210,
+ 0x570cb7a0,
+ 0x478cb580,
+ 0xa0d5f208,
+ 0xaa39da10,
+ 0xa8bdda10,
+ 0xa0def208,
+ 0x08d0d252,
+ 0xa259f208,
+ 0xa0c1f248,
+ 0xa922da10,
+ 0x0a50d131,
+ 0xa881da08,
+ 0x404bb740,
+ 0xa927f250,
+ 0xda909e53,
+ 0x60b2a8b2,
+ 0x5a7fc080,
+ 0x5a71c200,
+ 0x58930098,
+ 0xe2105894,
+ 0xdffc80a3,
+ 0x59157e7e,
+ 0x5b90c100,
+ 0xf248018b,
+ 0xc000a0dd,
+ 0xe10091e2,
+ 0xc0005d40,
+ 0xda909164,
+ 0x8502aa35,
+ 0x4792b520,
+ 0x489ab540,
+ 0x468ab580,
+ 0xaa21f288,
+ 0x0950d132,
+ 0xa255f248,
+ 0xa259f248,
+ 0xa8a1da10,
+ 0xaa41d810,
+ 0xa93bf248,
+ 0xa8bada48,
+ 0xf3106218,
+ 0xda488021,
+ 0xf248a93d,
+ 0xf288a0ca,
+ 0xda48a249,
+ 0xf248aa29,
+ 0xf208a151,
+ 0xda48a923,
+ 0x6218a8ae,
+ 0x5a10c200,
+ 0x8021f310,
+ 0xa241f208,
+ 0xa927f208,
+ 0xf20a9e4c,
+ 0x6098a928,
+ 0xf210588c,
+ 0xe2108023,
+ 0xf20882a3,
+ 0xda48a249,
+ 0xf208a8aa,
+ 0xda10a0cd,
+ 0xd810aa21,
+ 0xf208a8c1,
+ 0xf248a0c6,
+ 0x0a04a937,
+ 0xb7406243,
+ 0xf3105e8c,
+ 0xf2888021,
+ 0xda10a245,
+ 0xf008a8a1,
+ 0xda10a953,
+ 0xf00aa8a2,
+ 0x58a0a954,
+ 0x80a3e210,
+ 0xe0205c9c,
+ 0xda4882a3,
+ 0xf208aa2d,
+ 0xf208a0ad,
+ 0xf248a0b2,
+ 0xf248a0c5,
+ 0xf208a0ce,
+ 0xd810a251,
+ 0xc004a941,
+ 0xb5201880,
+ 0xd1314f0c,
+ 0xda080a54,
+ 0xc002a881,
+ 0xb5201c80,
+ 0x59404f94,
+ 0xf2885951,
+ 0x58c0a155,
+ 0xf28858d1,
+ 0xc42ea0d9,
+ 0x0a020cf2,
+ 0xc000b481,
+ 0x4220b101,
+ 0x74402884,
+ 0x0b50d132,
+ 0x9102c000,
+ 0xaa41da10,
+ 0x753ec09c,
+ 0x9152c011,
+ 0x08c6c0c0,
+ 0x0ce2c050,
+ 0xc000b421,
+ 0xa939f210,
+ 0x0a30d131,
+ 0xa881da08,
+ 0x28a0d052,
+ 0x58917640,
+ 0x4e8cb520,
+ 0x9222c000,
+ 0xc0600a02,
+ 0xb4810cae,
+ 0xda10c000,
+ 0x7440a8a1,
+ 0x9302c000,
+ 0xb5408502,
+ 0xc0004e9c,
+ 0xc2009260,
+ 0x74802900,
+ 0x9122c000,
+ 0xc0600a0a,
+ 0xb4810cae,
+ 0xc000c000,
+ 0x0a0690e0,
+ 0x0caec060,
+ 0xc000b481,
+ 0xaa39f210,
+ 0x75002a04,
+ 0xb540850a,
+ 0xc000491c,
+ 0x850490a2,
+ 0x491cb540,
+ 0x7108b783,
+ 0xb7e07500,
+ 0xc0005f94,
+ 0xb78392e2,
+ 0x75007208,
+ 0x9244c000,
+ 0x460cb780,
+ 0xc0007500,
+ 0xb78391a2,
+ 0x75007288,
+ 0x9104c000,
+ 0x5a94b760,
+ 0xaa61f210,
+ 0x9c629ea4,
+ 0xaa39f210,
+ 0x75002a20,
+ 0x90e2c000,
+ 0xaa21da10,
+ 0xc0007500,
+ 0xb7809244,
+ 0xb720598c,
+ 0xda08530c,
+ 0x9e8ca98e,
+ 0xb7839c62,
+ 0x75007108,
+ 0x90a2c000,
+ 0xb5438506,
+ 0xf2107b18,
+ 0xd011a8b9,
+ 0x75002a14,
+ 0x90e2c001,
+ 0x2a12d011,
+ 0x85167500,
+ 0x0a7ecffe,
+ 0x0cfac038,
+ 0x8d28e001,
+ 0x4d1cb540,
+ 0xc000b481,
+ 0xa8c1da10,
+ 0x6314b720,
+ 0x0a6ac284,
+ 0x856ac684,
+ 0x7462c058,
+ 0x5214b520,
+ 0x0c82c038,
+ 0x4c28b324,
+ 0xc000b481,
+ 0xc0020882,
+ 0xb4210c80,
+ 0xffd4c000,
+ 0xb7809b4a,
+ 0xc03e490c,
+ 0xb4810c82,
+ 0xb720c000,
+ 0xc0504d0c,
+ 0xb4210c82,
+ 0xda10c000,
+ 0xf288a921,
+ 0xda10a8d5,
+ 0x6123a926,
+ 0xda109e53,
+ 0x6097aa21,
+ 0x5e14b720,
+ 0xb5418702,
+ 0x857f7c82,
+ 0x459ab540,
+ 0xb540851a,
+ 0x0d86449a,
+ 0xb5801a04,
+ 0xb5404d8c,
+ 0x8526405b,
+ 0x415bb540,
+ 0x460ab540,
+ 0x18a05891,
+ 0x40cbb520,
+ 0x7fe4b55f,
+ 0x9baac014,
+ 0x7fe4b75f,
+ 0xb5438506,
+ 0xb5437a18,
+ 0xb5447a80,
+ 0xb5444000,
+ 0xb5434080,
+ 0xda107b80,
+ 0xf288a8a6,
+ 0x9e49aa55,
+ 0x5694b720,
+ 0x7c00b543,
+ 0xb7206243,
+ 0x8502434d,
+ 0xc10158c8,
+ 0x9e892880,
+ 0xa9c2da10,
+ 0xb5400a82,
+ 0xb5404e1c,
+ 0x5dc0519c,
+ 0x2dc0c0ff,
+ 0x3db0ca01,
+ 0x5a11c200,
+ 0x450ab580,
+ 0xfff43596,
+ 0xc0c099d3,
+ 0xc0120d82,
+ 0x0d0209c2,
+ 0xffd40942,
+ 0x714e99e7,
+ 0xc0018546,
+ 0x9dcf9148,
+ 0x99d5fff4,
+ 0x0d82c0c0,
+ 0x09c2c012,
+ 0x09060d02,
+ 0x99d8ffd4,
+ 0x1a70d091,
+ 0x0a027148,
+ 0x0a42d00b,
+ 0xa9c2da10,
+ 0x5a28c200,
+ 0x5dc09ea1,
+ 0x2dc0c0ff,
+ 0x3db0c801,
+ 0xfff43596,
+ 0xd05199a9,
+ 0xc2000a50,
+ 0xc2005a40,
+ 0x714e5ac1,
+ 0xfffe8506,
+ 0xf2509346,
+ 0x7500aa71,
+ 0x857fcfce,
+ 0x7f9cb540,
+ 0x9102c000,
+ 0xa9bef210,
+ 0x450ab760,
+ 0x9c629ea4,
+ 0xc0140d82,
+ 0xb78398e4,
+ 0x75007a88,
+ 0xb5438502,
+ 0xc0027a18,
+ 0xb7a092a4,
+ 0x0b025a8c,
+ 0xb783068f,
+ 0x75007108,
+ 0x9082c002,
+ 0x7208b783,
+ 0xc0017500,
+ 0xb78393e2,
+ 0x75007b08,
+ 0x9182c000,
+ 0xa9a2f208,
+ 0x7b08b5c3,
+ 0xa869f250,
+ 0x9c629e84,
+ 0x430ab500,
+ 0x7c08b783,
+ 0xc0007500,
+ 0xf2109382,
+ 0x9eaba825,
+ 0x7c08b5c3,
+ 0x9c629e84,
+ 0xaa21f250,
+ 0x9c629ea4,
+ 0xa9a1f208,
+ 0xa83df210,
+ 0x9e840d86,
+ 0xf2509c62,
+ 0x9eabaa25,
+ 0xa021f208,
+ 0x9ea40986,
+ 0xb7839c62,
+ 0x75007c08,
+ 0x91e4c000,
+ 0xc0140d86,
+ 0xb7839898,
+ 0x75007c08,
+ 0x9342ffff,
+ 0x90a0c000,
+ 0xc0140d86,
+ 0xb783988e,
+ 0x75007a88,
+ 0x9262fffd,
+ 0x0d82c0c0,
+ 0x09c2c012,
+ 0x09060d02,
+ 0x9946ffd4,
+ 0x0a02c801,
+ 0x518cb580,
+ 0x0d82c0c0,
+ 0x09c2c012,
+ 0x09420d02,
+ 0x993affd4,
+ 0x5194b760,
+ 0x991afff4,
+ 0xfff40d86,
+ 0xc0c09928,
+ 0xc0120d82,
+ 0x0d0209c2,
+ 0xffd40906,
+ 0x8502992b,
+ 0x0892c006,
+ 0x0c9ac430,
+ 0xb5400902,
+ 0xc006519c,
+ 0xb4418510,
+ 0xb104c000,
+ 0x2a404220,
+ 0x9d4f7500,
+ 0x4422b313,
+ 0xe0000087,
+ 0xffff1884,
+ 0xb7409284,
+ 0xc0064614,
+ 0xc4300892,
+ 0x09020c9a,
+ 0x8512c006,
+ 0xc000b441,
+ 0x4220b104,
+ 0x2a00c002,
+ 0x9d537500,
+ 0x4422b314,
+ 0xe0000089,
+ 0xffff1884,
+ 0x0a029264,
+ 0x0ceac03e,
+ 0x40e8b960,
+ 0xc000b481,
+ 0x93c1ffff,
+ 0xc0007680,
+ 0x0a029122,
+ 0x0ceac03e,
+ 0xc000b481,
+ 0x9180c000,
+ 0x448cb780,
+ 0x088a7504,
+ 0x0ceac03e,
+ 0x1894d00c,
+ 0xc000b421,
+ 0x0d82c0c0,
+ 0x0d0209e2,
+ 0xffd40942,
+ 0x0a0298d7,
+ 0x0cb6c034,
+ 0xc000b481,
+ 0x7deeb79f,
+ 0x7e6eb7bf,
+ 0x7eeeb7df,
+ 0x7f6eb7ff,
+ 0x8c20c002,
+ 0xa60d9c22,
+ 0x7efec01c,
+ 0xc0000a82,
+ 0xc0c09182,
+ 0xc0120d82,
+ 0x0d0209c2,
+ 0xffd40906,
+ 0xc00098b9,
+ 0xc4349240,
+ 0x0a020cb2,
+ 0xc000b481,
+ 0x4220b101,
+ 0x74402884,
+ 0x90e2c000,
+ 0x7a08b783,
+ 0xc0097500,
+ 0xb78091a2,
+ 0x75024e0c,
+ 0x90c4c000,
+ 0xc0140d82,
+ 0x3ac09a29,
+ 0x5694b740,
+ 0x560cb740,
+ 0xa8c5d810,
+ 0xaa55f088,
+ 0x4592b720,
+ 0x9e496243,
+ 0x5a11c200,
+ 0xba090a04,
+ 0xba244002,
+ 0x70484002,
+ 0x06850305,
+ 0x9138c000,
+ 0x490cb780,
+ 0xb5802a51,
+ 0xc003490c,
+ 0xf21091c0,
+ 0x2a04aa39,
+ 0xc0027500,
+ 0xb78093a2,
+ 0x7440490c,
+ 0x3942d011,
+ 0x490cb540,
+ 0x929cc002,
+ 0x4792b760,
+ 0xba249e5c,
+ 0xc002400a,
+ 0xc00291a2,
+ 0xb760911c,
+ 0xb740650a,
+ 0x9e995f04,
+ 0xba099e2d,
+ 0xd0a24003,
+ 0x9e485e7f,
+ 0x5a6dc200,
+ 0xc2000208,
+ 0xd2265a17,
+ 0x0c065908,
+ 0x5a14c200,
+ 0x9e401208,
+ 0xa94ee038,
+ 0x4002ba24,
+ 0x9e545090,
+ 0xc0017902,
+ 0xb7819102,
+ 0x75004b88,
+ 0x9064c001,
+ 0x470ab780,
+ 0xba249e48,
+ 0x70084002,
+ 0x9378c000,
+ 0xc0007640,
+ 0xb78190e4,
+ 0x75024b08,
+ 0x92c2c000,
+ 0x1e32d011,
+ 0x478ab580,
+ 0x48fd9e54,
+ 0x470ab560,
+ 0x4b90b501,
+ 0xb5402959,
+ 0x20c2490c,
+ 0xc000a0c1,
+ 0x850290a0,
+ 0x4b98b541,
+ 0x458ab780,
+ 0x400aba24,
+ 0x90fcc000,
+ 0x650ab780,
+ 0xb5800a04,
+ 0xb720650a,
+ 0xc03e490c,
+ 0xb4210c82,
+ 0xb780c000,
+ 0x0a04458a,
+ 0x458ab580,
+ 0x9a96c014,
+ 0x7108b783,
+ 0xc0027500,
+ 0xb7839222,
+ 0x75007208,
+ 0x9182c002,
+ 0x518cb780,
+ 0x75002a40,
+ 0x90e4c000,
+ 0x4008b784,
+ 0xc002751a,
+ 0xb7809024,
+ 0xb721580c,
+ 0xda087c92,
+ 0x9e48a881,
+ 0xc0007002,
+ 0xb7809284,
+ 0x8502430a,
+ 0x7c9ab541,
+ 0x440ab580,
+ 0x4412b760,
+ 0x530cb780,
+ 0xb5438506,
+ 0xb5437b18,
+ 0x9ea47c18,
+ 0xf2109c62,
+ 0x2a10aa39,
+ 0xc0007500,
+ 0xb78393e2,
+ 0x75007c08,
+ 0x90e4c000,
+ 0x7c8ab781,
+ 0xc0007502,
+ 0xb78392a4,
+ 0x75007b08,
+ 0xd0010902,
+ 0xc4380922,
+ 0x0a020c82,
+ 0xc000b481,
+ 0x4220b101,
+ 0x309428f1,
+ 0x0c82c038,
+ 0xc000b421,
+ 0x983ec014,
+ 0x4e0cb780,
+ 0xa955f288,
+ 0x71040a04,
+ 0x4e0cb580,
+ 0x90a4c000,
+ 0xb5408502,
+ 0xda104e1c,
+ 0xb720a8a5,
+ 0x58914592,
+ 0xba0960a3,
+ 0x9e4c4003,
+ 0x08843a84,
+ 0x020b7102,
+ 0x2a3dcffe,
+ 0x4426b354,
+ 0xd0510289,
+ 0x744028d0,
+ 0x9142c000,
+ 0x0d82c0c0,
+ 0x09c2c012,
+ 0x09420d02,
+ 0x9b84ffb4,
+ 0x518cb780,
+ 0xc0007500,
+ 0x9eab90a2,
+ 0x9b71ffd4,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0xa205f839,
+ 0x4008b724,
+ 0x5204b740,
+ 0x448ab780,
+ 0x5908d0a6,
+ 0xb7409e2d,
+ 0xe030570c,
+ 0xb760a94e,
+ 0xb744639c,
+ 0xb7444098,
+ 0x1a044000,
+ 0x448ab580,
+ 0xa8cdc030,
+ 0x5a40e200,
+ 0x0a20d251,
+ 0xa882da08,
+ 0x82a3e210,
+ 0x5194b540,
+ 0x5c905c95,
+ 0x4008b524,
+ 0x92c4c001,
+ 0x4088b784,
+ 0xd3f10a04,
+ 0x744428ce,
+ 0x4088b584,
+ 0x9034c001,
+ 0x7f94b760,
+ 0xb5438506,
+ 0x24a67a98,
+ 0xb5437640,
+ 0xb5207c18,
+ 0xc0005194,
+ 0xd1319202,
+ 0xb78008a0,
+ 0xc801402b,
+ 0x9e483c80,
+ 0x5a40c200,
+ 0x2a40c0ff,
+ 0xb5803208,
+ 0x0806518c,
+ 0xaa1df9f8,
+ 0xb7249c22,
+ 0xb7404088,
+ 0xd0a65e04,
+ 0x9e2d5904,
+ 0xaa4dc830,
+ 0x448ab580,
+ 0x09a0d132,
+ 0x458ab720,
+ 0xaa61d810,
+ 0x4002ba19,
+ 0x5a11c200,
+ 0x70c81a04,
+ 0x9104c000,
+ 0x7f8cb780,
+ 0x3a00c040,
+ 0x7f8cb580,
+ 0x4e8cb720,
+ 0x0a18d011,
+ 0xc00070c8,
+ 0xb7809104,
+ 0xc0107f8c,
+ 0xb5803a00,
+ 0xd0117f8c,
+ 0x70c80a1c,
+ 0x9104c000,
+ 0x7f8cb780,
+ 0x3a00c020,
+ 0x7f8cb580,
+ 0x560cb780,
+ 0xa916f288,
+ 0xa919f288,
+ 0xb7209e50,
+ 0xd011460a,
+ 0x62411a24,
+ 0x4002ba09,
+ 0x704800b2,
+ 0x9106c000,
+ 0x7f8cb780,
+ 0x2a7acfff,
+ 0x7f8cb580,
+ 0x1a22d011,
+ 0x62459e52,
+ 0xc0007048,
+ 0xb7809106,
+ 0xc7fe7f8c,
+ 0xb5802a7e,
+ 0xb7407f8c,
+ 0xd0a2451a,
+ 0xf3105e11,
+ 0x70c88821,
+ 0x9104c000,
+ 0x7f8cb780,
+ 0x2a4ecfff,
+ 0x7f8cb580,
+ 0x568cb740,
+ 0x7f8cb720,
+ 0xaa45d808,
+ 0x9e8a9e50,
+ 0x5a11c200,
+ 0x62091a04,
+ 0x5194b720,
+ 0xba240a04,
+ 0x70c84002,
+ 0xb5202494,
+ 0xc0005194,
+ 0xc8019118,
+ 0xb5203c80,
+ 0xc0005194,
+ 0xd81091c0,
+ 0xc801aa61,
+ 0x9e483c80,
+ 0x5a40c200,
+ 0x2a40c0ff,
+ 0xb5803208,
+ 0xf008518c,
+ 0xc040aa59,
+ 0x75002a00,
+ 0x9102c000,
+ 0x518cb780,
+ 0x3a00c101,
+ 0x518cb580,
+ 0x5194b760,
+ 0x9a60ffd4,
+ 0xf9f80802,
+ 0x9c22aa1d,
+ 0x5714b700,
+ 0x0e04d251,
+ 0x560cb760,
+ 0xa881da08,
+ 0x2dfcc00e,
+ 0x0cbac034,
+ 0xa961f008,
+ 0xc0805895,
+ 0x9e825810,
+ 0xc000b441,
+ 0x454ab780,
+ 0xa963f008,
+ 0x5a10c200,
+ 0x8021f310,
+ 0xa8e9f008,
+ 0xf0080c84,
+ 0xb421a261,
+ 0xb780c000,
+ 0xf00846ca,
+ 0xf310a96b,
+ 0xf0088021,
+ 0x0c84a8ed,
+ 0xa269f008,
+ 0xc000b421,
+ 0x46cab780,
+ 0xa96ff008,
+ 0x8021f310,
+ 0xa8f5f008,
+ 0xf0080c8c,
+ 0xb421a26d,
+ 0xf008c000,
+ 0x0c84a97d,
+ 0xc000b441,
+ 0x4d8cb780,
+ 0xd2240a08,
+ 0x72445890,
+ 0x931cc000,
+ 0x0e04d131,
+ 0xa903da08,
+ 0xe2109e4c,
+ 0x710288a1,
+ 0x91d6c000,
+ 0xaa75f008,
+ 0xa8fdf008,
+ 0x0a00c010,
+ 0xa275f008,
+ 0x0880c008,
+ 0xa0fdf008,
+ 0x4f0cb780,
+ 0x0cdac034,
+ 0xc000b481,
+ 0x4f8cb720,
+ 0xb4210c84,
+ 0xb780c000,
+ 0x0ce44f0c,
+ 0xb4810a40,
+ 0xb720c000,
+ 0x0c844f8c,
+ 0xb42108c0,
+ 0xb780c000,
+ 0xb7204f0c,
+ 0x1ce44f8c,
+ 0x0a00c010,
+ 0x4f0cb580,
+ 0xaa65f048,
+ 0x0880c008,
+ 0x4f8cb520,
+ 0xc000b481,
+ 0xa8edf048,
+ 0xb4210c84,
+ 0xf048c000,
+ 0xf048aa65,
+ 0x0c84a8ed,
+ 0x0a00c010,
+ 0xa265f048,
+ 0xaa75f048,
+ 0x0880c008,
+ 0xa0edf048,
+ 0xc000b481,
+ 0xa965f088,
+ 0xb4410c88,
+ 0xd131c000,
+ 0xb7800c80,
+ 0xf088402b,
+ 0xcffea967,
+ 0xf3102a40,
+ 0xf0888021,
+ 0x0c88a969,
+ 0xa265f088,
+ 0xc000b441,
+ 0x0c80d131,
+ 0x402bb780,
+ 0xa96bf088,
+ 0x2a40cffe,
+ 0x8021f310,
+ 0xa97df048,
+ 0xf0881c8c,
+ 0xb441a269,
+ 0xd131c000,
+ 0xb7800c80,
+ 0xf048402b,
+ 0x76c0a97f,
+ 0x5a11c200,
+ 0x5a14c200,
+ 0x8021f310,
+ 0xa27df048,
+ 0x9182c001,
+ 0x454ab720,
+ 0xb4211ca8,
+ 0xb780c000,
+ 0x0c8446ca,
+ 0x5a0dc200,
+ 0x58c0c200,
+ 0xb4813242,
+ 0xd131c000,
+ 0xd8080d04,
+ 0x0c8caa41,
+ 0x588cc200,
+ 0x28fccffe,
+ 0x5a50c200,
+ 0xb4213098,
+ 0xd251c000,
+ 0xd8080d04,
+ 0x0ca0aa41,
+ 0x5a11c200,
+ 0x2a3c1a10,
+ 0x3a00c004,
+ 0xc000b481,
+ 0x4d8cb780,
+ 0xb5800a04,
+ 0x9c224d8c,
+ 0xc43ea68d,
+ 0x0a020c92,
+ 0xc000b481,
+ 0x4220b103,
+ 0x5c8cb780,
+ 0xa885da08,
+ 0xa909da08,
+ 0xa189da08,
+ 0xa081da08,
+ 0xa105da08,
+ 0x0a020cd0,
+ 0xc000b481,
+ 0x4220b103,
+ 0x5c0cb720,
+ 0x518cb780,
+ 0x5c8cb7a0,
+ 0x40b3b720,
+ 0x412bb740,
+ 0x412bb560,
+ 0x75002a40,
+ 0xb5200303,
+ 0xb5404033,
+ 0xc00040ab,
+ 0xb78490e2,
+ 0x750a4008,
+ 0x90f2c000,
+ 0x4008b784,
+ 0xc00d751a,
+ 0xb7819204,
+ 0x0a047c8a,
+ 0x7c8ab581,
+ 0x0ca6c450,
+ 0xb4810a02,
+ 0xb103c000,
+ 0x00874220,
+ 0x2880c031,
+ 0xc00f0207,
+ 0xd0a42a7c,
+ 0xd22859e1,
+ 0x000759c1,
+ 0x287ccffe,
+ 0x0a020c88,
+ 0xc000b481,
+ 0x4220b103,
+ 0x5bc1c180,
+ 0xcffe9e9a,
+ 0x0cbc2d7c,
+ 0xc000b481,
+ 0x4220b103,
+ 0xb7400087,
+ 0xb781568c,
+ 0xc0fc7b8a,
+ 0xd0f22880,
+ 0xd0a4283e,
+ 0x9e415b19,
+ 0xa8d2d888,
+ 0xb5019e95,
+ 0xdffc7b92,
+ 0x12187e7e,
+ 0x4002ba1c,
+ 0x91c2c002,
+ 0xc00076c2,
+ 0xb7809384,
+ 0xb740480a,
+ 0xba245f04,
+ 0xc2004002,
+ 0x58ed58ff,
+ 0x589700c2,
+ 0x5908d0a6,
+ 0x58949e2d,
+ 0x9e591242,
+ 0xa8cee038,
+ 0x4a7d5230,
+ 0x249e9ea7,
+ 0xc001a0c2,
+ 0xb7809180,
+ 0xda08468a,
+ 0xba24a8a1,
+ 0x70484002,
+ 0x907cc001,
+ 0x488ab780,
+ 0x4812b720,
+ 0x5f04b740,
+ 0xb5800a04,
+ 0xba09488a,
+ 0xd0a24003,
+ 0x9e495e7f,
+ 0xc2009e2d,
+ 0x02185a6d,
+ 0x5a17c200,
+ 0x5908d226,
+ 0x5a14c200,
+ 0xe0389ea7,
+ 0x149ea94d,
+ 0x08869e4c,
+ 0x312250b0,
+ 0xb780a141,
+ 0x0a04480a,
+ 0x480ab580,
+ 0x7188b783,
+ 0xb7837500,
+ 0xc0007208,
+ 0xc01c90c4,
+ 0xc0027d3e,
+ 0xc01c9184,
+ 0xd0117d3e,
+ 0xd02103f0,
+ 0x76c20527,
+ 0xaa39f210,
+ 0xd0010882,
+ 0x2a040892,
+ 0xb7407902,
+ 0xc0005a8c,
+ 0xd80890e2,
+ 0x0a04aa49,
+ 0xa249d808,
+ 0xa94bf008,
+ 0xa94cf00a,
+ 0x8027f310,
+ 0x82a5e010,
+ 0xa249f008,
+ 0xa0cdf008,
+ 0x7688b783,
+ 0x08827500,
+ 0x0892d002,
+ 0x0a0276c2,
+ 0x0a42d002,
+ 0xc0007848,
+ 0xc07c90c2,
+ 0xda088542,
+ 0x76c2a123,
+ 0xa953f008,
+ 0x90c4c000,
+ 0xaa41da08,
+ 0x9080c000,
+ 0xaa21da08,
+ 0x80a1e310,
+ 0xaa4dd808,
+ 0xa0d1f008,
+ 0xd8080a04,
+ 0xc006a24d,
+ 0xb72091c0,
+ 0x9d2e5a8c,
+ 0xaa39f210,
+ 0x8136c301,
+ 0x8120c201,
+ 0x4525b740,
+ 0x75002a04,
+ 0x8027f010,
+ 0x8221f310,
+ 0xb5800103,
+ 0xc001452d,
+ 0x76c290a2,
+ 0x90c4c000,
+ 0xaa41da08,
+ 0x9080c000,
+ 0xaa21da08,
+ 0xa25dd808,
+ 0xc00176c6,
+ 0x76c09082,
+ 0x91a4c000,
+ 0xd80874c0,
+ 0xe002a953,
+ 0xf2108d2a,
+ 0xd808802d,
+ 0xc000a251,
+ 0x74c092c0,
+ 0xa947d848,
+ 0x8d26e002,
+ 0x9160c000,
+ 0xaa41da08,
+ 0xd84874c0,
+ 0xd808a947,
+ 0xe002a25d,
+ 0xf2108d2a,
+ 0xd848802d,
+ 0xb783a245,
+ 0x75007308,
+ 0x9302c000,
+ 0x440ab780,
+ 0x70489e41,
+ 0x9244c000,
+ 0xb5438502,
+ 0xc43a7318,
+ 0x0a020c82,
+ 0xc000b481,
+ 0x4220b103,
+ 0x29fecfef,
+ 0x0c82c03a,
+ 0xc000b461,
+ 0x440ab780,
+ 0x70489e41,
+ 0xd0020882,
+ 0x76c60892,
+ 0xd0010a02,
+ 0x78480a42,
+ 0x9242c000,
+ 0xb5438506,
+ 0xc43a7318,
+ 0x0a020c82,
+ 0xc000b481,
+ 0x4220b103,
+ 0x3980c011,
+ 0x0c82c03a,
+ 0xc000b461,
+ 0xc0017780,
+ 0x76c091a2,
+ 0x92e4c000,
+ 0xaa21da08,
+ 0xa947f008,
+ 0xa8d5d808,
+ 0x8021f310,
+ 0xa8dad808,
+ 0xa245f008,
+ 0x0c849e44,
+ 0xa0dad808,
+ 0xd80800c2,
+ 0xc000a0d5,
+ 0xda0892a0,
+ 0xf008aa41,
+ 0xd848a95b,
+ 0xf310a8c9,
+ 0xd8488021,
+ 0xf008a8ce,
+ 0x9e44a259,
+ 0xd8480c84,
+ 0x00c2a0ce,
+ 0xa0c9d848,
+ 0xaa5dd808,
+ 0xa95ff008,
+ 0xa940f04a,
+ 0xa9c7f048,
+ 0x8021f310,
+ 0xa94ff048,
+ 0xa25df008,
+ 0x8221f210,
+ 0xa8c2d848,
+ 0xa241f048,
+ 0x8037f010,
+ 0x80a9e210,
+ 0xd8480c84,
+ 0xf048a0c2,
+ 0xf048a245,
+ 0xb7bfa0cd,
+ 0xb7df7eee,
+ 0xb7ff7f6e,
+ 0x8c607fee,
+ 0xc0369c22,
+ 0x9e5c0cfe,
+ 0xc000b481,
+ 0xc0029c22,
+ 0xd01172c0,
+ 0x9c221c0a,
+ 0x9c220802,
+ 0x598cb780,
+ 0xda088502,
+ 0xf010a88d,
+ 0xf010a16b,
+ 0xf010a16f,
+ 0xd810a173,
+ 0xd810a16f,
+ 0xf010a16b,
+ 0x9c22a0e1,
+ 0x5b14b720,
+ 0xa8e9d810,
+ 0x414bb520,
+ 0xaa71f010,
+ 0x5b8cb740,
+ 0x5a0fc200,
+ 0xa245f048,
+ 0xa8edf010,
+ 0x41cdb520,
+ 0xaa69f010,
+ 0x414db580,
+ 0xa96ff010,
+ 0xa869f010,
+ 0x8021e210,
+ 0xa041f008,
+ 0xc0309c22,
+ 0xb740ac7d,
+ 0xc038591c,
+ 0xc030a45d,
+ 0xc038ac7d,
+ 0xc030a45d,
+ 0xc038ac7d,
+ 0xb720a45d,
+ 0xb7805894,
+ 0x8706598c,
+ 0x5d0cb720,
+ 0x8576c002,
+ 0xa108d28a,
+ 0x485bb540,
+ 0xb5408502,
+ 0xb5404039,
+ 0x9c2240a1,
+ 0x8440a61d,
+ 0x7188b783,
+ 0x07877500,
+ 0x93c2c000,
+ 0x5914b720,
+ 0x4149b720,
+ 0x2a1ed3f1,
+ 0x7524c004,
+ 0xd0030902,
+ 0x9e4f1922,
+ 0x42440a7f,
+ 0xb55f8752,
+ 0x8f387e64,
+ 0x7ee4b55f,
+ 0xb55f8f0c,
+ 0x20947f64,
+ 0x2a44c002,
+ 0x9340c000,
+ 0x5914b720,
+ 0x4149b720,
+ 0x2a1ed3f1,
+ 0x0902753c,
+ 0x1922d003,
+ 0x0a7f9e4f,
+ 0x87324244,
+ 0x7e64b55f,
+ 0xb55f8f20,
+ 0x8f087ee4,
+ 0x7f64b55f,
+ 0x2a742094,
+ 0xb5203098,
+ 0xb7c04149,
+ 0xb7a0598c,
+ 0xb7a0588c,
+ 0xd0115d94,
+ 0x85020e72,
+ 0xa8cdf248,
+ 0xf2080109,
+ 0xf210a127,
+ 0xf248a22d,
+ 0xf208a0a5,
+ 0x0189aa6d,
+ 0x59ffd224,
+ 0xc0540d02,
+ 0x097f98e6,
+ 0x01819e92,
+ 0xc0540581,
+ 0xf20898e0,
+ 0x9eaeaa35,
+ 0xd2240089,
+ 0x720258ff,
+ 0xc0009e6b,
+ 0xc00090fa,
+ 0x700290e4,
+ 0x9094c000,
+ 0xa055f210,
+ 0xa967f008,
+ 0xaa65f248,
+ 0xa949f208,
+ 0x8021f310,
+ 0x5908d124,
+ 0xd2240089,
+ 0x769c58ff,
+ 0xa0e9f808,
+ 0x90b2c000,
+ 0xc000850a,
+ 0xc10091e0,
+ 0x751c5a04,
+ 0x90b2c000,
+ 0xc000850e,
+ 0xc00490e0,
+ 0x850a7698,
+ 0x8d22e009,
+ 0xaa79f208,
+ 0xa8d5f210,
+ 0xc3011209,
+ 0x58906245,
+ 0xc0007048,
+ 0xd2d09236,
+ 0x7500aa55,
+ 0x9184c000,
+ 0xaa41da90,
+ 0xd2d08506,
+ 0x0a04a157,
+ 0xa241da90,
+ 0x93e0c000,
+ 0xa8f9f208,
+ 0xaa55f210,
+ 0x6095c301,
+ 0x5a0cc200,
+ 0xc0007102,
+ 0xd2d0923c,
+ 0x7500aa55,
+ 0x9184c000,
+ 0xaa41da90,
+ 0xd2d08506,
+ 0x1a04a157,
+ 0xa241da90,
+ 0x90a0c000,
+ 0xd2d08502,
+ 0xda90a157,
+ 0xba24aa41,
+ 0xc0044002,
+ 0xc000752a,
+ 0xc00290da,
+ 0xc000855a,
+ 0xc0089100,
+ 0xc0007502,
+ 0xc00490dc,
+ 0xda908506,
+ 0xda90a143,
+ 0xf008a8c1,
+ 0xf208aa6d,
+ 0xba09a8ee,
+ 0x62434002,
+ 0x5b94b740,
+ 0x85029e49,
+ 0xd0506243,
+ 0xc002a959,
+ 0xd2280a00,
+ 0x74825919,
+ 0xa167f008,
+ 0xc0000685,
+ 0xf21090c4,
+ 0xc000aa55,
+ 0xf21092a0,
+ 0xf208a8d6,
+ 0xd0a2aa79,
+ 0x12095c90,
+ 0xc0007048,
+ 0x764090b8,
+ 0x91dcc000,
+ 0x5d04d0a6,
+ 0x802bf210,
+ 0x5a13c200,
+ 0x8a21f310,
+ 0xa265f008,
+ 0x9080c000,
+ 0xa164f00a,
+ 0xaa49f208,
+ 0x75020a04,
+ 0xa3eaf008,
+ 0xa249f208,
+ 0x9144c000,
+ 0xaa61d208,
+ 0xa265dac8,
+ 0xa251da48,
+ 0x9000c009,
+ 0xaa31d250,
+ 0xc0007500,
+ 0xd2509184,
+ 0x7500aa39,
+ 0x9142c000,
+ 0xaa41da88,
+ 0xc0007504,
+ 0x850690b4,
+ 0x9060c000,
+ 0xd2888502,
+ 0xda08a153,
+ 0xf208a94b,
+ 0xf252a9cd,
+ 0xd0b1a958,
+ 0xe2100af0,
+ 0xd20889a7,
+ 0xd1a4a922,
+ 0xe0205987,
+ 0x5d0483a7,
+ 0xc03455eb,
+ 0xf2089b85,
+ 0xf250a9ca,
+ 0xd011aa49,
+ 0x85021cb4,
+ 0xd20860c3,
+ 0xf250a8a2,
+ 0x1d84a15b,
+ 0xd0309e5b,
+ 0x5d850102,
+ 0x81afe220,
+ 0xf2500503,
+ 0x55e7a1ca,
+ 0x9b6cc034,
+ 0xaa31d250,
+ 0xf2507500,
+ 0xc001a049,
+ 0xda4890e2,
+ 0x7500aa55,
+ 0xa957da48,
+ 0x9102c000,
+ 0xaa41da88,
+ 0x5a40e200,
+ 0x9144c000,
+ 0x5a8cb780,
+ 0xa881da08,
+ 0xa0e1dac8,
+ 0x90e0c001,
+ 0x5a45c200,
+ 0x8021f310,
+ 0xa261dac8,
+ 0xa9e2dac8,
+ 0xa9c1da88,
+ 0xc0340d02,
+ 0x18049b43,
+ 0x92a0c000,
+ 0xaa49da08,
+ 0xa927da50,
+ 0x5a40c200,
+ 0x5a45c200,
+ 0x8021f310,
+ 0xa261dac8,
+ 0xa9e2dac8,
+ 0xa9c9da08,
+ 0xc0340d02,
+ 0xdac89b2d,
+ 0xd031a061,
+ 0xd2240e72,
+ 0x76c25993,
+ 0xaa49f208,
+ 0xd00d0d82,
+ 0x75040db2,
+ 0x9094c001,
+ 0xa8e2dac8,
+ 0xa8d1da48,
+ 0x0e14d011,
+ 0xc0007048,
+ 0xda10913a,
+ 0xd011a941,
+ 0x70881a14,
+ 0x90d6c000,
+ 0x1e12d011,
+ 0x91c0c000,
+ 0x1e14d011,
+ 0xc0007048,
+ 0xd01190f8,
+ 0x70880a14,
+ 0x90dcc000,
+ 0x0e12d011,
+ 0xa261dac8,
+ 0xa963dac8,
+ 0x882ff210,
+ 0xa261dac8,
+ 0xa8e1dac8,
+ 0x7e7cb75f,
+ 0xc0007075,
+ 0xda109298,
+ 0xd011a8c2,
+ 0x70481e14,
+ 0x0a12d00e,
+ 0x913cc000,
+ 0x0e14d011,
+ 0xc0007048,
+ 0xd01190dc,
+ 0xdac81a12,
+ 0xf208a261,
+ 0x7504aa49,
+ 0x9034c001,
+ 0xaa6dd208,
+ 0xc000752c,
+ 0xda109392,
+ 0xb75fa943,
+ 0xda487ee4,
+ 0xe010aa5d,
+ 0xba2488a5,
+ 0x71024002,
+ 0x91f6c000,
+ 0x7f64b75f,
+ 0xa8e1dac8,
+ 0x8825f010,
+ 0xc0007048,
+ 0xd01190dc,
+ 0xdac81a14,
+ 0xd208a261,
+ 0xdac8a969,
+ 0x7104aa61,
+ 0xa8e1dac8,
+ 0xd00a0a02,
+ 0x9ea21a42,
+ 0xa8e6d208,
+ 0x4d7d2098,
+ 0x21289e54,
+ 0x9e4a3094,
+ 0x5a40c080,
+ 0x5a41c200,
+ 0x09027088,
+ 0x1922d004,
+ 0x42440a7f,
+ 0x20989e92,
+ 0x24949d19,
+ 0x3494c301,
+ 0xa0e2dac8,
+ 0xa0e6dac8,
+ 0xa0d2da48,
+ 0xdac88502,
+ 0x8706aa65,
+ 0xa148d28a,
+ 0xa14ff208,
+ 0xa133d250,
+ 0xa13bd250,
+ 0xa15bd288,
+ 0xa137d250,
+ 0xa15fd288,
+ 0xa127da50,
+ 0xa14bda08,
+ 0xa157da48,
+ 0xa143da88,
+ 0xa25dda48,
+ 0x7d6eb79f,
+ 0x7deeb7bf,
+ 0x7e6eb7df,
+ 0x7eeeb7ff,
+ 0x8c40c002,
+ 0xa60d9c22,
+ 0x5b8cb7c0,
+ 0x598cb780,
+ 0x5b14b7c0,
+ 0x76c20802,
+ 0xa182f208,
+ 0xc0030289,
+ 0xb7a09044,
+ 0xf2485894,
+ 0xda10a045,
+ 0xf210a049,
+ 0xf210a9b6,
+ 0x0d02a9a5,
+ 0xc0345d84,
+ 0xda089a4d,
+ 0x0a22a8aa,
+ 0x7008c010,
+ 0xc01208c3,
+ 0x76407002,
+ 0x92e2c000,
+ 0x590cb780,
+ 0xa88df208,
+ 0xa8a6f210,
+ 0x5914d0a6,
+ 0x88a3e210,
+ 0x5d04d0a6,
+ 0xc2015897,
+ 0xe210812a,
+ 0x088880a3,
+ 0xf248588b,
+ 0xf210a0b1,
+ 0xd226aa25,
+ 0xf3105904,
+ 0xf2488021,
+ 0xd224a8b1,
+ 0x9e4c5889,
+ 0xb3117102,
+ 0x9e894828,
+ 0xa0b2f248,
+ 0xaa51d248,
+ 0xc0007500,
+ 0xd24891e2,
+ 0x7500aa59,
+ 0x9144c000,
+ 0x5d0cd0a6,
+ 0x802bf210,
+ 0x5a0fc200,
+ 0xa231f248,
+ 0xa8b1f248,
+ 0x5d8cb740,
+ 0xf0086211,
+ 0xc200a8da,
+ 0x10985a17,
+ 0xc4109e8a,
+ 0xf2487244,
+ 0x8502a0b2,
+ 0xa14bf210,
+ 0xa14ff210,
+ 0xa143f208,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0xb720a61d,
+ 0xb7e05d94,
+ 0xb7405b8c,
+ 0xf20840dd,
+ 0x9e9daa61,
+ 0x8821f310,
+ 0x5984b760,
+ 0x40cdb580,
+ 0xaa29d210,
+ 0xa265d080,
+ 0xa8a9d210,
+ 0x74429e4d,
+ 0xb4279e5c,
+ 0xb7c04622,
+ 0xb7c05914,
+ 0xf20a588c,
+ 0xf210a960,
+ 0xf208aa4d,
+ 0xf040a957,
+ 0xf310a9f7,
+ 0xe3108a21,
+ 0xf31080a1,
+ 0xde018031,
+ 0xf0407440,
+ 0xf208a275,
+ 0xc000a0d5,
+ 0xcf0190d6,
+ 0xf2080a02,
+ 0xf210a255,
+ 0xf208a94f,
+ 0xf310aa61,
+ 0xfa088821,
+ 0x0089a829,
+ 0x58ffd224,
+ 0x0002e000,
+ 0xd0030402,
+ 0xd0220c02,
+ 0xc0005e0c,
+ 0xd02058f5,
+ 0xc0003118,
+ 0xe000590c,
+ 0x15201120,
+ 0x1d22d003,
+ 0x5cf4d122,
+ 0x5a0dc100,
+ 0xf0403198,
+ 0x0087aa75,
+ 0x58ffd1a4,
+ 0xfa087500,
+ 0xfa08a029,
+ 0xc000a0ad,
+ 0x850290b6,
+ 0xa177f040,
+ 0xaa61f000,
+ 0xc0007504,
+ 0xd0b19344,
+ 0xd2080e60,
+ 0xf208a882,
+ 0xf208a9a9,
+ 0x9e4ca8a5,
+ 0x5985d1a4,
+ 0x5133d026,
+ 0x81afe220,
+ 0xf2080503,
+ 0xc034a1c6,
+ 0xf2089969,
+ 0xc001a045,
+ 0xf2089320,
+ 0xd800aa29,
+ 0x8502a8e9,
+ 0xa16fd080,
+ 0xf2081a04,
+ 0x0884a229,
+ 0xa0e9d800,
+ 0xa8a2d210,
+ 0xc0017640,
+ 0xf21090e4,
+ 0xf040aa5d,
+ 0x6a36a8f5,
+ 0x5a13c200,
+ 0xc0007048,
+ 0x8506929c,
+ 0xa12bd210,
+ 0xaa29f208,
+ 0xc0007500,
+ 0xd21091c2,
+ 0xda48aa49,
+ 0xf310a967,
+ 0xda488021,
+ 0xc000a265,
+ 0xd2109080,
+ 0xf208a0aa,
+ 0x7500aa29,
+ 0x9084c000,
+ 0xa229d210,
+ 0x7e6eb79f,
+ 0x7eeeb7bf,
+ 0x7f6eb7df,
+ 0x7feeb7ff,
+ 0x8c00c002,
+ 0xb7809c22,
+ 0xb7205b8c,
+ 0xf208598c,
+ 0xb720a903,
+ 0x9e8a4035,
+ 0x812fe210,
+ 0x01897642,
+ 0xa101f208,
+ 0x9144c008,
+ 0xaa49d810,
+ 0xc0007500,
+ 0xd09090e2,
+ 0x76c0a9ce,
+ 0x91c2c000,
+ 0x5b0cb780,
+ 0x588cb720,
+ 0xa88ada08,
+ 0x00039ea0,
+ 0x47b3b520,
+ 0x9220c001,
+ 0x5b14b720,
+ 0x590cb720,
+ 0x414bb780,
+ 0x412bb740,
+ 0xd0116a14,
+ 0x710268a6,
+ 0x588cb700,
+ 0xc0000403,
+ 0xb78091bc,
+ 0xb72047aa,
+ 0xba24414a,
+ 0x6a164002,
+ 0x70485888,
+ 0x917ac000,
+ 0x414ab720,
+ 0x6a26d3f1,
+ 0x5a23c200,
+ 0xc0007048,
+ 0x8506915c,
+ 0xa177d048,
+ 0xd090850e,
+ 0xc000a14b,
+ 0xd0489080,
+ 0xb780a1f6,
+ 0xf2085d8c,
+ 0x747ca88d,
+ 0x93b2c004,
+ 0xaa49f010,
+ 0xc0007502,
+ 0xd8109364,
+ 0x7500aa49,
+ 0x90e2c000,
+ 0xaa4dd090,
+ 0xc0007500,
+ 0xf0489222,
+ 0x8502a8e5,
+ 0xa157d090,
+ 0x412cb520,
+ 0x414ab780,
+ 0x40aab580,
+ 0xa15bd090,
+ 0x93e0c003,
+ 0xa8dad090,
+ 0xc0007640,
+ 0xb7809342,
+ 0xb72040aa,
+ 0xba24414a,
+ 0x688c4002,
+ 0xc2000242,
+ 0xb5805a0b,
+ 0xf04840aa,
+ 0x8502a8e5,
+ 0x412cb520,
+ 0xa15bd090,
+ 0xd0908506,
+ 0xc003a157,
+ 0xb7409040,
+ 0xd090590c,
+ 0xb720a0d6,
+ 0xd808414a,
+ 0x68a8aa49,
+ 0x70486a24,
+ 0x925cc001,
+ 0x40aab780,
+ 0x414ab720,
+ 0x4002ba24,
+ 0x58846a0e,
+ 0xc0017048,
+ 0xb78090fc,
+ 0xf048412c,
+ 0xd226a8e5,
+ 0xf3105904,
+ 0x70488021,
+ 0x939cc000,
+ 0xd0908506,
+ 0xd090a15b,
+ 0xd808a15f,
+ 0xd048aa55,
+ 0xd810a173,
+ 0x6a14a8c9,
+ 0x5a0fc200,
+ 0xd8507048,
+ 0xd890a0d6,
+ 0xc000a0c2,
+ 0x8502907a,
+ 0xa17bd048,
+ 0x90a0c001,
+ 0xaa75d048,
+ 0x85027500,
+ 0xa15bd090,
+ 0x93a4c000,
+ 0x40aab780,
+ 0x414ab720,
+ 0x4002ba24,
+ 0x6947d013,
+ 0x80a3e210,
+ 0x4134b720,
+ 0xb520588b,
+ 0xf04840aa,
+ 0xd0a6aa65,
+ 0xc2015d04,
+ 0xf310812a,
+ 0xc2008021,
+ 0xb5805a0b,
+ 0xb780412c,
+ 0xb580414a,
+ 0xd09047aa,
+ 0x7440a8dd,
+ 0x9202c000,
+ 0xaa71d048,
+ 0x85067500,
+ 0x9102c000,
+ 0xaa79d048,
+ 0xc0007500,
+ 0x850e9064,
+ 0xa14bd090,
+ 0xaa49d810,
+ 0xb3407500,
+ 0xb78048a4,
+ 0xb580414c,
+ 0x9c22462c,
+ 0xb3407644,
+ 0xc00348a4,
+ 0xc0017486,
+ 0xb78390ba,
+ 0x75007188,
+ 0x9102c000,
+ 0x5914b720,
+ 0x6004b740,
+ 0x90c0c000,
+ 0x5914b720,
+ 0x6084b740,
+ 0x4ccbb720,
+ 0xd0a69e2d,
+ 0xc8305904,
+ 0xb720aa4d,
+ 0x6229588c,
+ 0x00030583,
+ 0x41adb580,
+ 0x41acb780,
+ 0x5a37c200,
+ 0x92a0c001,
+ 0x588cb700,
+ 0x5914b760,
+ 0x5a4bc100,
+ 0xb7237500,
+ 0x09027188,
+ 0x911cc000,
+ 0x5a07c200,
+ 0x09047500,
+ 0x939affff,
+ 0x7c7ec01c,
+ 0x9102c000,
+ 0xaa65d8d0,
+ 0x6004b740,
+ 0x90c0c000,
+ 0xaa65d8d0,
+ 0x6084b740,
+ 0x5904d226,
+ 0xc8309e2d,
+ 0xf008a8ce,
+ 0x9e4ca8e1,
+ 0x609950ab,
+ 0x41acb520,
+ 0x41acb780,
+ 0xe2108536,
+ 0xc20088a5,
+ 0xb5805207,
+ 0xf01041ac,
+ 0x7502aa49,
+ 0x90e4c000,
+ 0x41acb780,
+ 0x422cb580,
+ 0xd0909c22,
+ 0x74c0a9d1,
+ 0x90c4c005,
+ 0x422cb740,
+ 0x41b4b720,
+ 0x590cd126,
+ 0x5c88d0a2,
+ 0x8825f210,
+ 0xc0007048,
+ 0xd0a69176,
+ 0xe2105d0c,
+ 0xc10088ab,
+ 0x70485a08,
+ 0x919ac004,
+ 0x85869e49,
+ 0xd0907044,
+ 0xd090a1cf,
+ 0xc002a1df,
+ 0xc100903c,
+ 0x70485a04,
+ 0x90f6c000,
+ 0x5e04d0a2,
+ 0xc0007104,
+ 0xb720937a,
+ 0xb720482a,
+ 0x08985d94,
+ 0x482ab520,
+ 0x41cdb780,
+ 0xa8edf010,
+ 0x40c5b740,
+ 0x0a206243,
+ 0x5a11c200,
+ 0x8221f310,
+ 0xd090851a,
+ 0x850ea14b,
+ 0x9340c002,
+ 0x482ab720,
+ 0x5d94b720,
+ 0xb5200888,
+ 0xb780482a,
+ 0xf01041cd,
+ 0xb740a8ed,
+ 0x624340c5,
+ 0xc2000a40,
+ 0xf3105a15,
+ 0x850e8221,
+ 0xa14bd090,
+ 0x40cdb580,
+ 0x4e38b560,
+ 0x9340fffc,
+ 0xc1009e49,
+ 0x70485a04,
+ 0x90f6c000,
+ 0x5e04d0a2,
+ 0xc0007104,
+ 0xb720937a,
+ 0xb720482a,
+ 0x18885d94,
+ 0x482ab520,
+ 0x41cdb780,
+ 0xa8edf010,
+ 0x40c5b740,
+ 0x0a406243,
+ 0x5a15c200,
+ 0x8a21f310,
+ 0xd090851a,
+ 0x857ba14b,
+ 0x9340c000,
+ 0x482ab720,
+ 0x5d94b720,
+ 0xb5201884,
+ 0xb780482a,
+ 0xf01041cd,
+ 0xb740a8ed,
+ 0x624340c5,
+ 0x0a00c002,
+ 0x5a19c200,
+ 0x8a21f310,
+ 0xd090850e,
+ 0x857fa14b,
+ 0x40cdb580,
+ 0x4e38b540,
+ 0x9300fffa,
+ 0xa1cdd090,
+ 0x9280fffa,
+ 0xd0908502,
+ 0xfffaa14f,
+ 0xa60d91e0,
+ 0x598cb780,
+ 0xa881f208,
+ 0x74449ea5,
+ 0x03010007,
+ 0x9104c000,
+ 0x590cb780,
+ 0xa805dac8,
+ 0x9300c008,
+ 0xc0087442,
+ 0xda1092a4,
+ 0x7500aa29,
+ 0x9344c000,
+ 0xaa2dd290,
+ 0xc0007500,
+ 0xd29092a4,
+ 0xb720aa25,
+ 0xb720590c,
+ 0x75005b94,
+ 0x4cabb700,
+ 0x44dbb740,
+ 0x8526e002,
+ 0x8021f210,
+ 0x44cbb580,
+ 0x9300c007,
+ 0xaa2dd290,
+ 0xc0017500,
+ 0xb7809382,
+ 0xb740588c,
+ 0xd290590c,
+ 0xb760a926,
+ 0xd2c85b94,
+ 0xd008a891,
+ 0xd008a9c5,
+ 0x7680a8ca,
+ 0x4000ba09,
+ 0x9e490002,
+ 0xa967d850,
+ 0x0a02d011,
+ 0x4422b304,
+ 0xc0100009,
+ 0xcc127002,
+ 0x768070c0,
+ 0x00070407,
+ 0x8526e002,
+ 0x8021f210,
+ 0xa265d850,
+ 0x4648b780,
+ 0xc0007500,
+ 0xda5091a2,
+ 0xda90a937,
+ 0xe210aa21,
+ 0x0a0480a7,
+ 0xa221da90,
+ 0xa0b5da50,
+ 0xc0050007,
+ 0xd2909320,
+ 0x7500aa39,
+ 0x91a2c001,
+ 0x590cb780,
+ 0xa881d208,
+ 0xa88ad208,
+ 0xa905d208,
+ 0x0812d011,
+ 0xd2909e49,
+ 0xc010aa25,
+ 0xb7207002,
+ 0xc8125b8c,
+ 0x75007080,
+ 0xb7400005,
+ 0xe00244bb,
+ 0xf2108526,
+ 0xda508021,
+ 0xb580a937,
+ 0xda9044ab,
+ 0xf210a8a1,
+ 0x00058025,
+ 0xda900884,
+ 0xda50a0a1,
+ 0xc004a235,
+ 0xb7809120,
+ 0xf250588c,
+ 0xf248a8b1,
+ 0x7440a995,
+ 0xf2489ea6,
+ 0xc000a18d,
+ 0xb7209316,
+ 0xb7805b8c,
+ 0x75004729,
+ 0xd0029e88,
+ 0xc0000802,
+ 0xd29090a4,
+ 0x0008aa29,
+ 0x590cb780,
+ 0xa889d208,
+ 0xc0100289,
+ 0xc0017040,
+ 0xb7a09280,
+ 0xd0b1590c,
+ 0xd2080a50,
+ 0xf250a882,
+ 0x1196a929,
+ 0xa8adf208,
+ 0x9e4c5c85,
+ 0xcc12588b,
+ 0x515070c2,
+ 0xd12651f3,
+ 0xd1a45914,
+ 0xe2205987,
+ 0x0d0281af,
+ 0xa129f250,
+ 0x9a14c014,
+ 0x7188b783,
+ 0xc0007500,
+ 0x9e8390e2,
+ 0x9a36c014,
+ 0x9060c000,
+ 0xd2905819,
+ 0xb700aa29,
+ 0x00e85b94,
+ 0x7002c010,
+ 0xc0121268,
+ 0xd2907100,
+ 0xd208a8a6,
+ 0x7640a8a9,
+ 0xa925d208,
+ 0x0a02d011,
+ 0x4422b304,
+ 0xc0100009,
+ 0xc8127040,
+ 0x76407080,
+ 0x44dab740,
+ 0xe0020005,
+ 0xe2108526,
+ 0xb78080a1,
+ 0x75004648,
+ 0x44cab520,
+ 0x91a2c000,
+ 0xa937da50,
+ 0xaa21da90,
+ 0x80a5e210,
+ 0xda900a04,
+ 0xda50a221,
+ 0xda08a0b5,
+ 0xda10aa35,
+ 0x1a08a8a9,
+ 0xb4167048,
+ 0x00054443,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0xb720a60d,
+ 0xb780598c,
+ 0x7502402d,
+ 0xc00c9e8d,
+ 0xb7809264,
+ 0xf2085b0c,
+ 0xc003a88e,
+ 0x9ea27646,
+ 0x911ac001,
+ 0x7188b783,
+ 0xc0007500,
+ 0xb7809102,
+ 0xb7405a8c,
+ 0xc0006004,
+ 0xb78090c0,
+ 0xb7405a8c,
+ 0xf2086084,
+ 0x9e2da881,
+ 0x5904d0a6,
+ 0xaa4dc830,
+ 0x62199e49,
+ 0x5817d224,
+ 0x590cb780,
+ 0x08c0d0b1,
+ 0x4031b720,
+ 0xb7c09ea6,
+ 0x5407588c,
+ 0x9300c001,
+ 0x5914b7c0,
+ 0x588cb7c0,
+ 0x5e4bd0a2,
+ 0x7188b723,
+ 0xb7207500,
+ 0x09025a94,
+ 0x911cc000,
+ 0x5a07c200,
+ 0x09047500,
+ 0x939affff,
+ 0x7c7ec01c,
+ 0x9102c000,
+ 0x404db780,
+ 0x6004b740,
+ 0x90c0c000,
+ 0x404db780,
+ 0x6084b740,
+ 0x5904d226,
+ 0xc8309e2d,
+ 0xf010a8ce,
+ 0x9e4ca8cd,
+ 0x609950ab,
+ 0x5817d0a4,
+ 0x0e60d0b1,
+ 0xa881d208,
+ 0x54079e89,
+ 0x54049e91,
+ 0xaa29da10,
+ 0xc0007500,
+ 0xd29090e2,
+ 0x7500aa2d,
+ 0x92c2c000,
+ 0xa95bf248,
+ 0x8029f210,
+ 0xa259f248,
+ 0xa026f250,
+ 0xa02af250,
+ 0xa046f248,
+ 0xaa49f010,
+ 0xa251f248,
+ 0xa255f248,
+ 0x9300c007,
+ 0xaa39d290,
+ 0xc0077500,
+ 0xb72091c4,
+ 0xb7805b8c,
+ 0x750046a9,
+ 0xc0079e89,
+ 0xf24890c4,
+ 0xf210a95b,
+ 0xf2488029,
+ 0xd290a259,
+ 0x7440a8b5,
+ 0x90c2c000,
+ 0xaa49f010,
+ 0x9240c000,
+ 0xa8d1f248,
+ 0xaa49f010,
+ 0x5908d0a6,
+ 0x8123e240,
+ 0x5904d226,
+ 0x8021f310,
+ 0x8221f310,
+ 0x5a0dc200,
+ 0xa251f248,
+ 0xaa51f248,
+ 0xa255f248,
+ 0xa8b5d290,
+ 0xc0007440,
+ 0xf2509102,
+ 0xf250a026,
+ 0xc005a02a,
+ 0xb7809360,
+ 0x75004649,
+ 0x90e2c001,
+ 0xa8a2da90,
+ 0xa925f250,
+ 0xaa21da90,
+ 0x9d1e1c84,
+ 0x0ce0d0b1,
+ 0x6127d333,
+ 0x4031b760,
+ 0x5a40c200,
+ 0x5a45c200,
+ 0x8128c201,
+ 0x8021f310,
+ 0xda909ea1,
+ 0x0507a9a1,
+ 0xa225f250,
+ 0xc01455af,
+ 0xf25098d7,
+ 0xf250a025,
+ 0xc004a029,
+ 0xda109220,
+ 0xf210a92b,
+ 0xf250aa2d,
+ 0xe310a8a6,
+ 0x9e4a88a1,
+ 0xa928da12,
+ 0x18848185,
+ 0x6122d033,
+ 0x88b1f310,
+ 0x8a21f310,
+ 0x7540c008,
+ 0x5a07c200,
+ 0x8128c201,
+ 0x8021f310,
+ 0xa225f250,
+ 0x91bcc000,
+ 0xffb49eab,
+ 0xf2509b82,
+ 0xc200aa25,
+ 0xc20052a3,
+ 0xf2505203,
+ 0xb740a225,
+ 0xf2506104,
+ 0xd2a6aa25,
+ 0x9e2d5904,
+ 0xa8cdc830,
+ 0xd2240189,
+ 0x0c8259ff,
+ 0x05030103,
+ 0x98ffc014,
+ 0x619cb740,
+ 0xc2109d47,
+ 0x0181a926,
+ 0xc0140581,
+ 0xf21098db,
+ 0x7502aa29,
+ 0xa025f250,
+ 0x90c4c000,
+ 0xa029f250,
+ 0x9040c002,
+ 0xa8aada10,
+ 0xa954da12,
+ 0x5c84d0a2,
+ 0x8e22f011,
+ 0xc0007048,
+ 0xf2489176,
+ 0x0208aa45,
+ 0x5a07c200,
+ 0xa229f250,
+ 0x91c0c001,
+ 0xa8c5f248,
+ 0x0e12d011,
+ 0xf3109e4a,
+ 0xd0338a21,
+ 0x60996104,
+ 0x8122c201,
+ 0xa12bf250,
+ 0xaa55da10,
+ 0x0ce0d0b1,
+ 0xc2001a04,
+ 0xf3105a07,
+ 0xb7608021,
+ 0xf2504031,
+ 0xda10a229,
+ 0x9ea1a9d5,
+ 0x55af0507,
+ 0xc0141984,
+ 0xf250984b,
+ 0xc000a029,
+ 0xf21090e0,
+ 0x0a04aa2d,
+ 0xa22df210,
+ 0xa8c9f248,
+ 0xaa29f210,
+ 0xa8aaf250,
+ 0x5904d0a6,
+ 0xc2017502,
+ 0xf2108122,
+ 0xf250802b,
+ 0xc200a0ae,
+ 0xc000588b,
+ 0x9e4a90f4,
+ 0x7044d010,
+ 0xa229f250,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x598cb720,
+ 0xaa61d810,
+ 0xb5800802,
+ 0x9c2241ab,
+ 0x590cb740,
+ 0x5d94b720,
+ 0xa96cf012,
+ 0xaa4df008,
+ 0x414db720,
+ 0x40ddb740,
+ 0x8a21f310,
+ 0xf3106243,
+ 0xb5808021,
+ 0xf01040cd,
+ 0xf008a8ed,
+ 0x9c22a0cd,
+ 0x74c0c008,
+ 0x9e529e58,
+ 0x90fcc000,
+ 0x70c0d002,
+ 0x51f31a14,
+ 0xc0055013,
+ 0xc0007400,
+ 0xd00290fc,
+ 0x1a507000,
+ 0x01285013,
+ 0x6104b740,
+ 0x618cb780,
+ 0x5904d1a6,
+ 0xc0409e2d,
+ 0xc830a8e5,
+ 0x7044aa4d,
+ 0xd01d6009,
+ 0xd01a1214,
+ 0xb3405013,
+ 0x122248ba,
+ 0x9c225010,
+ 0x75269e5c,
+ 0xd01e0882,
+ 0xb3404000,
+ 0xc38048bc,
+ 0xc0007500,
+ 0xc00290bc,
+ 0x9c22084e,
+ 0x7508c004,
+ 0x915cc000,
+ 0xc2000a04,
+ 0xc0045a07,
+ 0x08847508,
+ 0x935affff,
+ 0x621cb740,
+ 0xc2209d4b,
+ 0xd013a805,
+ 0xe210691d,
+ 0x9c228021,
+ 0x0d00e000,
+ 0x4422b330,
+ 0x4842b330,
+ 0x48a2b340,
+ 0x8502c002,
+ 0x882df210,
+ 0xc0007500,
+ 0x9e5990fa,
+ 0x12090c02,
+ 0x9c225031,
+ 0x50d09e5a,
+ 0x54699e52,
+ 0x30425269,
+ 0xa6859c22,
+ 0x9e810007,
+ 0xcffe9e90,
+ 0x9e412cfc,
+ 0x5c419e4c,
+ 0xcffe6491,
+ 0x62c328fc,
+ 0x9e445841,
+ 0x60096083,
+ 0x5a41c280,
+ 0x04909ea0,
+ 0x9d099e88,
+ 0x9e4c0490,
+ 0xc0017102,
+ 0xd0a28504,
+ 0xb3025e41,
+ 0xf3204468,
+ 0xd0a68121,
+ 0xcffe5d40,
+ 0xf3102afc,
+ 0x000d8123,
+ 0x9e54040d,
+ 0x6138d033,
+ 0x61459e5c,
+ 0x8125e210,
+ 0x04629e91,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c40,
+ 0x87c2c809,
+ 0x0c20b060,
+ 0x87c2c809,
+ 0x0a60b060,
+ 0x87c2c809,
+ 0x09c0b060,
+};
+
+unsigned long aui32H264VBR_MasterMTXTOPAZFWData[] = {
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x809000b0,
+ 0x80900374,
+ 0x82884864,
+ 0x8288438c,
+ 0x8288439c,
+ 0x8288443c,
+ 0x828842a0,
+ 0x82884338,
+ 0x828842f6,
+ 0x8288446c,
+ 0x828844a8,
+ 0x828844e4,
+ 0x8288451c,
+ 0x82884520,
+ 0x82884550,
+ 0x82884580,
+ 0x828845a8,
+ 0x8288435c,
+ 0x828845b0,
+ 0x828845b8,
+ 0x828845e8,
+ 0x828845f0,
+ 0x82884624,
+ 0x82884b04,
+ 0x82884996,
+ 0x828849fe,
+ 0x82884a3e,
+ 0x82884ac0,
+ 0x82884970,
+ 0x82884824,
+ 0x8288492c,
+ 0x8288496c,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x809007c8,
+ 0x809007c8,
+ 0x809029ac,
+ 0x8090242c,
+ 0x809039d4,
+ 0x80902d84,
+ 0x80902754,
+ 0x809007c8,
+ 0x809007c8,
+ 0x809007c8,
+ 0x809007c8,
+ 0x809007c8,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0xa0101100,
+ 0xa01001b0,
+ 0xa0101102,
+ 0xa01001b2,
+ 0xa0101104,
+ 0xa0100124,
+ 0xa0101106,
+ 0xa0100126,
+ 0xa0100134,
+ 0x00000000,
+ 0xa0101120,
+ 0xa0100136,
+ 0xa0101122,
+ 0xa0100144,
+ 0x80101160,
+ 0x80101162,
+ 0x80101180,
+ 0x80101182,
+ 0x80100140,
+ 0x80100142,
+ 0x80100150,
+ 0x80100152,
+ 0x80100154,
+ 0x80100146,
+ 0x803003a0,
+ 0x80100100,
+ 0x80105156,
+ 0xa0101164,
+ 0xa0100184,
+ 0x80101194,
+ 0x801001b4,
+ 0x80100146,
+ 0x00000000,
+ 0x00000003,
+ 0x00000002,
+ 0x00000002,
+ 0x00000001,
+ 0x00000001,
+ 0x00000001,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000005,
+ 0x000f9400,
+ 0x000f9401,
+ 0x000fd403,
+ 0x000fd407,
+ 0x000fd517,
+ 0x000fdd37,
+ 0x000fff37,
+ 0x000ffb37,
+ 0x00006b37,
+ 0x00006b36,
+ 0x00002b36,
+ 0x00002b30,
+ 0x00002a20,
+ 0x40002220,
+ 0x00000000,
+ 0x00000000,
+ 0x00010001,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x01010000,
+ 0x02020201,
+ 0x04030303,
+ 0x05040404,
+ 0x00140005,
+ 0x001a0016,
+ 0x0020001c,
+ 0x00280024,
+ 0x0034002c,
+ 0x00400038,
+ 0x00500048,
+ 0x00680058,
+ 0x00800070,
+ 0x00a00090,
+ 0x00d000b0,
+ 0x010000e0,
+ 0x01400120,
+ 0x01a00160,
+ 0x020001c0,
+ 0x02800240,
+ 0x034002c0,
+ 0x04000380,
+ 0x05000480,
+ 0x06800580,
+ 0x08000700,
+ 0x0a000900,
+ 0x0d000b00,
+ 0x10000e00,
+ 0x14001200,
+ 0x1a001600,
+ 0x00001c00,
+ 0x00800040,
+ 0x010000c0,
+ 0x01800140,
+ 0x020001c0,
+ 0x02800240,
+ 0x030002c0,
+ 0x03800340,
+ 0x040003c0,
+ 0x04800440,
+ 0x050004c0,
+ 0x05800540,
+ 0x060005c0,
+ 0x06800640,
+ 0x070006c0,
+ 0x07800740,
+ 0x000007c0,
+ 0x00200040,
+ 0x001002ab,
+ 0x015500cd,
+ 0x00080249,
+ 0x00cd01c7,
+ 0x0155005d,
+ 0x0249013b,
+ 0x00040111,
+ 0x01c700f1,
+ 0x00cd01af,
+ 0x005d00c3,
+ 0x01550059,
+ 0x013b0029,
+ 0x0249025f,
+ 0x01110235,
+ 0x00020021,
+ 0x00f1001f,
+ 0x01c70075,
+ 0x01af006f,
+ 0x00cd0069,
+ 0x00c30019,
+ 0x005d017d,
+ 0x0059005b,
+ 0x015502b9,
+ 0x002900a7,
+ 0x013b0283,
+ 0x025f0135,
+ 0x02490095,
+ 0x0235023f,
+ 0x0111008b,
+ 0x00210219,
+ 0x00010041,
+ 0x0b060600,
+ 0x0c0b0a06,
+ 0x0a0b0c06,
+ 0x0c0d0c0c,
+ 0x0d0d0c06,
+ 0x0b0b0c0c,
+ 0x0e0d0a0d,
+ 0x0a0d0e0e,
+ 0x0c0d0a06,
+ 0x0c0e0c0e,
+ 0x0e0d0a0d,
+ 0x0f0c0c0c,
+ 0x0f0b0d0e,
+ 0x0d0f0e0e,
+ 0x0d0f0f0f,
+ 0x0c0b0f0e,
+ 0x00000006,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x1234baac,
+ 0x00000000,
+};
+
+unsigned long aui32H264VBR_MasterMTXTOPAZFWTextReloc[] = {
+ 0
+};
+
+unsigned char aui8H264VBR_MasterMTXTOPAZFWTextRelocType[] = {
+ 0
+};
+
+unsigned long aui32H264VBR_MasterMTXTOPAZFWTextRelocFullAddr[] = {
+ 0
+};
+
+unsigned long aui32H264VBR_MasterMTXTOPAZFWDataReloc[] = {
+ 0
+};
diff --git a/fw/H264MasterFirmwareVBR_bin.h b/fw/H264MasterFirmwareVBR_bin.h
new file mode 100644
index 0000000..de607ec
--- /dev/null
+++ b/fw/H264MasterFirmwareVBR_bin.h
@@ -0,0 +1,44 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+
+// This file was automatically generated from ../release/H264MasterFirmwareVBR.dnl using dnl2c.
+
+extern unsigned long aui32H264VBR_MasterMTXTOPAZFWText[];
+extern unsigned long ui32H264VBR_MasterMTXTOPAZFWTextSize;
+
+extern unsigned long aui32H264VBR_MasterMTXTOPAZFWData[];
+extern unsigned long ui32H264VBR_MasterMTXTOPAZFWDataSize;
+
+extern unsigned long aui32H264VBR_MasterMTXTOPAZFWTextReloc[];
+extern unsigned char aui8H264VBR_MasterMTXTOPAZFWTextRelocType[];
+extern unsigned long aui32H264VBR_MasterMTXTOPAZFWTextRelocFullAddr[];
+
+extern unsigned long aui32H264VBR_MasterMTXTOPAZFWDataReloc[];
+extern unsigned long ui32H264VBR_MasterMTXTOPAZFWDataRelocSize;
+
+extern unsigned long ui32H264VBR_MasterMTXTOPAZFWTextOrigin;
+extern unsigned long ui32H264VBR_MasterMTXTOPAZFWDataOrigin;
+
diff --git a/fw/H264MasterFirmwareVCM_bin.c b/fw/H264MasterFirmwareVCM_bin.c
new file mode 100644
index 0000000..5c0ba60
--- /dev/null
+++ b/fw/H264MasterFirmwareVCM_bin.c
@@ -0,0 +1,5204 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+
+// This file was automatically generated from ../release/H264MasterFirmwareVCM.dnl using dnl2c.
+
+unsigned char *szH264MasterFirmwareVCM_buildtag = "BUILD_TOPAZ_SC_1_00_00_0318";
+
+unsigned long ui32H264VCM_MasterMTXTOPAZFWTextSize = 4241;
+unsigned long ui32H264VCM_MasterMTXTOPAZFWDataSize = 904;
+unsigned long ui32H264VCM_MasterMTXTOPAZFWTextRelocSize = 0;
+unsigned long ui32H264VCM_MasterMTXTOPAZFWDataRelocSize = 0;
+
+unsigned long ui32H264VCM_MasterMTXTOPAZFWTextOrigin = 0x80900000;
+unsigned long ui32H264VCM_MasterMTXTOPAZFWDataOrigin = 0x82884280;
+
+unsigned long aui32H264VCM_MasterMTXTOPAZFWText[] = {
+ 0x9040c001,
+ 0xc80993fe,
+ 0xc0000e42,
+ 0xc8290e00,
+ 0xc50a8422,
+ 0xc8298400,
+ 0xc4288622,
+ 0x9e838600,
+ 0xc8099e43,
+ 0xc8460d42,
+ 0xc8090d20,
+ 0xc8460942,
+ 0xc8090960,
+ 0xc00a0e42,
+ 0xc8090e40,
+ 0xc00e87c2,
+ 0x9c1887d0,
+ 0x0c020802,
+ 0x09820d82,
+ 0x09020d02,
+ 0x08820c82,
+ 0x9320fffe,
+ 0xa401c838,
+ 0x0dc2c809,
+ 0x0de0c844,
+ 0x0e42c809,
+ 0x0b46b080,
+ 0x7e74b77f,
+ 0xa48d0882,
+ 0xffff9ff3,
+ 0x9d1393e0,
+ 0xf8398081,
+ 0x0707a205,
+ 0x06850307,
+ 0x03839e97,
+ 0x0fa0060f,
+ 0x018d058d,
+ 0x9c62008f,
+ 0x9340ffff,
+ 0x0ea0060b,
+ 0xffff9c62,
+ 0x058d93a0,
+ 0xb700018d,
+ 0xb780548c,
+ 0x9c015414,
+ 0x0687a605,
+ 0x0ea0060b,
+ 0xffff9c62,
+ 0xf9f893a0,
+ 0xf9f8aa9d,
+ 0x9c22aa1d,
+ 0xa6059c22,
+ 0x85028420,
+ 0xb55f0a82,
+ 0x850a7f7c,
+ 0x9c89c037,
+ 0x9c80c971,
+ 0x75002a08,
+ 0x9184c000,
+ 0x997dc014,
+ 0x458cb780,
+ 0xc0007500,
+ 0x0d8290a4,
+ 0x991dc054,
+ 0x7f6cb79f,
+ 0xc0007500,
+ 0xc05490e4,
+ 0x0d8a9925,
+ 0x9913c054,
+ 0x8d80e032,
+ 0x99b6c014,
+ 0x0800e000,
+ 0x91c4c000,
+ 0x9ac0c014,
+ 0x458cb780,
+ 0x2a797402,
+ 0x458cb580,
+ 0x90e4c000,
+ 0x9100c000,
+ 0xc0149e83,
+ 0x75409a33,
+ 0x9162fffe,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x9c228c60,
+ 0x85028702,
+ 0x7418b543,
+ 0x7498b543,
+ 0x7518b543,
+ 0x7818b543,
+ 0x7898b543,
+ 0x7918b543,
+ 0x4218b547,
+ 0x4298b547,
+ 0x4318b547,
+ 0x4a18b547,
+ 0x4804b540,
+ 0x4884b540,
+ 0x4904b540,
+ 0x4984b540,
+ 0x4a04b540,
+ 0x4c04b540,
+ 0x4c84b540,
+ 0x4d04b540,
+ 0x4202b540,
+ 0x4282b540,
+ 0x5004b540,
+ 0x7d84b540,
+ 0x4e84b540,
+ 0x4702b540,
+ 0xa6059c22,
+ 0xfff48420,
+ 0x0d8a9b87,
+ 0x98b9c054,
+ 0x9bc6fff4,
+ 0x98c4c054,
+ 0x0cd2c420,
+ 0xb4810a02,
+ 0xb105c000,
+ 0x0d8a4220,
+ 0x8d80e031,
+ 0x9aebc014,
+ 0x0922c829,
+ 0x0960c508,
+ 0x7f6cb73f,
+ 0x2a5ed071,
+ 0x450cb580,
+ 0x2a80c01e,
+ 0xf0088502,
+ 0x7102a8c2,
+ 0x5a95c280,
+ 0x460cb5a0,
+ 0x4434b341,
+ 0xb5407640,
+ 0xb520459c,
+ 0xc000448c,
+ 0xd01190c2,
+ 0xf0080e12,
+ 0xb780a241,
+ 0xc807550c,
+ 0xc57008c2,
+ 0xc0320880,
+ 0xb5800caa,
+ 0xb421538c,
+ 0x0a2ac000,
+ 0xb4810cf4,
+ 0x1a28c000,
+ 0xc0020902,
+ 0xb96008ba,
+ 0xc2004078,
+ 0xd2240a00,
+ 0xb441588b,
+ 0xce00c000,
+ 0xffff0a11,
+ 0xe0009301,
+ 0xffff1884,
+ 0xc8079244,
+ 0xc5760a42,
+ 0xc0320a00,
+ 0xb4810caa,
+ 0x0a02c000,
+ 0x09020882,
+ 0xb9600884,
+ 0xc2004078,
+ 0xd2240a00,
+ 0xb441588b,
+ 0xce00c000,
+ 0xffff0a11,
+ 0xc0049301,
+ 0xffff745a,
+ 0x0a02923c,
+ 0x0c9ec034,
+ 0xc000b481,
+ 0x9b0dfff4,
+ 0xb79f0802,
+ 0xb7bf7eee,
+ 0x8c607f6e,
+ 0x9e549c22,
+ 0x0c82c040,
+ 0xb4219e59,
+ 0xc040c000,
+ 0xb4820d02,
+ 0x9c22c000,
+ 0x2d7cc00e,
+ 0x29e0c00e,
+ 0x9e545d30,
+ 0x0c82c040,
+ 0xb46131b8,
+ 0xc040c000,
+ 0xb4420d02,
+ 0x9c22c000,
+ 0x8420a60d,
+ 0x06870703,
+ 0x5c8dc280,
+ 0xd0a21c84,
+ 0x02875ca0,
+ 0x0a5ed011,
+ 0x5a0dc200,
+ 0xc2001a04,
+ 0x5cd05a30,
+ 0x9e4c3098,
+ 0xc0320405,
+ 0x30980c8a,
+ 0x3880c801,
+ 0xc000b421,
+ 0xc8019ea9,
+ 0xc0020a02,
+ 0x65530a00,
+ 0x0c8ac030,
+ 0xc000b481,
+ 0x0882c002,
+ 0xb4210c84,
+ 0x9e93c000,
+ 0x5f09d022,
+ 0x5d0d9e53,
+ 0xfff41d04,
+ 0xc2809bb4,
+ 0x1e845e91,
+ 0x5e84c280,
+ 0x1a849e6c,
+ 0x5a90c280,
+ 0x3a80c181,
+ 0x09820d8a,
+ 0x314a0d02,
+ 0x9baefff4,
+ 0x0d82c0c0,
+ 0xc0020992,
+ 0xc0020d02,
+ 0xc0340902,
+ 0x0a0a9be3,
+ 0x0c9ec034,
+ 0xc000b481,
+ 0x75bf1b04,
+ 0xc0008502,
+ 0x9dcf9202,
+ 0x7f7cb55f,
+ 0x9bb6c034,
+ 0xa045f231,
+ 0x7f7cb75f,
+ 0x75bf1b04,
+ 0xffff8510,
+ 0xc0029284,
+ 0xc0300a42,
+ 0xb4810c8e,
+ 0xb79fc000,
+ 0xb7bf7e6e,
+ 0xb7df7eee,
+ 0xc0027f6e,
+ 0x9c228c00,
+ 0xf8399c22,
+ 0xb780a285,
+ 0x0986450c,
+ 0x0d0270c8,
+ 0x9096c001,
+ 0x4594b760,
+ 0x08020c06,
+ 0x0902c1cc,
+ 0x19c4d010,
+ 0x9e5d9e44,
+ 0x508cc200,
+ 0xc0007942,
+ 0xd1249202,
+ 0xc400588b,
+ 0xb4013c80,
+ 0xb104c000,
+ 0x9e554220,
+ 0x750230d2,
+ 0x4822b321,
+ 0xc00c9e8a,
+ 0x09840900,
+ 0x9101ffff,
+ 0x4594b540,
+ 0xaa9df9f8,
+ 0xc2009c22,
+ 0xc0378502,
+ 0xc1719c89,
+ 0xc8179c80,
+ 0x9c229c80,
+ 0xb780a605,
+ 0x9e5d458c,
+ 0xc000790a,
+ 0xfff49162,
+ 0xfff49bf0,
+ 0xb7809bbe,
+ 0x790a458c,
+ 0x9324ffff,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xc002a61d,
+ 0x9e5d8400,
+ 0xaa21f208,
+ 0xc0017500,
+ 0xc4209004,
+ 0x0a020cda,
+ 0xc000b481,
+ 0x4220b101,
+ 0xb4811c84,
+ 0xb106c000,
+ 0xb4814220,
+ 0xb107c000,
+ 0x008f4220,
+ 0xc000b481,
+ 0x4240b106,
+ 0xc000b481,
+ 0x4240b105,
+ 0x2a6ed1f1,
+ 0xb40d7516,
+ 0xf2084622,
+ 0x7480a921,
+ 0x92c2c000,
+ 0x8c80e092,
+ 0x098a0dc2,
+ 0x0d02c002,
+ 0x9b0afff4,
+ 0x7cecb7df,
+ 0x7c6cb79f,
+ 0x7d6cb7ff,
+ 0x7df4b7df,
+ 0x7e74b7bf,
+ 0xa221f208,
+ 0x5aa1c300,
+ 0x2afcc00e,
+ 0x0d869ea9,
+ 0xfff455e4,
+ 0xd3129ba3,
+ 0xc1c068d1,
+ 0x5c8b0c80,
+ 0xc000b4c1,
+ 0x6951d312,
+ 0x0d10c1c0,
+ 0xb4e25d0b,
+ 0xd312c000,
+ 0x9e7468d1,
+ 0x0ca0c1c0,
+ 0xb4815c8b,
+ 0xd312c000,
+ 0x9e6c6951,
+ 0x0d30c1c0,
+ 0xb4825d0b,
+ 0xd312c000,
+ 0x0a0268d1,
+ 0x0cc0c1c0,
+ 0xc4005c8b,
+ 0xb4813c80,
+ 0xb106c000,
+ 0xcfff4220,
+ 0xd3122b7c,
+ 0xc1c068d1,
+ 0x5c8b0cc0,
+ 0xc000b4c1,
+ 0x458cb720,
+ 0xc2000a04,
+ 0x000b5214,
+ 0xb5203098,
+ 0xb79f458c,
+ 0xb7bf7c6e,
+ 0xb7df7cee,
+ 0xb7ff7d6e,
+ 0xc0047dee,
+ 0x9c228c00,
+ 0xa205f839,
+ 0x0e30f011,
+ 0x919cc000,
+ 0x9ea10a04,
+ 0x55e40d86,
+ 0xc0343d88,
+ 0x0d8a9abe,
+ 0x9abbc034,
+ 0xaa1df9f8,
+ 0xa6059c22,
+ 0x0a42c801,
+ 0x0a00c010,
+ 0x2ebed3f2,
+ 0x0caac032,
+ 0xc000b481,
+ 0x0cf408aa,
+ 0xc000b421,
+ 0x558cb780,
+ 0x0c92c080,
+ 0xa881f208,
+ 0xc000b421,
+ 0x558cb780,
+ 0xf2080c88,
+ 0xb421a889,
+ 0xb780c000,
+ 0x0c84558c,
+ 0xa88df208,
+ 0xc000b421,
+ 0x1c980902,
+ 0xc000b441,
+ 0x558cb780,
+ 0xf2080c90,
+ 0xb421a885,
+ 0xb7a0c000,
+ 0x0dd2558c,
+ 0x9a76c034,
+ 0xaa25f208,
+ 0xffff7008,
+ 0x0daa9344,
+ 0x0d060982,
+ 0x0902c121,
+ 0x9a4afff4,
+ 0x4714b760,
+ 0x0d02c021,
+ 0x09c20d04,
+ 0x9a37fff4,
+ 0x4714b760,
+ 0x0d0609c2,
+ 0x9a31fff4,
+ 0x09820daa,
+ 0xc1010d02,
+ 0xfff40902,
+ 0x0d929a35,
+ 0x9a52c034,
+ 0xaa25f208,
+ 0xffff7008,
+ 0x77409344,
+ 0x90a2c000,
+ 0xc0340d8e,
+ 0x0d8a9a54,
+ 0x9a51c034,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xc470a60d,
+ 0x0a020c8e,
+ 0xc000b481,
+ 0x4220b101,
+ 0x558cb780,
+ 0xa085f208,
+ 0x0a021c8c,
+ 0xc000b481,
+ 0x4220b105,
+ 0x2b5ed1f1,
+ 0x558cb780,
+ 0xcff09ead,
+ 0xc2802e80,
+ 0xf2085ea1,
+ 0xc280a281,
+ 0x2a845a9d,
+ 0x0a020c84,
+ 0xc000b481,
+ 0x4220b101,
+ 0x468cb520,
+ 0xb4810c84,
+ 0xb101c000,
+ 0xb5204220,
+ 0xc070470c,
+ 0xb4810c8e,
+ 0x0882c000,
+ 0xb4211c8c,
+ 0x0c90c000,
+ 0xc000b481,
+ 0xb4211c8c,
+ 0x0c84c000,
+ 0xc000b481,
+ 0x6584b740,
+ 0x5908d326,
+ 0xe0309e2d,
+ 0x9ea4aa4d,
+ 0xb7809c62,
+ 0x7740558c,
+ 0x9ea98502,
+ 0xd0010d82,
+ 0xf2080db2,
+ 0x2596a10f,
+ 0x9b3ffff4,
+ 0xc0700a06,
+ 0xb4810c82,
+ 0x000dc000,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x4514b760,
+ 0xc0020a7f,
+ 0x9ea18502,
+ 0x89afe220,
+ 0xfff355ad,
+ 0xc01c91a0,
+ 0xc0007ebe,
+ 0xd1a29244,
+ 0xc0905e08,
+ 0xd2240a00,
+ 0x08825909,
+ 0x3d00c400,
+ 0xc000b422,
+ 0x4220b104,
+ 0xffff7500,
+ 0xc1809364,
+ 0xc0905c88,
+ 0x5c890c80,
+ 0xc000b461,
+ 0xc1809c22,
+ 0xc0905c88,
+ 0x5c890c80,
+ 0x3c80c400,
+ 0xb4810a02,
+ 0xb101c000,
+ 0xf0084220,
+ 0x5d88a0e1,
+ 0x0d80c090,
+ 0xb4835d89,
+ 0x9c22c000,
+ 0xd3129e5b,
+ 0x0a0268b1,
+ 0x0cc0c1c0,
+ 0xc4005c8b,
+ 0xb4813c80,
+ 0xb102c000,
+ 0xb7604220,
+ 0xd3125b94,
+ 0x85026931,
+ 0xb9609e51,
+ 0xc1c04080,
+ 0xf03108e0,
+ 0xd0a4aa65,
+ 0xb4815889,
+ 0x0890c000,
+ 0xffff8510,
+ 0xc1c09301,
+ 0xe2108560,
+ 0xb76080ad,
+ 0xc0015d94,
+ 0xce3e3904,
+ 0xb9608521,
+ 0xf0314048,
+ 0xd0a4aa65,
+ 0xb4815889,
+ 0x0890c000,
+ 0xffff8510,
+ 0xe2209301,
+ 0xb780812d,
+ 0xc0015b0c,
+ 0xc1c03908,
+ 0x5d090d60,
+ 0xa885dac8,
+ 0xc000b422,
+ 0x68b1d312,
+ 0x0cc0c1c0,
+ 0xb4415c8b,
+ 0x9c22c000,
+ 0x508cb740,
+ 0x6cb1d312,
+ 0xc1c00a02,
+ 0x5c8b0cc0,
+ 0x3c80c400,
+ 0xc000b481,
+ 0x4220b101,
+ 0x6cb1d312,
+ 0x0cf0c1ca,
+ 0xb4415c8b,
+ 0xc00cc000,
+ 0xc0016d82,
+ 0xc1c038c0,
+ 0x5d8b0dc0,
+ 0xc000b423,
+ 0x84209c22,
+ 0xe0318502,
+ 0x09068d80,
+ 0x7f7cb55f,
+ 0x0cd2c472,
+ 0xb4810a02,
+ 0xb101c000,
+ 0x9e8a4220,
+ 0xc0010203,
+ 0x75002a40,
+ 0x9362c000,
+ 0x68a1d312,
+ 0xc1ca0a02,
+ 0x5c8b0cf0,
+ 0x3c80c400,
+ 0xc000b481,
+ 0x4220b101,
+ 0xa0e1f008,
+ 0x509cb740,
+ 0x7f6cb79f,
+ 0xf3109e51,
+ 0xcfff8021,
+ 0xb58028be,
+ 0xd312508c,
+ 0xc1c068a1,
+ 0x5c8b0cc0,
+ 0xc000b421,
+ 0x9c228c20,
+ 0xc006a605,
+ 0x87028440,
+ 0xc4720c06,
+ 0x0a020cd2,
+ 0xc000b481,
+ 0x4220b105,
+ 0x020b9eaa,
+ 0x2a04c001,
+ 0xc0017500,
+ 0xd31190c2,
+ 0xe1d16c81,
+ 0xb7608d00,
+ 0x09825b94,
+ 0x4080b960,
+ 0x08e0c1c0,
+ 0x5889d0a4,
+ 0x3c80c400,
+ 0xc000b461,
+ 0x4220b104,
+ 0xa245f029,
+ 0x87100890,
+ 0x9281ffff,
+ 0xa973f050,
+ 0x786cb79f,
+ 0xf3109e55,
+ 0xcfff8021,
+ 0xf0502afa,
+ 0x020ba271,
+ 0x2a08c001,
+ 0xd3127500,
+ 0xc0026e81,
+ 0xe0b19262,
+ 0xc1c08d00,
+ 0xe1108760,
+ 0xb74082a3,
+ 0x09825d94,
+ 0x4048b960,
+ 0xd0a49e93,
+ 0xc4005889,
+ 0xb4613c80,
+ 0xb104c000,
+ 0xf0294220,
+ 0x0890a245,
+ 0x92a1ffff,
+ 0x5b0cb720,
+ 0x4388b787,
+ 0x4233b720,
+ 0x2af6cfff,
+ 0x1c847500,
+ 0xa0cad810,
+ 0x9182c000,
+ 0x588cb780,
+ 0xa8c1f010,
+ 0xa8e2f010,
+ 0xa085f288,
+ 0xa08af288,
+ 0xa943f010,
+ 0xaa61f010,
+ 0xa95cf012,
+ 0xa9c7f050,
+ 0x8021f310,
+ 0xa94bd850,
+ 0xa241f010,
+ 0x7b6ab79f,
+ 0x7eecb73f,
+ 0x7ff4b73f,
+ 0x8021f310,
+ 0x82a3e210,
+ 0x80bbe220,
+ 0xa249d850,
+ 0xa0ddf010,
+ 0xa0c6f050,
+ 0xc001020b,
+ 0x75002a10,
+ 0x90c2c000,
+ 0x9838c014,
+ 0x2aeecfff,
+ 0x0ec0c1c0,
+ 0x5c8bc280,
+ 0xc000b4a1,
+ 0x786eb79f,
+ 0x78eeb7bf,
+ 0x8c00c008,
+ 0xd3129c22,
+ 0x0a026cb1,
+ 0x0cc0c1c0,
+ 0xc4005c8b,
+ 0xb4813c80,
+ 0xb103c000,
+ 0xb7404220,
+ 0xd3115c94,
+ 0xb9606d31,
+ 0x00854058,
+ 0x08e0c1c0,
+ 0xaa45f031,
+ 0x5889d0a4,
+ 0xc000b481,
+ 0xffff0890,
+ 0xc0019321,
+ 0xc1c03990,
+ 0xd1240940,
+ 0xb461588b,
+ 0x9c22c000,
+ 0xc002a605,
+ 0xb7408440,
+ 0x0a865c94,
+ 0x0cd2c472,
+ 0xc00c0882,
+ 0xb4218502,
+ 0xb104c000,
+ 0x01894220,
+ 0x2a10c001,
+ 0xffff7500,
+ 0xe0d19302,
+ 0x9d478d00,
+ 0xb9600802,
+ 0xc1c04058,
+ 0xd0a408e0,
+ 0xc4005889,
+ 0xb4013c80,
+ 0xb104c000,
+ 0xf0294220,
+ 0x0890a245,
+ 0x92a1ffff,
+ 0xcfff9dc7,
+ 0xc1c029ee,
+ 0x5c8b0cc0,
+ 0xc000b461,
+ 0xa94bf010,
+ 0x7b6cb79f,
+ 0xa94cf012,
+ 0x7becb73f,
+ 0xa9cbd810,
+ 0x8021f310,
+ 0xa953f010,
+ 0x82a3e210,
+ 0xa94cd812,
+ 0xa249f010,
+ 0xa0cdf010,
+ 0x7c6cb79f,
+ 0x75eab73f,
+ 0x7572b73f,
+ 0x8021f310,
+ 0x82a3e210,
+ 0x80bbe220,
+ 0xf0100d86,
+ 0xd810a251,
+ 0xd810a0cd,
+ 0xfff4a0ca,
+ 0xd3129b7e,
+ 0x0a0268d1,
+ 0x0cc0c1c0,
+ 0xc4005c8b,
+ 0xb4813c80,
+ 0xb104c000,
+ 0xc0014220,
+ 0xd3123a20,
+ 0xc1c068d1,
+ 0x5c8b0cc0,
+ 0xc000b481,
+ 0x7c6eb79f,
+ 0x7ceeb7bf,
+ 0x8c00c004,
+ 0xf8399c22,
+ 0xf010a285,
+ 0x7500aa61,
+ 0x9164c000,
+ 0xa8c1d008,
+ 0x0a069e48,
+ 0x5200c200,
+ 0xd0083098,
+ 0xd011a0c1,
+ 0xd0100d38,
+ 0xf011a9f2,
+ 0xf0101a30,
+ 0x1984a943,
+ 0x93e2c000,
+ 0x8702cff1,
+ 0x8700cff0,
+ 0x087ec00f,
+ 0x087cc00e,
+ 0x0c1ac050,
+ 0xa8c5f029,
+ 0x2095d020,
+ 0x9e4d5ca1,
+ 0xc2002210,
+ 0x30d85a20,
+ 0x4006ba09,
+ 0xc000b420,
+ 0x1a30f011,
+ 0xffff1984,
+ 0xf21091e4,
+ 0xf010802f,
+ 0xf9f8a241,
+ 0x9c22aa9d,
+ 0x9e5da60d,
+ 0xf1245940,
+ 0xd3f15841,
+ 0xb3502d2e,
+ 0xc0024422,
+ 0xf00893e2,
+ 0xe000aa61,
+ 0xb4252a1c,
+ 0xd8084422,
+ 0x8522aa61,
+ 0x88a9e210,
+ 0x12182a1c,
+ 0xc00e9ea3,
+ 0xba1b0a7e,
+ 0xc200400b,
+ 0x21285207,
+ 0x9276c001,
+ 0xc1009e59,
+ 0x11035a20,
+ 0x5209c200,
+ 0xc2009ea2,
+ 0x9e8d58a1,
+ 0x0cb0d031,
+ 0xa8a2d208,
+ 0x2a7cc00e,
+ 0x5207c200,
+ 0x2a7cc00e,
+ 0xd208349a,
+ 0xf008a0a2,
+ 0x9ea1a963,
+ 0x2a2ed3f1,
+ 0x8128c201,
+ 0x8821f310,
+ 0xf0088502,
+ 0xd228a261,
+ 0x9eaba127,
+ 0x2d01cff0,
+ 0x59415940,
+ 0xc00e3522,
+ 0xfff42d7c,
+ 0xc0009bb1,
+ 0xd20892e0,
+ 0x9e5eaa21,
+ 0x50d8000b,
+ 0xd0293242,
+ 0xf008a205,
+ 0xd013a8e1,
+ 0xf210291e,
+ 0x75108029,
+ 0x00989e44,
+ 0xa0e1f008,
+ 0x4426b350,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x0685a60d,
+ 0x9e9e9e69,
+ 0x71820b02,
+ 0xc0000a86,
+ 0x9ea99208,
+ 0x9e6916d2,
+ 0x5a84c280,
+ 0x1a52d011,
+ 0xd0117102,
+ 0xd3f108e2,
+ 0xffff2b1e,
+ 0xd0119286,
+ 0x75100a62,
+ 0xc000028d,
+ 0x9e7391d4,
+ 0x09220d02,
+ 0x9b70fff4,
+ 0xd0111aa0,
+ 0x75100a52,
+ 0xffff9e83,
+ 0x9e7392d2,
+ 0xd0110d06,
+ 0xc00e0952,
+ 0xfff4297c,
+ 0x75909b61,
+ 0xc0009e83,
+ 0xd03192f4,
+ 0xd3f11a60,
+ 0x9e6c2b4e,
+ 0xc2009e73,
+ 0xd3f25299,
+ 0x0922295e,
+ 0x9b50fff4,
+ 0xc2009e83,
+ 0x9ea952b8,
+ 0x16d27590,
+ 0x91b2ffff,
+ 0xd3f29e73,
+ 0x010d2d5e,
+ 0x9b42fff4,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x0ca0f011,
+ 0xd09a9e99,
+ 0xd00d5a04,
+ 0xc0001a42,
+ 0x1203909a,
+ 0x9e4b1242,
+ 0xfffc9ea2,
+ 0xa60d9360,
+ 0x85028420,
+ 0xb55f9e55,
+ 0xb55f7f7c,
+ 0xf0107ffc,
+ 0xe011aa61,
+ 0x03078c8e,
+ 0x750a1a08,
+ 0x590cd226,
+ 0xe05a8540,
+ 0xc0038044,
+ 0xc00090a0,
+ 0xc0009180,
+ 0xc00092a0,
+ 0xc00193c0,
+ 0xc0019100,
+ 0xc0029200,
+ 0xe0119060,
+ 0x9e8b8d88,
+ 0x1954d072,
+ 0x500cb5a0,
+ 0x9bc8fff4,
+ 0x9200c002,
+ 0x5014b740,
+ 0xe0119ea9,
+ 0x9e8b8d88,
+ 0xfff41514,
+ 0xc0029bbd,
+ 0xe01190a0,
+ 0x9e8b8d88,
+ 0x295ed3f2,
+ 0xfff40916,
+ 0xb5a09aeb,
+ 0xc001500c,
+ 0xe0119320,
+ 0x9e8b8d88,
+ 0x295ed3f2,
+ 0xfff40916,
+ 0xc0019adf,
+ 0xd20891e0,
+ 0x9e8baa41,
+ 0x8c88f011,
+ 0xd0124a7d,
+ 0x0d062ace,
+ 0x018b0906,
+ 0x9ad0fff4,
+ 0x9e6a9e83,
+ 0x0d02018b,
+ 0x9acafff4,
+ 0x9340c000,
+ 0xaa41d208,
+ 0xf0119e8b,
+ 0x4a7d8c88,
+ 0x2aced012,
+ 0x09060d02,
+ 0xfff4018b,
+ 0x9e839abb,
+ 0x018b9e6a,
+ 0x0d7ec00e,
+ 0x9ab4fff4,
+ 0x9080c000,
+ 0x90e0c001,
+ 0x7e68b79f,
+ 0x0cfec00f,
+ 0x0cfcc00e,
+ 0xb59f9e4a,
+ 0xb73f7c68,
+ 0xcff17f6c,
+ 0xcff00a02,
+ 0xc0500a00,
+ 0x22180c9a,
+ 0x5a21c200,
+ 0x58a02094,
+ 0xba243242,
+ 0xb59f4006,
+ 0xb4817f6c,
+ 0xf208c000,
+ 0xb79fa943,
+ 0xf3107fec,
+ 0xf2088021,
+ 0xb79fa241,
+ 0xb7bf7e6e,
+ 0xb7df7eee,
+ 0xc0027f6e,
+ 0x9c228c00,
+ 0x8440a61d,
+ 0x9e9d8502,
+ 0xabe5f031,
+ 0xb55f0b02,
+ 0xb55f7878,
+ 0x718e7efc,
+ 0xc0019d3a,
+ 0xaa4191e8,
+ 0xc0007502,
+ 0xd0189392,
+ 0xe032aad1,
+ 0xe0518d08,
+ 0x9dcf8d00,
+ 0x85109eb1,
+ 0x7f7cb55f,
+ 0x0a9cc002,
+ 0x5a95c280,
+ 0xfff4018b,
+ 0xb75f9a1e,
+ 0xc2807f7c,
+ 0xc3015a88,
+ 0xc0008122,
+ 0xe03191a0,
+ 0x9dcf8d88,
+ 0x8510050b,
+ 0x7f7cb55f,
+ 0x9b23fff4,
+ 0x7f7cb75f,
+ 0x718e0b04,
+ 0x92a6fffe,
+ 0x7868b79f,
+ 0x0c9ec050,
+ 0xc000b481,
+ 0x0d16c050,
+ 0xc000b4e2,
+ 0x7eecb71f,
+ 0x7d6eb79f,
+ 0x7deeb7bf,
+ 0x7e6eb7df,
+ 0x7eeeb7ff,
+ 0x8c40c002,
+ 0xa6059c22,
+ 0x0c8ac450,
+ 0xb4810a02,
+ 0xb102c000,
+ 0xe00e4240,
+ 0xd1042d7c,
+ 0xc8015d10,
+ 0x0a400a02,
+ 0x0c8ac030,
+ 0xc000b481,
+ 0x0c8408c2,
+ 0xc000b421,
+ 0x620cb740,
+ 0xa947f048,
+ 0x802df210,
+ 0xa245f048,
+ 0x0c86c450,
+ 0xb4810a02,
+ 0xb101c000,
+ 0xc8014220,
+ 0xc0100a42,
+ 0xc0320a00,
+ 0xb4810caa,
+ 0x08aac000,
+ 0x0d1ec034,
+ 0xc000b422,
+ 0x0cf2c450,
+ 0xb4810a02,
+ 0xb101c000,
+ 0xd0534220,
+ 0xb7801910,
+ 0xf248570c,
+ 0xf210a891,
+ 0x0d8288a3,
+ 0x018b0d06,
+ 0x9b8fffd4,
+ 0x0ca2c080,
+ 0xc000b4a1,
+ 0x0d82c002,
+ 0x9954c014,
+ 0xffff700a,
+ 0x0daa9364,
+ 0x0d0a0982,
+ 0x0902c121,
+ 0x992affd4,
+ 0x570cb780,
+ 0xa992f248,
+ 0x0d02c0a1,
+ 0x09c20d04,
+ 0x9915ffd4,
+ 0x0d82c0c0,
+ 0x0d420992,
+ 0xc0140942,
+ 0xb79f9957,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa60d9c22,
+ 0x8400c010,
+ 0x570cb720,
+ 0x49adb780,
+ 0x75002a20,
+ 0x5b94b7c0,
+ 0xc0000902,
+ 0xb7879182,
+ 0x75004208,
+ 0x90e2c000,
+ 0xaa41d290,
+ 0xc0057500,
+ 0xb7209164,
+ 0xd01149ad,
+ 0x75002a18,
+ 0x3924d002,
+ 0x9124c000,
+ 0x2a14d011,
+ 0xd0027500,
+ 0xd0013922,
+ 0xc0503926,
+ 0xb4410c82,
+ 0x9d87c000,
+ 0x468cb740,
+ 0x09c20dc2,
+ 0x0d02c010,
+ 0x0c81cff0,
+ 0x98ecffd4,
+ 0x4208b787,
+ 0x75009d1b,
+ 0x0b01cff0,
+ 0x9282c000,
+ 0xaa41d290,
+ 0xc0007500,
+ 0xb79f91e2,
+ 0xf211606c,
+ 0xc0108d00,
+ 0x75002a00,
+ 0x0a03cff0,
+ 0x8001f310,
+ 0x4422b346,
+ 0x4068b79e,
+ 0x08c2c801,
+ 0x0880c010,
+ 0x0ceac032,
+ 0x606cb59f,
+ 0xc000b421,
+ 0x4208b787,
+ 0xc0017500,
+ 0xb7879282,
+ 0x75004308,
+ 0x91e2c001,
+ 0x510cb720,
+ 0x2a12d011,
+ 0xc0017500,
+ 0xb7a09102,
+ 0xb7a06314,
+ 0xf2105c8c,
+ 0x9eabaa21,
+ 0xb52028f9,
+ 0x9ea4510c,
+ 0xb7209c62,
+ 0xb780610c,
+ 0x75004129,
+ 0x92a4c000,
+ 0xa9a1f208,
+ 0xa83df210,
+ 0x9e840d82,
+ 0xf2509c62,
+ 0x9eaba8a5,
+ 0xa021f208,
+ 0x9e8c0982,
+ 0xda089c62,
+ 0xb583aa21,
+ 0xda10648a,
+ 0x9eb3a9cd,
+ 0x9aa6fff4,
+ 0x0a02c801,
+ 0x0a00c00a,
+ 0x0c8ac030,
+ 0xc000b481,
+ 0x08c2c008,
+ 0xb4210c84,
+ 0xc008c000,
+ 0x0c880a02,
+ 0xc000b481,
+ 0x0d82c0c0,
+ 0xc0080992,
+ 0xc0080d02,
+ 0xc0140902,
+ 0xc008989d,
+ 0xc0300a02,
+ 0xb4810c8e,
+ 0xb720c000,
+ 0x85065c0c,
+ 0x4039b540,
+ 0x9ad1fff4,
+ 0x6eeeb79f,
+ 0x6f6eb7bf,
+ 0x6feeb7df,
+ 0x8c60c010,
+ 0xf8399c22,
+ 0xc450a205,
+ 0x0a020c82,
+ 0xc000b481,
+ 0x4220b101,
+ 0x0a40c008,
+ 0x0c8ec030,
+ 0xc000b481,
+ 0x38c0c002,
+ 0x0c82c050,
+ 0xc000b421,
+ 0x0d82c0c0,
+ 0xc0080992,
+ 0xc0080d02,
+ 0xc0140902,
+ 0xc0089869,
+ 0xc0300a02,
+ 0xb4810c8e,
+ 0xf9f8c000,
+ 0xfff5aa1d,
+ 0xa60d9000,
+ 0x0eb0f011,
+ 0x9182c001,
+ 0x0f7ec01e,
+ 0x0b02c008,
+ 0x0e8ec030,
+ 0x7540c040,
+ 0xc0509e74,
+ 0xb3540c96,
+ 0x12d84426,
+ 0x5a14c200,
+ 0xc000b481,
+ 0x0d0ac030,
+ 0xc000b4c2,
+ 0xc000b4c5,
+ 0x0c96c030,
+ 0xc000b4c1,
+ 0x0d82c0c0,
+ 0xc0080992,
+ 0xc0080d02,
+ 0xc0140902,
+ 0xb4c59835,
+ 0x7540c000,
+ 0x93c4fffe,
+ 0x9a6ffff4,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0xc000b463,
+ 0xf8129c22,
+ 0x9c22a062,
+ 0x0d80c200,
+ 0x9e595d89,
+ 0xc4000982,
+ 0xb4633d80,
+ 0xb203c000,
+ 0x00074620,
+ 0xc1279c22,
+ 0x9c229c8f,
+ 0xb971080a,
+ 0xc01756f1,
+ 0xc0719c81,
+ 0xc0179c80,
+ 0xb9609c80,
+ 0x9c224000,
+ 0x9280ffff,
+ 0x01c69e5c,
+ 0x5889d1a4,
+ 0xc4000882,
+ 0xb4213c80,
+ 0xb104c000,
+ 0x22444220,
+ 0x71069e53,
+ 0x9324ffff,
+ 0xa60d9c22,
+ 0x8420c004,
+ 0x0ca2c829,
+ 0x0cb0c4e8,
+ 0xac3dc030,
+ 0x8d00e133,
+ 0xa45dc038,
+ 0xac3dc030,
+ 0xa45dc038,
+ 0xac3dc010,
+ 0xa45dc018,
+ 0xac25c010,
+ 0xa445c018,
+ 0x570cb7a0,
+ 0x85029ea9,
+ 0x651ab540,
+ 0x4b98b541,
+ 0x468cb740,
+ 0xc00a0dc2,
+ 0x09c20d42,
+ 0x9b9affb4,
+ 0x0a58d251,
+ 0xaa01da08,
+ 0x9ead7502,
+ 0x9084c000,
+ 0x448cb580,
+ 0x620cb780,
+ 0xa8a1f210,
+ 0xf2108502,
+ 0xb540a8a6,
+ 0xb540509c,
+ 0xf208481a,
+ 0xf208a103,
+ 0xf210a085,
+ 0xf208a929,
+ 0xf210a08a,
+ 0xf210a92e,
+ 0xf208a8b2,
+ 0xf250a10d,
+ 0xf208a8b1,
+ 0xf208a112,
+ 0xf208a096,
+ 0xc050a09a,
+ 0x08c00cf2,
+ 0xa085f248,
+ 0xc000b421,
+ 0xc0360a0a,
+ 0xb4810c92,
+ 0x0896c000,
+ 0xb4211c8c,
+ 0xf031c000,
+ 0xe1318c00,
+ 0x9ea38d80,
+ 0x610cb7c0,
+ 0x7ffcb55f,
+ 0xb9600d02,
+ 0xf2084078,
+ 0x9dbaa103,
+ 0x5d0dd122,
+ 0xf0299e2d,
+ 0xd012a8e5,
+ 0x5c882cae,
+ 0x5908d126,
+ 0xe0389e4a,
+ 0x0d04aa4d,
+ 0x50a828bc,
+ 0xa2413242,
+ 0x91c1ffff,
+ 0xaa61f010,
+ 0x0c8ec036,
+ 0xc000b481,
+ 0x7fecb73f,
+ 0xb4211c84,
+ 0xc014c000,
+ 0xd20899e2,
+ 0x7500aa4d,
+ 0x9262c000,
+ 0xaa2df290,
+ 0x2ac8f011,
+ 0x91a4c000,
+ 0x2a00c800,
+ 0xc0007500,
+ 0xf20890c4,
+ 0xfff4a9c6,
+ 0xd2089aec,
+ 0xf290a2cd,
+ 0xd011a8ad,
+ 0x75002a14,
+ 0x9102c000,
+ 0x0a42c809,
+ 0x0a30c5e8,
+ 0x530cb580,
+ 0x460cb780,
+ 0xc0007500,
+ 0xc0809162,
+ 0x2a045a31,
+ 0x0ceac03e,
+ 0xc000b481,
+ 0x9280c000,
+ 0x448cb780,
+ 0xc0007502,
+ 0xc100915c,
+ 0x74402880,
+ 0xd0010a0e,
+ 0xc0001a46,
+ 0x0a029060,
+ 0x0ceac03e,
+ 0xc000b481,
+ 0x7a6eb79f,
+ 0x7aeeb7bf,
+ 0x7b6eb7df,
+ 0x8c00c006,
+ 0xb7809c22,
+ 0xc0c8538c,
+ 0xb9600892,
+ 0xd01140f8,
+ 0xf0290948,
+ 0xd0a4aa45,
+ 0xb4815889,
+ 0x0890c000,
+ 0x9321ffff,
+ 0xa6059c22,
+ 0x460cb720,
+ 0x718cb781,
+ 0x0a047440,
+ 0x718cb581,
+ 0x9364c000,
+ 0x4208b787,
+ 0xc0007500,
+ 0xb72092c2,
+ 0xb780448c,
+ 0x7442510c,
+ 0xb5803a40,
+ 0xc000510c,
+ 0xb780919c,
+ 0xd208610c,
+ 0x7440a889,
+ 0x90a4c000,
+ 0xb5478506,
+ 0xc8014a18,
+ 0xc0100a42,
+ 0xc0320a00,
+ 0xb4810cea,
+ 0xc008c000,
+ 0xc00208c2,
+ 0xb4211ce0,
+ 0xc008c000,
+ 0xc0300a42,
+ 0xb4820d0e,
+ 0xc450c000,
+ 0xc0080c82,
+ 0xb4811a40,
+ 0xb101c000,
+ 0xc0024220,
+ 0xc05038c0,
+ 0xb4210c82,
+ 0xc0c0c000,
+ 0x09920d82,
+ 0x0d02c008,
+ 0x0902c008,
+ 0x9ab0fff4,
+ 0x0c86c450,
+ 0xb4810a02,
+ 0xb105c000,
+ 0xc0084220,
+ 0xc0300a00,
+ 0xb4820d0e,
+ 0x0c84c000,
+ 0x1a00c008,
+ 0xc000b481,
+ 0x4220b101,
+ 0x5a35c080,
+ 0x0902c801,
+ 0xc00e0940,
+ 0xd0a828fc,
+ 0xd0715910,
+ 0xc03029ce,
+ 0x9dc80c8a,
+ 0xc000b441,
+ 0x0c840a42,
+ 0xc000b481,
+ 0xc0007680,
+ 0xb7209182,
+ 0xb740620c,
+ 0xf21044bd,
+ 0xf3108a27,
+ 0xb5808021,
+ 0xc45044ad,
+ 0x0a020c86,
+ 0xc000b481,
+ 0x4220b105,
+ 0xb4810cec,
+ 0xb105c000,
+ 0x12d64220,
+ 0xc03408ea,
+ 0xb4210c9e,
+ 0xb780c000,
+ 0xf248570c,
+ 0xd053a891,
+ 0xf2101950,
+ 0x0d8288a3,
+ 0xc2800d06,
+ 0xb5805a0c,
+ 0x018b508c,
+ 0x986dffd4,
+ 0x0ca2c080,
+ 0xc000b4a1,
+ 0x478cb780,
+ 0xb4810c88,
+ 0xb7a0c000,
+ 0xc0025b14,
+ 0xfff40d82,
+ 0x700a9a2b,
+ 0x9364ffff,
+ 0x718cb781,
+ 0xa8adf210,
+ 0xa8a2f250,
+ 0x9e496243,
+ 0xc0007102,
+ 0x850690b8,
+ 0x4818b547,
+ 0x460cb780,
+ 0x0a827500,
+ 0x9204c001,
+ 0x448cb780,
+ 0xc0007502,
+ 0xb787933c,
+ 0x75004208,
+ 0x9282c000,
+ 0x458cb780,
+ 0xb5802a79,
+ 0xffd4458c,
+ 0xb787982b,
+ 0x75004a08,
+ 0x90c2c000,
+ 0x9902ffd4,
+ 0x4a08b5a7,
+ 0x98c7ffd4,
+ 0x4208b787,
+ 0xc0007500,
+ 0xc01493e2,
+ 0xb78099ee,
+ 0xd208610c,
+ 0x7440a889,
+ 0x92c2c000,
+ 0x0a82c080,
+ 0x9240c000,
+ 0xffd40d82,
+ 0xb7879893,
+ 0x75004308,
+ 0x90e2c000,
+ 0xffd40d82,
+ 0xc000983f,
+ 0x0d8290a0,
+ 0x9983ffd4,
+ 0x5408b787,
+ 0xb7277500,
+ 0xb7805488,
+ 0x0c825b8c,
+ 0x0c92d002,
+ 0x5510b747,
+ 0xd2c87440,
+ 0x5ca0a911,
+ 0x08829e4b,
+ 0x0892d002,
+ 0x32d47680,
+ 0xd0020a02,
+ 0xb7430a42,
+ 0x58a4698a,
+ 0x329a32ba,
+ 0x74bec01c,
+ 0x5a28c200,
+ 0xc00032ca,
+ 0xc00e90d4,
+ 0xb543857e,
+ 0xb720699a,
+ 0xb783478a,
+ 0xdffc698a,
+ 0xc2007c7e,
+ 0x32d85a40,
+ 0x9184c000,
+ 0x470ab720,
+ 0xaa29da10,
+ 0x4002ba09,
+ 0x70481a04,
+ 0x91b8c000,
+ 0x4b08b781,
+ 0x08827500,
+ 0x0892d001,
+ 0xb5408502,
+ 0xb521471a,
+ 0xc0804b08,
+ 0xb4a10ca6,
+ 0xc002c000,
+ 0xfff40d92,
+ 0x700a9985,
+ 0x9364ffff,
+ 0x09820dea,
+ 0xc1210d0a,
+ 0xffb40902,
+ 0xb780995b,
+ 0xf248570c,
+ 0xc0a1a992,
+ 0x0d040d02,
+ 0xffb409c2,
+ 0xc0c09946,
+ 0x09920d82,
+ 0x09420d42,
+ 0x9988fff4,
+ 0xc03e0a02,
+ 0xb4810cea,
+ 0xb79fc000,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa61d9c22,
+ 0x570cb720,
+ 0x49b5b720,
+ 0x2e10d091,
+ 0x9e8f7500,
+ 0x9242c004,
+ 0x2e14d011,
+ 0x87068502,
+ 0x4200b547,
+ 0xb5417500,
+ 0xb547719c,
+ 0xc0004818,
+ 0xb5479082,
+ 0xd1114280,
+ 0x75002e10,
+ 0x9082c000,
+ 0x4300b547,
+ 0x2e10d211,
+ 0xc0007500,
+ 0xb5479082,
+ 0xb7874380,
+ 0x75004308,
+ 0x630cb7e0,
+ 0x9342c002,
+ 0x4288b787,
+ 0xc0027500,
+ 0xb78792a2,
+ 0x75004388,
+ 0x9202c002,
+ 0x0a42c809,
+ 0x0a70c7c2,
+ 0x08c2c809,
+ 0x08f0c7c8,
+ 0x0cc2c809,
+ 0x0cf0c81c,
+ 0x0942c809,
+ 0x0920c7f2,
+ 0x0d42c809,
+ 0x0d40c78a,
+ 0x09c2c809,
+ 0x09f0c646,
+ 0x0dc2c809,
+ 0x0df0c722,
+ 0x0c42c809,
+ 0x0c00c632,
+ 0x0842c809,
+ 0x0810c5ea,
+ 0x0ac2c809,
+ 0x0a80c61e,
+ 0x0ec2c809,
+ 0x0ec0c5fa,
+ 0x0b42c809,
+ 0x0b30c79a,
+ 0x0f42c809,
+ 0x0f50c60a,
+ 0xa269f208,
+ 0xa0f1f208,
+ 0xa0f6f208,
+ 0xa179f208,
+ 0xa16ef208,
+ 0xa1fdf208,
+ 0xa1e2f248,
+ 0xa066f248,
+ 0xa069f248,
+ 0xa2e5f208,
+ 0xa2e2f208,
+ 0xa36df248,
+ 0xa372f248,
+ 0x580cb7a0,
+ 0xaa6df208,
+ 0x9ea49eab,
+ 0xb7209c62,
+ 0xd2085b8c,
+ 0xb580aa21,
+ 0xb72041ab,
+ 0x850241b3,
+ 0x439ab540,
+ 0x5014b520,
+ 0x5b0cb7c0,
+ 0xaa69f2d0,
+ 0xa8d9f208,
+ 0xc0007048,
+ 0xb7809142,
+ 0xf248630c,
+ 0xd152a88d,
+ 0x9e8c0df0,
+ 0xb7879c62,
+ 0x85024208,
+ 0x5418b547,
+ 0xb5477500,
+ 0xb5475498,
+ 0xc0045518,
+ 0xb7209062,
+ 0x76404614,
+ 0x93c4c003,
+ 0x438ab720,
+ 0xc0007440,
+ 0xda0890e2,
+ 0x7048aa55,
+ 0x9004c001,
+ 0x6114b7a0,
+ 0x4288b787,
+ 0x630cb7a0,
+ 0xa9d6da08,
+ 0x4392b520,
+ 0x7500850a,
+ 0xa0aad210,
+ 0xa8a9f208,
+ 0x8d24e001,
+ 0x1d849d4f,
+ 0x9c629e8c,
+ 0xaa31f208,
+ 0x0d8a038b,
+ 0x9c629ea4,
+ 0x9180c000,
+ 0x630cb780,
+ 0xa891f208,
+ 0x6114b7a0,
+ 0x03890d86,
+ 0x9c629e8c,
+ 0x438ab780,
+ 0x4308b727,
+ 0x5b94b720,
+ 0xb5800a04,
+ 0xd210438a,
+ 0x7440aa29,
+ 0x4849b580,
+ 0x9024c001,
+ 0x5c8cb7a0,
+ 0xa8e1f208,
+ 0x9e8c9eab,
+ 0xd2109c62,
+ 0x7500aa29,
+ 0x92a4c000,
+ 0xa9a1f208,
+ 0xa87df208,
+ 0x9e840d82,
+ 0xf2089c62,
+ 0xf248a021,
+ 0x9eaba865,
+ 0x9e840982,
+ 0xda089c62,
+ 0xb583aa21,
+ 0xb780648a,
+ 0x7502448c,
+ 0x90bcc000,
+ 0xffb40d86,
+ 0xd2109a9d,
+ 0x7500aa29,
+ 0x9122c000,
+ 0x558cb720,
+ 0x412db780,
+ 0xc0003a08,
+ 0xb72090e0,
+ 0xb780558c,
+ 0x2a75412d,
+ 0x412db580,
+ 0x4208b727,
+ 0x510cb780,
+ 0x3a047440,
+ 0x510cb580,
+ 0x91c4c000,
+ 0x0e70d151,
+ 0x5b8cb740,
+ 0xa882d208,
+ 0xa881d208,
+ 0x5014b520,
+ 0xa0cdd808,
+ 0x7e6eb79f,
+ 0x7eeeb7bf,
+ 0x7f6eb7df,
+ 0x7feeb7ff,
+ 0x8c00c002,
+ 0xa60d9c22,
+ 0x4308b787,
+ 0xb7a07500,
+ 0x0b026314,
+ 0x9262c000,
+ 0x5c8cb7a0,
+ 0xa83df210,
+ 0xa9a1f208,
+ 0x9e840d8a,
+ 0xf2089c62,
+ 0xf250a021,
+ 0x9eaba825,
+ 0x9e840986,
+ 0xb7879c62,
+ 0x75004308,
+ 0x5094b7c0,
+ 0x9164c000,
+ 0x5c94b760,
+ 0xa825f210,
+ 0x9c629e84,
+ 0xc0000301,
+ 0xb7879160,
+ 0x75004288,
+ 0x90c2c000,
+ 0x5d8cb780,
+ 0xab01f208,
+ 0x610cb720,
+ 0x4129b780,
+ 0x02837500,
+ 0x9224c000,
+ 0x4308b787,
+ 0xc0007500,
+ 0xf25090c4,
+ 0x9ea4aa21,
+ 0xf2109c62,
+ 0x9eb1aa35,
+ 0x9ea415e2,
+ 0xf2109c62,
+ 0x9eb3aa39,
+ 0x9ea4018b,
+ 0xb7209c62,
+ 0xb780570c,
+ 0xc40049ad,
+ 0x75002a00,
+ 0x9102c000,
+ 0xd2088502,
+ 0x8506a12b,
+ 0xa123d208,
+ 0x510cb780,
+ 0x2a3dcffe,
+ 0x510cb580,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x4b0cb720,
+ 0xc0ff9e5c,
+ 0xc0ff2a40,
+ 0x710228c0,
+ 0xc0008502,
+ 0x85069062,
+ 0x4b9cb540,
+ 0x4b14b560,
+ 0xa6059c22,
+ 0xd0519e5d,
+ 0x75002a50,
+ 0x90e4c000,
+ 0x4b8cb780,
+ 0xc0007500,
+ 0xc0c09142,
+ 0xc0120d82,
+ 0x0d0209c2,
+ 0xffd40942,
+ 0xb7809b91,
+ 0xc0344b0c,
+ 0xb4810cb6,
+ 0xc034c000,
+ 0xb4a20d32,
+ 0xb5a0c000,
+ 0xb79f4a8c,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa61d9c22,
+ 0xb7878420,
+ 0x75004208,
+ 0x9122c000,
+ 0x5b8cb780,
+ 0xa881d288,
+ 0xc0187440,
+ 0xb7409124,
+ 0xb7a0468c,
+ 0x0dc25694,
+ 0xc002098e,
+ 0x048b0d42,
+ 0x9b38ff94,
+ 0xaa35f210,
+ 0x560cb7c0,
+ 0xa8a5f210,
+ 0xa8aaf210,
+ 0x570cb7a0,
+ 0x478cb580,
+ 0xa0d5f208,
+ 0xaa39da10,
+ 0xa8bdda10,
+ 0xa0def208,
+ 0x08d0d252,
+ 0xa259f208,
+ 0xa0c1f248,
+ 0xa922da10,
+ 0x0a50d131,
+ 0xa881da08,
+ 0x404bb740,
+ 0xa927f250,
+ 0xda909e53,
+ 0x60b2a8b2,
+ 0x5a7fc080,
+ 0x5a71c200,
+ 0x58930098,
+ 0xe2105894,
+ 0xdffc80a3,
+ 0x59157e7e,
+ 0x5b90c100,
+ 0xf248018b,
+ 0xc000a0dd,
+ 0xe10091e2,
+ 0xc0005d40,
+ 0xda909164,
+ 0x8502aa35,
+ 0x4792b520,
+ 0x699ab543,
+ 0x468ab580,
+ 0xaa21f288,
+ 0x0950d132,
+ 0xa255f248,
+ 0xa259f248,
+ 0xa8a1da10,
+ 0xaa41d810,
+ 0xa93bf248,
+ 0xa8bada48,
+ 0xf3106218,
+ 0xda488021,
+ 0xf248a93d,
+ 0xf288a0ca,
+ 0xda48a249,
+ 0xf248aa29,
+ 0xf208a151,
+ 0xda48a923,
+ 0x6218a8ae,
+ 0x5a10c200,
+ 0x8021f310,
+ 0xa241f208,
+ 0xa927f208,
+ 0xf20a9e4c,
+ 0x6098a928,
+ 0xf210588c,
+ 0xe2108023,
+ 0xf20882a3,
+ 0xda48a249,
+ 0xf208a8aa,
+ 0xda10a0cd,
+ 0xd810aa21,
+ 0xf208a8c1,
+ 0xf248a0c6,
+ 0x0a04a937,
+ 0xb7406243,
+ 0xf310620c,
+ 0xf2888021,
+ 0xda10a245,
+ 0xf008a8a1,
+ 0xda10a953,
+ 0xf00aa8a2,
+ 0x58a0a954,
+ 0x80a3e210,
+ 0xe0205c9c,
+ 0xda4882a3,
+ 0xf208aa2d,
+ 0xf208a0ad,
+ 0xf248a0b2,
+ 0xf248a0c5,
+ 0xf208a0ce,
+ 0xd810a251,
+ 0xc004a941,
+ 0xb5201880,
+ 0xd1314f0c,
+ 0xda080a54,
+ 0xc002a881,
+ 0xb5201c80,
+ 0x59404f94,
+ 0xf2885951,
+ 0x58c0a155,
+ 0xf28858d1,
+ 0xc42ea0d9,
+ 0x0a020cf2,
+ 0xc000b481,
+ 0x4220b101,
+ 0x74402884,
+ 0x0b50d132,
+ 0x9102c000,
+ 0xaa41da10,
+ 0x753ec09c,
+ 0x9152c011,
+ 0x08c6c0c0,
+ 0x0ce2c050,
+ 0xc000b421,
+ 0xa939f210,
+ 0x0a30d131,
+ 0xa881da08,
+ 0x28a0d052,
+ 0x58917640,
+ 0x4e8cb520,
+ 0x9222c000,
+ 0xc0600a02,
+ 0xb4810cae,
+ 0xda10c000,
+ 0x7440a8a1,
+ 0x9302c000,
+ 0xb5408502,
+ 0xc0004e9c,
+ 0xc2009260,
+ 0x74802900,
+ 0x9122c000,
+ 0xc0600a0a,
+ 0xb4810cae,
+ 0xc000c000,
+ 0x0a0690e0,
+ 0x0caec060,
+ 0xc000b481,
+ 0xaa39f210,
+ 0x75002a04,
+ 0xb540850a,
+ 0xc000491c,
+ 0x850490a2,
+ 0x491cb540,
+ 0x4208b787,
+ 0xb7e07500,
+ 0xc0006314,
+ 0xb78792e2,
+ 0x75004308,
+ 0x9244c000,
+ 0x460cb780,
+ 0xc0007500,
+ 0xb78791a2,
+ 0x75004388,
+ 0x9104c000,
+ 0x5c94b760,
+ 0xaa61f210,
+ 0x9c629ea4,
+ 0xaa39f210,
+ 0x75002a20,
+ 0x90e2c000,
+ 0xaa21da10,
+ 0xc0007500,
+ 0xb7809244,
+ 0xb7205b8c,
+ 0xda08530c,
+ 0x9e8ca98e,
+ 0xb7879c62,
+ 0x75004208,
+ 0x90a2c000,
+ 0xb5478506,
+ 0xf2104d18,
+ 0xd011a8b9,
+ 0x75002a14,
+ 0x90e2c001,
+ 0x2a12d011,
+ 0x85167500,
+ 0x0a7ecffe,
+ 0x0cfac038,
+ 0x8d28e001,
+ 0x4d1cb540,
+ 0xc000b481,
+ 0xa8c1da10,
+ 0x6614b720,
+ 0x0a6ac284,
+ 0x856ac684,
+ 0x7462c058,
+ 0x5214b520,
+ 0x0c82c038,
+ 0x4c28b324,
+ 0xc000b481,
+ 0xc0020882,
+ 0xb4210c80,
+ 0xffd4c000,
+ 0xb7809ade,
+ 0xc03e490c,
+ 0xb4810c82,
+ 0xb720c000,
+ 0xc0504d0c,
+ 0xb4210c82,
+ 0xda10c000,
+ 0xf288a921,
+ 0xda10a8d5,
+ 0x6123a926,
+ 0xda109e53,
+ 0x6097aa21,
+ 0x6194b720,
+ 0xb5438702,
+ 0x857f6582,
+ 0x459ab540,
+ 0xb540851a,
+ 0x0d86449a,
+ 0xb5801a04,
+ 0xb5404d8c,
+ 0x8526405b,
+ 0x415bb540,
+ 0x460ab540,
+ 0x18a05891,
+ 0x40cbb520,
+ 0x7fe4b55f,
+ 0x9bdec014,
+ 0x7fe4b75f,
+ 0xb5478506,
+ 0xb5474c18,
+ 0xb5474c80,
+ 0xb5475200,
+ 0xb5475280,
+ 0xda104d80,
+ 0xf288a8a6,
+ 0x9e49aa55,
+ 0x5694b720,
+ 0x4e00b547,
+ 0xb7206243,
+ 0x8502434d,
+ 0xc10158c8,
+ 0x9e892880,
+ 0xa9c2da10,
+ 0xb5400a82,
+ 0xb5404e1c,
+ 0x5dc0519c,
+ 0x2dc0c0ff,
+ 0x3db0ca01,
+ 0x5a11c200,
+ 0x450ab580,
+ 0xfff43596,
+ 0xc0c099d3,
+ 0xc0120d82,
+ 0x0d0209c2,
+ 0xffd40942,
+ 0x714e997f,
+ 0xc0018546,
+ 0x9dcf9148,
+ 0x99d5fff4,
+ 0x0d82c0c0,
+ 0x09c2c012,
+ 0x09060d02,
+ 0x9970ffd4,
+ 0x1a70d091,
+ 0x0a027148,
+ 0x0a42d00b,
+ 0xa9c2da10,
+ 0x5a28c200,
+ 0x5dc09ea1,
+ 0x2dc0c0ff,
+ 0x3db0c801,
+ 0xfff43596,
+ 0xd05199a9,
+ 0xc2000a50,
+ 0xc2005a40,
+ 0x714e5ac1,
+ 0xfffe8506,
+ 0xf2509346,
+ 0x7500aa71,
+ 0x857fcfce,
+ 0x741cb541,
+ 0x9102c000,
+ 0xa9bef210,
+ 0x450ab760,
+ 0x9c629ea4,
+ 0xc0140d82,
+ 0xb78798e4,
+ 0x75004c88,
+ 0xb5478502,
+ 0xc0024c18,
+ 0xb7a092a4,
+ 0x0b025c8c,
+ 0xb787068f,
+ 0x75004208,
+ 0x9082c002,
+ 0x4308b787,
+ 0xc0017500,
+ 0xb78793e2,
+ 0x75004d08,
+ 0x9182c000,
+ 0xa9a2f208,
+ 0x4d08b5c7,
+ 0xa869f250,
+ 0x9c629e84,
+ 0x430ab500,
+ 0x4e08b787,
+ 0xc0007500,
+ 0xf2109382,
+ 0x9eaba825,
+ 0x4e08b5c7,
+ 0x9c629e84,
+ 0xaa21f250,
+ 0x9c629ea4,
+ 0xa9a1f208,
+ 0xa83df210,
+ 0x9e840d86,
+ 0xf2509c62,
+ 0x9eabaa25,
+ 0xa021f208,
+ 0x9ea40986,
+ 0xb7879c62,
+ 0x75004e08,
+ 0x91e4c000,
+ 0xc0140d86,
+ 0xb7879898,
+ 0x75004e08,
+ 0x9342ffff,
+ 0x90a0c000,
+ 0xc0140d86,
+ 0xb787988e,
+ 0x75004c88,
+ 0x9262fffd,
+ 0x0d82c0c0,
+ 0x09c2c012,
+ 0x09060d02,
+ 0x98deffd4,
+ 0x0a02c801,
+ 0x518cb580,
+ 0x0d82c0c0,
+ 0x09c2c012,
+ 0x09420d02,
+ 0x98d2ffd4,
+ 0x5194b760,
+ 0x991afff4,
+ 0xfff40d86,
+ 0xc0c09928,
+ 0xc0120d82,
+ 0x0d0209c2,
+ 0xffd40906,
+ 0x850298c3,
+ 0x0892c006,
+ 0x0c9ac430,
+ 0xb5400902,
+ 0xc006519c,
+ 0xb4418510,
+ 0xb104c000,
+ 0x2a404220,
+ 0x9d4f7500,
+ 0x4422b313,
+ 0xe0000087,
+ 0xffff1884,
+ 0xb7409284,
+ 0xc0064614,
+ 0xc4300892,
+ 0x09020c9a,
+ 0x8512c006,
+ 0xc000b441,
+ 0x4220b104,
+ 0x2a00c002,
+ 0x9d537500,
+ 0x4422b314,
+ 0xe0000089,
+ 0xffff1884,
+ 0x0a029264,
+ 0x0ceac03e,
+ 0x40e8b960,
+ 0xc000b481,
+ 0x93c1ffff,
+ 0xc0007680,
+ 0x0a029122,
+ 0x0ceac03e,
+ 0xc000b481,
+ 0x9180c000,
+ 0x448cb780,
+ 0x088a7504,
+ 0x0ceac03e,
+ 0x1894d00c,
+ 0xc000b421,
+ 0x0d82c0c0,
+ 0x0d0209e2,
+ 0xffd40942,
+ 0x0a02986f,
+ 0x0cb6c034,
+ 0xc000b481,
+ 0x7deeb79f,
+ 0x7e6eb7bf,
+ 0x7eeeb7df,
+ 0x7f6eb7ff,
+ 0x8c20c002,
+ 0xa60d9c22,
+ 0x7efec01c,
+ 0xc0000a82,
+ 0xc0c09182,
+ 0xc0120d82,
+ 0x0d0209c2,
+ 0xffd40906,
+ 0xc0009851,
+ 0xc4349240,
+ 0x0a020cb2,
+ 0xc000b481,
+ 0x4220b101,
+ 0x74402884,
+ 0x90e2c000,
+ 0x4c08b787,
+ 0xc00b7500,
+ 0xb7809022,
+ 0x75024e0c,
+ 0x90c4c000,
+ 0xc0140d82,
+ 0x3ac09a5d,
+ 0x5694b740,
+ 0x560cb740,
+ 0xa8c5d810,
+ 0xaa55f088,
+ 0x4592b720,
+ 0x9e496243,
+ 0x5a11c200,
+ 0xba090a04,
+ 0xba244002,
+ 0x70484002,
+ 0x06850305,
+ 0x9138c000,
+ 0x490cb780,
+ 0xb5802a51,
+ 0xc005490c,
+ 0xf2109040,
+ 0x2a04aa39,
+ 0xc0037500,
+ 0xb78092e2,
+ 0x7440490c,
+ 0x3942d011,
+ 0x490cb540,
+ 0x929cc002,
+ 0x4792b760,
+ 0xba249e5c,
+ 0xc002400a,
+ 0xc00291a2,
+ 0xb760911c,
+ 0xb740650a,
+ 0x9e996284,
+ 0xba099e2d,
+ 0xd0a24003,
+ 0x9e485e7f,
+ 0x5a6dc200,
+ 0xc2000208,
+ 0xd2265a17,
+ 0x0c065908,
+ 0x5a14c200,
+ 0x9e401208,
+ 0xa94ee038,
+ 0x4002ba24,
+ 0x9e545090,
+ 0xc0017902,
+ 0xb7819102,
+ 0x75004b88,
+ 0x9064c001,
+ 0x470ab780,
+ 0xba249e48,
+ 0x70084002,
+ 0x9378c000,
+ 0xc0007640,
+ 0xb78190e4,
+ 0x75024b08,
+ 0x92c2c000,
+ 0x1e32d011,
+ 0x478ab580,
+ 0x48fd9e54,
+ 0x470ab560,
+ 0x4b90b501,
+ 0xb5402959,
+ 0x20c2490c,
+ 0xc000a0c1,
+ 0x850290a0,
+ 0x4b98b541,
+ 0x518cb780,
+ 0x75002a08,
+ 0x9222c000,
+ 0x4888b787,
+ 0xc0007500,
+ 0xb7879182,
+ 0x75004388,
+ 0x90e2c000,
+ 0x490cb780,
+ 0xc0003a24,
+ 0xb78090a0,
+ 0x2a5d490c,
+ 0x490cb580,
+ 0x458ab780,
+ 0x400aba24,
+ 0x90fcc000,
+ 0x650ab780,
+ 0xb5800a04,
+ 0xb780650a,
+ 0x2a04518c,
+ 0xc0007500,
+ 0xb72092c2,
+ 0x0103588c,
+ 0x0910c016,
+ 0xa8c2f008,
+ 0x430ab780,
+ 0x08d0c016,
+ 0xf0080c84,
+ 0xb740a0c2,
+ 0xf310403d,
+ 0xb5808021,
+ 0xb720402d,
+ 0xc03e490c,
+ 0xb4210c82,
+ 0xb780c000,
+ 0x0a04458a,
+ 0x458ab580,
+ 0x9a96c014,
+ 0x4208b787,
+ 0xc0027500,
+ 0xb7879222,
+ 0x75004308,
+ 0x9182c002,
+ 0x518cb780,
+ 0x75002a40,
+ 0x90e4c000,
+ 0x5208b787,
+ 0xc002751a,
+ 0xb7809024,
+ 0xb723578c,
+ 0xda086592,
+ 0x9e48a881,
+ 0xc0007002,
+ 0xb7809284,
+ 0x8502430a,
+ 0x659ab543,
+ 0x440ab580,
+ 0x4412b760,
+ 0x530cb780,
+ 0xb5478506,
+ 0xb5474d18,
+ 0x9ea44e18,
+ 0xf2109c62,
+ 0x2a10aa39,
+ 0xc0007500,
+ 0xb78793e2,
+ 0x75004e08,
+ 0x90e4c000,
+ 0x658ab783,
+ 0xc0007502,
+ 0xb78792a4,
+ 0x75004d08,
+ 0xd0010902,
+ 0xc4380922,
+ 0x0a020c82,
+ 0xc000b481,
+ 0x4220b101,
+ 0x309428f1,
+ 0x0c82c038,
+ 0xc000b421,
+ 0x983ec014,
+ 0x4e0cb780,
+ 0xa955f288,
+ 0x71040a04,
+ 0x4e0cb580,
+ 0x90a4c000,
+ 0xb5408502,
+ 0xda104e1c,
+ 0xb720a8a5,
+ 0x58914592,
+ 0xba0960a3,
+ 0x9e4c4003,
+ 0x08843a84,
+ 0x020b7102,
+ 0x2a3dcffe,
+ 0x4426b354,
+ 0xd0510289,
+ 0x744028d0,
+ 0x9142c000,
+ 0x0d82c0c0,
+ 0x09c2c012,
+ 0x09420d02,
+ 0x9ae8ffb4,
+ 0x518cb780,
+ 0xc0007500,
+ 0x9eab90a2,
+ 0x9b3dffd4,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0xa205f839,
+ 0x5208b727,
+ 0x5204b740,
+ 0x448ab780,
+ 0x5908d0a6,
+ 0xb7409e2d,
+ 0xe030570c,
+ 0xb760a94e,
+ 0xb747669c,
+ 0xb7475298,
+ 0x1a045200,
+ 0x448ab580,
+ 0xa8cdc030,
+ 0x5a40e200,
+ 0x0a20d251,
+ 0xa882da08,
+ 0x82a3e210,
+ 0x5194b540,
+ 0x5c905c95,
+ 0x5208b527,
+ 0x92c4c001,
+ 0x5288b787,
+ 0xd3f10a04,
+ 0x744428ce,
+ 0x5288b587,
+ 0x9034c001,
+ 0x7414b761,
+ 0xb5478506,
+ 0x24a64c98,
+ 0xb5477640,
+ 0xb5204e18,
+ 0xc0005194,
+ 0xd1319202,
+ 0xb78008a0,
+ 0xc801402b,
+ 0x9e483c80,
+ 0x5a40c200,
+ 0x2a40c0ff,
+ 0xb5803208,
+ 0x0806518c,
+ 0xaa1df9f8,
+ 0xb7279c22,
+ 0xb7405288,
+ 0xd0a66184,
+ 0x9e2d5904,
+ 0xaa4dc830,
+ 0x448ab580,
+ 0x09a0d132,
+ 0x458ab720,
+ 0xaa61d810,
+ 0x4002ba19,
+ 0x5a11c200,
+ 0x70c81a04,
+ 0x9104c000,
+ 0x740cb781,
+ 0x3a00c040,
+ 0x740cb581,
+ 0x4e8cb720,
+ 0x0a18d011,
+ 0xc00070c8,
+ 0xb7819104,
+ 0xc010740c,
+ 0xb5813a00,
+ 0xd011740c,
+ 0x70c80a1c,
+ 0x9104c000,
+ 0x740cb781,
+ 0x3a00c020,
+ 0x740cb581,
+ 0x560cb780,
+ 0xa916f288,
+ 0xa919f288,
+ 0xb7209e50,
+ 0xd011460a,
+ 0x62411a24,
+ 0x4002ba09,
+ 0x704800b2,
+ 0x9106c000,
+ 0x740cb781,
+ 0x2a7acfff,
+ 0x740cb581,
+ 0x1a22d011,
+ 0x62459e52,
+ 0xc0007048,
+ 0xb7819106,
+ 0xc7fe740c,
+ 0xb5812a7e,
+ 0xb740740c,
+ 0xd0a2451a,
+ 0xf3105e11,
+ 0x70c88821,
+ 0x9104c000,
+ 0x740cb781,
+ 0x2a4ecfff,
+ 0x740cb581,
+ 0x568cb740,
+ 0x740cb721,
+ 0xaa45d808,
+ 0x9e8a9e50,
+ 0x5a11c200,
+ 0x62091a04,
+ 0x5194b720,
+ 0xba240a04,
+ 0x70c84002,
+ 0xb5202494,
+ 0xc0005194,
+ 0xc8019118,
+ 0xb5203c80,
+ 0xc0005194,
+ 0xd81091c0,
+ 0xc801aa61,
+ 0x9e483c80,
+ 0x5a40c200,
+ 0x2a40c0ff,
+ 0xb5803208,
+ 0xf008518c,
+ 0xc040aa59,
+ 0x75002a00,
+ 0x9102c000,
+ 0x518cb780,
+ 0x3a00c101,
+ 0x518cb580,
+ 0x5194b760,
+ 0x9a2cffd4,
+ 0xf9f80802,
+ 0x9c22aa1d,
+ 0x5714b700,
+ 0x0e04d251,
+ 0x560cb760,
+ 0xa881da08,
+ 0x2dfcc00e,
+ 0x0cbac034,
+ 0xa961f008,
+ 0xc0805895,
+ 0x9e825810,
+ 0xc000b441,
+ 0x454ab780,
+ 0xa963f008,
+ 0x5a10c200,
+ 0x8021f310,
+ 0xa8e9f008,
+ 0xf0080c84,
+ 0xb421a261,
+ 0xb780c000,
+ 0xf00846ca,
+ 0xf310a96b,
+ 0xf0088021,
+ 0x0c84a8ed,
+ 0xa269f008,
+ 0xc000b421,
+ 0x46cab780,
+ 0xa96ff008,
+ 0x8021f310,
+ 0xa8f5f008,
+ 0xf0080c8c,
+ 0xb421a26d,
+ 0xf008c000,
+ 0x0c84a97d,
+ 0xc000b441,
+ 0x4d8cb780,
+ 0xd2240a08,
+ 0x72445890,
+ 0x931cc000,
+ 0x0e04d131,
+ 0xa903da08,
+ 0xe2109e4c,
+ 0x710288a1,
+ 0x91d6c000,
+ 0xaa75f008,
+ 0xa8fdf008,
+ 0x0a00c010,
+ 0xa275f008,
+ 0x0880c008,
+ 0xa0fdf008,
+ 0x4f0cb780,
+ 0x0cdac034,
+ 0xc000b481,
+ 0x4f8cb720,
+ 0xb4210c84,
+ 0xb780c000,
+ 0x0ce44f0c,
+ 0xb4810a40,
+ 0xb720c000,
+ 0x0c844f8c,
+ 0xb42108c0,
+ 0xb780c000,
+ 0xb7204f0c,
+ 0x1ce44f8c,
+ 0x0a00c010,
+ 0x4f0cb580,
+ 0xaa65f048,
+ 0x0880c008,
+ 0x4f8cb520,
+ 0xc000b481,
+ 0xa8edf048,
+ 0xb4210c84,
+ 0xf048c000,
+ 0xf048aa65,
+ 0x0c84a8ed,
+ 0x0a00c010,
+ 0xa265f048,
+ 0xaa75f048,
+ 0x0880c008,
+ 0xa0edf048,
+ 0xc000b481,
+ 0xa965f088,
+ 0xb4410c88,
+ 0xd131c000,
+ 0xb7800c80,
+ 0xf088402b,
+ 0xcffea967,
+ 0xf3102a40,
+ 0xf0888021,
+ 0x0c88a969,
+ 0xa265f088,
+ 0xc000b441,
+ 0x0c80d131,
+ 0x402bb780,
+ 0xa96bf088,
+ 0x2a40cffe,
+ 0x8021f310,
+ 0xa97df048,
+ 0xf0881c8c,
+ 0xb441a269,
+ 0xd131c000,
+ 0xb7800c80,
+ 0xf048402b,
+ 0x76c0a97f,
+ 0x5a11c200,
+ 0x5a14c200,
+ 0x8021f310,
+ 0xa27df048,
+ 0x9182c001,
+ 0x454ab720,
+ 0xb4211ca8,
+ 0xb780c000,
+ 0x0c8446ca,
+ 0x5a0dc200,
+ 0x58c0c200,
+ 0xb4813242,
+ 0xd131c000,
+ 0xd8080d04,
+ 0x0c8caa41,
+ 0x588cc200,
+ 0x28fccffe,
+ 0x5a50c200,
+ 0xb4213098,
+ 0xd251c000,
+ 0xd8080d04,
+ 0x0ca0aa41,
+ 0x5a11c200,
+ 0x2a3c1a10,
+ 0x3a00c004,
+ 0xc000b481,
+ 0x4d8cb780,
+ 0xb5800a04,
+ 0x9c224d8c,
+ 0xc43ea61d,
+ 0x0a020c92,
+ 0xc000b481,
+ 0x4220b103,
+ 0x5f8cb780,
+ 0xa885da08,
+ 0xa909da08,
+ 0xa189da08,
+ 0xa081da08,
+ 0xa105da08,
+ 0x0a020cd0,
+ 0xc000b481,
+ 0x4220b103,
+ 0x5f0cb720,
+ 0x518cb780,
+ 0x5f94b7a0,
+ 0x40b3b720,
+ 0xb7409e8e,
+ 0xb560412b,
+ 0x2a40412b,
+ 0xb5207500,
+ 0xb5404033,
+ 0xc00040ab,
+ 0xb78790e2,
+ 0x750a5208,
+ 0x90f2c000,
+ 0x5208b787,
+ 0xc014751a,
+ 0xb7839124,
+ 0x0a04658a,
+ 0x658ab583,
+ 0x0ca6c450,
+ 0xb4810a02,
+ 0xb103c000,
+ 0x00874220,
+ 0x2880c031,
+ 0x5961d0a4,
+ 0xc00f0207,
+ 0xc2002a7c,
+ 0x00075ac1,
+ 0x287ccffe,
+ 0x0a020c88,
+ 0xc000b481,
+ 0x4220b103,
+ 0x59c1d1a8,
+ 0xcffe9e98,
+ 0x0cbc2c7c,
+ 0xc000b481,
+ 0x4220b103,
+ 0xb7400087,
+ 0xd0f2568c,
+ 0xb78329be,
+ 0xc0fc648a,
+ 0xc0802880,
+ 0x9e595b99,
+ 0xa8d2d888,
+ 0x6492b563,
+ 0xdffc1218,
+ 0xba1c7e7e,
+ 0x03054002,
+ 0x91c2c002,
+ 0xc0007682,
+ 0xb7809384,
+ 0xb740480a,
+ 0xba246284,
+ 0xc2004002,
+ 0x58ed58ff,
+ 0x589700c2,
+ 0x5908d0a6,
+ 0x58949e2d,
+ 0x9e511242,
+ 0xa8cee038,
+ 0x4a7d5230,
+ 0x249e9ea7,
+ 0xc001a0c2,
+ 0xb7809180,
+ 0xda10468a,
+ 0xba24a8a1,
+ 0x70484002,
+ 0x907cc001,
+ 0x698ab783,
+ 0x4812b720,
+ 0x6284b740,
+ 0xb5830a04,
+ 0xba09698a,
+ 0xd0a24003,
+ 0x9e495e7f,
+ 0xc2009e2d,
+ 0x02185a6d,
+ 0x5a17c200,
+ 0x5908d226,
+ 0x5a14c200,
+ 0xe0389ea7,
+ 0x149ea94d,
+ 0x08869e4c,
+ 0x312250b0,
+ 0xb780a141,
+ 0x0a04480a,
+ 0x480ab580,
+ 0x4288b787,
+ 0xb7877500,
+ 0xc0004308,
+ 0xc01c90c4,
+ 0xc0027d3e,
+ 0xc01c91c4,
+ 0xb3577d3e,
+ 0xe2414442,
+ 0xd02183b1,
+ 0x7682040e,
+ 0xaa59f208,
+ 0xd0010882,
+ 0x2a040892,
+ 0xb7407902,
+ 0xc0005c8c,
+ 0xd80890e2,
+ 0x0a04aa49,
+ 0xa249d808,
+ 0xa94bf008,
+ 0xa94cf00a,
+ 0x8027f010,
+ 0x82a1e010,
+ 0xa249f008,
+ 0xa0cdf008,
+ 0x4888b787,
+ 0x08827500,
+ 0x0892d002,
+ 0x0a027682,
+ 0x0a42d002,
+ 0xc0007848,
+ 0xc07c90c2,
+ 0xda108542,
+ 0x7682a123,
+ 0xa953f008,
+ 0x90c4c000,
+ 0xaa41da10,
+ 0x9080c000,
+ 0xaa21da10,
+ 0x80a1e310,
+ 0xaa4dd808,
+ 0xa0d1f008,
+ 0xd8080a04,
+ 0xc006a24d,
+ 0xf20891a0,
+ 0xb720aa59,
+ 0xd0305c8c,
+ 0xc2010507,
+ 0xb7408120,
+ 0x2a044525,
+ 0xf3107500,
+ 0xf3108023,
+ 0x01038221,
+ 0x452db580,
+ 0x90a2c001,
+ 0xc0007682,
+ 0xda1090c4,
+ 0xc000aa41,
+ 0xda109080,
+ 0xd808aa21,
+ 0x7686a25d,
+ 0x9082c001,
+ 0xc0007680,
+ 0x74c091a4,
+ 0xa953d808,
+ 0x8d2ae002,
+ 0x8029f210,
+ 0xa251d808,
+ 0x92c0c000,
+ 0xd84874c0,
+ 0xe002a947,
+ 0xc0008d26,
+ 0xda109160,
+ 0x74c0aa41,
+ 0xa947d848,
+ 0xa25dd808,
+ 0x8d2ae002,
+ 0x8029f210,
+ 0xa245d848,
+ 0x4408b787,
+ 0xc0007500,
+ 0xb7809302,
+ 0x9e59440a,
+ 0xc0007048,
+ 0x85029244,
+ 0x4418b547,
+ 0x0c82c43a,
+ 0xb4810a02,
+ 0xb103c000,
+ 0xcfef4220,
+ 0xc03a29fe,
+ 0xb4610c82,
+ 0xb780c000,
+ 0x9e59440a,
+ 0x08827048,
+ 0x0892d002,
+ 0x0a027686,
+ 0x0a42d001,
+ 0xc0007848,
+ 0x85069242,
+ 0x4418b547,
+ 0x0c82c43a,
+ 0xb4810a02,
+ 0xb103c000,
+ 0xc0114220,
+ 0xc03a3980,
+ 0xb4610c82,
+ 0x75c0c000,
+ 0x91a2c001,
+ 0xc0007680,
+ 0xda1092e4,
+ 0xf008aa21,
+ 0xd808a947,
+ 0xf310a8d5,
+ 0xd8088021,
+ 0xf008a8da,
+ 0x9e5ca245,
+ 0xd8080c84,
+ 0x00c2a0da,
+ 0xa0d5d808,
+ 0x92a0c000,
+ 0xaa41da10,
+ 0xa95bf008,
+ 0xa8c9d848,
+ 0x8021f310,
+ 0xa8ced848,
+ 0xa259f008,
+ 0x0c849e5c,
+ 0xa0ced848,
+ 0xd84800c2,
+ 0xd808a0c9,
+ 0xf008aa5d,
+ 0xf04aa95f,
+ 0xf048a940,
+ 0xf310a9c7,
+ 0xf0488021,
+ 0xf008a94f,
+ 0xf210a25d,
+ 0xd8488221,
+ 0xf048a8c2,
+ 0xf310a241,
+ 0xe2108033,
+ 0x0c8480af,
+ 0xa0c2d848,
+ 0xa245f048,
+ 0xa0cdf048,
+ 0x4388b787,
+ 0xc0067500,
+ 0xb78092a2,
+ 0xb7e0460c,
+ 0xb7205b94,
+ 0xf0085d8c,
+ 0xb760a8ce,
+ 0xd2285b1c,
+ 0xd0f15908,
+ 0xb7400e78,
+ 0xf008403d,
+ 0x9d48a8c9,
+ 0xa944e042,
+ 0xaa75f058,
+ 0x8122c201,
+ 0x80abe210,
+ 0x8a21f310,
+ 0xc0007048,
+ 0x850690f8,
+ 0x4898b547,
+ 0x5418b547,
+ 0xc0007045,
+ 0x850690b8,
+ 0x5518b547,
+ 0x588cb720,
+ 0xc0169e8e,
+ 0xf2100f30,
+ 0x7500aa41,
+ 0xc0040383,
+ 0x030f93e2,
+ 0x0b20c016,
+ 0xa943f208,
+ 0x0607d010,
+ 0xf3109ebd,
+ 0xc0168021,
+ 0xf2080e80,
+ 0xf210a241,
+ 0x7440a8a1,
+ 0xc014028f,
+ 0xc0000af0,
+ 0x020f9124,
+ 0x0a60c014,
+ 0xa881f208,
+ 0xa0a1f208,
+ 0xaa21f210,
+ 0xf2100a04,
+ 0xf208a221,
+ 0x7102a8a1,
+ 0x9278c000,
+ 0xa8c1f208,
+ 0xaa41f210,
+ 0xc0007048,
+ 0x850690b8,
+ 0x5498b547,
+ 0xf2088502,
+ 0xf210a143,
+ 0xc003a123,
+ 0xc05490e0,
+ 0xf20899ba,
+ 0xf208a8a9,
+ 0xf210a035,
+ 0x7048aa21,
+ 0x9398c002,
+ 0xa8e2f210,
+ 0xc0007642,
+ 0xb74092c4,
+ 0xf2105b0c,
+ 0xf208a943,
+ 0xf048aa41,
+ 0xf310a8d5,
+ 0x71028821,
+ 0xc000852a,
+ 0xb5279136,
+ 0xb5274890,
+ 0xc0005410,
+ 0x85669060,
+ 0x4888b787,
+ 0xc0007500,
+ 0x020f91e4,
+ 0x0a40c016,
+ 0xa881f208,
+ 0xc0007075,
+ 0x850690f6,
+ 0x4898b547,
+ 0x5418b547,
+ 0x4888b787,
+ 0xc0017500,
+ 0x020f9164,
+ 0x0a00c016,
+ 0xa981f208,
+ 0xc016028f,
+ 0xf2080aa0,
+ 0xd1a4a923,
+ 0x9e9f59fd,
+ 0x5d8705f6,
+ 0x81afe220,
+ 0xc0540d02,
+ 0x020f991e,
+ 0x0a40c016,
+ 0xa881f208,
+ 0xc0007002,
+ 0xf20891fc,
+ 0x1a10a8a2,
+ 0xa881f208,
+ 0x58879e4a,
+ 0xc0007082,
+ 0x850690bc,
+ 0x5418b547,
+ 0x7e6eb79f,
+ 0x7eeeb7bf,
+ 0x7f6eb7df,
+ 0x7feeb7ff,
+ 0x8c00c002,
+ 0xc0369c22,
+ 0x9e5c0cfe,
+ 0xc000b481,
+ 0xb7209c22,
+ 0xb7805b94,
+ 0x7504404d,
+ 0xc0009d3a,
+ 0xb72091c4,
+ 0xb7805b0c,
+ 0xb5804cab,
+ 0xc20041cb,
+ 0xc2005a40,
+ 0xc0015941,
+ 0xb7209100,
+ 0xb7805d0c,
+ 0xe310402d,
+ 0x74278821,
+ 0x90b6c000,
+ 0xc000084f,
+ 0x741a90e0,
+ 0xb3028532,
+ 0x9d434478,
+ 0x403db740,
+ 0x648ab723,
+ 0x8121e210,
+ 0x1a14d071,
+ 0xc0007088,
+ 0xd0719138,
+ 0x70880a12,
+ 0x5b0cb720,
+ 0x90bcc000,
+ 0x5b0cb720,
+ 0xb7809d4b,
+ 0xb70040a9,
+ 0xc8124129,
+ 0xc0107104,
+ 0x9c227080,
+ 0x5b94b740,
+ 0x5a0cb780,
+ 0xb7208502,
+ 0x87025d14,
+ 0xa8cdd810,
+ 0xa16bf010,
+ 0xa16ff010,
+ 0xa173f010,
+ 0xa16fd810,
+ 0xa16bd810,
+ 0xa0e1f010,
+ 0x4880b547,
+ 0x415db540,
+ 0x41ddb540,
+ 0x425db540,
+ 0x41dbb540,
+ 0x415bb540,
+ 0xa103f208,
+ 0x0a61cfe8,
+ 0x0a10c016,
+ 0xa11ff3e9,
+ 0xa103f208,
+ 0x0a01cfea,
+ 0xc0140089,
+ 0xf2080a60,
+ 0xd810a103,
+ 0xc016a94d,
+ 0x0a5008d0,
+ 0xa107f229,
+ 0xa103f208,
+ 0x403db540,
+ 0x404db540,
+ 0xa60d9c22,
+ 0x598cb780,
+ 0xf20876c0,
+ 0xcfe8a182,
+ 0x9ea50a51,
+ 0xc0010307,
+ 0xb7809322,
+ 0xf2085b8c,
+ 0x7444a881,
+ 0x9364c000,
+ 0xc0169e6c,
+ 0xf2080a50,
+ 0x7440a881,
+ 0x9262c000,
+ 0xf2081a40,
+ 0xd1a4a981,
+ 0x9e9959fd,
+ 0x9e890596,
+ 0x5d870d02,
+ 0xc0540596,
+ 0xb780984c,
+ 0xdac85b0c,
+ 0x9e69a005,
+ 0x0a829e6c,
+ 0x0890c016,
+ 0x402db5a0,
+ 0x0a50c016,
+ 0xa281f208,
+ 0xb5c018b0,
+ 0xc054402d,
+ 0x9e6c9886,
+ 0x0a40c016,
+ 0xa001f208,
+ 0x4888b5a7,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0xb7209e5b,
+ 0xf0085d14,
+ 0xf00aaa61,
+ 0xf008a968,
+ 0xb740a96e,
+ 0xb58041db,
+ 0xd808404d,
+ 0xf310aa6d,
+ 0xb7408021,
+ 0xb580415b,
+ 0xd80841cb,
+ 0xf310aa69,
+ 0xb5808021,
+ 0xf008414b,
+ 0xb520a8e9,
+ 0xf008414d,
+ 0xb760aa6d,
+ 0xb7205d94,
+ 0xb5805b8c,
+ 0xf01041cd,
+ 0xe020a963,
+ 0xb7408325,
+ 0xf008402d,
+ 0xf210a8f1,
+ 0x7482802d,
+ 0xa261f010,
+ 0x424db520,
+ 0x9184c000,
+ 0xaa71f008,
+ 0xa967f050,
+ 0x5a0fc200,
+ 0x8021f310,
+ 0xa265f050,
+ 0xd8088502,
+ 0xd808a16f,
+ 0x8502a16b,
+ 0xf0089e50,
+ 0xf008a16b,
+ 0xf008a16f,
+ 0x9c22a173,
+ 0x5b14b720,
+ 0xf0089e5a,
+ 0xb720aa41,
+ 0xc4104149,
+ 0xf0087048,
+ 0xb780a0c1,
+ 0xd01240c9,
+ 0x74c07102,
+ 0xa241f008,
+ 0x91c4c000,
+ 0x5b8cb720,
+ 0xaa41d808,
+ 0x5d14b720,
+ 0x41abb580,
+ 0xaa41f008,
+ 0x404db580,
+ 0x9c220802,
+ 0xf011a605,
+ 0xb7a00c30,
+ 0xb7a05d94,
+ 0xc0005b0c,
+ 0xda509124,
+ 0xda08a9aa,
+ 0x0d02a9b1,
+ 0x9ba7c034,
+ 0x5b8cb720,
+ 0xa8aad208,
+ 0xa926d208,
+ 0x412bb740,
+ 0xda089e49,
+ 0xc010aa35,
+ 0x9e817040,
+ 0xc8121a08,
+ 0x70887282,
+ 0x90c4c000,
+ 0x588cb780,
+ 0xa102da08,
+ 0xa927da50,
+ 0xf2109e50,
+ 0xda50802d,
+ 0xb79fa225,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa61d9c22,
+ 0x07878440,
+ 0x028777c2,
+ 0x7e6cb5bf,
+ 0x91a4c000,
+ 0x5d8cb720,
+ 0x412bb780,
+ 0x5b94b7c0,
+ 0xb5800a04,
+ 0xc000412b,
+ 0xb7279320,
+ 0x74404388,
+ 0x91c2c000,
+ 0x5b8cb780,
+ 0xa891f248,
+ 0x5894b720,
+ 0x588f9ea6,
+ 0x484db520,
+ 0x9100c000,
+ 0x588cb780,
+ 0x5b94b7c0,
+ 0xa081f288,
+ 0xf21077c4,
+ 0xb780a842,
+ 0x0d825b0c,
+ 0x0db2d001,
+ 0x9ea57604,
+ 0xa98dd208,
+ 0x92c4c001,
+ 0xc00176c0,
+ 0xb7879104,
+ 0x75004888,
+ 0x9122c000,
+ 0xaa25dad0,
+ 0xa8a9d210,
+ 0xc0000a14,
+ 0xb7879180,
+ 0x75005408,
+ 0x9162c000,
+ 0xaa25dad0,
+ 0xa8a9d210,
+ 0xc4100a08,
+ 0xdad07048,
+ 0xb720a0a5,
+ 0xdad05d8c,
+ 0xb740aa25,
+ 0xf310453b,
+ 0xb5808021,
+ 0xc000452b,
+ 0x0d829120,
+ 0x9b68fff4,
+ 0xa059da50,
+ 0xa025dad0,
+ 0xaaa5dad0,
+ 0x9240c017,
+ 0xc0177602,
+ 0x74ec91e4,
+ 0x5d0cb780,
+ 0xd0090d0e,
+ 0x9e520d24,
+ 0xa88dda08,
+ 0x6126d033,
+ 0x0c827075,
+ 0xc0000009,
+ 0xda109158,
+ 0xf310aa2d,
+ 0x70488021,
+ 0xd00b0481,
+ 0xf2101c92,
+ 0x7502aa49,
+ 0xc0009e4a,
+ 0xda1090e4,
+ 0x7500aa49,
+ 0x9182c000,
+ 0x590cb780,
+ 0xa881d208,
+ 0xcfea7440,
+ 0x03890a31,
+ 0x91e4c001,
+ 0xc00176c0,
+ 0xdad09024,
+ 0xd210aaa5,
+ 0xd210aa29,
+ 0xd410a8a5,
+ 0xd412710a,
+ 0x7640704a,
+ 0x5d9cb760,
+ 0x91c2c000,
+ 0x412ab780,
+ 0xa8e1d818,
+ 0xa1f2d058,
+ 0xa271d818,
+ 0xa26dd818,
+ 0xa0f5d818,
+ 0xaa69d858,
+ 0x9040c014,
+ 0x5d8cb720,
+ 0x44abb780,
+ 0xb580024a,
+ 0xda5044ab,
+ 0xc014a2d9,
+ 0xd29092a0,
+ 0x7500aa4d,
+ 0x9122c001,
+ 0xc00176c0,
+ 0x74809044,
+ 0x5d9cb760,
+ 0x91a2c000,
+ 0xa8e5f058,
+ 0x6a31d291,
+ 0xc0007048,
+ 0xd81890dc,
+ 0xd818aa61,
+ 0xd210a275,
+ 0xda50a8a1,
+ 0x7102aa51,
+ 0x9088c000,
+ 0xa0d1da50,
+ 0xaa45d290,
+ 0xda507500,
+ 0xc012aad1,
+ 0xda509160,
+ 0xc006a9d2,
+ 0x74809100,
+ 0x5d9cb760,
+ 0x9362c003,
+ 0x412ab720,
+ 0x6a37d011,
+ 0xc0007048,
+ 0xd81891bc,
+ 0x5884aa6d,
+ 0x70486a0c,
+ 0x90dcc000,
+ 0xa076d058,
+ 0x90a0c000,
+ 0xd0588502,
+ 0xd210a177,
+ 0xf058a8ae,
+ 0xd291a8e5,
+ 0x9e4b6e11,
+ 0xd0117048,
+ 0xb7201e22,
+ 0x6247412a,
+ 0xd00d0902,
+ 0x70480922,
+ 0x901cc001,
+ 0xaa71d818,
+ 0x5884d0a4,
+ 0x6a0c9e49,
+ 0x08827048,
+ 0x0892d00d,
+ 0xc0007844,
+ 0xa8e19262,
+ 0xaa75d818,
+ 0x6a0c5884,
+ 0xc0007048,
+ 0x8506917c,
+ 0xa173d058,
+ 0xa15bd290,
+ 0xaa61d818,
+ 0x93a0c000,
+ 0xa8f1d818,
+ 0xd0588502,
+ 0xb780a173,
+ 0xd013412a,
+ 0xf3106916,
+ 0x74808021,
+ 0x5a0bc200,
+ 0xa271d818,
+ 0x91a2c000,
+ 0xa8f5d818,
+ 0xd013aa61,
+ 0xf3106916,
+ 0xc2008021,
+ 0xd8185a0b,
+ 0xd058a275,
+ 0x7500aa71,
+ 0x91e2c000,
+ 0xaa35da10,
+ 0xa8c9da10,
+ 0xc2006a14,
+ 0x70485a0f,
+ 0x90bcc000,
+ 0xd0588506,
+ 0xb780a17b,
+ 0xd818412a,
+ 0xd058a26d,
+ 0x7580ab71,
+ 0x9162c002,
+ 0xc00276c0,
+ 0xd2109024,
+ 0xda52aa21,
+ 0xe001a958,
+ 0xb3431244,
+ 0x9e5c444c,
+ 0xd058751e,
+ 0x853ea8f9,
+ 0x4478b342,
+ 0xf2107440,
+ 0xc00082ad,
+ 0xda1091c2,
+ 0xda10a8ca,
+ 0x9e4aaa35,
+ 0x70881a0c,
+ 0x08d4d011,
+ 0x443cb351,
+ 0xd2900283,
+ 0xb727a945,
+ 0x74805408,
+ 0x4890b727,
+ 0x0a54d011,
+ 0x4422b354,
+ 0x02897440,
+ 0x0a54d011,
+ 0x4422b354,
+ 0xd2107640,
+ 0x0289a8a9,
+ 0x4424b315,
+ 0xaa25d210,
+ 0x704ad410,
+ 0x710ad412,
+ 0x9020c00c,
+ 0xfff40d82,
+ 0xda509a0f,
+ 0xc00ca059,
+ 0xd29093a0,
+ 0x7500aa59,
+ 0x91c2c001,
+ 0xc00076c0,
+ 0xda509244,
+ 0xd210aa59,
+ 0xd290aaa1,
+ 0xb727a945,
+ 0x0a045408,
+ 0x7148d412,
+ 0xb7277480,
+ 0xc00a4890,
+ 0x0d829140,
+ 0x99f0fff4,
+ 0xaa5dd290,
+ 0xda507500,
+ 0xd290a059,
+ 0xc00ba359,
+ 0xda509322,
+ 0xda90a957,
+ 0xe210aa41,
+ 0x0a0480a1,
+ 0xa241da90,
+ 0xa0d5da50,
+ 0x9180c00b,
+ 0xaa69d818,
+ 0xc0017500,
+ 0xb7809244,
+ 0xf018608c,
+ 0xda08a97b,
+ 0xe210a881,
+ 0xf01888a3,
+ 0xf250a0f9,
+ 0x7500aa51,
+ 0xaad9da50,
+ 0x91dac000,
+ 0xaa79d058,
+ 0x85060a88,
+ 0xd2c87500,
+ 0xd011a17b,
+ 0xb3540a52,
+ 0x02894424,
+ 0xa8c6d290,
+ 0xa8a9d210,
+ 0xd2107640,
+ 0xd011a925,
+ 0xb3540a54,
+ 0x02894422,
+ 0x704ad410,
+ 0x708ad412,
+ 0xc0087640,
+ 0x76c092a0,
+ 0x9364c008,
+ 0x4124b740,
+ 0x41acb780,
+ 0xa953f250,
+ 0x8221f310,
+ 0x8821f310,
+ 0xa251f250,
+ 0xa8e1f288,
+ 0xc0017102,
+ 0xd81892b6,
+ 0xb740a8e9,
+ 0xd0a86084,
+ 0xf0185984,
+ 0xc820a97b,
+ 0xf310aa61,
+ 0xf0188821,
+ 0xd2c8a279,
+ 0xd058a8f9,
+ 0x7442a8fa,
+ 0xd0110a88,
+ 0xb3540a54,
+ 0x76404424,
+ 0xc0000289,
+ 0xda5090e2,
+ 0x0a04aa59,
+ 0x710ad412,
+ 0xa8a9d210,
+ 0xaa59da50,
+ 0xa945d290,
+ 0x704ad410,
+ 0x5408b727,
+ 0xd4100a0c,
+ 0x7480710a,
+ 0x4890b727,
+ 0x92a0c005,
+ 0xaa69d818,
+ 0x6084b740,
+ 0x5984d228,
+ 0xa8e2c820,
+ 0xa8e1d898,
+ 0x60979e4b,
+ 0x5a7fc080,
+ 0x5a61c200,
+ 0x58a30098,
+ 0xa0e1f248,
+ 0xaa61d898,
+ 0xf0187440,
+ 0x0882a979,
+ 0x0892d00e,
+ 0xd2246245,
+ 0x76c059a3,
+ 0xd00e0a02,
+ 0xe0000a42,
+ 0xc0003098,
+ 0xf24890a2,
+ 0x9e93a0e2,
+ 0xa97bf018,
+ 0xf21076c0,
+ 0xf018882b,
+ 0xc000a279,
+ 0xf24890fc,
+ 0x7440a8e1,
+ 0x911ac000,
+ 0xaa31f210,
+ 0x5804c200,
+ 0x9220c000,
+ 0xaa51f250,
+ 0x6142d033,
+ 0x5d879e5b,
+ 0x81afe220,
+ 0xb57f0d02,
+ 0xc0347f7c,
+ 0xb77f98c8,
+ 0x020f7f7c,
+ 0x0a30c016,
+ 0xa881f208,
+ 0xc0007440,
+ 0xda109162,
+ 0x0a10a8ae,
+ 0xa881f208,
+ 0x60999e4c,
+ 0x7002c010,
+ 0xaa69d818,
+ 0x6004b740,
+ 0xa961f248,
+ 0xa8c9f250,
+ 0x5984d228,
+ 0xa8e2c820,
+ 0xaa31f210,
+ 0x6122d033,
+ 0xc2009d9a,
+ 0xc0015a07,
+ 0xc0121004,
+ 0xd0247008,
+ 0xe2205987,
+ 0x0d0281af,
+ 0x7f7cb57f,
+ 0xc0340181,
+ 0xd0249894,
+ 0xc034598f,
+ 0xd29098ba,
+ 0xb75fa9c9,
+ 0xda507e64,
+ 0xb77fa959,
+ 0xf2107f7c,
+ 0xe2108227,
+ 0xb7208ba7,
+ 0xd0116114,
+ 0x190c08a6,
+ 0x7008d410,
+ 0xaa75d058,
+ 0x7142d410,
+ 0x41c9b720,
+ 0x708ad412,
+ 0xa945d290,
+ 0x70cad412,
+ 0xb7277502,
+ 0xd0114890,
+ 0xb3540a52,
+ 0x74404424,
+ 0x5408b727,
+ 0xd0110289,
+ 0xb3541a52,
+ 0x74804422,
+ 0xd0110289,
+ 0xb3540a54,
+ 0x74404422,
+ 0xd0110289,
+ 0xb3540a54,
+ 0x76404422,
+ 0xc0000289,
+ 0xd2109082,
+ 0xd210aaa9,
+ 0xd210aa29,
+ 0xd410a8a5,
+ 0xd412710a,
+ 0x7480704a,
+ 0xaa69d858,
+ 0x0a46d002,
+ 0xd858024a,
+ 0xc000a269,
+ 0x0d829360,
+ 0x9886fff4,
+ 0xaa5dd290,
+ 0xda507500,
+ 0xc000a059,
+ 0xda5091a2,
+ 0xda90a957,
+ 0xe210aa41,
+ 0x0a0480a1,
+ 0xa241da90,
+ 0xa0d5da50,
+ 0xaa59da50,
+ 0xa24dda10,
+ 0xc00077c0,
+ 0xb78090c4,
+ 0xda485d8c,
+ 0x000ba38a,
+ 0x7d6eb79f,
+ 0x7deeb7bf,
+ 0x7e6eb7df,
+ 0x7eeeb7ff,
+ 0x8c40c002,
+ 0xa61d9c22,
+ 0xb7208460,
+ 0xb7805b8c,
+ 0x0f82402d,
+ 0xb55f0902,
+ 0x75027dec,
+ 0x7e6cb55f,
+ 0xc00b0303,
+ 0xb7a09164,
+ 0xb7a05d0c,
+ 0xf2085b14,
+ 0xda10a9b2,
+ 0x0d02a9ad,
+ 0x9bf7c014,
+ 0x5d8cb780,
+ 0x5894b720,
+ 0xa8cdd288,
+ 0xa91ff208,
+ 0xb500070b,
+ 0x9ea5444d,
+ 0x8021e210,
+ 0x038b7440,
+ 0xa01df208,
+ 0x93c4c000,
+ 0xaa49da08,
+ 0xc0007502,
+ 0xda109334,
+ 0xb740a8aa,
+ 0xd0a66004,
+ 0xf2085d04,
+ 0x9e2ea8e9,
+ 0xaa41c838,
+ 0x5904d0a6,
+ 0x8122c201,
+ 0x8021f310,
+ 0x5a0bc200,
+ 0xa241d800,
+ 0x91a0c000,
+ 0xaa29da10,
+ 0x6004b740,
+ 0xa8f1da08,
+ 0x5904d226,
+ 0xc8309e2d,
+ 0xda08a0cd,
+ 0xda10aa49,
+ 0xda12a8d1,
+ 0x1a04a9a8,
+ 0xd0136243,
+ 0xe0100942,
+ 0xb77f80a7,
+ 0xb53f7e7c,
+ 0xf2087d6c,
+ 0x744aa8ee,
+ 0xb3328506,
+ 0x76404c78,
+ 0x7e7cb55f,
+ 0x9124c000,
+ 0xaa4df208,
+ 0xf2080a04,
+ 0xc004a24d,
+ 0xb7809060,
+ 0xb7405c8c,
+ 0xf2086384,
+ 0x9e2da881,
+ 0x5904d0a6,
+ 0x588cb720,
+ 0xaa4dc830,
+ 0xb7609e4a,
+ 0xd0334435,
+ 0xf2086128,
+ 0xd1a2a8cd,
+ 0x5d935d8f,
+ 0x81afe220,
+ 0x8ab3f210,
+ 0xc0140d02,
+ 0xda109b7c,
+ 0xc028aa4d,
+ 0x70086a00,
+ 0x92d6c000,
+ 0xaa45f248,
+ 0x09d2d012,
+ 0x9e5b624b,
+ 0x0108d030,
+ 0xe2205d87,
+ 0x0d0281af,
+ 0xa1c6f248,
+ 0x9b65c014,
+ 0xa045f248,
+ 0x90e0c000,
+ 0xaa4df208,
+ 0xf2080a04,
+ 0xda10a24d,
+ 0xda10a951,
+ 0xd124aa29,
+ 0xd01158c0,
+ 0xd0a208c2,
+ 0x70485e49,
+ 0x9216c000,
+ 0xaa4df248,
+ 0xa944f24a,
+ 0x5904d226,
+ 0x8021f310,
+ 0x8221f310,
+ 0x5a0bc200,
+ 0x9100c001,
+ 0x5e45d0a2,
+ 0xc0007048,
+ 0xf2489196,
+ 0xf248a947,
+ 0xf310aa4d,
+ 0xc2008021,
+ 0xc0005a07,
+ 0xd0119320,
+ 0xc2006a26,
+ 0x70485a0b,
+ 0x9216c000,
+ 0xa8c5f248,
+ 0xaa4df248,
+ 0x5904d0a6,
+ 0x8122c201,
+ 0x8021f310,
+ 0x5a0bc200,
+ 0x9080c000,
+ 0xaa45f248,
+ 0xa249f248,
+ 0xaa49da08,
+ 0xb7407500,
+ 0xc0036084,
+ 0xf2089202,
+ 0x7500aa6d,
+ 0x9162c003,
+ 0x5894b740,
+ 0xaa41f050,
+ 0xc0037500,
+ 0xb7609082,
+ 0xb7405e8c,
+ 0xb9605e14,
+ 0xd0714038,
+ 0xd0720938,
+ 0xb79f0ca8,
+ 0xf1c87fcd,
+ 0xf1f1a8dd,
+ 0xf1e9a23d,
+ 0xffffa0dd,
+ 0xb7609301,
+ 0xda10589c,
+ 0xf058a8a9,
+ 0xd0a6aa61,
+ 0x9e2d5904,
+ 0xa241f010,
+ 0x7e6cb73f,
+ 0xaa4dc830,
+ 0xf0087440,
+ 0xc001a261,
+ 0xda109382,
+ 0x0a04aa29,
+ 0x75062a0c,
+ 0x92a4c001,
+ 0x7d6cb75f,
+ 0xd0100a26,
+ 0x75027088,
+ 0x92bcc000,
+ 0x0d28d011,
+ 0x08b8d012,
+ 0x19c4d010,
+ 0xaa25f031,
+ 0xa8c5f029,
+ 0xb79f9ea2,
+ 0x07f47dec,
+ 0xb59f0242,
+ 0xffff7dec,
+ 0x77c092a1,
+ 0x9104c000,
+ 0x8502c010,
+ 0xa123da90,
+ 0x9220c000,
+ 0x7df4b73f,
+ 0x5d91d3a2,
+ 0xb55f0d02,
+ 0xc0807f64,
+ 0xc0145d90,
+ 0xda909aa8,
+ 0xb75fa021,
+ 0xb7407f64,
+ 0xda10588c,
+ 0xd888aa29,
+ 0x9e2da8c1,
+ 0x5904d226,
+ 0xa0cdc830,
+ 0x7ceeb79f,
+ 0x7d6eb7bf,
+ 0x7deeb7df,
+ 0x7e6eb7ff,
+ 0x8c60c002,
+ 0xa6059c22,
+ 0x6384b740,
+ 0xd2a69e5d,
+ 0x9e2d5904,
+ 0xa9cec830,
+ 0x0d0265a7,
+ 0x9a81c014,
+ 0xc0149e83,
+ 0x000a9aa8,
+ 0x58050804,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xc0300487,
+ 0xb740ac3d,
+ 0x9d2a5b14,
+ 0xa45dc038,
+ 0xac3dc030,
+ 0xa45dc038,
+ 0xac3dc030,
+ 0xa45dc038,
+ 0x6114b720,
+ 0x590cb780,
+ 0x5b8cb720,
+ 0xb5408502,
+ 0xb5404059,
+ 0x851240d9,
+ 0x4939b540,
+ 0x8502c010,
+ 0x453db540,
+ 0x44bdb540,
+ 0x45bdb540,
+ 0xd2088506,
+ 0xcfeaa103,
+ 0xc0080a31,
+ 0xf2888502,
+ 0xd010a10f,
+ 0xd010a8c2,
+ 0xc008a941,
+ 0xf2888d00,
+ 0xf288a107,
+ 0xb520a10b,
+ 0xb5404633,
+ 0xc000472b,
+ 0xa60d9040,
+ 0xb7409e5d,
+ 0xf2085b14,
+ 0xf010aa2d,
+ 0xf208a24d,
+ 0xf010a8b1,
+ 0xf208a0d1,
+ 0xf010aa3d,
+ 0xd208a25d,
+ 0xd010a8a5,
+ 0xd208a0c5,
+ 0xd010aa29,
+ 0xda08a249,
+ 0xd810a8b5,
+ 0xf208a0d5,
+ 0xd0b1aa39,
+ 0xf01008d0,
+ 0xb720a259,
+ 0xd0b14031,
+ 0xd0b10e20,
+ 0xd20808d2,
+ 0xb780a082,
+ 0xd0b14029,
+ 0xb7200da2,
+ 0xd0085a94,
+ 0xf248a261,
+ 0x8502a935,
+ 0x405db540,
+ 0xa155f050,
+ 0xa8bdf208,
+ 0x0c81cfec,
+ 0x04030a0e,
+ 0x7048c412,
+ 0x747ac004,
+ 0x0c10c014,
+ 0x0972c002,
+ 0x4426b312,
+ 0x404cb540,
+ 0xaa2df208,
+ 0xc0146245,
+ 0xb5800ca0,
+ 0xd008404d,
+ 0xf208a8e1,
+ 0x6243aa2d,
+ 0x5b8cb7c0,
+ 0x06850d82,
+ 0xcfea7482,
+ 0xc2000ce1,
+ 0xc000591f,
+ 0x050191e2,
+ 0x0c90d151,
+ 0xa125f029,
+ 0xaa41f010,
+ 0x9e5b0d84,
+ 0x70c81a04,
+ 0x9306ffff,
+ 0xc0149e4c,
+ 0xf2080a10,
+ 0x1884a881,
+ 0x0a3060a3,
+ 0xa081f208,
+ 0xa8a2d208,
+ 0xa0a2d210,
+ 0xaa25dac8,
+ 0xa92ef210,
+ 0xa9d2da48,
+ 0xa225dad0,
+ 0xa9adf208,
+ 0x9b21fff4,
+ 0xa9dada48,
+ 0xa051da48,
+ 0xa9adf208,
+ 0xa92ef210,
+ 0x9b17fff4,
+ 0xa8c9da08,
+ 0x5d8cb780,
+ 0xa059da48,
+ 0xda486002,
+ 0xb79fa005,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0xb7209c22,
+ 0xb7605b0c,
+ 0xb7404031,
+ 0xb5605b8c,
+ 0xf0084cb3,
+ 0xb740aa49,
+ 0xb7605894,
+ 0xb7205c8c,
+ 0x0a044cb3,
+ 0xa249f008,
+ 0xa1dad850,
+ 0xa0e2f008,
+ 0xa60d9c22,
+ 0x5b8cb780,
+ 0x74429e59,
+ 0xa081f208,
+ 0xc0000289,
+ 0xb7809184,
+ 0x85025d8c,
+ 0xf2089ea6,
+ 0xf248a12f,
+ 0xc000a107,
+ 0x744492c0,
+ 0x5d94b7c0,
+ 0x9224c000,
+ 0xda508502,
+ 0xda08a147,
+ 0xda48a12b,
+ 0xda88a137,
+ 0xd288a123,
+ 0xd250a13f,
+ 0xd288a15b,
+ 0xb7a0a13b,
+ 0xb7005894,
+ 0x9e6e5b14,
+ 0x9e699e6c,
+ 0x0d02d0b1,
+ 0xd2888512,
+ 0xc014a12b,
+ 0xf2080a20,
+ 0xc014a981,
+ 0xb74008c0,
+ 0xd0084035,
+ 0xd008a9c2,
+ 0x9e99aa41,
+ 0x65979e51,
+ 0x41d4b720,
+ 0x623911b2,
+ 0xa8c1d008,
+ 0x5d1dd1a6,
+ 0xe2209e4a,
+ 0x60a3892d,
+ 0x7244c410,
+ 0x9e8a589f,
+ 0x0b30c014,
+ 0x7244c412,
+ 0xb7409e49,
+ 0xf208448c,
+ 0xc200a1c1,
+ 0xd0105a1f,
+ 0x74827102,
+ 0xa1bdf248,
+ 0xa231f248,
+ 0x915cc001,
+ 0xaa25f290,
+ 0xa9a9f290,
+ 0x59a0d224,
+ 0x01c60d02,
+ 0x9909c014,
+ 0xa92cf292,
+ 0xf2487400,
+ 0xc008a8be,
+ 0xb3028502,
+ 0xf2104464,
+ 0x9e4a822d,
+ 0x58fdc200,
+ 0xc2000242,
+ 0xf2905a07,
+ 0xf208a22d,
+ 0x6245a943,
+ 0x5a23c200,
+ 0xa23df248,
+ 0x8821f310,
+ 0xa221f288,
+ 0x85028702,
+ 0xa14bda50,
+ 0xa14bda10,
+ 0xa153d250,
+ 0xa157d250,
+ 0xa140f212,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0xaa69d008,
+ 0xb7007502,
+ 0xc0005d94,
+ 0xc00890c4,
+ 0xb5408502,
+ 0xb780405c,
+ 0xf2085b0c,
+ 0xb720a88d,
+ 0xd0084054,
+ 0x5887aa69,
+ 0xc8129e8b,
+ 0x75027246,
+ 0x9124c000,
+ 0x5b8cb700,
+ 0x5894b760,
+ 0xc0000503,
+ 0xb7209300,
+ 0xb7805b8c,
+ 0x7504402d,
+ 0x5894b760,
+ 0xc0000003,
+ 0xb78791c2,
+ 0x75004888,
+ 0x9124c000,
+ 0x0dd0c014,
+ 0xd0108506,
+ 0xcfeaa163,
+ 0x9e5a0db1,
+ 0x0d30d154,
+ 0x0900c014,
+ 0xaa41f008,
+ 0xc0140487,
+ 0x9e2d0cc0,
+ 0x5908d226,
+ 0x4045b760,
+ 0xaa4de038,
+ 0x8a31f310,
+ 0x404db580,
+ 0xb740a142,
+ 0xf210405d,
+ 0xc014802d,
+ 0xb5800d90,
+ 0xf008404d,
+ 0xf010a8c1,
+ 0x0884aa61,
+ 0x70481a04,
+ 0xb3128502,
+ 0xf0084466,
+ 0xd008a143,
+ 0x7500aa69,
+ 0x0df1cfea,
+ 0xc0008502,
+ 0xb78790e4,
+ 0x75004888,
+ 0x9062c000,
+ 0xb5408506,
+ 0x850248b8,
+ 0xa167f008,
+ 0x402cb780,
+ 0xc0007504,
+ 0xd0089282,
+ 0x7500aa69,
+ 0x9104c000,
+ 0x43ccb780,
+ 0x43dcb540,
+ 0x434cb580,
+ 0x412ab780,
+ 0x49b8b540,
+ 0xb5800a04,
+ 0x9e5a412a,
+ 0x0da0c014,
+ 0xa97cf1f3,
+ 0xc0148502,
+ 0xf0080940,
+ 0xd008a942,
+ 0xf008a16b,
+ 0x9e5ca8c2,
+ 0xa881f208,
+ 0x8b25e020,
+ 0x5d04d0a6,
+ 0x9e8b1884,
+ 0x80abe220,
+ 0x5c896527,
+ 0xb3407282,
+ 0x850648b6,
+ 0xa16bd008,
+ 0xb7809c22,
+ 0xb7205d8c,
+ 0xf2085b94,
+ 0xb720a903,
+ 0xe220404d,
+ 0x744281af,
+ 0xa182f208,
+ 0x9224c000,
+ 0xaa11d248,
+ 0xb3407500,
+ 0xb78048a4,
+ 0x75004b49,
+ 0x48a4b340,
+ 0x454db780,
+ 0x45cdb580,
+ 0x74449c22,
+ 0x48a4b340,
+ 0x5b0cb780,
+ 0xa885dac8,
+ 0x47cbb520,
+ 0xc0089c22,
+ 0x9e5874c0,
+ 0xc0009e52,
+ 0xd00290fc,
+ 0x1a1470c0,
+ 0x501351f3,
+ 0x7400c005,
+ 0x90fcc000,
+ 0x7000d002,
+ 0x50131a50,
+ 0xb7400128,
+ 0xb7806484,
+ 0xd1a6650c,
+ 0x9e2d5904,
+ 0xa8e5c040,
+ 0xaa4dc830,
+ 0x60097044,
+ 0x1214d01d,
+ 0x5013d01a,
+ 0x48bab340,
+ 0x50101222,
+ 0x9e5c9c22,
+ 0x08827526,
+ 0x4000d01e,
+ 0x48bcb340,
+ 0x7500c380,
+ 0x90bcc000,
+ 0x084ec002,
+ 0xc0049c22,
+ 0xc0007508,
+ 0x0a04915c,
+ 0x5a07c200,
+ 0x7508c004,
+ 0xffff0884,
+ 0xb740935a,
+ 0x9d4b641c,
+ 0xa805c220,
+ 0x691dd013,
+ 0x8021e210,
+ 0xb7809c22,
+ 0x9ea1588c,
+ 0x0a30c016,
+ 0xa900f20a,
+ 0x0a51cfe8,
+ 0xc0140089,
+ 0xb74008e0,
+ 0xc016403d,
+ 0xf2080a00,
+ 0xc016a901,
+ 0xb7800ca0,
+ 0xe210404d,
+ 0x74c089a5,
+ 0x8b21e330,
+ 0x4000d01e,
+ 0x48bcb340,
+ 0x59fdd1a4,
+ 0x05969e99,
+ 0xe2205d87,
+ 0x0d0281af,
+ 0x9160fffc,
+ 0x87c2c809,
+ 0x0c20b060,
+ 0x87c2c809,
+ 0x0a60b060,
+ 0x87c2c809,
+ 0x09c0b060,
+};
+
+unsigned long aui32H264VCM_MasterMTXTOPAZFWData[] = {
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x809000b0,
+ 0x80900374,
+ 0x82884e04,
+ 0x8288462c,
+ 0x8288463c,
+ 0x828846dc,
+ 0x828843b8,
+ 0x8288440e,
+ 0x82884408,
+ 0x8288470c,
+ 0x82884860,
+ 0x82884878,
+ 0x82884874,
+ 0x8288484c,
+ 0x82884884,
+ 0x828848c0,
+ 0x828848f8,
+ 0x82884904,
+ 0x82884934,
+ 0x82884964,
+ 0x8288498c,
+ 0x828849bc,
+ 0x828849ec,
+ 0x828849f2,
+ 0x828849f8,
+ 0x82884474,
+ 0x82884b88,
+ 0x82884b90,
+ 0x82884b98,
+ 0x82884bcc,
+ 0x82885064,
+ 0x82884f36,
+ 0x82884f10,
+ 0x82884f9e,
+ 0x82885020,
+ 0x82884dcc,
+ 0x82884ecc,
+ 0x82884f0c,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x809007c8,
+ 0x809007c8,
+ 0x809026f4,
+ 0x80902174,
+ 0x809038bc,
+ 0x80902abc,
+ 0x8090249c,
+ 0x809007c8,
+ 0x809007c8,
+ 0x809007c8,
+ 0x809007c8,
+ 0x809007c8,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0xa0101100,
+ 0xa01001b0,
+ 0xa0101102,
+ 0xa01001b2,
+ 0xa0101104,
+ 0xa0100124,
+ 0xa0101106,
+ 0xa0100126,
+ 0xa0100134,
+ 0x00000000,
+ 0xa0101120,
+ 0xa0100136,
+ 0xa0101122,
+ 0xa0100144,
+ 0x80101160,
+ 0x80101162,
+ 0x80101180,
+ 0x80101182,
+ 0x80100140,
+ 0x80100142,
+ 0x80100150,
+ 0x80100152,
+ 0x80100154,
+ 0x80100146,
+ 0x803003a0,
+ 0x80100100,
+ 0x80105156,
+ 0xa0101164,
+ 0xa0100184,
+ 0x80101194,
+ 0x801001b4,
+ 0x80100146,
+ 0x00000000,
+ 0x00000003,
+ 0x00000002,
+ 0x00000002,
+ 0x00000001,
+ 0x00000001,
+ 0x00000001,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000005,
+ 0x000f9400,
+ 0x000f9401,
+ 0x000fd403,
+ 0x000fd407,
+ 0x000fd517,
+ 0x000fdd37,
+ 0x000fff37,
+ 0x000ffb37,
+ 0x00006b37,
+ 0x00006b36,
+ 0x00002b36,
+ 0x00002b30,
+ 0x00002a20,
+ 0x40002220,
+ 0x00000000,
+ 0x00000000,
+ 0x00010001,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x01010000,
+ 0x02020201,
+ 0x04030303,
+ 0x05040404,
+ 0x00140005,
+ 0x001a0016,
+ 0x0020001c,
+ 0x00280024,
+ 0x0034002c,
+ 0x00400038,
+ 0x00500048,
+ 0x00680058,
+ 0x00800070,
+ 0x00a00090,
+ 0x00d000b0,
+ 0x010000e0,
+ 0x01400120,
+ 0x01a00160,
+ 0x020001c0,
+ 0x02800240,
+ 0x034002c0,
+ 0x04000380,
+ 0x05000480,
+ 0x06800580,
+ 0x08000700,
+ 0x0a000900,
+ 0x0d000b00,
+ 0x10000e00,
+ 0x14001200,
+ 0x1a001600,
+ 0x00001c00,
+ 0x00200040,
+ 0x001002ab,
+ 0x015500cd,
+ 0x00080249,
+ 0x00cd01c7,
+ 0x0155005d,
+ 0x0249013b,
+ 0x00040111,
+ 0x01c700f1,
+ 0x00cd01af,
+ 0x005d00c3,
+ 0x01550059,
+ 0x013b0029,
+ 0x0249025f,
+ 0x01110235,
+ 0x00020021,
+ 0x00f1001f,
+ 0x01c70075,
+ 0x01af006f,
+ 0x00cd0069,
+ 0x00c30019,
+ 0x005d017d,
+ 0x0059005b,
+ 0x015502b9,
+ 0x002900a7,
+ 0x013b0283,
+ 0x025f0135,
+ 0x02490095,
+ 0x0235023f,
+ 0x0111008b,
+ 0x00210219,
+ 0x00010041,
+ 0x0b060600,
+ 0x0c0b0a06,
+ 0x0a0b0c06,
+ 0x0c0d0c0c,
+ 0x0d0d0c06,
+ 0x0b0b0c0c,
+ 0x0e0d0a0d,
+ 0x0a0d0e0e,
+ 0x0c0d0a06,
+ 0x0c0e0c0e,
+ 0x0e0d0a0d,
+ 0x0f0c0c0c,
+ 0x0f0b0d0e,
+ 0x0d0f0e0e,
+ 0x0d0f0f0f,
+ 0x0c0b0f0e,
+ 0x00000006,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x1234baac,
+ 0x00000000,
+};
+
+unsigned long aui32H264VCM_MasterMTXTOPAZFWTextReloc[] = {
+ 0
+};
+
+unsigned char aui8H264VCM_MasterMTXTOPAZFWTextRelocType[] = {
+ 0
+};
+
+unsigned long aui32H264VCM_MasterMTXTOPAZFWTextRelocFullAddr[] = {
+ 0
+};
+
+unsigned long aui32H264VCM_MasterMTXTOPAZFWDataReloc[] = {
+ 0
+};
diff --git a/fw/H264MasterFirmwareVCM_bin.h b/fw/H264MasterFirmwareVCM_bin.h
new file mode 100644
index 0000000..f020032
--- /dev/null
+++ b/fw/H264MasterFirmwareVCM_bin.h
@@ -0,0 +1,44 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+
+// This file was automatically generated from ../release/H264MasterFirmwareVCM.dnl using dnl2c.
+
+extern unsigned long aui32H264VCM_MasterMTXTOPAZFWText[];
+extern unsigned long ui32H264VCM_MasterMTXTOPAZFWTextSize;
+
+extern unsigned long aui32H264VCM_MasterMTXTOPAZFWData[];
+extern unsigned long ui32H264VCM_MasterMTXTOPAZFWDataSize;
+
+extern unsigned long aui32H264VCM_MasterMTXTOPAZFWTextReloc[];
+extern unsigned char aui8H264VCM_MasterMTXTOPAZFWTextRelocType[];
+extern unsigned long aui32H264VCM_MasterMTXTOPAZFWTextRelocFullAddr[];
+
+extern unsigned long aui32H264VCM_MasterMTXTOPAZFWDataReloc[];
+extern unsigned long ui32H264VCM_MasterMTXTOPAZFWDataRelocSize;
+
+extern unsigned long ui32H264VCM_MasterMTXTOPAZFWTextOrigin;
+extern unsigned long ui32H264VCM_MasterMTXTOPAZFWDataOrigin;
+
diff --git a/fw/H264MasterFirmware_bin.c b/fw/H264MasterFirmware_bin.c
new file mode 100644
index 0000000..919a6a9
--- /dev/null
+++ b/fw/H264MasterFirmware_bin.c
@@ -0,0 +1,3328 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+
+// This file was automatically generated from ../release/H264MasterFirmware.dnl using dnl2c.
+
+unsigned char *szH264MasterFirmware_buildtag = "BUILD_TOPAZ_SC_1_00_00_0318";
+
+unsigned long ui32H264_MasterMTXTOPAZFWTextSize = 2797;
+unsigned long ui32H264_MasterMTXTOPAZFWDataSize = 472;
+unsigned long ui32H264_MasterMTXTOPAZFWTextRelocSize = 0;
+unsigned long ui32H264_MasterMTXTOPAZFWDataRelocSize = 0;
+
+unsigned long ui32H264_MasterMTXTOPAZFWTextOrigin = 0x80900000;
+unsigned long ui32H264_MasterMTXTOPAZFWDataOrigin = 0x82882bc0;
+
+unsigned long aui32H264_MasterMTXTOPAZFWText[] = {
+ 0x9040c001,
+ 0xc80993fe,
+ 0xc0000e42,
+ 0xc8290e00,
+ 0xc3328422,
+ 0xc8298400,
+ 0xc2bc8622,
+ 0x9e838600,
+ 0xc8099e43,
+ 0xc5740d42,
+ 0xc8090d20,
+ 0xc5740942,
+ 0xc8090960,
+ 0xc00a0e42,
+ 0xc8090e40,
+ 0xc00e87c2,
+ 0x9c1887d0,
+ 0x0c020802,
+ 0x09820d82,
+ 0x09020d02,
+ 0x08820c82,
+ 0x9320fffe,
+ 0xa401c838,
+ 0x0dc2c809,
+ 0x0de0c572,
+ 0x0e42c809,
+ 0x0b46b080,
+ 0x7e74b77f,
+ 0xa48d0882,
+ 0xffff9ff3,
+ 0x9d1393e0,
+ 0xf8398081,
+ 0x0707a205,
+ 0x06850307,
+ 0x03839e97,
+ 0x0fa0060f,
+ 0x018d058d,
+ 0x9c62008f,
+ 0x9340ffff,
+ 0x0ea0060b,
+ 0xffff9c62,
+ 0x058d93a0,
+ 0xb700018d,
+ 0xb780548c,
+ 0x9c015414,
+ 0x0687a605,
+ 0x0ea0060b,
+ 0xffff9c62,
+ 0xf9f893a0,
+ 0xf9f8aa9d,
+ 0x9c22aa1d,
+ 0xa6059c22,
+ 0x85028420,
+ 0xb55f0a82,
+ 0x850a7f7c,
+ 0x9c89c037,
+ 0x9c80c971,
+ 0x75002a08,
+ 0x9184c000,
+ 0x997dc014,
+ 0x458cb780,
+ 0xc0007500,
+ 0x0d8290a4,
+ 0x990ec054,
+ 0x7f6cb79f,
+ 0xc0007500,
+ 0xc05490e4,
+ 0x0d8a9916,
+ 0x9904c054,
+ 0x8d80e032,
+ 0x99b6c014,
+ 0x0800e000,
+ 0x91c4c000,
+ 0x9ac0c014,
+ 0x458cb780,
+ 0x2a797402,
+ 0x458cb580,
+ 0x90e4c000,
+ 0x9100c000,
+ 0xc0149e83,
+ 0x75409a33,
+ 0x9162fffe,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x9c228c60,
+ 0x85028702,
+ 0x5818b543,
+ 0x5898b543,
+ 0x5918b543,
+ 0x5c18b543,
+ 0x5c98b543,
+ 0x5d18b543,
+ 0x6118b543,
+ 0x6198b543,
+ 0x6218b543,
+ 0x6818b543,
+ 0x4804b540,
+ 0x4884b540,
+ 0x4904b540,
+ 0x4984b540,
+ 0x4a04b540,
+ 0x4c04b540,
+ 0x4c84b540,
+ 0x4d04b540,
+ 0x4202b540,
+ 0x4282b540,
+ 0x5004b540,
+ 0x7684b540,
+ 0x4e84b540,
+ 0x4702b540,
+ 0xa6059c22,
+ 0xfff48420,
+ 0x0d8a9b87,
+ 0x98aac054,
+ 0x9bc6fff4,
+ 0x98b5c054,
+ 0x0cd2c420,
+ 0xb4810a02,
+ 0xb105c000,
+ 0x0d8a4220,
+ 0x8d80e031,
+ 0x9aebc014,
+ 0x0922c829,
+ 0x0960c330,
+ 0x7f6cb73f,
+ 0x2a5ed071,
+ 0x450cb580,
+ 0x2a80c01e,
+ 0xf0088502,
+ 0x7102a8c2,
+ 0x5a95c280,
+ 0x460cb5a0,
+ 0x4434b341,
+ 0xb5407640,
+ 0xb520459c,
+ 0xc000448c,
+ 0xd01190c2,
+ 0xf0080e12,
+ 0xb780a241,
+ 0xc807550c,
+ 0xc57008c2,
+ 0xc0320880,
+ 0xb5800caa,
+ 0xb421538c,
+ 0x0a2ac000,
+ 0xb4810cf4,
+ 0x1a28c000,
+ 0xc0020902,
+ 0xb96008ba,
+ 0xc2004078,
+ 0xd2240a00,
+ 0xb441588b,
+ 0xce00c000,
+ 0xffff0a11,
+ 0xe0009301,
+ 0xffff1884,
+ 0xc8079244,
+ 0xc5760a42,
+ 0xc0320a00,
+ 0xb4810caa,
+ 0x0a02c000,
+ 0x09020882,
+ 0xb9600884,
+ 0xc2004078,
+ 0xd2240a00,
+ 0xb441588b,
+ 0xce00c000,
+ 0xffff0a11,
+ 0xc0049301,
+ 0xffff745a,
+ 0x0a02923c,
+ 0x0c9ec034,
+ 0xc000b481,
+ 0x9b0dfff4,
+ 0xb79f0802,
+ 0xb7bf7eee,
+ 0x8c607f6e,
+ 0x9e549c22,
+ 0x0c82c040,
+ 0xb4219e59,
+ 0xc040c000,
+ 0xb4820d02,
+ 0x9c22c000,
+ 0x2d7cc00e,
+ 0x29e0c00e,
+ 0x9e545d30,
+ 0x0c82c040,
+ 0xb46131b8,
+ 0xc040c000,
+ 0xb4420d02,
+ 0x9c22c000,
+ 0x8420a60d,
+ 0x06870703,
+ 0x5c8dc280,
+ 0xd0a21c84,
+ 0x02875ca0,
+ 0x0a5ed011,
+ 0x5a0dc200,
+ 0xc2001a04,
+ 0x5cd05a30,
+ 0x9e4c3098,
+ 0xc0320405,
+ 0x30980c8a,
+ 0x3880c801,
+ 0xc000b421,
+ 0xc8019ea9,
+ 0xc0020a02,
+ 0x65530a00,
+ 0x0c8ac030,
+ 0xc000b481,
+ 0x0882c002,
+ 0xb4210c84,
+ 0x9e93c000,
+ 0x5f09d022,
+ 0x5d0d9e53,
+ 0xfff41d04,
+ 0xc2809bb4,
+ 0x1e845e91,
+ 0x5e84c280,
+ 0x1a849e6c,
+ 0x5a90c280,
+ 0x3a80c181,
+ 0x09820d8a,
+ 0x314a0d02,
+ 0x9baefff4,
+ 0x0d82c0c0,
+ 0xc0020992,
+ 0xc0020d02,
+ 0xc0340902,
+ 0x0a0a9bd4,
+ 0x0c9ec034,
+ 0xc000b481,
+ 0x75bf1b04,
+ 0xc0008502,
+ 0x9dcf9202,
+ 0x7f7cb55f,
+ 0x9ba7c034,
+ 0xa045f231,
+ 0x7f7cb75f,
+ 0x75bf1b04,
+ 0xffff8510,
+ 0xc0029284,
+ 0xc0300a42,
+ 0xb4810c8e,
+ 0xb79fc000,
+ 0xb7bf7e6e,
+ 0xb7df7eee,
+ 0xc0027f6e,
+ 0x9c228c00,
+ 0xf8399c22,
+ 0xb780a285,
+ 0x0986450c,
+ 0x0d0270c8,
+ 0x9096c001,
+ 0x4594b760,
+ 0x08020c06,
+ 0x0902c1cc,
+ 0x19c4d010,
+ 0x9e5d9e44,
+ 0x508cc200,
+ 0xc0007942,
+ 0xd1249202,
+ 0xc400588b,
+ 0xb4013c80,
+ 0xb104c000,
+ 0x9e554220,
+ 0x750230d2,
+ 0x4822b321,
+ 0xc00c9e8a,
+ 0x09840900,
+ 0x9101ffff,
+ 0x4594b540,
+ 0xaa9df9f8,
+ 0xc2009c22,
+ 0xc0378502,
+ 0xc1719c89,
+ 0xc8179c80,
+ 0x9c229c80,
+ 0xb780a605,
+ 0x9e5d458c,
+ 0xc000790a,
+ 0xfff49162,
+ 0xfff49bf0,
+ 0xb7809bbe,
+ 0x790a458c,
+ 0x9324ffff,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xc002a61d,
+ 0x9e5d8400,
+ 0xaa21f208,
+ 0xc0017500,
+ 0xc4209004,
+ 0x0a020cda,
+ 0xc000b481,
+ 0x4220b101,
+ 0xb4811c84,
+ 0xb106c000,
+ 0xb4814220,
+ 0xb107c000,
+ 0x008f4220,
+ 0xc000b481,
+ 0x4240b106,
+ 0xc000b481,
+ 0x4240b105,
+ 0x2a6ed1f1,
+ 0xb40d7516,
+ 0xf2084622,
+ 0x7480a921,
+ 0x92c2c000,
+ 0x8c80e092,
+ 0x098a0dc2,
+ 0x0d02c002,
+ 0x9b0afff4,
+ 0x7cecb7df,
+ 0x7c6cb79f,
+ 0x7d6cb7ff,
+ 0x7df4b7df,
+ 0x7e74b7bf,
+ 0xa221f208,
+ 0x5aa1c300,
+ 0x2afcc00e,
+ 0x0d869ea9,
+ 0xfff455e4,
+ 0xd3129ba3,
+ 0xc1c068d1,
+ 0x5c8b0c80,
+ 0xc000b4c1,
+ 0x6951d312,
+ 0x0d10c1c0,
+ 0xb4e25d0b,
+ 0xd312c000,
+ 0x9e7468d1,
+ 0x0ca0c1c0,
+ 0xb4815c8b,
+ 0xd312c000,
+ 0x9e6c6951,
+ 0x0d30c1c0,
+ 0xb4825d0b,
+ 0xd312c000,
+ 0x0a0268d1,
+ 0x0cc0c1c0,
+ 0xc4005c8b,
+ 0xb4813c80,
+ 0xb106c000,
+ 0xcfff4220,
+ 0xd3122b7c,
+ 0xc1c068d1,
+ 0x5c8b0cc0,
+ 0xc000b4c1,
+ 0x458cb720,
+ 0xc2000a04,
+ 0x000b5214,
+ 0xb5203098,
+ 0xb79f458c,
+ 0xb7bf7c6e,
+ 0xb7df7cee,
+ 0xb7ff7d6e,
+ 0xc0047dee,
+ 0x9c228c00,
+ 0xa205f839,
+ 0x0e30f011,
+ 0x919cc000,
+ 0x9ea10a04,
+ 0x55e40d86,
+ 0xc0343d88,
+ 0x0d8a9aaf,
+ 0x9aacc034,
+ 0xaa1df9f8,
+ 0xa6059c22,
+ 0x0a42c801,
+ 0x0a00c010,
+ 0x2ebed3f2,
+ 0x0caac032,
+ 0xc000b481,
+ 0x0cf408aa,
+ 0xc000b421,
+ 0x558cb780,
+ 0x0c92c080,
+ 0xa881f208,
+ 0xc000b421,
+ 0x558cb780,
+ 0xf2080c88,
+ 0xb421a889,
+ 0xb780c000,
+ 0x0c84558c,
+ 0xa88df208,
+ 0xc000b421,
+ 0x1c980902,
+ 0xc000b441,
+ 0x558cb780,
+ 0xf2080c90,
+ 0xb421a885,
+ 0xb7a0c000,
+ 0x0dd2558c,
+ 0x9a67c034,
+ 0xaa25f208,
+ 0xffff7008,
+ 0x0daa9344,
+ 0x0d060982,
+ 0x0902c121,
+ 0x9a4afff4,
+ 0x4714b760,
+ 0x0d02c021,
+ 0x09c20d04,
+ 0x9a37fff4,
+ 0x4714b760,
+ 0x0d0609c2,
+ 0x9a31fff4,
+ 0x09820daa,
+ 0xc1010d02,
+ 0xfff40902,
+ 0x0d929a35,
+ 0x9a43c034,
+ 0xaa25f208,
+ 0xffff7008,
+ 0x77409344,
+ 0x90a2c000,
+ 0xc0340d8e,
+ 0x0d8a9a45,
+ 0x9a42c034,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xc470a60d,
+ 0x0a020c8e,
+ 0xc000b481,
+ 0x4220b101,
+ 0x558cb780,
+ 0xa085f208,
+ 0x0a021c8c,
+ 0xc000b481,
+ 0x4220b105,
+ 0x2b5ed1f1,
+ 0x558cb780,
+ 0xcff09ead,
+ 0xc2802e80,
+ 0xf2085ea1,
+ 0xc280a281,
+ 0x2a845a9d,
+ 0x0a020c84,
+ 0xc000b481,
+ 0x4220b101,
+ 0x468cb520,
+ 0xb4810c84,
+ 0xb101c000,
+ 0xb5204220,
+ 0xc070470c,
+ 0xb4810c8e,
+ 0x0882c000,
+ 0xb4211c8c,
+ 0x0c90c000,
+ 0xc000b481,
+ 0xb4211c8c,
+ 0x0c84c000,
+ 0xc000b481,
+ 0x5e04b740,
+ 0x5908d326,
+ 0xe0309e2d,
+ 0x9ea4aa4d,
+ 0xb7809c62,
+ 0x7740558c,
+ 0x9ea98502,
+ 0xd0010d82,
+ 0xf2080db2,
+ 0x2596a10f,
+ 0x9b3ffff4,
+ 0xc0700a06,
+ 0xb4810c82,
+ 0x000dc000,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x4514b760,
+ 0xc0020a7f,
+ 0x9ea18502,
+ 0x89afe220,
+ 0xfff355ad,
+ 0xc01c91a0,
+ 0xc0007ebe,
+ 0xd1a29244,
+ 0xc0905e08,
+ 0xd2240a00,
+ 0x08825909,
+ 0x3d00c400,
+ 0xc000b422,
+ 0x4220b104,
+ 0xffff7500,
+ 0xc1809364,
+ 0xc0905c88,
+ 0x5c890c80,
+ 0xc000b461,
+ 0xc1809c22,
+ 0xc0905c88,
+ 0x5c890c80,
+ 0x3c80c400,
+ 0xb4810a02,
+ 0xb101c000,
+ 0xf0084220,
+ 0x5d88a0e1,
+ 0x0d80c090,
+ 0xb4835d89,
+ 0x9c22c000,
+ 0xd3129e5b,
+ 0x0a0268b1,
+ 0x0cc0c1c0,
+ 0xc4005c8b,
+ 0xb4813c80,
+ 0xb102c000,
+ 0xb7604220,
+ 0xd3125894,
+ 0x85026931,
+ 0xb9609e51,
+ 0xc1c04070,
+ 0xf03108e0,
+ 0xd0a4aa65,
+ 0xb4815889,
+ 0x0890c000,
+ 0xffff8510,
+ 0xc1c09301,
+ 0xe2108560,
+ 0xb76080ad,
+ 0xc0015a14,
+ 0xce3e3904,
+ 0xb9608521,
+ 0xf0314048,
+ 0xd0a4aa65,
+ 0xb4815889,
+ 0x0890c000,
+ 0xffff8510,
+ 0xe2209301,
+ 0xb780812d,
+ 0xc001580c,
+ 0xc1c03908,
+ 0x5d090d60,
+ 0xa885dac8,
+ 0xc000b422,
+ 0x68b1d312,
+ 0x0cc0c1c0,
+ 0xb4415c8b,
+ 0x9c22c000,
+ 0x508cb740,
+ 0x6cb1d312,
+ 0xc1c00a02,
+ 0x5c8b0cc0,
+ 0x3c80c400,
+ 0xc000b481,
+ 0x4220b101,
+ 0x6cb1d312,
+ 0x0cf0c1ca,
+ 0xb4415c8b,
+ 0xc00cc000,
+ 0xc0016d82,
+ 0xc1c038c0,
+ 0x5d8b0dc0,
+ 0xc000b423,
+ 0x84209c22,
+ 0xe0318502,
+ 0x09068d80,
+ 0x7f7cb55f,
+ 0x0cd2c472,
+ 0xb4810a02,
+ 0xb101c000,
+ 0x9e8a4220,
+ 0xc0010203,
+ 0x75002a40,
+ 0x9362c000,
+ 0x68a1d312,
+ 0xc1ca0a02,
+ 0x5c8b0cf0,
+ 0x3c80c400,
+ 0xc000b481,
+ 0x4220b101,
+ 0xa0e1f008,
+ 0x509cb740,
+ 0x7f6cb79f,
+ 0xf3109e51,
+ 0xcfff8021,
+ 0xb58028be,
+ 0xd312508c,
+ 0xc1c068a1,
+ 0x5c8b0cc0,
+ 0xc000b421,
+ 0x9c228c20,
+ 0xc006a605,
+ 0x87028420,
+ 0xc4720c06,
+ 0x0a020cd2,
+ 0xc000b481,
+ 0x4220b105,
+ 0x020b9eaa,
+ 0x2a04c001,
+ 0xc0017500,
+ 0xd31190c2,
+ 0xe1b16c81,
+ 0xb7608d00,
+ 0x09825894,
+ 0x4070b960,
+ 0x08e0c1c0,
+ 0x5889d0a4,
+ 0x3c80c400,
+ 0xc000b461,
+ 0x4220b104,
+ 0xa245f029,
+ 0x87100890,
+ 0x9281ffff,
+ 0xa973f050,
+ 0x796cb79f,
+ 0xf3109e55,
+ 0xcfff8021,
+ 0xf0502afa,
+ 0x020ba271,
+ 0x2a08c001,
+ 0xd3127500,
+ 0xc0026e81,
+ 0xe0b19082,
+ 0xc1c08d00,
+ 0xe1108760,
+ 0xb74082a3,
+ 0x09825a14,
+ 0x4048b960,
+ 0xd0a49e93,
+ 0xc4005889,
+ 0xb4613c80,
+ 0xb104c000,
+ 0xf0294220,
+ 0x0890a245,
+ 0x92a1ffff,
+ 0x580cb780,
+ 0xa943f010,
+ 0xa891da08,
+ 0xaa61f010,
+ 0xa95cf012,
+ 0xa9c7f050,
+ 0x8021f310,
+ 0xa94bd850,
+ 0xd8101884,
+ 0xf010a0c9,
+ 0xb79fa241,
+ 0xb73f7b6a,
+ 0xb73f7eec,
+ 0xf3107ff4,
+ 0xe2108021,
+ 0xe22082a3,
+ 0xcfff80bb,
+ 0xd8502af6,
+ 0xf010a249,
+ 0xf050a0dd,
+ 0x020ba0c6,
+ 0x2a10c001,
+ 0xc0007500,
+ 0xc01490c2,
+ 0xcfff9838,
+ 0xc1c02aee,
+ 0xc2800ec0,
+ 0xb4a15c8b,
+ 0xb79fc000,
+ 0xb7bf78ee,
+ 0xc006796e,
+ 0x9c228c60,
+ 0x6cb1d312,
+ 0xc1c00a02,
+ 0x5c8b0cc0,
+ 0x3c80c400,
+ 0xc000b481,
+ 0x4220b103,
+ 0x5994b740,
+ 0x6d31d311,
+ 0x4058b960,
+ 0xc1c00085,
+ 0xf03108e0,
+ 0xd0a4aa45,
+ 0xb4815889,
+ 0x0890c000,
+ 0x9321ffff,
+ 0x3990c001,
+ 0x0940c1c0,
+ 0x588bd124,
+ 0xc000b461,
+ 0xa6059c22,
+ 0x8440c002,
+ 0x5994b740,
+ 0xc4720a86,
+ 0x08820cd2,
+ 0x8502c00c,
+ 0xc000b421,
+ 0x4220b104,
+ 0xc0010189,
+ 0x75002a10,
+ 0x9302ffff,
+ 0x8d00e0d1,
+ 0x08029d47,
+ 0x4058b960,
+ 0x08e0c1c0,
+ 0x5889d0a4,
+ 0x3c80c400,
+ 0xc000b401,
+ 0x4220b104,
+ 0xa245f029,
+ 0xffff0890,
+ 0x9dc792a1,
+ 0x29eecfff,
+ 0x0cc0c1c0,
+ 0xb4615c8b,
+ 0xf010c000,
+ 0xb79fa94b,
+ 0xf0127b6c,
+ 0xb73fa94c,
+ 0xd8107bec,
+ 0xf310a9cb,
+ 0xf0108021,
+ 0xe210a953,
+ 0xd81282a3,
+ 0xf010a94c,
+ 0xf010a249,
+ 0xb79fa0cd,
+ 0xb73f7c6c,
+ 0xb73f75ea,
+ 0xf3107572,
+ 0xe2108021,
+ 0xe22082a3,
+ 0x0d8680bb,
+ 0xa251f010,
+ 0xa0cdd810,
+ 0xa0cad810,
+ 0x9b7efff4,
+ 0x68d1d312,
+ 0xc1c00a02,
+ 0x5c8b0cc0,
+ 0x3c80c400,
+ 0xc000b481,
+ 0x4220b104,
+ 0x3a20c001,
+ 0x68d1d312,
+ 0x0cc0c1c0,
+ 0xb4815c8b,
+ 0xb79fc000,
+ 0xb7bf7c6e,
+ 0xc0047cee,
+ 0x9c228c00,
+ 0xa285f839,
+ 0xaa61f010,
+ 0xc0007500,
+ 0xd0089164,
+ 0x9e48a8c1,
+ 0xc2000a06,
+ 0x30985200,
+ 0xa0c1d008,
+ 0x0d38d011,
+ 0xa9f2d010,
+ 0x1a30f011,
+ 0xa943f010,
+ 0xc0001984,
+ 0xcff193e2,
+ 0xcff08702,
+ 0xc00f8700,
+ 0xc00e087e,
+ 0xc050087c,
+ 0xf0290c1a,
+ 0xd020a8c5,
+ 0x5ca12095,
+ 0x22109e4d,
+ 0x5a20c200,
+ 0xba0930d8,
+ 0xb4204006,
+ 0xf011c000,
+ 0x19841a30,
+ 0x91e4ffff,
+ 0x802ff210,
+ 0xa241f010,
+ 0xaa9df9f8,
+ 0xa60d9c22,
+ 0x59409e5d,
+ 0x5841f124,
+ 0x2d2ed3f1,
+ 0x4422b350,
+ 0x93e2c002,
+ 0xaa61f008,
+ 0x2a1ce000,
+ 0x4422b425,
+ 0xaa61d808,
+ 0xe2108522,
+ 0x2a1c88a9,
+ 0x9ea31218,
+ 0x0a7ec00e,
+ 0x400bba1b,
+ 0x5207c200,
+ 0xc0012128,
+ 0x9e599276,
+ 0x5a20c100,
+ 0xc2001103,
+ 0x9ea25209,
+ 0x58a1c200,
+ 0xd0319e8d,
+ 0xd2080cb0,
+ 0xc00ea8a2,
+ 0xc2002a7c,
+ 0xc00e5207,
+ 0x349a2a7c,
+ 0xa0a2d208,
+ 0xa963f008,
+ 0xd3f19ea1,
+ 0xc2012a2e,
+ 0xf3108128,
+ 0x85028821,
+ 0xa261f008,
+ 0xa127d228,
+ 0xcff09eab,
+ 0x59402d01,
+ 0x35225941,
+ 0x2d7cc00e,
+ 0x9bb1fff4,
+ 0x92e0c000,
+ 0xaa21d208,
+ 0x000b9e5e,
+ 0x324250d8,
+ 0xa205d029,
+ 0xa8e1f008,
+ 0x291ed013,
+ 0x8029f210,
+ 0x9e447510,
+ 0xf0080098,
+ 0xb350a0e1,
+ 0xb79f4426,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0xa60d9c22,
+ 0x9e690685,
+ 0x0b029e9e,
+ 0x0a867182,
+ 0x9208c000,
+ 0x16d29ea9,
+ 0xc2809e69,
+ 0xd0115a84,
+ 0x71021a52,
+ 0x08e2d011,
+ 0x2b1ed3f1,
+ 0x9286ffff,
+ 0x0a62d011,
+ 0x028d7510,
+ 0x91d4c000,
+ 0x0d029e73,
+ 0xfff40922,
+ 0x1aa09b70,
+ 0x0a52d011,
+ 0x9e837510,
+ 0x92d2ffff,
+ 0x0d069e73,
+ 0x0952d011,
+ 0x297cc00e,
+ 0x9b61fff4,
+ 0x9e837590,
+ 0x92f4c000,
+ 0x1a60d031,
+ 0x2b4ed3f1,
+ 0x9e739e6c,
+ 0x5299c200,
+ 0x295ed3f2,
+ 0xfff40922,
+ 0x9e839b50,
+ 0x52b8c200,
+ 0x75909ea9,
+ 0xffff16d2,
+ 0x9e7391b2,
+ 0x2d5ed3f2,
+ 0xfff4010d,
+ 0xb79f9b42,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0xf0119c22,
+ 0x9e990ca0,
+ 0x5a04d09a,
+ 0x1a42d00d,
+ 0x909ac000,
+ 0x12421203,
+ 0x9ea29e4b,
+ 0x9360fffc,
+ 0x8420a60d,
+ 0x9e558502,
+ 0x7f7cb55f,
+ 0x7ffcb55f,
+ 0xaa61f010,
+ 0x8c8ee011,
+ 0x1a080307,
+ 0xd226750a,
+ 0x8540590c,
+ 0x8044e05a,
+ 0x90a0c003,
+ 0x9180c000,
+ 0x92a0c000,
+ 0x93c0c000,
+ 0x9100c001,
+ 0x9200c001,
+ 0x9060c002,
+ 0x8d88e011,
+ 0xd0729e8b,
+ 0xb5a01954,
+ 0xfff4500c,
+ 0xc0029bc8,
+ 0xb7409200,
+ 0x9ea95014,
+ 0x8d88e011,
+ 0x15149e8b,
+ 0x9bbdfff4,
+ 0x90a0c002,
+ 0x8d88e011,
+ 0xd3f29e8b,
+ 0x0916295e,
+ 0x9aebfff4,
+ 0x500cb5a0,
+ 0x9320c001,
+ 0x8d88e011,
+ 0xd3f29e8b,
+ 0x0916295e,
+ 0x9adffff4,
+ 0x91e0c001,
+ 0xaa41d208,
+ 0xf0119e8b,
+ 0x4a7d8c88,
+ 0x2aced012,
+ 0x09060d06,
+ 0xfff4018b,
+ 0x9e839ad0,
+ 0x018b9e6a,
+ 0xfff40d02,
+ 0xc0009aca,
+ 0xd2089340,
+ 0x9e8baa41,
+ 0x8c88f011,
+ 0xd0124a7d,
+ 0x0d022ace,
+ 0x018b0906,
+ 0x9abbfff4,
+ 0x9e6a9e83,
+ 0xc00e018b,
+ 0xfff40d7e,
+ 0xc0009ab4,
+ 0xc0019080,
+ 0xb79f90e0,
+ 0xc00f7e68,
+ 0xc00e0cfe,
+ 0x9e4a0cfc,
+ 0x7c68b59f,
+ 0x7f6cb73f,
+ 0x0a02cff1,
+ 0x0a00cff0,
+ 0x0c9ac050,
+ 0xc2002218,
+ 0x20945a21,
+ 0x324258a0,
+ 0x4006ba24,
+ 0x7f6cb59f,
+ 0xc000b481,
+ 0xa943f208,
+ 0x7fecb79f,
+ 0x8021f310,
+ 0xa241f208,
+ 0x7e6eb79f,
+ 0x7eeeb7bf,
+ 0x7f6eb7df,
+ 0x8c00c002,
+ 0xa61d9c22,
+ 0x85028440,
+ 0xf0319e9d,
+ 0x0b02abe5,
+ 0x7878b55f,
+ 0x7efcb55f,
+ 0x9d3a718e,
+ 0x91e8c001,
+ 0x7502aa41,
+ 0x9392c000,
+ 0xaad1d018,
+ 0x8d08e032,
+ 0x8d00e051,
+ 0x9eb19dcf,
+ 0xb55f8510,
+ 0xc0027f7c,
+ 0xc2800a9c,
+ 0x018b5a95,
+ 0x9a1efff4,
+ 0x7f7cb75f,
+ 0x5a88c280,
+ 0x8122c301,
+ 0x91a0c000,
+ 0x8d88e031,
+ 0x050b9dcf,
+ 0xb55f8510,
+ 0xfff47f7c,
+ 0xb75f9b23,
+ 0x0b047f7c,
+ 0xfffe718e,
+ 0xb79f92a6,
+ 0xc0507868,
+ 0xb4810c9e,
+ 0xc050c000,
+ 0xb4e20d16,
+ 0xb71fc000,
+ 0xb79f7eec,
+ 0xb7bf7d6e,
+ 0xb7df7dee,
+ 0xb7ff7e6e,
+ 0xc0027eee,
+ 0x9c228c40,
+ 0xc450a605,
+ 0x0a020c8a,
+ 0xc000b481,
+ 0x4240b102,
+ 0x2d7ce00e,
+ 0x5d10d104,
+ 0x0a02c801,
+ 0xc0300a40,
+ 0xb4810c8a,
+ 0x08c2c000,
+ 0xb4210c84,
+ 0xb740c000,
+ 0xf0485c8c,
+ 0xf210a947,
+ 0xf048802d,
+ 0xc450a245,
+ 0x0a020c86,
+ 0xc000b481,
+ 0x4220b101,
+ 0x0a42c801,
+ 0x0a00c010,
+ 0x0caac032,
+ 0xc000b481,
+ 0xc03408aa,
+ 0xb4220d1e,
+ 0xc450c000,
+ 0x0a020cf2,
+ 0xc000b481,
+ 0x4220b101,
+ 0x1910d053,
+ 0x570cb780,
+ 0xa891f248,
+ 0x88a3f210,
+ 0x0d060d82,
+ 0xffd4018b,
+ 0xc0809b9e,
+ 0xb4a10ca2,
+ 0xc002c000,
+ 0xc0140d82,
+ 0x700a9954,
+ 0x9364ffff,
+ 0x09820daa,
+ 0xc1210d0a,
+ 0xffd40902,
+ 0xb7809939,
+ 0xf248570c,
+ 0xc0a1a992,
+ 0x0d040d02,
+ 0xffd409c2,
+ 0xc0c09924,
+ 0x09920d82,
+ 0x09420d42,
+ 0x9957c014,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xc010a60d,
+ 0xb7208400,
+ 0xb780570c,
+ 0x2a2049ad,
+ 0xb7c07500,
+ 0x09025894,
+ 0x9182c000,
+ 0x6108b783,
+ 0xc0007500,
+ 0xd29090e2,
+ 0x7500aa41,
+ 0x9164c005,
+ 0x49adb720,
+ 0x2a18d011,
+ 0xd0027500,
+ 0xc0003924,
+ 0xd0119124,
+ 0x75002a14,
+ 0x3922d002,
+ 0x3926d001,
+ 0x0c82c050,
+ 0xc000b441,
+ 0xb7409d87,
+ 0x0dc2468c,
+ 0xc01009c2,
+ 0xcff00d02,
+ 0xffd40c81,
+ 0xb78398fb,
+ 0x9d1b6108,
+ 0xcff07500,
+ 0xc0000b01,
+ 0xd2909282,
+ 0x7500aa41,
+ 0x91e2c000,
+ 0x606cb79f,
+ 0x8d00f211,
+ 0x2a00c010,
+ 0xcff07500,
+ 0xf3100a03,
+ 0xb3468001,
+ 0xb79e4422,
+ 0xc8014068,
+ 0xc01008c2,
+ 0xc0320880,
+ 0xb59f0cea,
+ 0xb421606c,
+ 0xb783c000,
+ 0x75006108,
+ 0x9282c001,
+ 0x6208b783,
+ 0xc0017500,
+ 0xb72091e2,
+ 0xd011510c,
+ 0x75002a12,
+ 0x9102c001,
+ 0x5d94b7a0,
+ 0x598cb7a0,
+ 0xaa21f210,
+ 0x28f99eab,
+ 0x510cb520,
+ 0x9c629ea4,
+ 0x5b8cb720,
+ 0x4129b780,
+ 0xc0007500,
+ 0xf20892a4,
+ 0xf210a9a1,
+ 0x0d82a83d,
+ 0x9c629e84,
+ 0xa8a5f250,
+ 0xf2089eab,
+ 0x0982a021,
+ 0x9c629e8c,
+ 0xaa21da08,
+ 0x738ab581,
+ 0xa9cdda10,
+ 0xfff49eb3,
+ 0xc8019aa6,
+ 0xc00a0a02,
+ 0xc0300a00,
+ 0xb4810c8a,
+ 0xc008c000,
+ 0x0c8408c2,
+ 0xc000b421,
+ 0x0a02c008,
+ 0xb4810c88,
+ 0xc0c0c000,
+ 0x09920d82,
+ 0x0d02c008,
+ 0x0902c008,
+ 0x989dc014,
+ 0x0a02c008,
+ 0x0c8ec030,
+ 0xc000b481,
+ 0x590cb720,
+ 0xb5408506,
+ 0xfff44039,
+ 0xb79f9ad1,
+ 0xb7bf6eee,
+ 0xb7df6f6e,
+ 0xc0106fee,
+ 0x9c228c60,
+ 0xa205f839,
+ 0x0c82c450,
+ 0xb4810a02,
+ 0xb101c000,
+ 0xc0084220,
+ 0xc0300a40,
+ 0xb4810c8e,
+ 0xc002c000,
+ 0xc05038c0,
+ 0xb4210c82,
+ 0xc0c0c000,
+ 0x09920d82,
+ 0x0d02c008,
+ 0x0902c008,
+ 0x9869c014,
+ 0x0a02c008,
+ 0x0c8ec030,
+ 0xc000b481,
+ 0xaa1df9f8,
+ 0x9000fff5,
+ 0xf011a60d,
+ 0xc0010eb0,
+ 0xc01e9182,
+ 0xc0080f7e,
+ 0xc0300b02,
+ 0xc0400e8e,
+ 0x9e747540,
+ 0x0c96c050,
+ 0x4426b354,
+ 0xc20012d8,
+ 0xb4815a14,
+ 0xc030c000,
+ 0xb4c20d0a,
+ 0xb4c5c000,
+ 0xc030c000,
+ 0xb4c10c96,
+ 0xc0c0c000,
+ 0x09920d82,
+ 0x0d02c008,
+ 0x0902c008,
+ 0x9835c014,
+ 0xc000b4c5,
+ 0xfffe7540,
+ 0xfff493c4,
+ 0xb79f9a6f,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0xb4639c22,
+ 0x9c22c000,
+ 0xa062f812,
+ 0xc2009c22,
+ 0x5d890d80,
+ 0x09829e59,
+ 0x3d80c400,
+ 0xc000b463,
+ 0x4620b203,
+ 0x9c220007,
+ 0x9c8fc127,
+ 0x080a9c22,
+ 0x56f1b971,
+ 0x9c81c017,
+ 0x9c80c071,
+ 0x9c80c017,
+ 0x4000b960,
+ 0xffff9c22,
+ 0x9e5c9280,
+ 0xd1a401c6,
+ 0x08825889,
+ 0x3c80c400,
+ 0xc000b421,
+ 0x4220b104,
+ 0x9e532244,
+ 0xffff7106,
+ 0x9c229324,
+ 0xc004a60d,
+ 0xc8298420,
+ 0xc3240ca2,
+ 0xc0300cf0,
+ 0xe133ac3d,
+ 0xc0388d00,
+ 0xc030a45d,
+ 0xc038ac3d,
+ 0xc010a45d,
+ 0xc018ac3d,
+ 0xc010a45d,
+ 0xc018ac25,
+ 0xb7a0a445,
+ 0x9ea9570c,
+ 0xb5408502,
+ 0xb541651a,
+ 0xb7404b98,
+ 0x0dc2468c,
+ 0x0d42c00a,
+ 0xffb409c2,
+ 0xd2519ba9,
+ 0xda080a58,
+ 0x7502aa01,
+ 0xc0009ead,
+ 0xb5809084,
+ 0xb780448c,
+ 0xf2105c8c,
+ 0x8502a8a1,
+ 0xa8a6f210,
+ 0x509cb540,
+ 0x481ab540,
+ 0xa103f208,
+ 0xa085f208,
+ 0xa929f210,
+ 0xa08af208,
+ 0xa92ef210,
+ 0xa8b2f210,
+ 0xa10df208,
+ 0xa8b1f250,
+ 0xa112f208,
+ 0xa096f208,
+ 0xa09af208,
+ 0x0cf2c050,
+ 0xf24808c0,
+ 0xb421a085,
+ 0x0a0ac000,
+ 0x0c92c036,
+ 0xc000b481,
+ 0x1c8c0896,
+ 0xc000b421,
+ 0x8c00f031,
+ 0x8d80e131,
+ 0xb7c09ea3,
+ 0xb55f5b8c,
+ 0x0d027ffc,
+ 0x4078b960,
+ 0xa103f208,
+ 0xd1229dba,
+ 0x9e2d5d0d,
+ 0xa8e5f029,
+ 0x2caed012,
+ 0xd1265c88,
+ 0x9e4a5908,
+ 0xaa4de038,
+ 0x28bc0d04,
+ 0x324250a8,
+ 0xffffa241,
+ 0xf01091c1,
+ 0xc036aa61,
+ 0xb4810c8e,
+ 0xb73fc000,
+ 0x1c847fec,
+ 0xc000b421,
+ 0x9999c014,
+ 0xaa4dd208,
+ 0xc0007500,
+ 0xf2909262,
+ 0xf011aa2d,
+ 0xc0002ac8,
+ 0xc80091a4,
+ 0x75002a00,
+ 0x90c4c000,
+ 0xa9c6f208,
+ 0x9aecfff4,
+ 0xa2cdd208,
+ 0xa8adf290,
+ 0x2a14d011,
+ 0xc0007500,
+ 0xc8099102,
+ 0xc5720a42,
+ 0xb5800a00,
+ 0xb780530c,
+ 0x7500460c,
+ 0x9162c000,
+ 0x5a31c080,
+ 0xc03e2a04,
+ 0xb4810cea,
+ 0xc000c000,
+ 0xb7809280,
+ 0x7502448c,
+ 0x915cc000,
+ 0x2880c100,
+ 0x0a0e7440,
+ 0x1a46d001,
+ 0x9060c000,
+ 0xc03e0a02,
+ 0xb4810cea,
+ 0xb79fc000,
+ 0xb7bf7a6e,
+ 0xb7df7aee,
+ 0xc0067b6e,
+ 0x9c228c00,
+ 0x538cb780,
+ 0x0892c0c8,
+ 0x40f8b960,
+ 0x0948d011,
+ 0xaa45f029,
+ 0x5889d0a4,
+ 0xc000b481,
+ 0xffff0890,
+ 0x9c229321,
+ 0xb720a605,
+ 0xb780460c,
+ 0x7440790c,
+ 0xb5800a04,
+ 0xc000790c,
+ 0xb7839364,
+ 0x75006108,
+ 0x92c2c000,
+ 0x448cb720,
+ 0x510cb780,
+ 0x3a407442,
+ 0x510cb580,
+ 0x919cc000,
+ 0x5b8cb780,
+ 0xa889d208,
+ 0xc0007440,
+ 0x850690a4,
+ 0x6818b543,
+ 0x0a42c801,
+ 0x0a00c010,
+ 0x0ceac032,
+ 0xc000b481,
+ 0x08c2c008,
+ 0x1ce0c002,
+ 0xc000b421,
+ 0x0a42c008,
+ 0x0d0ec030,
+ 0xc000b482,
+ 0x0c82c450,
+ 0x1a40c008,
+ 0xc000b481,
+ 0x4220b101,
+ 0x38c0c002,
+ 0x0c82c050,
+ 0xc000b421,
+ 0x0d82c0c0,
+ 0xc0080992,
+ 0xc0080d02,
+ 0xfff40902,
+ 0xc4509ab0,
+ 0x0a020c86,
+ 0xc000b481,
+ 0x4220b105,
+ 0x0a00c008,
+ 0x0d0ec030,
+ 0xc000b482,
+ 0xc0080c84,
+ 0xb4811a00,
+ 0xb101c000,
+ 0xc0804220,
+ 0xc8015a35,
+ 0x09400902,
+ 0x28fcc00e,
+ 0x5910d0a8,
+ 0x29ced071,
+ 0x0c8ac030,
+ 0xb4419dc8,
+ 0x0a42c000,
+ 0xb4810c84,
+ 0x7680c000,
+ 0x9182c000,
+ 0x5c8cb720,
+ 0x44bdb740,
+ 0x8a27f210,
+ 0x8021f310,
+ 0x44adb580,
+ 0x0c86c450,
+ 0xb4810a02,
+ 0xb105c000,
+ 0x0cec4220,
+ 0xc000b481,
+ 0x4220b105,
+ 0x08ea12d6,
+ 0x0c9ec034,
+ 0xc000b421,
+ 0x570cb780,
+ 0xa891f248,
+ 0x1950d053,
+ 0x88a3f210,
+ 0x0d060d82,
+ 0x5a0cc280,
+ 0x508cb580,
+ 0xffd4018b,
+ 0xc080987c,
+ 0xb4a10ca2,
+ 0xb780c000,
+ 0x0c88478c,
+ 0xc000b481,
+ 0x5814b7a0,
+ 0x0d82c002,
+ 0x9a2bfff4,
+ 0xffff700a,
+ 0xb7809364,
+ 0xf210790c,
+ 0xf250a8ad,
+ 0x6243a8a2,
+ 0x71029e49,
+ 0x90b8c000,
+ 0xb5438506,
+ 0xb7806618,
+ 0x7500460c,
+ 0xc0010a82,
+ 0xb7809204,
+ 0x7502448c,
+ 0x933cc000,
+ 0x6108b783,
+ 0xc0007500,
+ 0xb7809282,
+ 0x2a79458c,
+ 0x458cb580,
+ 0x983affd4,
+ 0x6808b783,
+ 0xc0007500,
+ 0xffd490c2,
+ 0xb5a39911,
+ 0xffd46808,
+ 0xb78398d6,
+ 0x75006108,
+ 0x93e2c000,
+ 0x993dc014,
+ 0x5b8cb780,
+ 0xa889d208,
+ 0xc0007440,
+ 0xc08092c2,
+ 0xc0000a82,
+ 0x0d829240,
+ 0x98a2ffd4,
+ 0x6208b783,
+ 0xc0007500,
+ 0x0d8290e2,
+ 0x984effd4,
+ 0x90a0c000,
+ 0xffd40d82,
+ 0xc0809983,
+ 0xb4a10ca6,
+ 0xc002c000,
+ 0xfff40d92,
+ 0x700a99ce,
+ 0x9364ffff,
+ 0x09820dea,
+ 0xc1210d0a,
+ 0xffb40902,
+ 0xb78099b3,
+ 0xf248570c,
+ 0xc0a1a992,
+ 0x0d040d02,
+ 0xffb409c2,
+ 0xc0c0999e,
+ 0x09920d82,
+ 0x09420d42,
+ 0x99d1fff4,
+ 0xc03e0a02,
+ 0xb4810cea,
+ 0xb79fc000,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa60d9c22,
+ 0x570cb720,
+ 0x49b5b720,
+ 0x2e10d091,
+ 0x9e8e7500,
+ 0x9282c001,
+ 0x2e14d011,
+ 0xb5438506,
+ 0x0e826118,
+ 0xb5a07500,
+ 0xb5a37914,
+ 0xc0006610,
+ 0xb5439082,
+ 0xd1116198,
+ 0x75002e10,
+ 0x9082c000,
+ 0x6218b543,
+ 0x2e10d211,
+ 0xc0007500,
+ 0xb5439082,
+ 0xb7806298,
+ 0xd1515d8c,
+ 0xf2080ee0,
+ 0x9eaba88e,
+ 0x9c620603,
+ 0x588cb720,
+ 0xaa21d208,
+ 0x41abb580,
+ 0x41b3b720,
+ 0x4392b5a0,
+ 0x5014b520,
+ 0x580cb7c0,
+ 0xaa49f2d0,
+ 0xa8d9f208,
+ 0xc0007048,
+ 0xb7809142,
+ 0xf2485d8c,
+ 0xd152a88d,
+ 0x9e8c0de0,
+ 0xb7839c62,
+ 0x75006108,
+ 0x9062c004,
+ 0x4614b720,
+ 0xc0037640,
+ 0xb72093c4,
+ 0x7440438a,
+ 0x90e2c000,
+ 0xaa55da08,
+ 0xc0017048,
+ 0xb7a09004,
+ 0xb7835b94,
+ 0xb7a06188,
+ 0xda085d8c,
+ 0xb520a9d6,
+ 0x850a4392,
+ 0xd2107500,
+ 0xf208a0aa,
+ 0xe001a8a9,
+ 0x9d4f8d24,
+ 0x9e8c1d84,
+ 0xf2089c62,
+ 0x030baa31,
+ 0x9ea40d8a,
+ 0xc0009c62,
+ 0xb7809180,
+ 0xf2085d8c,
+ 0xb7a0a891,
+ 0x0d865b94,
+ 0x9e8c0309,
+ 0xb7809c62,
+ 0xb723438a,
+ 0xb7206208,
+ 0x0a045894,
+ 0x438ab580,
+ 0xaa29d210,
+ 0xb5807440,
+ 0xc0014849,
+ 0xb7a09024,
+ 0xf208598c,
+ 0x9eaba8c1,
+ 0x9c629e8c,
+ 0xaa29d210,
+ 0xc0007500,
+ 0xf20892a4,
+ 0xf208a9a1,
+ 0x0d82a85d,
+ 0x9c629e84,
+ 0xa021f208,
+ 0xa845f248,
+ 0x09829eab,
+ 0x9c629e84,
+ 0xaa21da08,
+ 0x738ab581,
+ 0x448cb780,
+ 0xc0007502,
+ 0x0d8690bc,
+ 0x9b5affb4,
+ 0xaa29d210,
+ 0xc0007500,
+ 0xb7209122,
+ 0xb780558c,
+ 0x3a08412d,
+ 0x90e0c000,
+ 0x558cb720,
+ 0x412db780,
+ 0xb5802a75,
+ 0xb723412d,
+ 0xb7806108,
+ 0x7440510c,
+ 0xb5803a04,
+ 0xc000510c,
+ 0xd15191c4,
+ 0xb7400e60,
+ 0xd208588c,
+ 0xd208a882,
+ 0xb520a881,
+ 0xd8085014,
+ 0xb79fa0cd,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0xa60d9c22,
+ 0x6208b783,
+ 0xb7a07500,
+ 0x0b025d94,
+ 0x9262c000,
+ 0x598cb7a0,
+ 0xa83df210,
+ 0xa9a1f208,
+ 0x9e840d8a,
+ 0xf2089c62,
+ 0xf250a021,
+ 0x9eaba825,
+ 0x9e840986,
+ 0xb7839c62,
+ 0x75006208,
+ 0x5094b7c0,
+ 0x9124c000,
+ 0x5994b760,
+ 0xa825f210,
+ 0x9c629e84,
+ 0xb7200301,
+ 0xb7805b8c,
+ 0x75004129,
+ 0xc0000283,
+ 0xb7839224,
+ 0x75006208,
+ 0x90c4c000,
+ 0xaa21f250,
+ 0x9c629ea4,
+ 0xaa35f210,
+ 0x15e29eb1,
+ 0x9c629ea4,
+ 0xaa39f210,
+ 0x018b9eb3,
+ 0x9c629ea4,
+ 0x570cb720,
+ 0x49adb780,
+ 0x2a00c400,
+ 0xc0007500,
+ 0x85029102,
+ 0xa12bd208,
+ 0xd2088506,
+ 0xb780a123,
+ 0xcffe510c,
+ 0xb5802a3d,
+ 0xb79f510c,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0xb7209c22,
+ 0x9e5c4b0c,
+ 0x2a40c0ff,
+ 0x28c0c0ff,
+ 0x85027102,
+ 0x9062c000,
+ 0xb5408506,
+ 0xb5604b9c,
+ 0x9c224b14,
+ 0x9e5da605,
+ 0x2a50d051,
+ 0xc0007500,
+ 0xb78090e4,
+ 0x75004b8c,
+ 0x9142c000,
+ 0x0d82c0c0,
+ 0x09c2c012,
+ 0x09420d02,
+ 0x984dfff4,
+ 0x4b0cb780,
+ 0x0cb6c034,
+ 0xc000b481,
+ 0x0d32c034,
+ 0xc000b4a2,
+ 0x4a8cb5a0,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0x8420a61d,
+ 0x6108b783,
+ 0xc0007500,
+ 0xb7809122,
+ 0xd288588c,
+ 0x7440a881,
+ 0x9124c018,
+ 0x468cb740,
+ 0x5694b7a0,
+ 0x098e0dc2,
+ 0x0d42c002,
+ 0xffb4048b,
+ 0xf2109803,
+ 0xb7c0aa35,
+ 0xf210560c,
+ 0xf210a8a5,
+ 0xb7a0a8aa,
+ 0xb580570c,
+ 0xf208478c,
+ 0xda10a0d5,
+ 0xda10aa39,
+ 0xf208a8bd,
+ 0xd252a0de,
+ 0xf20808d0,
+ 0xf248a259,
+ 0xda10a0c1,
+ 0xd131a922,
+ 0xda080a50,
+ 0xb740a881,
+ 0xf250404b,
+ 0x9e53a927,
+ 0xa8b2da90,
+ 0xc08060b2,
+ 0xc2005a7f,
+ 0x00985a71,
+ 0x58945893,
+ 0x80a3e210,
+ 0x7e7edffc,
+ 0xc1005915,
+ 0x018b5b90,
+ 0xa0ddf248,
+ 0x91e2c000,
+ 0x5d40e100,
+ 0x9164c000,
+ 0xaa35da90,
+ 0xb5208502,
+ 0xb5404792,
+ 0xb580489a,
+ 0xf288468a,
+ 0xd132aa21,
+ 0xf2480950,
+ 0xf248a255,
+ 0xda10a259,
+ 0xd810a8a1,
+ 0xf248aa41,
+ 0xda48a93b,
+ 0x6218a8ba,
+ 0x8021f310,
+ 0xa93dda48,
+ 0xa0caf248,
+ 0xa249f288,
+ 0xaa29da48,
+ 0xa151f248,
+ 0xa923f208,
+ 0xa8aeda48,
+ 0xc2006218,
+ 0xf3105a10,
+ 0xf2088021,
+ 0xf208a241,
+ 0x9e4ca927,
+ 0xa928f20a,
+ 0x588c6098,
+ 0x8023f210,
+ 0x82a3e210,
+ 0xa249f208,
+ 0xa8aada48,
+ 0xa0cdf208,
+ 0xaa21da10,
+ 0xa8c1d810,
+ 0xa0c6f208,
+ 0xa937f248,
+ 0x62430a04,
+ 0x5c8cb740,
+ 0x8021f310,
+ 0xa245f288,
+ 0xa8a1da10,
+ 0xa953f008,
+ 0xa8a2da10,
+ 0xa954f00a,
+ 0xe21058a0,
+ 0x5c9c80a3,
+ 0x82a3e020,
+ 0xaa2dda48,
+ 0xa0adf208,
+ 0xa0b2f208,
+ 0xa0c5f248,
+ 0xa0cef248,
+ 0xa251f208,
+ 0xa941d810,
+ 0x1880c004,
+ 0x4f0cb520,
+ 0x0a54d131,
+ 0xa881da08,
+ 0x1c80c002,
+ 0x4f94b520,
+ 0x59515940,
+ 0xa155f288,
+ 0x58d158c0,
+ 0xa0d9f288,
+ 0x0cf2c42e,
+ 0xb4810a02,
+ 0xb101c000,
+ 0x28844220,
+ 0xd1327440,
+ 0xc0000b50,
+ 0xda109102,
+ 0xc09caa41,
+ 0xc011753e,
+ 0xc0c09152,
+ 0xc05008c6,
+ 0xb4210ce2,
+ 0xf210c000,
+ 0xd131a939,
+ 0xda080a30,
+ 0xd052a881,
+ 0x764028a0,
+ 0xb5205891,
+ 0xc0004e8c,
+ 0x0a029222,
+ 0x0caec060,
+ 0xc000b481,
+ 0xa8a1da10,
+ 0xc0007440,
+ 0x85029302,
+ 0x4e9cb540,
+ 0x9260c000,
+ 0x2900c200,
+ 0xc0007480,
+ 0x0a0a9122,
+ 0x0caec060,
+ 0xc000b481,
+ 0x90e0c000,
+ 0xc0600a06,
+ 0xb4810cae,
+ 0xf210c000,
+ 0x2a04aa39,
+ 0x850a7500,
+ 0x491cb540,
+ 0x90a2c000,
+ 0xb5408504,
+ 0xb783491c,
+ 0x75006108,
+ 0x5d94b7e0,
+ 0x92e2c000,
+ 0x6208b783,
+ 0xc0007500,
+ 0xb7809244,
+ 0x7500460c,
+ 0x91a2c000,
+ 0x6288b783,
+ 0xc0007500,
+ 0xb7609104,
+ 0xf2105994,
+ 0x9ea4aa61,
+ 0xf2109c62,
+ 0x2a20aa39,
+ 0xc0007500,
+ 0xda1090e2,
+ 0x7500aa21,
+ 0x9244c000,
+ 0x588cb780,
+ 0x530cb720,
+ 0xa98eda08,
+ 0x9c629e8c,
+ 0x6108b783,
+ 0xc0007500,
+ 0x850690a2,
+ 0x6b18b543,
+ 0xa8b9f210,
+ 0x2a14d011,
+ 0xc0017500,
+ 0xd01190e2,
+ 0x75002a12,
+ 0xcffe8516,
+ 0xc0380a7e,
+ 0xe0010cfa,
+ 0xb5408d28,
+ 0xb4814d1c,
+ 0xda10c000,
+ 0xb720a8c1,
+ 0xc2845e94,
+ 0xc6840a6a,
+ 0xc058856a,
+ 0xb5207462,
+ 0xc0385214,
+ 0xb3240c82,
+ 0xb4814c28,
+ 0x0882c000,
+ 0x0c80c002,
+ 0xc000b421,
+ 0x9b9affd4,
+ 0x490cb780,
+ 0x0c82c03e,
+ 0xc000b481,
+ 0x4d0cb720,
+ 0x0c82c050,
+ 0xc000b421,
+ 0xa921da10,
+ 0xa8d5f288,
+ 0xa926da10,
+ 0x9e536123,
+ 0xaa21da10,
+ 0xb7206097,
+ 0x87025c14,
+ 0x7482b541,
+ 0xb540857f,
+ 0x851a459a,
+ 0x449ab540,
+ 0x1a040d86,
+ 0x4d8cb580,
+ 0x405bb540,
+ 0xb5408526,
+ 0xb540415b,
+ 0x5891460a,
+ 0xb52018a0,
+ 0xb55f40cb,
+ 0xc0147fe4,
+ 0xb75f9baa,
+ 0x85067fe4,
+ 0x6a18b543,
+ 0x6a80b543,
+ 0x7000b543,
+ 0x7080b543,
+ 0x6b80b543,
+ 0xa8a6da10,
+ 0xaa55f288,
+ 0xb7209e49,
+ 0xb5435694,
+ 0x62436c00,
+ 0x434db720,
+ 0x58c88502,
+ 0x2880c101,
+ 0xda109e89,
+ 0x0a82a9c2,
+ 0x4e1cb540,
+ 0x519cb540,
+ 0xc0ff5dc0,
+ 0xca012dc0,
+ 0xc2003db0,
+ 0xb5805a11,
+ 0x3596450a,
+ 0x99d3fff4,
+ 0x0d82c0c0,
+ 0x09c2c012,
+ 0x09420d02,
+ 0x9a3bffd4,
+ 0x8546714e,
+ 0x9148c001,
+ 0xfff49dcf,
+ 0xc0c099d5,
+ 0xc0120d82,
+ 0x0d0209c2,
+ 0xffd40906,
+ 0xd0919a2c,
+ 0x71481a70,
+ 0xd00b0a02,
+ 0xda100a42,
+ 0xc200a9c2,
+ 0x9ea15a28,
+ 0xc0ff5dc0,
+ 0xc8012dc0,
+ 0x35963db0,
+ 0x99a9fff4,
+ 0x0a50d051,
+ 0x5a40c200,
+ 0x5ac1c200,
+ 0x8506714e,
+ 0x9346fffe,
+ 0xaa71f250,
+ 0xcfce7500,
+ 0xb540857f,
+ 0xc0007b9c,
+ 0xf2109102,
+ 0xb760a9be,
+ 0x9ea4450a,
+ 0x0d829c62,
+ 0x98e4c014,
+ 0x6a88b783,
+ 0x85027500,
+ 0x6a18b543,
+ 0x92a4c002,
+ 0x598cb7a0,
+ 0x068f0b02,
+ 0x6108b783,
+ 0xc0027500,
+ 0xb7839082,
+ 0x75006208,
+ 0x93e2c001,
+ 0x6b08b783,
+ 0xc0007500,
+ 0xf2089182,
+ 0xb5c3a9a2,
+ 0xf2506b08,
+ 0x9e84a869,
+ 0xb5009c62,
+ 0xb783430a,
+ 0x75006c08,
+ 0x9382c000,
+ 0xa825f210,
+ 0xb5c39eab,
+ 0x9e846c08,
+ 0xf2509c62,
+ 0x9ea4aa21,
+ 0xf2089c62,
+ 0xf210a9a1,
+ 0x0d86a83d,
+ 0x9c629e84,
+ 0xaa25f250,
+ 0xf2089eab,
+ 0x0986a021,
+ 0x9c629ea4,
+ 0x6c08b783,
+ 0xc0007500,
+ 0x0d8691e4,
+ 0x9898c014,
+ 0x6c08b783,
+ 0xffff7500,
+ 0xc0009342,
+ 0x0d8690a0,
+ 0x988ec014,
+ 0x6a88b783,
+ 0xfffd7500,
+ 0xc0c09262,
+ 0xc0120d82,
+ 0x0d0209c2,
+ 0xffd40906,
+ 0xc801999a,
+ 0xb5800a02,
+ 0xc0c0518c,
+ 0xc0120d82,
+ 0x0d0209c2,
+ 0xffd40942,
+ 0xb760998e,
+ 0xfff45194,
+ 0x0d86991a,
+ 0x9928fff4,
+ 0x0d82c0c0,
+ 0x09c2c012,
+ 0x09060d02,
+ 0x997fffd4,
+ 0xc0068502,
+ 0xc4300892,
+ 0x09020c9a,
+ 0x519cb540,
+ 0x8510c006,
+ 0xc000b441,
+ 0x4220b104,
+ 0x75002a40,
+ 0xb3139d4f,
+ 0x00874422,
+ 0x1884e000,
+ 0x9284ffff,
+ 0x4614b740,
+ 0x0892c006,
+ 0x0c9ac430,
+ 0xc0060902,
+ 0xb4418512,
+ 0xb104c000,
+ 0xc0024220,
+ 0x75002a00,
+ 0xb3149d53,
+ 0x00894422,
+ 0x1884e000,
+ 0x9264ffff,
+ 0xc03e0a02,
+ 0xb9600cea,
+ 0xb48140e8,
+ 0xffffc000,
+ 0x768093c1,
+ 0x9122c000,
+ 0xc03e0a02,
+ 0xb4810cea,
+ 0xc000c000,
+ 0xb7809180,
+ 0x7504448c,
+ 0xc03e088a,
+ 0xd00c0cea,
+ 0xb4211894,
+ 0xc0c0c000,
+ 0x09e20d82,
+ 0x09420d02,
+ 0x992bffd4,
+ 0xc0340a02,
+ 0xb4810cb6,
+ 0xb79fc000,
+ 0xb7bf7dee,
+ 0xb7df7e6e,
+ 0xb7ff7eee,
+ 0xc0027f6e,
+ 0x9c228c20,
+ 0xc01ca60d,
+ 0x0a827efe,
+ 0x9182c000,
+ 0x0d82c0c0,
+ 0x09c2c012,
+ 0x09060d02,
+ 0x990dffd4,
+ 0x9240c000,
+ 0x0cb2c434,
+ 0xb4810a02,
+ 0xb101c000,
+ 0x28844220,
+ 0xc0007440,
+ 0xb78390e2,
+ 0x75006a08,
+ 0x91a2c009,
+ 0x4e0cb780,
+ 0xc0007502,
+ 0x0d8290c4,
+ 0x9a29c014,
+ 0xb7403ac0,
+ 0xb7405694,
+ 0xd810560c,
+ 0xf088a8c5,
+ 0xb720aa55,
+ 0x62434592,
+ 0xc2009e49,
+ 0x0a045a11,
+ 0x4002ba09,
+ 0x4002ba24,
+ 0x03057048,
+ 0xc0000685,
+ 0xb7809138,
+ 0x2a51490c,
+ 0x490cb580,
+ 0x91c0c003,
+ 0xaa39f210,
+ 0x75002a04,
+ 0x93a2c002,
+ 0x490cb780,
+ 0xd0117440,
+ 0xb5403942,
+ 0xc002490c,
+ 0xb760929c,
+ 0x9e5c4792,
+ 0x400aba24,
+ 0x91a2c002,
+ 0x911cc002,
+ 0x650ab760,
+ 0x5d04b740,
+ 0x9e2d9e99,
+ 0x4003ba09,
+ 0x5e7fd0a2,
+ 0xc2009e48,
+ 0x02085a6d,
+ 0x5a17c200,
+ 0x5908d226,
+ 0xc2000c06,
+ 0x12085a14,
+ 0xe0389e40,
+ 0xba24a94e,
+ 0x50904002,
+ 0x79029e54,
+ 0x9102c001,
+ 0x4b88b781,
+ 0xc0017500,
+ 0xb7809064,
+ 0x9e48470a,
+ 0x4002ba24,
+ 0xc0007008,
+ 0x76409378,
+ 0x90e4c000,
+ 0x4b08b781,
+ 0xc0007502,
+ 0xd01192c2,
+ 0xb5801e32,
+ 0x9e54478a,
+ 0xb56048fd,
+ 0xb501470a,
+ 0x29594b90,
+ 0x490cb540,
+ 0xa0c120c2,
+ 0x90a0c000,
+ 0xb5418502,
+ 0xb7804b98,
+ 0xba24458a,
+ 0xc000400a,
+ 0xb78090fc,
+ 0x0a04650a,
+ 0x650ab580,
+ 0x490cb720,
+ 0x0c82c03e,
+ 0xc000b421,
+ 0x458ab780,
+ 0xb5800a04,
+ 0xc014458a,
+ 0xb7839a96,
+ 0x75006108,
+ 0x9222c002,
+ 0x6208b783,
+ 0xc0027500,
+ 0xb7809182,
+ 0x2a40518c,
+ 0xc0007500,
+ 0xb78390e4,
+ 0x751a7008,
+ 0x9024c002,
+ 0x578cb780,
+ 0x7492b721,
+ 0xa881da08,
+ 0x70029e48,
+ 0x9284c000,
+ 0x430ab780,
+ 0xb5418502,
+ 0xb580749a,
+ 0xb760440a,
+ 0xb7804412,
+ 0x8506530c,
+ 0x6b18b543,
+ 0x6c18b543,
+ 0x9c629ea4,
+ 0xaa39f210,
+ 0x75002a10,
+ 0x93e2c000,
+ 0x6c08b783,
+ 0xc0007500,
+ 0xb78190e4,
+ 0x7502748a,
+ 0x92a4c000,
+ 0x6b08b783,
+ 0x09027500,
+ 0x0922d001,
+ 0x0c82c438,
+ 0xb4810a02,
+ 0xb101c000,
+ 0x28f14220,
+ 0xc0383094,
+ 0xb4210c82,
+ 0xc014c000,
+ 0xb780983e,
+ 0xf2884e0c,
+ 0x0a04a955,
+ 0xb5807104,
+ 0xc0004e0c,
+ 0x850290a4,
+ 0x4e1cb540,
+ 0xa8a5da10,
+ 0x4592b720,
+ 0x60a35891,
+ 0x4003ba09,
+ 0x3a849e4c,
+ 0x71020884,
+ 0xcffe020b,
+ 0xb3542a3d,
+ 0x02894426,
+ 0x28d0d051,
+ 0xc0007440,
+ 0xc0c09142,
+ 0xc0120d82,
+ 0x0d0209c2,
+ 0xffb40942,
+ 0xb7809bd8,
+ 0x7500518c,
+ 0x90a2c000,
+ 0xffd49eab,
+ 0xb79f9b71,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0xf8399c22,
+ 0xb723a205,
+ 0xb7407008,
+ 0xb7805204,
+ 0xd0a6448a,
+ 0x9e2d5908,
+ 0x570cb740,
+ 0xa94ee030,
+ 0x5f1cb760,
+ 0x7098b743,
+ 0x7000b743,
+ 0xb5801a04,
+ 0xc030448a,
+ 0xe200a8cd,
+ 0xd2515a40,
+ 0xda080a20,
+ 0xe210a882,
+ 0xb54082a3,
+ 0x5c955194,
+ 0xb5235c90,
+ 0xc0017008,
+ 0xb78392c4,
+ 0x0a047088,
+ 0x28ced3f1,
+ 0xb5837444,
+ 0xc0017088,
+ 0xb7609034,
+ 0x85067b94,
+ 0x6a98b543,
+ 0x764024a6,
+ 0x6c18b543,
+ 0x5194b520,
+ 0x9202c000,
+ 0x08a0d131,
+ 0x402bb780,
+ 0x3c80c801,
+ 0xc2009e48,
+ 0xc0ff5a40,
+ 0x32082a40,
+ 0x518cb580,
+ 0xf9f80806,
+ 0x9c22aa1d,
+ 0x7088b723,
+ 0x5c04b740,
+ 0x5904d0a6,
+ 0xc8309e2d,
+ 0xb580aa4d,
+ 0xd132448a,
+ 0xb72009a0,
+ 0xd810458a,
+ 0xba19aa61,
+ 0xc2004002,
+ 0x1a045a11,
+ 0xc00070c8,
+ 0xb7809104,
+ 0xc0407b8c,
+ 0xb5803a00,
+ 0xb7207b8c,
+ 0xd0114e8c,
+ 0x70c80a18,
+ 0x9104c000,
+ 0x7b8cb780,
+ 0x3a00c010,
+ 0x7b8cb580,
+ 0x0a1cd011,
+ 0xc00070c8,
+ 0xb7809104,
+ 0xc0207b8c,
+ 0xb5803a00,
+ 0xb7807b8c,
+ 0xf288560c,
+ 0xf288a916,
+ 0x9e50a919,
+ 0x460ab720,
+ 0x1a24d011,
+ 0xba096241,
+ 0x00b24002,
+ 0xc0007048,
+ 0xb7809106,
+ 0xcfff7b8c,
+ 0xb5802a7a,
+ 0xd0117b8c,
+ 0x9e521a22,
+ 0x70486245,
+ 0x9106c000,
+ 0x7b8cb780,
+ 0x2a7ec7fe,
+ 0x7b8cb580,
+ 0x451ab740,
+ 0x5e11d0a2,
+ 0x8821f310,
+ 0xc00070c8,
+ 0xb7809104,
+ 0xcfff7b8c,
+ 0xb5802a4e,
+ 0xb7407b8c,
+ 0xb720568c,
+ 0xd8087b8c,
+ 0x9e50aa45,
+ 0xc2009e8a,
+ 0x1a045a11,
+ 0xb7206209,
+ 0x0a045194,
+ 0x4002ba24,
+ 0x249470c8,
+ 0x5194b520,
+ 0x9118c000,
+ 0x3c80c801,
+ 0x5194b520,
+ 0x91c0c000,
+ 0xaa61d810,
+ 0x3c80c801,
+ 0xc2009e48,
+ 0xc0ff5a40,
+ 0x32082a40,
+ 0x518cb580,
+ 0xaa59f008,
+ 0x2a00c040,
+ 0xc0007500,
+ 0xb7809102,
+ 0xc101518c,
+ 0xb5803a00,
+ 0xb760518c,
+ 0xffd45194,
+ 0x08029a60,
+ 0xaa1df9f8,
+ 0xb7009c22,
+ 0xd2515714,
+ 0xb7600e04,
+ 0xda08560c,
+ 0xc00ea881,
+ 0xc0342dfc,
+ 0xf0080cba,
+ 0x5895a961,
+ 0x5810c080,
+ 0xb4419e82,
+ 0xb780c000,
+ 0xf008454a,
+ 0xc200a963,
+ 0xf3105a10,
+ 0xf0088021,
+ 0x0c84a8e9,
+ 0xa261f008,
+ 0xc000b421,
+ 0x46cab780,
+ 0xa96bf008,
+ 0x8021f310,
+ 0xa8edf008,
+ 0xf0080c84,
+ 0xb421a269,
+ 0xb780c000,
+ 0xf00846ca,
+ 0xf310a96f,
+ 0xf0088021,
+ 0x0c8ca8f5,
+ 0xa26df008,
+ 0xc000b421,
+ 0xa97df008,
+ 0xb4410c84,
+ 0xb780c000,
+ 0x0a084d8c,
+ 0x5890d224,
+ 0xc0007244,
+ 0xd131931c,
+ 0xda080e04,
+ 0x9e4ca903,
+ 0x88a1e210,
+ 0xc0007102,
+ 0xf00891d6,
+ 0xf008aa75,
+ 0xc010a8fd,
+ 0xf0080a00,
+ 0xc008a275,
+ 0xf0080880,
+ 0xb780a0fd,
+ 0xc0344f0c,
+ 0xb4810cda,
+ 0xb720c000,
+ 0x0c844f8c,
+ 0xc000b421,
+ 0x4f0cb780,
+ 0x0a400ce4,
+ 0xc000b481,
+ 0x4f8cb720,
+ 0x08c00c84,
+ 0xc000b421,
+ 0x4f0cb780,
+ 0x4f8cb720,
+ 0xc0101ce4,
+ 0xb5800a00,
+ 0xf0484f0c,
+ 0xc008aa65,
+ 0xb5200880,
+ 0xb4814f8c,
+ 0xf048c000,
+ 0x0c84a8ed,
+ 0xc000b421,
+ 0xaa65f048,
+ 0xa8edf048,
+ 0xc0100c84,
+ 0xf0480a00,
+ 0xf048a265,
+ 0xc008aa75,
+ 0xf0480880,
+ 0xb481a0ed,
+ 0xf088c000,
+ 0x0c88a965,
+ 0xc000b441,
+ 0x0c80d131,
+ 0x402bb780,
+ 0xa967f088,
+ 0x2a40cffe,
+ 0x8021f310,
+ 0xa969f088,
+ 0xf0880c88,
+ 0xb441a265,
+ 0xd131c000,
+ 0xb7800c80,
+ 0xf088402b,
+ 0xcffea96b,
+ 0xf3102a40,
+ 0xf0488021,
+ 0x1c8ca97d,
+ 0xa269f088,
+ 0xc000b441,
+ 0x0c80d131,
+ 0x402bb780,
+ 0xa97ff048,
+ 0xc20076c0,
+ 0xc2005a11,
+ 0xf3105a14,
+ 0xf0488021,
+ 0xc001a27d,
+ 0xb7209182,
+ 0x1ca8454a,
+ 0xc000b421,
+ 0x46cab780,
+ 0xc2000c84,
+ 0xc2005a0d,
+ 0x324258c0,
+ 0xc000b481,
+ 0x0d04d131,
+ 0xaa41d808,
+ 0xc2000c8c,
+ 0xcffe588c,
+ 0xc20028fc,
+ 0x30985a50,
+ 0xc000b421,
+ 0x0d04d251,
+ 0xaa41d808,
+ 0xc2000ca0,
+ 0x1a105a11,
+ 0xc0042a3c,
+ 0xb4813a00,
+ 0xb780c000,
+ 0x0a044d8c,
+ 0x4d8cb580,
+ 0xa68d9c22,
+ 0x0c92c43e,
+ 0xb4810a02,
+ 0xb103c000,
+ 0xb7804220,
+ 0xda085b0c,
+ 0xda08a885,
+ 0xda08a909,
+ 0xda08a189,
+ 0xda08a081,
+ 0x0cd0a105,
+ 0xb4810a02,
+ 0xb103c000,
+ 0xb7204220,
+ 0xb7805a8c,
+ 0xb7a0518c,
+ 0xb7205b0c,
+ 0xb74040b3,
+ 0xb560412b,
+ 0x2a40412b,
+ 0x03037500,
+ 0x4033b520,
+ 0x40abb540,
+ 0x90e2c000,
+ 0x7008b783,
+ 0xc000750a,
+ 0xb78390f2,
+ 0x751a7008,
+ 0x9204c00d,
+ 0x748ab781,
+ 0xb5810a04,
+ 0xc450748a,
+ 0x0a020ca6,
+ 0xc000b481,
+ 0x4220b103,
+ 0xc0310087,
+ 0x02072880,
+ 0x2a7cc00f,
+ 0x59e1d0a4,
+ 0x59c1d228,
+ 0xcffe0007,
+ 0x0c88287c,
+ 0xb4810a02,
+ 0xb103c000,
+ 0xc1804220,
+ 0x9e9a5bc1,
+ 0x2d7ccffe,
+ 0xb4810cbc,
+ 0xb103c000,
+ 0x00874220,
+ 0x568cb740,
+ 0x738ab781,
+ 0x2880c0fc,
+ 0x283ed0f2,
+ 0x5b19d0a4,
+ 0xd8889e41,
+ 0x9e95a8d2,
+ 0x7392b501,
+ 0x7e7edffc,
+ 0xba1c1218,
+ 0xc0024002,
+ 0x76c291c2,
+ 0x9384c000,
+ 0x480ab780,
+ 0x5d04b740,
+ 0x4002ba24,
+ 0x58ffc200,
+ 0x00c258ed,
+ 0xd0a65897,
+ 0x9e2d5908,
+ 0x12425894,
+ 0xe0389e59,
+ 0x5230a8ce,
+ 0x9ea74a7d,
+ 0xa0c2249e,
+ 0x9180c001,
+ 0x468ab780,
+ 0xa8a1da08,
+ 0x4002ba24,
+ 0xc0017048,
+ 0xb780907c,
+ 0xb720488a,
+ 0xb7404812,
+ 0x0a045d04,
+ 0x488ab580,
+ 0x4003ba09,
+ 0x5e7fd0a2,
+ 0x9e2d9e49,
+ 0x5a6dc200,
+ 0xc2000218,
+ 0xd2265a17,
+ 0xc2005908,
+ 0x9ea75a14,
+ 0xa94de038,
+ 0x9e4c149e,
+ 0x50b00886,
+ 0xa1413122,
+ 0x480ab780,
+ 0xb5800a04,
+ 0xb783480a,
+ 0x75006188,
+ 0x6208b783,
+ 0x90c4c000,
+ 0x7d3ec01c,
+ 0x9184c002,
+ 0x7d3ec01c,
+ 0x03f0d011,
+ 0x0527d021,
+ 0xf21076c2,
+ 0x0882aa39,
+ 0x0892d001,
+ 0x79022a04,
+ 0x598cb740,
+ 0x90e2c000,
+ 0xaa49d808,
+ 0xd8080a04,
+ 0xf008a249,
+ 0xf00aa94b,
+ 0xf310a94c,
+ 0xe0108027,
+ 0xf00882a5,
+ 0xf008a249,
+ 0xb783a0cd,
+ 0x75006688,
+ 0xd0020882,
+ 0x76c20892,
+ 0xd0020a02,
+ 0x78480a42,
+ 0x90c2c000,
+ 0x8542c07c,
+ 0xa123da08,
+ 0xf00876c2,
+ 0xc000a953,
+ 0xda0890c4,
+ 0xc000aa41,
+ 0xda089080,
+ 0xe310aa21,
+ 0xd80880a1,
+ 0xf008aa4d,
+ 0x0a04a0d1,
+ 0xa24dd808,
+ 0x91c0c006,
+ 0x598cb720,
+ 0xf2109d2e,
+ 0xc301aa39,
+ 0xc2018136,
+ 0xb7408120,
+ 0x2a044525,
+ 0xf0107500,
+ 0xf3108027,
+ 0x01038221,
+ 0x452db580,
+ 0x90a2c001,
+ 0xc00076c2,
+ 0xda0890c4,
+ 0xc000aa41,
+ 0xda089080,
+ 0xd808aa21,
+ 0x76c6a25d,
+ 0x9082c001,
+ 0xc00076c0,
+ 0x74c091a4,
+ 0xa953d808,
+ 0x8d2ae002,
+ 0x802df210,
+ 0xa251d808,
+ 0x92c0c000,
+ 0xd84874c0,
+ 0xe002a947,
+ 0xc0008d26,
+ 0xda089160,
+ 0x74c0aa41,
+ 0xa947d848,
+ 0xa25dd808,
+ 0x8d2ae002,
+ 0x802df210,
+ 0xa245d848,
+ 0x6308b783,
+ 0xc0007500,
+ 0xb7809302,
+ 0x9e41440a,
+ 0xc0007048,
+ 0x85029244,
+ 0x6318b543,
+ 0x0c82c43a,
+ 0xb4810a02,
+ 0xb103c000,
+ 0xcfef4220,
+ 0xc03a29fe,
+ 0xb4610c82,
+ 0xb780c000,
+ 0x9e41440a,
+ 0x08827048,
+ 0x0892d002,
+ 0x0a0276c6,
+ 0x0a42d001,
+ 0xc0007848,
+ 0x85069242,
+ 0x6318b543,
+ 0x0c82c43a,
+ 0xb4810a02,
+ 0xb103c000,
+ 0xc0114220,
+ 0xc03a3980,
+ 0xb4610c82,
+ 0x7780c000,
+ 0x91a2c001,
+ 0xc00076c0,
+ 0xda0892e4,
+ 0xf008aa21,
+ 0xd808a947,
+ 0xf310a8d5,
+ 0xd8088021,
+ 0xf008a8da,
+ 0x9e44a245,
+ 0xd8080c84,
+ 0x00c2a0da,
+ 0xa0d5d808,
+ 0x92a0c000,
+ 0xaa41da08,
+ 0xa95bf008,
+ 0xa8c9d848,
+ 0x8021f310,
+ 0xa8ced848,
+ 0xa259f008,
+ 0x0c849e44,
+ 0xa0ced848,
+ 0xd84800c2,
+ 0xd808a0c9,
+ 0xf008aa5d,
+ 0xf04aa95f,
+ 0xf048a940,
+ 0xf310a9c7,
+ 0xf0488021,
+ 0xf008a94f,
+ 0xf210a25d,
+ 0xd8488221,
+ 0xf048a8c2,
+ 0xf010a241,
+ 0xe2108037,
+ 0x0c8480a9,
+ 0xa0c2d848,
+ 0xa245f048,
+ 0xa0cdf048,
+ 0x7eeeb7bf,
+ 0x7f6eb7df,
+ 0x7feeb7ff,
+ 0x9c228c60,
+ 0x0cfec036,
+ 0xb4819e5c,
+ 0x9c22c000,
+ 0x87c2c809,
+ 0x0c20b060,
+ 0x87c2c809,
+ 0x0a60b060,
+ 0x87c2c809,
+ 0x09c0b060,
+};
+
+unsigned long aui32H264_MasterMTXTOPAZFWData[] = {
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x809000b0,
+ 0x80900374,
+ 0x828831d4,
+ 0x82882da4,
+ 0x82882db4,
+ 0x82882e54,
+ 0x82882cc0,
+ 0x82882d16,
+ 0x82882e84,
+ 0x82882ec0,
+ 0x82882ef8,
+ 0x82882efc,
+ 0x82882f2c,
+ 0x82882f54,
+ 0x82882d7c,
+ 0x82882f5c,
+ 0x82882f64,
+ 0x82882f6c,
+ 0x82882fa0,
+ 0x828832e0,
+ 0x828831a0,
+ 0x8288329c,
+ 0x828832dc,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x809007c8,
+ 0x809007c8,
+ 0x809026b8,
+ 0x80902138,
+ 0x80903590,
+ 0x80902a80,
+ 0x80902460,
+ 0x809007c8,
+ 0x809007c8,
+ 0x809007c8,
+ 0x809007c8,
+ 0x809007c8,
+ 0x00000000,
+ 0x00000000,
+ 0xa0101100,
+ 0xa01001b0,
+ 0xa0101102,
+ 0xa01001b2,
+ 0xa0101104,
+ 0xa0100124,
+ 0xa0101106,
+ 0xa0100126,
+ 0xa0100134,
+ 0x00000000,
+ 0xa0101120,
+ 0xa0100136,
+ 0xa0101122,
+ 0xa0100144,
+ 0x80101160,
+ 0x80101162,
+ 0x80101180,
+ 0x80101182,
+ 0x80100140,
+ 0x80100142,
+ 0x80100150,
+ 0x80100152,
+ 0x80100154,
+ 0x80100146,
+ 0x803003a0,
+ 0x80100100,
+ 0x80105156,
+ 0xa0101164,
+ 0xa0100184,
+ 0x80101194,
+ 0x801001b4,
+ 0x80100146,
+ 0x00000000,
+ 0x00000003,
+ 0x00000002,
+ 0x00000002,
+ 0x00000001,
+ 0x00000001,
+ 0x00000001,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000005,
+ 0x000f9400,
+ 0x000f9401,
+ 0x000fd403,
+ 0x000fd407,
+ 0x000fd517,
+ 0x000fdd37,
+ 0x000fff37,
+ 0x000ffb37,
+ 0x00006b37,
+ 0x00006b36,
+ 0x00002b36,
+ 0x00002b30,
+ 0x00002a20,
+ 0x40002220,
+ 0x00000000,
+ 0x00000000,
+ 0x00010001,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x1234baac,
+ 0x00000000,
+};
+
+unsigned long aui32H264_MasterMTXTOPAZFWTextReloc[] = {
+ 0
+};
+
+unsigned char aui8H264_MasterMTXTOPAZFWTextRelocType[] = {
+ 0
+};
+
+unsigned long aui32H264_MasterMTXTOPAZFWTextRelocFullAddr[] = {
+ 0
+};
+
+unsigned long aui32H264_MasterMTXTOPAZFWDataReloc[] = {
+ 0
+};
diff --git a/fw/H264MasterFirmware_bin.h b/fw/H264MasterFirmware_bin.h
new file mode 100644
index 0000000..32d4c2b
--- /dev/null
+++ b/fw/H264MasterFirmware_bin.h
@@ -0,0 +1,44 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+
+// This file was automatically generated from ../release/H264MasterFirmware.dnl using dnl2c.
+
+extern unsigned long aui32H264_MasterMTXTOPAZFWText[];
+extern unsigned long ui32H264_MasterMTXTOPAZFWTextSize;
+
+extern unsigned long aui32H264_MasterMTXTOPAZFWData[];
+extern unsigned long ui32H264_MasterMTXTOPAZFWDataSize;
+
+extern unsigned long aui32H264_MasterMTXTOPAZFWTextReloc[];
+extern unsigned char aui8H264_MasterMTXTOPAZFWTextRelocType[];
+extern unsigned long aui32H264_MasterMTXTOPAZFWTextRelocFullAddr[];
+
+extern unsigned long aui32H264_MasterMTXTOPAZFWDataReloc[];
+extern unsigned long ui32H264_MasterMTXTOPAZFWDataRelocSize;
+
+extern unsigned long ui32H264_MasterMTXTOPAZFWTextOrigin;
+extern unsigned long ui32H264_MasterMTXTOPAZFWDataOrigin;
+
diff --git a/fw/H264SlaveFirmwareCBR_bin.c b/fw/H264SlaveFirmwareCBR_bin.c
new file mode 100644
index 0000000..f9d4305
--- /dev/null
+++ b/fw/H264SlaveFirmwareCBR_bin.c
@@ -0,0 +1,4401 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+
+// This file was automatically generated from ../release/H264SlaveFirmwareCBR.dnl using dnl2c.
+
+unsigned char *szH264SlaveFirmwareCBR_buildtag = "BUILD_TOPAZ_SC_1_00_00_0318";
+
+unsigned long ui32H264CBR_SlaveMTXTOPAZFWTextSize = 3506;
+unsigned long ui32H264CBR_SlaveMTXTOPAZFWDataSize = 836;
+unsigned long ui32H264CBR_SlaveMTXTOPAZFWTextRelocSize = 0;
+unsigned long ui32H264CBR_SlaveMTXTOPAZFWDataRelocSize = 0;
+
+unsigned long ui32H264CBR_SlaveMTXTOPAZFWTextOrigin = 0x80900000;
+unsigned long ui32H264CBR_SlaveMTXTOPAZFWDataOrigin = 0x82883700;
+
+unsigned long aui32H264CBR_SlaveMTXTOPAZFWText[] = {
+ 0x9040c001,
+ 0xc80993fe,
+ 0xc0000e42,
+ 0xc8290e00,
+ 0xc4408422,
+ 0xc8298440,
+ 0xc3708622,
+ 0x9e838600,
+ 0xc8099e43,
+ 0xc6d60d42,
+ 0xc8090d40,
+ 0xc6d80942,
+ 0xc8090900,
+ 0xc00a0e42,
+ 0xc8090e40,
+ 0xc00e87c2,
+ 0x9c1887d0,
+ 0x0c020802,
+ 0x09820d82,
+ 0x09020d02,
+ 0x08820c82,
+ 0x9320fffe,
+ 0xa401c838,
+ 0x0dc2c809,
+ 0x0d80c6d6,
+ 0x0e42c809,
+ 0x0b46b080,
+ 0x7e74b77f,
+ 0xa48d0882,
+ 0xffff9ff3,
+ 0x9d1393e0,
+ 0xf8398081,
+ 0x0707a205,
+ 0x06850307,
+ 0x03839e97,
+ 0x0fa0060f,
+ 0x018d058d,
+ 0x9c62008f,
+ 0x9340ffff,
+ 0x0ea0060b,
+ 0xffff9c62,
+ 0x058d93a0,
+ 0xb700018d,
+ 0xb780548c,
+ 0x9c015414,
+ 0x0687a605,
+ 0x0ea0060b,
+ 0xffff9c62,
+ 0xf9f893a0,
+ 0xf9f8aa9d,
+ 0x9c22aa1d,
+ 0xa6059c22,
+ 0x0e860a82,
+ 0xc0340d82,
+ 0xc0149bef,
+ 0x0d8a9967,
+ 0x9beac034,
+ 0x7e08b786,
+ 0xc0007500,
+ 0xc0149082,
+ 0xc0149abe,
+ 0x740299db,
+ 0xb3549e6c,
+ 0x02894424,
+ 0x995dc014,
+ 0xffff7540,
+ 0xb79f90e2,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0x87029c22,
+ 0xb5438502,
+ 0xb5437018,
+ 0xb5437098,
+ 0xb5437118,
+ 0xb5437418,
+ 0xb5437498,
+ 0xb5467518,
+ 0xb5467e18,
+ 0xb5467e98,
+ 0xb5477f18,
+ 0xb5404618,
+ 0xb5404804,
+ 0xb5404884,
+ 0xb5404904,
+ 0xb5404984,
+ 0xb5404a04,
+ 0xb5404c04,
+ 0xb5404c84,
+ 0xb5404d04,
+ 0xb5404202,
+ 0xb5404282,
+ 0xb5405004,
+ 0xb5407c84,
+ 0xb5404e84,
+ 0x9c224702,
+ 0x8420a605,
+ 0x9ba6fff4,
+ 0xc0340d8a,
+ 0xfff49b97,
+ 0xc0349bc6,
+ 0xc4209ba2,
+ 0x0a020cd2,
+ 0xc000b481,
+ 0x4220b105,
+ 0xe0310d8a,
+ 0xc0148d80,
+ 0xc8299a01,
+ 0xc4400922,
+ 0xb73f0920,
+ 0xd0717f6c,
+ 0xb5802a5e,
+ 0xc01e450c,
+ 0x85022a80,
+ 0xa8c2f008,
+ 0xc2807102,
+ 0xb5a05a95,
+ 0xb341460c,
+ 0x76404434,
+ 0x459cb540,
+ 0x448cb520,
+ 0x90c2c000,
+ 0x0e12d011,
+ 0xa241f008,
+ 0x550cb780,
+ 0x08c2c807,
+ 0x0880c570,
+ 0x0caac032,
+ 0x538cb580,
+ 0xc000b421,
+ 0x0cf40a2a,
+ 0xc000b481,
+ 0x09021a28,
+ 0x08bac002,
+ 0x4078b960,
+ 0x0a00c200,
+ 0x588bd224,
+ 0xc000b441,
+ 0x0a11ce00,
+ 0x9301ffff,
+ 0x1884e000,
+ 0x9244ffff,
+ 0x0a42c807,
+ 0x0a00c576,
+ 0x0caac032,
+ 0xc000b481,
+ 0x08820a02,
+ 0x08840902,
+ 0x4078b960,
+ 0x0a00c200,
+ 0x588bd224,
+ 0xc000b441,
+ 0x0a11ce00,
+ 0x9301ffff,
+ 0x745ac004,
+ 0x923cffff,
+ 0xc0340a02,
+ 0xb4810c9e,
+ 0xfff4c000,
+ 0x08029b2c,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x9c228c60,
+ 0xc0409e54,
+ 0x9e590c82,
+ 0xc000b421,
+ 0x0d02c040,
+ 0xc000b482,
+ 0xc00e9c22,
+ 0xc00e2d7c,
+ 0x5d3029e0,
+ 0xc0409e54,
+ 0x31b80c82,
+ 0xc000b461,
+ 0x0d02c040,
+ 0xc000b442,
+ 0xa60d9c22,
+ 0x07038420,
+ 0xc2800687,
+ 0x1c845c8d,
+ 0x5ca0d0a2,
+ 0xd0110287,
+ 0xc2000a5e,
+ 0x1a045a0d,
+ 0x5a30c200,
+ 0x30985cd0,
+ 0x04059e4c,
+ 0x0c8ac032,
+ 0xc8013098,
+ 0xb4213880,
+ 0x9ea9c000,
+ 0x0a02c801,
+ 0x0a00c002,
+ 0xc0306553,
+ 0xb4810c8a,
+ 0xc002c000,
+ 0x0c840882,
+ 0xc000b421,
+ 0xd0229e93,
+ 0x9e535f09,
+ 0x1d045d0d,
+ 0x9bb4fff4,
+ 0x5e91c280,
+ 0xc2801e84,
+ 0x9e6c5e84,
+ 0xc2801a84,
+ 0xc1815a90,
+ 0x0d8a3a80,
+ 0x0d020982,
+ 0xfff4314a,
+ 0xc0c09bae,
+ 0x09920d82,
+ 0x0d02c002,
+ 0x0902c002,
+ 0x9ac1c034,
+ 0xc0340a0a,
+ 0xb4810c9e,
+ 0x1b04c000,
+ 0x850275bf,
+ 0x9202c000,
+ 0xb55f9dcf,
+ 0xc0347f7c,
+ 0xf2319a94,
+ 0xb75fa045,
+ 0x1b047f7c,
+ 0x851075bf,
+ 0x9284ffff,
+ 0x0a42c002,
+ 0x0c8ec030,
+ 0xc000b481,
+ 0x7e6eb79f,
+ 0x7eeeb7bf,
+ 0x7f6eb7df,
+ 0x8c00c002,
+ 0x9c229c22,
+ 0x8502c200,
+ 0x9c89c037,
+ 0x9c80c171,
+ 0x9c80c817,
+ 0xf8399c22,
+ 0x0d9aa205,
+ 0x9a7ac034,
+ 0xf9f80d8a,
+ 0xc033aa1d,
+ 0xa60592a0,
+ 0x0a42c801,
+ 0x0a00c010,
+ 0x2ebed3f2,
+ 0x0caac032,
+ 0xc000b481,
+ 0x0cf408aa,
+ 0xc000b421,
+ 0x558cb780,
+ 0x0c92c080,
+ 0xa881f208,
+ 0xc000b421,
+ 0x558cb780,
+ 0xf2080c88,
+ 0xb421a889,
+ 0xb780c000,
+ 0x0c84558c,
+ 0xa88df208,
+ 0xc000b421,
+ 0x1c980902,
+ 0xc000b441,
+ 0x558cb780,
+ 0xf2080c90,
+ 0xb421a885,
+ 0xb7a0c000,
+ 0x0dd2558c,
+ 0x9a33c034,
+ 0xaa25f208,
+ 0xffff7008,
+ 0x0daa9344,
+ 0x0d060982,
+ 0x0902c121,
+ 0x9b29fff4,
+ 0x4714b760,
+ 0x0d02c021,
+ 0x09c20d04,
+ 0x9b16fff4,
+ 0x4714b760,
+ 0x0d0609c2,
+ 0x9b10fff4,
+ 0x09820daa,
+ 0xc1010d02,
+ 0xfff40902,
+ 0x0d929b14,
+ 0x9a0fc034,
+ 0xaa25f208,
+ 0xffff7008,
+ 0x77409344,
+ 0x90a2c000,
+ 0xc0340d8e,
+ 0x0d8a9a11,
+ 0x9a0ec034,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xc470a60d,
+ 0x0a020c8e,
+ 0xc000b481,
+ 0x4220b101,
+ 0x558cb780,
+ 0xa085f208,
+ 0x0a021c8c,
+ 0xc000b481,
+ 0x4220b105,
+ 0x2b5ed1f1,
+ 0x558cb780,
+ 0xcff09ead,
+ 0xc2802e80,
+ 0xf2085ea1,
+ 0xc280a281,
+ 0x2a845a9d,
+ 0x0a020c84,
+ 0xc000b481,
+ 0x4220b101,
+ 0x468cb520,
+ 0xb4810c84,
+ 0xb101c000,
+ 0xb5204220,
+ 0xc070470c,
+ 0xb4810c8e,
+ 0x0882c000,
+ 0xb4211c8c,
+ 0x0c90c000,
+ 0xc000b481,
+ 0xb4211c8c,
+ 0x0c84c000,
+ 0xc000b481,
+ 0x6484b740,
+ 0x5908d326,
+ 0xe0309e2d,
+ 0x9ea4aa4d,
+ 0xb7809c62,
+ 0x7740558c,
+ 0x9ea98502,
+ 0xd0010d82,
+ 0xf2080db2,
+ 0x2596a10f,
+ 0x9b3ffff4,
+ 0xc0700a06,
+ 0xb4810c82,
+ 0x000dc000,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x7ebec01c,
+ 0x9244c000,
+ 0x5e08d1a2,
+ 0x0a00c090,
+ 0x5909d224,
+ 0xc4000882,
+ 0xb4223d00,
+ 0xb104c000,
+ 0x75004220,
+ 0x9364ffff,
+ 0x5c88c180,
+ 0x0c80c090,
+ 0xb4615c89,
+ 0x9c22c000,
+ 0x5c88c180,
+ 0x0c80c090,
+ 0xc4005c89,
+ 0x0a023c80,
+ 0xc000b481,
+ 0x4220b101,
+ 0xa0e1f008,
+ 0xc0905d88,
+ 0x5d890d80,
+ 0xc000b483,
+ 0x9e5b9c22,
+ 0x68b1d312,
+ 0xc1c00a02,
+ 0x5c8b0cc0,
+ 0x3c80c400,
+ 0xc000b481,
+ 0x4220b102,
+ 0x5a14b760,
+ 0x6931d312,
+ 0x9e518502,
+ 0x4070b960,
+ 0x08e0c1c0,
+ 0xaa65f031,
+ 0x5889d0a4,
+ 0xc000b481,
+ 0x85100890,
+ 0x9301ffff,
+ 0x8560c1c0,
+ 0x80ade210,
+ 0x5c14b760,
+ 0x3904c001,
+ 0x8521ce3e,
+ 0x4048b960,
+ 0xaa65f031,
+ 0x5889d0a4,
+ 0xc000b481,
+ 0x85100890,
+ 0x9301ffff,
+ 0x812de220,
+ 0x598cb780,
+ 0x3908c001,
+ 0x0d60c1c0,
+ 0xdac85d09,
+ 0xb422a885,
+ 0xd312c000,
+ 0xc1c068b1,
+ 0x5c8b0cc0,
+ 0xc000b441,
+ 0x84209c22,
+ 0xc4700882,
+ 0x0a020c92,
+ 0xc000b481,
+ 0x4220b102,
+ 0x02050185,
+ 0x2a04c001,
+ 0xc0007500,
+ 0xb7409362,
+ 0x09025a14,
+ 0x4070b960,
+ 0x08e0c1c0,
+ 0x5889d0a4,
+ 0x08a1ce3e,
+ 0x3c80c400,
+ 0xc000b441,
+ 0x4220b104,
+ 0xa245f031,
+ 0xffff0890,
+ 0x01079221,
+ 0x297acfff,
+ 0xc0010205,
+ 0x75002a08,
+ 0x91e2c001,
+ 0x5c14b740,
+ 0xb9600982,
+ 0xc1c04048,
+ 0xd0a408e0,
+ 0xce3e5889,
+ 0xc40008a1,
+ 0xb4613c80,
+ 0xb104c000,
+ 0xf0314220,
+ 0x0890a245,
+ 0x9221ffff,
+ 0x8d00e032,
+ 0x08e0c1c0,
+ 0x5889d0a4,
+ 0xc4000a02,
+ 0xb4813c80,
+ 0xb101c000,
+ 0xf0104220,
+ 0xb73fa0c1,
+ 0xb7807e72,
+ 0xdac8598c,
+ 0xcfffa086,
+ 0xc0702976,
+ 0xb4410c92,
+ 0x8c20c000,
+ 0xb7409c22,
+ 0xd312508c,
+ 0x0a026cb1,
+ 0x0cc0c1c0,
+ 0xc4005c8b,
+ 0xb4813c80,
+ 0xb101c000,
+ 0xd3124220,
+ 0xc1ca6cb1,
+ 0x5c8b0cf0,
+ 0xc000b441,
+ 0x6d82c00c,
+ 0x38c0c001,
+ 0x0dc0c1c0,
+ 0xb4235d8b,
+ 0x9c22c000,
+ 0x6cb1d312,
+ 0xc1c00a02,
+ 0x5c8b0cc0,
+ 0x3c80c400,
+ 0xc000b481,
+ 0x4220b103,
+ 0x5b14b740,
+ 0x6d31d311,
+ 0x4058b960,
+ 0xc1c00085,
+ 0xf03108e0,
+ 0xd0a4aa45,
+ 0xb4815889,
+ 0x0890c000,
+ 0x9321ffff,
+ 0x3990c001,
+ 0x0940c1c0,
+ 0x588bd124,
+ 0xc000b461,
+ 0xf8399c22,
+ 0xf010a285,
+ 0x7500aa61,
+ 0x9164c000,
+ 0xa8c1d008,
+ 0x0a069e48,
+ 0x5200c200,
+ 0xd0083098,
+ 0xd011a0c1,
+ 0xd0100d38,
+ 0xf011a9f2,
+ 0xf0101a30,
+ 0x1984a943,
+ 0x93e2c000,
+ 0x8702cff1,
+ 0x8700cff0,
+ 0x087ec00f,
+ 0x087cc00e,
+ 0x0c1ac050,
+ 0xa8c5f029,
+ 0x2095d020,
+ 0x9e4d5ca1,
+ 0xc2002210,
+ 0x30d85a20,
+ 0x4006ba09,
+ 0xc000b420,
+ 0x1a30f011,
+ 0xffff1984,
+ 0xf21091e4,
+ 0xf010802f,
+ 0xf9f8a241,
+ 0x9c22aa9d,
+ 0x9e5da60d,
+ 0xf1245940,
+ 0xd3f15841,
+ 0xb3502d2e,
+ 0xc0024422,
+ 0xf00893e2,
+ 0xe000aa61,
+ 0xb4252a1c,
+ 0xd8084422,
+ 0x8522aa61,
+ 0x88a9e210,
+ 0x12182a1c,
+ 0xc00e9ea3,
+ 0xba1b0a7e,
+ 0xc200400b,
+ 0x21285207,
+ 0x9276c001,
+ 0xc1009e59,
+ 0x11035a20,
+ 0x5209c200,
+ 0xc2009ea2,
+ 0x9e8d58a1,
+ 0x0cb0d031,
+ 0xa8a2d208,
+ 0x2a7cc00e,
+ 0x5207c200,
+ 0x2a7cc00e,
+ 0xd208349a,
+ 0xf008a0a2,
+ 0x9ea1a963,
+ 0x2a2ed3f1,
+ 0x8128c201,
+ 0x8821f310,
+ 0xf0088502,
+ 0xd228a261,
+ 0x9eaba127,
+ 0x2d01cff0,
+ 0x59415940,
+ 0xc00e3522,
+ 0xfff42d7c,
+ 0xc0009bb1,
+ 0xd20892e0,
+ 0x9e5eaa21,
+ 0x50d8000b,
+ 0xd0293242,
+ 0xf008a205,
+ 0xd013a8e1,
+ 0xf210291e,
+ 0x75108029,
+ 0x00989e44,
+ 0xa0e1f008,
+ 0x4426b350,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x9e58a605,
+ 0x59415940,
+ 0x028774b0,
+ 0xc0000685,
+ 0xc2809374,
+ 0x19605d61,
+ 0x59415940,
+ 0x9b82fff4,
+ 0x018b9e83,
+ 0x5d41c280,
+ 0x2d7cc00e,
+ 0xfff40922,
+ 0x9e839b79,
+ 0xc280018b,
+ 0xc00e5d21,
+ 0x09222d7c,
+ 0x90a0c001,
+ 0xc00074a0,
+ 0x9e8392d4,
+ 0xc280018b,
+ 0xc00e5d41,
+ 0x19402d7c,
+ 0x59415940,
+ 0x9b62fff4,
+ 0x018b9e83,
+ 0x5d21c280,
+ 0x2d7cc00e,
+ 0xc0000922,
+ 0x749091c0,
+ 0x92d4c000,
+ 0x018b9e83,
+ 0x5d21c280,
+ 0x2d7cc00e,
+ 0x59401920,
+ 0xfff45941,
+ 0x9e839b4b,
+ 0xd3f2018b,
+ 0x09222d5e,
+ 0x9b44fff4,
+ 0x9100c000,
+ 0x018b9e83,
+ 0x2d5ed3f2,
+ 0x9b3cfff4,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0x0685a60d,
+ 0x9e9e9e69,
+ 0x71820b02,
+ 0xc0000a86,
+ 0x9ea99208,
+ 0x9e6916d2,
+ 0x5a84c280,
+ 0x1a52d011,
+ 0xd0117102,
+ 0xd3f108e2,
+ 0xffff2b1e,
+ 0xd0119286,
+ 0x75100a62,
+ 0xc000028d,
+ 0x9e7391d4,
+ 0x09220d02,
+ 0x9b14fff4,
+ 0xd0111aa0,
+ 0x75100a52,
+ 0xffff9e83,
+ 0x9e7392d2,
+ 0xd0110d06,
+ 0xc00e0952,
+ 0xfff4297c,
+ 0x75909b05,
+ 0xc0009e83,
+ 0xd03192f4,
+ 0xd3f11a60,
+ 0x9e6c2b4e,
+ 0xc2009e73,
+ 0xd3f25299,
+ 0x0922295e,
+ 0x9af4fff4,
+ 0xc2009e83,
+ 0x9ea952b8,
+ 0x16d27590,
+ 0x91b2ffff,
+ 0xd3f29e73,
+ 0x010d2d5e,
+ 0x9ae6fff4,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x0ca0f011,
+ 0xd09a9e99,
+ 0xd00d5a04,
+ 0xc0001a42,
+ 0x1203909a,
+ 0x9e4b1242,
+ 0xfffc9ea2,
+ 0xa60d9360,
+ 0x85028420,
+ 0xb55f9e9e,
+ 0xb55f7f7c,
+ 0xf0107ffc,
+ 0x9e55aa61,
+ 0x8c8ef012,
+ 0x75121a08,
+ 0x590cd226,
+ 0xe05a8540,
+ 0xc0068044,
+ 0xc00090c0,
+ 0xc0009280,
+ 0xc00193a0,
+ 0xc00190c0,
+ 0xc0019200,
+ 0xc0029300,
+ 0xc0029160,
+ 0xc00493e0,
+ 0xc00491e0,
+ 0xc0059320,
+ 0xe0119100,
+ 0xd0728d88,
+ 0xb5a01954,
+ 0x058b500c,
+ 0x9bc0fff4,
+ 0x9120c005,
+ 0x5014b740,
+ 0x8d88e011,
+ 0x058b9ea9,
+ 0xfff41514,
+ 0xc0049bb5,
+ 0xe01193c0,
+ 0xd3f28d88,
+ 0x058b295e,
+ 0xfff40916,
+ 0xb5a09a87,
+ 0xc004500c,
+ 0xe0119240,
+ 0xd3f28d88,
+ 0x058b295e,
+ 0xfff40916,
+ 0xc0049a7b,
+ 0xd2109100,
+ 0xf011aa41,
+ 0x058b8c88,
+ 0xd0124a7d,
+ 0x0d062ace,
+ 0x018b0906,
+ 0x9a6cfff4,
+ 0x9e6a9e83,
+ 0x0d02018b,
+ 0x9a66fff4,
+ 0x9260c003,
+ 0xaa41d210,
+ 0x8c88f011,
+ 0x4a7d058b,
+ 0x2aced012,
+ 0x09060d02,
+ 0xfff4018b,
+ 0x9e839a57,
+ 0x018b9e6a,
+ 0x0d7ec00e,
+ 0x9a50fff4,
+ 0x93a0c002,
+ 0x570cb720,
+ 0x0890d272,
+ 0x404db780,
+ 0x03037500,
+ 0x9104c000,
+ 0xaa51f2c8,
+ 0x404db580,
+ 0x9100c000,
+ 0x5a0cb780,
+ 0xa895f248,
+ 0x404db520,
+ 0x0ae0d271,
+ 0xa8a1f208,
+ 0xa951fa88,
+ 0x01830c82,
+ 0xc0b40583,
+ 0xd2b19930,
+ 0xf2080a60,
+ 0x9e41a903,
+ 0x8d88e011,
+ 0x8923e220,
+ 0x095e058b,
+ 0xa0a1f208,
+ 0x9a8efff4,
+ 0x9160c001,
+ 0x578cb780,
+ 0x8d88e011,
+ 0xa902f208,
+ 0x095e058b,
+ 0x9a82fff4,
+ 0x93e0c000,
+ 0x741cb741,
+ 0x5208b787,
+ 0x8d88e011,
+ 0x8021f310,
+ 0x058b9dcb,
+ 0xb581095e,
+ 0xfff4740c,
+ 0xc0009a71,
+ 0xb74791c0,
+ 0xe0115210,
+ 0x058b8d88,
+ 0xfff4091e,
+ 0xc00099f7,
+ 0xc0019080,
+ 0xb79f90e0,
+ 0xc00f7e68,
+ 0xc00e0cfe,
+ 0x9e4a0cfc,
+ 0x7c68b59f,
+ 0x7f6cb73f,
+ 0x0a02cff1,
+ 0x0a00cff0,
+ 0x0c9ac050,
+ 0xc2002218,
+ 0x20945a21,
+ 0x324258a0,
+ 0x4006ba24,
+ 0x7f6cb59f,
+ 0xc000b481,
+ 0xa943f210,
+ 0x7fecb79f,
+ 0x8021f310,
+ 0xa241f210,
+ 0x7e6eb79f,
+ 0x7eeeb7bf,
+ 0x7f6eb7df,
+ 0x8c00c002,
+ 0xa61d9c22,
+ 0x85028440,
+ 0xf0319e9d,
+ 0x0b02abe5,
+ 0x7878b55f,
+ 0x7efcb55f,
+ 0x9d3a718e,
+ 0x91e8c001,
+ 0x7502aa41,
+ 0x9392c000,
+ 0xaad1d018,
+ 0x8d08e032,
+ 0x8d00e051,
+ 0x9eb19dcf,
+ 0xb55f8510,
+ 0xc0027f7c,
+ 0xc2800a9c,
+ 0x018b5a95,
+ 0x9961fff4,
+ 0x7f7cb75f,
+ 0x5a88c280,
+ 0x8122c301,
+ 0x91a0c000,
+ 0x8d88e031,
+ 0x050b9dcf,
+ 0xb55f8510,
+ 0xfff47f7c,
+ 0xb75f9ac2,
+ 0x0b047f7c,
+ 0xfffe718e,
+ 0xb79f92a6,
+ 0xc0507868,
+ 0xb4810c9e,
+ 0xc050c000,
+ 0xb4e20d16,
+ 0xb71fc000,
+ 0xb79f7eec,
+ 0xb7bf7d6e,
+ 0xb7df7dee,
+ 0xb7ff7e6e,
+ 0xc0027eee,
+ 0x9c228c40,
+ 0xc450a605,
+ 0x0a020c8a,
+ 0xc000b481,
+ 0x4240b102,
+ 0x2d7ce00e,
+ 0x5d10d104,
+ 0x0a02c801,
+ 0xc0300a40,
+ 0xb4810c8a,
+ 0x08c2c000,
+ 0xb4210c84,
+ 0xb740c000,
+ 0xf048610c,
+ 0xf210a947,
+ 0xf048802d,
+ 0xc450a245,
+ 0x0a020c86,
+ 0xc000b481,
+ 0x4220b101,
+ 0x0a42c801,
+ 0x0a00c010,
+ 0x0caac032,
+ 0xc000b481,
+ 0xc03408aa,
+ 0xb4220d1e,
+ 0xc450c000,
+ 0x0a020cf2,
+ 0xc000b481,
+ 0x4220b101,
+ 0x1910d053,
+ 0x570cb780,
+ 0xa891f248,
+ 0x88a3f210,
+ 0x0d060d82,
+ 0xffd4018b,
+ 0xc0809bc7,
+ 0xb4a10ca2,
+ 0xc002c000,
+ 0xc0140d82,
+ 0x700a9954,
+ 0x9364ffff,
+ 0x09820daa,
+ 0xc1210d0a,
+ 0xffd40902,
+ 0xb7809a4c,
+ 0xf248570c,
+ 0xc0a1a992,
+ 0x0d040d02,
+ 0xffd409c2,
+ 0xc0c09a37,
+ 0x09920d82,
+ 0x09420d42,
+ 0x9957c014,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xc010a60d,
+ 0xb7208400,
+ 0xb780570c,
+ 0x2a2049ad,
+ 0xb7c07500,
+ 0x09025a14,
+ 0x9182c000,
+ 0x7e08b786,
+ 0xc0007500,
+ 0xd29090e2,
+ 0x7500aa41,
+ 0x9164c005,
+ 0x49adb720,
+ 0x2a18d011,
+ 0xd0027500,
+ 0xc0003924,
+ 0xd0119124,
+ 0x75002a14,
+ 0x3922d002,
+ 0x3926d001,
+ 0x0c82c050,
+ 0xc000b441,
+ 0xb7409d87,
+ 0x0dc2468c,
+ 0xc01009c2,
+ 0xcff00d02,
+ 0xffd40c81,
+ 0xb7869a0e,
+ 0x9d1b7e08,
+ 0xcff07500,
+ 0xc0000b01,
+ 0xd2909282,
+ 0x7500aa41,
+ 0x91e2c000,
+ 0x606cb79f,
+ 0x8d00f211,
+ 0x2a00c010,
+ 0xcff07500,
+ 0xf3100a03,
+ 0xb3468001,
+ 0xb79e4422,
+ 0xc8014068,
+ 0xc01008c2,
+ 0xc0320880,
+ 0xb59f0cea,
+ 0xb421606c,
+ 0xb786c000,
+ 0x75007e08,
+ 0x9282c001,
+ 0x7f08b786,
+ 0xc0017500,
+ 0xb72091e2,
+ 0xd011510c,
+ 0x75002a12,
+ 0x9102c001,
+ 0x6214b7a0,
+ 0x5b0cb7a0,
+ 0xaa21f210,
+ 0x28f99eab,
+ 0x510cb520,
+ 0x9c629ea4,
+ 0x5f8cb720,
+ 0x4129b780,
+ 0xc0007500,
+ 0xf20892a4,
+ 0xf210a9a1,
+ 0x0d82a83d,
+ 0x9c629e84,
+ 0xa8a5f250,
+ 0xf2089eab,
+ 0x0982a021,
+ 0x9c629e8c,
+ 0xaa21da08,
+ 0x628ab583,
+ 0xa9cdda10,
+ 0xfff49eb3,
+ 0xc8019aa6,
+ 0xc00a0a02,
+ 0xc0300a00,
+ 0xb4810c8a,
+ 0xc008c000,
+ 0x0c8408c2,
+ 0xc000b421,
+ 0x0a02c008,
+ 0xb4810c88,
+ 0xc0c0c000,
+ 0x09920d82,
+ 0x0d02c008,
+ 0x0902c008,
+ 0x989dc014,
+ 0x0a02c008,
+ 0x0c8ec030,
+ 0xc000b481,
+ 0x5a8cb720,
+ 0xb5408506,
+ 0xfff44039,
+ 0xb79f9ad1,
+ 0xb7bf6eee,
+ 0xb7df6f6e,
+ 0xc0106fee,
+ 0x9c228c60,
+ 0xa205f839,
+ 0x0c82c450,
+ 0xb4810a02,
+ 0xb101c000,
+ 0xc0084220,
+ 0xc0300a40,
+ 0xb4810c8e,
+ 0xc002c000,
+ 0xc05038c0,
+ 0xb4210c82,
+ 0xc0c0c000,
+ 0x09920d82,
+ 0x0d02c008,
+ 0x0902c008,
+ 0x9869c014,
+ 0x0a02c008,
+ 0x0c8ec030,
+ 0xc000b481,
+ 0xaa1df9f8,
+ 0x9000fff5,
+ 0xf011a60d,
+ 0xc0010eb0,
+ 0xc01e9182,
+ 0xc0080f7e,
+ 0xc0300b02,
+ 0xc0400e8e,
+ 0x9e747540,
+ 0x0c96c050,
+ 0x4426b354,
+ 0xc20012d8,
+ 0xb4815a14,
+ 0xc030c000,
+ 0xb4c20d0a,
+ 0xb4c5c000,
+ 0xc030c000,
+ 0xb4c10c96,
+ 0xc0c0c000,
+ 0x09920d82,
+ 0x0d02c008,
+ 0x0902c008,
+ 0x9835c014,
+ 0xc000b4c5,
+ 0xfffe7540,
+ 0xfff493c4,
+ 0xb79f9a6f,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0xb4639c22,
+ 0x9c22c000,
+ 0xa062f812,
+ 0xc2009c22,
+ 0x5d890d80,
+ 0x09829e59,
+ 0x3d80c400,
+ 0xc000b463,
+ 0x4620b203,
+ 0x9c220007,
+ 0x9c8fc127,
+ 0x080a9c22,
+ 0x56f1b971,
+ 0x9c81c017,
+ 0x9c80c071,
+ 0x9c80c017,
+ 0x4000b960,
+ 0xffff9c22,
+ 0x9e5c9280,
+ 0xd1a401c6,
+ 0x08825889,
+ 0x3c80c400,
+ 0xc000b421,
+ 0x4220b104,
+ 0x9e532244,
+ 0xffff7106,
+ 0x9c229324,
+ 0xc004a60d,
+ 0xc8298420,
+ 0xc41e0ca2,
+ 0xc0300cf0,
+ 0xe133ac3d,
+ 0xc0388d00,
+ 0xc030a45d,
+ 0xc038ac3d,
+ 0xc010a45d,
+ 0xc018ac3d,
+ 0xc010a45d,
+ 0xc018ac25,
+ 0xb7a0a445,
+ 0x9ea9570c,
+ 0xb5408502,
+ 0xb541651a,
+ 0xb7404b98,
+ 0x0dc2468c,
+ 0x0d42c00a,
+ 0xffd409c2,
+ 0xd25198bc,
+ 0xda080a58,
+ 0x7502aa01,
+ 0xc0009ead,
+ 0xb5809084,
+ 0xb780448c,
+ 0x8702610c,
+ 0xa8a2f210,
+ 0xb547850a,
+ 0xf2105218,
+ 0xb540a8a5,
+ 0xb5405084,
+ 0xf20a4802,
+ 0xf208a100,
+ 0xf210a086,
+ 0xf208a929,
+ 0xf210a089,
+ 0xf210a92e,
+ 0xf208a8b2,
+ 0xf250a10d,
+ 0xf208a8b1,
+ 0xf208a112,
+ 0xf208a096,
+ 0xc050a09a,
+ 0x08c00cf2,
+ 0xa085f248,
+ 0xc000b421,
+ 0xc0360a0a,
+ 0xb4810c92,
+ 0x0896c000,
+ 0xb4211c8c,
+ 0x8502c000,
+ 0x8c00f031,
+ 0x8d80e131,
+ 0xb7c09ea3,
+ 0x0d025f8c,
+ 0x4078b960,
+ 0x7ffcb55f,
+ 0xa103f208,
+ 0xd1229dba,
+ 0x9e2d5d0d,
+ 0xa8e5f029,
+ 0x2caed012,
+ 0xd1265c88,
+ 0x9e4a5908,
+ 0xaa4de038,
+ 0x28bc0d04,
+ 0x324250a8,
+ 0xffffa241,
+ 0xf01091c1,
+ 0xc036aa61,
+ 0xb4810c8e,
+ 0xb73fc000,
+ 0x1c847fec,
+ 0xc000b421,
+ 0x996bc014,
+ 0xaa4dd208,
+ 0xc0007500,
+ 0xf2909262,
+ 0xf011aa2d,
+ 0xc0002ac8,
+ 0xc80091a4,
+ 0x75002a00,
+ 0x90c4c000,
+ 0xa9c6f208,
+ 0x9ae8fff4,
+ 0xa2cdd208,
+ 0xaaadf290,
+ 0x2a54d011,
+ 0xc0007500,
+ 0xc8099102,
+ 0xc5120a42,
+ 0xb5800a20,
+ 0xb780530c,
+ 0x7500460c,
+ 0x9162c000,
+ 0x5a31c280,
+ 0xc03e2a04,
+ 0xb4810cea,
+ 0xc000c000,
+ 0xb7809280,
+ 0x7502448c,
+ 0x915cc000,
+ 0x2a80c100,
+ 0x0a0e7540,
+ 0x1a46d001,
+ 0x9060c000,
+ 0xc03e0a02,
+ 0xb4810cea,
+ 0xb79fc000,
+ 0xb7bf7a6e,
+ 0xb7df7aee,
+ 0xc0067b6e,
+ 0x9c228c00,
+ 0x538cb780,
+ 0x0892c0c8,
+ 0x40f8b960,
+ 0x0948d011,
+ 0xaa45f029,
+ 0x5889d0a4,
+ 0xc000b481,
+ 0xffff0890,
+ 0x9c229321,
+ 0xb720a605,
+ 0xb781460c,
+ 0x7440708c,
+ 0xb5810a04,
+ 0xc000708c,
+ 0xb7869364,
+ 0x75007e08,
+ 0x92c2c000,
+ 0x448cb720,
+ 0x510cb780,
+ 0x3a407442,
+ 0x510cb580,
+ 0x919cc000,
+ 0x5f8cb780,
+ 0xa889d208,
+ 0xc0007440,
+ 0x850690a4,
+ 0x4618b547,
+ 0x0a42c801,
+ 0x0a00c010,
+ 0x0ceac032,
+ 0xc000b481,
+ 0x08c2c008,
+ 0x1ce0c002,
+ 0xc000b421,
+ 0x0a42c008,
+ 0x0d0ec030,
+ 0xc000b482,
+ 0x0c82c450,
+ 0x1a40c008,
+ 0xc000b481,
+ 0x4220b101,
+ 0x38c0c002,
+ 0x0c82c050,
+ 0xc000b421,
+ 0x0d82c0c0,
+ 0xc0080992,
+ 0xc0080d02,
+ 0xfff40902,
+ 0xc4509aac,
+ 0x0a020c86,
+ 0xc000b481,
+ 0x4260b102,
+ 0x0a00c008,
+ 0x0d0ec030,
+ 0xc000b482,
+ 0xc0080c84,
+ 0xb4811a00,
+ 0xb101c000,
+ 0xc0804220,
+ 0xc8015a35,
+ 0x09400902,
+ 0x28fcc00e,
+ 0x5910d0a8,
+ 0x29ced071,
+ 0x0c8ac030,
+ 0xb4419dc8,
+ 0x0a42c000,
+ 0xb4810c84,
+ 0x7680c000,
+ 0x9182c000,
+ 0x610cb720,
+ 0x44bdb740,
+ 0x8a27f210,
+ 0x8021f310,
+ 0x44adb580,
+ 0x0c86c450,
+ 0xb4810a02,
+ 0xb102c000,
+ 0x0cec4260,
+ 0xc000b481,
+ 0x4260b102,
+ 0x8926c201,
+ 0xc03408ea,
+ 0xb4210c9e,
+ 0xb780c000,
+ 0xf248570c,
+ 0x8d40a891,
+ 0x88a3f210,
+ 0x0d060d82,
+ 0x5a0cc280,
+ 0x508cb580,
+ 0xffd4018b,
+ 0xc08098a1,
+ 0xb4a10ca2,
+ 0xb780c000,
+ 0x0c88478c,
+ 0xc000b481,
+ 0x5994b7a0,
+ 0x0d82c002,
+ 0x9a27fff4,
+ 0xffff700a,
+ 0xb7819364,
+ 0xf210708c,
+ 0xf250a8ad,
+ 0x6243a8a2,
+ 0x71029e49,
+ 0x90b8c000,
+ 0xb5478506,
+ 0xb7804418,
+ 0x7500460c,
+ 0x9242c000,
+ 0xffd40d82,
+ 0xb7869958,
+ 0x75007f08,
+ 0x90e2c000,
+ 0xffd40d82,
+ 0xc00098a2,
+ 0x0d8290a0,
+ 0x996affd4,
+ 0xc0800a02,
+ 0xb4810ca6,
+ 0xc002c000,
+ 0xfff40d92,
+ 0x740099f8,
+ 0x9364ffff,
+ 0x09820dea,
+ 0xc1210d0a,
+ 0xffb40902,
+ 0xb7809af0,
+ 0xf248570c,
+ 0xc0a1a992,
+ 0x0d040d02,
+ 0xffb409c2,
+ 0xc0c09adb,
+ 0x09920d82,
+ 0x09420d42,
+ 0x99fbfff4,
+ 0xc03e0a02,
+ 0xb4810cea,
+ 0xb79fc000,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa60d9c22,
+ 0x570cb720,
+ 0x49b5b720,
+ 0x2e10d091,
+ 0x9e8e7500,
+ 0x9282c003,
+ 0x2e14d011,
+ 0x87068502,
+ 0x7e00b546,
+ 0xb5417500,
+ 0xb547709c,
+ 0xc0004418,
+ 0xb5469082,
+ 0xd1117e80,
+ 0x75002e10,
+ 0x9082c000,
+ 0x7f00b546,
+ 0x2e10d211,
+ 0xc0007500,
+ 0xb5469082,
+ 0xb7867f80,
+ 0x75007f08,
+ 0x620cb7c0,
+ 0x9382c001,
+ 0x7e88b786,
+ 0xc0017500,
+ 0xb78692e2,
+ 0x75007f88,
+ 0x9244c001,
+ 0x0a42c809,
+ 0x0a40c684,
+ 0x08c2c809,
+ 0x08f0c556,
+ 0x0cc2c809,
+ 0x0cf0c61c,
+ 0x0942c809,
+ 0x0900c542,
+ 0x0d42c809,
+ 0x0d00c514,
+ 0x09c2c809,
+ 0x0980c52e,
+ 0x0dc2c809,
+ 0x0db0c524,
+ 0x0c42c809,
+ 0x0c30c694,
+ 0xa24df208,
+ 0xa0ddf208,
+ 0xa0c2f248,
+ 0xa145f248,
+ 0xa14af248,
+ 0xa1c5f208,
+ 0xa1c2f208,
+ 0xa04ef248,
+ 0x588cb7a0,
+ 0xaa4df208,
+ 0x9ea49eab,
+ 0xb7209c62,
+ 0xd2085a0c,
+ 0xb580aa21,
+ 0xb72041ab,
+ 0x850241b3,
+ 0x439ab540,
+ 0x5014b520,
+ 0x598cb7c0,
+ 0xaa49f2d0,
+ 0xa8d9f208,
+ 0xc0007048,
+ 0xb7809142,
+ 0xf248620c,
+ 0xd152a88d,
+ 0x9e8c0de0,
+ 0xb7869c62,
+ 0x75007e08,
+ 0x9062c004,
+ 0x4614b720,
+ 0xc0037640,
+ 0xb72093c4,
+ 0x7440438a,
+ 0x90e2c000,
+ 0xaa55da08,
+ 0xc0017048,
+ 0xb7a09004,
+ 0xb7865f94,
+ 0xb7a07e88,
+ 0xda08620c,
+ 0xb520a9d6,
+ 0x850a4392,
+ 0xd2107500,
+ 0xf208a0aa,
+ 0xe001a8a9,
+ 0x9d4f8d24,
+ 0x9e8c1d84,
+ 0xf2089c62,
+ 0x030baa31,
+ 0x9ea40d8a,
+ 0xc0009c62,
+ 0xb7809180,
+ 0xf208620c,
+ 0xb7a0a891,
+ 0x0d865f94,
+ 0x9e8c0309,
+ 0xb7809c62,
+ 0xb726438a,
+ 0xb7207f08,
+ 0x0a045a14,
+ 0x438ab580,
+ 0xaa29d210,
+ 0xb5807440,
+ 0xc0014849,
+ 0xb7a09024,
+ 0xf2085b0c,
+ 0x9eaba8c1,
+ 0x9c629e8c,
+ 0xaa29d210,
+ 0xc0007500,
+ 0xf20892a4,
+ 0xf208a9a1,
+ 0x0d82a85d,
+ 0x9c629e84,
+ 0xa021f208,
+ 0xa845f248,
+ 0x09829eab,
+ 0x9c629e84,
+ 0xaa21da08,
+ 0x628ab583,
+ 0x448cb780,
+ 0xc0007502,
+ 0x0d8690bc,
+ 0x9b6dffb4,
+ 0xaa29d210,
+ 0xc0007500,
+ 0xb7209122,
+ 0xb780558c,
+ 0x3a08412d,
+ 0x90e0c000,
+ 0x558cb720,
+ 0x412db780,
+ 0xb5802a75,
+ 0xb726412d,
+ 0xb7807e08,
+ 0x7440510c,
+ 0xb5803a04,
+ 0xc000510c,
+ 0xd15191c4,
+ 0xb7400e60,
+ 0xd2085a0c,
+ 0xd208a882,
+ 0xb520a881,
+ 0xd8085014,
+ 0xb79fa0cd,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0xb7209c22,
+ 0x9e5c4b0c,
+ 0x2a40c0ff,
+ 0x28c0c0ff,
+ 0x85027102,
+ 0x9062c000,
+ 0xb5408506,
+ 0xb5604b9c,
+ 0x9c224b14,
+ 0x9e5da605,
+ 0x2a50d051,
+ 0xc0007500,
+ 0xb78090e4,
+ 0x75004b8c,
+ 0x9142c000,
+ 0x0d82c0c0,
+ 0x09c2c012,
+ 0x09420d02,
+ 0x9899fff4,
+ 0x4b0cb780,
+ 0x0cb6c034,
+ 0xc000b481,
+ 0x0d32c034,
+ 0xc000b4a2,
+ 0x4a8cb5a0,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0x8420a61d,
+ 0x7e08b786,
+ 0xc0007500,
+ 0xb7809122,
+ 0xd2885a0c,
+ 0x7440a881,
+ 0x9124c018,
+ 0x468cb740,
+ 0x5694b7a0,
+ 0x098e0dc2,
+ 0x0d42c002,
+ 0xffb4048b,
+ 0xf2109962,
+ 0xb7c0aa35,
+ 0xf210560c,
+ 0xf210a8a5,
+ 0xb7a0a8aa,
+ 0xb580570c,
+ 0xf208478c,
+ 0xda10a0d5,
+ 0xda10aa39,
+ 0xf208a8bd,
+ 0xd252a0de,
+ 0xf20808d0,
+ 0xf248a259,
+ 0xda10a0c1,
+ 0xd131a922,
+ 0xda080a50,
+ 0xb740a881,
+ 0xf250404b,
+ 0x9e53a927,
+ 0xa8b2da90,
+ 0xc08060b2,
+ 0xc2005a7f,
+ 0x00985a71,
+ 0x58945893,
+ 0x80a3e210,
+ 0x7e7edffc,
+ 0xc1005915,
+ 0x018b5b90,
+ 0xa0ddf248,
+ 0x91e2c000,
+ 0x5d40e100,
+ 0x9164c000,
+ 0xaa35da90,
+ 0xb5208502,
+ 0xb5404792,
+ 0xb580489a,
+ 0xf288468a,
+ 0xd132aa21,
+ 0xf2480950,
+ 0xf248a255,
+ 0xda10a259,
+ 0xd810a8a1,
+ 0xf248aa41,
+ 0xda48a93b,
+ 0x6218a8ba,
+ 0x8021f310,
+ 0xa93dda48,
+ 0xa0caf248,
+ 0xa249f288,
+ 0xaa29da48,
+ 0xa151f248,
+ 0xa923f208,
+ 0xa8aeda48,
+ 0xc2006218,
+ 0xf3105a10,
+ 0xf2088021,
+ 0xf208a241,
+ 0x9e4ca927,
+ 0xa928f20a,
+ 0x588c6098,
+ 0x8023f210,
+ 0x82a3e210,
+ 0xa249f208,
+ 0xa8aada48,
+ 0xa0cdf208,
+ 0xaa21da10,
+ 0xa8c1d810,
+ 0xa0c6f208,
+ 0xa937f248,
+ 0x62430a04,
+ 0x610cb740,
+ 0x8021f310,
+ 0xa245f288,
+ 0xa8a1da10,
+ 0xa953f008,
+ 0xa8a2da10,
+ 0xa954f00a,
+ 0xe21058a0,
+ 0x5c9c80a3,
+ 0x82a3e020,
+ 0xaa2dda48,
+ 0xa0adf208,
+ 0xa0b2f208,
+ 0xa0c5f248,
+ 0xa0cef248,
+ 0xa251f208,
+ 0xa941d810,
+ 0x1880c004,
+ 0x4f0cb520,
+ 0x0a54d131,
+ 0xa881da08,
+ 0x1c80c002,
+ 0x4f94b520,
+ 0x59515940,
+ 0xa155f288,
+ 0x58d158c0,
+ 0xa0d9f288,
+ 0x0cf2c42e,
+ 0xb4810a02,
+ 0xb101c000,
+ 0x28844220,
+ 0xd1327440,
+ 0xc0000b50,
+ 0xda109102,
+ 0xc09caa41,
+ 0xc011753e,
+ 0xc0c09152,
+ 0xc05008c6,
+ 0xb4210ce2,
+ 0xf210c000,
+ 0xd131a939,
+ 0xda080a30,
+ 0xd052a881,
+ 0x764028a0,
+ 0xb5205891,
+ 0xc0004e8c,
+ 0x0a029222,
+ 0x0caec060,
+ 0xc000b481,
+ 0xa8a1da10,
+ 0xc0007440,
+ 0x85029302,
+ 0x4e9cb540,
+ 0x9260c000,
+ 0x2900c200,
+ 0xc0007480,
+ 0x0a0a9122,
+ 0x0caec060,
+ 0xc000b481,
+ 0x90e0c000,
+ 0xc0600a06,
+ 0xb4810cae,
+ 0xf210c000,
+ 0x2a04aa39,
+ 0x850a7500,
+ 0x491cb540,
+ 0x90a2c000,
+ 0xb5408504,
+ 0xb786491c,
+ 0x75007e08,
+ 0x6214b7e0,
+ 0x92e2c000,
+ 0x7f08b786,
+ 0xc0007500,
+ 0xb7809244,
+ 0x7500460c,
+ 0x91a2c000,
+ 0x7f88b786,
+ 0xc0007500,
+ 0xb7609104,
+ 0xf2105b14,
+ 0x9ea4aa61,
+ 0xf2109c62,
+ 0x2a20aa39,
+ 0xc0007500,
+ 0xda1090e2,
+ 0x7500aa21,
+ 0x9244c000,
+ 0x5a0cb780,
+ 0x530cb720,
+ 0xa98eda08,
+ 0x9c629e8c,
+ 0x7e08b786,
+ 0xc0007500,
+ 0x850690a2,
+ 0x4918b547,
+ 0xa8b9f210,
+ 0x2a14d011,
+ 0xc0017500,
+ 0xd01190e2,
+ 0x75002a12,
+ 0xcffe8516,
+ 0xc0380a7e,
+ 0xe0010cfa,
+ 0xb5408d28,
+ 0xb4814d1c,
+ 0xda10c000,
+ 0xb720a8c1,
+ 0xc2846514,
+ 0xc6840a6a,
+ 0xc058856a,
+ 0xb5207462,
+ 0xc0385214,
+ 0xb3240c82,
+ 0xb4814c28,
+ 0x0882c000,
+ 0x0c80c002,
+ 0xc000b421,
+ 0x9beaffd4,
+ 0x490cb780,
+ 0x0c82c03e,
+ 0xc000b481,
+ 0x4d0cb720,
+ 0x0c82c050,
+ 0xc000b421,
+ 0xa921da10,
+ 0xa8d5f288,
+ 0xa926da10,
+ 0x9e536123,
+ 0xaa21da10,
+ 0xb7206097,
+ 0x87026094,
+ 0x6382b543,
+ 0xb540857f,
+ 0x851a459a,
+ 0x449ab540,
+ 0x1a040d86,
+ 0x4d8cb580,
+ 0x405bb540,
+ 0xb5408526,
+ 0xb540415b,
+ 0x5891460a,
+ 0xb52018a0,
+ 0xb55f40cb,
+ 0xc0147fe4,
+ 0xb75f9baa,
+ 0x85067fe4,
+ 0x4818b547,
+ 0x4880b547,
+ 0x4e00b547,
+ 0x4e80b547,
+ 0x4980b547,
+ 0xa8a6da10,
+ 0xaa55f288,
+ 0xb7209e49,
+ 0xb5475694,
+ 0x62434a00,
+ 0x434db720,
+ 0x58c88502,
+ 0x2880c101,
+ 0xda109e89,
+ 0x0a82a9c2,
+ 0x4e1cb540,
+ 0x519cb540,
+ 0xc0ff5dc0,
+ 0xca012dc0,
+ 0xc2003db0,
+ 0xb5805a11,
+ 0x3596450a,
+ 0x99d3fff4,
+ 0x0d82c0c0,
+ 0x09c2c012,
+ 0x09420d02,
+ 0x9a87ffd4,
+ 0x8546714e,
+ 0x9148c001,
+ 0xfff49dcf,
+ 0xc0c099d5,
+ 0xc0120d82,
+ 0x0d0209c2,
+ 0xffd40906,
+ 0xd0919a78,
+ 0x71481a70,
+ 0xd00b0a02,
+ 0xda100a42,
+ 0xc200a9c2,
+ 0x9ea15a28,
+ 0xc0ff5dc0,
+ 0xc8012dc0,
+ 0x35963db0,
+ 0x99a9fff4,
+ 0x0a50d051,
+ 0x5a40c200,
+ 0x5ac1c200,
+ 0x8506714e,
+ 0x9346fffe,
+ 0xaa71f250,
+ 0xcfce7500,
+ 0xb541857f,
+ 0xc000731c,
+ 0xf2109102,
+ 0xb760a9be,
+ 0x9ea4450a,
+ 0x0d829c62,
+ 0x98e4c014,
+ 0x4888b787,
+ 0x85027500,
+ 0x4818b547,
+ 0x92a4c002,
+ 0x5b0cb7a0,
+ 0x068f0b02,
+ 0x7e08b786,
+ 0xc0027500,
+ 0xb7869082,
+ 0x75007f08,
+ 0x93e2c001,
+ 0x4908b787,
+ 0xc0007500,
+ 0xf2089182,
+ 0xb5c7a9a2,
+ 0xf2504908,
+ 0x9e84a869,
+ 0xb5009c62,
+ 0xb787430a,
+ 0x75004a08,
+ 0x9382c000,
+ 0xa825f210,
+ 0xb5c79eab,
+ 0x9e844a08,
+ 0xf2509c62,
+ 0x9ea4aa21,
+ 0xf2089c62,
+ 0xf210a9a1,
+ 0x0d86a83d,
+ 0x9c629e84,
+ 0xaa25f250,
+ 0xf2089eab,
+ 0x0986a021,
+ 0x9c629ea4,
+ 0x4a08b787,
+ 0xc0007500,
+ 0x0d8691e4,
+ 0x9898c014,
+ 0x4a08b787,
+ 0xffff7500,
+ 0xc0009342,
+ 0x0d8690a0,
+ 0x988ec014,
+ 0x4888b787,
+ 0xfffd7500,
+ 0xc0c09262,
+ 0xc0120d82,
+ 0x0d0209c2,
+ 0xffd40906,
+ 0xc80199e6,
+ 0xb5800a02,
+ 0xc0c0518c,
+ 0xc0120d82,
+ 0x0d0209c2,
+ 0xffd40942,
+ 0xb76099da,
+ 0xfff45194,
+ 0x0d86991a,
+ 0x9928fff4,
+ 0x0d82c0c0,
+ 0x09c2c012,
+ 0x09060d02,
+ 0x99cbffd4,
+ 0xc0068502,
+ 0xc4300892,
+ 0x09020c9a,
+ 0x519cb540,
+ 0x8510c006,
+ 0xc000b441,
+ 0x4220b104,
+ 0x75002a40,
+ 0xb3139d4f,
+ 0x00874422,
+ 0x1884e000,
+ 0x9284ffff,
+ 0x4614b740,
+ 0x0892c006,
+ 0x0c9ac430,
+ 0xc0060902,
+ 0xb4418512,
+ 0xb104c000,
+ 0xc0024220,
+ 0x75002a00,
+ 0xb3149d53,
+ 0x00894422,
+ 0x1884e000,
+ 0x9264ffff,
+ 0xc03e0a02,
+ 0xb9600cea,
+ 0xb48140e8,
+ 0xffffc000,
+ 0x768093c1,
+ 0x9122c000,
+ 0xc03e0a02,
+ 0xb4810cea,
+ 0xc000c000,
+ 0xb7809180,
+ 0x7504448c,
+ 0xc03e088a,
+ 0xd00c0cea,
+ 0xb4211894,
+ 0xc0c0c000,
+ 0x09e20d82,
+ 0x09420d02,
+ 0x9977ffd4,
+ 0xc0340a02,
+ 0xb4810cb6,
+ 0xb79fc000,
+ 0xb7bf7dee,
+ 0xb7df7e6e,
+ 0xb7ff7eee,
+ 0xc0027f6e,
+ 0x9c228c20,
+ 0xc01ca60d,
+ 0x0a827efe,
+ 0x9182c000,
+ 0x0d82c0c0,
+ 0x09c2c012,
+ 0x09060d02,
+ 0x9959ffd4,
+ 0x9240c000,
+ 0x0cb2c434,
+ 0xb4810a02,
+ 0xb101c000,
+ 0x28844220,
+ 0xc0007440,
+ 0xb78790e2,
+ 0x75004808,
+ 0x91a2c009,
+ 0x4e0cb780,
+ 0xc0007502,
+ 0x0d8290c4,
+ 0x9a29c014,
+ 0xb7403ac0,
+ 0xb7405694,
+ 0xd810560c,
+ 0xf088a8c5,
+ 0xb720aa55,
+ 0x62434592,
+ 0xc2009e49,
+ 0x0a045a11,
+ 0x4002ba09,
+ 0x4002ba24,
+ 0x03057048,
+ 0xc0000685,
+ 0xb7809138,
+ 0x2a51490c,
+ 0x490cb580,
+ 0x91c0c003,
+ 0xaa39f210,
+ 0x75002a04,
+ 0x93a2c002,
+ 0x490cb780,
+ 0xd0117440,
+ 0xb5403942,
+ 0xc002490c,
+ 0xb760929c,
+ 0x9e5c4792,
+ 0x400aba24,
+ 0x91a2c002,
+ 0x911cc002,
+ 0x650ab760,
+ 0x6184b740,
+ 0x9e2d9e99,
+ 0x4003ba09,
+ 0x5e7fd0a2,
+ 0xc2009e48,
+ 0x02085a6d,
+ 0x5a17c200,
+ 0x5908d226,
+ 0xc2000c06,
+ 0x12085a14,
+ 0xe0389e40,
+ 0xba24a94e,
+ 0x50904002,
+ 0x79029e54,
+ 0x9102c001,
+ 0x4b88b781,
+ 0xc0017500,
+ 0xb7809064,
+ 0x9e48470a,
+ 0x4002ba24,
+ 0xc0007008,
+ 0x76409378,
+ 0x90e4c000,
+ 0x4b08b781,
+ 0xc0007502,
+ 0xd01192c2,
+ 0xb5801e32,
+ 0x9e54478a,
+ 0xb56048fd,
+ 0xb501470a,
+ 0x29594b90,
+ 0x490cb540,
+ 0xa0c120c2,
+ 0x90a0c000,
+ 0xb5418502,
+ 0xb7804b98,
+ 0xba24458a,
+ 0xc000400a,
+ 0xb78090fc,
+ 0x0a04650a,
+ 0x650ab580,
+ 0x490cb720,
+ 0x0c82c03e,
+ 0xc000b421,
+ 0x458ab780,
+ 0xb5800a04,
+ 0xc014458a,
+ 0xb7869a96,
+ 0x75007e08,
+ 0x9222c002,
+ 0x7f08b786,
+ 0xc0027500,
+ 0xb7809182,
+ 0x2a40518c,
+ 0xc0007500,
+ 0xb78790e4,
+ 0x751a4e08,
+ 0x9024c002,
+ 0x580cb780,
+ 0x6392b723,
+ 0xa881da08,
+ 0x70029e48,
+ 0x9284c000,
+ 0x430ab780,
+ 0xb5438502,
+ 0xb580639a,
+ 0xb760440a,
+ 0xb7804412,
+ 0x8506530c,
+ 0x4918b547,
+ 0x4a18b547,
+ 0x9c629ea4,
+ 0xaa39f210,
+ 0x75002a10,
+ 0x93e2c000,
+ 0x4a08b787,
+ 0xc0007500,
+ 0xb78390e4,
+ 0x7502638a,
+ 0x92a4c000,
+ 0x4908b787,
+ 0x09027500,
+ 0x0922d001,
+ 0x0c82c438,
+ 0xb4810a02,
+ 0xb101c000,
+ 0x28f14220,
+ 0xc0383094,
+ 0xb4210c82,
+ 0xc014c000,
+ 0xb780983e,
+ 0xf2884e0c,
+ 0x0a04a955,
+ 0xb5807104,
+ 0xc0004e0c,
+ 0x850290a4,
+ 0x4e1cb540,
+ 0xa8a5da10,
+ 0x4592b720,
+ 0x60a35891,
+ 0x4003ba09,
+ 0x3a849e4c,
+ 0x71020884,
+ 0xcffe020b,
+ 0xb3542a3d,
+ 0x02894426,
+ 0x28d0d051,
+ 0xc0007440,
+ 0xc0c09142,
+ 0xc0120d82,
+ 0x0d0209c2,
+ 0xffd40942,
+ 0xb7809824,
+ 0x7500518c,
+ 0x90a2c000,
+ 0xffd49eab,
+ 0xb79f9b71,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0xf8399c22,
+ 0xb727a205,
+ 0xb7404e08,
+ 0xb7805204,
+ 0xd0a6448a,
+ 0x9e2d5908,
+ 0x570cb740,
+ 0xa94ee030,
+ 0x659cb760,
+ 0x4e98b747,
+ 0x4e00b747,
+ 0xb5801a04,
+ 0xc030448a,
+ 0xe200a8cd,
+ 0xd2515a40,
+ 0xda080a20,
+ 0xe210a882,
+ 0xb54082a3,
+ 0x5c955194,
+ 0xb5275c90,
+ 0xc0014e08,
+ 0xb78792c4,
+ 0x0a044e88,
+ 0x28ced3f1,
+ 0xb5877444,
+ 0xc0014e88,
+ 0xb7619034,
+ 0x85067314,
+ 0x4898b547,
+ 0x764024a6,
+ 0x4a18b547,
+ 0x5194b520,
+ 0x9202c000,
+ 0x08a0d131,
+ 0x402bb780,
+ 0x3c80c801,
+ 0xc2009e48,
+ 0xc0ff5a40,
+ 0x32082a40,
+ 0x518cb580,
+ 0xf9f80806,
+ 0x9c22aa1d,
+ 0x4e88b727,
+ 0x6084b740,
+ 0x5904d0a6,
+ 0xc8309e2d,
+ 0xb580aa4d,
+ 0xd132448a,
+ 0xb72009a0,
+ 0xd810458a,
+ 0xba19aa61,
+ 0xc2004002,
+ 0x1a045a11,
+ 0xc00070c8,
+ 0xb7819104,
+ 0xc040730c,
+ 0xb5813a00,
+ 0xb720730c,
+ 0xd0114e8c,
+ 0x70c80a18,
+ 0x9104c000,
+ 0x730cb781,
+ 0x3a00c010,
+ 0x730cb581,
+ 0x0a1cd011,
+ 0xc00070c8,
+ 0xb7819104,
+ 0xc020730c,
+ 0xb5813a00,
+ 0xb780730c,
+ 0xf288560c,
+ 0xf288a916,
+ 0x9e50a919,
+ 0x460ab720,
+ 0x1a24d011,
+ 0xba096241,
+ 0x00b24002,
+ 0xc0007048,
+ 0xb7819106,
+ 0xcfff730c,
+ 0xb5812a7a,
+ 0xd011730c,
+ 0x9e521a22,
+ 0x70486245,
+ 0x9106c000,
+ 0x730cb781,
+ 0x2a7ec7fe,
+ 0x730cb581,
+ 0x451ab740,
+ 0x5e11d0a2,
+ 0x8821f310,
+ 0xc00070c8,
+ 0xb7819104,
+ 0xcfff730c,
+ 0xb5812a4e,
+ 0xb740730c,
+ 0xb721568c,
+ 0xd808730c,
+ 0x9e50aa45,
+ 0xc2009e8a,
+ 0x1a045a11,
+ 0xb7206209,
+ 0x0a045194,
+ 0x4002ba24,
+ 0x249470c8,
+ 0x5194b520,
+ 0x9118c000,
+ 0x3c80c801,
+ 0x5194b520,
+ 0x91c0c000,
+ 0xaa61d810,
+ 0x3c80c801,
+ 0xc2009e48,
+ 0xc0ff5a40,
+ 0x32082a40,
+ 0x518cb580,
+ 0xaa59f008,
+ 0x2a00c040,
+ 0xc0007500,
+ 0xb7809102,
+ 0xc101518c,
+ 0xb5803a00,
+ 0xb760518c,
+ 0xffd45194,
+ 0x08029a60,
+ 0xaa1df9f8,
+ 0xb7009c22,
+ 0xd2515714,
+ 0xb7600e04,
+ 0xda08560c,
+ 0xc00ea881,
+ 0xc0342dfc,
+ 0xf0080cba,
+ 0x5895a961,
+ 0x5810c080,
+ 0xb4419e82,
+ 0xb780c000,
+ 0xf008454a,
+ 0xc200a963,
+ 0xf3105a10,
+ 0xf0088021,
+ 0x0c84a8e9,
+ 0xa261f008,
+ 0xc000b421,
+ 0x46cab780,
+ 0xa96bf008,
+ 0x8021f310,
+ 0xa8edf008,
+ 0xf0080c84,
+ 0xb421a269,
+ 0xb780c000,
+ 0xf00846ca,
+ 0xf310a96f,
+ 0xf0088021,
+ 0x0c8ca8f5,
+ 0xa26df008,
+ 0xc000b421,
+ 0xa97df008,
+ 0xb4410c84,
+ 0xb780c000,
+ 0x0a084d8c,
+ 0x5890d224,
+ 0xc0007244,
+ 0xd131931c,
+ 0xda080e04,
+ 0x9e4ca903,
+ 0x88a1e210,
+ 0xc0007102,
+ 0xf00891d6,
+ 0xf008aa75,
+ 0xc010a8fd,
+ 0xf0080a00,
+ 0xc008a275,
+ 0xf0080880,
+ 0xb780a0fd,
+ 0xc0344f0c,
+ 0xb4810cda,
+ 0xb720c000,
+ 0x0c844f8c,
+ 0xc000b421,
+ 0x4f0cb780,
+ 0x0a400ce4,
+ 0xc000b481,
+ 0x4f8cb720,
+ 0x08c00c84,
+ 0xc000b421,
+ 0x4f0cb780,
+ 0x4f8cb720,
+ 0xc0101ce4,
+ 0xb5800a00,
+ 0xf0484f0c,
+ 0xc008aa65,
+ 0xb5200880,
+ 0xb4814f8c,
+ 0xf048c000,
+ 0x0c84a8ed,
+ 0xc000b421,
+ 0xaa65f048,
+ 0xa8edf048,
+ 0xc0100c84,
+ 0xf0480a00,
+ 0xf048a265,
+ 0xc008aa75,
+ 0xf0480880,
+ 0xb481a0ed,
+ 0xf088c000,
+ 0x0c88a965,
+ 0xc000b441,
+ 0x0c80d131,
+ 0x402bb780,
+ 0xa967f088,
+ 0x2a40cffe,
+ 0x8021f310,
+ 0xa969f088,
+ 0xf0880c88,
+ 0xb441a265,
+ 0xd131c000,
+ 0xb7800c80,
+ 0xf088402b,
+ 0xcffea96b,
+ 0xf3102a40,
+ 0xf0488021,
+ 0x1c8ca97d,
+ 0xa269f088,
+ 0xc000b441,
+ 0x0c80d131,
+ 0x402bb780,
+ 0xa97ff048,
+ 0xc20076c0,
+ 0xc2005a11,
+ 0xf3105a14,
+ 0xf0488021,
+ 0xc001a27d,
+ 0xb7209182,
+ 0x1ca8454a,
+ 0xc000b421,
+ 0x46cab780,
+ 0xc2000c84,
+ 0xc2005a0d,
+ 0x324258c0,
+ 0xc000b481,
+ 0x0d04d131,
+ 0xaa41d808,
+ 0xc2000c8c,
+ 0xcffe588c,
+ 0xc20028fc,
+ 0x30985a50,
+ 0xc000b421,
+ 0x0d04d251,
+ 0xaa41d808,
+ 0xc2000ca0,
+ 0x1a105a11,
+ 0xc0042a3c,
+ 0xb4813a00,
+ 0xb780c000,
+ 0x0a044d8c,
+ 0x4d8cb580,
+ 0xa68d9c22,
+ 0x0c92c43e,
+ 0xb4810a02,
+ 0xb103c000,
+ 0xb7804220,
+ 0xda085e0c,
+ 0xda08a885,
+ 0xda08a909,
+ 0xda08a189,
+ 0xda08a081,
+ 0x0cd0a105,
+ 0xb4810a02,
+ 0xb103c000,
+ 0xb7204220,
+ 0xb7805d8c,
+ 0xb7a0518c,
+ 0xb7205e0c,
+ 0xb74040b3,
+ 0xb560412b,
+ 0x2a40412b,
+ 0x03037500,
+ 0x4033b520,
+ 0x40abb540,
+ 0x90e2c000,
+ 0x4e08b787,
+ 0xc000750a,
+ 0xb78790f2,
+ 0x751a4e08,
+ 0x9204c00d,
+ 0x638ab783,
+ 0xb5830a04,
+ 0xc450638a,
+ 0x0a020ca6,
+ 0xc000b481,
+ 0x4220b103,
+ 0xc0310087,
+ 0x02072880,
+ 0x2a7cc00f,
+ 0x59e1d0a4,
+ 0x59c1d228,
+ 0xcffe0007,
+ 0x0c88287c,
+ 0xb4810a02,
+ 0xb103c000,
+ 0xc1804220,
+ 0x9e9a5bc1,
+ 0x2d7ccffe,
+ 0xb4810cbc,
+ 0xb103c000,
+ 0x00874220,
+ 0x568cb740,
+ 0x628ab783,
+ 0x2880c0fc,
+ 0x283ed0f2,
+ 0x5b19d0a4,
+ 0xd8889e41,
+ 0x9e95a8d2,
+ 0x6292b503,
+ 0x7e7edffc,
+ 0xba1c1218,
+ 0xc0024002,
+ 0x76c291c2,
+ 0x9384c000,
+ 0x480ab780,
+ 0x6184b740,
+ 0x4002ba24,
+ 0x58ffc200,
+ 0x00c258ed,
+ 0xd0a65897,
+ 0x9e2d5908,
+ 0x12425894,
+ 0xe0389e59,
+ 0x5230a8ce,
+ 0x9ea74a7d,
+ 0xa0c2249e,
+ 0x9180c001,
+ 0x468ab780,
+ 0xa8a1da08,
+ 0x4002ba24,
+ 0xc0017048,
+ 0xb780907c,
+ 0xb720488a,
+ 0xb7404812,
+ 0x0a046184,
+ 0x488ab580,
+ 0x4003ba09,
+ 0x5e7fd0a2,
+ 0x9e2d9e49,
+ 0x5a6dc200,
+ 0xc2000218,
+ 0xd2265a17,
+ 0xc2005908,
+ 0x9ea75a14,
+ 0xa94de038,
+ 0x9e4c149e,
+ 0x50b00886,
+ 0xa1413122,
+ 0x480ab780,
+ 0xb5800a04,
+ 0xb786480a,
+ 0x75007e88,
+ 0x7f08b786,
+ 0x90c4c000,
+ 0x7d3ec01c,
+ 0x9184c002,
+ 0x7d3ec01c,
+ 0x03f0d011,
+ 0x0527d021,
+ 0xf21076c2,
+ 0x0882aa39,
+ 0x0892d001,
+ 0x79022a04,
+ 0x5b0cb740,
+ 0x90e2c000,
+ 0xaa49d808,
+ 0xd8080a04,
+ 0xf008a249,
+ 0xf00aa94b,
+ 0xf310a94c,
+ 0xe0108027,
+ 0xf00882a5,
+ 0xf008a249,
+ 0xb787a0cd,
+ 0x75004488,
+ 0xd0020882,
+ 0x76c20892,
+ 0xd0020a02,
+ 0x78480a42,
+ 0x90c2c000,
+ 0x8542c07c,
+ 0xa123da08,
+ 0xf00876c2,
+ 0xc000a953,
+ 0xda0890c4,
+ 0xc000aa41,
+ 0xda089080,
+ 0xe310aa21,
+ 0xd80880a1,
+ 0xf008aa4d,
+ 0x0a04a0d1,
+ 0xa24dd808,
+ 0x91c0c006,
+ 0x5b0cb720,
+ 0xf2109d2e,
+ 0xc301aa39,
+ 0xc2018136,
+ 0xb7408120,
+ 0x2a044525,
+ 0xf0107500,
+ 0xf3108027,
+ 0x01038221,
+ 0x452db580,
+ 0x90a2c001,
+ 0xc00076c2,
+ 0xda0890c4,
+ 0xc000aa41,
+ 0xda089080,
+ 0xd808aa21,
+ 0x76c6a25d,
+ 0x9082c001,
+ 0xc00076c0,
+ 0x74c091a4,
+ 0xa953d808,
+ 0x8d2ae002,
+ 0x802df210,
+ 0xa251d808,
+ 0x92c0c000,
+ 0xd84874c0,
+ 0xe002a947,
+ 0xc0008d26,
+ 0xda089160,
+ 0x74c0aa41,
+ 0xa947d848,
+ 0xa25dd808,
+ 0x8d2ae002,
+ 0x802df210,
+ 0xa245d848,
+ 0x4008b787,
+ 0xc0007500,
+ 0xb7809302,
+ 0x9e41440a,
+ 0xc0007048,
+ 0x85029244,
+ 0x4018b547,
+ 0x0c82c43a,
+ 0xb4810a02,
+ 0xb103c000,
+ 0xcfef4220,
+ 0xc03a29fe,
+ 0xb4610c82,
+ 0xb780c000,
+ 0x9e41440a,
+ 0x08827048,
+ 0x0892d002,
+ 0x0a0276c6,
+ 0x0a42d001,
+ 0xc0007848,
+ 0x85069242,
+ 0x4018b547,
+ 0x0c82c43a,
+ 0xb4810a02,
+ 0xb103c000,
+ 0xc0114220,
+ 0xc03a3980,
+ 0xb4610c82,
+ 0x7780c000,
+ 0x91a2c001,
+ 0xc00076c0,
+ 0xda0892e4,
+ 0xf008aa21,
+ 0xd808a947,
+ 0xf310a8d5,
+ 0xd8088021,
+ 0xf008a8da,
+ 0x9e44a245,
+ 0xd8080c84,
+ 0x00c2a0da,
+ 0xa0d5d808,
+ 0x92a0c000,
+ 0xaa41da08,
+ 0xa95bf008,
+ 0xa8c9d848,
+ 0x8021f310,
+ 0xa8ced848,
+ 0xa259f008,
+ 0x0c849e44,
+ 0xa0ced848,
+ 0xd84800c2,
+ 0xd808a0c9,
+ 0xf008aa5d,
+ 0xf04aa95f,
+ 0xf048a940,
+ 0xf310a9c7,
+ 0xf0488021,
+ 0xf008a94f,
+ 0xf210a25d,
+ 0xd8488221,
+ 0xf048a8c2,
+ 0xf010a241,
+ 0xe2108037,
+ 0x0c8480a9,
+ 0xa0c2d848,
+ 0xa245f048,
+ 0xa0cdf048,
+ 0x7eeeb7bf,
+ 0x7f6eb7df,
+ 0x7feeb7ff,
+ 0x9c228c60,
+ 0x0cfec036,
+ 0xb4819e5c,
+ 0x9c22c000,
+ 0x5a14b720,
+ 0x404db780,
+ 0x9d3a7504,
+ 0x91c4c000,
+ 0x598cb720,
+ 0x4cabb780,
+ 0x41cbb580,
+ 0x5a40c200,
+ 0x5941c200,
+ 0x9100c001,
+ 0x5b8cb720,
+ 0x402db780,
+ 0x8821e310,
+ 0xc0007427,
+ 0x084f90b6,
+ 0x90e0c000,
+ 0x8532741a,
+ 0x4478b302,
+ 0xb7409d43,
+ 0xb723403d,
+ 0xe210628a,
+ 0xd0718121,
+ 0x70881a14,
+ 0x9138c000,
+ 0x0a12d071,
+ 0xb7207088,
+ 0xc000598c,
+ 0xb72090bc,
+ 0x9d4b598c,
+ 0x40a9b780,
+ 0x4129b700,
+ 0x7104c812,
+ 0x7080c010,
+ 0xb7209c22,
+ 0x85025a14,
+ 0x5b8cb780,
+ 0xb7208702,
+ 0xf01041cb,
+ 0xf010a16b,
+ 0xf010a16f,
+ 0xd810a173,
+ 0xd810a16f,
+ 0xf010a16b,
+ 0xb547a0e1,
+ 0xf2084480,
+ 0xf208a10b,
+ 0xb720a10f,
+ 0xf20841cb,
+ 0xda08a113,
+ 0xda08a10f,
+ 0xf208a10b,
+ 0x9c22a081,
+ 0xb7209e5b,
+ 0xf0085b94,
+ 0xf00aaa61,
+ 0xf008a968,
+ 0xb740a96e,
+ 0xb58041db,
+ 0xd808404d,
+ 0xf310aa6d,
+ 0xb7408021,
+ 0xb580415b,
+ 0xd80841cb,
+ 0xf310aa69,
+ 0xb5808021,
+ 0xf008414b,
+ 0xb520a8e9,
+ 0xf008414d,
+ 0xb760aa6d,
+ 0xb7205c14,
+ 0xb5805a0c,
+ 0xf01041cd,
+ 0xe020a963,
+ 0xb7408325,
+ 0xf008402d,
+ 0xf210a8f1,
+ 0x7482802d,
+ 0xa261f010,
+ 0x424db520,
+ 0x9184c000,
+ 0xaa71f008,
+ 0xa967f050,
+ 0x5a0fc200,
+ 0x8021f310,
+ 0xa265f050,
+ 0xd8088502,
+ 0xd808a16f,
+ 0x8502a16b,
+ 0xf0089e50,
+ 0xf008a16b,
+ 0xf008a16f,
+ 0x9c22a173,
+ 0x5994b720,
+ 0xf0089e5a,
+ 0xb720aa41,
+ 0xc4104149,
+ 0xf0087048,
+ 0xb780a0c1,
+ 0xd01240c9,
+ 0x74c07102,
+ 0xa241f008,
+ 0x91c4c000,
+ 0x5a0cb720,
+ 0xaa41d808,
+ 0x5b94b720,
+ 0x41abb580,
+ 0xaa41f008,
+ 0x404db580,
+ 0x9c220802,
+ 0xf011a605,
+ 0xb7a00c30,
+ 0xb7a05c14,
+ 0xc000598c,
+ 0xda509124,
+ 0xda08a9aa,
+ 0x0d02a9b1,
+ 0x9999c034,
+ 0x5a0cb720,
+ 0xa8aad208,
+ 0xa926d208,
+ 0x412bb740,
+ 0xda089e49,
+ 0xc010aa35,
+ 0x9e817040,
+ 0xc8121a08,
+ 0x70887282,
+ 0x90c4c000,
+ 0x590cb780,
+ 0xa102da08,
+ 0xa927da50,
+ 0xf2109e50,
+ 0xda50802d,
+ 0xb79fa225,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa61d9c22,
+ 0x07878440,
+ 0x028777c2,
+ 0x7e6cb5bf,
+ 0x91a4c000,
+ 0x5c0cb720,
+ 0x412bb780,
+ 0x5a14b7c0,
+ 0xb5800a04,
+ 0xc000412b,
+ 0xb7269320,
+ 0x74407f88,
+ 0x91c2c000,
+ 0x5a0cb780,
+ 0xa891f248,
+ 0x5914b720,
+ 0x588f9ea6,
+ 0x484db520,
+ 0x9100c000,
+ 0x590cb780,
+ 0x5a14b7c0,
+ 0xa081f288,
+ 0x598cb720,
+ 0xb74077c4,
+ 0xb78041a9,
+ 0x098241ab,
+ 0x09b2d001,
+ 0xa8c2f210,
+ 0x0b967104,
+ 0x1bf4d003,
+ 0x03037644,
+ 0x9384c000,
+ 0xc00074c0,
+ 0xb72091c4,
+ 0xdac85c0c,
+ 0xb740aa45,
+ 0xf310453b,
+ 0xb5808021,
+ 0xc000452b,
+ 0x0d829120,
+ 0x9b7cfff4,
+ 0xa059da50,
+ 0xa045dac8,
+ 0xaac5dac8,
+ 0x91c0c015,
+ 0xc0157642,
+ 0x74ac9164,
+ 0x5b8cb780,
+ 0xd0090d8e,
+ 0x9e580db4,
+ 0xa88dda08,
+ 0x6104d033,
+ 0x70759ea0,
+ 0xc0000902,
+ 0xda089158,
+ 0xf310aa4d,
+ 0x70488021,
+ 0x1c92d00b,
+ 0xf2109e4a,
+ 0x7502aa49,
+ 0xc0019e92,
+ 0xda109284,
+ 0x7500aa49,
+ 0x91e4c001,
+ 0xc00174c0,
+ 0xdac89024,
+ 0xd208aac5,
+ 0xd208aa49,
+ 0xd410a8c5,
+ 0xd412710a,
+ 0x7680704a,
+ 0x5c1cb760,
+ 0x91c2c000,
+ 0x414ab780,
+ 0xa8e1d818,
+ 0xa1f1d058,
+ 0xa271d818,
+ 0xa26dd818,
+ 0xa0f5d818,
+ 0xaa69d858,
+ 0x9100c012,
+ 0x5c0cb720,
+ 0x44abb780,
+ 0xb580024a,
+ 0xda5044ab,
+ 0xc012a2d9,
+ 0xd2909360,
+ 0x7500aa4d,
+ 0x9162c001,
+ 0xc00174c0,
+ 0x74809084,
+ 0x5c1cb760,
+ 0x91e2c000,
+ 0xaa4dd208,
+ 0xa8e5f058,
+ 0x6a02c00a,
+ 0xc0007048,
+ 0xd81890dc,
+ 0xd818aa61,
+ 0xd208a275,
+ 0xda50a8c1,
+ 0x7102aa51,
+ 0x9088c000,
+ 0xa0d1da50,
+ 0xaa45d290,
+ 0xda507500,
+ 0xc010aad1,
+ 0xda5091e0,
+ 0xc005a9d2,
+ 0x74809220,
+ 0x5c1cb760,
+ 0x9342c003,
+ 0xaa4dd208,
+ 0x414ab720,
+ 0x70486a0e,
+ 0xc0008502,
+ 0xd818915c,
+ 0x5884aa6d,
+ 0x70486a0c,
+ 0x907cc000,
+ 0xd0588506,
+ 0xd208a177,
+ 0xf058a8ce,
+ 0xd291a8e5,
+ 0x9e4a6e11,
+ 0xd0117048,
+ 0xb7201e32,
+ 0x6245414a,
+ 0xd00d0d02,
+ 0x70480d22,
+ 0x903cc001,
+ 0xaa71d818,
+ 0x5884d0a4,
+ 0x6a0c9e48,
+ 0x9e527008,
+ 0xd00d0882,
+ 0x78440892,
+ 0x9262c000,
+ 0xd818a8e1,
+ 0x5884aa75,
+ 0x70486a0c,
+ 0x917cc000,
+ 0xd0588506,
+ 0xd290a173,
+ 0xd818a15b,
+ 0xc000aa61,
+ 0xd81893a0,
+ 0x8502a8f1,
+ 0xa173d058,
+ 0x414ab780,
+ 0x6916d013,
+ 0x8021f310,
+ 0xc2007680,
+ 0xd8185a0b,
+ 0xc000a271,
+ 0xd81891a2,
+ 0xaa61a8f5,
+ 0x6916d013,
+ 0x8021f310,
+ 0x5a0bc200,
+ 0xa275d818,
+ 0xaa71d058,
+ 0xc0007500,
+ 0xda0891e2,
+ 0xda10aa55,
+ 0x6a14a8c9,
+ 0x5a0fc200,
+ 0xc0007048,
+ 0x850690bc,
+ 0xa17bd058,
+ 0x414ab780,
+ 0xa26dd818,
+ 0xaaf2d058,
+ 0xc0017740,
+ 0x74c092a2,
+ 0x9164c001,
+ 0xaa41d208,
+ 0xa958da52,
+ 0x1244e001,
+ 0x442cb343,
+ 0x751e0207,
+ 0xa8f9d058,
+ 0xb342853e,
+ 0x74404478,
+ 0x82adf210,
+ 0x91c2c000,
+ 0xa8cada10,
+ 0xaa55da08,
+ 0x1a0c9e48,
+ 0xd0117008,
+ 0xb35108d4,
+ 0x0283443c,
+ 0xa8c6d290,
+ 0xa8c9d208,
+ 0xd2087640,
+ 0xc00aa945,
+ 0x0d829260,
+ 0x9a42fff4,
+ 0xa059da50,
+ 0x9300c00b,
+ 0xaa59d290,
+ 0xc0017500,
+ 0x74c091c2,
+ 0x9244c000,
+ 0xaa59da50,
+ 0xaac1d208,
+ 0xa8c6d290,
+ 0xa8c9d208,
+ 0xd4120a04,
+ 0x76407148,
+ 0xa945d208,
+ 0x9280c009,
+ 0xfff40d82,
+ 0xd2909a23,
+ 0x7500aa5d,
+ 0xa059da50,
+ 0xa2dad290,
+ 0x9282c00a,
+ 0xa957da50,
+ 0xaa41da90,
+ 0x80a1e210,
+ 0xda900a04,
+ 0xda50a241,
+ 0xc00aa0d5,
+ 0xd81890e0,
+ 0x7500aa69,
+ 0x9144c001,
+ 0x5f0cb780,
+ 0xa97bf018,
+ 0xa881da08,
+ 0x88a3e210,
+ 0xa0f9f018,
+ 0xaa51f250,
+ 0xda507500,
+ 0xc000aad9,
+ 0xd058921a,
+ 0xb720aa79,
+ 0x0a88590c,
+ 0x75008506,
+ 0x4f39b540,
+ 0x0a52d011,
+ 0x4424b354,
+ 0xd2900289,
+ 0xd208a8c6,
+ 0x7640a8c9,
+ 0xa945d208,
+ 0x91c0c007,
+ 0xc00774c0,
+ 0xb74093c4,
+ 0xb7804144,
+ 0xf25041cc,
+ 0xf310a953,
+ 0xb7208221,
+ 0xf3105914,
+ 0xf2508821,
+ 0xb720a251,
+ 0x7102484d,
+ 0xc0010683,
+ 0xd8189296,
+ 0xb740a8e9,
+ 0xd0a85f04,
+ 0xf0185984,
+ 0xc820a97b,
+ 0xf310aa61,
+ 0xf0188821,
+ 0xd2d0a279,
+ 0xd058a8b9,
+ 0x7442a8fa,
+ 0xd0110a88,
+ 0xb3540a54,
+ 0x76404424,
+ 0xc0000289,
+ 0xda5090e2,
+ 0x0a04aa59,
+ 0x710ad412,
+ 0xa95bda50,
+ 0xa8c9d208,
+ 0xa8c6d290,
+ 0x8027f310,
+ 0x704ad410,
+ 0x710ad410,
+ 0xd2087640,
+ 0xc005a945,
+ 0xd81890a0,
+ 0xb740aa69,
+ 0xd2285f04,
+ 0xc8205984,
+ 0xd898a8e2,
+ 0x9e4aa8e1,
+ 0xc0806095,
+ 0xc2005a7f,
+ 0x00985a61,
+ 0xf25058a3,
+ 0xd898a0a1,
+ 0x7440aa61,
+ 0xa979f018,
+ 0xd00e0882,
+ 0x62450892,
+ 0x59a3d224,
+ 0x0a0276c0,
+ 0x0a42d00e,
+ 0x3098e000,
+ 0x90a2c000,
+ 0xa0a2f250,
+ 0xf0189e93,
+ 0x76c0a97b,
+ 0x882bf210,
+ 0xa279f018,
+ 0x90fcc000,
+ 0xa8a1f250,
+ 0xc0007440,
+ 0xf208911a,
+ 0xc200aa51,
+ 0xc0005804,
+ 0xf2509220,
+ 0xd033aa51,
+ 0x9e5b6142,
+ 0xe2205d87,
+ 0x0d0281af,
+ 0x7f7cb57f,
+ 0x9af3c014,
+ 0x7f7cb77f,
+ 0xaa69d818,
+ 0x5e84b740,
+ 0xa921f250,
+ 0xa8c9f250,
+ 0x5984d228,
+ 0xa8e2c820,
+ 0xaa51f208,
+ 0x6122d033,
+ 0xc2009d9a,
+ 0xc0015a07,
+ 0xc0121004,
+ 0xd0247008,
+ 0xe2205987,
+ 0x0d0281af,
+ 0x7f7cb57f,
+ 0xc0140181,
+ 0xd0249ad0,
+ 0xc014598f,
+ 0xd2909af6,
+ 0xb75fa949,
+ 0xda507e64,
+ 0xb77fa95b,
+ 0xb7407f7c,
+ 0xf2105f94,
+ 0xe3108225,
+ 0xe21080a7,
+ 0xd0588b25,
+ 0xd410a8f6,
+ 0xd4107008,
+ 0xf3107142,
+ 0xd0108827,
+ 0xd412a8cd,
+ 0xd412710a,
+ 0xd208708a,
+ 0x7642a945,
+ 0x0a52d011,
+ 0xa8c6d290,
+ 0x4424b354,
+ 0xd2087440,
+ 0x0289a8c9,
+ 0x1a52d011,
+ 0x4422b354,
+ 0x02897640,
+ 0x0a54d011,
+ 0x4422b354,
+ 0xd4100289,
+ 0xd412704a,
+ 0x7640708a,
+ 0xaa69d858,
+ 0x0a46d002,
+ 0xd858024a,
+ 0xc000a269,
+ 0x0d829360,
+ 0x98defff4,
+ 0xaa5dd290,
+ 0xda507500,
+ 0xc000a059,
+ 0xda5091a2,
+ 0xda90a957,
+ 0xe210aa41,
+ 0x0a0480a1,
+ 0xa241da90,
+ 0xa0d5da50,
+ 0xaa59da50,
+ 0xa24dda10,
+ 0xc00077c0,
+ 0xb78090c4,
+ 0xda485c0c,
+ 0x000ba38a,
+ 0x7d6eb79f,
+ 0x7deeb7bf,
+ 0x7e6eb7df,
+ 0x7eeeb7ff,
+ 0x8c40c002,
+ 0xa61d9c22,
+ 0xb7208460,
+ 0xb7805a0c,
+ 0x0f82402d,
+ 0xb55f0902,
+ 0x75027dec,
+ 0x7e6cb55f,
+ 0xc00b0303,
+ 0xb7a09164,
+ 0xb7a05b8c,
+ 0xf2085994,
+ 0xda10a9b2,
+ 0x0d02a9ad,
+ 0x9a41c014,
+ 0x5c0cb780,
+ 0x5914b720,
+ 0xa8cdd288,
+ 0xa91ff208,
+ 0xb500070b,
+ 0x9ea5444d,
+ 0x8021e210,
+ 0x038b7440,
+ 0xa01df208,
+ 0x93c4c000,
+ 0xaa49da08,
+ 0xc0007502,
+ 0xda109334,
+ 0xb740a8aa,
+ 0xd0a65e84,
+ 0xf2085d04,
+ 0x9e2ea8e9,
+ 0xaa41c838,
+ 0x5904d0a6,
+ 0x8122c201,
+ 0x8021f310,
+ 0x5a0bc200,
+ 0xa241d800,
+ 0x91a0c000,
+ 0xaa29da10,
+ 0x5e84b740,
+ 0xa8f1da08,
+ 0x5904d226,
+ 0xc8309e2d,
+ 0xda08a0cd,
+ 0xda10aa49,
+ 0xda12a8d1,
+ 0x1a04a9a8,
+ 0xd0136243,
+ 0xe0100942,
+ 0xb77f80a7,
+ 0xb53f7e7c,
+ 0xf2087d6c,
+ 0x744aa8ee,
+ 0xb3328506,
+ 0x76404c78,
+ 0x7e7cb55f,
+ 0x9124c000,
+ 0xaa4df208,
+ 0xf2080a04,
+ 0xc004a24d,
+ 0xb7809060,
+ 0xb7405b0c,
+ 0xf2086284,
+ 0x9e2da881,
+ 0x5904d0a6,
+ 0x590cb720,
+ 0xaa4dc830,
+ 0xb7609e4a,
+ 0xd0334435,
+ 0xf2086128,
+ 0xd1a2a8cd,
+ 0x5d935d8f,
+ 0x81afe220,
+ 0x8ab3f210,
+ 0xc0140d02,
+ 0xda1099c6,
+ 0xc028aa4d,
+ 0x70086a00,
+ 0x92d6c000,
+ 0xaa45f248,
+ 0x09d2d012,
+ 0x9e5b624b,
+ 0x0108d030,
+ 0xe2205d87,
+ 0x0d0281af,
+ 0xa1c6f248,
+ 0x99afc014,
+ 0xa045f248,
+ 0x90e0c000,
+ 0xaa4df208,
+ 0xf2080a04,
+ 0xda10a24d,
+ 0xda10a951,
+ 0xd124aa29,
+ 0xd01158c0,
+ 0xd0a208c2,
+ 0x70485e49,
+ 0x9216c000,
+ 0xaa4df248,
+ 0xa944f24a,
+ 0x5904d226,
+ 0x8021f310,
+ 0x8221f310,
+ 0x5a0bc200,
+ 0x9100c001,
+ 0x5e45d0a2,
+ 0xc0007048,
+ 0xf2489196,
+ 0xf248a947,
+ 0xf310aa4d,
+ 0xc2008021,
+ 0xc0005a07,
+ 0xd0119320,
+ 0xc2006a26,
+ 0x70485a0b,
+ 0x9216c000,
+ 0xa8c5f248,
+ 0xaa4df248,
+ 0x5904d0a6,
+ 0x8122c201,
+ 0x8021f310,
+ 0x5a0bc200,
+ 0x9080c000,
+ 0xaa45f248,
+ 0xa249f248,
+ 0xaa49da08,
+ 0xb7407500,
+ 0xc0035f04,
+ 0xf2089202,
+ 0x7500aa6d,
+ 0x9162c003,
+ 0x5914b740,
+ 0xaa41f050,
+ 0xc0037500,
+ 0xb7609082,
+ 0xb7405d0c,
+ 0xb9605c94,
+ 0xd0714038,
+ 0xd0720938,
+ 0xb79f0ca8,
+ 0xf1c87fcd,
+ 0xf1f1a8dd,
+ 0xf1e9a23d,
+ 0xffffa0dd,
+ 0xb7609301,
+ 0xda10591c,
+ 0xf058a8a9,
+ 0xd0a6aa61,
+ 0x9e2d5904,
+ 0xa241f010,
+ 0x7e6cb73f,
+ 0xaa4dc830,
+ 0xf0087440,
+ 0xc001a261,
+ 0xda109382,
+ 0x0a04aa29,
+ 0x75062a0c,
+ 0x92a4c001,
+ 0x7d6cb75f,
+ 0xd0100a26,
+ 0x75027088,
+ 0x92bcc000,
+ 0x0d28d011,
+ 0x08b8d012,
+ 0x19c4d010,
+ 0xaa25f031,
+ 0xa8c5f029,
+ 0xb79f9ea2,
+ 0x07f47dec,
+ 0xb59f0242,
+ 0xffff7dec,
+ 0x77c092a1,
+ 0x9104c000,
+ 0x8502c010,
+ 0xa123da90,
+ 0x9220c000,
+ 0x7df4b73f,
+ 0x5d91d3a2,
+ 0xb55f0d02,
+ 0xc0807f64,
+ 0xc0145d90,
+ 0xda9098f2,
+ 0xb75fa021,
+ 0xb7407f64,
+ 0xda10590c,
+ 0xd888aa29,
+ 0x9e2da8c1,
+ 0x5904d226,
+ 0xa0cdc830,
+ 0x7ceeb79f,
+ 0x7d6eb7bf,
+ 0x7deeb7df,
+ 0x7e6eb7ff,
+ 0x8c60c002,
+ 0xa6059c22,
+ 0x6284b740,
+ 0xd2a69e5d,
+ 0x9e2d5904,
+ 0xa9cec830,
+ 0x0d0265a7,
+ 0x98cbc014,
+ 0xc0149e83,
+ 0x000a98f2,
+ 0x58050804,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xc030a605,
+ 0xb7a0ac7d,
+ 0x9d59598c,
+ 0xa45dc038,
+ 0xac7dc030,
+ 0xa45dc038,
+ 0xac7dc030,
+ 0xa45dc038,
+ 0x5f8cb720,
+ 0x5a0cb780,
+ 0xb5408502,
+ 0xb5404039,
+ 0x850a40b9,
+ 0xa10bd288,
+ 0x8502c010,
+ 0xa10bf248,
+ 0xa8bdf208,
+ 0xd0a40d02,
+ 0xf2085a90,
+ 0x098aa9ae,
+ 0xa107f248,
+ 0xa10ff248,
+ 0x9891c014,
+ 0xa9adf208,
+ 0x0d029e81,
+ 0xc01405d2,
+ 0xb780988a,
+ 0xf208590c,
+ 0xb79fa019,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa60d9c22,
+ 0x5994b7a0,
+ 0xb7c09e5d,
+ 0xf2086014,
+ 0xf210a92f,
+ 0xda10a92e,
+ 0xf210a8d1,
+ 0xf212882d,
+ 0xba09a944,
+ 0x62434002,
+ 0x8221f310,
+ 0xa245f210,
+ 0xa8a1d208,
+ 0x5a0cb7c0,
+ 0xa0a1d210,
+ 0xaa25dac8,
+ 0xa9d2da48,
+ 0xa225dad0,
+ 0xa9adf208,
+ 0x9b83fff4,
+ 0xa9dada48,
+ 0xa051da48,
+ 0xa9adf208,
+ 0xa92ef210,
+ 0x9b79fff4,
+ 0xaa49da08,
+ 0x5c0cb720,
+ 0xa059da48,
+ 0xb5006008,
+ 0xf24844ab,
+ 0xf248aa21,
+ 0xf248a255,
+ 0xf210a8a1,
+ 0xf208a0c1,
+ 0xf210aa2d,
+ 0xf208a22d,
+ 0xf210a8b1,
+ 0xf208a0b1,
+ 0xf210aa3d,
+ 0xf248a23d,
+ 0xf250a8a1,
+ 0xf248a0a1,
+ 0xf250aa25,
+ 0xf208a225,
+ 0xf210a8bd,
+ 0xd208a0bd,
+ 0xd210aa25,
+ 0xd208a225,
+ 0xd210a8a9,
+ 0xda08a0a9,
+ 0xda10aa35,
+ 0xf208a235,
+ 0xd0b1a8b9,
+ 0xf2100a50,
+ 0xd208a0b9,
+ 0xd0b1a882,
+ 0xb5200cd0,
+ 0xf2484031,
+ 0xf250aa39,
+ 0xb79fa239,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0xc0089c22,
+ 0x9e5874c0,
+ 0xc0009e52,
+ 0xd00290fc,
+ 0x1a1470c0,
+ 0x501351f3,
+ 0x7400c005,
+ 0x90fcc000,
+ 0x7000d002,
+ 0x50131a50,
+ 0xb7400128,
+ 0xb7806384,
+ 0xd1a6640c,
+ 0x9e2d5904,
+ 0xa8e5c040,
+ 0xaa4dc830,
+ 0x60097044,
+ 0x1214d01d,
+ 0x5013d01a,
+ 0x48bab340,
+ 0x50101222,
+ 0x9e5c9c22,
+ 0x08827526,
+ 0x4000d01e,
+ 0x48bcb340,
+ 0x7500c380,
+ 0x90bcc000,
+ 0x084ec002,
+ 0xc0049c22,
+ 0xc0007508,
+ 0x0a04915c,
+ 0x5a07c200,
+ 0x7508c004,
+ 0xffff0884,
+ 0xb740935a,
+ 0x9d4b631c,
+ 0xa805c220,
+ 0x691dd013,
+ 0x8021e210,
+ 0xa6859c22,
+ 0x9e810007,
+ 0xcffe9e90,
+ 0x9e412cfc,
+ 0x5c419e4c,
+ 0xcffe6491,
+ 0x62c328fc,
+ 0x9e445841,
+ 0x60096083,
+ 0x5a41c280,
+ 0x04909ea0,
+ 0x9d099e88,
+ 0x9e4c0490,
+ 0xc0017102,
+ 0xd0a28504,
+ 0xb3025e41,
+ 0xf3204468,
+ 0xd0a68121,
+ 0xcffe5d40,
+ 0xf3102afc,
+ 0x000d8123,
+ 0x9e54040d,
+ 0x6138d033,
+ 0x61459e5c,
+ 0x8125e210,
+ 0x04629e91,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c40,
+ 0x87c2c809,
+ 0x0c20b060,
+ 0x87c2c809,
+ 0x0a60b060,
+ 0x87c2c809,
+ 0x09c0b060,
+};
+
+unsigned long aui32H264CBR_SlaveMTXTOPAZFWData[] = {
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x809000b0,
+ 0x809002f8,
+ 0x82884174,
+ 0x82883aa8,
+ 0x82883ab8,
+ 0x82883b58,
+ 0x82883830,
+ 0x828838c8,
+ 0x82883886,
+ 0x82883880,
+ 0x82883b88,
+ 0x82883bcc,
+ 0x82883c08,
+ 0x82883c40,
+ 0x82883c44,
+ 0x82883c74,
+ 0x82883ca4,
+ 0x82883ccc,
+ 0x82883cfc,
+ 0x82883d2c,
+ 0x82883d32,
+ 0x82883d38,
+ 0x828838ec,
+ 0x82883ec8,
+ 0x82883ed0,
+ 0x82883f00,
+ 0x82883f08,
+ 0x82883f3c,
+ 0x828843d4,
+ 0x828842a6,
+ 0x82884280,
+ 0x8288430e,
+ 0x82884390,
+ 0x8288413c,
+ 0x8288423c,
+ 0x8288427c,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x8090074c,
+ 0x8090074c,
+ 0x809021f0,
+ 0x80901c70,
+ 0x80902f98,
+ 0x809025c8,
+ 0x80901f98,
+ 0x8090074c,
+ 0x8090074c,
+ 0x8090074c,
+ 0x8090074c,
+ 0x8090074c,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0xa0101100,
+ 0xa01001b0,
+ 0xa0101102,
+ 0xa01001b2,
+ 0xa0101104,
+ 0xa0100124,
+ 0xa0101106,
+ 0xa0100126,
+ 0xa0100134,
+ 0x00000000,
+ 0xa0101120,
+ 0xa0100136,
+ 0xa0101122,
+ 0xa0100144,
+ 0x80101160,
+ 0x80101162,
+ 0x80101180,
+ 0x80101182,
+ 0x80100140,
+ 0x80100142,
+ 0x80100150,
+ 0x80100152,
+ 0x80100154,
+ 0x80100146,
+ 0x803003a0,
+ 0x80100100,
+ 0x80105156,
+ 0xa0101164,
+ 0xa0100184,
+ 0x80101194,
+ 0x801001b4,
+ 0x80100146,
+ 0x00000000,
+ 0x00000003,
+ 0x00000002,
+ 0x00000002,
+ 0x00000001,
+ 0x00000001,
+ 0x00000001,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000005,
+ 0x000f9400,
+ 0x000f9401,
+ 0x000fd403,
+ 0x000fd407,
+ 0x000fd517,
+ 0x000fdd37,
+ 0x000fff37,
+ 0x000ffb37,
+ 0x00006b37,
+ 0x00006b36,
+ 0x00002b36,
+ 0x00002b30,
+ 0x00002a20,
+ 0x40002220,
+ 0x00000000,
+ 0x00000000,
+ 0x00010001,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x01010000,
+ 0x02020201,
+ 0x04030303,
+ 0x05040404,
+ 0x00140005,
+ 0x001a0016,
+ 0x0020001c,
+ 0x00280024,
+ 0x0034002c,
+ 0x00400038,
+ 0x00500048,
+ 0x00680058,
+ 0x00800070,
+ 0x00a00090,
+ 0x00d000b0,
+ 0x010000e0,
+ 0x01400120,
+ 0x01a00160,
+ 0x020001c0,
+ 0x02800240,
+ 0x034002c0,
+ 0x04000380,
+ 0x05000480,
+ 0x06800580,
+ 0x08000700,
+ 0x0a000900,
+ 0x0d000b00,
+ 0x10000e00,
+ 0x14001200,
+ 0x1a001600,
+ 0x00001c00,
+ 0x00200040,
+ 0x001002ab,
+ 0x015500cd,
+ 0x00080249,
+ 0x00cd01c7,
+ 0x0155005d,
+ 0x0249013b,
+ 0x00040111,
+ 0x01c700f1,
+ 0x00cd01af,
+ 0x005d00c3,
+ 0x01550059,
+ 0x013b0029,
+ 0x0249025f,
+ 0x01110235,
+ 0x00020021,
+ 0x00f1001f,
+ 0x01c70075,
+ 0x01af006f,
+ 0x00cd0069,
+ 0x00c30019,
+ 0x005d017d,
+ 0x0059005b,
+ 0x015502b9,
+ 0x002900a7,
+ 0x013b0283,
+ 0x025f0135,
+ 0x02490095,
+ 0x0235023f,
+ 0x0111008b,
+ 0x00210219,
+ 0x00010041,
+ 0x0b060600,
+ 0x0c0b0a06,
+ 0x0a0b0c06,
+ 0x0c0d0c0c,
+ 0x0d0d0c06,
+ 0x0b0b0c0c,
+ 0x0e0d0a0d,
+ 0x0a0d0e0e,
+ 0x0c0d0a06,
+ 0x0c0e0c0e,
+ 0x0e0d0a0d,
+ 0x0f0c0c0c,
+ 0x0f0b0d0e,
+ 0x0d0f0e0e,
+ 0x0d0f0f0f,
+ 0x0c0b0f0e,
+ 0x00000006,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x1234baac,
+ 0x00000000,
+};
+
+unsigned long aui32H264CBR_SlaveMTXTOPAZFWTextReloc[] = {
+ 0
+};
+
+unsigned char aui8H264CBR_SlaveMTXTOPAZFWTextRelocType[] = {
+ 0
+};
+
+unsigned long aui32H264CBR_SlaveMTXTOPAZFWTextRelocFullAddr[] = {
+ 0
+};
+
+unsigned long aui32H264CBR_SlaveMTXTOPAZFWDataReloc[] = {
+ 0
+};
diff --git a/fw/H264SlaveFirmwareCBR_bin.h b/fw/H264SlaveFirmwareCBR_bin.h
new file mode 100644
index 0000000..892384d
--- /dev/null
+++ b/fw/H264SlaveFirmwareCBR_bin.h
@@ -0,0 +1,44 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+
+// This file was automatically generated from ../release/H264SlaveFirmwareCBR.dnl using dnl2c.
+
+extern unsigned long aui32H264CBR_SlaveMTXTOPAZFWText[];
+extern unsigned long ui32H264CBR_SlaveMTXTOPAZFWTextSize;
+
+extern unsigned long aui32H264CBR_SlaveMTXTOPAZFWData[];
+extern unsigned long ui32H264CBR_SlaveMTXTOPAZFWDataSize;
+
+extern unsigned long aui32H264CBR_SlaveMTXTOPAZFWTextReloc[];
+extern unsigned char aui8H264CBR_SlaveMTXTOPAZFWTextRelocType[];
+extern unsigned long aui32H264CBR_SlaveMTXTOPAZFWTextRelocFullAddr[];
+
+extern unsigned long aui32H264CBR_SlaveMTXTOPAZFWDataReloc[];
+extern unsigned long ui32H264CBR_SlaveMTXTOPAZFWDataRelocSize;
+
+extern unsigned long ui32H264CBR_SlaveMTXTOPAZFWTextOrigin;
+extern unsigned long ui32H264CBR_SlaveMTXTOPAZFWDataOrigin;
+
diff --git a/fw/H264SlaveFirmwareVBR_bin.c b/fw/H264SlaveFirmwareVBR_bin.c
new file mode 100644
index 0000000..5be2648
--- /dev/null
+++ b/fw/H264SlaveFirmwareVBR_bin.c
@@ -0,0 +1,3786 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+
+// This file was automatically generated from ../release/H264SlaveFirmwareVBR.dnl using dnl2c.
+
+unsigned char *szH264SlaveFirmwareVBR_buildtag = "BUILD_TOPAZ_SC_1_00_00_0318";
+
+unsigned long ui32H264VBR_SlaveMTXTOPAZFWTextSize = 3103;
+unsigned long ui32H264VBR_SlaveMTXTOPAZFWDataSize = 624;
+unsigned long ui32H264VBR_SlaveMTXTOPAZFWTextRelocSize = 0;
+unsigned long ui32H264VBR_SlaveMTXTOPAZFWDataRelocSize = 0;
+
+unsigned long ui32H264VBR_SlaveMTXTOPAZFWTextOrigin = 0x80900000;
+unsigned long ui32H264VBR_SlaveMTXTOPAZFWDataOrigin = 0x82883080;
+
+unsigned long aui32H264VBR_SlaveMTXTOPAZFWText[] = {
+ 0x9040c001,
+ 0xc80993fe,
+ 0xc0000e42,
+ 0xc8290e00,
+ 0xc3a48422,
+ 0xc8298400,
+ 0xc3088622,
+ 0x9e838600,
+ 0xc8099e43,
+ 0xc60c0d42,
+ 0xc8090d60,
+ 0xc60e0942,
+ 0xc8090920,
+ 0xc00a0e42,
+ 0xc8090e40,
+ 0xc00e87c2,
+ 0x9c1887d0,
+ 0x0c020802,
+ 0x09820d82,
+ 0x09020d02,
+ 0x08820c82,
+ 0x9320fffe,
+ 0xa401c838,
+ 0x0dc2c809,
+ 0x0da0c60c,
+ 0x0e42c809,
+ 0x0b46b080,
+ 0x7e74b77f,
+ 0xa48d0882,
+ 0xffff9ff3,
+ 0x9d1393e0,
+ 0xf8398081,
+ 0x0707a205,
+ 0x06850307,
+ 0x03839e97,
+ 0x0fa0060f,
+ 0x018d058d,
+ 0x9c62008f,
+ 0x9340ffff,
+ 0x0ea0060b,
+ 0xffff9c62,
+ 0x058d93a0,
+ 0xb700018d,
+ 0xb780548c,
+ 0x9c015414,
+ 0x0687a605,
+ 0x0ea0060b,
+ 0xffff9c62,
+ 0xf9f893a0,
+ 0xf9f8aa9d,
+ 0x9c22aa1d,
+ 0xa6059c22,
+ 0x0e860a82,
+ 0xc0340d82,
+ 0xc0149bef,
+ 0x0d8a9967,
+ 0x9beac034,
+ 0x7108b783,
+ 0xc0007500,
+ 0xc0149082,
+ 0xc0149abe,
+ 0x740299db,
+ 0xb3549e6c,
+ 0x02894424,
+ 0x995dc014,
+ 0xffff7540,
+ 0xb79f90e2,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0x87029c22,
+ 0xb5438502,
+ 0xb5436818,
+ 0xb5436898,
+ 0xb5436918,
+ 0xb5436c18,
+ 0xb5436c98,
+ 0xb5436d18,
+ 0xb5437118,
+ 0xb5437198,
+ 0xb5437218,
+ 0xb5407818,
+ 0xb5404804,
+ 0xb5404884,
+ 0xb5404904,
+ 0xb5404984,
+ 0xb5404a04,
+ 0xb5404c04,
+ 0xb5404c84,
+ 0xb5404d04,
+ 0xb5404202,
+ 0xb5404282,
+ 0xb5405004,
+ 0xb5407a84,
+ 0xb5404e84,
+ 0x9c224702,
+ 0x8420a605,
+ 0x9ba6fff4,
+ 0xc0340d8a,
+ 0xfff49b97,
+ 0xc0349bc6,
+ 0xc4209ba2,
+ 0x0a020cd2,
+ 0xc000b481,
+ 0x4220b105,
+ 0xe0310d8a,
+ 0xc0148d80,
+ 0xc8299a01,
+ 0xc3a20922,
+ 0xb73f0960,
+ 0xd0717f6c,
+ 0xb5802a5e,
+ 0xc01e450c,
+ 0x85022a80,
+ 0xa8c2f008,
+ 0xc2807102,
+ 0xb5a05a95,
+ 0xb341460c,
+ 0x76404434,
+ 0x459cb540,
+ 0x448cb520,
+ 0x90c2c000,
+ 0x0e12d011,
+ 0xa241f008,
+ 0x550cb780,
+ 0x08c2c807,
+ 0x0880c570,
+ 0x0caac032,
+ 0x538cb580,
+ 0xc000b421,
+ 0x0cf40a2a,
+ 0xc000b481,
+ 0x09021a28,
+ 0x08bac002,
+ 0x4078b960,
+ 0x0a00c200,
+ 0x588bd224,
+ 0xc000b441,
+ 0x0a11ce00,
+ 0x9301ffff,
+ 0x1884e000,
+ 0x9244ffff,
+ 0x0a42c807,
+ 0x0a00c576,
+ 0x0caac032,
+ 0xc000b481,
+ 0x08820a02,
+ 0x08840902,
+ 0x4078b960,
+ 0x0a00c200,
+ 0x588bd224,
+ 0xc000b441,
+ 0x0a11ce00,
+ 0x9301ffff,
+ 0x745ac004,
+ 0x923cffff,
+ 0xc0340a02,
+ 0xb4810c9e,
+ 0xfff4c000,
+ 0x08029b2c,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x9c228c60,
+ 0xc0409e54,
+ 0x9e590c82,
+ 0xc000b421,
+ 0x0d02c040,
+ 0xc000b482,
+ 0xc00e9c22,
+ 0xc00e2d7c,
+ 0x5d3029e0,
+ 0xc0409e54,
+ 0x31b80c82,
+ 0xc000b461,
+ 0x0d02c040,
+ 0xc000b442,
+ 0xa60d9c22,
+ 0x07038420,
+ 0xc2800687,
+ 0x1c845c8d,
+ 0x5ca0d0a2,
+ 0xd0110287,
+ 0xc2000a5e,
+ 0x1a045a0d,
+ 0x5a30c200,
+ 0x30985cd0,
+ 0x04059e4c,
+ 0x0c8ac032,
+ 0xc8013098,
+ 0xb4213880,
+ 0x9ea9c000,
+ 0x0a02c801,
+ 0x0a00c002,
+ 0xc0306553,
+ 0xb4810c8a,
+ 0xc002c000,
+ 0x0c840882,
+ 0xc000b421,
+ 0xd0229e93,
+ 0x9e535f09,
+ 0x1d045d0d,
+ 0x9bb4fff4,
+ 0x5e91c280,
+ 0xc2801e84,
+ 0x9e6c5e84,
+ 0xc2801a84,
+ 0xc1815a90,
+ 0x0d8a3a80,
+ 0x0d020982,
+ 0xfff4314a,
+ 0xc0c09bae,
+ 0x09920d82,
+ 0x0d02c002,
+ 0x0902c002,
+ 0x9ac1c034,
+ 0xc0340a0a,
+ 0xb4810c9e,
+ 0x1b04c000,
+ 0x850275bf,
+ 0x9202c000,
+ 0xb55f9dcf,
+ 0xc0347f7c,
+ 0xf2319a94,
+ 0xb75fa045,
+ 0x1b047f7c,
+ 0x851075bf,
+ 0x9284ffff,
+ 0x0a42c002,
+ 0x0c8ec030,
+ 0xc000b481,
+ 0x7e6eb79f,
+ 0x7eeeb7bf,
+ 0x7f6eb7df,
+ 0x8c00c002,
+ 0x9c229c22,
+ 0x8502c200,
+ 0x9c89c037,
+ 0x9c80c171,
+ 0x9c80c817,
+ 0xf8399c22,
+ 0x0d9aa205,
+ 0x9a7ac034,
+ 0xf9f80d8a,
+ 0xc033aa1d,
+ 0xa60592a0,
+ 0x0a42c801,
+ 0x0a00c010,
+ 0x2ebed3f2,
+ 0x0caac032,
+ 0xc000b481,
+ 0x0cf408aa,
+ 0xc000b421,
+ 0x558cb780,
+ 0x0c92c080,
+ 0xa881f208,
+ 0xc000b421,
+ 0x558cb780,
+ 0xf2080c88,
+ 0xb421a889,
+ 0xb780c000,
+ 0x0c84558c,
+ 0xa88df208,
+ 0xc000b421,
+ 0x1c980902,
+ 0xc000b441,
+ 0x558cb780,
+ 0xf2080c90,
+ 0xb421a885,
+ 0xb7a0c000,
+ 0x0dd2558c,
+ 0x9a33c034,
+ 0xaa25f208,
+ 0xffff7008,
+ 0x0daa9344,
+ 0x0d060982,
+ 0x0902c121,
+ 0x9b29fff4,
+ 0x4714b760,
+ 0x0d02c021,
+ 0x09c20d04,
+ 0x9b16fff4,
+ 0x4714b760,
+ 0x0d0609c2,
+ 0x9b10fff4,
+ 0x09820daa,
+ 0xc1010d02,
+ 0xfff40902,
+ 0x0d929b14,
+ 0x9a0fc034,
+ 0xaa25f208,
+ 0xffff7008,
+ 0x77409344,
+ 0x90a2c000,
+ 0xc0340d8e,
+ 0x0d8a9a11,
+ 0x9a0ec034,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xc470a60d,
+ 0x0a020c8e,
+ 0xc000b481,
+ 0x4220b101,
+ 0x558cb780,
+ 0xa085f208,
+ 0x0a021c8c,
+ 0xc000b481,
+ 0x4220b105,
+ 0x2b5ed1f1,
+ 0x558cb780,
+ 0xcff09ead,
+ 0xc2802e80,
+ 0xf2085ea1,
+ 0xc280a281,
+ 0x2a845a9d,
+ 0x0a020c84,
+ 0xc000b481,
+ 0x4220b101,
+ 0x468cb520,
+ 0xb4810c84,
+ 0xb101c000,
+ 0xb5204220,
+ 0xc070470c,
+ 0xb4810c8e,
+ 0x0882c000,
+ 0xb4211c8c,
+ 0x0c90c000,
+ 0xc000b481,
+ 0xb4211c8c,
+ 0x0c84c000,
+ 0xc000b481,
+ 0x6284b740,
+ 0x5908d326,
+ 0xe0309e2d,
+ 0x9ea4aa4d,
+ 0xb7809c62,
+ 0x7740558c,
+ 0x9ea98502,
+ 0xd0010d82,
+ 0xf2080db2,
+ 0x2596a10f,
+ 0x9b3ffff4,
+ 0xc0700a06,
+ 0xb4810c82,
+ 0x000dc000,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x7ebec01c,
+ 0x9244c000,
+ 0x5e08d1a2,
+ 0x0a00c090,
+ 0x5909d224,
+ 0xc4000882,
+ 0xb4223d00,
+ 0xb104c000,
+ 0x75004220,
+ 0x9364ffff,
+ 0x5c88c180,
+ 0x0c80c090,
+ 0xb4615c89,
+ 0x9c22c000,
+ 0x5c88c180,
+ 0x0c80c090,
+ 0xc4005c89,
+ 0x0a023c80,
+ 0xc000b481,
+ 0x4220b101,
+ 0xa0e1f008,
+ 0xc0905d88,
+ 0x5d890d80,
+ 0xc000b483,
+ 0x9e5b9c22,
+ 0x68b1d312,
+ 0xc1c00a02,
+ 0x5c8b0cc0,
+ 0x3c80c400,
+ 0xc000b481,
+ 0x4220b102,
+ 0x5994b760,
+ 0x6931d312,
+ 0x9e518502,
+ 0x4070b960,
+ 0x08e0c1c0,
+ 0xaa65f031,
+ 0x5889d0a4,
+ 0xc000b481,
+ 0x85100890,
+ 0x9301ffff,
+ 0x8560c1c0,
+ 0x80ade210,
+ 0x5b94b760,
+ 0x3904c001,
+ 0x8521ce3e,
+ 0x4048b960,
+ 0xaa65f031,
+ 0x5889d0a4,
+ 0xc000b481,
+ 0x85100890,
+ 0x9301ffff,
+ 0x812de220,
+ 0x590cb780,
+ 0x3908c001,
+ 0x0d60c1c0,
+ 0xdac85d09,
+ 0xb422a885,
+ 0xd312c000,
+ 0xc1c068b1,
+ 0x5c8b0cc0,
+ 0xc000b441,
+ 0x84209c22,
+ 0xc4700882,
+ 0x0a020c92,
+ 0xc000b481,
+ 0x4220b102,
+ 0x02050185,
+ 0x2a04c001,
+ 0xc0007500,
+ 0xb7409362,
+ 0x09025994,
+ 0x4070b960,
+ 0x08e0c1c0,
+ 0x5889d0a4,
+ 0x08a1ce3e,
+ 0x3c80c400,
+ 0xc000b441,
+ 0x4220b104,
+ 0xa245f031,
+ 0xffff0890,
+ 0x01079221,
+ 0x297acfff,
+ 0xc0010205,
+ 0x75002a08,
+ 0x91e2c001,
+ 0x5b94b740,
+ 0xb9600982,
+ 0xc1c04048,
+ 0xd0a408e0,
+ 0xce3e5889,
+ 0xc40008a1,
+ 0xb4613c80,
+ 0xb104c000,
+ 0xf0314220,
+ 0x0890a245,
+ 0x9221ffff,
+ 0x8d00e032,
+ 0x08e0c1c0,
+ 0x5889d0a4,
+ 0xc4000a02,
+ 0xb4813c80,
+ 0xb101c000,
+ 0xf0104220,
+ 0xb73fa0c1,
+ 0xb7807e72,
+ 0xdac8590c,
+ 0xcfffa086,
+ 0xc0702976,
+ 0xb4410c92,
+ 0x8c20c000,
+ 0xb7409c22,
+ 0xd312508c,
+ 0x0a026cb1,
+ 0x0cc0c1c0,
+ 0xc4005c8b,
+ 0xb4813c80,
+ 0xb101c000,
+ 0xd3124220,
+ 0xc1ca6cb1,
+ 0x5c8b0cf0,
+ 0xc000b441,
+ 0x6d82c00c,
+ 0x38c0c001,
+ 0x0dc0c1c0,
+ 0xb4235d8b,
+ 0x9c22c000,
+ 0x6cb1d312,
+ 0xc1c00a02,
+ 0x5c8b0cc0,
+ 0x3c80c400,
+ 0xc000b481,
+ 0x4220b103,
+ 0x5a94b740,
+ 0x6d31d311,
+ 0x4058b960,
+ 0xc1c00085,
+ 0xf03108e0,
+ 0xd0a4aa45,
+ 0xb4815889,
+ 0x0890c000,
+ 0x9321ffff,
+ 0x3990c001,
+ 0x0940c1c0,
+ 0x588bd124,
+ 0xc000b461,
+ 0xf8399c22,
+ 0xf010a285,
+ 0x7500aa61,
+ 0x9164c000,
+ 0xa8c1d008,
+ 0x0a069e48,
+ 0x5200c200,
+ 0xd0083098,
+ 0xd011a0c1,
+ 0xd0100d38,
+ 0xf011a9f2,
+ 0xf0101a30,
+ 0x1984a943,
+ 0x93e2c000,
+ 0x8702cff1,
+ 0x8700cff0,
+ 0x087ec00f,
+ 0x087cc00e,
+ 0x0c1ac050,
+ 0xa8c5f029,
+ 0x2095d020,
+ 0x9e4d5ca1,
+ 0xc2002210,
+ 0x30d85a20,
+ 0x4006ba09,
+ 0xc000b420,
+ 0x1a30f011,
+ 0xffff1984,
+ 0xf21091e4,
+ 0xf010802f,
+ 0xf9f8a241,
+ 0x9c22aa9d,
+ 0x9e5da60d,
+ 0xf1245940,
+ 0xd3f15841,
+ 0xb3502d2e,
+ 0xc0024422,
+ 0xf00893e2,
+ 0xe000aa61,
+ 0xb4252a1c,
+ 0xd8084422,
+ 0x8522aa61,
+ 0x88a9e210,
+ 0x12182a1c,
+ 0xc00e9ea3,
+ 0xba1b0a7e,
+ 0xc200400b,
+ 0x21285207,
+ 0x9276c001,
+ 0xc1009e59,
+ 0x11035a20,
+ 0x5209c200,
+ 0xc2009ea2,
+ 0x9e8d58a1,
+ 0x0cb0d031,
+ 0xa8a2d208,
+ 0x2a7cc00e,
+ 0x5207c200,
+ 0x2a7cc00e,
+ 0xd208349a,
+ 0xf008a0a2,
+ 0x9ea1a963,
+ 0x2a2ed3f1,
+ 0x8128c201,
+ 0x8821f310,
+ 0xf0088502,
+ 0xd228a261,
+ 0x9eaba127,
+ 0x2d01cff0,
+ 0x59415940,
+ 0xc00e3522,
+ 0xfff42d7c,
+ 0xc0009bb1,
+ 0xd20892e0,
+ 0x9e5eaa21,
+ 0x50d8000b,
+ 0xd0293242,
+ 0xf008a205,
+ 0xd013a8e1,
+ 0xf210291e,
+ 0x75108029,
+ 0x00989e44,
+ 0xa0e1f008,
+ 0x4426b350,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x9e58a605,
+ 0x59415940,
+ 0x028774b0,
+ 0xc0000685,
+ 0xc2809374,
+ 0x19605d61,
+ 0x59415940,
+ 0x9b82fff4,
+ 0x018b9e83,
+ 0x5d41c280,
+ 0x2d7cc00e,
+ 0xfff40922,
+ 0x9e839b79,
+ 0xc280018b,
+ 0xc00e5d21,
+ 0x09222d7c,
+ 0x90a0c001,
+ 0xc00074a0,
+ 0x9e8392d4,
+ 0xc280018b,
+ 0xc00e5d41,
+ 0x19402d7c,
+ 0x59415940,
+ 0x9b62fff4,
+ 0x018b9e83,
+ 0x5d21c280,
+ 0x2d7cc00e,
+ 0xc0000922,
+ 0x749091c0,
+ 0x92d4c000,
+ 0x018b9e83,
+ 0x5d21c280,
+ 0x2d7cc00e,
+ 0x59401920,
+ 0xfff45941,
+ 0x9e839b4b,
+ 0xd3f2018b,
+ 0x09222d5e,
+ 0x9b44fff4,
+ 0x9100c000,
+ 0x018b9e83,
+ 0x2d5ed3f2,
+ 0x9b3cfff4,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0x0685a60d,
+ 0x9e9e9e69,
+ 0x71820b02,
+ 0xc0000a86,
+ 0x9ea99208,
+ 0x9e6916d2,
+ 0x5a84c280,
+ 0x1a52d011,
+ 0xd0117102,
+ 0xd3f108e2,
+ 0xffff2b1e,
+ 0xd0119286,
+ 0x75100a62,
+ 0xc000028d,
+ 0x9e7391d4,
+ 0x09220d02,
+ 0x9b14fff4,
+ 0xd0111aa0,
+ 0x75100a52,
+ 0xffff9e83,
+ 0x9e7392d2,
+ 0xd0110d06,
+ 0xc00e0952,
+ 0xfff4297c,
+ 0x75909b05,
+ 0xc0009e83,
+ 0xd03192f4,
+ 0xd3f11a60,
+ 0x9e6c2b4e,
+ 0xc2009e73,
+ 0xd3f25299,
+ 0x0922295e,
+ 0x9af4fff4,
+ 0xc2009e83,
+ 0x9ea952b8,
+ 0x16d27590,
+ 0x91b2ffff,
+ 0xd3f29e73,
+ 0x010d2d5e,
+ 0x9ae6fff4,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x0ca0f011,
+ 0xd09a9e99,
+ 0xd00d5a04,
+ 0xc0001a42,
+ 0x1203909a,
+ 0x9e4b1242,
+ 0xfffc9ea2,
+ 0xa60d9360,
+ 0x85028420,
+ 0xb55f9e9e,
+ 0xb55f7f7c,
+ 0xf0107ffc,
+ 0x9e55aa61,
+ 0x8c8ef012,
+ 0x75121a08,
+ 0x590cd226,
+ 0xe05a8540,
+ 0xc0068044,
+ 0xc00090c0,
+ 0xc0009280,
+ 0xc00193a0,
+ 0xc00190c0,
+ 0xc0019200,
+ 0xc0029300,
+ 0xc0029160,
+ 0xc00493e0,
+ 0xc00491e0,
+ 0xc0059320,
+ 0xe0119100,
+ 0xd0728d88,
+ 0xb5a01954,
+ 0x058b500c,
+ 0x9bc0fff4,
+ 0x9120c005,
+ 0x5014b740,
+ 0x8d88e011,
+ 0x058b9ea9,
+ 0xfff41514,
+ 0xc0049bb5,
+ 0xe01193c0,
+ 0xd3f28d88,
+ 0x058b295e,
+ 0xfff40916,
+ 0xb5a09a87,
+ 0xc004500c,
+ 0xe0119240,
+ 0xd3f28d88,
+ 0x058b295e,
+ 0xfff40916,
+ 0xc0049a7b,
+ 0xd2109100,
+ 0xf011aa41,
+ 0x058b8c88,
+ 0xd0124a7d,
+ 0x0d062ace,
+ 0x018b0906,
+ 0x9a6cfff4,
+ 0x9e6a9e83,
+ 0x0d02018b,
+ 0x9a66fff4,
+ 0x9260c003,
+ 0xaa41d210,
+ 0x8c88f011,
+ 0x4a7d058b,
+ 0x2aced012,
+ 0x09060d02,
+ 0xfff4018b,
+ 0x9e839a57,
+ 0x018b9e6a,
+ 0x0d7ec00e,
+ 0x9a50fff4,
+ 0x93a0c002,
+ 0x570cb720,
+ 0x0890d272,
+ 0x404db780,
+ 0x03037500,
+ 0x9104c000,
+ 0xaa51f2c8,
+ 0x404db580,
+ 0x9100c000,
+ 0x598cb780,
+ 0xa895f248,
+ 0x404db520,
+ 0x0ae0d271,
+ 0xa8a1f208,
+ 0xa951fa88,
+ 0x01830c82,
+ 0xc0940583,
+ 0xd2b19a09,
+ 0xf2080a60,
+ 0x9e41a903,
+ 0x8d88e011,
+ 0x8923e220,
+ 0x095e058b,
+ 0xa0a1f208,
+ 0x9a8efff4,
+ 0x9160c001,
+ 0x578cb780,
+ 0x8d88e011,
+ 0xa902f208,
+ 0x095e058b,
+ 0x9a82fff4,
+ 0x93e0c000,
+ 0x409cb741,
+ 0x4408b784,
+ 0x8d88e011,
+ 0x8021f310,
+ 0x058b9dcb,
+ 0xb581095e,
+ 0xfff4408c,
+ 0xc0009a71,
+ 0xb74491c0,
+ 0xe0114410,
+ 0x058b8d88,
+ 0xfff4091e,
+ 0xc00099f7,
+ 0xc0019080,
+ 0xb79f90e0,
+ 0xc00f7e68,
+ 0xc00e0cfe,
+ 0x9e4a0cfc,
+ 0x7c68b59f,
+ 0x7f6cb73f,
+ 0x0a02cff1,
+ 0x0a00cff0,
+ 0x0c9ac050,
+ 0xc2002218,
+ 0x20945a21,
+ 0x324258a0,
+ 0x4006ba24,
+ 0x7f6cb59f,
+ 0xc000b481,
+ 0xa943f210,
+ 0x7fecb79f,
+ 0x8021f310,
+ 0xa241f210,
+ 0x7e6eb79f,
+ 0x7eeeb7bf,
+ 0x7f6eb7df,
+ 0x8c00c002,
+ 0xa61d9c22,
+ 0x85028440,
+ 0xf0319e9d,
+ 0x0b02abe5,
+ 0x7878b55f,
+ 0x7efcb55f,
+ 0x9d3a718e,
+ 0x91e8c001,
+ 0x7502aa41,
+ 0x9392c000,
+ 0xaad1d018,
+ 0x8d08e032,
+ 0x8d00e051,
+ 0x9eb19dcf,
+ 0xb55f8510,
+ 0xc0027f7c,
+ 0xc2800a9c,
+ 0x018b5a95,
+ 0x9961fff4,
+ 0x7f7cb75f,
+ 0x5a88c280,
+ 0x8122c301,
+ 0x91a0c000,
+ 0x8d88e031,
+ 0x050b9dcf,
+ 0xb55f8510,
+ 0xfff47f7c,
+ 0xb75f9ac2,
+ 0x0b047f7c,
+ 0xfffe718e,
+ 0xb79f92a6,
+ 0xc0507868,
+ 0xb4810c9e,
+ 0xc050c000,
+ 0xb4e20d16,
+ 0xb71fc000,
+ 0xb79f7eec,
+ 0xb7bf7d6e,
+ 0xb7df7dee,
+ 0xb7ff7e6e,
+ 0xc0027eee,
+ 0x9c228c40,
+ 0xc450a605,
+ 0x0a020c8a,
+ 0xc000b481,
+ 0x4240b102,
+ 0x2d7ce00e,
+ 0x5d10d104,
+ 0x0a02c801,
+ 0xc0300a40,
+ 0xb4810c8a,
+ 0x08c2c000,
+ 0xb4210c84,
+ 0xb740c000,
+ 0xf0485e8c,
+ 0xf210a947,
+ 0xf048802d,
+ 0xc450a245,
+ 0x0a020c86,
+ 0xc000b481,
+ 0x4220b101,
+ 0x0a42c801,
+ 0x0a00c010,
+ 0x0caac032,
+ 0xc000b481,
+ 0xc03408aa,
+ 0xb4220d1e,
+ 0xc450c000,
+ 0x0a020cf2,
+ 0xc000b481,
+ 0x4220b101,
+ 0x1910d053,
+ 0x570cb780,
+ 0xa891f248,
+ 0x88a3f210,
+ 0x0d060d82,
+ 0xffd4018b,
+ 0xc0809bc7,
+ 0xb4a10ca2,
+ 0xc002c000,
+ 0xc0140d82,
+ 0x700a9954,
+ 0x9364ffff,
+ 0x09820daa,
+ 0xc1210d0a,
+ 0xffd40902,
+ 0xb7809a4c,
+ 0xf248570c,
+ 0xc0a1a992,
+ 0x0d040d02,
+ 0xffd409c2,
+ 0xc0c09a37,
+ 0x09920d82,
+ 0x09420d42,
+ 0x9957c014,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xc010a60d,
+ 0xb7208400,
+ 0xb780570c,
+ 0x2a2049ad,
+ 0xb7c07500,
+ 0x09025994,
+ 0x9182c000,
+ 0x7108b783,
+ 0xc0007500,
+ 0xd29090e2,
+ 0x7500aa41,
+ 0x9164c005,
+ 0x49adb720,
+ 0x2a18d011,
+ 0xd0027500,
+ 0xc0003924,
+ 0xd0119124,
+ 0x75002a14,
+ 0x3922d002,
+ 0x3926d001,
+ 0x0c82c050,
+ 0xc000b441,
+ 0xb7409d87,
+ 0x0dc2468c,
+ 0xc01009c2,
+ 0xcff00d02,
+ 0xffd40c81,
+ 0xb7839a0e,
+ 0x9d1b7108,
+ 0xcff07500,
+ 0xc0000b01,
+ 0xd2909282,
+ 0x7500aa41,
+ 0x91e2c000,
+ 0x606cb79f,
+ 0x8d00f211,
+ 0x2a00c010,
+ 0xcff07500,
+ 0xf3100a03,
+ 0xb3468001,
+ 0xb79e4422,
+ 0xc8014068,
+ 0xc01008c2,
+ 0xc0320880,
+ 0xb59f0cea,
+ 0xb421606c,
+ 0xb783c000,
+ 0x75007108,
+ 0x9282c001,
+ 0x7208b783,
+ 0xc0017500,
+ 0xb72091e2,
+ 0xd011510c,
+ 0x75002a12,
+ 0x9102c001,
+ 0x5f94b7a0,
+ 0x5a8cb7a0,
+ 0xaa21f210,
+ 0x28f99eab,
+ 0x510cb520,
+ 0x9c629ea4,
+ 0x5d0cb720,
+ 0x4129b780,
+ 0xc0007500,
+ 0xf20892a4,
+ 0xf210a9a1,
+ 0x0d82a83d,
+ 0x9c629e84,
+ 0xa8a5f250,
+ 0xf2089eab,
+ 0x0982a021,
+ 0x9c629e8c,
+ 0xaa21da08,
+ 0x7b8ab581,
+ 0xa9cdda10,
+ 0xfff49eb3,
+ 0xc8019aa6,
+ 0xc00a0a02,
+ 0xc0300a00,
+ 0xb4810c8a,
+ 0xc008c000,
+ 0x0c8408c2,
+ 0xc000b421,
+ 0x0a02c008,
+ 0xb4810c88,
+ 0xc0c0c000,
+ 0x09920d82,
+ 0x0d02c008,
+ 0x0902c008,
+ 0x989dc014,
+ 0x0a02c008,
+ 0x0c8ec030,
+ 0xc000b481,
+ 0x5a0cb720,
+ 0xb5408506,
+ 0xfff44039,
+ 0xb79f9ad1,
+ 0xb7bf6eee,
+ 0xb7df6f6e,
+ 0xc0106fee,
+ 0x9c228c60,
+ 0xa205f839,
+ 0x0c82c450,
+ 0xb4810a02,
+ 0xb101c000,
+ 0xc0084220,
+ 0xc0300a40,
+ 0xb4810c8e,
+ 0xc002c000,
+ 0xc05038c0,
+ 0xb4210c82,
+ 0xc0c0c000,
+ 0x09920d82,
+ 0x0d02c008,
+ 0x0902c008,
+ 0x9869c014,
+ 0x0a02c008,
+ 0x0c8ec030,
+ 0xc000b481,
+ 0xaa1df9f8,
+ 0x9000fff5,
+ 0xf011a60d,
+ 0xc0010eb0,
+ 0xc01e9182,
+ 0xc0080f7e,
+ 0xc0300b02,
+ 0xc0400e8e,
+ 0x9e747540,
+ 0x0c96c050,
+ 0x4426b354,
+ 0xc20012d8,
+ 0xb4815a14,
+ 0xc030c000,
+ 0xb4c20d0a,
+ 0xb4c5c000,
+ 0xc030c000,
+ 0xb4c10c96,
+ 0xc0c0c000,
+ 0x09920d82,
+ 0x0d02c008,
+ 0x0902c008,
+ 0x9835c014,
+ 0xc000b4c5,
+ 0xfffe7540,
+ 0xfff493c4,
+ 0xb79f9a6f,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0xb4639c22,
+ 0x9c22c000,
+ 0xa062f812,
+ 0xc2009c22,
+ 0x5d890d80,
+ 0x09829e59,
+ 0x3d80c400,
+ 0xc000b463,
+ 0x4620b203,
+ 0x9c220007,
+ 0x9c8fc127,
+ 0x080a9c22,
+ 0x56f1b971,
+ 0x9c81c017,
+ 0x9c80c071,
+ 0x9c80c017,
+ 0x4000b960,
+ 0xffff9c22,
+ 0x9e5c9280,
+ 0xd1a401c6,
+ 0x08825889,
+ 0x3c80c400,
+ 0xc000b421,
+ 0x4220b104,
+ 0x9e532244,
+ 0xffff7106,
+ 0x9c229324,
+ 0xc004a60d,
+ 0xc8298420,
+ 0xc37e0ca2,
+ 0xc0300cb0,
+ 0xe133ac3d,
+ 0xc0388d00,
+ 0xc030a45d,
+ 0xc038ac3d,
+ 0xc010a45d,
+ 0xc018ac3d,
+ 0xc010a45d,
+ 0xc018ac25,
+ 0xb7a0a445,
+ 0x9ea9570c,
+ 0xb5408502,
+ 0xb541651a,
+ 0xb7404b98,
+ 0x0dc2468c,
+ 0x0d42c00a,
+ 0xffd409c2,
+ 0xd25198bc,
+ 0xda080a58,
+ 0x7502aa01,
+ 0xc0009ead,
+ 0xb5809084,
+ 0xb780448c,
+ 0x87025e8c,
+ 0xa8a2f210,
+ 0xb544850a,
+ 0xf2104418,
+ 0xb540a8a5,
+ 0xb5405084,
+ 0xf20a4802,
+ 0xf208a100,
+ 0xf210a086,
+ 0xf208a929,
+ 0xf210a089,
+ 0xf210a92e,
+ 0xf208a8b2,
+ 0xf250a10d,
+ 0xf208a8b1,
+ 0xf208a112,
+ 0xf208a096,
+ 0xc050a09a,
+ 0x08c00cf2,
+ 0xa085f248,
+ 0xc000b421,
+ 0xc0360a0a,
+ 0xb4810c92,
+ 0x0896c000,
+ 0xb4211c8c,
+ 0x8502c000,
+ 0x8c00f031,
+ 0x8d80e131,
+ 0xb7c09ea3,
+ 0x0d025d0c,
+ 0x4078b960,
+ 0x7ffcb55f,
+ 0xa103f208,
+ 0xd1229dba,
+ 0x9e2d5d0d,
+ 0xa8e5f029,
+ 0x2caed012,
+ 0xd1265c88,
+ 0x9e4a5908,
+ 0xaa4de038,
+ 0x28bc0d04,
+ 0x324250a8,
+ 0xffffa241,
+ 0xf01091c1,
+ 0xc036aa61,
+ 0xb4810c8e,
+ 0xb73fc000,
+ 0x1c847fec,
+ 0xc000b421,
+ 0x996bc014,
+ 0xaa4dd208,
+ 0xc0007500,
+ 0xf2909262,
+ 0xf011aa2d,
+ 0xc0002ac8,
+ 0xc80091a4,
+ 0x75002a00,
+ 0x90c4c000,
+ 0xa9c6f208,
+ 0x9ae8fff4,
+ 0xa2cdd208,
+ 0xaaadf290,
+ 0x2a54d011,
+ 0xc0007500,
+ 0xc8099102,
+ 0xc50e0a42,
+ 0xb5800a70,
+ 0xb780530c,
+ 0x7500460c,
+ 0x9162c000,
+ 0x5a31c280,
+ 0xc03e2a04,
+ 0xb4810cea,
+ 0xc000c000,
+ 0xb7809280,
+ 0x7502448c,
+ 0x915cc000,
+ 0x2a80c100,
+ 0x0a0e7540,
+ 0x1a46d001,
+ 0x9060c000,
+ 0xc03e0a02,
+ 0xb4810cea,
+ 0xb79fc000,
+ 0xb7bf7a6e,
+ 0xb7df7aee,
+ 0xc0067b6e,
+ 0x9c228c00,
+ 0x538cb780,
+ 0x0892c0c8,
+ 0x40f8b960,
+ 0x0948d011,
+ 0xaa45f029,
+ 0x5889d0a4,
+ 0xc000b481,
+ 0xffff0890,
+ 0x9c229321,
+ 0xb720a605,
+ 0xb780460c,
+ 0x74407d0c,
+ 0xb5800a04,
+ 0xc0007d0c,
+ 0xb7839364,
+ 0x75007108,
+ 0x92c2c000,
+ 0x448cb720,
+ 0x510cb780,
+ 0x3a407442,
+ 0x510cb580,
+ 0x919cc000,
+ 0x5d0cb780,
+ 0xa889d208,
+ 0xc0007440,
+ 0x850690a4,
+ 0x7818b543,
+ 0x0a42c801,
+ 0x0a00c010,
+ 0x0ceac032,
+ 0xc000b481,
+ 0x08c2c008,
+ 0x1ce0c002,
+ 0xc000b421,
+ 0x0a42c008,
+ 0x0d0ec030,
+ 0xc000b482,
+ 0x0c82c450,
+ 0x1a40c008,
+ 0xc000b481,
+ 0x4220b101,
+ 0x38c0c002,
+ 0x0c82c050,
+ 0xc000b421,
+ 0x0d82c0c0,
+ 0xc0080992,
+ 0xc0080d02,
+ 0xfff40902,
+ 0xc4509aac,
+ 0x0a020c86,
+ 0xc000b481,
+ 0x4260b102,
+ 0x0a00c008,
+ 0x0d0ec030,
+ 0xc000b482,
+ 0xc0080c84,
+ 0xb4811a00,
+ 0xb101c000,
+ 0xc0804220,
+ 0xc8015a35,
+ 0x09400902,
+ 0x28fcc00e,
+ 0x5910d0a8,
+ 0x29ced071,
+ 0x0c8ac030,
+ 0xb4419dc8,
+ 0x0a42c000,
+ 0xb4810c84,
+ 0x7680c000,
+ 0x9182c000,
+ 0x5e8cb720,
+ 0x44bdb740,
+ 0x8a27f210,
+ 0x8021f310,
+ 0x44adb580,
+ 0x0c86c450,
+ 0xb4810a02,
+ 0xb102c000,
+ 0x0cec4260,
+ 0xc000b481,
+ 0x4260b102,
+ 0x8926c201,
+ 0xc03408ea,
+ 0xb4210c9e,
+ 0xb780c000,
+ 0xf248570c,
+ 0x8d40a891,
+ 0x88a3f210,
+ 0x0d060d82,
+ 0x5a0cc280,
+ 0x508cb580,
+ 0xffd4018b,
+ 0xc08098a1,
+ 0xb4a10ca2,
+ 0xb780c000,
+ 0x0c88478c,
+ 0xc000b481,
+ 0x5914b7a0,
+ 0x0d82c002,
+ 0x9a27fff4,
+ 0xffff700a,
+ 0xb7809364,
+ 0xf2107d0c,
+ 0xf250a8ad,
+ 0x6243a8a2,
+ 0x71029e49,
+ 0x90b8c000,
+ 0xb5438506,
+ 0xb7807618,
+ 0x7500460c,
+ 0x9242c000,
+ 0xffd40d82,
+ 0xb7839958,
+ 0x75007208,
+ 0x90e2c000,
+ 0xffd40d82,
+ 0xc00098a2,
+ 0x0d8290a0,
+ 0x996affd4,
+ 0xc0800a02,
+ 0xb4810ca6,
+ 0xc002c000,
+ 0xfff40d92,
+ 0x740099f8,
+ 0x9364ffff,
+ 0x09820dea,
+ 0xc1210d0a,
+ 0xffb40902,
+ 0xb7809af0,
+ 0xf248570c,
+ 0xc0a1a992,
+ 0x0d040d02,
+ 0xffb409c2,
+ 0xc0c09adb,
+ 0x09920d82,
+ 0x09420d42,
+ 0x99fbfff4,
+ 0xc03e0a02,
+ 0xb4810cea,
+ 0xb79fc000,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa60d9c22,
+ 0x570cb720,
+ 0x49b5b720,
+ 0x2e10d091,
+ 0x9e8e7500,
+ 0x9122c003,
+ 0x2e14d011,
+ 0xb5438506,
+ 0x0e827118,
+ 0xb5a07500,
+ 0xb5a37d14,
+ 0xc0007610,
+ 0xb5439082,
+ 0xd1117198,
+ 0x75002e10,
+ 0x9082c000,
+ 0x7218b543,
+ 0x2e10d211,
+ 0xc0007500,
+ 0xb5439082,
+ 0xb7837298,
+ 0x75007208,
+ 0x5f8cb7c0,
+ 0x9244c001,
+ 0x0a42c809,
+ 0x0a50c51e,
+ 0x08c2c809,
+ 0x08e0c526,
+ 0x0cc2c809,
+ 0x0cd0c572,
+ 0x0942c809,
+ 0x0970c5da,
+ 0x0d42c809,
+ 0x0d20c512,
+ 0x09c2c809,
+ 0x09e0c516,
+ 0x0dc2c809,
+ 0x0dc0c512,
+ 0x0c42c809,
+ 0x0c70c5dc,
+ 0xa24df208,
+ 0xa0ddf208,
+ 0xa0c2f248,
+ 0xa145f248,
+ 0xa14af248,
+ 0xa1c5f208,
+ 0xa1c2f208,
+ 0xa04ef248,
+ 0xaa4df208,
+ 0x0ee0d151,
+ 0x9ea49eab,
+ 0xb7209c62,
+ 0xd208598c,
+ 0xb580aa21,
+ 0xb72041ab,
+ 0xb5a041b3,
+ 0xb5204392,
+ 0xb7c05014,
+ 0xf2d0590c,
+ 0xf208aa49,
+ 0x7048a8d9,
+ 0x9142c000,
+ 0x5f8cb780,
+ 0xa88df248,
+ 0x0de0d152,
+ 0x9c629e8c,
+ 0x7108b783,
+ 0xc0047500,
+ 0xb7209062,
+ 0x76404614,
+ 0x93c4c003,
+ 0x438ab720,
+ 0xc0007440,
+ 0xda0890e2,
+ 0x7048aa55,
+ 0x9004c001,
+ 0x5d14b7a0,
+ 0x7188b783,
+ 0x5f8cb7a0,
+ 0xa9d6da08,
+ 0x4392b520,
+ 0x7500850a,
+ 0xa0aad210,
+ 0xa8a9f208,
+ 0x8d24e001,
+ 0x1d849d4f,
+ 0x9c629e8c,
+ 0xaa31f208,
+ 0x0d8a030b,
+ 0x9c629ea4,
+ 0x9180c000,
+ 0x5f8cb780,
+ 0xa891f208,
+ 0x5d14b7a0,
+ 0x03090d86,
+ 0x9c629e8c,
+ 0x438ab780,
+ 0x7208b723,
+ 0x5994b720,
+ 0xb5800a04,
+ 0xd210438a,
+ 0x7440aa29,
+ 0x4849b580,
+ 0x9024c001,
+ 0x5a8cb7a0,
+ 0xa8c1f208,
+ 0x9e8c9eab,
+ 0xd2109c62,
+ 0x7500aa29,
+ 0x92a4c000,
+ 0xa9a1f208,
+ 0xa85df208,
+ 0x9e840d82,
+ 0xf2089c62,
+ 0xf248a021,
+ 0x9eaba845,
+ 0x9e840982,
+ 0xda089c62,
+ 0xb581aa21,
+ 0xb7807b8a,
+ 0x7502448c,
+ 0x90bcc000,
+ 0xffb40d86,
+ 0xd2109b78,
+ 0x7500aa29,
+ 0x9122c000,
+ 0x558cb720,
+ 0x412db780,
+ 0xc0003a08,
+ 0xb72090e0,
+ 0xb780558c,
+ 0x2a75412d,
+ 0x412db580,
+ 0x7108b723,
+ 0x510cb780,
+ 0x3a047440,
+ 0x510cb580,
+ 0x91c4c000,
+ 0x0e60d151,
+ 0x598cb740,
+ 0xa882d208,
+ 0xa881d208,
+ 0x5014b520,
+ 0xa0cdd808,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x4b0cb720,
+ 0xc0ff9e5c,
+ 0xc0ff2a40,
+ 0x710228c0,
+ 0xc0008502,
+ 0x85069062,
+ 0x4b9cb540,
+ 0x4b14b560,
+ 0xa6059c22,
+ 0xd0519e5d,
+ 0x75002a50,
+ 0x90e4c000,
+ 0x4b8cb780,
+ 0xc0007500,
+ 0xc0c09142,
+ 0xc0120d82,
+ 0x0d0209c2,
+ 0xfff40942,
+ 0xb78098a4,
+ 0xc0344b0c,
+ 0xb4810cb6,
+ 0xc034c000,
+ 0xb4a20d32,
+ 0xb5a0c000,
+ 0xb79f4a8c,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa61d9c22,
+ 0xb7838420,
+ 0x75007108,
+ 0x9122c000,
+ 0x598cb780,
+ 0xa881d288,
+ 0xc0187440,
+ 0xb7409124,
+ 0xb7a0468c,
+ 0x0dc25694,
+ 0xc002098e,
+ 0x048b0d42,
+ 0x996dffb4,
+ 0xaa35f210,
+ 0x560cb7c0,
+ 0xa8a5f210,
+ 0xa8aaf210,
+ 0x570cb7a0,
+ 0x478cb580,
+ 0xa0d5f208,
+ 0xaa39da10,
+ 0xa8bdda10,
+ 0xa0def208,
+ 0x08d0d252,
+ 0xa259f208,
+ 0xa0c1f248,
+ 0xa922da10,
+ 0x0a50d131,
+ 0xa881da08,
+ 0x404bb740,
+ 0xa927f250,
+ 0xda909e53,
+ 0x60b2a8b2,
+ 0x5a7fc080,
+ 0x5a71c200,
+ 0x58930098,
+ 0xe2105894,
+ 0xdffc80a3,
+ 0x59157e7e,
+ 0x5b90c100,
+ 0xf248018b,
+ 0xc000a0dd,
+ 0xe10091e2,
+ 0xc0005d40,
+ 0xda909164,
+ 0x8502aa35,
+ 0x4792b520,
+ 0x489ab540,
+ 0x468ab580,
+ 0xaa21f288,
+ 0x0950d132,
+ 0xa255f248,
+ 0xa259f248,
+ 0xa8a1da10,
+ 0xaa41d810,
+ 0xa93bf248,
+ 0xa8bada48,
+ 0xf3106218,
+ 0xda488021,
+ 0xf248a93d,
+ 0xf288a0ca,
+ 0xda48a249,
+ 0xf248aa29,
+ 0xf208a151,
+ 0xda48a923,
+ 0x6218a8ae,
+ 0x5a10c200,
+ 0x8021f310,
+ 0xa241f208,
+ 0xa927f208,
+ 0xf20a9e4c,
+ 0x6098a928,
+ 0xf210588c,
+ 0xe2108023,
+ 0xf20882a3,
+ 0xda48a249,
+ 0xf208a8aa,
+ 0xda10a0cd,
+ 0xd810aa21,
+ 0xf208a8c1,
+ 0xf248a0c6,
+ 0x0a04a937,
+ 0xb7406243,
+ 0xf3105e8c,
+ 0xf2888021,
+ 0xda10a245,
+ 0xf008a8a1,
+ 0xda10a953,
+ 0xf00aa8a2,
+ 0x58a0a954,
+ 0x80a3e210,
+ 0xe0205c9c,
+ 0xda4882a3,
+ 0xf208aa2d,
+ 0xf208a0ad,
+ 0xf248a0b2,
+ 0xf248a0c5,
+ 0xf208a0ce,
+ 0xd810a251,
+ 0xc004a941,
+ 0xb5201880,
+ 0xd1314f0c,
+ 0xda080a54,
+ 0xc002a881,
+ 0xb5201c80,
+ 0x59404f94,
+ 0xf2885951,
+ 0x58c0a155,
+ 0xf28858d1,
+ 0xc42ea0d9,
+ 0x0a020cf2,
+ 0xc000b481,
+ 0x4220b101,
+ 0x74402884,
+ 0x0b50d132,
+ 0x9102c000,
+ 0xaa41da10,
+ 0x753ec09c,
+ 0x9152c011,
+ 0x08c6c0c0,
+ 0x0ce2c050,
+ 0xc000b421,
+ 0xa939f210,
+ 0x0a30d131,
+ 0xa881da08,
+ 0x28a0d052,
+ 0x58917640,
+ 0x4e8cb520,
+ 0x9222c000,
+ 0xc0600a02,
+ 0xb4810cae,
+ 0xda10c000,
+ 0x7440a8a1,
+ 0x9302c000,
+ 0xb5408502,
+ 0xc0004e9c,
+ 0xc2009260,
+ 0x74802900,
+ 0x9122c000,
+ 0xc0600a0a,
+ 0xb4810cae,
+ 0xc000c000,
+ 0x0a0690e0,
+ 0x0caec060,
+ 0xc000b481,
+ 0xaa39f210,
+ 0x75002a04,
+ 0xb540850a,
+ 0xc000491c,
+ 0x850490a2,
+ 0x491cb540,
+ 0x7108b783,
+ 0xb7e07500,
+ 0xc0005f94,
+ 0xb78392e2,
+ 0x75007208,
+ 0x9244c000,
+ 0x460cb780,
+ 0xc0007500,
+ 0xb78391a2,
+ 0x75007288,
+ 0x9104c000,
+ 0x5a94b760,
+ 0xaa61f210,
+ 0x9c629ea4,
+ 0xaa39f210,
+ 0x75002a20,
+ 0x90e2c000,
+ 0xaa21da10,
+ 0xc0007500,
+ 0xb7809244,
+ 0xb720598c,
+ 0xda08530c,
+ 0x9e8ca98e,
+ 0xb7839c62,
+ 0x75007108,
+ 0x90a2c000,
+ 0xb5438506,
+ 0xf2107b18,
+ 0xd011a8b9,
+ 0x75002a14,
+ 0x90e2c001,
+ 0x2a12d011,
+ 0x85167500,
+ 0x0a7ecffe,
+ 0x0cfac038,
+ 0x8d28e001,
+ 0x4d1cb540,
+ 0xc000b481,
+ 0xa8c1da10,
+ 0x6314b720,
+ 0x0a6ac284,
+ 0x856ac684,
+ 0x7462c058,
+ 0x5214b520,
+ 0x0c82c038,
+ 0x4c28b324,
+ 0xc000b481,
+ 0xc0020882,
+ 0xb4210c80,
+ 0xffd4c000,
+ 0xb7809bf5,
+ 0xc03e490c,
+ 0xb4810c82,
+ 0xb720c000,
+ 0xc0504d0c,
+ 0xb4210c82,
+ 0xda10c000,
+ 0xf288a921,
+ 0xda10a8d5,
+ 0x6123a926,
+ 0xda109e53,
+ 0x6097aa21,
+ 0x5e14b720,
+ 0xb5418702,
+ 0x857f7c82,
+ 0x459ab540,
+ 0xb540851a,
+ 0x0d86449a,
+ 0xb5801a04,
+ 0xb5404d8c,
+ 0x8526405b,
+ 0x415bb540,
+ 0x460ab540,
+ 0x18a05891,
+ 0x40cbb520,
+ 0x7fe4b55f,
+ 0x9baac014,
+ 0x7fe4b75f,
+ 0xb5438506,
+ 0xb5437a18,
+ 0xb5447a80,
+ 0xb5444000,
+ 0xb5434080,
+ 0xda107b80,
+ 0xf288a8a6,
+ 0x9e49aa55,
+ 0x5694b720,
+ 0x7c00b543,
+ 0xb7206243,
+ 0x8502434d,
+ 0xc10158c8,
+ 0x9e892880,
+ 0xa9c2da10,
+ 0xb5400a82,
+ 0xb5404e1c,
+ 0x5dc0519c,
+ 0x2dc0c0ff,
+ 0x3db0ca01,
+ 0x5a11c200,
+ 0x450ab580,
+ 0xfff43596,
+ 0xc0c099d3,
+ 0xc0120d82,
+ 0x0d0209c2,
+ 0xffd40942,
+ 0x714e9a92,
+ 0xc0018546,
+ 0x9dcf9148,
+ 0x99d5fff4,
+ 0x0d82c0c0,
+ 0x09c2c012,
+ 0x09060d02,
+ 0x9a83ffd4,
+ 0x1a70d091,
+ 0x0a027148,
+ 0x0a42d00b,
+ 0xa9c2da10,
+ 0x5a28c200,
+ 0x5dc09ea1,
+ 0x2dc0c0ff,
+ 0x3db0c801,
+ 0xfff43596,
+ 0xd05199a9,
+ 0xc2000a50,
+ 0xc2005a40,
+ 0x714e5ac1,
+ 0xfffe8506,
+ 0xf2509346,
+ 0x7500aa71,
+ 0x857fcfce,
+ 0x7f9cb540,
+ 0x9102c000,
+ 0xa9bef210,
+ 0x450ab760,
+ 0x9c629ea4,
+ 0xc0140d82,
+ 0xb78398e4,
+ 0x75007a88,
+ 0xb5438502,
+ 0xc0027a18,
+ 0xb7a092a4,
+ 0x0b025a8c,
+ 0xb783068f,
+ 0x75007108,
+ 0x9082c002,
+ 0x7208b783,
+ 0xc0017500,
+ 0xb78393e2,
+ 0x75007b08,
+ 0x9182c000,
+ 0xa9a2f208,
+ 0x7b08b5c3,
+ 0xa869f250,
+ 0x9c629e84,
+ 0x430ab500,
+ 0x7c08b783,
+ 0xc0007500,
+ 0xf2109382,
+ 0x9eaba825,
+ 0x7c08b5c3,
+ 0x9c629e84,
+ 0xaa21f250,
+ 0x9c629ea4,
+ 0xa9a1f208,
+ 0xa83df210,
+ 0x9e840d86,
+ 0xf2509c62,
+ 0x9eabaa25,
+ 0xa021f208,
+ 0x9ea40986,
+ 0xb7839c62,
+ 0x75007c08,
+ 0x91e4c000,
+ 0xc0140d86,
+ 0xb7839898,
+ 0x75007c08,
+ 0x9342ffff,
+ 0x90a0c000,
+ 0xc0140d86,
+ 0xb783988e,
+ 0x75007a88,
+ 0x9262fffd,
+ 0x0d82c0c0,
+ 0x09c2c012,
+ 0x09060d02,
+ 0x99f1ffd4,
+ 0x0a02c801,
+ 0x518cb580,
+ 0x0d82c0c0,
+ 0x09c2c012,
+ 0x09420d02,
+ 0x99e5ffd4,
+ 0x5194b760,
+ 0x991afff4,
+ 0xfff40d86,
+ 0xc0c09928,
+ 0xc0120d82,
+ 0x0d0209c2,
+ 0xffd40906,
+ 0x850299d6,
+ 0x0892c006,
+ 0x0c9ac430,
+ 0xb5400902,
+ 0xc006519c,
+ 0xb4418510,
+ 0xb104c000,
+ 0x2a404220,
+ 0x9d4f7500,
+ 0x4422b313,
+ 0xe0000087,
+ 0xffff1884,
+ 0xb7409284,
+ 0xc0064614,
+ 0xc4300892,
+ 0x09020c9a,
+ 0x8512c006,
+ 0xc000b441,
+ 0x4220b104,
+ 0x2a00c002,
+ 0x9d537500,
+ 0x4422b314,
+ 0xe0000089,
+ 0xffff1884,
+ 0x0a029264,
+ 0x0ceac03e,
+ 0x40e8b960,
+ 0xc000b481,
+ 0x93c1ffff,
+ 0xc0007680,
+ 0x0a029122,
+ 0x0ceac03e,
+ 0xc000b481,
+ 0x9180c000,
+ 0x448cb780,
+ 0x088a7504,
+ 0x0ceac03e,
+ 0x1894d00c,
+ 0xc000b421,
+ 0x0d82c0c0,
+ 0x0d0209e2,
+ 0xffd40942,
+ 0x0a029982,
+ 0x0cb6c034,
+ 0xc000b481,
+ 0x7deeb79f,
+ 0x7e6eb7bf,
+ 0x7eeeb7df,
+ 0x7f6eb7ff,
+ 0x8c20c002,
+ 0xa60d9c22,
+ 0x7efec01c,
+ 0xc0000a82,
+ 0xc0c09182,
+ 0xc0120d82,
+ 0x0d0209c2,
+ 0xffd40906,
+ 0xc0009964,
+ 0xc4349240,
+ 0x0a020cb2,
+ 0xc000b481,
+ 0x4220b101,
+ 0x74402884,
+ 0x90e2c000,
+ 0x7a08b783,
+ 0xc0097500,
+ 0xb78091a2,
+ 0x75024e0c,
+ 0x90c4c000,
+ 0xc0140d82,
+ 0x3ac09a29,
+ 0x5694b740,
+ 0x560cb740,
+ 0xa8c5d810,
+ 0xaa55f088,
+ 0x4592b720,
+ 0x9e496243,
+ 0x5a11c200,
+ 0xba090a04,
+ 0xba244002,
+ 0x70484002,
+ 0x06850305,
+ 0x9138c000,
+ 0x490cb780,
+ 0xb5802a51,
+ 0xc003490c,
+ 0xf21091c0,
+ 0x2a04aa39,
+ 0xc0027500,
+ 0xb78093a2,
+ 0x7440490c,
+ 0x3942d011,
+ 0x490cb540,
+ 0x929cc002,
+ 0x4792b760,
+ 0xba249e5c,
+ 0xc002400a,
+ 0xc00291a2,
+ 0xb760911c,
+ 0xb740650a,
+ 0x9e995f04,
+ 0xba099e2d,
+ 0xd0a24003,
+ 0x9e485e7f,
+ 0x5a6dc200,
+ 0xc2000208,
+ 0xd2265a17,
+ 0x0c065908,
+ 0x5a14c200,
+ 0x9e401208,
+ 0xa94ee038,
+ 0x4002ba24,
+ 0x9e545090,
+ 0xc0017902,
+ 0xb7819102,
+ 0x75004b88,
+ 0x9064c001,
+ 0x470ab780,
+ 0xba249e48,
+ 0x70084002,
+ 0x9378c000,
+ 0xc0007640,
+ 0xb78190e4,
+ 0x75024b08,
+ 0x92c2c000,
+ 0x1e32d011,
+ 0x478ab580,
+ 0x48fd9e54,
+ 0x470ab560,
+ 0x4b90b501,
+ 0xb5402959,
+ 0x20c2490c,
+ 0xc000a0c1,
+ 0x850290a0,
+ 0x4b98b541,
+ 0x458ab780,
+ 0x400aba24,
+ 0x90fcc000,
+ 0x650ab780,
+ 0xb5800a04,
+ 0xb720650a,
+ 0xc03e490c,
+ 0xb4210c82,
+ 0xb780c000,
+ 0x0a04458a,
+ 0x458ab580,
+ 0x9a96c014,
+ 0x7108b783,
+ 0xc0027500,
+ 0xb7839222,
+ 0x75007208,
+ 0x9182c002,
+ 0x518cb780,
+ 0x75002a40,
+ 0x90e4c000,
+ 0x4008b784,
+ 0xc002751a,
+ 0xb7809024,
+ 0xb721580c,
+ 0xda087c92,
+ 0x9e48a881,
+ 0xc0007002,
+ 0xb7809284,
+ 0x8502430a,
+ 0x7c9ab541,
+ 0x440ab580,
+ 0x4412b760,
+ 0x530cb780,
+ 0xb5438506,
+ 0xb5437b18,
+ 0x9ea47c18,
+ 0xf2109c62,
+ 0x2a10aa39,
+ 0xc0007500,
+ 0xb78393e2,
+ 0x75007c08,
+ 0x90e4c000,
+ 0x7c8ab781,
+ 0xc0007502,
+ 0xb78392a4,
+ 0x75007b08,
+ 0xd0010902,
+ 0xc4380922,
+ 0x0a020c82,
+ 0xc000b481,
+ 0x4220b101,
+ 0x309428f1,
+ 0x0c82c038,
+ 0xc000b421,
+ 0x983ec014,
+ 0x4e0cb780,
+ 0xa955f288,
+ 0x71040a04,
+ 0x4e0cb580,
+ 0x90a4c000,
+ 0xb5408502,
+ 0xda104e1c,
+ 0xb720a8a5,
+ 0x58914592,
+ 0xba0960a3,
+ 0x9e4c4003,
+ 0x08843a84,
+ 0x020b7102,
+ 0x2a3dcffe,
+ 0x4426b354,
+ 0xd0510289,
+ 0x744028d0,
+ 0x9142c000,
+ 0x0d82c0c0,
+ 0x09c2c012,
+ 0x09420d02,
+ 0x982fffd4,
+ 0x518cb780,
+ 0xc0007500,
+ 0x9eab90a2,
+ 0x9b71ffd4,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0xa205f839,
+ 0x4008b724,
+ 0x5204b740,
+ 0x448ab780,
+ 0x5908d0a6,
+ 0xb7409e2d,
+ 0xe030570c,
+ 0xb760a94e,
+ 0xb744639c,
+ 0xb7444098,
+ 0x1a044000,
+ 0x448ab580,
+ 0xa8cdc030,
+ 0x5a40e200,
+ 0x0a20d251,
+ 0xa882da08,
+ 0x82a3e210,
+ 0x5194b540,
+ 0x5c905c95,
+ 0x4008b524,
+ 0x92c4c001,
+ 0x4088b784,
+ 0xd3f10a04,
+ 0x744428ce,
+ 0x4088b584,
+ 0x9034c001,
+ 0x7f94b760,
+ 0xb5438506,
+ 0x24a67a98,
+ 0xb5437640,
+ 0xb5207c18,
+ 0xc0005194,
+ 0xd1319202,
+ 0xb78008a0,
+ 0xc801402b,
+ 0x9e483c80,
+ 0x5a40c200,
+ 0x2a40c0ff,
+ 0xb5803208,
+ 0x0806518c,
+ 0xaa1df9f8,
+ 0xb7249c22,
+ 0xb7404088,
+ 0xd0a65e04,
+ 0x9e2d5904,
+ 0xaa4dc830,
+ 0x448ab580,
+ 0x09a0d132,
+ 0x458ab720,
+ 0xaa61d810,
+ 0x4002ba19,
+ 0x5a11c200,
+ 0x70c81a04,
+ 0x9104c000,
+ 0x7f8cb780,
+ 0x3a00c040,
+ 0x7f8cb580,
+ 0x4e8cb720,
+ 0x0a18d011,
+ 0xc00070c8,
+ 0xb7809104,
+ 0xc0107f8c,
+ 0xb5803a00,
+ 0xd0117f8c,
+ 0x70c80a1c,
+ 0x9104c000,
+ 0x7f8cb780,
+ 0x3a00c020,
+ 0x7f8cb580,
+ 0x560cb780,
+ 0xa916f288,
+ 0xa919f288,
+ 0xb7209e50,
+ 0xd011460a,
+ 0x62411a24,
+ 0x4002ba09,
+ 0x704800b2,
+ 0x9106c000,
+ 0x7f8cb780,
+ 0x2a7acfff,
+ 0x7f8cb580,
+ 0x1a22d011,
+ 0x62459e52,
+ 0xc0007048,
+ 0xb7809106,
+ 0xc7fe7f8c,
+ 0xb5802a7e,
+ 0xb7407f8c,
+ 0xd0a2451a,
+ 0xf3105e11,
+ 0x70c88821,
+ 0x9104c000,
+ 0x7f8cb780,
+ 0x2a4ecfff,
+ 0x7f8cb580,
+ 0x568cb740,
+ 0x7f8cb720,
+ 0xaa45d808,
+ 0x9e8a9e50,
+ 0x5a11c200,
+ 0x62091a04,
+ 0x5194b720,
+ 0xba240a04,
+ 0x70c84002,
+ 0xb5202494,
+ 0xc0005194,
+ 0xc8019118,
+ 0xb5203c80,
+ 0xc0005194,
+ 0xd81091c0,
+ 0xc801aa61,
+ 0x9e483c80,
+ 0x5a40c200,
+ 0x2a40c0ff,
+ 0xb5803208,
+ 0xf008518c,
+ 0xc040aa59,
+ 0x75002a00,
+ 0x9102c000,
+ 0x518cb780,
+ 0x3a00c101,
+ 0x518cb580,
+ 0x5194b760,
+ 0x9a60ffd4,
+ 0xf9f80802,
+ 0x9c22aa1d,
+ 0x5714b700,
+ 0x0e04d251,
+ 0x560cb760,
+ 0xa881da08,
+ 0x2dfcc00e,
+ 0x0cbac034,
+ 0xa961f008,
+ 0xc0805895,
+ 0x9e825810,
+ 0xc000b441,
+ 0x454ab780,
+ 0xa963f008,
+ 0x5a10c200,
+ 0x8021f310,
+ 0xa8e9f008,
+ 0xf0080c84,
+ 0xb421a261,
+ 0xb780c000,
+ 0xf00846ca,
+ 0xf310a96b,
+ 0xf0088021,
+ 0x0c84a8ed,
+ 0xa269f008,
+ 0xc000b421,
+ 0x46cab780,
+ 0xa96ff008,
+ 0x8021f310,
+ 0xa8f5f008,
+ 0xf0080c8c,
+ 0xb421a26d,
+ 0xf008c000,
+ 0x0c84a97d,
+ 0xc000b441,
+ 0x4d8cb780,
+ 0xd2240a08,
+ 0x72445890,
+ 0x931cc000,
+ 0x0e04d131,
+ 0xa903da08,
+ 0xe2109e4c,
+ 0x710288a1,
+ 0x91d6c000,
+ 0xaa75f008,
+ 0xa8fdf008,
+ 0x0a00c010,
+ 0xa275f008,
+ 0x0880c008,
+ 0xa0fdf008,
+ 0x4f0cb780,
+ 0x0cdac034,
+ 0xc000b481,
+ 0x4f8cb720,
+ 0xb4210c84,
+ 0xb780c000,
+ 0x0ce44f0c,
+ 0xb4810a40,
+ 0xb720c000,
+ 0x0c844f8c,
+ 0xb42108c0,
+ 0xb780c000,
+ 0xb7204f0c,
+ 0x1ce44f8c,
+ 0x0a00c010,
+ 0x4f0cb580,
+ 0xaa65f048,
+ 0x0880c008,
+ 0x4f8cb520,
+ 0xc000b481,
+ 0xa8edf048,
+ 0xb4210c84,
+ 0xf048c000,
+ 0xf048aa65,
+ 0x0c84a8ed,
+ 0x0a00c010,
+ 0xa265f048,
+ 0xaa75f048,
+ 0x0880c008,
+ 0xa0edf048,
+ 0xc000b481,
+ 0xa965f088,
+ 0xb4410c88,
+ 0xd131c000,
+ 0xb7800c80,
+ 0xf088402b,
+ 0xcffea967,
+ 0xf3102a40,
+ 0xf0888021,
+ 0x0c88a969,
+ 0xa265f088,
+ 0xc000b441,
+ 0x0c80d131,
+ 0x402bb780,
+ 0xa96bf088,
+ 0x2a40cffe,
+ 0x8021f310,
+ 0xa97df048,
+ 0xf0881c8c,
+ 0xb441a269,
+ 0xd131c000,
+ 0xb7800c80,
+ 0xf048402b,
+ 0x76c0a97f,
+ 0x5a11c200,
+ 0x5a14c200,
+ 0x8021f310,
+ 0xa27df048,
+ 0x9182c001,
+ 0x454ab720,
+ 0xb4211ca8,
+ 0xb780c000,
+ 0x0c8446ca,
+ 0x5a0dc200,
+ 0x58c0c200,
+ 0xb4813242,
+ 0xd131c000,
+ 0xd8080d04,
+ 0x0c8caa41,
+ 0x588cc200,
+ 0x28fccffe,
+ 0x5a50c200,
+ 0xb4213098,
+ 0xd251c000,
+ 0xd8080d04,
+ 0x0ca0aa41,
+ 0x5a11c200,
+ 0x2a3c1a10,
+ 0x3a00c004,
+ 0xc000b481,
+ 0x4d8cb780,
+ 0xb5800a04,
+ 0x9c224d8c,
+ 0xc43ea68d,
+ 0x0a020c92,
+ 0xc000b481,
+ 0x4220b103,
+ 0x5c8cb780,
+ 0xa885da08,
+ 0xa909da08,
+ 0xa189da08,
+ 0xa081da08,
+ 0xa105da08,
+ 0x0a020cd0,
+ 0xc000b481,
+ 0x4220b103,
+ 0x5c0cb720,
+ 0x518cb780,
+ 0x5c8cb7a0,
+ 0x40b3b720,
+ 0x412bb740,
+ 0x412bb560,
+ 0x75002a40,
+ 0xb5200303,
+ 0xb5404033,
+ 0xc00040ab,
+ 0xb78490e2,
+ 0x750a4008,
+ 0x90f2c000,
+ 0x4008b784,
+ 0xc00d751a,
+ 0xb7819204,
+ 0x0a047c8a,
+ 0x7c8ab581,
+ 0x0ca6c450,
+ 0xb4810a02,
+ 0xb103c000,
+ 0x00874220,
+ 0x2880c031,
+ 0xc00f0207,
+ 0xd0a42a7c,
+ 0xd22859e1,
+ 0x000759c1,
+ 0x287ccffe,
+ 0x0a020c88,
+ 0xc000b481,
+ 0x4220b103,
+ 0x5bc1c180,
+ 0xcffe9e9a,
+ 0x0cbc2d7c,
+ 0xc000b481,
+ 0x4220b103,
+ 0xb7400087,
+ 0xb781568c,
+ 0xc0fc7b8a,
+ 0xd0f22880,
+ 0xd0a4283e,
+ 0x9e415b19,
+ 0xa8d2d888,
+ 0xb5019e95,
+ 0xdffc7b92,
+ 0x12187e7e,
+ 0x4002ba1c,
+ 0x91c2c002,
+ 0xc00076c2,
+ 0xb7809384,
+ 0xb740480a,
+ 0xba245f04,
+ 0xc2004002,
+ 0x58ed58ff,
+ 0x589700c2,
+ 0x5908d0a6,
+ 0x58949e2d,
+ 0x9e591242,
+ 0xa8cee038,
+ 0x4a7d5230,
+ 0x249e9ea7,
+ 0xc001a0c2,
+ 0xb7809180,
+ 0xda08468a,
+ 0xba24a8a1,
+ 0x70484002,
+ 0x907cc001,
+ 0x488ab780,
+ 0x4812b720,
+ 0x5f04b740,
+ 0xb5800a04,
+ 0xba09488a,
+ 0xd0a24003,
+ 0x9e495e7f,
+ 0xc2009e2d,
+ 0x02185a6d,
+ 0x5a17c200,
+ 0x5908d226,
+ 0x5a14c200,
+ 0xe0389ea7,
+ 0x149ea94d,
+ 0x08869e4c,
+ 0x312250b0,
+ 0xb780a141,
+ 0x0a04480a,
+ 0x480ab580,
+ 0x7188b783,
+ 0xb7837500,
+ 0xc0007208,
+ 0xc01c90c4,
+ 0xc0027d3e,
+ 0xc01c9184,
+ 0xd0117d3e,
+ 0xd02103f0,
+ 0x76c20527,
+ 0xaa39f210,
+ 0xd0010882,
+ 0x2a040892,
+ 0xb7407902,
+ 0xc0005a8c,
+ 0xd80890e2,
+ 0x0a04aa49,
+ 0xa249d808,
+ 0xa94bf008,
+ 0xa94cf00a,
+ 0x8027f310,
+ 0x82a5e010,
+ 0xa249f008,
+ 0xa0cdf008,
+ 0x7688b783,
+ 0x08827500,
+ 0x0892d002,
+ 0x0a0276c2,
+ 0x0a42d002,
+ 0xc0007848,
+ 0xc07c90c2,
+ 0xda088542,
+ 0x76c2a123,
+ 0xa953f008,
+ 0x90c4c000,
+ 0xaa41da08,
+ 0x9080c000,
+ 0xaa21da08,
+ 0x80a1e310,
+ 0xaa4dd808,
+ 0xa0d1f008,
+ 0xd8080a04,
+ 0xc006a24d,
+ 0xb72091c0,
+ 0x9d2e5a8c,
+ 0xaa39f210,
+ 0x8136c301,
+ 0x8120c201,
+ 0x4525b740,
+ 0x75002a04,
+ 0x8027f010,
+ 0x8221f310,
+ 0xb5800103,
+ 0xc001452d,
+ 0x76c290a2,
+ 0x90c4c000,
+ 0xaa41da08,
+ 0x9080c000,
+ 0xaa21da08,
+ 0xa25dd808,
+ 0xc00176c6,
+ 0x76c09082,
+ 0x91a4c000,
+ 0xd80874c0,
+ 0xe002a953,
+ 0xf2108d2a,
+ 0xd808802d,
+ 0xc000a251,
+ 0x74c092c0,
+ 0xa947d848,
+ 0x8d26e002,
+ 0x9160c000,
+ 0xaa41da08,
+ 0xd84874c0,
+ 0xd808a947,
+ 0xe002a25d,
+ 0xf2108d2a,
+ 0xd848802d,
+ 0xb783a245,
+ 0x75007308,
+ 0x9302c000,
+ 0x440ab780,
+ 0x70489e41,
+ 0x9244c000,
+ 0xb5438502,
+ 0xc43a7318,
+ 0x0a020c82,
+ 0xc000b481,
+ 0x4220b103,
+ 0x29fecfef,
+ 0x0c82c03a,
+ 0xc000b461,
+ 0x440ab780,
+ 0x70489e41,
+ 0xd0020882,
+ 0x76c60892,
+ 0xd0010a02,
+ 0x78480a42,
+ 0x9242c000,
+ 0xb5438506,
+ 0xc43a7318,
+ 0x0a020c82,
+ 0xc000b481,
+ 0x4220b103,
+ 0x3980c011,
+ 0x0c82c03a,
+ 0xc000b461,
+ 0xc0017780,
+ 0x76c091a2,
+ 0x92e4c000,
+ 0xaa21da08,
+ 0xa947f008,
+ 0xa8d5d808,
+ 0x8021f310,
+ 0xa8dad808,
+ 0xa245f008,
+ 0x0c849e44,
+ 0xa0dad808,
+ 0xd80800c2,
+ 0xc000a0d5,
+ 0xda0892a0,
+ 0xf008aa41,
+ 0xd848a95b,
+ 0xf310a8c9,
+ 0xd8488021,
+ 0xf008a8ce,
+ 0x9e44a259,
+ 0xd8480c84,
+ 0x00c2a0ce,
+ 0xa0c9d848,
+ 0xaa5dd808,
+ 0xa95ff008,
+ 0xa940f04a,
+ 0xa9c7f048,
+ 0x8021f310,
+ 0xa94ff048,
+ 0xa25df008,
+ 0x8221f210,
+ 0xa8c2d848,
+ 0xa241f048,
+ 0x8037f010,
+ 0x80a9e210,
+ 0xd8480c84,
+ 0xf048a0c2,
+ 0xf048a245,
+ 0xb7bfa0cd,
+ 0xb7df7eee,
+ 0xb7ff7f6e,
+ 0x8c607fee,
+ 0xc0369c22,
+ 0x9e5c0cfe,
+ 0xc000b481,
+ 0xc0029c22,
+ 0xd01172c0,
+ 0x9c221c0a,
+ 0x9c220802,
+ 0x598cb780,
+ 0xda088502,
+ 0xf010a88d,
+ 0xf010a16b,
+ 0xf010a16f,
+ 0xd810a173,
+ 0xd810a16f,
+ 0xf010a16b,
+ 0x9c22a0e1,
+ 0x5b14b720,
+ 0xa8e9d810,
+ 0x414bb520,
+ 0xaa71f010,
+ 0x5b8cb740,
+ 0x5a0fc200,
+ 0xa245f048,
+ 0xa8edf010,
+ 0x41cdb520,
+ 0xaa69f010,
+ 0x414db580,
+ 0xa96ff010,
+ 0xa869f010,
+ 0x8021e210,
+ 0xa041f008,
+ 0xc0309c22,
+ 0xb740ac7d,
+ 0xc038591c,
+ 0xc030a45d,
+ 0xc038ac7d,
+ 0xc030a45d,
+ 0xc038ac7d,
+ 0xb720a45d,
+ 0xb7805894,
+ 0x8706598c,
+ 0x5d0cb720,
+ 0x8576c002,
+ 0xa108d28a,
+ 0x485bb540,
+ 0xb5408502,
+ 0xb5404039,
+ 0x9c2240a1,
+ 0xb780a60d,
+ 0xf208598c,
+ 0x9ea5a881,
+ 0x00077444,
+ 0xc0000301,
+ 0xb7809104,
+ 0xdac8590c,
+ 0xc008a805,
+ 0x74429300,
+ 0x92a4c008,
+ 0xaa29da10,
+ 0xc0007500,
+ 0xd2909344,
+ 0x7500aa2d,
+ 0x92a4c000,
+ 0xaa25d290,
+ 0x590cb720,
+ 0x5b94b720,
+ 0xb7007500,
+ 0xb7404cab,
+ 0xe00244db,
+ 0xf2108526,
+ 0xb5808021,
+ 0xc00744cb,
+ 0xd2909300,
+ 0x7500aa2d,
+ 0x9382c001,
+ 0x588cb780,
+ 0x590cb740,
+ 0xa926d290,
+ 0x5b94b760,
+ 0xa891d2c8,
+ 0xa9c5d008,
+ 0xa8cad008,
+ 0xba097680,
+ 0x00024000,
+ 0xd8509e49,
+ 0xd011a967,
+ 0xb3040a02,
+ 0x00094422,
+ 0x7002c010,
+ 0x70c0cc12,
+ 0x04077680,
+ 0xe0020007,
+ 0xf2108526,
+ 0xd8508021,
+ 0xb780a265,
+ 0x75004648,
+ 0x91a2c000,
+ 0xa937da50,
+ 0xaa21da90,
+ 0x80a7e210,
+ 0xda900a04,
+ 0xda50a221,
+ 0x0007a0b5,
+ 0x9320c005,
+ 0xaa39d290,
+ 0xc0017500,
+ 0xb78091a2,
+ 0xd208590c,
+ 0xd208a881,
+ 0xd208a88a,
+ 0xd011a905,
+ 0x9e490812,
+ 0xaa25d290,
+ 0x7002c010,
+ 0x5b8cb720,
+ 0x7080c812,
+ 0x00057500,
+ 0x44bbb740,
+ 0x8526e002,
+ 0x8021f210,
+ 0xa937da50,
+ 0x44abb580,
+ 0xa8a1da90,
+ 0x8025f210,
+ 0x08840005,
+ 0xa0a1da90,
+ 0xa235da50,
+ 0x9120c004,
+ 0x588cb780,
+ 0xa8b1f250,
+ 0xa995f248,
+ 0x9ea67440,
+ 0xa18df248,
+ 0x9316c000,
+ 0x5b8cb720,
+ 0x4729b780,
+ 0x9e887500,
+ 0x0802d002,
+ 0x90a4c000,
+ 0xaa29d290,
+ 0xb7800008,
+ 0xd208590c,
+ 0x0289a889,
+ 0x7040c010,
+ 0x9280c001,
+ 0x590cb7a0,
+ 0x0a50d0b1,
+ 0xa882d208,
+ 0xa929f250,
+ 0xf2081196,
+ 0x5c85a8ad,
+ 0x588b9e4c,
+ 0x70c2cc12,
+ 0x51f35150,
+ 0x5914d126,
+ 0x5987d1a4,
+ 0x81afe220,
+ 0xf2500d02,
+ 0xc014a129,
+ 0xb7839a14,
+ 0x75007188,
+ 0x90e2c000,
+ 0xc0149e83,
+ 0xc0009a36,
+ 0x58199060,
+ 0xaa29d290,
+ 0x5b94b700,
+ 0xc01000e8,
+ 0x12687002,
+ 0x7100c012,
+ 0xa8a6d290,
+ 0xa8a9d208,
+ 0xd2087640,
+ 0xd011a925,
+ 0xb3040a02,
+ 0x00094422,
+ 0x7040c010,
+ 0x7080c812,
+ 0xb7407640,
+ 0x000544da,
+ 0x8526e002,
+ 0x80a1e210,
+ 0x4648b780,
+ 0xb5207500,
+ 0xc00044ca,
+ 0xda5091a2,
+ 0xda90a937,
+ 0xe210aa21,
+ 0x0a0480a5,
+ 0xa221da90,
+ 0xa0b5da50,
+ 0xaa35da08,
+ 0xa8a9da10,
+ 0x70481a08,
+ 0x4443b416,
+ 0xb79f0005,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0xa60d9c22,
+ 0x598cb720,
+ 0x402db780,
+ 0x9e8d7502,
+ 0x9264c00c,
+ 0x5b0cb780,
+ 0xa88ef208,
+ 0x7646c003,
+ 0xc0019ea2,
+ 0xb783911a,
+ 0x75007188,
+ 0x9102c000,
+ 0x5a8cb780,
+ 0x6004b740,
+ 0x90c0c000,
+ 0x5a8cb780,
+ 0x6084b740,
+ 0xa881f208,
+ 0xd0a69e2d,
+ 0xc8305904,
+ 0x9e49aa4d,
+ 0xd2246219,
+ 0xb7805817,
+ 0xd0b1590c,
+ 0xb72008c0,
+ 0x9ea64031,
+ 0x588cb7c0,
+ 0xc0015407,
+ 0xb7c09300,
+ 0xb7c05914,
+ 0xd0a2588c,
+ 0xb7235e4b,
+ 0x75007188,
+ 0x5a94b720,
+ 0xc0000902,
+ 0xc200911c,
+ 0x75005a07,
+ 0xffff0904,
+ 0xc01c939a,
+ 0xc0007c7e,
+ 0xb7809102,
+ 0xb740404d,
+ 0xc0006004,
+ 0xb78090c0,
+ 0xb740404d,
+ 0xd2266084,
+ 0x9e2d5904,
+ 0xa8cec830,
+ 0xa8cdf010,
+ 0x50ab9e4c,
+ 0xd0a46099,
+ 0xd0b15817,
+ 0xd2080e60,
+ 0x9e89a881,
+ 0x9e915407,
+ 0xda105404,
+ 0x7500aa29,
+ 0x90e2c000,
+ 0xaa2dd290,
+ 0xc0007500,
+ 0xf24892c2,
+ 0xf210a95b,
+ 0xf2488029,
+ 0xf250a259,
+ 0xf250a026,
+ 0xf248a02a,
+ 0xf010a046,
+ 0xf248aa49,
+ 0xf248a251,
+ 0xc007a255,
+ 0xd2909300,
+ 0x7500aa39,
+ 0x91c4c007,
+ 0x5b8cb720,
+ 0x46a9b780,
+ 0x9e897500,
+ 0x90c4c007,
+ 0xa95bf248,
+ 0x8029f210,
+ 0xa259f248,
+ 0xa8b5d290,
+ 0xc0007440,
+ 0xf01090c2,
+ 0xc000aa49,
+ 0xf2489240,
+ 0xf010a8d1,
+ 0xd0a6aa49,
+ 0xe2405908,
+ 0xd2268123,
+ 0xf3105904,
+ 0xf3108021,
+ 0xc2008221,
+ 0xf2485a0d,
+ 0xf248a251,
+ 0xf248aa51,
+ 0xd290a255,
+ 0x7440a8b5,
+ 0x9102c000,
+ 0xa026f250,
+ 0xa02af250,
+ 0x9360c005,
+ 0x4649b780,
+ 0xc0017500,
+ 0xda9090e2,
+ 0xf250a8a2,
+ 0xda90a925,
+ 0x1c84aa21,
+ 0xd0b19d1e,
+ 0xd3330ce0,
+ 0xb7606127,
+ 0xc2004031,
+ 0xc2005a40,
+ 0xc2015a45,
+ 0xf3108128,
+ 0x9ea18021,
+ 0xa9a1da90,
+ 0xf2500507,
+ 0x55afa225,
+ 0x98d7c014,
+ 0xa025f250,
+ 0xa029f250,
+ 0x9220c004,
+ 0xa92bda10,
+ 0xaa2df210,
+ 0xa8a6f250,
+ 0x88a1e310,
+ 0xda129e4a,
+ 0x8185a928,
+ 0xd0331884,
+ 0xf3106122,
+ 0xf31088b1,
+ 0xc0088a21,
+ 0xc2007540,
+ 0xc2015a07,
+ 0xf3108128,
+ 0xf2508021,
+ 0xc000a225,
+ 0x9eab91bc,
+ 0x9965fff4,
+ 0xaa25f250,
+ 0x52a3c200,
+ 0x5203c200,
+ 0xa225f250,
+ 0x6104b740,
+ 0xaa25f250,
+ 0x5904d2a6,
+ 0xc8309e2d,
+ 0x0189a8cd,
+ 0x59ffd224,
+ 0x01030c82,
+ 0xc0140503,
+ 0xb74098ff,
+ 0x9d47619c,
+ 0xa926c210,
+ 0x05810181,
+ 0x98dbc014,
+ 0xaa29f210,
+ 0xf2507502,
+ 0xc000a025,
+ 0xf25090c4,
+ 0xc002a029,
+ 0xda109040,
+ 0xda12a8aa,
+ 0xd0a2a954,
+ 0xf0115c84,
+ 0x70488e22,
+ 0x9176c000,
+ 0xaa45f248,
+ 0xc2000208,
+ 0xf2505a07,
+ 0xc001a229,
+ 0xf24891c0,
+ 0xd011a8c5,
+ 0x9e4a0e12,
+ 0x8a21f310,
+ 0x6104d033,
+ 0xc2016099,
+ 0xf2508122,
+ 0xda10a12b,
+ 0xd0b1aa55,
+ 0x1a040ce0,
+ 0x5a07c200,
+ 0x8021f310,
+ 0x4031b760,
+ 0xa229f250,
+ 0xa9d5da10,
+ 0x05079ea1,
+ 0x198455af,
+ 0x984bc014,
+ 0xa029f250,
+ 0x90e0c000,
+ 0xaa2df210,
+ 0xf2100a04,
+ 0xf248a22d,
+ 0xf210a8c9,
+ 0xf250aa29,
+ 0xd0a6a8aa,
+ 0x75025904,
+ 0x8122c201,
+ 0x802bf210,
+ 0xa0aef250,
+ 0x588bc200,
+ 0x90f4c000,
+ 0xd0109e4a,
+ 0xf2507044,
+ 0xb79fa229,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0xb7209c22,
+ 0xd810598c,
+ 0x0802aa61,
+ 0x41abb580,
+ 0xb7409c22,
+ 0xb720590c,
+ 0xf0125d94,
+ 0xf008a96c,
+ 0xb720aa4d,
+ 0xb740414d,
+ 0xf31040dd,
+ 0x62438a21,
+ 0x8021f310,
+ 0x40cdb580,
+ 0xa8edf010,
+ 0xa0cdf008,
+ 0xc0089c22,
+ 0x9e5874c0,
+ 0xc0009e52,
+ 0xd00290fc,
+ 0x1a1470c0,
+ 0x501351f3,
+ 0x7400c005,
+ 0x90fcc000,
+ 0x7000d002,
+ 0x50131a50,
+ 0xb7400128,
+ 0xb7806104,
+ 0xd1a6618c,
+ 0x9e2d5904,
+ 0xa8e5c040,
+ 0xaa4dc830,
+ 0x60097044,
+ 0x1214d01d,
+ 0x5013d01a,
+ 0x48bab340,
+ 0x50101222,
+ 0x9e5c9c22,
+ 0x08827526,
+ 0x4000d01e,
+ 0x48bcb340,
+ 0x7500c380,
+ 0x90bcc000,
+ 0x084ec002,
+ 0xc0049c22,
+ 0xc0007508,
+ 0x0a04915c,
+ 0x5a07c200,
+ 0x7508c004,
+ 0xffff0884,
+ 0xb740935a,
+ 0x9d4b621c,
+ 0xa805c220,
+ 0x691dd013,
+ 0x8021e210,
+ 0xe0009c22,
+ 0xb3300d00,
+ 0xb3304422,
+ 0xb3404842,
+ 0xc00248a2,
+ 0xf2108502,
+ 0x7500882d,
+ 0x90fac000,
+ 0x0c029e59,
+ 0x50311209,
+ 0x9e5a9c22,
+ 0x9e5250d0,
+ 0x52695469,
+ 0x9c223042,
+ 0x0007a685,
+ 0x9e909e81,
+ 0x2cfccffe,
+ 0x9e4c9e41,
+ 0x64915c41,
+ 0x28fccffe,
+ 0x584162c3,
+ 0x60839e44,
+ 0xc2806009,
+ 0x9ea05a41,
+ 0x9e880490,
+ 0x04909d09,
+ 0x71029e4c,
+ 0x8504c001,
+ 0x5e41d0a2,
+ 0x4468b302,
+ 0x8121f320,
+ 0x5d40d0a6,
+ 0x2afccffe,
+ 0x8123f310,
+ 0x040d000d,
+ 0xd0339e54,
+ 0x9e5c6138,
+ 0xe2106145,
+ 0x9e918125,
+ 0xb7bf0462,
+ 0xb7df7f6e,
+ 0x8c407fee,
+ 0x00009c22,
+ 0x87c2c809,
+ 0x0c20b060,
+ 0x87c2c809,
+ 0x0a60b060,
+ 0x87c2c809,
+ 0x09c0b060,
+};
+
+unsigned long aui32H264VBR_SlaveMTXTOPAZFWData[] = {
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x809000b0,
+ 0x809002f8,
+ 0x82883764,
+ 0x8288328c,
+ 0x8288329c,
+ 0x8288333c,
+ 0x828831a0,
+ 0x82883238,
+ 0x828831f6,
+ 0x8288336c,
+ 0x828833a8,
+ 0x828833e4,
+ 0x8288341c,
+ 0x82883420,
+ 0x82883450,
+ 0x82883480,
+ 0x828834a8,
+ 0x8288325c,
+ 0x828834b0,
+ 0x828834b8,
+ 0x828834e8,
+ 0x828834f0,
+ 0x82883524,
+ 0x82883a04,
+ 0x82883896,
+ 0x828838fe,
+ 0x8288393e,
+ 0x828839c0,
+ 0x82883870,
+ 0x82883724,
+ 0x8288382c,
+ 0x8288386c,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x8090074c,
+ 0x8090074c,
+ 0x809021f0,
+ 0x80901c70,
+ 0x80902f6c,
+ 0x809025c8,
+ 0x80901f98,
+ 0x8090074c,
+ 0x8090074c,
+ 0x8090074c,
+ 0x8090074c,
+ 0x8090074c,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0xa0101100,
+ 0xa01001b0,
+ 0xa0101102,
+ 0xa01001b2,
+ 0xa0101104,
+ 0xa0100124,
+ 0xa0101106,
+ 0xa0100126,
+ 0xa0100134,
+ 0x00000000,
+ 0xa0101120,
+ 0xa0100136,
+ 0xa0101122,
+ 0xa0100144,
+ 0x80101160,
+ 0x80101162,
+ 0x80101180,
+ 0x80101182,
+ 0x80100140,
+ 0x80100142,
+ 0x80100150,
+ 0x80100152,
+ 0x80100154,
+ 0x80100146,
+ 0x803003a0,
+ 0x80100100,
+ 0x80105156,
+ 0xa0101164,
+ 0xa0100184,
+ 0x80101194,
+ 0x801001b4,
+ 0x80100146,
+ 0x00000000,
+ 0x00000003,
+ 0x00000002,
+ 0x00000002,
+ 0x00000001,
+ 0x00000001,
+ 0x00000001,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000005,
+ 0x000f9400,
+ 0x000f9401,
+ 0x000fd403,
+ 0x000fd407,
+ 0x000fd517,
+ 0x000fdd37,
+ 0x000fff37,
+ 0x000ffb37,
+ 0x00006b37,
+ 0x00006b36,
+ 0x00002b36,
+ 0x00002b30,
+ 0x00002a20,
+ 0x40002220,
+ 0x00000000,
+ 0x00000000,
+ 0x00010001,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x01010000,
+ 0x02020201,
+ 0x04030303,
+ 0x05040404,
+ 0x00140005,
+ 0x001a0016,
+ 0x0020001c,
+ 0x00280024,
+ 0x0034002c,
+ 0x00400038,
+ 0x00500048,
+ 0x00680058,
+ 0x00800070,
+ 0x00a00090,
+ 0x00d000b0,
+ 0x010000e0,
+ 0x01400120,
+ 0x01a00160,
+ 0x020001c0,
+ 0x02800240,
+ 0x034002c0,
+ 0x04000380,
+ 0x05000480,
+ 0x06800580,
+ 0x08000700,
+ 0x0a000900,
+ 0x0d000b00,
+ 0x10000e00,
+ 0x14001200,
+ 0x1a001600,
+ 0x00001c00,
+ 0x00800040,
+ 0x010000c0,
+ 0x01800140,
+ 0x020001c0,
+ 0x02800240,
+ 0x030002c0,
+ 0x03800340,
+ 0x040003c0,
+ 0x04800440,
+ 0x050004c0,
+ 0x05800540,
+ 0x060005c0,
+ 0x06800640,
+ 0x070006c0,
+ 0x07800740,
+ 0x000007c0,
+ 0x00200040,
+ 0x001002ab,
+ 0x015500cd,
+ 0x00080249,
+ 0x00cd01c7,
+ 0x0155005d,
+ 0x0249013b,
+ 0x00040111,
+ 0x01c700f1,
+ 0x00cd01af,
+ 0x005d00c3,
+ 0x01550059,
+ 0x013b0029,
+ 0x0249025f,
+ 0x01110235,
+ 0x00020021,
+ 0x00f1001f,
+ 0x01c70075,
+ 0x01af006f,
+ 0x00cd0069,
+ 0x00c30019,
+ 0x005d017d,
+ 0x0059005b,
+ 0x015502b9,
+ 0x002900a7,
+ 0x013b0283,
+ 0x025f0135,
+ 0x02490095,
+ 0x0235023f,
+ 0x0111008b,
+ 0x00210219,
+ 0x00010041,
+ 0x0b060600,
+ 0x0c0b0a06,
+ 0x0a0b0c06,
+ 0x0c0d0c0c,
+ 0x0d0d0c06,
+ 0x0b0b0c0c,
+ 0x0e0d0a0d,
+ 0x0a0d0e0e,
+ 0x0c0d0a06,
+ 0x0c0e0c0e,
+ 0x0e0d0a0d,
+ 0x0f0c0c0c,
+ 0x0f0b0d0e,
+ 0x0d0f0e0e,
+ 0x0d0f0f0f,
+ 0x0c0b0f0e,
+ 0x00000006,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x1234baac,
+ 0x00000000,
+};
+
+unsigned long aui32H264VBR_SlaveMTXTOPAZFWTextReloc[] = {
+ 0
+};
+
+unsigned char aui8H264VBR_SlaveMTXTOPAZFWTextRelocType[] = {
+ 0
+};
+
+unsigned long aui32H264VBR_SlaveMTXTOPAZFWTextRelocFullAddr[] = {
+ 0
+};
+
+unsigned long aui32H264VBR_SlaveMTXTOPAZFWDataReloc[] = {
+ 0
+};
diff --git a/fw/H264SlaveFirmwareVBR_bin.h b/fw/H264SlaveFirmwareVBR_bin.h
new file mode 100644
index 0000000..d230488
--- /dev/null
+++ b/fw/H264SlaveFirmwareVBR_bin.h
@@ -0,0 +1,44 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+
+// This file was automatically generated from ../release/H264SlaveFirmwareVBR.dnl using dnl2c.
+
+extern unsigned long aui32H264VBR_SlaveMTXTOPAZFWText[];
+extern unsigned long ui32H264VBR_SlaveMTXTOPAZFWTextSize;
+
+extern unsigned long aui32H264VBR_SlaveMTXTOPAZFWData[];
+extern unsigned long ui32H264VBR_SlaveMTXTOPAZFWDataSize;
+
+extern unsigned long aui32H264VBR_SlaveMTXTOPAZFWTextReloc[];
+extern unsigned char aui8H264VBR_SlaveMTXTOPAZFWTextRelocType[];
+extern unsigned long aui32H264VBR_SlaveMTXTOPAZFWTextRelocFullAddr[];
+
+extern unsigned long aui32H264VBR_SlaveMTXTOPAZFWDataReloc[];
+extern unsigned long ui32H264VBR_SlaveMTXTOPAZFWDataRelocSize;
+
+extern unsigned long ui32H264VBR_SlaveMTXTOPAZFWTextOrigin;
+extern unsigned long ui32H264VBR_SlaveMTXTOPAZFWDataOrigin;
+
diff --git a/fw/H264SlaveFirmwareVCM_bin.c b/fw/H264SlaveFirmwareVCM_bin.c
new file mode 100644
index 0000000..2f2de11
--- /dev/null
+++ b/fw/H264SlaveFirmwareVCM_bin.c
@@ -0,0 +1,4511 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+
+// This file was automatically generated from ../release/H264SlaveFirmwareVCM.dnl using dnl2c.
+
+unsigned char *szH264SlaveFirmwareVCM_buildtag = "BUILD_TOPAZ_SC_1_00_00_0318";
+
+unsigned long ui32H264VCM_SlaveMTXTOPAZFWTextSize = 3616;
+unsigned long ui32H264VCM_SlaveMTXTOPAZFWDataSize = 836;
+unsigned long ui32H264VCM_SlaveMTXTOPAZFWTextRelocSize = 0;
+unsigned long ui32H264VCM_SlaveMTXTOPAZFWDataRelocSize = 0;
+
+unsigned long ui32H264VCM_SlaveMTXTOPAZFWTextOrigin = 0x80900000;
+unsigned long ui32H264VCM_SlaveMTXTOPAZFWDataOrigin = 0x82883880;
+
+unsigned long aui32H264VCM_SlaveMTXTOPAZFWText[] = {
+ 0x9040c001,
+ 0xc80993fe,
+ 0xc0000e42,
+ 0xc8290e00,
+ 0xc4588422,
+ 0xc8298440,
+ 0xc3888622,
+ 0x9e838600,
+ 0xc8099e43,
+ 0xc70e0d42,
+ 0xc8090d00,
+ 0xc70e0942,
+ 0xc8090940,
+ 0xc00a0e42,
+ 0xc8090e40,
+ 0xc00e87c2,
+ 0x9c1887d0,
+ 0x0c020802,
+ 0x09820d82,
+ 0x09020d02,
+ 0x08820c82,
+ 0x9320fffe,
+ 0xa401c838,
+ 0x0dc2c809,
+ 0x0dc0c70c,
+ 0x0e42c809,
+ 0x0b46b080,
+ 0x7e74b77f,
+ 0xa48d0882,
+ 0xffff9ff3,
+ 0x9d1393e0,
+ 0xf8398081,
+ 0x0707a205,
+ 0x06850307,
+ 0x03839e97,
+ 0x0fa0060f,
+ 0x018d058d,
+ 0x9c62008f,
+ 0x9340ffff,
+ 0x0ea0060b,
+ 0xffff9c62,
+ 0x058d93a0,
+ 0xb700018d,
+ 0xb780548c,
+ 0x9c015414,
+ 0x0687a605,
+ 0x0ea0060b,
+ 0xffff9c62,
+ 0xf9f893a0,
+ 0xf9f8aa9d,
+ 0x9c22aa1d,
+ 0xa6059c22,
+ 0x0e860a82,
+ 0xc0340d82,
+ 0xc0149b32,
+ 0x0d8a9967,
+ 0x9b2dc034,
+ 0x7e08b786,
+ 0xc0007500,
+ 0xc0149082,
+ 0xc0149abe,
+ 0x740299db,
+ 0xb3549e6c,
+ 0x02894424,
+ 0x995dc014,
+ 0xffff7540,
+ 0xb79f90e2,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0x87029c22,
+ 0xb5438502,
+ 0xb5437018,
+ 0xb5437098,
+ 0xb5437118,
+ 0xb5437418,
+ 0xb5437498,
+ 0xb5467518,
+ 0xb5467e18,
+ 0xb5467e98,
+ 0xb5477f18,
+ 0xb5404618,
+ 0xb5404804,
+ 0xb5404884,
+ 0xb5404904,
+ 0xb5404984,
+ 0xb5404a04,
+ 0xb5404c04,
+ 0xb5404c84,
+ 0xb5404d04,
+ 0xb5404202,
+ 0xb5404282,
+ 0xb5405004,
+ 0xb5407c84,
+ 0xb5404e84,
+ 0x9c224702,
+ 0x8420a605,
+ 0x9ba6fff4,
+ 0xc0340d8a,
+ 0xfff49ada,
+ 0xc0349bc6,
+ 0xc4209ae5,
+ 0x0a020cd2,
+ 0xc000b481,
+ 0x4220b105,
+ 0xe0310d8a,
+ 0xc0148d80,
+ 0xc8299a01,
+ 0xc4580922,
+ 0xb73f0920,
+ 0xd0717f6c,
+ 0xb5802a5e,
+ 0xc01e450c,
+ 0x85022a80,
+ 0xa8c2f008,
+ 0xc2807102,
+ 0xb5a05a95,
+ 0xb341460c,
+ 0x76404434,
+ 0x459cb540,
+ 0x448cb520,
+ 0x90c2c000,
+ 0x0e12d011,
+ 0xa241f008,
+ 0x550cb780,
+ 0x08c2c807,
+ 0x0880c570,
+ 0x0caac032,
+ 0x538cb580,
+ 0xc000b421,
+ 0x0cf40a2a,
+ 0xc000b481,
+ 0x09021a28,
+ 0x08bac002,
+ 0x4078b960,
+ 0x0a00c200,
+ 0x588bd224,
+ 0xc000b441,
+ 0x0a11ce00,
+ 0x9301ffff,
+ 0x1884e000,
+ 0x9244ffff,
+ 0x0a42c807,
+ 0x0a00c576,
+ 0x0caac032,
+ 0xc000b481,
+ 0x08820a02,
+ 0x08840902,
+ 0x4078b960,
+ 0x0a00c200,
+ 0x588bd224,
+ 0xc000b441,
+ 0x0a11ce00,
+ 0x9301ffff,
+ 0x745ac004,
+ 0x923cffff,
+ 0xc0340a02,
+ 0xb4810c9e,
+ 0xfff4c000,
+ 0x08029b2c,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x9c228c60,
+ 0xc0409e54,
+ 0x9e590c82,
+ 0xc000b421,
+ 0x0d02c040,
+ 0xc000b482,
+ 0xc00e9c22,
+ 0xc00e2d7c,
+ 0x5d3029e0,
+ 0xc0409e54,
+ 0x31b80c82,
+ 0xc000b461,
+ 0x0d02c040,
+ 0xc000b442,
+ 0xa60d9c22,
+ 0x07038420,
+ 0xc2800687,
+ 0x1c845c8d,
+ 0x5ca0d0a2,
+ 0xd0110287,
+ 0xc2000a5e,
+ 0x1a045a0d,
+ 0x5a30c200,
+ 0x30985cd0,
+ 0x04059e4c,
+ 0x0c8ac032,
+ 0xc8013098,
+ 0xb4213880,
+ 0x9ea9c000,
+ 0x0a02c801,
+ 0x0a00c002,
+ 0xc0306553,
+ 0xb4810c8a,
+ 0xc002c000,
+ 0x0c840882,
+ 0xc000b421,
+ 0xd0229e93,
+ 0x9e535f09,
+ 0x1d045d0d,
+ 0x9bb4fff4,
+ 0x5e91c280,
+ 0xc2801e84,
+ 0x9e6c5e84,
+ 0xc2801a84,
+ 0xc1815a90,
+ 0x0d8a3a80,
+ 0x0d020982,
+ 0xfff4314a,
+ 0xc0c09bae,
+ 0x09920d82,
+ 0x0d02c002,
+ 0x0902c002,
+ 0x9a04c034,
+ 0xc0340a0a,
+ 0xb4810c9e,
+ 0x1b04c000,
+ 0x850275bf,
+ 0x9202c000,
+ 0xb55f9dcf,
+ 0xc0347f7c,
+ 0xf23199d7,
+ 0xb75fa045,
+ 0x1b047f7c,
+ 0x851075bf,
+ 0x9284ffff,
+ 0x0a42c002,
+ 0x0c8ec030,
+ 0xc000b481,
+ 0x7e6eb79f,
+ 0x7eeeb7bf,
+ 0x7f6eb7df,
+ 0x8c00c002,
+ 0x9c229c22,
+ 0x8502c200,
+ 0x9c89c037,
+ 0x9c80c171,
+ 0x9c80c817,
+ 0xf8399c22,
+ 0x0d9aa205,
+ 0x99bdc034,
+ 0xf9f80d8a,
+ 0xc02daa1d,
+ 0xa6059300,
+ 0x0a42c801,
+ 0x0a00c010,
+ 0x2ebed3f2,
+ 0x0caac032,
+ 0xc000b481,
+ 0x0cf408aa,
+ 0xc000b421,
+ 0x558cb780,
+ 0x0c92c080,
+ 0xa881f208,
+ 0xc000b421,
+ 0x558cb780,
+ 0xf2080c88,
+ 0xb421a889,
+ 0xb780c000,
+ 0x0c84558c,
+ 0xa88df208,
+ 0xc000b421,
+ 0x1c980902,
+ 0xc000b441,
+ 0x558cb780,
+ 0xf2080c90,
+ 0xb421a885,
+ 0xb7a0c000,
+ 0x0dd2558c,
+ 0x9976c034,
+ 0xaa25f208,
+ 0xffff7008,
+ 0x0daa9344,
+ 0x0d060982,
+ 0x0902c121,
+ 0x9b29fff4,
+ 0x4714b760,
+ 0x0d02c021,
+ 0x09c20d04,
+ 0x9b16fff4,
+ 0x4714b760,
+ 0x0d0609c2,
+ 0x9b10fff4,
+ 0x09820daa,
+ 0xc1010d02,
+ 0xfff40902,
+ 0x0d929b14,
+ 0x9952c034,
+ 0xaa25f208,
+ 0xffff7008,
+ 0x77409344,
+ 0x90a2c000,
+ 0xc0340d8e,
+ 0x0d8a9954,
+ 0x9951c034,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xc470a60d,
+ 0x0a020c8e,
+ 0xc000b481,
+ 0x4220b101,
+ 0x558cb780,
+ 0xa085f208,
+ 0x0a021c8c,
+ 0xc000b481,
+ 0x4220b105,
+ 0x2b5ed1f1,
+ 0x558cb780,
+ 0xcff09ead,
+ 0xc2802e80,
+ 0xf2085ea1,
+ 0xc280a281,
+ 0x2a845a9d,
+ 0x0a020c84,
+ 0xc000b481,
+ 0x4220b101,
+ 0x468cb520,
+ 0xb4810c84,
+ 0xb101c000,
+ 0xb5204220,
+ 0xc070470c,
+ 0xb4810c8e,
+ 0x0882c000,
+ 0xb4211c8c,
+ 0x0c90c000,
+ 0xc000b481,
+ 0xb4211c8c,
+ 0x0c84c000,
+ 0xc000b481,
+ 0x6404b740,
+ 0x5908d326,
+ 0xe0309e2d,
+ 0x9ea4aa4d,
+ 0xb7809c62,
+ 0x7740558c,
+ 0x9ea98502,
+ 0xd0010d82,
+ 0xf2080db2,
+ 0x2596a10f,
+ 0x9b3ffff4,
+ 0xc0700a06,
+ 0xb4810c82,
+ 0x000dc000,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x7ebec01c,
+ 0x9244c000,
+ 0x5e08d1a2,
+ 0x0a00c090,
+ 0x5909d224,
+ 0xc4000882,
+ 0xb4223d00,
+ 0xb104c000,
+ 0x75004220,
+ 0x9364ffff,
+ 0x5c88c180,
+ 0x0c80c090,
+ 0xb4615c89,
+ 0x9c22c000,
+ 0x5c88c180,
+ 0x0c80c090,
+ 0xc4005c89,
+ 0x0a023c80,
+ 0xc000b481,
+ 0x4220b101,
+ 0xa0e1f008,
+ 0xc0905d88,
+ 0x5d890d80,
+ 0xc000b483,
+ 0x9e5b9c22,
+ 0x68b1d312,
+ 0xc1c00a02,
+ 0x5c8b0cc0,
+ 0x3c80c400,
+ 0xc000b481,
+ 0x4220b102,
+ 0x5a14b760,
+ 0x6931d312,
+ 0x9e518502,
+ 0x4080b960,
+ 0x08e0c1c0,
+ 0xaa65f031,
+ 0x5889d0a4,
+ 0xc000b481,
+ 0x85100890,
+ 0x9301ffff,
+ 0x8560c1c0,
+ 0x80ade210,
+ 0x5c14b760,
+ 0x3904c001,
+ 0x8521ce3e,
+ 0x4048b960,
+ 0xaa65f031,
+ 0x5889d0a4,
+ 0xc000b481,
+ 0x85100890,
+ 0x9301ffff,
+ 0x812de220,
+ 0x598cb780,
+ 0x3908c001,
+ 0x0d60c1c0,
+ 0xdac85d09,
+ 0xb422a885,
+ 0xd312c000,
+ 0xc1c068b1,
+ 0x5c8b0cc0,
+ 0xc000b441,
+ 0x84209c22,
+ 0xc4700882,
+ 0x0a020c92,
+ 0xc000b481,
+ 0x4220b102,
+ 0x02050185,
+ 0x2a04c001,
+ 0xc0007500,
+ 0xb7409362,
+ 0x09025a14,
+ 0x4080b960,
+ 0x08e0c1c0,
+ 0x5889d0a4,
+ 0x08a1ce3e,
+ 0x3c80c400,
+ 0xc000b441,
+ 0x4220b104,
+ 0xa245f031,
+ 0xffff0890,
+ 0x01079221,
+ 0x297acfff,
+ 0xc0010205,
+ 0x75002a08,
+ 0x91e2c001,
+ 0x5c14b740,
+ 0xb9600982,
+ 0xc1c04048,
+ 0xd0a408e0,
+ 0xce3e5889,
+ 0xc40008a1,
+ 0xb4613c80,
+ 0xb104c000,
+ 0xf0314220,
+ 0x0890a245,
+ 0x9221ffff,
+ 0x8d00e032,
+ 0x08e0c1c0,
+ 0x5889d0a4,
+ 0xc4000a02,
+ 0xb4813c80,
+ 0xb101c000,
+ 0xf0104220,
+ 0xb73fa0c1,
+ 0xb7807e72,
+ 0xdac8598c,
+ 0xcfffa086,
+ 0xc0702976,
+ 0xb4410c92,
+ 0x8c20c000,
+ 0xb7409c22,
+ 0xd312508c,
+ 0x0a026cb1,
+ 0x0cc0c1c0,
+ 0xc4005c8b,
+ 0xb4813c80,
+ 0xb101c000,
+ 0xd3124220,
+ 0xc1ca6cb1,
+ 0x5c8b0cf0,
+ 0xc000b441,
+ 0x6d82c00c,
+ 0x38c0c001,
+ 0x0dc0c1c0,
+ 0xb4235d8b,
+ 0x9c22c000,
+ 0x6cb1d312,
+ 0xc1c00a02,
+ 0x5c8b0cc0,
+ 0x3c80c400,
+ 0xc000b481,
+ 0x4220b103,
+ 0x5b14b740,
+ 0x6d31d311,
+ 0x4058b960,
+ 0xc1c00085,
+ 0xf03108e0,
+ 0xd0a4aa45,
+ 0xb4815889,
+ 0x0890c000,
+ 0x9321ffff,
+ 0x3990c001,
+ 0x0940c1c0,
+ 0x588bd124,
+ 0xc000b461,
+ 0xf8399c22,
+ 0xf010a285,
+ 0x7500aa61,
+ 0x9164c000,
+ 0xa8c1d008,
+ 0x0a069e48,
+ 0x5200c200,
+ 0xd0083098,
+ 0xd011a0c1,
+ 0xd0100d38,
+ 0xf011a9f2,
+ 0xf0101a30,
+ 0x1984a943,
+ 0x93e2c000,
+ 0x8702cff1,
+ 0x8700cff0,
+ 0x087ec00f,
+ 0x087cc00e,
+ 0x0c1ac050,
+ 0xa8c5f029,
+ 0x2095d020,
+ 0x9e4d5ca1,
+ 0xc2002210,
+ 0x30d85a20,
+ 0x4006ba09,
+ 0xc000b420,
+ 0x1a30f011,
+ 0xffff1984,
+ 0xf21091e4,
+ 0xf010802f,
+ 0xf9f8a241,
+ 0x9c22aa9d,
+ 0x9e5da60d,
+ 0xf1245940,
+ 0xd3f15841,
+ 0xb3502d2e,
+ 0xc0024422,
+ 0xf00893e2,
+ 0xe000aa61,
+ 0xb4252a1c,
+ 0xd8084422,
+ 0x8522aa61,
+ 0x88a9e210,
+ 0x12182a1c,
+ 0xc00e9ea3,
+ 0xba1b0a7e,
+ 0xc200400b,
+ 0x21285207,
+ 0x9276c001,
+ 0xc1009e59,
+ 0x11035a20,
+ 0x5209c200,
+ 0xc2009ea2,
+ 0x9e8d58a1,
+ 0x0cb0d031,
+ 0xa8a2d208,
+ 0x2a7cc00e,
+ 0x5207c200,
+ 0x2a7cc00e,
+ 0xd208349a,
+ 0xf008a0a2,
+ 0x9ea1a963,
+ 0x2a2ed3f1,
+ 0x8128c201,
+ 0x8821f310,
+ 0xf0088502,
+ 0xd228a261,
+ 0x9eaba127,
+ 0x2d01cff0,
+ 0x59415940,
+ 0xc00e3522,
+ 0xfff42d7c,
+ 0xc0009bb1,
+ 0xd20892e0,
+ 0x9e5eaa21,
+ 0x50d8000b,
+ 0xd0293242,
+ 0xf008a205,
+ 0xd013a8e1,
+ 0xf210291e,
+ 0x75108029,
+ 0x00989e44,
+ 0xa0e1f008,
+ 0x4426b350,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x0685a60d,
+ 0x9e9e9e69,
+ 0x71820b02,
+ 0xc0000a86,
+ 0x9ea99208,
+ 0x9e6916d2,
+ 0x5a84c280,
+ 0x1a52d011,
+ 0xd0117102,
+ 0xd3f108e2,
+ 0xffff2b1e,
+ 0xd0119286,
+ 0x75100a62,
+ 0xc000028d,
+ 0x9e7391d4,
+ 0x09220d02,
+ 0x9b70fff4,
+ 0xd0111aa0,
+ 0x75100a52,
+ 0xffff9e83,
+ 0x9e7392d2,
+ 0xd0110d06,
+ 0xc00e0952,
+ 0xfff4297c,
+ 0x75909b61,
+ 0xc0009e83,
+ 0xd03192f4,
+ 0xd3f11a60,
+ 0x9e6c2b4e,
+ 0xc2009e73,
+ 0xd3f25299,
+ 0x0922295e,
+ 0x9b50fff4,
+ 0xc2009e83,
+ 0x9ea952b8,
+ 0x16d27590,
+ 0x91b2ffff,
+ 0xd3f29e73,
+ 0x010d2d5e,
+ 0x9b42fff4,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x0ca0f011,
+ 0xd09a9e99,
+ 0xd00d5a04,
+ 0xc0001a42,
+ 0x1203909a,
+ 0x9e4b1242,
+ 0xfffc9ea2,
+ 0xa60d9360,
+ 0x85028420,
+ 0xb55f9e55,
+ 0xb55f7f7c,
+ 0xf0107ffc,
+ 0xe011aa61,
+ 0x03078c8e,
+ 0x750a1a08,
+ 0x590cd226,
+ 0xe05a8540,
+ 0xc0038044,
+ 0xc00090a0,
+ 0xc0009180,
+ 0xc00092a0,
+ 0xc00193c0,
+ 0xc0019100,
+ 0xc0029200,
+ 0xe0119060,
+ 0x9e8b8d88,
+ 0x1954d072,
+ 0x500cb5a0,
+ 0x9bc8fff4,
+ 0x9200c002,
+ 0x5014b740,
+ 0xe0119ea9,
+ 0x9e8b8d88,
+ 0xfff41514,
+ 0xc0029bbd,
+ 0xe01190a0,
+ 0x9e8b8d88,
+ 0x295ed3f2,
+ 0xfff40916,
+ 0xb5a09aeb,
+ 0xc001500c,
+ 0xe0119320,
+ 0x9e8b8d88,
+ 0x295ed3f2,
+ 0xfff40916,
+ 0xc0019adf,
+ 0xd20891e0,
+ 0x9e8baa41,
+ 0x8c88f011,
+ 0xd0124a7d,
+ 0x0d062ace,
+ 0x018b0906,
+ 0x9ad0fff4,
+ 0x9e6a9e83,
+ 0x0d02018b,
+ 0x9acafff4,
+ 0x9340c000,
+ 0xaa41d208,
+ 0xf0119e8b,
+ 0x4a7d8c88,
+ 0x2aced012,
+ 0x09060d02,
+ 0xfff4018b,
+ 0x9e839abb,
+ 0x018b9e6a,
+ 0x0d7ec00e,
+ 0x9ab4fff4,
+ 0x9080c000,
+ 0x90e0c001,
+ 0x7e68b79f,
+ 0x0cfec00f,
+ 0x0cfcc00e,
+ 0xb59f9e4a,
+ 0xb73f7c68,
+ 0xcff17f6c,
+ 0xcff00a02,
+ 0xc0500a00,
+ 0x22180c9a,
+ 0x5a21c200,
+ 0x58a02094,
+ 0xba243242,
+ 0xb59f4006,
+ 0xb4817f6c,
+ 0xf208c000,
+ 0xb79fa943,
+ 0xf3107fec,
+ 0xf2088021,
+ 0xb79fa241,
+ 0xb7bf7e6e,
+ 0xb7df7eee,
+ 0xc0027f6e,
+ 0x9c228c00,
+ 0x8440a61d,
+ 0x9e9d8502,
+ 0xabe5f031,
+ 0xb55f0b02,
+ 0xb55f7878,
+ 0x718e7efc,
+ 0xc0019d3a,
+ 0xaa4191e8,
+ 0xc0007502,
+ 0xd0189392,
+ 0xe032aad1,
+ 0xe0518d08,
+ 0x9dcf8d00,
+ 0x85109eb1,
+ 0x7f7cb55f,
+ 0x0a9cc002,
+ 0x5a95c280,
+ 0xfff4018b,
+ 0xb75f9a1e,
+ 0xc2807f7c,
+ 0xc3015a88,
+ 0xc0008122,
+ 0xe03191a0,
+ 0x9dcf8d88,
+ 0x8510050b,
+ 0x7f7cb55f,
+ 0x9b23fff4,
+ 0x7f7cb75f,
+ 0x718e0b04,
+ 0x92a6fffe,
+ 0x7868b79f,
+ 0x0c9ec050,
+ 0xc000b481,
+ 0x0d16c050,
+ 0xc000b4e2,
+ 0x7eecb71f,
+ 0x7d6eb79f,
+ 0x7deeb7bf,
+ 0x7e6eb7df,
+ 0x7eeeb7ff,
+ 0x8c40c002,
+ 0xa6059c22,
+ 0x0c8ac450,
+ 0xb4810a02,
+ 0xb102c000,
+ 0xe00e4240,
+ 0xd1042d7c,
+ 0xc8015d10,
+ 0x0a400a02,
+ 0x0c8ac030,
+ 0xc000b481,
+ 0x0c8408c2,
+ 0xc000b421,
+ 0x608cb740,
+ 0xa947f048,
+ 0x802df210,
+ 0xa245f048,
+ 0x0c86c450,
+ 0xb4810a02,
+ 0xb101c000,
+ 0xc8014220,
+ 0xc0100a42,
+ 0xc0320a00,
+ 0xb4810caa,
+ 0x08aac000,
+ 0x0d1ec034,
+ 0xc000b422,
+ 0x0cf2c450,
+ 0xb4810a02,
+ 0xb101c000,
+ 0xd0534220,
+ 0xb7801910,
+ 0xf248570c,
+ 0xf210a891,
+ 0x0d8288a3,
+ 0x018b0d06,
+ 0x9884fff4,
+ 0x0ca2c080,
+ 0xc000b4a1,
+ 0x0d82c002,
+ 0x9954c014,
+ 0xffff700a,
+ 0x0daa9364,
+ 0x0d0a0982,
+ 0x0902c121,
+ 0x9b09ffd4,
+ 0x570cb780,
+ 0xa992f248,
+ 0x0d02c0a1,
+ 0x09c20d04,
+ 0x9af4ffd4,
+ 0x0d82c0c0,
+ 0x0d420992,
+ 0xc0140942,
+ 0xb79f9957,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa60d9c22,
+ 0x8400c010,
+ 0x570cb720,
+ 0x49adb780,
+ 0x75002a20,
+ 0x5a14b7c0,
+ 0xc0000902,
+ 0xb7869182,
+ 0x75007e08,
+ 0x90e2c000,
+ 0xaa41d290,
+ 0xc0057500,
+ 0xb7209164,
+ 0xd01149ad,
+ 0x75002a18,
+ 0x3924d002,
+ 0x9124c000,
+ 0x2a14d011,
+ 0xd0027500,
+ 0xd0013922,
+ 0xc0503926,
+ 0xb4410c82,
+ 0x9d87c000,
+ 0x468cb740,
+ 0x09c20dc2,
+ 0x0d02c010,
+ 0x0c81cff0,
+ 0x9acbffd4,
+ 0x7e08b786,
+ 0x75009d1b,
+ 0x0b01cff0,
+ 0x9282c000,
+ 0xaa41d290,
+ 0xc0007500,
+ 0xb79f91e2,
+ 0xf211606c,
+ 0xc0108d00,
+ 0x75002a00,
+ 0x0a03cff0,
+ 0x8001f310,
+ 0x4422b346,
+ 0x4068b79e,
+ 0x08c2c801,
+ 0x0880c010,
+ 0x0ceac032,
+ 0x606cb59f,
+ 0xc000b421,
+ 0x7e08b786,
+ 0xc0017500,
+ 0xb7869282,
+ 0x75007f08,
+ 0x91e2c001,
+ 0x510cb720,
+ 0x2a12d011,
+ 0xc0017500,
+ 0xb7a09102,
+ 0xb7a06194,
+ 0xf2105b0c,
+ 0x9eabaa21,
+ 0xb52028f9,
+ 0x9ea4510c,
+ 0xb7209c62,
+ 0xb7805f8c,
+ 0x75004129,
+ 0x92a4c000,
+ 0xa9a1f208,
+ 0xa83df210,
+ 0x9e840d82,
+ 0xf2509c62,
+ 0x9eaba8a5,
+ 0xa021f208,
+ 0x9e8c0982,
+ 0xda089c62,
+ 0xb583aa21,
+ 0xda10628a,
+ 0x9eb3a9cd,
+ 0x9aa6fff4,
+ 0x0a02c801,
+ 0x0a00c00a,
+ 0x0c8ac030,
+ 0xc000b481,
+ 0x08c2c008,
+ 0xb4210c84,
+ 0xc008c000,
+ 0x0c880a02,
+ 0xc000b481,
+ 0x0d82c0c0,
+ 0xc0080992,
+ 0xc0080d02,
+ 0xc0140902,
+ 0xc008989d,
+ 0xc0300a02,
+ 0xb4810c8e,
+ 0xb720c000,
+ 0x85065a8c,
+ 0x4039b540,
+ 0x9ad1fff4,
+ 0x6eeeb79f,
+ 0x6f6eb7bf,
+ 0x6feeb7df,
+ 0x8c60c010,
+ 0xf8399c22,
+ 0xc450a205,
+ 0x0a020c82,
+ 0xc000b481,
+ 0x4220b101,
+ 0x0a40c008,
+ 0x0c8ec030,
+ 0xc000b481,
+ 0x38c0c002,
+ 0x0c82c050,
+ 0xc000b421,
+ 0x0d82c0c0,
+ 0xc0080992,
+ 0xc0080d02,
+ 0xc0140902,
+ 0xc0089869,
+ 0xc0300a02,
+ 0xb4810c8e,
+ 0xf9f8c000,
+ 0xfff5aa1d,
+ 0xa60d9000,
+ 0x0eb0f011,
+ 0x9182c001,
+ 0x0f7ec01e,
+ 0x0b02c008,
+ 0x0e8ec030,
+ 0x7540c040,
+ 0xc0509e74,
+ 0xb3540c96,
+ 0x12d84426,
+ 0x5a14c200,
+ 0xc000b481,
+ 0x0d0ac030,
+ 0xc000b4c2,
+ 0xc000b4c5,
+ 0x0c96c030,
+ 0xc000b4c1,
+ 0x0d82c0c0,
+ 0xc0080992,
+ 0xc0080d02,
+ 0xc0140902,
+ 0xb4c59835,
+ 0x7540c000,
+ 0x93c4fffe,
+ 0x9a6ffff4,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0xc000b463,
+ 0xf8129c22,
+ 0x9c22a062,
+ 0x0d80c200,
+ 0x9e595d89,
+ 0xc4000982,
+ 0xb4633d80,
+ 0xb203c000,
+ 0x00074620,
+ 0xc1279c22,
+ 0x9c229c8f,
+ 0xb971080a,
+ 0xc01756f1,
+ 0xc0719c81,
+ 0xc0179c80,
+ 0xb9609c80,
+ 0x9c224000,
+ 0x9280ffff,
+ 0x01c69e5c,
+ 0x5889d1a4,
+ 0xc4000882,
+ 0xb4213c80,
+ 0xb104c000,
+ 0x22444220,
+ 0x71069e53,
+ 0x9324ffff,
+ 0xa60d9c22,
+ 0x8420c004,
+ 0x0ca2c829,
+ 0x0cf0c436,
+ 0xac3dc030,
+ 0x8d00e133,
+ 0xa45dc038,
+ 0xac3dc030,
+ 0xa45dc038,
+ 0xac3dc010,
+ 0xa45dc018,
+ 0xac25c010,
+ 0xa445c018,
+ 0x570cb7a0,
+ 0x85029ea9,
+ 0x651ab540,
+ 0x4b98b541,
+ 0x468cb740,
+ 0xc00a0dc2,
+ 0x09c20d42,
+ 0x9979ffd4,
+ 0x0a58d251,
+ 0xaa01da08,
+ 0x9ead7502,
+ 0x9084c000,
+ 0x448cb580,
+ 0x608cb780,
+ 0xa8a1f210,
+ 0xf2108502,
+ 0xb540a8a6,
+ 0xb540509c,
+ 0xf208481a,
+ 0xf208a103,
+ 0xf210a085,
+ 0xf208a929,
+ 0xf210a08a,
+ 0xf210a92e,
+ 0xf208a8b2,
+ 0xf250a10d,
+ 0xf208a8b1,
+ 0xf208a112,
+ 0xf208a096,
+ 0xc050a09a,
+ 0x08c00cf2,
+ 0xa085f248,
+ 0xc000b421,
+ 0xc0360a0a,
+ 0xb4810c92,
+ 0x0896c000,
+ 0xb4211c8c,
+ 0xf031c000,
+ 0xe1318c00,
+ 0x9ea38d80,
+ 0x5f8cb7c0,
+ 0x7ffcb55f,
+ 0xb9600d02,
+ 0xf2084078,
+ 0x9dbaa103,
+ 0x5d0dd122,
+ 0xf0299e2d,
+ 0xd012a8e5,
+ 0x5c882cae,
+ 0x5908d126,
+ 0xe0389e4a,
+ 0x0d04aa4d,
+ 0x50a828bc,
+ 0xa2413242,
+ 0x91c1ffff,
+ 0xaa61f010,
+ 0x0c8ec036,
+ 0xc000b481,
+ 0x7fecb73f,
+ 0xb4211c84,
+ 0xc014c000,
+ 0xd20899b4,
+ 0x7500aa4d,
+ 0x9262c000,
+ 0xaa2df290,
+ 0x2ac8f011,
+ 0x91a4c000,
+ 0x2a00c800,
+ 0xc0007500,
+ 0xf20890c4,
+ 0xfff4a9c6,
+ 0xd2089aec,
+ 0xf290a2cd,
+ 0xd011a8ad,
+ 0x75002a14,
+ 0x9102c000,
+ 0x0a42c809,
+ 0x0a40c532,
+ 0x530cb580,
+ 0x460cb780,
+ 0xc0007500,
+ 0xc0809162,
+ 0x2a045a31,
+ 0x0ceac03e,
+ 0xc000b481,
+ 0x9280c000,
+ 0x448cb780,
+ 0xc0007502,
+ 0xc100915c,
+ 0x74402880,
+ 0xd0010a0e,
+ 0xc0001a46,
+ 0x0a029060,
+ 0x0ceac03e,
+ 0xc000b481,
+ 0x7a6eb79f,
+ 0x7aeeb7bf,
+ 0x7b6eb7df,
+ 0x8c00c006,
+ 0xb7809c22,
+ 0xc0c8538c,
+ 0xb9600892,
+ 0xd01140f8,
+ 0xf0290948,
+ 0xd0a4aa45,
+ 0xb4815889,
+ 0x0890c000,
+ 0x9321ffff,
+ 0xa6059c22,
+ 0x460cb720,
+ 0x708cb781,
+ 0x0a047440,
+ 0x708cb581,
+ 0x9364c000,
+ 0x7e08b786,
+ 0xc0007500,
+ 0xb72092c2,
+ 0xb780448c,
+ 0x7442510c,
+ 0xb5803a40,
+ 0xc000510c,
+ 0xb780919c,
+ 0xd2085f8c,
+ 0x7440a889,
+ 0x90a4c000,
+ 0xb5478506,
+ 0xc8014618,
+ 0xc0100a42,
+ 0xc0320a00,
+ 0xb4810cea,
+ 0xc008c000,
+ 0xc00208c2,
+ 0xb4211ce0,
+ 0xc008c000,
+ 0xc0300a42,
+ 0xb4820d0e,
+ 0xc450c000,
+ 0xc0080c82,
+ 0xb4811a40,
+ 0xb101c000,
+ 0xc0024220,
+ 0xc05038c0,
+ 0xb4210c82,
+ 0xc0c0c000,
+ 0x09920d82,
+ 0x0d02c008,
+ 0x0902c008,
+ 0x9ab0fff4,
+ 0x0c86c450,
+ 0xb4810a02,
+ 0xb100c000,
+ 0xc0084240,
+ 0xc0300a00,
+ 0xb4820d0e,
+ 0x0c84c000,
+ 0x1a00c008,
+ 0xc000b481,
+ 0x4220b101,
+ 0x5a35c080,
+ 0x0902c801,
+ 0xc00e0940,
+ 0xd0a828fc,
+ 0xd0715910,
+ 0xc03029ce,
+ 0x9dc80c8a,
+ 0xc000b441,
+ 0x0c840a42,
+ 0xc000b481,
+ 0xc0007680,
+ 0xb7209182,
+ 0xb740608c,
+ 0xf21044bd,
+ 0xf3108a27,
+ 0xb5808021,
+ 0xc45044ad,
+ 0x0a020c86,
+ 0xc000b481,
+ 0x4240b100,
+ 0xb4810cec,
+ 0xb100c000,
+ 0x9e994240,
+ 0x08ea1402,
+ 0x0c9ec034,
+ 0xc000b421,
+ 0x570cb780,
+ 0xa891f248,
+ 0x1d00d053,
+ 0x88a3f210,
+ 0x0d060d82,
+ 0x5a0cc280,
+ 0x508cb580,
+ 0xffd4018b,
+ 0xc0809961,
+ 0xb4a10ca2,
+ 0xb780c000,
+ 0x0c88478c,
+ 0xc000b481,
+ 0x5994b7a0,
+ 0x0d82c002,
+ 0x9a2afff4,
+ 0xffff700a,
+ 0xb7819364,
+ 0xf210708c,
+ 0xf250a8ad,
+ 0x6243a8a2,
+ 0x71029e49,
+ 0x90b8c000,
+ 0xb5478506,
+ 0xb7804418,
+ 0x7500460c,
+ 0x9242c000,
+ 0xffd40d82,
+ 0xb7869a18,
+ 0x75007f08,
+ 0x90e2c000,
+ 0xffd40d82,
+ 0xc0009962,
+ 0x0d8290a0,
+ 0x9a2affd4,
+ 0x5008b787,
+ 0xb7277500,
+ 0x0d025088,
+ 0x0d22d002,
+ 0x5a0cb780,
+ 0xb7277440,
+ 0x09025110,
+ 0x0922d002,
+ 0xa812d2c8,
+ 0x59247640,
+ 0x08829e91,
+ 0x0892d002,
+ 0x678ab783,
+ 0x34205d20,
+ 0xc01c3410,
+ 0x58a8753e,
+ 0x34109e89,
+ 0x90d4c000,
+ 0x857ec00e,
+ 0x679ab543,
+ 0x478ab720,
+ 0x678ab783,
+ 0x7c7edffc,
+ 0xc2009e41,
+ 0x32985a40,
+ 0x9184c000,
+ 0x470ab720,
+ 0xaa29da10,
+ 0x4002ba09,
+ 0x70481a04,
+ 0x91b8c000,
+ 0x4b08b781,
+ 0x85027500,
+ 0xd0010882,
+ 0xb5400892,
+ 0xb521471a,
+ 0xc0804b08,
+ 0xb4a10ca6,
+ 0xc002c000,
+ 0xfff40d92,
+ 0x700a99b3,
+ 0x9364ffff,
+ 0x09820dea,
+ 0xc1210d0a,
+ 0xffb40902,
+ 0xb7809b68,
+ 0xf248570c,
+ 0xc0a1a992,
+ 0x0d040d02,
+ 0xffb409c2,
+ 0xc0c09b53,
+ 0x09920d82,
+ 0x09420d42,
+ 0x99b6fff4,
+ 0xc03e0a02,
+ 0xb4810cea,
+ 0xb79fc000,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa60d9c22,
+ 0x570cb720,
+ 0x49b5b720,
+ 0x2e10d091,
+ 0x9e8e7500,
+ 0x9342c003,
+ 0x2e14d011,
+ 0x87068502,
+ 0x7e00b546,
+ 0xb5417500,
+ 0xb547709c,
+ 0xc0004418,
+ 0xb5469082,
+ 0xd1117e80,
+ 0x75002e10,
+ 0x9082c000,
+ 0x7f00b546,
+ 0x2e10d211,
+ 0xc0007500,
+ 0xb5469082,
+ 0xb7867f80,
+ 0x75007f08,
+ 0x618cb7c0,
+ 0x9042c002,
+ 0x7e88b786,
+ 0xc0017500,
+ 0xb78693a2,
+ 0x75007f88,
+ 0x9302c001,
+ 0x0a42c809,
+ 0x0a60c6cc,
+ 0x08c2c809,
+ 0x08c0c58a,
+ 0x0cc2c809,
+ 0x0c90c666,
+ 0x0942c809,
+ 0x0950c574,
+ 0x0d42c809,
+ 0x0d20c534,
+ 0x09c2c809,
+ 0x09d0c560,
+ 0x0dc2c809,
+ 0x0dd0c544,
+ 0x0c42c809,
+ 0x0c10c6da,
+ 0x0842c809,
+ 0x0820c552,
+ 0xa24df208,
+ 0xa0ddf208,
+ 0xa0c2f248,
+ 0xa145f248,
+ 0xa14af248,
+ 0xa1c5f208,
+ 0xa1c2f208,
+ 0xa04ef248,
+ 0xa051f248,
+ 0x580cb7a0,
+ 0xaa4df208,
+ 0x9ea49eab,
+ 0xb7209c62,
+ 0xd2085a0c,
+ 0xb580aa21,
+ 0xb72041ab,
+ 0x850241b3,
+ 0x439ab540,
+ 0x5014b520,
+ 0x598cb7c0,
+ 0xaa49f2d0,
+ 0xa8d9f208,
+ 0xc0007048,
+ 0xb7809142,
+ 0xf248618c,
+ 0xd152a88d,
+ 0x9e8c0de0,
+ 0xb7869c62,
+ 0x85027e08,
+ 0x5018b547,
+ 0xb5477500,
+ 0xb5475098,
+ 0xc0045118,
+ 0xb7209062,
+ 0x76404614,
+ 0x93c4c003,
+ 0x438ab720,
+ 0xc0007440,
+ 0xda0890e2,
+ 0x7048aa55,
+ 0x9004c001,
+ 0x5f94b7a0,
+ 0x7e88b786,
+ 0x618cb7a0,
+ 0xa9d6da08,
+ 0x4392b520,
+ 0x7500850a,
+ 0xa0aad210,
+ 0xa8a9f208,
+ 0x8d24e001,
+ 0x1d849d4f,
+ 0x9c629e8c,
+ 0xaa31f208,
+ 0x0d8a030b,
+ 0x9c629ea4,
+ 0x9180c000,
+ 0x618cb780,
+ 0xa891f208,
+ 0x5f94b7a0,
+ 0x03090d86,
+ 0x9c629e8c,
+ 0x438ab780,
+ 0x7f08b726,
+ 0x5a14b720,
+ 0xb5800a04,
+ 0xd210438a,
+ 0x7440aa29,
+ 0x4849b580,
+ 0x9024c001,
+ 0x5b0cb7a0,
+ 0xa8c1f208,
+ 0x9e8c9eab,
+ 0xd2109c62,
+ 0x7500aa29,
+ 0x92a4c000,
+ 0xa9a1f208,
+ 0xa85df208,
+ 0x9e840d82,
+ 0xf2089c62,
+ 0xf248a021,
+ 0x9eaba845,
+ 0x9e840982,
+ 0xda089c62,
+ 0xb583aa21,
+ 0xb780628a,
+ 0x7502448c,
+ 0x90bcc000,
+ 0xffb40d86,
+ 0xd2109bd8,
+ 0x7500aa29,
+ 0x9122c000,
+ 0x558cb720,
+ 0x412db780,
+ 0xc0003a08,
+ 0xb72090e0,
+ 0xb780558c,
+ 0x2a75412d,
+ 0x412db580,
+ 0x7e08b726,
+ 0x510cb780,
+ 0x3a047440,
+ 0x510cb580,
+ 0x91c4c000,
+ 0x0e60d151,
+ 0x5a0cb740,
+ 0xa882d208,
+ 0xa881d208,
+ 0x5014b520,
+ 0xa0cdd808,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x4b0cb720,
+ 0xc0ff9e5c,
+ 0xc0ff2a40,
+ 0x710228c0,
+ 0xc0008502,
+ 0x85069062,
+ 0x4b9cb540,
+ 0x4b14b560,
+ 0xa6059c22,
+ 0xd0519e5d,
+ 0x75002a50,
+ 0x90e4c000,
+ 0x4b8cb780,
+ 0xc0007500,
+ 0xc0c09142,
+ 0xc0120d82,
+ 0x0d0209c2,
+ 0xfff40942,
+ 0xb7809847,
+ 0xc0344b0c,
+ 0xb4810cb6,
+ 0xc034c000,
+ 0xb4a20d32,
+ 0xb5a0c000,
+ 0xb79f4a8c,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa61d9c22,
+ 0xb7868420,
+ 0x75007e08,
+ 0x9122c000,
+ 0x5a0cb780,
+ 0xa881d288,
+ 0xc0187440,
+ 0xb7409124,
+ 0xb7a0468c,
+ 0x0dc25694,
+ 0xc002098e,
+ 0x048b0d42,
+ 0x99cdffb4,
+ 0xaa35f210,
+ 0x560cb7c0,
+ 0xa8a5f210,
+ 0xa8aaf210,
+ 0x570cb7a0,
+ 0x478cb580,
+ 0xa0d5f208,
+ 0xaa39da10,
+ 0xa8bdda10,
+ 0xa0def208,
+ 0x08d0d252,
+ 0xa259f208,
+ 0xa0c1f248,
+ 0xa922da10,
+ 0x0a50d131,
+ 0xa881da08,
+ 0x404bb740,
+ 0xa927f250,
+ 0xda909e53,
+ 0x60b2a8b2,
+ 0x5a7fc080,
+ 0x5a71c200,
+ 0x58930098,
+ 0xe2105894,
+ 0xdffc80a3,
+ 0x59157e7e,
+ 0x5b90c100,
+ 0xf248018b,
+ 0xc000a0dd,
+ 0xe10091e2,
+ 0xc0005d40,
+ 0xda909164,
+ 0x8502aa35,
+ 0x4792b520,
+ 0x679ab543,
+ 0x468ab580,
+ 0xaa21f288,
+ 0x0950d132,
+ 0xa255f248,
+ 0xa259f248,
+ 0xa8a1da10,
+ 0xaa41d810,
+ 0xa93bf248,
+ 0xa8bada48,
+ 0xf3106218,
+ 0xda488021,
+ 0xf248a93d,
+ 0xf288a0ca,
+ 0xda48a249,
+ 0xf248aa29,
+ 0xf208a151,
+ 0xda48a923,
+ 0x6218a8ae,
+ 0x5a10c200,
+ 0x8021f310,
+ 0xa241f208,
+ 0xa927f208,
+ 0xf20a9e4c,
+ 0x6098a928,
+ 0xf210588c,
+ 0xe2108023,
+ 0xf20882a3,
+ 0xda48a249,
+ 0xf208a8aa,
+ 0xda10a0cd,
+ 0xd810aa21,
+ 0xf208a8c1,
+ 0xf248a0c6,
+ 0x0a04a937,
+ 0xb7406243,
+ 0xf310608c,
+ 0xf2888021,
+ 0xda10a245,
+ 0xf008a8a1,
+ 0xda10a953,
+ 0xf00aa8a2,
+ 0x58a0a954,
+ 0x80a3e210,
+ 0xe0205c9c,
+ 0xda4882a3,
+ 0xf208aa2d,
+ 0xf208a0ad,
+ 0xf248a0b2,
+ 0xf248a0c5,
+ 0xf208a0ce,
+ 0xd810a251,
+ 0xc004a941,
+ 0xb5201880,
+ 0xd1314f0c,
+ 0xda080a54,
+ 0xc002a881,
+ 0xb5201c80,
+ 0x59404f94,
+ 0xf2885951,
+ 0x58c0a155,
+ 0xf28858d1,
+ 0xc42ea0d9,
+ 0x0a020cf2,
+ 0xc000b481,
+ 0x4220b101,
+ 0x74402884,
+ 0x0b50d132,
+ 0x9102c000,
+ 0xaa41da10,
+ 0x753ec09c,
+ 0x9152c011,
+ 0x08c6c0c0,
+ 0x0ce2c050,
+ 0xc000b421,
+ 0xa939f210,
+ 0x0a30d131,
+ 0xa881da08,
+ 0x28a0d052,
+ 0x58917640,
+ 0x4e8cb520,
+ 0x9222c000,
+ 0xc0600a02,
+ 0xb4810cae,
+ 0xda10c000,
+ 0x7440a8a1,
+ 0x9302c000,
+ 0xb5408502,
+ 0xc0004e9c,
+ 0xc2009260,
+ 0x74802900,
+ 0x9122c000,
+ 0xc0600a0a,
+ 0xb4810cae,
+ 0xc000c000,
+ 0x0a0690e0,
+ 0x0caec060,
+ 0xc000b481,
+ 0xaa39f210,
+ 0x75002a04,
+ 0xb540850a,
+ 0xc000491c,
+ 0x850490a2,
+ 0x491cb540,
+ 0x7e08b786,
+ 0xb7e07500,
+ 0xc0006194,
+ 0xb78692e2,
+ 0x75007f08,
+ 0x9244c000,
+ 0x460cb780,
+ 0xc0007500,
+ 0xb78691a2,
+ 0x75007f88,
+ 0x9104c000,
+ 0x5b14b760,
+ 0xaa61f210,
+ 0x9c629ea4,
+ 0xaa39f210,
+ 0x75002a20,
+ 0x90e2c000,
+ 0xaa21da10,
+ 0xc0007500,
+ 0xb7809244,
+ 0xb7205a0c,
+ 0xda08530c,
+ 0x9e8ca98e,
+ 0xb7869c62,
+ 0x75007e08,
+ 0x90a2c000,
+ 0xb5478506,
+ 0xf2104918,
+ 0xd011a8b9,
+ 0x75002a14,
+ 0x90e2c001,
+ 0x2a12d011,
+ 0x85167500,
+ 0x0a7ecffe,
+ 0x0cfac038,
+ 0x8d28e001,
+ 0x4d1cb540,
+ 0xc000b481,
+ 0xa8c1da10,
+ 0x6494b720,
+ 0x0a6ac284,
+ 0x856ac684,
+ 0x7462c058,
+ 0x5214b520,
+ 0x0c82c038,
+ 0x4c28b324,
+ 0xc000b481,
+ 0xc0020882,
+ 0xb4210c80,
+ 0xffd4c000,
+ 0xb7809b94,
+ 0xc03e490c,
+ 0xb4810c82,
+ 0xb720c000,
+ 0xc0504d0c,
+ 0xb4210c82,
+ 0xda10c000,
+ 0xf288a921,
+ 0xda10a8d5,
+ 0x6123a926,
+ 0xda109e53,
+ 0x6097aa21,
+ 0x6014b720,
+ 0xb5438702,
+ 0x857f6382,
+ 0x459ab540,
+ 0xb540851a,
+ 0x0d86449a,
+ 0xb5801a04,
+ 0xb5404d8c,
+ 0x8526405b,
+ 0x415bb540,
+ 0x460ab540,
+ 0x18a05891,
+ 0x40cbb520,
+ 0x7fe4b55f,
+ 0x9bd9c014,
+ 0x7fe4b75f,
+ 0xb5478506,
+ 0xb5474818,
+ 0xb5474880,
+ 0xb5474e00,
+ 0xb5474e80,
+ 0xda104980,
+ 0xf288a8a6,
+ 0x9e49aa55,
+ 0x5694b720,
+ 0x4a00b547,
+ 0xb7206243,
+ 0x8502434d,
+ 0xc10158c8,
+ 0x9e892880,
+ 0xa9c2da10,
+ 0xb5400a82,
+ 0xb5404e1c,
+ 0x5dc0519c,
+ 0x2dc0c0ff,
+ 0x3db0ca01,
+ 0x5a11c200,
+ 0x450ab580,
+ 0xfff43596,
+ 0xc0c099d3,
+ 0xc0120d82,
+ 0x0d0209c2,
+ 0xffd40942,
+ 0x714e9a35,
+ 0xc0018546,
+ 0x9dcf9148,
+ 0x99d5fff4,
+ 0x0d82c0c0,
+ 0x09c2c012,
+ 0x09060d02,
+ 0x9a26ffd4,
+ 0x1a70d091,
+ 0x0a027148,
+ 0x0a42d00b,
+ 0xa9c2da10,
+ 0x5a28c200,
+ 0x5dc09ea1,
+ 0x2dc0c0ff,
+ 0x3db0c801,
+ 0xfff43596,
+ 0xd05199a9,
+ 0xc2000a50,
+ 0xc2005a40,
+ 0x714e5ac1,
+ 0xfffe8506,
+ 0xf2509346,
+ 0x7500aa71,
+ 0x857fcfce,
+ 0x731cb541,
+ 0x9102c000,
+ 0xa9bef210,
+ 0x450ab760,
+ 0x9c629ea4,
+ 0xc0140d82,
+ 0xb78798e4,
+ 0x75004888,
+ 0xb5478502,
+ 0xc0024818,
+ 0xb7a092a4,
+ 0x0b025b0c,
+ 0xb786068f,
+ 0x75007e08,
+ 0x9082c002,
+ 0x7f08b786,
+ 0xc0017500,
+ 0xb78793e2,
+ 0x75004908,
+ 0x9182c000,
+ 0xa9a2f208,
+ 0x4908b5c7,
+ 0xa869f250,
+ 0x9c629e84,
+ 0x430ab500,
+ 0x4a08b787,
+ 0xc0007500,
+ 0xf2109382,
+ 0x9eaba825,
+ 0x4a08b5c7,
+ 0x9c629e84,
+ 0xaa21f250,
+ 0x9c629ea4,
+ 0xa9a1f208,
+ 0xa83df210,
+ 0x9e840d86,
+ 0xf2509c62,
+ 0x9eabaa25,
+ 0xa021f208,
+ 0x9ea40986,
+ 0xb7879c62,
+ 0x75004a08,
+ 0x91e4c000,
+ 0xc0140d86,
+ 0xb7879898,
+ 0x75004a08,
+ 0x9342ffff,
+ 0x90a0c000,
+ 0xc0140d86,
+ 0xb787988e,
+ 0x75004888,
+ 0x9262fffd,
+ 0x0d82c0c0,
+ 0x09c2c012,
+ 0x09060d02,
+ 0x9994ffd4,
+ 0x0a02c801,
+ 0x518cb580,
+ 0x0d82c0c0,
+ 0x09c2c012,
+ 0x09420d02,
+ 0x9988ffd4,
+ 0x5194b760,
+ 0x991afff4,
+ 0xfff40d86,
+ 0xc0c09928,
+ 0xc0120d82,
+ 0x0d0209c2,
+ 0xffd40906,
+ 0x85029979,
+ 0x0892c006,
+ 0x0c9ac430,
+ 0xb5400902,
+ 0xc006519c,
+ 0xb4418510,
+ 0xb104c000,
+ 0x2a404220,
+ 0x9d4f7500,
+ 0x4422b313,
+ 0xe0000087,
+ 0xffff1884,
+ 0xb7409284,
+ 0xc0064614,
+ 0xc4300892,
+ 0x09020c9a,
+ 0x8512c006,
+ 0xc000b441,
+ 0x4220b104,
+ 0x2a00c002,
+ 0x9d537500,
+ 0x4422b314,
+ 0xe0000089,
+ 0xffff1884,
+ 0x0a029264,
+ 0x0ceac03e,
+ 0x40e8b960,
+ 0xc000b481,
+ 0x93c1ffff,
+ 0xc0007680,
+ 0x0a029122,
+ 0x0ceac03e,
+ 0xc000b481,
+ 0x9180c000,
+ 0x448cb780,
+ 0x088a7504,
+ 0x0ceac03e,
+ 0x1894d00c,
+ 0xc000b421,
+ 0x0d82c0c0,
+ 0x0d0209e2,
+ 0xffd40942,
+ 0x0a029925,
+ 0x0cb6c034,
+ 0xc000b481,
+ 0x7deeb79f,
+ 0x7e6eb7bf,
+ 0x7eeeb7df,
+ 0x7f6eb7ff,
+ 0x8c20c002,
+ 0xa60d9c22,
+ 0x7efec01c,
+ 0xc0000a82,
+ 0xc0c09182,
+ 0xc0120d82,
+ 0x0d0209c2,
+ 0xffd40906,
+ 0xc0009907,
+ 0xc4349240,
+ 0x0a020cb2,
+ 0xc000b481,
+ 0x4220b101,
+ 0x74402884,
+ 0x90e2c000,
+ 0x4808b787,
+ 0xc00a7500,
+ 0xb7809382,
+ 0x75024e0c,
+ 0x90c4c000,
+ 0xc0140d82,
+ 0x3ac09a58,
+ 0x5694b740,
+ 0x560cb740,
+ 0xa8c5d810,
+ 0xaa55f088,
+ 0x4592b720,
+ 0x9e496243,
+ 0x5a11c200,
+ 0xba090a04,
+ 0xba244002,
+ 0x70484002,
+ 0x06850305,
+ 0x9138c000,
+ 0x490cb780,
+ 0xb5802a51,
+ 0xc004490c,
+ 0xf21093a0,
+ 0x2a04aa39,
+ 0xc0037500,
+ 0xb78092e2,
+ 0x7440490c,
+ 0x3942d011,
+ 0x490cb540,
+ 0x929cc002,
+ 0x4792b760,
+ 0xba249e5c,
+ 0xc002400a,
+ 0xc00291a2,
+ 0xb760911c,
+ 0xb740650a,
+ 0x9e996104,
+ 0xba099e2d,
+ 0xd0a24003,
+ 0x9e485e7f,
+ 0x5a6dc200,
+ 0xc2000208,
+ 0xd2265a17,
+ 0x0c065908,
+ 0x5a14c200,
+ 0x9e401208,
+ 0xa94ee038,
+ 0x4002ba24,
+ 0x9e545090,
+ 0xc0017902,
+ 0xb7819102,
+ 0x75004b88,
+ 0x9064c001,
+ 0x470ab780,
+ 0xba249e48,
+ 0x70084002,
+ 0x9378c000,
+ 0xc0007640,
+ 0xb78190e4,
+ 0x75024b08,
+ 0x92c2c000,
+ 0x1e32d011,
+ 0x478ab580,
+ 0x48fd9e54,
+ 0x470ab560,
+ 0x4b90b501,
+ 0xb5402959,
+ 0x20c2490c,
+ 0xc000a0c1,
+ 0x850290a0,
+ 0x4b98b541,
+ 0x518cb780,
+ 0x75002a08,
+ 0x9222c000,
+ 0x4488b787,
+ 0xc0007500,
+ 0xb7869182,
+ 0x75007f88,
+ 0x90e2c000,
+ 0x490cb780,
+ 0xc0003a24,
+ 0xb78090a0,
+ 0x2a5d490c,
+ 0x490cb580,
+ 0x458ab780,
+ 0x400aba24,
+ 0x90fcc000,
+ 0x650ab780,
+ 0xb5800a04,
+ 0xb780650a,
+ 0x2a04518c,
+ 0xc0007500,
+ 0xb7809222,
+ 0xb720588c,
+ 0xf2c84312,
+ 0xf288a907,
+ 0xe220a895,
+ 0x088480ab,
+ 0xa095f288,
+ 0xa086f2c8,
+ 0x490cb720,
+ 0x0c82c03e,
+ 0xc000b421,
+ 0x458ab780,
+ 0xb5800a04,
+ 0xc014458a,
+ 0xb7869a96,
+ 0x75007e08,
+ 0x9222c002,
+ 0x7f08b786,
+ 0xc0027500,
+ 0xb7809182,
+ 0x2a40518c,
+ 0xc0007500,
+ 0xb78790e4,
+ 0x751a4e08,
+ 0x9024c002,
+ 0x578cb780,
+ 0x6392b723,
+ 0xa881da08,
+ 0x70029e48,
+ 0x9284c000,
+ 0x430ab780,
+ 0xb5438502,
+ 0xb580639a,
+ 0xb760440a,
+ 0xb7804412,
+ 0x8506530c,
+ 0x4918b547,
+ 0x4a18b547,
+ 0x9c629ea4,
+ 0xaa39f210,
+ 0x75002a10,
+ 0x93e2c000,
+ 0x4a08b787,
+ 0xc0007500,
+ 0xb78390e4,
+ 0x7502638a,
+ 0x92a4c000,
+ 0x4908b787,
+ 0x09027500,
+ 0x0922d001,
+ 0x0c82c438,
+ 0xb4810a02,
+ 0xb101c000,
+ 0x28f14220,
+ 0xc0383094,
+ 0xb4210c82,
+ 0xc014c000,
+ 0xb780983e,
+ 0xf2884e0c,
+ 0x0a04a955,
+ 0xb5807104,
+ 0xc0004e0c,
+ 0x850290a4,
+ 0x4e1cb540,
+ 0xa8a5da10,
+ 0x4592b720,
+ 0x60a35891,
+ 0x4003ba09,
+ 0x3a849e4c,
+ 0x71020884,
+ 0xcffe020b,
+ 0xb3542a3d,
+ 0x02894426,
+ 0x28d0d051,
+ 0xc0007440,
+ 0xc0c09142,
+ 0xc0120d82,
+ 0x0d0209c2,
+ 0xffb40942,
+ 0xb7809ba3,
+ 0x7500518c,
+ 0x90a2c000,
+ 0xffd49eab,
+ 0xb79f9b42,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0xf8399c22,
+ 0xb727a205,
+ 0xb7404e08,
+ 0xb7805204,
+ 0xd0a6448a,
+ 0x9e2d5908,
+ 0x570cb740,
+ 0xa94ee030,
+ 0x651cb760,
+ 0x4e98b747,
+ 0x4e00b747,
+ 0xb5801a04,
+ 0xc030448a,
+ 0xe200a8cd,
+ 0xd2515a40,
+ 0xda080a20,
+ 0xe210a882,
+ 0xb54082a3,
+ 0x5c955194,
+ 0xb5275c90,
+ 0xc0014e08,
+ 0xb78792c4,
+ 0x0a044e88,
+ 0x28ced3f1,
+ 0xb5877444,
+ 0xc0014e88,
+ 0xb7619034,
+ 0x85067314,
+ 0x4898b547,
+ 0x764024a6,
+ 0x4a18b547,
+ 0x5194b520,
+ 0x9202c000,
+ 0x08a0d131,
+ 0x402bb780,
+ 0x3c80c801,
+ 0xc2009e48,
+ 0xc0ff5a40,
+ 0x32082a40,
+ 0x518cb580,
+ 0xf9f80806,
+ 0x9c22aa1d,
+ 0x4e88b727,
+ 0x6004b740,
+ 0x5904d0a6,
+ 0xc8309e2d,
+ 0xb580aa4d,
+ 0xd132448a,
+ 0xb72009a0,
+ 0xd810458a,
+ 0xba19aa61,
+ 0xc2004002,
+ 0x1a045a11,
+ 0xc00070c8,
+ 0xb7819104,
+ 0xc040730c,
+ 0xb5813a00,
+ 0xb720730c,
+ 0xd0114e8c,
+ 0x70c80a18,
+ 0x9104c000,
+ 0x730cb781,
+ 0x3a00c010,
+ 0x730cb581,
+ 0x0a1cd011,
+ 0xc00070c8,
+ 0xb7819104,
+ 0xc020730c,
+ 0xb5813a00,
+ 0xb780730c,
+ 0xf288560c,
+ 0xf288a916,
+ 0x9e50a919,
+ 0x460ab720,
+ 0x1a24d011,
+ 0xba096241,
+ 0x00b24002,
+ 0xc0007048,
+ 0xb7819106,
+ 0xcfff730c,
+ 0xb5812a7a,
+ 0xd011730c,
+ 0x9e521a22,
+ 0x70486245,
+ 0x9106c000,
+ 0x730cb781,
+ 0x2a7ec7fe,
+ 0x730cb581,
+ 0x451ab740,
+ 0x5e11d0a2,
+ 0x8821f310,
+ 0xc00070c8,
+ 0xb7819104,
+ 0xcfff730c,
+ 0xb5812a4e,
+ 0xb740730c,
+ 0xb721568c,
+ 0xd808730c,
+ 0x9e50aa45,
+ 0xc2009e8a,
+ 0x1a045a11,
+ 0xb7206209,
+ 0x0a045194,
+ 0x4002ba24,
+ 0x249470c8,
+ 0x5194b520,
+ 0x9118c000,
+ 0x3c80c801,
+ 0x5194b520,
+ 0x91c0c000,
+ 0xaa61d810,
+ 0x3c80c801,
+ 0xc2009e48,
+ 0xc0ff5a40,
+ 0x32082a40,
+ 0x518cb580,
+ 0xaa59f008,
+ 0x2a00c040,
+ 0xc0007500,
+ 0xb7809102,
+ 0xc101518c,
+ 0xb5803a00,
+ 0xb760518c,
+ 0xffd45194,
+ 0x08029a31,
+ 0xaa1df9f8,
+ 0xb7009c22,
+ 0xd2515714,
+ 0xb7600e04,
+ 0xda08560c,
+ 0xc00ea881,
+ 0xc0342dfc,
+ 0xf0080cba,
+ 0x5895a961,
+ 0x5810c080,
+ 0xb4419e82,
+ 0xb780c000,
+ 0xf008454a,
+ 0xc200a963,
+ 0xf3105a10,
+ 0xf0088021,
+ 0x0c84a8e9,
+ 0xa261f008,
+ 0xc000b421,
+ 0x46cab780,
+ 0xa96bf008,
+ 0x8021f310,
+ 0xa8edf008,
+ 0xf0080c84,
+ 0xb421a269,
+ 0xb780c000,
+ 0xf00846ca,
+ 0xf310a96f,
+ 0xf0088021,
+ 0x0c8ca8f5,
+ 0xa26df008,
+ 0xc000b421,
+ 0xa97df008,
+ 0xb4410c84,
+ 0xb780c000,
+ 0x0a084d8c,
+ 0x5890d224,
+ 0xc0007244,
+ 0xd131931c,
+ 0xda080e04,
+ 0x9e4ca903,
+ 0x88a1e210,
+ 0xc0007102,
+ 0xf00891d6,
+ 0xf008aa75,
+ 0xc010a8fd,
+ 0xf0080a00,
+ 0xc008a275,
+ 0xf0080880,
+ 0xb780a0fd,
+ 0xc0344f0c,
+ 0xb4810cda,
+ 0xb720c000,
+ 0x0c844f8c,
+ 0xc000b421,
+ 0x4f0cb780,
+ 0x0a400ce4,
+ 0xc000b481,
+ 0x4f8cb720,
+ 0x08c00c84,
+ 0xc000b421,
+ 0x4f0cb780,
+ 0x4f8cb720,
+ 0xc0101ce4,
+ 0xb5800a00,
+ 0xf0484f0c,
+ 0xc008aa65,
+ 0xb5200880,
+ 0xb4814f8c,
+ 0xf048c000,
+ 0x0c84a8ed,
+ 0xc000b421,
+ 0xaa65f048,
+ 0xa8edf048,
+ 0xc0100c84,
+ 0xf0480a00,
+ 0xf048a265,
+ 0xc008aa75,
+ 0xf0480880,
+ 0xb481a0ed,
+ 0xf088c000,
+ 0x0c88a965,
+ 0xc000b441,
+ 0x0c80d131,
+ 0x402bb780,
+ 0xa967f088,
+ 0x2a40cffe,
+ 0x8021f310,
+ 0xa969f088,
+ 0xf0880c88,
+ 0xb441a265,
+ 0xd131c000,
+ 0xb7800c80,
+ 0xf088402b,
+ 0xcffea96b,
+ 0xf3102a40,
+ 0xf0488021,
+ 0x1c8ca97d,
+ 0xa269f088,
+ 0xc000b441,
+ 0x0c80d131,
+ 0x402bb780,
+ 0xa97ff048,
+ 0xc20076c0,
+ 0xc2005a11,
+ 0xf3105a14,
+ 0xf0488021,
+ 0xc001a27d,
+ 0xb7209182,
+ 0x1ca8454a,
+ 0xc000b421,
+ 0x46cab780,
+ 0xc2000c84,
+ 0xc2005a0d,
+ 0x324258c0,
+ 0xc000b481,
+ 0x0d04d131,
+ 0xaa41d808,
+ 0xc2000c8c,
+ 0xcffe588c,
+ 0xc20028fc,
+ 0x30985a50,
+ 0xc000b421,
+ 0x0d04d251,
+ 0xaa41d808,
+ 0xc2000ca0,
+ 0x1a105a11,
+ 0xc0042a3c,
+ 0xb4813a00,
+ 0xb780c000,
+ 0x0a044d8c,
+ 0x4d8cb580,
+ 0xa61d9c22,
+ 0x0c92c43e,
+ 0xb4810a02,
+ 0xb103c000,
+ 0xb7804220,
+ 0xda085e0c,
+ 0xda08a885,
+ 0xda08a909,
+ 0xda08a189,
+ 0xda08a081,
+ 0x0cd0a105,
+ 0xb4810a02,
+ 0xb103c000,
+ 0xb7204220,
+ 0xb7805d8c,
+ 0xb7a0518c,
+ 0xb7205e14,
+ 0xb74040b3,
+ 0xb560412b,
+ 0x2a40412b,
+ 0x03837500,
+ 0x4033b520,
+ 0x40abb540,
+ 0x90e2c000,
+ 0x4e08b787,
+ 0xc000750a,
+ 0xb78790f2,
+ 0x751a4e08,
+ 0x9164c013,
+ 0x638ab783,
+ 0xb5830a04,
+ 0xc450638a,
+ 0x0a020ca6,
+ 0xc000b481,
+ 0x4220b103,
+ 0xc0310087,
+ 0xd0a42880,
+ 0x02075961,
+ 0x2a7cc00f,
+ 0x5ac1c200,
+ 0xcffe0007,
+ 0x0c88287c,
+ 0xb4810a02,
+ 0xb103c000,
+ 0xd1a84220,
+ 0x9e9859c1,
+ 0x2c7ccffe,
+ 0xb4810cbc,
+ 0xb103c000,
+ 0x00874220,
+ 0x568cb740,
+ 0x628ab783,
+ 0x2880c0fc,
+ 0x29bed0f2,
+ 0x5b19d0a4,
+ 0xd8889e59,
+ 0xb563a8d2,
+ 0x12186292,
+ 0x7e7edffc,
+ 0x4002ba1c,
+ 0xc0020305,
+ 0x768291c2,
+ 0x9384c000,
+ 0x480ab780,
+ 0x6104b740,
+ 0x4002ba24,
+ 0x58ffc200,
+ 0x00c258ed,
+ 0xd0a65897,
+ 0x9e2d5908,
+ 0x12425894,
+ 0xe0389e51,
+ 0x5230a8ce,
+ 0x9ea74a7d,
+ 0xa0c2249e,
+ 0x9180c001,
+ 0x468ab780,
+ 0xa8a1da10,
+ 0x4002ba24,
+ 0xc0017048,
+ 0xb783907c,
+ 0xb720678a,
+ 0xb7404812,
+ 0x0a046104,
+ 0x678ab583,
+ 0x4003ba09,
+ 0x5e7fd0a2,
+ 0x9e2d9e49,
+ 0x5a6dc200,
+ 0xc2000218,
+ 0xd2265a17,
+ 0xc2005908,
+ 0x9ea75a14,
+ 0xa94de038,
+ 0x9e4c149e,
+ 0x50b00886,
+ 0xa1413122,
+ 0x480ab780,
+ 0xb5800a04,
+ 0xb786480a,
+ 0x75007e88,
+ 0x7f08b786,
+ 0x90c4c000,
+ 0x7d3ec01c,
+ 0x91c4c002,
+ 0x7d3ec01c,
+ 0x4442b357,
+ 0x83b1e241,
+ 0x040ed021,
+ 0xf2087682,
+ 0x0882aa59,
+ 0x0892d001,
+ 0x79022a04,
+ 0x5b0cb740,
+ 0x90e2c000,
+ 0xaa49d808,
+ 0xd8080a04,
+ 0xf008a249,
+ 0xf00aa94b,
+ 0xf010a94c,
+ 0xe0108027,
+ 0xf00882a1,
+ 0xf008a249,
+ 0xb787a0cd,
+ 0x75004488,
+ 0xd0020882,
+ 0x76820892,
+ 0xd0020a02,
+ 0x78480a42,
+ 0x90c2c000,
+ 0x8542c07c,
+ 0xa123da10,
+ 0xf0087682,
+ 0xc000a953,
+ 0xda0890c4,
+ 0xc000aa61,
+ 0xda109080,
+ 0xe310aa21,
+ 0xd80880a1,
+ 0xf008aa4d,
+ 0x0a04a0d1,
+ 0xa24dd808,
+ 0x91a0c006,
+ 0xaa59f208,
+ 0x5b0cb720,
+ 0x0507d030,
+ 0x8120c201,
+ 0x4525b740,
+ 0x75002a04,
+ 0x8023f310,
+ 0x8221f310,
+ 0xb5800103,
+ 0xc001452d,
+ 0x768290a2,
+ 0x90c4c000,
+ 0xaa61da08,
+ 0x9080c000,
+ 0xaa21da10,
+ 0xa25dd808,
+ 0xc0017686,
+ 0x76809082,
+ 0x91a4c000,
+ 0xd80874c0,
+ 0xe002a953,
+ 0xf2108d2a,
+ 0xd8088029,
+ 0xc000a251,
+ 0x74c092c0,
+ 0xa947d848,
+ 0x8d26e002,
+ 0x9160c000,
+ 0xaa61da08,
+ 0xd84874c0,
+ 0xd808a947,
+ 0xe002a25d,
+ 0xf2108d2a,
+ 0xd8488029,
+ 0xb787a245,
+ 0x75004008,
+ 0x9302c000,
+ 0x440ab780,
+ 0x70489e59,
+ 0x9244c000,
+ 0xb5478502,
+ 0xc43a4018,
+ 0x0a020c82,
+ 0xc000b481,
+ 0x4220b103,
+ 0x29fecfef,
+ 0x0c82c03a,
+ 0xc000b461,
+ 0x440ab780,
+ 0x70489e59,
+ 0xd0020882,
+ 0x76860892,
+ 0xd0010a02,
+ 0x78480a42,
+ 0x9242c000,
+ 0xb5478506,
+ 0xc43a4018,
+ 0x0a020c82,
+ 0xc000b481,
+ 0x4220b103,
+ 0x3980c011,
+ 0x0c82c03a,
+ 0xc000b461,
+ 0xc0017780,
+ 0x768091a2,
+ 0x92e4c000,
+ 0xaa21da10,
+ 0xa947f008,
+ 0xa8d5d808,
+ 0x8021f310,
+ 0xa8dad808,
+ 0xa245f008,
+ 0x0c849e5c,
+ 0xa0dad808,
+ 0xd80800c2,
+ 0xc000a0d5,
+ 0xda0892a0,
+ 0xf008aa61,
+ 0xd848a95b,
+ 0xf310a8c9,
+ 0xd8488021,
+ 0xf008a8ce,
+ 0x9e5ca259,
+ 0xd8480c84,
+ 0x00c2a0ce,
+ 0xa0c9d848,
+ 0xaa5dd808,
+ 0xa95ff008,
+ 0xa940f04a,
+ 0xa9c7f048,
+ 0x8021f310,
+ 0xa94ff048,
+ 0xa25df008,
+ 0x8221f210,
+ 0xa8c2d848,
+ 0xa241f048,
+ 0x8033f310,
+ 0x80afe210,
+ 0xd8480c84,
+ 0xf048a0c2,
+ 0xf048a245,
+ 0xb786a0cd,
+ 0x75007f88,
+ 0x92e2c005,
+ 0x460cb780,
+ 0x5a14b7a0,
+ 0x5c0cb720,
+ 0x598cb7c0,
+ 0xa8cef008,
+ 0x5908d228,
+ 0x0e58d0f1,
+ 0x403db740,
+ 0xa8c9f008,
+ 0xe0429d48,
+ 0xf248a944,
+ 0xc201aa55,
+ 0xe2108122,
+ 0xf31080ab,
+ 0x70488a21,
+ 0x90f8c000,
+ 0xb5478506,
+ 0xb5474498,
+ 0x70455018,
+ 0x90b8c000,
+ 0xb5478506,
+ 0xb7205118,
+ 0xb780588c,
+ 0x75004bad,
+ 0xc0040283,
+ 0xf2889082,
+ 0xf288a93b,
+ 0xd010a8b1,
+ 0xf3100607,
+ 0x74408021,
+ 0xa239f288,
+ 0x90c4c000,
+ 0xaa29f288,
+ 0xa22df288,
+ 0xaa31f288,
+ 0xa8adf288,
+ 0x71020a04,
+ 0xa231f288,
+ 0x9278c000,
+ 0xa8b9f288,
+ 0xaa3df288,
+ 0xc0007048,
+ 0x850690b8,
+ 0x5098b547,
+ 0xf2888502,
+ 0xf288a13b,
+ 0xc002a133,
+ 0xc0349300,
+ 0xf2889bab,
+ 0xf288a8b5,
+ 0x7048aa31,
+ 0xa021f2c8,
+ 0x91b8c002,
+ 0xa8a2f210,
+ 0xc0007642,
+ 0xf2889284,
+ 0xf288a93f,
+ 0xf248aa39,
+ 0xf310a8d5,
+ 0x71028821,
+ 0xc000852a,
+ 0xb5279136,
+ 0xb5274490,
+ 0xc0005010,
+ 0x85669060,
+ 0x4488b787,
+ 0xc0007500,
+ 0xf2c89184,
+ 0x7135aa21,
+ 0x90f6c000,
+ 0xb5478506,
+ 0xb5474498,
+ 0xb7875018,
+ 0x75004488,
+ 0x9024c001,
+ 0xa9b1f288,
+ 0xa93bf288,
+ 0x59fdd1a4,
+ 0x05f69e9f,
+ 0xe2205d87,
+ 0x0d0281af,
+ 0x9b1ac034,
+ 0xaa21f2c8,
+ 0xc0007008,
+ 0xf28891dc,
+ 0xf288aa3d,
+ 0xc200a8b9,
+ 0x70485a07,
+ 0x90bcc000,
+ 0xb5478506,
+ 0xb79f5018,
+ 0xb7bf7e6e,
+ 0xb7df7eee,
+ 0xb7ff7f6e,
+ 0xc0027fee,
+ 0x9c228c00,
+ 0x0cfec036,
+ 0xb4819e5c,
+ 0x9c22c000,
+ 0x5a14b720,
+ 0x404db780,
+ 0x9d3a7504,
+ 0x91c4c000,
+ 0x598cb720,
+ 0x4cabb780,
+ 0x41cbb580,
+ 0x5a40c200,
+ 0x5941c200,
+ 0x9100c001,
+ 0x5b8cb720,
+ 0x402db780,
+ 0x8821e310,
+ 0xc0007427,
+ 0x084f90b6,
+ 0x90e0c000,
+ 0x8532741a,
+ 0x4478b302,
+ 0xb7409d43,
+ 0xb723403d,
+ 0xe210628a,
+ 0xd0718121,
+ 0x70881a14,
+ 0x9138c000,
+ 0x0a12d071,
+ 0xb7207088,
+ 0xc000598c,
+ 0xb72090bc,
+ 0x9d4b598c,
+ 0x40a9b780,
+ 0x4129b700,
+ 0x7104c812,
+ 0x7080c010,
+ 0xb7409c22,
+ 0x85025a0c,
+ 0x5b8cb720,
+ 0xd8088702,
+ 0xf010aa4d,
+ 0xf010a16b,
+ 0xf010a16f,
+ 0xd810a173,
+ 0xd810a16f,
+ 0xf010a16b,
+ 0xb780a261,
+ 0xb547588c,
+ 0xb5404480,
+ 0xb540413d,
+ 0xb54041bd,
+ 0xb540423d,
+ 0xb54041bb,
+ 0xf288413b,
+ 0xf288a11b,
+ 0xf288a117,
+ 0xf288a113,
+ 0xd808a10b,
+ 0xf288a8ce,
+ 0xf2c8a11f,
+ 0xf2c8a103,
+ 0xb520a107,
+ 0x9c224035,
+ 0xb780a60d,
+ 0x9ea5588c,
+ 0x030776c0,
+ 0xa19ef288,
+ 0x9162c001,
+ 0x5a0cb780,
+ 0xa881f208,
+ 0xc0007444,
+ 0xf2d092e4,
+ 0x7500aa25,
+ 0x9242c000,
+ 0xa9b5f290,
+ 0x59fdd1a4,
+ 0x05969e99,
+ 0x0d029ea1,
+ 0x05965d87,
+ 0x9a5ec034,
+ 0x598cb780,
+ 0xa005dac8,
+ 0xf2900a82,
+ 0xf2d0a2b5,
+ 0xf290a2a5,
+ 0xc034a329,
+ 0xf2d09a9f,
+ 0xb5a7a021,
+ 0xb79f4488,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0x9e5b9c22,
+ 0x5b94b720,
+ 0xaa61f008,
+ 0xa968f00a,
+ 0xa96ef008,
+ 0x41dbb740,
+ 0x404db580,
+ 0xaa6dd808,
+ 0x8021f310,
+ 0x415bb740,
+ 0x41cbb580,
+ 0xaa69d808,
+ 0x8021f310,
+ 0x414bb580,
+ 0xa8e9f008,
+ 0x414db520,
+ 0xaa6df008,
+ 0x5c14b760,
+ 0x5a0cb720,
+ 0x41cdb580,
+ 0xa963f010,
+ 0x8325e020,
+ 0x402db740,
+ 0xa8f1f008,
+ 0x802df210,
+ 0xf0107482,
+ 0xb520a261,
+ 0xc000424d,
+ 0xf0089184,
+ 0xf050aa71,
+ 0xc200a967,
+ 0xf3105a0f,
+ 0xf0508021,
+ 0x8502a265,
+ 0xa16fd808,
+ 0xa16bd808,
+ 0x9e508502,
+ 0xa16bf008,
+ 0xa16ff008,
+ 0xa173f008,
+ 0xb7209c22,
+ 0x9e5a5994,
+ 0xaa41f008,
+ 0x4149b720,
+ 0x7048c410,
+ 0xa0c1f008,
+ 0x40c9b780,
+ 0x7102d012,
+ 0xf00874c0,
+ 0xc000a241,
+ 0xb72091c4,
+ 0xd8085a0c,
+ 0xb720aa41,
+ 0xb5805b94,
+ 0xf00841ab,
+ 0xb580aa41,
+ 0x0802404d,
+ 0xa6059c22,
+ 0x0c30f011,
+ 0x5c14b7a0,
+ 0x598cb7a0,
+ 0x9124c000,
+ 0xa9aada50,
+ 0xa9b1da08,
+ 0xc0340d02,
+ 0xb72099c3,
+ 0xd2085a0c,
+ 0xd208a8aa,
+ 0xb740a926,
+ 0x9e49412b,
+ 0xaa35da08,
+ 0x7040c010,
+ 0x1a089e81,
+ 0x7282c812,
+ 0xc0007088,
+ 0xb78090c4,
+ 0xda08588c,
+ 0xda50a102,
+ 0x9e50a927,
+ 0x802df210,
+ 0xa225da50,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0x8440a61d,
+ 0x77c20787,
+ 0xb5bf0287,
+ 0xc0007e6c,
+ 0xb72091a4,
+ 0xb7805c0c,
+ 0xb7c0412b,
+ 0x0a045a14,
+ 0x412bb580,
+ 0x9320c000,
+ 0x7f88b726,
+ 0xc0007440,
+ 0xb78091c2,
+ 0xf2485a0c,
+ 0xb720a891,
+ 0x9ea65894,
+ 0xb520588f,
+ 0xc000484d,
+ 0xb7809100,
+ 0xb7c0588c,
+ 0xf2885a14,
+ 0x77c4a081,
+ 0xa841f210,
+ 0x598cb780,
+ 0xd0010c02,
+ 0x74040c02,
+ 0xd2089ea5,
+ 0xc001a98e,
+ 0x760092c4,
+ 0x9104c001,
+ 0x4488b787,
+ 0xc0007500,
+ 0xdad09122,
+ 0xd210aa25,
+ 0x0a14a8a9,
+ 0x9180c000,
+ 0x5008b787,
+ 0xc0007500,
+ 0xdad09162,
+ 0xd210aa25,
+ 0x0a08a8a9,
+ 0x7048c410,
+ 0xa0a5dad0,
+ 0x5c0cb720,
+ 0xaa25dad0,
+ 0x453bb740,
+ 0x8021f310,
+ 0x452bb580,
+ 0x9120c000,
+ 0xfff40d82,
+ 0xda509b68,
+ 0xdad0a059,
+ 0xdad0a025,
+ 0xc017aaa5,
+ 0x740291e0,
+ 0x9184c017,
+ 0x9e5a76ec,
+ 0x5b8cb780,
+ 0xd009098e,
+ 0xd03309b4,
+ 0xda086134,
+ 0x9d4da88d,
+ 0x0d027075,
+ 0x9158c000,
+ 0xaa2dda10,
+ 0x8021f310,
+ 0x9e827048,
+ 0x1d22d00b,
+ 0xaa49f210,
+ 0x9e527502,
+ 0x90e4c000,
+ 0xaa49da10,
+ 0xc0007500,
+ 0xb7809182,
+ 0xd111588c,
+ 0xb72008c8,
+ 0x76404031,
+ 0xc0010389,
+ 0x760091e4,
+ 0x9024c001,
+ 0xaaa5dad0,
+ 0xaa29d210,
+ 0xa8a5d210,
+ 0x710ad410,
+ 0x704ad412,
+ 0xb7607680,
+ 0xc0005c04,
+ 0xd81891c2,
+ 0xd800aa69,
+ 0xd040a8e1,
+ 0xd800a072,
+ 0xd800a271,
+ 0xd800a26d,
+ 0xd840a0f5,
+ 0xc013aa69,
+ 0xb72093e0,
+ 0xb7805c0c,
+ 0x024a44ab,
+ 0x44abb580,
+ 0xa2d9da50,
+ 0x9240c014,
+ 0xaa4dd290,
+ 0xc0017500,
+ 0x76009122,
+ 0x9044c001,
+ 0xb7607480,
+ 0xc0005c04,
+ 0xf04091a2,
+ 0xd291a8e5,
+ 0x70486e31,
+ 0x90dcc000,
+ 0xaa61d800,
+ 0xa275d800,
+ 0xa8a1d210,
+ 0xaa51da50,
+ 0xc0007102,
+ 0xda509088,
+ 0xd290a0d1,
+ 0x7500aa45,
+ 0xaad1da50,
+ 0x9100c012,
+ 0xa9d2da50,
+ 0x9140c006,
+ 0xb7607480,
+ 0xc0035c04,
+ 0xd81893a2,
+ 0xd011a8e9,
+ 0x70486e37,
+ 0x91bcc000,
+ 0xaa6dd800,
+ 0x6a0c5884,
+ 0xc0007048,
+ 0xd04090dc,
+ 0xc000a075,
+ 0x850290a0,
+ 0xa177d040,
+ 0xa8aed210,
+ 0xa8e5f040,
+ 0x6e11d291,
+ 0xd0117048,
+ 0x9e4b1a32,
+ 0xa8e9d818,
+ 0x09026247,
+ 0x0922d00d,
+ 0xc0017048,
+ 0xd800903c,
+ 0xd0a4aa71,
+ 0x9e495884,
+ 0x70486a0c,
+ 0xd00d0882,
+ 0x78440892,
+ 0x9282c000,
+ 0xa8e1f000,
+ 0xaa75d800,
+ 0x6a0c5884,
+ 0xc0007048,
+ 0x8506917c,
+ 0xa173d040,
+ 0xa15bd290,
+ 0xaa61d800,
+ 0x93c0c000,
+ 0xa8f1d800,
+ 0xd0408502,
+ 0xd818a173,
+ 0xd013aa69,
+ 0xf3106916,
+ 0x74808021,
+ 0x5a0bc200,
+ 0xa271d800,
+ 0x91c2c000,
+ 0xa8f5d800,
+ 0xaa61f000,
+ 0x6916d013,
+ 0x8021f310,
+ 0x5a0bc200,
+ 0xa275d800,
+ 0xaa71d040,
+ 0xc0007500,
+ 0xda1091e2,
+ 0xda10aa35,
+ 0x6a14a8c9,
+ 0x5a0fc200,
+ 0xc0007048,
+ 0x850690bc,
+ 0xa17bd040,
+ 0xaa69d818,
+ 0xa26dd800,
+ 0xab71d040,
+ 0xc0027580,
+ 0x76009162,
+ 0x9024c002,
+ 0xaa21d210,
+ 0xa958da52,
+ 0x1244e001,
+ 0x444cb340,
+ 0x751e9e44,
+ 0xa8f9d040,
+ 0xb342853e,
+ 0x74404478,
+ 0x82adf210,
+ 0x91c2c000,
+ 0xa8cada10,
+ 0xaa35da10,
+ 0x1a0c9e4a,
+ 0xd0117088,
+ 0xb35108d4,
+ 0x0283443c,
+ 0xa945d290,
+ 0x5008b727,
+ 0xb7277480,
+ 0xd0114490,
+ 0xb3540a54,
+ 0x74404422,
+ 0xd0110289,
+ 0xb3540a54,
+ 0x76404422,
+ 0xa8a9d210,
+ 0xb3150289,
+ 0xd2104424,
+ 0xd410aa25,
+ 0xd412704a,
+ 0xc00b710a,
+ 0x0d829380,
+ 0x9a0dfff4,
+ 0xa059da50,
+ 0x9300c00c,
+ 0xaa59d290,
+ 0xc0017500,
+ 0x760091c2,
+ 0x9244c000,
+ 0xaa59da50,
+ 0xaaa1d210,
+ 0xa945d290,
+ 0x5008b727,
+ 0xd4120a04,
+ 0x74807148,
+ 0x4490b727,
+ 0x90a0c00a,
+ 0xfff40d82,
+ 0xd29099ee,
+ 0x7500aa5d,
+ 0xa059da50,
+ 0xa359d290,
+ 0x9282c00b,
+ 0xa957da50,
+ 0xaa41da90,
+ 0x80a1e210,
+ 0xda900a04,
+ 0xda50a241,
+ 0xc00ba0d5,
+ 0xd80090e0,
+ 0x7500aa69,
+ 0x9244c001,
+ 0x5f0cb780,
+ 0xa97bf000,
+ 0xa881da08,
+ 0x88a3e210,
+ 0xa0f9f000,
+ 0xaa51f250,
+ 0xda507500,
+ 0xc000aad9,
+ 0xd04091da,
+ 0x0a88aa79,
+ 0x75008506,
+ 0xa17bd2c8,
+ 0x0a52d011,
+ 0x4424b354,
+ 0xd2900289,
+ 0xd210a8c6,
+ 0x7640a8a9,
+ 0xa925d210,
+ 0x0a54d011,
+ 0x4422b354,
+ 0xd4100289,
+ 0xd412704a,
+ 0x7640708a,
+ 0x9200c008,
+ 0xc0087600,
+ 0xa96892c4,
+ 0xf250aa6d,
+ 0xf310a953,
+ 0xf3108221,
+ 0xf2508821,
+ 0xf288a251,
+ 0x7102a8e1,
+ 0x92d6c001,
+ 0xa8e9d800,
+ 0x5f04b740,
+ 0x5904d0a6,
+ 0xc8309e2d,
+ 0xf000aa4d,
+ 0xf310a97b,
+ 0xf0008821,
+ 0xd2c8a279,
+ 0xd040a8f9,
+ 0x7442a8fa,
+ 0xd0110a88,
+ 0xb3540a54,
+ 0x76404424,
+ 0xc0000289,
+ 0xda5090e2,
+ 0x0a04aa59,
+ 0x710ad412,
+ 0xa8a9d210,
+ 0xaa59da50,
+ 0xa945d290,
+ 0x704ad410,
+ 0x5008b727,
+ 0xd4100a0c,
+ 0x7480710a,
+ 0x4490b727,
+ 0x9220c005,
+ 0xaa69d800,
+ 0x5f04b740,
+ 0x5904d226,
+ 0xc8309e2d,
+ 0xd880a8ce,
+ 0x9e4aa8e1,
+ 0xc0806095,
+ 0xc2005a7f,
+ 0x00985a61,
+ 0xf24858a3,
+ 0xd880a0e1,
+ 0x7440aa61,
+ 0xa979f000,
+ 0xd00e0882,
+ 0x62450892,
+ 0x59a3d224,
+ 0x0a0276c0,
+ 0x0a42d00e,
+ 0x3098e000,
+ 0x90a2c000,
+ 0xa0e2f248,
+ 0xf0009e93,
+ 0x76c0a97b,
+ 0x882bf210,
+ 0xa279f000,
+ 0x90fcc000,
+ 0xa8e1f248,
+ 0xc0007440,
+ 0xf210911a,
+ 0xc200aa31,
+ 0xc0005804,
+ 0xf2509220,
+ 0xd033aa51,
+ 0x9e5b6142,
+ 0xe2205d87,
+ 0x0d0281af,
+ 0x7f64b57f,
+ 0x9ae2c014,
+ 0x7f64b77f,
+ 0xaa7df288,
+ 0xc0007500,
+ 0xda109122,
+ 0xf2c8a8ad,
+ 0x6243aa61,
+ 0x7008c010,
+ 0xaa69d800,
+ 0x5e84b740,
+ 0xa961f248,
+ 0xa8c9f250,
+ 0x5904d226,
+ 0xc8309e2d,
+ 0xf210a8ce,
+ 0xd033aa31,
+ 0x9e496122,
+ 0x5a07c200,
+ 0xc0121002,
+ 0xd0247008,
+ 0xe2205987,
+ 0x0d0281af,
+ 0x7f64b57f,
+ 0xc0140181,
+ 0xd0249ab3,
+ 0xc014598f,
+ 0xd2909ad9,
+ 0xb75fa9c9,
+ 0xda507e64,
+ 0xb77fa959,
+ 0xf2107f64,
+ 0xe2108227,
+ 0xb7208ba7,
+ 0xd0115f94,
+ 0x190c08a6,
+ 0x7008d410,
+ 0xaa75d040,
+ 0x7142d410,
+ 0x41c9b720,
+ 0x708ad412,
+ 0xa945d290,
+ 0x70cad412,
+ 0xb7277502,
+ 0xd0114490,
+ 0xb3540a52,
+ 0x74404424,
+ 0x5008b727,
+ 0xd0110289,
+ 0xb3541a52,
+ 0x74804422,
+ 0xd0110289,
+ 0xb3540a54,
+ 0x74404422,
+ 0xd0110289,
+ 0xb3540a54,
+ 0x76404422,
+ 0xc0000289,
+ 0xd2109082,
+ 0xd210aaa9,
+ 0xd210aa29,
+ 0xd410a8a5,
+ 0xd412710a,
+ 0x7480704a,
+ 0xaa69d840,
+ 0x0a46d002,
+ 0xd840024a,
+ 0xc000a269,
+ 0x0d829360,
+ 0x9889fff4,
+ 0xaa5dd290,
+ 0xda507500,
+ 0xc000a059,
+ 0xda5091a2,
+ 0xda90a957,
+ 0xe210aa41,
+ 0x0a0480a1,
+ 0xa241da90,
+ 0xa0d5da50,
+ 0xaa59da50,
+ 0xa24dda10,
+ 0xc00077c0,
+ 0xb78090c4,
+ 0xda485c0c,
+ 0x000ba38a,
+ 0x7d6eb79f,
+ 0x7deeb7bf,
+ 0x7e6eb7df,
+ 0x7eeeb7ff,
+ 0x8c40c002,
+ 0xa61d9c22,
+ 0xb7208460,
+ 0xb7805a0c,
+ 0x0f82402d,
+ 0xb55f0902,
+ 0x75027dec,
+ 0x7e6cb55f,
+ 0xc00b0303,
+ 0xb7a09164,
+ 0xb7a05b8c,
+ 0xf2085994,
+ 0xda10a9b2,
+ 0x0d02a9ad,
+ 0x9a16c014,
+ 0x5c0cb780,
+ 0x5894b720,
+ 0xa8cdd288,
+ 0xa91ff208,
+ 0xb500070b,
+ 0x9ea5444d,
+ 0x8021e210,
+ 0x038b7440,
+ 0xa01df208,
+ 0x93c4c000,
+ 0xaa49da08,
+ 0xc0007502,
+ 0xda109334,
+ 0xb740a8aa,
+ 0xd0a65e84,
+ 0xf2085d04,
+ 0x9e2ea8e9,
+ 0xaa41c838,
+ 0x5904d0a6,
+ 0x8122c201,
+ 0x8021f310,
+ 0x5a0bc200,
+ 0xa241d800,
+ 0x91a0c000,
+ 0xaa29da10,
+ 0x5e84b740,
+ 0xa8f1da08,
+ 0x5904d226,
+ 0xc8309e2d,
+ 0xda08a0cd,
+ 0xda10aa49,
+ 0xda12a8d1,
+ 0x1a04a9a8,
+ 0xd0136243,
+ 0xe0100942,
+ 0xb77f80a7,
+ 0xb53f7e7c,
+ 0xf2087d6c,
+ 0x744aa8ee,
+ 0xb3328506,
+ 0x76404c78,
+ 0x7e7cb55f,
+ 0x9124c000,
+ 0xaa4df208,
+ 0xf2080a04,
+ 0xc004a24d,
+ 0xb7809060,
+ 0xb7405b0c,
+ 0xf2086204,
+ 0x9e2da881,
+ 0x5904d0a6,
+ 0x588cb720,
+ 0xaa4dc830,
+ 0xb7609e4a,
+ 0xd0334435,
+ 0xf2086128,
+ 0xd1a2a8cd,
+ 0x5d935d8f,
+ 0x81afe220,
+ 0x8ab3f210,
+ 0xc0140d02,
+ 0xda10999b,
+ 0xc028aa4d,
+ 0x70086a00,
+ 0x92d6c000,
+ 0xaa45f248,
+ 0x09d2d012,
+ 0x9e5b624b,
+ 0x0108d030,
+ 0xe2205d87,
+ 0x0d0281af,
+ 0xa1c6f248,
+ 0x9984c014,
+ 0xa045f248,
+ 0x90e0c000,
+ 0xaa4df208,
+ 0xf2080a04,
+ 0xda10a24d,
+ 0xda10a951,
+ 0xd124aa29,
+ 0xd01158c0,
+ 0xd0a208c2,
+ 0x70485e49,
+ 0x9216c000,
+ 0xaa4df248,
+ 0xa944f24a,
+ 0x5904d226,
+ 0x8021f310,
+ 0x8221f310,
+ 0x5a0bc200,
+ 0x9100c001,
+ 0x5e45d0a2,
+ 0xc0007048,
+ 0xf2489196,
+ 0xf248a947,
+ 0xf310aa4d,
+ 0xc2008021,
+ 0xc0005a07,
+ 0xd0119320,
+ 0xc2006a26,
+ 0x70485a0b,
+ 0x9216c000,
+ 0xa8c5f248,
+ 0xaa4df248,
+ 0x5904d0a6,
+ 0x8122c201,
+ 0x8021f310,
+ 0x5a0bc200,
+ 0x9080c000,
+ 0xaa45f248,
+ 0xa249f248,
+ 0xaa49da08,
+ 0xb7407500,
+ 0xc0035f04,
+ 0xf2089202,
+ 0x7500aa6d,
+ 0x9162c003,
+ 0x5894b740,
+ 0xaa41f050,
+ 0xc0037500,
+ 0xb7609082,
+ 0xb7405d0c,
+ 0xb9605c94,
+ 0xd0714038,
+ 0xd0720938,
+ 0xb79f0ca8,
+ 0xf1c87fcd,
+ 0xf1f1a8dd,
+ 0xf1e9a23d,
+ 0xffffa0dd,
+ 0xb7609301,
+ 0xda10589c,
+ 0xf058a8a9,
+ 0xd0a6aa61,
+ 0x9e2d5904,
+ 0xa241f010,
+ 0x7e6cb73f,
+ 0xaa4dc830,
+ 0xf0087440,
+ 0xc001a261,
+ 0xda109382,
+ 0x0a04aa29,
+ 0x75062a0c,
+ 0x92a4c001,
+ 0x7d6cb75f,
+ 0xd0100a26,
+ 0x75027088,
+ 0x92bcc000,
+ 0x0d28d011,
+ 0x08b8d012,
+ 0x19c4d010,
+ 0xaa25f031,
+ 0xa8c5f029,
+ 0xb79f9ea2,
+ 0x07f47dec,
+ 0xb59f0242,
+ 0xffff7dec,
+ 0x77c092a1,
+ 0x9104c000,
+ 0x8502c010,
+ 0xa123da90,
+ 0x9220c000,
+ 0x7df4b73f,
+ 0x5d91d3a2,
+ 0xb55f0d02,
+ 0xc0807f64,
+ 0xc0145d90,
+ 0xda9098c7,
+ 0xb75fa021,
+ 0xb7407f64,
+ 0xda10588c,
+ 0xd888aa29,
+ 0x9e2da8c1,
+ 0x5904d226,
+ 0xa0cdc830,
+ 0x7ceeb79f,
+ 0x7d6eb7bf,
+ 0x7deeb7df,
+ 0x7e6eb7ff,
+ 0x8c60c002,
+ 0xa6059c22,
+ 0x6204b740,
+ 0xd2a69e5d,
+ 0x9e2d5904,
+ 0xa9cec830,
+ 0x0d0265a7,
+ 0x98a0c014,
+ 0xc0149e83,
+ 0x000a98c7,
+ 0x58050804,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xc0300487,
+ 0xb740ac3d,
+ 0x9d2a5994,
+ 0xa45dc038,
+ 0xac3dc030,
+ 0xa45dc038,
+ 0xac3dc030,
+ 0xa45dc038,
+ 0x5f8cb720,
+ 0x5a0cb780,
+ 0xb5408502,
+ 0xb5404039,
+ 0xb72040b9,
+ 0x8512590c,
+ 0xa10bd288,
+ 0x8502c010,
+ 0xa10bf248,
+ 0xa107f248,
+ 0xa10ff248,
+ 0xa8c2d010,
+ 0xa941d010,
+ 0xb5408506,
+ 0xda484039,
+ 0xda48a092,
+ 0xc000a119,
+ 0xa60d9040,
+ 0xb7a09e5d,
+ 0xf2085994,
+ 0xf210a92e,
+ 0xf208a12e,
+ 0xf210aa31,
+ 0xf208a231,
+ 0xf210a8bd,
+ 0xd208a0bd,
+ 0xd210aa25,
+ 0xd208a225,
+ 0xd210a8a9,
+ 0xda08a0a9,
+ 0xda10aa35,
+ 0xf208a235,
+ 0xd0b1a8b9,
+ 0xf2100a50,
+ 0xd208a0b9,
+ 0xd0b1a882,
+ 0xd0b10cd0,
+ 0xb5200a52,
+ 0xd2084031,
+ 0xd0b1a882,
+ 0xb5200cd2,
+ 0xf2484031,
+ 0xf250aa35,
+ 0xd208a235,
+ 0xb7c0a8a1,
+ 0xd2105a0c,
+ 0xdac8a0a1,
+ 0xda48aa25,
+ 0xdad0a9d2,
+ 0xf208a225,
+ 0xfff4a9ad,
+ 0xda489b72,
+ 0xda48a9da,
+ 0xf208a051,
+ 0xf210a9ad,
+ 0xfff4a92e,
+ 0xda089b68,
+ 0xb720aa49,
+ 0xda485c0c,
+ 0x6008a059,
+ 0x44abb500,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x74c0c008,
+ 0x9e529e58,
+ 0x90fcc000,
+ 0x70c0d002,
+ 0x51f31a14,
+ 0xc0055013,
+ 0xc0007400,
+ 0xd00290fc,
+ 0x1a507000,
+ 0x01285013,
+ 0x6304b740,
+ 0x638cb780,
+ 0x5904d1a6,
+ 0xc0409e2d,
+ 0xc830a8e5,
+ 0x7044aa4d,
+ 0xd01d6009,
+ 0xd01a1214,
+ 0xb3405013,
+ 0x122248ba,
+ 0x9c225010,
+ 0x75269e5c,
+ 0xd01e0882,
+ 0xb3404000,
+ 0xc38048bc,
+ 0xc0007500,
+ 0xc00290bc,
+ 0x9c22084e,
+ 0x7508c004,
+ 0x915cc000,
+ 0xc2000a04,
+ 0xc0045a07,
+ 0x08847508,
+ 0x935affff,
+ 0x629cb740,
+ 0xc2209d4b,
+ 0xd013a805,
+ 0xe210691d,
+ 0x9c228021,
+ 0x588cb780,
+ 0xa908f28a,
+ 0xa891f288,
+ 0xa91ff288,
+ 0xa89af288,
+ 0x8ba3e210,
+ 0xc20174c0,
+ 0xd01e892a,
+ 0xb3404000,
+ 0xd1a448bc,
+ 0x9e9959fd,
+ 0x5d870596,
+ 0x81afe220,
+ 0xfffc0d02,
+ 0x000092e0,
+ 0x87c2c809,
+ 0x0c20b060,
+ 0x87c2c809,
+ 0x0a60b060,
+ 0x87c2c809,
+ 0x09c0b060,
+};
+
+unsigned long aui32H264VCM_SlaveMTXTOPAZFWData[] = {
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x809000b0,
+ 0x809002f8,
+ 0x828842f4,
+ 0x82883c24,
+ 0x82883c34,
+ 0x82883cd4,
+ 0x828839b0,
+ 0x82883a06,
+ 0x82883a00,
+ 0x82883d04,
+ 0x82883d48,
+ 0x82883d6c,
+ 0x82883da8,
+ 0x82883de0,
+ 0x82883dec,
+ 0x82883e1c,
+ 0x82883e4c,
+ 0x82883e74,
+ 0x82883ea4,
+ 0x82883ed4,
+ 0x82883eda,
+ 0x82883ee0,
+ 0x82883a6c,
+ 0x82884070,
+ 0x82884078,
+ 0x82884080,
+ 0x828840b4,
+ 0x82884554,
+ 0x82884426,
+ 0x82884400,
+ 0x8288448e,
+ 0x82884510,
+ 0x828842b4,
+ 0x828843bc,
+ 0x828843fc,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x8090074c,
+ 0x8090074c,
+ 0x80901efc,
+ 0x8090197c,
+ 0x80902dec,
+ 0x809022c4,
+ 0x80901ca4,
+ 0x8090074c,
+ 0x8090074c,
+ 0x8090074c,
+ 0x8090074c,
+ 0x8090074c,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0xa0101100,
+ 0xa01001b0,
+ 0xa0101102,
+ 0xa01001b2,
+ 0xa0101104,
+ 0xa0100124,
+ 0xa0101106,
+ 0xa0100126,
+ 0xa0100134,
+ 0x00000000,
+ 0xa0101120,
+ 0xa0100136,
+ 0xa0101122,
+ 0xa0100144,
+ 0x80101160,
+ 0x80101162,
+ 0x80101180,
+ 0x80101182,
+ 0x80100140,
+ 0x80100142,
+ 0x80100150,
+ 0x80100152,
+ 0x80100154,
+ 0x80100146,
+ 0x803003a0,
+ 0x80100100,
+ 0x80105156,
+ 0xa0101164,
+ 0xa0100184,
+ 0x80101194,
+ 0x801001b4,
+ 0x80100146,
+ 0x00000000,
+ 0x00000003,
+ 0x00000002,
+ 0x00000002,
+ 0x00000001,
+ 0x00000001,
+ 0x00000001,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000005,
+ 0x000f9400,
+ 0x000f9401,
+ 0x000fd403,
+ 0x000fd407,
+ 0x000fd517,
+ 0x000fdd37,
+ 0x000fff37,
+ 0x000ffb37,
+ 0x00006b37,
+ 0x00006b36,
+ 0x00002b36,
+ 0x00002b30,
+ 0x00002a20,
+ 0x40002220,
+ 0x00000000,
+ 0x00000000,
+ 0x00010001,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x01010000,
+ 0x02020201,
+ 0x04030303,
+ 0x05040404,
+ 0x00140005,
+ 0x001a0016,
+ 0x0020001c,
+ 0x00280024,
+ 0x0034002c,
+ 0x00400038,
+ 0x00500048,
+ 0x00680058,
+ 0x00800070,
+ 0x00a00090,
+ 0x00d000b0,
+ 0x010000e0,
+ 0x01400120,
+ 0x01a00160,
+ 0x020001c0,
+ 0x02800240,
+ 0x034002c0,
+ 0x04000380,
+ 0x05000480,
+ 0x06800580,
+ 0x08000700,
+ 0x0a000900,
+ 0x0d000b00,
+ 0x10000e00,
+ 0x14001200,
+ 0x1a001600,
+ 0x00001c00,
+ 0x00200040,
+ 0x001002ab,
+ 0x015500cd,
+ 0x00080249,
+ 0x00cd01c7,
+ 0x0155005d,
+ 0x0249013b,
+ 0x00040111,
+ 0x01c700f1,
+ 0x00cd01af,
+ 0x005d00c3,
+ 0x01550059,
+ 0x013b0029,
+ 0x0249025f,
+ 0x01110235,
+ 0x00020021,
+ 0x00f1001f,
+ 0x01c70075,
+ 0x01af006f,
+ 0x00cd0069,
+ 0x00c30019,
+ 0x005d017d,
+ 0x0059005b,
+ 0x015502b9,
+ 0x002900a7,
+ 0x013b0283,
+ 0x025f0135,
+ 0x02490095,
+ 0x0235023f,
+ 0x0111008b,
+ 0x00210219,
+ 0x00010041,
+ 0x0b060600,
+ 0x0c0b0a06,
+ 0x0a0b0c06,
+ 0x0c0d0c0c,
+ 0x0d0d0c06,
+ 0x0b0b0c0c,
+ 0x0e0d0a0d,
+ 0x0a0d0e0e,
+ 0x0c0d0a06,
+ 0x0c0e0c0e,
+ 0x0e0d0a0d,
+ 0x0f0c0c0c,
+ 0x0f0b0d0e,
+ 0x0d0f0e0e,
+ 0x0d0f0f0f,
+ 0x0c0b0f0e,
+ 0x00000006,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x1234baac,
+ 0x00000000,
+};
+
+unsigned long aui32H264VCM_SlaveMTXTOPAZFWTextReloc[] = {
+ 0
+};
+
+unsigned char aui8H264VCM_SlaveMTXTOPAZFWTextRelocType[] = {
+ 0
+};
+
+unsigned long aui32H264VCM_SlaveMTXTOPAZFWTextRelocFullAddr[] = {
+ 0
+};
+
+unsigned long aui32H264VCM_SlaveMTXTOPAZFWDataReloc[] = {
+ 0
+};
diff --git a/fw/H264SlaveFirmwareVCM_bin.h b/fw/H264SlaveFirmwareVCM_bin.h
new file mode 100644
index 0000000..1d0b243
--- /dev/null
+++ b/fw/H264SlaveFirmwareVCM_bin.h
@@ -0,0 +1,44 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+
+// This file was automatically generated from ../release/H264SlaveFirmwareVCM.dnl using dnl2c.
+
+extern unsigned long aui32H264VCM_SlaveMTXTOPAZFWText[];
+extern unsigned long ui32H264VCM_SlaveMTXTOPAZFWTextSize;
+
+extern unsigned long aui32H264VCM_SlaveMTXTOPAZFWData[];
+extern unsigned long ui32H264VCM_SlaveMTXTOPAZFWDataSize;
+
+extern unsigned long aui32H264VCM_SlaveMTXTOPAZFWTextReloc[];
+extern unsigned char aui8H264VCM_SlaveMTXTOPAZFWTextRelocType[];
+extern unsigned long aui32H264VCM_SlaveMTXTOPAZFWTextRelocFullAddr[];
+
+extern unsigned long aui32H264VCM_SlaveMTXTOPAZFWDataReloc[];
+extern unsigned long ui32H264VCM_SlaveMTXTOPAZFWDataRelocSize;
+
+extern unsigned long ui32H264VCM_SlaveMTXTOPAZFWTextOrigin;
+extern unsigned long ui32H264VCM_SlaveMTXTOPAZFWDataOrigin;
+
diff --git a/fw/H264SlaveFirmware_bin.c b/fw/H264SlaveFirmware_bin.c
new file mode 100644
index 0000000..8c70d4b
--- /dev/null
+++ b/fw/H264SlaveFirmware_bin.c
@@ -0,0 +1,3009 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+
+// This file was automatically generated from ../release/H264SlaveFirmware.dnl using dnl2c.
+
+unsigned char *szH264SlaveFirmware_buildtag = "BUILD_TOPAZ_SC_1_00_00_0318";
+
+unsigned long ui32H264_SlaveMTXTOPAZFWTextSize = 2478;
+unsigned long ui32H264_SlaveMTXTOPAZFWDataSize = 472;
+unsigned long ui32H264_SlaveMTXTOPAZFWTextRelocSize = 0;
+unsigned long ui32H264_SlaveMTXTOPAZFWDataRelocSize = 0;
+
+unsigned long ui32H264_SlaveMTXTOPAZFWTextOrigin = 0x80900000;
+unsigned long ui32H264_SlaveMTXTOPAZFWDataOrigin = 0x828826c0;
+
+unsigned long aui32H264_SlaveMTXTOPAZFWText[] = {
+ 0x9040c001,
+ 0xc80993fe,
+ 0xc0000e42,
+ 0xc8290e00,
+ 0xc2e28422,
+ 0xc8298400,
+ 0xc26c8622,
+ 0x9e838600,
+ 0xc8099e43,
+ 0xc4d40d42,
+ 0xc8090d40,
+ 0xc4d60942,
+ 0xc8090900,
+ 0xc00a0e42,
+ 0xc8090e40,
+ 0xc00e87c2,
+ 0x9c1887d0,
+ 0x0c020802,
+ 0x09820d82,
+ 0x09020d02,
+ 0x08820c82,
+ 0x9320fffe,
+ 0xa401c838,
+ 0x0dc2c809,
+ 0x0d80c4d4,
+ 0x0e42c809,
+ 0x0b46b080,
+ 0x7e74b77f,
+ 0xa48d0882,
+ 0xffff9ff3,
+ 0x9d1393e0,
+ 0xf8398081,
+ 0x0707a205,
+ 0x06850307,
+ 0x03839e97,
+ 0x0fa0060f,
+ 0x018d058d,
+ 0x9c62008f,
+ 0x9340ffff,
+ 0x0ea0060b,
+ 0xffff9c62,
+ 0x058d93a0,
+ 0xb700018d,
+ 0xb780548c,
+ 0x9c015414,
+ 0x0687a605,
+ 0x0ea0060b,
+ 0xffff9c62,
+ 0xf9f893a0,
+ 0xf9f8aa9d,
+ 0x9c22aa1d,
+ 0xa6059c22,
+ 0x0e860a82,
+ 0xc0340d82,
+ 0xc0149b32,
+ 0x0d8a9967,
+ 0x9b2dc034,
+ 0x6108b783,
+ 0xc0007500,
+ 0xc0149082,
+ 0xc0149abe,
+ 0x740299db,
+ 0xb3549e6c,
+ 0x02894424,
+ 0x995dc014,
+ 0xffff7540,
+ 0xb79f90e2,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0x87029c22,
+ 0xb5438502,
+ 0xb5435818,
+ 0xb5435898,
+ 0xb5435918,
+ 0xb5435c18,
+ 0xb5435c98,
+ 0xb5435d18,
+ 0xb5436118,
+ 0xb5436198,
+ 0xb5436218,
+ 0xb5406818,
+ 0xb5404804,
+ 0xb5404884,
+ 0xb5404904,
+ 0xb5404984,
+ 0xb5404a04,
+ 0xb5404c04,
+ 0xb5404c84,
+ 0xb5404d04,
+ 0xb5404202,
+ 0xb5404282,
+ 0xb5405004,
+ 0xb5407684,
+ 0xb5404e84,
+ 0x9c224702,
+ 0x8420a605,
+ 0x9ba6fff4,
+ 0xc0340d8a,
+ 0xfff49ada,
+ 0xc0349bc6,
+ 0xc4209ae5,
+ 0x0a020cd2,
+ 0xc000b481,
+ 0x4220b105,
+ 0xe0310d8a,
+ 0xc0148d80,
+ 0xc8299a01,
+ 0xc2e00922,
+ 0xb73f0960,
+ 0xd0717f6c,
+ 0xb5802a5e,
+ 0xc01e450c,
+ 0x85022a80,
+ 0xa8c2f008,
+ 0xc2807102,
+ 0xb5a05a95,
+ 0xb341460c,
+ 0x76404434,
+ 0x459cb540,
+ 0x448cb520,
+ 0x90c2c000,
+ 0x0e12d011,
+ 0xa241f008,
+ 0x550cb780,
+ 0x08c2c807,
+ 0x0880c570,
+ 0x0caac032,
+ 0x538cb580,
+ 0xc000b421,
+ 0x0cf40a2a,
+ 0xc000b481,
+ 0x09021a28,
+ 0x08bac002,
+ 0x4078b960,
+ 0x0a00c200,
+ 0x588bd224,
+ 0xc000b441,
+ 0x0a11ce00,
+ 0x9301ffff,
+ 0x1884e000,
+ 0x9244ffff,
+ 0x0a42c807,
+ 0x0a00c576,
+ 0x0caac032,
+ 0xc000b481,
+ 0x08820a02,
+ 0x08840902,
+ 0x4078b960,
+ 0x0a00c200,
+ 0x588bd224,
+ 0xc000b441,
+ 0x0a11ce00,
+ 0x9301ffff,
+ 0x745ac004,
+ 0x923cffff,
+ 0xc0340a02,
+ 0xb4810c9e,
+ 0xfff4c000,
+ 0x08029b2c,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x9c228c60,
+ 0xc0409e54,
+ 0x9e590c82,
+ 0xc000b421,
+ 0x0d02c040,
+ 0xc000b482,
+ 0xc00e9c22,
+ 0xc00e2d7c,
+ 0x5d3029e0,
+ 0xc0409e54,
+ 0x31b80c82,
+ 0xc000b461,
+ 0x0d02c040,
+ 0xc000b442,
+ 0xa60d9c22,
+ 0x07038420,
+ 0xc2800687,
+ 0x1c845c8d,
+ 0x5ca0d0a2,
+ 0xd0110287,
+ 0xc2000a5e,
+ 0x1a045a0d,
+ 0x5a30c200,
+ 0x30985cd0,
+ 0x04059e4c,
+ 0x0c8ac032,
+ 0xc8013098,
+ 0xb4213880,
+ 0x9ea9c000,
+ 0x0a02c801,
+ 0x0a00c002,
+ 0xc0306553,
+ 0xb4810c8a,
+ 0xc002c000,
+ 0x0c840882,
+ 0xc000b421,
+ 0xd0229e93,
+ 0x9e535f09,
+ 0x1d045d0d,
+ 0x9bb4fff4,
+ 0x5e91c280,
+ 0xc2801e84,
+ 0x9e6c5e84,
+ 0xc2801a84,
+ 0xc1815a90,
+ 0x0d8a3a80,
+ 0x0d020982,
+ 0xfff4314a,
+ 0xc0c09bae,
+ 0x09920d82,
+ 0x0d02c002,
+ 0x0902c002,
+ 0x9a04c034,
+ 0xc0340a0a,
+ 0xb4810c9e,
+ 0x1b04c000,
+ 0x850275bf,
+ 0x9202c000,
+ 0xb55f9dcf,
+ 0xc0347f7c,
+ 0xf23199d7,
+ 0xb75fa045,
+ 0x1b047f7c,
+ 0x851075bf,
+ 0x9284ffff,
+ 0x0a42c002,
+ 0x0c8ec030,
+ 0xc000b481,
+ 0x7e6eb79f,
+ 0x7eeeb7bf,
+ 0x7f6eb7df,
+ 0x8c00c002,
+ 0x9c229c22,
+ 0x8502c200,
+ 0x9c89c037,
+ 0x9c80c171,
+ 0x9c80c817,
+ 0xf8399c22,
+ 0x0d9aa205,
+ 0x99bdc034,
+ 0xf9f80d8a,
+ 0xc02daa1d,
+ 0xa6059300,
+ 0x0a42c801,
+ 0x0a00c010,
+ 0x2ebed3f2,
+ 0x0caac032,
+ 0xc000b481,
+ 0x0cf408aa,
+ 0xc000b421,
+ 0x558cb780,
+ 0x0c92c080,
+ 0xa881f208,
+ 0xc000b421,
+ 0x558cb780,
+ 0xf2080c88,
+ 0xb421a889,
+ 0xb780c000,
+ 0x0c84558c,
+ 0xa88df208,
+ 0xc000b421,
+ 0x1c980902,
+ 0xc000b441,
+ 0x558cb780,
+ 0xf2080c90,
+ 0xb421a885,
+ 0xb7a0c000,
+ 0x0dd2558c,
+ 0x9976c034,
+ 0xaa25f208,
+ 0xffff7008,
+ 0x0daa9344,
+ 0x0d060982,
+ 0x0902c121,
+ 0x9b29fff4,
+ 0x4714b760,
+ 0x0d02c021,
+ 0x09c20d04,
+ 0x9b16fff4,
+ 0x4714b760,
+ 0x0d0609c2,
+ 0x9b10fff4,
+ 0x09820daa,
+ 0xc1010d02,
+ 0xfff40902,
+ 0x0d929b14,
+ 0x9952c034,
+ 0xaa25f208,
+ 0xffff7008,
+ 0x77409344,
+ 0x90a2c000,
+ 0xc0340d8e,
+ 0x0d8a9954,
+ 0x9951c034,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xc470a60d,
+ 0x0a020c8e,
+ 0xc000b481,
+ 0x4220b101,
+ 0x558cb780,
+ 0xa085f208,
+ 0x0a021c8c,
+ 0xc000b481,
+ 0x4220b105,
+ 0x2b5ed1f1,
+ 0x558cb780,
+ 0xcff09ead,
+ 0xc2802e80,
+ 0xf2085ea1,
+ 0xc280a281,
+ 0x2a845a9d,
+ 0x0a020c84,
+ 0xc000b481,
+ 0x4220b101,
+ 0x468cb520,
+ 0xb4810c84,
+ 0xb101c000,
+ 0xb5204220,
+ 0xc070470c,
+ 0xb4810c8e,
+ 0x0882c000,
+ 0xb4211c8c,
+ 0x0c90c000,
+ 0xc000b481,
+ 0xb4211c8c,
+ 0x0c84c000,
+ 0xc000b481,
+ 0x5e04b740,
+ 0x5908d326,
+ 0xe0309e2d,
+ 0x9ea4aa4d,
+ 0xb7809c62,
+ 0x7740558c,
+ 0x9ea98502,
+ 0xd0010d82,
+ 0xf2080db2,
+ 0x2596a10f,
+ 0x9b3ffff4,
+ 0xc0700a06,
+ 0xb4810c82,
+ 0x000dc000,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x7ebec01c,
+ 0x9244c000,
+ 0x5e08d1a2,
+ 0x0a00c090,
+ 0x5909d224,
+ 0xc4000882,
+ 0xb4223d00,
+ 0xb104c000,
+ 0x75004220,
+ 0x9364ffff,
+ 0x5c88c180,
+ 0x0c80c090,
+ 0xb4615c89,
+ 0x9c22c000,
+ 0x5c88c180,
+ 0x0c80c090,
+ 0xc4005c89,
+ 0x0a023c80,
+ 0xc000b481,
+ 0x4220b101,
+ 0xa0e1f008,
+ 0xc0905d88,
+ 0x5d890d80,
+ 0xc000b483,
+ 0x9e5b9c22,
+ 0x68b1d312,
+ 0xc1c00a02,
+ 0x5c8b0cc0,
+ 0x3c80c400,
+ 0xc000b481,
+ 0x4220b102,
+ 0x5894b760,
+ 0x6931d312,
+ 0x9e518502,
+ 0x4070b960,
+ 0x08e0c1c0,
+ 0xaa65f031,
+ 0x5889d0a4,
+ 0xc000b481,
+ 0x85100890,
+ 0x9301ffff,
+ 0x8560c1c0,
+ 0x80ade210,
+ 0x5a14b760,
+ 0x3904c001,
+ 0x8521ce3e,
+ 0x4048b960,
+ 0xaa65f031,
+ 0x5889d0a4,
+ 0xc000b481,
+ 0x85100890,
+ 0x9301ffff,
+ 0x812de220,
+ 0x580cb780,
+ 0x3908c001,
+ 0x0d60c1c0,
+ 0xdac85d09,
+ 0xb422a885,
+ 0xd312c000,
+ 0xc1c068b1,
+ 0x5c8b0cc0,
+ 0xc000b441,
+ 0x84209c22,
+ 0xc4700882,
+ 0x0a020c92,
+ 0xc000b481,
+ 0x4220b102,
+ 0x02050185,
+ 0x2a04c001,
+ 0xc0007500,
+ 0xb7409362,
+ 0x09025894,
+ 0x4070b960,
+ 0x08e0c1c0,
+ 0x5889d0a4,
+ 0x08a1ce3e,
+ 0x3c80c400,
+ 0xc000b441,
+ 0x4220b104,
+ 0xa245f031,
+ 0xffff0890,
+ 0x01079221,
+ 0x297acfff,
+ 0xc0010205,
+ 0x75002a08,
+ 0x91e2c001,
+ 0x5a14b740,
+ 0xb9600982,
+ 0xc1c04048,
+ 0xd0a408e0,
+ 0xce3e5889,
+ 0xc40008a1,
+ 0xb4613c80,
+ 0xb104c000,
+ 0xf0314220,
+ 0x0890a245,
+ 0x9221ffff,
+ 0x8d00e032,
+ 0x08e0c1c0,
+ 0x5889d0a4,
+ 0xc4000a02,
+ 0xb4813c80,
+ 0xb101c000,
+ 0xf0104220,
+ 0xb73fa0c1,
+ 0xb7807e72,
+ 0xdac8580c,
+ 0xcfffa086,
+ 0xc0702976,
+ 0xb4410c92,
+ 0x8c20c000,
+ 0xb7409c22,
+ 0xd312508c,
+ 0x0a026cb1,
+ 0x0cc0c1c0,
+ 0xc4005c8b,
+ 0xb4813c80,
+ 0xb101c000,
+ 0xd3124220,
+ 0xc1ca6cb1,
+ 0x5c8b0cf0,
+ 0xc000b441,
+ 0x6d82c00c,
+ 0x38c0c001,
+ 0x0dc0c1c0,
+ 0xb4235d8b,
+ 0x9c22c000,
+ 0x6cb1d312,
+ 0xc1c00a02,
+ 0x5c8b0cc0,
+ 0x3c80c400,
+ 0xc000b481,
+ 0x4220b103,
+ 0x5994b740,
+ 0x6d31d311,
+ 0x4058b960,
+ 0xc1c00085,
+ 0xf03108e0,
+ 0xd0a4aa45,
+ 0xb4815889,
+ 0x0890c000,
+ 0x9321ffff,
+ 0x3990c001,
+ 0x0940c1c0,
+ 0x588bd124,
+ 0xc000b461,
+ 0xf8399c22,
+ 0xf010a285,
+ 0x7500aa61,
+ 0x9164c000,
+ 0xa8c1d008,
+ 0x0a069e48,
+ 0x5200c200,
+ 0xd0083098,
+ 0xd011a0c1,
+ 0xd0100d38,
+ 0xf011a9f2,
+ 0xf0101a30,
+ 0x1984a943,
+ 0x93e2c000,
+ 0x8702cff1,
+ 0x8700cff0,
+ 0x087ec00f,
+ 0x087cc00e,
+ 0x0c1ac050,
+ 0xa8c5f029,
+ 0x2095d020,
+ 0x9e4d5ca1,
+ 0xc2002210,
+ 0x30d85a20,
+ 0x4006ba09,
+ 0xc000b420,
+ 0x1a30f011,
+ 0xffff1984,
+ 0xf21091e4,
+ 0xf010802f,
+ 0xf9f8a241,
+ 0x9c22aa9d,
+ 0x9e5da60d,
+ 0xf1245940,
+ 0xd3f15841,
+ 0xb3502d2e,
+ 0xc0024422,
+ 0xf00893e2,
+ 0xe000aa61,
+ 0xb4252a1c,
+ 0xd8084422,
+ 0x8522aa61,
+ 0x88a9e210,
+ 0x12182a1c,
+ 0xc00e9ea3,
+ 0xba1b0a7e,
+ 0xc200400b,
+ 0x21285207,
+ 0x9276c001,
+ 0xc1009e59,
+ 0x11035a20,
+ 0x5209c200,
+ 0xc2009ea2,
+ 0x9e8d58a1,
+ 0x0cb0d031,
+ 0xa8a2d208,
+ 0x2a7cc00e,
+ 0x5207c200,
+ 0x2a7cc00e,
+ 0xd208349a,
+ 0xf008a0a2,
+ 0x9ea1a963,
+ 0x2a2ed3f1,
+ 0x8128c201,
+ 0x8821f310,
+ 0xf0088502,
+ 0xd228a261,
+ 0x9eaba127,
+ 0x2d01cff0,
+ 0x59415940,
+ 0xc00e3522,
+ 0xfff42d7c,
+ 0xc0009bb1,
+ 0xd20892e0,
+ 0x9e5eaa21,
+ 0x50d8000b,
+ 0xd0293242,
+ 0xf008a205,
+ 0xd013a8e1,
+ 0xf210291e,
+ 0x75108029,
+ 0x00989e44,
+ 0xa0e1f008,
+ 0x4426b350,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x0685a60d,
+ 0x9e9e9e69,
+ 0x71820b02,
+ 0xc0000a86,
+ 0x9ea99208,
+ 0x9e6916d2,
+ 0x5a84c280,
+ 0x1a52d011,
+ 0xd0117102,
+ 0xd3f108e2,
+ 0xffff2b1e,
+ 0xd0119286,
+ 0x75100a62,
+ 0xc000028d,
+ 0x9e7391d4,
+ 0x09220d02,
+ 0x9b70fff4,
+ 0xd0111aa0,
+ 0x75100a52,
+ 0xffff9e83,
+ 0x9e7392d2,
+ 0xd0110d06,
+ 0xc00e0952,
+ 0xfff4297c,
+ 0x75909b61,
+ 0xc0009e83,
+ 0xd03192f4,
+ 0xd3f11a60,
+ 0x9e6c2b4e,
+ 0xc2009e73,
+ 0xd3f25299,
+ 0x0922295e,
+ 0x9b50fff4,
+ 0xc2009e83,
+ 0x9ea952b8,
+ 0x16d27590,
+ 0x91b2ffff,
+ 0xd3f29e73,
+ 0x010d2d5e,
+ 0x9b42fff4,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x0ca0f011,
+ 0xd09a9e99,
+ 0xd00d5a04,
+ 0xc0001a42,
+ 0x1203909a,
+ 0x9e4b1242,
+ 0xfffc9ea2,
+ 0xa60d9360,
+ 0x85028420,
+ 0xb55f9e55,
+ 0xb55f7f7c,
+ 0xf0107ffc,
+ 0xe011aa61,
+ 0x03078c8e,
+ 0x750a1a08,
+ 0x590cd226,
+ 0xe05a8540,
+ 0xc0038044,
+ 0xc00090a0,
+ 0xc0009180,
+ 0xc00092a0,
+ 0xc00193c0,
+ 0xc0019100,
+ 0xc0029200,
+ 0xe0119060,
+ 0x9e8b8d88,
+ 0x1954d072,
+ 0x500cb5a0,
+ 0x9bc8fff4,
+ 0x9200c002,
+ 0x5014b740,
+ 0xe0119ea9,
+ 0x9e8b8d88,
+ 0xfff41514,
+ 0xc0029bbd,
+ 0xe01190a0,
+ 0x9e8b8d88,
+ 0x295ed3f2,
+ 0xfff40916,
+ 0xb5a09aeb,
+ 0xc001500c,
+ 0xe0119320,
+ 0x9e8b8d88,
+ 0x295ed3f2,
+ 0xfff40916,
+ 0xc0019adf,
+ 0xd20891e0,
+ 0x9e8baa41,
+ 0x8c88f011,
+ 0xd0124a7d,
+ 0x0d062ace,
+ 0x018b0906,
+ 0x9ad0fff4,
+ 0x9e6a9e83,
+ 0x0d02018b,
+ 0x9acafff4,
+ 0x9340c000,
+ 0xaa41d208,
+ 0xf0119e8b,
+ 0x4a7d8c88,
+ 0x2aced012,
+ 0x09060d02,
+ 0xfff4018b,
+ 0x9e839abb,
+ 0x018b9e6a,
+ 0x0d7ec00e,
+ 0x9ab4fff4,
+ 0x9080c000,
+ 0x90e0c001,
+ 0x7e68b79f,
+ 0x0cfec00f,
+ 0x0cfcc00e,
+ 0xb59f9e4a,
+ 0xb73f7c68,
+ 0xcff17f6c,
+ 0xcff00a02,
+ 0xc0500a00,
+ 0x22180c9a,
+ 0x5a21c200,
+ 0x58a02094,
+ 0xba243242,
+ 0xb59f4006,
+ 0xb4817f6c,
+ 0xf208c000,
+ 0xb79fa943,
+ 0xf3107fec,
+ 0xf2088021,
+ 0xb79fa241,
+ 0xb7bf7e6e,
+ 0xb7df7eee,
+ 0xc0027f6e,
+ 0x9c228c00,
+ 0x8440a61d,
+ 0x9e9d8502,
+ 0xabe5f031,
+ 0xb55f0b02,
+ 0xb55f7878,
+ 0x718e7efc,
+ 0xc0019d3a,
+ 0xaa4191e8,
+ 0xc0007502,
+ 0xd0189392,
+ 0xe032aad1,
+ 0xe0518d08,
+ 0x9dcf8d00,
+ 0x85109eb1,
+ 0x7f7cb55f,
+ 0x0a9cc002,
+ 0x5a95c280,
+ 0xfff4018b,
+ 0xb75f9a1e,
+ 0xc2807f7c,
+ 0xc3015a88,
+ 0xc0008122,
+ 0xe03191a0,
+ 0x9dcf8d88,
+ 0x8510050b,
+ 0x7f7cb55f,
+ 0x9b23fff4,
+ 0x7f7cb75f,
+ 0x718e0b04,
+ 0x92a6fffe,
+ 0x7868b79f,
+ 0x0c9ec050,
+ 0xc000b481,
+ 0x0d16c050,
+ 0xc000b4e2,
+ 0x7eecb71f,
+ 0x7d6eb79f,
+ 0x7deeb7bf,
+ 0x7e6eb7df,
+ 0x7eeeb7ff,
+ 0x8c40c002,
+ 0xa6059c22,
+ 0x0c8ac450,
+ 0xb4810a02,
+ 0xb102c000,
+ 0xe00e4240,
+ 0xd1042d7c,
+ 0xc8015d10,
+ 0x0a400a02,
+ 0x0c8ac030,
+ 0xc000b481,
+ 0x0c8408c2,
+ 0xc000b421,
+ 0x5c8cb740,
+ 0xa947f048,
+ 0x802df210,
+ 0xa245f048,
+ 0x0c86c450,
+ 0xb4810a02,
+ 0xb101c000,
+ 0xc8014220,
+ 0xc0100a42,
+ 0xc0320a00,
+ 0xb4810caa,
+ 0x08aac000,
+ 0x0d1ec034,
+ 0xc000b422,
+ 0x0cf2c450,
+ 0xb4810a02,
+ 0xb101c000,
+ 0xd0534220,
+ 0xb7801910,
+ 0xf248570c,
+ 0xf210a891,
+ 0x0d8288a3,
+ 0x018b0d06,
+ 0x9884fff4,
+ 0x0ca2c080,
+ 0xc000b4a1,
+ 0x0d82c002,
+ 0x9954c014,
+ 0xffff700a,
+ 0x0daa9364,
+ 0x0d0a0982,
+ 0x0902c121,
+ 0x9b09ffd4,
+ 0x570cb780,
+ 0xa992f248,
+ 0x0d02c0a1,
+ 0x09c20d04,
+ 0x9af4ffd4,
+ 0x0d82c0c0,
+ 0x0d420992,
+ 0xc0140942,
+ 0xb79f9957,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa60d9c22,
+ 0x8400c010,
+ 0x570cb720,
+ 0x49adb780,
+ 0x75002a20,
+ 0x5894b7c0,
+ 0xc0000902,
+ 0xb7839182,
+ 0x75006108,
+ 0x90e2c000,
+ 0xaa41d290,
+ 0xc0057500,
+ 0xb7209164,
+ 0xd01149ad,
+ 0x75002a18,
+ 0x3924d002,
+ 0x9124c000,
+ 0x2a14d011,
+ 0xd0027500,
+ 0xd0013922,
+ 0xc0503926,
+ 0xb4410c82,
+ 0x9d87c000,
+ 0x468cb740,
+ 0x09c20dc2,
+ 0x0d02c010,
+ 0x0c81cff0,
+ 0x9acbffd4,
+ 0x6108b783,
+ 0x75009d1b,
+ 0x0b01cff0,
+ 0x9282c000,
+ 0xaa41d290,
+ 0xc0007500,
+ 0xb79f91e2,
+ 0xf211606c,
+ 0xc0108d00,
+ 0x75002a00,
+ 0x0a03cff0,
+ 0x8001f310,
+ 0x4422b346,
+ 0x4068b79e,
+ 0x08c2c801,
+ 0x0880c010,
+ 0x0ceac032,
+ 0x606cb59f,
+ 0xc000b421,
+ 0x6108b783,
+ 0xc0017500,
+ 0xb7839282,
+ 0x75006208,
+ 0x91e2c001,
+ 0x510cb720,
+ 0x2a12d011,
+ 0xc0017500,
+ 0xb7a09102,
+ 0xb7a05d94,
+ 0xf210598c,
+ 0x9eabaa21,
+ 0xb52028f9,
+ 0x9ea4510c,
+ 0xb7209c62,
+ 0xb7805b8c,
+ 0x75004129,
+ 0x92a4c000,
+ 0xa9a1f208,
+ 0xa83df210,
+ 0x9e840d82,
+ 0xf2509c62,
+ 0x9eaba8a5,
+ 0xa021f208,
+ 0x9e8c0982,
+ 0xda089c62,
+ 0xb581aa21,
+ 0xda10738a,
+ 0x9eb3a9cd,
+ 0x9aa6fff4,
+ 0x0a02c801,
+ 0x0a00c00a,
+ 0x0c8ac030,
+ 0xc000b481,
+ 0x08c2c008,
+ 0xb4210c84,
+ 0xc008c000,
+ 0x0c880a02,
+ 0xc000b481,
+ 0x0d82c0c0,
+ 0xc0080992,
+ 0xc0080d02,
+ 0xc0140902,
+ 0xc008989d,
+ 0xc0300a02,
+ 0xb4810c8e,
+ 0xb720c000,
+ 0x8506590c,
+ 0x4039b540,
+ 0x9ad1fff4,
+ 0x6eeeb79f,
+ 0x6f6eb7bf,
+ 0x6feeb7df,
+ 0x8c60c010,
+ 0xf8399c22,
+ 0xc450a205,
+ 0x0a020c82,
+ 0xc000b481,
+ 0x4220b101,
+ 0x0a40c008,
+ 0x0c8ec030,
+ 0xc000b481,
+ 0x38c0c002,
+ 0x0c82c050,
+ 0xc000b421,
+ 0x0d82c0c0,
+ 0xc0080992,
+ 0xc0080d02,
+ 0xc0140902,
+ 0xc0089869,
+ 0xc0300a02,
+ 0xb4810c8e,
+ 0xf9f8c000,
+ 0xfff5aa1d,
+ 0xa60d9000,
+ 0x0eb0f011,
+ 0x9182c001,
+ 0x0f7ec01e,
+ 0x0b02c008,
+ 0x0e8ec030,
+ 0x7540c040,
+ 0xc0509e74,
+ 0xb3540c96,
+ 0x12d84426,
+ 0x5a14c200,
+ 0xc000b481,
+ 0x0d0ac030,
+ 0xc000b4c2,
+ 0xc000b4c5,
+ 0x0c96c030,
+ 0xc000b4c1,
+ 0x0d82c0c0,
+ 0xc0080992,
+ 0xc0080d02,
+ 0xc0140902,
+ 0xb4c59835,
+ 0x7540c000,
+ 0x93c4fffe,
+ 0x9a6ffff4,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0xc000b463,
+ 0xf8129c22,
+ 0x9c22a062,
+ 0x0d80c200,
+ 0x9e595d89,
+ 0xc4000982,
+ 0xb4633d80,
+ 0xb203c000,
+ 0x00074620,
+ 0xc1279c22,
+ 0x9c229c8f,
+ 0xb971080a,
+ 0xc01756f1,
+ 0xc0719c81,
+ 0xc0179c80,
+ 0xb9609c80,
+ 0x9c224000,
+ 0x9280ffff,
+ 0x01c69e5c,
+ 0x5889d1a4,
+ 0xc4000882,
+ 0xb4213c80,
+ 0xb104c000,
+ 0x22444220,
+ 0x71069e53,
+ 0x9324ffff,
+ 0xa60d9c22,
+ 0x8420c004,
+ 0x0ca2c829,
+ 0x0cf0c2d4,
+ 0xac3dc030,
+ 0x8d00e133,
+ 0xa45dc038,
+ 0xac3dc030,
+ 0xa45dc038,
+ 0xac3dc010,
+ 0xa45dc018,
+ 0xac25c010,
+ 0xa445c018,
+ 0x570cb7a0,
+ 0x85029ea9,
+ 0x651ab540,
+ 0x4b98b541,
+ 0x468cb740,
+ 0xc00a0dc2,
+ 0x09c20d42,
+ 0x9979ffd4,
+ 0x0a58d251,
+ 0xaa01da08,
+ 0x9ead7502,
+ 0x9084c000,
+ 0x448cb580,
+ 0x5c8cb780,
+ 0xa8a1f210,
+ 0xf2108502,
+ 0xb540a8a6,
+ 0xb540509c,
+ 0xf208481a,
+ 0xf208a103,
+ 0xf210a085,
+ 0xf208a929,
+ 0xf210a08a,
+ 0xf210a92e,
+ 0xf208a8b2,
+ 0xf250a10d,
+ 0xf208a8b1,
+ 0xf208a112,
+ 0xf208a096,
+ 0xc050a09a,
+ 0x08c00cf2,
+ 0xa085f248,
+ 0xc000b421,
+ 0xc0360a0a,
+ 0xb4810c92,
+ 0x0896c000,
+ 0xb4211c8c,
+ 0xf031c000,
+ 0xe1318c00,
+ 0x9ea38d80,
+ 0x5b8cb7c0,
+ 0x7ffcb55f,
+ 0xb9600d02,
+ 0xf2084078,
+ 0x9dbaa103,
+ 0x5d0dd122,
+ 0xf0299e2d,
+ 0xd012a8e5,
+ 0x5c882cae,
+ 0x5908d126,
+ 0xe0389e4a,
+ 0x0d04aa4d,
+ 0x50a828bc,
+ 0xa2413242,
+ 0x91c1ffff,
+ 0xaa61f010,
+ 0x0c8ec036,
+ 0xc000b481,
+ 0x7fecb73f,
+ 0xb4211c84,
+ 0xc014c000,
+ 0xd208996b,
+ 0x7500aa4d,
+ 0x9262c000,
+ 0xaa2df290,
+ 0x2ac8f011,
+ 0x91a4c000,
+ 0x2a00c800,
+ 0xc0007500,
+ 0xf20890c4,
+ 0xfff4a9c6,
+ 0xd2089aec,
+ 0xf290a2cd,
+ 0xd011a8ad,
+ 0x75002a14,
+ 0x9102c000,
+ 0x0a42c809,
+ 0x0a10c4d2,
+ 0x530cb580,
+ 0x460cb780,
+ 0xc0007500,
+ 0xc0809162,
+ 0x2a045a31,
+ 0x0ceac03e,
+ 0xc000b481,
+ 0x9280c000,
+ 0x448cb780,
+ 0xc0007502,
+ 0xc100915c,
+ 0x74402880,
+ 0xd0010a0e,
+ 0xc0001a46,
+ 0x0a029060,
+ 0x0ceac03e,
+ 0xc000b481,
+ 0x7a6eb79f,
+ 0x7aeeb7bf,
+ 0x7b6eb7df,
+ 0x8c00c006,
+ 0xb7809c22,
+ 0xc0c8538c,
+ 0xb9600892,
+ 0xd01140f8,
+ 0xf0290948,
+ 0xd0a4aa45,
+ 0xb4815889,
+ 0x0890c000,
+ 0x9321ffff,
+ 0xa6059c22,
+ 0x460cb720,
+ 0x790cb780,
+ 0x0a047440,
+ 0x790cb580,
+ 0x9364c000,
+ 0x6108b783,
+ 0xc0007500,
+ 0xb72092c2,
+ 0xb780448c,
+ 0x7442510c,
+ 0xb5803a40,
+ 0xc000510c,
+ 0xb780919c,
+ 0xd2085b8c,
+ 0x7440a889,
+ 0x90a4c000,
+ 0xb5438506,
+ 0xc8016818,
+ 0xc0100a42,
+ 0xc0320a00,
+ 0xb4810cea,
+ 0xc008c000,
+ 0xc00208c2,
+ 0xb4211ce0,
+ 0xc008c000,
+ 0xc0300a42,
+ 0xb4820d0e,
+ 0xc450c000,
+ 0xc0080c82,
+ 0xb4811a40,
+ 0xb101c000,
+ 0xc0024220,
+ 0xc05038c0,
+ 0xb4210c82,
+ 0xc0c0c000,
+ 0x09920d82,
+ 0x0d02c008,
+ 0x0902c008,
+ 0x9ab0fff4,
+ 0x0c86c450,
+ 0xb4810a02,
+ 0xb102c000,
+ 0xc0084260,
+ 0xc0300a00,
+ 0xb4820d0e,
+ 0x0c84c000,
+ 0x1a00c008,
+ 0xc000b481,
+ 0x4220b101,
+ 0x5a35c080,
+ 0x0902c801,
+ 0xc00e0940,
+ 0xd0a828fc,
+ 0xd0715910,
+ 0xc03029ce,
+ 0x9dc80c8a,
+ 0xc000b441,
+ 0x0c840a42,
+ 0xc000b481,
+ 0xc0007680,
+ 0xb7209182,
+ 0xb7405c8c,
+ 0xf21044bd,
+ 0xf3108a27,
+ 0xb5808021,
+ 0xc45044ad,
+ 0x0a020c86,
+ 0xc000b481,
+ 0x4260b102,
+ 0xb4810cec,
+ 0xb102c000,
+ 0xc2014260,
+ 0x08ea8926,
+ 0x0c9ec034,
+ 0xc000b421,
+ 0x570cb780,
+ 0xa891f248,
+ 0xf2108d40,
+ 0x0d8288a3,
+ 0xc2800d06,
+ 0xb5805a0c,
+ 0x018b508c,
+ 0x9962ffd4,
+ 0x0ca2c080,
+ 0xc000b4a1,
+ 0x478cb780,
+ 0xb4810c88,
+ 0xb7a0c000,
+ 0xc0025814,
+ 0xfff40d82,
+ 0x700a9a2b,
+ 0x9364ffff,
+ 0x790cb780,
+ 0xa8adf210,
+ 0xa8a2f250,
+ 0x9e496243,
+ 0xc0007102,
+ 0x850690b8,
+ 0x6618b543,
+ 0x460cb780,
+ 0xc0007500,
+ 0x0d829242,
+ 0x9a19ffd4,
+ 0x6208b783,
+ 0xc0007500,
+ 0x0d8290e2,
+ 0x9963ffd4,
+ 0x90a0c000,
+ 0xffd40d82,
+ 0x0a029a2b,
+ 0x0ca6c080,
+ 0xc000b481,
+ 0x0d92c002,
+ 0x99fcfff4,
+ 0xffff7400,
+ 0x0dea9364,
+ 0x0d0a0982,
+ 0x0902c121,
+ 0x9bb1ffb4,
+ 0x570cb780,
+ 0xa992f248,
+ 0x0d02c0a1,
+ 0x09c20d04,
+ 0x9b9cffb4,
+ 0x0d82c0c0,
+ 0x0d420992,
+ 0xfff40942,
+ 0x0a0299ff,
+ 0x0ceac03e,
+ 0xc000b481,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xb720a60d,
+ 0xb720570c,
+ 0xd09149b5,
+ 0x75002e10,
+ 0xc0019e8e,
+ 0xd0119282,
+ 0x85062e14,
+ 0x6118b543,
+ 0x75000e82,
+ 0x7914b5a0,
+ 0x6610b5a3,
+ 0x9082c000,
+ 0x6198b543,
+ 0x2e10d111,
+ 0xc0007500,
+ 0xb5439082,
+ 0xd2116218,
+ 0x75002e10,
+ 0x9082c000,
+ 0x6298b543,
+ 0x5d8cb780,
+ 0x0ee0d151,
+ 0xa88ef208,
+ 0x06039eab,
+ 0xb7209c62,
+ 0xd208588c,
+ 0xb580aa21,
+ 0xb72041ab,
+ 0xb5a041b3,
+ 0xb5204392,
+ 0xb7c05014,
+ 0xf2d0580c,
+ 0xf208aa49,
+ 0x7048a8d9,
+ 0x9142c000,
+ 0x5d8cb780,
+ 0xa88df248,
+ 0x0de0d152,
+ 0x9c629e8c,
+ 0x6108b783,
+ 0xc0047500,
+ 0xb7209062,
+ 0x76404614,
+ 0x93c4c003,
+ 0x438ab720,
+ 0xc0007440,
+ 0xda0890e2,
+ 0x7048aa55,
+ 0x9004c001,
+ 0x5b94b7a0,
+ 0x6188b783,
+ 0x5d8cb7a0,
+ 0xa9d6da08,
+ 0x4392b520,
+ 0x7500850a,
+ 0xa0aad210,
+ 0xa8a9f208,
+ 0x8d24e001,
+ 0x1d849d4f,
+ 0x9c629e8c,
+ 0xaa31f208,
+ 0x0d8a030b,
+ 0x9c629ea4,
+ 0x9180c000,
+ 0x5d8cb780,
+ 0xa891f208,
+ 0x5b94b7a0,
+ 0x03090d86,
+ 0x9c629e8c,
+ 0x438ab780,
+ 0x6208b723,
+ 0x5894b720,
+ 0xb5800a04,
+ 0xd210438a,
+ 0x7440aa29,
+ 0x4849b580,
+ 0x9024c001,
+ 0x598cb7a0,
+ 0xa8c1f208,
+ 0x9e8c9eab,
+ 0xd2109c62,
+ 0x7500aa29,
+ 0x92a4c000,
+ 0xa9a1f208,
+ 0xa85df208,
+ 0x9e840d82,
+ 0xf2089c62,
+ 0xf248a021,
+ 0x9eaba845,
+ 0x9e840982,
+ 0xda089c62,
+ 0xb581aa21,
+ 0xb780738a,
+ 0x7502448c,
+ 0x90bcc000,
+ 0xffd40d86,
+ 0xd210986e,
+ 0x7500aa29,
+ 0x9122c000,
+ 0x558cb720,
+ 0x412db780,
+ 0xc0003a08,
+ 0xb72090e0,
+ 0xb780558c,
+ 0x2a75412d,
+ 0x412db580,
+ 0x6108b723,
+ 0x510cb780,
+ 0x3a047440,
+ 0x510cb580,
+ 0x91c4c000,
+ 0x0e60d151,
+ 0x588cb740,
+ 0xa882d208,
+ 0xa881d208,
+ 0x5014b520,
+ 0xa0cdd808,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x4b0cb720,
+ 0xc0ff9e5c,
+ 0xc0ff2a40,
+ 0x710228c0,
+ 0xc0008502,
+ 0x85069062,
+ 0x4b9cb540,
+ 0x4b14b560,
+ 0xa6059c22,
+ 0xd0519e5d,
+ 0x75002a50,
+ 0x90e4c000,
+ 0x4b8cb780,
+ 0xc0007500,
+ 0xc0c09142,
+ 0xc0120d82,
+ 0x0d0209c2,
+ 0xfff40942,
+ 0xb78098dd,
+ 0xc0344b0c,
+ 0xb4810cb6,
+ 0xc034c000,
+ 0xb4a20d32,
+ 0xb5a0c000,
+ 0xb79f4a8c,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa61d9c22,
+ 0xb7838420,
+ 0x75006108,
+ 0x9122c000,
+ 0x588cb780,
+ 0xa881d288,
+ 0xc0187440,
+ 0xb7409124,
+ 0xb7a0468c,
+ 0x0dc25694,
+ 0xc002098e,
+ 0x048b0d42,
+ 0x9a63ffb4,
+ 0xaa35f210,
+ 0x560cb7c0,
+ 0xa8a5f210,
+ 0xa8aaf210,
+ 0x570cb7a0,
+ 0x478cb580,
+ 0xa0d5f208,
+ 0xaa39da10,
+ 0xa8bdda10,
+ 0xa0def208,
+ 0x08d0d252,
+ 0xa259f208,
+ 0xa0c1f248,
+ 0xa922da10,
+ 0x0a50d131,
+ 0xa881da08,
+ 0x404bb740,
+ 0xa927f250,
+ 0xda909e53,
+ 0x60b2a8b2,
+ 0x5a7fc080,
+ 0x5a71c200,
+ 0x58930098,
+ 0xe2105894,
+ 0xdffc80a3,
+ 0x59157e7e,
+ 0x5b90c100,
+ 0xf248018b,
+ 0xc000a0dd,
+ 0xe10091e2,
+ 0xc0005d40,
+ 0xda909164,
+ 0x8502aa35,
+ 0x4792b520,
+ 0x489ab540,
+ 0x468ab580,
+ 0xaa21f288,
+ 0x0950d132,
+ 0xa255f248,
+ 0xa259f248,
+ 0xa8a1da10,
+ 0xaa41d810,
+ 0xa93bf248,
+ 0xa8bada48,
+ 0xf3106218,
+ 0xda488021,
+ 0xf248a93d,
+ 0xf288a0ca,
+ 0xda48a249,
+ 0xf248aa29,
+ 0xf208a151,
+ 0xda48a923,
+ 0x6218a8ae,
+ 0x5a10c200,
+ 0x8021f310,
+ 0xa241f208,
+ 0xa927f208,
+ 0xf20a9e4c,
+ 0x6098a928,
+ 0xf210588c,
+ 0xe2108023,
+ 0xf20882a3,
+ 0xda48a249,
+ 0xf208a8aa,
+ 0xda10a0cd,
+ 0xd810aa21,
+ 0xf208a8c1,
+ 0xf248a0c6,
+ 0x0a04a937,
+ 0xb7406243,
+ 0xf3105c8c,
+ 0xf2888021,
+ 0xda10a245,
+ 0xf008a8a1,
+ 0xda10a953,
+ 0xf00aa8a2,
+ 0x58a0a954,
+ 0x80a3e210,
+ 0xe0205c9c,
+ 0xda4882a3,
+ 0xf208aa2d,
+ 0xf208a0ad,
+ 0xf248a0b2,
+ 0xf248a0c5,
+ 0xf208a0ce,
+ 0xd810a251,
+ 0xc004a941,
+ 0xb5201880,
+ 0xd1314f0c,
+ 0xda080a54,
+ 0xc002a881,
+ 0xb5201c80,
+ 0x59404f94,
+ 0xf2885951,
+ 0x58c0a155,
+ 0xf28858d1,
+ 0xc42ea0d9,
+ 0x0a020cf2,
+ 0xc000b481,
+ 0x4220b101,
+ 0x74402884,
+ 0x0b50d132,
+ 0x9102c000,
+ 0xaa41da10,
+ 0x753ec09c,
+ 0x9152c011,
+ 0x08c6c0c0,
+ 0x0ce2c050,
+ 0xc000b421,
+ 0xa939f210,
+ 0x0a30d131,
+ 0xa881da08,
+ 0x28a0d052,
+ 0x58917640,
+ 0x4e8cb520,
+ 0x9222c000,
+ 0xc0600a02,
+ 0xb4810cae,
+ 0xda10c000,
+ 0x7440a8a1,
+ 0x9302c000,
+ 0xb5408502,
+ 0xc0004e9c,
+ 0xc2009260,
+ 0x74802900,
+ 0x9122c000,
+ 0xc0600a0a,
+ 0xb4810cae,
+ 0xc000c000,
+ 0x0a0690e0,
+ 0x0caec060,
+ 0xc000b481,
+ 0xaa39f210,
+ 0x75002a04,
+ 0xb540850a,
+ 0xc000491c,
+ 0x850490a2,
+ 0x491cb540,
+ 0x6108b783,
+ 0xb7e07500,
+ 0xc0005d94,
+ 0xb78392e2,
+ 0x75006208,
+ 0x9244c000,
+ 0x460cb780,
+ 0xc0007500,
+ 0xb78391a2,
+ 0x75006288,
+ 0x9104c000,
+ 0x5994b760,
+ 0xaa61f210,
+ 0x9c629ea4,
+ 0xaa39f210,
+ 0x75002a20,
+ 0x90e2c000,
+ 0xaa21da10,
+ 0xc0007500,
+ 0xb7809244,
+ 0xb720588c,
+ 0xda08530c,
+ 0x9e8ca98e,
+ 0xb7839c62,
+ 0x75006108,
+ 0x90a2c000,
+ 0xb5438506,
+ 0xf2106b18,
+ 0xd011a8b9,
+ 0x75002a14,
+ 0x90e2c001,
+ 0x2a12d011,
+ 0x85167500,
+ 0x0a7ecffe,
+ 0x0cfac038,
+ 0x8d28e001,
+ 0x4d1cb540,
+ 0xc000b481,
+ 0xa8c1da10,
+ 0x5e94b720,
+ 0x0a6ac284,
+ 0x856ac684,
+ 0x7462c058,
+ 0x5214b520,
+ 0x0c82c038,
+ 0x4c28b324,
+ 0xc000b481,
+ 0xc0020882,
+ 0xb4210c80,
+ 0xfff4c000,
+ 0xb780982a,
+ 0xc03e490c,
+ 0xb4810c82,
+ 0xb720c000,
+ 0xc0504d0c,
+ 0xb4210c82,
+ 0xda10c000,
+ 0xf288a921,
+ 0xda10a8d5,
+ 0x6123a926,
+ 0xda109e53,
+ 0x6097aa21,
+ 0x5c14b720,
+ 0xb5418702,
+ 0x857f7482,
+ 0x459ab540,
+ 0xb540851a,
+ 0x0d86449a,
+ 0xb5801a04,
+ 0xb5404d8c,
+ 0x8526405b,
+ 0x415bb540,
+ 0x460ab540,
+ 0x18a05891,
+ 0x40cbb520,
+ 0x7fe4b55f,
+ 0x9baac014,
+ 0x7fe4b75f,
+ 0xb5438506,
+ 0xb5436a18,
+ 0xb5436a80,
+ 0xb5437000,
+ 0xb5437080,
+ 0xda106b80,
+ 0xf288a8a6,
+ 0x9e49aa55,
+ 0x5694b720,
+ 0x6c00b543,
+ 0xb7206243,
+ 0x8502434d,
+ 0xc10158c8,
+ 0x9e892880,
+ 0xa9c2da10,
+ 0xb5400a82,
+ 0xb5404e1c,
+ 0x5dc0519c,
+ 0x2dc0c0ff,
+ 0x3db0ca01,
+ 0x5a11c200,
+ 0x450ab580,
+ 0xfff43596,
+ 0xc0c099d3,
+ 0xc0120d82,
+ 0x0d0209c2,
+ 0xffd40942,
+ 0x714e9acb,
+ 0xc0018546,
+ 0x9dcf9148,
+ 0x99d5fff4,
+ 0x0d82c0c0,
+ 0x09c2c012,
+ 0x09060d02,
+ 0x9abcffd4,
+ 0x1a70d091,
+ 0x0a027148,
+ 0x0a42d00b,
+ 0xa9c2da10,
+ 0x5a28c200,
+ 0x5dc09ea1,
+ 0x2dc0c0ff,
+ 0x3db0c801,
+ 0xfff43596,
+ 0xd05199a9,
+ 0xc2000a50,
+ 0xc2005a40,
+ 0x714e5ac1,
+ 0xfffe8506,
+ 0xf2509346,
+ 0x7500aa71,
+ 0x857fcfce,
+ 0x7b9cb540,
+ 0x9102c000,
+ 0xa9bef210,
+ 0x450ab760,
+ 0x9c629ea4,
+ 0xc0140d82,
+ 0xb78398e4,
+ 0x75006a88,
+ 0xb5438502,
+ 0xc0026a18,
+ 0xb7a092a4,
+ 0x0b02598c,
+ 0xb783068f,
+ 0x75006108,
+ 0x9082c002,
+ 0x6208b783,
+ 0xc0017500,
+ 0xb78393e2,
+ 0x75006b08,
+ 0x9182c000,
+ 0xa9a2f208,
+ 0x6b08b5c3,
+ 0xa869f250,
+ 0x9c629e84,
+ 0x430ab500,
+ 0x6c08b783,
+ 0xc0007500,
+ 0xf2109382,
+ 0x9eaba825,
+ 0x6c08b5c3,
+ 0x9c629e84,
+ 0xaa21f250,
+ 0x9c629ea4,
+ 0xa9a1f208,
+ 0xa83df210,
+ 0x9e840d86,
+ 0xf2509c62,
+ 0x9eabaa25,
+ 0xa021f208,
+ 0x9ea40986,
+ 0xb7839c62,
+ 0x75006c08,
+ 0x91e4c000,
+ 0xc0140d86,
+ 0xb7839898,
+ 0x75006c08,
+ 0x9342ffff,
+ 0x90a0c000,
+ 0xc0140d86,
+ 0xb783988e,
+ 0x75006a88,
+ 0x9262fffd,
+ 0x0d82c0c0,
+ 0x09c2c012,
+ 0x09060d02,
+ 0x9a2affd4,
+ 0x0a02c801,
+ 0x518cb580,
+ 0x0d82c0c0,
+ 0x09c2c012,
+ 0x09420d02,
+ 0x9a1effd4,
+ 0x5194b760,
+ 0x991afff4,
+ 0xfff40d86,
+ 0xc0c09928,
+ 0xc0120d82,
+ 0x0d0209c2,
+ 0xffd40906,
+ 0x85029a0f,
+ 0x0892c006,
+ 0x0c9ac430,
+ 0xb5400902,
+ 0xc006519c,
+ 0xb4418510,
+ 0xb104c000,
+ 0x2a404220,
+ 0x9d4f7500,
+ 0x4422b313,
+ 0xe0000087,
+ 0xffff1884,
+ 0xb7409284,
+ 0xc0064614,
+ 0xc4300892,
+ 0x09020c9a,
+ 0x8512c006,
+ 0xc000b441,
+ 0x4220b104,
+ 0x2a00c002,
+ 0x9d537500,
+ 0x4422b314,
+ 0xe0000089,
+ 0xffff1884,
+ 0x0a029264,
+ 0x0ceac03e,
+ 0x40e8b960,
+ 0xc000b481,
+ 0x93c1ffff,
+ 0xc0007680,
+ 0x0a029122,
+ 0x0ceac03e,
+ 0xc000b481,
+ 0x9180c000,
+ 0x448cb780,
+ 0x088a7504,
+ 0x0ceac03e,
+ 0x1894d00c,
+ 0xc000b421,
+ 0x0d82c0c0,
+ 0x0d0209e2,
+ 0xffd40942,
+ 0x0a0299bb,
+ 0x0cb6c034,
+ 0xc000b481,
+ 0x7deeb79f,
+ 0x7e6eb7bf,
+ 0x7eeeb7df,
+ 0x7f6eb7ff,
+ 0x8c20c002,
+ 0xa60d9c22,
+ 0x7efec01c,
+ 0xc0000a82,
+ 0xc0c09182,
+ 0xc0120d82,
+ 0x0d0209c2,
+ 0xffd40906,
+ 0xc000999d,
+ 0xc4349240,
+ 0x0a020cb2,
+ 0xc000b481,
+ 0x4220b101,
+ 0x74402884,
+ 0x90e2c000,
+ 0x6a08b783,
+ 0xc0097500,
+ 0xb78091a2,
+ 0x75024e0c,
+ 0x90c4c000,
+ 0xc0140d82,
+ 0x3ac09a29,
+ 0x5694b740,
+ 0x560cb740,
+ 0xa8c5d810,
+ 0xaa55f088,
+ 0x4592b720,
+ 0x9e496243,
+ 0x5a11c200,
+ 0xba090a04,
+ 0xba244002,
+ 0x70484002,
+ 0x06850305,
+ 0x9138c000,
+ 0x490cb780,
+ 0xb5802a51,
+ 0xc003490c,
+ 0xf21091c0,
+ 0x2a04aa39,
+ 0xc0027500,
+ 0xb78093a2,
+ 0x7440490c,
+ 0x3942d011,
+ 0x490cb540,
+ 0x929cc002,
+ 0x4792b760,
+ 0xba249e5c,
+ 0xc002400a,
+ 0xc00291a2,
+ 0xb760911c,
+ 0xb740650a,
+ 0x9e995d04,
+ 0xba099e2d,
+ 0xd0a24003,
+ 0x9e485e7f,
+ 0x5a6dc200,
+ 0xc2000208,
+ 0xd2265a17,
+ 0x0c065908,
+ 0x5a14c200,
+ 0x9e401208,
+ 0xa94ee038,
+ 0x4002ba24,
+ 0x9e545090,
+ 0xc0017902,
+ 0xb7819102,
+ 0x75004b88,
+ 0x9064c001,
+ 0x470ab780,
+ 0xba249e48,
+ 0x70084002,
+ 0x9378c000,
+ 0xc0007640,
+ 0xb78190e4,
+ 0x75024b08,
+ 0x92c2c000,
+ 0x1e32d011,
+ 0x478ab580,
+ 0x48fd9e54,
+ 0x470ab560,
+ 0x4b90b501,
+ 0xb5402959,
+ 0x20c2490c,
+ 0xc000a0c1,
+ 0x850290a0,
+ 0x4b98b541,
+ 0x458ab780,
+ 0x400aba24,
+ 0x90fcc000,
+ 0x650ab780,
+ 0xb5800a04,
+ 0xb720650a,
+ 0xc03e490c,
+ 0xb4210c82,
+ 0xb780c000,
+ 0x0a04458a,
+ 0x458ab580,
+ 0x9a96c014,
+ 0x6108b783,
+ 0xc0027500,
+ 0xb7839222,
+ 0x75006208,
+ 0x9182c002,
+ 0x518cb780,
+ 0x75002a40,
+ 0x90e4c000,
+ 0x7008b783,
+ 0xc002751a,
+ 0xb7809024,
+ 0xb721578c,
+ 0xda087492,
+ 0x9e48a881,
+ 0xc0007002,
+ 0xb7809284,
+ 0x8502430a,
+ 0x749ab541,
+ 0x440ab580,
+ 0x4412b760,
+ 0x530cb780,
+ 0xb5438506,
+ 0xb5436b18,
+ 0x9ea46c18,
+ 0xf2109c62,
+ 0x2a10aa39,
+ 0xc0007500,
+ 0xb78393e2,
+ 0x75006c08,
+ 0x90e4c000,
+ 0x748ab781,
+ 0xc0007502,
+ 0xb78392a4,
+ 0x75006b08,
+ 0xd0010902,
+ 0xc4380922,
+ 0x0a020c82,
+ 0xc000b481,
+ 0x4220b101,
+ 0x309428f1,
+ 0x0c82c038,
+ 0xc000b421,
+ 0x983ec014,
+ 0x4e0cb780,
+ 0xa955f288,
+ 0x71040a04,
+ 0x4e0cb580,
+ 0x90a4c000,
+ 0xb5408502,
+ 0xda104e1c,
+ 0xb720a8a5,
+ 0x58914592,
+ 0xba0960a3,
+ 0x9e4c4003,
+ 0x08843a84,
+ 0x020b7102,
+ 0x2a3dcffe,
+ 0x4426b354,
+ 0xd0510289,
+ 0x744028d0,
+ 0x9142c000,
+ 0x0d82c0c0,
+ 0x09c2c012,
+ 0x09420d02,
+ 0x9868ffd4,
+ 0x518cb780,
+ 0xc0007500,
+ 0x9eab90a2,
+ 0x9b71ffd4,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0xa205f839,
+ 0x7008b723,
+ 0x5204b740,
+ 0x448ab780,
+ 0x5908d0a6,
+ 0xb7409e2d,
+ 0xe030570c,
+ 0xb760a94e,
+ 0xb7435f1c,
+ 0xb7437098,
+ 0x1a047000,
+ 0x448ab580,
+ 0xa8cdc030,
+ 0x5a40e200,
+ 0x0a20d251,
+ 0xa882da08,
+ 0x82a3e210,
+ 0x5194b540,
+ 0x5c905c95,
+ 0x7008b523,
+ 0x92c4c001,
+ 0x7088b783,
+ 0xd3f10a04,
+ 0x744428ce,
+ 0x7088b583,
+ 0x9034c001,
+ 0x7b94b760,
+ 0xb5438506,
+ 0x24a66a98,
+ 0xb5437640,
+ 0xb5206c18,
+ 0xc0005194,
+ 0xd1319202,
+ 0xb78008a0,
+ 0xc801402b,
+ 0x9e483c80,
+ 0x5a40c200,
+ 0x2a40c0ff,
+ 0xb5803208,
+ 0x0806518c,
+ 0xaa1df9f8,
+ 0xb7239c22,
+ 0xb7407088,
+ 0xd0a65c04,
+ 0x9e2d5904,
+ 0xaa4dc830,
+ 0x448ab580,
+ 0x09a0d132,
+ 0x458ab720,
+ 0xaa61d810,
+ 0x4002ba19,
+ 0x5a11c200,
+ 0x70c81a04,
+ 0x9104c000,
+ 0x7b8cb780,
+ 0x3a00c040,
+ 0x7b8cb580,
+ 0x4e8cb720,
+ 0x0a18d011,
+ 0xc00070c8,
+ 0xb7809104,
+ 0xc0107b8c,
+ 0xb5803a00,
+ 0xd0117b8c,
+ 0x70c80a1c,
+ 0x9104c000,
+ 0x7b8cb780,
+ 0x3a00c020,
+ 0x7b8cb580,
+ 0x560cb780,
+ 0xa916f288,
+ 0xa919f288,
+ 0xb7209e50,
+ 0xd011460a,
+ 0x62411a24,
+ 0x4002ba09,
+ 0x704800b2,
+ 0x9106c000,
+ 0x7b8cb780,
+ 0x2a7acfff,
+ 0x7b8cb580,
+ 0x1a22d011,
+ 0x62459e52,
+ 0xc0007048,
+ 0xb7809106,
+ 0xc7fe7b8c,
+ 0xb5802a7e,
+ 0xb7407b8c,
+ 0xd0a2451a,
+ 0xf3105e11,
+ 0x70c88821,
+ 0x9104c000,
+ 0x7b8cb780,
+ 0x2a4ecfff,
+ 0x7b8cb580,
+ 0x568cb740,
+ 0x7b8cb720,
+ 0xaa45d808,
+ 0x9e8a9e50,
+ 0x5a11c200,
+ 0x62091a04,
+ 0x5194b720,
+ 0xba240a04,
+ 0x70c84002,
+ 0xb5202494,
+ 0xc0005194,
+ 0xc8019118,
+ 0xb5203c80,
+ 0xc0005194,
+ 0xd81091c0,
+ 0xc801aa61,
+ 0x9e483c80,
+ 0x5a40c200,
+ 0x2a40c0ff,
+ 0xb5803208,
+ 0xf008518c,
+ 0xc040aa59,
+ 0x75002a00,
+ 0x9102c000,
+ 0x518cb780,
+ 0x3a00c101,
+ 0x518cb580,
+ 0x5194b760,
+ 0x9a60ffd4,
+ 0xf9f80802,
+ 0x9c22aa1d,
+ 0x5714b700,
+ 0x0e04d251,
+ 0x560cb760,
+ 0xa881da08,
+ 0x2dfcc00e,
+ 0x0cbac034,
+ 0xa961f008,
+ 0xc0805895,
+ 0x9e825810,
+ 0xc000b441,
+ 0x454ab780,
+ 0xa963f008,
+ 0x5a10c200,
+ 0x8021f310,
+ 0xa8e9f008,
+ 0xf0080c84,
+ 0xb421a261,
+ 0xb780c000,
+ 0xf00846ca,
+ 0xf310a96b,
+ 0xf0088021,
+ 0x0c84a8ed,
+ 0xa269f008,
+ 0xc000b421,
+ 0x46cab780,
+ 0xa96ff008,
+ 0x8021f310,
+ 0xa8f5f008,
+ 0xf0080c8c,
+ 0xb421a26d,
+ 0xf008c000,
+ 0x0c84a97d,
+ 0xc000b441,
+ 0x4d8cb780,
+ 0xd2240a08,
+ 0x72445890,
+ 0x931cc000,
+ 0x0e04d131,
+ 0xa903da08,
+ 0xe2109e4c,
+ 0x710288a1,
+ 0x91d6c000,
+ 0xaa75f008,
+ 0xa8fdf008,
+ 0x0a00c010,
+ 0xa275f008,
+ 0x0880c008,
+ 0xa0fdf008,
+ 0x4f0cb780,
+ 0x0cdac034,
+ 0xc000b481,
+ 0x4f8cb720,
+ 0xb4210c84,
+ 0xb780c000,
+ 0x0ce44f0c,
+ 0xb4810a40,
+ 0xb720c000,
+ 0x0c844f8c,
+ 0xb42108c0,
+ 0xb780c000,
+ 0xb7204f0c,
+ 0x1ce44f8c,
+ 0x0a00c010,
+ 0x4f0cb580,
+ 0xaa65f048,
+ 0x0880c008,
+ 0x4f8cb520,
+ 0xc000b481,
+ 0xa8edf048,
+ 0xb4210c84,
+ 0xf048c000,
+ 0xf048aa65,
+ 0x0c84a8ed,
+ 0x0a00c010,
+ 0xa265f048,
+ 0xaa75f048,
+ 0x0880c008,
+ 0xa0edf048,
+ 0xc000b481,
+ 0xa965f088,
+ 0xb4410c88,
+ 0xd131c000,
+ 0xb7800c80,
+ 0xf088402b,
+ 0xcffea967,
+ 0xf3102a40,
+ 0xf0888021,
+ 0x0c88a969,
+ 0xa265f088,
+ 0xc000b441,
+ 0x0c80d131,
+ 0x402bb780,
+ 0xa96bf088,
+ 0x2a40cffe,
+ 0x8021f310,
+ 0xa97df048,
+ 0xf0881c8c,
+ 0xb441a269,
+ 0xd131c000,
+ 0xb7800c80,
+ 0xf048402b,
+ 0x76c0a97f,
+ 0x5a11c200,
+ 0x5a14c200,
+ 0x8021f310,
+ 0xa27df048,
+ 0x9182c001,
+ 0x454ab720,
+ 0xb4211ca8,
+ 0xb780c000,
+ 0x0c8446ca,
+ 0x5a0dc200,
+ 0x58c0c200,
+ 0xb4813242,
+ 0xd131c000,
+ 0xd8080d04,
+ 0x0c8caa41,
+ 0x588cc200,
+ 0x28fccffe,
+ 0x5a50c200,
+ 0xb4213098,
+ 0xd251c000,
+ 0xd8080d04,
+ 0x0ca0aa41,
+ 0x5a11c200,
+ 0x2a3c1a10,
+ 0x3a00c004,
+ 0xc000b481,
+ 0x4d8cb780,
+ 0xb5800a04,
+ 0x9c224d8c,
+ 0xc43ea68d,
+ 0x0a020c92,
+ 0xc000b481,
+ 0x4220b103,
+ 0x5b0cb780,
+ 0xa885da08,
+ 0xa909da08,
+ 0xa189da08,
+ 0xa081da08,
+ 0xa105da08,
+ 0x0a020cd0,
+ 0xc000b481,
+ 0x4220b103,
+ 0x5a8cb720,
+ 0x518cb780,
+ 0x5b0cb7a0,
+ 0x40b3b720,
+ 0x412bb740,
+ 0x412bb560,
+ 0x75002a40,
+ 0xb5200303,
+ 0xb5404033,
+ 0xc00040ab,
+ 0xb78390e2,
+ 0x750a7008,
+ 0x90f2c000,
+ 0x7008b783,
+ 0xc00d751a,
+ 0xb7819204,
+ 0x0a04748a,
+ 0x748ab581,
+ 0x0ca6c450,
+ 0xb4810a02,
+ 0xb103c000,
+ 0x00874220,
+ 0x2880c031,
+ 0xc00f0207,
+ 0xd0a42a7c,
+ 0xd22859e1,
+ 0x000759c1,
+ 0x287ccffe,
+ 0x0a020c88,
+ 0xc000b481,
+ 0x4220b103,
+ 0x5bc1c180,
+ 0xcffe9e9a,
+ 0x0cbc2d7c,
+ 0xc000b481,
+ 0x4220b103,
+ 0xb7400087,
+ 0xb781568c,
+ 0xc0fc738a,
+ 0xd0f22880,
+ 0xd0a4283e,
+ 0x9e415b19,
+ 0xa8d2d888,
+ 0xb5019e95,
+ 0xdffc7392,
+ 0x12187e7e,
+ 0x4002ba1c,
+ 0x91c2c002,
+ 0xc00076c2,
+ 0xb7809384,
+ 0xb740480a,
+ 0xba245d04,
+ 0xc2004002,
+ 0x58ed58ff,
+ 0x589700c2,
+ 0x5908d0a6,
+ 0x58949e2d,
+ 0x9e591242,
+ 0xa8cee038,
+ 0x4a7d5230,
+ 0x249e9ea7,
+ 0xc001a0c2,
+ 0xb7809180,
+ 0xda08468a,
+ 0xba24a8a1,
+ 0x70484002,
+ 0x907cc001,
+ 0x488ab780,
+ 0x4812b720,
+ 0x5d04b740,
+ 0xb5800a04,
+ 0xba09488a,
+ 0xd0a24003,
+ 0x9e495e7f,
+ 0xc2009e2d,
+ 0x02185a6d,
+ 0x5a17c200,
+ 0x5908d226,
+ 0x5a14c200,
+ 0xe0389ea7,
+ 0x149ea94d,
+ 0x08869e4c,
+ 0x312250b0,
+ 0xb780a141,
+ 0x0a04480a,
+ 0x480ab580,
+ 0x6188b783,
+ 0xb7837500,
+ 0xc0006208,
+ 0xc01c90c4,
+ 0xc0027d3e,
+ 0xc01c9184,
+ 0xd0117d3e,
+ 0xd02103f0,
+ 0x76c20527,
+ 0xaa39f210,
+ 0xd0010882,
+ 0x2a040892,
+ 0xb7407902,
+ 0xc000598c,
+ 0xd80890e2,
+ 0x0a04aa49,
+ 0xa249d808,
+ 0xa94bf008,
+ 0xa94cf00a,
+ 0x8027f310,
+ 0x82a5e010,
+ 0xa249f008,
+ 0xa0cdf008,
+ 0x6688b783,
+ 0x08827500,
+ 0x0892d002,
+ 0x0a0276c2,
+ 0x0a42d002,
+ 0xc0007848,
+ 0xc07c90c2,
+ 0xda088542,
+ 0x76c2a123,
+ 0xa953f008,
+ 0x90c4c000,
+ 0xaa41da08,
+ 0x9080c000,
+ 0xaa21da08,
+ 0x80a1e310,
+ 0xaa4dd808,
+ 0xa0d1f008,
+ 0xd8080a04,
+ 0xc006a24d,
+ 0xb72091c0,
+ 0x9d2e598c,
+ 0xaa39f210,
+ 0x8136c301,
+ 0x8120c201,
+ 0x4525b740,
+ 0x75002a04,
+ 0x8027f010,
+ 0x8221f310,
+ 0xb5800103,
+ 0xc001452d,
+ 0x76c290a2,
+ 0x90c4c000,
+ 0xaa41da08,
+ 0x9080c000,
+ 0xaa21da08,
+ 0xa25dd808,
+ 0xc00176c6,
+ 0x76c09082,
+ 0x91a4c000,
+ 0xd80874c0,
+ 0xe002a953,
+ 0xf2108d2a,
+ 0xd808802d,
+ 0xc000a251,
+ 0x74c092c0,
+ 0xa947d848,
+ 0x8d26e002,
+ 0x9160c000,
+ 0xaa41da08,
+ 0xd84874c0,
+ 0xd808a947,
+ 0xe002a25d,
+ 0xf2108d2a,
+ 0xd848802d,
+ 0xb783a245,
+ 0x75006308,
+ 0x9302c000,
+ 0x440ab780,
+ 0x70489e41,
+ 0x9244c000,
+ 0xb5438502,
+ 0xc43a6318,
+ 0x0a020c82,
+ 0xc000b481,
+ 0x4220b103,
+ 0x29fecfef,
+ 0x0c82c03a,
+ 0xc000b461,
+ 0x440ab780,
+ 0x70489e41,
+ 0xd0020882,
+ 0x76c60892,
+ 0xd0010a02,
+ 0x78480a42,
+ 0x9242c000,
+ 0xb5438506,
+ 0xc43a6318,
+ 0x0a020c82,
+ 0xc000b481,
+ 0x4220b103,
+ 0x3980c011,
+ 0x0c82c03a,
+ 0xc000b461,
+ 0xc0017780,
+ 0x76c091a2,
+ 0x92e4c000,
+ 0xaa21da08,
+ 0xa947f008,
+ 0xa8d5d808,
+ 0x8021f310,
+ 0xa8dad808,
+ 0xa245f008,
+ 0x0c849e44,
+ 0xa0dad808,
+ 0xd80800c2,
+ 0xc000a0d5,
+ 0xda0892a0,
+ 0xf008aa41,
+ 0xd848a95b,
+ 0xf310a8c9,
+ 0xd8488021,
+ 0xf008a8ce,
+ 0x9e44a259,
+ 0xd8480c84,
+ 0x00c2a0ce,
+ 0xa0c9d848,
+ 0xaa5dd808,
+ 0xa95ff008,
+ 0xa940f04a,
+ 0xa9c7f048,
+ 0x8021f310,
+ 0xa94ff048,
+ 0xa25df008,
+ 0x8221f210,
+ 0xa8c2d848,
+ 0xa241f048,
+ 0x8037f010,
+ 0x80a9e210,
+ 0xd8480c84,
+ 0xf048a0c2,
+ 0xf048a245,
+ 0xb7bfa0cd,
+ 0xb7df7eee,
+ 0xb7ff7f6e,
+ 0x8c607fee,
+ 0xc0369c22,
+ 0x9e5c0cfe,
+ 0xc000b481,
+ 0x00009c22,
+ 0x87c2c809,
+ 0x0c20b060,
+ 0x87c2c809,
+ 0x0a60b060,
+ 0x87c2c809,
+ 0x09c0b060,
+};
+
+unsigned long aui32H264_SlaveMTXTOPAZFWData[] = {
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x809000b0,
+ 0x809002f8,
+ 0x82882cd4,
+ 0x828828a4,
+ 0x828828b4,
+ 0x82882954,
+ 0x828827c0,
+ 0x82882816,
+ 0x82882984,
+ 0x828829c0,
+ 0x828829f8,
+ 0x828829fc,
+ 0x82882a2c,
+ 0x82882a54,
+ 0x8288287c,
+ 0x82882a5c,
+ 0x82882a64,
+ 0x82882a6c,
+ 0x82882aa0,
+ 0x82882de0,
+ 0x82882ca0,
+ 0x82882d9c,
+ 0x82882ddc,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x8090074c,
+ 0x8090074c,
+ 0x80901efc,
+ 0x8090197c,
+ 0x80902b94,
+ 0x809022c4,
+ 0x80901ca4,
+ 0x8090074c,
+ 0x8090074c,
+ 0x8090074c,
+ 0x8090074c,
+ 0x8090074c,
+ 0x00000000,
+ 0x00000000,
+ 0xa0101100,
+ 0xa01001b0,
+ 0xa0101102,
+ 0xa01001b2,
+ 0xa0101104,
+ 0xa0100124,
+ 0xa0101106,
+ 0xa0100126,
+ 0xa0100134,
+ 0x00000000,
+ 0xa0101120,
+ 0xa0100136,
+ 0xa0101122,
+ 0xa0100144,
+ 0x80101160,
+ 0x80101162,
+ 0x80101180,
+ 0x80101182,
+ 0x80100140,
+ 0x80100142,
+ 0x80100150,
+ 0x80100152,
+ 0x80100154,
+ 0x80100146,
+ 0x803003a0,
+ 0x80100100,
+ 0x80105156,
+ 0xa0101164,
+ 0xa0100184,
+ 0x80101194,
+ 0x801001b4,
+ 0x80100146,
+ 0x00000000,
+ 0x00000003,
+ 0x00000002,
+ 0x00000002,
+ 0x00000001,
+ 0x00000001,
+ 0x00000001,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000005,
+ 0x000f9400,
+ 0x000f9401,
+ 0x000fd403,
+ 0x000fd407,
+ 0x000fd517,
+ 0x000fdd37,
+ 0x000fff37,
+ 0x000ffb37,
+ 0x00006b37,
+ 0x00006b36,
+ 0x00002b36,
+ 0x00002b30,
+ 0x00002a20,
+ 0x40002220,
+ 0x00000000,
+ 0x00000000,
+ 0x00010001,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x1234baac,
+ 0x00000000,
+};
+
+unsigned long aui32H264_SlaveMTXTOPAZFWTextReloc[] = {
+ 0
+};
+
+unsigned char aui8H264_SlaveMTXTOPAZFWTextRelocType[] = {
+ 0
+};
+
+unsigned long aui32H264_SlaveMTXTOPAZFWTextRelocFullAddr[] = {
+ 0
+};
+
+unsigned long aui32H264_SlaveMTXTOPAZFWDataReloc[] = {
+ 0
+};
diff --git a/fw/H264SlaveFirmware_bin.h b/fw/H264SlaveFirmware_bin.h
new file mode 100644
index 0000000..4a3d871
--- /dev/null
+++ b/fw/H264SlaveFirmware_bin.h
@@ -0,0 +1,44 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+
+// This file was automatically generated from ../release/H264SlaveFirmware.dnl using dnl2c.
+
+extern unsigned long aui32H264_SlaveMTXTOPAZFWText[];
+extern unsigned long ui32H264_SlaveMTXTOPAZFWTextSize;
+
+extern unsigned long aui32H264_SlaveMTXTOPAZFWData[];
+extern unsigned long ui32H264_SlaveMTXTOPAZFWDataSize;
+
+extern unsigned long aui32H264_SlaveMTXTOPAZFWTextReloc[];
+extern unsigned char aui8H264_SlaveMTXTOPAZFWTextRelocType[];
+extern unsigned long aui32H264_SlaveMTXTOPAZFWTextRelocFullAddr[];
+
+extern unsigned long aui32H264_SlaveMTXTOPAZFWDataReloc[];
+extern unsigned long ui32H264_SlaveMTXTOPAZFWDataRelocSize;
+
+extern unsigned long ui32H264_SlaveMTXTOPAZFWTextOrigin;
+extern unsigned long ui32H264_SlaveMTXTOPAZFWDataOrigin;
+
diff --git a/fw/JPEGMasterFirmware_bin.c b/fw/JPEGMasterFirmware_bin.c
new file mode 100644
index 0000000..15ea322
--- /dev/null
+++ b/fw/JPEGMasterFirmware_bin.c
@@ -0,0 +1,1802 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+
+// This file was automatically generated from ../release/JPEGMasterFirmware.dnl using dnl2c.
+
+unsigned char *szJPEGMasterFirmware_buildtag = "BUILD_TOPAZ_SC_1_00_00_0318";
+
+unsigned long ui32JPEG_MasterMTXTOPAZFWTextSize = 1547;
+unsigned long ui32JPEG_MasterMTXTOPAZFWDataSize = 196;
+unsigned long ui32JPEG_MasterMTXTOPAZFWTextRelocSize = 0;
+unsigned long ui32JPEG_MasterMTXTOPAZFWDataRelocSize = 0;
+
+unsigned long ui32JPEG_MasterMTXTOPAZFWTextOrigin = 0x80900000;
+unsigned long ui32JPEG_MasterMTXTOPAZFWDataOrigin = 0x82881840;
+
+unsigned long aui32JPEG_MasterMTXTOPAZFWText[] = {
+ 0x9040c001,
+ 0xc80993fe,
+ 0xc0000e42,
+ 0xc8290e00,
+ 0xc1b48422,
+ 0xc8298440,
+ 0xc1848622,
+ 0x9e838600,
+ 0xc8099e43,
+ 0xc3020d42,
+ 0xc8090d60,
+ 0xc3040942,
+ 0xc8090920,
+ 0xc00a0e42,
+ 0xc8090e40,
+ 0xc00e87c2,
+ 0x9c1887d0,
+ 0x0c020802,
+ 0x09820d82,
+ 0x09020d02,
+ 0x08820c82,
+ 0x9320fffe,
+ 0xa401c838,
+ 0x0dc2c809,
+ 0x0da0c302,
+ 0x0e42c809,
+ 0x0b46b080,
+ 0x7e74b77f,
+ 0xa48d0882,
+ 0xffff9ff3,
+ 0x9d1393e0,
+ 0xf8398081,
+ 0x0707a205,
+ 0x06850307,
+ 0x03839e97,
+ 0x0fa0060f,
+ 0x018d058d,
+ 0x9c62008f,
+ 0x9340ffff,
+ 0x0ea0060b,
+ 0xffff9c62,
+ 0x058d93a0,
+ 0xb700018d,
+ 0xb7804b0c,
+ 0x9c014a94,
+ 0x0687a605,
+ 0x0ea0060b,
+ 0xffff9c62,
+ 0xf9f893a0,
+ 0xf9f8aa9d,
+ 0x9c22aa1d,
+ 0x0deacaba,
+ 0x0de8cabb,
+ 0xb7009e58,
+ 0x9c024a94,
+ 0xa6059c22,
+ 0x85028420,
+ 0xb55f0a82,
+ 0x850a7f7c,
+ 0x9c89c037,
+ 0x9c80c971,
+ 0x75002a08,
+ 0x9184c000,
+ 0x9932c054,
+ 0x430cb780,
+ 0xc0007500,
+ 0x0d8290a4,
+ 0x9b15c054,
+ 0x7f6cb79f,
+ 0xc0007500,
+ 0xc05490e4,
+ 0x0d8a9b1d,
+ 0x9b0bc054,
+ 0x8d80e032,
+ 0x996bc054,
+ 0x0800e000,
+ 0x91c4c000,
+ 0x9a75c054,
+ 0x430cb780,
+ 0x2a797402,
+ 0x430cb580,
+ 0x90e4c000,
+ 0x9100c000,
+ 0xc0549e83,
+ 0x754099e8,
+ 0x9162fffe,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x9c228c60,
+ 0x85028702,
+ 0x5418b542,
+ 0x5498b542,
+ 0x5518b542,
+ 0x5818b542,
+ 0x5898b542,
+ 0x5918b542,
+ 0x5d18b542,
+ 0x5d98b542,
+ 0x5e18b542,
+ 0x6118b542,
+ 0x4504b540,
+ 0x4584b540,
+ 0x4604b540,
+ 0x4684b540,
+ 0x4704b540,
+ 0x4784b540,
+ 0x4804b540,
+ 0x4884b540,
+ 0x4202b540,
+ 0x4282b540,
+ 0x4984b540,
+ 0x6584b540,
+ 0x4904b540,
+ 0x4302b540,
+ 0xa6059c22,
+ 0xfff48420,
+ 0x0d8a9b87,
+ 0x9ab1c054,
+ 0x9bc6fff4,
+ 0x9abcc054,
+ 0x0cd2c420,
+ 0xb4810a02,
+ 0xb105c000,
+ 0x0d8a4220,
+ 0x8d80e031,
+ 0x9a79c054,
+ 0x0922c829,
+ 0x0900c1ac,
+ 0x7f6cb73f,
+ 0x2a5ed071,
+ 0x428cb580,
+ 0x2a80c01e,
+ 0xf0088502,
+ 0x7102a8c2,
+ 0x5a95c280,
+ 0x438cb5a0,
+ 0x4434b341,
+ 0xb5407640,
+ 0xb520431c,
+ 0xc000420c,
+ 0xd01190c2,
+ 0xf0080e12,
+ 0xb780a241,
+ 0xc8074b8c,
+ 0xc57008c2,
+ 0xc0320880,
+ 0xb5800caa,
+ 0xb4214a0c,
+ 0x0a2ac000,
+ 0xb4810cf4,
+ 0x1a28c000,
+ 0xc0020902,
+ 0xb96008ba,
+ 0xc2004078,
+ 0xd2240a00,
+ 0xb441588b,
+ 0xce00c000,
+ 0xffff0a11,
+ 0xe0009301,
+ 0xffff1884,
+ 0xc8079244,
+ 0xc5760a42,
+ 0xc0320a00,
+ 0xb4810caa,
+ 0x0a02c000,
+ 0x09020882,
+ 0xb9600884,
+ 0xc2004078,
+ 0xd2240a00,
+ 0xb441588b,
+ 0xce00c000,
+ 0xffff0a11,
+ 0xc0049301,
+ 0xffff745a,
+ 0x0a02923c,
+ 0x0c9ec034,
+ 0xc000b481,
+ 0x9b0dfff4,
+ 0xb79f0802,
+ 0xb7bf7eee,
+ 0x8c607f6e,
+ 0xc8079c22,
+ 0xc3700a42,
+ 0xc0320a00,
+ 0xb4810cea,
+ 0xc801c000,
+ 0xc01608c2,
+ 0x1cbc08d0,
+ 0xc000b421,
+ 0x0a01cd04,
+ 0xb4810c84,
+ 0xcf02c000,
+ 0x0c8c0880,
+ 0xc000b421,
+ 0x0a42c801,
+ 0x0a58cf18,
+ 0xb4811c84,
+ 0xc803c000,
+ 0xc03808c2,
+ 0x1c840890,
+ 0xc000b421,
+ 0x0a02ca01,
+ 0x0a50c004,
+ 0xb4811cb0,
+ 0xca01c000,
+ 0xc0040882,
+ 0x0c8408d4,
+ 0xc000b421,
+ 0x0c840a08,
+ 0xc000b481,
+ 0x0c840888,
+ 0xc000b421,
+ 0x0c840a38,
+ 0xc000b481,
+ 0x0c8408b8,
+ 0xc000b421,
+ 0x0c840a08,
+ 0xc000b481,
+ 0x0c840888,
+ 0xc000b421,
+ 0x0c840a40,
+ 0xc000b481,
+ 0x0c8408c0,
+ 0xc000b421,
+ 0x9e5c9c22,
+ 0x8502c002,
+ 0x88a1e310,
+ 0x0ceac032,
+ 0x5a04c200,
+ 0x2a40c00e,
+ 0x1884588d,
+ 0xcf0058b0,
+ 0xc0702880,
+ 0x32423880,
+ 0x3a40c807,
+ 0xc000b481,
+ 0xa6059c22,
+ 0x8400c008,
+ 0x440cb7a0,
+ 0x9b8dfff4,
+ 0x8c80e212,
+ 0x0d82c004,
+ 0xc008098a,
+ 0x010b0d02,
+ 0x9b3dc034,
+ 0xc0300a02,
+ 0xb4810c8a,
+ 0xe214c000,
+ 0xe1148d80,
+ 0x09028d00,
+ 0x5908d126,
+ 0x9dc79e3d,
+ 0xaa4de030,
+ 0x0cc0c0e8,
+ 0xb4815c8b,
+ 0xd126c000,
+ 0x9e2d5908,
+ 0xe0309dc7,
+ 0xc0eca8cd,
+ 0x5c8b0cc0,
+ 0xc000b421,
+ 0x0a22d011,
+ 0x294ed3f1,
+ 0xffff749e,
+ 0xb79f90b4,
+ 0xb7bf776e,
+ 0xc00877ee,
+ 0x9c228c40,
+ 0xc03a0a02,
+ 0xb4810c8e,
+ 0x0882c000,
+ 0xb4211c84,
+ 0x9c22c000,
+ 0xa205f839,
+ 0x9bf4fff4,
+ 0xf9f80d82,
+ 0xfffcaa1d,
+ 0xa61d9300,
+ 0x0c028460,
+ 0x7df4b55f,
+ 0xa042f010,
+ 0x7e6cb55f,
+ 0xa042f008,
+ 0xf2080387,
+ 0xb57fa062,
+ 0xf0107d74,
+ 0x0703a062,
+ 0xaa51d250,
+ 0xc0057500,
+ 0xb7e09102,
+ 0xf2104d14,
+ 0x9e40aa65,
+ 0x70080a82,
+ 0x1cf8d092,
+ 0x7ef4b53f,
+ 0x91e8c003,
+ 0xb79f0b06,
+ 0xf2087eec,
+ 0xf210a905,
+ 0xb7a0a94b,
+ 0xf2104c94,
+ 0xd032aa45,
+ 0xf21261d4,
+ 0xc301a920,
+ 0xf2208120,
+ 0xe12080af,
+ 0x09a283a3,
+ 0x0c820d22,
+ 0xb51f0882,
+ 0xc0347f74,
+ 0xf2089a7e,
+ 0x0a04aa61,
+ 0xa261f208,
+ 0x7d6cb71f,
+ 0x7f74b71f,
+ 0x402cb720,
+ 0xc2009e42,
+ 0x30985248,
+ 0x402cb520,
+ 0xaa45f210,
+ 0xa8e9f210,
+ 0x71020a20,
+ 0xc0000c04,
+ 0xf21091c8,
+ 0xf210a943,
+ 0xe310aa6d,
+ 0x704880a3,
+ 0x0cd0d032,
+ 0x4848b351,
+ 0xb7000683,
+ 0xb7404c8c,
+ 0xb79f403c,
+ 0x09a27eec,
+ 0xe3200d22,
+ 0xf20881ab,
+ 0x0c82a905,
+ 0xb51f0882,
+ 0xc0347f74,
+ 0xf2089a64,
+ 0x0a04aa61,
+ 0xa261f208,
+ 0x7d74b73f,
+ 0x7f74b71f,
+ 0x404db720,
+ 0xc2009e42,
+ 0x30985248,
+ 0x404db520,
+ 0xaa65f210,
+ 0x71480aa0,
+ 0xfffc0c04,
+ 0xf21092c6,
+ 0xf210a947,
+ 0xf310aa61,
+ 0xf2108021,
+ 0xf210a245,
+ 0x7102a8e9,
+ 0x9026c001,
+ 0xf2108702,
+ 0xf212a943,
+ 0xf210a144,
+ 0xf310aa65,
+ 0xf2108021,
+ 0xf210a241,
+ 0x7102a8ed,
+ 0x9086c000,
+ 0xa150d252,
+ 0x7ef4b7bf,
+ 0xaa65f210,
+ 0xa8a5f210,
+ 0xa94bf210,
+ 0xf3106243,
+ 0xf2108021,
+ 0xd051a249,
+ 0xd2480f60,
+ 0x7500aa51,
+ 0x9262c003,
+ 0x7e6cb71f,
+ 0x4e14b7e0,
+ 0xa948f20a,
+ 0xaa61f208,
+ 0x402cb720,
+ 0xa9c6f208,
+ 0xc2000a86,
+ 0x30985230,
+ 0x402cb520,
+ 0x7decb75f,
+ 0xaa61f208,
+ 0x1ef0d0b2,
+ 0xa8c1f008,
+ 0x7ef4b5bf,
+ 0x5a04c200,
+ 0x5230c200,
+ 0xf0083098,
+ 0xf390a0c1,
+ 0xf210a97b,
+ 0xf020a925,
+ 0xe32082a7,
+ 0x09a281ab,
+ 0x0c820d22,
+ 0xb51f0882,
+ 0xc0347f74,
+ 0xf20899c8,
+ 0x0a04aa61,
+ 0xa261f208,
+ 0x7d6cb71f,
+ 0x7f74b71f,
+ 0x402cb720,
+ 0xc2009e42,
+ 0x309a52a8,
+ 0x402cb520,
+ 0xa947f208,
+ 0xaa61f210,
+ 0x8021f310,
+ 0xa245f208,
+ 0xa8e9f210,
+ 0x0c047102,
+ 0x9026c001,
+ 0xf2088702,
+ 0xf20aa943,
+ 0xf210a144,
+ 0xf310aa65,
+ 0xf2088021,
+ 0xf210a241,
+ 0x7102a8ed,
+ 0x9086c000,
+ 0xa150d24a,
+ 0x7ef4b7bf,
+ 0xaa65f210,
+ 0xa8a5f210,
+ 0xa94bf208,
+ 0xf3106243,
+ 0xf2088021,
+ 0xd091a249,
+ 0xd2480f60,
+ 0x7500aa51,
+ 0x9242c003,
+ 0x7e6cb71f,
+ 0x4d94b7e0,
+ 0xa948f20a,
+ 0xaa61f208,
+ 0x402cb720,
+ 0xa9c6f208,
+ 0xc2000a86,
+ 0x30985230,
+ 0x402cb520,
+ 0x7decb71f,
+ 0x1ef8d0b2,
+ 0xa961f208,
+ 0x7ef4b5bf,
+ 0x402cb720,
+ 0x59040a0a,
+ 0x5208c200,
+ 0xb5203098,
+ 0xf390402c,
+ 0xf210a977,
+ 0xf020a925,
+ 0xe32082a7,
+ 0x09a281ab,
+ 0x0c820d22,
+ 0xb51f0882,
+ 0xc0347f74,
+ 0xf208996e,
+ 0x0a04aa61,
+ 0xa261f208,
+ 0x7d74b73f,
+ 0x7f74b71f,
+ 0x404db720,
+ 0xc2009e42,
+ 0x309a52a8,
+ 0x404db520,
+ 0xa947f208,
+ 0xaa61f210,
+ 0x8021f310,
+ 0xa245f208,
+ 0xa8e9f210,
+ 0xc0017102,
+ 0x87029026,
+ 0xa943f208,
+ 0xa144f20a,
+ 0xaa65f210,
+ 0x8021f310,
+ 0xa241f208,
+ 0xa8edf210,
+ 0xc0007102,
+ 0xd24a9086,
+ 0xb7bfa150,
+ 0xf2107ef4,
+ 0xf210aa65,
+ 0xf208a8a5,
+ 0x6243a94b,
+ 0x8021f310,
+ 0xa249f208,
+ 0x7ceeb79f,
+ 0x7d6eb7bf,
+ 0x7deeb7df,
+ 0x7e6eb7ff,
+ 0x8c60c002,
+ 0xa61d9c22,
+ 0x85028420,
+ 0x9e5f9e9f,
+ 0xb7609e4e,
+ 0x06854d1c,
+ 0xf2100285,
+ 0xf208a123,
+ 0xf210a123,
+ 0xf208a163,
+ 0xf208a163,
+ 0x9dfba94b,
+ 0xaa45f208,
+ 0xa95cf3b2,
+ 0x0982c002,
+ 0xc3010d22,
+ 0xe2208120,
+ 0xf21083ad,
+ 0x0c82a945,
+ 0xb57f0882,
+ 0xc0347f7c,
+ 0x853298c2,
+ 0xa123f208,
+ 0x8510c008,
+ 0xa123f210,
+ 0x7f7cb77f,
+ 0xf208aa61,
+ 0xc200a947,
+ 0xf3105a04,
+ 0xf2088021,
+ 0xa8e9a245,
+ 0x0a827102,
+ 0x9366c000,
+ 0xa943f208,
+ 0xa2c5f208,
+ 0xf310aa65,
+ 0xf2088021,
+ 0xa8eda241,
+ 0xc0007102,
+ 0xd2489086,
+ 0xaa65a2d1,
+ 0xa8c5f210,
+ 0xa94bf208,
+ 0xf3106243,
+ 0xf2088021,
+ 0x8512a249,
+ 0xa163f210,
+ 0xf208852c,
+ 0xb79fa163,
+ 0xb7bf7dee,
+ 0xb7df7e6e,
+ 0xb7ff7eee,
+ 0xc0027f6e,
+ 0x9c228c20,
+ 0x0705a61d,
+ 0xaa41f210,
+ 0x9e690e82,
+ 0x70489e9f,
+ 0x2fbed3f1,
+ 0x93e8c000,
+ 0x0a22c829,
+ 0x0a20c1ac,
+ 0x0b48d011,
+ 0x0ac0d031,
+ 0xa9c1d208,
+ 0xa9aed3c8,
+ 0xa922d208,
+ 0x0902c101,
+ 0x0940c006,
+ 0x9851c034,
+ 0xaa41f210,
+ 0x9e690e88,
+ 0x0b607048,
+ 0xffff0ae0,
+ 0x75c091a6,
+ 0x91c2c000,
+ 0xd2108506,
+ 0x0a02a163,
+ 0x0c82c040,
+ 0xc000b481,
+ 0x0882c1c1,
+ 0xc000b421,
+ 0x7e6eb79f,
+ 0x7eeeb7bf,
+ 0x7f6eb7df,
+ 0x7feeb7ff,
+ 0x8c00c002,
+ 0xa61d9c22,
+ 0xc8298420,
+ 0xc1ac0a22,
+ 0x9e570a20,
+ 0xd0129e95,
+ 0xb57f0b48,
+ 0xd3f27f6c,
+ 0x0b022fbe,
+ 0x0ac0d031,
+ 0xa9aed3c8,
+ 0xa9c1d210,
+ 0xa922d208,
+ 0x0902c101,
+ 0x0940c006,
+ 0x5e89c280,
+ 0x980fc034,
+ 0x2e52d011,
+ 0x75000f60,
+ 0x0b080ae0,
+ 0x9182ffff,
+ 0xaa61f208,
+ 0xc0017188,
+ 0xd0319088,
+ 0xc8296a69,
+ 0xc1ac08a2,
+ 0xd01308a0,
+ 0xf2200948,
+ 0xd03380a3,
+ 0xf2100940,
+ 0xd3c880a3,
+ 0xd210a9ae,
+ 0xd208a9a1,
+ 0xc101a922,
+ 0xc0860902,
+ 0xc0140940,
+ 0xf2089be8,
+ 0x0b08aa61,
+ 0x0ee07188,
+ 0xffff0ae0,
+ 0x77c091c6,
+ 0x9202c000,
+ 0x7f6cb79f,
+ 0xd2088506,
+ 0x0a02a103,
+ 0x0c82c040,
+ 0xc000b481,
+ 0x0882c1c1,
+ 0xc000b421,
+ 0x7deeb79f,
+ 0x7e6eb7bf,
+ 0x7eeeb7df,
+ 0x7f6eb7ff,
+ 0x8c20c002,
+ 0xa6059c22,
+ 0x0a22c829,
+ 0x0a20c1ac,
+ 0x9e9d9e5d,
+ 0xa98ed208,
+ 0xa991d208,
+ 0xa902d248,
+ 0x0902c101,
+ 0x0948c106,
+ 0x2afcc00e,
+ 0x9bafc014,
+ 0xc0007540,
+ 0x850691c2,
+ 0xa123d210,
+ 0xc0400a02,
+ 0xb4810c82,
+ 0xc1c1c000,
+ 0xb4210882,
+ 0xb79fc000,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa6059c22,
+ 0x09920687,
+ 0x09220d22,
+ 0x9a84c034,
+ 0x0eb00a22,
+ 0x5e89c280,
+ 0xc000b485,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0x0687a605,
+ 0xc0080992,
+ 0xc0080d02,
+ 0xc0340902,
+ 0xc0089a6f,
+ 0x0eb00a02,
+ 0x5e89c280,
+ 0xc000b485,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0x0687a605,
+ 0xc0080992,
+ 0xc0080d22,
+ 0xc0340922,
+ 0xc0089a59,
+ 0x0eb00a22,
+ 0x5e89c280,
+ 0xc000b485,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xc002a61d,
+ 0x85028440,
+ 0xb51f0c02,
+ 0xb51f7af4,
+ 0xb51f7b74,
+ 0xb51f7bf4,
+ 0xf0127c74,
+ 0xb57f0fb0,
+ 0xb55f7cec,
+ 0xb55f7d74,
+ 0xb55f7dec,
+ 0xc0016878,
+ 0xf0b190a2,
+ 0xb7a08d88,
+ 0xe0b34c94,
+ 0x9d478d00,
+ 0x8d08f091,
+ 0x8c80f091,
+ 0xb7df9ebb,
+ 0xb55f7df4,
+ 0x01837ffc,
+ 0xf2d09eb2,
+ 0x010baa21,
+ 0xb51f048d,
+ 0x9ea47e74,
+ 0xb73f9c62,
+ 0xb71f7ff4,
+ 0x038d7e74,
+ 0x0703030b,
+ 0x90a0c000,
+ 0xffd40d86,
+ 0xb79f9acb,
+ 0xc03a7b6c,
+ 0x1a040c82,
+ 0x5a50c200,
+ 0x2a40c00f,
+ 0xb4813a0c,
+ 0xb73fc000,
+ 0x0c847bec,
+ 0xc000b421,
+ 0x0a62c00a,
+ 0x1cf8c008,
+ 0xc000b481,
+ 0x4c94b7a0,
+ 0x7c6cb75f,
+ 0x8d80e0d1,
+ 0xaa25f2d0,
+ 0x050d0d86,
+ 0x7e74b51f,
+ 0x9c629ea4,
+ 0x0d82c0c0,
+ 0x9bd1c014,
+ 0x7d7cb75f,
+ 0x7ce4b75f,
+ 0xc050aa41,
+ 0x85020cf2,
+ 0x6878b55f,
+ 0x8221f310,
+ 0xc000b481,
+ 0x1cf00882,
+ 0xc000b421,
+ 0xc0300a22,
+ 0xb4810c96,
+ 0xb73fc000,
+ 0xb7bf7c6c,
+ 0x9e7c7b6c,
+ 0x7e74b71f,
+ 0x1f847500,
+ 0x7f6cb53f,
+ 0x9202c000,
+ 0xaa21f2d0,
+ 0x7df4b7bf,
+ 0x8d88e0b2,
+ 0x9eba9e73,
+ 0x048b010d,
+ 0x9c629ea4,
+ 0x7e74b71f,
+ 0x0d82c0c0,
+ 0x7e74b51f,
+ 0x9b23fff4,
+ 0x7f6cb73f,
+ 0x0ccec050,
+ 0x5a20c080,
+ 0x2a00cff0,
+ 0x18d2d011,
+ 0x3098289c,
+ 0xc000b421,
+ 0xb71f77c0,
+ 0xc0027e74,
+ 0xc0089382,
+ 0xb7200aa2,
+ 0xb75f4c94,
+ 0xe0d17c6c,
+ 0xb7208d80,
+ 0x0d864ccd,
+ 0xb51f050d,
+ 0x9e8c7e74,
+ 0xb79f9c62,
+ 0x75006868,
+ 0x7e74b71f,
+ 0x9162c000,
+ 0x0d82c0c0,
+ 0x9b6bc014,
+ 0x7e74b71f,
+ 0xb55f8502,
+ 0xc0306878,
+ 0xb4a10c8e,
+ 0xc030c000,
+ 0xb4a20d16,
+ 0xb79fc000,
+ 0xf2087d6c,
+ 0xb7bfa903,
+ 0xe0007d74,
+ 0xf2101f84,
+ 0xf2108029,
+ 0xc000a221,
+ 0xb7409202,
+ 0xb71f4c9c,
+ 0xe0b27df4,
+ 0x9e738d88,
+ 0xf0d89eba,
+ 0x010daa41,
+ 0x9ea40481,
+ 0xc0c09c62,
+ 0xfff40d82,
+ 0x0a3a9af1,
+ 0x0d1ec034,
+ 0xc000b482,
+ 0x0c8ac450,
+ 0xb4811a38,
+ 0xb100c000,
+ 0xc00e4240,
+ 0x77c02c7c,
+ 0xfffd5c10,
+ 0xc00a9144,
+ 0xc0300a02,
+ 0xb4810c8e,
+ 0xc008c000,
+ 0x0c880882,
+ 0xc000b421,
+ 0x7d6cb73f,
+ 0x403db740,
+ 0x7c74b73f,
+ 0x8029f210,
+ 0x7b6cb7bf,
+ 0x0d82c0c0,
+ 0x7f74b53f,
+ 0x402db580,
+ 0x9aacfff4,
+ 0xc0340a3a,
+ 0xb4820d1e,
+ 0xc450c000,
+ 0x1a380c8a,
+ 0xc000b481,
+ 0x4240b100,
+ 0x2c7cc00e,
+ 0xc0085c10,
+ 0xc0040a20,
+ 0xb4821d10,
+ 0x1c88c000,
+ 0x1a20c008,
+ 0xc000b481,
+ 0x4220b101,
+ 0x3a10d0d1,
+ 0x28fdcffc,
+ 0xc0503098,
+ 0xb4210c82,
+ 0xb79fc000,
+ 0x0ccc7f6c,
+ 0x5920c200,
+ 0x2900cff0,
+ 0x1a52d011,
+ 0x32442a1c,
+ 0xc000b481,
+ 0x7d74b7bf,
+ 0xa923f210,
+ 0x8029f210,
+ 0x0d82c0c0,
+ 0xa221f210,
+ 0x9a6efff4,
+ 0xc0340a3a,
+ 0xb4820d1e,
+ 0xc450c000,
+ 0x1a380c8a,
+ 0xc000b481,
+ 0x4240b100,
+ 0x2c7cc00e,
+ 0xa923f210,
+ 0xf2105c10,
+ 0xf2108029,
+ 0xb79fa221,
+ 0xb7bf7b6e,
+ 0xb7df7bee,
+ 0xb7ff7c6e,
+ 0xc0047cee,
+ 0x9c228c40,
+ 0x8460a61d,
+ 0x4c94b720,
+ 0x4acdb780,
+ 0x70480882,
+ 0x7d74b57f,
+ 0x7decb57f,
+ 0x9188c002,
+ 0x87020783,
+ 0xb55f9e99,
+ 0x07037e64,
+ 0x0d78d093,
+ 0x5b90c080,
+ 0xd0b39d4b,
+ 0xe2200d78,
+ 0x9d4bab65,
+ 0xaa65e220,
+ 0x7d6cb75f,
+ 0x62acd032,
+ 0xd012024c,
+ 0xb53f19c2,
+ 0x018d7f6c,
+ 0x98a9c034,
+ 0xf210628d,
+ 0x058ba2ca,
+ 0xc034018b,
+ 0x628b98a2,
+ 0x0d70d0b3,
+ 0x9d4b9e6c,
+ 0xa041f210,
+ 0xf21012ca,
+ 0xe220a2c5,
+ 0x6009aa65,
+ 0xa041f210,
+ 0x7e7cb77f,
+ 0x0d78d013,
+ 0xaa6de020,
+ 0x60099e3a,
+ 0xa049f210,
+ 0x7f6cb73f,
+ 0xaa75f290,
+ 0x08848730,
+ 0xb55f7048,
+ 0x0f407e64,
+ 0x93c6fffd,
+ 0x7dfcb77f,
+ 0xd0588506,
+ 0xb79fa173,
+ 0xb7bf7cee,
+ 0xb7df7d6e,
+ 0xb7ff7dee,
+ 0xc0027e6e,
+ 0x9c228c60,
+ 0xb7e0a61d,
+ 0xf2084c8c,
+ 0xf248a967,
+ 0x9e5eaae6,
+ 0xc3019e9e,
+ 0xe320812a,
+ 0xd2a281ab,
+ 0x1d845d84,
+ 0x985bc034,
+ 0x63699e6c,
+ 0x5a84c000,
+ 0xd32462d9,
+ 0x018b5a84,
+ 0xa2caf210,
+ 0xc034058b,
+ 0x628b984e,
+ 0xf2109e6c,
+ 0x12caa041,
+ 0xa2c5f210,
+ 0xaa69f248,
+ 0xf2106009,
+ 0xf208a041,
+ 0x6009aa65,
+ 0xd2508506,
+ 0xf210a153,
+ 0xb79fa049,
+ 0xb7bf7e6e,
+ 0xb7df7eee,
+ 0xb7ff7f6e,
+ 0xc0027fee,
+ 0x9c228c00,
+ 0xc004a60d,
+ 0xb7a08400,
+ 0xe1124414,
+ 0x9e6a8c80,
+ 0xb59f0a02,
+ 0xc0027f6c,
+ 0x09860d82,
+ 0xc0140d22,
+ 0xc4329986,
+ 0x0a020caa,
+ 0xc000b481,
+ 0x4220b106,
+ 0x0a42ca01,
+ 0x0a50c014,
+ 0x0c86c032,
+ 0xc000b481,
+ 0x08c2ca01,
+ 0x08d4c014,
+ 0xb4210c84,
+ 0xb740c000,
+ 0xf0884c8c,
+ 0x7506aa5d,
+ 0x91e4c000,
+ 0x0a42ca01,
+ 0x0a5cc014,
+ 0xb4810c84,
+ 0x0884c000,
+ 0xb4210c84,
+ 0xc000c000,
+ 0xca019220,
+ 0xc0140a42,
+ 0xc0320a58,
+ 0xb4810c8e,
+ 0xca01c000,
+ 0xc01408c2,
+ 0x0c8408dc,
+ 0xc000b421,
+ 0x0a42ca01,
+ 0x0a10c016,
+ 0x0c96c032,
+ 0xc000b481,
+ 0x08c2ca01,
+ 0x0894c016,
+ 0xb4210c84,
+ 0x0a08c000,
+ 0xb4810c84,
+ 0x0888c000,
+ 0xb4210c84,
+ 0x0a40c000,
+ 0xb4810c84,
+ 0x08c0c000,
+ 0xb4210c84,
+ 0xb79fc000,
+ 0x2a046268,
+ 0xf0f17500,
+ 0xc0008c80,
+ 0xb77f9162,
+ 0xf0c87874,
+ 0x018baa49,
+ 0x9c629ea4,
+ 0x9a10ffd4,
+ 0x0dd0d051,
+ 0x0a62c00a,
+ 0x0c8ec030,
+ 0xc000b481,
+ 0x0882c801,
+ 0x08a0c00a,
+ 0xb4211c84,
+ 0xb77fc000,
+ 0xe03278f4,
+ 0x010b8d00,
+ 0xfff45d85,
+ 0xc0029943,
+ 0xc0300a62,
+ 0xb4810c8e,
+ 0xc801c000,
+ 0x08c00882,
+ 0xb4211c84,
+ 0xc002c000,
+ 0xc0041a2c,
+ 0xb4810c94,
+ 0xb73fc000,
+ 0xc0807f6c,
+ 0xb4210c82,
+ 0x0dbec000,
+ 0x0982c002,
+ 0x0d02c004,
+ 0x0902c121,
+ 0x987bc014,
+ 0x09c2058b,
+ 0xc0020d06,
+ 0x0c860902,
+ 0xc0140886,
+ 0xc0c09882,
+ 0x09920d82,
+ 0x09420d42,
+ 0x9b5cc014,
+ 0x0a42c002,
+ 0x0c8ec030,
+ 0xc000b481,
+ 0x1c840882,
+ 0xc000b421,
+ 0x0d2ac032,
+ 0xc000b4c2,
+ 0x7aeeb79f,
+ 0x7b6eb7bf,
+ 0x7beeb7df,
+ 0x8c60c004,
+ 0xa6059c22,
+ 0x4c8cb7a0,
+ 0xb7409ea9,
+ 0x0dc2440c,
+ 0xc006099a,
+ 0xc0140d02,
+ 0xf28898b2,
+ 0x7642a8be,
+ 0x9012c001,
+ 0x0a42c809,
+ 0x0a30c08a,
+ 0x08c2c809,
+ 0x08a0c1ba,
+ 0xa221f2c8,
+ 0xa0a9f2c8,
+ 0x9144c000,
+ 0x0a42c809,
+ 0x0a70c122,
+ 0xa225f2c8,
+ 0x9380c000,
+ 0x0a42c809,
+ 0x0a40c112,
+ 0xa225f2c8,
+ 0x9280c000,
+ 0x0a42c809,
+ 0x0a30c0f8,
+ 0x08c2c809,
+ 0x08a0c1d4,
+ 0x0cc2c809,
+ 0x0c90c13e,
+ 0xa221f2c8,
+ 0xa0a9f2c8,
+ 0xa0a6f2c8,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xc0409e54,
+ 0x9e590c82,
+ 0xc000b421,
+ 0x0d02c040,
+ 0xc000b482,
+ 0xc00e9c22,
+ 0xc00e2d7c,
+ 0x5d3029e0,
+ 0xc0409e54,
+ 0x31b80c82,
+ 0xc000b461,
+ 0x0d02c040,
+ 0xc000b442,
+ 0x9e4c9c22,
+ 0x28fcc00e,
+ 0x2a7cc00e,
+ 0x0c82c040,
+ 0xb4019e58,
+ 0xc200c000,
+ 0x58e45a6c,
+ 0x1d043242,
+ 0x9e515d10,
+ 0x1984598d,
+ 0x3980c011,
+ 0x590d3246,
+ 0x59301904,
+ 0x32443242,
+ 0xc000b481,
+ 0x9e4c9c22,
+ 0x28fcc00e,
+ 0x2a7cc00e,
+ 0x0c82c040,
+ 0xb4019e58,
+ 0xc200c000,
+ 0x58e45a6c,
+ 0x1d043242,
+ 0x9e515d10,
+ 0x1984598d,
+ 0x3980c019,
+ 0x590d3246,
+ 0x59301904,
+ 0x32443242,
+ 0xc000b481,
+ 0x9e4c9c22,
+ 0x28fcc00e,
+ 0x2a7cc00e,
+ 0x0c82c040,
+ 0xb4019e58,
+ 0xc200c000,
+ 0x58e45a6c,
+ 0x1d043242,
+ 0x9e515d10,
+ 0x1984598d,
+ 0x3980c01d,
+ 0x590d3246,
+ 0x59301904,
+ 0x32443242,
+ 0xc000b481,
+ 0xa60d9c22,
+ 0x07038420,
+ 0xc2800687,
+ 0x1c845c8d,
+ 0x5ca0d0a2,
+ 0xd0110287,
+ 0xc2000a5e,
+ 0x1a045a0d,
+ 0x5a30c200,
+ 0x30985cd0,
+ 0x04059e4c,
+ 0x0c8ac032,
+ 0xc8013098,
+ 0xb4213880,
+ 0x9ea9c000,
+ 0x0a02c801,
+ 0x0a00c002,
+ 0xc0306553,
+ 0xb4810c8a,
+ 0xc002c000,
+ 0x0c840882,
+ 0xc000b421,
+ 0xd0229e93,
+ 0x9e535f09,
+ 0x1d045d0d,
+ 0x9b5afff4,
+ 0x5e91c280,
+ 0xc2801e84,
+ 0x9e6c5e84,
+ 0xc2801a84,
+ 0xc1815a90,
+ 0x0d8a3a80,
+ 0x0d020982,
+ 0xfff4314a,
+ 0xc0c09b54,
+ 0x09920d82,
+ 0x0d02c002,
+ 0x0902c002,
+ 0x9a3cc014,
+ 0xc0340a0a,
+ 0xb4810c9e,
+ 0x1b04c000,
+ 0x850275bf,
+ 0x9202c000,
+ 0xb55f9dcf,
+ 0xc0147f7c,
+ 0xf2319a0f,
+ 0xb75fa045,
+ 0x1b047f7c,
+ 0x851075bf,
+ 0x9284ffff,
+ 0x0a42c002,
+ 0x0c8ec030,
+ 0xc000b481,
+ 0x7e6eb79f,
+ 0x7eeeb7bf,
+ 0x7f6eb7df,
+ 0x8c00c002,
+ 0xa6059c22,
+ 0x09920687,
+ 0x0d02c002,
+ 0x0902c002,
+ 0x9a0cc014,
+ 0x0a42c002,
+ 0xc2800eb0,
+ 0xb4855e89,
+ 0xb79fc000,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0x9c229c22,
+ 0xa285f839,
+ 0x428cb780,
+ 0x70c80986,
+ 0xc0010d02,
+ 0xb7609096,
+ 0x0c064314,
+ 0xc1cc0802,
+ 0xd0100902,
+ 0x9e4419c4,
+ 0xc2009e5d,
+ 0x7942508c,
+ 0x9202c000,
+ 0x588bd124,
+ 0x3c80c400,
+ 0xc000b401,
+ 0x4220b104,
+ 0x30d29e55,
+ 0xb3217502,
+ 0x9e8a4822,
+ 0x0900c00c,
+ 0xffff0984,
+ 0xb5409101,
+ 0xf9f84314,
+ 0x9c22aa9d,
+ 0x8502c200,
+ 0x9c89c037,
+ 0x9c80c171,
+ 0x9c80c817,
+ 0xa6059c22,
+ 0x430cb780,
+ 0x790a9e5d,
+ 0x9162c000,
+ 0x9bf0fff4,
+ 0x9bbefff4,
+ 0x430cb780,
+ 0xffff790a,
+ 0xb79f9324,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa61d9c22,
+ 0x8400c002,
+ 0xf2089e5d,
+ 0x7500aa21,
+ 0x9004c001,
+ 0x0cdac420,
+ 0xb4810a02,
+ 0xb101c000,
+ 0x1c844220,
+ 0xc000b481,
+ 0x4220b106,
+ 0xc000b481,
+ 0x4220b107,
+ 0xb481008f,
+ 0xb106c000,
+ 0xb4814240,
+ 0xb105c000,
+ 0xd1f14240,
+ 0x75162a6e,
+ 0x4622b40d,
+ 0xa921f208,
+ 0xc0007480,
+ 0xe09292c2,
+ 0x0dc28c80,
+ 0xc002098a,
+ 0xfff40d02,
+ 0xb7df9af4,
+ 0xb79f7cec,
+ 0xb7ff7c6c,
+ 0xb7df7d6c,
+ 0xb7bf7df4,
+ 0xf2087e74,
+ 0xc300a221,
+ 0xc00e5aa1,
+ 0x9ea92afc,
+ 0x55e40d86,
+ 0x9ba3fff4,
+ 0x68d1d312,
+ 0x0c80c1c0,
+ 0xb4c15c8b,
+ 0xd312c000,
+ 0xc1c06951,
+ 0x5d0b0d10,
+ 0xc000b4e2,
+ 0x68d1d312,
+ 0xc1c09e74,
+ 0x5c8b0ca0,
+ 0xc000b481,
+ 0x6951d312,
+ 0xc1c09e6c,
+ 0x5d0b0d30,
+ 0xc000b482,
+ 0x68d1d312,
+ 0xc1c00a02,
+ 0x5c8b0cc0,
+ 0x3c80c400,
+ 0xc000b481,
+ 0x4220b106,
+ 0x2b7ccfff,
+ 0x68d1d312,
+ 0x0cc0c1c0,
+ 0xb4c15c8b,
+ 0xb720c000,
+ 0x0a04430c,
+ 0x5214c200,
+ 0x3098000b,
+ 0x430cb520,
+ 0x7c6eb79f,
+ 0x7ceeb7bf,
+ 0x7d6eb7df,
+ 0x7deeb7ff,
+ 0x8c00c004,
+ 0xf8399c22,
+ 0xf011a205,
+ 0xc0000e30,
+ 0x0a04919c,
+ 0x0d869ea1,
+ 0x3d8855e4,
+ 0x9901c014,
+ 0xc0140d8a,
+ 0xf9f898fe,
+ 0x9c22aa1d,
+ 0xc801a605,
+ 0xc0100a42,
+ 0xd3f20a00,
+ 0xc0322ebe,
+ 0xb4810caa,
+ 0x08aac000,
+ 0xb4210cf4,
+ 0xb780c000,
+ 0xc0804c0c,
+ 0xf2080c92,
+ 0xb421a881,
+ 0xb780c000,
+ 0x0c884c0c,
+ 0xa889f208,
+ 0xc000b421,
+ 0x4c0cb780,
+ 0xf2080c84,
+ 0xb421a88d,
+ 0x0902c000,
+ 0xb4411c98,
+ 0xb780c000,
+ 0x0c904c0c,
+ 0xa885f208,
+ 0xc000b421,
+ 0x4c0cb7a0,
+ 0xc0140dd2,
+ 0xf20898b9,
+ 0x7008aa25,
+ 0x9344ffff,
+ 0x09820daa,
+ 0xc1210d06,
+ 0xfff40902,
+ 0xb76099da,
+ 0xc0214494,
+ 0x0d040d02,
+ 0xfff409c2,
+ 0xb76099c7,
+ 0x09c24494,
+ 0xfff40d06,
+ 0x0daa99c1,
+ 0x0d020982,
+ 0x0902c101,
+ 0x99c5fff4,
+ 0xc0140d92,
+ 0xf2089895,
+ 0x7008aa25,
+ 0x9344ffff,
+ 0xc0007740,
+ 0x0d8e90a2,
+ 0x9897c014,
+ 0xc0140d8a,
+ 0xb79f9894,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa60d9c22,
+ 0x0c8ec470,
+ 0xb4810a02,
+ 0xb101c000,
+ 0xb7804220,
+ 0xf2084c0c,
+ 0x1c8ca085,
+ 0xb4810a02,
+ 0xb105c000,
+ 0xd1f14220,
+ 0xb7802b5e,
+ 0x9ead4c0c,
+ 0x2e80cff0,
+ 0x5ea1c280,
+ 0xa281f208,
+ 0x5a9dc280,
+ 0x0c842a84,
+ 0xb4810a02,
+ 0xb101c000,
+ 0xb5204220,
+ 0x0c84440c,
+ 0xc000b481,
+ 0x4220b101,
+ 0x448cb520,
+ 0x0c8ec070,
+ 0xc000b481,
+ 0x1c8c0882,
+ 0xc000b421,
+ 0xb4810c90,
+ 0x1c8cc000,
+ 0xc000b421,
+ 0xb4810c84,
+ 0xb740c000,
+ 0xd3264e84,
+ 0x9e2d5908,
+ 0xaa4de030,
+ 0x9c629ea4,
+ 0x4c0cb780,
+ 0x85027740,
+ 0x0d829ea9,
+ 0x0db2d001,
+ 0xa10ff208,
+ 0xfff42596,
+ 0x0a069b3f,
+ 0x0c82c070,
+ 0xc000b481,
+ 0xb79f000d,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0xc1809c22,
+ 0xc0905c88,
+ 0x5c890c80,
+ 0x3c80c400,
+ 0xb4810a02,
+ 0xb101c000,
+ 0xf0084220,
+ 0x5d88a0e1,
+ 0x0d80c090,
+ 0xb4835d89,
+ 0x9c22c000,
+ 0xc000b463,
+ 0xf8129c22,
+ 0x9c22a062,
+ 0x0d80c200,
+ 0x9e595d89,
+ 0xc4000982,
+ 0xb4633d80,
+ 0xb203c000,
+ 0x00074620,
+ 0xc1279c22,
+ 0x9c229c8f,
+ 0xb971080a,
+ 0xc01756f1,
+ 0xc0719c81,
+ 0xc0179c80,
+ 0xb9609c80,
+ 0x9c224000,
+ 0x9280ffff,
+ 0x01c69e5c,
+ 0x5889d1a4,
+ 0xc4000882,
+ 0xb4213c80,
+ 0xb104c000,
+ 0x22444220,
+ 0x71069e53,
+ 0x9324ffff,
+ 0x9e989c22,
+ 0x09020802,
+ 0x9140c000,
+ 0x08029e98,
+ 0x4530d010,
+ 0x72c0cc14,
+ 0x7200c014,
+ 0xc18072c0,
+ 0xe0095d09,
+ 0xf0127204,
+ 0xc0005d04,
+ 0x72c49254,
+ 0x0804d004,
+ 0x15b4d024,
+ 0xd00472c0,
+ 0xd0240802,
+ 0xe00015b0,
+ 0x11813124,
+ 0x442ab330,
+ 0x72c09c22,
+ 0xffff0886,
+ 0xc40293a6,
+ 0xd06572c0,
+ 0xd0652c9e,
+ 0xc8023c9e,
+ 0xd0657200,
+ 0xd0652d2e,
+ 0xe0003d2e,
+ 0x9e531514,
+ 0x5408d01a,
+ 0x50acd01a,
+ 0xd01472c0,
+ 0xd0240002,
+ 0xe08015b0,
+ 0x5c055885,
+ 0x9304ffff,
+ 0x3124e000,
+ 0xb3301181,
+ 0x9c22442a,
+ 0x87c2c809,
+ 0x0c20b060,
+ 0x87c2c809,
+ 0x0a60b060,
+ 0x87c2c809,
+ 0x09c0b060,
+};
+
+unsigned long aui32JPEG_MasterMTXTOPAZFWData[] = {
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x809000b0,
+ 0x80900394,
+ 0x82881a34,
+ 0x82881984,
+ 0x82881994,
+ 0x828819b8,
+ 0x828819d8,
+ 0x828819c8,
+ 0x82881a00,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x809026bc,
+ 0x809026bc,
+ 0x809026bc,
+ 0x809026bc,
+ 0x809026bc,
+ 0x809026bc,
+ 0x809026bc,
+ 0x80900764,
+ 0x80900888,
+ 0x80901e40,
+ 0x809021a4,
+ 0x809026bc,
+ 0x00000000,
+ 0x00000000,
+ 0xa0101100,
+ 0xa01001b0,
+ 0xa0101102,
+ 0xa01001b2,
+ 0xa0101104,
+ 0xa0100124,
+ 0xa0101106,
+ 0xa0100126,
+ 0xa0100134,
+ 0x00000000,
+ 0xa0101120,
+ 0xa0100136,
+ 0xa0101122,
+ 0xa0100144,
+ 0x80101160,
+ 0x80101162,
+ 0x80101180,
+ 0x80101182,
+ 0x80100140,
+ 0x80100142,
+ 0x80100150,
+ 0x80100152,
+ 0x80100154,
+ 0x80100146,
+ 0x803003a0,
+ 0x80100100,
+ 0x80105156,
+ 0xa0101164,
+ 0xa0100184,
+ 0x80101194,
+ 0x801001b4,
+ 0x80100146,
+ 0x00000000,
+ 0x00000000,
+ 0x1234baac,
+ 0x00000000,
+ 0x01080801,
+ 0x00000020,
+ 0x00000028,
+ 0x01080802,
+ 0x00000028,
+ 0x00000028,
+ 0x01080803,
+ 0x00000030,
+ 0x00000028,
+ 0x01080804,
+ 0x00000038,
+ 0x00000028,
+ 0x01080805,
+ 0x00000020,
+ 0x00000030,
+ 0x01080806,
+ 0x00000028,
+ 0x00000030,
+ 0x01080807,
+ 0x00000030,
+ 0x00000030,
+ 0x01080808,
+ 0x00000038,
+ 0x00000030,
+ 0x01080809,
+ 0x00000030,
+ 0x00000038,
+ 0x0108080a,
+ 0x00000038,
+ 0x00000038,
+ 0x0020401a,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+};
+
+unsigned long aui32JPEG_MasterMTXTOPAZFWTextReloc[] = {
+ 0
+};
+
+unsigned char aui8JPEG_MasterMTXTOPAZFWTextRelocType[] = {
+ 0
+};
+
+unsigned long aui32JPEG_MasterMTXTOPAZFWTextRelocFullAddr[] = {
+ 0
+};
+
+unsigned long aui32JPEG_MasterMTXTOPAZFWDataReloc[] = {
+ 0
+};
diff --git a/fw/JPEGMasterFirmware_bin.h b/fw/JPEGMasterFirmware_bin.h
new file mode 100644
index 0000000..111c02f
--- /dev/null
+++ b/fw/JPEGMasterFirmware_bin.h
@@ -0,0 +1,44 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+
+// This file was automatically generated from ../release/JPEGMasterFirmware.dnl using dnl2c.
+
+extern unsigned long aui32JPEG_MasterMTXTOPAZFWText[];
+extern unsigned long ui32JPEG_MasterMTXTOPAZFWTextSize;
+
+extern unsigned long aui32JPEG_MasterMTXTOPAZFWData[];
+extern unsigned long ui32JPEG_MasterMTXTOPAZFWDataSize;
+
+extern unsigned long aui32JPEG_MasterMTXTOPAZFWTextReloc[];
+extern unsigned char aui8JPEG_MasterMTXTOPAZFWTextRelocType[];
+extern unsigned long aui32JPEG_MasterMTXTOPAZFWTextRelocFullAddr[];
+
+extern unsigned long aui32JPEG_MasterMTXTOPAZFWDataReloc[];
+extern unsigned long ui32JPEG_MasterMTXTOPAZFWDataRelocSize;
+
+extern unsigned long ui32JPEG_MasterMTXTOPAZFWTextOrigin;
+extern unsigned long ui32JPEG_MasterMTXTOPAZFWDataOrigin;
+
diff --git a/fw/JPEGSlaveFirmware_bin.c b/fw/JPEGSlaveFirmware_bin.c
new file mode 100644
index 0000000..28f8289
--- /dev/null
+++ b/fw/JPEGSlaveFirmware_bin.c
@@ -0,0 +1,1768 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+
+// This file was automatically generated from ../release/JPEGSlaveFirmware.dnl using dnl2c.
+
+unsigned char *szJPEGSlaveFirmware_buildtag = "BUILD_TOPAZ_SC_1_00_00_0318";
+
+unsigned long ui32JPEG_SlaveMTXTOPAZFWTextSize = 1469;
+unsigned long ui32JPEG_SlaveMTXTOPAZFWDataSize = 240;
+unsigned long ui32JPEG_SlaveMTXTOPAZFWTextRelocSize = 0;
+unsigned long ui32JPEG_SlaveMTXTOPAZFWDataRelocSize = 0;
+
+unsigned long ui32JPEG_SlaveMTXTOPAZFWTextOrigin = 0x80900000;
+unsigned long ui32JPEG_SlaveMTXTOPAZFWDataOrigin = 0x82881700;
+
+unsigned long aui32JPEG_SlaveMTXTOPAZFWText[] = {
+ 0x9040c001,
+ 0xc80993fe,
+ 0xc0000e42,
+ 0xc8290e00,
+ 0xc1ac8422,
+ 0xc8298400,
+ 0xc1708622,
+ 0x9e838600,
+ 0xc8099e43,
+ 0xc2dc0d42,
+ 0xc8090d20,
+ 0xc2dc0942,
+ 0xc8090960,
+ 0xc00a0e42,
+ 0xc8090e40,
+ 0xc00e87c2,
+ 0x9c1887d0,
+ 0x0c020802,
+ 0x09820d82,
+ 0x09020d02,
+ 0x08820c82,
+ 0x9320fffe,
+ 0xa401c838,
+ 0x0dc2c809,
+ 0x0de0c2da,
+ 0x0e42c809,
+ 0x0b46b080,
+ 0x7e74b77f,
+ 0xa48d0882,
+ 0xffff9ff3,
+ 0x9d1393e0,
+ 0xf8398081,
+ 0x0707a205,
+ 0x06850307,
+ 0x03839e97,
+ 0x0fa0060f,
+ 0x018d058d,
+ 0x9c62008f,
+ 0x9340ffff,
+ 0x0ea0060b,
+ 0xffff9c62,
+ 0x058d93a0,
+ 0xb700018d,
+ 0xb7804b0c,
+ 0x9c014a94,
+ 0x0687a605,
+ 0x0ea0060b,
+ 0xffff9c62,
+ 0xf9f893a0,
+ 0xf9f8aa9d,
+ 0x9c22aa1d,
+ 0x0deacaba,
+ 0x0de8cabb,
+ 0xb7009e58,
+ 0x9c024a94,
+ 0xa6059c22,
+ 0x0e860a82,
+ 0xc0540d82,
+ 0xc0549a8c,
+ 0x0d8a991c,
+ 0x9a87c054,
+ 0x6508b782,
+ 0xc0007500,
+ 0xc0549082,
+ 0xc0549a0b,
+ 0x74029990,
+ 0xb3549e6c,
+ 0x02894424,
+ 0x9912c054,
+ 0xffff7540,
+ 0xb79f90e2,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0x87029c22,
+ 0xb5428502,
+ 0xb5425c18,
+ 0xb5425c98,
+ 0xb5425d18,
+ 0xb5426018,
+ 0xb5426098,
+ 0xb5426118,
+ 0xb5426518,
+ 0xb5426598,
+ 0xb5426618,
+ 0xb5406918,
+ 0xb5404504,
+ 0xb5404584,
+ 0xb5404604,
+ 0xb5404684,
+ 0xb5404704,
+ 0xb5404784,
+ 0xb5404804,
+ 0xb5404884,
+ 0xb5404202,
+ 0xb5404282,
+ 0xb5404984,
+ 0xb5406784,
+ 0xb5404904,
+ 0x9c224302,
+ 0x8420a605,
+ 0x9ba6fff4,
+ 0xc0540d8a,
+ 0xfff49a34,
+ 0xc0549bc6,
+ 0xc4209a3f,
+ 0x0a020cd2,
+ 0xc000b481,
+ 0x4220b105,
+ 0xe0310d8a,
+ 0xc0548d80,
+ 0xc829999a,
+ 0xc1a20922,
+ 0xb73f0940,
+ 0xd0717f6c,
+ 0xb5802a5e,
+ 0xc01e428c,
+ 0x85022a80,
+ 0xa8c2f008,
+ 0xc2807102,
+ 0xb5a05a95,
+ 0xb341438c,
+ 0x76404434,
+ 0x431cb540,
+ 0x420cb520,
+ 0x90c2c000,
+ 0x0e12d011,
+ 0xa241f008,
+ 0x4b8cb780,
+ 0x08c2c807,
+ 0x0880c570,
+ 0x0caac032,
+ 0x4a0cb580,
+ 0xc000b421,
+ 0x0cf40a2a,
+ 0xc000b481,
+ 0x09021a28,
+ 0x08bac002,
+ 0x4078b960,
+ 0x0a00c200,
+ 0x588bd224,
+ 0xc000b441,
+ 0x0a11ce00,
+ 0x9301ffff,
+ 0x1884e000,
+ 0x9244ffff,
+ 0x0a42c807,
+ 0x0a00c576,
+ 0x0caac032,
+ 0xc000b481,
+ 0x08820a02,
+ 0x08840902,
+ 0x4078b960,
+ 0x0a00c200,
+ 0x588bd224,
+ 0xc000b441,
+ 0x0a11ce00,
+ 0x9301ffff,
+ 0x745ac004,
+ 0x923cffff,
+ 0xc0340a02,
+ 0xb4810c9e,
+ 0xfff4c000,
+ 0x08029b2c,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x9c228c60,
+ 0x0a42c807,
+ 0x0a00c370,
+ 0x0ceac032,
+ 0xc000b481,
+ 0x08c2c801,
+ 0x08d0c016,
+ 0xb4211cbc,
+ 0xcd04c000,
+ 0x0c840a01,
+ 0xc000b481,
+ 0x0880cf02,
+ 0xb4210c8c,
+ 0xc801c000,
+ 0xcf180a42,
+ 0x1c840a58,
+ 0xc000b481,
+ 0x08c2c803,
+ 0x0890c038,
+ 0xb4211c84,
+ 0xca01c000,
+ 0xc0040a02,
+ 0x1cb00a50,
+ 0xc000b481,
+ 0x0882ca01,
+ 0x08d4c004,
+ 0xb4210c84,
+ 0x0a08c000,
+ 0xb4810c84,
+ 0x0888c000,
+ 0xb4210c84,
+ 0x0a38c000,
+ 0xb4810c84,
+ 0x08b8c000,
+ 0xb4210c84,
+ 0x0a08c000,
+ 0xb4810c84,
+ 0x0888c000,
+ 0xb4210c84,
+ 0x0a40c000,
+ 0xb4810c84,
+ 0x08c0c000,
+ 0xb4210c84,
+ 0x9c22c000,
+ 0xc0029e5c,
+ 0xe3108502,
+ 0xc03288a1,
+ 0xc2000cea,
+ 0xc00e5a04,
+ 0x588d2a40,
+ 0x58b01884,
+ 0x2880cf00,
+ 0x3880c070,
+ 0xc8073242,
+ 0xb4813a40,
+ 0x9c22c000,
+ 0xc008a605,
+ 0xb7a08400,
+ 0xfff4440c,
+ 0xe2129b8d,
+ 0xc0048c80,
+ 0x098a0d82,
+ 0x0d02c008,
+ 0xc034010b,
+ 0x0a029b3d,
+ 0x0c8ac030,
+ 0xc000b481,
+ 0x8d80e214,
+ 0x8d00e114,
+ 0xd1260902,
+ 0x9e3d5908,
+ 0xe0309dc7,
+ 0xc0e8aa4d,
+ 0x5c8b0cc0,
+ 0xc000b481,
+ 0x5908d126,
+ 0x9dc79e2d,
+ 0xa8cde030,
+ 0x0cc0c0ec,
+ 0xb4215c8b,
+ 0xd011c000,
+ 0xd3f10a22,
+ 0x749e294e,
+ 0x90b4ffff,
+ 0x776eb79f,
+ 0x77eeb7bf,
+ 0x8c40c008,
+ 0x0a029c22,
+ 0x0c8ec03a,
+ 0xc000b481,
+ 0x1c840882,
+ 0xc000b421,
+ 0xf8399c22,
+ 0xfff4a205,
+ 0x0d829bf4,
+ 0xaa1df9f8,
+ 0x9300fffc,
+ 0x8460a61d,
+ 0xb55f0c02,
+ 0xf0107df4,
+ 0xb55fa042,
+ 0xf0087e6c,
+ 0x0387a042,
+ 0xa062f208,
+ 0x7d74b57f,
+ 0xa062f010,
+ 0xd2500703,
+ 0x7500aa51,
+ 0x9102c005,
+ 0x4e94b7e0,
+ 0xaa65f210,
+ 0x0a829e40,
+ 0xd0927008,
+ 0xb53f1cf8,
+ 0xc0037ef4,
+ 0x0b0691e8,
+ 0x7eecb79f,
+ 0xa905f208,
+ 0xa94bf210,
+ 0x4e14b7a0,
+ 0xaa45f210,
+ 0x61d4d032,
+ 0xa920f212,
+ 0x8120c301,
+ 0x80aff220,
+ 0x83a3e120,
+ 0x0d2209a2,
+ 0x08820c82,
+ 0x7f74b51f,
+ 0x9a7ec034,
+ 0xaa61f208,
+ 0xf2080a04,
+ 0xb71fa261,
+ 0xb71f7d6c,
+ 0xb7207f74,
+ 0x9e42402c,
+ 0x5248c200,
+ 0xb5203098,
+ 0xf210402c,
+ 0xf210aa45,
+ 0x0a20a8e9,
+ 0x0c047102,
+ 0x91c8c000,
+ 0xa943f210,
+ 0xaa6df210,
+ 0x80a3e310,
+ 0xd0327048,
+ 0xb3510cd0,
+ 0x06834848,
+ 0x4e0cb700,
+ 0x403cb740,
+ 0x7eecb79f,
+ 0x0d2209a2,
+ 0x81abe320,
+ 0xa905f208,
+ 0x08820c82,
+ 0x7f74b51f,
+ 0x9a64c034,
+ 0xaa61f208,
+ 0xf2080a04,
+ 0xb73fa261,
+ 0xb71f7d74,
+ 0xb7207f74,
+ 0x9e42404d,
+ 0x5248c200,
+ 0xb5203098,
+ 0xf210404d,
+ 0x0aa0aa65,
+ 0x0c047148,
+ 0x92c6fffc,
+ 0xa947f210,
+ 0xaa61f210,
+ 0x8021f310,
+ 0xa245f210,
+ 0xa8e9f210,
+ 0xc0017102,
+ 0x87029026,
+ 0xa943f210,
+ 0xa144f212,
+ 0xaa65f210,
+ 0x8021f310,
+ 0xa241f210,
+ 0xa8edf210,
+ 0xc0007102,
+ 0xd2529086,
+ 0xb7bfa150,
+ 0xf2107ef4,
+ 0xf210aa65,
+ 0xf210a8a5,
+ 0x6243a94b,
+ 0x8021f310,
+ 0xa249f210,
+ 0x0f60d051,
+ 0xaa51d248,
+ 0xc0037500,
+ 0xb71f9262,
+ 0xb7e07e6c,
+ 0xf20a4f94,
+ 0xf208a948,
+ 0xb720aa61,
+ 0xf208402c,
+ 0x0a86a9c6,
+ 0x5230c200,
+ 0xb5203098,
+ 0xb75f402c,
+ 0xf2087dec,
+ 0xd0b2aa61,
+ 0xf0081ef0,
+ 0xb5bfa8c1,
+ 0xc2007ef4,
+ 0xc2005a04,
+ 0x30985230,
+ 0xa0c1f008,
+ 0xa97bf390,
+ 0xa925f210,
+ 0x82a7f020,
+ 0x81abe320,
+ 0x0d2209a2,
+ 0x08820c82,
+ 0x7f74b51f,
+ 0x99c8c034,
+ 0xaa61f208,
+ 0xf2080a04,
+ 0xb71fa261,
+ 0xb71f7d6c,
+ 0xb7207f74,
+ 0x9e42402c,
+ 0x52a8c200,
+ 0xb520309a,
+ 0xf208402c,
+ 0xf210a947,
+ 0xf310aa61,
+ 0xf2088021,
+ 0xf210a245,
+ 0x7102a8e9,
+ 0xc0010c04,
+ 0x87029026,
+ 0xa943f208,
+ 0xa144f20a,
+ 0xaa65f210,
+ 0x8021f310,
+ 0xa241f208,
+ 0xa8edf210,
+ 0xc0007102,
+ 0xd24a9086,
+ 0xb7bfa150,
+ 0xf2107ef4,
+ 0xf210aa65,
+ 0xf208a8a5,
+ 0x6243a94b,
+ 0x8021f310,
+ 0xa249f208,
+ 0x0f60d091,
+ 0xaa51d248,
+ 0xc0037500,
+ 0xb71f9242,
+ 0xb7e07e6c,
+ 0xf20a4f14,
+ 0xf208a948,
+ 0xb720aa61,
+ 0xf208402c,
+ 0x0a86a9c6,
+ 0x5230c200,
+ 0xb5203098,
+ 0xb71f402c,
+ 0xd0b27dec,
+ 0xf2081ef8,
+ 0xb5bfa961,
+ 0xb7207ef4,
+ 0x0a0a402c,
+ 0xc2005904,
+ 0x30985208,
+ 0x402cb520,
+ 0xa977f390,
+ 0xa925f210,
+ 0x82a7f020,
+ 0x81abe320,
+ 0x0d2209a2,
+ 0x08820c82,
+ 0x7f74b51f,
+ 0x996ec034,
+ 0xaa61f208,
+ 0xf2080a04,
+ 0xb73fa261,
+ 0xb71f7d74,
+ 0xb7207f74,
+ 0x9e42404d,
+ 0x52a8c200,
+ 0xb520309a,
+ 0xf208404d,
+ 0xf210a947,
+ 0xf310aa61,
+ 0xf2088021,
+ 0xf210a245,
+ 0x7102a8e9,
+ 0x9026c001,
+ 0xf2088702,
+ 0xf20aa943,
+ 0xf210a144,
+ 0xf310aa65,
+ 0xf2088021,
+ 0xf210a241,
+ 0x7102a8ed,
+ 0x9086c000,
+ 0xa150d24a,
+ 0x7ef4b7bf,
+ 0xaa65f210,
+ 0xa8a5f210,
+ 0xa94bf208,
+ 0xf3106243,
+ 0xf2088021,
+ 0xb79fa249,
+ 0xb7bf7cee,
+ 0xb7df7d6e,
+ 0xb7ff7dee,
+ 0xc0027e6e,
+ 0x9c228c60,
+ 0x8420a61d,
+ 0x9e9f8502,
+ 0x9e4e9e5f,
+ 0x4e9cb760,
+ 0x02850685,
+ 0xa123f210,
+ 0xa123f208,
+ 0xa163f210,
+ 0xa163f208,
+ 0xa94bf208,
+ 0xf2089dfb,
+ 0xf3b2aa45,
+ 0xc002a95c,
+ 0x0d220982,
+ 0x8120c301,
+ 0x83ade220,
+ 0xa945f210,
+ 0x08820c82,
+ 0x7f7cb57f,
+ 0x98c2c034,
+ 0xf2088532,
+ 0xc008a123,
+ 0xf2108510,
+ 0xb77fa123,
+ 0xaa617f7c,
+ 0xa947f208,
+ 0x5a04c200,
+ 0x8021f310,
+ 0xa245f208,
+ 0x7102a8e9,
+ 0xc0000a82,
+ 0xf2089366,
+ 0xf208a943,
+ 0xaa65a2c5,
+ 0x8021f310,
+ 0xa241f208,
+ 0x7102a8ed,
+ 0x9086c000,
+ 0xa2d1d248,
+ 0xf210aa65,
+ 0xf208a8c5,
+ 0x6243a94b,
+ 0x8021f310,
+ 0xa249f208,
+ 0xf2108512,
+ 0x852ca163,
+ 0xa163f208,
+ 0x7deeb79f,
+ 0x7e6eb7bf,
+ 0x7eeeb7df,
+ 0x7f6eb7ff,
+ 0x8c20c002,
+ 0xa61d9c22,
+ 0xf2100705,
+ 0x0e82aa41,
+ 0x9e9f9e69,
+ 0xd3f17048,
+ 0xc0002fbe,
+ 0xc82993e8,
+ 0xc1a20a22,
+ 0xd0110a60,
+ 0xd0310b48,
+ 0xd2080ac0,
+ 0xd3c8a9c1,
+ 0xd208a9ae,
+ 0xc101a922,
+ 0xc0060902,
+ 0xc0340940,
+ 0xf2109851,
+ 0x0e88aa41,
+ 0x70489e69,
+ 0x0ae00b60,
+ 0x91a6ffff,
+ 0xc00075c0,
+ 0x850691c2,
+ 0xa163d210,
+ 0xc0400a02,
+ 0xb4810c82,
+ 0xc1c1c000,
+ 0xb4210882,
+ 0xb79fc000,
+ 0xb7bf7e6e,
+ 0xb7df7eee,
+ 0xb7ff7f6e,
+ 0xc0027fee,
+ 0x9c228c00,
+ 0x8420a61d,
+ 0x0a22c829,
+ 0x0a60c1a2,
+ 0x9e959e57,
+ 0x0b48d012,
+ 0x7f6cb57f,
+ 0x2fbed3f2,
+ 0xd0310b02,
+ 0xd3c80ac0,
+ 0xd210a9ae,
+ 0xd208a9c1,
+ 0xc101a922,
+ 0xc0060902,
+ 0xc2800940,
+ 0xc0345e89,
+ 0xd011980f,
+ 0x0f602e52,
+ 0x0ae07500,
+ 0xffff0b08,
+ 0xf2089182,
+ 0x7188aa61,
+ 0x9088c001,
+ 0x6a69d031,
+ 0x08a2c829,
+ 0x08e0c1a2,
+ 0x0948d013,
+ 0x80a3f220,
+ 0x0940d033,
+ 0x80a3f210,
+ 0xa9aed3c8,
+ 0xa9a1d210,
+ 0xa922d208,
+ 0x0902c101,
+ 0x0940c086,
+ 0x9be8c014,
+ 0xaa61f208,
+ 0x71880b08,
+ 0x0ae00ee0,
+ 0x91c6ffff,
+ 0xc00077c0,
+ 0xb79f9202,
+ 0x85067f6c,
+ 0xa103d208,
+ 0xc0400a02,
+ 0xb4810c82,
+ 0xc1c1c000,
+ 0xb4210882,
+ 0xb79fc000,
+ 0xb7bf7dee,
+ 0xb7df7e6e,
+ 0xb7ff7eee,
+ 0xc0027f6e,
+ 0x9c228c20,
+ 0xc829a605,
+ 0xc1a20a22,
+ 0x9e5d0a60,
+ 0xd2089e9d,
+ 0xd208a98e,
+ 0xd248a991,
+ 0xc101a902,
+ 0xc1060902,
+ 0xc00e0948,
+ 0xc0142afc,
+ 0x75409baf,
+ 0x91c2c000,
+ 0xd2108506,
+ 0x0a02a123,
+ 0x0c82c040,
+ 0xc000b481,
+ 0x0882c1c1,
+ 0xc000b421,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0x0687a605,
+ 0x0d220992,
+ 0xc0340922,
+ 0x0a229a07,
+ 0xc2800eb0,
+ 0xb4855e89,
+ 0xb79fc000,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa6059c22,
+ 0x09920687,
+ 0x0d02c008,
+ 0x0902c008,
+ 0x99f2c034,
+ 0x0a02c008,
+ 0xc2800eb0,
+ 0xb4855e89,
+ 0xb79fc000,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa6059c22,
+ 0x09920687,
+ 0x0d22c008,
+ 0x0922c008,
+ 0x99dcc034,
+ 0x0a22c008,
+ 0xc2800eb0,
+ 0xb4855e89,
+ 0xb79fc000,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa61d9c22,
+ 0x8440c002,
+ 0x0c028502,
+ 0x7af4b51f,
+ 0x7b74b51f,
+ 0x7bf4b51f,
+ 0x7c74b51f,
+ 0x0fb0f012,
+ 0x7cecb57f,
+ 0x7d74b55f,
+ 0x7decb55f,
+ 0x6878b55f,
+ 0x90a2c001,
+ 0x8d88f0b1,
+ 0x4e14b7a0,
+ 0x8d00e0b3,
+ 0xf0919d47,
+ 0xf0918d08,
+ 0x9ebb8c80,
+ 0x7df4b7df,
+ 0x7ffcb55f,
+ 0x9eb20183,
+ 0xaa21f2d0,
+ 0x048d010b,
+ 0x7e74b51f,
+ 0x9c629ea4,
+ 0x7ff4b73f,
+ 0x7e74b71f,
+ 0x030b038d,
+ 0xc0000703,
+ 0x0d8690a0,
+ 0x9aeaffd4,
+ 0x7b6cb79f,
+ 0x0c82c03a,
+ 0xc2001a04,
+ 0xc00f5a50,
+ 0x3a0c2a40,
+ 0xc000b481,
+ 0x7becb73f,
+ 0xb4210c84,
+ 0xc00ac000,
+ 0xc0080a62,
+ 0xb4811cf8,
+ 0xb7a0c000,
+ 0xb75f4e14,
+ 0xe0d17c6c,
+ 0xf2d08d80,
+ 0x0d86aa25,
+ 0xb51f050d,
+ 0x9ea47e74,
+ 0xc0c09c62,
+ 0xc0140d82,
+ 0xb75f9bd1,
+ 0xb75f7d7c,
+ 0xaa417ce4,
+ 0x0cf2c050,
+ 0xb55f8502,
+ 0xf3106878,
+ 0xb4818221,
+ 0x0882c000,
+ 0xb4211cf0,
+ 0x0a22c000,
+ 0x0c96c030,
+ 0xc000b481,
+ 0x7c6cb73f,
+ 0x7b6cb7bf,
+ 0xb71f9e7c,
+ 0x75007e74,
+ 0xb53f1f84,
+ 0xc0007f6c,
+ 0xf2d09202,
+ 0xb7bfaa21,
+ 0xe0b27df4,
+ 0x9e738d88,
+ 0x010d9eba,
+ 0x9ea4048b,
+ 0xb71f9c62,
+ 0xc0c07e74,
+ 0xb51f0d82,
+ 0xfff47e74,
+ 0xb73f9b23,
+ 0xc0507f6c,
+ 0xc0800cce,
+ 0xcff05a20,
+ 0xd0112a00,
+ 0x289c18d2,
+ 0xb4213098,
+ 0x77c0c000,
+ 0x7e74b71f,
+ 0x9382c002,
+ 0x0aa2c008,
+ 0x4e14b720,
+ 0x7c6cb75f,
+ 0x8d80e0d1,
+ 0x4ccdb720,
+ 0x050d0d86,
+ 0x7e74b51f,
+ 0x9c629e8c,
+ 0x6868b79f,
+ 0xb71f7500,
+ 0xc0007e74,
+ 0xc0c09162,
+ 0xc0140d82,
+ 0xb71f9b6b,
+ 0x85027e74,
+ 0x6878b55f,
+ 0x0c8ec030,
+ 0xc000b4a1,
+ 0x0d16c030,
+ 0xc000b4a2,
+ 0x7d6cb79f,
+ 0xa903f208,
+ 0x7d74b7bf,
+ 0x1f84e000,
+ 0x8029f210,
+ 0xa221f210,
+ 0x9202c000,
+ 0x4e1cb740,
+ 0x7df4b71f,
+ 0x8d88e0b2,
+ 0x9eba9e73,
+ 0xaa41f0d8,
+ 0x0481010d,
+ 0x9c629ea4,
+ 0x0d82c0c0,
+ 0x9af1fff4,
+ 0xc0340a3a,
+ 0xb4820d1e,
+ 0xc450c000,
+ 0x1a380c8a,
+ 0xc000b481,
+ 0x4240b100,
+ 0x2c7cc00e,
+ 0x5c1077c0,
+ 0x9144fffd,
+ 0x0a02c00a,
+ 0x0c8ec030,
+ 0xc000b481,
+ 0x0882c008,
+ 0xb4210c88,
+ 0xb73fc000,
+ 0xb7407d6c,
+ 0xb73f403d,
+ 0xf2107c74,
+ 0xb7bf8029,
+ 0xc0c07b6c,
+ 0xb53f0d82,
+ 0xb5807f74,
+ 0xfff4402d,
+ 0x0a3a9aac,
+ 0x0d1ec034,
+ 0xc000b482,
+ 0x0c8ac450,
+ 0xb4811a38,
+ 0xb100c000,
+ 0xc00e4240,
+ 0x5c102c7c,
+ 0x0a20c008,
+ 0x1d10c004,
+ 0xc000b482,
+ 0xc0081c88,
+ 0xb4811a20,
+ 0xb101c000,
+ 0xd0d14220,
+ 0xcffc3a10,
+ 0x309828fd,
+ 0x0c82c050,
+ 0xc000b421,
+ 0x7f6cb79f,
+ 0xc2000ccc,
+ 0xcff05920,
+ 0xd0112900,
+ 0x2a1c1a52,
+ 0xb4813244,
+ 0xb7bfc000,
+ 0xf2107d74,
+ 0xf210a923,
+ 0xc0c08029,
+ 0xf2100d82,
+ 0xfff4a221,
+ 0x0a3a9a6e,
+ 0x0d1ec034,
+ 0xc000b482,
+ 0x0c8ac450,
+ 0xb4811a38,
+ 0xb100c000,
+ 0xc00e4240,
+ 0xf2102c7c,
+ 0x5c10a923,
+ 0x8029f210,
+ 0xa221f210,
+ 0x7b6eb79f,
+ 0x7beeb7bf,
+ 0x7c6eb7df,
+ 0x7ceeb7ff,
+ 0x8c40c004,
+ 0xa61d9c22,
+ 0xb7208460,
+ 0xb7804e14,
+ 0x08824acd,
+ 0xb57f7048,
+ 0xb57f7d74,
+ 0xc0027dec,
+ 0x07839188,
+ 0x9e998702,
+ 0x7e64b55f,
+ 0xd0930703,
+ 0xc0800d78,
+ 0x9d4b5b90,
+ 0x0d78d0b3,
+ 0xab65e220,
+ 0xe2209d4b,
+ 0xb75faa65,
+ 0xd0327d6c,
+ 0x024c62ac,
+ 0x19c2d012,
+ 0x7f6cb53f,
+ 0xc034018d,
+ 0x628d982c,
+ 0xa2caf210,
+ 0x018b058b,
+ 0x9825c034,
+ 0xd0b3628b,
+ 0x9e6c0d70,
+ 0xf2109d4b,
+ 0x12caa041,
+ 0xa2c5f210,
+ 0xaa65e220,
+ 0xf2106009,
+ 0xb77fa041,
+ 0xd0137e7c,
+ 0xe0200d78,
+ 0x9e3aaa6d,
+ 0xf2106009,
+ 0xb73fa049,
+ 0xf2907f6c,
+ 0x8730aa75,
+ 0x70480884,
+ 0x7e64b55f,
+ 0xfffd0f40,
+ 0xb77f93c6,
+ 0x85067dfc,
+ 0xa173d058,
+ 0x7ceeb79f,
+ 0x7d6eb7bf,
+ 0x7deeb7df,
+ 0x7e6eb7ff,
+ 0x8c60c002,
+ 0xa61d9c22,
+ 0x4e0cb7e0,
+ 0xa967f208,
+ 0xaae6f248,
+ 0x9e9e9e5e,
+ 0x812ac301,
+ 0x81abe320,
+ 0x5d84d2a2,
+ 0xc0141d84,
+ 0x9e6c9bde,
+ 0xc0006369,
+ 0x62d95a84,
+ 0x5a84d324,
+ 0xf210018b,
+ 0x058ba2ca,
+ 0x9bd1c014,
+ 0x9e6c628b,
+ 0xa041f210,
+ 0xf21012ca,
+ 0xf248a2c5,
+ 0x6009aa69,
+ 0xa041f210,
+ 0xaa65f208,
+ 0x85066009,
+ 0xa153d250,
+ 0xa049f210,
+ 0x7e6eb79f,
+ 0x7eeeb7bf,
+ 0x7f6eb7df,
+ 0x7feeb7ff,
+ 0x8c00c002,
+ 0xa60d9c22,
+ 0x8400c004,
+ 0x4414b7a0,
+ 0x8c80e112,
+ 0x0a029e6a,
+ 0x7f6cb59f,
+ 0x0d82c002,
+ 0x0d220986,
+ 0x9986c014,
+ 0x0caac432,
+ 0xb4810a02,
+ 0xb106c000,
+ 0xca014220,
+ 0xc0140a42,
+ 0xc0320a50,
+ 0xb4810c86,
+ 0xca01c000,
+ 0xc01408c2,
+ 0x0c8408d4,
+ 0xc000b421,
+ 0x4e0cb740,
+ 0xaa5df088,
+ 0xc0007506,
+ 0xca0191e4,
+ 0xc0140a42,
+ 0x0c840a5c,
+ 0xc000b481,
+ 0x0c840884,
+ 0xc000b421,
+ 0x9220c000,
+ 0x0a42ca01,
+ 0x0a58c014,
+ 0x0c8ec032,
+ 0xc000b481,
+ 0x08c2ca01,
+ 0x08dcc014,
+ 0xb4210c84,
+ 0xca01c000,
+ 0xc0160a42,
+ 0xc0320a10,
+ 0xb4810c96,
+ 0xca01c000,
+ 0xc01608c2,
+ 0x0c840894,
+ 0xc000b421,
+ 0x0c840a08,
+ 0xc000b481,
+ 0x0c840888,
+ 0xc000b421,
+ 0x0c840a40,
+ 0xc000b481,
+ 0x0c8408c0,
+ 0xc000b421,
+ 0x6268b79f,
+ 0x75002a04,
+ 0x8c80f0f1,
+ 0x9162c000,
+ 0x7874b77f,
+ 0xaa49f0c8,
+ 0x9ea4018b,
+ 0xffd49c62,
+ 0xd0519a10,
+ 0xc00a0dd0,
+ 0xc0300a62,
+ 0xb4810c8e,
+ 0xc801c000,
+ 0xc00a0882,
+ 0x1c8408a0,
+ 0xc000b421,
+ 0x78f4b77f,
+ 0x8d00e032,
+ 0x5d85010b,
+ 0x9943fff4,
+ 0x0a62c002,
+ 0x0c8ec030,
+ 0xc000b481,
+ 0x0882c801,
+ 0x1c8408c0,
+ 0xc000b421,
+ 0x1a2cc002,
+ 0x0c94c004,
+ 0xc000b481,
+ 0x7f6cb73f,
+ 0x0c82c080,
+ 0xc000b421,
+ 0xc0020dbe,
+ 0xc0040982,
+ 0xc1210d02,
+ 0xc0140902,
+ 0x058b987b,
+ 0x0d0609c2,
+ 0x0902c002,
+ 0x08860c86,
+ 0x9882c014,
+ 0x0d82c0c0,
+ 0x0d420992,
+ 0xc0140942,
+ 0xc0029adf,
+ 0xc0300a42,
+ 0xb4810c8e,
+ 0x0882c000,
+ 0xb4211c84,
+ 0xc032c000,
+ 0xb4c20d2a,
+ 0xb79fc000,
+ 0xb7bf7aee,
+ 0xb7df7b6e,
+ 0xc0047bee,
+ 0x9c228c60,
+ 0xb7a0a605,
+ 0x9ea94e0c,
+ 0x440cb740,
+ 0x099a0dc2,
+ 0x0d02c006,
+ 0x98b2c014,
+ 0xa8bef288,
+ 0xc0017642,
+ 0xc8099012,
+ 0xc0820a42,
+ 0xc8090a40,
+ 0xc1b208c2,
+ 0xf2c808b0,
+ 0xf2c8a221,
+ 0xc000a0a9,
+ 0xc8099144,
+ 0xc11c0a42,
+ 0xf2c80a00,
+ 0xc000a225,
+ 0xc8099380,
+ 0xc10a0a42,
+ 0xf2c80a50,
+ 0xc000a225,
+ 0xc8099280,
+ 0xc0f00a42,
+ 0xc8090a40,
+ 0xc1cc08c2,
+ 0xc80908b0,
+ 0xc1360cc2,
+ 0xf2c80ca0,
+ 0xf2c8a221,
+ 0xf2c8a0a9,
+ 0xb79fa0a6,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0x9e549c22,
+ 0x0c82c040,
+ 0xb4219e59,
+ 0xc040c000,
+ 0xb4820d02,
+ 0x9c22c000,
+ 0x2d7cc00e,
+ 0x29e0c00e,
+ 0x9e545d30,
+ 0x0c82c040,
+ 0xb46131b8,
+ 0xc040c000,
+ 0xb4420d02,
+ 0x9c22c000,
+ 0xc00e9e4c,
+ 0xc00e28fc,
+ 0xc0402a7c,
+ 0x9e580c82,
+ 0xc000b401,
+ 0x5a6cc200,
+ 0x324258e4,
+ 0x5d101d04,
+ 0x598d9e51,
+ 0xc0111984,
+ 0x32463980,
+ 0x1904590d,
+ 0x32425930,
+ 0xb4813244,
+ 0x9c22c000,
+ 0xc00e9e4c,
+ 0xc00e28fc,
+ 0xc0402a7c,
+ 0x9e580c82,
+ 0xc000b401,
+ 0x5a6cc200,
+ 0x324258e4,
+ 0x5d101d04,
+ 0x598d9e51,
+ 0xc0191984,
+ 0x32463980,
+ 0x1904590d,
+ 0x32425930,
+ 0xb4813244,
+ 0x9c22c000,
+ 0xc00e9e4c,
+ 0xc00e28fc,
+ 0xc0402a7c,
+ 0x9e580c82,
+ 0xc000b401,
+ 0x5a6cc200,
+ 0x324258e4,
+ 0x5d101d04,
+ 0x598d9e51,
+ 0xc01d1984,
+ 0x32463980,
+ 0x1904590d,
+ 0x32425930,
+ 0xb4813244,
+ 0x9c22c000,
+ 0x8420a60d,
+ 0x06870703,
+ 0x5c8dc280,
+ 0xd0a21c84,
+ 0x02875ca0,
+ 0x0a5ed011,
+ 0x5a0dc200,
+ 0xc2001a04,
+ 0x5cd05a30,
+ 0x9e4c3098,
+ 0xc0320405,
+ 0x30980c8a,
+ 0x3880c801,
+ 0xc000b421,
+ 0xc8019ea9,
+ 0xc0020a02,
+ 0x65530a00,
+ 0x0c8ac030,
+ 0xc000b481,
+ 0x0882c002,
+ 0xb4210c84,
+ 0x9e93c000,
+ 0x5f09d022,
+ 0x5d0d9e53,
+ 0xfff41d04,
+ 0xc2809b5a,
+ 0x1e845e91,
+ 0x5e84c280,
+ 0x1a849e6c,
+ 0x5a90c280,
+ 0x3a80c181,
+ 0x09820d8a,
+ 0x314a0d02,
+ 0x9b54fff4,
+ 0x0d82c0c0,
+ 0xc0020992,
+ 0xc0020d02,
+ 0xc0140902,
+ 0x0a0a99bf,
+ 0x0c9ec034,
+ 0xc000b481,
+ 0x75bf1b04,
+ 0xc0008502,
+ 0x9dcf9202,
+ 0x7f7cb55f,
+ 0x9992c014,
+ 0xa045f231,
+ 0x7f7cb75f,
+ 0x75bf1b04,
+ 0xffff8510,
+ 0xc0029284,
+ 0xc0300a42,
+ 0xb4810c8e,
+ 0xb79fc000,
+ 0xb7bf7e6e,
+ 0xb7df7eee,
+ 0xc0027f6e,
+ 0x9c228c00,
+ 0x0687a605,
+ 0xc0020992,
+ 0xc0020d02,
+ 0xc0140902,
+ 0xc002998f,
+ 0x0eb00a42,
+ 0x5e89c280,
+ 0xc000b485,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xc2009c22,
+ 0xc0378502,
+ 0xc1719c89,
+ 0xc8179c80,
+ 0x9c229c80,
+ 0xa205f839,
+ 0xc0140d9a,
+ 0x0d8a9962,
+ 0xaa1df9f8,
+ 0x93a0c00a,
+ 0xc801a605,
+ 0xc0100a42,
+ 0xd3f20a00,
+ 0xc0322ebe,
+ 0xb4810caa,
+ 0x08aac000,
+ 0xb4210cf4,
+ 0xb780c000,
+ 0xc0804c0c,
+ 0xf2080c92,
+ 0xb421a881,
+ 0xb780c000,
+ 0x0c884c0c,
+ 0xa889f208,
+ 0xc000b421,
+ 0x4c0cb780,
+ 0xf2080c84,
+ 0xb421a88d,
+ 0x0902c000,
+ 0xb4411c98,
+ 0xb780c000,
+ 0x0c904c0c,
+ 0xa885f208,
+ 0xc000b421,
+ 0x4c0cb7a0,
+ 0xc0140dd2,
+ 0xf208991b,
+ 0x7008aa25,
+ 0x9344ffff,
+ 0x09820daa,
+ 0xc1210d06,
+ 0xfff40902,
+ 0xb7609ab9,
+ 0xc0214494,
+ 0x0d040d02,
+ 0xfff409c2,
+ 0xb7609aa6,
+ 0x09c24494,
+ 0xfff40d06,
+ 0x0daa9aa0,
+ 0x0d020982,
+ 0x0902c101,
+ 0x9aa4fff4,
+ 0xc0140d92,
+ 0xf20898f7,
+ 0x7008aa25,
+ 0x9344ffff,
+ 0xc0007740,
+ 0x0d8e90a2,
+ 0x98f9c014,
+ 0xc0140d8a,
+ 0xb79f98f6,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa60d9c22,
+ 0x0c8ec470,
+ 0xb4810a02,
+ 0xb101c000,
+ 0xb7804220,
+ 0xf2084c0c,
+ 0x1c8ca085,
+ 0xb4810a02,
+ 0xb105c000,
+ 0xd1f14220,
+ 0xb7802b5e,
+ 0x9ead4c0c,
+ 0x2e80cff0,
+ 0x5ea1c280,
+ 0xa281f208,
+ 0x5a9dc280,
+ 0x0c842a84,
+ 0xb4810a02,
+ 0xb101c000,
+ 0xb5204220,
+ 0x0c84440c,
+ 0xc000b481,
+ 0x4220b101,
+ 0x448cb520,
+ 0x0c8ec070,
+ 0xc000b481,
+ 0x1c8c0882,
+ 0xc000b421,
+ 0xb4810c90,
+ 0x1c8cc000,
+ 0xc000b421,
+ 0xb4810c84,
+ 0xb740c000,
+ 0xd3265004,
+ 0x9e2d5908,
+ 0xaa4de030,
+ 0x9c629ea4,
+ 0x4c0cb780,
+ 0x85027740,
+ 0x0d829ea9,
+ 0x0db2d001,
+ 0xa10ff208,
+ 0xfff42596,
+ 0x0a069b3f,
+ 0x0c82c070,
+ 0xc000b481,
+ 0xb79f000d,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0xc1809c22,
+ 0xc0905c88,
+ 0x5c890c80,
+ 0x3c80c400,
+ 0xb4810a02,
+ 0xb101c000,
+ 0xf0084220,
+ 0x5d88a0e1,
+ 0x0d80c090,
+ 0xb4835d89,
+ 0x9c22c000,
+ 0x08828420,
+ 0x0c92c470,
+ 0xb4810a02,
+ 0xb102c000,
+ 0x01854220,
+ 0xc0010205,
+ 0x75002a04,
+ 0x9362c000,
+ 0x4d14b740,
+ 0xb9600902,
+ 0xc1c04070,
+ 0xd0a408e0,
+ 0xce3e5889,
+ 0xc40008a1,
+ 0xb4413c80,
+ 0xb104c000,
+ 0xf0314220,
+ 0x0890a245,
+ 0x9221ffff,
+ 0xcfff0107,
+ 0x0205297a,
+ 0x2a08c001,
+ 0xc0017500,
+ 0xb74091e2,
+ 0x09824d94,
+ 0x4048b960,
+ 0x08e0c1c0,
+ 0x5889d0a4,
+ 0x08a1ce3e,
+ 0x3c80c400,
+ 0xc000b461,
+ 0x4220b104,
+ 0xa245f031,
+ 0xffff0890,
+ 0xe0329221,
+ 0xc1c08d00,
+ 0xd0a408e0,
+ 0x0a025889,
+ 0x3c80c400,
+ 0xc000b481,
+ 0x4220b101,
+ 0xa0c1f010,
+ 0x7e72b73f,
+ 0x4c8cb780,
+ 0xa086dac8,
+ 0x2976cfff,
+ 0x0c92c070,
+ 0xc000b441,
+ 0x9c228c20,
+ 0xc000b463,
+ 0xf8129c22,
+ 0x9c22a062,
+ 0x0d80c200,
+ 0x9e595d89,
+ 0xc4000982,
+ 0xb4633d80,
+ 0xb203c000,
+ 0x00074620,
+ 0xc1279c22,
+ 0x9c229c8f,
+ 0xb971080a,
+ 0xc01756f1,
+ 0xc0719c81,
+ 0xc0179c80,
+ 0xb9609c80,
+ 0x9c224000,
+ 0x9280ffff,
+ 0x01c69e5c,
+ 0x5889d1a4,
+ 0xc4000882,
+ 0xb4213c80,
+ 0xb104c000,
+ 0x22444220,
+ 0x71069e53,
+ 0x9324ffff,
+ 0x9e989c22,
+ 0x09020802,
+ 0x9140c000,
+ 0x08029e98,
+ 0x4530d010,
+ 0x72c0cc14,
+ 0x7200c014,
+ 0xc18072c0,
+ 0xe0095d09,
+ 0xf0127204,
+ 0xc0005d04,
+ 0x72c49254,
+ 0x0804d004,
+ 0x15b4d024,
+ 0xd00472c0,
+ 0xd0240802,
+ 0xe00015b0,
+ 0x11813124,
+ 0x442ab330,
+ 0x72c09c22,
+ 0xffff0886,
+ 0xc40293a6,
+ 0xd06572c0,
+ 0xd0652c9e,
+ 0xc8023c9e,
+ 0xd0657200,
+ 0xd0652d2e,
+ 0xe0003d2e,
+ 0x9e531514,
+ 0x5408d01a,
+ 0x50acd01a,
+ 0xd01472c0,
+ 0xd0240002,
+ 0xe08015b0,
+ 0x5c055885,
+ 0x9304ffff,
+ 0x3124e000,
+ 0xb3301181,
+ 0x9c22442a,
+ 0x87c2c809,
+ 0x0c20b060,
+ 0x87c2c809,
+ 0x0a60b060,
+ 0x87c2c809,
+ 0x09c0b060,
+};
+
+unsigned long aui32JPEG_SlaveMTXTOPAZFWData[] = {
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x809000b0,
+ 0x80900318,
+ 0x828819a4,
+ 0x82881854,
+ 0x82881864,
+ 0x828818a0,
+ 0x828818dc,
+ 0x82881904,
+ 0x82881928,
+ 0x82881948,
+ 0x82881938,
+ 0x82881970,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x80902640,
+ 0x80902640,
+ 0x80902640,
+ 0x80902640,
+ 0x80902640,
+ 0x80902640,
+ 0x80902640,
+ 0x809006e8,
+ 0x8090080c,
+ 0x80901dc4,
+ 0x80902128,
+ 0x80902640,
+ 0x00000000,
+ 0x00000000,
+ 0xa0101100,
+ 0xa01001b0,
+ 0xa0101102,
+ 0xa01001b2,
+ 0xa0101104,
+ 0xa0100124,
+ 0xa0101106,
+ 0xa0100126,
+ 0xa0100134,
+ 0x00000000,
+ 0xa0101120,
+ 0xa0100136,
+ 0xa0101122,
+ 0xa0100144,
+ 0x80101160,
+ 0x80101162,
+ 0x80101180,
+ 0x80101182,
+ 0x80100140,
+ 0x80100142,
+ 0x80100150,
+ 0x80100152,
+ 0x80100154,
+ 0x80100146,
+ 0x803003a0,
+ 0x80100100,
+ 0x80105156,
+ 0xa0101164,
+ 0xa0100184,
+ 0x80101194,
+ 0x801001b4,
+ 0x80100146,
+ 0x00000000,
+ 0x00000000,
+ 0x1234baac,
+ 0x00000000,
+ 0x01080801,
+ 0x00000020,
+ 0x00000028,
+ 0x01080802,
+ 0x00000028,
+ 0x00000028,
+ 0x01080803,
+ 0x00000030,
+ 0x00000028,
+ 0x01080804,
+ 0x00000038,
+ 0x00000028,
+ 0x01080805,
+ 0x00000020,
+ 0x00000030,
+ 0x01080806,
+ 0x00000028,
+ 0x00000030,
+ 0x01080807,
+ 0x00000030,
+ 0x00000030,
+ 0x01080808,
+ 0x00000038,
+ 0x00000030,
+ 0x01080809,
+ 0x00000030,
+ 0x00000038,
+ 0x0108080a,
+ 0x00000038,
+ 0x00000038,
+ 0x0020401a,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+};
+
+unsigned long aui32JPEG_SlaveMTXTOPAZFWTextReloc[] = {
+ 0
+};
+
+unsigned char aui8JPEG_SlaveMTXTOPAZFWTextRelocType[] = {
+ 0
+};
+
+unsigned long aui32JPEG_SlaveMTXTOPAZFWTextRelocFullAddr[] = {
+ 0
+};
+
+unsigned long aui32JPEG_SlaveMTXTOPAZFWDataReloc[] = {
+ 0
+};
diff --git a/fw/JPEGSlaveFirmware_bin.h b/fw/JPEGSlaveFirmware_bin.h
new file mode 100644
index 0000000..e85f8dc
--- /dev/null
+++ b/fw/JPEGSlaveFirmware_bin.h
@@ -0,0 +1,44 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+
+// This file was automatically generated from ../release/JPEGSlaveFirmware.dnl using dnl2c.
+
+extern unsigned long aui32JPEG_SlaveMTXTOPAZFWText[];
+extern unsigned long ui32JPEG_SlaveMTXTOPAZFWTextSize;
+
+extern unsigned long aui32JPEG_SlaveMTXTOPAZFWData[];
+extern unsigned long ui32JPEG_SlaveMTXTOPAZFWDataSize;
+
+extern unsigned long aui32JPEG_SlaveMTXTOPAZFWTextReloc[];
+extern unsigned char aui8JPEG_SlaveMTXTOPAZFWTextRelocType[];
+extern unsigned long aui32JPEG_SlaveMTXTOPAZFWTextRelocFullAddr[];
+
+extern unsigned long aui32JPEG_SlaveMTXTOPAZFWDataReloc[];
+extern unsigned long ui32JPEG_SlaveMTXTOPAZFWDataRelocSize;
+
+extern unsigned long ui32JPEG_SlaveMTXTOPAZFWTextOrigin;
+extern unsigned long ui32JPEG_SlaveMTXTOPAZFWDataOrigin;
+
diff --git a/fw/MPG4FirmwareCBR_bin.c b/fw/MPG4FirmwareCBR_bin.c
new file mode 100644
index 0000000..d4c1738
--- /dev/null
+++ b/fw/MPG4FirmwareCBR_bin.c
@@ -0,0 +1,8222 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+// This file was automatically generated from ../release/MPG4FirmwareCBR.dnl using dnl2c.
+
+unsigned char *szMPG4CBR_MTXTOPAZFW_buildtag = "TOPAZ_DDKBUILD_00-00-00-0146";
+
+unsigned long ui32MPG4CBR_MTXTOPAZFWTextSize = 4520;
+unsigned long ui32MPG4CBR_MTXTOPAZFWDataSize = 3664;
+unsigned long ui32MPG4CBR_MTXTOPAZFWDataLocation = 0x828846c0;
+
+unsigned long aui32MPG4CBR_MTXTOPAZFWText[] = {
+ 0x9040c001,
+ 0xc80993fe,
+ 0xc0000e42,
+ 0xc8290e00,
+ 0xc5148422,
+ 0xc8298420,
+ 0xc46c8622,
+ 0x9e838600,
+ 0xc8099e43,
+ 0xc8d20d42,
+ 0xc8090d00,
+ 0xc8d20942,
+ 0xc8090940,
+ 0xc00a0e42,
+ 0xc8090e40,
+ 0xc00e87c2,
+ 0x9c1887d0,
+ 0x0c020802,
+ 0x09820d82,
+ 0x09020d02,
+ 0x08820c82,
+ 0x9320fffe,
+ 0xa401c838,
+ 0x0dc2c809,
+ 0x0dc0c8d0,
+ 0x0e42c809,
+ 0x0b46b080,
+ 0x7e74b77f,
+ 0xa48d0882,
+ 0xffff9ff3,
+ 0x9d1393e0,
+ 0xf8398081,
+ 0x0707a205,
+ 0x06850307,
+ 0x03839e97,
+ 0x0fa0060f,
+ 0x018d058d,
+ 0x9c62008f,
+ 0x9340ffff,
+ 0x0ea0060b,
+ 0xffff9c62,
+ 0x058d93a0,
+ 0xb700018d,
+ 0xb780520c,
+ 0x9c015194,
+ 0x0687a605,
+ 0x0ea0060b,
+ 0xffff9c62,
+ 0xf9f893a0,
+ 0xf9f8aa9d,
+ 0x9c22aa1d,
+ 0xa60d9c22,
+ 0x9bfefff4,
+ 0x0ca2c829,
+ 0x0c80c514,
+ 0x404db720,
+ 0x0a42c809,
+ 0x0a20c5f4,
+ 0x0b027440,
+ 0x428cb580,
+ 0x0a12d002,
+ 0x4644b421,
+ 0xc0540d8a,
+ 0xb78098b0,
+ 0xc807528c,
+ 0xc57008c2,
+ 0xc0320880,
+ 0xb5800c86,
+ 0xb4214c8c,
+ 0x0a06c000,
+ 0x0c98c002,
+ 0xc000b481,
+ 0x09021a04,
+ 0x08bac002,
+ 0x4078b960,
+ 0x0a00c200,
+ 0x588bd224,
+ 0xc000b441,
+ 0x0a11ce00,
+ 0x9301ffff,
+ 0x1884e000,
+ 0x9244ffff,
+ 0x0a42c807,
+ 0x0a00c576,
+ 0x0c86c032,
+ 0xc000b481,
+ 0x08820a02,
+ 0x08840902,
+ 0x4078b960,
+ 0x0a00c200,
+ 0x588bd224,
+ 0xc000b441,
+ 0x0a11ce00,
+ 0x9301ffff,
+ 0x745ac004,
+ 0x923cffff,
+ 0xc0340a02,
+ 0xb4810c9e,
+ 0xc034c000,
+ 0xc05498cd,
+ 0xc054982e,
+ 0x0d8a982a,
+ 0x9861c054,
+ 0x0a42c801,
+ 0x0a08c010,
+ 0x0c86c032,
+ 0xc000b481,
+ 0x08c2c801,
+ 0x0880cb10,
+ 0xb4210ce4,
+ 0x0a06c000,
+ 0xb4810cb4,
+ 0xc123c000,
+ 0xc56608d2,
+ 0xc08008e0,
+ 0xb4210c82,
+ 0x1a04c000,
+ 0xb4810c84,
+ 0x0d86c000,
+ 0x0d0209c2,
+ 0x0902c121,
+ 0x991bc014,
+ 0x458cb780,
+ 0xa982f208,
+ 0x0d02c021,
+ 0x09c20d04,
+ 0x9906c014,
+ 0x458cb780,
+ 0x0ad2c123,
+ 0x0ae0c566,
+ 0xa982f208,
+ 0x0d0609c2,
+ 0x98fac014,
+ 0x09c20d86,
+ 0xc1810d0e,
+ 0xc0140902,
+ 0xc00298fe,
+ 0xc0540dc2,
+ 0x700a980d,
+ 0x9364ffff,
+ 0xc0540d82,
+ 0xc0039814,
+ 0xb74092e0,
+ 0xd2265304,
+ 0x9e2d5908,
+ 0xaa4de030,
+ 0x9c629ea4,
+ 0x4514b720,
+ 0x405db740,
+ 0x58c1c280,
+ 0x2a80cff0,
+ 0x5a21c280,
+ 0x8021f310,
+ 0x753ec004,
+ 0x40cdb520,
+ 0x404db580,
+ 0x4652b431,
+ 0x0a42c801,
+ 0x0a08c010,
+ 0x0c86c032,
+ 0xc000b481,
+ 0xc0020886,
+ 0xb4210c98,
+ 0xb780c000,
+ 0xc080450c,
+ 0xf2080c82,
+ 0xb421a881,
+ 0x0d82c000,
+ 0x9bd0c034,
+ 0x450cb780,
+ 0xa881f208,
+ 0xffff7002,
+ 0x0d869304,
+ 0x0d0209c2,
+ 0x0902c121,
+ 0x98afc014,
+ 0x458cb780,
+ 0xa982f208,
+ 0x0d02c021,
+ 0x09c20d04,
+ 0x989ac014,
+ 0x458cb780,
+ 0xa982f208,
+ 0x0d0609c2,
+ 0x9892c014,
+ 0x09c20d86,
+ 0xc1010d0e,
+ 0xc0140902,
+ 0x77409896,
+ 0x9082c000,
+ 0x9b79c034,
+ 0x9c80c971,
+ 0x5a41e200,
+ 0x9204c000,
+ 0x0dc2c002,
+ 0x9b9ac034,
+ 0x450cb780,
+ 0xa881f208,
+ 0xffff7002,
+ 0x0d8292e4,
+ 0x9b9dc034,
+ 0xc0007580,
+ 0xc0349364,
+ 0x0d8a9b5e,
+ 0x9b95c034,
+ 0x450cb780,
+ 0xa881f208,
+ 0x5908d0a8,
+ 0x0948d073,
+ 0xe0309e2d,
+ 0xd3f1aacd,
+ 0xc2002a5c,
+ 0x75185a05,
+ 0x2ad2d012,
+ 0x9234fffb,
+ 0xb79f0802,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0x9c229c22,
+ 0x451cb740,
+ 0xc200aa41,
+ 0xc0025a08,
+ 0xf3100a00,
+ 0xf2088021,
+ 0xf208a882,
+ 0xc0c0a885,
+ 0x5c890c80,
+ 0xc000b421,
+ 0xa6059c22,
+ 0x451cb740,
+ 0x0886aa41,
+ 0x0c9ec034,
+ 0x5a08c200,
+ 0x0a00c002,
+ 0x80a1f310,
+ 0xc000b421,
+ 0x0c92c080,
+ 0xaa25f208,
+ 0xc000b481,
+ 0xc0340dc2,
+ 0xf2089b3f,
+ 0x7008aa25,
+ 0x9344ffff,
+ 0xc0800a02,
+ 0xb4810c96,
+ 0x0d86c000,
+ 0x0d0609c2,
+ 0x0902c121,
+ 0x981bc014,
+ 0xa9a2f208,
+ 0x0d02c021,
+ 0x09c20d04,
+ 0x9808c014,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xc0409e54,
+ 0x9e590c82,
+ 0xc000b421,
+ 0x0d02c040,
+ 0xc000b482,
+ 0xc00e9c22,
+ 0xc00e2d7c,
+ 0x5d3029e0,
+ 0xc0409e54,
+ 0x31b80c82,
+ 0xc000b461,
+ 0x0d02c040,
+ 0xc000b442,
+ 0x9e4c9c22,
+ 0x28fcc00e,
+ 0x2a7cc00e,
+ 0x0c82c040,
+ 0xb4019e58,
+ 0xc200c000,
+ 0x58e45a6c,
+ 0x1d043242,
+ 0x9e515d10,
+ 0x1984598d,
+ 0x3980c011,
+ 0x590d3246,
+ 0x59301904,
+ 0x32443242,
+ 0xc000b481,
+ 0x9e4c9c22,
+ 0x28fcc00e,
+ 0x2a7cc00e,
+ 0x0c82c040,
+ 0xb4019e58,
+ 0xc200c000,
+ 0x58e45a6c,
+ 0x1d043242,
+ 0x9e515d10,
+ 0x1984598d,
+ 0x3980c019,
+ 0x590d3246,
+ 0x59301904,
+ 0x32443242,
+ 0xc000b481,
+ 0x9e4c9c22,
+ 0x28fcc00e,
+ 0x2a7cc00e,
+ 0x0c82c040,
+ 0xb4019e58,
+ 0xc200c000,
+ 0x58e45a6c,
+ 0x1d043242,
+ 0x9e515d10,
+ 0x1984598d,
+ 0x3980c01d,
+ 0x590d3246,
+ 0x59301904,
+ 0x32443242,
+ 0xc000b481,
+ 0xa60d9c22,
+ 0x07038420,
+ 0xc2800687,
+ 0x1c845c8d,
+ 0x5ca0d0a2,
+ 0xd0110287,
+ 0xc2000a5e,
+ 0x1a045a0d,
+ 0x5a30c200,
+ 0x30985cd0,
+ 0x04059e4c,
+ 0x0c8ac032,
+ 0xc8013098,
+ 0xb4213880,
+ 0x9ea9c000,
+ 0x0a02c801,
+ 0x0a00c002,
+ 0xc0306553,
+ 0xb4810c8a,
+ 0xc002c000,
+ 0x0c840882,
+ 0xc000b421,
+ 0xd0229e93,
+ 0x9e535f09,
+ 0x1d045d0d,
+ 0x9b5afff4,
+ 0x5e91c280,
+ 0xc2801e84,
+ 0x9e6c5e84,
+ 0xc2801a84,
+ 0xc1815a90,
+ 0x0d8a3a80,
+ 0x0d020982,
+ 0xfff4314a,
+ 0xc0c09b54,
+ 0x09920d82,
+ 0x0d02c002,
+ 0x0902c002,
+ 0x9a47c034,
+ 0xc0340a0a,
+ 0xb4810c9e,
+ 0x1b04c000,
+ 0x850275bf,
+ 0x9202c000,
+ 0xb55f9dcf,
+ 0xc0347f7c,
+ 0xf2319a4f,
+ 0xb75fa045,
+ 0x1b047f7c,
+ 0x851075bf,
+ 0x9284ffff,
+ 0xc0300a02,
+ 0xb4810c8e,
+ 0xb79fc000,
+ 0xb7bf7e6e,
+ 0xb7df7eee,
+ 0xc0027f6e,
+ 0x9c228c00,
+ 0xb780a605,
+ 0xc004438c,
+ 0x75002a00,
+ 0x5a0cb7a0,
+ 0x92c2c002,
+ 0xa9b6f208,
+ 0x0982c050,
+ 0x0d7ec008,
+ 0x9b08fff4,
+ 0xa9bef208,
+ 0x0982c028,
+ 0x0d3ec004,
+ 0x9b00fff4,
+ 0x438cb780,
+ 0x38c0d211,
+ 0x02039e89,
+ 0x2a00c201,
+ 0xcffa7500,
+ 0xb5202cfd,
+ 0xc0014394,
+ 0x744090e2,
+ 0x5a8cb740,
+ 0x9256c000,
+ 0xaa45f008,
+ 0xa8c9f008,
+ 0x2cfec7ff,
+ 0x0a00c010,
+ 0xa245f008,
+ 0x0880c008,
+ 0xa0c9f008,
+ 0x4394b520,
+ 0xaa45f008,
+ 0x438cb720,
+ 0xa235f208,
+ 0xa8caf008,
+ 0x28fecdff,
+ 0xa0bef208,
+ 0x438cb520,
+ 0x9240c000,
+ 0xa937f208,
+ 0xaa39f208,
+ 0xa93cf20a,
+ 0xa8a1f248,
+ 0x8021f310,
+ 0x82a3e210,
+ 0xa235f208,
+ 0xa0bdf208,
+ 0xa9bef248,
+ 0x0982c002,
+ 0xfff40d0e,
+ 0xf2489ab5,
+ 0xb720aa3d,
+ 0xc002438c,
+ 0xf2480a00,
+ 0xc200a23d,
+ 0xb5203880,
+ 0xc011438c,
+ 0x74402880,
+ 0x92e2c000,
+ 0xa9b6f248,
+ 0x0982c008,
+ 0xfff40d3e,
+ 0xf2489a9d,
+ 0xb720aa35,
+ 0xc008438c,
+ 0xf2480a00,
+ 0xc081a235,
+ 0xcfef3880,
+ 0xb52028fe,
+ 0xb780438c,
+ 0xc001438c,
+ 0x75002a04,
+ 0x92e2c000,
+ 0xa9b6f248,
+ 0x0982c008,
+ 0xfff40d3e,
+ 0xf2489a81,
+ 0xb720aa35,
+ 0xc008438c,
+ 0xf2480a00,
+ 0xc001a235,
+ 0xcfff3888,
+ 0xb52028fa,
+ 0xb720438c,
+ 0x0203438c,
+ 0x2a10c001,
+ 0xc0027500,
+ 0xc0019082,
+ 0x744028c0,
+ 0x9182c001,
+ 0xa9a6f288,
+ 0x0d0609c2,
+ 0x0c820942,
+ 0xfff40882,
+ 0xf2889a96,
+ 0xf288a9b6,
+ 0x5d90a927,
+ 0x81afe220,
+ 0x438cb780,
+ 0x0d0609c2,
+ 0x0c820942,
+ 0xc0010882,
+ 0xb5803a20,
+ 0xfff4438c,
+ 0xb7809aa0,
+ 0xf288438c,
+ 0xc003a8a5,
+ 0x08c03a00,
+ 0xa0a5f288,
+ 0x2a2ecfff,
+ 0x9260c000,
+ 0xa9a6f288,
+ 0x0d0609c2,
+ 0x9a36fff4,
+ 0x438cb780,
+ 0xa8a5f288,
+ 0x3a20c001,
+ 0xf28808c0,
+ 0xcfffa0a5,
+ 0xb5802a6e,
+ 0xb79f438c,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa6059c22,
+ 0x438cb780,
+ 0x2a00c200,
+ 0x9e5d7500,
+ 0x9302c000,
+ 0x0abc6a8e,
+ 0x09829eab,
+ 0xc1010d36,
+ 0xc0140902,
+ 0x9eab98a4,
+ 0x438cb780,
+ 0x0d1a0982,
+ 0x0902c101,
+ 0x2a7dcdfe,
+ 0x438cb580,
+ 0x9897c014,
+ 0x438cb780,
+ 0x2a00c081,
+ 0xc0007500,
+ 0xc1019222,
+ 0xc0060902,
+ 0x0dce0940,
+ 0x0d020982,
+ 0x9887c014,
+ 0x438cb780,
+ 0x2a7ecf7f,
+ 0x438cb580,
+ 0x438cb780,
+ 0x2a08c001,
+ 0xc0007500,
+ 0xc1019222,
+ 0xc0060902,
+ 0x0dde0940,
+ 0x0d020982,
+ 0x9871c014,
+ 0x438cb780,
+ 0x2a76cfff,
+ 0x438cb580,
+ 0x438cb780,
+ 0x2a20c001,
+ 0xc0007500,
+ 0x0de291e2,
+ 0x0d020982,
+ 0x0902c101,
+ 0x985dc014,
+ 0x438cb780,
+ 0x2a5ecfff,
+ 0x438cb580,
+ 0x438cb780,
+ 0x2a00c003,
+ 0xc0007500,
+ 0x0de291e2,
+ 0x0d060982,
+ 0x0902c101,
+ 0x9849c014,
+ 0x438cb780,
+ 0x2a7ecffd,
+ 0x438cb580,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xb7a0a605,
+ 0xf2485a0c,
+ 0xc021a9ba,
+ 0x0d3c0d02,
+ 0x0982c008,
+ 0x999efff4,
+ 0xa9aaf288,
+ 0x0d02c021,
+ 0x09c20d04,
+ 0x9996fff4,
+ 0xaa39f248,
+ 0xa8a9f288,
+ 0x0a00c008,
+ 0xa239f248,
+ 0xf28808c0,
+ 0xb79fa0a9,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa6059c22,
+ 0x09920687,
+ 0x0d02c002,
+ 0x0902c002,
+ 0x9883c034,
+ 0x0a42c002,
+ 0xc2800eb0,
+ 0xb4855e89,
+ 0xb79fc000,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xb7409c22,
+ 0xd1a64c84,
+ 0x9e2d5d08,
+ 0xa8cde030,
+ 0x5a0cc080,
+ 0xd1f35885,
+ 0xc00e2910,
+ 0xe2202d7c,
+ 0xc00e812d,
+ 0x5d302a40,
+ 0x32429e51,
+ 0x0c82c040,
+ 0xc000b481,
+ 0x0d02c040,
+ 0xc000b442,
+ 0xb7409c22,
+ 0x1df05b04,
+ 0x5d08d1a6,
+ 0xe0309e2d,
+ 0xc080a8cd,
+ 0xd0335a05,
+ 0x5991294e,
+ 0x008929bc,
+ 0x81a7e210,
+ 0x2910d1f3,
+ 0x2d7cc00e,
+ 0x812de220,
+ 0x5d305990,
+ 0x31b89e54,
+ 0x0c82c040,
+ 0xc000b461,
+ 0x0d02c040,
+ 0xc000b442,
+ 0xa6059c22,
+ 0x5a0cb7a0,
+ 0x0e82c111,
+ 0x0ec0c04e,
+ 0xa9b6f208,
+ 0x0982c050,
+ 0x0d7ec008,
+ 0x991efff4,
+ 0x0df29e6a,
+ 0x0982c004,
+ 0xfff40d02,
+ 0xf2089bc8,
+ 0xf248a937,
+ 0xe220a9aa,
+ 0xc05081af,
+ 0xc0080982,
+ 0xfff40d7e,
+ 0x9e6a990b,
+ 0xc0040df2,
+ 0x0d0209c2,
+ 0x9bb5fff4,
+ 0xa937f208,
+ 0xa9aaf248,
+ 0x812ec201,
+ 0x81afe220,
+ 0x0982c050,
+ 0x0d7ec008,
+ 0x98f6fff4,
+ 0x0df29e6a,
+ 0x0982c006,
+ 0xfff40d02,
+ 0xf2089ba0,
+ 0xcfd8a9be,
+ 0xc0280e81,
+ 0xc0040982,
+ 0xfff40d3e,
+ 0x9e6a98e5,
+ 0xc0040df2,
+ 0xc0040982,
+ 0xfff40d42,
+ 0xf2089b8e,
+ 0xf248a93f,
+ 0xe220a9b2,
+ 0xc02881af,
+ 0xc0040982,
+ 0xfff40d3e,
+ 0x9e6a98d1,
+ 0xc0040df2,
+ 0xc00409c2,
+ 0xfff40d42,
+ 0xf2089b7a,
+ 0xf248a93f,
+ 0xc201a9b2,
+ 0xe220812e,
+ 0xc02881af,
+ 0xc0040982,
+ 0xfff40d3e,
+ 0x9e6a98bb,
+ 0xc0060df2,
+ 0xc0040982,
+ 0xfff40d42,
+ 0xf2489b64,
+ 0xf20aaa29,
+ 0xf248a934,
+ 0xd226a8b1,
+ 0xf2085904,
+ 0xf310a9bf,
+ 0xd0a68021,
+ 0xe2105904,
+ 0xf31080a3,
+ 0xe2108221,
+ 0xf20880b3,
+ 0xf208a235,
+ 0xb79fa0bd,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa6059c22,
+ 0x0902c121,
+ 0x0940c006,
+ 0x02870dca,
+ 0x0d020982,
+ 0x2afcc00e,
+ 0x9b1bfff4,
+ 0x09820dca,
+ 0xc2800d1e,
+ 0x010b5aec,
+ 0x3900c121,
+ 0x9b11fff4,
+ 0x438cb780,
+ 0x3a00c400,
+ 0x438cb580,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0x0922c829,
+ 0x0970c5fe,
+ 0x0a22c829,
+ 0x0a50c5fe,
+ 0x5b8cb720,
+ 0x0ca2c829,
+ 0x0ce0c5fe,
+ 0x8502c004,
+ 0x458cb580,
+ 0x450cb520,
+ 0x0a18d071,
+ 0xa241f008,
+ 0x404db520,
+ 0x413db540,
+ 0x8d00c004,
+ 0x40bdb540,
+ 0x403db540,
+ 0xf8399c22,
+ 0xf010a285,
+ 0x7500aa61,
+ 0x9164c000,
+ 0xa8c1d008,
+ 0x0a069e48,
+ 0x5200c200,
+ 0xd0083098,
+ 0xd011a0c1,
+ 0xd0100d38,
+ 0xf011a9f2,
+ 0xf0101a30,
+ 0x1984a943,
+ 0x93e2c000,
+ 0x8702cff1,
+ 0x8700cff0,
+ 0x087ec00f,
+ 0x087cc00e,
+ 0x0c1ac050,
+ 0xa8c5f029,
+ 0x2095d020,
+ 0x9e4d5ca1,
+ 0xc2002210,
+ 0x30d85a20,
+ 0x4006ba09,
+ 0xc000b420,
+ 0x1a30f011,
+ 0xffff1984,
+ 0xf21091e4,
+ 0xf010802f,
+ 0xf9f8a241,
+ 0x9c22aa9d,
+ 0x8420a60d,
+ 0x9e558502,
+ 0x7f7cb55f,
+ 0xaa61f010,
+ 0x8d8ee012,
+ 0xb55f0307,
+ 0x1a087ffc,
+ 0xd226750a,
+ 0x8540590c,
+ 0x8044e05a,
+ 0x91e0c003,
+ 0x9180c000,
+ 0x9000c001,
+ 0x9140c001,
+ 0x92a0c001,
+ 0x9380c001,
+ 0x91c0c002,
+ 0x5c8cb780,
+ 0xa881da08,
+ 0x74402888,
+ 0xb352856a,
+ 0xb7804462,
+ 0x9d57450c,
+ 0x8d88e011,
+ 0x1954d072,
+ 0xa299f208,
+ 0x9abcc014,
+ 0x91e0c002,
+ 0x450cb780,
+ 0xa91af208,
+ 0xe0119ea9,
+ 0x15148d88,
+ 0x9ab0c014,
+ 0x9060c002,
+ 0x8d88e011,
+ 0x295ed3f2,
+ 0xc0140916,
+ 0xb78099df,
+ 0xf208450c,
+ 0xc001a299,
+ 0xe01192c0,
+ 0xd3f28d88,
+ 0x0916295e,
+ 0x99d2c014,
+ 0x91a0c001,
+ 0xaa41d208,
+ 0x8c88f011,
+ 0xd0124a7d,
+ 0x0d062ace,
+ 0x018b0906,
+ 0x99c4c014,
+ 0x9e6a9e83,
+ 0x0d02018b,
+ 0x99bec014,
+ 0x9320c000,
+ 0xaa41d208,
+ 0x8c88f011,
+ 0xd0124a7d,
+ 0x0d022ace,
+ 0x018b0906,
+ 0x99b0c014,
+ 0x9e6a9e83,
+ 0xc00e018b,
+ 0xc0140d7e,
+ 0xc00099a9,
+ 0xc0019080,
+ 0xb79f90e0,
+ 0xc00f7e68,
+ 0xc00e0cfe,
+ 0x9e4a0cfc,
+ 0x7c68b59f,
+ 0x7f6cb73f,
+ 0x0a02cff1,
+ 0x0a00cff0,
+ 0x0c9ac050,
+ 0xc2002218,
+ 0x20945a21,
+ 0x324258a0,
+ 0x4006ba24,
+ 0x7f6cb59f,
+ 0xc000b481,
+ 0xa943f208,
+ 0x7fecb79f,
+ 0x8021f310,
+ 0xa241f208,
+ 0x7e6eb79f,
+ 0x7eeeb7bf,
+ 0x7f6eb7df,
+ 0x8c00c002,
+ 0xa61d9c22,
+ 0x85028440,
+ 0xf0319e9d,
+ 0x0b02abe5,
+ 0x7878b55f,
+ 0x7efcb55f,
+ 0x9d3a718e,
+ 0x91e8c001,
+ 0x7502aa41,
+ 0x9392c000,
+ 0xaad1d018,
+ 0x8d08e032,
+ 0x8d00e051,
+ 0x9eb19dcf,
+ 0xb55f8510,
+ 0xc0027f7c,
+ 0xc2800a9c,
+ 0x018b5a95,
+ 0x9aebfff4,
+ 0x7f7cb75f,
+ 0x5a88c280,
+ 0x8122c301,
+ 0x91a0c000,
+ 0x8d88e031,
+ 0x050b9dcf,
+ 0xb55f8510,
+ 0xfff47f7c,
+ 0xb75f9b19,
+ 0x0b047f7c,
+ 0xfffe718e,
+ 0xb79f92a6,
+ 0xc0507868,
+ 0xb4810c9e,
+ 0xc050c000,
+ 0xb4e20d16,
+ 0xb71fc000,
+ 0xb79f7eec,
+ 0xb7bf7d6e,
+ 0xb7df7dee,
+ 0xb7ff7e6e,
+ 0xc0027eee,
+ 0x9c228c40,
+ 0xa205f839,
+ 0x8400c010,
+ 0x5c8cb780,
+ 0x451cb740,
+ 0xa882da08,
+ 0xd011a8c1,
+ 0x58882e18,
+ 0x0880c002,
+ 0xe2107500,
+ 0xc00080a3,
+ 0x0a0a90a2,
+ 0x9100c000,
+ 0x2e14d011,
+ 0x0a067500,
+ 0x0a44d001,
+ 0x0c82c050,
+ 0xc000b481,
+ 0x0a02c004,
+ 0xb4810cb4,
+ 0x9d87c000,
+ 0x402db740,
+ 0x09a20dc2,
+ 0x0d02c008,
+ 0x0c81cff0,
+ 0x9b4dffd4,
+ 0x0a42c801,
+ 0x0a00cb10,
+ 0x0ceac032,
+ 0xc000b481,
+ 0x08c2c801,
+ 0x0888c010,
+ 0xb4210c84,
+ 0xb760c000,
+ 0x9d8f410a,
+ 0x0d81cff0,
+ 0x9b67fff4,
+ 0x0a02c801,
+ 0x0a00c00a,
+ 0x0c8ac030,
+ 0xc000b481,
+ 0x08c2c008,
+ 0xb4210c84,
+ 0xc008c000,
+ 0x0c880a02,
+ 0xc000b481,
+ 0x0d82c0c0,
+ 0xc0080992,
+ 0xc0080d02,
+ 0xc0140902,
+ 0xc00899ae,
+ 0xc0300a02,
+ 0xb4810c8e,
+ 0xc014c000,
+ 0xb79f982f,
+ 0xc0106fee,
+ 0x9c228c20,
+ 0xa205f839,
+ 0x0c82c450,
+ 0xb4810a02,
+ 0xb101c000,
+ 0xc0084220,
+ 0xc0300a40,
+ 0xb4810c8e,
+ 0xc002c000,
+ 0xc05038c0,
+ 0xb4210c82,
+ 0xc0c0c000,
+ 0x09920d82,
+ 0x0d02c008,
+ 0x0902c008,
+ 0x9983c014,
+ 0x0a02c008,
+ 0x0c8ec030,
+ 0xc000b481,
+ 0xaa1df9f8,
+ 0x9040c000,
+ 0xc450a60d,
+ 0x0a020c8a,
+ 0xc000b481,
+ 0x4240b105,
+ 0x2efce00e,
+ 0x5e90d284,
+ 0x0a02c801,
+ 0xc0300a40,
+ 0xb4810c8a,
+ 0x08c2c000,
+ 0xb4210c84,
+ 0x7740c000,
+ 0x5e0cb7c0,
+ 0x93e2c000,
+ 0x0eded031,
+ 0x09820dea,
+ 0x2ac10d02,
+ 0x1950d051,
+ 0x3900c121,
+ 0x98ddfff4,
+ 0xa9c6f248,
+ 0xc280018b,
+ 0x1a845a8f,
+ 0xc0219eaa,
+ 0xffd43d00,
+ 0xf2489a3f,
+ 0xf310a947,
+ 0xf248802b,
+ 0xc450a245,
+ 0x0a020c86,
+ 0xc000b481,
+ 0x4220b101,
+ 0x0a42c801,
+ 0x0a08c010,
+ 0x0c86c032,
+ 0xc000b481,
+ 0xc0020886,
+ 0xb4210c98,
+ 0xb740c000,
+ 0xf2485c0c,
+ 0xf048a8c5,
+ 0xd053aa51,
+ 0xc0801910,
+ 0xf3100ca2,
+ 0xb4818821,
+ 0xb7a0c000,
+ 0xc0025c0c,
+ 0xc0140d82,
+ 0xf248992f,
+ 0xf248a8c5,
+ 0xd053aa31,
+ 0xf3101910,
+ 0x70088821,
+ 0x9264ffff,
+ 0x09c20d86,
+ 0xc1210d0a,
+ 0xffd40902,
+ 0xf2489a0a,
+ 0xc0a1a9b2,
+ 0x0d040d02,
+ 0xffd409c2,
+ 0xc0c099f7,
+ 0x09920d82,
+ 0x09420d42,
+ 0x98f7c014,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x9e5da60d,
+ 0xf1245940,
+ 0xd3f15841,
+ 0xb3502d2e,
+ 0xc0024422,
+ 0xf00893e2,
+ 0xe000aa61,
+ 0xb4252a1c,
+ 0xd8084422,
+ 0x8522aa61,
+ 0x88a9e210,
+ 0x12182a1c,
+ 0xc00e9ea3,
+ 0xba1b0a7e,
+ 0xc200400b,
+ 0x21285207,
+ 0x9276c001,
+ 0xc1009e59,
+ 0x11035a20,
+ 0x5209c200,
+ 0xc2009ea2,
+ 0x9e8d58a1,
+ 0x0cb0d031,
+ 0xa8a2d208,
+ 0x2a7cc00e,
+ 0x5207c200,
+ 0x2a7cc00e,
+ 0xd208349a,
+ 0xf008a0a2,
+ 0x9ea1a963,
+ 0x2a2ed3f1,
+ 0x8128c201,
+ 0x8821f310,
+ 0xf0088502,
+ 0xd228a261,
+ 0x9eaba127,
+ 0x2d01cff0,
+ 0x59415940,
+ 0xc00e3522,
+ 0xfff42d7c,
+ 0xc0009bb1,
+ 0xd20892e0,
+ 0x9e5eaa21,
+ 0x50d8000b,
+ 0xd0293242,
+ 0xf008a205,
+ 0xd013a8e1,
+ 0xf210291e,
+ 0x75108029,
+ 0x00989e44,
+ 0xa0e1f008,
+ 0x4426b350,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x0685a60d,
+ 0x9e9e9e69,
+ 0x71820b02,
+ 0xc0000a86,
+ 0x9ea99208,
+ 0x9e6916d2,
+ 0x5a84c280,
+ 0x1a52d011,
+ 0xd0117102,
+ 0xd3f108e2,
+ 0xffff2b1e,
+ 0xd0119286,
+ 0x75100a62,
+ 0xc000028d,
+ 0x9e7391d4,
+ 0x09220d02,
+ 0x9b70fff4,
+ 0xd0111aa0,
+ 0x75100a52,
+ 0xffff9e83,
+ 0x9e7392d2,
+ 0xd0110d06,
+ 0xc00e0952,
+ 0xfff4297c,
+ 0x75909b61,
+ 0xc0009e83,
+ 0xd03192f4,
+ 0xd3f11a60,
+ 0x9e6c2b4e,
+ 0xc2009e73,
+ 0xd3f25299,
+ 0x0922295e,
+ 0x9b50fff4,
+ 0xc2009e83,
+ 0x9ea952b8,
+ 0x16d27590,
+ 0x91b2ffff,
+ 0xd3f29e73,
+ 0x010d2d5e,
+ 0x9b42fff4,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x0ca0f011,
+ 0xd09a9e99,
+ 0xd00d5a04,
+ 0xc0001a42,
+ 0x1203909a,
+ 0x9e4b1242,
+ 0xfffc9ea2,
+ 0xc0019360,
+ 0xf83993a0,
+ 0x0d8aa205,
+ 0x9835c014,
+ 0xc0140d8e,
+ 0x0d8a9832,
+ 0xaa1df9f8,
+ 0x91a0c001,
+ 0x9e520507,
+ 0x0d82c0c0,
+ 0xc0000992,
+ 0x9e5c9040,
+ 0xd1a401c6,
+ 0x08825889,
+ 0x3c80c400,
+ 0xc000b421,
+ 0x4220b104,
+ 0x9e532244,
+ 0xffff7106,
+ 0x9c229324,
+ 0xc000b463,
+ 0xf8129c22,
+ 0x9c22a062,
+ 0x0d80c200,
+ 0x9e595d89,
+ 0xc4000982,
+ 0xb4633d80,
+ 0xb203c000,
+ 0x00074620,
+ 0xc1279c22,
+ 0x9c229c8f,
+ 0xb971080a,
+ 0xc01756f1,
+ 0xc0719c81,
+ 0xc0179c80,
+ 0xb9609c80,
+ 0x9c224000,
+ 0x8460a61d,
+ 0x4504b740,
+ 0xb53f0882,
+ 0xb5207f6c,
+ 0xf0004788,
+ 0x9e2daa41,
+ 0x5a8cb7a0,
+ 0x7e6cb53f,
+ 0x5a08c200,
+ 0x0940d093,
+ 0xe0209ea9,
+ 0x0dc2a96d,
+ 0xc002098e,
+ 0xffd40d42,
+ 0xb7209920,
+ 0xf2085a14,
+ 0x0882aa25,
+ 0x7eecb53f,
+ 0xa8a9f208,
+ 0xda089eaf,
+ 0xb580a939,
+ 0xda0842cd,
+ 0xb760a93e,
+ 0xb5205c0c,
+ 0xb54043cd,
+ 0xb540434d,
+ 0xf2084455,
+ 0xda08aa39,
+ 0xd112a9a2,
+ 0xf0480938,
+ 0xd810a967,
+ 0x2a20a8c1,
+ 0x9e5c7500,
+ 0xa97df048,
+ 0xc08060c2,
+ 0xc2005a7f,
+ 0x00985a71,
+ 0x58945893,
+ 0x80a3e210,
+ 0xb5400683,
+ 0xb54046cd,
+ 0xb520474d,
+ 0xc00047cd,
+ 0xe1809182,
+ 0xc0005dc0,
+ 0xf0489284,
+ 0xd810a977,
+ 0xc000aa41,
+ 0xb7409100,
+ 0xd8105c04,
+ 0xf040aa41,
+ 0xf310a957,
+ 0xf2908021,
+ 0xf290a12b,
+ 0xf210a225,
+ 0xb760aa39,
+ 0xf2505c1c,
+ 0xf250a8a1,
+ 0xaa61a229,
+ 0xa969a8e6,
+ 0xa0b1f250,
+ 0xf2109d67,
+ 0xf210a221,
+ 0xf210a0aa,
+ 0xd858a12d,
+ 0xd858a8ea,
+ 0xd111a96d,
+ 0xda080a18,
+ 0xf210a881,
+ 0xb720a0a6,
+ 0xf2105e14,
+ 0x58c0a131,
+ 0xf29058d1,
+ 0xda10a0b5,
+ 0xb740aa61,
+ 0xb740425d,
+ 0x008942c5,
+ 0x5a20c200,
+ 0xf310589c,
+ 0xe2108021,
+ 0xa26d82a3,
+ 0xa0f1f018,
+ 0xa225f250,
+ 0xa0adf250,
+ 0x0a00c00c,
+ 0x4e8cb580,
+ 0x0880c006,
+ 0x4f0cb520,
+ 0x0cf2c42e,
+ 0xb4810a02,
+ 0xb101c000,
+ 0x28844220,
+ 0xc0007440,
+ 0xb7409182,
+ 0xd1115c0c,
+ 0xda080a28,
+ 0xc058a881,
+ 0xc0277460,
+ 0xda109292,
+ 0xb720aa61,
+ 0x8706410a,
+ 0x9d547500,
+ 0x1ad2d002,
+ 0xb55f7448,
+ 0xc0007de4,
+ 0xf2109112,
+ 0xcffeaa79,
+ 0xf2102a3d,
+ 0xf210a279,
+ 0x2a40aa79,
+ 0xc0007500,
+ 0x0a0a9122,
+ 0x0caec060,
+ 0xc000b481,
+ 0x90e0c000,
+ 0xc0600a06,
+ 0xb4810cae,
+ 0xb720c000,
+ 0xf2d04d14,
+ 0xf290aa21,
+ 0xc801a8bd,
+ 0x9d1e3c80,
+ 0x450cb740,
+ 0x5a40c200,
+ 0xc30158a0,
+ 0x32423246,
+ 0xa251f008,
+ 0x9999c034,
+ 0xc0340a3e,
+ 0xb4810c9e,
+ 0x0882c000,
+ 0xb4210c90,
+ 0xffd4c000,
+ 0xc0069a92,
+ 0xb5408542,
+ 0x0a02469c,
+ 0x0c8ac030,
+ 0xc000b481,
+ 0x0882c002,
+ 0xb4210c84,
+ 0xc801c000,
+ 0xc0020a02,
+ 0x1c840a00,
+ 0xc000b481,
+ 0x0902c1c1,
+ 0x0940c006,
+ 0x09820dce,
+ 0xffb40d02,
+ 0xc0c09baa,
+ 0xffd40d82,
+ 0xb7809a18,
+ 0xc034468c,
+ 0xc2000cae,
+ 0xb4815a11,
+ 0x0882c000,
+ 0xb4210cfc,
+ 0xf210c000,
+ 0x2a04aa79,
+ 0x850a7500,
+ 0x471cb540,
+ 0x90a2c000,
+ 0xb5408504,
+ 0xb780471c,
+ 0xc03e470c,
+ 0xb5800c82,
+ 0xb481478c,
+ 0xc0c8c000,
+ 0xc0500882,
+ 0xb4210ce2,
+ 0xc2f0c000,
+ 0xc0380a7e,
+ 0xb4810cfa,
+ 0xf250c000,
+ 0xc050a8e5,
+ 0xb4210ce6,
+ 0xb740c000,
+ 0xb7205a8c,
+ 0x871a470c,
+ 0x8566c184,
+ 0xf0081cb0,
+ 0xb540aa59,
+ 0x3890491c,
+ 0x470cb520,
+ 0x75002a04,
+ 0x0906c800,
+ 0x0a02c006,
+ 0x8f28e001,
+ 0x4804b540,
+ 0xc000b481,
+ 0x0d02c03a,
+ 0xc000b442,
+ 0xc03408be,
+ 0xb4210c9e,
+ 0xb785c000,
+ 0x75005a08,
+ 0x9082c000,
+ 0x98e3c054,
+ 0x490cb780,
+ 0x0c82c038,
+ 0xc000b481,
+ 0xa965da10,
+ 0xaa35f290,
+ 0x5e8cb720,
+ 0x62458502,
+ 0x462db720,
+ 0x419ab540,
+ 0x421ab540,
+ 0x429ab540,
+ 0xc2007440,
+ 0xb5805a11,
+ 0xc000430a,
+ 0xf2509102,
+ 0xb760a9ea,
+ 0x9e8c430a,
+ 0xb7e09c62,
+ 0x0b025c0c,
+ 0xb780070b,
+ 0xc050480c,
+ 0xb4810c82,
+ 0xc030c000,
+ 0xb4c20d0a,
+ 0xc00ec000,
+ 0xc03008fe,
+ 0xb4210c8e,
+ 0xf210c000,
+ 0x2a04aa79,
+ 0xc0007500,
+ 0xc4389182,
+ 0xb4c10c8a,
+ 0xb104c000,
+ 0xc03e4220,
+ 0xb4810ca6,
+ 0xb780c000,
+ 0x7500430c,
+ 0x93a2c001,
+ 0x2a00c020,
+ 0xc0017500,
+ 0xc46090e2,
+ 0xb4c10ca2,
+ 0xb104c000,
+ 0x088a4220,
+ 0x0ca2c060,
+ 0xc000b421,
+ 0x0902c004,
+ 0x0c96c030,
+ 0xc000b441,
+ 0x430cb780,
+ 0x2a7dcfde,
+ 0x430cb580,
+ 0x08f8c002,
+ 0x0cecc00e,
+ 0xc000b421,
+ 0x0a02c201,
+ 0xc000b481,
+ 0x8502c004,
+ 0x4d9cb540,
+ 0x430cb720,
+ 0x0c96c030,
+ 0xc000b421,
+ 0x430cb780,
+ 0x75002a04,
+ 0x90e2c000,
+ 0x488cb780,
+ 0xb5800a04,
+ 0xb75f488c,
+ 0xb7807dfc,
+ 0x9eab430c,
+ 0xb5809d4f,
+ 0xc034508c,
+ 0xb7809a3a,
+ 0xc020438c,
+ 0x75002a00,
+ 0x287cc00e,
+ 0x7d6cb51f,
+ 0x9042c002,
+ 0xa9c6f250,
+ 0x0d02c021,
+ 0xc0100d7c,
+ 0xffb40982,
+ 0xf2509a99,
+ 0xc021a9ce,
+ 0x0d3c0d02,
+ 0x0982c008,
+ 0x9a90ffb4,
+ 0x438cb780,
+ 0x2a00c401,
+ 0xc0007500,
+ 0xf2089262,
+ 0xf208aa6d,
+ 0x0906a8f1,
+ 0x7e6cb55f,
+ 0x0a00c010,
+ 0xa26df208,
+ 0x0880c008,
+ 0xa0f1f208,
+ 0x91c0c000,
+ 0xa927f250,
+ 0xaa29f250,
+ 0xa92cf252,
+ 0xa8b1f250,
+ 0x8021f310,
+ 0x82a3e210,
+ 0xa225f250,
+ 0xa0adf250,
+ 0x438cb780,
+ 0x2a7dcfde,
+ 0x438cb580,
+ 0x438cb780,
+ 0x2a00c021,
+ 0xc0017500,
+ 0xb7609122,
+ 0xc0214414,
+ 0x0d140d02,
+ 0x09c2c002,
+ 0x9a52ffb4,
+ 0x4494b760,
+ 0x0d02c021,
+ 0x09c20d04,
+ 0x9a4affb4,
+ 0x441cb740,
+ 0xaa59f210,
+ 0x4484b740,
+ 0xa8c1f250,
+ 0x4394b720,
+ 0x8021f310,
+ 0x82a3e210,
+ 0x2cfecfdf,
+ 0x4394b520,
+ 0x440cb580,
+ 0x448cb520,
+ 0x4394b720,
+ 0xc4019e4c,
+ 0x75002a00,
+ 0x91a2c000,
+ 0xaa45f250,
+ 0xa8cdf250,
+ 0x1a40c002,
+ 0x440cb580,
+ 0xb52018c0,
+ 0x9e4c448c,
+ 0x2c80c400,
+ 0xcbff7640,
+ 0xb5802a7e,
+ 0xc000438c,
+ 0xffd49142,
+ 0xb780986d,
+ 0xcbfe438c,
+ 0xb5802a7d,
+ 0xb75f438c,
+ 0x76807f74,
+ 0x9362c000,
+ 0x5e0cb760,
+ 0x2d410d3c,
+ 0xa9e6f048,
+ 0x5d0d9e53,
+ 0xc0211d04,
+ 0xffb43d00,
+ 0xb78099fd,
+ 0xb75f5e0c,
+ 0xf2487f64,
+ 0xb760a907,
+ 0xf0105e1c,
+ 0xf0588025,
+ 0xb780a265,
+ 0xc100438c,
+ 0x75002a00,
+ 0x9142c000,
+ 0x9ad0ffb4,
+ 0x438cb780,
+ 0x2a7dcefe,
+ 0x438cb580,
+ 0x430cb780,
+ 0x2a00c004,
+ 0xc0027500,
+ 0xd15192a2,
+ 0xb7200ed8,
+ 0xda08418a,
+ 0xba09aa21,
+ 0xba244002,
+ 0x0a0c4002,
+ 0xc0027048,
+ 0xb73f90f8,
+ 0xb7607eec,
+ 0xc0044e94,
+ 0x0d1e0982,
+ 0x0a12d011,
+ 0x2a7cc00e,
+ 0x7eecb59f,
+ 0x99beffb4,
+ 0x4f14b760,
+ 0x0982c002,
+ 0xffb40d0e,
+ 0xb74099b7,
+ 0xf2104e9c,
+ 0xb740aa39,
+ 0xf2084f04,
+ 0xb75fa8a1,
+ 0xf2507eec,
+ 0xc301a8a2,
+ 0xb5408120,
+ 0x70824e9c,
+ 0x8322c001,
+ 0x4f04b540,
+ 0x9286c000,
+ 0x62199e4b,
+ 0xf3106097,
+ 0xe2108821,
+ 0x09028aa3,
+ 0x7eecb55f,
+ 0x0a00c010,
+ 0x4e8cb580,
+ 0x0880c008,
+ 0x4f0cb520,
+ 0x438cb780,
+ 0x3a00c041,
+ 0x438cb580,
+ 0x438cb780,
+ 0x2a00c005,
+ 0xc0047500,
+ 0xf2109142,
+ 0xf210a9c2,
+ 0x09c2a945,
+ 0x0c820d42,
+ 0xffb40882,
+ 0xf2109992,
+ 0xc020aa79,
+ 0x75002a00,
+ 0x9302c000,
+ 0xa9aaf210,
+ 0xa931f210,
+ 0x0d2209a2,
+ 0x08820c82,
+ 0x999fffb4,
+ 0xa9aef210,
+ 0xa931f210,
+ 0x0d2209a2,
+ 0x08820c82,
+ 0x99b3ffb4,
+ 0x9180c000,
+ 0xa9aaf210,
+ 0xa931f210,
+ 0x0d2209c2,
+ 0x08820c82,
+ 0x996bffb4,
+ 0x438cb720,
+ 0xc1010203,
+ 0x75002a00,
+ 0x9122c001,
+ 0xa8eada48,
+ 0xa963f208,
+ 0x28feceff,
+ 0x438cb520,
+ 0xa8edda48,
+ 0xa968f20a,
+ 0xe2205c90,
+ 0xf20880ab,
+ 0x0203a967,
+ 0xc200588c,
+ 0xf3105a0c,
+ 0xe2108221,
+ 0xf20880a3,
+ 0xf208a0e2,
+ 0xf208a269,
+ 0xf210a0e5,
+ 0xf210a0c2,
+ 0xf210a0c9,
+ 0xc001a24d,
+ 0xf2109040,
+ 0xf210aa79,
+ 0xc020a8c1,
+ 0x75002a00,
+ 0xf21008c0,
+ 0xc000a0c1,
+ 0xf2109182,
+ 0xf210aa29,
+ 0x0a20a8ad,
+ 0xa229f210,
+ 0xc00008a0,
+ 0xf2109140,
+ 0xf210aa29,
+ 0x0a40a8ad,
+ 0xa229f210,
+ 0xf21008c0,
+ 0xb780a0ad,
+ 0xcffb438c,
+ 0xc0092a7e,
+ 0xb5803a00,
+ 0xb780438c,
+ 0x75004d8c,
+ 0x9142c000,
+ 0x0c82c040,
+ 0xc000b481,
+ 0x0a02c201,
+ 0xc000b481,
+ 0x438cb780,
+ 0x2a00c008,
+ 0xc0007500,
+ 0xc1119362,
+ 0xc04e0902,
+ 0x0df20940,
+ 0x0d020982,
+ 0x9b8dffb4,
+ 0x0902c111,
+ 0x0940c026,
+ 0x09820df6,
+ 0x0d42c004,
+ 0x9b83ffb4,
+ 0x438cb780,
+ 0x2a7dcff6,
+ 0x438cb580,
+ 0x438cb780,
+ 0x2a00c080,
+ 0xc0007500,
+ 0xb76091c2,
+ 0xba1b4192,
+ 0xc0144003,
+ 0xb7809aa0,
+ 0xcf7e438c,
+ 0xb5802a7d,
+ 0xb780438c,
+ 0xc010438c,
+ 0x75002a00,
+ 0x93e2c001,
+ 0x0902c121,
+ 0x0940c00e,
+ 0x09820d9e,
+ 0xffb40d02,
+ 0xc1219b3c,
+ 0xc0860902,
+ 0x0da20940,
+ 0x0d020982,
+ 0x9b33ffb4,
+ 0x7e74b75f,
+ 0xc0017680,
+ 0xf2109002,
+ 0x2a40aa79,
+ 0xc0007500,
+ 0xc1219342,
+ 0xc0020902,
+ 0x0da60900,
+ 0x0d060982,
+ 0x9b1fffb4,
+ 0x0902c121,
+ 0x0900c080,
+ 0x09820da6,
+ 0xffb40d16,
+ 0xb7809b16,
+ 0xc021438c,
+ 0xb5803a00,
+ 0xb780438c,
+ 0xcfee438c,
+ 0xc0202a7d,
+ 0xb5803a00,
+ 0xb780438c,
+ 0xc800438c,
+ 0x75002a00,
+ 0x92c2c000,
+ 0x7d6cb79f,
+ 0x4192b760,
+ 0xa97af210,
+ 0xba1b0189,
+ 0x5d114003,
+ 0x2d044d04,
+ 0x9bcdffb4,
+ 0x438cb780,
+ 0x2a7ec7fe,
+ 0x438cb580,
+ 0x438cb780,
+ 0x2a00c200,
+ 0xc0007500,
+ 0x0d8690c2,
+ 0xffb40982,
+ 0xb7809a2e,
+ 0xc041438c,
+ 0x75002a00,
+ 0x9342c000,
+ 0x0902c101,
+ 0x0940c002,
+ 0x09820da6,
+ 0xffb40d02,
+ 0xc1019ad2,
+ 0xc0800902,
+ 0x0da60940,
+ 0x0d120982,
+ 0x9ac9ffb4,
+ 0x438cb780,
+ 0x2a7ecfbf,
+ 0x438cb580,
+ 0x438cb720,
+ 0xc0090203,
+ 0x75002a00,
+ 0x9142c001,
+ 0x0902c101,
+ 0x0940c00e,
+ 0x28fecff7,
+ 0x438cb520,
+ 0x09820d9e,
+ 0xffb40d02,
+ 0xf2109aae,
+ 0xc020aa79,
+ 0x75002a00,
+ 0x91a2c000,
+ 0x0902c101,
+ 0x0940c006,
+ 0x09820da2,
+ 0xffb40d02,
+ 0xc0009a9e,
+ 0xc1019160,
+ 0xc0860902,
+ 0x0da20940,
+ 0x0d020982,
+ 0x9a93ffb4,
+ 0x0902c1c1,
+ 0x0940c006,
+ 0x09820dce,
+ 0xffb40d02,
+ 0xc0149802,
+ 0xc03099e3,
+ 0xb4c10c8a,
+ 0xb780c000,
+ 0x0c884d8c,
+ 0xc000b481,
+ 0x0882cc01,
+ 0xb4211c88,
+ 0xc034c000,
+ 0xb7209bfa,
+ 0xd0314d8c,
+ 0x75002a10,
+ 0xb55f0902,
+ 0xc0007f6c,
+ 0xc43a91c2,
+ 0xb4c10c82,
+ 0xb104c000,
+ 0xc0114220,
+ 0xc03a3a00,
+ 0xb4810c82,
+ 0xd211c000,
+ 0x75002a10,
+ 0x9342c000,
+ 0x0c8ac450,
+ 0xc000b4c1,
+ 0x4240b102,
+ 0xc00e9e53,
+ 0xb57f29fc,
+ 0x00877f6c,
+ 0xb4c11c84,
+ 0xb104c000,
+ 0x2a104220,
+ 0xc0007500,
+ 0x589090a4,
+ 0x7f6cb53f,
+ 0x4708b720,
+ 0x430cb780,
+ 0xb5807440,
+ 0xc0004d8c,
+ 0xc4389204,
+ 0xb4c10c82,
+ 0xb104c000,
+ 0x2a714220,
+ 0xc0383a04,
+ 0xb4810c82,
+ 0xc000c000,
+ 0x74429200,
+ 0x91a4c000,
+ 0x0c82c438,
+ 0xc000b4c1,
+ 0x4220b104,
+ 0xc0382a71,
+ 0xb4810c82,
+ 0xc030c000,
+ 0xb4c10c8a,
+ 0xc801c000,
+ 0xc0020a02,
+ 0xb4810a00,
+ 0x08bec000,
+ 0x0c94c004,
+ 0xc000b421,
+ 0x0d82c0c0,
+ 0x99f7ffb4,
+ 0x4112b760,
+ 0x428cb780,
+ 0x9c629ea4,
+ 0x468cb720,
+ 0x0caec034,
+ 0xb4215891,
+ 0x0a02c000,
+ 0xc0007500,
+ 0xb73f9244,
+ 0x74407f6c,
+ 0x91a2c000,
+ 0x091ed031,
+ 0x0dea2941,
+ 0x0d020982,
+ 0xc1211940,
+ 0xffb43900,
+ 0xc01499ec,
+ 0xb7859928,
+ 0x75006808,
+ 0x478cb780,
+ 0x90a2c000,
+ 0xb5c52a79,
+ 0xc03e6808,
+ 0xb4810c82,
+ 0xb780c000,
+ 0x8702508c,
+ 0x418ab720,
+ 0xb55f0a82,
+ 0x2a087de4,
+ 0x08847500,
+ 0x418ab520,
+ 0x9362c000,
+ 0x5c0cb720,
+ 0x4292b720,
+ 0x0a18d111,
+ 0xa881da08,
+ 0x9e4c0c84,
+ 0x4002ba24,
+ 0x71025891,
+ 0x4292b520,
+ 0x9138c000,
+ 0x420ab780,
+ 0x428ab5a0,
+ 0xb5800a04,
+ 0xb73f420a,
+ 0x76407d74,
+ 0x90e2ffe0,
+ 0x438cb780,
+ 0x7d3ed3ff,
+ 0x9024ffe0,
+ 0x7f6cb75f,
+ 0xffdf7480,
+ 0xb79f9384,
+ 0xb7bf7cee,
+ 0xb7df7d6e,
+ 0xb7ff7dee,
+ 0xc0027e6e,
+ 0x9c228c60,
+ 0xc004a605,
+ 0xc8298420,
+ 0xc4d20ca2,
+ 0xc0300ca0,
+ 0xe133ac3d,
+ 0xc0388d00,
+ 0xc030a45d,
+ 0xc038ac3d,
+ 0xc010a45d,
+ 0xc018ac3d,
+ 0xc010a45d,
+ 0xc018ac25,
+ 0xb740a445,
+ 0xf0004504,
+ 0xb7a0aa41,
+ 0x9e2d5c0c,
+ 0x5a08c200,
+ 0x0940d093,
+ 0xe0209ea9,
+ 0x0dc2a96d,
+ 0x0d42c008,
+ 0xff9409c2,
+ 0xb7809b4e,
+ 0xf2085e0c,
+ 0x8502a8a1,
+ 0xa8a6f208,
+ 0xa103f208,
+ 0xa085f208,
+ 0xa929f208,
+ 0xa08af208,
+ 0xa92ef208,
+ 0xa8b2f208,
+ 0xa10df208,
+ 0xa8b1f248,
+ 0xa112f208,
+ 0xa096f208,
+ 0xa09af208,
+ 0xc036090a,
+ 0x08c00c92,
+ 0xa085f248,
+ 0xc000b441,
+ 0x1c8c0a16,
+ 0xc000b481,
+ 0x8c00f031,
+ 0x8d80e131,
+ 0xb55f9ea3,
+ 0x0d027ffc,
+ 0x4078b960,
+ 0xa103f208,
+ 0xd1229dba,
+ 0x9e2d5d0d,
+ 0xa8e5f029,
+ 0x2caed012,
+ 0xd1265c88,
+ 0x9e4a5908,
+ 0xaa4de038,
+ 0x28bc0d04,
+ 0x324250a8,
+ 0xffffa241,
+ 0xf01091c1,
+ 0xc036aa61,
+ 0xb4810c8e,
+ 0xb73fc000,
+ 0x1c847fec,
+ 0xc000b421,
+ 0x9afbc034,
+ 0x08c2c801,
+ 0x0890c112,
+ 0x0a42c809,
+ 0x0a20c5fc,
+ 0x0cbec032,
+ 0x428cb580,
+ 0xc000b421,
+ 0x0ce00a3e,
+ 0xc000b481,
+ 0xc0800882,
+ 0xb4210cc6,
+ 0xc801c000,
+ 0xc1120a42,
+ 0xc0320a18,
+ 0xb4810cc2,
+ 0x08c0c000,
+ 0xb4210cdc,
+ 0x0a02c000,
+ 0x0cc6c080,
+ 0xc000b481,
+ 0x08c2c801,
+ 0x0890c114,
+ 0x0cc6c032,
+ 0xc000b421,
+ 0x0cd80a44,
+ 0xc000b481,
+ 0xc0800882,
+ 0xb4210cc6,
+ 0xc801c000,
+ 0xc1140a42,
+ 0xc0320a18,
+ 0xb4810cca,
+ 0x08c8c000,
+ 0xb4210cd4,
+ 0x0a02c000,
+ 0x0cc6c080,
+ 0xc000b481,
+ 0x7aeeb79f,
+ 0x7b6eb7bf,
+ 0x8c60c004,
+ 0x08829c22,
+ 0x0c92c001,
+ 0x0c84c332,
+ 0xc000b421,
+ 0x4c8cb780,
+ 0x0a10873e,
+ 0x9c8bc040,
+ 0xc238b780,
+ 0xb7809c22,
+ 0x0a40468c,
+ 0x7520c00c,
+ 0x468cb580,
+ 0x48b4b340,
+ 0xb5408502,
+ 0x9c22469c,
+ 0x4c8cb780,
+ 0xa895f208,
+ 0xa88ef208,
+ 0xa905f208,
+ 0xa99df208,
+ 0xa906f288,
+ 0xa09df208,
+ 0xa096f208,
+ 0xa10df208,
+ 0xa185f208,
+ 0xa899f208,
+ 0xa892f208,
+ 0xa909f208,
+ 0xa981f248,
+ 0xa081f248,
+ 0xa09af208,
+ 0xa111f208,
+ 0xa189f208,
+ 0xa881f288,
+ 0xa995f248,
+ 0xa89ef248,
+ 0xa90df248,
+ 0xa085f288,
+ 0xa18df248,
+ 0xa999f248,
+ 0xa082f288,
+ 0xa115f248,
+ 0xa891f248,
+ 0xa191f248,
+ 0xa989f288,
+ 0xa89af288,
+ 0xa099f248,
+ 0xa10af288,
+ 0xa19df248,
+ 0xa99df288,
+ 0xa09ef288,
+ 0xa895f288,
+ 0xa892f288,
+ 0xa90df288,
+ 0xa099f288,
+ 0xa096f288,
+ 0xa111f288,
+ 0xa18df288,
+ 0xa60d9c22,
+ 0x0a42c801,
+ 0x0a00cb10,
+ 0x0ceac032,
+ 0xc000b481,
+ 0x08c2c801,
+ 0x0888c010,
+ 0xb4210c84,
+ 0xc008c000,
+ 0xc0020a42,
+ 0xb4811ce4,
+ 0xc008c000,
+ 0xc03008c2,
+ 0xb4220d0e,
+ 0xc450c000,
+ 0xc0080c82,
+ 0xb4811a40,
+ 0xb101c000,
+ 0xc0024220,
+ 0xb52038c0,
+ 0xc0504e0c,
+ 0xb4210c82,
+ 0xc0c0c000,
+ 0x09920d82,
+ 0x0d02c008,
+ 0x0902c008,
+ 0x988fffd4,
+ 0x0c86c450,
+ 0xb4810a02,
+ 0xb104c000,
+ 0xc0084220,
+ 0xc0300a02,
+ 0xb4820d0e,
+ 0x0c84c000,
+ 0x1a00c008,
+ 0xc000b481,
+ 0x4220b105,
+ 0x5a35c280,
+ 0x0882c801,
+ 0xc00e08c0,
+ 0xc2802afc,
+ 0xd0725a90,
+ 0x9ead2b4e,
+ 0x0c8ac030,
+ 0xc000b421,
+ 0x0c840a42,
+ 0xc000b481,
+ 0xb7c07740,
+ 0xc0015e0c,
+ 0xd0319002,
+ 0x0dea0ede,
+ 0x0d020982,
+ 0xd0512ac1,
+ 0xc1211950,
+ 0xff943900,
+ 0xf2489be2,
+ 0x018ba9c6,
+ 0x5a8dc280,
+ 0x9eaa1a84,
+ 0x3d00c021,
+ 0x9944ff94,
+ 0xaa45f248,
+ 0x16dcd010,
+ 0xf248024a,
+ 0xc450a245,
+ 0x0a020c86,
+ 0xc000b481,
+ 0x4220b104,
+ 0xc0340a6e,
+ 0xb4810c9e,
+ 0xb720c000,
+ 0xf2485c0c,
+ 0xb720aa45,
+ 0xd0534635,
+ 0xf2101940,
+ 0xc08088ab,
+ 0xc2800ca2,
+ 0xb5805a0c,
+ 0xb4a1420c,
+ 0xb785c000,
+ 0x75005a08,
+ 0x9262c003,
+ 0x590cb721,
+ 0x578cb781,
+ 0x7c40c030,
+ 0xb5810a04,
+ 0xc000578c,
+ 0xc0349082,
+ 0xb72098c3,
+ 0xb720538c,
+ 0xb78141b5,
+ 0xb740578c,
+ 0x9e49442d,
+ 0x71046243,
+ 0x90b8c000,
+ 0xb5458506,
+ 0xb7856018,
+ 0x75005b08,
+ 0x5e94b7a0,
+ 0x9262c000,
+ 0x550cb7a0,
+ 0xa83df210,
+ 0xa9a1f208,
+ 0x9e840d86,
+ 0xf2089c62,
+ 0xf250a021,
+ 0x9eaba825,
+ 0x9e840986,
+ 0xb7859c62,
+ 0x75005b08,
+ 0x9164c000,
+ 0x5514b760,
+ 0xa825f210,
+ 0x9c629e84,
+ 0xc0000281,
+ 0xb7859220,
+ 0x75005a88,
+ 0x9102c000,
+ 0x560cb780,
+ 0xaa81f208,
+ 0x90c0c000,
+ 0x568cb780,
+ 0xaa8df208,
+ 0x590cb720,
+ 0x4129b780,
+ 0x03037500,
+ 0x9264c000,
+ 0x5b08b785,
+ 0xc0007500,
+ 0xf25090c4,
+ 0x9ea4aa21,
+ 0xb7409c62,
+ 0xf210421c,
+ 0xe320aa35,
+ 0x9ea489a3,
+ 0xf2109c62,
+ 0x9eabaa39,
+ 0x9ea4018d,
+ 0xb7809c62,
+ 0xc080548c,
+ 0xd2c80ca6,
+ 0xb4a1aa91,
+ 0xc002c000,
+ 0xffb40d92,
+ 0x700a9bbb,
+ 0x9364ffff,
+ 0x09c20d86,
+ 0xc1210d0a,
+ 0xff940902,
+ 0xb780989e,
+ 0xf2485c0c,
+ 0xc0a1a992,
+ 0x0d040d02,
+ 0xff9409c2,
+ 0xc0c09889,
+ 0x09920d82,
+ 0x09420d42,
+ 0x9b89ffb4,
+ 0xc0300a42,
+ 0xb4810c8e,
+ 0xb79fc000,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0xb7009c22,
+ 0x76c05c0c,
+ 0x0d820c02,
+ 0x9342c000,
+ 0x438cb780,
+ 0x0880d131,
+ 0x4033b720,
+ 0x4f94b500,
+ 0x5014b500,
+ 0x4994b500,
+ 0x76402c88,
+ 0x2a7ecdff,
+ 0x438cb580,
+ 0xc0008522,
+ 0x85129062,
+ 0x4b9cb540,
+ 0xb74074c0,
+ 0xc0005a94,
+ 0xb78092e2,
+ 0x8502438c,
+ 0xa8c1d810,
+ 0x501cb540,
+ 0x431cb540,
+ 0x5a9cb541,
+ 0x4c1cb540,
+ 0x499cb540,
+ 0x4f8cb520,
+ 0x2a7ecdff,
+ 0x438cb580,
+ 0x0880d131,
+ 0x4033b720,
+ 0x430cb780,
+ 0x2c14d012,
+ 0xc0080089,
+ 0x75002a00,
+ 0x28fdcffa,
+ 0x430cb520,
+ 0x92c2c000,
+ 0x438cb780,
+ 0xc8007600,
+ 0xb5803a00,
+ 0xc000438c,
+ 0x850690e4,
+ 0x6c18b545,
+ 0x9100c000,
+ 0x6c08b785,
+ 0x3a080d86,
+ 0x6c08b585,
+ 0x6c08b745,
+ 0x2a22d011,
+ 0xc0007500,
+ 0xb7809102,
+ 0xc010438c,
+ 0xb5803a00,
+ 0xb780438c,
+ 0x75004c0c,
+ 0x90e2c000,
+ 0x430cb780,
+ 0xb5802a79,
+ 0xb720430c,
+ 0xb7204314,
+ 0x9e4c4b8c,
+ 0xd3f17902,
+ 0xc2002a2e,
+ 0xb5855a05,
+ 0xc0006c08,
+ 0xd2119102,
+ 0xb5803e10,
+ 0xc000430c,
+ 0xcff690c0,
+ 0xb5202cfd,
+ 0xb7204314,
+ 0xd1114314,
+ 0x75002e10,
+ 0x90a2c000,
+ 0xb5408506,
+ 0x76004a1c,
+ 0x5e1dd0a2,
+ 0xd0020882,
+ 0x2a040892,
+ 0xc0007902,
+ 0xd1119102,
+ 0xb5803e10,
+ 0xc000430c,
+ 0x76c09120,
+ 0x90c2c000,
+ 0x3c80c020,
+ 0x4314b520,
+ 0x430cb720,
+ 0x2a12d011,
+ 0xc0007500,
+ 0xb78090e2,
+ 0x32184b8c,
+ 0x90c0c000,
+ 0x4b8cb780,
+ 0x22184a7d,
+ 0x430cb580,
+ 0x430cb720,
+ 0x2a14d011,
+ 0xc0007500,
+ 0xd0119102,
+ 0xb5803a12,
+ 0xc000430c,
+ 0x28f990a0,
+ 0x430cb520,
+ 0xa8c1d810,
+ 0x4f9cb740,
+ 0xaa45d810,
+ 0x88a3e210,
+ 0x5a11c200,
+ 0xc0037048,
+ 0xd1119036,
+ 0xda080a08,
+ 0xb720a882,
+ 0xb740430c,
+ 0x5c91498c,
+ 0xb7409e4c,
+ 0x38884394,
+ 0x430cb520,
+ 0xc1007088,
+ 0xb5403d00,
+ 0xc0004394,
+ 0xb7219278,
+ 0x9e545a8c,
+ 0xc0017440,
+ 0xb5803a04,
+ 0xc000438c,
+ 0xc0119124,
+ 0xb5403d04,
+ 0x85064394,
+ 0x5a9cb541,
+ 0x088cd112,
+ 0x404bb780,
+ 0x4f8cb720,
+ 0x5a11c200,
+ 0xc0007048,
+ 0xb7809116,
+ 0xc001438c,
+ 0xb5803a10,
+ 0xb780438c,
+ 0xc200404b,
+ 0x1a085a11,
+ 0xc0007048,
+ 0xb7809116,
+ 0xc001438c,
+ 0xb5803a40,
+ 0xb720438c,
+ 0xd1115014,
+ 0xda080a08,
+ 0x9e4ca881,
+ 0x71025891,
+ 0x9102c000,
+ 0x438cb780,
+ 0x3a00c005,
+ 0x438cb580,
+ 0x438cb780,
+ 0x3a00c084,
+ 0x438cb580,
+ 0x91a0c000,
+ 0x430cb780,
+ 0x438cb720,
+ 0xb5802a75,
+ 0xcffa430c,
+ 0xb52028fd,
+ 0xb740438c,
+ 0xf012430c,
+ 0xc0002922,
+ 0xb7809102,
+ 0xc080438c,
+ 0xb5803a00,
+ 0xb780438c,
+ 0xb720498c,
+ 0xb7204b94,
+ 0x0a04500c,
+ 0x498cb580,
+ 0x78889e4c,
+ 0xb5200884,
+ 0xc000500c,
+ 0x76809222,
+ 0x91c4c000,
+ 0x470cb720,
+ 0x3a22d011,
+ 0x430cb580,
+ 0xb5408506,
+ 0x28f94c1c,
+ 0x470cb520,
+ 0x0a08d111,
+ 0xa881da08,
+ 0x5014b720,
+ 0x18c0c002,
+ 0x5a7fc080,
+ 0x5a71c200,
+ 0x9e4c0098,
+ 0x470cb740,
+ 0x71025893,
+ 0x478cb540,
+ 0x9044c001,
+ 0x438cb740,
+ 0xc0800205,
+ 0x75002a00,
+ 0x9342c000,
+ 0x4f94b720,
+ 0x76420205,
+ 0x3a00c201,
+ 0x438cb580,
+ 0x921cc000,
+ 0x0a0cd111,
+ 0xa881da08,
+ 0x9e4c0c8c,
+ 0x71025891,
+ 0x90d6c000,
+ 0x3900ca01,
+ 0x438cb540,
+ 0x5014b720,
+ 0x0a08d111,
+ 0xa881da08,
+ 0x58919e4c,
+ 0xc0007102,
+ 0xb7209278,
+ 0x0203438c,
+ 0x2a00c005,
+ 0xc0007500,
+ 0xc1019162,
+ 0xb5203880,
+ 0x8506438c,
+ 0x4a9cb540,
+ 0x4b1cb540,
+ 0xc0007600,
+ 0xb7809122,
+ 0x750c500c,
+ 0x9122c000,
+ 0x92a0c000,
+ 0x500cb780,
+ 0xc000750a,
+ 0xb7809204,
+ 0x75004a8c,
+ 0x9162c000,
+ 0x438cb780,
+ 0xb5408502,
+ 0xc4014a9c,
+ 0xb5803a00,
+ 0xb780438c,
+ 0x7506500c,
+ 0x9204c000,
+ 0x4b0cb780,
+ 0xc0007500,
+ 0xb7809162,
+ 0x8502438c,
+ 0x4b1cb540,
+ 0x3a00c800,
+ 0x438cb580,
+ 0x5014b720,
+ 0x0a08d111,
+ 0xa881da08,
+ 0x58919e4c,
+ 0xc0007102,
+ 0xb7809158,
+ 0x85024f8c,
+ 0x501cb540,
+ 0xb5800a04,
+ 0xb7804f8c,
+ 0x7500430c,
+ 0xc0008502,
+ 0xb7809144,
+ 0xc400438c,
+ 0x75002a00,
+ 0xe0018502,
+ 0x9d438522,
+ 0xb7859c22,
+ 0x75005a88,
+ 0x5a0cb760,
+ 0x93a4c001,
+ 0x5a8cb720,
+ 0x432db780,
+ 0x75002a20,
+ 0x4208b740,
+ 0x5f1cb740,
+ 0x9082c000,
+ 0x601cb740,
+ 0xc0409d53,
+ 0xb720a8c5,
+ 0xd0315a14,
+ 0xc0021a24,
+ 0xd0126a72,
+ 0xd231691d,
+ 0x9e4b0c90,
+ 0xb5407500,
+ 0xd2514035,
+ 0xb5800c90,
+ 0xd03c402d,
+ 0xb4114100,
+ 0xb7804e38,
+ 0xc0b8402d,
+ 0xc0007538,
+ 0xc05c90dc,
+ 0xb5408572,
+ 0xd011403d,
+ 0xd2726a2d,
+ 0xd23108b0,
+ 0xb54008b8,
+ 0xb5804035,
+ 0xd231404d,
+ 0xf2080a30,
+ 0x7500aa01,
+ 0x90c2c000,
+ 0x0cb6c03e,
+ 0xc000b481,
+ 0x0a30d251,
+ 0xa881f208,
+ 0x0caac03e,
+ 0xc000b421,
+ 0x0a38d231,
+ 0xaa01f208,
+ 0xc0007500,
+ 0xc2009122,
+ 0xc8015a40,
+ 0x0c903a00,
+ 0xc000b481,
+ 0x0a38d251,
+ 0xaa01f208,
+ 0xc0007500,
+ 0xc03e90c2,
+ 0xb4810ca2,
+ 0xd271c000,
+ 0xf2080a30,
+ 0xc03ea881,
+ 0xb4210c8a,
+ 0x9c22c000,
+ 0xc43ea685,
+ 0x0a020c92,
+ 0xc000b481,
+ 0x4220b103,
+ 0x588cb780,
+ 0xa885da08,
+ 0xa909da08,
+ 0xa189da08,
+ 0xa081da08,
+ 0xa105da08,
+ 0x0a020cd0,
+ 0xc000b481,
+ 0x4220b103,
+ 0x580cb780,
+ 0x588cb7c0,
+ 0xa885da08,
+ 0xda089ea5,
+ 0xda08a88a,
+ 0xc008a189,
+ 0x76c02d80,
+ 0xa081da08,
+ 0xa086da08,
+ 0x9102c00b,
+ 0x4708b780,
+ 0xb5800a04,
+ 0xc4504708,
+ 0x0a020ca6,
+ 0xc000b481,
+ 0x4220b103,
+ 0xc0310087,
+ 0x02072880,
+ 0x2a7cc00f,
+ 0x5861d0a4,
+ 0x59c1d228,
+ 0xcffe0287,
+ 0x0c882afc,
+ 0xb4810a02,
+ 0xb103c000,
+ 0xd1a64220,
+ 0x010759c1,
+ 0x297ccffe,
+ 0xb4810cbc,
+ 0xb103c000,
+ 0x00874220,
+ 0x708ab782,
+ 0x2880c0fc,
+ 0x5b19d0a4,
+ 0x5a90b725,
+ 0x283ed0f1,
+ 0x9ea21208,
+ 0xb5027640,
+ 0xba12708a,
+ 0xc0004003,
+ 0xb78590e4,
+ 0x75005b08,
+ 0x93a4c002,
+ 0x5b08b785,
+ 0xe3317500,
+ 0xd01181b3,
+ 0xb7800127,
+ 0x76025a8c,
+ 0xd0010c82,
+ 0xf2080c92,
+ 0x9e4ca899,
+ 0x78482884,
+ 0x5514b760,
+ 0x90e2c000,
+ 0xaa69d810,
+ 0xd8100a04,
+ 0xf010a269,
+ 0xf012a96b,
+ 0xf010a96c,
+ 0xe2108026,
+ 0xf01082a5,
+ 0xf010a269,
+ 0xb782a0ed,
+ 0x75005008,
+ 0xd0020882,
+ 0x76020892,
+ 0xd0020a02,
+ 0x78480a42,
+ 0x90c2c000,
+ 0x8542c07c,
+ 0xa143da08,
+ 0xf0107602,
+ 0xc000a973,
+ 0xda1090c4,
+ 0xc000aa21,
+ 0xda089080,
+ 0xe310aa41,
+ 0xd81080a1,
+ 0xf010aa6d,
+ 0x7606a0f1,
+ 0xd8100a04,
+ 0xc000a26d,
+ 0xb7809124,
+ 0x0a044788,
+ 0x4788b580,
+ 0x9200c006,
+ 0xb5408502,
+ 0xc0064798,
+ 0xb7209160,
+ 0xb7205a8c,
+ 0xd3305514,
+ 0xb7800127,
+ 0xc301432d,
+ 0xb7408122,
+ 0x2a044545,
+ 0xf0107500,
+ 0xf3108027,
+ 0x05838221,
+ 0x454db580,
+ 0x90a2c001,
+ 0xc0007602,
+ 0xda1090c4,
+ 0xc000aa21,
+ 0xda089080,
+ 0xd810aa41,
+ 0x7606a27d,
+ 0x9082c001,
+ 0xc0007600,
+ 0x768091a4,
+ 0xa973d810,
+ 0x8d2ae002,
+ 0x8025f210,
+ 0xa271d810,
+ 0x92c0c000,
+ 0xd8507680,
+ 0xe002a967,
+ 0xc0008d26,
+ 0xda109160,
+ 0x7680aa21,
+ 0xa967d850,
+ 0xa27dd810,
+ 0x8d2ae002,
+ 0x8025f210,
+ 0xa265d850,
+ 0x5c08b785,
+ 0xc0007500,
+ 0xb78092e2,
+ 0x7008410a,
+ 0x9244c000,
+ 0xb5458502,
+ 0xc43a5c18,
+ 0x0a020c82,
+ 0xc000b481,
+ 0x4220b103,
+ 0x29fecfef,
+ 0x0c82c03a,
+ 0xc000b461,
+ 0x410ab780,
+ 0x08827008,
+ 0x0892d002,
+ 0x0a027606,
+ 0x0a42d001,
+ 0xc0007848,
+ 0x85069242,
+ 0x5c18b545,
+ 0x0c82c43a,
+ 0xb4810a02,
+ 0xb103c000,
+ 0xc0114220,
+ 0xc03a3980,
+ 0xb4610c82,
+ 0x7780c000,
+ 0x9162c001,
+ 0xc0007600,
+ 0xda0892c4,
+ 0xf010aa41,
+ 0xd810a967,
+ 0xd810a8f5,
+ 0xf310a8fa,
+ 0x00828021,
+ 0xa0f5d810,
+ 0xd8100c84,
+ 0xf010a0fa,
+ 0xc000a265,
+ 0xda109280,
+ 0xf010aa21,
+ 0xd850a97b,
+ 0xd850a8e9,
+ 0xf310a8ee,
+ 0x00828021,
+ 0xa0e9d850,
+ 0xd8500c84,
+ 0xf010a0ee,
+ 0xd810a279,
+ 0xf010aa7d,
+ 0xf052a97f,
+ 0xf050a960,
+ 0xf310a9e7,
+ 0xf0508021,
+ 0xf010a96f,
+ 0xf310a27d,
+ 0xd8508223,
+ 0xf050a8e2,
+ 0xf010a261,
+ 0xe2108037,
+ 0x0c8480a1,
+ 0xa0e2d850,
+ 0xa265f050,
+ 0xa0edf050,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c40,
+ 0xb781a605,
+ 0xc008590c,
+ 0x75002a00,
+ 0x9282c000,
+ 0x550cb780,
+ 0x5e8cb720,
+ 0xa982f208,
+ 0x452db700,
+ 0x9c629e84,
+ 0x590cb781,
+ 0x400ab500,
+ 0x2a7dcff6,
+ 0x590cb581,
+ 0x590cb781,
+ 0x2a00c010,
+ 0xc0017500,
+ 0xb7a091c2,
+ 0xb7a05e8c,
+ 0xf2085514,
+ 0x058ba825,
+ 0x9c629e84,
+ 0xaa21f248,
+ 0x9c629ea4,
+ 0x538cb720,
+ 0x6610b725,
+ 0x422bb780,
+ 0x70489e49,
+ 0x9222c000,
+ 0xa9a1f210,
+ 0xa83df208,
+ 0x9e840d86,
+ 0xf2489c62,
+ 0xf210aa25,
+ 0x058ba021,
+ 0x9ea40986,
+ 0xb7819c62,
+ 0xcfee590c,
+ 0xb5812a7d,
+ 0xb721590c,
+ 0x0203590c,
+ 0x2a00c020,
+ 0xc0007500,
+ 0xcfde90c2,
+ 0xb52128fd,
+ 0xb79f590c,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xf8399c22,
+ 0xb781a205,
+ 0xc030590c,
+ 0xc0007d00,
+ 0xb7809162,
+ 0xc0084d8c,
+ 0x75002a00,
+ 0x9082c000,
+ 0x9b92fff4,
+ 0x4d94b760,
+ 0x9ad8ff94,
+ 0xc0600a02,
+ 0xb4810ca2,
+ 0xb760c000,
+ 0xfff44d94,
+ 0xb78099eb,
+ 0xc01c4788,
+ 0xc0007534,
+ 0x85069104,
+ 0x6818b545,
+ 0xb5408502,
+ 0xb7854798,
+ 0x75005a08,
+ 0x9282c001,
+ 0x538cb780,
+ 0x4710b720,
+ 0xa88dda08,
+ 0x71029e4c,
+ 0x9044c001,
+ 0x590cb721,
+ 0xc0100203,
+ 0x75002a00,
+ 0x9102c000,
+ 0x3880c020,
+ 0x590cb521,
+ 0x9b5cfff4,
+ 0x590cb781,
+ 0x6608b725,
+ 0x4012b720,
+ 0xb5408502,
+ 0x08844718,
+ 0x6608b525,
+ 0x4112b520,
+ 0x3a00c018,
+ 0x590cb581,
+ 0x4d8cb780,
+ 0x7500c010,
+ 0x9084c000,
+ 0x9931fff4,
+ 0xaa1df9f8,
+ 0xa61d9c22,
+ 0x5c0cb780,
+ 0x08c0d131,
+ 0x402bb720,
+ 0x2890d092,
+ 0x03897640,
+ 0x92c2c004,
+ 0xb5458502,
+ 0x85026018,
+ 0x2a14d011,
+ 0xb5417500,
+ 0x8506579c,
+ 0x5a18b545,
+ 0x9082c000,
+ 0x5a98b545,
+ 0x2a10d111,
+ 0xc0007500,
+ 0xb5459082,
+ 0x02035b18,
+ 0x2a00c040,
+ 0xc0007500,
+ 0xb5459082,
+ 0xb7855b98,
+ 0x75005b08,
+ 0x5e94b7c0,
+ 0x91e2c002,
+ 0x5a88b785,
+ 0xc0027500,
+ 0xc8099144,
+ 0xc7c20a42,
+ 0xc8090a00,
+ 0xc7c408c2,
+ 0xc80908b0,
+ 0xc8680cc2,
+ 0xc8090cf0,
+ 0xc8940942,
+ 0xc8090910,
+ 0xc7b00d42,
+ 0xc8090d30,
+ 0xc75409c2,
+ 0xc80909b0,
+ 0xc7640dc2,
+ 0xc8090de0,
+ 0xc6ba0c42,
+ 0xc8090c40,
+ 0xc6880842,
+ 0xc8090810,
+ 0xc6a20ac2,
+ 0xc8090a80,
+ 0xc68e0ec2,
+ 0xc8090ed0,
+ 0xc8b80b42,
+ 0xf2100b70,
+ 0xf210a249,
+ 0xf210a0d1,
+ 0xf210a0d6,
+ 0xf210a159,
+ 0xf210a14e,
+ 0xf250a1dd,
+ 0xf250a1c2,
+ 0xf250a046,
+ 0xf210a049,
+ 0xf210a2c5,
+ 0xf250a2c2,
+ 0xb7a0a34d,
+ 0xf2105d0c,
+ 0x9eabaa4d,
+ 0x9c629ea4,
+ 0xaa39dbc8,
+ 0x548cb740,
+ 0xb5408502,
+ 0xd208409a,
+ 0xf248a8a1,
+ 0xc010a8be,
+ 0x75002a00,
+ 0xa0cdd808,
+ 0x4614b520,
+ 0x9102c000,
+ 0x590cb781,
+ 0x3a00c040,
+ 0x590cb581,
+ 0x5a08b785,
+ 0xc0057500,
+ 0xb7819042,
+ 0xc030590c,
+ 0xc0007d00,
+ 0xfff49082,
+ 0xb7209a91,
+ 0xf2c85394,
+ 0xb720aa65,
+ 0x7048434d,
+ 0x5e94b7c0,
+ 0xc0000683,
+ 0xf2509102,
+ 0xd132aa4d,
+ 0x9ea409f8,
+ 0xb7209c62,
+ 0x8502408a,
+ 0x5098b542,
+ 0xb5427440,
+ 0xb5425118,
+ 0xc0005198,
+ 0xda1090e2,
+ 0x7048aa35,
+ 0x9344c000,
+ 0x5a88b785,
+ 0xa9b6da10,
+ 0xa8c9f210,
+ 0x75008502,
+ 0x409ab540,
+ 0xe001850a,
+ 0x9d4f8d24,
+ 0x9e8c1d84,
+ 0xf2109c62,
+ 0x0d8aaa51,
+ 0x9c629ea4,
+ 0x90e0c000,
+ 0xaa51f210,
+ 0x9ea40d86,
+ 0xb7819c62,
+ 0xb720590c,
+ 0xb7a0408a,
+ 0x8502550c,
+ 0x6618b545,
+ 0x3a00c008,
+ 0x590cb581,
+ 0xaa41f210,
+ 0x08849eab,
+ 0x408ab520,
+ 0x9c629ea4,
+ 0x590cb720,
+ 0x4129b780,
+ 0x03037500,
+ 0x92e4c000,
+ 0xa9a1f208,
+ 0xa85df210,
+ 0x9e840d82,
+ 0xf2089c62,
+ 0xf250a021,
+ 0x9eaba845,
+ 0x9e840982,
+ 0xda089c62,
+ 0xb582aa21,
+ 0xc000708a,
+ 0xb7209180,
+ 0xd210560c,
+ 0xb740aa29,
+ 0xf31044bb,
+ 0xb5808021,
+ 0xd20844ab,
+ 0x7440a8c9,
+ 0x9122c000,
+ 0x450cb780,
+ 0xf2088506,
+ 0xc000a117,
+ 0xb78090c0,
+ 0xf208450c,
+ 0xb720a095,
+ 0xb780548c,
+ 0xb58241ab,
+ 0xb580708a,
+ 0xb580400a,
+ 0xc000410a,
+ 0xb7809100,
+ 0xda08450c,
+ 0xb520a899,
+ 0xb79f410a,
+ 0xb7bf7e6e,
+ 0xb7df7eee,
+ 0xb7ff7f6e,
+ 0xc0027fee,
+ 0x9c228c00,
+ 0xba1b9c22,
+ 0x9e594003,
+ 0xba039e5c,
+ 0xba124002,
+ 0x70404003,
+ 0xc0009e53,
+ 0x70069136,
+ 0x9158c000,
+ 0x72c4c812,
+ 0x9180c000,
+ 0x70029e51,
+ 0x90bcc000,
+ 0xc0009e82,
+ 0xcc1090a0,
+ 0x9e9a70c8,
+ 0x9c229e50,
+ 0x0787a61d,
+ 0x2efed3f1,
+ 0x09829eab,
+ 0x99edc014,
+ 0xd3f29eab,
+ 0x09862a8e,
+ 0x99e7c014,
+ 0x5a8cb720,
+ 0x5f9cb740,
+ 0x1952d014,
+ 0x432db780,
+ 0x290ed3f2,
+ 0x2a209e2d,
+ 0xc0207500,
+ 0x0183a96d,
+ 0x90c2c000,
+ 0x609cb740,
+ 0xa96dc020,
+ 0x0c9ec434,
+ 0xb4810a02,
+ 0xb107c000,
+ 0xd1224220,
+ 0xc0365e20,
+ 0x32280cfa,
+ 0xc000b481,
+ 0x5ca0d2a2,
+ 0x30d20c84,
+ 0xc000b421,
+ 0xc002093e,
+ 0xb4411ce0,
+ 0xb780c000,
+ 0x2a08508c,
+ 0xc00c7500,
+ 0xf0089262,
+ 0x2a20aa79,
+ 0xc00c7500,
+ 0xc00891a2,
+ 0xff940dc2,
+ 0x028198e3,
+ 0x5884c280,
+ 0xd2a49e8d,
+ 0xba2d5b43,
+ 0xd2a24003,
+ 0x9e695e7f,
+ 0x5a75c200,
+ 0xd3220218,
+ 0xd2245c84,
+ 0x9e8e5a8f,
+ 0x4003ba36,
+ 0x5e7fd322,
+ 0xc2009e71,
+ 0x02185a75,
+ 0x5b0fd224,
+ 0x0c9ec034,
+ 0xb42108c2,
+ 0xc004c000,
+ 0xff940d92,
+ 0xb78098bd,
+ 0xdffc420a,
+ 0x0a827d3e,
+ 0xc001280c,
+ 0xb7809004,
+ 0xdffc428a,
+ 0xc0007d3e,
+ 0xb7209344,
+ 0xb7805d8c,
+ 0xb720402b,
+ 0xb7206214,
+ 0xc200628c,
+ 0xd2265a11,
+ 0xe2105904,
+ 0xe22080a3,
+ 0x0b0280ab,
+ 0xb5a00d02,
+ 0xb5a0402b,
+ 0xc001404b,
+ 0x74029100,
+ 0x4300d011,
+ 0x4500d021,
+ 0x9022c001,
+ 0x0dc2c008,
+ 0x988cff94,
+ 0xc2800281,
+ 0x9e8a5884,
+ 0x4003ba12,
+ 0x5e7fd122,
+ 0xc2009e51,
+ 0x02185a79,
+ 0x590bd224,
+ 0x5b43c280,
+ 0x5884c300,
+ 0x4002ba31,
+ 0x5a7fc300,
+ 0x5a79c200,
+ 0xc2000268,
+ 0xb7805b0b,
+ 0xdffc420a,
+ 0xb7207d3e,
+ 0xc000428a,
+ 0xdffc9144,
+ 0xd0117c7e,
+ 0xd0114100,
+ 0xc0044280,
+ 0xdffc91c2,
+ 0xc0007d3e,
+ 0xba2192e4,
+ 0xc000400a,
+ 0xb7409262,
+ 0xb7606204,
+ 0x1a046284,
+ 0x5904d226,
+ 0x9e2d9e55,
+ 0xa14ec830,
+ 0x010d9e3d,
+ 0xa34dc830,
+ 0x92a0c003,
+ 0x400aba09,
+ 0x9324c001,
+ 0x5d8cb720,
+ 0x6204b740,
+ 0x402bb780,
+ 0xc2009e2d,
+ 0x1a045a11,
+ 0x5904d226,
+ 0x628cb7a0,
+ 0xa14ec830,
+ 0x402bb780,
+ 0xd8219d5d,
+ 0xc200a9c6,
+ 0x1a045a11,
+ 0x5904d226,
+ 0xa9c1d800,
+ 0xba1b0d02,
+ 0xc8304003,
+ 0xba1ba34d,
+ 0xfff44002,
+ 0xb7809ad2,
+ 0xba24428a,
+ 0xd2264002,
+ 0x0a045904,
+ 0xd2269d47,
+ 0x9d535904,
+ 0xa9a6c850,
+ 0xa985ca50,
+ 0xc0010d02,
+ 0xb7409200,
+ 0xd0116204,
+ 0xd2281a12,
+ 0xd0a65984,
+ 0x9e2d5904,
+ 0x628cb7a0,
+ 0x0a12d011,
+ 0xa162c820,
+ 0xa9cec830,
+ 0x5904d226,
+ 0xc8309dd9,
+ 0xc820a9cd,
+ 0xba1ba361,
+ 0xba1b4003,
+ 0xfff44002,
+ 0xb7809aa2,
+ 0xba24428a,
+ 0xd2264002,
+ 0x0a045904,
+ 0xd2269d47,
+ 0x9eb25904,
+ 0xc8509d53,
+ 0xca50a9a6,
+ 0xba28a985,
+ 0xba1b4002,
+ 0xba1b4003,
+ 0xfff44002,
+ 0xba109a8a,
+ 0xd2a24002,
+ 0x0d725e04,
+ 0xba04124a,
+ 0x9e544002,
+ 0x7000c414,
+ 0x4002ba09,
+ 0x7048c410,
+ 0x00037400,
+ 0x9076c000,
+ 0xba001003,
+ 0xd3224002,
+ 0xd0205e04,
+ 0x124400d0,
+ 0x4002ba04,
+ 0xc4149e54,
+ 0xba097000,
+ 0xc4104002,
+ 0xd0a27048,
+ 0x9dc95e7d,
+ 0x00037400,
+ 0x0494c001,
+ 0xba295c87,
+ 0xc0004003,
+ 0x10039076,
+ 0x4002ba00,
+ 0xc2000220,
+ 0x024258fd,
+ 0x5a07c200,
+ 0x2efcc7fe,
+ 0x2a7cc7fe,
+ 0xc034093e,
+ 0xb4410c9e,
+ 0xd2a2c000,
+ 0xc2005c88,
+ 0xc0825a48,
+ 0xcffe0c92,
+ 0x32c228fc,
+ 0xc000b4a1,
+ 0x0d16c082,
+ 0xc000b4a2,
+ 0xb4a10c88,
+ 0x0d08c000,
+ 0xc000b4a2,
+ 0xb4a10c88,
+ 0x0d08c000,
+ 0xc000b4a2,
+ 0xb4a10c88,
+ 0x0d08c000,
+ 0xc000b4a2,
+ 0xb4a10c88,
+ 0x0d08c000,
+ 0xc000b4a2,
+ 0xb4a10c88,
+ 0x0d08c000,
+ 0xc000b4a2,
+ 0xb4a10c88,
+ 0x0d08c000,
+ 0xc000b4a2,
+ 0xb4a10c88,
+ 0x0d08c000,
+ 0xc000b4a2,
+ 0x418ab780,
+ 0x7d3edffc,
+ 0x9184c000,
+ 0xc0340a4a,
+ 0xb4810c9e,
+ 0xc082c000,
+ 0x9e790d5a,
+ 0xc000b422,
+ 0x0c9ec034,
+ 0xc000b4e1,
+ 0x7e6eb79f,
+ 0x7eeeb7bf,
+ 0x7f6eb7df,
+ 0x7feeb7ff,
+ 0x8c00c002,
+ 0xc01c9c22,
+ 0x9e587cfe,
+ 0x93e4c000,
+ 0x1a02d011,
+ 0xc0007506,
+ 0xd01193f4,
+ 0x75061a0a,
+ 0x90d2c000,
+ 0x5904d026,
+ 0x9120c001,
+ 0x1a02d031,
+ 0xc000751e,
+ 0xd03390d2,
+ 0xc0010900,
+ 0xc0009000,
+ 0xd0535a04,
+ 0xc0001940,
+ 0xd0119340,
+ 0x75061a02,
+ 0x90b2c000,
+ 0xc0008522,
+ 0xd0119240,
+ 0x75261a0a,
+ 0x9172c000,
+ 0x0a0ad031,
+ 0x58fdc200,
+ 0xd2260242,
+ 0xc0005907,
+ 0xd0139080,
+ 0x9d43190c,
+ 0xb7809c22,
+ 0xf208558c,
+ 0xd010a882,
+ 0x743d1432,
+ 0x90b6c000,
+ 0xc000087b,
+ 0x740690e0,
+ 0xb302850a,
+ 0x9d434478,
+ 0xa903f208,
+ 0x8021e210,
+ 0x08fe0a0a,
+ 0x7008c012,
+ 0x7002c010,
+ 0xb7209c22,
+ 0x85025494,
+ 0x41cbb720,
+ 0xa17fd810,
+ 0xa173d810,
+ 0xb7808502,
+ 0xf010558c,
+ 0xd810a167,
+ 0xd810a17b,
+ 0xd850a177,
+ 0xf010a167,
+ 0xd850a17b,
+ 0xd850a16f,
+ 0xd850a16b,
+ 0xf050a163,
+ 0xf050a167,
+ 0xf010a163,
+ 0xf050a17f,
+ 0xf050a16f,
+ 0xf010a16b,
+ 0xda08a0e1,
+ 0xda08a11f,
+ 0xf208a113,
+ 0xda08a107,
+ 0xda08a11b,
+ 0xda48a117,
+ 0xf208a107,
+ 0xda48a11b,
+ 0xda48a10f,
+ 0xda48a10b,
+ 0xf248a103,
+ 0xb720a107,
+ 0xf24841cb,
+ 0xf208a103,
+ 0xf248a11f,
+ 0xf208a10f,
+ 0xf248a081,
+ 0x9c22a10b,
+ 0x558cb780,
+ 0xa8e1f010,
+ 0xa081f208,
+ 0xa8f2d810,
+ 0xa092da08,
+ 0xa8e5d850,
+ 0xa085da48,
+ 0xa8e6f050,
+ 0xa086f248,
+ 0xa8e1f050,
+ 0xa081f248,
+ 0xa8fed810,
+ 0xa09eda08,
+ 0xa8f9f010,
+ 0xa099f208,
+ 0xa8e6f010,
+ 0xa086f208,
+ 0xa8e1d850,
+ 0xa081da48,
+ 0xa8fad810,
+ 0xa09ada08,
+ 0xa8edd850,
+ 0xa08dda48,
+ 0xa8f6d810,
+ 0xa096da08,
+ 0xa8e9d850,
+ 0xa089da48,
+ 0xa8eef050,
+ 0xa08ef248,
+ 0xa8fdf010,
+ 0x5694b720,
+ 0xa09df208,
+ 0x41ddb740,
+ 0xaa69f050,
+ 0x8120c301,
+ 0x41ddb540,
+ 0xaa61f050,
+ 0x8821f310,
+ 0xb5808502,
+ 0xd81040cd,
+ 0x8502a173,
+ 0xf0100802,
+ 0xd810a167,
+ 0xd810a17b,
+ 0xd850a177,
+ 0xf010a167,
+ 0xd850a17b,
+ 0xd850a16f,
+ 0xf050a16b,
+ 0x9c22a16b,
+ 0x9e5c74c2,
+ 0x91c4c001,
+ 0x590cb780,
+ 0xa885d208,
+ 0x85027440,
+ 0x5018b542,
+ 0x91a4c001,
+ 0x558cb780,
+ 0x5394b720,
+ 0xa881da48,
+ 0x42cdb740,
+ 0x548cb780,
+ 0x5694b740,
+ 0xf2486095,
+ 0xf010a917,
+ 0xb740a94d,
+ 0xb78044c5,
+ 0xc201444d,
+ 0xe2108124,
+ 0xf31088a3,
+ 0x70488a21,
+ 0x91fcc000,
+ 0x5008b562,
+ 0x9160c000,
+ 0xc00074c0,
+ 0xb7209104,
+ 0xda08548c,
+ 0xb580aa01,
+ 0xb70241ab,
+ 0x9c225008,
+ 0x0e82a61d,
+ 0x4002ba3b,
+ 0x72cacc12,
+ 0x9e569eb8,
+ 0x66b19e96,
+ 0x754012ac,
+ 0x4003ba01,
+ 0x933cc000,
+ 0x018b058b,
+ 0xc0340d02,
+ 0xd3229bda,
+ 0x71485e0b,
+ 0xc0009e85,
+ 0xd324931a,
+ 0x01ee5990,
+ 0xc0340d02,
+ 0x9e6c9bce,
+ 0xd0246041,
+ 0xc0005a93,
+ 0xb7809180,
+ 0xda08538c,
+ 0xd010a88a,
+ 0x0d021590,
+ 0x9bbfc034,
+ 0x9e689e85,
+ 0x7e6eb79f,
+ 0x7eeeb7bf,
+ 0x7f6eb7df,
+ 0x7feeb7ff,
+ 0x8c00c002,
+ 0xa61d9c22,
+ 0xb7e08440,
+ 0xda105394,
+ 0xb7e0aa75,
+ 0x753a548c,
+ 0x558cb740,
+ 0xaa61f208,
+ 0xd00a0c82,
+ 0xb53f0c92,
+ 0x75047e74,
+ 0xaa5dd808,
+ 0xa8c1d848,
+ 0x7eecb59f,
+ 0xa8def008,
+ 0x0b029e8d,
+ 0x4003ba2d,
+ 0x7f74b53f,
+ 0x92a4c001,
+ 0x5694b7c0,
+ 0xa94bf210,
+ 0xaa4df210,
+ 0xf3107740,
+ 0xc00088a1,
+ 0xf048921c,
+ 0x9e6ba9c6,
+ 0xc0340d02,
+ 0xda109b7e,
+ 0xf310a96b,
+ 0x6009882b,
+ 0xd41212d0,
+ 0xf208714c,
+ 0x7502aa69,
+ 0x7e6cb79f,
+ 0xd0090882,
+ 0x78480892,
+ 0x93a2c001,
+ 0x7d6ab77f,
+ 0x7f74b73f,
+ 0xf2509eab,
+ 0xba1ba949,
+ 0x05034002,
+ 0xfff4048b,
+ 0xc0019b71,
+ 0xb72092c0,
+ 0xb7405694,
+ 0xb780405d,
+ 0x774041cd,
+ 0x88a1f310,
+ 0x915cc000,
+ 0xa96bda10,
+ 0x464db780,
+ 0x88abe310,
+ 0x12d86243,
+ 0xaa69f208,
+ 0xc0007502,
+ 0xda0890f2,
+ 0x7500aa69,
+ 0x9222c000,
+ 0x45cdb740,
+ 0x7d6ab77f,
+ 0x7f74b73f,
+ 0xba1b9eab,
+ 0x05034002,
+ 0xfff4048b,
+ 0xc0009b45,
+ 0xda109140,
+ 0x9eaba96b,
+ 0x89abe310,
+ 0xc0340d02,
+ 0x03019b28,
+ 0xc0120802,
+ 0xb79f7180,
+ 0xb7bf7d6e,
+ 0xb7df7dee,
+ 0xb7ff7e6e,
+ 0xc0027eee,
+ 0x9c228c40,
+ 0xb740a605,
+ 0xba126304,
+ 0xd0114003,
+ 0xd2261e22,
+ 0x9e2d5904,
+ 0xa8cdc830,
+ 0x4002ba13,
+ 0xd0119e5b,
+ 0x70886a16,
+ 0xc0019e4d,
+ 0x74c090fc,
+ 0x921cc000,
+ 0x5a07c180,
+ 0x01a8d020,
+ 0xc0340d02,
+ 0xf2089afa,
+ 0x6241aa25,
+ 0x5943d224,
+ 0x90e0c000,
+ 0x0e22d011,
+ 0xba129ea2,
+ 0xb7204003,
+ 0xd091568c,
+ 0xd2080a10,
+ 0x7282a882,
+ 0x485ab312,
+ 0x90dac000,
+ 0x4fb1b720,
+ 0x7282c812,
+ 0xb79f9e50,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa6059c22,
+ 0x5494b720,
+ 0x404db720,
+ 0x5794b700,
+ 0xd0517444,
+ 0xb3401e00,
+ 0x9e4d4442,
+ 0x43cab720,
+ 0xba129e5c,
+ 0xdffc4003,
+ 0xba1b7c7e,
+ 0xba124002,
+ 0xc0004002,
+ 0x04819102,
+ 0x9ba4fff4,
+ 0xba129e82,
+ 0xd2884003,
+ 0x7502aa25,
+ 0x91c4c000,
+ 0x540cb780,
+ 0xa881d208,
+ 0xc0007440,
+ 0xd01190e4,
+ 0x9ea20e24,
+ 0x4003ba12,
+ 0xaa29d288,
+ 0xc0007502,
+ 0xd01190e4,
+ 0x9ea20e22,
+ 0x4003ba12,
+ 0xaa39da48,
+ 0xd0119e52,
+ 0x708208c8,
+ 0x90fcc000,
+ 0xba129e8a,
+ 0xc0004003,
+ 0x9e519140,
+ 0x70481a10,
+ 0x4002ba24,
+ 0x4836b324,
+ 0xb7209ea2,
+ 0xb780568c,
+ 0x9e524f29,
+ 0x9ea21228,
+ 0x4003ba12,
+ 0x9e897684,
+ 0x90bcc000,
+ 0xc0000d0a,
+ 0x76bb90e0,
+ 0xb322857b,
+ 0x9dcb487a,
+ 0x4f59b740,
+ 0x80ade210,
+ 0x0e10d091,
+ 0xd2089e8a,
+ 0xba12aa01,
+ 0x9e514003,
+ 0xb3427048,
+ 0xc000445a,
+ 0xb78090fa,
+ 0x9ea14fc9,
+ 0x7282c812,
+ 0xb79f9e50,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa61d9c22,
+ 0x7efedffc,
+ 0x9204c000,
+ 0x558cb780,
+ 0x5794b7c0,
+ 0xaa99da08,
+ 0xab11da08,
+ 0xaa86f208,
+ 0xab95da08,
+ 0x91c0c000,
+ 0x558cb780,
+ 0x5714b7c0,
+ 0xaa8dda48,
+ 0xab05da48,
+ 0xaa9af208,
+ 0xab89da48,
+ 0x7540c008,
+ 0x91dcc000,
+ 0xc0349eab,
+ 0x9e819a5a,
+ 0x52a3c200,
+ 0x5343c200,
+ 0x53e3c200,
+ 0x56a7c200,
+ 0x6104b740,
+ 0x5904d2a6,
+ 0xc8309e2d,
+ 0xda10a8cd,
+ 0x6363aa51,
+ 0xb74063f3,
+ 0x0a04619c,
+ 0xa251da10,
+ 0x9d479e89,
+ 0xaa55da10,
+ 0xa925c210,
+ 0x856e66d3,
+ 0x8821f310,
+ 0xba2c9e91,
+ 0xc2004002,
+ 0xc00c56a7,
+ 0xc2007748,
+ 0xc200534b,
+ 0xc00153eb,
+ 0xc100927c,
+ 0x9e6b7580,
+ 0x0a7ec07e,
+ 0x4438b364,
+ 0x5114d226,
+ 0x5d87c280,
+ 0x81afe220,
+ 0xc0340d02,
+ 0xf21099f0,
+ 0xd032a943,
+ 0xda10618e,
+ 0xe220a9d1,
+ 0x0d0281af,
+ 0x4002ba1b,
+ 0xa1c2f210,
+ 0x99e1c034,
+ 0xf210755e,
+ 0xd04da045,
+ 0xd01a1a50,
+ 0xc0005213,
+ 0x854290da,
+ 0x8823f310,
+ 0xf2105210,
+ 0x8506a245,
+ 0xa15fda10,
+ 0x7e6eb79f,
+ 0x7eeeb7bf,
+ 0x7f6eb7df,
+ 0x7feeb7ff,
+ 0x8c00c002,
+ 0xa60d9c22,
+ 0xb7a076c2,
+ 0xc0015394,
+ 0xb7a092a4,
+ 0xda48558c,
+ 0x7500aa2d,
+ 0x90a2c000,
+ 0xfff40d86,
+ 0xda089b60,
+ 0x7500aa39,
+ 0x90a2c000,
+ 0xfff40d82,
+ 0xda489b58,
+ 0xda10a8a1,
+ 0x7048aa29,
+ 0x9382c000,
+ 0xab3dda08,
+ 0x99f1fff4,
+ 0x548cb780,
+ 0xa881f208,
+ 0xaaa1d210,
+ 0x5694b720,
+ 0xb5a07442,
+ 0x9e834f49,
+ 0xba1e9eaa,
+ 0x09164002,
+ 0x9ab9fff4,
+ 0x4002ba00,
+ 0xa021d210,
+ 0xa821d210,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0xba1b9c22,
+ 0xd1a44002,
+ 0x9e5a5887,
+ 0x08869e48,
+ 0x1a045220,
+ 0xc0017088,
+ 0x9e4c907c,
+ 0x70080802,
+ 0x1a32d011,
+ 0xc00050b0,
+ 0x784491d6,
+ 0x91a4c000,
+ 0x0a02d011,
+ 0x4002ba04,
+ 0x70089e4c,
+ 0xffff5887,
+ 0x080292d8,
+ 0x10309c22,
+ 0x4002ba00,
+ 0xd1a69c22,
+ 0xe2105907,
+ 0xba008821,
+ 0x9c224002,
+ 0x1e12d011,
+ 0x70080802,
+ 0xc00050b0,
+ 0x9ea191f6,
+ 0xffff7844,
+ 0xd0119204,
+ 0xba040a02,
+ 0x9e4c4002,
+ 0x58877008,
+ 0x92d8ffff,
+ 0x9c220806,
+ 0x548cb780,
+ 0xa917f248,
+ 0x15b09e98,
+ 0x81afe220,
+ 0xa196f248,
+ 0xa8c2d010,
+ 0x09827640,
+ 0x9264c005,
+ 0xd0108506,
+ 0xf208a14b,
+ 0x7502aa01,
+ 0x15b0d010,
+ 0x92c4c002,
+ 0x538cb720,
+ 0x43adb740,
+ 0x5910d126,
+ 0x8825f210,
+ 0x5a13c200,
+ 0x9e8b70c8,
+ 0x5694b700,
+ 0x91b6c004,
+ 0xaa65f050,
+ 0xc00070c8,
+ 0xb7209178,
+ 0xd3f14ec8,
+ 0x75062a1e,
+ 0x9274c003,
+ 0x92e0c003,
+ 0x6a29d031,
+ 0x5a13c200,
+ 0xc00070c8,
+ 0xb7209178,
+ 0xd3f14ec8,
+ 0x75042a1e,
+ 0x9074c003,
+ 0x90e0c003,
+ 0x6a27d031,
+ 0x5a13c200,
+ 0xc00070c8,
+ 0xb7209178,
+ 0xd3f14ec8,
+ 0x75022a1e,
+ 0x9274c002,
+ 0x92e0c002,
+ 0x6a2dd011,
+ 0x5a13c200,
+ 0xc00270c8,
+ 0xd0b192d8,
+ 0xb7400cb4,
+ 0xb7804e58,
+ 0xb7204029,
+ 0xf3104ec8,
+ 0x70488021,
+ 0x93b8c001,
+ 0x9020c002,
+ 0x538cb720,
+ 0x43adb740,
+ 0x5910d126,
+ 0x8825f210,
+ 0x5a13c200,
+ 0x9e8b70c8,
+ 0x5694b700,
+ 0x9336c001,
+ 0xaa65f050,
+ 0xfffe70c8,
+ 0xd03191d6,
+ 0xc2006a27,
+ 0x70c85a13,
+ 0x91b8c000,
+ 0x4ec8b780,
+ 0x7d3ec01c,
+ 0x93e4c000,
+ 0xb5800a04,
+ 0xc0014ec8,
+ 0xc1009040,
+ 0x70c85a07,
+ 0x9378c000,
+ 0x0cb4d0b1,
+ 0x4e58b740,
+ 0x4029b780,
+ 0x4ec8b720,
+ 0x8021f310,
+ 0xc0007048,
+ 0xd0119116,
+ 0xb5800a12,
+ 0xc0004ec8,
+ 0xd0109140,
+ 0xb520a0ca,
+ 0xc0004ed0,
+ 0xd0109080,
+ 0xd810a0ca,
+ 0xb720aa75,
+ 0x1a04424c,
+ 0xb3407048,
+ 0x850248a4,
+ 0xa14bd010,
+ 0xd0109c22,
+ 0x9c22a1c9,
+ 0x2dfcc00e,
+ 0x6cbbd331,
+ 0x1e36d011,
+ 0x704858a1,
+ 0x4002ba24,
+ 0x443cb314,
+ 0xd1a20089,
+ 0x74425e04,
+ 0x0d8c870a,
+ 0x449ab312,
+ 0xd0129e59,
+ 0xc0047102,
+ 0xb7207500,
+ 0x857e5694,
+ 0x4478b342,
+ 0x4fc1b540,
+ 0x0c80c002,
+ 0x4059b540,
+ 0xa6059c22,
+ 0xac7dc030,
+ 0x538cb7a0,
+ 0xc0389d59,
+ 0xc030a45d,
+ 0xc038ac7d,
+ 0xc030a45d,
+ 0xc038ac7d,
+ 0x0d82a45d,
+ 0x0982c002,
+ 0x9ac1fff4,
+ 0x7c3edffc,
+ 0xa9aada08,
+ 0xd0020a02,
+ 0xb7200a42,
+ 0x09ba590c,
+ 0x0aacc002,
+ 0xd2088506,
+ 0xb540a221,
+ 0xfff440b9,
+ 0xb7209aae,
+ 0xd1315694,
+ 0xd1710e14,
+ 0xd1310c94,
+ 0xda080d1c,
+ 0xd171a001,
+ 0x85020e1c,
+ 0x402bb500,
+ 0xa143d808,
+ 0x0886c001,
+ 0xa103da08,
+ 0x48cdb520,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0x548cb720,
+ 0x412db780,
+ 0xb5408502,
+ 0x0a04413b,
+ 0x412db580,
+ 0xa61d9c22,
+ 0x568cb720,
+ 0x422db780,
+ 0xb7c09e8d,
+ 0x76c4538c,
+ 0xb5800a04,
+ 0xc000422d,
+ 0x85029124,
+ 0xa133f210,
+ 0xaa55da08,
+ 0xa235f210,
+ 0x548cb780,
+ 0x9ea676c4,
+ 0xa182f208,
+ 0x9124c009,
+ 0xa956da08,
+ 0x598cb740,
+ 0xd2d08502,
+ 0xd290a133,
+ 0xf208a14b,
+ 0xf008aa4d,
+ 0xf310a947,
+ 0x00898021,
+ 0x58ffd224,
+ 0xa0d1f808,
+ 0xaa45f248,
+ 0x8021f310,
+ 0xd2240089,
+ 0xf80858ff,
+ 0xf808a0c9,
+ 0xf248a0cd,
+ 0xe220a8cd,
+ 0x9e4b80a3,
+ 0xc0800d10,
+ 0x70c85a07,
+ 0xf0080385,
+ 0xc000a0c6,
+ 0xd0a69256,
+ 0xf2105908,
+ 0xc2008023,
+ 0x70c85a13,
+ 0xd2908506,
+ 0xc000a14b,
+ 0xd2d090d6,
+ 0xf208a133,
+ 0xf208a265,
+ 0x9e53a9e6,
+ 0xc0140d02,
+ 0xf2109ba4,
+ 0x7502aa49,
+ 0xa035f250,
+ 0x92f4c001,
+ 0x0ae4d0b1,
+ 0xaa21d208,
+ 0xc0017500,
+ 0xda109202,
+ 0xe200aa49,
+ 0xc0005a40,
+ 0xda509262,
+ 0xc200a95f,
+ 0xf3105a45,
+ 0xda108021,
+ 0xda50a9c9,
+ 0xda50a25d,
+ 0x0d02a9de,
+ 0x9b81c014,
+ 0xa05dda50,
+ 0xaa5dda50,
+ 0xc0007530,
+ 0xf2489292,
+ 0xd226aa4d,
+ 0xf208590c,
+ 0xf310a8e5,
+ 0xc2008821,
+ 0x70485a0f,
+ 0x90fcc000,
+ 0xaa21d208,
+ 0xd2081a04,
+ 0xf250a221,
+ 0xf208aa35,
+ 0x8502a8e5,
+ 0xa15fda50,
+ 0x5908d226,
+ 0xf3107440,
+ 0xf2108021,
+ 0xc000a229,
+ 0x850290b6,
+ 0xa12bf210,
+ 0xaa59f208,
+ 0xa8a9f210,
+ 0x6a4ec002,
+ 0x5a1fc200,
+ 0xc0007048,
+ 0xf210909c,
+ 0xf248a229,
+ 0xf210a8e2,
+ 0xf208a8a9,
+ 0x9e4aaa79,
+ 0x7044c412,
+ 0x7102d010,
+ 0xa229f210,
+ 0xa221f210,
+ 0xa8c1dac8,
+ 0xc0007446,
+ 0xd0d19174,
+ 0xb78008e0,
+ 0x1a084029,
+ 0x294ed3f1,
+ 0x9060c000,
+ 0xf210090a,
+ 0x7642a8ca,
+ 0xd0090882,
+ 0x74b80892,
+ 0xd0090a02,
+ 0x78480a42,
+ 0xb3250af2,
+ 0x76424422,
+ 0x90f4c000,
+ 0xfff49eab,
+ 0xc0009a9f,
+ 0xd0919140,
+ 0x850a0e50,
+ 0xa13fd2d0,
+ 0xd208857e,
+ 0xd2d0a103,
+ 0x7502aa31,
+ 0x9164c000,
+ 0x0a64d0b1,
+ 0xa881d208,
+ 0xd0017440,
+ 0xd3e10a54,
+ 0xd2902ace,
+ 0x7502aa49,
+ 0x0a54d001,
+ 0x2aced3e1,
+ 0x0cd0d091,
+ 0x4029b780,
+ 0xc0007148,
+ 0xd2d090f2,
+ 0x7148aa3d,
+ 0x9068c000,
+ 0xdac80289,
+ 0x10d8aa41,
+ 0xc000747d,
+ 0xd0d19136,
+ 0xb78008e0,
+ 0x1a084029,
+ 0x9140c000,
+ 0xc0007444,
+ 0xd0d1913c,
+ 0xb78008e0,
+ 0x0a084029,
+ 0x2aced3f1,
+ 0x0cd0d091,
+ 0x4029b780,
+ 0xc0007148,
+ 0xd2d090f2,
+ 0x7148aa3d,
+ 0x9068c000,
+ 0xd2d00289,
+ 0xd208a2b9,
+ 0xc009a2c1,
+ 0xb7a090c0,
+ 0xf250598c,
+ 0xf210aa3d,
+ 0xf210a933,
+ 0xf20aa8b9,
+ 0xf210a920,
+ 0xf208a9b5,
+ 0xf210a9a6,
+ 0xf31089a3,
+ 0xf2508a21,
+ 0x0d02abba,
+ 0xa221f208,
+ 0x9aa7c014,
+ 0xa957f250,
+ 0xaa21f208,
+ 0xa94cf20a,
+ 0x8821f310,
+ 0xa8baf208,
+ 0x5a07c200,
+ 0x8a21f310,
+ 0xa921f248,
+ 0xd0120882,
+ 0x00087102,
+ 0x58070804,
+ 0x7004c012,
+ 0xc4109e82,
+ 0x75c27244,
+ 0xa0aaf210,
+ 0x901cc001,
+ 0xa9c9da08,
+ 0x0d02058f,
+ 0x9a81c014,
+ 0x0a66d0b1,
+ 0xa900d20a,
+ 0x8ea2e011,
+ 0xba001002,
+ 0x000e4002,
+ 0x4002ba00,
+ 0x8536741c,
+ 0x4478b302,
+ 0xa8c9da08,
+ 0x8c22f011,
+ 0x8221f310,
+ 0x63c2d032,
+ 0xa92bf210,
+ 0xaa35f250,
+ 0x88afe310,
+ 0x5a1bc200,
+ 0xf2107048,
+ 0xb425a0a1,
+ 0xda084658,
+ 0x5dc0a9ca,
+ 0x05f65dc5,
+ 0xa1b2f250,
+ 0xa9c9da08,
+ 0xc0140d02,
+ 0xf2109a50,
+ 0x7502aa49,
+ 0xa031f250,
+ 0x90f2c000,
+ 0xaa49da10,
+ 0xc0017500,
+ 0xb72092c2,
+ 0xb780590c,
+ 0x75004129,
+ 0xc0010383,
+ 0xf2489344,
+ 0x7500aa29,
+ 0xa841dac8,
+ 0x919cc000,
+ 0xa9a1f210,
+ 0x9e816009,
+ 0x5987d1a4,
+ 0x05960d02,
+ 0x9a2bc014,
+ 0xa8c2dac8,
+ 0xe0009e4a,
+ 0x12201084,
+ 0x442cb314,
+ 0xc0007504,
+ 0xdac890da,
+ 0xc000a041,
+ 0x9e4b9340,
+ 0xc00070c0,
+ 0xd01190dc,
+ 0xc0001e14,
+ 0xd0119200,
+ 0xc0000e14,
+ 0xdac89180,
+ 0xdac8a943,
+ 0xf310aa45,
+ 0xb7e08021,
+ 0xc200590c,
+ 0xdac85a07,
+ 0xd208a241,
+ 0x7500aa69,
+ 0x9204c000,
+ 0xaa41dac8,
+ 0xc000753e,
+ 0x857e90b4,
+ 0x90c0c000,
+ 0xc0007500,
+ 0x850690a4,
+ 0xa143dac8,
+ 0xaa49f210,
+ 0xc0007502,
+ 0xda1090f2,
+ 0x7500aa49,
+ 0x91e2c000,
+ 0xaa69d208,
+ 0xc0007500,
+ 0xd0d19244,
+ 0xd2080a60,
+ 0xfff4a982,
+ 0xc0009965,
+ 0xd0919140,
+ 0x850a0e50,
+ 0xa13fd2d0,
+ 0xd208857e,
+ 0xd2d0a103,
+ 0x7502aa31,
+ 0x91c4c000,
+ 0x0a64d0b1,
+ 0xa881d208,
+ 0xc0007440,
+ 0xdac890e4,
+ 0x0a08aa41,
+ 0xa241dac8,
+ 0x0a60d0d1,
+ 0xa881d208,
+ 0x0e50d091,
+ 0xd2080884,
+ 0xd208a0c1,
+ 0xd3f1a882,
+ 0xc00e2e1e,
+ 0x704828fc,
+ 0x9132c000,
+ 0xa8bed2d0,
+ 0x2e1ed3f1,
+ 0xc0007048,
+ 0xd2089088,
+ 0xf210a0c2,
+ 0xd208a923,
+ 0xf310a8c1,
+ 0xd2d0802f,
+ 0xf210a0b9,
+ 0x8502a229,
+ 0x0e50d131,
+ 0x0cd8d131,
+ 0xa123f290,
+ 0xa103da08,
+ 0x0e50d171,
+ 0x403bb540,
+ 0xa133f290,
+ 0xa103da08,
+ 0x0e58d171,
+ 0xa8b9d2d0,
+ 0xa103da08,
+ 0xa12ff210,
+ 0xa127f210,
+ 0xa0d9da50,
+ 0xaa41d208,
+ 0xa24dda10,
+ 0x7e6eb79f,
+ 0x7eeeb7bf,
+ 0x7f6eb7df,
+ 0x7feeb7ff,
+ 0x8c00c002,
+ 0xa60d9c22,
+ 0x568cb780,
+ 0xa90ff208,
+ 0x5104b740,
+ 0x538cb740,
+ 0x81afe220,
+ 0x5494b720,
+ 0xa18ef208,
+ 0xa8c1f048,
+ 0x8327e020,
+ 0x46ddb740,
+ 0x70029e50,
+ 0x80afe210,
+ 0x03090982,
+ 0x02850683,
+ 0x5114b540,
+ 0x9158c000,
+ 0xaa2df208,
+ 0x5904d226,
+ 0x89a3e210,
+ 0x91e0c000,
+ 0xaa29da10,
+ 0xa8adf208,
+ 0xd0330a08,
+ 0x72b56142,
+ 0x882df210,
+ 0x4436b334,
+ 0x74c00189,
+ 0x91fcc000,
+ 0x590cb720,
+ 0x0a3ed071,
+ 0x5997c200,
+ 0xb5408506,
+ 0xb56041b9,
+ 0xc00040ad,
+ 0xb7809140,
+ 0x8502590c,
+ 0xa10fd208,
+ 0xf2088502,
+ 0xb7c0a107,
+ 0xda085594,
+ 0xf250a9aa,
+ 0xda08a94f,
+ 0x5dc0a9a9,
+ 0xe2205dc9,
+ 0x0d0281af,
+ 0x9913c014,
+ 0xa021dac8,
+ 0xa8a1f210,
+ 0x09d0d0d1,
+ 0xaa61d008,
+ 0xa946f208,
+ 0xd2087444,
+ 0xf208a221,
+ 0xc000a142,
+ 0xf21093a4,
+ 0x7502aa29,
+ 0x9244c000,
+ 0x598cb7a0,
+ 0xaa55f248,
+ 0xf2480996,
+ 0x0d02a9aa,
+ 0x5a0bc200,
+ 0xa259f248,
+ 0x98efc014,
+ 0xa029f248,
+ 0xaa5df210,
+ 0xa249f248,
+ 0x9360c000,
+ 0xaa41f250,
+ 0xa259f248,
+ 0xa8def210,
+ 0xa93fda50,
+ 0xaa61d808,
+ 0x598cb740,
+ 0xa0cef248,
+ 0xa8a9da10,
+ 0x8021f310,
+ 0xa14af048,
+ 0xa23dda50,
+ 0xda100884,
+ 0xb79fa0a9,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0xa61d9c22,
+ 0xb7808420,
+ 0xf208568c,
+ 0x9d39a895,
+ 0xf2081884,
+ 0xd018a095,
+ 0xb720a8ca,
+ 0x8582548c,
+ 0x9d997642,
+ 0x48a1b760,
+ 0x9144c000,
+ 0xa183f208,
+ 0xa18ef208,
+ 0xa0c6d080,
+ 0x9140c000,
+ 0x568cb700,
+ 0x422cb780,
+ 0xa1c7d080,
+ 0x432cb580,
+ 0x568cb720,
+ 0x538cb780,
+ 0x5994b7e0,
+ 0x41adb7e0,
+ 0xa98df208,
+ 0xab71fa10,
+ 0x0089123e,
+ 0x58ffd224,
+ 0xaae9fa10,
+ 0x0362e000,
+ 0xd0030762,
+ 0xe0000f62,
+ 0x06d202d2,
+ 0x0ed2d003,
+ 0x5e0cd2a2,
+ 0x58f5c280,
+ 0x3118d020,
+ 0x590cc280,
+ 0x112ae000,
+ 0xd003152a,
+ 0xc1001d22,
+ 0x9e585df4,
+ 0x9ebb9dcb,
+ 0x5a0dc100,
+ 0xb7853088,
+ 0x9d686008,
+ 0xa967f210,
+ 0x75020003,
+ 0x587fd0a4,
+ 0x89a7f310,
+ 0x4c24b333,
+ 0x7f64b55f,
+ 0xa371fa10,
+ 0xa2e9fa10,
+ 0xa06dfa10,
+ 0xa3e5f210,
+ 0x9b1cffd4,
+ 0x7f64b75f,
+ 0xaa41f000,
+ 0xc0007504,
+ 0xb7209244,
+ 0xf040538c,
+ 0xb760a9d6,
+ 0x0d0242ab,
+ 0xa1e2f210,
+ 0xc0141984,
+ 0xb7809844,
+ 0xf248568c,
+ 0xb700a01d,
+ 0x8502568c,
+ 0x41bcb540,
+ 0x7deeb79f,
+ 0x7e6eb7bf,
+ 0x7eeeb7df,
+ 0x7f6eb7ff,
+ 0x8c20c002,
+ 0xb7209c22,
+ 0xd8105394,
+ 0xf010a876,
+ 0xb500a96f,
+ 0xf01042d3,
+ 0xb740a96d,
+ 0xb7805494,
+ 0xb76041cd,
+ 0xb540598c,
+ 0xd81041cd,
+ 0xf310a8c9,
+ 0xd0138821,
+ 0xf00a1d02,
+ 0xe210a964,
+ 0x624388a3,
+ 0xa96df050,
+ 0x8221f310,
+ 0xa265f008,
+ 0x45cdb540,
+ 0xaa71f010,
+ 0x424db580,
+ 0xa8f5f010,
+ 0x42cdb520,
+ 0xc0089c22,
+ 0x9e5874c0,
+ 0xc0009e52,
+ 0xd00290fc,
+ 0x1a1470c0,
+ 0x501351f3,
+ 0x7400c005,
+ 0x90fcc000,
+ 0x7000d002,
+ 0x50131a50,
+ 0xb7400128,
+ 0xb7806104,
+ 0xd1a6618c,
+ 0x9e2d5904,
+ 0xa8e5c040,
+ 0xaa4dc830,
+ 0x60097044,
+ 0x1214d01d,
+ 0x5013d01a,
+ 0x48bab340,
+ 0x50101222,
+ 0xc0029c22,
+ 0xd01172c0,
+ 0x9c221c0a,
+ 0x87c2c809,
+ 0x0c20b060,
+ 0x87c2c809,
+ 0x0a60b060,
+ 0x87c2c809,
+ 0x09c0b060,
+};
+
+unsigned long aui32MPG4CBR_MTXTOPAZFWData[] = {
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x809000b0,
+ 0x8090019c,
+ 0x82884ca4,
+ 0x8288499c,
+ 0x828849d4,
+ 0x828849fe,
+ 0x82884a10,
+ 0x82884a4c,
+ 0x82884a7c,
+ 0x82884aac,
+ 0x82884ad4,
+ 0x82884b14,
+ 0x82884b24,
+ 0x82884b34,
+ 0x82884b3c,
+ 0x82884b44,
+ 0x82884b50,
+ 0x82884e68,
+ 0x82884e38,
+ 0x82884d18,
+ 0x82884b80,
+ 0x82884d68,
+ 0x82884db0,
+ 0x82884db4,
+ 0x82884dac,
+ 0x82884df8,
+ 0x82885108,
+ 0x8288501f,
+ 0x82885020,
+ 0x82884fff,
+ 0x82885000,
+ 0x82885040,
+ 0x828850c4,
+ 0x82884f08,
+ 0x82884f64,
+ 0x82884fc0,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x809006dc,
+ 0x80901be8,
+ 0x809024f0,
+ 0x809006e0,
+ 0x80903bf8,
+ 0x8090411c,
+ 0x8090072c,
+ 0x00000000,
+ 0x80901da8,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x809006dc,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0xa0101162,
+ 0xa0100174,
+ 0xa0101102,
+ 0xa0100184,
+ 0xa0101104,
+ 0xa0100194,
+ 0xa0101106,
+ 0xa01001a4,
+ 0xa01001a2,
+ 0xa01001a2,
+ 0xa0101182,
+ 0xa0100142,
+ 0xa0101122,
+ 0xa0100152,
+ 0x80101124,
+ 0x80101126,
+ 0x80101144,
+ 0x80101146,
+ 0x80100176,
+ 0x80100186,
+ 0x80100196,
+ 0x801001a6,
+ 0x801001b6,
+ 0x801001b4,
+ 0x80300364,
+ 0x8010b100,
+ 0x80105160,
+ 0x80100102,
+ 0x00000b00,
+ 0x00000b00,
+ 0x00000ba0,
+ 0x00000ba0,
+ 0x00000003,
+ 0x00000002,
+ 0x00000002,
+ 0x00000001,
+ 0x00000001,
+ 0x00000001,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000005,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00260019,
+ 0x003f0032,
+ 0x0058004b,
+ 0x00710064,
+ 0x008a007d,
+ 0x00a30096,
+ 0x00bc00af,
+ 0x00d500c8,
+ 0x00ee00e1,
+ 0x010700fa,
+ 0x01070107,
+ 0x01070107,
+ 0x01070107,
+ 0x01070107,
+ 0x01070107,
+ 0x00000107,
+ 0x01010000,
+ 0x03030202,
+ 0x05040404,
+ 0x06060505,
+ 0x07070706,
+ 0x08080807,
+ 0x09090908,
+ 0x000a0a09,
+ 0x02010000,
+ 0x04040303,
+ 0x06060505,
+ 0x08080707,
+ 0x0a0a0909,
+ 0x0b0b0b0b,
+ 0x0c0c0c0c,
+ 0x000d0d0d,
+ 0x00400000,
+ 0x02ab0020,
+ 0x00cd0010,
+ 0x02490155,
+ 0x01c70008,
+ 0x005d00cd,
+ 0x013b0155,
+ 0x01110249,
+ 0x00f10004,
+ 0x01af01c7,
+ 0x00c300cd,
+ 0x0059005d,
+ 0x00290155,
+ 0x025f013b,
+ 0x02350249,
+ 0x00210111,
+ 0x001f0002,
+ 0x007500f1,
+ 0x006f01c7,
+ 0x006901af,
+ 0x001900cd,
+ 0x017d00c3,
+ 0x005b005d,
+ 0x02b90059,
+ 0x00a70155,
+ 0x02830029,
+ 0x0135013b,
+ 0x0095025f,
+ 0x023f0249,
+ 0x008b0235,
+ 0x02190111,
+ 0x00410021,
+ 0x00000001,
+ 0x0b060600,
+ 0x0c0b0a06,
+ 0x0a0b0c06,
+ 0x0c0d0c0c,
+ 0x0d0d0c06,
+ 0x0b0b0c0c,
+ 0x0e0d0a0d,
+ 0x0a0d0e0e,
+ 0x0c0d0a06,
+ 0x0c0e0c0e,
+ 0x0e0d0a0d,
+ 0x0f0c0c0c,
+ 0x0f0b0d0e,
+ 0x0d0f0e0e,
+ 0x0d0f0f0f,
+ 0x0c0b0f0e,
+ 0x00000006,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x1234baac,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+};
diff --git a/fw/MPG4FirmwareCBR_bin.h b/fw/MPG4FirmwareCBR_bin.h
new file mode 100644
index 0000000..f68b64f
--- /dev/null
+++ b/fw/MPG4FirmwareCBR_bin.h
@@ -0,0 +1,35 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+// This file was automatically generated from ../release/MPG4FirmwareCBR.dnl using dnl2c.
+
+extern unsigned long aui32MPG4CBR_MTXTOPAZFWText[];
+extern unsigned long ui32MPG4CBR_MTXTOPAZFWTextSize;
+
+extern unsigned long aui32MPG4CBR_MTXTOPAZFWData[];
+extern unsigned long ui32MPG4CBR_MTXTOPAZFWDataSize;
+
+extern unsigned long ui32MPG4CBR_MTXTOPAZFWDataLocation;
+
diff --git a/fw/MPG4FirmwareVBR_bin.c b/fw/MPG4FirmwareVBR_bin.c
new file mode 100644
index 0000000..59fd214
--- /dev/null
+++ b/fw/MPG4FirmwareVBR_bin.c
@@ -0,0 +1,8220 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+// This file was automatically generated from ../release/MPG4FirmwareVBR.dnl using dnl2c.
+
+unsigned char *szMPG4VBR_MTXTOPAZFW_buildtag = "TOPAZ_DDKBUILD_00-00-00-0146";
+
+unsigned long ui32MPG4VBR_MTXTOPAZFWTextSize = 4598;
+unsigned long ui32MPG4VBR_MTXTOPAZFWDataSize = 3584;
+unsigned long ui32MPG4VBR_MTXTOPAZFWDataLocation = 0x82884800;
+
+unsigned long aui32MPG4VBR_MTXTOPAZFWText[] = {
+ 0x9040c001,
+ 0xc80993fe,
+ 0xc0000e42,
+ 0xc8290e00,
+ 0xc5348422,
+ 0xc8298400,
+ 0xc4808622,
+ 0x9e838600,
+ 0xc8099e43,
+ 0xc8f80d42,
+ 0xc8090d40,
+ 0xc8fa0942,
+ 0xc8090900,
+ 0xc00a0e42,
+ 0xc8090e40,
+ 0xc00e87c2,
+ 0x9c1887d0,
+ 0x0c020802,
+ 0x09820d82,
+ 0x09020d02,
+ 0x08820c82,
+ 0x9320fffe,
+ 0xa401c838,
+ 0x0dc2c809,
+ 0x0d80c8f8,
+ 0x0e42c809,
+ 0x0b46b080,
+ 0x7e74b77f,
+ 0xa48d0882,
+ 0xffff9ff3,
+ 0x9d1393e0,
+ 0xf8398081,
+ 0x0707a205,
+ 0x06850307,
+ 0x03839e97,
+ 0x0fa0060f,
+ 0x018d058d,
+ 0x9c62008f,
+ 0x9340ffff,
+ 0x0ea0060b,
+ 0xffff9c62,
+ 0x058d93a0,
+ 0xb700018d,
+ 0xb780518c,
+ 0x9c015114,
+ 0x0687a605,
+ 0x0ea0060b,
+ 0xffff9c62,
+ 0xf9f893a0,
+ 0xf9f8aa9d,
+ 0x9c22aa1d,
+ 0xa60d9c22,
+ 0x9bfefff4,
+ 0x0ca2c829,
+ 0x0ce0c532,
+ 0x404db720,
+ 0x0a42c809,
+ 0x0a00c5f4,
+ 0x0b027440,
+ 0x428cb580,
+ 0x0a12d002,
+ 0x4644b421,
+ 0xc0540d8a,
+ 0xb78098b0,
+ 0xc807520c,
+ 0xc57008c2,
+ 0xc0320880,
+ 0xb5800c86,
+ 0xb4214c8c,
+ 0x0a06c000,
+ 0x0c98c002,
+ 0xc000b481,
+ 0x09021a04,
+ 0x08bac002,
+ 0x4078b960,
+ 0x0a00c200,
+ 0x588bd224,
+ 0xc000b441,
+ 0x0a11ce00,
+ 0x9301ffff,
+ 0x1884e000,
+ 0x9244ffff,
+ 0x0a42c807,
+ 0x0a00c576,
+ 0x0c86c032,
+ 0xc000b481,
+ 0x08820a02,
+ 0x08840902,
+ 0x4078b960,
+ 0x0a00c200,
+ 0x588bd224,
+ 0xc000b441,
+ 0x0a11ce00,
+ 0x9301ffff,
+ 0x745ac004,
+ 0x923cffff,
+ 0xc0340a02,
+ 0xb4810c9e,
+ 0xc034c000,
+ 0xc05498cd,
+ 0xc054982e,
+ 0x0d8a982a,
+ 0x9861c054,
+ 0x0a42c801,
+ 0x0a08c010,
+ 0x0c86c032,
+ 0xc000b481,
+ 0x08c2c801,
+ 0x0880cb10,
+ 0xb4210ce4,
+ 0x0a06c000,
+ 0xb4810cb4,
+ 0xc123c000,
+ 0xc56608d2,
+ 0xc08008e0,
+ 0xb4210c82,
+ 0x1a04c000,
+ 0xb4810c84,
+ 0x0d86c000,
+ 0x0d0209c2,
+ 0x0902c121,
+ 0x991bc014,
+ 0x458cb780,
+ 0xa982f208,
+ 0x0d02c021,
+ 0x09c20d04,
+ 0x9906c014,
+ 0x458cb780,
+ 0x0ad2c123,
+ 0x0ae0c566,
+ 0xa982f208,
+ 0x0d0609c2,
+ 0x98fac014,
+ 0x09c20d86,
+ 0xc1810d0e,
+ 0xc0140902,
+ 0xc00298fe,
+ 0xc0540dc2,
+ 0x700a980d,
+ 0x9364ffff,
+ 0xc0540d82,
+ 0xc0039814,
+ 0xb74092e0,
+ 0xd2265284,
+ 0x9e2d5908,
+ 0xaa4de030,
+ 0x9c629ea4,
+ 0x4514b720,
+ 0x405db740,
+ 0x58c1c280,
+ 0x2a80cff0,
+ 0x5a21c280,
+ 0x8021f310,
+ 0x753ec004,
+ 0x40cdb520,
+ 0x404db580,
+ 0x4652b431,
+ 0x0a42c801,
+ 0x0a08c010,
+ 0x0c86c032,
+ 0xc000b481,
+ 0xc0020886,
+ 0xb4210c98,
+ 0xb780c000,
+ 0xc080450c,
+ 0xf2080c82,
+ 0xb421a881,
+ 0x0d82c000,
+ 0x9bd0c034,
+ 0x450cb780,
+ 0xa881f208,
+ 0xffff7002,
+ 0x0d869304,
+ 0x0d0209c2,
+ 0x0902c121,
+ 0x98afc014,
+ 0x458cb780,
+ 0xa982f208,
+ 0x0d02c021,
+ 0x09c20d04,
+ 0x989ac014,
+ 0x458cb780,
+ 0xa982f208,
+ 0x0d0609c2,
+ 0x9892c014,
+ 0x09c20d86,
+ 0xc1010d0e,
+ 0xc0140902,
+ 0x77409896,
+ 0x9082c000,
+ 0x9b79c034,
+ 0x9c80c971,
+ 0x5a41e200,
+ 0x9204c000,
+ 0x0dc2c002,
+ 0x9b9ac034,
+ 0x450cb780,
+ 0xa881f208,
+ 0xffff7002,
+ 0x0d8292e4,
+ 0x9b9dc034,
+ 0xc0007580,
+ 0xc0349364,
+ 0x0d8a9b5e,
+ 0x9b95c034,
+ 0x450cb780,
+ 0xa881f208,
+ 0x5908d0a8,
+ 0x0948d073,
+ 0xe0309e2d,
+ 0xd3f1aacd,
+ 0xc2002a5c,
+ 0x75185a05,
+ 0x2ad2d012,
+ 0x9234fffb,
+ 0xb79f0802,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0x9c229c22,
+ 0x451cb740,
+ 0xc200aa41,
+ 0xc0025a08,
+ 0xf3100a00,
+ 0xf2088021,
+ 0xf208a882,
+ 0xc0c0a885,
+ 0x5c890c80,
+ 0xc000b421,
+ 0xa6059c22,
+ 0x451cb740,
+ 0x0886aa41,
+ 0x0c9ec034,
+ 0x5a08c200,
+ 0x0a00c002,
+ 0x80a1f310,
+ 0xc000b421,
+ 0x0c92c080,
+ 0xaa25f208,
+ 0xc000b481,
+ 0xc0340dc2,
+ 0xf2089b3f,
+ 0x7008aa25,
+ 0x9344ffff,
+ 0xc0800a02,
+ 0xb4810c96,
+ 0x0d86c000,
+ 0x0d0609c2,
+ 0x0902c121,
+ 0x981bc014,
+ 0xa9a2f208,
+ 0x0d02c021,
+ 0x09c20d04,
+ 0x9808c014,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xc0409e54,
+ 0x9e590c82,
+ 0xc000b421,
+ 0x0d02c040,
+ 0xc000b482,
+ 0xc00e9c22,
+ 0xc00e2d7c,
+ 0x5d3029e0,
+ 0xc0409e54,
+ 0x31b80c82,
+ 0xc000b461,
+ 0x0d02c040,
+ 0xc000b442,
+ 0x9e4c9c22,
+ 0x28fcc00e,
+ 0x2a7cc00e,
+ 0x0c82c040,
+ 0xb4019e58,
+ 0xc200c000,
+ 0x58e45a6c,
+ 0x1d043242,
+ 0x9e515d10,
+ 0x1984598d,
+ 0x3980c011,
+ 0x590d3246,
+ 0x59301904,
+ 0x32443242,
+ 0xc000b481,
+ 0x9e4c9c22,
+ 0x28fcc00e,
+ 0x2a7cc00e,
+ 0x0c82c040,
+ 0xb4019e58,
+ 0xc200c000,
+ 0x58e45a6c,
+ 0x1d043242,
+ 0x9e515d10,
+ 0x1984598d,
+ 0x3980c019,
+ 0x590d3246,
+ 0x59301904,
+ 0x32443242,
+ 0xc000b481,
+ 0x9e4c9c22,
+ 0x28fcc00e,
+ 0x2a7cc00e,
+ 0x0c82c040,
+ 0xb4019e58,
+ 0xc200c000,
+ 0x58e45a6c,
+ 0x1d043242,
+ 0x9e515d10,
+ 0x1984598d,
+ 0x3980c01d,
+ 0x590d3246,
+ 0x59301904,
+ 0x32443242,
+ 0xc000b481,
+ 0xa60d9c22,
+ 0x07038420,
+ 0xc2800687,
+ 0x1c845c8d,
+ 0x5ca0d0a2,
+ 0xd0110287,
+ 0xc2000a5e,
+ 0x1a045a0d,
+ 0x5a30c200,
+ 0x30985cd0,
+ 0x04059e4c,
+ 0x0c8ac032,
+ 0xc8013098,
+ 0xb4213880,
+ 0x9ea9c000,
+ 0x0a02c801,
+ 0x0a00c002,
+ 0xc0306553,
+ 0xb4810c8a,
+ 0xc002c000,
+ 0x0c840882,
+ 0xc000b421,
+ 0xd0229e93,
+ 0x9e535f09,
+ 0x1d045d0d,
+ 0x9b5afff4,
+ 0x5e91c280,
+ 0xc2801e84,
+ 0x9e6c5e84,
+ 0xc2801a84,
+ 0xc1815a90,
+ 0x0d8a3a80,
+ 0x0d020982,
+ 0xfff4314a,
+ 0xc0c09b54,
+ 0x09920d82,
+ 0x0d02c002,
+ 0x0902c002,
+ 0x9a47c034,
+ 0xc0340a0a,
+ 0xb4810c9e,
+ 0x1b04c000,
+ 0x850275bf,
+ 0x9202c000,
+ 0xb55f9dcf,
+ 0xc0347f7c,
+ 0xf2319a4f,
+ 0xb75fa045,
+ 0x1b047f7c,
+ 0x851075bf,
+ 0x9284ffff,
+ 0xc0300a02,
+ 0xb4810c8e,
+ 0xb79fc000,
+ 0xb7bf7e6e,
+ 0xb7df7eee,
+ 0xc0027f6e,
+ 0x9c228c00,
+ 0xb780a605,
+ 0xc004438c,
+ 0x75002a00,
+ 0x588cb7a0,
+ 0x92c2c002,
+ 0xa9b6f208,
+ 0x0982c050,
+ 0x0d7ec008,
+ 0x9b08fff4,
+ 0xa9bef208,
+ 0x0982c028,
+ 0x0d3ec004,
+ 0x9b00fff4,
+ 0x438cb780,
+ 0x38c0d211,
+ 0x02039e89,
+ 0x2a00c201,
+ 0xcffa7500,
+ 0xb5202cfd,
+ 0xc0014394,
+ 0x744090e2,
+ 0x590cb740,
+ 0x9256c000,
+ 0xaa45f008,
+ 0xa8c9f008,
+ 0x2cfec7ff,
+ 0x0a00c010,
+ 0xa245f008,
+ 0x0880c008,
+ 0xa0c9f008,
+ 0x4394b520,
+ 0xaa45f008,
+ 0x438cb720,
+ 0xa235f208,
+ 0xa8caf008,
+ 0x28fecdff,
+ 0xa0bef208,
+ 0x438cb520,
+ 0x9240c000,
+ 0xa937f208,
+ 0xaa39f208,
+ 0xa93cf20a,
+ 0xa8a1f248,
+ 0x8021f310,
+ 0x82a3e210,
+ 0xa235f208,
+ 0xa0bdf208,
+ 0xa9bef248,
+ 0x0982c002,
+ 0xfff40d0e,
+ 0xf2489ab5,
+ 0xb720aa3d,
+ 0xc002438c,
+ 0xf2480a00,
+ 0xc200a23d,
+ 0xb5203880,
+ 0xc011438c,
+ 0x74402880,
+ 0x92e2c000,
+ 0xa9b6f248,
+ 0x0982c008,
+ 0xfff40d3e,
+ 0xf2489a9d,
+ 0xb720aa35,
+ 0xc008438c,
+ 0xf2480a00,
+ 0xc081a235,
+ 0xcfef3880,
+ 0xb52028fe,
+ 0xb780438c,
+ 0xc001438c,
+ 0x75002a04,
+ 0x92e2c000,
+ 0xa9b6f248,
+ 0x0982c008,
+ 0xfff40d3e,
+ 0xf2489a81,
+ 0xb720aa35,
+ 0xc008438c,
+ 0xf2480a00,
+ 0xc001a235,
+ 0xcfff3888,
+ 0xb52028fa,
+ 0xb720438c,
+ 0x0203438c,
+ 0x2a10c001,
+ 0xc0027500,
+ 0xc0019082,
+ 0x744028c0,
+ 0x9182c001,
+ 0xa9a6f288,
+ 0x0d0609c2,
+ 0x0c820942,
+ 0xfff40882,
+ 0xf2889a96,
+ 0xf288a9b6,
+ 0x5d90a927,
+ 0x81afe220,
+ 0x438cb780,
+ 0x0d0609c2,
+ 0x0c820942,
+ 0xc0010882,
+ 0xb5803a20,
+ 0xfff4438c,
+ 0xb7809aa0,
+ 0xf288438c,
+ 0xc003a8a5,
+ 0x08c03a00,
+ 0xa0a5f288,
+ 0x2a2ecfff,
+ 0x9260c000,
+ 0xa9a6f288,
+ 0x0d0609c2,
+ 0x9a36fff4,
+ 0x438cb780,
+ 0xa8a5f288,
+ 0x3a20c001,
+ 0xf28808c0,
+ 0xcfffa0a5,
+ 0xb5802a6e,
+ 0xb79f438c,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa6059c22,
+ 0x438cb780,
+ 0x2a00c200,
+ 0x9e5d7500,
+ 0x9302c000,
+ 0x0abc6a8e,
+ 0x09829eab,
+ 0xc1010d36,
+ 0xc0140902,
+ 0x9eab98a4,
+ 0x438cb780,
+ 0x0d1a0982,
+ 0x0902c101,
+ 0x2a7dcdfe,
+ 0x438cb580,
+ 0x9897c014,
+ 0x438cb780,
+ 0x2a00c081,
+ 0xc0007500,
+ 0xc1019222,
+ 0xc0060902,
+ 0x0dce0940,
+ 0x0d020982,
+ 0x9887c014,
+ 0x438cb780,
+ 0x2a7ecf7f,
+ 0x438cb580,
+ 0x438cb780,
+ 0x2a08c001,
+ 0xc0007500,
+ 0xc1019222,
+ 0xc0060902,
+ 0x0dde0940,
+ 0x0d020982,
+ 0x9871c014,
+ 0x438cb780,
+ 0x2a76cfff,
+ 0x438cb580,
+ 0x438cb780,
+ 0x2a20c001,
+ 0xc0007500,
+ 0x0de291e2,
+ 0x0d020982,
+ 0x0902c101,
+ 0x985dc014,
+ 0x438cb780,
+ 0x2a5ecfff,
+ 0x438cb580,
+ 0x438cb780,
+ 0x2a00c003,
+ 0xc0007500,
+ 0x0de291e2,
+ 0x0d060982,
+ 0x0902c101,
+ 0x9849c014,
+ 0x438cb780,
+ 0x2a7ecffd,
+ 0x438cb580,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xb7a0a605,
+ 0xf248588c,
+ 0xc021a9ba,
+ 0x0d3c0d02,
+ 0x0982c008,
+ 0x999efff4,
+ 0xa9aaf288,
+ 0x0d02c021,
+ 0x09c20d04,
+ 0x9996fff4,
+ 0xaa39f248,
+ 0xa8a9f288,
+ 0x0a00c008,
+ 0xa239f248,
+ 0xf28808c0,
+ 0xb79fa0a9,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa6059c22,
+ 0x09920687,
+ 0x0d02c002,
+ 0x0902c002,
+ 0x9883c034,
+ 0x0a42c002,
+ 0xc2800eb0,
+ 0xb4855e89,
+ 0xb79fc000,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xb7409c22,
+ 0xd1a64c84,
+ 0x9e2d5d08,
+ 0xa8cde030,
+ 0x5a0cc080,
+ 0xd1f35885,
+ 0xc00e2910,
+ 0xe2202d7c,
+ 0xc00e812d,
+ 0x5d302a40,
+ 0x32429e51,
+ 0x0c82c040,
+ 0xc000b481,
+ 0x0d02c040,
+ 0xc000b442,
+ 0xb7409c22,
+ 0x1df05984,
+ 0x5d08d1a6,
+ 0xe0309e2d,
+ 0xc080a8cd,
+ 0xd0335a05,
+ 0x5991294e,
+ 0x008929bc,
+ 0x81a7e210,
+ 0x2910d1f3,
+ 0x2d7cc00e,
+ 0x812de220,
+ 0x5d305990,
+ 0x31b89e54,
+ 0x0c82c040,
+ 0xc000b461,
+ 0x0d02c040,
+ 0xc000b442,
+ 0xa6059c22,
+ 0x588cb7a0,
+ 0x0e82c111,
+ 0x0ec0c04e,
+ 0xa9b6f208,
+ 0x0982c050,
+ 0x0d7ec008,
+ 0x991efff4,
+ 0x0df29e6a,
+ 0x0982c004,
+ 0xfff40d02,
+ 0xf2089bc8,
+ 0xf248a937,
+ 0xe220a9aa,
+ 0xc05081af,
+ 0xc0080982,
+ 0xfff40d7e,
+ 0x9e6a990b,
+ 0xc0040df2,
+ 0x0d0209c2,
+ 0x9bb5fff4,
+ 0xa937f208,
+ 0xa9aaf248,
+ 0x812ec201,
+ 0x81afe220,
+ 0x0982c050,
+ 0x0d7ec008,
+ 0x98f6fff4,
+ 0x0df29e6a,
+ 0x0982c006,
+ 0xfff40d02,
+ 0xf2089ba0,
+ 0xcfd8a9be,
+ 0xc0280e81,
+ 0xc0040982,
+ 0xfff40d3e,
+ 0x9e6a98e5,
+ 0xc0040df2,
+ 0xc0040982,
+ 0xfff40d42,
+ 0xf2089b8e,
+ 0xf248a93f,
+ 0xe220a9b2,
+ 0xc02881af,
+ 0xc0040982,
+ 0xfff40d3e,
+ 0x9e6a98d1,
+ 0xc0040df2,
+ 0xc00409c2,
+ 0xfff40d42,
+ 0xf2089b7a,
+ 0xf248a93f,
+ 0xc201a9b2,
+ 0xe220812e,
+ 0xc02881af,
+ 0xc0040982,
+ 0xfff40d3e,
+ 0x9e6a98bb,
+ 0xc0060df2,
+ 0xc0040982,
+ 0xfff40d42,
+ 0xf2489b64,
+ 0xf20aaa29,
+ 0xf248a934,
+ 0xd226a8b1,
+ 0xf2085904,
+ 0xf310a9bf,
+ 0xd0a68021,
+ 0xe2105904,
+ 0xf31080a3,
+ 0xe2108221,
+ 0xf20880b3,
+ 0xf208a235,
+ 0xb79fa0bd,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa6059c22,
+ 0x0902c121,
+ 0x0940c006,
+ 0x02870dca,
+ 0x0d020982,
+ 0x2afcc00e,
+ 0x9b1bfff4,
+ 0x09820dca,
+ 0xc2800d1e,
+ 0x010b5aec,
+ 0x3900c121,
+ 0x9b11fff4,
+ 0x438cb780,
+ 0x3a00c400,
+ 0x438cb580,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0x0922c829,
+ 0x0970c5fe,
+ 0x0a22c829,
+ 0x0a50c5fe,
+ 0x5a0cb720,
+ 0x0ca2c829,
+ 0x0ce0c5fe,
+ 0x8502c004,
+ 0x458cb580,
+ 0x450cb520,
+ 0x0a18d071,
+ 0xa241f008,
+ 0x404db520,
+ 0x413db540,
+ 0x8d00c004,
+ 0x40bdb540,
+ 0x403db540,
+ 0xf8399c22,
+ 0xf010a285,
+ 0x7500aa61,
+ 0x9164c000,
+ 0xa8c1d008,
+ 0x0a069e48,
+ 0x5200c200,
+ 0xd0083098,
+ 0xd011a0c1,
+ 0xd0100d38,
+ 0xf011a9f2,
+ 0xf0101a30,
+ 0x1984a943,
+ 0x93e2c000,
+ 0x8702cff1,
+ 0x8700cff0,
+ 0x087ec00f,
+ 0x087cc00e,
+ 0x0c1ac050,
+ 0xa8c5f029,
+ 0x2095d020,
+ 0x9e4d5ca1,
+ 0xc2002210,
+ 0x30d85a20,
+ 0x4006ba09,
+ 0xc000b420,
+ 0x1a30f011,
+ 0xffff1984,
+ 0xf21091e4,
+ 0xf010802f,
+ 0xf9f8a241,
+ 0x9c22aa9d,
+ 0x8420a60d,
+ 0x9e558502,
+ 0x7f7cb55f,
+ 0xaa61f010,
+ 0x8d8ee012,
+ 0xb55f0307,
+ 0x1a087ffc,
+ 0xd226750a,
+ 0x8540590c,
+ 0x8044e05a,
+ 0x91e0c003,
+ 0x9180c000,
+ 0x9000c001,
+ 0x9140c001,
+ 0x92a0c001,
+ 0x9380c001,
+ 0x91c0c002,
+ 0x5b0cb780,
+ 0xa881da08,
+ 0x74402888,
+ 0xb352856a,
+ 0xb7804462,
+ 0x9d57450c,
+ 0x8d88e011,
+ 0x1954d072,
+ 0xa299f208,
+ 0x9abcc014,
+ 0x91e0c002,
+ 0x450cb780,
+ 0xa91af208,
+ 0xe0119ea9,
+ 0x15148d88,
+ 0x9ab0c014,
+ 0x9060c002,
+ 0x8d88e011,
+ 0x295ed3f2,
+ 0xc0140916,
+ 0xb78099df,
+ 0xf208450c,
+ 0xc001a299,
+ 0xe01192c0,
+ 0xd3f28d88,
+ 0x0916295e,
+ 0x99d2c014,
+ 0x91a0c001,
+ 0xaa41d208,
+ 0x8c88f011,
+ 0xd0124a7d,
+ 0x0d062ace,
+ 0x018b0906,
+ 0x99c4c014,
+ 0x9e6a9e83,
+ 0x0d02018b,
+ 0x99bec014,
+ 0x9320c000,
+ 0xaa41d208,
+ 0x8c88f011,
+ 0xd0124a7d,
+ 0x0d022ace,
+ 0x018b0906,
+ 0x99b0c014,
+ 0x9e6a9e83,
+ 0xc00e018b,
+ 0xc0140d7e,
+ 0xc00099a9,
+ 0xc0019080,
+ 0xb79f90e0,
+ 0xc00f7e68,
+ 0xc00e0cfe,
+ 0x9e4a0cfc,
+ 0x7c68b59f,
+ 0x7f6cb73f,
+ 0x0a02cff1,
+ 0x0a00cff0,
+ 0x0c9ac050,
+ 0xc2002218,
+ 0x20945a21,
+ 0x324258a0,
+ 0x4006ba24,
+ 0x7f6cb59f,
+ 0xc000b481,
+ 0xa943f208,
+ 0x7fecb79f,
+ 0x8021f310,
+ 0xa241f208,
+ 0x7e6eb79f,
+ 0x7eeeb7bf,
+ 0x7f6eb7df,
+ 0x8c00c002,
+ 0xa61d9c22,
+ 0x85028440,
+ 0xf0319e9d,
+ 0x0b02abe5,
+ 0x7878b55f,
+ 0x7efcb55f,
+ 0x9d3a718e,
+ 0x91e8c001,
+ 0x7502aa41,
+ 0x9392c000,
+ 0xaad1d018,
+ 0x8d08e032,
+ 0x8d00e051,
+ 0x9eb19dcf,
+ 0xb55f8510,
+ 0xc0027f7c,
+ 0xc2800a9c,
+ 0x018b5a95,
+ 0x9aebfff4,
+ 0x7f7cb75f,
+ 0x5a88c280,
+ 0x8122c301,
+ 0x91a0c000,
+ 0x8d88e031,
+ 0x050b9dcf,
+ 0xb55f8510,
+ 0xfff47f7c,
+ 0xb75f9b19,
+ 0x0b047f7c,
+ 0xfffe718e,
+ 0xb79f92a6,
+ 0xc0507868,
+ 0xb4810c9e,
+ 0xc050c000,
+ 0xb4e20d16,
+ 0xb71fc000,
+ 0xb79f7eec,
+ 0xb7bf7d6e,
+ 0xb7df7dee,
+ 0xb7ff7e6e,
+ 0xc0027eee,
+ 0x9c228c40,
+ 0xa205f839,
+ 0x8400c010,
+ 0x5b0cb780,
+ 0x451cb740,
+ 0xa882da08,
+ 0xd011a8c1,
+ 0x58882e18,
+ 0x0880c002,
+ 0xe2107500,
+ 0xc00080a3,
+ 0x0a0a90a2,
+ 0x9100c000,
+ 0x2e14d011,
+ 0x0a067500,
+ 0x0a44d001,
+ 0x0c82c050,
+ 0xc000b481,
+ 0x0a02c004,
+ 0xb4810cb4,
+ 0x9d87c000,
+ 0x402db740,
+ 0x09a20dc2,
+ 0x0d02c008,
+ 0x0c81cff0,
+ 0x9b4dffd4,
+ 0x0a42c801,
+ 0x0a00cb10,
+ 0x0ceac032,
+ 0xc000b481,
+ 0x08c2c801,
+ 0x0888c010,
+ 0xb4210c84,
+ 0xb760c000,
+ 0x9d8f410a,
+ 0x0d81cff0,
+ 0x9b67fff4,
+ 0x0a02c801,
+ 0x0a00c00a,
+ 0x0c8ac030,
+ 0xc000b481,
+ 0x08c2c008,
+ 0xb4210c84,
+ 0xc008c000,
+ 0x0c880a02,
+ 0xc000b481,
+ 0x0d82c0c0,
+ 0xc0080992,
+ 0xc0080d02,
+ 0xc0140902,
+ 0xc00899ae,
+ 0xc0300a02,
+ 0xb4810c8e,
+ 0xc014c000,
+ 0xb79f982f,
+ 0xc0106fee,
+ 0x9c228c20,
+ 0xa205f839,
+ 0x0c82c450,
+ 0xb4810a02,
+ 0xb101c000,
+ 0xc0084220,
+ 0xc0300a40,
+ 0xb4810c8e,
+ 0xc002c000,
+ 0xc05038c0,
+ 0xb4210c82,
+ 0xc0c0c000,
+ 0x09920d82,
+ 0x0d02c008,
+ 0x0902c008,
+ 0x9983c014,
+ 0x0a02c008,
+ 0x0c8ec030,
+ 0xc000b481,
+ 0xaa1df9f8,
+ 0x9040c000,
+ 0xc450a60d,
+ 0x0a020c8a,
+ 0xc000b481,
+ 0x4240b105,
+ 0x2efce00e,
+ 0x5e90d284,
+ 0x0a02c801,
+ 0xc0300a40,
+ 0xb4810c8a,
+ 0x08c2c000,
+ 0xb4210c84,
+ 0x7740c000,
+ 0x5c0cb7c0,
+ 0x93e2c000,
+ 0x0eded031,
+ 0x09820dea,
+ 0x2ac10d02,
+ 0x1950d051,
+ 0x3900c121,
+ 0x98ddfff4,
+ 0xa9c6f248,
+ 0xc280018b,
+ 0x1a845a8f,
+ 0xc0219eaa,
+ 0xffd43d00,
+ 0xf2489a3f,
+ 0xf310a947,
+ 0xf248802b,
+ 0xc450a245,
+ 0x0a020c86,
+ 0xc000b481,
+ 0x4220b101,
+ 0x0a42c801,
+ 0x0a08c010,
+ 0x0c86c032,
+ 0xc000b481,
+ 0xc0020886,
+ 0xb4210c98,
+ 0xb740c000,
+ 0xf2485a8c,
+ 0xf048a8c5,
+ 0xd053aa51,
+ 0xc0801910,
+ 0xf3100ca2,
+ 0xb4818821,
+ 0xb7a0c000,
+ 0xc0025a8c,
+ 0xc0140d82,
+ 0xf248992f,
+ 0xf248a8c5,
+ 0xd053aa31,
+ 0xf3101910,
+ 0x70088821,
+ 0x9264ffff,
+ 0x09c20d86,
+ 0xc1210d0a,
+ 0xffd40902,
+ 0xf2489a0a,
+ 0xc0a1a9b2,
+ 0x0d040d02,
+ 0xffd409c2,
+ 0xc0c099f7,
+ 0x09920d82,
+ 0x09420d42,
+ 0x98f7c014,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x9e5da60d,
+ 0xf1245940,
+ 0xd3f15841,
+ 0xb3502d2e,
+ 0xc0024422,
+ 0xf00893e2,
+ 0xe000aa61,
+ 0xb4252a1c,
+ 0xd8084422,
+ 0x8522aa61,
+ 0x88a9e210,
+ 0x12182a1c,
+ 0xc00e9ea3,
+ 0xba1b0a7e,
+ 0xc200400b,
+ 0x21285207,
+ 0x9276c001,
+ 0xc1009e59,
+ 0x11035a20,
+ 0x5209c200,
+ 0xc2009ea2,
+ 0x9e8d58a1,
+ 0x0cb0d031,
+ 0xa8a2d208,
+ 0x2a7cc00e,
+ 0x5207c200,
+ 0x2a7cc00e,
+ 0xd208349a,
+ 0xf008a0a2,
+ 0x9ea1a963,
+ 0x2a2ed3f1,
+ 0x8128c201,
+ 0x8821f310,
+ 0xf0088502,
+ 0xd228a261,
+ 0x9eaba127,
+ 0x2d01cff0,
+ 0x59415940,
+ 0xc00e3522,
+ 0xfff42d7c,
+ 0xc0009bb1,
+ 0xd20892e0,
+ 0x9e5eaa21,
+ 0x50d8000b,
+ 0xd0293242,
+ 0xf008a205,
+ 0xd013a8e1,
+ 0xf210291e,
+ 0x75108029,
+ 0x00989e44,
+ 0xa0e1f008,
+ 0x4426b350,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x0685a60d,
+ 0x9e9e9e69,
+ 0x71820b02,
+ 0xc0000a86,
+ 0x9ea99208,
+ 0x9e6916d2,
+ 0x5a84c280,
+ 0x1a52d011,
+ 0xd0117102,
+ 0xd3f108e2,
+ 0xffff2b1e,
+ 0xd0119286,
+ 0x75100a62,
+ 0xc000028d,
+ 0x9e7391d4,
+ 0x09220d02,
+ 0x9b70fff4,
+ 0xd0111aa0,
+ 0x75100a52,
+ 0xffff9e83,
+ 0x9e7392d2,
+ 0xd0110d06,
+ 0xc00e0952,
+ 0xfff4297c,
+ 0x75909b61,
+ 0xc0009e83,
+ 0xd03192f4,
+ 0xd3f11a60,
+ 0x9e6c2b4e,
+ 0xc2009e73,
+ 0xd3f25299,
+ 0x0922295e,
+ 0x9b50fff4,
+ 0xc2009e83,
+ 0x9ea952b8,
+ 0x16d27590,
+ 0x91b2ffff,
+ 0xd3f29e73,
+ 0x010d2d5e,
+ 0x9b42fff4,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x0ca0f011,
+ 0xd09a9e99,
+ 0xd00d5a04,
+ 0xc0001a42,
+ 0x1203909a,
+ 0x9e4b1242,
+ 0xfffc9ea2,
+ 0xc0019360,
+ 0xf83993a0,
+ 0x0d8aa205,
+ 0x9835c014,
+ 0xc0140d8e,
+ 0x0d8a9832,
+ 0xaa1df9f8,
+ 0x91a0c001,
+ 0x9e520507,
+ 0x0d82c0c0,
+ 0xc0000992,
+ 0x9e5c9040,
+ 0xd1a401c6,
+ 0x08825889,
+ 0x3c80c400,
+ 0xc000b421,
+ 0x4220b104,
+ 0x9e532244,
+ 0xffff7106,
+ 0x9c229324,
+ 0xc000b463,
+ 0xf8129c22,
+ 0x9c22a062,
+ 0x0d80c200,
+ 0x9e595d89,
+ 0xc4000982,
+ 0xb4633d80,
+ 0xb203c000,
+ 0x00074620,
+ 0xc1279c22,
+ 0x9c229c8f,
+ 0xb971080a,
+ 0xc01756f1,
+ 0xc0719c81,
+ 0xc0179c80,
+ 0xb9609c80,
+ 0x9c224000,
+ 0x8460a61d,
+ 0x4504b740,
+ 0xb53f0882,
+ 0xb5207f6c,
+ 0xf0004788,
+ 0x9e2daa41,
+ 0x590cb7a0,
+ 0x7e6cb53f,
+ 0x5a08c200,
+ 0x0940d093,
+ 0xe0209ea9,
+ 0x0dc2a96d,
+ 0xc002098e,
+ 0xffd40d42,
+ 0xb7209920,
+ 0xf2085894,
+ 0x0882aa25,
+ 0x7eecb53f,
+ 0xa8a9f208,
+ 0xda089eaf,
+ 0xb580a939,
+ 0xda0842cd,
+ 0xb760a93e,
+ 0xb5205a8c,
+ 0xb54043cd,
+ 0xb540434d,
+ 0xf2084455,
+ 0xda08aa39,
+ 0xd112a9a2,
+ 0xf0480938,
+ 0xd810a967,
+ 0x2a20a8c1,
+ 0x9e5c7500,
+ 0xa97df048,
+ 0xc08060c2,
+ 0xc2005a7f,
+ 0x00985a71,
+ 0x58945893,
+ 0x80a3e210,
+ 0xb5400683,
+ 0xb54046cd,
+ 0xb520474d,
+ 0xc00047cd,
+ 0xe1809182,
+ 0xc0005dc0,
+ 0xf0489284,
+ 0xd810a977,
+ 0xc000aa41,
+ 0xb7409100,
+ 0xd8105a84,
+ 0xf040aa41,
+ 0xf310a957,
+ 0xf2908021,
+ 0xf290a12b,
+ 0xf210a225,
+ 0xb760aa39,
+ 0xf2505a9c,
+ 0xf250a8a1,
+ 0xaa61a229,
+ 0xa969a8e6,
+ 0xa0b1f250,
+ 0xf2109d67,
+ 0xf210a221,
+ 0xf210a0aa,
+ 0xd858a12d,
+ 0xd858a8ea,
+ 0xd111a96d,
+ 0xda080a18,
+ 0xf210a881,
+ 0xb720a0a6,
+ 0xf2105c14,
+ 0x58c0a131,
+ 0xf29058d1,
+ 0xda10a0b5,
+ 0xb740aa61,
+ 0xb740425d,
+ 0x008942c5,
+ 0x5a20c200,
+ 0xf310589c,
+ 0xe2108021,
+ 0xa26d82a3,
+ 0xa0f1f018,
+ 0xa225f250,
+ 0xa0adf250,
+ 0x0a00c00c,
+ 0x4e8cb580,
+ 0x0880c006,
+ 0x4f0cb520,
+ 0x0cf2c42e,
+ 0xb4810a02,
+ 0xb101c000,
+ 0x28844220,
+ 0xc0007440,
+ 0xb7409182,
+ 0xd1115a8c,
+ 0xda080a28,
+ 0xc058a881,
+ 0xc0277460,
+ 0xda109292,
+ 0xb720aa61,
+ 0x8706410a,
+ 0x9d547500,
+ 0x1ad2d002,
+ 0xb55f7448,
+ 0xc0007de4,
+ 0xf2109112,
+ 0xcffeaa79,
+ 0xf2102a3d,
+ 0xf210a279,
+ 0x2a40aa79,
+ 0xc0007500,
+ 0x0a0a9122,
+ 0x0caec060,
+ 0xc000b481,
+ 0x90e0c000,
+ 0xc0600a06,
+ 0xb4810cae,
+ 0xb720c000,
+ 0xf2d04d14,
+ 0xf290aa21,
+ 0xc801a8bd,
+ 0x9d1e3c80,
+ 0x450cb740,
+ 0x5a40c200,
+ 0xc30158a0,
+ 0x32423246,
+ 0xa251f008,
+ 0x9999c034,
+ 0xc0340a3e,
+ 0xb4810c9e,
+ 0x0882c000,
+ 0xb4210c90,
+ 0xffd4c000,
+ 0xc0069a92,
+ 0xb5408542,
+ 0x0a02469c,
+ 0x0c8ac030,
+ 0xc000b481,
+ 0x0882c002,
+ 0xb4210c84,
+ 0xc801c000,
+ 0xc0020a02,
+ 0x1c840a00,
+ 0xc000b481,
+ 0x0902c1c1,
+ 0x0940c006,
+ 0x09820dce,
+ 0xffb40d02,
+ 0xc0c09baa,
+ 0xffd40d82,
+ 0xb7809a18,
+ 0xc034468c,
+ 0xc2000cae,
+ 0xb4815a11,
+ 0x0882c000,
+ 0xb4210cfc,
+ 0xf210c000,
+ 0x2a04aa79,
+ 0x850a7500,
+ 0x471cb540,
+ 0x90a2c000,
+ 0xb5408504,
+ 0xb780471c,
+ 0xc03e470c,
+ 0xb5800c82,
+ 0xb481478c,
+ 0xc0c8c000,
+ 0xc0500882,
+ 0xb4210ce2,
+ 0xc2f0c000,
+ 0xc0380a7e,
+ 0xb4810cfa,
+ 0xf250c000,
+ 0xc050a8e5,
+ 0xb4210ce6,
+ 0xb740c000,
+ 0xb720590c,
+ 0x871a470c,
+ 0x8566c184,
+ 0xf0081cb0,
+ 0xb540aa59,
+ 0x3890491c,
+ 0x470cb520,
+ 0x75002a04,
+ 0x0906c800,
+ 0x0a02c006,
+ 0x8f28e001,
+ 0x4804b540,
+ 0xc000b481,
+ 0x0d02c03a,
+ 0xc000b442,
+ 0xc03408be,
+ 0xb4210c9e,
+ 0xb785c000,
+ 0x75005608,
+ 0x9082c000,
+ 0x98e3c054,
+ 0x490cb780,
+ 0x0c82c038,
+ 0xc000b481,
+ 0xa965da10,
+ 0xaa35f290,
+ 0x5c8cb720,
+ 0x62458502,
+ 0x462db720,
+ 0x419ab540,
+ 0x421ab540,
+ 0x429ab540,
+ 0xc2007440,
+ 0xb5805a11,
+ 0xc000430a,
+ 0xf2509102,
+ 0xb760a9ea,
+ 0x9e8c430a,
+ 0xb7e09c62,
+ 0x0b025a8c,
+ 0xb780070b,
+ 0xc050480c,
+ 0xb4810c82,
+ 0xc030c000,
+ 0xb4c20d0a,
+ 0xc00ec000,
+ 0xc03008fe,
+ 0xb4210c8e,
+ 0xf210c000,
+ 0x2a04aa79,
+ 0xc0007500,
+ 0xc4389182,
+ 0xb4c10c8a,
+ 0xb104c000,
+ 0xc03e4220,
+ 0xb4810ca6,
+ 0xb780c000,
+ 0x7500430c,
+ 0x93a2c001,
+ 0x2a00c020,
+ 0xc0017500,
+ 0xc46090e2,
+ 0xb4c10ca2,
+ 0xb104c000,
+ 0x088a4220,
+ 0x0ca2c060,
+ 0xc000b421,
+ 0x0902c004,
+ 0x0c96c030,
+ 0xc000b441,
+ 0x430cb780,
+ 0x2a7dcfde,
+ 0x430cb580,
+ 0x08f8c002,
+ 0x0cecc00e,
+ 0xc000b421,
+ 0x0a02c201,
+ 0xc000b481,
+ 0x8502c004,
+ 0x4d9cb540,
+ 0x430cb720,
+ 0x0c96c030,
+ 0xc000b421,
+ 0x430cb780,
+ 0x75002a04,
+ 0x90e2c000,
+ 0x488cb780,
+ 0xb5800a04,
+ 0xb75f488c,
+ 0xb7807dfc,
+ 0x9eab430c,
+ 0xb5809d4f,
+ 0xc034508c,
+ 0xb7809a3a,
+ 0xc020438c,
+ 0x75002a00,
+ 0x287cc00e,
+ 0x7d6cb51f,
+ 0x9042c002,
+ 0xa9c6f250,
+ 0x0d02c021,
+ 0xc0100d7c,
+ 0xffb40982,
+ 0xf2509a99,
+ 0xc021a9ce,
+ 0x0d3c0d02,
+ 0x0982c008,
+ 0x9a90ffb4,
+ 0x438cb780,
+ 0x2a00c401,
+ 0xc0007500,
+ 0xf2089262,
+ 0xf208aa6d,
+ 0x0906a8f1,
+ 0x7e6cb55f,
+ 0x0a00c010,
+ 0xa26df208,
+ 0x0880c008,
+ 0xa0f1f208,
+ 0x91c0c000,
+ 0xa927f250,
+ 0xaa29f250,
+ 0xa92cf252,
+ 0xa8b1f250,
+ 0x8021f310,
+ 0x82a3e210,
+ 0xa225f250,
+ 0xa0adf250,
+ 0x438cb780,
+ 0x2a7dcfde,
+ 0x438cb580,
+ 0x438cb780,
+ 0x2a00c021,
+ 0xc0017500,
+ 0xb7609122,
+ 0xc0214414,
+ 0x0d140d02,
+ 0x09c2c002,
+ 0x9a52ffb4,
+ 0x4494b760,
+ 0x0d02c021,
+ 0x09c20d04,
+ 0x9a4affb4,
+ 0x441cb740,
+ 0xaa59f210,
+ 0x4484b740,
+ 0xa8c1f250,
+ 0x4394b720,
+ 0x8021f310,
+ 0x82a3e210,
+ 0x2cfecfdf,
+ 0x4394b520,
+ 0x440cb580,
+ 0x448cb520,
+ 0x4394b720,
+ 0xc4019e4c,
+ 0x75002a00,
+ 0x91a2c000,
+ 0xaa45f250,
+ 0xa8cdf250,
+ 0x1a40c002,
+ 0x440cb580,
+ 0xb52018c0,
+ 0x9e4c448c,
+ 0x2c80c400,
+ 0xcbff7640,
+ 0xb5802a7e,
+ 0xc000438c,
+ 0xffd49142,
+ 0xb780986d,
+ 0xcbfe438c,
+ 0xb5802a7d,
+ 0xb75f438c,
+ 0x76807f74,
+ 0x9362c000,
+ 0x5c0cb760,
+ 0x2d410d3c,
+ 0xa9e6f048,
+ 0x5d0d9e53,
+ 0xc0211d04,
+ 0xffb43d00,
+ 0xb78099fd,
+ 0xb75f5c0c,
+ 0xf2487f64,
+ 0xb760a907,
+ 0xf0105c1c,
+ 0xf0588025,
+ 0xb780a265,
+ 0xc100438c,
+ 0x75002a00,
+ 0x9142c000,
+ 0x9ad0ffb4,
+ 0x438cb780,
+ 0x2a7dcefe,
+ 0x438cb580,
+ 0x430cb780,
+ 0x2a00c004,
+ 0xc0027500,
+ 0xd15192a2,
+ 0xb7200ed8,
+ 0xda08418a,
+ 0xba09aa21,
+ 0xba244002,
+ 0x0a0c4002,
+ 0xc0027048,
+ 0xb73f90f8,
+ 0xb7607eec,
+ 0xc0044e94,
+ 0x0d1e0982,
+ 0x0a12d011,
+ 0x2a7cc00e,
+ 0x7eecb59f,
+ 0x99beffb4,
+ 0x4f14b760,
+ 0x0982c002,
+ 0xffb40d0e,
+ 0xb74099b7,
+ 0xf2104e9c,
+ 0xb740aa39,
+ 0xf2084f04,
+ 0xb75fa8a1,
+ 0xf2507eec,
+ 0xc301a8a2,
+ 0xb5408120,
+ 0x70824e9c,
+ 0x8322c001,
+ 0x4f04b540,
+ 0x9286c000,
+ 0x62199e4b,
+ 0xf3106097,
+ 0xe2108821,
+ 0x09028aa3,
+ 0x7eecb55f,
+ 0x0a00c010,
+ 0x4e8cb580,
+ 0x0880c008,
+ 0x4f0cb520,
+ 0x438cb780,
+ 0x3a00c041,
+ 0x438cb580,
+ 0x438cb780,
+ 0x2a00c005,
+ 0xc0047500,
+ 0xf2109142,
+ 0xf210a9c2,
+ 0x09c2a945,
+ 0x0c820d42,
+ 0xffb40882,
+ 0xf2109992,
+ 0xc020aa79,
+ 0x75002a00,
+ 0x9302c000,
+ 0xa9aaf210,
+ 0xa931f210,
+ 0x0d2209a2,
+ 0x08820c82,
+ 0x999fffb4,
+ 0xa9aef210,
+ 0xa931f210,
+ 0x0d2209a2,
+ 0x08820c82,
+ 0x99b3ffb4,
+ 0x9180c000,
+ 0xa9aaf210,
+ 0xa931f210,
+ 0x0d2209c2,
+ 0x08820c82,
+ 0x996bffb4,
+ 0x438cb720,
+ 0xc1010203,
+ 0x75002a00,
+ 0x9122c001,
+ 0xa8eada48,
+ 0xa963f208,
+ 0x28feceff,
+ 0x438cb520,
+ 0xa8edda48,
+ 0xa968f20a,
+ 0xe2205c90,
+ 0xf20880ab,
+ 0x0203a967,
+ 0xc200588c,
+ 0xf3105a0c,
+ 0xe2108221,
+ 0xf20880a3,
+ 0xf208a0e2,
+ 0xf208a269,
+ 0xf210a0e5,
+ 0xf210a0c2,
+ 0xf210a0c9,
+ 0xc001a24d,
+ 0xf2109040,
+ 0xf210aa79,
+ 0xc020a8c1,
+ 0x75002a00,
+ 0xf21008c0,
+ 0xc000a0c1,
+ 0xf2109182,
+ 0xf210aa29,
+ 0x0a20a8ad,
+ 0xa229f210,
+ 0xc00008a0,
+ 0xf2109140,
+ 0xf210aa29,
+ 0x0a40a8ad,
+ 0xa229f210,
+ 0xf21008c0,
+ 0xb780a0ad,
+ 0xcffb438c,
+ 0xc0092a7e,
+ 0xb5803a00,
+ 0xb780438c,
+ 0x75004d8c,
+ 0x9142c000,
+ 0x0c82c040,
+ 0xc000b481,
+ 0x0a02c201,
+ 0xc000b481,
+ 0x438cb780,
+ 0x2a00c008,
+ 0xc0007500,
+ 0xc1119362,
+ 0xc04e0902,
+ 0x0df20940,
+ 0x0d020982,
+ 0x9b8dffb4,
+ 0x0902c111,
+ 0x0940c026,
+ 0x09820df6,
+ 0x0d42c004,
+ 0x9b83ffb4,
+ 0x438cb780,
+ 0x2a7dcff6,
+ 0x438cb580,
+ 0x438cb780,
+ 0x2a00c080,
+ 0xc0007500,
+ 0xb76091c2,
+ 0xba1b4192,
+ 0xc0144003,
+ 0xb7809aa0,
+ 0xcf7e438c,
+ 0xb5802a7d,
+ 0xb780438c,
+ 0xc010438c,
+ 0x75002a00,
+ 0x93e2c001,
+ 0x0902c121,
+ 0x0940c00e,
+ 0x09820d9e,
+ 0xffb40d02,
+ 0xc1219b3c,
+ 0xc0860902,
+ 0x0da20940,
+ 0x0d020982,
+ 0x9b33ffb4,
+ 0x7e74b75f,
+ 0xc0017680,
+ 0xf2109002,
+ 0x2a40aa79,
+ 0xc0007500,
+ 0xc1219342,
+ 0xc0020902,
+ 0x0da60900,
+ 0x0d060982,
+ 0x9b1fffb4,
+ 0x0902c121,
+ 0x0900c080,
+ 0x09820da6,
+ 0xffb40d16,
+ 0xb7809b16,
+ 0xc021438c,
+ 0xb5803a00,
+ 0xb780438c,
+ 0xcfee438c,
+ 0xc0202a7d,
+ 0xb5803a00,
+ 0xb780438c,
+ 0xc800438c,
+ 0x75002a00,
+ 0x92c2c000,
+ 0x7d6cb79f,
+ 0x4192b760,
+ 0xa97af210,
+ 0xba1b0189,
+ 0x5d114003,
+ 0x2d044d04,
+ 0x9bcdffb4,
+ 0x438cb780,
+ 0x2a7ec7fe,
+ 0x438cb580,
+ 0x438cb780,
+ 0x2a00c200,
+ 0xc0007500,
+ 0x0d8690c2,
+ 0xffb40982,
+ 0xb7809a2e,
+ 0xc041438c,
+ 0x75002a00,
+ 0x9342c000,
+ 0x0902c101,
+ 0x0940c002,
+ 0x09820da6,
+ 0xffb40d02,
+ 0xc1019ad2,
+ 0xc0800902,
+ 0x0da60940,
+ 0x0d120982,
+ 0x9ac9ffb4,
+ 0x438cb780,
+ 0x2a7ecfbf,
+ 0x438cb580,
+ 0x438cb720,
+ 0xc0090203,
+ 0x75002a00,
+ 0x9142c001,
+ 0x0902c101,
+ 0x0940c00e,
+ 0x28fecff7,
+ 0x438cb520,
+ 0x09820d9e,
+ 0xffb40d02,
+ 0xf2109aae,
+ 0xc020aa79,
+ 0x75002a00,
+ 0x91a2c000,
+ 0x0902c101,
+ 0x0940c006,
+ 0x09820da2,
+ 0xffb40d02,
+ 0xc0009a9e,
+ 0xc1019160,
+ 0xc0860902,
+ 0x0da20940,
+ 0x0d020982,
+ 0x9a93ffb4,
+ 0x0902c1c1,
+ 0x0940c006,
+ 0x09820dce,
+ 0xffb40d02,
+ 0xc0149802,
+ 0xc03099e3,
+ 0xb4c10c8a,
+ 0xb780c000,
+ 0x0c884d8c,
+ 0xc000b481,
+ 0x0882cc01,
+ 0xb4211c88,
+ 0xc034c000,
+ 0xb7209bfa,
+ 0xd0314d8c,
+ 0x75002a10,
+ 0xb55f0902,
+ 0xc0007f6c,
+ 0xc43a91c2,
+ 0xb4c10c82,
+ 0xb104c000,
+ 0xc0114220,
+ 0xc03a3a00,
+ 0xb4810c82,
+ 0xd211c000,
+ 0x75002a10,
+ 0x9342c000,
+ 0x0c8ac450,
+ 0xc000b4c1,
+ 0x4240b102,
+ 0xc00e9e53,
+ 0xb57f29fc,
+ 0x00877f6c,
+ 0xb4c11c84,
+ 0xb104c000,
+ 0x2a104220,
+ 0xc0007500,
+ 0x589090a4,
+ 0x7f6cb53f,
+ 0x4708b720,
+ 0x430cb780,
+ 0xb5807440,
+ 0xc0004d8c,
+ 0xc4389204,
+ 0xb4c10c82,
+ 0xb104c000,
+ 0x2a714220,
+ 0xc0383a04,
+ 0xb4810c82,
+ 0xc000c000,
+ 0x74429200,
+ 0x91a4c000,
+ 0x0c82c438,
+ 0xc000b4c1,
+ 0x4220b104,
+ 0xc0382a71,
+ 0xb4810c82,
+ 0xc030c000,
+ 0xb4c10c8a,
+ 0xc801c000,
+ 0xc0020a02,
+ 0xb4810a00,
+ 0x08bec000,
+ 0x0c94c004,
+ 0xc000b421,
+ 0x0d82c0c0,
+ 0x99f7ffb4,
+ 0x4112b760,
+ 0x428cb780,
+ 0x9c629ea4,
+ 0x468cb720,
+ 0x0caec034,
+ 0xb4215891,
+ 0x0a02c000,
+ 0xc0007500,
+ 0xb73f9244,
+ 0x74407f6c,
+ 0x91a2c000,
+ 0x091ed031,
+ 0x0dea2941,
+ 0x0d020982,
+ 0xc1211940,
+ 0xffb43900,
+ 0xc01499ec,
+ 0xb7859928,
+ 0x75006408,
+ 0x478cb780,
+ 0x90a2c000,
+ 0xb5c52a79,
+ 0xc03e6408,
+ 0xb4810c82,
+ 0xb780c000,
+ 0x8702508c,
+ 0x418ab720,
+ 0xb55f0a82,
+ 0x2a087de4,
+ 0x08847500,
+ 0x418ab520,
+ 0x9362c000,
+ 0x5a8cb720,
+ 0x4292b720,
+ 0x0a18d111,
+ 0xa881da08,
+ 0x9e4c0c84,
+ 0x4002ba24,
+ 0x71025891,
+ 0x4292b520,
+ 0x9138c000,
+ 0x420ab780,
+ 0x428ab5a0,
+ 0xb5800a04,
+ 0xb73f420a,
+ 0x76407d74,
+ 0x90e2ffe0,
+ 0x438cb780,
+ 0x7d3ed3ff,
+ 0x9024ffe0,
+ 0x7f6cb75f,
+ 0xffdf7480,
+ 0xb79f9384,
+ 0xb7bf7cee,
+ 0xb7df7d6e,
+ 0xb7ff7dee,
+ 0xc0027e6e,
+ 0x9c228c60,
+ 0xc004a605,
+ 0xc8298420,
+ 0xc4e80ca2,
+ 0xc0300ce0,
+ 0xe133ac3d,
+ 0xc0388d00,
+ 0xc030a45d,
+ 0xc038ac3d,
+ 0xc010a45d,
+ 0xc018ac3d,
+ 0xc010a45d,
+ 0xc018ac25,
+ 0xb740a445,
+ 0xf0004504,
+ 0xb7a0aa41,
+ 0x9e2d5a8c,
+ 0x5a08c200,
+ 0x0940d093,
+ 0xe0209ea9,
+ 0x0dc2a96d,
+ 0x0d42c008,
+ 0xff9409c2,
+ 0xb7809b4e,
+ 0xf2085c0c,
+ 0x8502a8a1,
+ 0xa8a6f208,
+ 0xa103f208,
+ 0xa085f208,
+ 0xa929f208,
+ 0xa08af208,
+ 0xa92ef208,
+ 0xa8b2f208,
+ 0xa10df208,
+ 0xa8b1f248,
+ 0xa112f208,
+ 0xa096f208,
+ 0xa09af208,
+ 0xc036090a,
+ 0x08c00c92,
+ 0xa085f248,
+ 0xc000b441,
+ 0x1c8c0a16,
+ 0xc000b481,
+ 0x8c00f031,
+ 0x8d80e131,
+ 0xb55f9ea3,
+ 0x0d027ffc,
+ 0x4078b960,
+ 0xa103f208,
+ 0xd1229dba,
+ 0x9e2d5d0d,
+ 0xa8e5f029,
+ 0x2caed012,
+ 0xd1265c88,
+ 0x9e4a5908,
+ 0xaa4de038,
+ 0x28bc0d04,
+ 0x324250a8,
+ 0xffffa241,
+ 0xf01091c1,
+ 0xc036aa61,
+ 0xb4810c8e,
+ 0xb73fc000,
+ 0x1c847fec,
+ 0xc000b421,
+ 0x9afbc034,
+ 0x08c2c801,
+ 0x0890c112,
+ 0x0a42c809,
+ 0x0a00c5fc,
+ 0x0cbec032,
+ 0x428cb580,
+ 0xc000b421,
+ 0x0ce00a3e,
+ 0xc000b481,
+ 0xc0800882,
+ 0xb4210cc6,
+ 0xc801c000,
+ 0xc1120a42,
+ 0xc0320a18,
+ 0xb4810cc2,
+ 0x08c0c000,
+ 0xb4210cdc,
+ 0x0a02c000,
+ 0x0cc6c080,
+ 0xc000b481,
+ 0x08c2c801,
+ 0x0890c114,
+ 0x0cc6c032,
+ 0xc000b421,
+ 0x0cd80a44,
+ 0xc000b481,
+ 0xc0800882,
+ 0xb4210cc6,
+ 0xc801c000,
+ 0xc1140a42,
+ 0xc0320a18,
+ 0xb4810cca,
+ 0x08c8c000,
+ 0xb4210cd4,
+ 0x0a02c000,
+ 0x0cc6c080,
+ 0xc000b481,
+ 0x7aeeb79f,
+ 0x7b6eb7bf,
+ 0x8c60c004,
+ 0x08829c22,
+ 0x0c92c001,
+ 0x0c84c332,
+ 0xc000b421,
+ 0x4c8cb780,
+ 0x0a10873e,
+ 0x9c8bc040,
+ 0xc238b780,
+ 0xb7809c22,
+ 0x0a40468c,
+ 0x7520c00c,
+ 0x468cb580,
+ 0x48b4b340,
+ 0xb5408502,
+ 0x9c22469c,
+ 0x4c8cb780,
+ 0xa895f208,
+ 0xa88ef208,
+ 0xa905f208,
+ 0xa99df208,
+ 0xa906f288,
+ 0xa09df208,
+ 0xa096f208,
+ 0xa10df208,
+ 0xa185f208,
+ 0xa899f208,
+ 0xa892f208,
+ 0xa909f208,
+ 0xa981f248,
+ 0xa081f248,
+ 0xa09af208,
+ 0xa111f208,
+ 0xa189f208,
+ 0xa881f288,
+ 0xa995f248,
+ 0xa89ef248,
+ 0xa90df248,
+ 0xa085f288,
+ 0xa18df248,
+ 0xa999f248,
+ 0xa082f288,
+ 0xa115f248,
+ 0xa891f248,
+ 0xa191f248,
+ 0xa989f288,
+ 0xa89af288,
+ 0xa099f248,
+ 0xa10af288,
+ 0xa19df248,
+ 0xa99df288,
+ 0xa09ef288,
+ 0xa895f288,
+ 0xa892f288,
+ 0xa90df288,
+ 0xa099f288,
+ 0xa096f288,
+ 0xa111f288,
+ 0xa18df288,
+ 0xa60d9c22,
+ 0x0a42c801,
+ 0x0a00cb10,
+ 0x0ceac032,
+ 0xc000b481,
+ 0x08c2c801,
+ 0x0888c010,
+ 0xb4210c84,
+ 0xc008c000,
+ 0xc0020a42,
+ 0xb4811ce4,
+ 0xc008c000,
+ 0xc03008c2,
+ 0xb4220d0e,
+ 0xc450c000,
+ 0xc0080c82,
+ 0xb4811a40,
+ 0xb101c000,
+ 0xc0024220,
+ 0xb52038c0,
+ 0xc0504e0c,
+ 0xb4210c82,
+ 0xc0c0c000,
+ 0x09920d82,
+ 0x0d02c008,
+ 0x0902c008,
+ 0x988fffd4,
+ 0x0c86c450,
+ 0xb4810a02,
+ 0xb104c000,
+ 0xc0084220,
+ 0xc0300a02,
+ 0xb4820d0e,
+ 0x0c84c000,
+ 0x1a00c008,
+ 0xc000b481,
+ 0x4220b105,
+ 0x5a35c280,
+ 0x0882c801,
+ 0xc00e08c0,
+ 0xc2802afc,
+ 0xd0725a90,
+ 0x9ead2b4e,
+ 0x0c8ac030,
+ 0xc000b421,
+ 0x0c840a42,
+ 0xc000b481,
+ 0xb7c07740,
+ 0xc0015c0c,
+ 0xd0319002,
+ 0x0dea0ede,
+ 0x0d020982,
+ 0xd0512ac1,
+ 0xc1211950,
+ 0xff943900,
+ 0xf2489be2,
+ 0x018ba9c6,
+ 0x5a8dc280,
+ 0x9eaa1a84,
+ 0x3d00c021,
+ 0x9944ff94,
+ 0xaa45f248,
+ 0x16dcd010,
+ 0xf248024a,
+ 0xc450a245,
+ 0x0a020c86,
+ 0xc000b481,
+ 0x4220b104,
+ 0xc0340a6e,
+ 0xb4810c9e,
+ 0xb720c000,
+ 0xf2485a8c,
+ 0xb720aa45,
+ 0xd0534635,
+ 0xf2101940,
+ 0xc08088ab,
+ 0xc2800ca2,
+ 0xb5805a0c,
+ 0xb4a1420c,
+ 0xb785c000,
+ 0x75005608,
+ 0x9262c003,
+ 0x580cb721,
+ 0x568cb781,
+ 0x7c40c030,
+ 0xb5810a04,
+ 0xc000568c,
+ 0xc0349082,
+ 0xb72098c3,
+ 0xb720538c,
+ 0xb78141b5,
+ 0xb740568c,
+ 0x9e49442d,
+ 0x71046243,
+ 0x90b8c000,
+ 0xb5458506,
+ 0xb7855c18,
+ 0x75005708,
+ 0x5c94b7a0,
+ 0x9262c000,
+ 0x548cb7a0,
+ 0xa83df210,
+ 0xa9a1f208,
+ 0x9e840d86,
+ 0xf2089c62,
+ 0xf250a021,
+ 0x9eaba825,
+ 0x9e840986,
+ 0xb7859c62,
+ 0x75005708,
+ 0x9164c000,
+ 0x5494b760,
+ 0xa825f210,
+ 0x9c629e84,
+ 0xc0000281,
+ 0xb7859220,
+ 0x75005688,
+ 0x9102c000,
+ 0x558cb780,
+ 0xaa81f208,
+ 0x90c0c000,
+ 0x560cb780,
+ 0xaa8df208,
+ 0x578cb720,
+ 0x4129b780,
+ 0x03037500,
+ 0x9264c000,
+ 0x5708b785,
+ 0xc0007500,
+ 0xf25090c4,
+ 0x9ea4aa21,
+ 0xb7409c62,
+ 0xf210421c,
+ 0xe320aa35,
+ 0x9ea489a3,
+ 0xf2109c62,
+ 0x9eabaa39,
+ 0x9ea4018d,
+ 0xb7809c62,
+ 0xc080540c,
+ 0xd2c80ca6,
+ 0xb4a1aa91,
+ 0xc002c000,
+ 0xffb40d92,
+ 0x700a9bbb,
+ 0x9364ffff,
+ 0x09c20d86,
+ 0xc1210d0a,
+ 0xff940902,
+ 0xb780989e,
+ 0xf2485a8c,
+ 0xc0a1a992,
+ 0x0d040d02,
+ 0xff9409c2,
+ 0xc0c09889,
+ 0x09920d82,
+ 0x09420d42,
+ 0x9b89ffb4,
+ 0xc0300a42,
+ 0xb4810c8e,
+ 0xb79fc000,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0xb7009c22,
+ 0x76c05a8c,
+ 0x0d820c02,
+ 0x9342c000,
+ 0x438cb780,
+ 0x0880d131,
+ 0x4033b720,
+ 0x4f94b500,
+ 0x5014b500,
+ 0x4994b500,
+ 0x76402c88,
+ 0x2a7ecdff,
+ 0x438cb580,
+ 0xc0008522,
+ 0x85129062,
+ 0x4b9cb540,
+ 0xb74074c0,
+ 0xc0005914,
+ 0xb78092e2,
+ 0x8502438c,
+ 0xa8c1d810,
+ 0x501cb540,
+ 0x431cb540,
+ 0x599cb541,
+ 0x4c1cb540,
+ 0x499cb540,
+ 0x4f8cb520,
+ 0x2a7ecdff,
+ 0x438cb580,
+ 0x0880d131,
+ 0x4033b720,
+ 0x430cb780,
+ 0x2c14d012,
+ 0xc0080089,
+ 0x75002a00,
+ 0x28fdcffa,
+ 0x430cb520,
+ 0x92c2c000,
+ 0x438cb780,
+ 0xc8007600,
+ 0xb5803a00,
+ 0xc000438c,
+ 0x850690e4,
+ 0x6818b545,
+ 0x9100c000,
+ 0x6808b785,
+ 0x3a080d86,
+ 0x6808b585,
+ 0x6808b745,
+ 0x2a22d011,
+ 0xc0007500,
+ 0xb7809102,
+ 0xc010438c,
+ 0xb5803a00,
+ 0xb780438c,
+ 0x75004c0c,
+ 0x90e2c000,
+ 0x430cb780,
+ 0xb5802a79,
+ 0xb720430c,
+ 0xb7204314,
+ 0x9e4c4b8c,
+ 0xd3f17902,
+ 0xc2002a2e,
+ 0xb5855a05,
+ 0xc0006808,
+ 0xd2119102,
+ 0xb5803e10,
+ 0xc000430c,
+ 0xcff690c0,
+ 0xb5202cfd,
+ 0xb7204314,
+ 0xd1114314,
+ 0x75002e10,
+ 0x90a2c000,
+ 0xb5408506,
+ 0x76004a1c,
+ 0x5e1dd0a2,
+ 0xd0020882,
+ 0x2a040892,
+ 0xc0007902,
+ 0xd1119102,
+ 0xb5803e10,
+ 0xc000430c,
+ 0x76c09120,
+ 0x90c2c000,
+ 0x3c80c020,
+ 0x4314b520,
+ 0x430cb720,
+ 0x2a12d011,
+ 0xc0007500,
+ 0xb78090e2,
+ 0x32184b8c,
+ 0x90c0c000,
+ 0x4b8cb780,
+ 0x22184a7d,
+ 0x430cb580,
+ 0x430cb720,
+ 0x2a14d011,
+ 0xc0007500,
+ 0xd0119102,
+ 0xb5803a12,
+ 0xc000430c,
+ 0x28f990a0,
+ 0x430cb520,
+ 0xa8c1d810,
+ 0x4f9cb740,
+ 0xaa45d810,
+ 0x88a3e210,
+ 0x5a11c200,
+ 0xc0037048,
+ 0xd1119036,
+ 0xda080a08,
+ 0xb720a882,
+ 0xb740430c,
+ 0x5c91498c,
+ 0xb7409e4c,
+ 0x38884394,
+ 0x430cb520,
+ 0xc1007088,
+ 0xb5403d00,
+ 0xc0004394,
+ 0xb7219278,
+ 0x9e54598c,
+ 0xc0017440,
+ 0xb5803a04,
+ 0xc000438c,
+ 0xc0119124,
+ 0xb5403d04,
+ 0x85064394,
+ 0x599cb541,
+ 0x088cd112,
+ 0x404bb780,
+ 0x4f8cb720,
+ 0x5a11c200,
+ 0xc0007048,
+ 0xb7809116,
+ 0xc001438c,
+ 0xb5803a10,
+ 0xb780438c,
+ 0xc200404b,
+ 0x1a085a11,
+ 0xc0007048,
+ 0xb7809116,
+ 0xc001438c,
+ 0xb5803a40,
+ 0xb720438c,
+ 0xd1115014,
+ 0xda080a08,
+ 0x9e4ca881,
+ 0x71025891,
+ 0x9102c000,
+ 0x438cb780,
+ 0x3a00c005,
+ 0x438cb580,
+ 0x438cb780,
+ 0x3a00c084,
+ 0x438cb580,
+ 0x91a0c000,
+ 0x430cb780,
+ 0x438cb720,
+ 0xb5802a75,
+ 0xcffa430c,
+ 0xb52028fd,
+ 0xb740438c,
+ 0xf012430c,
+ 0xc0002922,
+ 0xb7809102,
+ 0xc080438c,
+ 0xb5803a00,
+ 0xb780438c,
+ 0xb720498c,
+ 0xb7204b94,
+ 0x0a04500c,
+ 0x498cb580,
+ 0x78889e4c,
+ 0xb5200884,
+ 0xc000500c,
+ 0x76809222,
+ 0x91c4c000,
+ 0x470cb720,
+ 0x3a22d011,
+ 0x430cb580,
+ 0xb5408506,
+ 0x28f94c1c,
+ 0x470cb520,
+ 0x0a08d111,
+ 0xa881da08,
+ 0x5014b720,
+ 0x18c0c002,
+ 0x5a7fc080,
+ 0x5a71c200,
+ 0x9e4c0098,
+ 0x470cb740,
+ 0x71025893,
+ 0x478cb540,
+ 0x9044c001,
+ 0x438cb740,
+ 0xc0800205,
+ 0x75002a00,
+ 0x9342c000,
+ 0x4f94b720,
+ 0x76420205,
+ 0x3a00c201,
+ 0x438cb580,
+ 0x921cc000,
+ 0x0a0cd111,
+ 0xa881da08,
+ 0x9e4c0c8c,
+ 0x71025891,
+ 0x90d6c000,
+ 0x3900ca01,
+ 0x438cb540,
+ 0x5014b720,
+ 0x0a08d111,
+ 0xa881da08,
+ 0x58919e4c,
+ 0xc0007102,
+ 0xb7209278,
+ 0x0203438c,
+ 0x2a00c005,
+ 0xc0007500,
+ 0xc1019162,
+ 0xb5203880,
+ 0x8506438c,
+ 0x4a9cb540,
+ 0x4b1cb540,
+ 0xc0007600,
+ 0xb7809122,
+ 0x750c500c,
+ 0x9122c000,
+ 0x92a0c000,
+ 0x500cb780,
+ 0xc000750a,
+ 0xb7809204,
+ 0x75004a8c,
+ 0x9162c000,
+ 0x438cb780,
+ 0xb5408502,
+ 0xc4014a9c,
+ 0xb5803a00,
+ 0xb780438c,
+ 0x7506500c,
+ 0x9204c000,
+ 0x4b0cb780,
+ 0xc0007500,
+ 0xb7809162,
+ 0x8502438c,
+ 0x4b1cb540,
+ 0x3a00c800,
+ 0x438cb580,
+ 0x5014b720,
+ 0x0a08d111,
+ 0xa881da08,
+ 0x58919e4c,
+ 0xc0007102,
+ 0xb7809158,
+ 0x85024f8c,
+ 0x501cb540,
+ 0xb5800a04,
+ 0xb7804f8c,
+ 0x7500430c,
+ 0xc0008502,
+ 0xb7809144,
+ 0xc400438c,
+ 0x75002a00,
+ 0xe0018502,
+ 0x9d438522,
+ 0xb7859c22,
+ 0x75005688,
+ 0x588cb760,
+ 0x93a4c001,
+ 0x590cb720,
+ 0x432db780,
+ 0x75002a20,
+ 0x4208b740,
+ 0x5d1cb740,
+ 0x9082c000,
+ 0x5e1cb740,
+ 0xc0409d53,
+ 0xb720a8c5,
+ 0xd0315894,
+ 0xc0021a24,
+ 0xd0126a72,
+ 0xd231691d,
+ 0x9e4b0c90,
+ 0xb5407500,
+ 0xd2514035,
+ 0xb5800c90,
+ 0xd03c402d,
+ 0xb4114100,
+ 0xb7804e38,
+ 0xc0b8402d,
+ 0xc0007538,
+ 0xc05c90dc,
+ 0xb5408572,
+ 0xd011403d,
+ 0xd2726a2d,
+ 0xd23108b0,
+ 0xb54008b8,
+ 0xb5804035,
+ 0xd231404d,
+ 0xf2080a30,
+ 0x7500aa01,
+ 0x90c2c000,
+ 0x0cb6c03e,
+ 0xc000b481,
+ 0x0a30d251,
+ 0xa881f208,
+ 0x0caac03e,
+ 0xc000b421,
+ 0x0a38d231,
+ 0xaa01f208,
+ 0xc0007500,
+ 0xc2009122,
+ 0xc8015a40,
+ 0x0c903a00,
+ 0xc000b481,
+ 0x0a38d251,
+ 0xaa01f208,
+ 0xc0007500,
+ 0xc03e90c2,
+ 0xb4810ca2,
+ 0xd271c000,
+ 0xf2080a30,
+ 0xc03ea881,
+ 0xb4210c8a,
+ 0x9c22c000,
+ 0xc43ea685,
+ 0x0a020c92,
+ 0xc000b481,
+ 0x4220b103,
+ 0x570cb780,
+ 0xa885da08,
+ 0xa909da08,
+ 0xa189da08,
+ 0xa081da08,
+ 0xa105da08,
+ 0x0a020cd0,
+ 0xc000b481,
+ 0x4220b103,
+ 0x568cb780,
+ 0x570cb7c0,
+ 0xa885da08,
+ 0xda089ea5,
+ 0xda08a88a,
+ 0xc008a189,
+ 0x76c02d80,
+ 0xa081da08,
+ 0xa086da08,
+ 0x9102c00b,
+ 0x4708b780,
+ 0xb5800a04,
+ 0xc4504708,
+ 0x0a020ca6,
+ 0xc000b481,
+ 0x4220b103,
+ 0xc0310087,
+ 0x02072880,
+ 0x2a7cc00f,
+ 0x5861d0a4,
+ 0x59c1d228,
+ 0xcffe0287,
+ 0x0c882afc,
+ 0xb4810a02,
+ 0xb103c000,
+ 0xd1a64220,
+ 0x010759c1,
+ 0x297ccffe,
+ 0xb4810cbc,
+ 0xb103c000,
+ 0x00874220,
+ 0x6e8ab782,
+ 0x2880c0fc,
+ 0x5b19d0a4,
+ 0x5690b725,
+ 0x283ed0f1,
+ 0x9ea21208,
+ 0xb5027640,
+ 0xba126e8a,
+ 0xc0004003,
+ 0xb78590e4,
+ 0x75005708,
+ 0x93a4c002,
+ 0x5708b785,
+ 0xe3317500,
+ 0xd01181b3,
+ 0xb7800127,
+ 0x7602590c,
+ 0xd0010c82,
+ 0xf2080c92,
+ 0x9e4ca899,
+ 0x78482884,
+ 0x5494b760,
+ 0x90e2c000,
+ 0xaa69d810,
+ 0xd8100a04,
+ 0xf010a269,
+ 0xf012a96b,
+ 0xf010a96c,
+ 0xe2108026,
+ 0xf01082a5,
+ 0xf010a269,
+ 0xb782a0ed,
+ 0x75004c08,
+ 0xd0020882,
+ 0x76020892,
+ 0xd0020a02,
+ 0x78480a42,
+ 0x90c2c000,
+ 0x8542c07c,
+ 0xa143da08,
+ 0xf0107602,
+ 0xc000a973,
+ 0xda1090c4,
+ 0xc000aa21,
+ 0xda089080,
+ 0xe310aa41,
+ 0xd81080a1,
+ 0xf010aa6d,
+ 0x7606a0f1,
+ 0xd8100a04,
+ 0xc000a26d,
+ 0xb7809124,
+ 0x0a044788,
+ 0x4788b580,
+ 0x9200c006,
+ 0xb5408502,
+ 0xc0064798,
+ 0xb7209160,
+ 0xb720590c,
+ 0xd3305494,
+ 0xb7800127,
+ 0xc301432d,
+ 0xb7408122,
+ 0x2a044545,
+ 0xf0107500,
+ 0xf3108027,
+ 0x05838221,
+ 0x454db580,
+ 0x90a2c001,
+ 0xc0007602,
+ 0xda1090c4,
+ 0xc000aa21,
+ 0xda089080,
+ 0xd810aa41,
+ 0x7606a27d,
+ 0x9082c001,
+ 0xc0007600,
+ 0x768091a4,
+ 0xa973d810,
+ 0x8d2ae002,
+ 0x8025f210,
+ 0xa271d810,
+ 0x92c0c000,
+ 0xd8507680,
+ 0xe002a967,
+ 0xc0008d26,
+ 0xda109160,
+ 0x7680aa21,
+ 0xa967d850,
+ 0xa27dd810,
+ 0x8d2ae002,
+ 0x8025f210,
+ 0xa265d850,
+ 0x5808b785,
+ 0xc0007500,
+ 0xb78092e2,
+ 0x7008410a,
+ 0x9244c000,
+ 0xb5458502,
+ 0xc43a5818,
+ 0x0a020c82,
+ 0xc000b481,
+ 0x4220b103,
+ 0x29fecfef,
+ 0x0c82c03a,
+ 0xc000b461,
+ 0x410ab780,
+ 0x08827008,
+ 0x0892d002,
+ 0x0a027606,
+ 0x0a42d001,
+ 0xc0007848,
+ 0x85069242,
+ 0x5818b545,
+ 0x0c82c43a,
+ 0xb4810a02,
+ 0xb103c000,
+ 0xc0114220,
+ 0xc03a3980,
+ 0xb4610c82,
+ 0x7780c000,
+ 0x9162c001,
+ 0xc0007600,
+ 0xda0892c4,
+ 0xf010aa41,
+ 0xd810a967,
+ 0xd810a8f5,
+ 0xf310a8fa,
+ 0x00828021,
+ 0xa0f5d810,
+ 0xd8100c84,
+ 0xf010a0fa,
+ 0xc000a265,
+ 0xda109280,
+ 0xf010aa21,
+ 0xd850a97b,
+ 0xd850a8e9,
+ 0xf310a8ee,
+ 0x00828021,
+ 0xa0e9d850,
+ 0xd8500c84,
+ 0xf010a0ee,
+ 0xd810a279,
+ 0xf010aa7d,
+ 0xf052a97f,
+ 0xf050a960,
+ 0xf310a9e7,
+ 0xf0508021,
+ 0xf010a96f,
+ 0xf310a27d,
+ 0xd8508223,
+ 0xf050a8e2,
+ 0xf010a261,
+ 0xe2108037,
+ 0x0c8480a1,
+ 0xa0e2d850,
+ 0xa265f050,
+ 0xa0edf050,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c40,
+ 0xb781a605,
+ 0xc008580c,
+ 0x75002a00,
+ 0x9282c000,
+ 0x548cb780,
+ 0x5c8cb720,
+ 0xa982f208,
+ 0x452db700,
+ 0x9c629e84,
+ 0x580cb781,
+ 0x400ab500,
+ 0x2a7dcff6,
+ 0x580cb581,
+ 0x580cb781,
+ 0x2a00c010,
+ 0xc0017500,
+ 0xb7a091c2,
+ 0xb7a05c8c,
+ 0xf2085494,
+ 0x058ba825,
+ 0x9c629e84,
+ 0xaa21f248,
+ 0x9c629ea4,
+ 0x538cb720,
+ 0x6210b725,
+ 0x422bb780,
+ 0x70489e49,
+ 0x9222c000,
+ 0xa9a1f210,
+ 0xa83df208,
+ 0x9e840d86,
+ 0xf2489c62,
+ 0xf210aa25,
+ 0x058ba021,
+ 0x9ea40986,
+ 0xb7819c62,
+ 0xcfee580c,
+ 0xb5812a7d,
+ 0xb721580c,
+ 0x0203580c,
+ 0x2a00c020,
+ 0xc0007500,
+ 0xcfde90c2,
+ 0xb52128fd,
+ 0xb79f580c,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xf8399c22,
+ 0xb781a205,
+ 0xc030580c,
+ 0xc0007d00,
+ 0xb7809162,
+ 0xc0084d8c,
+ 0x75002a00,
+ 0x9082c000,
+ 0x9b92fff4,
+ 0x4d94b760,
+ 0x9ad8ff94,
+ 0xc0600a02,
+ 0xb4810ca2,
+ 0xb760c000,
+ 0xfff44d94,
+ 0xb78099eb,
+ 0xc01c4788,
+ 0xc0007534,
+ 0x85069104,
+ 0x6418b545,
+ 0xb5408502,
+ 0xb7854798,
+ 0x75005608,
+ 0x9282c001,
+ 0x538cb780,
+ 0x4710b720,
+ 0xa88dda08,
+ 0x71029e4c,
+ 0x9044c001,
+ 0x580cb721,
+ 0xc0100203,
+ 0x75002a00,
+ 0x9102c000,
+ 0x3880c020,
+ 0x580cb521,
+ 0x9b5cfff4,
+ 0x580cb781,
+ 0x6208b725,
+ 0x4012b720,
+ 0xb5408502,
+ 0x08844718,
+ 0x6208b525,
+ 0x4112b520,
+ 0x3a00c018,
+ 0x580cb581,
+ 0x4d8cb780,
+ 0x7500c010,
+ 0x9084c000,
+ 0x9931fff4,
+ 0xaa1df9f8,
+ 0xa61d9c22,
+ 0x5b0cb780,
+ 0xa882da08,
+ 0x5a8cb720,
+ 0x2e10d091,
+ 0x03837500,
+ 0x9282c004,
+ 0x2e14d011,
+ 0xb5458502,
+ 0x0f825c18,
+ 0x5694b5e1,
+ 0x85067500,
+ 0x5618b545,
+ 0x9082c000,
+ 0x5698b545,
+ 0x2e10d111,
+ 0xc0007500,
+ 0xb5459082,
+ 0x9e4c5718,
+ 0x2a00c040,
+ 0xc0007500,
+ 0xb5459082,
+ 0xb7855798,
+ 0x75005708,
+ 0x5c94b7c0,
+ 0x9144c002,
+ 0x0a42c809,
+ 0x0a30c69c,
+ 0x08c2c809,
+ 0x0880c738,
+ 0x0cc2c809,
+ 0x0ce0c786,
+ 0x0942c809,
+ 0x0950c756,
+ 0x0d42c809,
+ 0x0d20c694,
+ 0x09c2c809,
+ 0x09e0c812,
+ 0x0dc2c809,
+ 0x0df0c85c,
+ 0x0c42c809,
+ 0x0c10c8c6,
+ 0x0842c809,
+ 0x0870c686,
+ 0x0ac2c809,
+ 0x0ab0c68c,
+ 0x0ec2c809,
+ 0x0e90c688,
+ 0x0b42c809,
+ 0x0b10c8c8,
+ 0xa249f210,
+ 0xa0d1f210,
+ 0xa0d6f210,
+ 0xa159f210,
+ 0xa14ef210,
+ 0xa1ddf210,
+ 0xa1c2f250,
+ 0xa046f250,
+ 0xa049f250,
+ 0xa2c5f210,
+ 0xa2c2f210,
+ 0xa34df250,
+ 0xaa4df210,
+ 0x0af8d131,
+ 0x9ea49eab,
+ 0xb7809c62,
+ 0xb7405b0c,
+ 0xb5e05414,
+ 0xda084092,
+ 0xd208a881,
+ 0xd231a921,
+ 0xf2080a70,
+ 0xc010a882,
+ 0x74402880,
+ 0xa14dd810,
+ 0x4614b520,
+ 0x9102c000,
+ 0x580cb781,
+ 0x3a00c040,
+ 0x580cb581,
+ 0x5608b785,
+ 0xc0057500,
+ 0xb7819042,
+ 0xc030580c,
+ 0xc0007d00,
+ 0xfff49082,
+ 0xb7209a93,
+ 0xf2c85394,
+ 0xb720aa65,
+ 0x7048434d,
+ 0x5c94b7c0,
+ 0xc0000683,
+ 0xf2509102,
+ 0xd132aa4d,
+ 0x9ea409f8,
+ 0xb7209c62,
+ 0x8502408a,
+ 0x4c98b542,
+ 0xb5427440,
+ 0xb5424d18,
+ 0xc0004d98,
+ 0xda1090e2,
+ 0x7048aa35,
+ 0x9344c000,
+ 0x5688b785,
+ 0xa9b6da10,
+ 0xa8c9f210,
+ 0x75008502,
+ 0x409ab540,
+ 0xe001850a,
+ 0x9d4f8d24,
+ 0x9e8c1d84,
+ 0xf2109c62,
+ 0x0d8aaa51,
+ 0x9c629ea4,
+ 0x90e0c000,
+ 0xaa51f210,
+ 0x9ea40d86,
+ 0xb7819c62,
+ 0xb720580c,
+ 0xb7a0408a,
+ 0x8502548c,
+ 0x6218b545,
+ 0x3a00c008,
+ 0x580cb581,
+ 0xaa41f210,
+ 0x08849eab,
+ 0x408ab520,
+ 0x9c629ea4,
+ 0x578cb720,
+ 0x4129b780,
+ 0x03037500,
+ 0x92e4c000,
+ 0xa9a1f208,
+ 0xa85df210,
+ 0x9e840d82,
+ 0xf2089c62,
+ 0xf250a021,
+ 0x9eaba845,
+ 0x9e840982,
+ 0xda089c62,
+ 0xb582aa21,
+ 0xc0006e8a,
+ 0xb7209180,
+ 0xd210558c,
+ 0xb740aa29,
+ 0xf31044bb,
+ 0xb5808021,
+ 0xd20844ab,
+ 0x7440a8c9,
+ 0x9122c000,
+ 0x450cb780,
+ 0xf2088506,
+ 0xc000a117,
+ 0xb78090c0,
+ 0xf208450c,
+ 0xb720a095,
+ 0xb780540c,
+ 0xb58241ab,
+ 0xb5806e8a,
+ 0xb580400a,
+ 0xc000410a,
+ 0xb7809100,
+ 0xda08450c,
+ 0xb520a899,
+ 0xb79f410a,
+ 0xb7bf7e6e,
+ 0xb7df7eee,
+ 0xb7ff7f6e,
+ 0xc0027fee,
+ 0x9c228c00,
+ 0xba1b9c22,
+ 0x9e594003,
+ 0xba039e5c,
+ 0xba124002,
+ 0x70404003,
+ 0xc0009e53,
+ 0x70069136,
+ 0x9158c000,
+ 0x72c4c812,
+ 0x9180c000,
+ 0x70029e51,
+ 0x90bcc000,
+ 0xc0009e82,
+ 0xcc1090a0,
+ 0x9e9a70c8,
+ 0x9c229e50,
+ 0x0787a61d,
+ 0x2efed3f1,
+ 0x09829eab,
+ 0x99edc014,
+ 0xd3f29eab,
+ 0x09862a8e,
+ 0x99e7c014,
+ 0x590cb720,
+ 0x5d9cb740,
+ 0x1952d014,
+ 0x432db780,
+ 0x290ed3f2,
+ 0x2a209e2d,
+ 0xc0207500,
+ 0x0183a96d,
+ 0x90c2c000,
+ 0x5e9cb740,
+ 0xa96dc020,
+ 0x0c9ec434,
+ 0xb4810a02,
+ 0xb107c000,
+ 0xd1224220,
+ 0xc0365e20,
+ 0x32280cfa,
+ 0xc000b481,
+ 0x5ca0d2a2,
+ 0x30d20c84,
+ 0xc000b421,
+ 0xc002093e,
+ 0xb4411ce0,
+ 0xb780c000,
+ 0x2a08508c,
+ 0xc00c7500,
+ 0xf0089262,
+ 0x2a20aa79,
+ 0xc00c7500,
+ 0xc00891a2,
+ 0xff940dc2,
+ 0x028198e5,
+ 0x5884c280,
+ 0xd2a49e8d,
+ 0xba2d5b43,
+ 0xd2a24003,
+ 0x9e695e7f,
+ 0x5a75c200,
+ 0xd3220218,
+ 0xd2245c84,
+ 0x9e8e5a8f,
+ 0x4003ba36,
+ 0x5e7fd322,
+ 0xc2009e71,
+ 0x02185a75,
+ 0x5b0fd224,
+ 0x0c9ec034,
+ 0xb42108c2,
+ 0xc004c000,
+ 0xff940d92,
+ 0xb78098bf,
+ 0xdffc420a,
+ 0x0a827d3e,
+ 0xc001280c,
+ 0xb7809004,
+ 0xdffc428a,
+ 0xc0007d3e,
+ 0xb7209344,
+ 0xb7805b8c,
+ 0xb720402b,
+ 0xb7206194,
+ 0xc200620c,
+ 0xd2265a11,
+ 0xe2105904,
+ 0xe22080a3,
+ 0x0b0280ab,
+ 0xb5a00d02,
+ 0xb5a0402b,
+ 0xc001404b,
+ 0x74029100,
+ 0x4300d011,
+ 0x4500d021,
+ 0x9022c001,
+ 0x0dc2c008,
+ 0x988eff94,
+ 0xc2800281,
+ 0x9e8a5884,
+ 0x4003ba12,
+ 0x5e7fd122,
+ 0xc2009e51,
+ 0x02185a79,
+ 0x590bd224,
+ 0x5b43c280,
+ 0x5884c300,
+ 0x4002ba31,
+ 0x5a7fc300,
+ 0x5a79c200,
+ 0xc2000268,
+ 0xb7805b0b,
+ 0xdffc420a,
+ 0xb7207d3e,
+ 0xc000428a,
+ 0xdffc9144,
+ 0xd0117c7e,
+ 0xd0114100,
+ 0xc0044280,
+ 0xdffc91c2,
+ 0xc0007d3e,
+ 0xba2192e4,
+ 0xc000400a,
+ 0xb7409262,
+ 0xb7606184,
+ 0x1a046204,
+ 0x5904d226,
+ 0x9e2d9e55,
+ 0xa14ec830,
+ 0x010d9e3d,
+ 0xa34dc830,
+ 0x92a0c003,
+ 0x400aba09,
+ 0x9324c001,
+ 0x5b8cb720,
+ 0x6184b740,
+ 0x402bb780,
+ 0xc2009e2d,
+ 0x1a045a11,
+ 0x5904d226,
+ 0x620cb7a0,
+ 0xa14ec830,
+ 0x402bb780,
+ 0xd8219d5d,
+ 0xc200a9c6,
+ 0x1a045a11,
+ 0x5904d226,
+ 0xa9c1d800,
+ 0xba1b0d02,
+ 0xc8304003,
+ 0xba1ba34d,
+ 0xfff44002,
+ 0xb7809ad2,
+ 0xba24428a,
+ 0xd2264002,
+ 0x0a045904,
+ 0xd2269d47,
+ 0x9d535904,
+ 0xa9a6c850,
+ 0xa985ca50,
+ 0xc0010d02,
+ 0xb7409200,
+ 0xd0116184,
+ 0xd2281a12,
+ 0xd0a65984,
+ 0x9e2d5904,
+ 0x620cb7a0,
+ 0x0a12d011,
+ 0xa162c820,
+ 0xa9cec830,
+ 0x5904d226,
+ 0xc8309dd9,
+ 0xc820a9cd,
+ 0xba1ba361,
+ 0xba1b4003,
+ 0xfff44002,
+ 0xb7809aa2,
+ 0xba24428a,
+ 0xd2264002,
+ 0x0a045904,
+ 0xd2269d47,
+ 0x9eb25904,
+ 0xc8509d53,
+ 0xca50a9a6,
+ 0xba28a985,
+ 0xba1b4002,
+ 0xba1b4003,
+ 0xfff44002,
+ 0xba109a8a,
+ 0xd2a24002,
+ 0x0d725e04,
+ 0xba04124a,
+ 0x9e544002,
+ 0x7000c414,
+ 0x4002ba09,
+ 0x7048c410,
+ 0x00037400,
+ 0x9076c000,
+ 0xba001003,
+ 0xd3224002,
+ 0xd0205e04,
+ 0x124400d0,
+ 0x4002ba04,
+ 0xc4149e54,
+ 0xba097000,
+ 0xc4104002,
+ 0xd0a27048,
+ 0x9dc95e7d,
+ 0x00037400,
+ 0x0494c001,
+ 0xba295c87,
+ 0xc0004003,
+ 0x10039076,
+ 0x4002ba00,
+ 0xc2000220,
+ 0x024258fd,
+ 0x5a07c200,
+ 0x2efcc7fe,
+ 0x2a7cc7fe,
+ 0xc034093e,
+ 0xb4410c9e,
+ 0xd2a2c000,
+ 0xc2005c88,
+ 0xc0825a48,
+ 0xcffe0c92,
+ 0x32c228fc,
+ 0xc000b4a1,
+ 0x0d16c082,
+ 0xc000b4a2,
+ 0xb4a10c88,
+ 0x0d08c000,
+ 0xc000b4a2,
+ 0xb4a10c88,
+ 0x0d08c000,
+ 0xc000b4a2,
+ 0xb4a10c88,
+ 0x0d08c000,
+ 0xc000b4a2,
+ 0xb4a10c88,
+ 0x0d08c000,
+ 0xc000b4a2,
+ 0xb4a10c88,
+ 0x0d08c000,
+ 0xc000b4a2,
+ 0xb4a10c88,
+ 0x0d08c000,
+ 0xc000b4a2,
+ 0xb4a10c88,
+ 0x0d08c000,
+ 0xc000b4a2,
+ 0x418ab780,
+ 0x7d3edffc,
+ 0x9184c000,
+ 0xc0340a4a,
+ 0xb4810c9e,
+ 0xc082c000,
+ 0x9e790d5a,
+ 0xc000b422,
+ 0x0c9ec034,
+ 0xc000b4e1,
+ 0x7e6eb79f,
+ 0x7eeeb7bf,
+ 0x7f6eb7df,
+ 0x7feeb7ff,
+ 0x8c00c002,
+ 0xc01c9c22,
+ 0x9e587cfe,
+ 0x93e4c000,
+ 0x1a02d011,
+ 0xc0007506,
+ 0xd01193f4,
+ 0x75061a0a,
+ 0x90d2c000,
+ 0x5904d026,
+ 0x9120c001,
+ 0x1a02d031,
+ 0xc000751e,
+ 0xd03390d2,
+ 0xc0010900,
+ 0xc0009000,
+ 0xd0535a04,
+ 0xc0001940,
+ 0xd0119340,
+ 0x75061a02,
+ 0x90b2c000,
+ 0xc0008522,
+ 0xd0119240,
+ 0x75261a0a,
+ 0x9172c000,
+ 0x0a0ad031,
+ 0x58fdc200,
+ 0xd2260242,
+ 0xc0005907,
+ 0xd0139080,
+ 0x9d43190c,
+ 0x08029c22,
+ 0xb7809c22,
+ 0x8502540c,
+ 0xa88dda08,
+ 0xa16bf010,
+ 0xa16ff010,
+ 0xa173f010,
+ 0xa16fd810,
+ 0xa16bd810,
+ 0xa0e1f010,
+ 0xb7209c22,
+ 0xd8105514,
+ 0xb520a8e9,
+ 0xf010414b,
+ 0xb740aa71,
+ 0xc200558c,
+ 0xf0485a0f,
+ 0xf010a245,
+ 0xb520a8ed,
+ 0xf01041cd,
+ 0xb580aa69,
+ 0xf010414d,
+ 0xf010a96f,
+ 0xe210a869,
+ 0xf0088021,
+ 0x9c22a041,
+ 0xac7dc030,
+ 0x539cb740,
+ 0xa45dc038,
+ 0xac7dc030,
+ 0xa45dc038,
+ 0xac7dc030,
+ 0xa45dc038,
+ 0x5314b720,
+ 0x540cb780,
+ 0xb7208706,
+ 0xc002578c,
+ 0xd28a8576,
+ 0xb540a108,
+ 0x8502475b,
+ 0x4039b540,
+ 0x40a1b540,
+ 0xa61d9c22,
+ 0xb7858440,
+ 0x75005688,
+ 0xc0000787,
+ 0xb72093c2,
+ 0xb7205394,
+ 0xd3f14149,
+ 0xc0042a1e,
+ 0x09027524,
+ 0x1922d003,
+ 0x0a7f9e4f,
+ 0x87524244,
+ 0x7e64b55f,
+ 0xb55f8f38,
+ 0x8f0c7ee4,
+ 0x7f64b55f,
+ 0xc0022094,
+ 0xc0002a44,
+ 0xb7209340,
+ 0xb7205394,
+ 0xd3f14149,
+ 0x753c2a1e,
+ 0xd0030902,
+ 0x9e4f1922,
+ 0x42440a7f,
+ 0xb55f8732,
+ 0x8f207e64,
+ 0x7ee4b55f,
+ 0xb55f8f08,
+ 0x20947f64,
+ 0x30982a74,
+ 0x4149b520,
+ 0x540cb7c0,
+ 0x530cb7a0,
+ 0x5814b7a0,
+ 0x0e72d011,
+ 0xf2488502,
+ 0x0109a8cd,
+ 0xa127f208,
+ 0xa22df210,
+ 0xa0a1f248,
+ 0xaa6df208,
+ 0xd2240189,
+ 0x0d0259ff,
+ 0x98ddc054,
+ 0x9e92097f,
+ 0x05810181,
+ 0x98d7c054,
+ 0xaa35f208,
+ 0x00899eae,
+ 0x58ffd224,
+ 0x9e6b7202,
+ 0x90fac000,
+ 0x90e4c000,
+ 0xc0007002,
+ 0xf2109094,
+ 0xf008a055,
+ 0xf248a967,
+ 0xf208aa65,
+ 0xf310a949,
+ 0xd1248021,
+ 0x00895908,
+ 0x58ffd224,
+ 0xf808769c,
+ 0xc000a0e9,
+ 0x850a90b2,
+ 0x91e0c000,
+ 0x5a04c100,
+ 0xc000751c,
+ 0x850e90b2,
+ 0x90e0c000,
+ 0x7698c004,
+ 0xe009850a,
+ 0xf2088d22,
+ 0xf210aa79,
+ 0x1209a8d5,
+ 0x6245c301,
+ 0x70485890,
+ 0x9236c000,
+ 0xaa45d2d0,
+ 0xc0007500,
+ 0xda509184,
+ 0x8506aa59,
+ 0xa147d2d0,
+ 0xda500a04,
+ 0xc000a259,
+ 0xf20893e0,
+ 0xf210a8f9,
+ 0xc301aa55,
+ 0xc2006095,
+ 0x71025a0c,
+ 0x923cc000,
+ 0xaa45d2d0,
+ 0xc0007500,
+ 0xda509184,
+ 0x8506aa59,
+ 0xa147d2d0,
+ 0xda501a04,
+ 0xc000a259,
+ 0x850290a0,
+ 0xa147d2d0,
+ 0xaa59da50,
+ 0x4002ba24,
+ 0x752ac004,
+ 0x90dac000,
+ 0x855ac002,
+ 0x9100c000,
+ 0x7502c008,
+ 0x90dcc000,
+ 0x8506c004,
+ 0xa15bda50,
+ 0xa8d9da50,
+ 0xaa6df008,
+ 0xa8eef208,
+ 0x4002ba09,
+ 0xb7406243,
+ 0x9e495594,
+ 0x62438502,
+ 0xa959d050,
+ 0x0a00c002,
+ 0x5919d228,
+ 0xf0087482,
+ 0x0685a167,
+ 0x90c4c000,
+ 0xaa55f210,
+ 0x92a0c000,
+ 0xa8d6f210,
+ 0xaa79f208,
+ 0x5c90d0a2,
+ 0x70481209,
+ 0x90b8c000,
+ 0xc0007640,
+ 0xd0a691dc,
+ 0xf2105d04,
+ 0xc200802b,
+ 0xf3105a13,
+ 0xf0088a21,
+ 0xc000a265,
+ 0xf00a9080,
+ 0xf208a164,
+ 0x0a04aa49,
+ 0xf0087502,
+ 0xf208a3ea,
+ 0xc000a249,
+ 0xd2089144,
+ 0xdac8aa61,
+ 0xda48a265,
+ 0xc009a251,
+ 0xd2509000,
+ 0x7500aa31,
+ 0x9184c000,
+ 0xaa39d250,
+ 0xc0007500,
+ 0xda889142,
+ 0x7504aa41,
+ 0x90b4c000,
+ 0xc0008506,
+ 0x85029060,
+ 0xa153d288,
+ 0xa94bda08,
+ 0xa9cdf208,
+ 0xa954f252,
+ 0x0af0d0b1,
+ 0x89a7e210,
+ 0xa922d208,
+ 0x5987d1a4,
+ 0x83a7e020,
+ 0x55eb5d04,
+ 0x9b77c034,
+ 0xa9caf208,
+ 0xaa45f250,
+ 0x1cb4d011,
+ 0x60c38502,
+ 0xa8a2d208,
+ 0xa157f250,
+ 0x9e5b1d84,
+ 0x0102d030,
+ 0xe2205d85,
+ 0x050381af,
+ 0xa1c6f250,
+ 0xc03455e7,
+ 0xd2509b5e,
+ 0x7500aa31,
+ 0xa045f250,
+ 0x90e2c001,
+ 0xaa55da48,
+ 0xda487500,
+ 0xc000a957,
+ 0xda889102,
+ 0xe200aa41,
+ 0xc0005a40,
+ 0xb7809144,
+ 0xda08548c,
+ 0xdac8a881,
+ 0xc001a0e1,
+ 0xc20090e0,
+ 0xf3105a45,
+ 0xdac88021,
+ 0xdac8a261,
+ 0xda88a9e2,
+ 0x0d02a9c1,
+ 0x9b35c034,
+ 0xc0001804,
+ 0xda0892a0,
+ 0xda50aa49,
+ 0xc200a927,
+ 0xc2005a40,
+ 0xf3105a45,
+ 0xdac88021,
+ 0xdac8a261,
+ 0xda08a9e2,
+ 0x0d02a9c9,
+ 0x9b1fc034,
+ 0xa061dac8,
+ 0x0e72d031,
+ 0x5993d224,
+ 0xf20876c2,
+ 0x0d82aa49,
+ 0x0db2d00d,
+ 0xc0017504,
+ 0xdac89094,
+ 0xda48a8e2,
+ 0xd011a8d1,
+ 0x70480e14,
+ 0x913ac000,
+ 0xa941da10,
+ 0x1a14d011,
+ 0xc0007088,
+ 0xd01190d6,
+ 0xc0001e12,
+ 0xd01191c0,
+ 0x70481e14,
+ 0x90f8c000,
+ 0x0a14d011,
+ 0xc0007088,
+ 0xd01190dc,
+ 0xdac80e12,
+ 0xdac8a261,
+ 0xf210a963,
+ 0xdac8882f,
+ 0xdac8a261,
+ 0xb75fa8e1,
+ 0x70757e7c,
+ 0x9298c000,
+ 0xa8c2da10,
+ 0x1e14d011,
+ 0xd00e7048,
+ 0xc0000a12,
+ 0xd011913c,
+ 0x70480e14,
+ 0x90dcc000,
+ 0x1a12d011,
+ 0xa261dac8,
+ 0xaa49f208,
+ 0xc0017504,
+ 0xd2089034,
+ 0x752caa6d,
+ 0x9392c000,
+ 0xa943da10,
+ 0x7ee4b75f,
+ 0xaa5dda48,
+ 0x88a5e010,
+ 0x4002ba24,
+ 0xc0007102,
+ 0xb75f91f6,
+ 0xdac87f64,
+ 0xf010a8e1,
+ 0x70488825,
+ 0x90dcc000,
+ 0x1a14d011,
+ 0xa261dac8,
+ 0xa969d208,
+ 0xaa61dac8,
+ 0xdac87104,
+ 0x0a02a8e1,
+ 0x1a42d00a,
+ 0xd2089ea2,
+ 0x2098a8e6,
+ 0x9e544d7d,
+ 0x30942128,
+ 0xc0809e4a,
+ 0xc2005a40,
+ 0x70885a41,
+ 0xd0040902,
+ 0x0a7f1922,
+ 0x9e924244,
+ 0x9d192098,
+ 0xc3012494,
+ 0xdac83494,
+ 0xdac8a0e2,
+ 0xda48a0e6,
+ 0x8502a0d2,
+ 0xaa65dac8,
+ 0xd28a8706,
+ 0xf208a148,
+ 0xd250a14f,
+ 0xd250a133,
+ 0xd288a13b,
+ 0xd250a15b,
+ 0xd288a137,
+ 0xda50a15f,
+ 0xda08a127,
+ 0xda48a14b,
+ 0xda88a157,
+ 0xda48a143,
+ 0xb79fa25d,
+ 0xb7bf7d6e,
+ 0xb7df7dee,
+ 0xb7ff7e6e,
+ 0xc0027eee,
+ 0x9c228c40,
+ 0xb7c0a60d,
+ 0xb780558c,
+ 0xb7c0540c,
+ 0x08025514,
+ 0xf20876c2,
+ 0x0289a182,
+ 0x9044c003,
+ 0x5314b7a0,
+ 0xa045f248,
+ 0xa049da10,
+ 0xa9b6f210,
+ 0xa9a5f210,
+ 0x5d840d02,
+ 0x9a3fc034,
+ 0xa8aada08,
+ 0xc0100a22,
+ 0x08c37008,
+ 0x7002c012,
+ 0xc0007640,
+ 0xb78092e2,
+ 0xf208538c,
+ 0xf210a88d,
+ 0xd0a6a8a6,
+ 0xe2105914,
+ 0xd0a688a3,
+ 0x58975d04,
+ 0x812ac201,
+ 0x80a3e210,
+ 0x588b0888,
+ 0xa0b1f248,
+ 0xaa25f210,
+ 0x5904d226,
+ 0x8021f310,
+ 0xa8b1f248,
+ 0x5889d224,
+ 0x71029e4c,
+ 0x4828b311,
+ 0xf2489e89,
+ 0xd248a0b2,
+ 0x7500aa51,
+ 0x91e2c000,
+ 0xaa59d248,
+ 0xc0007500,
+ 0xd0a69144,
+ 0xf2105d0c,
+ 0xc200802b,
+ 0xf2485a0f,
+ 0xf248a231,
+ 0xb740a8b1,
+ 0x6211580c,
+ 0xa8daf008,
+ 0x5a17c200,
+ 0x9e8a1098,
+ 0x7244c410,
+ 0xa0b2f248,
+ 0xf2108502,
+ 0xf210a14b,
+ 0xf208a14f,
+ 0xb79fa143,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0xa61d9c22,
+ 0x5814b720,
+ 0x558cb7e0,
+ 0x40ddb740,
+ 0xaa61f208,
+ 0xf3109e9d,
+ 0xb7608821,
+ 0xb5805404,
+ 0xd21040cd,
+ 0xd080aa29,
+ 0xd210a265,
+ 0x9e4da8a9,
+ 0x9e5c7442,
+ 0x4622b427,
+ 0x5394b7c0,
+ 0x530cb7c0,
+ 0xa960f20a,
+ 0xaa4df210,
+ 0xa957f208,
+ 0xa9f7f040,
+ 0x8a21f310,
+ 0x80a1e310,
+ 0x8031f310,
+ 0x7440de01,
+ 0xa275f040,
+ 0xa0d5f208,
+ 0x90d6c000,
+ 0x0a02cf01,
+ 0xa255f208,
+ 0xa94ff210,
+ 0xaa61f208,
+ 0x8821f310,
+ 0xa829fa08,
+ 0xd2240089,
+ 0xe00058ff,
+ 0x04020002,
+ 0x0c02d003,
+ 0x5e0cd022,
+ 0x58f5c000,
+ 0x3118d020,
+ 0x590cc000,
+ 0x1120e000,
+ 0xd0031520,
+ 0xd1221d22,
+ 0xc1005cf4,
+ 0x31985a0d,
+ 0xaa61f000,
+ 0xd1a40087,
+ 0x750458ff,
+ 0xa029fa08,
+ 0xa0adfa08,
+ 0x9344c000,
+ 0x0e60d0b1,
+ 0xa882d208,
+ 0xa9a9f208,
+ 0xa8a5f208,
+ 0xd1a49e4c,
+ 0xd0265985,
+ 0xe2205133,
+ 0x050381af,
+ 0xa1c6f208,
+ 0x9963c034,
+ 0xa045f208,
+ 0x9320c001,
+ 0xaa29f208,
+ 0xa8e9d800,
+ 0xd0808502,
+ 0x1a04a16f,
+ 0xa229f208,
+ 0xd8000884,
+ 0xd210a0e9,
+ 0x7640a8a2,
+ 0x90e4c001,
+ 0xaa5df210,
+ 0xa8f5f040,
+ 0xc2006a36,
+ 0x70485a13,
+ 0x929cc000,
+ 0xd2108506,
+ 0xf208a12b,
+ 0x7500aa29,
+ 0x91c2c000,
+ 0xaa49d210,
+ 0xa967da48,
+ 0x8021f310,
+ 0xa265da48,
+ 0x9080c000,
+ 0xa0aad210,
+ 0xaa29f208,
+ 0xc0007500,
+ 0xd2109084,
+ 0xb79fa229,
+ 0xb7bf7e6e,
+ 0xb7df7eee,
+ 0xb7ff7f6e,
+ 0xc0027fee,
+ 0x9c228c00,
+ 0x558cb780,
+ 0x540cb720,
+ 0xa903f208,
+ 0x4035b720,
+ 0xe2109e8a,
+ 0x7642812f,
+ 0xf2080189,
+ 0xc008a101,
+ 0xd8109144,
+ 0x7500aa49,
+ 0x90e2c000,
+ 0xa9ced090,
+ 0xc00076c0,
+ 0xb78091c2,
+ 0xb720550c,
+ 0xda08530c,
+ 0x9ea0a88a,
+ 0xb5200003,
+ 0xc00146b3,
+ 0xb7209220,
+ 0xb7205514,
+ 0xb780538c,
+ 0xb740414b,
+ 0x6a14412b,
+ 0x68a6d011,
+ 0xb7007102,
+ 0x0403530c,
+ 0x91bcc000,
+ 0x46aab780,
+ 0x414ab720,
+ 0x4002ba24,
+ 0x58886a16,
+ 0xc0007048,
+ 0xb720917a,
+ 0xd3f1414a,
+ 0xc2006a26,
+ 0x70485a23,
+ 0x915cc000,
+ 0xd0488506,
+ 0x850ea177,
+ 0xa14bd090,
+ 0x9080c000,
+ 0xa1f6d048,
+ 0x580cb780,
+ 0xa88df208,
+ 0xc004747c,
+ 0xf01093b2,
+ 0x7502aa49,
+ 0x9364c000,
+ 0xaa49d810,
+ 0xc0007500,
+ 0xd09090e2,
+ 0x7500aa4d,
+ 0x9222c000,
+ 0xa8e5f048,
+ 0xd0908502,
+ 0xb520a157,
+ 0xb780412c,
+ 0xb580414a,
+ 0xd09040aa,
+ 0xc003a15b,
+ 0xd09093e0,
+ 0x7640a8da,
+ 0x9342c000,
+ 0x40aab780,
+ 0x414ab720,
+ 0x4002ba24,
+ 0x0242688c,
+ 0x5a0bc200,
+ 0x40aab580,
+ 0xa8e5f048,
+ 0xb5208502,
+ 0xd090412c,
+ 0x8506a15b,
+ 0xa157d090,
+ 0x9040c003,
+ 0x538cb740,
+ 0xa0d6d090,
+ 0x414ab720,
+ 0xaa49d808,
+ 0x6a2468a8,
+ 0xc0017048,
+ 0xb780925c,
+ 0xb72040aa,
+ 0xba24414a,
+ 0x6a0e4002,
+ 0x70485884,
+ 0x90fcc001,
+ 0x412cb780,
+ 0xa8e5f048,
+ 0x5904d226,
+ 0x8021f310,
+ 0xc0007048,
+ 0x8506939c,
+ 0xa15bd090,
+ 0xa15fd090,
+ 0xaa55d808,
+ 0xa173d048,
+ 0xa8c9d810,
+ 0xc2006a14,
+ 0x70485a0f,
+ 0xa0d6d850,
+ 0xa0c2d890,
+ 0x907ac000,
+ 0xd0488502,
+ 0xc001a17b,
+ 0xd04890a0,
+ 0x7500aa75,
+ 0xd0908502,
+ 0xc000a15b,
+ 0xb78093a4,
+ 0xb72040aa,
+ 0xba24414a,
+ 0xd0134002,
+ 0xe2106947,
+ 0xb72080a3,
+ 0x588b4134,
+ 0x40aab520,
+ 0xaa65f048,
+ 0x5d04d0a6,
+ 0x812ac201,
+ 0x8021f310,
+ 0x5a0bc200,
+ 0x412cb580,
+ 0x414ab780,
+ 0x46aab580,
+ 0xa8ddd090,
+ 0xc0007440,
+ 0xd0489202,
+ 0x7500aa71,
+ 0xc0008506,
+ 0xd0489102,
+ 0x7500aa79,
+ 0x9064c000,
+ 0xd090850e,
+ 0xd810a14b,
+ 0x7500aa49,
+ 0x48a4b340,
+ 0x414cb780,
+ 0x45acb580,
+ 0x76449c22,
+ 0x48a4b340,
+ 0x7486c003,
+ 0x90bac001,
+ 0x5688b785,
+ 0xc0007500,
+ 0xb7209102,
+ 0xb7405394,
+ 0xc0005f04,
+ 0xb72090c0,
+ 0xb7405394,
+ 0xb7205f84,
+ 0x9e2d4ccb,
+ 0x5904d0a6,
+ 0xaa4dc830,
+ 0x530cb720,
+ 0x05836229,
+ 0xb5800003,
+ 0xb78041ad,
+ 0xc20041ac,
+ 0xc0015a37,
+ 0xb70092a0,
+ 0xb760530c,
+ 0xc1005394,
+ 0x75005a4b,
+ 0x5688b725,
+ 0xc0000902,
+ 0xc200911c,
+ 0x75005a07,
+ 0xffff0904,
+ 0xc01c939a,
+ 0xc0007c7e,
+ 0xd8d09102,
+ 0xb740aa65,
+ 0xc0005f04,
+ 0xd8d090c0,
+ 0xb740aa65,
+ 0xd2265f84,
+ 0x9e2d5904,
+ 0xa8cec830,
+ 0xa8e1f008,
+ 0x50ab9e4c,
+ 0xb5206099,
+ 0xb78041ac,
+ 0x853641ac,
+ 0x88a5e210,
+ 0x5207c200,
+ 0x41acb580,
+ 0xaa49f010,
+ 0xc0007502,
+ 0xb78090e4,
+ 0xb58041ac,
+ 0x9c22422c,
+ 0xa9d1d090,
+ 0xc00574c0,
+ 0xb74090c4,
+ 0xb720422c,
+ 0xd12641b4,
+ 0xd0a2590c,
+ 0xf2105c88,
+ 0x70488825,
+ 0x9176c000,
+ 0x5d0cd0a6,
+ 0x88abe210,
+ 0x5a08c100,
+ 0xc0047048,
+ 0x9e49919a,
+ 0x70448586,
+ 0xa1cfd090,
+ 0xa1dfd090,
+ 0x903cc002,
+ 0x5a04c100,
+ 0xc0007048,
+ 0xd0a290f6,
+ 0x71045e04,
+ 0x937ac000,
+ 0x472ab720,
+ 0x5814b720,
+ 0xb5200898,
+ 0xb780472a,
+ 0xf01041cd,
+ 0xb740a8ed,
+ 0x624340c5,
+ 0xc2000a20,
+ 0xf3105a11,
+ 0x851a8221,
+ 0xa14bd090,
+ 0xc002850e,
+ 0xb7209340,
+ 0xb720472a,
+ 0x08885814,
+ 0x472ab520,
+ 0x41cdb780,
+ 0xa8edf010,
+ 0x40c5b740,
+ 0x0a406243,
+ 0x5a15c200,
+ 0x8221f310,
+ 0xd090850e,
+ 0xb580a14b,
+ 0xb56040cd,
+ 0xfffc4c38,
+ 0x9e499340,
+ 0x5a04c100,
+ 0xc0007048,
+ 0xd0a290f6,
+ 0x71045e04,
+ 0x937ac000,
+ 0x472ab720,
+ 0x5814b720,
+ 0xb5201888,
+ 0xb780472a,
+ 0xf01041cd,
+ 0xb740a8ed,
+ 0x624340c5,
+ 0xc2000a40,
+ 0xf3105a15,
+ 0x851a8a21,
+ 0xa14bd090,
+ 0xc000857b,
+ 0xb7209340,
+ 0xb720472a,
+ 0x18845814,
+ 0x472ab520,
+ 0x41cdb780,
+ 0xa8edf010,
+ 0x40c5b740,
+ 0xc0026243,
+ 0xc2000a00,
+ 0xf3105a19,
+ 0x850e8a21,
+ 0xa14bd090,
+ 0xb580857f,
+ 0xb54040cd,
+ 0xfffa4c38,
+ 0xd0909300,
+ 0xfffaa1cd,
+ 0x85029280,
+ 0xa14fd090,
+ 0x91e0fffa,
+ 0xb780a60d,
+ 0xf208540c,
+ 0x9ea5a881,
+ 0x00077444,
+ 0xc0000301,
+ 0xb7809104,
+ 0xdac8538c,
+ 0xc008a805,
+ 0x74429240,
+ 0x91e4c008,
+ 0xaa29da10,
+ 0xc0007500,
+ 0xd2909344,
+ 0x7500aa2d,
+ 0x92a4c000,
+ 0xaa25d290,
+ 0x538cb720,
+ 0x5594b720,
+ 0xb7007500,
+ 0xb7404cab,
+ 0xe00244db,
+ 0xf2108526,
+ 0xb5808021,
+ 0xc00744cb,
+ 0xd2909240,
+ 0x7500aa2d,
+ 0x9382c001,
+ 0x530cb780,
+ 0x538cb740,
+ 0xa926d290,
+ 0x5594b760,
+ 0xa881d2c8,
+ 0xa9c5d008,
+ 0xa8cad008,
+ 0xba097680,
+ 0x00024000,
+ 0xd8509e49,
+ 0xd011a967,
+ 0xb3040a02,
+ 0x00094422,
+ 0x7002c010,
+ 0x70c0cc12,
+ 0x04077680,
+ 0xe0020007,
+ 0xf2108526,
+ 0xd8508021,
+ 0xb780a265,
+ 0x75004648,
+ 0x91a2c000,
+ 0xa937da50,
+ 0xaa21da90,
+ 0x80a7e210,
+ 0xda900a04,
+ 0xda50a221,
+ 0x0007a0b5,
+ 0x9260c005,
+ 0xaa39d290,
+ 0xc0017500,
+ 0xb78091a2,
+ 0xd208538c,
+ 0xd208a881,
+ 0xd208a88a,
+ 0xd011a905,
+ 0x9e490812,
+ 0xaa25d290,
+ 0x7002c010,
+ 0x558cb720,
+ 0x7080c812,
+ 0x00057500,
+ 0x44bbb740,
+ 0x8526e002,
+ 0x8021f210,
+ 0xa937da50,
+ 0x44abb580,
+ 0xa8a1da90,
+ 0x8025f210,
+ 0x08840005,
+ 0xa0a1da90,
+ 0xa235da50,
+ 0x9060c004,
+ 0x530cb780,
+ 0xa8b1f250,
+ 0xa991f248,
+ 0x9ea67440,
+ 0xa189f248,
+ 0x9316c000,
+ 0x558cb720,
+ 0x4729b780,
+ 0x9e887500,
+ 0x0802d002,
+ 0x90a4c000,
+ 0xaa29d290,
+ 0xb7800008,
+ 0xd208538c,
+ 0x0289a889,
+ 0x7040c010,
+ 0x9280c001,
+ 0x538cb7a0,
+ 0x0a50d0b1,
+ 0xa882d208,
+ 0xa929f250,
+ 0xf2081196,
+ 0x5c85a8ad,
+ 0x588b9e4c,
+ 0x70c2cc12,
+ 0x51f35150,
+ 0x5914d126,
+ 0x5987d1a4,
+ 0x81afe220,
+ 0xf2500d02,
+ 0xc014a129,
+ 0xb7859a0e,
+ 0x75005688,
+ 0x90e2c000,
+ 0xc0149e83,
+ 0xc0009a30,
+ 0x58199060,
+ 0xaa29d290,
+ 0x5594b700,
+ 0xc01000e8,
+ 0x12687002,
+ 0x7100c012,
+ 0xa8a6d290,
+ 0xa8a9d208,
+ 0xd2087640,
+ 0xd011aaa5,
+ 0xb3040a02,
+ 0x00094422,
+ 0x7040c010,
+ 0x7140d412,
+ 0xb7407640,
+ 0x000b44da,
+ 0x8526e002,
+ 0x80a1e210,
+ 0x4648b780,
+ 0xb5207500,
+ 0xc00044ca,
+ 0xda5091a2,
+ 0xda90a937,
+ 0xe310aa21,
+ 0x0a0480a3,
+ 0xa221da90,
+ 0xa0b5da50,
+ 0xa2c1da10,
+ 0xb79f000b,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0xa60d9c22,
+ 0x540cb720,
+ 0x402db780,
+ 0x9e8d7502,
+ 0x9264c00c,
+ 0x550cb780,
+ 0xa88ef208,
+ 0x7646c003,
+ 0xc0019ea2,
+ 0xb785911a,
+ 0x75005688,
+ 0x9102c000,
+ 0x548cb780,
+ 0x5f04b740,
+ 0x90c0c000,
+ 0x548cb780,
+ 0x5f84b740,
+ 0xa881f208,
+ 0xd0a69e2d,
+ 0xc8305904,
+ 0x9e49aa4d,
+ 0xd2246219,
+ 0xb7805817,
+ 0xd0b1538c,
+ 0xb72008c0,
+ 0x9ea64031,
+ 0x530cb7c0,
+ 0xc0015407,
+ 0xb7c09300,
+ 0xb7c05394,
+ 0xd0a2530c,
+ 0xb7255e4b,
+ 0x75005688,
+ 0x5494b720,
+ 0xc0000902,
+ 0xc200911c,
+ 0x75005a07,
+ 0xffff0904,
+ 0xc01c939a,
+ 0xc0007c7e,
+ 0xb7809102,
+ 0xb740404d,
+ 0xc0005f04,
+ 0xb78090c0,
+ 0xb740404d,
+ 0xd2265f84,
+ 0x9e2d5904,
+ 0xa8cec830,
+ 0xa8cdf010,
+ 0x50ab9e4c,
+ 0xd0a46099,
+ 0xd0b15817,
+ 0xd2080e60,
+ 0x9e89a881,
+ 0x9e915407,
+ 0xda105404,
+ 0x7500aa29,
+ 0x90e2c000,
+ 0xaa2dd290,
+ 0xc0007500,
+ 0xf24892c2,
+ 0xf210a957,
+ 0xf2488029,
+ 0xf250a255,
+ 0xf250a026,
+ 0xf248a02a,
+ 0xf010a042,
+ 0xf248aa49,
+ 0xf248a24d,
+ 0xc007a251,
+ 0xd2909300,
+ 0x7500aa39,
+ 0x91c4c007,
+ 0x558cb720,
+ 0x46a9b780,
+ 0x9e897500,
+ 0x90c4c007,
+ 0xa957f248,
+ 0x8029f210,
+ 0xa255f248,
+ 0xa8b5d290,
+ 0xc0007440,
+ 0xf01090c2,
+ 0xc000aa49,
+ 0xf2489240,
+ 0xf010a8cd,
+ 0xd0a6aa49,
+ 0xe2405908,
+ 0xd2268123,
+ 0xf3105904,
+ 0xf3108021,
+ 0xc2008221,
+ 0xf2485a0d,
+ 0xf248a24d,
+ 0xf248aa4d,
+ 0xd290a251,
+ 0x7440a8b5,
+ 0x9102c000,
+ 0xa026f250,
+ 0xa02af250,
+ 0x9360c005,
+ 0x4649b780,
+ 0xc0017500,
+ 0xda9090e2,
+ 0xf250a8a2,
+ 0xda90a925,
+ 0x1c84aa21,
+ 0xd0b19d1e,
+ 0xd3330ce0,
+ 0xb7606127,
+ 0xc2004031,
+ 0xc2005a40,
+ 0xc2015a45,
+ 0xf3108128,
+ 0x9ea18021,
+ 0xa9a1da90,
+ 0xf2500507,
+ 0x55afa225,
+ 0x98d7c014,
+ 0xa025f250,
+ 0xa029f250,
+ 0x9220c004,
+ 0xa92bda10,
+ 0xaa2df210,
+ 0xa8a6f250,
+ 0x88a1e310,
+ 0xda129e4a,
+ 0x8185a928,
+ 0xd0331884,
+ 0xf3106122,
+ 0xf31088b1,
+ 0xc0088a21,
+ 0xc2007540,
+ 0xc2015a07,
+ 0xf3108128,
+ 0xf2508021,
+ 0xc000a225,
+ 0x9eab91bc,
+ 0x98fdc014,
+ 0xaa25f250,
+ 0x52a3c200,
+ 0x5203c200,
+ 0xa225f250,
+ 0x6004b740,
+ 0xaa25f250,
+ 0x5904d2a6,
+ 0xc8309e2d,
+ 0x0189a8cd,
+ 0x59ffd224,
+ 0x01030c82,
+ 0xc0140503,
+ 0xb7409904,
+ 0x9d47609c,
+ 0xa926c210,
+ 0x05810181,
+ 0x98e0c014,
+ 0xaa29f210,
+ 0xf2507502,
+ 0xc000a025,
+ 0xf25090c4,
+ 0xc002a029,
+ 0xda109040,
+ 0xda12a8aa,
+ 0xd0a2a954,
+ 0xf0115c84,
+ 0x70488e22,
+ 0x9176c000,
+ 0xaa41f248,
+ 0xc2000208,
+ 0xf2505a07,
+ 0xc001a229,
+ 0xf24891c0,
+ 0xd011a8c1,
+ 0x9e4a0e12,
+ 0x8a21f310,
+ 0x6104d033,
+ 0xc2016099,
+ 0xf2508122,
+ 0xda10a12b,
+ 0xd0b1aa55,
+ 0x1a040ce0,
+ 0x5a07c200,
+ 0x8021f310,
+ 0x4031b760,
+ 0xa229f250,
+ 0xa9d5da10,
+ 0x05079ea1,
+ 0x198455af,
+ 0x984bc014,
+ 0xa029f250,
+ 0x90e0c000,
+ 0xaa2df210,
+ 0xf2100a04,
+ 0xf248a22d,
+ 0xf210a8c5,
+ 0xf250aa29,
+ 0xd0a6a8aa,
+ 0x75025904,
+ 0x8122c201,
+ 0x802bf210,
+ 0xa0aef250,
+ 0x588bc200,
+ 0x90f4c000,
+ 0xd0109e4a,
+ 0xf2507044,
+ 0xb79fa229,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0xb7209c22,
+ 0xd810540c,
+ 0x0802aa61,
+ 0x41abb580,
+ 0xb7409c22,
+ 0xb720538c,
+ 0xf0125814,
+ 0xf008a96c,
+ 0xb720aa4d,
+ 0xb740414d,
+ 0xf31040dd,
+ 0x62438a21,
+ 0x8021f310,
+ 0x40cdb580,
+ 0xa8edf010,
+ 0xa0cdf008,
+ 0xc0089c22,
+ 0x9e5874c0,
+ 0xc0009e52,
+ 0xd00290fc,
+ 0x1a1470c0,
+ 0x501351f3,
+ 0x7400c005,
+ 0x90fcc000,
+ 0x7000d002,
+ 0x50131a50,
+ 0xb7400128,
+ 0xb7806004,
+ 0xd1a6608c,
+ 0x9e2d5904,
+ 0xa8e5c040,
+ 0xaa4dc830,
+ 0x60097044,
+ 0x1214d01d,
+ 0x5013d01a,
+ 0x48bab340,
+ 0x50101222,
+ 0x9e5c9c22,
+ 0x08827526,
+ 0x4000d01e,
+ 0x48bcb340,
+ 0x7500c380,
+ 0x90bcc000,
+ 0x084ec002,
+ 0xc0049c22,
+ 0xc0007508,
+ 0x0a04915c,
+ 0x5a07c200,
+ 0x7508c004,
+ 0xffff0884,
+ 0xb740935a,
+ 0x9d4b611c,
+ 0xa805c220,
+ 0x691dd013,
+ 0x8021e210,
+ 0xc0029c22,
+ 0xd01172c0,
+ 0x9c221c0a,
+ 0x0d00e000,
+ 0x4422b330,
+ 0x4842b330,
+ 0x48a2b340,
+ 0x8502c002,
+ 0x882df210,
+ 0xc0007500,
+ 0x9e5990fa,
+ 0x12090c02,
+ 0x9c225031,
+ 0x50d09e5a,
+ 0x54699e52,
+ 0x30425269,
+ 0xa6859c22,
+ 0x9e810007,
+ 0xcffe9e90,
+ 0x9e412cfc,
+ 0x5c419e4c,
+ 0xcffe6491,
+ 0x62c328fc,
+ 0x9e445841,
+ 0x60096083,
+ 0x5a41c280,
+ 0x04909ea0,
+ 0x9d099e88,
+ 0x9e4c0490,
+ 0xc0017102,
+ 0xd0a28504,
+ 0xb3025e41,
+ 0xf3204468,
+ 0xd0a68121,
+ 0xcffe5d40,
+ 0xf3102afc,
+ 0x000d8123,
+ 0x9e54040d,
+ 0x6138d033,
+ 0x61459e5c,
+ 0x8125e210,
+ 0x04629e91,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c40,
+ 0x87c2c809,
+ 0x0c20b060,
+ 0x87c2c809,
+ 0x0a60b060,
+ 0x87c2c809,
+ 0x09c0b060,
+};
+
+unsigned long aui32MPG4VBR_MTXTOPAZFWData[] = {
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x809000b0,
+ 0x8090019c,
+ 0x82884e14,
+ 0x82884ad4,
+ 0x82884b0c,
+ 0x82884b44,
+ 0x82884b80,
+ 0x82884bbc,
+ 0x82884bec,
+ 0x82884c1c,
+ 0x82884c44,
+ 0x82884ca4,
+ 0x82884cac,
+ 0x82884cb4,
+ 0x82884cc0,
+ 0x82884fd8,
+ 0x82884fa8,
+ 0x82884e88,
+ 0x82884cf0,
+ 0x82884ed8,
+ 0x82884f20,
+ 0x82884f1c,
+ 0x82884f68,
+ 0x82885304,
+ 0x8288514f,
+ 0x82885150,
+ 0x8288512f,
+ 0x82885130,
+ 0x82885196,
+ 0x828851fe,
+ 0x8288523e,
+ 0x828852c0,
+ 0x82885170,
+ 0x82885078,
+ 0x828850d4,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x809006dc,
+ 0x80901be8,
+ 0x809024f0,
+ 0x809006e0,
+ 0x80903bf8,
+ 0x8090411c,
+ 0x8090072c,
+ 0x00000000,
+ 0x80901da8,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x809006dc,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0xa0101162,
+ 0xa0100174,
+ 0xa0101102,
+ 0xa0100184,
+ 0xa0101104,
+ 0xa0100194,
+ 0xa0101106,
+ 0xa01001a4,
+ 0xa01001a2,
+ 0xa01001a2,
+ 0xa0101182,
+ 0xa0100142,
+ 0xa0101122,
+ 0xa0100152,
+ 0x80101124,
+ 0x80101126,
+ 0x80101144,
+ 0x80101146,
+ 0x80100176,
+ 0x80100186,
+ 0x80100196,
+ 0x801001a6,
+ 0x801001b6,
+ 0x801001b4,
+ 0x80300364,
+ 0x8010b100,
+ 0x80105160,
+ 0x80100102,
+ 0x00000b00,
+ 0x00000b00,
+ 0x00000ba0,
+ 0x00000ba0,
+ 0x00000003,
+ 0x00000002,
+ 0x00000002,
+ 0x00000001,
+ 0x00000001,
+ 0x00000001,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000005,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x01010000,
+ 0x03030202,
+ 0x05040404,
+ 0x06060505,
+ 0x07070706,
+ 0x08080807,
+ 0x09090908,
+ 0x000a0a09,
+ 0x02010000,
+ 0x04040303,
+ 0x06060505,
+ 0x08080707,
+ 0x0a0a0909,
+ 0x0b0b0b0b,
+ 0x0c0c0c0c,
+ 0x000d0d0d,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x01010000,
+ 0x02020201,
+ 0x04030303,
+ 0x05040404,
+ 0x00140005,
+ 0x001a0016,
+ 0x0020001c,
+ 0x00280024,
+ 0x0034002c,
+ 0x00400038,
+ 0x00500048,
+ 0x00680058,
+ 0x00800070,
+ 0x00a00090,
+ 0x00d000b0,
+ 0x010000e0,
+ 0x01400120,
+ 0x01a00160,
+ 0x020001c0,
+ 0x02800240,
+ 0x034002c0,
+ 0x04000380,
+ 0x05000480,
+ 0x06800580,
+ 0x08000700,
+ 0x0a000900,
+ 0x0d000b00,
+ 0x10000e00,
+ 0x14001200,
+ 0x1a001600,
+ 0x00001c00,
+ 0x00800040,
+ 0x010000c0,
+ 0x01800140,
+ 0x020001c0,
+ 0x02800240,
+ 0x030002c0,
+ 0x03800340,
+ 0x040003c0,
+ 0x04800440,
+ 0x050004c0,
+ 0x05800540,
+ 0x060005c0,
+ 0x06800640,
+ 0x070006c0,
+ 0x07800740,
+ 0x000007c0,
+ 0x00200040,
+ 0x001002ab,
+ 0x015500cd,
+ 0x00080249,
+ 0x00cd01c7,
+ 0x0155005d,
+ 0x0249013b,
+ 0x00040111,
+ 0x01c700f1,
+ 0x00cd01af,
+ 0x005d00c3,
+ 0x01550059,
+ 0x013b0029,
+ 0x0249025f,
+ 0x01110235,
+ 0x00020021,
+ 0x00f1001f,
+ 0x01c70075,
+ 0x01af006f,
+ 0x00cd0069,
+ 0x00c30019,
+ 0x005d017d,
+ 0x0059005b,
+ 0x015502b9,
+ 0x002900a7,
+ 0x013b0283,
+ 0x025f0135,
+ 0x02490095,
+ 0x0235023f,
+ 0x0111008b,
+ 0x00210219,
+ 0x00010041,
+ 0x0b060600,
+ 0x0c0b0a06,
+ 0x0a0b0c06,
+ 0x0c0d0c0c,
+ 0x0d0d0c06,
+ 0x0b0b0c0c,
+ 0x0e0d0a0d,
+ 0x0a0d0e0e,
+ 0x0c0d0a06,
+ 0x0c0e0c0e,
+ 0x0e0d0a0d,
+ 0x0f0c0c0c,
+ 0x0f0b0d0e,
+ 0x0d0f0e0e,
+ 0x0d0f0f0f,
+ 0x0c0b0f0e,
+ 0x00000006,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x1234baac,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+};
diff --git a/fw/MPG4FirmwareVBR_bin.h b/fw/MPG4FirmwareVBR_bin.h
new file mode 100644
index 0000000..239d13f
--- /dev/null
+++ b/fw/MPG4FirmwareVBR_bin.h
@@ -0,0 +1,35 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+// This file was automatically generated from ../release/MPG4FirmwareVBR.dnl using dnl2c.
+
+extern unsigned long aui32MPG4VBR_MTXTOPAZFWText[];
+extern unsigned long ui32MPG4VBR_MTXTOPAZFWTextSize;
+
+extern unsigned long aui32MPG4VBR_MTXTOPAZFWData[];
+extern unsigned long ui32MPG4VBR_MTXTOPAZFWDataSize;
+
+extern unsigned long ui32MPG4VBR_MTXTOPAZFWDataLocation;
+
diff --git a/fw/MPG4Firmware_bin.c b/fw/MPG4Firmware_bin.c
new file mode 100644
index 0000000..c39ebed
--- /dev/null
+++ b/fw/MPG4Firmware_bin.c
@@ -0,0 +1,8227 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+// This file was automatically generated from ../release/MPG4Firmware.dnl using dnl2c.
+
+unsigned char *szMPG4_MTXTOPAZFW_buildtag = "TOPAZ_DDKBUILD_00-00-00-0146";
+
+unsigned long ui32MPG4_MTXTOPAZFWTextSize = 3309;
+unsigned long ui32MPG4_MTXTOPAZFWDataSize = 4880;
+unsigned long ui32MPG4_MTXTOPAZFWDataLocation = 0x828833c0;
+
+unsigned long aui32MPG4_MTXTOPAZFWText[] = {
+ 0x9040c001,
+ 0xc80993fe,
+ 0xc0000e42,
+ 0xc8290e00,
+ 0xc3ca8422,
+ 0xc8298440,
+ 0xc33c8622,
+ 0x9e838600,
+ 0xc8099e43,
+ 0xc6740d42,
+ 0xc8090d20,
+ 0xc6740942,
+ 0xc8090960,
+ 0xc00a0e42,
+ 0xc8090e40,
+ 0xc00e87c2,
+ 0x9c1887d0,
+ 0x0c020802,
+ 0x09820d82,
+ 0x09020d02,
+ 0x08820c82,
+ 0x9320fffe,
+ 0xa401c838,
+ 0x0dc2c809,
+ 0x0de0c672,
+ 0x0e42c809,
+ 0x0b46b080,
+ 0x7e74b77f,
+ 0xa48d0882,
+ 0xffff9ff3,
+ 0x9d1393e0,
+ 0xf8398081,
+ 0x0707a205,
+ 0x06850307,
+ 0x03839e97,
+ 0x0fa0060f,
+ 0x018d058d,
+ 0x9c62008f,
+ 0x9340ffff,
+ 0x0ea0060b,
+ 0xffff9c62,
+ 0x058d93a0,
+ 0xb700018d,
+ 0xb780518c,
+ 0x9c015114,
+ 0x0687a605,
+ 0x0ea0060b,
+ 0xffff9c62,
+ 0xf9f893a0,
+ 0xf9f8aa9d,
+ 0x9c22aa1d,
+ 0xa60d9c22,
+ 0x9bfefff4,
+ 0x0ca2c829,
+ 0x0ca0c3ca,
+ 0x404db720,
+ 0x0a42c809,
+ 0x0a60c5de,
+ 0x0b027440,
+ 0x428cb580,
+ 0x0a12d002,
+ 0x4644b421,
+ 0xc0540d8a,
+ 0xb78098b0,
+ 0xc807520c,
+ 0xc57008c2,
+ 0xc0320880,
+ 0xb5800c86,
+ 0xb4214c8c,
+ 0x0a06c000,
+ 0x0c98c002,
+ 0xc000b481,
+ 0x09021a04,
+ 0x08bac002,
+ 0x4078b960,
+ 0x0a00c200,
+ 0x588bd224,
+ 0xc000b441,
+ 0x0a11ce00,
+ 0x9301ffff,
+ 0x1884e000,
+ 0x9244ffff,
+ 0x0a42c807,
+ 0x0a00c576,
+ 0x0c86c032,
+ 0xc000b481,
+ 0x08820a02,
+ 0x08840902,
+ 0x4078b960,
+ 0x0a00c200,
+ 0x588bd224,
+ 0xc000b441,
+ 0x0a11ce00,
+ 0x9301ffff,
+ 0x745ac004,
+ 0x923cffff,
+ 0xc0340a02,
+ 0xb4810c9e,
+ 0xc034c000,
+ 0xc05498cd,
+ 0xc054982e,
+ 0x0d8a982a,
+ 0x9861c054,
+ 0x0a42c801,
+ 0x0a08c010,
+ 0x0c86c032,
+ 0xc000b481,
+ 0x08c2c801,
+ 0x0880cb10,
+ 0xb4210ce4,
+ 0x0a06c000,
+ 0xb4810cb4,
+ 0xc123c000,
+ 0xc56608d2,
+ 0xc08008e0,
+ 0xb4210c82,
+ 0x1a04c000,
+ 0xb4810c84,
+ 0x0d86c000,
+ 0x0d0209c2,
+ 0x0902c121,
+ 0x991bc014,
+ 0x458cb780,
+ 0xa982f208,
+ 0x0d02c021,
+ 0x09c20d04,
+ 0x9906c014,
+ 0x458cb780,
+ 0x0ad2c123,
+ 0x0ae0c566,
+ 0xa982f208,
+ 0x0d0609c2,
+ 0x98fac014,
+ 0x09c20d86,
+ 0xc1810d0e,
+ 0xc0140902,
+ 0xc00298fe,
+ 0xc0540dc2,
+ 0x700a980d,
+ 0x9364ffff,
+ 0xc0540d82,
+ 0xc0039814,
+ 0xb74092e0,
+ 0xd2265284,
+ 0x9e2d5908,
+ 0xaa4de030,
+ 0x9c629ea4,
+ 0x4514b720,
+ 0x405db740,
+ 0x58c1c280,
+ 0x2a80cff0,
+ 0x5a21c280,
+ 0x8021f310,
+ 0x753ec004,
+ 0x40cdb520,
+ 0x404db580,
+ 0x4652b431,
+ 0x0a42c801,
+ 0x0a08c010,
+ 0x0c86c032,
+ 0xc000b481,
+ 0xc0020886,
+ 0xb4210c98,
+ 0xb780c000,
+ 0xc080450c,
+ 0xf2080c82,
+ 0xb421a881,
+ 0x0d82c000,
+ 0x9bd0c034,
+ 0x450cb780,
+ 0xa881f208,
+ 0xffff7002,
+ 0x0d869304,
+ 0x0d0209c2,
+ 0x0902c121,
+ 0x98afc014,
+ 0x458cb780,
+ 0xa982f208,
+ 0x0d02c021,
+ 0x09c20d04,
+ 0x989ac014,
+ 0x458cb780,
+ 0xa982f208,
+ 0x0d0609c2,
+ 0x9892c014,
+ 0x09c20d86,
+ 0xc1010d0e,
+ 0xc0140902,
+ 0x77409896,
+ 0x9082c000,
+ 0x9b79c034,
+ 0x9c80c971,
+ 0x5a41e200,
+ 0x9204c000,
+ 0x0dc2c002,
+ 0x9b9ac034,
+ 0x450cb780,
+ 0xa881f208,
+ 0xffff7002,
+ 0x0d8292e4,
+ 0x9b9dc034,
+ 0xc0007580,
+ 0xc0349364,
+ 0x0d8a9b5e,
+ 0x9b95c034,
+ 0x450cb780,
+ 0xa881f208,
+ 0x5908d0a8,
+ 0x0948d073,
+ 0xe0309e2d,
+ 0xd3f1aacd,
+ 0xc2002a5c,
+ 0x75185a05,
+ 0x2ad2d012,
+ 0x9234fffb,
+ 0xb79f0802,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0x9c229c22,
+ 0x451cb740,
+ 0xc200aa41,
+ 0xc0025a08,
+ 0xf3100a00,
+ 0xf2088021,
+ 0xf208a882,
+ 0xc0c0a885,
+ 0x5c890c80,
+ 0xc000b421,
+ 0xa6059c22,
+ 0x451cb740,
+ 0x0886aa41,
+ 0x0c9ec034,
+ 0x5a08c200,
+ 0x0a00c002,
+ 0x80a1f310,
+ 0xc000b421,
+ 0x0c92c080,
+ 0xaa25f208,
+ 0xc000b481,
+ 0xc0340dc2,
+ 0xf2089b3f,
+ 0x7008aa25,
+ 0x9344ffff,
+ 0xc0800a02,
+ 0xb4810c96,
+ 0x0d86c000,
+ 0x0d0609c2,
+ 0x0902c121,
+ 0x981bc014,
+ 0xa9a2f208,
+ 0x0d02c021,
+ 0x09c20d04,
+ 0x9808c014,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xc0409e54,
+ 0x9e590c82,
+ 0xc000b421,
+ 0x0d02c040,
+ 0xc000b482,
+ 0xc00e9c22,
+ 0xc00e2d7c,
+ 0x5d3029e0,
+ 0xc0409e54,
+ 0x31b80c82,
+ 0xc000b461,
+ 0x0d02c040,
+ 0xc000b442,
+ 0x9e4c9c22,
+ 0x28fcc00e,
+ 0x2a7cc00e,
+ 0x0c82c040,
+ 0xb4019e58,
+ 0xc200c000,
+ 0x58e45a6c,
+ 0x1d043242,
+ 0x9e515d10,
+ 0x1984598d,
+ 0x3980c011,
+ 0x590d3246,
+ 0x59301904,
+ 0x32443242,
+ 0xc000b481,
+ 0x9e4c9c22,
+ 0x28fcc00e,
+ 0x2a7cc00e,
+ 0x0c82c040,
+ 0xb4019e58,
+ 0xc200c000,
+ 0x58e45a6c,
+ 0x1d043242,
+ 0x9e515d10,
+ 0x1984598d,
+ 0x3980c019,
+ 0x590d3246,
+ 0x59301904,
+ 0x32443242,
+ 0xc000b481,
+ 0x9e4c9c22,
+ 0x28fcc00e,
+ 0x2a7cc00e,
+ 0x0c82c040,
+ 0xb4019e58,
+ 0xc200c000,
+ 0x58e45a6c,
+ 0x1d043242,
+ 0x9e515d10,
+ 0x1984598d,
+ 0x3980c01d,
+ 0x590d3246,
+ 0x59301904,
+ 0x32443242,
+ 0xc000b481,
+ 0xa60d9c22,
+ 0x07038420,
+ 0xc2800687,
+ 0x1c845c8d,
+ 0x5ca0d0a2,
+ 0xd0110287,
+ 0xc2000a5e,
+ 0x1a045a0d,
+ 0x5a30c200,
+ 0x30985cd0,
+ 0x04059e4c,
+ 0x0c8ac032,
+ 0xc8013098,
+ 0xb4213880,
+ 0x9ea9c000,
+ 0x0a02c801,
+ 0x0a00c002,
+ 0xc0306553,
+ 0xb4810c8a,
+ 0xc002c000,
+ 0x0c840882,
+ 0xc000b421,
+ 0xd0229e93,
+ 0x9e535f09,
+ 0x1d045d0d,
+ 0x9b5afff4,
+ 0x5e91c280,
+ 0xc2801e84,
+ 0x9e6c5e84,
+ 0xc2801a84,
+ 0xc1815a90,
+ 0x0d8a3a80,
+ 0x0d020982,
+ 0xfff4314a,
+ 0xc0c09b54,
+ 0x09920d82,
+ 0x0d02c002,
+ 0x0902c002,
+ 0x9a47c034,
+ 0xc0340a0a,
+ 0xb4810c9e,
+ 0x1b04c000,
+ 0x850275bf,
+ 0x9202c000,
+ 0xb55f9dcf,
+ 0xc0347f7c,
+ 0xf2319a4f,
+ 0xb75fa045,
+ 0x1b047f7c,
+ 0x851075bf,
+ 0x9284ffff,
+ 0xc0300a02,
+ 0xb4810c8e,
+ 0xb79fc000,
+ 0xb7bf7e6e,
+ 0xb7df7eee,
+ 0xc0027f6e,
+ 0x9c228c00,
+ 0xb780a605,
+ 0xc004438c,
+ 0x75002a00,
+ 0x570cb7a0,
+ 0x92c2c002,
+ 0xa9b6f208,
+ 0x0982c050,
+ 0x0d7ec008,
+ 0x9b08fff4,
+ 0xa9bef208,
+ 0x0982c028,
+ 0x0d3ec004,
+ 0x9b00fff4,
+ 0x438cb780,
+ 0x38c0d211,
+ 0x02039e89,
+ 0x2a00c201,
+ 0xcffa7500,
+ 0xb5202cfd,
+ 0xc0014394,
+ 0x744090e2,
+ 0x578cb740,
+ 0x9256c000,
+ 0xaa45f008,
+ 0xa8c9f008,
+ 0x2cfec7ff,
+ 0x0a00c010,
+ 0xa245f008,
+ 0x0880c008,
+ 0xa0c9f008,
+ 0x4394b520,
+ 0xaa45f008,
+ 0x438cb720,
+ 0xa235f208,
+ 0xa8caf008,
+ 0x28fecdff,
+ 0xa0bef208,
+ 0x438cb520,
+ 0x9240c000,
+ 0xa937f208,
+ 0xaa39f208,
+ 0xa93cf20a,
+ 0xa8a1f248,
+ 0x8021f310,
+ 0x82a3e210,
+ 0xa235f208,
+ 0xa0bdf208,
+ 0xa9bef248,
+ 0x0982c002,
+ 0xfff40d0e,
+ 0xf2489ab5,
+ 0xb720aa3d,
+ 0xc002438c,
+ 0xf2480a00,
+ 0xc200a23d,
+ 0xb5203880,
+ 0xc011438c,
+ 0x74402880,
+ 0x92e2c000,
+ 0xa9b6f248,
+ 0x0982c008,
+ 0xfff40d3e,
+ 0xf2489a9d,
+ 0xb720aa35,
+ 0xc008438c,
+ 0xf2480a00,
+ 0xc081a235,
+ 0xcfef3880,
+ 0xb52028fe,
+ 0xb780438c,
+ 0xc001438c,
+ 0x75002a04,
+ 0x92e2c000,
+ 0xa9b6f248,
+ 0x0982c008,
+ 0xfff40d3e,
+ 0xf2489a81,
+ 0xb720aa35,
+ 0xc008438c,
+ 0xf2480a00,
+ 0xc001a235,
+ 0xcfff3888,
+ 0xb52028fa,
+ 0xb720438c,
+ 0x0203438c,
+ 0x2a10c001,
+ 0xc0027500,
+ 0xc0019082,
+ 0x744028c0,
+ 0x9182c001,
+ 0xa9a6f288,
+ 0x0d0609c2,
+ 0x0c820942,
+ 0xfff40882,
+ 0xf2889a96,
+ 0xf288a9b6,
+ 0x5d90a927,
+ 0x81afe220,
+ 0x438cb780,
+ 0x0d0609c2,
+ 0x0c820942,
+ 0xc0010882,
+ 0xb5803a20,
+ 0xfff4438c,
+ 0xb7809aa0,
+ 0xf288438c,
+ 0xc003a8a5,
+ 0x08c03a00,
+ 0xa0a5f288,
+ 0x2a2ecfff,
+ 0x9260c000,
+ 0xa9a6f288,
+ 0x0d0609c2,
+ 0x9a36fff4,
+ 0x438cb780,
+ 0xa8a5f288,
+ 0x3a20c001,
+ 0xf28808c0,
+ 0xcfffa0a5,
+ 0xb5802a6e,
+ 0xb79f438c,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa6059c22,
+ 0x438cb780,
+ 0x2a00c200,
+ 0x9e5d7500,
+ 0x9302c000,
+ 0x0abc6a8e,
+ 0x09829eab,
+ 0xc1010d36,
+ 0xc0140902,
+ 0x9eab98a4,
+ 0x438cb780,
+ 0x0d1a0982,
+ 0x0902c101,
+ 0x2a7dcdfe,
+ 0x438cb580,
+ 0x9897c014,
+ 0x438cb780,
+ 0x2a00c081,
+ 0xc0007500,
+ 0xc1019222,
+ 0xc0060902,
+ 0x0dce0940,
+ 0x0d020982,
+ 0x9887c014,
+ 0x438cb780,
+ 0x2a7ecf7f,
+ 0x438cb580,
+ 0x438cb780,
+ 0x2a08c001,
+ 0xc0007500,
+ 0xc1019222,
+ 0xc0060902,
+ 0x0dde0940,
+ 0x0d020982,
+ 0x9871c014,
+ 0x438cb780,
+ 0x2a76cfff,
+ 0x438cb580,
+ 0x438cb780,
+ 0x2a20c001,
+ 0xc0007500,
+ 0x0de291e2,
+ 0x0d020982,
+ 0x0902c101,
+ 0x985dc014,
+ 0x438cb780,
+ 0x2a5ecfff,
+ 0x438cb580,
+ 0x438cb780,
+ 0x2a00c003,
+ 0xc0007500,
+ 0x0de291e2,
+ 0x0d060982,
+ 0x0902c101,
+ 0x9849c014,
+ 0x438cb780,
+ 0x2a7ecffd,
+ 0x438cb580,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xb7a0a605,
+ 0xf248570c,
+ 0xc021a9ba,
+ 0x0d3c0d02,
+ 0x0982c008,
+ 0x999efff4,
+ 0xa9aaf288,
+ 0x0d02c021,
+ 0x09c20d04,
+ 0x9996fff4,
+ 0xaa39f248,
+ 0xa8a9f288,
+ 0x0a00c008,
+ 0xa239f248,
+ 0xf28808c0,
+ 0xb79fa0a9,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa6059c22,
+ 0x09920687,
+ 0x0d02c002,
+ 0x0902c002,
+ 0x9883c034,
+ 0x0a42c002,
+ 0xc2800eb0,
+ 0xb4855e89,
+ 0xb79fc000,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xb7409c22,
+ 0xd1a64c84,
+ 0x9e2d5d08,
+ 0xa8cde030,
+ 0x5a0cc080,
+ 0xd1f35885,
+ 0xc00e2910,
+ 0xe2202d7c,
+ 0xc00e812d,
+ 0x5d302a40,
+ 0x32429e51,
+ 0x0c82c040,
+ 0xc000b481,
+ 0x0d02c040,
+ 0xc000b442,
+ 0xb7409c22,
+ 0x1df05804,
+ 0x5d08d1a6,
+ 0xe0309e2d,
+ 0xc080a8cd,
+ 0xd0335a05,
+ 0x5991294e,
+ 0x008929bc,
+ 0x81a7e210,
+ 0x2910d1f3,
+ 0x2d7cc00e,
+ 0x812de220,
+ 0x5d305990,
+ 0x31b89e54,
+ 0x0c82c040,
+ 0xc000b461,
+ 0x0d02c040,
+ 0xc000b442,
+ 0xa6059c22,
+ 0x570cb7a0,
+ 0x0e82c111,
+ 0x0ec0c04e,
+ 0xa9b6f208,
+ 0x0982c050,
+ 0x0d7ec008,
+ 0x991efff4,
+ 0x0df29e6a,
+ 0x0982c004,
+ 0xfff40d02,
+ 0xf2089bc8,
+ 0xf248a937,
+ 0xe220a9aa,
+ 0xc05081af,
+ 0xc0080982,
+ 0xfff40d7e,
+ 0x9e6a990b,
+ 0xc0040df2,
+ 0x0d0209c2,
+ 0x9bb5fff4,
+ 0xa937f208,
+ 0xa9aaf248,
+ 0x812ec201,
+ 0x81afe220,
+ 0x0982c050,
+ 0x0d7ec008,
+ 0x98f6fff4,
+ 0x0df29e6a,
+ 0x0982c006,
+ 0xfff40d02,
+ 0xf2089ba0,
+ 0xcfd8a9be,
+ 0xc0280e81,
+ 0xc0040982,
+ 0xfff40d3e,
+ 0x9e6a98e5,
+ 0xc0040df2,
+ 0xc0040982,
+ 0xfff40d42,
+ 0xf2089b8e,
+ 0xf248a93f,
+ 0xe220a9b2,
+ 0xc02881af,
+ 0xc0040982,
+ 0xfff40d3e,
+ 0x9e6a98d1,
+ 0xc0040df2,
+ 0xc00409c2,
+ 0xfff40d42,
+ 0xf2089b7a,
+ 0xf248a93f,
+ 0xc201a9b2,
+ 0xe220812e,
+ 0xc02881af,
+ 0xc0040982,
+ 0xfff40d3e,
+ 0x9e6a98bb,
+ 0xc0060df2,
+ 0xc0040982,
+ 0xfff40d42,
+ 0xf2489b64,
+ 0xf20aaa29,
+ 0xf248a934,
+ 0xd226a8b1,
+ 0xf2085904,
+ 0xf310a9bf,
+ 0xd0a68021,
+ 0xe2105904,
+ 0xf31080a3,
+ 0xe2108221,
+ 0xf20880b3,
+ 0xf208a235,
+ 0xb79fa0bd,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa6059c22,
+ 0x0902c121,
+ 0x0940c006,
+ 0x02870dca,
+ 0x0d020982,
+ 0x2afcc00e,
+ 0x9b1bfff4,
+ 0x09820dca,
+ 0xc2800d1e,
+ 0x010b5aec,
+ 0x3900c121,
+ 0x9b11fff4,
+ 0x438cb780,
+ 0x3a00c400,
+ 0x438cb580,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0x0922c829,
+ 0x0970c5fe,
+ 0x0a22c829,
+ 0x0a50c5fe,
+ 0x588cb720,
+ 0x0ca2c829,
+ 0x0ce0c5fe,
+ 0x8502c004,
+ 0x458cb580,
+ 0x450cb520,
+ 0x0a18d071,
+ 0xa241f008,
+ 0x404db520,
+ 0x413db540,
+ 0x8d00c004,
+ 0x40bdb540,
+ 0x403db540,
+ 0xf8399c22,
+ 0xf010a285,
+ 0x7500aa61,
+ 0x9164c000,
+ 0xa8c1d008,
+ 0x0a069e48,
+ 0x5200c200,
+ 0xd0083098,
+ 0xd011a0c1,
+ 0xd0100d38,
+ 0xf011a9f2,
+ 0xf0101a30,
+ 0x1984a943,
+ 0x93e2c000,
+ 0x8702cff1,
+ 0x8700cff0,
+ 0x087ec00f,
+ 0x087cc00e,
+ 0x0c1ac050,
+ 0xa8c5f029,
+ 0x2095d020,
+ 0x9e4d5ca1,
+ 0xc2002210,
+ 0x30d85a20,
+ 0x4006ba09,
+ 0xc000b420,
+ 0x1a30f011,
+ 0xffff1984,
+ 0xf21091e4,
+ 0xf010802f,
+ 0xf9f8a241,
+ 0x9c22aa9d,
+ 0x8420a60d,
+ 0x9e558502,
+ 0x7f7cb55f,
+ 0xaa61f010,
+ 0x8d8ee012,
+ 0xb55f0307,
+ 0x1a087ffc,
+ 0xd226750a,
+ 0x8540590c,
+ 0x8044e05a,
+ 0x91e0c003,
+ 0x9180c000,
+ 0x9000c001,
+ 0x9140c001,
+ 0x92a0c001,
+ 0x9380c001,
+ 0x91c0c002,
+ 0x598cb780,
+ 0xa881da08,
+ 0x74402888,
+ 0xb352856a,
+ 0xb7804462,
+ 0x9d57450c,
+ 0x8d88e011,
+ 0x1954d072,
+ 0xa299f208,
+ 0x9abcc014,
+ 0x91e0c002,
+ 0x450cb780,
+ 0xa91af208,
+ 0xe0119ea9,
+ 0x15148d88,
+ 0x9ab0c014,
+ 0x9060c002,
+ 0x8d88e011,
+ 0x295ed3f2,
+ 0xc0140916,
+ 0xb78099df,
+ 0xf208450c,
+ 0xc001a299,
+ 0xe01192c0,
+ 0xd3f28d88,
+ 0x0916295e,
+ 0x99d2c014,
+ 0x91a0c001,
+ 0xaa41d208,
+ 0x8c88f011,
+ 0xd0124a7d,
+ 0x0d062ace,
+ 0x018b0906,
+ 0x99c4c014,
+ 0x9e6a9e83,
+ 0x0d02018b,
+ 0x99bec014,
+ 0x9320c000,
+ 0xaa41d208,
+ 0x8c88f011,
+ 0xd0124a7d,
+ 0x0d022ace,
+ 0x018b0906,
+ 0x99b0c014,
+ 0x9e6a9e83,
+ 0xc00e018b,
+ 0xc0140d7e,
+ 0xc00099a9,
+ 0xc0019080,
+ 0xb79f90e0,
+ 0xc00f7e68,
+ 0xc00e0cfe,
+ 0x9e4a0cfc,
+ 0x7c68b59f,
+ 0x7f6cb73f,
+ 0x0a02cff1,
+ 0x0a00cff0,
+ 0x0c9ac050,
+ 0xc2002218,
+ 0x20945a21,
+ 0x324258a0,
+ 0x4006ba24,
+ 0x7f6cb59f,
+ 0xc000b481,
+ 0xa943f208,
+ 0x7fecb79f,
+ 0x8021f310,
+ 0xa241f208,
+ 0x7e6eb79f,
+ 0x7eeeb7bf,
+ 0x7f6eb7df,
+ 0x8c00c002,
+ 0xa61d9c22,
+ 0x85028440,
+ 0xf0319e9d,
+ 0x0b02abe5,
+ 0x7878b55f,
+ 0x7efcb55f,
+ 0x9d3a718e,
+ 0x91e8c001,
+ 0x7502aa41,
+ 0x9392c000,
+ 0xaad1d018,
+ 0x8d08e032,
+ 0x8d00e051,
+ 0x9eb19dcf,
+ 0xb55f8510,
+ 0xc0027f7c,
+ 0xc2800a9c,
+ 0x018b5a95,
+ 0x9aebfff4,
+ 0x7f7cb75f,
+ 0x5a88c280,
+ 0x8122c301,
+ 0x91a0c000,
+ 0x8d88e031,
+ 0x050b9dcf,
+ 0xb55f8510,
+ 0xfff47f7c,
+ 0xb75f9b19,
+ 0x0b047f7c,
+ 0xfffe718e,
+ 0xb79f92a6,
+ 0xc0507868,
+ 0xb4810c9e,
+ 0xc050c000,
+ 0xb4e20d16,
+ 0xb71fc000,
+ 0xb79f7eec,
+ 0xb7bf7d6e,
+ 0xb7df7dee,
+ 0xb7ff7e6e,
+ 0xc0027eee,
+ 0x9c228c40,
+ 0xa205f839,
+ 0x8400c010,
+ 0x598cb780,
+ 0x451cb740,
+ 0xa882da08,
+ 0xd011a8c1,
+ 0x58882e18,
+ 0x0880c002,
+ 0xe2107500,
+ 0xc00080a3,
+ 0x0a0a90a2,
+ 0x9100c000,
+ 0x2e14d011,
+ 0x0a067500,
+ 0x0a44d001,
+ 0x0c82c050,
+ 0xc000b481,
+ 0x0a02c004,
+ 0xb4810cb4,
+ 0x9d87c000,
+ 0x402db740,
+ 0x09a20dc2,
+ 0x0d02c008,
+ 0x0c81cff0,
+ 0x9b4dffd4,
+ 0x0a42c801,
+ 0x0a00cb10,
+ 0x0ceac032,
+ 0xc000b481,
+ 0x08c2c801,
+ 0x0888c010,
+ 0xb4210c84,
+ 0xb760c000,
+ 0x9d8f410a,
+ 0x0d81cff0,
+ 0x9b67fff4,
+ 0x0a02c801,
+ 0x0a00c00a,
+ 0x0c8ac030,
+ 0xc000b481,
+ 0x08c2c008,
+ 0xb4210c84,
+ 0xc008c000,
+ 0x0c880a02,
+ 0xc000b481,
+ 0x0d82c0c0,
+ 0xc0080992,
+ 0xc0080d02,
+ 0xc0140902,
+ 0xc00899ae,
+ 0xc0300a02,
+ 0xb4810c8e,
+ 0xc014c000,
+ 0xb79f982f,
+ 0xc0106fee,
+ 0x9c228c20,
+ 0xa205f839,
+ 0x0c82c450,
+ 0xb4810a02,
+ 0xb101c000,
+ 0xc0084220,
+ 0xc0300a40,
+ 0xb4810c8e,
+ 0xc002c000,
+ 0xc05038c0,
+ 0xb4210c82,
+ 0xc0c0c000,
+ 0x09920d82,
+ 0x0d02c008,
+ 0x0902c008,
+ 0x9983c014,
+ 0x0a02c008,
+ 0x0c8ec030,
+ 0xc000b481,
+ 0xaa1df9f8,
+ 0x9040c000,
+ 0xc450a60d,
+ 0x0a020c8a,
+ 0xc000b481,
+ 0x4240b105,
+ 0x2efce00e,
+ 0x5e90d284,
+ 0x0a02c801,
+ 0xc0300a40,
+ 0xb4810c8a,
+ 0x08c2c000,
+ 0xb4210c84,
+ 0x7740c000,
+ 0x5a8cb7c0,
+ 0x93e2c000,
+ 0x0eded031,
+ 0x09820dea,
+ 0x2ac10d02,
+ 0x1950d051,
+ 0x3900c121,
+ 0x98ddfff4,
+ 0xa9c6f248,
+ 0xc280018b,
+ 0x1a845a8f,
+ 0xc0219eaa,
+ 0xffd43d00,
+ 0xf2489a3f,
+ 0xf310a947,
+ 0xf248802b,
+ 0xc450a245,
+ 0x0a020c86,
+ 0xc000b481,
+ 0x4220b101,
+ 0x0a42c801,
+ 0x0a08c010,
+ 0x0c86c032,
+ 0xc000b481,
+ 0xc0020886,
+ 0xb4210c98,
+ 0xb740c000,
+ 0xf248590c,
+ 0xf048a8c5,
+ 0xd053aa51,
+ 0xc0801910,
+ 0xf3100ca2,
+ 0xb4818821,
+ 0xb7a0c000,
+ 0xc002590c,
+ 0xc0140d82,
+ 0xf248992f,
+ 0xf248a8c5,
+ 0xd053aa31,
+ 0xf3101910,
+ 0x70088821,
+ 0x9264ffff,
+ 0x09c20d86,
+ 0xc1210d0a,
+ 0xffd40902,
+ 0xf2489a0a,
+ 0xc0a1a9b2,
+ 0x0d040d02,
+ 0xffd409c2,
+ 0xc0c099f7,
+ 0x09920d82,
+ 0x09420d42,
+ 0x98f7c014,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x9e5da60d,
+ 0xf1245940,
+ 0xd3f15841,
+ 0xb3502d2e,
+ 0xc0024422,
+ 0xf00893e2,
+ 0xe000aa61,
+ 0xb4252a1c,
+ 0xd8084422,
+ 0x8522aa61,
+ 0x88a9e210,
+ 0x12182a1c,
+ 0xc00e9ea3,
+ 0xba1b0a7e,
+ 0xc200400b,
+ 0x21285207,
+ 0x9276c001,
+ 0xc1009e59,
+ 0x11035a20,
+ 0x5209c200,
+ 0xc2009ea2,
+ 0x9e8d58a1,
+ 0x0cb0d031,
+ 0xa8a2d208,
+ 0x2a7cc00e,
+ 0x5207c200,
+ 0x2a7cc00e,
+ 0xd208349a,
+ 0xf008a0a2,
+ 0x9ea1a963,
+ 0x2a2ed3f1,
+ 0x8128c201,
+ 0x8821f310,
+ 0xf0088502,
+ 0xd228a261,
+ 0x9eaba127,
+ 0x2d01cff0,
+ 0x59415940,
+ 0xc00e3522,
+ 0xfff42d7c,
+ 0xc0009bb1,
+ 0xd20892e0,
+ 0x9e5eaa21,
+ 0x50d8000b,
+ 0xd0293242,
+ 0xf008a205,
+ 0xd013a8e1,
+ 0xf210291e,
+ 0x75108029,
+ 0x00989e44,
+ 0xa0e1f008,
+ 0x4426b350,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x0685a60d,
+ 0x9e9e9e69,
+ 0x71820b02,
+ 0xc0000a86,
+ 0x9ea99208,
+ 0x9e6916d2,
+ 0x5a84c280,
+ 0x1a52d011,
+ 0xd0117102,
+ 0xd3f108e2,
+ 0xffff2b1e,
+ 0xd0119286,
+ 0x75100a62,
+ 0xc000028d,
+ 0x9e7391d4,
+ 0x09220d02,
+ 0x9b70fff4,
+ 0xd0111aa0,
+ 0x75100a52,
+ 0xffff9e83,
+ 0x9e7392d2,
+ 0xd0110d06,
+ 0xc00e0952,
+ 0xfff4297c,
+ 0x75909b61,
+ 0xc0009e83,
+ 0xd03192f4,
+ 0xd3f11a60,
+ 0x9e6c2b4e,
+ 0xc2009e73,
+ 0xd3f25299,
+ 0x0922295e,
+ 0x9b50fff4,
+ 0xc2009e83,
+ 0x9ea952b8,
+ 0x16d27590,
+ 0x91b2ffff,
+ 0xd3f29e73,
+ 0x010d2d5e,
+ 0x9b42fff4,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x0ca0f011,
+ 0xd09a9e99,
+ 0xd00d5a04,
+ 0xc0001a42,
+ 0x1203909a,
+ 0x9e4b1242,
+ 0xfffc9ea2,
+ 0xc0019360,
+ 0xf83993a0,
+ 0x0d8aa205,
+ 0x9835c014,
+ 0xc0140d8e,
+ 0x0d8a9832,
+ 0xaa1df9f8,
+ 0x91a0c001,
+ 0x9e520507,
+ 0x0d82c0c0,
+ 0xc0000992,
+ 0x9e5c9040,
+ 0xd1a401c6,
+ 0x08825889,
+ 0x3c80c400,
+ 0xc000b421,
+ 0x4220b104,
+ 0x9e532244,
+ 0xffff7106,
+ 0x9c229324,
+ 0xc000b463,
+ 0xf8129c22,
+ 0x9c22a062,
+ 0x0d80c200,
+ 0x9e595d89,
+ 0xc4000982,
+ 0xb4633d80,
+ 0xb203c000,
+ 0x00074620,
+ 0xc1279c22,
+ 0x9c229c8f,
+ 0xb971080a,
+ 0xc01756f1,
+ 0xc0719c81,
+ 0xc0179c80,
+ 0xb9609c80,
+ 0x9c224000,
+ 0x8460a61d,
+ 0x4504b740,
+ 0xb53f0882,
+ 0xb5207f6c,
+ 0xf0004788,
+ 0x9e2daa41,
+ 0x578cb7a0,
+ 0x7e6cb53f,
+ 0x5a08c200,
+ 0x0940d093,
+ 0xe0209ea9,
+ 0x0dc2a96d,
+ 0xc002098e,
+ 0xffd40d42,
+ 0xb7209920,
+ 0xf2085714,
+ 0x0882aa25,
+ 0x7eecb53f,
+ 0xa8a9f208,
+ 0xda089eaf,
+ 0xb580a939,
+ 0xda0842cd,
+ 0xb760a93e,
+ 0xb520590c,
+ 0xb54043cd,
+ 0xb540434d,
+ 0xf2084455,
+ 0xda08aa39,
+ 0xd112a9a2,
+ 0xf0480938,
+ 0xd810a967,
+ 0x2a20a8c1,
+ 0x9e5c7500,
+ 0xa97df048,
+ 0xc08060c2,
+ 0xc2005a7f,
+ 0x00985a71,
+ 0x58945893,
+ 0x80a3e210,
+ 0xb5400683,
+ 0xb54046cd,
+ 0xb520474d,
+ 0xc00047cd,
+ 0xe1809182,
+ 0xc0005dc0,
+ 0xf0489284,
+ 0xd810a977,
+ 0xc000aa41,
+ 0xb7409100,
+ 0xd8105904,
+ 0xf040aa41,
+ 0xf310a957,
+ 0xf2908021,
+ 0xf290a12b,
+ 0xf210a225,
+ 0xb760aa39,
+ 0xf250591c,
+ 0xf250a8a1,
+ 0xaa61a229,
+ 0xa969a8e6,
+ 0xa0b1f250,
+ 0xf2109d67,
+ 0xf210a221,
+ 0xf210a0aa,
+ 0xd858a12d,
+ 0xd858a8ea,
+ 0xd111a96d,
+ 0xda080a18,
+ 0xf210a881,
+ 0xb720a0a6,
+ 0xf2105a94,
+ 0x58c0a131,
+ 0xf29058d1,
+ 0xda10a0b5,
+ 0xb740aa61,
+ 0xb740425d,
+ 0x008942c5,
+ 0x5a20c200,
+ 0xf310589c,
+ 0xe2108021,
+ 0xa26d82a3,
+ 0xa0f1f018,
+ 0xa225f250,
+ 0xa0adf250,
+ 0x0a00c00c,
+ 0x4e8cb580,
+ 0x0880c006,
+ 0x4f0cb520,
+ 0x0cf2c42e,
+ 0xb4810a02,
+ 0xb101c000,
+ 0x28844220,
+ 0xc0007440,
+ 0xb7409182,
+ 0xd111590c,
+ 0xda080a28,
+ 0xc058a881,
+ 0xc0277460,
+ 0xda109292,
+ 0xb720aa61,
+ 0x8706410a,
+ 0x9d547500,
+ 0x1ad2d002,
+ 0xb55f7448,
+ 0xc0007de4,
+ 0xf2109112,
+ 0xcffeaa79,
+ 0xf2102a3d,
+ 0xf210a279,
+ 0x2a40aa79,
+ 0xc0007500,
+ 0x0a0a9122,
+ 0x0caec060,
+ 0xc000b481,
+ 0x90e0c000,
+ 0xc0600a06,
+ 0xb4810cae,
+ 0xb720c000,
+ 0xf2d04d14,
+ 0xf290aa21,
+ 0xc801a8bd,
+ 0x9d1e3c80,
+ 0x450cb740,
+ 0x5a40c200,
+ 0xc30158a0,
+ 0x32423246,
+ 0xa251f008,
+ 0x9999c034,
+ 0xc0340a3e,
+ 0xb4810c9e,
+ 0x0882c000,
+ 0xb4210c90,
+ 0xffd4c000,
+ 0xc0069a92,
+ 0xb5408542,
+ 0x0a02469c,
+ 0x0c8ac030,
+ 0xc000b481,
+ 0x0882c002,
+ 0xb4210c84,
+ 0xc801c000,
+ 0xc0020a02,
+ 0x1c840a00,
+ 0xc000b481,
+ 0x0902c1c1,
+ 0x0940c006,
+ 0x09820dce,
+ 0xffb40d02,
+ 0xc0c09baa,
+ 0xffd40d82,
+ 0xb7809a18,
+ 0xc034468c,
+ 0xc2000cae,
+ 0xb4815a11,
+ 0x0882c000,
+ 0xb4210cfc,
+ 0xf210c000,
+ 0x2a04aa79,
+ 0x850a7500,
+ 0x471cb540,
+ 0x90a2c000,
+ 0xb5408504,
+ 0xb780471c,
+ 0xc03e470c,
+ 0xb5800c82,
+ 0xb481478c,
+ 0xc0c8c000,
+ 0xc0500882,
+ 0xb4210ce2,
+ 0xc2f0c000,
+ 0xc0380a7e,
+ 0xb4810cfa,
+ 0xf250c000,
+ 0xc050a8e5,
+ 0xb4210ce6,
+ 0xb740c000,
+ 0xb720578c,
+ 0x871a470c,
+ 0x8566c184,
+ 0xf0081cb0,
+ 0xb540aa59,
+ 0x3890491c,
+ 0x470cb520,
+ 0x75002a04,
+ 0x0906c800,
+ 0x0a02c006,
+ 0x8f28e001,
+ 0x4804b540,
+ 0xc000b481,
+ 0x0d02c03a,
+ 0xc000b442,
+ 0xc03408be,
+ 0xb4210c9e,
+ 0xb785c000,
+ 0x75004608,
+ 0x9082c000,
+ 0x98e3c054,
+ 0x490cb780,
+ 0x0c82c038,
+ 0xc000b481,
+ 0xa965da10,
+ 0xaa35f290,
+ 0x5b0cb720,
+ 0x62458502,
+ 0x462db720,
+ 0x419ab540,
+ 0x421ab540,
+ 0x429ab540,
+ 0xc2007440,
+ 0xb5805a11,
+ 0xc000430a,
+ 0xf2509102,
+ 0xb760a9ea,
+ 0x9e8c430a,
+ 0xb7e09c62,
+ 0x0b02590c,
+ 0xb780070b,
+ 0xc050480c,
+ 0xb4810c82,
+ 0xc030c000,
+ 0xb4c20d0a,
+ 0xc00ec000,
+ 0xc03008fe,
+ 0xb4210c8e,
+ 0xf210c000,
+ 0x2a04aa79,
+ 0xc0007500,
+ 0xc4389182,
+ 0xb4c10c8a,
+ 0xb104c000,
+ 0xc03e4220,
+ 0xb4810ca6,
+ 0xb780c000,
+ 0x7500430c,
+ 0x93a2c001,
+ 0x2a00c020,
+ 0xc0017500,
+ 0xc46090e2,
+ 0xb4c10ca2,
+ 0xb104c000,
+ 0x088a4220,
+ 0x0ca2c060,
+ 0xc000b421,
+ 0x0902c004,
+ 0x0c96c030,
+ 0xc000b441,
+ 0x430cb780,
+ 0x2a7dcfde,
+ 0x430cb580,
+ 0x08f8c002,
+ 0x0cecc00e,
+ 0xc000b421,
+ 0x0a02c201,
+ 0xc000b481,
+ 0x8502c004,
+ 0x4d9cb540,
+ 0x430cb720,
+ 0x0c96c030,
+ 0xc000b421,
+ 0x430cb780,
+ 0x75002a04,
+ 0x90e2c000,
+ 0x488cb780,
+ 0xb5800a04,
+ 0xb75f488c,
+ 0xb7807dfc,
+ 0x9eab430c,
+ 0xb5809d4f,
+ 0xc034508c,
+ 0xb7809a3a,
+ 0xc020438c,
+ 0x75002a00,
+ 0x287cc00e,
+ 0x7d6cb51f,
+ 0x9042c002,
+ 0xa9c6f250,
+ 0x0d02c021,
+ 0xc0100d7c,
+ 0xffb40982,
+ 0xf2509a99,
+ 0xc021a9ce,
+ 0x0d3c0d02,
+ 0x0982c008,
+ 0x9a90ffb4,
+ 0x438cb780,
+ 0x2a00c401,
+ 0xc0007500,
+ 0xf2089262,
+ 0xf208aa6d,
+ 0x0906a8f1,
+ 0x7e6cb55f,
+ 0x0a00c010,
+ 0xa26df208,
+ 0x0880c008,
+ 0xa0f1f208,
+ 0x91c0c000,
+ 0xa927f250,
+ 0xaa29f250,
+ 0xa92cf252,
+ 0xa8b1f250,
+ 0x8021f310,
+ 0x82a3e210,
+ 0xa225f250,
+ 0xa0adf250,
+ 0x438cb780,
+ 0x2a7dcfde,
+ 0x438cb580,
+ 0x438cb780,
+ 0x2a00c021,
+ 0xc0017500,
+ 0xb7609122,
+ 0xc0214414,
+ 0x0d140d02,
+ 0x09c2c002,
+ 0x9a52ffb4,
+ 0x4494b760,
+ 0x0d02c021,
+ 0x09c20d04,
+ 0x9a4affb4,
+ 0x441cb740,
+ 0xaa59f210,
+ 0x4484b740,
+ 0xa8c1f250,
+ 0x4394b720,
+ 0x8021f310,
+ 0x82a3e210,
+ 0x2cfecfdf,
+ 0x4394b520,
+ 0x440cb580,
+ 0x448cb520,
+ 0x4394b720,
+ 0xc4019e4c,
+ 0x75002a00,
+ 0x91a2c000,
+ 0xaa45f250,
+ 0xa8cdf250,
+ 0x1a40c002,
+ 0x440cb580,
+ 0xb52018c0,
+ 0x9e4c448c,
+ 0x2c80c400,
+ 0xcbff7640,
+ 0xb5802a7e,
+ 0xc000438c,
+ 0xffd49142,
+ 0xb780986d,
+ 0xcbfe438c,
+ 0xb5802a7d,
+ 0xb75f438c,
+ 0x76807f74,
+ 0x9362c000,
+ 0x5a8cb760,
+ 0x2d410d3c,
+ 0xa9e6f048,
+ 0x5d0d9e53,
+ 0xc0211d04,
+ 0xffb43d00,
+ 0xb78099fd,
+ 0xb75f5a8c,
+ 0xf2487f64,
+ 0xb760a907,
+ 0xf0105a9c,
+ 0xf0588025,
+ 0xb780a265,
+ 0xc100438c,
+ 0x75002a00,
+ 0x9142c000,
+ 0x9ad0ffb4,
+ 0x438cb780,
+ 0x2a7dcefe,
+ 0x438cb580,
+ 0x430cb780,
+ 0x2a00c004,
+ 0xc0027500,
+ 0xd15192a2,
+ 0xb7200ed8,
+ 0xda08418a,
+ 0xba09aa21,
+ 0xba244002,
+ 0x0a0c4002,
+ 0xc0027048,
+ 0xb73f90f8,
+ 0xb7607eec,
+ 0xc0044e94,
+ 0x0d1e0982,
+ 0x0a12d011,
+ 0x2a7cc00e,
+ 0x7eecb59f,
+ 0x99beffb4,
+ 0x4f14b760,
+ 0x0982c002,
+ 0xffb40d0e,
+ 0xb74099b7,
+ 0xf2104e9c,
+ 0xb740aa39,
+ 0xf2084f04,
+ 0xb75fa8a1,
+ 0xf2507eec,
+ 0xc301a8a2,
+ 0xb5408120,
+ 0x70824e9c,
+ 0x8322c001,
+ 0x4f04b540,
+ 0x9286c000,
+ 0x62199e4b,
+ 0xf3106097,
+ 0xe2108821,
+ 0x09028aa3,
+ 0x7eecb55f,
+ 0x0a00c010,
+ 0x4e8cb580,
+ 0x0880c008,
+ 0x4f0cb520,
+ 0x438cb780,
+ 0x3a00c041,
+ 0x438cb580,
+ 0x438cb780,
+ 0x2a00c005,
+ 0xc0047500,
+ 0xf2109142,
+ 0xf210a9c2,
+ 0x09c2a945,
+ 0x0c820d42,
+ 0xffb40882,
+ 0xf2109992,
+ 0xc020aa79,
+ 0x75002a00,
+ 0x9302c000,
+ 0xa9aaf210,
+ 0xa931f210,
+ 0x0d2209a2,
+ 0x08820c82,
+ 0x999fffb4,
+ 0xa9aef210,
+ 0xa931f210,
+ 0x0d2209a2,
+ 0x08820c82,
+ 0x99b3ffb4,
+ 0x9180c000,
+ 0xa9aaf210,
+ 0xa931f210,
+ 0x0d2209c2,
+ 0x08820c82,
+ 0x996bffb4,
+ 0x438cb720,
+ 0xc1010203,
+ 0x75002a00,
+ 0x9122c001,
+ 0xa8eada48,
+ 0xa963f208,
+ 0x28feceff,
+ 0x438cb520,
+ 0xa8edda48,
+ 0xa968f20a,
+ 0xe2205c90,
+ 0xf20880ab,
+ 0x0203a967,
+ 0xc200588c,
+ 0xf3105a0c,
+ 0xe2108221,
+ 0xf20880a3,
+ 0xf208a0e2,
+ 0xf208a269,
+ 0xf210a0e5,
+ 0xf210a0c2,
+ 0xf210a0c9,
+ 0xc001a24d,
+ 0xf2109040,
+ 0xf210aa79,
+ 0xc020a8c1,
+ 0x75002a00,
+ 0xf21008c0,
+ 0xc000a0c1,
+ 0xf2109182,
+ 0xf210aa29,
+ 0x0a20a8ad,
+ 0xa229f210,
+ 0xc00008a0,
+ 0xf2109140,
+ 0xf210aa29,
+ 0x0a40a8ad,
+ 0xa229f210,
+ 0xf21008c0,
+ 0xb780a0ad,
+ 0xcffb438c,
+ 0xc0092a7e,
+ 0xb5803a00,
+ 0xb780438c,
+ 0x75004d8c,
+ 0x9142c000,
+ 0x0c82c040,
+ 0xc000b481,
+ 0x0a02c201,
+ 0xc000b481,
+ 0x438cb780,
+ 0x2a00c008,
+ 0xc0007500,
+ 0xc1119362,
+ 0xc04e0902,
+ 0x0df20940,
+ 0x0d020982,
+ 0x9b8dffb4,
+ 0x0902c111,
+ 0x0940c026,
+ 0x09820df6,
+ 0x0d42c004,
+ 0x9b83ffb4,
+ 0x438cb780,
+ 0x2a7dcff6,
+ 0x438cb580,
+ 0x438cb780,
+ 0x2a00c080,
+ 0xc0007500,
+ 0xb76091c2,
+ 0xba1b4192,
+ 0xc0144003,
+ 0xb7809aa0,
+ 0xcf7e438c,
+ 0xb5802a7d,
+ 0xb780438c,
+ 0xc010438c,
+ 0x75002a00,
+ 0x93e2c001,
+ 0x0902c121,
+ 0x0940c00e,
+ 0x09820d9e,
+ 0xffb40d02,
+ 0xc1219b3c,
+ 0xc0860902,
+ 0x0da20940,
+ 0x0d020982,
+ 0x9b33ffb4,
+ 0x7e74b75f,
+ 0xc0017680,
+ 0xf2109002,
+ 0x2a40aa79,
+ 0xc0007500,
+ 0xc1219342,
+ 0xc0020902,
+ 0x0da60900,
+ 0x0d060982,
+ 0x9b1fffb4,
+ 0x0902c121,
+ 0x0900c080,
+ 0x09820da6,
+ 0xffb40d16,
+ 0xb7809b16,
+ 0xc021438c,
+ 0xb5803a00,
+ 0xb780438c,
+ 0xcfee438c,
+ 0xc0202a7d,
+ 0xb5803a00,
+ 0xb780438c,
+ 0xc800438c,
+ 0x75002a00,
+ 0x92c2c000,
+ 0x7d6cb79f,
+ 0x4192b760,
+ 0xa97af210,
+ 0xba1b0189,
+ 0x5d114003,
+ 0x2d044d04,
+ 0x9bcdffb4,
+ 0x438cb780,
+ 0x2a7ec7fe,
+ 0x438cb580,
+ 0x438cb780,
+ 0x2a00c200,
+ 0xc0007500,
+ 0x0d8690c2,
+ 0xffb40982,
+ 0xb7809a2e,
+ 0xc041438c,
+ 0x75002a00,
+ 0x9342c000,
+ 0x0902c101,
+ 0x0940c002,
+ 0x09820da6,
+ 0xffb40d02,
+ 0xc1019ad2,
+ 0xc0800902,
+ 0x0da60940,
+ 0x0d120982,
+ 0x9ac9ffb4,
+ 0x438cb780,
+ 0x2a7ecfbf,
+ 0x438cb580,
+ 0x438cb720,
+ 0xc0090203,
+ 0x75002a00,
+ 0x9142c001,
+ 0x0902c101,
+ 0x0940c00e,
+ 0x28fecff7,
+ 0x438cb520,
+ 0x09820d9e,
+ 0xffb40d02,
+ 0xf2109aae,
+ 0xc020aa79,
+ 0x75002a00,
+ 0x91a2c000,
+ 0x0902c101,
+ 0x0940c006,
+ 0x09820da2,
+ 0xffb40d02,
+ 0xc0009a9e,
+ 0xc1019160,
+ 0xc0860902,
+ 0x0da20940,
+ 0x0d020982,
+ 0x9a93ffb4,
+ 0x0902c1c1,
+ 0x0940c006,
+ 0x09820dce,
+ 0xffb40d02,
+ 0xc0149802,
+ 0xc03099e3,
+ 0xb4c10c8a,
+ 0xb780c000,
+ 0x0c884d8c,
+ 0xc000b481,
+ 0x0882cc01,
+ 0xb4211c88,
+ 0xc034c000,
+ 0xb7209bfa,
+ 0xd0314d8c,
+ 0x75002a10,
+ 0xb55f0902,
+ 0xc0007f6c,
+ 0xc43a91c2,
+ 0xb4c10c82,
+ 0xb104c000,
+ 0xc0114220,
+ 0xc03a3a00,
+ 0xb4810c82,
+ 0xd211c000,
+ 0x75002a10,
+ 0x9342c000,
+ 0x0c8ac450,
+ 0xc000b4c1,
+ 0x4240b102,
+ 0xc00e9e53,
+ 0xb57f29fc,
+ 0x00877f6c,
+ 0xb4c11c84,
+ 0xb104c000,
+ 0x2a104220,
+ 0xc0007500,
+ 0x589090a4,
+ 0x7f6cb53f,
+ 0x4708b720,
+ 0x430cb780,
+ 0xb5807440,
+ 0xc0004d8c,
+ 0xc4389204,
+ 0xb4c10c82,
+ 0xb104c000,
+ 0x2a714220,
+ 0xc0383a04,
+ 0xb4810c82,
+ 0xc000c000,
+ 0x74429200,
+ 0x91a4c000,
+ 0x0c82c438,
+ 0xc000b4c1,
+ 0x4220b104,
+ 0xc0382a71,
+ 0xb4810c82,
+ 0xc030c000,
+ 0xb4c10c8a,
+ 0xc801c000,
+ 0xc0020a02,
+ 0xb4810a00,
+ 0x08bec000,
+ 0x0c94c004,
+ 0xc000b421,
+ 0x0d82c0c0,
+ 0x99f7ffb4,
+ 0x4112b760,
+ 0x428cb780,
+ 0x9c629ea4,
+ 0x468cb720,
+ 0x0caec034,
+ 0xb4215891,
+ 0x0a02c000,
+ 0xc0007500,
+ 0xb73f9244,
+ 0x74407f6c,
+ 0x91a2c000,
+ 0x091ed031,
+ 0x0dea2941,
+ 0x0d020982,
+ 0xc1211940,
+ 0xffb43900,
+ 0xc01499ec,
+ 0xb7859928,
+ 0x75005408,
+ 0x478cb780,
+ 0x90a2c000,
+ 0xb5c52a79,
+ 0xc03e5408,
+ 0xb4810c82,
+ 0xb780c000,
+ 0x8702508c,
+ 0x418ab720,
+ 0xb55f0a82,
+ 0x2a087de4,
+ 0x08847500,
+ 0x418ab520,
+ 0x9362c000,
+ 0x590cb720,
+ 0x4292b720,
+ 0x0a18d111,
+ 0xa881da08,
+ 0x9e4c0c84,
+ 0x4002ba24,
+ 0x71025891,
+ 0x4292b520,
+ 0x9138c000,
+ 0x420ab780,
+ 0x428ab5a0,
+ 0xb5800a04,
+ 0xb73f420a,
+ 0x76407d74,
+ 0x90e2ffe0,
+ 0x438cb780,
+ 0x7d3ed3ff,
+ 0x9024ffe0,
+ 0x7f6cb75f,
+ 0xffdf7480,
+ 0xb79f9384,
+ 0xb7bf7cee,
+ 0xb7df7d6e,
+ 0xb7ff7dee,
+ 0xc0027e6e,
+ 0x9c228c60,
+ 0xc004a605,
+ 0xc8298420,
+ 0xc3980ca2,
+ 0xc0300ce0,
+ 0xe133ac3d,
+ 0xc0388d00,
+ 0xc030a45d,
+ 0xc038ac3d,
+ 0xc010a45d,
+ 0xc018ac3d,
+ 0xc010a45d,
+ 0xc018ac25,
+ 0xb740a445,
+ 0xf0004504,
+ 0xb7a0aa41,
+ 0x9e2d590c,
+ 0x5a08c200,
+ 0x0940d093,
+ 0xe0209ea9,
+ 0x0dc2a96d,
+ 0x0d42c008,
+ 0xff9409c2,
+ 0xb7809b4e,
+ 0xf2085a8c,
+ 0x8502a8a1,
+ 0xa8a6f208,
+ 0xa103f208,
+ 0xa085f208,
+ 0xa929f208,
+ 0xa08af208,
+ 0xa92ef208,
+ 0xa8b2f208,
+ 0xa10df208,
+ 0xa8b1f248,
+ 0xa112f208,
+ 0xa096f208,
+ 0xa09af208,
+ 0xc036090a,
+ 0x08c00c92,
+ 0xa085f248,
+ 0xc000b441,
+ 0x1c8c0a16,
+ 0xc000b481,
+ 0x8c00f031,
+ 0x8d80e131,
+ 0xb55f9ea3,
+ 0x0d027ffc,
+ 0x4078b960,
+ 0xa103f208,
+ 0xd1229dba,
+ 0x9e2d5d0d,
+ 0xa8e5f029,
+ 0x2caed012,
+ 0xd1265c88,
+ 0x9e4a5908,
+ 0xaa4de038,
+ 0x28bc0d04,
+ 0x324250a8,
+ 0xffffa241,
+ 0xf01091c1,
+ 0xc036aa61,
+ 0xb4810c8e,
+ 0xb73fc000,
+ 0x1c847fec,
+ 0xc000b421,
+ 0x9afbc034,
+ 0x08c2c801,
+ 0x0890c112,
+ 0x0a42c809,
+ 0x0a60c5e6,
+ 0x0cbec032,
+ 0x428cb580,
+ 0xc000b421,
+ 0x0ce00a3e,
+ 0xc000b481,
+ 0xc0800882,
+ 0xb4210cc6,
+ 0xc801c000,
+ 0xc1120a42,
+ 0xc0320a18,
+ 0xb4810cc2,
+ 0x08c0c000,
+ 0xb4210cdc,
+ 0x0a02c000,
+ 0x0cc6c080,
+ 0xc000b481,
+ 0x08c2c801,
+ 0x0890c114,
+ 0x0cc6c032,
+ 0xc000b421,
+ 0x0cd80a44,
+ 0xc000b481,
+ 0xc0800882,
+ 0xb4210cc6,
+ 0xc801c000,
+ 0xc1140a42,
+ 0xc0320a18,
+ 0xb4810cca,
+ 0x08c8c000,
+ 0xb4210cd4,
+ 0x0a02c000,
+ 0x0cc6c080,
+ 0xc000b481,
+ 0x7aeeb79f,
+ 0x7b6eb7bf,
+ 0x8c60c004,
+ 0x08829c22,
+ 0x0c92c001,
+ 0x0c84c332,
+ 0xc000b421,
+ 0x4c8cb780,
+ 0x0a10873e,
+ 0x9c8bc040,
+ 0xc238b780,
+ 0xb7809c22,
+ 0x0a40468c,
+ 0x7520c00c,
+ 0x468cb580,
+ 0x48b4b340,
+ 0xb5408502,
+ 0x9c22469c,
+ 0x4c8cb780,
+ 0xa895f208,
+ 0xa88ef208,
+ 0xa905f208,
+ 0xa99df208,
+ 0xa906f288,
+ 0xa09df208,
+ 0xa096f208,
+ 0xa10df208,
+ 0xa185f208,
+ 0xa899f208,
+ 0xa892f208,
+ 0xa909f208,
+ 0xa981f248,
+ 0xa081f248,
+ 0xa09af208,
+ 0xa111f208,
+ 0xa189f208,
+ 0xa881f288,
+ 0xa995f248,
+ 0xa89ef248,
+ 0xa90df248,
+ 0xa085f288,
+ 0xa18df248,
+ 0xa999f248,
+ 0xa082f288,
+ 0xa115f248,
+ 0xa891f248,
+ 0xa191f248,
+ 0xa989f288,
+ 0xa89af288,
+ 0xa099f248,
+ 0xa10af288,
+ 0xa19df248,
+ 0xa99df288,
+ 0xa09ef288,
+ 0xa895f288,
+ 0xa892f288,
+ 0xa90df288,
+ 0xa099f288,
+ 0xa096f288,
+ 0xa111f288,
+ 0xa18df288,
+ 0xa60d9c22,
+ 0x0a42c801,
+ 0x0a00cb10,
+ 0x0ceac032,
+ 0xc000b481,
+ 0x08c2c801,
+ 0x0888c010,
+ 0xb4210c84,
+ 0xc008c000,
+ 0xc0020a42,
+ 0xb4811ce4,
+ 0xc008c000,
+ 0xc03008c2,
+ 0xb4220d0e,
+ 0xc450c000,
+ 0xc0080c82,
+ 0xb4811a40,
+ 0xb101c000,
+ 0xc0024220,
+ 0xb52038c0,
+ 0xc0504e0c,
+ 0xb4210c82,
+ 0xc0c0c000,
+ 0x09920d82,
+ 0x0d02c008,
+ 0x0902c008,
+ 0x988fffd4,
+ 0x0c86c450,
+ 0xb4810a02,
+ 0xb104c000,
+ 0xc0084220,
+ 0xc0300a02,
+ 0xb4820d0e,
+ 0x0c84c000,
+ 0x1a00c008,
+ 0xc000b481,
+ 0x4220b105,
+ 0x5a35c280,
+ 0x0882c801,
+ 0xc00e08c0,
+ 0xc2802afc,
+ 0xd0725a90,
+ 0x9ead2b4e,
+ 0x0c8ac030,
+ 0xc000b421,
+ 0x0c840a42,
+ 0xc000b481,
+ 0xb7c07740,
+ 0xc0015a8c,
+ 0xd0319002,
+ 0x0dea0ede,
+ 0x0d020982,
+ 0xd0512ac1,
+ 0xc1211950,
+ 0xff943900,
+ 0xf2489be2,
+ 0x018ba9c6,
+ 0x5a8dc280,
+ 0x9eaa1a84,
+ 0x3d00c021,
+ 0x9944ff94,
+ 0xaa45f248,
+ 0x16dcd010,
+ 0xf248024a,
+ 0xc450a245,
+ 0x0a020c86,
+ 0xc000b481,
+ 0x4220b104,
+ 0xc0340a6e,
+ 0xb4810c9e,
+ 0xb720c000,
+ 0xf248590c,
+ 0xb720aa45,
+ 0xd0534635,
+ 0xf2101940,
+ 0xc08088ab,
+ 0xc2800ca2,
+ 0xb5805a0c,
+ 0xb4a1420c,
+ 0xb785c000,
+ 0x75004608,
+ 0x9262c003,
+ 0x540cb721,
+ 0x528cb781,
+ 0x7c40c030,
+ 0xb5810a04,
+ 0xc000528c,
+ 0xc0349082,
+ 0xb72098c3,
+ 0xb720530c,
+ 0xb78141b5,
+ 0xb740528c,
+ 0x9e49442d,
+ 0x71046243,
+ 0x90b8c000,
+ 0xb5458506,
+ 0xb7854c18,
+ 0x75004708,
+ 0x5b14b7a0,
+ 0x9262c000,
+ 0x540cb7a0,
+ 0xa83df210,
+ 0xa9a1f208,
+ 0x9e840d86,
+ 0xf2089c62,
+ 0xf250a021,
+ 0x9eaba825,
+ 0x9e840986,
+ 0xb7859c62,
+ 0x75004708,
+ 0x9164c000,
+ 0x5414b760,
+ 0xa825f210,
+ 0x9c629e84,
+ 0xc0000281,
+ 0xb7859220,
+ 0x75004688,
+ 0x9102c000,
+ 0x548cb780,
+ 0xaa81f208,
+ 0x90c0c000,
+ 0x550cb780,
+ 0xaa8df208,
+ 0x568cb720,
+ 0x4129b780,
+ 0x03037500,
+ 0x9264c000,
+ 0x4708b785,
+ 0xc0007500,
+ 0xf25090c4,
+ 0x9ea4aa21,
+ 0xb7409c62,
+ 0xf210421c,
+ 0xe320aa35,
+ 0x9ea489a3,
+ 0xf2109c62,
+ 0x9eabaa39,
+ 0x9ea4018d,
+ 0xb7809c62,
+ 0xc080538c,
+ 0xd2c80ca6,
+ 0xb4a1aa91,
+ 0xc002c000,
+ 0xffb40d92,
+ 0x700a9bbb,
+ 0x9364ffff,
+ 0x09c20d86,
+ 0xc1210d0a,
+ 0xff940902,
+ 0xb780989e,
+ 0xf248590c,
+ 0xc0a1a992,
+ 0x0d040d02,
+ 0xff9409c2,
+ 0xc0c09889,
+ 0x09920d82,
+ 0x09420d42,
+ 0x9b89ffb4,
+ 0xc0300a42,
+ 0xb4810c8e,
+ 0xb79fc000,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0xb7009c22,
+ 0x76c0590c,
+ 0x0d820c02,
+ 0x9342c000,
+ 0x438cb780,
+ 0x0880d131,
+ 0x4033b720,
+ 0x4f94b500,
+ 0x5014b500,
+ 0x4994b500,
+ 0x76402c88,
+ 0x2a7ecdff,
+ 0x438cb580,
+ 0xc0008522,
+ 0x85129062,
+ 0x4b9cb540,
+ 0xb74074c0,
+ 0xc0005794,
+ 0xb78092e2,
+ 0x8502438c,
+ 0xa8c1d810,
+ 0x501cb540,
+ 0x431cb540,
+ 0x559cb541,
+ 0x4c1cb540,
+ 0x499cb540,
+ 0x4f8cb520,
+ 0x2a7ecdff,
+ 0x438cb580,
+ 0x0880d131,
+ 0x4033b720,
+ 0x430cb780,
+ 0x2c14d012,
+ 0xc0080089,
+ 0x75002a00,
+ 0x28fdcffa,
+ 0x430cb520,
+ 0x92c2c000,
+ 0x438cb780,
+ 0xc8007600,
+ 0xb5803a00,
+ 0xc000438c,
+ 0x850690e4,
+ 0x5818b545,
+ 0x9100c000,
+ 0x5808b785,
+ 0x3a080d86,
+ 0x5808b585,
+ 0x5808b745,
+ 0x2a22d011,
+ 0xc0007500,
+ 0xb7809102,
+ 0xc010438c,
+ 0xb5803a00,
+ 0xb780438c,
+ 0x75004c0c,
+ 0x90e2c000,
+ 0x430cb780,
+ 0xb5802a79,
+ 0xb720430c,
+ 0xb7204314,
+ 0x9e4c4b8c,
+ 0xd3f17902,
+ 0xc2002a2e,
+ 0xb5855a05,
+ 0xc0005808,
+ 0xd2119102,
+ 0xb5803e10,
+ 0xc000430c,
+ 0xcff690c0,
+ 0xb5202cfd,
+ 0xb7204314,
+ 0xd1114314,
+ 0x75002e10,
+ 0x90a2c000,
+ 0xb5408506,
+ 0x76004a1c,
+ 0x5e1dd0a2,
+ 0xd0020882,
+ 0x2a040892,
+ 0xc0007902,
+ 0xd1119102,
+ 0xb5803e10,
+ 0xc000430c,
+ 0x76c09120,
+ 0x90c2c000,
+ 0x3c80c020,
+ 0x4314b520,
+ 0x430cb720,
+ 0x2a12d011,
+ 0xc0007500,
+ 0xb78090e2,
+ 0x32184b8c,
+ 0x90c0c000,
+ 0x4b8cb780,
+ 0x22184a7d,
+ 0x430cb580,
+ 0x430cb720,
+ 0x2a14d011,
+ 0xc0007500,
+ 0xd0119102,
+ 0xb5803a12,
+ 0xc000430c,
+ 0x28f990a0,
+ 0x430cb520,
+ 0xa8c1d810,
+ 0x4f9cb740,
+ 0xaa45d810,
+ 0x88a3e210,
+ 0x5a11c200,
+ 0xc0037048,
+ 0xd1119036,
+ 0xda080a08,
+ 0xb720a882,
+ 0xb740430c,
+ 0x5c91498c,
+ 0xb7409e4c,
+ 0x38884394,
+ 0x430cb520,
+ 0xc1007088,
+ 0xb5403d00,
+ 0xc0004394,
+ 0xb7219278,
+ 0x9e54558c,
+ 0xc0017440,
+ 0xb5803a04,
+ 0xc000438c,
+ 0xc0119124,
+ 0xb5403d04,
+ 0x85064394,
+ 0x559cb541,
+ 0x088cd112,
+ 0x404bb780,
+ 0x4f8cb720,
+ 0x5a11c200,
+ 0xc0007048,
+ 0xb7809116,
+ 0xc001438c,
+ 0xb5803a10,
+ 0xb780438c,
+ 0xc200404b,
+ 0x1a085a11,
+ 0xc0007048,
+ 0xb7809116,
+ 0xc001438c,
+ 0xb5803a40,
+ 0xb720438c,
+ 0xd1115014,
+ 0xda080a08,
+ 0x9e4ca881,
+ 0x71025891,
+ 0x9102c000,
+ 0x438cb780,
+ 0x3a00c005,
+ 0x438cb580,
+ 0x438cb780,
+ 0x3a00c084,
+ 0x438cb580,
+ 0x91a0c000,
+ 0x430cb780,
+ 0x438cb720,
+ 0xb5802a75,
+ 0xcffa430c,
+ 0xb52028fd,
+ 0xb740438c,
+ 0xf012430c,
+ 0xc0002922,
+ 0xb7809102,
+ 0xc080438c,
+ 0xb5803a00,
+ 0xb780438c,
+ 0xb720498c,
+ 0xb7204b94,
+ 0x0a04500c,
+ 0x498cb580,
+ 0x78889e4c,
+ 0xb5200884,
+ 0xc000500c,
+ 0x76809222,
+ 0x91c4c000,
+ 0x470cb720,
+ 0x3a22d011,
+ 0x430cb580,
+ 0xb5408506,
+ 0x28f94c1c,
+ 0x470cb520,
+ 0x0a08d111,
+ 0xa881da08,
+ 0x5014b720,
+ 0x18c0c002,
+ 0x5a7fc080,
+ 0x5a71c200,
+ 0x9e4c0098,
+ 0x470cb740,
+ 0x71025893,
+ 0x478cb540,
+ 0x9044c001,
+ 0x438cb740,
+ 0xc0800205,
+ 0x75002a00,
+ 0x9342c000,
+ 0x4f94b720,
+ 0x76420205,
+ 0x3a00c201,
+ 0x438cb580,
+ 0x921cc000,
+ 0x0a0cd111,
+ 0xa881da08,
+ 0x9e4c0c8c,
+ 0x71025891,
+ 0x90d6c000,
+ 0x3900ca01,
+ 0x438cb540,
+ 0x5014b720,
+ 0x0a08d111,
+ 0xa881da08,
+ 0x58919e4c,
+ 0xc0007102,
+ 0xb7209278,
+ 0x0203438c,
+ 0x2a00c005,
+ 0xc0007500,
+ 0xc1019162,
+ 0xb5203880,
+ 0x8506438c,
+ 0x4a9cb540,
+ 0x4b1cb540,
+ 0xc0007600,
+ 0xb7809122,
+ 0x750c500c,
+ 0x9122c000,
+ 0x92a0c000,
+ 0x500cb780,
+ 0xc000750a,
+ 0xb7809204,
+ 0x75004a8c,
+ 0x9162c000,
+ 0x438cb780,
+ 0xb5408502,
+ 0xc4014a9c,
+ 0xb5803a00,
+ 0xb780438c,
+ 0x7506500c,
+ 0x9204c000,
+ 0x4b0cb780,
+ 0xc0007500,
+ 0xb7809162,
+ 0x8502438c,
+ 0x4b1cb540,
+ 0x3a00c800,
+ 0x438cb580,
+ 0x5014b720,
+ 0x0a08d111,
+ 0xa881da08,
+ 0x58919e4c,
+ 0xc0007102,
+ 0xb7809158,
+ 0x85024f8c,
+ 0x501cb540,
+ 0xb5800a04,
+ 0xb7804f8c,
+ 0x7500430c,
+ 0xc0008502,
+ 0xb7809144,
+ 0xc400438c,
+ 0x75002a00,
+ 0xe0018502,
+ 0x9d438522,
+ 0xb7859c22,
+ 0x75004688,
+ 0x570cb760,
+ 0x93a4c001,
+ 0x578cb720,
+ 0x432db780,
+ 0x75002a20,
+ 0x4208b740,
+ 0x5b9cb740,
+ 0x9082c000,
+ 0x5c9cb740,
+ 0xc0409d53,
+ 0xb720a8c5,
+ 0xd0315714,
+ 0xc0021a24,
+ 0xd0126a72,
+ 0xd231691d,
+ 0x9e4b0c90,
+ 0xb5407500,
+ 0xd2514035,
+ 0xb5800c90,
+ 0xd03c402d,
+ 0xb4114100,
+ 0xb7804e38,
+ 0xc0b8402d,
+ 0xc0007538,
+ 0xc05c90dc,
+ 0xb5408572,
+ 0xd011403d,
+ 0xd2726a2d,
+ 0xd23108b0,
+ 0xb54008b8,
+ 0xb5804035,
+ 0xd231404d,
+ 0xf2080a30,
+ 0x7500aa01,
+ 0x90c2c000,
+ 0x0cb6c03e,
+ 0xc000b481,
+ 0x0a30d251,
+ 0xa881f208,
+ 0x0caac03e,
+ 0xc000b421,
+ 0x0a38d231,
+ 0xaa01f208,
+ 0xc0007500,
+ 0xc2009122,
+ 0xc8015a40,
+ 0x0c903a00,
+ 0xc000b481,
+ 0x0a38d251,
+ 0xaa01f208,
+ 0xc0007500,
+ 0xc03e90c2,
+ 0xb4810ca2,
+ 0xd271c000,
+ 0xf2080a30,
+ 0xc03ea881,
+ 0xb4210c8a,
+ 0x9c22c000,
+ 0xc43ea685,
+ 0x0a020c92,
+ 0xc000b481,
+ 0x4220b103,
+ 0x560cb780,
+ 0xa885da08,
+ 0xa909da08,
+ 0xa189da08,
+ 0xa081da08,
+ 0xa105da08,
+ 0x0a020cd0,
+ 0xc000b481,
+ 0x4220b103,
+ 0x558cb780,
+ 0x560cb7c0,
+ 0xa885da08,
+ 0xda089ea5,
+ 0xda08a88a,
+ 0xc008a189,
+ 0x76c02d80,
+ 0xa081da08,
+ 0xa086da08,
+ 0x9102c00b,
+ 0x4708b780,
+ 0xb5800a04,
+ 0xc4504708,
+ 0x0a020ca6,
+ 0xc000b481,
+ 0x4220b103,
+ 0xc0310087,
+ 0x02072880,
+ 0x2a7cc00f,
+ 0x5861d0a4,
+ 0x59c1d228,
+ 0xcffe0287,
+ 0x0c882afc,
+ 0xb4810a02,
+ 0xb103c000,
+ 0xd1a64220,
+ 0x010759c1,
+ 0x297ccffe,
+ 0xb4810cbc,
+ 0xb103c000,
+ 0x00874220,
+ 0x668ab782,
+ 0x2880c0fc,
+ 0x5b19d0a4,
+ 0x4690b725,
+ 0x283ed0f1,
+ 0x9ea21208,
+ 0xb5027640,
+ 0xba12668a,
+ 0xc0004003,
+ 0xb78590e4,
+ 0x75004708,
+ 0x93a4c002,
+ 0x4708b785,
+ 0xe3317500,
+ 0xd01181b3,
+ 0xb7800127,
+ 0x7602578c,
+ 0xd0010c82,
+ 0xf2080c92,
+ 0x9e4ca899,
+ 0x78482884,
+ 0x5414b760,
+ 0x90e2c000,
+ 0xaa69d810,
+ 0xd8100a04,
+ 0xf010a269,
+ 0xf012a96b,
+ 0xf010a96c,
+ 0xe2108026,
+ 0xf01082a5,
+ 0xf010a269,
+ 0xb781a0ed,
+ 0x75007c08,
+ 0xd0020882,
+ 0x76020892,
+ 0xd0020a02,
+ 0x78480a42,
+ 0x90c2c000,
+ 0x8542c07c,
+ 0xa143da08,
+ 0xf0107602,
+ 0xc000a973,
+ 0xda1090c4,
+ 0xc000aa21,
+ 0xda089080,
+ 0xe310aa41,
+ 0xd81080a1,
+ 0xf010aa6d,
+ 0x7606a0f1,
+ 0xd8100a04,
+ 0xc000a26d,
+ 0xb7809124,
+ 0x0a044788,
+ 0x4788b580,
+ 0x9200c006,
+ 0xb5408502,
+ 0xc0064798,
+ 0xb7209160,
+ 0xb720578c,
+ 0xd3305414,
+ 0xb7800127,
+ 0xc301432d,
+ 0xb7408122,
+ 0x2a044545,
+ 0xf0107500,
+ 0xf3108027,
+ 0x05838221,
+ 0x454db580,
+ 0x90a2c001,
+ 0xc0007602,
+ 0xda1090c4,
+ 0xc000aa21,
+ 0xda089080,
+ 0xd810aa41,
+ 0x7606a27d,
+ 0x9082c001,
+ 0xc0007600,
+ 0x768091a4,
+ 0xa973d810,
+ 0x8d2ae002,
+ 0x8025f210,
+ 0xa271d810,
+ 0x92c0c000,
+ 0xd8507680,
+ 0xe002a967,
+ 0xc0008d26,
+ 0xda109160,
+ 0x7680aa21,
+ 0xa967d850,
+ 0xa27dd810,
+ 0x8d2ae002,
+ 0x8025f210,
+ 0xa265d850,
+ 0x4808b785,
+ 0xc0007500,
+ 0xb78092e2,
+ 0x7008410a,
+ 0x9244c000,
+ 0xb5458502,
+ 0xc43a4818,
+ 0x0a020c82,
+ 0xc000b481,
+ 0x4220b103,
+ 0x29fecfef,
+ 0x0c82c03a,
+ 0xc000b461,
+ 0x410ab780,
+ 0x08827008,
+ 0x0892d002,
+ 0x0a027606,
+ 0x0a42d001,
+ 0xc0007848,
+ 0x85069242,
+ 0x4818b545,
+ 0x0c82c43a,
+ 0xb4810a02,
+ 0xb103c000,
+ 0xc0114220,
+ 0xc03a3980,
+ 0xb4610c82,
+ 0x7780c000,
+ 0x9162c001,
+ 0xc0007600,
+ 0xda0892c4,
+ 0xf010aa41,
+ 0xd810a967,
+ 0xd810a8f5,
+ 0xf310a8fa,
+ 0x00828021,
+ 0xa0f5d810,
+ 0xd8100c84,
+ 0xf010a0fa,
+ 0xc000a265,
+ 0xda109280,
+ 0xf010aa21,
+ 0xd850a97b,
+ 0xd850a8e9,
+ 0xf310a8ee,
+ 0x00828021,
+ 0xa0e9d850,
+ 0xd8500c84,
+ 0xf010a0ee,
+ 0xd810a279,
+ 0xf010aa7d,
+ 0xf052a97f,
+ 0xf050a960,
+ 0xf310a9e7,
+ 0xf0508021,
+ 0xf010a96f,
+ 0xf310a27d,
+ 0xd8508223,
+ 0xf050a8e2,
+ 0xf010a261,
+ 0xe2108037,
+ 0x0c8480a1,
+ 0xa0e2d850,
+ 0xa265f050,
+ 0xa0edf050,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c40,
+ 0xb781a605,
+ 0xc008540c,
+ 0x75002a00,
+ 0x9282c000,
+ 0x540cb780,
+ 0x5b0cb720,
+ 0xa982f208,
+ 0x452db700,
+ 0x9c629e84,
+ 0x540cb781,
+ 0x400ab500,
+ 0x2a7dcff6,
+ 0x540cb581,
+ 0x540cb781,
+ 0x2a00c010,
+ 0xc0017500,
+ 0xb7a091c2,
+ 0xb7a05b0c,
+ 0xf2085414,
+ 0x058ba825,
+ 0x9c629e84,
+ 0xaa21f248,
+ 0x9c629ea4,
+ 0x530cb720,
+ 0x5210b725,
+ 0x422bb780,
+ 0x70489e49,
+ 0x9222c000,
+ 0xa9a1f210,
+ 0xa83df208,
+ 0x9e840d86,
+ 0xf2489c62,
+ 0xf210aa25,
+ 0x058ba021,
+ 0x9ea40986,
+ 0xb7819c62,
+ 0xcfee540c,
+ 0xb5812a7d,
+ 0xb721540c,
+ 0x0203540c,
+ 0x2a00c020,
+ 0xc0007500,
+ 0xcfde90c2,
+ 0xb52128fd,
+ 0xb79f540c,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xf8399c22,
+ 0xb781a205,
+ 0xc030540c,
+ 0xc0007d00,
+ 0xb7809162,
+ 0xc0084d8c,
+ 0x75002a00,
+ 0x9082c000,
+ 0x9b92fff4,
+ 0x4d94b760,
+ 0x9ad8ff94,
+ 0xc0600a02,
+ 0xb4810ca2,
+ 0xb760c000,
+ 0xfff44d94,
+ 0xb78099eb,
+ 0xc01c4788,
+ 0xc0007534,
+ 0x85069104,
+ 0x5418b545,
+ 0xb5408502,
+ 0xb7854798,
+ 0x75004608,
+ 0x9282c001,
+ 0x530cb780,
+ 0x4710b720,
+ 0xa88dda08,
+ 0x71029e4c,
+ 0x9044c001,
+ 0x540cb721,
+ 0xc0100203,
+ 0x75002a00,
+ 0x9102c000,
+ 0x3880c020,
+ 0x540cb521,
+ 0x9b5cfff4,
+ 0x540cb781,
+ 0x5208b725,
+ 0x4012b720,
+ 0xb5408502,
+ 0x08844718,
+ 0x5208b525,
+ 0x4112b520,
+ 0x3a00c018,
+ 0x540cb581,
+ 0x4d8cb780,
+ 0x7500c010,
+ 0x9084c000,
+ 0x9931fff4,
+ 0xaa1df9f8,
+ 0xa60d9c22,
+ 0x590cb720,
+ 0x0b10d132,
+ 0xa8c2da10,
+ 0x2e10d091,
+ 0x03037500,
+ 0x90a2c002,
+ 0x2e14d011,
+ 0xb5458502,
+ 0x0e824c18,
+ 0x5294b5a1,
+ 0x85067500,
+ 0x4618b545,
+ 0x9082c000,
+ 0x4698b545,
+ 0x2e10d111,
+ 0xc0007500,
+ 0xb5459082,
+ 0x9e4c4718,
+ 0x2a00c040,
+ 0xc0007500,
+ 0xb5459082,
+ 0xb7804798,
+ 0xf2085b0c,
+ 0xd131a88d,
+ 0x9eab0ae8,
+ 0x9c629e8c,
+ 0x5394b740,
+ 0xa8c1da10,
+ 0x4092b5a0,
+ 0xa921d208,
+ 0x0a60d231,
+ 0xa882f208,
+ 0x2880c010,
+ 0xd8107440,
+ 0xb520a14d,
+ 0xc0004614,
+ 0xb7819102,
+ 0xc040540c,
+ 0xb5813a00,
+ 0xb785540c,
+ 0x75004608,
+ 0x9042c005,
+ 0x540cb781,
+ 0x7d00c030,
+ 0x9082c000,
+ 0x9ae2fff4,
+ 0x5314b720,
+ 0xaa45f2c8,
+ 0x434db720,
+ 0xb7a07048,
+ 0x07035b14,
+ 0x9102c000,
+ 0xaa2df250,
+ 0x09e8d132,
+ 0x9c629ea4,
+ 0x408ab720,
+ 0xb5418502,
+ 0x74407c98,
+ 0x7d18b541,
+ 0x7d98b541,
+ 0x90e2c000,
+ 0xaa55da10,
+ 0xc0007048,
+ 0xb7859344,
+ 0xda104688,
+ 0xf210a9d6,
+ 0x8502a8a9,
+ 0xb5407500,
+ 0x850a409a,
+ 0x8d24e001,
+ 0x1d849d4f,
+ 0x9c629e8c,
+ 0xaa31f210,
+ 0x9ea40d8a,
+ 0xc0009c62,
+ 0xf21090e0,
+ 0x0d86aa31,
+ 0x9c629ea4,
+ 0x540cb781,
+ 0x408ab720,
+ 0x540cb7a0,
+ 0xb5458502,
+ 0xc0085218,
+ 0xb5813a00,
+ 0xf210540c,
+ 0x9eabaa21,
+ 0xb5200884,
+ 0x9ea4408a,
+ 0xb7209c62,
+ 0xb780568c,
+ 0x75004129,
+ 0xc0000303,
+ 0xf20892e4,
+ 0xf210a9a1,
+ 0x0d82a83d,
+ 0x9c629e84,
+ 0xa021f208,
+ 0xa825f250,
+ 0x09829eab,
+ 0x9c629e84,
+ 0xaa21da08,
+ 0x668ab582,
+ 0x9180c000,
+ 0x548cb720,
+ 0xaa49d210,
+ 0x44bbb740,
+ 0x8021f310,
+ 0x44abb580,
+ 0xa8c9d208,
+ 0xc0007440,
+ 0xb7809122,
+ 0x8506450c,
+ 0xa117f208,
+ 0x90c0c000,
+ 0x450cb780,
+ 0xa095f208,
+ 0x538cb720,
+ 0x41abb780,
+ 0x668ab582,
+ 0x400ab580,
+ 0x410ab580,
+ 0x9100c000,
+ 0x450cb780,
+ 0xa899da08,
+ 0x410ab520,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0xba1b9c22,
+ 0x9e594003,
+ 0xba039e5c,
+ 0xba124002,
+ 0x70404003,
+ 0xc0009e53,
+ 0x70069136,
+ 0x9158c000,
+ 0x72c4c812,
+ 0x9180c000,
+ 0x70029e51,
+ 0x90bcc000,
+ 0xc0009e82,
+ 0xcc1090a0,
+ 0x9e9a70c8,
+ 0x9c229e50,
+ 0x0787a61d,
+ 0x2efed3f1,
+ 0x09829eab,
+ 0x99edc014,
+ 0xd3f29eab,
+ 0x09862a8e,
+ 0x99e7c014,
+ 0x578cb720,
+ 0x5c1cb740,
+ 0x1952d014,
+ 0x432db780,
+ 0x290ed3f2,
+ 0x2a209e2d,
+ 0xc0207500,
+ 0x0183a96d,
+ 0x90c2c000,
+ 0x5d1cb740,
+ 0xa96dc020,
+ 0x0c9ec434,
+ 0xb4810a02,
+ 0xb107c000,
+ 0xd1224220,
+ 0xc0365e20,
+ 0x32280cfa,
+ 0xc000b481,
+ 0x5ca0d2a2,
+ 0x30d20c84,
+ 0xc000b421,
+ 0xc002093e,
+ 0xb4411ce0,
+ 0xb780c000,
+ 0x2a08508c,
+ 0xc00c7500,
+ 0xf0089262,
+ 0x2a20aa79,
+ 0xc00c7500,
+ 0xc00891a2,
+ 0xff940dc2,
+ 0x02819937,
+ 0x5884c280,
+ 0xd2a49e8d,
+ 0xba2d5b43,
+ 0xd2a24003,
+ 0x9e695e7f,
+ 0x5a75c200,
+ 0xd3220218,
+ 0xd2245c84,
+ 0x9e8e5a8f,
+ 0x4003ba36,
+ 0x5e7fd322,
+ 0xc2009e71,
+ 0x02185a75,
+ 0x5b0fd224,
+ 0x0c9ec034,
+ 0xb42108c2,
+ 0xc004c000,
+ 0xff940d92,
+ 0xb7809911,
+ 0xdffc420a,
+ 0x0a827d3e,
+ 0xc001280c,
+ 0xb7809004,
+ 0xdffc428a,
+ 0xc0007d3e,
+ 0xb7209344,
+ 0xb7805a0c,
+ 0xb720402b,
+ 0xb7205d94,
+ 0xc2005e0c,
+ 0xd2265a11,
+ 0xe2105904,
+ 0xe22080a3,
+ 0x0b0280ab,
+ 0xb5a00d02,
+ 0xb5a0402b,
+ 0xc001404b,
+ 0x74029100,
+ 0x4300d011,
+ 0x4500d021,
+ 0x9022c001,
+ 0x0dc2c008,
+ 0x98e0ff94,
+ 0xc2800281,
+ 0x9e8a5884,
+ 0x4003ba12,
+ 0x5e7fd122,
+ 0xc2009e51,
+ 0x02185a79,
+ 0x590bd224,
+ 0x5b43c280,
+ 0x5884c300,
+ 0x4002ba31,
+ 0x5a7fc300,
+ 0x5a79c200,
+ 0xc2000268,
+ 0xb7805b0b,
+ 0xdffc420a,
+ 0xb7207d3e,
+ 0xc000428a,
+ 0xdffc9144,
+ 0xd0117c7e,
+ 0xd0114100,
+ 0xc0044280,
+ 0xdffc91c2,
+ 0xc0007d3e,
+ 0xba2192e4,
+ 0xc000400a,
+ 0xb7409262,
+ 0xb7605d84,
+ 0x1a045e04,
+ 0x5904d226,
+ 0x9e2d9e55,
+ 0xa14ec830,
+ 0x010d9e3d,
+ 0xa34dc830,
+ 0x92a0c003,
+ 0x400aba09,
+ 0x9324c001,
+ 0x5a0cb720,
+ 0x5d84b740,
+ 0x402bb780,
+ 0xc2009e2d,
+ 0x1a045a11,
+ 0x5904d226,
+ 0x5e0cb7a0,
+ 0xa14ec830,
+ 0x402bb780,
+ 0xd8219d5d,
+ 0xc200a9c6,
+ 0x1a045a11,
+ 0x5904d226,
+ 0xa9c1d800,
+ 0xba1b0d02,
+ 0xc8304003,
+ 0xba1ba34d,
+ 0xfff44002,
+ 0xb7809ad2,
+ 0xba24428a,
+ 0xd2264002,
+ 0x0a045904,
+ 0xd2269d47,
+ 0x9d535904,
+ 0xa9a6c850,
+ 0xa985ca50,
+ 0xc0010d02,
+ 0xb7409200,
+ 0xd0115d84,
+ 0xd2281a12,
+ 0xd0a65984,
+ 0x9e2d5904,
+ 0x5e0cb7a0,
+ 0x0a12d011,
+ 0xa162c820,
+ 0xa9cec830,
+ 0x5904d226,
+ 0xc8309dd9,
+ 0xc820a9cd,
+ 0xba1ba361,
+ 0xba1b4003,
+ 0xfff44002,
+ 0xb7809aa2,
+ 0xba24428a,
+ 0xd2264002,
+ 0x0a045904,
+ 0xd2269d47,
+ 0x9eb25904,
+ 0xc8509d53,
+ 0xca50a9a6,
+ 0xba28a985,
+ 0xba1b4002,
+ 0xba1b4003,
+ 0xfff44002,
+ 0xba109a8a,
+ 0xd2a24002,
+ 0x0d725e04,
+ 0xba04124a,
+ 0x9e544002,
+ 0x7000c414,
+ 0x4002ba09,
+ 0x7048c410,
+ 0x00037400,
+ 0x9076c000,
+ 0xba001003,
+ 0xd3224002,
+ 0xd0205e04,
+ 0x124400d0,
+ 0x4002ba04,
+ 0xc4149e54,
+ 0xba097000,
+ 0xc4104002,
+ 0xd0a27048,
+ 0x9dc95e7d,
+ 0x00037400,
+ 0x0494c001,
+ 0xba295c87,
+ 0xc0004003,
+ 0x10039076,
+ 0x4002ba00,
+ 0xc2000220,
+ 0x024258fd,
+ 0x5a07c200,
+ 0x2efcc7fe,
+ 0x2a7cc7fe,
+ 0xc034093e,
+ 0xb4410c9e,
+ 0xd2a2c000,
+ 0xc2005c88,
+ 0xc0825a48,
+ 0xcffe0c92,
+ 0x32c228fc,
+ 0xc000b4a1,
+ 0x0d16c082,
+ 0xc000b4a2,
+ 0xb4a10c88,
+ 0x0d08c000,
+ 0xc000b4a2,
+ 0xb4a10c88,
+ 0x0d08c000,
+ 0xc000b4a2,
+ 0xb4a10c88,
+ 0x0d08c000,
+ 0xc000b4a2,
+ 0xb4a10c88,
+ 0x0d08c000,
+ 0xc000b4a2,
+ 0xb4a10c88,
+ 0x0d08c000,
+ 0xc000b4a2,
+ 0xb4a10c88,
+ 0x0d08c000,
+ 0xc000b4a2,
+ 0xb4a10c88,
+ 0x0d08c000,
+ 0xc000b4a2,
+ 0x418ab780,
+ 0x7d3edffc,
+ 0x9184c000,
+ 0xc0340a4a,
+ 0xb4810c9e,
+ 0xc082c000,
+ 0x9e790d5a,
+ 0xc000b422,
+ 0x0c9ec034,
+ 0xc000b4e1,
+ 0x7e6eb79f,
+ 0x7eeeb7bf,
+ 0x7f6eb7df,
+ 0x7feeb7ff,
+ 0x8c00c002,
+ 0xc01c9c22,
+ 0x9e587cfe,
+ 0x93e4c000,
+ 0x1a02d011,
+ 0xc0007506,
+ 0xd01193f4,
+ 0x75061a0a,
+ 0x90d2c000,
+ 0x5904d026,
+ 0x9120c001,
+ 0x1a02d031,
+ 0xc000751e,
+ 0xd03390d2,
+ 0xc0010900,
+ 0xc0009000,
+ 0xd0535a04,
+ 0xc0001940,
+ 0xd0119340,
+ 0x75061a02,
+ 0x90b2c000,
+ 0xc0008522,
+ 0xd0119240,
+ 0x75261a0a,
+ 0x9172c000,
+ 0x0a0ad031,
+ 0x58fdc200,
+ 0xd2260242,
+ 0xc0005907,
+ 0xd0139080,
+ 0x9d43190c,
+ 0x00009c22,
+ 0x87c2c809,
+ 0x0c20b060,
+ 0x87c2c809,
+ 0x0a60b060,
+ 0x87c2c809,
+ 0x09c0b060,
+};
+
+unsigned long aui32MPG4_MTXTOPAZFWData[] = {
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x809000b0,
+ 0x8090019c,
+ 0x82883914,
+ 0x82883674,
+ 0x828836ac,
+ 0x828836e8,
+ 0x82883724,
+ 0x82883754,
+ 0x8288377c,
+ 0x828837dc,
+ 0x828837e4,
+ 0x828837ec,
+ 0x82883ad8,
+ 0x82883aa8,
+ 0x82883988,
+ 0x828837f4,
+ 0x828839d8,
+ 0x82883a20,
+ 0x82883a1c,
+ 0x82883a68,
+ 0x82883c70,
+ 0x82883c4f,
+ 0x82883c50,
+ 0x82883c2f,
+ 0x82883c30,
+ 0x82883b78,
+ 0x82883bd4,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x809006dc,
+ 0x80901be8,
+ 0x809024f0,
+ 0x809006e0,
+ 0x80903bf8,
+ 0x8090411c,
+ 0x8090072c,
+ 0x00000000,
+ 0x80901da8,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x809006dc,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0xa0101162,
+ 0xa0100174,
+ 0xa0101102,
+ 0xa0100184,
+ 0xa0101104,
+ 0xa0100194,
+ 0xa0101106,
+ 0xa01001a4,
+ 0xa01001a2,
+ 0xa01001a2,
+ 0xa0101182,
+ 0xa0100142,
+ 0xa0101122,
+ 0xa0100152,
+ 0x80101124,
+ 0x80101126,
+ 0x80101144,
+ 0x80101146,
+ 0x80100176,
+ 0x80100186,
+ 0x80100196,
+ 0x801001a6,
+ 0x801001b6,
+ 0x801001b4,
+ 0x80300364,
+ 0x8010b100,
+ 0x80105160,
+ 0x80100102,
+ 0x00000b00,
+ 0x00000b00,
+ 0x00000ba0,
+ 0x00000ba0,
+ 0x00000003,
+ 0x00000002,
+ 0x00000002,
+ 0x00000001,
+ 0x00000001,
+ 0x00000001,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000005,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x01010000,
+ 0x03030202,
+ 0x05040404,
+ 0x06060505,
+ 0x07070706,
+ 0x08080807,
+ 0x09090908,
+ 0x000a0a09,
+ 0x02010000,
+ 0x04040303,
+ 0x06060505,
+ 0x08080707,
+ 0x0a0a0909,
+ 0x0b0b0b0b,
+ 0x0c0c0c0c,
+ 0x000d0d0d,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x1234baac,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+};
diff --git a/fw/MPG4Firmware_bin.h b/fw/MPG4Firmware_bin.h
new file mode 100644
index 0000000..57c348c
--- /dev/null
+++ b/fw/MPG4Firmware_bin.h
@@ -0,0 +1,35 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+// This file was automatically generated from ../release/MPG4Firmware.dnl using dnl2c.
+
+extern unsigned long aui32MPG4_MTXTOPAZFWText[];
+extern unsigned long ui32MPG4_MTXTOPAZFWTextSize;
+
+extern unsigned long aui32MPG4_MTXTOPAZFWData[];
+extern unsigned long ui32MPG4_MTXTOPAZFWDataSize;
+
+extern unsigned long ui32MPG4_MTXTOPAZFWDataLocation;
+
diff --git a/fw/MPG4MasterFirmwareCBR_bin.c b/fw/MPG4MasterFirmwareCBR_bin.c
new file mode 100644
index 0000000..64eed58
--- /dev/null
+++ b/fw/MPG4MasterFirmwareCBR_bin.c
@@ -0,0 +1,4872 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+
+// This file was automatically generated from ../release/MPG4MasterFirmwareCBR.dnl using dnl2c.
+
+unsigned char *szMPG4MasterFirmwareCBR_buildtag = "BUILD_TOPAZ_SC_1_00_00_0318";
+
+unsigned long ui32MPG4CBR_MasterMTXTOPAZFWTextSize = 4209;
+unsigned long ui32MPG4CBR_MasterMTXTOPAZFWDataSize = 604;
+unsigned long ui32MPG4CBR_MasterMTXTOPAZFWTextRelocSize = 0;
+unsigned long ui32MPG4CBR_MasterMTXTOPAZFWDataRelocSize = 0;
+
+unsigned long ui32MPG4CBR_MasterMTXTOPAZFWTextOrigin = 0x80900000;
+unsigned long ui32MPG4CBR_MasterMTXTOPAZFWDataOrigin = 0x82884200;
+
+unsigned long aui32MPG4CBR_MasterMTXTOPAZFWText[] = {
+ 0x9040c001,
+ 0xc80993fe,
+ 0xc0000e42,
+ 0xc8290e00,
+ 0xc4b68422,
+ 0xc8298440,
+ 0xc4208622,
+ 0x9e838600,
+ 0xc8099e43,
+ 0xc8360d42,
+ 0xc8090d20,
+ 0xc8360942,
+ 0xc8090960,
+ 0xc00a0e42,
+ 0xc8090e40,
+ 0xc00e87c2,
+ 0x9c1887d0,
+ 0x0c020802,
+ 0x09820d82,
+ 0x09020d02,
+ 0x08820c82,
+ 0x9320fffe,
+ 0xa401c838,
+ 0x0dc2c809,
+ 0x0de0c834,
+ 0x0e42c809,
+ 0x0b46b080,
+ 0x7e74b77f,
+ 0xa48d0882,
+ 0xffff9ff3,
+ 0x9d1393e0,
+ 0xf8398081,
+ 0x0707a205,
+ 0x06850307,
+ 0x03839e97,
+ 0x0fa0060f,
+ 0x018d058d,
+ 0x9c62008f,
+ 0x9340ffff,
+ 0x0ea0060b,
+ 0xffff9c62,
+ 0x058d93a0,
+ 0xb700018d,
+ 0xb780550c,
+ 0x9c015494,
+ 0x0687a605,
+ 0x0ea0060b,
+ 0xffff9c62,
+ 0xf9f893a0,
+ 0xf9f8aa9d,
+ 0x9c22aa1d,
+ 0xa6059c22,
+ 0x85028420,
+ 0xb55f0a82,
+ 0x850a7f7c,
+ 0x9c89c037,
+ 0x9c80c971,
+ 0x75002a08,
+ 0x9184c000,
+ 0x997dc014,
+ 0x458cb780,
+ 0xc0007500,
+ 0x0d8290a4,
+ 0x990ec054,
+ 0x7f6cb79f,
+ 0xc0007500,
+ 0xc05490e4,
+ 0x0d8a9916,
+ 0x9904c054,
+ 0x8d80e032,
+ 0x99b6c014,
+ 0x0800e000,
+ 0x91c4c000,
+ 0x9ac0c014,
+ 0x458cb780,
+ 0x2a797402,
+ 0x458cb580,
+ 0x90e4c000,
+ 0x9100c000,
+ 0xc0149e83,
+ 0x75409a33,
+ 0x9162fffe,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x9c228c60,
+ 0x85028702,
+ 0x6c18b543,
+ 0x6c98b543,
+ 0x6d18b543,
+ 0x7018b543,
+ 0x7098b543,
+ 0x7118b543,
+ 0x7518b543,
+ 0x7598b543,
+ 0x7618b543,
+ 0x7c18b543,
+ 0x4804b540,
+ 0x4884b540,
+ 0x4904b540,
+ 0x4984b540,
+ 0x4a04b540,
+ 0x4c04b540,
+ 0x4c84b540,
+ 0x4d04b540,
+ 0x4202b540,
+ 0x4282b540,
+ 0x5004b540,
+ 0x7b84b540,
+ 0x4e84b540,
+ 0x4702b540,
+ 0xa6059c22,
+ 0xfff48420,
+ 0x0d8a9b87,
+ 0x98aac054,
+ 0x9bc6fff4,
+ 0x98b5c054,
+ 0x0cd2c420,
+ 0xb4810a02,
+ 0xb105c000,
+ 0x0d8a4220,
+ 0x8d80e031,
+ 0x9aebc014,
+ 0x0922c829,
+ 0x0920c4b6,
+ 0x7f6cb73f,
+ 0x2a5ed071,
+ 0x450cb580,
+ 0x2a80c01e,
+ 0xf0088502,
+ 0x7102a8c2,
+ 0x5a95c280,
+ 0x460cb5a0,
+ 0x4434b341,
+ 0xb5407640,
+ 0xb520459c,
+ 0xc000448c,
+ 0xd01190c2,
+ 0xf0080e12,
+ 0xb780a241,
+ 0xc807558c,
+ 0xc57008c2,
+ 0xc0320880,
+ 0xb5800caa,
+ 0xb421538c,
+ 0x0a2ac000,
+ 0xb4810cf4,
+ 0x1a28c000,
+ 0xc0020902,
+ 0xb96008ba,
+ 0xc2004078,
+ 0xd2240a00,
+ 0xb441588b,
+ 0xce00c000,
+ 0xffff0a11,
+ 0xe0009301,
+ 0xffff1884,
+ 0xc8079244,
+ 0xc5760a42,
+ 0xc0320a00,
+ 0xb4810caa,
+ 0x0a02c000,
+ 0x09020882,
+ 0xb9600884,
+ 0xc2004078,
+ 0xd2240a00,
+ 0xb441588b,
+ 0xce00c000,
+ 0xffff0a11,
+ 0xc0049301,
+ 0xffff745a,
+ 0x0a02923c,
+ 0x0c9ec034,
+ 0xc000b481,
+ 0x9b0dfff4,
+ 0xb79f0802,
+ 0xb7bf7eee,
+ 0x8c607f6e,
+ 0x9e549c22,
+ 0x0c82c040,
+ 0xb4219e59,
+ 0xc040c000,
+ 0xb4820d02,
+ 0x9c22c000,
+ 0x2d7cc00e,
+ 0x29e0c00e,
+ 0x9e545d30,
+ 0x0c82c040,
+ 0xb46131b8,
+ 0xc040c000,
+ 0xb4420d02,
+ 0x9c22c000,
+ 0x8420a60d,
+ 0x06870703,
+ 0x5c8dc280,
+ 0xd0a21c84,
+ 0x02875ca0,
+ 0x0a5ed011,
+ 0x5a0dc200,
+ 0xc2001a04,
+ 0x5cd05a30,
+ 0x9e4c3098,
+ 0xc0320405,
+ 0x30980c8a,
+ 0x3880c801,
+ 0xc000b421,
+ 0xc8019ea9,
+ 0xc0020a02,
+ 0x65530a00,
+ 0x0c8ac030,
+ 0xc000b481,
+ 0x0882c002,
+ 0xb4210c84,
+ 0x9e93c000,
+ 0x5f09d022,
+ 0x5d0d9e53,
+ 0xfff41d04,
+ 0xc2809bb4,
+ 0x1e845e91,
+ 0x5e84c280,
+ 0x1a849e6c,
+ 0x5a90c280,
+ 0x3a80c181,
+ 0x09820d8a,
+ 0x314a0d02,
+ 0x9baefff4,
+ 0x0d82c0c0,
+ 0xc0020992,
+ 0xc0020d02,
+ 0xc0340902,
+ 0x0a0a9bd4,
+ 0x0c9ec034,
+ 0xc000b481,
+ 0x75bf1b04,
+ 0xc0008502,
+ 0x9dcf9202,
+ 0x7f7cb55f,
+ 0x9ba7c034,
+ 0xa045f231,
+ 0x7f7cb75f,
+ 0x75bf1b04,
+ 0xffff8510,
+ 0xc0029284,
+ 0xc0300a42,
+ 0xb4810c8e,
+ 0xb79fc000,
+ 0xb7bf7e6e,
+ 0xb7df7eee,
+ 0xc0027f6e,
+ 0x9c228c00,
+ 0xf8399c22,
+ 0xb780a285,
+ 0x0986450c,
+ 0x0d0270c8,
+ 0x9096c001,
+ 0x4594b760,
+ 0x08020c06,
+ 0x0902c1cc,
+ 0x19c4d010,
+ 0x9e5d9e44,
+ 0x508cc200,
+ 0xc0007942,
+ 0xd1249202,
+ 0xc400588b,
+ 0xb4013c80,
+ 0xb104c000,
+ 0x9e554220,
+ 0x750230d2,
+ 0x4822b321,
+ 0xc00c9e8a,
+ 0x09840900,
+ 0x9101ffff,
+ 0x4594b540,
+ 0xaa9df9f8,
+ 0xc2009c22,
+ 0xc0378502,
+ 0xc1719c89,
+ 0xc8179c80,
+ 0x9c229c80,
+ 0xb780a605,
+ 0x9e5d458c,
+ 0xc000790a,
+ 0xfff49162,
+ 0xfff49bf0,
+ 0xb7809bbe,
+ 0x790a458c,
+ 0x9324ffff,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xc002a61d,
+ 0x9e5d8400,
+ 0xaa21f208,
+ 0xc0017500,
+ 0xc4209004,
+ 0x0a020cda,
+ 0xc000b481,
+ 0x4220b101,
+ 0xb4811c84,
+ 0xb106c000,
+ 0xb4814220,
+ 0xb107c000,
+ 0x008f4220,
+ 0xc000b481,
+ 0x4240b106,
+ 0xc000b481,
+ 0x4240b105,
+ 0x2a6ed1f1,
+ 0xb40d7516,
+ 0xf2084622,
+ 0x7480a921,
+ 0x92c2c000,
+ 0x8c80e092,
+ 0x098a0dc2,
+ 0x0d02c002,
+ 0x9b0afff4,
+ 0x7cecb7df,
+ 0x7c6cb79f,
+ 0x7d6cb7ff,
+ 0x7df4b7df,
+ 0x7e74b7bf,
+ 0xa221f208,
+ 0x5aa1c300,
+ 0x2afcc00e,
+ 0x0d869ea9,
+ 0xfff455e4,
+ 0xd3129ba3,
+ 0xc1c068d1,
+ 0x5c8b0c80,
+ 0xc000b4c1,
+ 0x6951d312,
+ 0x0d10c1c0,
+ 0xb4e25d0b,
+ 0xd312c000,
+ 0x9e7468d1,
+ 0x0ca0c1c0,
+ 0xb4815c8b,
+ 0xd312c000,
+ 0x9e6c6951,
+ 0x0d30c1c0,
+ 0xb4825d0b,
+ 0xd312c000,
+ 0x0a0268d1,
+ 0x0cc0c1c0,
+ 0xc4005c8b,
+ 0xb4813c80,
+ 0xb106c000,
+ 0xcfff4220,
+ 0xd3122b7c,
+ 0xc1c068d1,
+ 0x5c8b0cc0,
+ 0xc000b4c1,
+ 0x458cb720,
+ 0xc2000a04,
+ 0x000b5214,
+ 0xb5203098,
+ 0xb79f458c,
+ 0xb7bf7c6e,
+ 0xb7df7cee,
+ 0xb7ff7d6e,
+ 0xc0047dee,
+ 0x9c228c00,
+ 0xa205f839,
+ 0x0e30f011,
+ 0x919cc000,
+ 0x9ea10a04,
+ 0x55e40d86,
+ 0xc0343d88,
+ 0x0d8a9aaf,
+ 0x9aacc034,
+ 0xaa1df9f8,
+ 0xa6059c22,
+ 0x0a42c801,
+ 0x0a00c010,
+ 0x2ebed3f2,
+ 0x0caac032,
+ 0xc000b481,
+ 0x0cf408aa,
+ 0xc000b421,
+ 0x560cb780,
+ 0x0c92c080,
+ 0xa881f208,
+ 0xc000b421,
+ 0x560cb780,
+ 0xf2080c88,
+ 0xb421a889,
+ 0xb780c000,
+ 0x0c84560c,
+ 0xa88df208,
+ 0xc000b421,
+ 0x1c980902,
+ 0xc000b441,
+ 0x560cb780,
+ 0xf2080c90,
+ 0xb421a885,
+ 0xb7a0c000,
+ 0x0dd2560c,
+ 0x9a67c034,
+ 0xaa25f208,
+ 0xffff7008,
+ 0x0daa9344,
+ 0x0d060982,
+ 0x0902c121,
+ 0x9a4afff4,
+ 0x4714b760,
+ 0x0d02c021,
+ 0x09c20d04,
+ 0x9a37fff4,
+ 0x4714b760,
+ 0x0d0609c2,
+ 0x9a31fff4,
+ 0x09820daa,
+ 0xc1010d02,
+ 0xfff40902,
+ 0x0d929a35,
+ 0x9a43c034,
+ 0xaa25f208,
+ 0xffff7008,
+ 0x77409344,
+ 0x90a2c000,
+ 0xc0340d8e,
+ 0x0d8a9a45,
+ 0x9a42c034,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xc470a60d,
+ 0x0a020c8e,
+ 0xc000b481,
+ 0x4220b101,
+ 0x560cb780,
+ 0xa085f208,
+ 0x0a021c8c,
+ 0xc000b481,
+ 0x4220b105,
+ 0x2b5ed1f1,
+ 0x560cb780,
+ 0xcff09ead,
+ 0xc2802e80,
+ 0xf2085ea1,
+ 0xc280a281,
+ 0x2a845a9d,
+ 0x0a020c84,
+ 0xc000b481,
+ 0x4220b101,
+ 0x468cb520,
+ 0xb4810c84,
+ 0xb101c000,
+ 0xb5204220,
+ 0xc070470c,
+ 0xb4810c8e,
+ 0x0882c000,
+ 0xb4211c8c,
+ 0x0c90c000,
+ 0xc000b481,
+ 0xb4211c8c,
+ 0x0c84c000,
+ 0xc000b481,
+ 0x6304b740,
+ 0x5908d326,
+ 0xe0309e2d,
+ 0x9ea4aa4d,
+ 0xb7809c62,
+ 0x7740560c,
+ 0x9ea98502,
+ 0xd0010d82,
+ 0xf2080db2,
+ 0x2596a10f,
+ 0x9b3ffff4,
+ 0xc0700a06,
+ 0xb4810c82,
+ 0x000dc000,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x4514b760,
+ 0xc0020a7f,
+ 0x9ea18502,
+ 0x89afe220,
+ 0xfff355ad,
+ 0xc01c91a0,
+ 0xc0007ebe,
+ 0xd1a29244,
+ 0xc0905e08,
+ 0xd2240a00,
+ 0x08825909,
+ 0x3d00c400,
+ 0xc000b422,
+ 0x4220b104,
+ 0xffff7500,
+ 0xc1809364,
+ 0xc0905c88,
+ 0x5c890c80,
+ 0xc000b461,
+ 0xc1809c22,
+ 0xc0905c88,
+ 0x5c890c80,
+ 0x3c80c400,
+ 0xb4810a02,
+ 0xb101c000,
+ 0xf0084220,
+ 0x5d88a0e1,
+ 0x0d80c090,
+ 0xb4835d89,
+ 0x9c22c000,
+ 0xd3129e5b,
+ 0x0a0268b1,
+ 0x0cc0c1c0,
+ 0xc4005c8b,
+ 0xb4813c80,
+ 0xb102c000,
+ 0xb7604220,
+ 0xd3125a14,
+ 0x85026931,
+ 0xb9609e51,
+ 0xc1c04070,
+ 0xf03108e0,
+ 0xd0a4aa65,
+ 0xb4815889,
+ 0x0890c000,
+ 0xffff8510,
+ 0xc1c09301,
+ 0xe2108560,
+ 0xb76080ad,
+ 0xc0015c14,
+ 0xce3e3904,
+ 0xb9608521,
+ 0xf0314048,
+ 0xd0a4aa65,
+ 0xb4815889,
+ 0x0890c000,
+ 0xffff8510,
+ 0xe2209301,
+ 0xb780812d,
+ 0xc001590c,
+ 0xc1c03908,
+ 0x5d090d60,
+ 0xa885dac8,
+ 0xc000b422,
+ 0x68b1d312,
+ 0x0cc0c1c0,
+ 0xb4415c8b,
+ 0x9c22c000,
+ 0x508cb740,
+ 0x6cb1d312,
+ 0xc1c00a02,
+ 0x5c8b0cc0,
+ 0x3c80c400,
+ 0xc000b481,
+ 0x4220b101,
+ 0x6cb1d312,
+ 0x0cf0c1ca,
+ 0xb4415c8b,
+ 0xc00cc000,
+ 0xc0016d82,
+ 0xc1c038c0,
+ 0x5d8b0dc0,
+ 0xc000b423,
+ 0x84209c22,
+ 0xe0318502,
+ 0x09068d80,
+ 0x7f7cb55f,
+ 0x0cd2c472,
+ 0xb4810a02,
+ 0xb101c000,
+ 0x9e8a4220,
+ 0xc0010203,
+ 0x75002a40,
+ 0x9362c000,
+ 0x68a1d312,
+ 0xc1ca0a02,
+ 0x5c8b0cf0,
+ 0x3c80c400,
+ 0xc000b481,
+ 0x4220b101,
+ 0xa0e1f008,
+ 0x509cb740,
+ 0x7f6cb79f,
+ 0xf3109e51,
+ 0xcfff8021,
+ 0xb58028be,
+ 0xd312508c,
+ 0xc1c068a1,
+ 0x5c8b0cc0,
+ 0xc000b421,
+ 0x9c228c20,
+ 0xc006a605,
+ 0x87028420,
+ 0xc4720c06,
+ 0x0a020cd2,
+ 0xc000b481,
+ 0x4220b105,
+ 0x020b9eaa,
+ 0x2a04c001,
+ 0xc0017500,
+ 0xd31190c2,
+ 0xe1b16c81,
+ 0xb7608d00,
+ 0x09825a14,
+ 0x4070b960,
+ 0x08e0c1c0,
+ 0x5889d0a4,
+ 0x3c80c400,
+ 0xc000b461,
+ 0x4220b104,
+ 0xa245f029,
+ 0x87100890,
+ 0x9281ffff,
+ 0xa973f050,
+ 0x796cb79f,
+ 0xf3109e55,
+ 0xcfff8021,
+ 0xf0502afa,
+ 0x020ba271,
+ 0x2a08c001,
+ 0xd3127500,
+ 0xc0026e81,
+ 0xe0b19082,
+ 0xc1c08d00,
+ 0xe1108760,
+ 0xb74082a3,
+ 0x09825c14,
+ 0x4048b960,
+ 0xd0a49e93,
+ 0xc4005889,
+ 0xb4613c80,
+ 0xb104c000,
+ 0xf0294220,
+ 0x0890a245,
+ 0x92a1ffff,
+ 0x590cb780,
+ 0xa943f010,
+ 0xa891da08,
+ 0xaa61f010,
+ 0xa95cf012,
+ 0xa9c7f050,
+ 0x8021f310,
+ 0xa94bd850,
+ 0xd8101884,
+ 0xf010a0c9,
+ 0xb79fa241,
+ 0xb73f7b6a,
+ 0xb73f7eec,
+ 0xf3107ff4,
+ 0xe2108021,
+ 0xe22082a3,
+ 0xcfff80bb,
+ 0xd8502af6,
+ 0xf010a249,
+ 0xf050a0dd,
+ 0x020ba0c6,
+ 0x2a10c001,
+ 0xc0007500,
+ 0xc01490c2,
+ 0xcfff9838,
+ 0xc1c02aee,
+ 0xc2800ec0,
+ 0xb4a15c8b,
+ 0xb79fc000,
+ 0xb7bf78ee,
+ 0xc006796e,
+ 0x9c228c60,
+ 0x6cb1d312,
+ 0xc1c00a02,
+ 0x5c8b0cc0,
+ 0x3c80c400,
+ 0xc000b481,
+ 0x4220b103,
+ 0x5b14b740,
+ 0x6d31d311,
+ 0x4058b960,
+ 0xc1c00085,
+ 0xf03108e0,
+ 0xd0a4aa45,
+ 0xb4815889,
+ 0x0890c000,
+ 0x9321ffff,
+ 0x3990c001,
+ 0x0940c1c0,
+ 0x588bd124,
+ 0xc000b461,
+ 0xa6059c22,
+ 0x8440c002,
+ 0x5b14b740,
+ 0xc4720a86,
+ 0x08820cd2,
+ 0x8502c00c,
+ 0xc000b421,
+ 0x4220b104,
+ 0xc0010189,
+ 0x75002a10,
+ 0x9302ffff,
+ 0x8d00e0d1,
+ 0x08029d47,
+ 0x4058b960,
+ 0x08e0c1c0,
+ 0x5889d0a4,
+ 0x3c80c400,
+ 0xc000b401,
+ 0x4220b104,
+ 0xa245f029,
+ 0xffff0890,
+ 0x9dc792a1,
+ 0x29eecfff,
+ 0x0cc0c1c0,
+ 0xb4615c8b,
+ 0xf010c000,
+ 0xb79fa94b,
+ 0xf0127b6c,
+ 0xb73fa94c,
+ 0xd8107bec,
+ 0xf310a9cb,
+ 0xf0108021,
+ 0xe210a953,
+ 0xd81282a3,
+ 0xf010a94c,
+ 0xf010a249,
+ 0xb79fa0cd,
+ 0xb73f7c6c,
+ 0xb73f75ea,
+ 0xf3107572,
+ 0xe2108021,
+ 0xe22082a3,
+ 0x0d8680bb,
+ 0xa251f010,
+ 0xa0cdd810,
+ 0xa0cad810,
+ 0x9b7efff4,
+ 0x68d1d312,
+ 0xc1c00a02,
+ 0x5c8b0cc0,
+ 0x3c80c400,
+ 0xc000b481,
+ 0x4220b104,
+ 0x3a20c001,
+ 0x68d1d312,
+ 0x0cc0c1c0,
+ 0xb4815c8b,
+ 0xb79fc000,
+ 0xb7bf7c6e,
+ 0xc0047cee,
+ 0x9c228c00,
+ 0xa285f839,
+ 0xaa61f010,
+ 0xc0007500,
+ 0xd0089164,
+ 0x9e48a8c1,
+ 0xc2000a06,
+ 0x30985200,
+ 0xa0c1d008,
+ 0x0d38d011,
+ 0xa9f2d010,
+ 0x1a30f011,
+ 0xa943f010,
+ 0xc0001984,
+ 0xcff193e2,
+ 0xcff08702,
+ 0xc00f8700,
+ 0xc00e087e,
+ 0xc050087c,
+ 0xf0290c1a,
+ 0xd020a8c5,
+ 0x5ca12095,
+ 0x22109e4d,
+ 0x5a20c200,
+ 0xba0930d8,
+ 0xb4204006,
+ 0xf011c000,
+ 0x19841a30,
+ 0x91e4ffff,
+ 0x802ff210,
+ 0xa241f010,
+ 0xaa9df9f8,
+ 0xa60d9c22,
+ 0x59409e5d,
+ 0x5841f124,
+ 0x2d2ed3f1,
+ 0x4422b350,
+ 0x93e2c002,
+ 0xaa61f008,
+ 0x2a1ce000,
+ 0x4422b425,
+ 0xaa61d808,
+ 0xe2108522,
+ 0x2a1c88a9,
+ 0x9ea31218,
+ 0x0a7ec00e,
+ 0x400bba1b,
+ 0x5207c200,
+ 0xc0012128,
+ 0x9e599276,
+ 0x5a20c100,
+ 0xc2001103,
+ 0x9ea25209,
+ 0x58a1c200,
+ 0xd0319e8d,
+ 0xd2080cb0,
+ 0xc00ea8a2,
+ 0xc2002a7c,
+ 0xc00e5207,
+ 0x349a2a7c,
+ 0xa0a2d208,
+ 0xa963f008,
+ 0xd3f19ea1,
+ 0xc2012a2e,
+ 0xf3108128,
+ 0x85028821,
+ 0xa261f008,
+ 0xa127d228,
+ 0xcff09eab,
+ 0x59402d01,
+ 0x35225941,
+ 0x2d7cc00e,
+ 0x9bb1fff4,
+ 0x92e0c000,
+ 0xaa21d208,
+ 0x000b9e5e,
+ 0x324250d8,
+ 0xa205d029,
+ 0xa8e1f008,
+ 0x291ed013,
+ 0x8029f210,
+ 0x9e447510,
+ 0xf0080098,
+ 0xb350a0e1,
+ 0xb79f4426,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0xa60d9c22,
+ 0x9e690685,
+ 0x0b029e9e,
+ 0x0a867182,
+ 0x9208c000,
+ 0x16d29ea9,
+ 0xc2809e69,
+ 0xd0115a84,
+ 0x71021a52,
+ 0x08e2d011,
+ 0x2b1ed3f1,
+ 0x9286ffff,
+ 0x0a62d011,
+ 0x028d7510,
+ 0x91d4c000,
+ 0x0d029e73,
+ 0xfff40922,
+ 0x1aa09b70,
+ 0x0a52d011,
+ 0x9e837510,
+ 0x92d2ffff,
+ 0x0d069e73,
+ 0x0952d011,
+ 0x297cc00e,
+ 0x9b61fff4,
+ 0x9e837590,
+ 0x92f4c000,
+ 0x1a60d031,
+ 0x2b4ed3f1,
+ 0x9e739e6c,
+ 0x5299c200,
+ 0x295ed3f2,
+ 0xfff40922,
+ 0x9e839b50,
+ 0x52b8c200,
+ 0x75909ea9,
+ 0xffff16d2,
+ 0x9e7391b2,
+ 0x2d5ed3f2,
+ 0xfff4010d,
+ 0xb79f9b42,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0xf0119c22,
+ 0x9e990ca0,
+ 0x5a04d09a,
+ 0x1a42d00d,
+ 0x909ac000,
+ 0x12421203,
+ 0x9ea29e4b,
+ 0x9360fffc,
+ 0x8420a60d,
+ 0x9e558502,
+ 0x7f7cb55f,
+ 0x7ffcb55f,
+ 0xaa61f010,
+ 0x8c8ee011,
+ 0x1a080307,
+ 0xd226750a,
+ 0x8540590c,
+ 0x8044e05a,
+ 0x90a0c003,
+ 0x9180c000,
+ 0x92a0c000,
+ 0x93c0c000,
+ 0x9100c001,
+ 0x9200c001,
+ 0x9060c002,
+ 0x8d88e011,
+ 0xd0729e8b,
+ 0xb5a01954,
+ 0xfff4500c,
+ 0xc0029bc8,
+ 0xb7409200,
+ 0x9ea95014,
+ 0x8d88e011,
+ 0x15149e8b,
+ 0x9bbdfff4,
+ 0x90a0c002,
+ 0x8d88e011,
+ 0xd3f29e8b,
+ 0x0916295e,
+ 0x9aebfff4,
+ 0x500cb5a0,
+ 0x9320c001,
+ 0x8d88e011,
+ 0xd3f29e8b,
+ 0x0916295e,
+ 0x9adffff4,
+ 0x91e0c001,
+ 0xaa41d208,
+ 0xf0119e8b,
+ 0x4a7d8c88,
+ 0x2aced012,
+ 0x09060d06,
+ 0xfff4018b,
+ 0x9e839ad0,
+ 0x018b9e6a,
+ 0xfff40d02,
+ 0xc0009aca,
+ 0xd2089340,
+ 0x9e8baa41,
+ 0x8c88f011,
+ 0xd0124a7d,
+ 0x0d022ace,
+ 0x018b0906,
+ 0x9abbfff4,
+ 0x9e6a9e83,
+ 0xc00e018b,
+ 0xfff40d7e,
+ 0xc0009ab4,
+ 0xc0019080,
+ 0xb79f90e0,
+ 0xc00f7e68,
+ 0xc00e0cfe,
+ 0x9e4a0cfc,
+ 0x7c68b59f,
+ 0x7f6cb73f,
+ 0x0a02cff1,
+ 0x0a00cff0,
+ 0x0c9ac050,
+ 0xc2002218,
+ 0x20945a21,
+ 0x324258a0,
+ 0x4006ba24,
+ 0x7f6cb59f,
+ 0xc000b481,
+ 0xa943f208,
+ 0x7fecb79f,
+ 0x8021f310,
+ 0xa241f208,
+ 0x7e6eb79f,
+ 0x7eeeb7bf,
+ 0x7f6eb7df,
+ 0x8c00c002,
+ 0xa61d9c22,
+ 0x85028440,
+ 0xf0319e9d,
+ 0x0b02abe5,
+ 0x7878b55f,
+ 0x7efcb55f,
+ 0x9d3a718e,
+ 0x91e8c001,
+ 0x7502aa41,
+ 0x9392c000,
+ 0xaad1d018,
+ 0x8d08e032,
+ 0x8d00e051,
+ 0x9eb19dcf,
+ 0xb55f8510,
+ 0xc0027f7c,
+ 0xc2800a9c,
+ 0x018b5a95,
+ 0x9a1efff4,
+ 0x7f7cb75f,
+ 0x5a88c280,
+ 0x8122c301,
+ 0x91a0c000,
+ 0x8d88e031,
+ 0x050b9dcf,
+ 0xb55f8510,
+ 0xfff47f7c,
+ 0xb75f9b23,
+ 0x0b047f7c,
+ 0xfffe718e,
+ 0xb79f92a6,
+ 0xc0507868,
+ 0xb4810c9e,
+ 0xc050c000,
+ 0xb4e20d16,
+ 0xb71fc000,
+ 0xb79f7eec,
+ 0xb7bf7d6e,
+ 0xb7df7dee,
+ 0xb7ff7e6e,
+ 0xc0027eee,
+ 0x9c228c40,
+ 0xc450a605,
+ 0x0a020c8a,
+ 0xc000b481,
+ 0x4240b102,
+ 0x2d7ce00e,
+ 0x5d10d104,
+ 0x0a02c801,
+ 0xc0300a40,
+ 0xb4810c8a,
+ 0x08c2c000,
+ 0xb4210c84,
+ 0xb740c000,
+ 0xf048608c,
+ 0xf210a947,
+ 0xf048802d,
+ 0xc450a245,
+ 0x0a020c86,
+ 0xc000b481,
+ 0x4220b101,
+ 0x0a42c801,
+ 0x0a00c010,
+ 0x0caac032,
+ 0xc000b481,
+ 0xc03408aa,
+ 0xb4220d1e,
+ 0xc450c000,
+ 0x0a020cf2,
+ 0xc000b481,
+ 0x4220b101,
+ 0x1910d053,
+ 0x578cb780,
+ 0xa891f248,
+ 0x88a3f210,
+ 0x0d060d82,
+ 0xffd4018b,
+ 0xc0809b9e,
+ 0xb4a10ca2,
+ 0xc002c000,
+ 0xc0140d82,
+ 0x700a9954,
+ 0x9364ffff,
+ 0x09820daa,
+ 0xc1210d0a,
+ 0xffd40902,
+ 0xb7809939,
+ 0xf248578c,
+ 0xc0a1a992,
+ 0x0d040d02,
+ 0xffd409c2,
+ 0xc0c09924,
+ 0x09920d82,
+ 0x09420d42,
+ 0x9957c014,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xc010a60d,
+ 0xb7208400,
+ 0xb780578c,
+ 0x2a2049ad,
+ 0xb7c07500,
+ 0x09025a14,
+ 0x9182c000,
+ 0x7508b783,
+ 0xc0007500,
+ 0xd29090e2,
+ 0x7500aa41,
+ 0x9164c005,
+ 0x49adb720,
+ 0x2a18d011,
+ 0xd0027500,
+ 0xc0003924,
+ 0xd0119124,
+ 0x75002a14,
+ 0x3922d002,
+ 0x3926d001,
+ 0x0c82c050,
+ 0xc000b441,
+ 0xb7409d87,
+ 0x0dc2468c,
+ 0xc01009c2,
+ 0xcff00d02,
+ 0xffd40c81,
+ 0xb78398fb,
+ 0x9d1b7508,
+ 0xcff07500,
+ 0xc0000b01,
+ 0xd2909282,
+ 0x7500aa41,
+ 0x91e2c000,
+ 0x606cb79f,
+ 0x8d00f211,
+ 0x2a00c010,
+ 0xcff07500,
+ 0xf3100a03,
+ 0xb3468001,
+ 0xb79e4422,
+ 0xc8014068,
+ 0xc01008c2,
+ 0xc0320880,
+ 0xb59f0cea,
+ 0xb421606c,
+ 0xb783c000,
+ 0x75007508,
+ 0x9282c001,
+ 0x7608b783,
+ 0xc0017500,
+ 0xb72091e2,
+ 0xd011510c,
+ 0x75002a12,
+ 0x9102c001,
+ 0x6194b7a0,
+ 0x5b0cb7a0,
+ 0xaa21f210,
+ 0x28f99eab,
+ 0x510cb520,
+ 0x9c629ea4,
+ 0x5f0cb720,
+ 0x4129b780,
+ 0xc0007500,
+ 0xf20892a4,
+ 0xf210a9a1,
+ 0x0d82a83d,
+ 0x9c629e84,
+ 0xa8a5f250,
+ 0xf2089eab,
+ 0x0982a021,
+ 0x9c629e8c,
+ 0xaa21da08,
+ 0x7d8ab581,
+ 0xa9cdda10,
+ 0xfff49eb3,
+ 0xc8019aa6,
+ 0xc00a0a02,
+ 0xc0300a00,
+ 0xb4810c8a,
+ 0xc008c000,
+ 0x0c8408c2,
+ 0xc000b421,
+ 0x0a02c008,
+ 0xb4810c88,
+ 0xc0c0c000,
+ 0x09920d82,
+ 0x0d02c008,
+ 0x0902c008,
+ 0x989dc014,
+ 0x0a02c008,
+ 0x0c8ec030,
+ 0xc000b481,
+ 0x5a8cb720,
+ 0xb5408506,
+ 0xfff44039,
+ 0xb79f9ad1,
+ 0xb7bf6eee,
+ 0xb7df6f6e,
+ 0xc0106fee,
+ 0x9c228c60,
+ 0xa205f839,
+ 0x0c82c450,
+ 0xb4810a02,
+ 0xb101c000,
+ 0xc0084220,
+ 0xc0300a40,
+ 0xb4810c8e,
+ 0xc002c000,
+ 0xc05038c0,
+ 0xb4210c82,
+ 0xc0c0c000,
+ 0x09920d82,
+ 0x0d02c008,
+ 0x0902c008,
+ 0x9869c014,
+ 0x0a02c008,
+ 0x0c8ec030,
+ 0xc000b481,
+ 0xaa1df9f8,
+ 0x9000fff5,
+ 0xf011a60d,
+ 0xc0010eb0,
+ 0xc01e9182,
+ 0xc0080f7e,
+ 0xc0300b02,
+ 0xc0400e8e,
+ 0x9e747540,
+ 0x0c96c050,
+ 0x4426b354,
+ 0xc20012d8,
+ 0xb4815a14,
+ 0xc030c000,
+ 0xb4c20d0a,
+ 0xb4c5c000,
+ 0xc030c000,
+ 0xb4c10c96,
+ 0xc0c0c000,
+ 0x09920d82,
+ 0x0d02c008,
+ 0x0902c008,
+ 0x9835c014,
+ 0xc000b4c5,
+ 0xfffe7540,
+ 0xfff493c4,
+ 0xb79f9a6f,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0xb4639c22,
+ 0x9c22c000,
+ 0xa062f812,
+ 0xc2009c22,
+ 0x5d890d80,
+ 0x09829e59,
+ 0x3d80c400,
+ 0xc000b463,
+ 0x4620b203,
+ 0x9c220007,
+ 0x9c8fc127,
+ 0x080a9c22,
+ 0x56f1b971,
+ 0x9c81c017,
+ 0x9c80c071,
+ 0x9c80c017,
+ 0x4000b960,
+ 0xffff9c22,
+ 0x9e5c9280,
+ 0xd1a401c6,
+ 0x08825889,
+ 0x3c80c400,
+ 0xc000b421,
+ 0x4220b104,
+ 0x9e532244,
+ 0xffff7106,
+ 0x9c229324,
+ 0xc004a60d,
+ 0xc8298420,
+ 0xc4980ca2,
+ 0xc0300cb0,
+ 0xe133ac3d,
+ 0xc0388d00,
+ 0xc030a45d,
+ 0xc038ac3d,
+ 0xc010a45d,
+ 0xc018ac3d,
+ 0xc010a45d,
+ 0xc018ac25,
+ 0xb7a0a445,
+ 0x9ea9578c,
+ 0xb5408502,
+ 0xb541651a,
+ 0xb7404b98,
+ 0x0dc2468c,
+ 0x0d42c00a,
+ 0xffb409c2,
+ 0xd2519ba9,
+ 0xda080a58,
+ 0x7502aa01,
+ 0xc0009ead,
+ 0xb5809084,
+ 0xf290448c,
+ 0x2a08aa2d,
+ 0xc0007500,
+ 0x850690a4,
+ 0x449cb540,
+ 0x608cb780,
+ 0xa8a1f210,
+ 0xf2108502,
+ 0xb540a8a6,
+ 0xb540509c,
+ 0xf208481a,
+ 0xf208a103,
+ 0xf210a085,
+ 0xf208a929,
+ 0xf210a08a,
+ 0xf210a92e,
+ 0xf208a8b2,
+ 0xf250a10d,
+ 0xf208a8b1,
+ 0xf208a112,
+ 0xf208a096,
+ 0xc050a09a,
+ 0x08c00cf2,
+ 0xa085f248,
+ 0xc000b421,
+ 0xc0360a0a,
+ 0xb4810c92,
+ 0x0896c000,
+ 0xb4211c8c,
+ 0xf031c000,
+ 0xe1318c00,
+ 0x9ea38d80,
+ 0x5f0cb7c0,
+ 0x7ffcb55f,
+ 0xb9600d02,
+ 0xf2084078,
+ 0x9dbaa103,
+ 0x5d0dd122,
+ 0xf0299e2d,
+ 0xd012a8e5,
+ 0x5c882cae,
+ 0x5908d126,
+ 0xe0389e4a,
+ 0x0d04aa4d,
+ 0x50a828bc,
+ 0xa2413242,
+ 0x91c1ffff,
+ 0xaa61f010,
+ 0x0c8ec036,
+ 0xc000b481,
+ 0x7fecb73f,
+ 0xb4211c84,
+ 0xc014c000,
+ 0xd2089999,
+ 0x7500aa4d,
+ 0x9262c000,
+ 0xaa2df290,
+ 0x2ac8f011,
+ 0x91a4c000,
+ 0x2a00c800,
+ 0xc0007500,
+ 0xf20890c4,
+ 0xfff4a9c6,
+ 0xd2089ae3,
+ 0xf290a2cd,
+ 0xd011a8ad,
+ 0x75002a14,
+ 0x9104c000,
+ 0x0a42c809,
+ 0x0a60c5c6,
+ 0x530cb580,
+ 0x460cb780,
+ 0xc0007500,
+ 0xc0809162,
+ 0x2a045a31,
+ 0x0ceac03e,
+ 0xc000b481,
+ 0x9280c000,
+ 0x448cb780,
+ 0xc0007502,
+ 0xc100915c,
+ 0x74402880,
+ 0xd0010a0e,
+ 0xc0001a46,
+ 0x0a029060,
+ 0x0ceac03e,
+ 0xc000b481,
+ 0x7a6eb79f,
+ 0x7aeeb7bf,
+ 0x7b6eb7df,
+ 0x8c00c006,
+ 0xb7809c22,
+ 0xc0c8538c,
+ 0xb9600892,
+ 0xd01140f8,
+ 0xf0290948,
+ 0xd0a4aa45,
+ 0xb4815889,
+ 0x0890c000,
+ 0x9321ffff,
+ 0xa6059c22,
+ 0x460cb720,
+ 0x7e0cb780,
+ 0x0a047440,
+ 0x7e0cb580,
+ 0x9364c000,
+ 0x7508b783,
+ 0xc0007500,
+ 0xb72092c2,
+ 0xb780448c,
+ 0x7442510c,
+ 0xb5803a40,
+ 0xc000510c,
+ 0xb780919c,
+ 0xd2085f0c,
+ 0x7440a889,
+ 0x90a4c000,
+ 0xb5438506,
+ 0xc8017c18,
+ 0xc0100a42,
+ 0xc0320a00,
+ 0xb4810cea,
+ 0xc008c000,
+ 0xc00208c2,
+ 0xb4211ce0,
+ 0xc008c000,
+ 0xc0300a42,
+ 0xb4820d0e,
+ 0xc450c000,
+ 0xc0080c82,
+ 0xb4811a40,
+ 0xb101c000,
+ 0xc0024220,
+ 0xc05038c0,
+ 0xb4210c82,
+ 0xc0c0c000,
+ 0x09920d82,
+ 0x0d02c008,
+ 0x0902c008,
+ 0x9aa7fff4,
+ 0x0c86c450,
+ 0xb4810a02,
+ 0xb105c000,
+ 0xc0084220,
+ 0xc0300a00,
+ 0xb4820d0e,
+ 0x0c84c000,
+ 0x1a00c008,
+ 0xc000b481,
+ 0x4220b101,
+ 0x5a35c080,
+ 0x0902c801,
+ 0xc00e0940,
+ 0xd0a828fc,
+ 0xd0715910,
+ 0xc03029ce,
+ 0x9dc80c8a,
+ 0xc000b441,
+ 0x0c840a42,
+ 0xc000b481,
+ 0xc0007680,
+ 0xb7209182,
+ 0xb740608c,
+ 0xf21044bd,
+ 0xf3108a27,
+ 0xb5808021,
+ 0xc45044ad,
+ 0x0a020c86,
+ 0xc000b481,
+ 0x4220b105,
+ 0xb4810cec,
+ 0xb105c000,
+ 0x12d64220,
+ 0xc03408ea,
+ 0xb4210c9e,
+ 0xb780c000,
+ 0xf248578c,
+ 0xd053a891,
+ 0xf2101950,
+ 0x0d8288a3,
+ 0xc2800d06,
+ 0xb5805a0c,
+ 0x018b508c,
+ 0x9873ffd4,
+ 0x0ca2c080,
+ 0xc000b4a1,
+ 0x478cb780,
+ 0xb4810c88,
+ 0xb7a0c000,
+ 0xc0025914,
+ 0xfff40d82,
+ 0x700a9a22,
+ 0x9364ffff,
+ 0x7e0cb780,
+ 0xa8adf210,
+ 0xa8a2f250,
+ 0x9e496243,
+ 0xc0007102,
+ 0x850690b8,
+ 0x7a18b543,
+ 0x460cb780,
+ 0x0a827500,
+ 0x9204c001,
+ 0x448cb780,
+ 0xc0007502,
+ 0xb783933c,
+ 0x75007508,
+ 0x9282c000,
+ 0x458cb780,
+ 0xb5802a79,
+ 0xffd4458c,
+ 0xb7839831,
+ 0x75007c08,
+ 0x90c2c000,
+ 0x9908ffd4,
+ 0x7c08b5a3,
+ 0x98cdffd4,
+ 0x7508b783,
+ 0xc0007500,
+ 0xc01493e2,
+ 0xb7809993,
+ 0xd2085f0c,
+ 0x7440a889,
+ 0x92c2c000,
+ 0x0a82c080,
+ 0x9240c000,
+ 0xffd40d82,
+ 0xb7839899,
+ 0x75007608,
+ 0x90e2c000,
+ 0xffd40d82,
+ 0xc0009845,
+ 0x0d8290a0,
+ 0x997affd4,
+ 0x0ca6c080,
+ 0xc000b4a1,
+ 0x0d92c002,
+ 0x99c5fff4,
+ 0xffff700a,
+ 0x0dea9364,
+ 0x0d0a0982,
+ 0x0902c121,
+ 0x99aaffb4,
+ 0x578cb780,
+ 0xa992f248,
+ 0x0d02c0a1,
+ 0x09c20d04,
+ 0x9995ffb4,
+ 0x0d82c0c0,
+ 0x0d420992,
+ 0xfff40942,
+ 0x0a0299c8,
+ 0x0ceac03e,
+ 0xc000b481,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xb720a61d,
+ 0xb720578c,
+ 0xd09149b5,
+ 0x75002e10,
+ 0xc0040383,
+ 0xd01190e2,
+ 0x85022e14,
+ 0xb5438706,
+ 0x75007500,
+ 0x7e1cb540,
+ 0x7a18b543,
+ 0x9082c000,
+ 0x7580b543,
+ 0x2e10d111,
+ 0xc0007500,
+ 0xb5439082,
+ 0xd2117600,
+ 0x75002e10,
+ 0x9082c000,
+ 0x7680b543,
+ 0x7608b783,
+ 0xb7c07500,
+ 0xc0026194,
+ 0xb78391e2,
+ 0x75007588,
+ 0x9144c002,
+ 0x0a42c809,
+ 0x0a10c714,
+ 0x08c2c809,
+ 0x08c0c716,
+ 0x0cc2c809,
+ 0x0c80c7bc,
+ 0x0942c809,
+ 0x0920c7e6,
+ 0x0d42c809,
+ 0x0d40c702,
+ 0x09c2c809,
+ 0x09d0c6a0,
+ 0x0dc2c809,
+ 0x0d80c6b2,
+ 0x0c42c809,
+ 0x0c60c606,
+ 0x0842c809,
+ 0x0830c5d4,
+ 0x0ac2c809,
+ 0x0aa0c5ee,
+ 0x0ec2c809,
+ 0x0ef0c5da,
+ 0x0b42c809,
+ 0x0b00c80c,
+ 0xa249f210,
+ 0xa0d1f210,
+ 0xa0d6f210,
+ 0xa159f210,
+ 0xa14ef210,
+ 0xa1ddf210,
+ 0xa1c2f250,
+ 0xa046f250,
+ 0xa049f250,
+ 0xa2c5f210,
+ 0xa2c2f210,
+ 0xa34df250,
+ 0x588cb7a0,
+ 0xaa4df210,
+ 0x9ea49eab,
+ 0xb7209c62,
+ 0xd2085a0c,
+ 0xb580aa21,
+ 0xb72041ab,
+ 0x850241b3,
+ 0x439ab540,
+ 0x5014b520,
+ 0x590cb7c0,
+ 0xaa69f2c8,
+ 0xa8d9f208,
+ 0xc0007048,
+ 0xb7809142,
+ 0xf248618c,
+ 0xd152a88d,
+ 0x9e8c09f0,
+ 0xb7839c62,
+ 0x75007508,
+ 0x9062c004,
+ 0x4614b720,
+ 0xc0037640,
+ 0xb72093c4,
+ 0x7440438a,
+ 0x90e2c000,
+ 0xaa55da08,
+ 0xc0017048,
+ 0xb7a09004,
+ 0xb7835f14,
+ 0xb7a07588,
+ 0xda08618c,
+ 0xb520a9d6,
+ 0x850a4392,
+ 0xd2107500,
+ 0xf208a0aa,
+ 0xe001a8a9,
+ 0x9d4f8d24,
+ 0x9e8c1d84,
+ 0xf2089c62,
+ 0x9eaeaa31,
+ 0x9ea40d8a,
+ 0xc0009c62,
+ 0xb7809180,
+ 0xf208618c,
+ 0x9ea6a891,
+ 0x5f14b7a0,
+ 0x9e8c0d86,
+ 0xb7809c62,
+ 0xb723438a,
+ 0xb7207608,
+ 0x0a045a14,
+ 0x438ab580,
+ 0xaa29d210,
+ 0xb5807440,
+ 0xc0014849,
+ 0xb7a09024,
+ 0xf2105b0c,
+ 0x9eaba8c1,
+ 0x9c629e8c,
+ 0xaa29d210,
+ 0xc0007500,
+ 0xf20892a4,
+ 0xf210a9a1,
+ 0x0d82a85d,
+ 0x9c629e84,
+ 0xa021f208,
+ 0xa845f250,
+ 0x09829eab,
+ 0x9c629e84,
+ 0xaa21da08,
+ 0x7d8ab581,
+ 0x448cb780,
+ 0xc0007502,
+ 0x0d8690bc,
+ 0x9afeffb4,
+ 0xaa29d210,
+ 0xc0007500,
+ 0xb7209122,
+ 0xb780560c,
+ 0x3a08412d,
+ 0x90e0c000,
+ 0x560cb720,
+ 0x412db780,
+ 0xb5802a75,
+ 0xb723412d,
+ 0xb7807508,
+ 0x7440510c,
+ 0xb5803a04,
+ 0xc000510c,
+ 0xd15191c4,
+ 0xd2080a70,
+ 0xb740a882,
+ 0xd2085a0c,
+ 0xb520a881,
+ 0xd8085014,
+ 0xb79fa0cd,
+ 0xb7bf7e6e,
+ 0xb7df7eee,
+ 0xb7ff7f6e,
+ 0xc0027fee,
+ 0x9c228c00,
+ 0xb783a60d,
+ 0x75007608,
+ 0x6194b7a0,
+ 0xc0000b02,
+ 0xb7a09262,
+ 0xf2105b0c,
+ 0xf208a83d,
+ 0x0d8aa9a1,
+ 0x9c629e84,
+ 0xa021f208,
+ 0xa825f250,
+ 0x09869eab,
+ 0x9c629e84,
+ 0x7608b783,
+ 0xb7c07500,
+ 0xc0005094,
+ 0xb7609164,
+ 0xf2105b14,
+ 0x9e84a825,
+ 0x03019c62,
+ 0x9160c000,
+ 0x7588b783,
+ 0xc0007500,
+ 0xb78090c4,
+ 0xf2085c8c,
+ 0xb720ab0d,
+ 0xb7805f0c,
+ 0x75004129,
+ 0xc0000283,
+ 0xb7839224,
+ 0x75007608,
+ 0x90c4c000,
+ 0xaa21f250,
+ 0x9c629ea4,
+ 0xaa35f210,
+ 0x15e29eb1,
+ 0x9c629ea4,
+ 0xaa39f210,
+ 0x018b9eb3,
+ 0x9c629ea4,
+ 0x578cb720,
+ 0x49adb780,
+ 0x2a00c400,
+ 0xc0007500,
+ 0x85029102,
+ 0xa12bd208,
+ 0xd2088506,
+ 0xb780a123,
+ 0xcffe510c,
+ 0xb5802a3d,
+ 0xb79f510c,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0xa61d9c22,
+ 0x8420c002,
+ 0x0ca2c829,
+ 0x0cc0c4a0,
+ 0xc0100207,
+ 0xe0b3ac3d,
+ 0xc0188d00,
+ 0xc829a45d,
+ 0xc4a20ca2,
+ 0xc0100c80,
+ 0xe072ac3d,
+ 0x9d1a8c80,
+ 0xa45dc018,
+ 0x7d3ec01c,
+ 0xc0009e5f,
+ 0xf0b29162,
+ 0x0faa8c80,
+ 0x08e2c006,
+ 0x7f6cb53f,
+ 0x9100c000,
+ 0x0fa60683,
+ 0x0a56c006,
+ 0x7f6cb59f,
+ 0xc4500b02,
+ 0x0a020c82,
+ 0xc000b481,
+ 0x4220b101,
+ 0x7fecb53f,
+ 0x0a40c008,
+ 0x0c8ac030,
+ 0xc000b481,
+ 0x08c2c008,
+ 0xb4210c84,
+ 0x9ebbc000,
+ 0xc0949e7b,
+ 0x9e7c9aad,
+ 0x62899e79,
+ 0x0258714e,
+ 0xb3570389,
+ 0x71c24422,
+ 0xc003028f,
+ 0xc0509086,
+ 0xb79f0f1a,
+ 0xb73f7f6c,
+ 0x710a7f6c,
+ 0xa8a2f210,
+ 0xb314020b,
+ 0xd3f14434,
+ 0x9e4c294e,
+ 0x58e0c100,
+ 0xb4263098,
+ 0x74b0c000,
+ 0x92d4c000,
+ 0xaa25f210,
+ 0xc000b486,
+ 0x74b0c004,
+ 0x90d4c000,
+ 0xaa29f210,
+ 0xc000b486,
+ 0x74b0c008,
+ 0x90d4c000,
+ 0xaa2df210,
+ 0xc000b486,
+ 0x0a62d011,
+ 0x2b4ed3f1,
+ 0x08827588,
+ 0x0892d001,
+ 0x12d4e000,
+ 0xd0010a02,
+ 0xe0000a42,
+ 0xc0013098,
+ 0xc0509082,
+ 0xb4c10c96,
+ 0xb73fc000,
+ 0x1c947fec,
+ 0x3a10d051,
+ 0xc000b481,
+ 0x0d82c0c0,
+ 0xc0080992,
+ 0xc0080902,
+ 0xffd40d02,
+ 0xc4509b66,
+ 0x0a020c86,
+ 0xc000b481,
+ 0x4220b101,
+ 0x0a00c008,
+ 0x0c8ec030,
+ 0xc000b481,
+ 0x9e7c0b02,
+ 0xfffd7148,
+ 0x000f9048,
+ 0x7beeb79f,
+ 0x7c6eb7bf,
+ 0x7ceeb7df,
+ 0x7d6eb7ff,
+ 0x8c20c004,
+ 0xb7209c22,
+ 0x9e5c4b0c,
+ 0x2a40c0ff,
+ 0x28c0c0ff,
+ 0x85027102,
+ 0x9062c000,
+ 0xb5408506,
+ 0xb5604b9c,
+ 0x9c224b14,
+ 0x9e5da605,
+ 0x2a50d051,
+ 0xc0007500,
+ 0xb78090e4,
+ 0x75004b8c,
+ 0x9142c000,
+ 0x0d82c0c0,
+ 0x09c2c012,
+ 0x09420d02,
+ 0x9b23ffd4,
+ 0x4b0cb780,
+ 0x0cb6c034,
+ 0xc000b481,
+ 0x0d32c034,
+ 0xc000b4a2,
+ 0x4a8cb5a0,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0x8420a61d,
+ 0x7508b783,
+ 0xc0007500,
+ 0xb7809122,
+ 0xd2885a0c,
+ 0x7440a881,
+ 0x92a4c019,
+ 0x570cb7c0,
+ 0xb7409eb1,
+ 0x0dc2468c,
+ 0xc002098e,
+ 0xff940d42,
+ 0xf2089ad9,
+ 0xb7c0aa55,
+ 0xf2085694,
+ 0xf208a8c5,
+ 0xb7a0a8ca,
+ 0xb580578c,
+ 0xf210478c,
+ 0xda08a0d5,
+ 0xda08aa59,
+ 0xf210a8dd,
+ 0xd252a0de,
+ 0xf21008d0,
+ 0xf250a259,
+ 0xda08a0c1,
+ 0xb740a942,
+ 0xd131404b,
+ 0xda080a50,
+ 0x9e53a881,
+ 0xa8d2da88,
+ 0xd1245915,
+ 0xf2485b90,
+ 0xdffca947,
+ 0x60b27e7e,
+ 0x5a7fc080,
+ 0x5a71c200,
+ 0x58930098,
+ 0xe2105894,
+ 0xf25080a3,
+ 0xc000a0dd,
+ 0xe10091e2,
+ 0xc0005d40,
+ 0xda889164,
+ 0x8502aa55,
+ 0x4792b520,
+ 0x489ab540,
+ 0x468ab580,
+ 0xaa21f288,
+ 0x0950d132,
+ 0xa255f250,
+ 0xa259f250,
+ 0xa8c1da08,
+ 0xaa41d810,
+ 0xa93bf248,
+ 0xa8bada48,
+ 0xf3106218,
+ 0xda488021,
+ 0xf250a93d,
+ 0xf290a0ca,
+ 0xda48a249,
+ 0xf250aa29,
+ 0xf208a151,
+ 0xda48a923,
+ 0x6218a8ae,
+ 0x5a10c200,
+ 0x8021f310,
+ 0xa241f210,
+ 0xa927f208,
+ 0xf20a9e4c,
+ 0x6098a928,
+ 0xf210588c,
+ 0xe2108023,
+ 0xf21082a3,
+ 0xda48a249,
+ 0xf210a8aa,
+ 0xda08a0cd,
+ 0xd810aa41,
+ 0xf210a8c1,
+ 0xf248a0c6,
+ 0x0a04a937,
+ 0xb7406243,
+ 0xf310608c,
+ 0xf2908021,
+ 0xda08a245,
+ 0xf008a8c1,
+ 0xda08a953,
+ 0xf00aa8c2,
+ 0x58a0a954,
+ 0x80a3e210,
+ 0xe0205c9c,
+ 0xda4882a3,
+ 0xf208aa2d,
+ 0xf208a0ad,
+ 0xf250a0b2,
+ 0xf250a0c5,
+ 0xf210a0ce,
+ 0xd810a251,
+ 0xc004a941,
+ 0xb5201880,
+ 0xd1314f0c,
+ 0xda080a54,
+ 0xc002a881,
+ 0xb5201c80,
+ 0x59404f94,
+ 0xf2905951,
+ 0x58c0a155,
+ 0xf29058d1,
+ 0xc42ea0d9,
+ 0x0a020cf2,
+ 0xc000b481,
+ 0x4220b101,
+ 0x74402884,
+ 0x0bd0d131,
+ 0x9102c000,
+ 0xaa61da08,
+ 0x753ec09c,
+ 0x92f2c012,
+ 0x08c6c0c0,
+ 0x0ce2c050,
+ 0xc000b421,
+ 0xaa59f208,
+ 0x75002a10,
+ 0x9362c000,
+ 0x5f0cb7a0,
+ 0xaa2dd208,
+ 0xc0007500,
+ 0xb7209282,
+ 0xb7a0578c,
+ 0xe80049b5,
+ 0xc0002e80,
+ 0xf2089184,
+ 0xd2c8a9a6,
+ 0x5d94a9c1,
+ 0xfff42984,
+ 0xd20899fc,
+ 0xb760a2ae,
+ 0xf208578c,
+ 0xd131a959,
+ 0xda080a30,
+ 0xd052a881,
+ 0x764028a0,
+ 0xb5205891,
+ 0xc0004e8c,
+ 0x0a029222,
+ 0x0caec060,
+ 0xc000b481,
+ 0xa8c1da08,
+ 0xc0007440,
+ 0x85029302,
+ 0x4e9cb540,
+ 0x9260c000,
+ 0x2900c200,
+ 0xc0007480,
+ 0x0a0a9122,
+ 0x0caec060,
+ 0xc000b481,
+ 0x90e0c000,
+ 0xc0600a06,
+ 0xb4810cae,
+ 0xf208c000,
+ 0x2a04aa59,
+ 0x850a7500,
+ 0x491cb540,
+ 0x90a2c000,
+ 0xb5408504,
+ 0xb783491c,
+ 0x75007508,
+ 0x9322c000,
+ 0x7608b783,
+ 0xc0007500,
+ 0xb7809284,
+ 0x7500460c,
+ 0x91e2c000,
+ 0x7688b783,
+ 0xc0007500,
+ 0xb7209144,
+ 0xb760618c,
+ 0xb7805b14,
+ 0x9ea4402d,
+ 0xf2089c62,
+ 0x2a20aa59,
+ 0xc0007500,
+ 0xda0890e2,
+ 0x7500aa41,
+ 0x9244c000,
+ 0x5a0cb780,
+ 0x530cb720,
+ 0xa98eda08,
+ 0x9c629e8c,
+ 0x7508b783,
+ 0xc0007500,
+ 0x850690a2,
+ 0x7f18b543,
+ 0xaa59f208,
+ 0x75002a10,
+ 0x9182c001,
+ 0x0a7ec2f0,
+ 0x0cfac038,
+ 0xc000b481,
+ 0xa8c1f248,
+ 0x0ce6c050,
+ 0xc000b421,
+ 0xaa59f208,
+ 0x490cb720,
+ 0xc038851a,
+ 0x2a040c82,
+ 0x38907500,
+ 0x490cb520,
+ 0x08e6c184,
+ 0x8d28e001,
+ 0x4d1cb540,
+ 0xc000b421,
+ 0x638cb780,
+ 0x0886c800,
+ 0x0c80c002,
+ 0x520cb580,
+ 0xc000b421,
+ 0x9a55ffd4,
+ 0x490cb780,
+ 0x0c82c03e,
+ 0xc000b481,
+ 0x4d0cb720,
+ 0x0c82c050,
+ 0xc000b421,
+ 0xa941da08,
+ 0xa8d5f290,
+ 0xa946da08,
+ 0x9e536123,
+ 0xaa41da08,
+ 0xb7206097,
+ 0x87026014,
+ 0x7e82b541,
+ 0xb540857f,
+ 0x851a459a,
+ 0x449ab540,
+ 0x1a040d86,
+ 0x4d8cb580,
+ 0x405bb540,
+ 0xb5408526,
+ 0xb540415b,
+ 0x5891460a,
+ 0xb52018a0,
+ 0xb55f40cb,
+ 0xc0147fe4,
+ 0xb75f9bb2,
+ 0x85067fe4,
+ 0x7e18b543,
+ 0x7e80b543,
+ 0x4400b544,
+ 0x4480b544,
+ 0x7f80b543,
+ 0xa8c6da08,
+ 0xaa55f290,
+ 0xb7209e49,
+ 0xb5445714,
+ 0x62434000,
+ 0x434db720,
+ 0xda088502,
+ 0x58c8a9e2,
+ 0x2880c101,
+ 0xb5409e89,
+ 0xb5404e1c,
+ 0x5dc0519c,
+ 0x2dc0c0ff,
+ 0x3db0ca01,
+ 0x5a11c200,
+ 0x450ab580,
+ 0xfff43596,
+ 0xc0c099b0,
+ 0xc0120d82,
+ 0x0d0209c2,
+ 0xffd40942,
+ 0x9e7b98ee,
+ 0x71460a82,
+ 0xc0018546,
+ 0x9dcf9168,
+ 0x99b0fff4,
+ 0x0d82c0c0,
+ 0x09c2c012,
+ 0x09060d02,
+ 0x98ddffd4,
+ 0x1e70d091,
+ 0x0a027148,
+ 0x0a42d00b,
+ 0xa9e2da08,
+ 0x5a28c200,
+ 0x5dc09ea1,
+ 0x2dc0c0ff,
+ 0x3db0c801,
+ 0xfff43596,
+ 0x9e7b9984,
+ 0x0a50d051,
+ 0x5a40c200,
+ 0x5ac1c200,
+ 0x85067146,
+ 0x9326fffe,
+ 0x618cb720,
+ 0x462db780,
+ 0xcfce7500,
+ 0xb541857f,
+ 0xc000409c,
+ 0xf2089102,
+ 0xb760a9de,
+ 0x9ea4450a,
+ 0x0d829c62,
+ 0x98e8c014,
+ 0x7e88b783,
+ 0x85027500,
+ 0x7e18b543,
+ 0x9324c002,
+ 0x6194b720,
+ 0x5b0cb7a0,
+ 0x06830b02,
+ 0x7508b783,
+ 0xc0027500,
+ 0xb78390c2,
+ 0x75007608,
+ 0x9022c002,
+ 0x7f08b783,
+ 0xc0007500,
+ 0xb76091c2,
+ 0xf208618c,
+ 0xb5c3a9a2,
+ 0xf0487f08,
+ 0x9e84a869,
+ 0xb5009c62,
+ 0xb784430a,
+ 0x75004008,
+ 0x9382c000,
+ 0xa825f210,
+ 0xb5c49eab,
+ 0x9e844008,
+ 0xf2509c62,
+ 0x9ea4aa21,
+ 0xf2089c62,
+ 0xf210a9a1,
+ 0x0d86a83d,
+ 0x9c629e84,
+ 0xaa25f250,
+ 0xf2089eab,
+ 0x0986a021,
+ 0x9c629ea4,
+ 0x4008b784,
+ 0xc0007500,
+ 0x0d8691e4,
+ 0x9898c014,
+ 0x4008b784,
+ 0xffff7500,
+ 0xc0009342,
+ 0x0d8690a0,
+ 0x988ec014,
+ 0x7e88b783,
+ 0xfffd7500,
+ 0xc0c09222,
+ 0xc0120d82,
+ 0x0d0209c2,
+ 0xffd40906,
+ 0xc8019844,
+ 0xb5800a02,
+ 0xc0c0518c,
+ 0xc0120d82,
+ 0x0d0209c2,
+ 0xffd40942,
+ 0xb7609838,
+ 0xfff45194,
+ 0x0d8698ee,
+ 0x98fcfff4,
+ 0x0d82c0c0,
+ 0x09c2c012,
+ 0x09060d02,
+ 0x9829ffd4,
+ 0xc0068502,
+ 0xc4300892,
+ 0x09020c9a,
+ 0x519cb540,
+ 0x8510c006,
+ 0xc000b441,
+ 0x4220b104,
+ 0x75002a40,
+ 0xb3149d53,
+ 0x00894422,
+ 0x1884e000,
+ 0x9284ffff,
+ 0x4614b740,
+ 0x0892c006,
+ 0x0c9ac430,
+ 0xc0060902,
+ 0xb4418512,
+ 0xb104c000,
+ 0xc0024220,
+ 0x75002a00,
+ 0xb3139d4f,
+ 0x00874422,
+ 0x1884e000,
+ 0x9264ffff,
+ 0xc03e0a02,
+ 0xb9600cea,
+ 0xb48140e8,
+ 0xffffc000,
+ 0x768093c1,
+ 0x9122c000,
+ 0xc03e0a02,
+ 0xb4810cea,
+ 0xc000c000,
+ 0xb7809180,
+ 0x7504448c,
+ 0xc03e088a,
+ 0xd00c0cea,
+ 0xb4211894,
+ 0xc0c0c000,
+ 0x09e20d82,
+ 0x09420d02,
+ 0x9bd5ffb4,
+ 0xc0340a02,
+ 0xb4810cb6,
+ 0xb79fc000,
+ 0xb7bf7dee,
+ 0xb7df7e6e,
+ 0xb7ff7eee,
+ 0xc0027f6e,
+ 0x9c228c20,
+ 0xc01ca60d,
+ 0x0a827efe,
+ 0x9182c000,
+ 0x0d82c0c0,
+ 0x09c2c012,
+ 0x09060d02,
+ 0x9bb7ffb4,
+ 0x9240c000,
+ 0x0cb2c434,
+ 0xb4810a02,
+ 0xb101c000,
+ 0x28844220,
+ 0xc0007440,
+ 0xb78390e2,
+ 0x75007e08,
+ 0x91a2c009,
+ 0x4e0cb780,
+ 0xc0007502,
+ 0x0d8290c4,
+ 0x9a29c014,
+ 0xb7403ac0,
+ 0xb7405714,
+ 0xd810568c,
+ 0xf088a8c5,
+ 0xb720aa55,
+ 0x62434592,
+ 0xc2009e49,
+ 0x0a045a11,
+ 0x4002ba09,
+ 0x4002ba24,
+ 0x03057048,
+ 0xc0000685,
+ 0xb7809138,
+ 0x2a51490c,
+ 0x490cb580,
+ 0x91c0c003,
+ 0xaa39f210,
+ 0x75002a04,
+ 0x93a2c002,
+ 0x490cb780,
+ 0xd0117440,
+ 0xb5403942,
+ 0xc002490c,
+ 0xb760929c,
+ 0x9e5c4792,
+ 0x400aba24,
+ 0x91a2c002,
+ 0x911cc002,
+ 0x650ab760,
+ 0x6104b740,
+ 0x9e2d9e99,
+ 0x4003ba09,
+ 0x5e7fd0a2,
+ 0xc2009e48,
+ 0x02085a6d,
+ 0x5a17c200,
+ 0x5908d226,
+ 0xc2000c06,
+ 0x12085a14,
+ 0xe0389e40,
+ 0xba24a94e,
+ 0x50904002,
+ 0x79029e54,
+ 0x9102c001,
+ 0x4b88b781,
+ 0xc0017500,
+ 0xb7809064,
+ 0x9e48470a,
+ 0x4002ba24,
+ 0xc0007008,
+ 0x76409378,
+ 0x90e4c000,
+ 0x4b08b781,
+ 0xc0007502,
+ 0xd01192c2,
+ 0xb5801e32,
+ 0x9e54478a,
+ 0xb56048fd,
+ 0xb501470a,
+ 0x29594b90,
+ 0x490cb540,
+ 0xa0c120c2,
+ 0x90a0c000,
+ 0xb5418502,
+ 0xb7804b98,
+ 0xba24458a,
+ 0xc000400a,
+ 0xb78090fc,
+ 0x0a04650a,
+ 0x650ab580,
+ 0x490cb720,
+ 0x0c82c03e,
+ 0xc000b421,
+ 0x458ab780,
+ 0xb5800a04,
+ 0xc014458a,
+ 0xb7839a96,
+ 0x75007508,
+ 0x9222c002,
+ 0x7608b783,
+ 0xc0027500,
+ 0xb7809182,
+ 0x2a40518c,
+ 0xc0007500,
+ 0xb78490e4,
+ 0x751a4408,
+ 0x9024c002,
+ 0x580cb780,
+ 0x7e92b721,
+ 0xa881da08,
+ 0x70029e48,
+ 0x9284c000,
+ 0x430ab780,
+ 0xb5418502,
+ 0xb5807e9a,
+ 0xb760440a,
+ 0xb7804412,
+ 0x8506530c,
+ 0x7f18b543,
+ 0x4018b544,
+ 0x9c629ea4,
+ 0xaa39f210,
+ 0x75002a10,
+ 0x93e2c000,
+ 0x4008b784,
+ 0xc0007500,
+ 0xb78190e4,
+ 0x75027e8a,
+ 0x92a4c000,
+ 0x7f08b783,
+ 0x09027500,
+ 0x0922d001,
+ 0x0c82c438,
+ 0xb4810a02,
+ 0xb101c000,
+ 0x28f14220,
+ 0xc0383094,
+ 0xb4210c82,
+ 0xc014c000,
+ 0xb780983e,
+ 0xf2884e0c,
+ 0x0a04a955,
+ 0xb5807104,
+ 0xc0004e0c,
+ 0x850290a4,
+ 0x4e1cb540,
+ 0xa8a5da10,
+ 0x4592b720,
+ 0x60a35891,
+ 0x4003ba09,
+ 0x3a849e4c,
+ 0x71020884,
+ 0xcffe020b,
+ 0xb3542a3d,
+ 0x02894426,
+ 0x28d0d051,
+ 0xc0007440,
+ 0xc0c09142,
+ 0xc0120d82,
+ 0x0d0209c2,
+ 0xffb40942,
+ 0xb7809a82,
+ 0x7500518c,
+ 0x90a2c000,
+ 0xffd49eab,
+ 0xb79f9b45,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0xf8399c22,
+ 0xb724a205,
+ 0xb7404408,
+ 0xb7805204,
+ 0xd0a6448a,
+ 0x9e2d5908,
+ 0x578cb740,
+ 0xa94ee030,
+ 0x641cb760,
+ 0x4498b744,
+ 0x4400b744,
+ 0xb5801a04,
+ 0xc030448a,
+ 0xe200a8cd,
+ 0xd2515a40,
+ 0xda080a20,
+ 0xe210a882,
+ 0xb54082a3,
+ 0x5c955194,
+ 0xb5245c90,
+ 0xc0014408,
+ 0xb78492c4,
+ 0x0a044488,
+ 0x28ced3f1,
+ 0xb5847444,
+ 0xc0014488,
+ 0xb7619034,
+ 0x85064094,
+ 0x7e98b543,
+ 0x764024a6,
+ 0x4018b544,
+ 0x5194b520,
+ 0x9202c000,
+ 0x08a0d131,
+ 0x402bb780,
+ 0x3c80c801,
+ 0xc2009e48,
+ 0xc0ff5a40,
+ 0x32082a40,
+ 0x518cb580,
+ 0xf9f80806,
+ 0x9c22aa1d,
+ 0x4488b724,
+ 0x6004b740,
+ 0x5904d0a6,
+ 0xc8309e2d,
+ 0xb580aa4d,
+ 0xd132448a,
+ 0xb72009a0,
+ 0xd810458a,
+ 0xba19aa61,
+ 0xc2004002,
+ 0x1a045a11,
+ 0xc00070c8,
+ 0xb7819104,
+ 0xc040408c,
+ 0xb5813a00,
+ 0xb720408c,
+ 0xd0114e8c,
+ 0x70c80a18,
+ 0x9104c000,
+ 0x408cb781,
+ 0x3a00c010,
+ 0x408cb581,
+ 0x0a1cd011,
+ 0xc00070c8,
+ 0xb7819104,
+ 0xc020408c,
+ 0xb5813a00,
+ 0xb780408c,
+ 0xf288568c,
+ 0xf288a916,
+ 0x9e50a919,
+ 0x460ab720,
+ 0x1a24d011,
+ 0xba096241,
+ 0x00b24002,
+ 0xc0007048,
+ 0xb7819106,
+ 0xcfff408c,
+ 0xb5812a7a,
+ 0xd011408c,
+ 0x9e521a22,
+ 0x70486245,
+ 0x9106c000,
+ 0x408cb781,
+ 0x2a7ec7fe,
+ 0x408cb581,
+ 0x451ab740,
+ 0x5e11d0a2,
+ 0x8821f310,
+ 0xc00070c8,
+ 0xb7819104,
+ 0xcfff408c,
+ 0xb5812a4e,
+ 0xb740408c,
+ 0xb721570c,
+ 0xd808408c,
+ 0x9e50aa45,
+ 0xc2009e8a,
+ 0x1a045a11,
+ 0xb7206209,
+ 0x0a045194,
+ 0x4002ba24,
+ 0x249470c8,
+ 0x5194b520,
+ 0x9118c000,
+ 0x3c80c801,
+ 0x5194b520,
+ 0x91c0c000,
+ 0xaa61d810,
+ 0x3c80c801,
+ 0xc2009e48,
+ 0xc0ff5a40,
+ 0x32082a40,
+ 0x518cb580,
+ 0xaa59f008,
+ 0x2a00c040,
+ 0xc0007500,
+ 0xb7809102,
+ 0xc101518c,
+ 0xb5803a00,
+ 0xb760518c,
+ 0xffd45194,
+ 0x08029a34,
+ 0xaa1df9f8,
+ 0xb7009c22,
+ 0xd2515794,
+ 0xb7600e04,
+ 0xda08568c,
+ 0xc00ea881,
+ 0xc0342dfc,
+ 0xf0080cba,
+ 0x5895a961,
+ 0x5810c080,
+ 0xb4419e82,
+ 0xb780c000,
+ 0xf008454a,
+ 0xc200a963,
+ 0xf3105a10,
+ 0xf0088021,
+ 0x0c84a8e9,
+ 0xa261f008,
+ 0xc000b421,
+ 0x46cab780,
+ 0xa96bf008,
+ 0x8021f310,
+ 0xa8edf008,
+ 0xf0080c84,
+ 0xb421a269,
+ 0xb780c000,
+ 0xf00846ca,
+ 0xf310a96f,
+ 0xf0088021,
+ 0x0c8ca8f5,
+ 0xa26df008,
+ 0xc000b421,
+ 0xa97df008,
+ 0xb4410c84,
+ 0xb780c000,
+ 0x0a084d8c,
+ 0x5890d224,
+ 0xc0007244,
+ 0xd131931c,
+ 0xda080e04,
+ 0x9e4ca903,
+ 0x88a1e210,
+ 0xc0007102,
+ 0xf00891d6,
+ 0xf008aa75,
+ 0xc010a8fd,
+ 0xf0080a00,
+ 0xc008a275,
+ 0xf0080880,
+ 0xb780a0fd,
+ 0xc0344f0c,
+ 0xb4810cda,
+ 0xb720c000,
+ 0x0c844f8c,
+ 0xc000b421,
+ 0x4f0cb780,
+ 0x0a400ce4,
+ 0xc000b481,
+ 0x4f8cb720,
+ 0x08c00c84,
+ 0xc000b421,
+ 0x4f0cb780,
+ 0x4f8cb720,
+ 0xc0101ce4,
+ 0xb5800a00,
+ 0xf0484f0c,
+ 0xc008aa65,
+ 0xb5200880,
+ 0xb4814f8c,
+ 0xf048c000,
+ 0x0c84a8ed,
+ 0xc000b421,
+ 0xaa65f048,
+ 0xa8edf048,
+ 0xc0100c84,
+ 0xf0480a00,
+ 0xf048a265,
+ 0xc008aa75,
+ 0xf0480880,
+ 0xb481a0ed,
+ 0xf088c000,
+ 0x0c88a965,
+ 0xc000b441,
+ 0x0c80d131,
+ 0x402bb780,
+ 0xa967f088,
+ 0x2a40cffe,
+ 0x8021f310,
+ 0xa969f088,
+ 0xf0880c88,
+ 0xb441a265,
+ 0xd131c000,
+ 0xb7800c80,
+ 0xf088402b,
+ 0xcffea96b,
+ 0xf3102a40,
+ 0xf0488021,
+ 0x1c8ca97d,
+ 0xa269f088,
+ 0xc000b441,
+ 0x0c80d131,
+ 0x402bb780,
+ 0xa97ff048,
+ 0xc20076c0,
+ 0xc2005a11,
+ 0xf3105a14,
+ 0xf0488021,
+ 0xc001a27d,
+ 0xb7209182,
+ 0x1ca8454a,
+ 0xc000b421,
+ 0x46cab780,
+ 0xc2000c84,
+ 0xc2005a0d,
+ 0x324258c0,
+ 0xc000b481,
+ 0x0d04d131,
+ 0xaa41d808,
+ 0xc2000c8c,
+ 0xcffe588c,
+ 0xc20028fc,
+ 0x30985a50,
+ 0xc000b421,
+ 0x0d04d251,
+ 0xaa41d808,
+ 0xc2000ca0,
+ 0x1a105a11,
+ 0xc0042a3c,
+ 0xb4813a00,
+ 0xb780c000,
+ 0x0a044d8c,
+ 0x4d8cb580,
+ 0xa68d9c22,
+ 0x0c92c43e,
+ 0xb4810a02,
+ 0xb103c000,
+ 0xb7804220,
+ 0xda085e8c,
+ 0xda08a885,
+ 0xda08a909,
+ 0xda08a189,
+ 0xda08a081,
+ 0x0cd0a105,
+ 0xb4810a02,
+ 0xb103c000,
+ 0xb7204220,
+ 0xb7805e0c,
+ 0xb7a0518c,
+ 0xb7205e8c,
+ 0xb74040b3,
+ 0xb560412b,
+ 0x2a40412b,
+ 0x03037500,
+ 0x4033b520,
+ 0x40abb540,
+ 0x90e2c000,
+ 0x4408b784,
+ 0xc000750a,
+ 0xb78490f2,
+ 0x751a4408,
+ 0x9204c00d,
+ 0x7e8ab781,
+ 0xb5810a04,
+ 0xc4507e8a,
+ 0x0a020ca6,
+ 0xc000b481,
+ 0x4220b103,
+ 0xc0310087,
+ 0x02072880,
+ 0x2a7cc00f,
+ 0x59e1d0a4,
+ 0x59c1d228,
+ 0xcffe0007,
+ 0x0c88287c,
+ 0xb4810a02,
+ 0xb103c000,
+ 0xc1804220,
+ 0x9e9a5bc1,
+ 0x2d7ccffe,
+ 0xb4810cbc,
+ 0xb103c000,
+ 0x00874220,
+ 0x570cb740,
+ 0x7d8ab781,
+ 0x2880c0fc,
+ 0x283ed0f2,
+ 0x5b19d0a4,
+ 0xd8889e41,
+ 0x9e95a8d2,
+ 0x7d92b501,
+ 0x7e7edffc,
+ 0xba1c1218,
+ 0xc0024002,
+ 0x76c291c2,
+ 0x9384c000,
+ 0x480ab780,
+ 0x6104b740,
+ 0x4002ba24,
+ 0x58ffc200,
+ 0x00c258ed,
+ 0xd0a65897,
+ 0x9e2d5908,
+ 0x12425894,
+ 0xe0389e59,
+ 0x5230a8ce,
+ 0x9ea74a7d,
+ 0xa0c2249e,
+ 0x9180c001,
+ 0x468ab780,
+ 0xa8a1da08,
+ 0x4002ba24,
+ 0xc0017048,
+ 0xb780907c,
+ 0xb720488a,
+ 0xb7404812,
+ 0x0a046104,
+ 0x488ab580,
+ 0x4003ba09,
+ 0x5e7fd0a2,
+ 0x9e2d9e49,
+ 0x5a6dc200,
+ 0xc2000218,
+ 0xd2265a17,
+ 0xc2005908,
+ 0x9ea75a14,
+ 0xa94de038,
+ 0x9e4c149e,
+ 0x50b00886,
+ 0xa1413122,
+ 0x480ab780,
+ 0xb5800a04,
+ 0xb783480a,
+ 0x75007588,
+ 0x7608b783,
+ 0x90c4c000,
+ 0x7d3ec01c,
+ 0x9184c002,
+ 0x7d3ec01c,
+ 0x03f0d011,
+ 0x0527d021,
+ 0xf21076c2,
+ 0x0882aa39,
+ 0x0892d001,
+ 0x79022a04,
+ 0x5b0cb740,
+ 0x90e2c000,
+ 0xaa49d808,
+ 0xd8080a04,
+ 0xf008a249,
+ 0xf00aa94b,
+ 0xf310a94c,
+ 0xe0108027,
+ 0xf00882a5,
+ 0xf008a249,
+ 0xb783a0cd,
+ 0x75007a88,
+ 0xd0020882,
+ 0x76c20892,
+ 0xd0020a02,
+ 0x78480a42,
+ 0x90c2c000,
+ 0x8542c07c,
+ 0xa123da08,
+ 0xf00876c2,
+ 0xc000a953,
+ 0xda0890c4,
+ 0xc000aa41,
+ 0xda089080,
+ 0xe310aa21,
+ 0xd80880a1,
+ 0xf008aa4d,
+ 0x0a04a0d1,
+ 0xa24dd808,
+ 0x91c0c006,
+ 0x5b0cb720,
+ 0xf2109d2e,
+ 0xc301aa39,
+ 0xc2018136,
+ 0xb7408120,
+ 0x2a044525,
+ 0xf0107500,
+ 0xf3108027,
+ 0x01038221,
+ 0x452db580,
+ 0x90a2c001,
+ 0xc00076c2,
+ 0xda0890c4,
+ 0xc000aa41,
+ 0xda089080,
+ 0xd808aa21,
+ 0x76c6a25d,
+ 0x9082c001,
+ 0xc00076c0,
+ 0x74c091a4,
+ 0xa953d808,
+ 0x8d2ae002,
+ 0x802df210,
+ 0xa251d808,
+ 0x92c0c000,
+ 0xd84874c0,
+ 0xe002a947,
+ 0xc0008d26,
+ 0xda089160,
+ 0x74c0aa41,
+ 0xa947d848,
+ 0xa25dd808,
+ 0x8d2ae002,
+ 0x802df210,
+ 0xa245d848,
+ 0x7708b783,
+ 0xc0007500,
+ 0xb7809302,
+ 0x9e41440a,
+ 0xc0007048,
+ 0x85029244,
+ 0x7718b543,
+ 0x0c82c43a,
+ 0xb4810a02,
+ 0xb103c000,
+ 0xcfef4220,
+ 0xc03a29fe,
+ 0xb4610c82,
+ 0xb780c000,
+ 0x9e41440a,
+ 0x08827048,
+ 0x0892d002,
+ 0x0a0276c6,
+ 0x0a42d001,
+ 0xc0007848,
+ 0x85069242,
+ 0x7718b543,
+ 0x0c82c43a,
+ 0xb4810a02,
+ 0xb103c000,
+ 0xc0114220,
+ 0xc03a3980,
+ 0xb4610c82,
+ 0x7780c000,
+ 0x91a2c001,
+ 0xc00076c0,
+ 0xda0892e4,
+ 0xf008aa21,
+ 0xd808a947,
+ 0xf310a8d5,
+ 0xd8088021,
+ 0xf008a8da,
+ 0x9e44a245,
+ 0xd8080c84,
+ 0x00c2a0da,
+ 0xa0d5d808,
+ 0x92a0c000,
+ 0xaa41da08,
+ 0xa95bf008,
+ 0xa8c9d848,
+ 0x8021f310,
+ 0xa8ced848,
+ 0xa259f008,
+ 0x0c849e44,
+ 0xa0ced848,
+ 0xd84800c2,
+ 0xd808a0c9,
+ 0xf008aa5d,
+ 0xf04aa95f,
+ 0xf048a940,
+ 0xf310a9c7,
+ 0xf0488021,
+ 0xf008a94f,
+ 0xf210a25d,
+ 0xd8488221,
+ 0xf048a8c2,
+ 0xf010a241,
+ 0xe2108037,
+ 0x0c8480a9,
+ 0xa0c2d848,
+ 0xa245f048,
+ 0xa0cdf048,
+ 0x7eeeb7bf,
+ 0x7f6eb7df,
+ 0x7feeb7ff,
+ 0x9c228c60,
+ 0x5a0cb780,
+ 0x08c0d0f1,
+ 0x4031b720,
+ 0x9ea27642,
+ 0x9382c000,
+ 0x0ccac43c,
+ 0xb4810a02,
+ 0xb101c000,
+ 0xd0114220,
+ 0xd3f11914,
+ 0x08882e3e,
+ 0x4002ba09,
+ 0x4002ba12,
+ 0x7048c410,
+ 0x28fcc00e,
+ 0x7044c812,
+ 0x28aed3f1,
+ 0x9080c000,
+ 0x2cbed3f1,
+ 0x0e20d0f1,
+ 0xc0368502,
+ 0xd2080cfe,
+ 0xb421a103,
+ 0x9c22c000,
+ 0x72c0c002,
+ 0x1c0ad011,
+ 0xb7809c22,
+ 0xf2085b8c,
+ 0xd010a882,
+ 0x743d1432,
+ 0x90b6c000,
+ 0xc000087b,
+ 0x740690e0,
+ 0xb302850a,
+ 0x9d434478,
+ 0xa903f208,
+ 0x8021e210,
+ 0x08fe0a0a,
+ 0x7008c012,
+ 0x7002c010,
+ 0xb7209c22,
+ 0x85025a14,
+ 0x41cbb720,
+ 0xa17fd810,
+ 0xa173d810,
+ 0xb7808502,
+ 0xf0105b8c,
+ 0xd810a167,
+ 0xd810a17b,
+ 0xd850a177,
+ 0xf010a167,
+ 0xd850a17b,
+ 0xd850a16f,
+ 0xd850a16b,
+ 0xf050a163,
+ 0xf050a167,
+ 0xf010a163,
+ 0xf050a17f,
+ 0xf050a16f,
+ 0xf010a16b,
+ 0xda08a0e1,
+ 0xda08a11f,
+ 0xf208a113,
+ 0xda08a107,
+ 0xda08a11b,
+ 0xda48a117,
+ 0xf208a107,
+ 0xda48a11b,
+ 0xda48a10f,
+ 0xda48a10b,
+ 0xf248a103,
+ 0xb720a107,
+ 0xf24841cb,
+ 0xf208a103,
+ 0xf248a11f,
+ 0xf208a10f,
+ 0xf248a081,
+ 0x9c22a10b,
+ 0x5b8cb780,
+ 0xa8e1f010,
+ 0xa081f208,
+ 0xa8f2d810,
+ 0xa092da08,
+ 0xa8e5d850,
+ 0xa085da48,
+ 0xa8e6f050,
+ 0xa086f248,
+ 0xa8e1f050,
+ 0xa081f248,
+ 0xa8fed810,
+ 0xa09eda08,
+ 0xa8f9f010,
+ 0xa099f208,
+ 0xa8e6f010,
+ 0xa086f208,
+ 0xa8e1d850,
+ 0xa081da48,
+ 0xa8fad810,
+ 0xa09ada08,
+ 0xa8edd850,
+ 0xa08dda48,
+ 0xa8f6d810,
+ 0xa096da08,
+ 0xa8e9d850,
+ 0xa089da48,
+ 0xa8eef050,
+ 0xa08ef248,
+ 0xa8fdf010,
+ 0x5c94b720,
+ 0xa09df208,
+ 0x41ddb740,
+ 0xaa69f050,
+ 0x8120c301,
+ 0x41ddb540,
+ 0xaa61f050,
+ 0x8821f310,
+ 0xb5808502,
+ 0xd81040cd,
+ 0x8502a173,
+ 0xf0100802,
+ 0xd810a167,
+ 0xd810a17b,
+ 0xd850a177,
+ 0xf010a167,
+ 0xd850a17b,
+ 0xd850a16f,
+ 0xf050a16b,
+ 0x9c22a16b,
+ 0x9e5c74c2,
+ 0x91c4c001,
+ 0x5f0cb780,
+ 0xa885d208,
+ 0x85027440,
+ 0x7a98b543,
+ 0x91a4c001,
+ 0x5b8cb780,
+ 0x5914b720,
+ 0xa881da48,
+ 0x42cdb740,
+ 0x5a0cb780,
+ 0x5c94b740,
+ 0xf2486095,
+ 0xf010a917,
+ 0xb740a94d,
+ 0xb78044c5,
+ 0xc201444d,
+ 0xe2108124,
+ 0xf31088a3,
+ 0x70488a21,
+ 0x91fcc000,
+ 0x7a88b563,
+ 0x9160c000,
+ 0xc00074c0,
+ 0xb7209104,
+ 0xda085a0c,
+ 0xb580aa01,
+ 0xb70341ab,
+ 0x9c227a88,
+ 0x0e82a61d,
+ 0x4002ba3b,
+ 0x72cacc12,
+ 0x9e569eb8,
+ 0x66b19e96,
+ 0x754012ac,
+ 0x4003ba01,
+ 0x933cc000,
+ 0x018b058b,
+ 0xc0340d02,
+ 0xd3229bf1,
+ 0x71485e0b,
+ 0xc0009e85,
+ 0xd324931a,
+ 0x01ee5990,
+ 0xc0340d02,
+ 0x9e6c9be5,
+ 0xd0246041,
+ 0xc0005a93,
+ 0xb7809180,
+ 0xda08590c,
+ 0xd010a88a,
+ 0x0d021590,
+ 0x9bd6c034,
+ 0x9e689e85,
+ 0x7e6eb79f,
+ 0x7eeeb7bf,
+ 0x7f6eb7df,
+ 0x7feeb7ff,
+ 0x8c00c002,
+ 0xa61d9c22,
+ 0xb7e08440,
+ 0xda105914,
+ 0xb7e0aa75,
+ 0x753a5a0c,
+ 0x5b8cb740,
+ 0xaa61f208,
+ 0xd00a0c82,
+ 0xb53f0c92,
+ 0x75047e74,
+ 0xaa5dd808,
+ 0xa8c1d848,
+ 0x7eecb59f,
+ 0xa8def008,
+ 0x0b029e8d,
+ 0x4003ba2d,
+ 0x7f74b53f,
+ 0x92a4c001,
+ 0x5c94b7c0,
+ 0xa94bf210,
+ 0xaa4df210,
+ 0xf3107740,
+ 0xc00088a1,
+ 0xf048921c,
+ 0x9e6ba9c6,
+ 0xc0340d02,
+ 0xda109b95,
+ 0xf310a96b,
+ 0x6009882b,
+ 0xd41212d0,
+ 0xf208714c,
+ 0x7502aa69,
+ 0x7e6cb79f,
+ 0xd0090882,
+ 0x78480892,
+ 0x93a2c001,
+ 0x7d6ab77f,
+ 0x7f74b73f,
+ 0xf2509eab,
+ 0xba1ba949,
+ 0x05034002,
+ 0xfff4048b,
+ 0xc0019b71,
+ 0xb72092c0,
+ 0xb7405c94,
+ 0xb780405d,
+ 0x774041cd,
+ 0x88a1f310,
+ 0x915cc000,
+ 0xa96bda10,
+ 0x464db780,
+ 0x88abe310,
+ 0x12d86243,
+ 0xaa69f208,
+ 0xc0007502,
+ 0xda0890f2,
+ 0x7500aa69,
+ 0x9222c000,
+ 0x45cdb740,
+ 0x7d6ab77f,
+ 0x7f74b73f,
+ 0xba1b9eab,
+ 0x05034002,
+ 0xfff4048b,
+ 0xc0009b45,
+ 0xda109140,
+ 0x9eaba96b,
+ 0x89abe310,
+ 0xc0340d02,
+ 0x03019b3f,
+ 0xc0120802,
+ 0xb79f7180,
+ 0xb7bf7d6e,
+ 0xb7df7dee,
+ 0xb7ff7e6e,
+ 0xc0027eee,
+ 0x9c228c40,
+ 0xb740a605,
+ 0xba126484,
+ 0xd0114003,
+ 0xd2261e22,
+ 0x9e2d5904,
+ 0xa8cdc830,
+ 0x4002ba13,
+ 0xd0119e5b,
+ 0x70886a16,
+ 0xc0019e4d,
+ 0x74c090fc,
+ 0x921cc000,
+ 0x5a07c180,
+ 0x01a8d020,
+ 0xc0340d02,
+ 0xf2089b11,
+ 0x6241aa25,
+ 0x5943d224,
+ 0x90e0c000,
+ 0x0e22d011,
+ 0xba129ea2,
+ 0xb7204003,
+ 0xd0915c8c,
+ 0xd2080a10,
+ 0x7282a882,
+ 0x485ab312,
+ 0x90dac000,
+ 0x4fb1b720,
+ 0x7282c812,
+ 0xb79f9e50,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa6059c22,
+ 0x5a14b720,
+ 0x404db720,
+ 0x5d94b700,
+ 0xd0517444,
+ 0xb3401e00,
+ 0x9e4d4442,
+ 0x43cab720,
+ 0xba129e5c,
+ 0xdffc4003,
+ 0xba1b7c7e,
+ 0xba124002,
+ 0xc0004002,
+ 0x04819102,
+ 0x9ba4fff4,
+ 0xba129e82,
+ 0xd2884003,
+ 0x7502aa25,
+ 0x91c4c000,
+ 0x598cb780,
+ 0xa881d208,
+ 0xc0007440,
+ 0xd01190e4,
+ 0x9ea20e24,
+ 0x4003ba12,
+ 0xaa29d288,
+ 0xc0007502,
+ 0xd01190e4,
+ 0x9ea20e22,
+ 0x4003ba12,
+ 0xaa39da48,
+ 0xd0119e52,
+ 0x708208c8,
+ 0x90fcc000,
+ 0xba129e8a,
+ 0xc0004003,
+ 0x9e519140,
+ 0x70481a10,
+ 0x4002ba24,
+ 0x4836b324,
+ 0xb7209ea2,
+ 0xb7805c8c,
+ 0x9e524f29,
+ 0x9ea21228,
+ 0x4003ba12,
+ 0x9e897684,
+ 0x90bcc000,
+ 0xc0000d0a,
+ 0x76bb90e0,
+ 0xb322857b,
+ 0x9dcb487a,
+ 0x4f59b740,
+ 0x80ade210,
+ 0x0e10d091,
+ 0xd2089e8a,
+ 0xba12aa01,
+ 0x9e514003,
+ 0xb3427048,
+ 0xc000445a,
+ 0xb78090fa,
+ 0x9ea14fc9,
+ 0x7282c812,
+ 0xb79f9e50,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa61d9c22,
+ 0x7efedffc,
+ 0x9204c000,
+ 0x5b8cb780,
+ 0x5d94b7c0,
+ 0xaa99da08,
+ 0xab11da08,
+ 0xaa86f208,
+ 0xab95da08,
+ 0x91c0c000,
+ 0x5b8cb780,
+ 0x5d14b7c0,
+ 0xaa8dda48,
+ 0xab05da48,
+ 0xaa9af208,
+ 0xab89da48,
+ 0x7540c008,
+ 0x91dcc000,
+ 0xfff49eab,
+ 0x9e819937,
+ 0x52a3c200,
+ 0x5343c200,
+ 0x53e3c200,
+ 0x56a7c200,
+ 0x6204b740,
+ 0x5904d2a6,
+ 0xc8309e2d,
+ 0xda10a8cd,
+ 0x6363aa51,
+ 0xb74063f3,
+ 0x0a04629c,
+ 0xa251da10,
+ 0x9d479e89,
+ 0xaa55da10,
+ 0xa925c210,
+ 0x856e66d3,
+ 0x8821f310,
+ 0xba2c9e91,
+ 0xc2004002,
+ 0xc00c56a7,
+ 0xc2007748,
+ 0xc200534b,
+ 0xc00153eb,
+ 0xc100927c,
+ 0x9e6b7580,
+ 0x0a7ec07e,
+ 0x4438b364,
+ 0x5114d226,
+ 0x5d87c280,
+ 0x81afe220,
+ 0xc0340d02,
+ 0xf2109a07,
+ 0xd032a943,
+ 0xda10618e,
+ 0xe220a9d1,
+ 0x0d0281af,
+ 0x4002ba1b,
+ 0xa1c2f210,
+ 0x99f8c034,
+ 0xf210755e,
+ 0xd04da045,
+ 0xd01a1a50,
+ 0xc0005213,
+ 0x854290da,
+ 0x8823f310,
+ 0xf2105210,
+ 0x8506a245,
+ 0xa15fda10,
+ 0x7e6eb79f,
+ 0x7eeeb7bf,
+ 0x7f6eb7df,
+ 0x7feeb7ff,
+ 0x8c00c002,
+ 0xa60d9c22,
+ 0xb7a076c0,
+ 0xc0015914,
+ 0xb7a092a2,
+ 0xda485b8c,
+ 0x7500aa2d,
+ 0x90a2c000,
+ 0xfff40d86,
+ 0xda089b60,
+ 0x7500aa39,
+ 0x90a2c000,
+ 0xfff40d82,
+ 0xda489b58,
+ 0xda10a8a1,
+ 0x7048aa29,
+ 0x9382c000,
+ 0xab3dda08,
+ 0x99f1fff4,
+ 0x5a0cb780,
+ 0xa881f208,
+ 0xaaa1d210,
+ 0x5c94b720,
+ 0xb5a07442,
+ 0x9e834f49,
+ 0xba1e9eaa,
+ 0x09164002,
+ 0x9ab9fff4,
+ 0x4002ba00,
+ 0xa021d210,
+ 0xa821d210,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0xba1b9c22,
+ 0xd1a44002,
+ 0x9e5a5887,
+ 0x08869e48,
+ 0x1a045220,
+ 0xc0017088,
+ 0x9e4c907c,
+ 0x70080802,
+ 0x1a32d011,
+ 0xc00050b0,
+ 0x784491d6,
+ 0x91a4c000,
+ 0x0a02d011,
+ 0x4002ba04,
+ 0x70089e4c,
+ 0xffff5887,
+ 0x080292d8,
+ 0x10309c22,
+ 0x4002ba00,
+ 0xd1a69c22,
+ 0xe2105907,
+ 0xba008821,
+ 0x9c224002,
+ 0x1e12d011,
+ 0x70080802,
+ 0xc00050b0,
+ 0x9ea191f6,
+ 0xffff7844,
+ 0xd0119204,
+ 0xba040a02,
+ 0x9e4c4002,
+ 0x58877008,
+ 0x92d8ffff,
+ 0x9c220806,
+ 0x5a14b700,
+ 0x46dcb740,
+ 0xc0019db9,
+ 0xf21015b4,
+ 0x7500802f,
+ 0xb5800c82,
+ 0xc00046cc,
+ 0xb7209196,
+ 0xb7405f8c,
+ 0xf31040bd,
+ 0xb5208021,
+ 0xb58046d4,
+ 0xd01040ad,
+ 0x7480a941,
+ 0x9384c005,
+ 0x46d4b720,
+ 0xd0108506,
+ 0xb780a14b,
+ 0x7502404c,
+ 0x1494c001,
+ 0x9344c002,
+ 0x590cb720,
+ 0x43adb760,
+ 0x5910d1a6,
+ 0xf2109e48,
+ 0xc2008827,
+ 0x70085a13,
+ 0xb7009e8b,
+ 0xc0045c94,
+ 0xf0509276,
+ 0x7008aa65,
+ 0x9178c000,
+ 0x4ec8b720,
+ 0x2a1ed3f1,
+ 0xc0037506,
+ 0xc0039334,
+ 0xd03193a0,
+ 0x9e496a39,
+ 0x5a13c200,
+ 0xc0007048,
+ 0xb7209178,
+ 0xd3f14ec8,
+ 0x75042a1e,
+ 0x9114c003,
+ 0x9180c003,
+ 0x6a37d031,
+ 0xc2009e48,
+ 0x70085a13,
+ 0x9178c000,
+ 0x4ec8b720,
+ 0x2a1ed3f1,
+ 0xc0027502,
+ 0xc00292f4,
+ 0xd0119360,
+ 0x9e496a3d,
+ 0x5a13c200,
+ 0xc0027048,
+ 0xd0b19338,
+ 0xb7400cb4,
+ 0xb7804e58,
+ 0xb7204029,
+ 0xf3104ec8,
+ 0x70488021,
+ 0x9018c002,
+ 0x9080c002,
+ 0x590cb720,
+ 0x43adb760,
+ 0x5910d1a6,
+ 0xf2109e48,
+ 0xc2008827,
+ 0x70085a13,
+ 0xb7009e8b,
+ 0xc0015c94,
+ 0xf0509376,
+ 0x7008aa65,
+ 0x9196fffe,
+ 0x6a37d031,
+ 0xc2009e49,
+ 0x70485a13,
+ 0x91b8c000,
+ 0x4ec8b780,
+ 0x7d3ec01c,
+ 0x9004c001,
+ 0xb5800a04,
+ 0xc0014ec8,
+ 0x9e489060,
+ 0x5a07c180,
+ 0xc0007008,
+ 0xd0b19378,
+ 0xb7400cb4,
+ 0xb7804e58,
+ 0xb7204029,
+ 0xf3104ec8,
+ 0x70488021,
+ 0x9116c000,
+ 0x0a12d011,
+ 0x4ec8b580,
+ 0x9140c000,
+ 0xa149d010,
+ 0x4ec8b540,
+ 0x9080c000,
+ 0xa149d010,
+ 0xaa75d810,
+ 0x424cb720,
+ 0x70481a04,
+ 0x48a4b340,
+ 0xd0108502,
+ 0x9c22a14b,
+ 0xa0cad010,
+ 0xc00e9c22,
+ 0xd3312dfc,
+ 0xd0116cbb,
+ 0x58a11e36,
+ 0xba247048,
+ 0xb3144002,
+ 0x0089443c,
+ 0x5e04d1a2,
+ 0x870a7442,
+ 0xb3120d8c,
+ 0x9e59449a,
+ 0x7102d012,
+ 0x7500c004,
+ 0x5c94b720,
+ 0xb342857e,
+ 0xb5404478,
+ 0xc0024fc1,
+ 0xb5400c80,
+ 0x9c224059,
+ 0xc030a605,
+ 0xb7a0ac7d,
+ 0x9d59590c,
+ 0xa45dc038,
+ 0xac7dc030,
+ 0xa45dc038,
+ 0xac7dc030,
+ 0xa45dc038,
+ 0xc0020d82,
+ 0xfff40982,
+ 0xdffc9aaa,
+ 0xda087c3e,
+ 0x0a02a9aa,
+ 0x0a42d002,
+ 0x5f0cb720,
+ 0xc00209ba,
+ 0x85060aac,
+ 0xa221d208,
+ 0x40b9b540,
+ 0x9a97fff4,
+ 0x5c94b720,
+ 0x0e14d131,
+ 0x0c94d171,
+ 0x0d1cd131,
+ 0xa001da08,
+ 0x0e1cd171,
+ 0xb5008502,
+ 0xd808402b,
+ 0xc001a143,
+ 0xda080886,
+ 0xb520a103,
+ 0xb79f48cd,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xb7209c22,
+ 0xb7805a0c,
+ 0x8502412d,
+ 0x413bb540,
+ 0xb5800a04,
+ 0x9c22412d,
+ 0xb720a61d,
+ 0xb7805c8c,
+ 0x9e8d422d,
+ 0x590cb7c0,
+ 0x0a0476c4,
+ 0x422db580,
+ 0x9124c000,
+ 0xf2108502,
+ 0xda08a133,
+ 0xf210aa55,
+ 0xb780a235,
+ 0x76c45a0c,
+ 0xf2089ea6,
+ 0xc009a182,
+ 0xda089124,
+ 0xb740a956,
+ 0x85025f8c,
+ 0xa133d2d0,
+ 0xa14bd290,
+ 0xaa4df208,
+ 0xa947f008,
+ 0x8021f310,
+ 0xd2240089,
+ 0xf80858ff,
+ 0xf248a0d1,
+ 0xf310aa45,
+ 0x00898021,
+ 0x58ffd224,
+ 0xa0c9f808,
+ 0xa0cdf808,
+ 0xa8cdf248,
+ 0x80a3e220,
+ 0x0d109e4b,
+ 0x5a07c080,
+ 0x038570c8,
+ 0xa0c6f008,
+ 0x9256c000,
+ 0x5908d0a6,
+ 0x8023f210,
+ 0x5a13c200,
+ 0x850670c8,
+ 0xa14bd290,
+ 0x90d6c000,
+ 0xa133d2d0,
+ 0xa265f208,
+ 0xa9e6f208,
+ 0x0d029e53,
+ 0x9ba4c014,
+ 0xaa49f210,
+ 0xf2507502,
+ 0xc001a035,
+ 0xd0b192f4,
+ 0xd2080ae4,
+ 0x7500aa21,
+ 0x9202c001,
+ 0xaa49da10,
+ 0x5a40e200,
+ 0x9262c000,
+ 0xa95fda50,
+ 0x5a45c200,
+ 0x8021f310,
+ 0xa9c9da10,
+ 0xa25dda50,
+ 0xa9deda50,
+ 0xc0140d02,
+ 0xda509b81,
+ 0xda50a05d,
+ 0x7530aa5d,
+ 0x9292c000,
+ 0xaa4df248,
+ 0x590cd226,
+ 0xa8e5f208,
+ 0x8821f310,
+ 0x5a0fc200,
+ 0xc0007048,
+ 0xd20890fc,
+ 0x1a04aa21,
+ 0xa221d208,
+ 0xaa35f250,
+ 0xa8e5f208,
+ 0xda508502,
+ 0xd226a15f,
+ 0x74405908,
+ 0x8021f310,
+ 0xa229f210,
+ 0x90b6c000,
+ 0xf2108502,
+ 0xf208a12b,
+ 0xf210aa59,
+ 0xc002a8a9,
+ 0xc2006a4e,
+ 0x70485a1f,
+ 0x909cc000,
+ 0xa229f210,
+ 0xa8e2f248,
+ 0xa8a9f210,
+ 0xaa79f208,
+ 0xc4129e4a,
+ 0xd0107044,
+ 0xf2107102,
+ 0xf210a229,
+ 0xdac8a221,
+ 0x7446a8c1,
+ 0x9174c000,
+ 0x08e0d0d1,
+ 0x4029b780,
+ 0xd3f11a08,
+ 0xc000294e,
+ 0x090a9060,
+ 0xa8caf210,
+ 0x08827642,
+ 0x0892d009,
+ 0x0a0274b8,
+ 0x0a42d009,
+ 0x0af27848,
+ 0x4422b325,
+ 0xc0007642,
+ 0x9eab90f4,
+ 0x9a9ffff4,
+ 0x9140c000,
+ 0x0e50d091,
+ 0xd2d0850a,
+ 0x857ea13f,
+ 0xa103d208,
+ 0xaa31d2d0,
+ 0xc0007502,
+ 0xd0b19164,
+ 0xd2080a64,
+ 0x7440a881,
+ 0x0a54d001,
+ 0x2aced3e1,
+ 0xaa49d290,
+ 0xd0017502,
+ 0xd3e10a54,
+ 0xd0912ace,
+ 0xb7800cd0,
+ 0x71484029,
+ 0x90f2c000,
+ 0xaa3dd2d0,
+ 0xc0007148,
+ 0x02899068,
+ 0xaa41dac8,
+ 0x747d10d8,
+ 0x9136c000,
+ 0x08e0d0d1,
+ 0x4029b780,
+ 0xc0001a08,
+ 0x74449140,
+ 0x913cc000,
+ 0x08e0d0d1,
+ 0x4029b780,
+ 0xd3f10a08,
+ 0xd0912ace,
+ 0xb7800cd0,
+ 0x71484029,
+ 0x90f2c000,
+ 0xaa3dd2d0,
+ 0xc0007148,
+ 0x02899068,
+ 0xa2b9d2d0,
+ 0xa2c1d208,
+ 0x90c0c009,
+ 0x5f8cb7a0,
+ 0xaa3df250,
+ 0xa933f210,
+ 0xa8b9f210,
+ 0xa920f20a,
+ 0xa9b5f210,
+ 0xa9a6f208,
+ 0x89a3f210,
+ 0x8a21f310,
+ 0xabbaf250,
+ 0xf2080d02,
+ 0xc014a221,
+ 0xf2509aa7,
+ 0xf208a957,
+ 0xf20aaa21,
+ 0xf310a94c,
+ 0xf2088821,
+ 0xc200a8ba,
+ 0xf3105a07,
+ 0xf2488a21,
+ 0x0882a921,
+ 0x7102d012,
+ 0x08040008,
+ 0xc0125807,
+ 0x9e827004,
+ 0x7244c410,
+ 0xf21075c2,
+ 0xc001a0aa,
+ 0xda08901c,
+ 0x058fa9c9,
+ 0xc0140d02,
+ 0xd0b19a81,
+ 0xd20a0a66,
+ 0xe011a900,
+ 0x10028ea2,
+ 0x4002ba00,
+ 0xba00000e,
+ 0x741c4002,
+ 0xb3028536,
+ 0xda084478,
+ 0xf011a8c9,
+ 0xf3108c22,
+ 0xd0328221,
+ 0xf21063c2,
+ 0xf250a92b,
+ 0xe310aa35,
+ 0xc20088af,
+ 0x70485a1b,
+ 0xa0a1f210,
+ 0x4658b425,
+ 0xa9cada08,
+ 0x5dc55dc0,
+ 0xf25005f6,
+ 0xda08a1b2,
+ 0x0d02a9c9,
+ 0x9a50c014,
+ 0xaa49f210,
+ 0xf2507502,
+ 0xc000a031,
+ 0xda1090f2,
+ 0x7500aa49,
+ 0x92c2c001,
+ 0x5f0cb720,
+ 0x4129b780,
+ 0x03837500,
+ 0x9344c001,
+ 0xaa29f248,
+ 0xdac87500,
+ 0xc000a841,
+ 0xf210919c,
+ 0x6009a9a1,
+ 0xd1a49e81,
+ 0x0d025987,
+ 0xc0140596,
+ 0xdac89a2b,
+ 0x9e4aa8c2,
+ 0x1084e000,
+ 0xb3141220,
+ 0x7504442c,
+ 0x90dac000,
+ 0xa041dac8,
+ 0x9340c000,
+ 0x70c09e4b,
+ 0x90dcc000,
+ 0x1e14d011,
+ 0x9200c000,
+ 0x0e14d011,
+ 0x9180c000,
+ 0xa943dac8,
+ 0xaa45dac8,
+ 0x8021f310,
+ 0x5f0cb7e0,
+ 0x5a07c200,
+ 0xa241dac8,
+ 0xaa69d208,
+ 0xc0007500,
+ 0xdac89204,
+ 0x753eaa41,
+ 0x90b4c000,
+ 0xc000857e,
+ 0x750090c0,
+ 0x90a4c000,
+ 0xdac88506,
+ 0xf210a143,
+ 0x7502aa49,
+ 0x90f2c000,
+ 0xaa49da10,
+ 0xc0007500,
+ 0xd20891e2,
+ 0x7500aa69,
+ 0x9244c000,
+ 0x0a60d0d1,
+ 0xa982d208,
+ 0x9965fff4,
+ 0x9140c000,
+ 0x0e50d091,
+ 0xd2d0850a,
+ 0x857ea13f,
+ 0xa103d208,
+ 0xaa31d2d0,
+ 0xc0007502,
+ 0xd0b191c4,
+ 0xd2080a64,
+ 0x7440a881,
+ 0x90e4c000,
+ 0xaa41dac8,
+ 0xdac80a08,
+ 0xd0d1a241,
+ 0xd2080a60,
+ 0xd091a881,
+ 0x08840e50,
+ 0xa0c1d208,
+ 0xa882d208,
+ 0x2e1ed3f1,
+ 0x28fcc00e,
+ 0xc0007048,
+ 0xd2d09132,
+ 0xd3f1a8be,
+ 0x70482e1e,
+ 0x9088c000,
+ 0xa0c2d208,
+ 0xa923f210,
+ 0xa8c1d208,
+ 0x802ff310,
+ 0xa0b9d2d0,
+ 0xa229f210,
+ 0xd1318502,
+ 0xd1310e50,
+ 0xf2900cd8,
+ 0xda08a123,
+ 0xd171a103,
+ 0xb5400e50,
+ 0xf290403b,
+ 0xda08a133,
+ 0xd171a103,
+ 0xd2d00e58,
+ 0xda08a8b9,
+ 0xf210a103,
+ 0xf210a12f,
+ 0xda50a127,
+ 0xd208a0d9,
+ 0xda10aa41,
+ 0xb79fa24d,
+ 0xb7bf7e6e,
+ 0xb7df7eee,
+ 0xb7ff7f6e,
+ 0xc0027fee,
+ 0x9c228c00,
+ 0xb780a60d,
+ 0xf2085c8c,
+ 0xb740a90f,
+ 0xb7405404,
+ 0xe220590c,
+ 0xb72081af,
+ 0xf2085a14,
+ 0xf048a18e,
+ 0xe020a8c1,
+ 0xb7408327,
+ 0x9e5046dd,
+ 0xe2107002,
+ 0x098280af,
+ 0x06830309,
+ 0xb5400285,
+ 0xc0005414,
+ 0xf2089158,
+ 0xd226aa2d,
+ 0xe2105904,
+ 0xc00089a3,
+ 0xda1091e0,
+ 0xf208aa29,
+ 0x0a08a8ad,
+ 0x6142d033,
+ 0xf21072b5,
+ 0xb334882d,
+ 0x01894436,
+ 0xc00074c0,
+ 0xb72091fc,
+ 0xd0715f0c,
+ 0xc2000a3e,
+ 0x85065997,
+ 0x41b9b540,
+ 0x40adb560,
+ 0x9140c000,
+ 0x5f0cb780,
+ 0xd2088502,
+ 0x8502a10f,
+ 0xa107f208,
+ 0x5b94b7c0,
+ 0xa9aada08,
+ 0xa94ff250,
+ 0xa9a9da08,
+ 0x5dc95dc0,
+ 0x81afe220,
+ 0xc0140d02,
+ 0xdac89913,
+ 0xf210a021,
+ 0xd0d1a8a1,
+ 0xd00809d0,
+ 0xf208aa61,
+ 0x7444a946,
+ 0xa221d208,
+ 0xa142f208,
+ 0x93a4c000,
+ 0xaa29f210,
+ 0xc0007502,
+ 0xb7a09244,
+ 0xf2485f8c,
+ 0x0996aa55,
+ 0xa9aaf248,
+ 0xc2000d02,
+ 0xf2485a0b,
+ 0xc014a259,
+ 0xf24898ef,
+ 0xf210a029,
+ 0xf248aa5d,
+ 0xc000a249,
+ 0xf2509360,
+ 0xf248aa41,
+ 0xf210a259,
+ 0xda50a8de,
+ 0xd808a93f,
+ 0xb740aa61,
+ 0xf2485f8c,
+ 0xda10a0ce,
+ 0xf310a8a9,
+ 0xf0488021,
+ 0xda50a14a,
+ 0x0884a23d,
+ 0xa0a9da10,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x8420a61d,
+ 0x5c8cb780,
+ 0xa895f208,
+ 0x18849d39,
+ 0xa095f208,
+ 0xa8cad018,
+ 0x5a0cb720,
+ 0x76428582,
+ 0xb7609d99,
+ 0xc00048a1,
+ 0xf2089144,
+ 0xf208a183,
+ 0xd080a18e,
+ 0xc000a0c6,
+ 0xb7009140,
+ 0xb7805c8c,
+ 0xd080422c,
+ 0xb580a1c7,
+ 0xb720432c,
+ 0xb7805c8c,
+ 0xb7e0590c,
+ 0xb7e05f94,
+ 0xf20841ad,
+ 0xfa10a98d,
+ 0x123eab71,
+ 0xd2240089,
+ 0xfa1058ff,
+ 0xe000aae9,
+ 0x07620362,
+ 0x0f62d003,
+ 0x02d2e000,
+ 0xd00306d2,
+ 0xd2a20ed2,
+ 0xc2805e0c,
+ 0xd02058f5,
+ 0xc2803118,
+ 0xe000590c,
+ 0x152a112a,
+ 0x1d22d003,
+ 0x5df4c100,
+ 0x9dcb9e58,
+ 0xc1009ebb,
+ 0x30885a0d,
+ 0x7a08b783,
+ 0xf2109d68,
+ 0x0003a967,
+ 0xd0a47502,
+ 0xf310587f,
+ 0xb33389a7,
+ 0xb55f4c24,
+ 0xfa107f64,
+ 0xfa10a371,
+ 0xfa10a2e9,
+ 0xf210a06d,
+ 0xffd4a3e5,
+ 0xb75f9b05,
+ 0xf0007f64,
+ 0x7504aa41,
+ 0x9244c000,
+ 0x590cb720,
+ 0xa9d6f040,
+ 0x42abb760,
+ 0xf2100d02,
+ 0x1984a1e2,
+ 0x9844c014,
+ 0x5c8cb780,
+ 0xa01df248,
+ 0x5c8cb700,
+ 0xb5408502,
+ 0xb79f41bc,
+ 0xb7bf7dee,
+ 0xb7df7e6e,
+ 0xb7ff7eee,
+ 0xc0027f6e,
+ 0x9c228c20,
+ 0x5914b720,
+ 0xa876d810,
+ 0xa96ff010,
+ 0x42d3b500,
+ 0xa96df010,
+ 0x5a14b740,
+ 0x41cdb780,
+ 0x5f8cb760,
+ 0x41cdb540,
+ 0xa8c9d810,
+ 0x8821f310,
+ 0x1d02d013,
+ 0xa964f00a,
+ 0x88a3e210,
+ 0xf0506243,
+ 0xf310a96d,
+ 0xf0088221,
+ 0xb540a265,
+ 0xf01045cd,
+ 0xb580aa71,
+ 0xf010424d,
+ 0xb520a8f5,
+ 0x9c2242cd,
+ 0x74c0c008,
+ 0x9e529e58,
+ 0x90fcc000,
+ 0x70c0d002,
+ 0x51f31a14,
+ 0xc0055013,
+ 0xc0007400,
+ 0xd00290fc,
+ 0x1a507000,
+ 0x01285013,
+ 0x6204b740,
+ 0x628cb780,
+ 0x5904d1a6,
+ 0xc0409e2d,
+ 0xc830a8e5,
+ 0x7044aa4d,
+ 0xd01d6009,
+ 0xd01a1214,
+ 0xb3405013,
+ 0x122248ba,
+ 0x9c225010,
+ 0x08029e98,
+ 0xc0000902,
+ 0x9e989140,
+ 0xd0100802,
+ 0xcc144530,
+ 0xc01472c0,
+ 0x72c07200,
+ 0x5d09c180,
+ 0x7204e009,
+ 0x5d04f012,
+ 0x9254c000,
+ 0xd00472c4,
+ 0xd0240804,
+ 0x72c015b4,
+ 0x0802d004,
+ 0x15b0d024,
+ 0x3124e000,
+ 0xb3301181,
+ 0x9c22442a,
+ 0x088672c0,
+ 0x93a6ffff,
+ 0x72c0c402,
+ 0x2c9ed065,
+ 0x3c9ed065,
+ 0x7200c802,
+ 0x2d2ed065,
+ 0x3d2ed065,
+ 0x1514e000,
+ 0xd01a9e53,
+ 0xd01a5408,
+ 0x72c050ac,
+ 0x0002d014,
+ 0x15b0d024,
+ 0x5885e080,
+ 0xffff5c05,
+ 0xe0009304,
+ 0x11813124,
+ 0x442ab330,
+ 0x00009c22,
+ 0x87c2c809,
+ 0x0c20b060,
+ 0x87c2c809,
+ 0x0a60b060,
+ 0x87c2c809,
+ 0x09c0b060,
+};
+
+unsigned long aui32MPG4CBR_MasterMTXTOPAZFWData[] = {
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x809000b0,
+ 0x80900374,
+ 0x82884904,
+ 0x8288440c,
+ 0x8288441c,
+ 0x828844bc,
+ 0x82884328,
+ 0x8288437e,
+ 0x82884378,
+ 0x828844ec,
+ 0x82884516,
+ 0x82884528,
+ 0x82884560,
+ 0x82884564,
+ 0x82884594,
+ 0x828845c4,
+ 0x828845ec,
+ 0x8288462c,
+ 0x8288463c,
+ 0x8288464c,
+ 0x828843e4,
+ 0x82884654,
+ 0x82884660,
+ 0x82884690,
+ 0x82884698,
+ 0x828846cc,
+ 0x82884b34,
+ 0x82884a6e,
+ 0x82884af0,
+ 0x828848cc,
+ 0x828849cc,
+ 0x82884a0c,
+ 0x82884a30,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x809007c8,
+ 0x809007c8,
+ 0x809026b8,
+ 0x80902138,
+ 0x80903a38,
+ 0x80902aa4,
+ 0x80902460,
+ 0x809007c8,
+ 0x809007c8,
+ 0x809007c8,
+ 0x809007c8,
+ 0x809007c8,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0xa0101100,
+ 0xa01001b0,
+ 0xa0101102,
+ 0xa01001b2,
+ 0xa0101104,
+ 0xa0100124,
+ 0xa0101106,
+ 0xa0100126,
+ 0xa0100134,
+ 0x00000000,
+ 0xa0101120,
+ 0xa0100136,
+ 0xa0101122,
+ 0xa0100144,
+ 0x80101160,
+ 0x80101162,
+ 0x80101180,
+ 0x80101182,
+ 0x80100140,
+ 0x80100142,
+ 0x80100150,
+ 0x80100152,
+ 0x80100154,
+ 0x80100146,
+ 0x803003a0,
+ 0x80100100,
+ 0x80105156,
+ 0xa0101164,
+ 0xa0100184,
+ 0x80101194,
+ 0x801001b4,
+ 0x80100146,
+ 0x00000000,
+ 0x00000003,
+ 0x00000002,
+ 0x00000002,
+ 0x00000001,
+ 0x00000001,
+ 0x00000001,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000005,
+ 0x000f9400,
+ 0x000f9401,
+ 0x000fd403,
+ 0x000fd40b,
+ 0x000fd41b,
+ 0x000ffc1b,
+ 0x000ffc1b,
+ 0x000ff81b,
+ 0x0000681b,
+ 0x0000681a,
+ 0x0000281a,
+ 0x00002810,
+ 0x00002800,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00010001,
+ 0x00004010,
+ 0x04010040,
+ 0x10040100,
+ 0x40100401,
+ 0x00008040,
+ 0x20100804,
+ 0x02010080,
+ 0x40201008,
+ 0x00260019,
+ 0x003f0032,
+ 0x0058004b,
+ 0x00710064,
+ 0x008a007d,
+ 0x00a30096,
+ 0x00bc00af,
+ 0x00d500c8,
+ 0x00ee00e1,
+ 0x010700fa,
+ 0x01070107,
+ 0x01070107,
+ 0x01070107,
+ 0x01070107,
+ 0x01070107,
+ 0x00000107,
+ 0x00200040,
+ 0x001002ab,
+ 0x015500cd,
+ 0x00080249,
+ 0x00cd01c7,
+ 0x0155005d,
+ 0x0249013b,
+ 0x00040111,
+ 0x01c700f1,
+ 0x00cd01af,
+ 0x005d00c3,
+ 0x01550059,
+ 0x013b0029,
+ 0x0249025f,
+ 0x01110235,
+ 0x00020021,
+ 0x00f1001f,
+ 0x01c70075,
+ 0x01af006f,
+ 0x00cd0069,
+ 0x00c30019,
+ 0x005d017d,
+ 0x0059005b,
+ 0x015502b9,
+ 0x002900a7,
+ 0x013b0283,
+ 0x025f0135,
+ 0x02490095,
+ 0x0235023f,
+ 0x0111008b,
+ 0x00210219,
+ 0x00010041,
+ 0x0b060600,
+ 0x0c0b0a06,
+ 0x0a0b0c06,
+ 0x0c0d0c0c,
+ 0x0d0d0c06,
+ 0x0b0b0c0c,
+ 0x0e0d0a0d,
+ 0x0a0d0e0e,
+ 0x0c0d0a06,
+ 0x0c0e0c0e,
+ 0x0e0d0a0d,
+ 0x0f0c0c0c,
+ 0x0f0b0d0e,
+ 0x0d0f0e0e,
+ 0x0d0f0f0f,
+ 0x0c0b0f0e,
+ 0x00000006,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x1234baac,
+ 0x00000000,
+};
+
+unsigned long aui32MPG4CBR_MasterMTXTOPAZFWTextReloc[] = {
+ 0
+};
+
+unsigned char aui8MPG4CBR_MasterMTXTOPAZFWTextRelocType[] = {
+ 0
+};
+
+unsigned long aui32MPG4CBR_MasterMTXTOPAZFWTextRelocFullAddr[] = {
+ 0
+};
+
+unsigned long aui32MPG4CBR_MasterMTXTOPAZFWDataReloc[] = {
+ 0
+};
diff --git a/fw/MPG4MasterFirmwareCBR_bin.h b/fw/MPG4MasterFirmwareCBR_bin.h
new file mode 100644
index 0000000..5b6ddc9
--- /dev/null
+++ b/fw/MPG4MasterFirmwareCBR_bin.h
@@ -0,0 +1,44 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+
+// This file was automatically generated from ../release/MPG4MasterFirmwareCBR.dnl using dnl2c.
+
+extern unsigned long aui32MPG4CBR_MasterMTXTOPAZFWText[];
+extern unsigned long ui32MPG4CBR_MasterMTXTOPAZFWTextSize;
+
+extern unsigned long aui32MPG4CBR_MasterMTXTOPAZFWData[];
+extern unsigned long ui32MPG4CBR_MasterMTXTOPAZFWDataSize;
+
+extern unsigned long aui32MPG4CBR_MasterMTXTOPAZFWTextReloc[];
+extern unsigned char aui8MPG4CBR_MasterMTXTOPAZFWTextRelocType[];
+extern unsigned long aui32MPG4CBR_MasterMTXTOPAZFWTextRelocFullAddr[];
+
+extern unsigned long aui32MPG4CBR_MasterMTXTOPAZFWDataReloc[];
+extern unsigned long ui32MPG4CBR_MasterMTXTOPAZFWDataRelocSize;
+
+extern unsigned long ui32MPG4CBR_MasterMTXTOPAZFWTextOrigin;
+extern unsigned long ui32MPG4CBR_MasterMTXTOPAZFWDataOrigin;
+
diff --git a/fw/MPG4MasterFirmwareVBR_bin.c b/fw/MPG4MasterFirmwareVBR_bin.c
new file mode 100644
index 0000000..6f1e6db
--- /dev/null
+++ b/fw/MPG4MasterFirmwareVBR_bin.c
@@ -0,0 +1,4962 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+
+// This file was automatically generated from ../release/MPG4MasterFirmwareVBR.dnl using dnl2c.
+
+unsigned char *szMPG4MasterFirmwareVBR_buildtag = "BUILD_TOPAZ_SC_1_00_00_0318";
+
+unsigned long ui32MPG4VBR_MasterMTXTOPAZFWTextSize = 4275;
+unsigned long ui32MPG4VBR_MasterMTXTOPAZFWDataSize = 628;
+unsigned long ui32MPG4VBR_MasterMTXTOPAZFWTextRelocSize = 0;
+unsigned long ui32MPG4VBR_MasterMTXTOPAZFWDataRelocSize = 0;
+
+unsigned long ui32MPG4VBR_MasterMTXTOPAZFWTextOrigin = 0x80900000;
+unsigned long ui32MPG4VBR_MasterMTXTOPAZFWDataOrigin = 0x82884300;
+
+unsigned long aui32MPG4VBR_MasterMTXTOPAZFWText[] = {
+ 0x9040c001,
+ 0xc80993fe,
+ 0xc0000e42,
+ 0xc8290e00,
+ 0xc4cc8422,
+ 0xc8298440,
+ 0xc4308622,
+ 0x9e838600,
+ 0xc8099e43,
+ 0xc8560d42,
+ 0xc8090d60,
+ 0xc8580942,
+ 0xc8090920,
+ 0xc00a0e42,
+ 0xc8090e40,
+ 0xc00e87c2,
+ 0x9c1887d0,
+ 0x0c020802,
+ 0x09820d82,
+ 0x09020d02,
+ 0x08820c82,
+ 0x9320fffe,
+ 0xa401c838,
+ 0x0dc2c809,
+ 0x0da0c856,
+ 0x0e42c809,
+ 0x0b46b080,
+ 0x7e74b77f,
+ 0xa48d0882,
+ 0xffff9ff3,
+ 0x9d1393e0,
+ 0xf8398081,
+ 0x0707a205,
+ 0x06850307,
+ 0x03839e97,
+ 0x0fa0060f,
+ 0x018d058d,
+ 0x9c62008f,
+ 0x9340ffff,
+ 0x0ea0060b,
+ 0xffff9c62,
+ 0x058d93a0,
+ 0xb700018d,
+ 0xb780548c,
+ 0x9c015414,
+ 0x0687a605,
+ 0x0ea0060b,
+ 0xffff9c62,
+ 0xf9f893a0,
+ 0xf9f8aa9d,
+ 0x9c22aa1d,
+ 0xa6059c22,
+ 0x85028420,
+ 0xb55f0a82,
+ 0x850a7f7c,
+ 0x9c89c037,
+ 0x9c80c971,
+ 0x75002a08,
+ 0x9184c000,
+ 0x997dc014,
+ 0x458cb780,
+ 0xc0007500,
+ 0x0d8290a4,
+ 0x990ec054,
+ 0x7f6cb79f,
+ 0xc0007500,
+ 0xc05490e4,
+ 0x0d8a9916,
+ 0x9904c054,
+ 0x8d80e032,
+ 0x99b6c014,
+ 0x0800e000,
+ 0x91c4c000,
+ 0x9ac0c014,
+ 0x458cb780,
+ 0x2a797402,
+ 0x458cb580,
+ 0x90e4c000,
+ 0x9100c000,
+ 0xc0149e83,
+ 0x75409a33,
+ 0x9162fffe,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x9c228c60,
+ 0x85028702,
+ 0x6818b543,
+ 0x6898b543,
+ 0x6918b543,
+ 0x6c18b543,
+ 0x6c98b543,
+ 0x6d18b543,
+ 0x7118b543,
+ 0x7198b543,
+ 0x7218b543,
+ 0x7818b543,
+ 0x4804b540,
+ 0x4884b540,
+ 0x4904b540,
+ 0x4984b540,
+ 0x4a04b540,
+ 0x4c04b540,
+ 0x4c84b540,
+ 0x4d04b540,
+ 0x4202b540,
+ 0x4282b540,
+ 0x5004b540,
+ 0x7a84b540,
+ 0x4e84b540,
+ 0x4702b540,
+ 0xa6059c22,
+ 0xfff48420,
+ 0x0d8a9b87,
+ 0x98aac054,
+ 0x9bc6fff4,
+ 0x98b5c054,
+ 0x0cd2c420,
+ 0xb4810a02,
+ 0xb105c000,
+ 0x0d8a4220,
+ 0x8d80e031,
+ 0x9aebc014,
+ 0x0922c829,
+ 0x0920c4cc,
+ 0x7f6cb73f,
+ 0x2a5ed071,
+ 0x450cb580,
+ 0x2a80c01e,
+ 0xf0088502,
+ 0x7102a8c2,
+ 0x5a95c280,
+ 0x460cb5a0,
+ 0x4434b341,
+ 0xb5407640,
+ 0xb520459c,
+ 0xc000448c,
+ 0xd01190c2,
+ 0xf0080e12,
+ 0xb780a241,
+ 0xc807550c,
+ 0xc57008c2,
+ 0xc0320880,
+ 0xb5800caa,
+ 0xb421538c,
+ 0x0a2ac000,
+ 0xb4810cf4,
+ 0x1a28c000,
+ 0xc0020902,
+ 0xb96008ba,
+ 0xc2004078,
+ 0xd2240a00,
+ 0xb441588b,
+ 0xce00c000,
+ 0xffff0a11,
+ 0xe0009301,
+ 0xffff1884,
+ 0xc8079244,
+ 0xc5760a42,
+ 0xc0320a00,
+ 0xb4810caa,
+ 0x0a02c000,
+ 0x09020882,
+ 0xb9600884,
+ 0xc2004078,
+ 0xd2240a00,
+ 0xb441588b,
+ 0xce00c000,
+ 0xffff0a11,
+ 0xc0049301,
+ 0xffff745a,
+ 0x0a02923c,
+ 0x0c9ec034,
+ 0xc000b481,
+ 0x9b0dfff4,
+ 0xb79f0802,
+ 0xb7bf7eee,
+ 0x8c607f6e,
+ 0x9e549c22,
+ 0x0c82c040,
+ 0xb4219e59,
+ 0xc040c000,
+ 0xb4820d02,
+ 0x9c22c000,
+ 0x2d7cc00e,
+ 0x29e0c00e,
+ 0x9e545d30,
+ 0x0c82c040,
+ 0xb46131b8,
+ 0xc040c000,
+ 0xb4420d02,
+ 0x9c22c000,
+ 0x8420a60d,
+ 0x06870703,
+ 0x5c8dc280,
+ 0xd0a21c84,
+ 0x02875ca0,
+ 0x0a5ed011,
+ 0x5a0dc200,
+ 0xc2001a04,
+ 0x5cd05a30,
+ 0x9e4c3098,
+ 0xc0320405,
+ 0x30980c8a,
+ 0x3880c801,
+ 0xc000b421,
+ 0xc8019ea9,
+ 0xc0020a02,
+ 0x65530a00,
+ 0x0c8ac030,
+ 0xc000b481,
+ 0x0882c002,
+ 0xb4210c84,
+ 0x9e93c000,
+ 0x5f09d022,
+ 0x5d0d9e53,
+ 0xfff41d04,
+ 0xc2809bb4,
+ 0x1e845e91,
+ 0x5e84c280,
+ 0x1a849e6c,
+ 0x5a90c280,
+ 0x3a80c181,
+ 0x09820d8a,
+ 0x314a0d02,
+ 0x9baefff4,
+ 0x0d82c0c0,
+ 0xc0020992,
+ 0xc0020d02,
+ 0xc0340902,
+ 0x0a0a9bd4,
+ 0x0c9ec034,
+ 0xc000b481,
+ 0x75bf1b04,
+ 0xc0008502,
+ 0x9dcf9202,
+ 0x7f7cb55f,
+ 0x9ba7c034,
+ 0xa045f231,
+ 0x7f7cb75f,
+ 0x75bf1b04,
+ 0xffff8510,
+ 0xc0029284,
+ 0xc0300a42,
+ 0xb4810c8e,
+ 0xb79fc000,
+ 0xb7bf7e6e,
+ 0xb7df7eee,
+ 0xc0027f6e,
+ 0x9c228c00,
+ 0xf8399c22,
+ 0xb780a285,
+ 0x0986450c,
+ 0x0d0270c8,
+ 0x9096c001,
+ 0x4594b760,
+ 0x08020c06,
+ 0x0902c1cc,
+ 0x19c4d010,
+ 0x9e5d9e44,
+ 0x508cc200,
+ 0xc0007942,
+ 0xd1249202,
+ 0xc400588b,
+ 0xb4013c80,
+ 0xb104c000,
+ 0x9e554220,
+ 0x750230d2,
+ 0x4822b321,
+ 0xc00c9e8a,
+ 0x09840900,
+ 0x9101ffff,
+ 0x4594b540,
+ 0xaa9df9f8,
+ 0xc2009c22,
+ 0xc0378502,
+ 0xc1719c89,
+ 0xc8179c80,
+ 0x9c229c80,
+ 0xb780a605,
+ 0x9e5d458c,
+ 0xc000790a,
+ 0xfff49162,
+ 0xfff49bf0,
+ 0xb7809bbe,
+ 0x790a458c,
+ 0x9324ffff,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xc002a61d,
+ 0x9e5d8400,
+ 0xaa21f208,
+ 0xc0017500,
+ 0xc4209004,
+ 0x0a020cda,
+ 0xc000b481,
+ 0x4220b101,
+ 0xb4811c84,
+ 0xb106c000,
+ 0xb4814220,
+ 0xb107c000,
+ 0x008f4220,
+ 0xc000b481,
+ 0x4240b106,
+ 0xc000b481,
+ 0x4240b105,
+ 0x2a6ed1f1,
+ 0xb40d7516,
+ 0xf2084622,
+ 0x7480a921,
+ 0x92c2c000,
+ 0x8c80e092,
+ 0x098a0dc2,
+ 0x0d02c002,
+ 0x9b0afff4,
+ 0x7cecb7df,
+ 0x7c6cb79f,
+ 0x7d6cb7ff,
+ 0x7df4b7df,
+ 0x7e74b7bf,
+ 0xa221f208,
+ 0x5aa1c300,
+ 0x2afcc00e,
+ 0x0d869ea9,
+ 0xfff455e4,
+ 0xd3129ba3,
+ 0xc1c068d1,
+ 0x5c8b0c80,
+ 0xc000b4c1,
+ 0x6951d312,
+ 0x0d10c1c0,
+ 0xb4e25d0b,
+ 0xd312c000,
+ 0x9e7468d1,
+ 0x0ca0c1c0,
+ 0xb4815c8b,
+ 0xd312c000,
+ 0x9e6c6951,
+ 0x0d30c1c0,
+ 0xb4825d0b,
+ 0xd312c000,
+ 0x0a0268d1,
+ 0x0cc0c1c0,
+ 0xc4005c8b,
+ 0xb4813c80,
+ 0xb106c000,
+ 0xcfff4220,
+ 0xd3122b7c,
+ 0xc1c068d1,
+ 0x5c8b0cc0,
+ 0xc000b4c1,
+ 0x458cb720,
+ 0xc2000a04,
+ 0x000b5214,
+ 0xb5203098,
+ 0xb79f458c,
+ 0xb7bf7c6e,
+ 0xb7df7cee,
+ 0xb7ff7d6e,
+ 0xc0047dee,
+ 0x9c228c00,
+ 0xa205f839,
+ 0x0e30f011,
+ 0x919cc000,
+ 0x9ea10a04,
+ 0x55e40d86,
+ 0xc0343d88,
+ 0x0d8a9aaf,
+ 0x9aacc034,
+ 0xaa1df9f8,
+ 0xa6059c22,
+ 0x0a42c801,
+ 0x0a00c010,
+ 0x2ebed3f2,
+ 0x0caac032,
+ 0xc000b481,
+ 0x0cf408aa,
+ 0xc000b421,
+ 0x558cb780,
+ 0x0c92c080,
+ 0xa881f208,
+ 0xc000b421,
+ 0x558cb780,
+ 0xf2080c88,
+ 0xb421a889,
+ 0xb780c000,
+ 0x0c84558c,
+ 0xa88df208,
+ 0xc000b421,
+ 0x1c980902,
+ 0xc000b441,
+ 0x558cb780,
+ 0xf2080c90,
+ 0xb421a885,
+ 0xb7a0c000,
+ 0x0dd2558c,
+ 0x9a67c034,
+ 0xaa25f208,
+ 0xffff7008,
+ 0x0daa9344,
+ 0x0d060982,
+ 0x0902c121,
+ 0x9a4afff4,
+ 0x4714b760,
+ 0x0d02c021,
+ 0x09c20d04,
+ 0x9a37fff4,
+ 0x4714b760,
+ 0x0d0609c2,
+ 0x9a31fff4,
+ 0x09820daa,
+ 0xc1010d02,
+ 0xfff40902,
+ 0x0d929a35,
+ 0x9a43c034,
+ 0xaa25f208,
+ 0xffff7008,
+ 0x77409344,
+ 0x90a2c000,
+ 0xc0340d8e,
+ 0x0d8a9a45,
+ 0x9a42c034,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xc470a60d,
+ 0x0a020c8e,
+ 0xc000b481,
+ 0x4220b101,
+ 0x558cb780,
+ 0xa085f208,
+ 0x0a021c8c,
+ 0xc000b481,
+ 0x4220b105,
+ 0x2b5ed1f1,
+ 0x558cb780,
+ 0xcff09ead,
+ 0xc2802e80,
+ 0xf2085ea1,
+ 0xc280a281,
+ 0x2a845a9d,
+ 0x0a020c84,
+ 0xc000b481,
+ 0x4220b101,
+ 0x468cb520,
+ 0xb4810c84,
+ 0xb101c000,
+ 0xb5204220,
+ 0xc070470c,
+ 0xb4810c8e,
+ 0x0882c000,
+ 0xb4211c8c,
+ 0x0c90c000,
+ 0xc000b481,
+ 0xb4211c8c,
+ 0x0c84c000,
+ 0xc000b481,
+ 0x6204b740,
+ 0x5908d326,
+ 0xe0309e2d,
+ 0x9ea4aa4d,
+ 0xb7809c62,
+ 0x7740558c,
+ 0x9ea98502,
+ 0xd0010d82,
+ 0xf2080db2,
+ 0x2596a10f,
+ 0x9b3ffff4,
+ 0xc0700a06,
+ 0xb4810c82,
+ 0x000dc000,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x4514b760,
+ 0xc0020a7f,
+ 0x9ea18502,
+ 0x89afe220,
+ 0xfff355ad,
+ 0xc01c91a0,
+ 0xc0007ebe,
+ 0xd1a29244,
+ 0xc0905e08,
+ 0xd2240a00,
+ 0x08825909,
+ 0x3d00c400,
+ 0xc000b422,
+ 0x4220b104,
+ 0xffff7500,
+ 0xc1809364,
+ 0xc0905c88,
+ 0x5c890c80,
+ 0xc000b461,
+ 0xc1809c22,
+ 0xc0905c88,
+ 0x5c890c80,
+ 0x3c80c400,
+ 0xb4810a02,
+ 0xb101c000,
+ 0xf0084220,
+ 0x5d88a0e1,
+ 0x0d80c090,
+ 0xb4835d89,
+ 0x9c22c000,
+ 0xd3129e5b,
+ 0x0a0268b1,
+ 0x0cc0c1c0,
+ 0xc4005c8b,
+ 0xb4813c80,
+ 0xb102c000,
+ 0xb7604220,
+ 0xd3125914,
+ 0x85026931,
+ 0xb9609e51,
+ 0xc1c04070,
+ 0xf03108e0,
+ 0xd0a4aa65,
+ 0xb4815889,
+ 0x0890c000,
+ 0xffff8510,
+ 0xc1c09301,
+ 0xe2108560,
+ 0xb76080ad,
+ 0xc0015b14,
+ 0xce3e3904,
+ 0xb9608521,
+ 0xf0314048,
+ 0xd0a4aa65,
+ 0xb4815889,
+ 0x0890c000,
+ 0xffff8510,
+ 0xe2209301,
+ 0xb780812d,
+ 0xc001588c,
+ 0xc1c03908,
+ 0x5d090d60,
+ 0xa885dac8,
+ 0xc000b422,
+ 0x68b1d312,
+ 0x0cc0c1c0,
+ 0xb4415c8b,
+ 0x9c22c000,
+ 0x508cb740,
+ 0x6cb1d312,
+ 0xc1c00a02,
+ 0x5c8b0cc0,
+ 0x3c80c400,
+ 0xc000b481,
+ 0x4220b101,
+ 0x6cb1d312,
+ 0x0cf0c1ca,
+ 0xb4415c8b,
+ 0xc00cc000,
+ 0xc0016d82,
+ 0xc1c038c0,
+ 0x5d8b0dc0,
+ 0xc000b423,
+ 0x84209c22,
+ 0xe0318502,
+ 0x09068d80,
+ 0x7f7cb55f,
+ 0x0cd2c472,
+ 0xb4810a02,
+ 0xb101c000,
+ 0x9e8a4220,
+ 0xc0010203,
+ 0x75002a40,
+ 0x9362c000,
+ 0x68a1d312,
+ 0xc1ca0a02,
+ 0x5c8b0cf0,
+ 0x3c80c400,
+ 0xc000b481,
+ 0x4220b101,
+ 0xa0e1f008,
+ 0x509cb740,
+ 0x7f6cb79f,
+ 0xf3109e51,
+ 0xcfff8021,
+ 0xb58028be,
+ 0xd312508c,
+ 0xc1c068a1,
+ 0x5c8b0cc0,
+ 0xc000b421,
+ 0x9c228c20,
+ 0xc006a605,
+ 0x87028420,
+ 0xc4720c06,
+ 0x0a020cd2,
+ 0xc000b481,
+ 0x4220b105,
+ 0x020b9eaa,
+ 0x2a04c001,
+ 0xc0017500,
+ 0xd31190c2,
+ 0xe1b16c81,
+ 0xb7608d00,
+ 0x09825914,
+ 0x4070b960,
+ 0x08e0c1c0,
+ 0x5889d0a4,
+ 0x3c80c400,
+ 0xc000b461,
+ 0x4220b104,
+ 0xa245f029,
+ 0x87100890,
+ 0x9281ffff,
+ 0xa973f050,
+ 0x796cb79f,
+ 0xf3109e55,
+ 0xcfff8021,
+ 0xf0502afa,
+ 0x020ba271,
+ 0x2a08c001,
+ 0xd3127500,
+ 0xc0026e81,
+ 0xe0b19082,
+ 0xc1c08d00,
+ 0xe1108760,
+ 0xb74082a3,
+ 0x09825b14,
+ 0x4048b960,
+ 0xd0a49e93,
+ 0xc4005889,
+ 0xb4613c80,
+ 0xb104c000,
+ 0xf0294220,
+ 0x0890a245,
+ 0x92a1ffff,
+ 0x588cb780,
+ 0xa943f010,
+ 0xa891da08,
+ 0xaa61f010,
+ 0xa95cf012,
+ 0xa9c7f050,
+ 0x8021f310,
+ 0xa94bd850,
+ 0xd8101884,
+ 0xf010a0c9,
+ 0xb79fa241,
+ 0xb73f7b6a,
+ 0xb73f7eec,
+ 0xf3107ff4,
+ 0xe2108021,
+ 0xe22082a3,
+ 0xcfff80bb,
+ 0xd8502af6,
+ 0xf010a249,
+ 0xf050a0dd,
+ 0x020ba0c6,
+ 0x2a10c001,
+ 0xc0007500,
+ 0xc01490c2,
+ 0xcfff9838,
+ 0xc1c02aee,
+ 0xc2800ec0,
+ 0xb4a15c8b,
+ 0xb79fc000,
+ 0xb7bf78ee,
+ 0xc006796e,
+ 0x9c228c60,
+ 0x6cb1d312,
+ 0xc1c00a02,
+ 0x5c8b0cc0,
+ 0x3c80c400,
+ 0xc000b481,
+ 0x4220b103,
+ 0x5a14b740,
+ 0x6d31d311,
+ 0x4058b960,
+ 0xc1c00085,
+ 0xf03108e0,
+ 0xd0a4aa45,
+ 0xb4815889,
+ 0x0890c000,
+ 0x9321ffff,
+ 0x3990c001,
+ 0x0940c1c0,
+ 0x588bd124,
+ 0xc000b461,
+ 0xa6059c22,
+ 0x8440c002,
+ 0x5a14b740,
+ 0xc4720a86,
+ 0x08820cd2,
+ 0x8502c00c,
+ 0xc000b421,
+ 0x4220b104,
+ 0xc0010189,
+ 0x75002a10,
+ 0x9302ffff,
+ 0x8d00e0d1,
+ 0x08029d47,
+ 0x4058b960,
+ 0x08e0c1c0,
+ 0x5889d0a4,
+ 0x3c80c400,
+ 0xc000b401,
+ 0x4220b104,
+ 0xa245f029,
+ 0xffff0890,
+ 0x9dc792a1,
+ 0x29eecfff,
+ 0x0cc0c1c0,
+ 0xb4615c8b,
+ 0xf010c000,
+ 0xb79fa94b,
+ 0xf0127b6c,
+ 0xb73fa94c,
+ 0xd8107bec,
+ 0xf310a9cb,
+ 0xf0108021,
+ 0xe210a953,
+ 0xd81282a3,
+ 0xf010a94c,
+ 0xf010a249,
+ 0xb79fa0cd,
+ 0xb73f7c6c,
+ 0xb73f75ea,
+ 0xf3107572,
+ 0xe2108021,
+ 0xe22082a3,
+ 0x0d8680bb,
+ 0xa251f010,
+ 0xa0cdd810,
+ 0xa0cad810,
+ 0x9b7efff4,
+ 0x68d1d312,
+ 0xc1c00a02,
+ 0x5c8b0cc0,
+ 0x3c80c400,
+ 0xc000b481,
+ 0x4220b104,
+ 0x3a20c001,
+ 0x68d1d312,
+ 0x0cc0c1c0,
+ 0xb4815c8b,
+ 0xb79fc000,
+ 0xb7bf7c6e,
+ 0xc0047cee,
+ 0x9c228c00,
+ 0xa285f839,
+ 0xaa61f010,
+ 0xc0007500,
+ 0xd0089164,
+ 0x9e48a8c1,
+ 0xc2000a06,
+ 0x30985200,
+ 0xa0c1d008,
+ 0x0d38d011,
+ 0xa9f2d010,
+ 0x1a30f011,
+ 0xa943f010,
+ 0xc0001984,
+ 0xcff193e2,
+ 0xcff08702,
+ 0xc00f8700,
+ 0xc00e087e,
+ 0xc050087c,
+ 0xf0290c1a,
+ 0xd020a8c5,
+ 0x5ca12095,
+ 0x22109e4d,
+ 0x5a20c200,
+ 0xba0930d8,
+ 0xb4204006,
+ 0xf011c000,
+ 0x19841a30,
+ 0x91e4ffff,
+ 0x802ff210,
+ 0xa241f010,
+ 0xaa9df9f8,
+ 0xa60d9c22,
+ 0x59409e5d,
+ 0x5841f124,
+ 0x2d2ed3f1,
+ 0x4422b350,
+ 0x93e2c002,
+ 0xaa61f008,
+ 0x2a1ce000,
+ 0x4422b425,
+ 0xaa61d808,
+ 0xe2108522,
+ 0x2a1c88a9,
+ 0x9ea31218,
+ 0x0a7ec00e,
+ 0x400bba1b,
+ 0x5207c200,
+ 0xc0012128,
+ 0x9e599276,
+ 0x5a20c100,
+ 0xc2001103,
+ 0x9ea25209,
+ 0x58a1c200,
+ 0xd0319e8d,
+ 0xd2080cb0,
+ 0xc00ea8a2,
+ 0xc2002a7c,
+ 0xc00e5207,
+ 0x349a2a7c,
+ 0xa0a2d208,
+ 0xa963f008,
+ 0xd3f19ea1,
+ 0xc2012a2e,
+ 0xf3108128,
+ 0x85028821,
+ 0xa261f008,
+ 0xa127d228,
+ 0xcff09eab,
+ 0x59402d01,
+ 0x35225941,
+ 0x2d7cc00e,
+ 0x9bb1fff4,
+ 0x92e0c000,
+ 0xaa21d208,
+ 0x000b9e5e,
+ 0x324250d8,
+ 0xa205d029,
+ 0xa8e1f008,
+ 0x291ed013,
+ 0x8029f210,
+ 0x9e447510,
+ 0xf0080098,
+ 0xb350a0e1,
+ 0xb79f4426,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0xa60d9c22,
+ 0x9e690685,
+ 0x0b029e9e,
+ 0x0a867182,
+ 0x9208c000,
+ 0x16d29ea9,
+ 0xc2809e69,
+ 0xd0115a84,
+ 0x71021a52,
+ 0x08e2d011,
+ 0x2b1ed3f1,
+ 0x9286ffff,
+ 0x0a62d011,
+ 0x028d7510,
+ 0x91d4c000,
+ 0x0d029e73,
+ 0xfff40922,
+ 0x1aa09b70,
+ 0x0a52d011,
+ 0x9e837510,
+ 0x92d2ffff,
+ 0x0d069e73,
+ 0x0952d011,
+ 0x297cc00e,
+ 0x9b61fff4,
+ 0x9e837590,
+ 0x92f4c000,
+ 0x1a60d031,
+ 0x2b4ed3f1,
+ 0x9e739e6c,
+ 0x5299c200,
+ 0x295ed3f2,
+ 0xfff40922,
+ 0x9e839b50,
+ 0x52b8c200,
+ 0x75909ea9,
+ 0xffff16d2,
+ 0x9e7391b2,
+ 0x2d5ed3f2,
+ 0xfff4010d,
+ 0xb79f9b42,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0xf0119c22,
+ 0x9e990ca0,
+ 0x5a04d09a,
+ 0x1a42d00d,
+ 0x909ac000,
+ 0x12421203,
+ 0x9ea29e4b,
+ 0x9360fffc,
+ 0x8420a60d,
+ 0x9e558502,
+ 0x7f7cb55f,
+ 0x7ffcb55f,
+ 0xaa61f010,
+ 0x8c8ee011,
+ 0x1a080307,
+ 0xd226750a,
+ 0x8540590c,
+ 0x8044e05a,
+ 0x90a0c003,
+ 0x9180c000,
+ 0x92a0c000,
+ 0x93c0c000,
+ 0x9100c001,
+ 0x9200c001,
+ 0x9060c002,
+ 0x8d88e011,
+ 0xd0729e8b,
+ 0xb5a01954,
+ 0xfff4500c,
+ 0xc0029bc8,
+ 0xb7409200,
+ 0x9ea95014,
+ 0x8d88e011,
+ 0x15149e8b,
+ 0x9bbdfff4,
+ 0x90a0c002,
+ 0x8d88e011,
+ 0xd3f29e8b,
+ 0x0916295e,
+ 0x9aebfff4,
+ 0x500cb5a0,
+ 0x9320c001,
+ 0x8d88e011,
+ 0xd3f29e8b,
+ 0x0916295e,
+ 0x9adffff4,
+ 0x91e0c001,
+ 0xaa41d208,
+ 0xf0119e8b,
+ 0x4a7d8c88,
+ 0x2aced012,
+ 0x09060d06,
+ 0xfff4018b,
+ 0x9e839ad0,
+ 0x018b9e6a,
+ 0xfff40d02,
+ 0xc0009aca,
+ 0xd2089340,
+ 0x9e8baa41,
+ 0x8c88f011,
+ 0xd0124a7d,
+ 0x0d022ace,
+ 0x018b0906,
+ 0x9abbfff4,
+ 0x9e6a9e83,
+ 0xc00e018b,
+ 0xfff40d7e,
+ 0xc0009ab4,
+ 0xc0019080,
+ 0xb79f90e0,
+ 0xc00f7e68,
+ 0xc00e0cfe,
+ 0x9e4a0cfc,
+ 0x7c68b59f,
+ 0x7f6cb73f,
+ 0x0a02cff1,
+ 0x0a00cff0,
+ 0x0c9ac050,
+ 0xc2002218,
+ 0x20945a21,
+ 0x324258a0,
+ 0x4006ba24,
+ 0x7f6cb59f,
+ 0xc000b481,
+ 0xa943f208,
+ 0x7fecb79f,
+ 0x8021f310,
+ 0xa241f208,
+ 0x7e6eb79f,
+ 0x7eeeb7bf,
+ 0x7f6eb7df,
+ 0x8c00c002,
+ 0xa61d9c22,
+ 0x85028440,
+ 0xf0319e9d,
+ 0x0b02abe5,
+ 0x7878b55f,
+ 0x7efcb55f,
+ 0x9d3a718e,
+ 0x91e8c001,
+ 0x7502aa41,
+ 0x9392c000,
+ 0xaad1d018,
+ 0x8d08e032,
+ 0x8d00e051,
+ 0x9eb19dcf,
+ 0xb55f8510,
+ 0xc0027f7c,
+ 0xc2800a9c,
+ 0x018b5a95,
+ 0x9a1efff4,
+ 0x7f7cb75f,
+ 0x5a88c280,
+ 0x8122c301,
+ 0x91a0c000,
+ 0x8d88e031,
+ 0x050b9dcf,
+ 0xb55f8510,
+ 0xfff47f7c,
+ 0xb75f9b23,
+ 0x0b047f7c,
+ 0xfffe718e,
+ 0xb79f92a6,
+ 0xc0507868,
+ 0xb4810c9e,
+ 0xc050c000,
+ 0xb4e20d16,
+ 0xb71fc000,
+ 0xb79f7eec,
+ 0xb7bf7d6e,
+ 0xb7df7dee,
+ 0xb7ff7e6e,
+ 0xc0027eee,
+ 0x9c228c40,
+ 0xc450a605,
+ 0x0a020c8a,
+ 0xc000b481,
+ 0x4240b102,
+ 0x2d7ce00e,
+ 0x5d10d104,
+ 0x0a02c801,
+ 0xc0300a40,
+ 0xb4810c8a,
+ 0x08c2c000,
+ 0xb4210c84,
+ 0xb740c000,
+ 0xf0485e0c,
+ 0xf210a947,
+ 0xf048802d,
+ 0xc450a245,
+ 0x0a020c86,
+ 0xc000b481,
+ 0x4220b101,
+ 0x0a42c801,
+ 0x0a00c010,
+ 0x0caac032,
+ 0xc000b481,
+ 0xc03408aa,
+ 0xb4220d1e,
+ 0xc450c000,
+ 0x0a020cf2,
+ 0xc000b481,
+ 0x4220b101,
+ 0x1910d053,
+ 0x570cb780,
+ 0xa891f248,
+ 0x88a3f210,
+ 0x0d060d82,
+ 0xffd4018b,
+ 0xc0809b9e,
+ 0xb4a10ca2,
+ 0xc002c000,
+ 0xc0140d82,
+ 0x700a9954,
+ 0x9364ffff,
+ 0x09820daa,
+ 0xc1210d0a,
+ 0xffd40902,
+ 0xb7809939,
+ 0xf248570c,
+ 0xc0a1a992,
+ 0x0d040d02,
+ 0xffd409c2,
+ 0xc0c09924,
+ 0x09920d82,
+ 0x09420d42,
+ 0x9957c014,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xc010a60d,
+ 0xb7208400,
+ 0xb780570c,
+ 0x2a2049ad,
+ 0xb7c07500,
+ 0x09025914,
+ 0x9182c000,
+ 0x7108b783,
+ 0xc0007500,
+ 0xd29090e2,
+ 0x7500aa41,
+ 0x9164c005,
+ 0x49adb720,
+ 0x2a18d011,
+ 0xd0027500,
+ 0xc0003924,
+ 0xd0119124,
+ 0x75002a14,
+ 0x3922d002,
+ 0x3926d001,
+ 0x0c82c050,
+ 0xc000b441,
+ 0xb7409d87,
+ 0x0dc2468c,
+ 0xc01009c2,
+ 0xcff00d02,
+ 0xffd40c81,
+ 0xb78398fb,
+ 0x9d1b7108,
+ 0xcff07500,
+ 0xc0000b01,
+ 0xd2909282,
+ 0x7500aa41,
+ 0x91e2c000,
+ 0x606cb79f,
+ 0x8d00f211,
+ 0x2a00c010,
+ 0xcff07500,
+ 0xf3100a03,
+ 0xb3468001,
+ 0xb79e4422,
+ 0xc8014068,
+ 0xc01008c2,
+ 0xc0320880,
+ 0xb59f0cea,
+ 0xb421606c,
+ 0xb783c000,
+ 0x75007108,
+ 0x9282c001,
+ 0x7208b783,
+ 0xc0017500,
+ 0xb72091e2,
+ 0xd011510c,
+ 0x75002a12,
+ 0x9102c001,
+ 0x5f14b7a0,
+ 0x5a0cb7a0,
+ 0xaa21f210,
+ 0x28f99eab,
+ 0x510cb520,
+ 0x9c629ea4,
+ 0x5c8cb720,
+ 0x4129b780,
+ 0xc0007500,
+ 0xf20892a4,
+ 0xf210a9a1,
+ 0x0d82a83d,
+ 0x9c629e84,
+ 0xa8a5f250,
+ 0xf2089eab,
+ 0x0982a021,
+ 0x9c629e8c,
+ 0xaa21da08,
+ 0x7b8ab581,
+ 0xa9cdda10,
+ 0xfff49eb3,
+ 0xc8019aa6,
+ 0xc00a0a02,
+ 0xc0300a00,
+ 0xb4810c8a,
+ 0xc008c000,
+ 0x0c8408c2,
+ 0xc000b421,
+ 0x0a02c008,
+ 0xb4810c88,
+ 0xc0c0c000,
+ 0x09920d82,
+ 0x0d02c008,
+ 0x0902c008,
+ 0x989dc014,
+ 0x0a02c008,
+ 0x0c8ec030,
+ 0xc000b481,
+ 0x598cb720,
+ 0xb5408506,
+ 0xfff44039,
+ 0xb79f9ad1,
+ 0xb7bf6eee,
+ 0xb7df6f6e,
+ 0xc0106fee,
+ 0x9c228c60,
+ 0xa205f839,
+ 0x0c82c450,
+ 0xb4810a02,
+ 0xb101c000,
+ 0xc0084220,
+ 0xc0300a40,
+ 0xb4810c8e,
+ 0xc002c000,
+ 0xc05038c0,
+ 0xb4210c82,
+ 0xc0c0c000,
+ 0x09920d82,
+ 0x0d02c008,
+ 0x0902c008,
+ 0x9869c014,
+ 0x0a02c008,
+ 0x0c8ec030,
+ 0xc000b481,
+ 0xaa1df9f8,
+ 0x9000fff5,
+ 0xf011a60d,
+ 0xc0010eb0,
+ 0xc01e9182,
+ 0xc0080f7e,
+ 0xc0300b02,
+ 0xc0400e8e,
+ 0x9e747540,
+ 0x0c96c050,
+ 0x4426b354,
+ 0xc20012d8,
+ 0xb4815a14,
+ 0xc030c000,
+ 0xb4c20d0a,
+ 0xb4c5c000,
+ 0xc030c000,
+ 0xb4c10c96,
+ 0xc0c0c000,
+ 0x09920d82,
+ 0x0d02c008,
+ 0x0902c008,
+ 0x9835c014,
+ 0xc000b4c5,
+ 0xfffe7540,
+ 0xfff493c4,
+ 0xb79f9a6f,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0xb4639c22,
+ 0x9c22c000,
+ 0xa062f812,
+ 0xc2009c22,
+ 0x5d890d80,
+ 0x09829e59,
+ 0x3d80c400,
+ 0xc000b463,
+ 0x4620b203,
+ 0x9c220007,
+ 0x9c8fc127,
+ 0x080a9c22,
+ 0x56f1b971,
+ 0x9c81c017,
+ 0x9c80c071,
+ 0x9c80c017,
+ 0x4000b960,
+ 0xffff9c22,
+ 0x9e5c9280,
+ 0xd1a401c6,
+ 0x08825889,
+ 0x3c80c400,
+ 0xc000b421,
+ 0x4220b104,
+ 0x9e532244,
+ 0xffff7106,
+ 0x9c229324,
+ 0xc004a60d,
+ 0xc8298420,
+ 0xc4a40ca2,
+ 0xc0300cf0,
+ 0xe133ac3d,
+ 0xc0388d00,
+ 0xc030a45d,
+ 0xc038ac3d,
+ 0xc010a45d,
+ 0xc018ac3d,
+ 0xc010a45d,
+ 0xc018ac25,
+ 0xb7a0a445,
+ 0x9ea9570c,
+ 0xb5408502,
+ 0xb541651a,
+ 0xb7404b98,
+ 0x0dc2468c,
+ 0x0d42c00a,
+ 0xffb409c2,
+ 0xd2519ba9,
+ 0xda080a58,
+ 0x7502aa01,
+ 0xc0009ead,
+ 0xb5809084,
+ 0xf290448c,
+ 0x2a08aa2d,
+ 0xc0007500,
+ 0x850690a4,
+ 0x449cb540,
+ 0x5e0cb780,
+ 0xa8a1f210,
+ 0xf2108502,
+ 0xb540a8a6,
+ 0xb540509c,
+ 0xf208481a,
+ 0xf208a103,
+ 0xf210a085,
+ 0xf208a929,
+ 0xf210a08a,
+ 0xf210a92e,
+ 0xf208a8b2,
+ 0xf250a10d,
+ 0xf208a8b1,
+ 0xf208a112,
+ 0xf208a096,
+ 0xc050a09a,
+ 0x08c00cf2,
+ 0xa085f248,
+ 0xc000b421,
+ 0xc0360a0a,
+ 0xb4810c92,
+ 0x0896c000,
+ 0xb4211c8c,
+ 0xf031c000,
+ 0xe1318c00,
+ 0x9ea38d80,
+ 0x5c8cb7c0,
+ 0x7ffcb55f,
+ 0xb9600d02,
+ 0xf2084078,
+ 0x9dbaa103,
+ 0x5d0dd122,
+ 0xf0299e2d,
+ 0xd012a8e5,
+ 0x5c882cae,
+ 0x5908d126,
+ 0xe0389e4a,
+ 0x0d04aa4d,
+ 0x50a828bc,
+ 0xa2413242,
+ 0x91c1ffff,
+ 0xaa61f010,
+ 0x0c8ec036,
+ 0xc000b481,
+ 0x7fecb73f,
+ 0xb4211c84,
+ 0xc014c000,
+ 0xd2089999,
+ 0x7500aa4d,
+ 0x9262c000,
+ 0xaa2df290,
+ 0x2ac8f011,
+ 0x91a4c000,
+ 0x2a00c800,
+ 0xc0007500,
+ 0xf20890c4,
+ 0xfff4a9c6,
+ 0xd2089ae3,
+ 0xf290a2cd,
+ 0xd011a8ad,
+ 0x75002a14,
+ 0x9104c000,
+ 0x0a42c809,
+ 0x0a50c5c2,
+ 0x530cb580,
+ 0x460cb780,
+ 0xc0007500,
+ 0xc0809162,
+ 0x2a045a31,
+ 0x0ceac03e,
+ 0xc000b481,
+ 0x9280c000,
+ 0x448cb780,
+ 0xc0007502,
+ 0xc100915c,
+ 0x74402880,
+ 0xd0010a0e,
+ 0xc0001a46,
+ 0x0a029060,
+ 0x0ceac03e,
+ 0xc000b481,
+ 0x7a6eb79f,
+ 0x7aeeb7bf,
+ 0x7b6eb7df,
+ 0x8c00c006,
+ 0xb7809c22,
+ 0xc0c8538c,
+ 0xb9600892,
+ 0xd01140f8,
+ 0xf0290948,
+ 0xd0a4aa45,
+ 0xb4815889,
+ 0x0890c000,
+ 0x9321ffff,
+ 0xa6059c22,
+ 0x460cb720,
+ 0x7d0cb780,
+ 0x0a047440,
+ 0x7d0cb580,
+ 0x9364c000,
+ 0x7108b783,
+ 0xc0007500,
+ 0xb72092c2,
+ 0xb780448c,
+ 0x7442510c,
+ 0xb5803a40,
+ 0xc000510c,
+ 0xb780919c,
+ 0xd2085c8c,
+ 0x7440a889,
+ 0x90a4c000,
+ 0xb5438506,
+ 0xc8017818,
+ 0xc0100a42,
+ 0xc0320a00,
+ 0xb4810cea,
+ 0xc008c000,
+ 0xc00208c2,
+ 0xb4211ce0,
+ 0xc008c000,
+ 0xc0300a42,
+ 0xb4820d0e,
+ 0xc450c000,
+ 0xc0080c82,
+ 0xb4811a40,
+ 0xb101c000,
+ 0xc0024220,
+ 0xc05038c0,
+ 0xb4210c82,
+ 0xc0c0c000,
+ 0x09920d82,
+ 0x0d02c008,
+ 0x0902c008,
+ 0x9aa7fff4,
+ 0x0c86c450,
+ 0xb4810a02,
+ 0xb105c000,
+ 0xc0084220,
+ 0xc0300a00,
+ 0xb4820d0e,
+ 0x0c84c000,
+ 0x1a00c008,
+ 0xc000b481,
+ 0x4220b101,
+ 0x5a35c080,
+ 0x0902c801,
+ 0xc00e0940,
+ 0xd0a828fc,
+ 0xd0715910,
+ 0xc03029ce,
+ 0x9dc80c8a,
+ 0xc000b441,
+ 0x0c840a42,
+ 0xc000b481,
+ 0xc0007680,
+ 0xb7209182,
+ 0xb7405e0c,
+ 0xf21044bd,
+ 0xf3108a27,
+ 0xb5808021,
+ 0xc45044ad,
+ 0x0a020c86,
+ 0xc000b481,
+ 0x4220b105,
+ 0xb4810cec,
+ 0xb105c000,
+ 0x12d64220,
+ 0xc03408ea,
+ 0xb4210c9e,
+ 0xb780c000,
+ 0xf248570c,
+ 0xd053a891,
+ 0xf2101950,
+ 0x0d8288a3,
+ 0xc2800d06,
+ 0xb5805a0c,
+ 0x018b508c,
+ 0x9873ffd4,
+ 0x0ca2c080,
+ 0xc000b4a1,
+ 0x478cb780,
+ 0xb4810c88,
+ 0xb7a0c000,
+ 0xc0025894,
+ 0xfff40d82,
+ 0x700a9a22,
+ 0x9364ffff,
+ 0x7d0cb780,
+ 0xa8adf210,
+ 0xa8a2f250,
+ 0x9e496243,
+ 0xc0007102,
+ 0x850690b8,
+ 0x7618b543,
+ 0x460cb780,
+ 0x0a827500,
+ 0x9204c001,
+ 0x448cb780,
+ 0xc0007502,
+ 0xb783933c,
+ 0x75007108,
+ 0x9282c000,
+ 0x458cb780,
+ 0xb5802a79,
+ 0xffd4458c,
+ 0xb7839831,
+ 0x75007808,
+ 0x90c2c000,
+ 0x9908ffd4,
+ 0x7808b5a3,
+ 0x98cdffd4,
+ 0x7108b783,
+ 0xc0007500,
+ 0xc01493e2,
+ 0xb780998d,
+ 0xd2085c8c,
+ 0x7440a889,
+ 0x92c2c000,
+ 0x0a82c080,
+ 0x9240c000,
+ 0xffd40d82,
+ 0xb7839899,
+ 0x75007208,
+ 0x90e2c000,
+ 0xffd40d82,
+ 0xc0009845,
+ 0x0d8290a0,
+ 0x997affd4,
+ 0x0ca6c080,
+ 0xc000b4a1,
+ 0x0d92c002,
+ 0x99c5fff4,
+ 0xffff700a,
+ 0x0dea9364,
+ 0x0d0a0982,
+ 0x0902c121,
+ 0x99aaffb4,
+ 0x570cb780,
+ 0xa992f248,
+ 0x0d02c0a1,
+ 0x09c20d04,
+ 0x9995ffb4,
+ 0x0d82c0c0,
+ 0x0d420992,
+ 0xfff40942,
+ 0x0a0299c8,
+ 0x0ceac03e,
+ 0xc000b481,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xb720a61d,
+ 0xb720570c,
+ 0xd09149b5,
+ 0x75002e10,
+ 0xc0049e8f,
+ 0xd0119022,
+ 0x85062e14,
+ 0x7118b543,
+ 0x75000b82,
+ 0x7d0cb5e0,
+ 0x7608b5e3,
+ 0x9082c000,
+ 0x7198b543,
+ 0x2e10d111,
+ 0xc0007500,
+ 0xb5439082,
+ 0xd2117218,
+ 0x75002e10,
+ 0x9082c000,
+ 0x7298b543,
+ 0x7208b783,
+ 0xb7c07500,
+ 0xc0025f14,
+ 0xc8099144,
+ 0xc5e40a42,
+ 0xc8090a60,
+ 0xc68008c2,
+ 0xc80908b0,
+ 0xc6d20cc2,
+ 0xc8090c90,
+ 0xc6a00942,
+ 0xc8090900,
+ 0xc5dc0d42,
+ 0xc8090d50,
+ 0xc75e09c2,
+ 0xc8090990,
+ 0xc7aa0dc2,
+ 0xc8090d80,
+ 0xc8120c42,
+ 0xc8090c20,
+ 0xc5d00842,
+ 0xc8090820,
+ 0xc5d40ac2,
+ 0xc8090ae0,
+ 0xc5d00ec2,
+ 0xc8090ec0,
+ 0xc8140b42,
+ 0xf2100b20,
+ 0xf210a249,
+ 0xf210a0d1,
+ 0xf210a0d6,
+ 0xf210a159,
+ 0xf210a14e,
+ 0xf250a1dd,
+ 0xf250a1c2,
+ 0xf250a046,
+ 0xf210a049,
+ 0xf210a2c5,
+ 0xf250a2c2,
+ 0xf210a34d,
+ 0xd151aa4d,
+ 0x9eab0ef0,
+ 0x9c629ea4,
+ 0x590cb720,
+ 0xaa21d208,
+ 0x41abb580,
+ 0x41b3b720,
+ 0x438ab5e0,
+ 0x5014b520,
+ 0x588cb7c0,
+ 0xaa69f2d0,
+ 0xa8d9f208,
+ 0xc0007048,
+ 0xb7809142,
+ 0xf2485f0c,
+ 0xd152a88d,
+ 0x9e8c0df0,
+ 0xb7839c62,
+ 0x75007108,
+ 0x9062c004,
+ 0x4614b720,
+ 0xc0037640,
+ 0xb72093c4,
+ 0x7440438a,
+ 0x90e2c000,
+ 0xaa55da08,
+ 0xc0017048,
+ 0xb7a09004,
+ 0xb7835c94,
+ 0xb7a07188,
+ 0xda085f0c,
+ 0xb520a9d6,
+ 0x850a4392,
+ 0xd2107500,
+ 0xf208a0aa,
+ 0xe001a8a9,
+ 0x9d4f8d24,
+ 0x9e8c1d84,
+ 0xf2089c62,
+ 0x9eaeaa31,
+ 0x9ea40d8a,
+ 0xc0009c62,
+ 0xb7809180,
+ 0xf2085f0c,
+ 0x9ea6a891,
+ 0x5c94b7a0,
+ 0x9e8c0d86,
+ 0xb7809c62,
+ 0xb723438a,
+ 0xb7207208,
+ 0x0a045914,
+ 0x438ab580,
+ 0xaa29d210,
+ 0xb5807440,
+ 0xc0014849,
+ 0xb7a09024,
+ 0xf2105a0c,
+ 0x9eaba8c1,
+ 0x9c629e8c,
+ 0xaa29d210,
+ 0xc0007500,
+ 0xf20892a4,
+ 0xf210a9a1,
+ 0x0d82a85d,
+ 0x9c629e84,
+ 0xa021f208,
+ 0xa845f250,
+ 0x09829eab,
+ 0x9c629e84,
+ 0xaa21da08,
+ 0x7b8ab581,
+ 0x448cb780,
+ 0xc0007502,
+ 0x0d8690bc,
+ 0x9b04ffb4,
+ 0xaa29d210,
+ 0xc0007500,
+ 0xb7209122,
+ 0xb780558c,
+ 0x3a08412d,
+ 0x90e0c000,
+ 0x558cb720,
+ 0x412db780,
+ 0xb5802a75,
+ 0xb723412d,
+ 0xb7807108,
+ 0x7440510c,
+ 0xb5803a04,
+ 0xc000510c,
+ 0xd15191c4,
+ 0xb7400e70,
+ 0xd208590c,
+ 0xd208a882,
+ 0xb520a881,
+ 0xd8085014,
+ 0xb79fa0cd,
+ 0xb7bf7e6e,
+ 0xb7df7eee,
+ 0xb7ff7f6e,
+ 0xc0027fee,
+ 0x9c228c00,
+ 0xb783a60d,
+ 0x75007208,
+ 0x5f14b7a0,
+ 0xc0000b02,
+ 0xb7a09262,
+ 0xf2105a0c,
+ 0xf208a83d,
+ 0x0d8aa9a1,
+ 0x9c629e84,
+ 0xa021f208,
+ 0xa825f250,
+ 0x09869eab,
+ 0x9c629e84,
+ 0x7208b783,
+ 0xb7c07500,
+ 0xc0005094,
+ 0xb7609124,
+ 0xf2105a14,
+ 0x9e84a825,
+ 0x03019c62,
+ 0x5c8cb720,
+ 0x4129b780,
+ 0x02837500,
+ 0x9224c000,
+ 0x7208b783,
+ 0xc0007500,
+ 0xf25090c4,
+ 0x9ea4aa21,
+ 0xf2109c62,
+ 0x9eb1aa35,
+ 0x9ea415e2,
+ 0xf2109c62,
+ 0x9eb3aa39,
+ 0x9ea4018b,
+ 0xb7209c62,
+ 0xb780570c,
+ 0xc40049ad,
+ 0x75002a00,
+ 0x9102c000,
+ 0xd2088502,
+ 0x8506a12b,
+ 0xa123d208,
+ 0x510cb780,
+ 0x2a3dcffe,
+ 0x510cb580,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0xc002a61d,
+ 0xc8298420,
+ 0xc4ae0ca2,
+ 0x02070c80,
+ 0xac3dc010,
+ 0x8d00e0b3,
+ 0xa45dc018,
+ 0x0ca2c829,
+ 0x0cc0c4ae,
+ 0xac3dc010,
+ 0x8c80e072,
+ 0xc0189d1a,
+ 0xc01ca45d,
+ 0x9e5f7d3e,
+ 0x9162c000,
+ 0x8c80f0b2,
+ 0xc0060faa,
+ 0xb53f08e2,
+ 0xc0007f6c,
+ 0x06839100,
+ 0xc0060fa6,
+ 0xb59f0a56,
+ 0x0b027f6c,
+ 0x0c82c450,
+ 0xb4810a02,
+ 0xb101c000,
+ 0xb53f4220,
+ 0xc0087fec,
+ 0xc0300a40,
+ 0xb4810c8a,
+ 0xc008c000,
+ 0x0c8408c2,
+ 0xc000b421,
+ 0x9e7b9ebb,
+ 0x9aeec094,
+ 0x9e799e7c,
+ 0x714e6289,
+ 0x03890258,
+ 0x4422b357,
+ 0x028f71c2,
+ 0x9086c003,
+ 0x0f1ac050,
+ 0x7f6cb79f,
+ 0x7f6cb73f,
+ 0xf210710a,
+ 0x020ba8a2,
+ 0x4434b314,
+ 0x294ed3f1,
+ 0xc1009e4c,
+ 0x309858e0,
+ 0xc000b426,
+ 0xc00074b0,
+ 0xf21092d4,
+ 0xb486aa25,
+ 0xc004c000,
+ 0xc00074b0,
+ 0xf21090d4,
+ 0xb486aa29,
+ 0xc008c000,
+ 0xc00074b0,
+ 0xf21090d4,
+ 0xb486aa2d,
+ 0xd011c000,
+ 0xd3f10a62,
+ 0x75882b4e,
+ 0xd0010882,
+ 0xe0000892,
+ 0x0a0212d4,
+ 0x0a42d001,
+ 0x3098e000,
+ 0x9082c001,
+ 0x0c96c050,
+ 0xc000b4c1,
+ 0x7fecb73f,
+ 0xd0511c94,
+ 0xb4813a10,
+ 0xc0c0c000,
+ 0x09920d82,
+ 0x0902c008,
+ 0x0d02c008,
+ 0x9b77ffd4,
+ 0x0c86c450,
+ 0xb4810a02,
+ 0xb101c000,
+ 0xc0084220,
+ 0xc0300a00,
+ 0xb4810c8e,
+ 0x0b02c000,
+ 0x71489e7c,
+ 0x9048fffd,
+ 0xb79f000f,
+ 0xb7bf7bee,
+ 0xb7df7c6e,
+ 0xb7ff7cee,
+ 0xc0047d6e,
+ 0x9c228c20,
+ 0x4b0cb720,
+ 0xc0ff9e5c,
+ 0xc0ff2a40,
+ 0x710228c0,
+ 0xc0008502,
+ 0x85069062,
+ 0x4b9cb540,
+ 0x4b14b560,
+ 0xa6059c22,
+ 0xd0519e5d,
+ 0x75002a50,
+ 0x90e4c000,
+ 0x4b8cb780,
+ 0xc0007500,
+ 0xc0c09142,
+ 0xc0120d82,
+ 0x0d0209c2,
+ 0xffd40942,
+ 0xb7809b34,
+ 0xc0344b0c,
+ 0xb4810cb6,
+ 0xc034c000,
+ 0xb4a20d32,
+ 0xb5a0c000,
+ 0xb79f4a8c,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa61d9c22,
+ 0xb7838420,
+ 0x75007108,
+ 0x9122c000,
+ 0x590cb780,
+ 0xa881d288,
+ 0xc0197440,
+ 0xb7c092a4,
+ 0x9eb1568c,
+ 0x468cb740,
+ 0x098e0dc2,
+ 0x0d42c002,
+ 0x9aeaff94,
+ 0xaa55f208,
+ 0x5614b7c0,
+ 0xa8c5f208,
+ 0xa8caf208,
+ 0x570cb7a0,
+ 0x478cb580,
+ 0xa0d5f210,
+ 0xaa59da08,
+ 0xa8ddda08,
+ 0xa0def210,
+ 0x08d0d252,
+ 0xa259f210,
+ 0xa0c1f250,
+ 0xa942da08,
+ 0x404bb740,
+ 0x0a50d131,
+ 0xa881da08,
+ 0xda889e53,
+ 0x5915a8d2,
+ 0x5b90d124,
+ 0xa947f248,
+ 0x7e7edffc,
+ 0xc08060b2,
+ 0xc2005a7f,
+ 0x00985a71,
+ 0x58945893,
+ 0x80a3e210,
+ 0xa0ddf250,
+ 0x91e2c000,
+ 0x5d40e100,
+ 0x9164c000,
+ 0xaa55da88,
+ 0xb5208502,
+ 0xb5404792,
+ 0xb580489a,
+ 0xf288468a,
+ 0xd132aa21,
+ 0xf2500950,
+ 0xf250a255,
+ 0xda08a259,
+ 0xd810a8c1,
+ 0xf248aa41,
+ 0xda48a93b,
+ 0x6218a8ba,
+ 0x8021f310,
+ 0xa93dda48,
+ 0xa0caf250,
+ 0xa249f290,
+ 0xaa29da48,
+ 0xa151f250,
+ 0xa923f208,
+ 0xa8aeda48,
+ 0xc2006218,
+ 0xf3105a10,
+ 0xf2108021,
+ 0xf208a241,
+ 0x9e4ca927,
+ 0xa928f20a,
+ 0x588c6098,
+ 0x8023f210,
+ 0x82a3e210,
+ 0xa249f210,
+ 0xa8aada48,
+ 0xa0cdf210,
+ 0xaa41da08,
+ 0xa8c1d810,
+ 0xa0c6f210,
+ 0xa937f248,
+ 0x62430a04,
+ 0x5e0cb740,
+ 0x8021f310,
+ 0xa245f290,
+ 0xa8c1da08,
+ 0xa953f008,
+ 0xa8c2da08,
+ 0xa954f00a,
+ 0xe21058a0,
+ 0x5c9c80a3,
+ 0x82a3e020,
+ 0xaa2dda48,
+ 0xa0adf208,
+ 0xa0b2f208,
+ 0xa0c5f250,
+ 0xa0cef250,
+ 0xa251f210,
+ 0xa941d810,
+ 0x1880c004,
+ 0x4f0cb520,
+ 0x0a54d131,
+ 0xa881da08,
+ 0x1c80c002,
+ 0x4f94b520,
+ 0x59515940,
+ 0xa155f290,
+ 0x58d158c0,
+ 0xa0d9f290,
+ 0x0cf2c42e,
+ 0xb4810a02,
+ 0xb101c000,
+ 0x28844220,
+ 0xd1317440,
+ 0xc0000bd0,
+ 0xda089102,
+ 0xc09caa61,
+ 0xc012753e,
+ 0xc0c092f2,
+ 0xc05008c6,
+ 0xb4210ce2,
+ 0xf208c000,
+ 0x2a10aa59,
+ 0xc0007500,
+ 0xb7a09362,
+ 0xd2085c8c,
+ 0x7500aa2d,
+ 0x9282c000,
+ 0x570cb720,
+ 0x49b5b7a0,
+ 0x2e80e800,
+ 0x9184c000,
+ 0xa9a6f208,
+ 0xa9c1d2c8,
+ 0x29845d94,
+ 0x99fcfff4,
+ 0xa2aed208,
+ 0x570cb760,
+ 0xa959f208,
+ 0x0a30d131,
+ 0xa881da08,
+ 0x28a0d052,
+ 0x58917640,
+ 0x4e8cb520,
+ 0x9222c000,
+ 0xc0600a02,
+ 0xb4810cae,
+ 0xda08c000,
+ 0x7440a8c1,
+ 0x9302c000,
+ 0xb5408502,
+ 0xc0004e9c,
+ 0xc2009260,
+ 0x74802900,
+ 0x9122c000,
+ 0xc0600a0a,
+ 0xb4810cae,
+ 0xc000c000,
+ 0x0a0690e0,
+ 0x0caec060,
+ 0xc000b481,
+ 0xaa59f208,
+ 0x75002a04,
+ 0xb540850a,
+ 0xc000491c,
+ 0x850490a2,
+ 0x491cb540,
+ 0x7108b783,
+ 0xc0007500,
+ 0xb7839322,
+ 0x75007208,
+ 0x9284c000,
+ 0x460cb780,
+ 0xc0007500,
+ 0xb78391e2,
+ 0x75007288,
+ 0x9144c000,
+ 0x5f0cb720,
+ 0x5a14b760,
+ 0x402db780,
+ 0x9c629ea4,
+ 0xaa59f208,
+ 0x75002a20,
+ 0x90e2c000,
+ 0xaa41da08,
+ 0xc0007500,
+ 0xb7809244,
+ 0xb720590c,
+ 0xda08530c,
+ 0x9e8ca98e,
+ 0xb7839c62,
+ 0x75007108,
+ 0x90a2c000,
+ 0xb5438506,
+ 0xf2087b18,
+ 0x2a10aa59,
+ 0xc0017500,
+ 0xc2f09182,
+ 0xc0380a7e,
+ 0xb4810cfa,
+ 0xf248c000,
+ 0xc050a8c1,
+ 0xb4210ce6,
+ 0xf208c000,
+ 0xb720aa59,
+ 0x851a490c,
+ 0x0c82c038,
+ 0x75002a04,
+ 0xb5203890,
+ 0xc184490c,
+ 0xe00108e6,
+ 0xb5408d28,
+ 0xb4214d1c,
+ 0xb780c000,
+ 0xc800628c,
+ 0xc0020886,
+ 0xb5800c80,
+ 0xb421520c,
+ 0xffd4c000,
+ 0xb7809a66,
+ 0xc03e490c,
+ 0xb4810c82,
+ 0xb720c000,
+ 0xc0504d0c,
+ 0xb4210c82,
+ 0xda08c000,
+ 0xf290a941,
+ 0xda08a8d5,
+ 0x6123a946,
+ 0xda089e53,
+ 0x6097aa41,
+ 0x5d94b720,
+ 0xb5418702,
+ 0x857f7c82,
+ 0x459ab540,
+ 0xb540851a,
+ 0x0d86449a,
+ 0xb5801a04,
+ 0xb5404d8c,
+ 0x8526405b,
+ 0x415bb540,
+ 0x460ab540,
+ 0x18a05891,
+ 0x40cbb520,
+ 0x7fe4b55f,
+ 0x9bb2c014,
+ 0x7fe4b75f,
+ 0xb5438506,
+ 0xb5437a18,
+ 0xb5447a80,
+ 0xb5444000,
+ 0xb5434080,
+ 0xda087b80,
+ 0xf290a8c6,
+ 0x9e49aa55,
+ 0x5694b720,
+ 0x7c00b543,
+ 0xb7206243,
+ 0x8502434d,
+ 0xa9e2da08,
+ 0xc10158c8,
+ 0x9e892880,
+ 0x4e1cb540,
+ 0x519cb540,
+ 0xc0ff5dc0,
+ 0xca012dc0,
+ 0xc2003db0,
+ 0xb5805a11,
+ 0x3596450a,
+ 0x99b0fff4,
+ 0x0d82c0c0,
+ 0x09c2c012,
+ 0x09420d02,
+ 0x98ffffd4,
+ 0x0a829e7b,
+ 0x85467146,
+ 0x9168c001,
+ 0xfff49dcf,
+ 0xc0c099b0,
+ 0xc0120d82,
+ 0x0d0209c2,
+ 0xffd40906,
+ 0xd09198ee,
+ 0x71481e70,
+ 0xd00b0a02,
+ 0xda080a42,
+ 0xc200a9e2,
+ 0x9ea15a28,
+ 0xc0ff5dc0,
+ 0xc8012dc0,
+ 0x35963db0,
+ 0x9984fff4,
+ 0xd0519e7b,
+ 0xc2000a50,
+ 0xc2005a40,
+ 0x71465ac1,
+ 0xfffe8506,
+ 0xb7209326,
+ 0xb7805f0c,
+ 0x7500462d,
+ 0x857fcfce,
+ 0x7f9cb540,
+ 0x9102c000,
+ 0xa9def208,
+ 0x450ab760,
+ 0x9c629ea4,
+ 0xc0140d82,
+ 0xb78398e8,
+ 0x75007a88,
+ 0xb5438502,
+ 0xc0027a18,
+ 0xb7209324,
+ 0xb7a05f14,
+ 0x0b025a0c,
+ 0xb7830683,
+ 0x75007108,
+ 0x90c2c002,
+ 0x7208b783,
+ 0xc0027500,
+ 0xb7839022,
+ 0x75007b08,
+ 0x91c2c000,
+ 0x5f0cb760,
+ 0xa9a2f208,
+ 0x7b08b5c3,
+ 0xa869f048,
+ 0x9c629e84,
+ 0x430ab500,
+ 0x7c08b783,
+ 0xc0007500,
+ 0xf2109382,
+ 0x9eaba825,
+ 0x7c08b5c3,
+ 0x9c629e84,
+ 0xaa21f250,
+ 0x9c629ea4,
+ 0xa9a1f208,
+ 0xa83df210,
+ 0x9e840d86,
+ 0xf2509c62,
+ 0x9eabaa25,
+ 0xa021f208,
+ 0x9ea40986,
+ 0xb7839c62,
+ 0x75007c08,
+ 0x91e4c000,
+ 0xc0140d86,
+ 0xb7839898,
+ 0x75007c08,
+ 0x9342ffff,
+ 0x90a0c000,
+ 0xc0140d86,
+ 0xb783988e,
+ 0x75007a88,
+ 0x9222fffd,
+ 0x0d82c0c0,
+ 0x09c2c012,
+ 0x09060d02,
+ 0x9855ffd4,
+ 0x0a02c801,
+ 0x518cb580,
+ 0x0d82c0c0,
+ 0x09c2c012,
+ 0x09420d02,
+ 0x9849ffd4,
+ 0x5194b760,
+ 0x98eefff4,
+ 0xfff40d86,
+ 0xc0c098fc,
+ 0xc0120d82,
+ 0x0d0209c2,
+ 0xffd40906,
+ 0x8502983a,
+ 0x0892c006,
+ 0x0c9ac430,
+ 0xb5400902,
+ 0xc006519c,
+ 0xb4418510,
+ 0xb104c000,
+ 0x2a404220,
+ 0x9d537500,
+ 0x4422b314,
+ 0xe0000089,
+ 0xffff1884,
+ 0xb7409284,
+ 0xc0064614,
+ 0xc4300892,
+ 0x09020c9a,
+ 0x8512c006,
+ 0xc000b441,
+ 0x4220b104,
+ 0x2a00c002,
+ 0x9d4f7500,
+ 0x4422b313,
+ 0xe0000087,
+ 0xffff1884,
+ 0x0a029264,
+ 0x0ceac03e,
+ 0x40e8b960,
+ 0xc000b481,
+ 0x93c1ffff,
+ 0xc0007680,
+ 0x0a029122,
+ 0x0ceac03e,
+ 0xc000b481,
+ 0x9180c000,
+ 0x448cb780,
+ 0x088a7504,
+ 0x0ceac03e,
+ 0x1894d00c,
+ 0xc000b421,
+ 0x0d82c0c0,
+ 0x0d0209e2,
+ 0xffb40942,
+ 0x0a029be6,
+ 0x0cb6c034,
+ 0xc000b481,
+ 0x7deeb79f,
+ 0x7e6eb7bf,
+ 0x7eeeb7df,
+ 0x7f6eb7ff,
+ 0x8c20c002,
+ 0xa60d9c22,
+ 0x7efec01c,
+ 0xc0000a82,
+ 0xc0c09182,
+ 0xc0120d82,
+ 0x0d0209c2,
+ 0xffb40906,
+ 0xc0009bc8,
+ 0xc4349240,
+ 0x0a020cb2,
+ 0xc000b481,
+ 0x4220b101,
+ 0x74402884,
+ 0x90e2c000,
+ 0x7a08b783,
+ 0xc0097500,
+ 0xb78091a2,
+ 0x75024e0c,
+ 0x90c4c000,
+ 0xc0140d82,
+ 0x3ac09a29,
+ 0x5694b740,
+ 0x560cb740,
+ 0xa8c5d810,
+ 0xaa55f088,
+ 0x4592b720,
+ 0x9e496243,
+ 0x5a11c200,
+ 0xba090a04,
+ 0xba244002,
+ 0x70484002,
+ 0x06850305,
+ 0x9138c000,
+ 0x490cb780,
+ 0xb5802a51,
+ 0xc003490c,
+ 0xf21091c0,
+ 0x2a04aa39,
+ 0xc0027500,
+ 0xb78093a2,
+ 0x7440490c,
+ 0x3942d011,
+ 0x490cb540,
+ 0x929cc002,
+ 0x4792b760,
+ 0xba249e5c,
+ 0xc002400a,
+ 0xc00291a2,
+ 0xb760911c,
+ 0xb740650a,
+ 0x9e995e84,
+ 0xba099e2d,
+ 0xd0a24003,
+ 0x9e485e7f,
+ 0x5a6dc200,
+ 0xc2000208,
+ 0xd2265a17,
+ 0x0c065908,
+ 0x5a14c200,
+ 0x9e401208,
+ 0xa94ee038,
+ 0x4002ba24,
+ 0x9e545090,
+ 0xc0017902,
+ 0xb7819102,
+ 0x75004b88,
+ 0x9064c001,
+ 0x470ab780,
+ 0xba249e48,
+ 0x70084002,
+ 0x9378c000,
+ 0xc0007640,
+ 0xb78190e4,
+ 0x75024b08,
+ 0x92c2c000,
+ 0x1e32d011,
+ 0x478ab580,
+ 0x48fd9e54,
+ 0x470ab560,
+ 0x4b90b501,
+ 0xb5402959,
+ 0x20c2490c,
+ 0xc000a0c1,
+ 0x850290a0,
+ 0x4b98b541,
+ 0x458ab780,
+ 0x400aba24,
+ 0x90fcc000,
+ 0x650ab780,
+ 0xb5800a04,
+ 0xb720650a,
+ 0xc03e490c,
+ 0xb4210c82,
+ 0xb780c000,
+ 0x0a04458a,
+ 0x458ab580,
+ 0x9a96c014,
+ 0x7108b783,
+ 0xc0027500,
+ 0xb7839222,
+ 0x75007208,
+ 0x9182c002,
+ 0x518cb780,
+ 0x75002a40,
+ 0x90e4c000,
+ 0x4008b784,
+ 0xc002751a,
+ 0xb7809024,
+ 0xb721578c,
+ 0xda087c92,
+ 0x9e48a881,
+ 0xc0007002,
+ 0xb7809284,
+ 0x8502430a,
+ 0x7c9ab541,
+ 0x440ab580,
+ 0x4412b760,
+ 0x530cb780,
+ 0xb5438506,
+ 0xb5437b18,
+ 0x9ea47c18,
+ 0xf2109c62,
+ 0x2a10aa39,
+ 0xc0007500,
+ 0xb78393e2,
+ 0x75007c08,
+ 0x90e4c000,
+ 0x7c8ab781,
+ 0xc0007502,
+ 0xb78392a4,
+ 0x75007b08,
+ 0xd0010902,
+ 0xc4380922,
+ 0x0a020c82,
+ 0xc000b481,
+ 0x4220b101,
+ 0x309428f1,
+ 0x0c82c038,
+ 0xc000b421,
+ 0x983ec014,
+ 0x4e0cb780,
+ 0xa955f288,
+ 0x71040a04,
+ 0x4e0cb580,
+ 0x90a4c000,
+ 0xb5408502,
+ 0xda104e1c,
+ 0xb720a8a5,
+ 0x58914592,
+ 0xba0960a3,
+ 0x9e4c4003,
+ 0x08843a84,
+ 0x020b7102,
+ 0x2a3dcffe,
+ 0x4426b354,
+ 0xd0510289,
+ 0x744028d0,
+ 0x9142c000,
+ 0x0d82c0c0,
+ 0x09c2c012,
+ 0x09420d02,
+ 0x9a93ffb4,
+ 0x518cb780,
+ 0xc0007500,
+ 0x9eab90a2,
+ 0x9b45ffd4,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0xa205f839,
+ 0x4008b724,
+ 0x5204b740,
+ 0x448ab780,
+ 0x5908d0a6,
+ 0xb7409e2d,
+ 0xe030570c,
+ 0xb760a94e,
+ 0xb744631c,
+ 0xb7444098,
+ 0x1a044000,
+ 0x448ab580,
+ 0xa8cdc030,
+ 0x5a40e200,
+ 0x0a20d251,
+ 0xa882da08,
+ 0x82a3e210,
+ 0x5194b540,
+ 0x5c905c95,
+ 0x4008b524,
+ 0x92c4c001,
+ 0x4088b784,
+ 0xd3f10a04,
+ 0x744428ce,
+ 0x4088b584,
+ 0x9034c001,
+ 0x7f94b760,
+ 0xb5438506,
+ 0x24a67a98,
+ 0xb5437640,
+ 0xb5207c18,
+ 0xc0005194,
+ 0xd1319202,
+ 0xb78008a0,
+ 0xc801402b,
+ 0x9e483c80,
+ 0x5a40c200,
+ 0x2a40c0ff,
+ 0xb5803208,
+ 0x0806518c,
+ 0xaa1df9f8,
+ 0xb7249c22,
+ 0xb7404088,
+ 0xd0a65d84,
+ 0x9e2d5904,
+ 0xaa4dc830,
+ 0x448ab580,
+ 0x09a0d132,
+ 0x458ab720,
+ 0xaa61d810,
+ 0x4002ba19,
+ 0x5a11c200,
+ 0x70c81a04,
+ 0x9104c000,
+ 0x7f8cb780,
+ 0x3a00c040,
+ 0x7f8cb580,
+ 0x4e8cb720,
+ 0x0a18d011,
+ 0xc00070c8,
+ 0xb7809104,
+ 0xc0107f8c,
+ 0xb5803a00,
+ 0xd0117f8c,
+ 0x70c80a1c,
+ 0x9104c000,
+ 0x7f8cb780,
+ 0x3a00c020,
+ 0x7f8cb580,
+ 0x560cb780,
+ 0xa916f288,
+ 0xa919f288,
+ 0xb7209e50,
+ 0xd011460a,
+ 0x62411a24,
+ 0x4002ba09,
+ 0x704800b2,
+ 0x9106c000,
+ 0x7f8cb780,
+ 0x2a7acfff,
+ 0x7f8cb580,
+ 0x1a22d011,
+ 0x62459e52,
+ 0xc0007048,
+ 0xb7809106,
+ 0xc7fe7f8c,
+ 0xb5802a7e,
+ 0xb7407f8c,
+ 0xd0a2451a,
+ 0xf3105e11,
+ 0x70c88821,
+ 0x9104c000,
+ 0x7f8cb780,
+ 0x2a4ecfff,
+ 0x7f8cb580,
+ 0x568cb740,
+ 0x7f8cb720,
+ 0xaa45d808,
+ 0x9e8a9e50,
+ 0x5a11c200,
+ 0x62091a04,
+ 0x5194b720,
+ 0xba240a04,
+ 0x70c84002,
+ 0xb5202494,
+ 0xc0005194,
+ 0xc8019118,
+ 0xb5203c80,
+ 0xc0005194,
+ 0xd81091c0,
+ 0xc801aa61,
+ 0x9e483c80,
+ 0x5a40c200,
+ 0x2a40c0ff,
+ 0xb5803208,
+ 0xf008518c,
+ 0xc040aa59,
+ 0x75002a00,
+ 0x9102c000,
+ 0x518cb780,
+ 0x3a00c101,
+ 0x518cb580,
+ 0x5194b760,
+ 0x9a34ffd4,
+ 0xf9f80802,
+ 0x9c22aa1d,
+ 0x5714b700,
+ 0x0e04d251,
+ 0x560cb760,
+ 0xa881da08,
+ 0x2dfcc00e,
+ 0x0cbac034,
+ 0xa961f008,
+ 0xc0805895,
+ 0x9e825810,
+ 0xc000b441,
+ 0x454ab780,
+ 0xa963f008,
+ 0x5a10c200,
+ 0x8021f310,
+ 0xa8e9f008,
+ 0xf0080c84,
+ 0xb421a261,
+ 0xb780c000,
+ 0xf00846ca,
+ 0xf310a96b,
+ 0xf0088021,
+ 0x0c84a8ed,
+ 0xa269f008,
+ 0xc000b421,
+ 0x46cab780,
+ 0xa96ff008,
+ 0x8021f310,
+ 0xa8f5f008,
+ 0xf0080c8c,
+ 0xb421a26d,
+ 0xf008c000,
+ 0x0c84a97d,
+ 0xc000b441,
+ 0x4d8cb780,
+ 0xd2240a08,
+ 0x72445890,
+ 0x931cc000,
+ 0x0e04d131,
+ 0xa903da08,
+ 0xe2109e4c,
+ 0x710288a1,
+ 0x91d6c000,
+ 0xaa75f008,
+ 0xa8fdf008,
+ 0x0a00c010,
+ 0xa275f008,
+ 0x0880c008,
+ 0xa0fdf008,
+ 0x4f0cb780,
+ 0x0cdac034,
+ 0xc000b481,
+ 0x4f8cb720,
+ 0xb4210c84,
+ 0xb780c000,
+ 0x0ce44f0c,
+ 0xb4810a40,
+ 0xb720c000,
+ 0x0c844f8c,
+ 0xb42108c0,
+ 0xb780c000,
+ 0xb7204f0c,
+ 0x1ce44f8c,
+ 0x0a00c010,
+ 0x4f0cb580,
+ 0xaa65f048,
+ 0x0880c008,
+ 0x4f8cb520,
+ 0xc000b481,
+ 0xa8edf048,
+ 0xb4210c84,
+ 0xf048c000,
+ 0xf048aa65,
+ 0x0c84a8ed,
+ 0x0a00c010,
+ 0xa265f048,
+ 0xaa75f048,
+ 0x0880c008,
+ 0xa0edf048,
+ 0xc000b481,
+ 0xa965f088,
+ 0xb4410c88,
+ 0xd131c000,
+ 0xb7800c80,
+ 0xf088402b,
+ 0xcffea967,
+ 0xf3102a40,
+ 0xf0888021,
+ 0x0c88a969,
+ 0xa265f088,
+ 0xc000b441,
+ 0x0c80d131,
+ 0x402bb780,
+ 0xa96bf088,
+ 0x2a40cffe,
+ 0x8021f310,
+ 0xa97df048,
+ 0xf0881c8c,
+ 0xb441a269,
+ 0xd131c000,
+ 0xb7800c80,
+ 0xf048402b,
+ 0x76c0a97f,
+ 0x5a11c200,
+ 0x5a14c200,
+ 0x8021f310,
+ 0xa27df048,
+ 0x9182c001,
+ 0x454ab720,
+ 0xb4211ca8,
+ 0xb780c000,
+ 0x0c8446ca,
+ 0x5a0dc200,
+ 0x58c0c200,
+ 0xb4813242,
+ 0xd131c000,
+ 0xd8080d04,
+ 0x0c8caa41,
+ 0x588cc200,
+ 0x28fccffe,
+ 0x5a50c200,
+ 0xb4213098,
+ 0xd251c000,
+ 0xd8080d04,
+ 0x0ca0aa41,
+ 0x5a11c200,
+ 0x2a3c1a10,
+ 0x3a00c004,
+ 0xc000b481,
+ 0x4d8cb780,
+ 0xb5800a04,
+ 0x9c224d8c,
+ 0xc43ea68d,
+ 0x0a020c92,
+ 0xc000b481,
+ 0x4220b103,
+ 0x5c0cb780,
+ 0xa885da08,
+ 0xa909da08,
+ 0xa189da08,
+ 0xa081da08,
+ 0xa105da08,
+ 0x0a020cd0,
+ 0xc000b481,
+ 0x4220b103,
+ 0x5b8cb720,
+ 0x518cb780,
+ 0x5c0cb7a0,
+ 0x40b3b720,
+ 0x412bb740,
+ 0x412bb560,
+ 0x75002a40,
+ 0xb5200303,
+ 0xb5404033,
+ 0xc00040ab,
+ 0xb78490e2,
+ 0x750a4008,
+ 0x90f2c000,
+ 0x4008b784,
+ 0xc00d751a,
+ 0xb7819204,
+ 0x0a047c8a,
+ 0x7c8ab581,
+ 0x0ca6c450,
+ 0xb4810a02,
+ 0xb103c000,
+ 0x00874220,
+ 0x2880c031,
+ 0xc00f0207,
+ 0xd0a42a7c,
+ 0xd22859e1,
+ 0x000759c1,
+ 0x287ccffe,
+ 0x0a020c88,
+ 0xc000b481,
+ 0x4220b103,
+ 0x5bc1c180,
+ 0xcffe9e9a,
+ 0x0cbc2d7c,
+ 0xc000b481,
+ 0x4220b103,
+ 0xb7400087,
+ 0xb781568c,
+ 0xc0fc7b8a,
+ 0xd0f22880,
+ 0xd0a4283e,
+ 0x9e415b19,
+ 0xa8d2d888,
+ 0xb5019e95,
+ 0xdffc7b92,
+ 0x12187e7e,
+ 0x4002ba1c,
+ 0x91c2c002,
+ 0xc00076c2,
+ 0xb7809384,
+ 0xb740480a,
+ 0xba245e84,
+ 0xc2004002,
+ 0x58ed58ff,
+ 0x589700c2,
+ 0x5908d0a6,
+ 0x58949e2d,
+ 0x9e591242,
+ 0xa8cee038,
+ 0x4a7d5230,
+ 0x249e9ea7,
+ 0xc001a0c2,
+ 0xb7809180,
+ 0xda08468a,
+ 0xba24a8a1,
+ 0x70484002,
+ 0x907cc001,
+ 0x488ab780,
+ 0x4812b720,
+ 0x5e84b740,
+ 0xb5800a04,
+ 0xba09488a,
+ 0xd0a24003,
+ 0x9e495e7f,
+ 0xc2009e2d,
+ 0x02185a6d,
+ 0x5a17c200,
+ 0x5908d226,
+ 0x5a14c200,
+ 0xe0389ea7,
+ 0x149ea94d,
+ 0x08869e4c,
+ 0x312250b0,
+ 0xb780a141,
+ 0x0a04480a,
+ 0x480ab580,
+ 0x7188b783,
+ 0xb7837500,
+ 0xc0007208,
+ 0xc01c90c4,
+ 0xc0027d3e,
+ 0xc01c9184,
+ 0xd0117d3e,
+ 0xd02103f0,
+ 0x76c20527,
+ 0xaa39f210,
+ 0xd0010882,
+ 0x2a040892,
+ 0xb7407902,
+ 0xc0005a0c,
+ 0xd80890e2,
+ 0x0a04aa49,
+ 0xa249d808,
+ 0xa94bf008,
+ 0xa94cf00a,
+ 0x8027f310,
+ 0x82a5e010,
+ 0xa249f008,
+ 0xa0cdf008,
+ 0x7688b783,
+ 0x08827500,
+ 0x0892d002,
+ 0x0a0276c2,
+ 0x0a42d002,
+ 0xc0007848,
+ 0xc07c90c2,
+ 0xda088542,
+ 0x76c2a123,
+ 0xa953f008,
+ 0x90c4c000,
+ 0xaa41da08,
+ 0x9080c000,
+ 0xaa21da08,
+ 0x80a1e310,
+ 0xaa4dd808,
+ 0xa0d1f008,
+ 0xd8080a04,
+ 0xc006a24d,
+ 0xb72091c0,
+ 0x9d2e5a0c,
+ 0xaa39f210,
+ 0x8136c301,
+ 0x8120c201,
+ 0x4525b740,
+ 0x75002a04,
+ 0x8027f010,
+ 0x8221f310,
+ 0xb5800103,
+ 0xc001452d,
+ 0x76c290a2,
+ 0x90c4c000,
+ 0xaa41da08,
+ 0x9080c000,
+ 0xaa21da08,
+ 0xa25dd808,
+ 0xc00176c6,
+ 0x76c09082,
+ 0x91a4c000,
+ 0xd80874c0,
+ 0xe002a953,
+ 0xf2108d2a,
+ 0xd808802d,
+ 0xc000a251,
+ 0x74c092c0,
+ 0xa947d848,
+ 0x8d26e002,
+ 0x9160c000,
+ 0xaa41da08,
+ 0xd84874c0,
+ 0xd808a947,
+ 0xe002a25d,
+ 0xf2108d2a,
+ 0xd848802d,
+ 0xb783a245,
+ 0x75007308,
+ 0x9302c000,
+ 0x440ab780,
+ 0x70489e41,
+ 0x9244c000,
+ 0xb5438502,
+ 0xc43a7318,
+ 0x0a020c82,
+ 0xc000b481,
+ 0x4220b103,
+ 0x29fecfef,
+ 0x0c82c03a,
+ 0xc000b461,
+ 0x440ab780,
+ 0x70489e41,
+ 0xd0020882,
+ 0x76c60892,
+ 0xd0010a02,
+ 0x78480a42,
+ 0x9242c000,
+ 0xb5438506,
+ 0xc43a7318,
+ 0x0a020c82,
+ 0xc000b481,
+ 0x4220b103,
+ 0x3980c011,
+ 0x0c82c03a,
+ 0xc000b461,
+ 0xc0017780,
+ 0x76c091a2,
+ 0x92e4c000,
+ 0xaa21da08,
+ 0xa947f008,
+ 0xa8d5d808,
+ 0x8021f310,
+ 0xa8dad808,
+ 0xa245f008,
+ 0x0c849e44,
+ 0xa0dad808,
+ 0xd80800c2,
+ 0xc000a0d5,
+ 0xda0892a0,
+ 0xf008aa41,
+ 0xd848a95b,
+ 0xf310a8c9,
+ 0xd8488021,
+ 0xf008a8ce,
+ 0x9e44a259,
+ 0xd8480c84,
+ 0x00c2a0ce,
+ 0xa0c9d848,
+ 0xaa5dd808,
+ 0xa95ff008,
+ 0xa940f04a,
+ 0xa9c7f048,
+ 0x8021f310,
+ 0xa94ff048,
+ 0xa25df008,
+ 0x8221f210,
+ 0xa8c2d848,
+ 0xa241f048,
+ 0x8037f010,
+ 0x80a9e210,
+ 0xd8480c84,
+ 0xf048a0c2,
+ 0xf048a245,
+ 0xb7bfa0cd,
+ 0xb7df7eee,
+ 0xb7ff7f6e,
+ 0x8c607fee,
+ 0xb7809c22,
+ 0xd0f1590c,
+ 0xb72008c0,
+ 0x76424031,
+ 0xc0009ea2,
+ 0xc43c9382,
+ 0x0a020cca,
+ 0xc000b481,
+ 0x4220b101,
+ 0x1914d011,
+ 0x2e3ed3f1,
+ 0xba090888,
+ 0xba124002,
+ 0xc4104002,
+ 0xc00e7048,
+ 0xc81228fc,
+ 0xd3f17044,
+ 0xc00028ae,
+ 0xd3f19080,
+ 0xd0f12cbe,
+ 0x85020e20,
+ 0x0cfec036,
+ 0xa103d208,
+ 0xc000b421,
+ 0xc0029c22,
+ 0xd01172c0,
+ 0x9c221c0a,
+ 0x9c220802,
+ 0x590cb780,
+ 0xda088502,
+ 0xf010a88d,
+ 0xf010a16b,
+ 0xf010a16f,
+ 0xd810a173,
+ 0xd810a16f,
+ 0xf010a16b,
+ 0x9c22a0e1,
+ 0x5a94b720,
+ 0xa8e9d810,
+ 0x414bb520,
+ 0xaa71f010,
+ 0x5b0cb740,
+ 0x5a0fc200,
+ 0xa245f048,
+ 0xa8edf010,
+ 0x41cdb520,
+ 0xaa69f010,
+ 0x414db580,
+ 0xa96ff010,
+ 0xa869f010,
+ 0x8021e210,
+ 0xa041f008,
+ 0xc0309c22,
+ 0xb740ac7d,
+ 0xc038589c,
+ 0xc030a45d,
+ 0xc038ac7d,
+ 0xc030a45d,
+ 0xc038ac7d,
+ 0xb720a45d,
+ 0xb7805814,
+ 0x8706590c,
+ 0x5c8cb720,
+ 0x8576c002,
+ 0xa108d28a,
+ 0x485bb540,
+ 0xb5408502,
+ 0xb5404039,
+ 0x9c2240a1,
+ 0x8440a61d,
+ 0x7188b783,
+ 0x07877500,
+ 0x93c2c000,
+ 0x5894b720,
+ 0x4149b720,
+ 0x2a1ed3f1,
+ 0x7524c004,
+ 0xd0030902,
+ 0x9e4f1922,
+ 0x42440a7f,
+ 0xb55f8752,
+ 0x8f387e64,
+ 0x7ee4b55f,
+ 0xb55f8f0c,
+ 0x20947f64,
+ 0x2a44c002,
+ 0x9340c000,
+ 0x5894b720,
+ 0x4149b720,
+ 0x2a1ed3f1,
+ 0x0902753c,
+ 0x1922d003,
+ 0x0a7f9e4f,
+ 0x87324244,
+ 0x7e64b55f,
+ 0xb55f8f20,
+ 0x8f087ee4,
+ 0x7f64b55f,
+ 0x2a742094,
+ 0xb5203098,
+ 0xb7c04149,
+ 0xb7a0590c,
+ 0xb7a0580c,
+ 0xd0115d14,
+ 0x85020e72,
+ 0xa8cdf248,
+ 0xf2080109,
+ 0xf210a127,
+ 0xf248a22d,
+ 0xf208a0a5,
+ 0x0189aa6d,
+ 0x59ffd224,
+ 0xc0540d02,
+ 0x097f9933,
+ 0x01819e92,
+ 0xc0540581,
+ 0xf208992d,
+ 0x9eaeaa35,
+ 0xd2240089,
+ 0x720258ff,
+ 0xc0009e6b,
+ 0xc00090fa,
+ 0x700290e4,
+ 0x9094c000,
+ 0xa055f210,
+ 0xa967f008,
+ 0xaa65f248,
+ 0xa949f208,
+ 0x8021f310,
+ 0x5908d124,
+ 0xd2240089,
+ 0x769c58ff,
+ 0xa0e9f808,
+ 0x90b2c000,
+ 0xc000850a,
+ 0xc10091e0,
+ 0x751c5a04,
+ 0x90b2c000,
+ 0xc000850e,
+ 0xc00490e0,
+ 0x850a7698,
+ 0x8d22e009,
+ 0xaa79f208,
+ 0xa8d5f210,
+ 0xc3011209,
+ 0x58906245,
+ 0xc0007048,
+ 0xd2d09236,
+ 0x7500aa55,
+ 0x9184c000,
+ 0xaa41da90,
+ 0xd2d08506,
+ 0x0a04a157,
+ 0xa241da90,
+ 0x93e0c000,
+ 0xa8f9f208,
+ 0xaa55f210,
+ 0x6095c301,
+ 0x5a0cc200,
+ 0xc0007102,
+ 0xd2d0923c,
+ 0x7500aa55,
+ 0x9184c000,
+ 0xaa41da90,
+ 0xd2d08506,
+ 0x1a04a157,
+ 0xa241da90,
+ 0x90a0c000,
+ 0xd2d08502,
+ 0xda90a157,
+ 0xba24aa41,
+ 0xc0044002,
+ 0xc000752a,
+ 0xc00290da,
+ 0xc000855a,
+ 0xc0089100,
+ 0xc0007502,
+ 0xc00490dc,
+ 0xda908506,
+ 0xda90a143,
+ 0xf008a8c1,
+ 0xf208aa6d,
+ 0xba09a8ee,
+ 0x62434002,
+ 0x5b14b740,
+ 0x85029e49,
+ 0xd0506243,
+ 0xc002a959,
+ 0xd2280a00,
+ 0x74825919,
+ 0xa167f008,
+ 0xc0000685,
+ 0xf21090c4,
+ 0xc000aa55,
+ 0xf21092a0,
+ 0xf208a8d6,
+ 0xd0a2aa79,
+ 0x12095c90,
+ 0xc0007048,
+ 0x764090b8,
+ 0x91dcc000,
+ 0x5d04d0a6,
+ 0x802bf210,
+ 0x5a13c200,
+ 0x8a21f310,
+ 0xa265f008,
+ 0x9080c000,
+ 0xa164f00a,
+ 0xaa49f208,
+ 0x75020a04,
+ 0xa3eaf008,
+ 0xa249f208,
+ 0x9144c000,
+ 0xaa61d208,
+ 0xa265dac8,
+ 0xa251da48,
+ 0x9000c009,
+ 0xaa31d250,
+ 0xc0007500,
+ 0xd2509184,
+ 0x7500aa39,
+ 0x9142c000,
+ 0xaa41da88,
+ 0xc0007504,
+ 0x850690b4,
+ 0x9060c000,
+ 0xd2888502,
+ 0xda08a153,
+ 0xf208a94b,
+ 0xf252a9cd,
+ 0xd0b1a958,
+ 0xe2100af0,
+ 0xd20889a7,
+ 0xd1a4a922,
+ 0xe0205987,
+ 0x5d0483a7,
+ 0xc03455eb,
+ 0xf2089b85,
+ 0xf250a9ca,
+ 0xd011aa49,
+ 0x85021cb4,
+ 0xd20860c3,
+ 0xf250a8a2,
+ 0x1d84a15b,
+ 0xd0309e5b,
+ 0x5d850102,
+ 0x81afe220,
+ 0xf2500503,
+ 0x55e7a1ca,
+ 0x9b6cc034,
+ 0xaa31d250,
+ 0xf2507500,
+ 0xc001a049,
+ 0xda4890e2,
+ 0x7500aa55,
+ 0xa957da48,
+ 0x9102c000,
+ 0xaa41da88,
+ 0x5a40e200,
+ 0x9144c000,
+ 0x5a0cb780,
+ 0xa881da08,
+ 0xa0e1dac8,
+ 0x90e0c001,
+ 0x5a45c200,
+ 0x8021f310,
+ 0xa261dac8,
+ 0xa9e2dac8,
+ 0xa9c1da88,
+ 0xc0340d02,
+ 0x18049b43,
+ 0x92a0c000,
+ 0xaa49da08,
+ 0xa927da50,
+ 0x5a40c200,
+ 0x5a45c200,
+ 0x8021f310,
+ 0xa261dac8,
+ 0xa9e2dac8,
+ 0xa9c9da08,
+ 0xc0340d02,
+ 0xdac89b2d,
+ 0xd031a061,
+ 0xd2240e72,
+ 0x76c25993,
+ 0xaa49f208,
+ 0xd00d0d82,
+ 0x75040db2,
+ 0x9094c001,
+ 0xa8e2dac8,
+ 0xa8d1da48,
+ 0x0e14d011,
+ 0xc0007048,
+ 0xda10913a,
+ 0xd011a941,
+ 0x70881a14,
+ 0x90d6c000,
+ 0x1e12d011,
+ 0x91c0c000,
+ 0x1e14d011,
+ 0xc0007048,
+ 0xd01190f8,
+ 0x70880a14,
+ 0x90dcc000,
+ 0x0e12d011,
+ 0xa261dac8,
+ 0xa963dac8,
+ 0x882ff210,
+ 0xa261dac8,
+ 0xa8e1dac8,
+ 0x7e7cb75f,
+ 0xc0007075,
+ 0xda109298,
+ 0xd011a8c2,
+ 0x70481e14,
+ 0x0a12d00e,
+ 0x913cc000,
+ 0x0e14d011,
+ 0xc0007048,
+ 0xd01190dc,
+ 0xdac81a12,
+ 0xf208a261,
+ 0x7504aa49,
+ 0x9034c001,
+ 0xaa6dd208,
+ 0xc000752c,
+ 0xda109392,
+ 0xb75fa943,
+ 0xda487ee4,
+ 0xe010aa5d,
+ 0xba2488a5,
+ 0x71024002,
+ 0x91f6c000,
+ 0x7f64b75f,
+ 0xa8e1dac8,
+ 0x8825f010,
+ 0xc0007048,
+ 0xd01190dc,
+ 0xdac81a14,
+ 0xd208a261,
+ 0xdac8a969,
+ 0x7104aa61,
+ 0xa8e1dac8,
+ 0xd00a0a02,
+ 0x9ea21a42,
+ 0xa8e6d208,
+ 0x4d7d2098,
+ 0x21289e54,
+ 0x9e4a3094,
+ 0x5a40c080,
+ 0x5a41c200,
+ 0x09027088,
+ 0x1922d004,
+ 0x42440a7f,
+ 0x20989e92,
+ 0x24949d19,
+ 0x3494c301,
+ 0xa0e2dac8,
+ 0xa0e6dac8,
+ 0xa0d2da48,
+ 0xdac88502,
+ 0x8706aa65,
+ 0xa148d28a,
+ 0xa14ff208,
+ 0xa133d250,
+ 0xa13bd250,
+ 0xa15bd288,
+ 0xa137d250,
+ 0xa15fd288,
+ 0xa127da50,
+ 0xa14bda08,
+ 0xa157da48,
+ 0xa143da88,
+ 0xa25dda48,
+ 0x7d6eb79f,
+ 0x7deeb7bf,
+ 0x7e6eb7df,
+ 0x7eeeb7ff,
+ 0x8c40c002,
+ 0xa60d9c22,
+ 0x5b0cb7c0,
+ 0x590cb780,
+ 0x5a94b7c0,
+ 0x76c20802,
+ 0xa182f208,
+ 0xc0030289,
+ 0xb7a09044,
+ 0xf2485814,
+ 0xda10a045,
+ 0xf210a049,
+ 0xf210a9b6,
+ 0x0d02a9a5,
+ 0xc0345d84,
+ 0xda089a4d,
+ 0x0a22a8aa,
+ 0x7008c010,
+ 0xc01208c3,
+ 0x76407002,
+ 0x92e2c000,
+ 0x588cb780,
+ 0xa88df208,
+ 0xa8a6f210,
+ 0x5914d0a6,
+ 0x88a3e210,
+ 0x5d04d0a6,
+ 0xc2015897,
+ 0xe210812a,
+ 0x088880a3,
+ 0xf248588b,
+ 0xf210a0b1,
+ 0xd226aa25,
+ 0xf3105904,
+ 0xf2488021,
+ 0xd224a8b1,
+ 0x9e4c5889,
+ 0xb3117102,
+ 0x9e894828,
+ 0xa0b2f248,
+ 0xaa51d248,
+ 0xc0007500,
+ 0xd24891e2,
+ 0x7500aa59,
+ 0x9144c000,
+ 0x5d0cd0a6,
+ 0x802bf210,
+ 0x5a0fc200,
+ 0xa231f248,
+ 0xa8b1f248,
+ 0x5d0cb740,
+ 0xf0086211,
+ 0xc200a8da,
+ 0x10985a17,
+ 0xc4109e8a,
+ 0xf2487244,
+ 0x8502a0b2,
+ 0xa14bf210,
+ 0xa14ff210,
+ 0xa143f208,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0xb720a61d,
+ 0xb7e05d14,
+ 0xb7405b0c,
+ 0xf20840dd,
+ 0x9e9daa61,
+ 0x8821f310,
+ 0x5904b760,
+ 0x40cdb580,
+ 0xaa29d210,
+ 0xa265d080,
+ 0xa8a9d210,
+ 0x74429e4d,
+ 0xb4279e5c,
+ 0xb7c04622,
+ 0xb7c05894,
+ 0xf20a580c,
+ 0xf210a960,
+ 0xf208aa4d,
+ 0xf040a957,
+ 0xf310a9f7,
+ 0xe3108a21,
+ 0xf31080a1,
+ 0xde018031,
+ 0xf0407440,
+ 0xf208a275,
+ 0xc000a0d5,
+ 0xcf0190d6,
+ 0xf2080a02,
+ 0xf210a255,
+ 0xf208a94f,
+ 0xf310aa61,
+ 0xfa088821,
+ 0x0089a829,
+ 0x58ffd224,
+ 0x0002e000,
+ 0xd0030402,
+ 0xd0220c02,
+ 0xc0005e0c,
+ 0xd02058f5,
+ 0xc0003118,
+ 0xe000590c,
+ 0x15201120,
+ 0x1d22d003,
+ 0x5cf4d122,
+ 0x5a0dc100,
+ 0xf0403198,
+ 0x0087aa75,
+ 0x58ffd1a4,
+ 0xfa087500,
+ 0xfa08a029,
+ 0xc000a0ad,
+ 0x850290b6,
+ 0xa177f040,
+ 0xaa61f000,
+ 0xc0007504,
+ 0xd0b19344,
+ 0xd2080e60,
+ 0xf208a882,
+ 0xf208a9a9,
+ 0x9e4ca8a5,
+ 0x5985d1a4,
+ 0x5133d026,
+ 0x81afe220,
+ 0xf2080503,
+ 0xc034a1c6,
+ 0xf2089969,
+ 0xc001a045,
+ 0xf2089320,
+ 0xd800aa29,
+ 0x8502a8e9,
+ 0xa16fd080,
+ 0xf2081a04,
+ 0x0884a229,
+ 0xa0e9d800,
+ 0xa8a2d210,
+ 0xc0017640,
+ 0xf21090e4,
+ 0xf040aa5d,
+ 0x6a36a8f5,
+ 0x5a13c200,
+ 0xc0007048,
+ 0x8506929c,
+ 0xa12bd210,
+ 0xaa29f208,
+ 0xc0007500,
+ 0xd21091c2,
+ 0xda48aa49,
+ 0xf310a967,
+ 0xda488021,
+ 0xc000a265,
+ 0xd2109080,
+ 0xf208a0aa,
+ 0x7500aa29,
+ 0x9084c000,
+ 0xa229d210,
+ 0x7e6eb79f,
+ 0x7eeeb7bf,
+ 0x7f6eb7df,
+ 0x7feeb7ff,
+ 0x8c00c002,
+ 0xb7809c22,
+ 0xb7205b0c,
+ 0xf208590c,
+ 0xb720a903,
+ 0x9e8a4035,
+ 0x812fe210,
+ 0x01897642,
+ 0xa101f208,
+ 0x9144c008,
+ 0xaa49d810,
+ 0xc0007500,
+ 0xd09090e2,
+ 0x76c0a9ce,
+ 0x91c2c000,
+ 0x5a8cb780,
+ 0x580cb720,
+ 0xa88ada08,
+ 0x00039ea0,
+ 0x47b3b520,
+ 0x9220c001,
+ 0x5a94b720,
+ 0x588cb720,
+ 0x414bb780,
+ 0x412bb740,
+ 0xd0116a14,
+ 0x710268a6,
+ 0x580cb700,
+ 0xc0000403,
+ 0xb78091bc,
+ 0xb72047aa,
+ 0xba24414a,
+ 0x6a164002,
+ 0x70485888,
+ 0x917ac000,
+ 0x414ab720,
+ 0x6a26d3f1,
+ 0x5a23c200,
+ 0xc0007048,
+ 0x8506915c,
+ 0xa177d048,
+ 0xd090850e,
+ 0xc000a14b,
+ 0xd0489080,
+ 0xb780a1f6,
+ 0xf2085d0c,
+ 0x747ca88d,
+ 0x93b2c004,
+ 0xaa49f010,
+ 0xc0007502,
+ 0xd8109364,
+ 0x7500aa49,
+ 0x90e2c000,
+ 0xaa4dd090,
+ 0xc0007500,
+ 0xf0489222,
+ 0x8502a8e5,
+ 0xa157d090,
+ 0x412cb520,
+ 0x414ab780,
+ 0x40aab580,
+ 0xa15bd090,
+ 0x93e0c003,
+ 0xa8dad090,
+ 0xc0007640,
+ 0xb7809342,
+ 0xb72040aa,
+ 0xba24414a,
+ 0x688c4002,
+ 0xc2000242,
+ 0xb5805a0b,
+ 0xf04840aa,
+ 0x8502a8e5,
+ 0x412cb520,
+ 0xa15bd090,
+ 0xd0908506,
+ 0xc003a157,
+ 0xb7409040,
+ 0xd090588c,
+ 0xb720a0d6,
+ 0xd808414a,
+ 0x68a8aa49,
+ 0x70486a24,
+ 0x925cc001,
+ 0x40aab780,
+ 0x414ab720,
+ 0x4002ba24,
+ 0x58846a0e,
+ 0xc0017048,
+ 0xb78090fc,
+ 0xf048412c,
+ 0xd226a8e5,
+ 0xf3105904,
+ 0x70488021,
+ 0x939cc000,
+ 0xd0908506,
+ 0xd090a15b,
+ 0xd808a15f,
+ 0xd048aa55,
+ 0xd810a173,
+ 0x6a14a8c9,
+ 0x5a0fc200,
+ 0xd8507048,
+ 0xd890a0d6,
+ 0xc000a0c2,
+ 0x8502907a,
+ 0xa17bd048,
+ 0x90a0c001,
+ 0xaa75d048,
+ 0x85027500,
+ 0xa15bd090,
+ 0x93a4c000,
+ 0x40aab780,
+ 0x414ab720,
+ 0x4002ba24,
+ 0x6947d013,
+ 0x80a3e210,
+ 0x4134b720,
+ 0xb520588b,
+ 0xf04840aa,
+ 0xd0a6aa65,
+ 0xc2015d04,
+ 0xf310812a,
+ 0xc2008021,
+ 0xb5805a0b,
+ 0xb780412c,
+ 0xb580414a,
+ 0xd09047aa,
+ 0x7440a8dd,
+ 0x9202c000,
+ 0xaa71d048,
+ 0x85067500,
+ 0x9102c000,
+ 0xaa79d048,
+ 0xc0007500,
+ 0x850e9064,
+ 0xa14bd090,
+ 0xaa49d810,
+ 0xb3407500,
+ 0xb78048a4,
+ 0xb580414c,
+ 0x9c22462c,
+ 0xb3407644,
+ 0xc00348a4,
+ 0xc0017486,
+ 0xb78390ba,
+ 0x75007188,
+ 0x9102c000,
+ 0x5894b720,
+ 0x5f84b740,
+ 0x90c0c000,
+ 0x5894b720,
+ 0x6004b740,
+ 0x4ccbb720,
+ 0xd0a69e2d,
+ 0xc8305904,
+ 0xb720aa4d,
+ 0x6229580c,
+ 0x00030583,
+ 0x41adb580,
+ 0x41acb780,
+ 0x5a37c200,
+ 0x92a0c001,
+ 0x580cb700,
+ 0x5894b760,
+ 0x5a4bc100,
+ 0xb7237500,
+ 0x09027188,
+ 0x911cc000,
+ 0x5a07c200,
+ 0x09047500,
+ 0x939affff,
+ 0x7c7ec01c,
+ 0x9102c000,
+ 0xaa65d8d0,
+ 0x5f84b740,
+ 0x90c0c000,
+ 0xaa65d8d0,
+ 0x6004b740,
+ 0x5904d226,
+ 0xc8309e2d,
+ 0xf008a8ce,
+ 0x9e4ca8e1,
+ 0x609950ab,
+ 0x41acb520,
+ 0x41acb780,
+ 0xe2108536,
+ 0xc20088a5,
+ 0xb5805207,
+ 0xf01041ac,
+ 0x7502aa49,
+ 0x90e4c000,
+ 0x41acb780,
+ 0x422cb580,
+ 0xd0909c22,
+ 0x74c0a9d1,
+ 0x90c4c005,
+ 0x422cb740,
+ 0x41b4b720,
+ 0x590cd126,
+ 0x5c88d0a2,
+ 0x8825f210,
+ 0xc0007048,
+ 0xd0a69176,
+ 0xe2105d0c,
+ 0xc10088ab,
+ 0x70485a08,
+ 0x919ac004,
+ 0x85869e49,
+ 0xd0907044,
+ 0xd090a1cf,
+ 0xc002a1df,
+ 0xc100903c,
+ 0x70485a04,
+ 0x90f6c000,
+ 0x5e04d0a2,
+ 0xc0007104,
+ 0xb720937a,
+ 0xb720482a,
+ 0x08985d14,
+ 0x482ab520,
+ 0x41cdb780,
+ 0xa8edf010,
+ 0x40c5b740,
+ 0x0a206243,
+ 0x5a11c200,
+ 0x8221f310,
+ 0xd090851a,
+ 0x850ea14b,
+ 0x9340c002,
+ 0x482ab720,
+ 0x5d14b720,
+ 0xb5200888,
+ 0xb780482a,
+ 0xf01041cd,
+ 0xb740a8ed,
+ 0x624340c5,
+ 0xc2000a40,
+ 0xf3105a15,
+ 0x850e8221,
+ 0xa14bd090,
+ 0x40cdb580,
+ 0x4e38b560,
+ 0x9340fffc,
+ 0xc1009e49,
+ 0x70485a04,
+ 0x90f6c000,
+ 0x5e04d0a2,
+ 0xc0007104,
+ 0xb720937a,
+ 0xb720482a,
+ 0x18885d14,
+ 0x482ab520,
+ 0x41cdb780,
+ 0xa8edf010,
+ 0x40c5b740,
+ 0x0a406243,
+ 0x5a15c200,
+ 0x8a21f310,
+ 0xd090851a,
+ 0x857ba14b,
+ 0x9340c000,
+ 0x482ab720,
+ 0x5d14b720,
+ 0xb5201884,
+ 0xb780482a,
+ 0xf01041cd,
+ 0xb740a8ed,
+ 0x624340c5,
+ 0x0a00c002,
+ 0x5a19c200,
+ 0x8a21f310,
+ 0xd090850e,
+ 0x857fa14b,
+ 0x40cdb580,
+ 0x4e38b540,
+ 0x9300fffa,
+ 0xa1cdd090,
+ 0x9280fffa,
+ 0xd0908502,
+ 0xfffaa14f,
+ 0xa60d91e0,
+ 0x590cb780,
+ 0xa881f208,
+ 0x74449ea5,
+ 0x03010007,
+ 0x9104c000,
+ 0x588cb780,
+ 0xa805dac8,
+ 0x9300c008,
+ 0xc0087442,
+ 0xda1092a4,
+ 0x7500aa29,
+ 0x9344c000,
+ 0xaa2dd290,
+ 0xc0007500,
+ 0xd29092a4,
+ 0xb720aa25,
+ 0xb720588c,
+ 0x75005b14,
+ 0x4cabb700,
+ 0x44dbb740,
+ 0x8526e002,
+ 0x8021f210,
+ 0x44cbb580,
+ 0x9300c007,
+ 0xaa2dd290,
+ 0xc0017500,
+ 0xb7809382,
+ 0xb740580c,
+ 0xd290588c,
+ 0xb760a926,
+ 0xd2c85b14,
+ 0xd008a891,
+ 0xd008a9c5,
+ 0x7680a8ca,
+ 0x4000ba09,
+ 0x9e490002,
+ 0xa967d850,
+ 0x0a02d011,
+ 0x4422b304,
+ 0xc0100009,
+ 0xcc127002,
+ 0x768070c0,
+ 0x00070407,
+ 0x8526e002,
+ 0x8021f210,
+ 0xa265d850,
+ 0x4648b780,
+ 0xc0007500,
+ 0xda5091a2,
+ 0xda90a937,
+ 0xe210aa21,
+ 0x0a0480a7,
+ 0xa221da90,
+ 0xa0b5da50,
+ 0xc0050007,
+ 0xd2909320,
+ 0x7500aa39,
+ 0x91a2c001,
+ 0x588cb780,
+ 0xa881d208,
+ 0xa88ad208,
+ 0xa905d208,
+ 0x0812d011,
+ 0xd2909e49,
+ 0xc010aa25,
+ 0xb7207002,
+ 0xc8125b0c,
+ 0x75007080,
+ 0xb7400005,
+ 0xe00244bb,
+ 0xf2108526,
+ 0xda508021,
+ 0xb580a937,
+ 0xda9044ab,
+ 0xf210a8a1,
+ 0x00058025,
+ 0xda900884,
+ 0xda50a0a1,
+ 0xc004a235,
+ 0xb7809120,
+ 0xf250580c,
+ 0xf248a8b1,
+ 0x7440a995,
+ 0xf2489ea6,
+ 0xc000a18d,
+ 0xb7209316,
+ 0xb7805b0c,
+ 0x75004729,
+ 0xd0029e88,
+ 0xc0000802,
+ 0xd29090a4,
+ 0x0008aa29,
+ 0x588cb780,
+ 0xa889d208,
+ 0xc0100289,
+ 0xc0017040,
+ 0xb7a09280,
+ 0xd0b1588c,
+ 0xd2080a50,
+ 0xf250a882,
+ 0x1196a929,
+ 0xa8adf208,
+ 0x9e4c5c85,
+ 0xcc12588b,
+ 0x515070c2,
+ 0xd12651f3,
+ 0xd1a45914,
+ 0xe2205987,
+ 0x0d0281af,
+ 0xa129f250,
+ 0x9a14c014,
+ 0x7188b783,
+ 0xc0007500,
+ 0x9e8390e2,
+ 0x9a36c014,
+ 0x9060c000,
+ 0xd2905819,
+ 0xb700aa29,
+ 0x00e85b14,
+ 0x7002c010,
+ 0xc0121268,
+ 0xd2907100,
+ 0xd208a8a6,
+ 0x7640a8a9,
+ 0xa925d208,
+ 0x0a02d011,
+ 0x4422b304,
+ 0xc0100009,
+ 0xc8127040,
+ 0x76407080,
+ 0x44dab740,
+ 0xe0020005,
+ 0xe2108526,
+ 0xb78080a1,
+ 0x75004648,
+ 0x44cab520,
+ 0x91a2c000,
+ 0xa937da50,
+ 0xaa21da90,
+ 0x80a5e210,
+ 0xda900a04,
+ 0xda50a221,
+ 0xda08a0b5,
+ 0xda10aa35,
+ 0x1a08a8a9,
+ 0xb4167048,
+ 0x00054443,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0xb720a60d,
+ 0xb780590c,
+ 0x7502402d,
+ 0xc00c9e8d,
+ 0xb7809264,
+ 0xf2085a8c,
+ 0xc003a88e,
+ 0x9ea27646,
+ 0x911ac001,
+ 0x7188b783,
+ 0xc0007500,
+ 0xb7809102,
+ 0xb7405a0c,
+ 0xc0005f84,
+ 0xb78090c0,
+ 0xb7405a0c,
+ 0xf2086004,
+ 0x9e2da881,
+ 0x5904d0a6,
+ 0xaa4dc830,
+ 0x62199e49,
+ 0x5817d224,
+ 0x588cb780,
+ 0x08c0d0b1,
+ 0x4031b720,
+ 0xb7c09ea6,
+ 0x5407580c,
+ 0x9300c001,
+ 0x5894b7c0,
+ 0x580cb7c0,
+ 0x5e4bd0a2,
+ 0x7188b723,
+ 0xb7207500,
+ 0x09025a14,
+ 0x911cc000,
+ 0x5a07c200,
+ 0x09047500,
+ 0x939affff,
+ 0x7c7ec01c,
+ 0x9102c000,
+ 0x404db780,
+ 0x5f84b740,
+ 0x90c0c000,
+ 0x404db780,
+ 0x6004b740,
+ 0x5904d226,
+ 0xc8309e2d,
+ 0xf010a8ce,
+ 0x9e4ca8cd,
+ 0x609950ab,
+ 0x5817d0a4,
+ 0x0e60d0b1,
+ 0xa881d208,
+ 0x54079e89,
+ 0x54049e91,
+ 0xaa29da10,
+ 0xc0007500,
+ 0xd29090e2,
+ 0x7500aa2d,
+ 0x92c2c000,
+ 0xa95bf248,
+ 0x8029f210,
+ 0xa259f248,
+ 0xa026f250,
+ 0xa02af250,
+ 0xa046f248,
+ 0xaa49f010,
+ 0xa251f248,
+ 0xa255f248,
+ 0x9300c007,
+ 0xaa39d290,
+ 0xc0077500,
+ 0xb72091c4,
+ 0xb7805b0c,
+ 0x750046a9,
+ 0xc0079e89,
+ 0xf24890c4,
+ 0xf210a95b,
+ 0xf2488029,
+ 0xd290a259,
+ 0x7440a8b5,
+ 0x90c2c000,
+ 0xaa49f010,
+ 0x9240c000,
+ 0xa8d1f248,
+ 0xaa49f010,
+ 0x5908d0a6,
+ 0x8123e240,
+ 0x5904d226,
+ 0x8021f310,
+ 0x8221f310,
+ 0x5a0dc200,
+ 0xa251f248,
+ 0xaa51f248,
+ 0xa255f248,
+ 0xa8b5d290,
+ 0xc0007440,
+ 0xf2509102,
+ 0xf250a026,
+ 0xc005a02a,
+ 0xb7809360,
+ 0x75004649,
+ 0x90e2c001,
+ 0xa8a2da90,
+ 0xa925f250,
+ 0xaa21da90,
+ 0x9d1e1c84,
+ 0x0ce0d0b1,
+ 0x6127d333,
+ 0x4031b760,
+ 0x5a40c200,
+ 0x5a45c200,
+ 0x8128c201,
+ 0x8021f310,
+ 0xda909ea1,
+ 0x0507a9a1,
+ 0xa225f250,
+ 0xc01455af,
+ 0xf25098d7,
+ 0xf250a025,
+ 0xc004a029,
+ 0xda109220,
+ 0xf210a92b,
+ 0xf250aa2d,
+ 0xe310a8a6,
+ 0x9e4a88a1,
+ 0xa928da12,
+ 0x18848185,
+ 0x6122d033,
+ 0x88b1f310,
+ 0x8a21f310,
+ 0x7540c008,
+ 0x5a07c200,
+ 0x8128c201,
+ 0x8021f310,
+ 0xa225f250,
+ 0x91bcc000,
+ 0xffb49eab,
+ 0xf2509b82,
+ 0xc200aa25,
+ 0xc20052a3,
+ 0xf2505203,
+ 0xb740a225,
+ 0xf2506084,
+ 0xd2a6aa25,
+ 0x9e2d5904,
+ 0xa8cdc830,
+ 0xd2240189,
+ 0x0c8259ff,
+ 0x05030103,
+ 0x994cc014,
+ 0x611cb740,
+ 0xc2109d47,
+ 0x0181a926,
+ 0xc0140581,
+ 0xf2109928,
+ 0x7502aa29,
+ 0xa025f250,
+ 0x90c4c000,
+ 0xa029f250,
+ 0x9040c002,
+ 0xa8aada10,
+ 0xa954da12,
+ 0x5c84d0a2,
+ 0x8e22f011,
+ 0xc0007048,
+ 0xf2489176,
+ 0x0208aa45,
+ 0x5a07c200,
+ 0xa229f250,
+ 0x91c0c001,
+ 0xa8c5f248,
+ 0x0e12d011,
+ 0xf3109e4a,
+ 0xd0338a21,
+ 0x60996104,
+ 0x8122c201,
+ 0xa12bf250,
+ 0xaa55da10,
+ 0x0ce0d0b1,
+ 0xc2001a04,
+ 0xf3105a07,
+ 0xb7608021,
+ 0xf2504031,
+ 0xda10a229,
+ 0x9ea1a9d5,
+ 0x55af0507,
+ 0xc0141984,
+ 0xf250984b,
+ 0xc000a029,
+ 0xf21090e0,
+ 0x0a04aa2d,
+ 0xa22df210,
+ 0xa8c9f248,
+ 0xaa29f210,
+ 0xa8aaf250,
+ 0x5904d0a6,
+ 0xc2017502,
+ 0xf2108122,
+ 0xf250802b,
+ 0xc200a0ae,
+ 0xc000588b,
+ 0x9e4a90f4,
+ 0x7044d010,
+ 0xa229f250,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x590cb720,
+ 0xaa61d810,
+ 0xb5800802,
+ 0x9c2241ab,
+ 0x588cb740,
+ 0x5d14b720,
+ 0xa96cf012,
+ 0xaa4df008,
+ 0x414db720,
+ 0x40ddb740,
+ 0x8a21f310,
+ 0xf3106243,
+ 0xb5808021,
+ 0xf01040cd,
+ 0xf008a8ed,
+ 0x9c22a0cd,
+ 0x74c0c008,
+ 0x9e529e58,
+ 0x90fcc000,
+ 0x70c0d002,
+ 0x51f31a14,
+ 0xc0055013,
+ 0xc0007400,
+ 0xd00290fc,
+ 0x1a507000,
+ 0x01285013,
+ 0x6084b740,
+ 0x610cb780,
+ 0x5904d1a6,
+ 0xc0409e2d,
+ 0xc830a8e5,
+ 0x7044aa4d,
+ 0xd01d6009,
+ 0xd01a1214,
+ 0xb3405013,
+ 0x122248ba,
+ 0x9c225010,
+ 0x75269e5c,
+ 0xd01e0882,
+ 0xb3404000,
+ 0xc38048bc,
+ 0xc0007500,
+ 0xc00290bc,
+ 0x9c22084e,
+ 0x7508c004,
+ 0x915cc000,
+ 0xc2000a04,
+ 0xc0045a07,
+ 0x08847508,
+ 0x935affff,
+ 0x619cb740,
+ 0xc2209d4b,
+ 0xd013a805,
+ 0xe210691d,
+ 0x9c228021,
+ 0x08029e98,
+ 0xc0000902,
+ 0x9e989140,
+ 0xd0100802,
+ 0xcc144530,
+ 0xc01472c0,
+ 0x72c07200,
+ 0x5d09c180,
+ 0x7204e009,
+ 0x5d04f012,
+ 0x9254c000,
+ 0xd00472c4,
+ 0xd0240804,
+ 0x72c015b4,
+ 0x0802d004,
+ 0x15b0d024,
+ 0x3124e000,
+ 0xb3301181,
+ 0x9c22442a,
+ 0x088672c0,
+ 0x93a6ffff,
+ 0x72c0c402,
+ 0x2c9ed065,
+ 0x3c9ed065,
+ 0x7200c802,
+ 0x2d2ed065,
+ 0x3d2ed065,
+ 0x1514e000,
+ 0xd01a9e53,
+ 0xd01a5408,
+ 0x72c050ac,
+ 0x0002d014,
+ 0x15b0d024,
+ 0x5885e080,
+ 0xffff5c05,
+ 0xe0009304,
+ 0x11813124,
+ 0x442ab330,
+ 0xe0009c22,
+ 0xb3300d00,
+ 0xb3304422,
+ 0xb3404842,
+ 0xc00248a2,
+ 0xf2108502,
+ 0x7500882d,
+ 0x90fac000,
+ 0x0c029e59,
+ 0x50311209,
+ 0x9e5a9c22,
+ 0x9e5250d0,
+ 0x52695469,
+ 0x9c223042,
+ 0x0007a685,
+ 0x9e909e81,
+ 0x2cfccffe,
+ 0x9e4c9e41,
+ 0x64915c41,
+ 0x28fccffe,
+ 0x584162c3,
+ 0x60839e44,
+ 0xc2806009,
+ 0x9ea05a41,
+ 0x9e880490,
+ 0x04909d09,
+ 0x71029e4c,
+ 0x8504c001,
+ 0x5e41d0a2,
+ 0x4468b302,
+ 0x8121f320,
+ 0x5d40d0a6,
+ 0x2afccffe,
+ 0x8123f310,
+ 0x040d000d,
+ 0xd0339e54,
+ 0x9e5c6138,
+ 0xe2106145,
+ 0x9e918125,
+ 0xb7bf0462,
+ 0xb7df7f6e,
+ 0x8c407fee,
+ 0x00009c22,
+ 0x87c2c809,
+ 0x0c20b060,
+ 0x87c2c809,
+ 0x0a60b060,
+ 0x87c2c809,
+ 0x09c0b060,
+};
+
+unsigned long aui32MPG4VBR_MasterMTXTOPAZFWData[] = {
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x809000b0,
+ 0x80900374,
+ 0x828849d4,
+ 0x82884504,
+ 0x82884514,
+ 0x828845b4,
+ 0x82884420,
+ 0x82884476,
+ 0x828845e4,
+ 0x82884620,
+ 0x8288465c,
+ 0x82884694,
+ 0x82884698,
+ 0x828846c8,
+ 0x828846f8,
+ 0x82884720,
+ 0x828844dc,
+ 0x82884728,
+ 0x82884730,
+ 0x82884760,
+ 0x82884768,
+ 0x8288479c,
+ 0x82884c94,
+ 0x82884b26,
+ 0x82884b8e,
+ 0x82884bce,
+ 0x82884c50,
+ 0x82884b00,
+ 0x8288499c,
+ 0x82884a9c,
+ 0x82884adc,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x809007c8,
+ 0x809007c8,
+ 0x809026b8,
+ 0x80902138,
+ 0x809039f4,
+ 0x80902aa4,
+ 0x80902460,
+ 0x809007c8,
+ 0x809007c8,
+ 0x809007c8,
+ 0x809007c8,
+ 0x809007c8,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0xa0101100,
+ 0xa01001b0,
+ 0xa0101102,
+ 0xa01001b2,
+ 0xa0101104,
+ 0xa0100124,
+ 0xa0101106,
+ 0xa0100126,
+ 0xa0100134,
+ 0x00000000,
+ 0xa0101120,
+ 0xa0100136,
+ 0xa0101122,
+ 0xa0100144,
+ 0x80101160,
+ 0x80101162,
+ 0x80101180,
+ 0x80101182,
+ 0x80100140,
+ 0x80100142,
+ 0x80100150,
+ 0x80100152,
+ 0x80100154,
+ 0x80100146,
+ 0x803003a0,
+ 0x80100100,
+ 0x80105156,
+ 0xa0101164,
+ 0xa0100184,
+ 0x80101194,
+ 0x801001b4,
+ 0x80100146,
+ 0x00000000,
+ 0x00000003,
+ 0x00000002,
+ 0x00000002,
+ 0x00000001,
+ 0x00000001,
+ 0x00000001,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000005,
+ 0x000f9400,
+ 0x000f9401,
+ 0x000fd403,
+ 0x000fd40b,
+ 0x000fd41b,
+ 0x000ffc1b,
+ 0x000ffc1b,
+ 0x000ff81b,
+ 0x0000681b,
+ 0x0000681a,
+ 0x0000281a,
+ 0x00002810,
+ 0x00002800,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00010001,
+ 0x00004010,
+ 0x04010040,
+ 0x10040100,
+ 0x40100401,
+ 0x00008040,
+ 0x20100804,
+ 0x02010080,
+ 0x40201008,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x01010000,
+ 0x02020201,
+ 0x04030303,
+ 0x05040404,
+ 0x00140005,
+ 0x001a0016,
+ 0x0020001c,
+ 0x00280024,
+ 0x0034002c,
+ 0x00400038,
+ 0x00500048,
+ 0x00680058,
+ 0x00800070,
+ 0x00a00090,
+ 0x00d000b0,
+ 0x010000e0,
+ 0x01400120,
+ 0x01a00160,
+ 0x020001c0,
+ 0x02800240,
+ 0x034002c0,
+ 0x04000380,
+ 0x05000480,
+ 0x06800580,
+ 0x08000700,
+ 0x0a000900,
+ 0x0d000b00,
+ 0x10000e00,
+ 0x14001200,
+ 0x1a001600,
+ 0x00001c00,
+ 0x00800040,
+ 0x010000c0,
+ 0x01800140,
+ 0x020001c0,
+ 0x02800240,
+ 0x030002c0,
+ 0x03800340,
+ 0x040003c0,
+ 0x04800440,
+ 0x050004c0,
+ 0x05800540,
+ 0x060005c0,
+ 0x06800640,
+ 0x070006c0,
+ 0x07800740,
+ 0x000007c0,
+ 0x00200040,
+ 0x001002ab,
+ 0x015500cd,
+ 0x00080249,
+ 0x00cd01c7,
+ 0x0155005d,
+ 0x0249013b,
+ 0x00040111,
+ 0x01c700f1,
+ 0x00cd01af,
+ 0x005d00c3,
+ 0x01550059,
+ 0x013b0029,
+ 0x0249025f,
+ 0x01110235,
+ 0x00020021,
+ 0x00f1001f,
+ 0x01c70075,
+ 0x01af006f,
+ 0x00cd0069,
+ 0x00c30019,
+ 0x005d017d,
+ 0x0059005b,
+ 0x015502b9,
+ 0x002900a7,
+ 0x013b0283,
+ 0x025f0135,
+ 0x02490095,
+ 0x0235023f,
+ 0x0111008b,
+ 0x00210219,
+ 0x00010041,
+ 0x0b060600,
+ 0x0c0b0a06,
+ 0x0a0b0c06,
+ 0x0c0d0c0c,
+ 0x0d0d0c06,
+ 0x0b0b0c0c,
+ 0x0e0d0a0d,
+ 0x0a0d0e0e,
+ 0x0c0d0a06,
+ 0x0c0e0c0e,
+ 0x0e0d0a0d,
+ 0x0f0c0c0c,
+ 0x0f0b0d0e,
+ 0x0d0f0e0e,
+ 0x0d0f0f0f,
+ 0x0c0b0f0e,
+ 0x00000006,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x1234baac,
+ 0x00000000,
+};
+
+unsigned long aui32MPG4VBR_MasterMTXTOPAZFWTextReloc[] = {
+ 0
+};
+
+unsigned char aui8MPG4VBR_MasterMTXTOPAZFWTextRelocType[] = {
+ 0
+};
+
+unsigned long aui32MPG4VBR_MasterMTXTOPAZFWTextRelocFullAddr[] = {
+ 0
+};
+
+unsigned long aui32MPG4VBR_MasterMTXTOPAZFWDataReloc[] = {
+ 0
+};
diff --git a/fw/MPG4MasterFirmwareVBR_bin.h b/fw/MPG4MasterFirmwareVBR_bin.h
new file mode 100644
index 0000000..c81e054
--- /dev/null
+++ b/fw/MPG4MasterFirmwareVBR_bin.h
@@ -0,0 +1,44 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+
+// This file was automatically generated from ../release/MPG4MasterFirmwareVBR.dnl using dnl2c.
+
+extern unsigned long aui32MPG4VBR_MasterMTXTOPAZFWText[];
+extern unsigned long ui32MPG4VBR_MasterMTXTOPAZFWTextSize;
+
+extern unsigned long aui32MPG4VBR_MasterMTXTOPAZFWData[];
+extern unsigned long ui32MPG4VBR_MasterMTXTOPAZFWDataSize;
+
+extern unsigned long aui32MPG4VBR_MasterMTXTOPAZFWTextReloc[];
+extern unsigned char aui8MPG4VBR_MasterMTXTOPAZFWTextRelocType[];
+extern unsigned long aui32MPG4VBR_MasterMTXTOPAZFWTextRelocFullAddr[];
+
+extern unsigned long aui32MPG4VBR_MasterMTXTOPAZFWDataReloc[];
+extern unsigned long ui32MPG4VBR_MasterMTXTOPAZFWDataRelocSize;
+
+extern unsigned long ui32MPG4VBR_MasterMTXTOPAZFWTextOrigin;
+extern unsigned long ui32MPG4VBR_MasterMTXTOPAZFWDataOrigin;
+
diff --git a/fw/MPG4MasterFirmware_bin.c b/fw/MPG4MasterFirmware_bin.c
new file mode 100644
index 0000000..cbe3f76
--- /dev/null
+++ b/fw/MPG4MasterFirmware_bin.c
@@ -0,0 +1,3518 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+
+// This file was automatically generated from ../release/MPG4MasterFirmware.dnl using dnl2c.
+
+unsigned char *szMPG4MasterFirmware_buildtag = "BUILD_TOPAZ_SC_1_00_00_0318";
+
+unsigned long ui32MPG4_MasterMTXTOPAZFWTextSize = 2979;
+unsigned long ui32MPG4_MasterMTXTOPAZFWDataSize = 480;
+unsigned long ui32MPG4_MasterMTXTOPAZFWTextRelocSize = 0;
+unsigned long ui32MPG4_MasterMTXTOPAZFWDataRelocSize = 0;
+
+unsigned long ui32MPG4_MasterMTXTOPAZFWTextOrigin = 0x80900000;
+unsigned long ui32MPG4_MasterMTXTOPAZFWDataOrigin = 0x82882ec0;
+
+unsigned long aui32MPG4_MasterMTXTOPAZFWText[] = {
+ 0x9040c001,
+ 0xc80993fe,
+ 0xc0000e42,
+ 0xc8290e00,
+ 0xc3648422,
+ 0xc8298400,
+ 0xc2ec8622,
+ 0x9e838600,
+ 0xc8099e43,
+ 0xc5ce0d42,
+ 0xc8090d60,
+ 0xc5d00942,
+ 0xc8090920,
+ 0xc00a0e42,
+ 0xc8090e40,
+ 0xc00e87c2,
+ 0x9c1887d0,
+ 0x0c020802,
+ 0x09820d82,
+ 0x09020d02,
+ 0x08820c82,
+ 0x9320fffe,
+ 0xa401c838,
+ 0x0dc2c809,
+ 0x0da0c5ce,
+ 0x0e42c809,
+ 0x0b46b080,
+ 0x7e74b77f,
+ 0xa48d0882,
+ 0xffff9ff3,
+ 0x9d1393e0,
+ 0xf8398081,
+ 0x0707a205,
+ 0x06850307,
+ 0x03839e97,
+ 0x0fa0060f,
+ 0x018d058d,
+ 0x9c62008f,
+ 0x9340ffff,
+ 0x0ea0060b,
+ 0xffff9c62,
+ 0x058d93a0,
+ 0xb700018d,
+ 0xb780548c,
+ 0x9c015414,
+ 0x0687a605,
+ 0x0ea0060b,
+ 0xffff9c62,
+ 0xf9f893a0,
+ 0xf9f8aa9d,
+ 0x9c22aa1d,
+ 0xa6059c22,
+ 0x85028420,
+ 0xb55f0a82,
+ 0x850a7f7c,
+ 0x9c89c037,
+ 0x9c80c971,
+ 0x75002a08,
+ 0x9184c000,
+ 0x997dc014,
+ 0x458cb780,
+ 0xc0007500,
+ 0x0d8290a4,
+ 0x990ec054,
+ 0x7f6cb79f,
+ 0xc0007500,
+ 0xc05490e4,
+ 0x0d8a9916,
+ 0x9904c054,
+ 0x8d80e032,
+ 0x99b6c014,
+ 0x0800e000,
+ 0x91c4c000,
+ 0x9ac0c014,
+ 0x458cb780,
+ 0x2a797402,
+ 0x458cb580,
+ 0x90e4c000,
+ 0x9100c000,
+ 0xc0149e83,
+ 0x75409a33,
+ 0x9162fffe,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x9c228c60,
+ 0x85028702,
+ 0x5818b543,
+ 0x5898b543,
+ 0x5918b543,
+ 0x5c18b543,
+ 0x5c98b543,
+ 0x5d18b543,
+ 0x6118b543,
+ 0x6198b543,
+ 0x6218b543,
+ 0x6818b543,
+ 0x4804b540,
+ 0x4884b540,
+ 0x4904b540,
+ 0x4984b540,
+ 0x4a04b540,
+ 0x4c04b540,
+ 0x4c84b540,
+ 0x4d04b540,
+ 0x4202b540,
+ 0x4282b540,
+ 0x5004b540,
+ 0x7684b540,
+ 0x4e84b540,
+ 0x4702b540,
+ 0xa6059c22,
+ 0xfff48420,
+ 0x0d8a9b87,
+ 0x98aac054,
+ 0x9bc6fff4,
+ 0x98b5c054,
+ 0x0cd2c420,
+ 0xb4810a02,
+ 0xb105c000,
+ 0x0d8a4220,
+ 0x8d80e031,
+ 0x9aebc014,
+ 0x0922c829,
+ 0x0960c362,
+ 0x7f6cb73f,
+ 0x2a5ed071,
+ 0x450cb580,
+ 0x2a80c01e,
+ 0xf0088502,
+ 0x7102a8c2,
+ 0x5a95c280,
+ 0x460cb5a0,
+ 0x4434b341,
+ 0xb5407640,
+ 0xb520459c,
+ 0xc000448c,
+ 0xd01190c2,
+ 0xf0080e12,
+ 0xb780a241,
+ 0xc807550c,
+ 0xc57008c2,
+ 0xc0320880,
+ 0xb5800caa,
+ 0xb421538c,
+ 0x0a2ac000,
+ 0xb4810cf4,
+ 0x1a28c000,
+ 0xc0020902,
+ 0xb96008ba,
+ 0xc2004078,
+ 0xd2240a00,
+ 0xb441588b,
+ 0xce00c000,
+ 0xffff0a11,
+ 0xe0009301,
+ 0xffff1884,
+ 0xc8079244,
+ 0xc5760a42,
+ 0xc0320a00,
+ 0xb4810caa,
+ 0x0a02c000,
+ 0x09020882,
+ 0xb9600884,
+ 0xc2004078,
+ 0xd2240a00,
+ 0xb441588b,
+ 0xce00c000,
+ 0xffff0a11,
+ 0xc0049301,
+ 0xffff745a,
+ 0x0a02923c,
+ 0x0c9ec034,
+ 0xc000b481,
+ 0x9b0dfff4,
+ 0xb79f0802,
+ 0xb7bf7eee,
+ 0x8c607f6e,
+ 0x9e549c22,
+ 0x0c82c040,
+ 0xb4219e59,
+ 0xc040c000,
+ 0xb4820d02,
+ 0x9c22c000,
+ 0x2d7cc00e,
+ 0x29e0c00e,
+ 0x9e545d30,
+ 0x0c82c040,
+ 0xb46131b8,
+ 0xc040c000,
+ 0xb4420d02,
+ 0x9c22c000,
+ 0x8420a60d,
+ 0x06870703,
+ 0x5c8dc280,
+ 0xd0a21c84,
+ 0x02875ca0,
+ 0x0a5ed011,
+ 0x5a0dc200,
+ 0xc2001a04,
+ 0x5cd05a30,
+ 0x9e4c3098,
+ 0xc0320405,
+ 0x30980c8a,
+ 0x3880c801,
+ 0xc000b421,
+ 0xc8019ea9,
+ 0xc0020a02,
+ 0x65530a00,
+ 0x0c8ac030,
+ 0xc000b481,
+ 0x0882c002,
+ 0xb4210c84,
+ 0x9e93c000,
+ 0x5f09d022,
+ 0x5d0d9e53,
+ 0xfff41d04,
+ 0xc2809bb4,
+ 0x1e845e91,
+ 0x5e84c280,
+ 0x1a849e6c,
+ 0x5a90c280,
+ 0x3a80c181,
+ 0x09820d8a,
+ 0x314a0d02,
+ 0x9baefff4,
+ 0x0d82c0c0,
+ 0xc0020992,
+ 0xc0020d02,
+ 0xc0340902,
+ 0x0a0a9bd4,
+ 0x0c9ec034,
+ 0xc000b481,
+ 0x75bf1b04,
+ 0xc0008502,
+ 0x9dcf9202,
+ 0x7f7cb55f,
+ 0x9ba7c034,
+ 0xa045f231,
+ 0x7f7cb75f,
+ 0x75bf1b04,
+ 0xffff8510,
+ 0xc0029284,
+ 0xc0300a42,
+ 0xb4810c8e,
+ 0xb79fc000,
+ 0xb7bf7e6e,
+ 0xb7df7eee,
+ 0xc0027f6e,
+ 0x9c228c00,
+ 0xf8399c22,
+ 0xb780a285,
+ 0x0986450c,
+ 0x0d0270c8,
+ 0x9096c001,
+ 0x4594b760,
+ 0x08020c06,
+ 0x0902c1cc,
+ 0x19c4d010,
+ 0x9e5d9e44,
+ 0x508cc200,
+ 0xc0007942,
+ 0xd1249202,
+ 0xc400588b,
+ 0xb4013c80,
+ 0xb104c000,
+ 0x9e554220,
+ 0x750230d2,
+ 0x4822b321,
+ 0xc00c9e8a,
+ 0x09840900,
+ 0x9101ffff,
+ 0x4594b540,
+ 0xaa9df9f8,
+ 0xc2009c22,
+ 0xc0378502,
+ 0xc1719c89,
+ 0xc8179c80,
+ 0x9c229c80,
+ 0xb780a605,
+ 0x9e5d458c,
+ 0xc000790a,
+ 0xfff49162,
+ 0xfff49bf0,
+ 0xb7809bbe,
+ 0x790a458c,
+ 0x9324ffff,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xc002a61d,
+ 0x9e5d8400,
+ 0xaa21f208,
+ 0xc0017500,
+ 0xc4209004,
+ 0x0a020cda,
+ 0xc000b481,
+ 0x4220b101,
+ 0xb4811c84,
+ 0xb106c000,
+ 0xb4814220,
+ 0xb107c000,
+ 0x008f4220,
+ 0xc000b481,
+ 0x4240b106,
+ 0xc000b481,
+ 0x4240b105,
+ 0x2a6ed1f1,
+ 0xb40d7516,
+ 0xf2084622,
+ 0x7480a921,
+ 0x92c2c000,
+ 0x8c80e092,
+ 0x098a0dc2,
+ 0x0d02c002,
+ 0x9b0afff4,
+ 0x7cecb7df,
+ 0x7c6cb79f,
+ 0x7d6cb7ff,
+ 0x7df4b7df,
+ 0x7e74b7bf,
+ 0xa221f208,
+ 0x5aa1c300,
+ 0x2afcc00e,
+ 0x0d869ea9,
+ 0xfff455e4,
+ 0xd3129ba3,
+ 0xc1c068d1,
+ 0x5c8b0c80,
+ 0xc000b4c1,
+ 0x6951d312,
+ 0x0d10c1c0,
+ 0xb4e25d0b,
+ 0xd312c000,
+ 0x9e7468d1,
+ 0x0ca0c1c0,
+ 0xb4815c8b,
+ 0xd312c000,
+ 0x9e6c6951,
+ 0x0d30c1c0,
+ 0xb4825d0b,
+ 0xd312c000,
+ 0x0a0268d1,
+ 0x0cc0c1c0,
+ 0xc4005c8b,
+ 0xb4813c80,
+ 0xb106c000,
+ 0xcfff4220,
+ 0xd3122b7c,
+ 0xc1c068d1,
+ 0x5c8b0cc0,
+ 0xc000b4c1,
+ 0x458cb720,
+ 0xc2000a04,
+ 0x000b5214,
+ 0xb5203098,
+ 0xb79f458c,
+ 0xb7bf7c6e,
+ 0xb7df7cee,
+ 0xb7ff7d6e,
+ 0xc0047dee,
+ 0x9c228c00,
+ 0xa205f839,
+ 0x0e30f011,
+ 0x919cc000,
+ 0x9ea10a04,
+ 0x55e40d86,
+ 0xc0343d88,
+ 0x0d8a9aaf,
+ 0x9aacc034,
+ 0xaa1df9f8,
+ 0xa6059c22,
+ 0x0a42c801,
+ 0x0a00c010,
+ 0x2ebed3f2,
+ 0x0caac032,
+ 0xc000b481,
+ 0x0cf408aa,
+ 0xc000b421,
+ 0x558cb780,
+ 0x0c92c080,
+ 0xa881f208,
+ 0xc000b421,
+ 0x558cb780,
+ 0xf2080c88,
+ 0xb421a889,
+ 0xb780c000,
+ 0x0c84558c,
+ 0xa88df208,
+ 0xc000b421,
+ 0x1c980902,
+ 0xc000b441,
+ 0x558cb780,
+ 0xf2080c90,
+ 0xb421a885,
+ 0xb7a0c000,
+ 0x0dd2558c,
+ 0x9a67c034,
+ 0xaa25f208,
+ 0xffff7008,
+ 0x0daa9344,
+ 0x0d060982,
+ 0x0902c121,
+ 0x9a4afff4,
+ 0x4714b760,
+ 0x0d02c021,
+ 0x09c20d04,
+ 0x9a37fff4,
+ 0x4714b760,
+ 0x0d0609c2,
+ 0x9a31fff4,
+ 0x09820daa,
+ 0xc1010d02,
+ 0xfff40902,
+ 0x0d929a35,
+ 0x9a43c034,
+ 0xaa25f208,
+ 0xffff7008,
+ 0x77409344,
+ 0x90a2c000,
+ 0xc0340d8e,
+ 0x0d8a9a45,
+ 0x9a42c034,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xc470a60d,
+ 0x0a020c8e,
+ 0xc000b481,
+ 0x4220b101,
+ 0x558cb780,
+ 0xa085f208,
+ 0x0a021c8c,
+ 0xc000b481,
+ 0x4220b105,
+ 0x2b5ed1f1,
+ 0x558cb780,
+ 0xcff09ead,
+ 0xc2802e80,
+ 0xf2085ea1,
+ 0xc280a281,
+ 0x2a845a9d,
+ 0x0a020c84,
+ 0xc000b481,
+ 0x4220b101,
+ 0x468cb520,
+ 0xb4810c84,
+ 0xb101c000,
+ 0xb5204220,
+ 0xc070470c,
+ 0xb4810c8e,
+ 0x0882c000,
+ 0xb4211c8c,
+ 0x0c90c000,
+ 0xc000b481,
+ 0xb4211c8c,
+ 0x0c84c000,
+ 0xc000b481,
+ 0x5e04b740,
+ 0x5908d326,
+ 0xe0309e2d,
+ 0x9ea4aa4d,
+ 0xb7809c62,
+ 0x7740558c,
+ 0x9ea98502,
+ 0xd0010d82,
+ 0xf2080db2,
+ 0x2596a10f,
+ 0x9b3ffff4,
+ 0xc0700a06,
+ 0xb4810c82,
+ 0x000dc000,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x4514b760,
+ 0xc0020a7f,
+ 0x9ea18502,
+ 0x89afe220,
+ 0xfff355ad,
+ 0xc01c91a0,
+ 0xc0007ebe,
+ 0xd1a29244,
+ 0xc0905e08,
+ 0xd2240a00,
+ 0x08825909,
+ 0x3d00c400,
+ 0xc000b422,
+ 0x4220b104,
+ 0xffff7500,
+ 0xc1809364,
+ 0xc0905c88,
+ 0x5c890c80,
+ 0xc000b461,
+ 0xc1809c22,
+ 0xc0905c88,
+ 0x5c890c80,
+ 0x3c80c400,
+ 0xb4810a02,
+ 0xb101c000,
+ 0xf0084220,
+ 0x5d88a0e1,
+ 0x0d80c090,
+ 0xb4835d89,
+ 0x9c22c000,
+ 0xd3129e5b,
+ 0x0a0268b1,
+ 0x0cc0c1c0,
+ 0xc4005c8b,
+ 0xb4813c80,
+ 0xb102c000,
+ 0xb7604220,
+ 0xd3125894,
+ 0x85026931,
+ 0xb9609e51,
+ 0xc1c04070,
+ 0xf03108e0,
+ 0xd0a4aa65,
+ 0xb4815889,
+ 0x0890c000,
+ 0xffff8510,
+ 0xc1c09301,
+ 0xe2108560,
+ 0xb76080ad,
+ 0xc0015a14,
+ 0xce3e3904,
+ 0xb9608521,
+ 0xf0314048,
+ 0xd0a4aa65,
+ 0xb4815889,
+ 0x0890c000,
+ 0xffff8510,
+ 0xe2209301,
+ 0xb780812d,
+ 0xc001580c,
+ 0xc1c03908,
+ 0x5d090d60,
+ 0xa885dac8,
+ 0xc000b422,
+ 0x68b1d312,
+ 0x0cc0c1c0,
+ 0xb4415c8b,
+ 0x9c22c000,
+ 0x508cb740,
+ 0x6cb1d312,
+ 0xc1c00a02,
+ 0x5c8b0cc0,
+ 0x3c80c400,
+ 0xc000b481,
+ 0x4220b101,
+ 0x6cb1d312,
+ 0x0cf0c1ca,
+ 0xb4415c8b,
+ 0xc00cc000,
+ 0xc0016d82,
+ 0xc1c038c0,
+ 0x5d8b0dc0,
+ 0xc000b423,
+ 0x84209c22,
+ 0xe0318502,
+ 0x09068d80,
+ 0x7f7cb55f,
+ 0x0cd2c472,
+ 0xb4810a02,
+ 0xb101c000,
+ 0x9e8a4220,
+ 0xc0010203,
+ 0x75002a40,
+ 0x9362c000,
+ 0x68a1d312,
+ 0xc1ca0a02,
+ 0x5c8b0cf0,
+ 0x3c80c400,
+ 0xc000b481,
+ 0x4220b101,
+ 0xa0e1f008,
+ 0x509cb740,
+ 0x7f6cb79f,
+ 0xf3109e51,
+ 0xcfff8021,
+ 0xb58028be,
+ 0xd312508c,
+ 0xc1c068a1,
+ 0x5c8b0cc0,
+ 0xc000b421,
+ 0x9c228c20,
+ 0xc006a605,
+ 0x87028420,
+ 0xc4720c06,
+ 0x0a020cd2,
+ 0xc000b481,
+ 0x4220b105,
+ 0x020b9eaa,
+ 0x2a04c001,
+ 0xc0017500,
+ 0xd31190c2,
+ 0xe1b16c81,
+ 0xb7608d00,
+ 0x09825894,
+ 0x4070b960,
+ 0x08e0c1c0,
+ 0x5889d0a4,
+ 0x3c80c400,
+ 0xc000b461,
+ 0x4220b104,
+ 0xa245f029,
+ 0x87100890,
+ 0x9281ffff,
+ 0xa973f050,
+ 0x796cb79f,
+ 0xf3109e55,
+ 0xcfff8021,
+ 0xf0502afa,
+ 0x020ba271,
+ 0x2a08c001,
+ 0xd3127500,
+ 0xc0026e81,
+ 0xe0b19082,
+ 0xc1c08d00,
+ 0xe1108760,
+ 0xb74082a3,
+ 0x09825a14,
+ 0x4048b960,
+ 0xd0a49e93,
+ 0xc4005889,
+ 0xb4613c80,
+ 0xb104c000,
+ 0xf0294220,
+ 0x0890a245,
+ 0x92a1ffff,
+ 0x580cb780,
+ 0xa943f010,
+ 0xa891da08,
+ 0xaa61f010,
+ 0xa95cf012,
+ 0xa9c7f050,
+ 0x8021f310,
+ 0xa94bd850,
+ 0xd8101884,
+ 0xf010a0c9,
+ 0xb79fa241,
+ 0xb73f7b6a,
+ 0xb73f7eec,
+ 0xf3107ff4,
+ 0xe2108021,
+ 0xe22082a3,
+ 0xcfff80bb,
+ 0xd8502af6,
+ 0xf010a249,
+ 0xf050a0dd,
+ 0x020ba0c6,
+ 0x2a10c001,
+ 0xc0007500,
+ 0xc01490c2,
+ 0xcfff9838,
+ 0xc1c02aee,
+ 0xc2800ec0,
+ 0xb4a15c8b,
+ 0xb79fc000,
+ 0xb7bf78ee,
+ 0xc006796e,
+ 0x9c228c60,
+ 0x6cb1d312,
+ 0xc1c00a02,
+ 0x5c8b0cc0,
+ 0x3c80c400,
+ 0xc000b481,
+ 0x4220b103,
+ 0x5994b740,
+ 0x6d31d311,
+ 0x4058b960,
+ 0xc1c00085,
+ 0xf03108e0,
+ 0xd0a4aa45,
+ 0xb4815889,
+ 0x0890c000,
+ 0x9321ffff,
+ 0x3990c001,
+ 0x0940c1c0,
+ 0x588bd124,
+ 0xc000b461,
+ 0xa6059c22,
+ 0x8440c002,
+ 0x5994b740,
+ 0xc4720a86,
+ 0x08820cd2,
+ 0x8502c00c,
+ 0xc000b421,
+ 0x4220b104,
+ 0xc0010189,
+ 0x75002a10,
+ 0x9302ffff,
+ 0x8d00e0d1,
+ 0x08029d47,
+ 0x4058b960,
+ 0x08e0c1c0,
+ 0x5889d0a4,
+ 0x3c80c400,
+ 0xc000b401,
+ 0x4220b104,
+ 0xa245f029,
+ 0xffff0890,
+ 0x9dc792a1,
+ 0x29eecfff,
+ 0x0cc0c1c0,
+ 0xb4615c8b,
+ 0xf010c000,
+ 0xb79fa94b,
+ 0xf0127b6c,
+ 0xb73fa94c,
+ 0xd8107bec,
+ 0xf310a9cb,
+ 0xf0108021,
+ 0xe210a953,
+ 0xd81282a3,
+ 0xf010a94c,
+ 0xf010a249,
+ 0xb79fa0cd,
+ 0xb73f7c6c,
+ 0xb73f75ea,
+ 0xf3107572,
+ 0xe2108021,
+ 0xe22082a3,
+ 0x0d8680bb,
+ 0xa251f010,
+ 0xa0cdd810,
+ 0xa0cad810,
+ 0x9b7efff4,
+ 0x68d1d312,
+ 0xc1c00a02,
+ 0x5c8b0cc0,
+ 0x3c80c400,
+ 0xc000b481,
+ 0x4220b104,
+ 0x3a20c001,
+ 0x68d1d312,
+ 0x0cc0c1c0,
+ 0xb4815c8b,
+ 0xb79fc000,
+ 0xb7bf7c6e,
+ 0xc0047cee,
+ 0x9c228c00,
+ 0xa285f839,
+ 0xaa61f010,
+ 0xc0007500,
+ 0xd0089164,
+ 0x9e48a8c1,
+ 0xc2000a06,
+ 0x30985200,
+ 0xa0c1d008,
+ 0x0d38d011,
+ 0xa9f2d010,
+ 0x1a30f011,
+ 0xa943f010,
+ 0xc0001984,
+ 0xcff193e2,
+ 0xcff08702,
+ 0xc00f8700,
+ 0xc00e087e,
+ 0xc050087c,
+ 0xf0290c1a,
+ 0xd020a8c5,
+ 0x5ca12095,
+ 0x22109e4d,
+ 0x5a20c200,
+ 0xba0930d8,
+ 0xb4204006,
+ 0xf011c000,
+ 0x19841a30,
+ 0x91e4ffff,
+ 0x802ff210,
+ 0xa241f010,
+ 0xaa9df9f8,
+ 0xa60d9c22,
+ 0x59409e5d,
+ 0x5841f124,
+ 0x2d2ed3f1,
+ 0x4422b350,
+ 0x93e2c002,
+ 0xaa61f008,
+ 0x2a1ce000,
+ 0x4422b425,
+ 0xaa61d808,
+ 0xe2108522,
+ 0x2a1c88a9,
+ 0x9ea31218,
+ 0x0a7ec00e,
+ 0x400bba1b,
+ 0x5207c200,
+ 0xc0012128,
+ 0x9e599276,
+ 0x5a20c100,
+ 0xc2001103,
+ 0x9ea25209,
+ 0x58a1c200,
+ 0xd0319e8d,
+ 0xd2080cb0,
+ 0xc00ea8a2,
+ 0xc2002a7c,
+ 0xc00e5207,
+ 0x349a2a7c,
+ 0xa0a2d208,
+ 0xa963f008,
+ 0xd3f19ea1,
+ 0xc2012a2e,
+ 0xf3108128,
+ 0x85028821,
+ 0xa261f008,
+ 0xa127d228,
+ 0xcff09eab,
+ 0x59402d01,
+ 0x35225941,
+ 0x2d7cc00e,
+ 0x9bb1fff4,
+ 0x92e0c000,
+ 0xaa21d208,
+ 0x000b9e5e,
+ 0x324250d8,
+ 0xa205d029,
+ 0xa8e1f008,
+ 0x291ed013,
+ 0x8029f210,
+ 0x9e447510,
+ 0xf0080098,
+ 0xb350a0e1,
+ 0xb79f4426,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0xa60d9c22,
+ 0x9e690685,
+ 0x0b029e9e,
+ 0x0a867182,
+ 0x9208c000,
+ 0x16d29ea9,
+ 0xc2809e69,
+ 0xd0115a84,
+ 0x71021a52,
+ 0x08e2d011,
+ 0x2b1ed3f1,
+ 0x9286ffff,
+ 0x0a62d011,
+ 0x028d7510,
+ 0x91d4c000,
+ 0x0d029e73,
+ 0xfff40922,
+ 0x1aa09b70,
+ 0x0a52d011,
+ 0x9e837510,
+ 0x92d2ffff,
+ 0x0d069e73,
+ 0x0952d011,
+ 0x297cc00e,
+ 0x9b61fff4,
+ 0x9e837590,
+ 0x92f4c000,
+ 0x1a60d031,
+ 0x2b4ed3f1,
+ 0x9e739e6c,
+ 0x5299c200,
+ 0x295ed3f2,
+ 0xfff40922,
+ 0x9e839b50,
+ 0x52b8c200,
+ 0x75909ea9,
+ 0xffff16d2,
+ 0x9e7391b2,
+ 0x2d5ed3f2,
+ 0xfff4010d,
+ 0xb79f9b42,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0xf0119c22,
+ 0x9e990ca0,
+ 0x5a04d09a,
+ 0x1a42d00d,
+ 0x909ac000,
+ 0x12421203,
+ 0x9ea29e4b,
+ 0x9360fffc,
+ 0x8420a60d,
+ 0x9e558502,
+ 0x7f7cb55f,
+ 0x7ffcb55f,
+ 0xaa61f010,
+ 0x8c8ee011,
+ 0x1a080307,
+ 0xd226750a,
+ 0x8540590c,
+ 0x8044e05a,
+ 0x90a0c003,
+ 0x9180c000,
+ 0x92a0c000,
+ 0x93c0c000,
+ 0x9100c001,
+ 0x9200c001,
+ 0x9060c002,
+ 0x8d88e011,
+ 0xd0729e8b,
+ 0xb5a01954,
+ 0xfff4500c,
+ 0xc0029bc8,
+ 0xb7409200,
+ 0x9ea95014,
+ 0x8d88e011,
+ 0x15149e8b,
+ 0x9bbdfff4,
+ 0x90a0c002,
+ 0x8d88e011,
+ 0xd3f29e8b,
+ 0x0916295e,
+ 0x9aebfff4,
+ 0x500cb5a0,
+ 0x9320c001,
+ 0x8d88e011,
+ 0xd3f29e8b,
+ 0x0916295e,
+ 0x9adffff4,
+ 0x91e0c001,
+ 0xaa41d208,
+ 0xf0119e8b,
+ 0x4a7d8c88,
+ 0x2aced012,
+ 0x09060d06,
+ 0xfff4018b,
+ 0x9e839ad0,
+ 0x018b9e6a,
+ 0xfff40d02,
+ 0xc0009aca,
+ 0xd2089340,
+ 0x9e8baa41,
+ 0x8c88f011,
+ 0xd0124a7d,
+ 0x0d022ace,
+ 0x018b0906,
+ 0x9abbfff4,
+ 0x9e6a9e83,
+ 0xc00e018b,
+ 0xfff40d7e,
+ 0xc0009ab4,
+ 0xc0019080,
+ 0xb79f90e0,
+ 0xc00f7e68,
+ 0xc00e0cfe,
+ 0x9e4a0cfc,
+ 0x7c68b59f,
+ 0x7f6cb73f,
+ 0x0a02cff1,
+ 0x0a00cff0,
+ 0x0c9ac050,
+ 0xc2002218,
+ 0x20945a21,
+ 0x324258a0,
+ 0x4006ba24,
+ 0x7f6cb59f,
+ 0xc000b481,
+ 0xa943f208,
+ 0x7fecb79f,
+ 0x8021f310,
+ 0xa241f208,
+ 0x7e6eb79f,
+ 0x7eeeb7bf,
+ 0x7f6eb7df,
+ 0x8c00c002,
+ 0xa61d9c22,
+ 0x85028440,
+ 0xf0319e9d,
+ 0x0b02abe5,
+ 0x7878b55f,
+ 0x7efcb55f,
+ 0x9d3a718e,
+ 0x91e8c001,
+ 0x7502aa41,
+ 0x9392c000,
+ 0xaad1d018,
+ 0x8d08e032,
+ 0x8d00e051,
+ 0x9eb19dcf,
+ 0xb55f8510,
+ 0xc0027f7c,
+ 0xc2800a9c,
+ 0x018b5a95,
+ 0x9a1efff4,
+ 0x7f7cb75f,
+ 0x5a88c280,
+ 0x8122c301,
+ 0x91a0c000,
+ 0x8d88e031,
+ 0x050b9dcf,
+ 0xb55f8510,
+ 0xfff47f7c,
+ 0xb75f9b23,
+ 0x0b047f7c,
+ 0xfffe718e,
+ 0xb79f92a6,
+ 0xc0507868,
+ 0xb4810c9e,
+ 0xc050c000,
+ 0xb4e20d16,
+ 0xb71fc000,
+ 0xb79f7eec,
+ 0xb7bf7d6e,
+ 0xb7df7dee,
+ 0xb7ff7e6e,
+ 0xc0027eee,
+ 0x9c228c40,
+ 0xc450a605,
+ 0x0a020c8a,
+ 0xc000b481,
+ 0x4240b102,
+ 0x2d7ce00e,
+ 0x5d10d104,
+ 0x0a02c801,
+ 0xc0300a40,
+ 0xb4810c8a,
+ 0x08c2c000,
+ 0xb4210c84,
+ 0xb740c000,
+ 0xf0485c8c,
+ 0xf210a947,
+ 0xf048802d,
+ 0xc450a245,
+ 0x0a020c86,
+ 0xc000b481,
+ 0x4220b101,
+ 0x0a42c801,
+ 0x0a00c010,
+ 0x0caac032,
+ 0xc000b481,
+ 0xc03408aa,
+ 0xb4220d1e,
+ 0xc450c000,
+ 0x0a020cf2,
+ 0xc000b481,
+ 0x4220b101,
+ 0x1910d053,
+ 0x570cb780,
+ 0xa891f248,
+ 0x88a3f210,
+ 0x0d060d82,
+ 0xffd4018b,
+ 0xc0809b9e,
+ 0xb4a10ca2,
+ 0xc002c000,
+ 0xc0140d82,
+ 0x700a9954,
+ 0x9364ffff,
+ 0x09820daa,
+ 0xc1210d0a,
+ 0xffd40902,
+ 0xb7809939,
+ 0xf248570c,
+ 0xc0a1a992,
+ 0x0d040d02,
+ 0xffd409c2,
+ 0xc0c09924,
+ 0x09920d82,
+ 0x09420d42,
+ 0x9957c014,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xc010a60d,
+ 0xb7208400,
+ 0xb780570c,
+ 0x2a2049ad,
+ 0xb7c07500,
+ 0x09025894,
+ 0x9182c000,
+ 0x6108b783,
+ 0xc0007500,
+ 0xd29090e2,
+ 0x7500aa41,
+ 0x9164c005,
+ 0x49adb720,
+ 0x2a18d011,
+ 0xd0027500,
+ 0xc0003924,
+ 0xd0119124,
+ 0x75002a14,
+ 0x3922d002,
+ 0x3926d001,
+ 0x0c82c050,
+ 0xc000b441,
+ 0xb7409d87,
+ 0x0dc2468c,
+ 0xc01009c2,
+ 0xcff00d02,
+ 0xffd40c81,
+ 0xb78398fb,
+ 0x9d1b6108,
+ 0xcff07500,
+ 0xc0000b01,
+ 0xd2909282,
+ 0x7500aa41,
+ 0x91e2c000,
+ 0x606cb79f,
+ 0x8d00f211,
+ 0x2a00c010,
+ 0xcff07500,
+ 0xf3100a03,
+ 0xb3468001,
+ 0xb79e4422,
+ 0xc8014068,
+ 0xc01008c2,
+ 0xc0320880,
+ 0xb59f0cea,
+ 0xb421606c,
+ 0xb783c000,
+ 0x75006108,
+ 0x9282c001,
+ 0x6208b783,
+ 0xc0017500,
+ 0xb72091e2,
+ 0xd011510c,
+ 0x75002a12,
+ 0x9102c001,
+ 0x5d94b7a0,
+ 0x598cb7a0,
+ 0xaa21f210,
+ 0x28f99eab,
+ 0x510cb520,
+ 0x9c629ea4,
+ 0x5b8cb720,
+ 0x4129b780,
+ 0xc0007500,
+ 0xf20892a4,
+ 0xf210a9a1,
+ 0x0d82a83d,
+ 0x9c629e84,
+ 0xa8a5f250,
+ 0xf2089eab,
+ 0x0982a021,
+ 0x9c629e8c,
+ 0xaa21da08,
+ 0x738ab581,
+ 0xa9cdda10,
+ 0xfff49eb3,
+ 0xc8019aa6,
+ 0xc00a0a02,
+ 0xc0300a00,
+ 0xb4810c8a,
+ 0xc008c000,
+ 0x0c8408c2,
+ 0xc000b421,
+ 0x0a02c008,
+ 0xb4810c88,
+ 0xc0c0c000,
+ 0x09920d82,
+ 0x0d02c008,
+ 0x0902c008,
+ 0x989dc014,
+ 0x0a02c008,
+ 0x0c8ec030,
+ 0xc000b481,
+ 0x590cb720,
+ 0xb5408506,
+ 0xfff44039,
+ 0xb79f9ad1,
+ 0xb7bf6eee,
+ 0xb7df6f6e,
+ 0xc0106fee,
+ 0x9c228c60,
+ 0xa205f839,
+ 0x0c82c450,
+ 0xb4810a02,
+ 0xb101c000,
+ 0xc0084220,
+ 0xc0300a40,
+ 0xb4810c8e,
+ 0xc002c000,
+ 0xc05038c0,
+ 0xb4210c82,
+ 0xc0c0c000,
+ 0x09920d82,
+ 0x0d02c008,
+ 0x0902c008,
+ 0x9869c014,
+ 0x0a02c008,
+ 0x0c8ec030,
+ 0xc000b481,
+ 0xaa1df9f8,
+ 0x9000fff5,
+ 0xf011a60d,
+ 0xc0010eb0,
+ 0xc01e9182,
+ 0xc0080f7e,
+ 0xc0300b02,
+ 0xc0400e8e,
+ 0x9e747540,
+ 0x0c96c050,
+ 0x4426b354,
+ 0xc20012d8,
+ 0xb4815a14,
+ 0xc030c000,
+ 0xb4c20d0a,
+ 0xb4c5c000,
+ 0xc030c000,
+ 0xb4c10c96,
+ 0xc0c0c000,
+ 0x09920d82,
+ 0x0d02c008,
+ 0x0902c008,
+ 0x9835c014,
+ 0xc000b4c5,
+ 0xfffe7540,
+ 0xfff493c4,
+ 0xb79f9a6f,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0xb4639c22,
+ 0x9c22c000,
+ 0xa062f812,
+ 0xc2009c22,
+ 0x5d890d80,
+ 0x09829e59,
+ 0x3d80c400,
+ 0xc000b463,
+ 0x4620b203,
+ 0x9c220007,
+ 0x9c8fc127,
+ 0x080a9c22,
+ 0x56f1b971,
+ 0x9c81c017,
+ 0x9c80c071,
+ 0x9c80c017,
+ 0x4000b960,
+ 0xffff9c22,
+ 0x9e5c9280,
+ 0xd1a401c6,
+ 0x08825889,
+ 0x3c80c400,
+ 0xc000b421,
+ 0x4220b104,
+ 0x9e532244,
+ 0xffff7106,
+ 0x9c229324,
+ 0xc004a60d,
+ 0xc8298420,
+ 0xc3540ca2,
+ 0xc0300cf0,
+ 0xe133ac3d,
+ 0xc0388d00,
+ 0xc030a45d,
+ 0xc038ac3d,
+ 0xc010a45d,
+ 0xc018ac3d,
+ 0xc010a45d,
+ 0xc018ac25,
+ 0xb7a0a445,
+ 0x9ea9570c,
+ 0xb5408502,
+ 0xb541651a,
+ 0xb7404b98,
+ 0x0dc2468c,
+ 0x0d42c00a,
+ 0xffb409c2,
+ 0xd2519ba9,
+ 0xda080a58,
+ 0x7502aa01,
+ 0xc0009ead,
+ 0xb5809084,
+ 0xf290448c,
+ 0x2a08aa2d,
+ 0xc0007500,
+ 0x850690a4,
+ 0x449cb540,
+ 0x5c8cb780,
+ 0xa8a1f210,
+ 0xf2108502,
+ 0xb540a8a6,
+ 0xb540509c,
+ 0xf208481a,
+ 0xf208a103,
+ 0xf210a085,
+ 0xf208a929,
+ 0xf210a08a,
+ 0xf210a92e,
+ 0xf208a8b2,
+ 0xf250a10d,
+ 0xf208a8b1,
+ 0xf208a112,
+ 0xf208a096,
+ 0xc050a09a,
+ 0x08c00cf2,
+ 0xa085f248,
+ 0xc000b421,
+ 0xc0360a0a,
+ 0xb4810c92,
+ 0x0896c000,
+ 0xb4211c8c,
+ 0xf031c000,
+ 0xe1318c00,
+ 0x9ea38d80,
+ 0x5b8cb7c0,
+ 0x7ffcb55f,
+ 0xb9600d02,
+ 0xf2084078,
+ 0x9dbaa103,
+ 0x5d0dd122,
+ 0xf0299e2d,
+ 0xd012a8e5,
+ 0x5c882cae,
+ 0x5908d126,
+ 0xe0389e4a,
+ 0x0d04aa4d,
+ 0x50a828bc,
+ 0xa2413242,
+ 0x91c1ffff,
+ 0xaa61f010,
+ 0x0c8ec036,
+ 0xc000b481,
+ 0x7fecb73f,
+ 0xb4211c84,
+ 0xc014c000,
+ 0xd2089999,
+ 0x7500aa4d,
+ 0x9262c000,
+ 0xaa2df290,
+ 0x2ac8f011,
+ 0x91a4c000,
+ 0x2a00c800,
+ 0xc0007500,
+ 0xf20890c4,
+ 0xfff4a9c6,
+ 0xd2089ae3,
+ 0xf290a2cd,
+ 0xd011a8ad,
+ 0x75002a14,
+ 0x9104c000,
+ 0x0a42c809,
+ 0x0a50c5ae,
+ 0x530cb580,
+ 0x460cb780,
+ 0xc0007500,
+ 0xc0809162,
+ 0x2a045a31,
+ 0x0ceac03e,
+ 0xc000b481,
+ 0x9280c000,
+ 0x448cb780,
+ 0xc0007502,
+ 0xc100915c,
+ 0x74402880,
+ 0xd0010a0e,
+ 0xc0001a46,
+ 0x0a029060,
+ 0x0ceac03e,
+ 0xc000b481,
+ 0x7a6eb79f,
+ 0x7aeeb7bf,
+ 0x7b6eb7df,
+ 0x8c00c006,
+ 0xb7809c22,
+ 0xc0c8538c,
+ 0xb9600892,
+ 0xd01140f8,
+ 0xf0290948,
+ 0xd0a4aa45,
+ 0xb4815889,
+ 0x0890c000,
+ 0x9321ffff,
+ 0xa6059c22,
+ 0x460cb720,
+ 0x790cb780,
+ 0x0a047440,
+ 0x790cb580,
+ 0x9364c000,
+ 0x6108b783,
+ 0xc0007500,
+ 0xb72092c2,
+ 0xb780448c,
+ 0x7442510c,
+ 0xb5803a40,
+ 0xc000510c,
+ 0xb780919c,
+ 0xd2085b8c,
+ 0x7440a889,
+ 0x90a4c000,
+ 0xb5438506,
+ 0xc8016818,
+ 0xc0100a42,
+ 0xc0320a00,
+ 0xb4810cea,
+ 0xc008c000,
+ 0xc00208c2,
+ 0xb4211ce0,
+ 0xc008c000,
+ 0xc0300a42,
+ 0xb4820d0e,
+ 0xc450c000,
+ 0xc0080c82,
+ 0xb4811a40,
+ 0xb101c000,
+ 0xc0024220,
+ 0xc05038c0,
+ 0xb4210c82,
+ 0xc0c0c000,
+ 0x09920d82,
+ 0x0d02c008,
+ 0x0902c008,
+ 0x9aa7fff4,
+ 0x0c86c450,
+ 0xb4810a02,
+ 0xb105c000,
+ 0xc0084220,
+ 0xc0300a00,
+ 0xb4820d0e,
+ 0x0c84c000,
+ 0x1a00c008,
+ 0xc000b481,
+ 0x4220b101,
+ 0x5a35c080,
+ 0x0902c801,
+ 0xc00e0940,
+ 0xd0a828fc,
+ 0xd0715910,
+ 0xc03029ce,
+ 0x9dc80c8a,
+ 0xc000b441,
+ 0x0c840a42,
+ 0xc000b481,
+ 0xc0007680,
+ 0xb7209182,
+ 0xb7405c8c,
+ 0xf21044bd,
+ 0xf3108a27,
+ 0xb5808021,
+ 0xc45044ad,
+ 0x0a020c86,
+ 0xc000b481,
+ 0x4220b105,
+ 0xb4810cec,
+ 0xb105c000,
+ 0x12d64220,
+ 0xc03408ea,
+ 0xb4210c9e,
+ 0xb780c000,
+ 0xf248570c,
+ 0xd053a891,
+ 0xf2101950,
+ 0x0d8288a3,
+ 0xc2800d06,
+ 0xb5805a0c,
+ 0x018b508c,
+ 0x9873ffd4,
+ 0x0ca2c080,
+ 0xc000b4a1,
+ 0x478cb780,
+ 0xb4810c88,
+ 0xb7a0c000,
+ 0xc0025814,
+ 0xfff40d82,
+ 0x700a9a22,
+ 0x9364ffff,
+ 0x790cb780,
+ 0xa8adf210,
+ 0xa8a2f250,
+ 0x9e496243,
+ 0xc0007102,
+ 0x850690b8,
+ 0x6618b543,
+ 0x460cb780,
+ 0x0a827500,
+ 0x9204c001,
+ 0x448cb780,
+ 0xc0007502,
+ 0xb783933c,
+ 0x75006108,
+ 0x9282c000,
+ 0x458cb780,
+ 0xb5802a79,
+ 0xffd4458c,
+ 0xb7839831,
+ 0x75006808,
+ 0x90c2c000,
+ 0x9908ffd4,
+ 0x6808b5a3,
+ 0x98cdffd4,
+ 0x6108b783,
+ 0xc0007500,
+ 0xc01493e2,
+ 0xb780993d,
+ 0xd2085b8c,
+ 0x7440a889,
+ 0x92c2c000,
+ 0x0a82c080,
+ 0x9240c000,
+ 0xffd40d82,
+ 0xb7839899,
+ 0x75006208,
+ 0x90e2c000,
+ 0xffd40d82,
+ 0xc0009845,
+ 0x0d8290a0,
+ 0x997affd4,
+ 0x0ca6c080,
+ 0xc000b4a1,
+ 0x0d92c002,
+ 0x99c5fff4,
+ 0xffff700a,
+ 0x0dea9364,
+ 0x0d0a0982,
+ 0x0902c121,
+ 0x99aaffb4,
+ 0x570cb780,
+ 0xa992f248,
+ 0x0d02c0a1,
+ 0x09c20d04,
+ 0x9995ffb4,
+ 0x0d82c0c0,
+ 0x0d420992,
+ 0xfff40942,
+ 0x0a0299c8,
+ 0x0ceac03e,
+ 0xc000b481,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xb720a60d,
+ 0xb720570c,
+ 0xd09149b5,
+ 0x75002e10,
+ 0xc0019e8e,
+ 0xd0119282,
+ 0x85062e14,
+ 0x6118b543,
+ 0x75000e82,
+ 0x7914b5a0,
+ 0x6610b5a3,
+ 0x9082c000,
+ 0x6198b543,
+ 0x2e10d111,
+ 0xc0007500,
+ 0xb5439082,
+ 0xd2116218,
+ 0x75002e10,
+ 0x9082c000,
+ 0x6298b543,
+ 0x5d8cb780,
+ 0x0ee0d151,
+ 0xa88ef208,
+ 0x06039eab,
+ 0xb7209c62,
+ 0xd208588c,
+ 0xb580aa21,
+ 0xb72041ab,
+ 0xb5a041b3,
+ 0xb5204392,
+ 0xb7c05014,
+ 0xf2d0580c,
+ 0xf208aa49,
+ 0x7048a8d9,
+ 0x9142c000,
+ 0x5d8cb780,
+ 0xa88df248,
+ 0x0de0d152,
+ 0x9c629e8c,
+ 0x6108b783,
+ 0xc0047500,
+ 0xb7209062,
+ 0x76404614,
+ 0x93c4c003,
+ 0x438ab720,
+ 0xc0007440,
+ 0xda0890e2,
+ 0x7048aa55,
+ 0x9004c001,
+ 0x5b94b7a0,
+ 0x6188b783,
+ 0x5d8cb7a0,
+ 0xa9d6da08,
+ 0x4392b520,
+ 0x7500850a,
+ 0xa0aad210,
+ 0xa8a9f208,
+ 0x8d24e001,
+ 0x1d849d4f,
+ 0x9c629e8c,
+ 0xaa31f208,
+ 0x0d8a030b,
+ 0x9c629ea4,
+ 0x9180c000,
+ 0x5d8cb780,
+ 0xa891f208,
+ 0x5b94b7a0,
+ 0x03090d86,
+ 0x9c629e8c,
+ 0x438ab780,
+ 0x6208b723,
+ 0x5894b720,
+ 0xb5800a04,
+ 0xd210438a,
+ 0x7440aa29,
+ 0x4849b580,
+ 0x9024c001,
+ 0x598cb7a0,
+ 0xa8c1f208,
+ 0x9e8c9eab,
+ 0xd2109c62,
+ 0x7500aa29,
+ 0x92a4c000,
+ 0xa9a1f208,
+ 0xa85df208,
+ 0x9e840d82,
+ 0xf2089c62,
+ 0xf248a021,
+ 0x9eaba845,
+ 0x9e840982,
+ 0xda089c62,
+ 0xb581aa21,
+ 0xb780738a,
+ 0x7502448c,
+ 0x90bcc000,
+ 0xffb40d86,
+ 0xd2109b51,
+ 0x7500aa29,
+ 0x9122c000,
+ 0x558cb720,
+ 0x412db780,
+ 0xc0003a08,
+ 0xb72090e0,
+ 0xb780558c,
+ 0x2a75412d,
+ 0x412db580,
+ 0x6108b723,
+ 0x510cb780,
+ 0x3a047440,
+ 0x510cb580,
+ 0x91c4c000,
+ 0x0e60d151,
+ 0x588cb740,
+ 0xa882d208,
+ 0xa881d208,
+ 0x5014b520,
+ 0xa0cdd808,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0xb783a60d,
+ 0x75006208,
+ 0x5d94b7a0,
+ 0xc0000b02,
+ 0xb7a09262,
+ 0xf210598c,
+ 0xf208a83d,
+ 0x0d8aa9a1,
+ 0x9c629e84,
+ 0xa021f208,
+ 0xa825f250,
+ 0x09869eab,
+ 0x9c629e84,
+ 0x6208b783,
+ 0xb7c07500,
+ 0xc0005094,
+ 0xb7609124,
+ 0xf2105994,
+ 0x9e84a825,
+ 0x03019c62,
+ 0x5b8cb720,
+ 0x4129b780,
+ 0x02837500,
+ 0x9224c000,
+ 0x6208b783,
+ 0xc0007500,
+ 0xf25090c4,
+ 0x9ea4aa21,
+ 0xf2109c62,
+ 0x9eb1aa35,
+ 0x9ea415e2,
+ 0xf2109c62,
+ 0x9eb3aa39,
+ 0x9ea4018b,
+ 0xb7209c62,
+ 0xb780570c,
+ 0xc40049ad,
+ 0x75002a00,
+ 0x9102c000,
+ 0xd2088502,
+ 0x8506a12b,
+ 0xa123d208,
+ 0x510cb780,
+ 0x2a3dcffe,
+ 0x510cb580,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0xc002a61d,
+ 0xc8298420,
+ 0xc35e0ca2,
+ 0x02070c80,
+ 0xac3dc010,
+ 0x8d00e0b3,
+ 0xa45dc018,
+ 0x0ca2c829,
+ 0x0cc0c35e,
+ 0xac3dc010,
+ 0x8c80e072,
+ 0xc0189d1a,
+ 0xc01ca45d,
+ 0x9e5f7d3e,
+ 0x9162c000,
+ 0x8c80f0b2,
+ 0xc0060faa,
+ 0xb53f08e2,
+ 0xc0007f6c,
+ 0x06839100,
+ 0xc0060fa6,
+ 0xb59f0a56,
+ 0x0b027f6c,
+ 0x0c82c450,
+ 0xb4810a02,
+ 0xb101c000,
+ 0xb53f4220,
+ 0xc0087fec,
+ 0xc0300a40,
+ 0xb4810c8a,
+ 0xc008c000,
+ 0x0c8408c2,
+ 0xc000b421,
+ 0x9e7b9ebb,
+ 0x9973c054,
+ 0x9e799e7c,
+ 0x714e6289,
+ 0x03890258,
+ 0x4422b357,
+ 0x028f71c2,
+ 0x9086c003,
+ 0x0f1ac050,
+ 0x7f6cb79f,
+ 0x7f6cb73f,
+ 0xf210710a,
+ 0x020ba8a2,
+ 0x4434b314,
+ 0x294ed3f1,
+ 0xc1009e4c,
+ 0x309858e0,
+ 0xc000b426,
+ 0xc00074b0,
+ 0xf21092d4,
+ 0xb486aa25,
+ 0xc004c000,
+ 0xc00074b0,
+ 0xf21090d4,
+ 0xb486aa29,
+ 0xc008c000,
+ 0xc00074b0,
+ 0xf21090d4,
+ 0xb486aa2d,
+ 0xd011c000,
+ 0xd3f10a62,
+ 0x75882b4e,
+ 0xd0010882,
+ 0xe0000892,
+ 0x0a0212d4,
+ 0x0a42d001,
+ 0x3098e000,
+ 0x9082c001,
+ 0x0c96c050,
+ 0xc000b4c1,
+ 0x7fecb73f,
+ 0xd0511c94,
+ 0xb4813a10,
+ 0xc0c0c000,
+ 0x09920d82,
+ 0x0902c008,
+ 0x0d02c008,
+ 0x9bc7ffd4,
+ 0x0c86c450,
+ 0xb4810a02,
+ 0xb101c000,
+ 0xc0084220,
+ 0xc0300a00,
+ 0xb4810c8e,
+ 0x0b02c000,
+ 0x71489e7c,
+ 0x9048fffd,
+ 0xb79f000f,
+ 0xb7bf7bee,
+ 0xb7df7c6e,
+ 0xb7ff7cee,
+ 0xc0047d6e,
+ 0x9c228c20,
+ 0x4b0cb720,
+ 0xc0ff9e5c,
+ 0xc0ff2a40,
+ 0x710228c0,
+ 0xc0008502,
+ 0x85069062,
+ 0x4b9cb540,
+ 0x4b14b560,
+ 0xa6059c22,
+ 0xd0519e5d,
+ 0x75002a50,
+ 0x90e4c000,
+ 0x4b8cb780,
+ 0xc0007500,
+ 0xc0c09142,
+ 0xc0120d82,
+ 0x0d0209c2,
+ 0xffd40942,
+ 0xb7809b84,
+ 0xc0344b0c,
+ 0xb4810cb6,
+ 0xc034c000,
+ 0xb4a20d32,
+ 0xb5a0c000,
+ 0xb79f4a8c,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa61d9c22,
+ 0xb7838420,
+ 0x75006108,
+ 0x9122c000,
+ 0x588cb780,
+ 0xa881d288,
+ 0xc0197440,
+ 0xb7c092a4,
+ 0x9eb1568c,
+ 0x468cb740,
+ 0x098e0dc2,
+ 0x0d42c002,
+ 0x9b3aff94,
+ 0xaa55f208,
+ 0x5614b7c0,
+ 0xa8c5f208,
+ 0xa8caf208,
+ 0x570cb7a0,
+ 0x478cb580,
+ 0xa0d5f210,
+ 0xaa59da08,
+ 0xa8ddda08,
+ 0xa0def210,
+ 0x08d0d252,
+ 0xa259f210,
+ 0xa0c1f250,
+ 0xa942da08,
+ 0x404bb740,
+ 0x0a50d131,
+ 0xa881da08,
+ 0xda889e53,
+ 0x5915a8d2,
+ 0x5b90d124,
+ 0xa947f248,
+ 0x7e7edffc,
+ 0xc08060b2,
+ 0xc2005a7f,
+ 0x00985a71,
+ 0x58945893,
+ 0x80a3e210,
+ 0xa0ddf250,
+ 0x91e2c000,
+ 0x5d40e100,
+ 0x9164c000,
+ 0xaa55da88,
+ 0xb5208502,
+ 0xb5404792,
+ 0xb580489a,
+ 0xf288468a,
+ 0xd132aa21,
+ 0xf2500950,
+ 0xf250a255,
+ 0xda08a259,
+ 0xd810a8c1,
+ 0xf248aa41,
+ 0xda48a93b,
+ 0x6218a8ba,
+ 0x8021f310,
+ 0xa93dda48,
+ 0xa0caf250,
+ 0xa249f290,
+ 0xaa29da48,
+ 0xa151f250,
+ 0xa923f208,
+ 0xa8aeda48,
+ 0xc2006218,
+ 0xf3105a10,
+ 0xf2108021,
+ 0xf208a241,
+ 0x9e4ca927,
+ 0xa928f20a,
+ 0x588c6098,
+ 0x8023f210,
+ 0x82a3e210,
+ 0xa249f210,
+ 0xa8aada48,
+ 0xa0cdf210,
+ 0xaa41da08,
+ 0xa8c1d810,
+ 0xa0c6f210,
+ 0xa937f248,
+ 0x62430a04,
+ 0x5c8cb740,
+ 0x8021f310,
+ 0xa245f290,
+ 0xa8c1da08,
+ 0xa953f008,
+ 0xa8c2da08,
+ 0xa954f00a,
+ 0xe21058a0,
+ 0x5c9c80a3,
+ 0x82a3e020,
+ 0xaa2dda48,
+ 0xa0adf208,
+ 0xa0b2f208,
+ 0xa0c5f250,
+ 0xa0cef250,
+ 0xa251f210,
+ 0xa941d810,
+ 0x1880c004,
+ 0x4f0cb520,
+ 0x0a54d131,
+ 0xa881da08,
+ 0x1c80c002,
+ 0x4f94b520,
+ 0x59515940,
+ 0xa155f290,
+ 0x58d158c0,
+ 0xa0d9f290,
+ 0x0cf2c42e,
+ 0xb4810a02,
+ 0xb101c000,
+ 0x28844220,
+ 0xd1317440,
+ 0xc0000bd0,
+ 0xda089102,
+ 0xc09caa61,
+ 0xc012753e,
+ 0xc0c092f2,
+ 0xc05008c6,
+ 0xb4210ce2,
+ 0xf208c000,
+ 0x2a10aa59,
+ 0xc0007500,
+ 0xb7a09362,
+ 0xd2085b8c,
+ 0x7500aa2d,
+ 0x9282c000,
+ 0x570cb720,
+ 0x49b5b7a0,
+ 0x2e80e800,
+ 0x9184c000,
+ 0xa9a6f208,
+ 0xa9c1d2c8,
+ 0x29845d94,
+ 0x99fcfff4,
+ 0xa2aed208,
+ 0x570cb760,
+ 0xa959f208,
+ 0x0a30d131,
+ 0xa881da08,
+ 0x28a0d052,
+ 0x58917640,
+ 0x4e8cb520,
+ 0x9222c000,
+ 0xc0600a02,
+ 0xb4810cae,
+ 0xda08c000,
+ 0x7440a8c1,
+ 0x9302c000,
+ 0xb5408502,
+ 0xc0004e9c,
+ 0xc2009260,
+ 0x74802900,
+ 0x9122c000,
+ 0xc0600a0a,
+ 0xb4810cae,
+ 0xc000c000,
+ 0x0a0690e0,
+ 0x0caec060,
+ 0xc000b481,
+ 0xaa59f208,
+ 0x75002a04,
+ 0xb540850a,
+ 0xc000491c,
+ 0x850490a2,
+ 0x491cb540,
+ 0x6108b783,
+ 0xc0007500,
+ 0xb7839322,
+ 0x75006208,
+ 0x9284c000,
+ 0x460cb780,
+ 0xc0007500,
+ 0xb78391e2,
+ 0x75006288,
+ 0x9144c000,
+ 0x5d8cb720,
+ 0x5994b760,
+ 0x402db780,
+ 0x9c629ea4,
+ 0xaa59f208,
+ 0x75002a20,
+ 0x90e2c000,
+ 0xaa41da08,
+ 0xc0007500,
+ 0xb7809244,
+ 0xb720588c,
+ 0xda08530c,
+ 0x9e8ca98e,
+ 0xb7839c62,
+ 0x75006108,
+ 0x90a2c000,
+ 0xb5438506,
+ 0xf2086b18,
+ 0x2a10aa59,
+ 0xc0017500,
+ 0xc2f09182,
+ 0xc0380a7e,
+ 0xb4810cfa,
+ 0xf248c000,
+ 0xc050a8c1,
+ 0xb4210ce6,
+ 0xf208c000,
+ 0xb720aa59,
+ 0x851a490c,
+ 0x0c82c038,
+ 0x75002a04,
+ 0xb5203890,
+ 0xc184490c,
+ 0xe00108e6,
+ 0xb5408d28,
+ 0xb4214d1c,
+ 0xb780c000,
+ 0xc8005e8c,
+ 0xc0020886,
+ 0xb5800c80,
+ 0xb421520c,
+ 0xffd4c000,
+ 0xb7809ab6,
+ 0xc03e490c,
+ 0xb4810c82,
+ 0xb720c000,
+ 0xc0504d0c,
+ 0xb4210c82,
+ 0xda08c000,
+ 0xf290a941,
+ 0xda08a8d5,
+ 0x6123a946,
+ 0xda089e53,
+ 0x6097aa41,
+ 0x5c14b720,
+ 0xb5418702,
+ 0x857f7482,
+ 0x459ab540,
+ 0xb540851a,
+ 0x0d86449a,
+ 0xb5801a04,
+ 0xb5404d8c,
+ 0x8526405b,
+ 0x415bb540,
+ 0x460ab540,
+ 0x18a05891,
+ 0x40cbb520,
+ 0x7fe4b55f,
+ 0x9bb2c014,
+ 0x7fe4b75f,
+ 0xb5438506,
+ 0xb5436a18,
+ 0xb5436a80,
+ 0xb5437000,
+ 0xb5437080,
+ 0xda086b80,
+ 0xf290a8c6,
+ 0x9e49aa55,
+ 0x5694b720,
+ 0x6c00b543,
+ 0xb7206243,
+ 0x8502434d,
+ 0xa9e2da08,
+ 0xc10158c8,
+ 0x9e892880,
+ 0x4e1cb540,
+ 0x519cb540,
+ 0xc0ff5dc0,
+ 0xca012dc0,
+ 0xc2003db0,
+ 0xb5805a11,
+ 0x3596450a,
+ 0x99b0fff4,
+ 0x0d82c0c0,
+ 0x09c2c012,
+ 0x09420d02,
+ 0x994fffd4,
+ 0x0a829e7b,
+ 0x85467146,
+ 0x9168c001,
+ 0xfff49dcf,
+ 0xc0c099b0,
+ 0xc0120d82,
+ 0x0d0209c2,
+ 0xffd40906,
+ 0xd091993e,
+ 0x71481e70,
+ 0xd00b0a02,
+ 0xda080a42,
+ 0xc200a9e2,
+ 0x9ea15a28,
+ 0xc0ff5dc0,
+ 0xc8012dc0,
+ 0x35963db0,
+ 0x9984fff4,
+ 0xd0519e7b,
+ 0xc2000a50,
+ 0xc2005a40,
+ 0x71465ac1,
+ 0xfffe8506,
+ 0xb7209326,
+ 0xb7805d8c,
+ 0x7500462d,
+ 0x857fcfce,
+ 0x7b9cb540,
+ 0x9102c000,
+ 0xa9def208,
+ 0x450ab760,
+ 0x9c629ea4,
+ 0xc0140d82,
+ 0xb78398e8,
+ 0x75006a88,
+ 0xb5438502,
+ 0xc0026a18,
+ 0xb7209324,
+ 0xb7a05d94,
+ 0x0b02598c,
+ 0xb7830683,
+ 0x75006108,
+ 0x90c2c002,
+ 0x6208b783,
+ 0xc0027500,
+ 0xb7839022,
+ 0x75006b08,
+ 0x91c2c000,
+ 0x5d8cb760,
+ 0xa9a2f208,
+ 0x6b08b5c3,
+ 0xa869f048,
+ 0x9c629e84,
+ 0x430ab500,
+ 0x6c08b783,
+ 0xc0007500,
+ 0xf2109382,
+ 0x9eaba825,
+ 0x6c08b5c3,
+ 0x9c629e84,
+ 0xaa21f250,
+ 0x9c629ea4,
+ 0xa9a1f208,
+ 0xa83df210,
+ 0x9e840d86,
+ 0xf2509c62,
+ 0x9eabaa25,
+ 0xa021f208,
+ 0x9ea40986,
+ 0xb7839c62,
+ 0x75006c08,
+ 0x91e4c000,
+ 0xc0140d86,
+ 0xb7839898,
+ 0x75006c08,
+ 0x9342ffff,
+ 0x90a0c000,
+ 0xc0140d86,
+ 0xb783988e,
+ 0x75006a88,
+ 0x9222fffd,
+ 0x0d82c0c0,
+ 0x09c2c012,
+ 0x09060d02,
+ 0x98a5ffd4,
+ 0x0a02c801,
+ 0x518cb580,
+ 0x0d82c0c0,
+ 0x09c2c012,
+ 0x09420d02,
+ 0x9899ffd4,
+ 0x5194b760,
+ 0x98eefff4,
+ 0xfff40d86,
+ 0xc0c098fc,
+ 0xc0120d82,
+ 0x0d0209c2,
+ 0xffd40906,
+ 0x8502988a,
+ 0x0892c006,
+ 0x0c9ac430,
+ 0xb5400902,
+ 0xc006519c,
+ 0xb4418510,
+ 0xb104c000,
+ 0x2a404220,
+ 0x9d537500,
+ 0x4422b314,
+ 0xe0000089,
+ 0xffff1884,
+ 0xb7409284,
+ 0xc0064614,
+ 0xc4300892,
+ 0x09020c9a,
+ 0x8512c006,
+ 0xc000b441,
+ 0x4220b104,
+ 0x2a00c002,
+ 0x9d4f7500,
+ 0x4422b313,
+ 0xe0000087,
+ 0xffff1884,
+ 0x0a029264,
+ 0x0ceac03e,
+ 0x40e8b960,
+ 0xc000b481,
+ 0x93c1ffff,
+ 0xc0007680,
+ 0x0a029122,
+ 0x0ceac03e,
+ 0xc000b481,
+ 0x9180c000,
+ 0x448cb780,
+ 0x088a7504,
+ 0x0ceac03e,
+ 0x1894d00c,
+ 0xc000b421,
+ 0x0d82c0c0,
+ 0x0d0209e2,
+ 0xffd40942,
+ 0x0a029836,
+ 0x0cb6c034,
+ 0xc000b481,
+ 0x7deeb79f,
+ 0x7e6eb7bf,
+ 0x7eeeb7df,
+ 0x7f6eb7ff,
+ 0x8c20c002,
+ 0xa60d9c22,
+ 0x7efec01c,
+ 0xc0000a82,
+ 0xc0c09182,
+ 0xc0120d82,
+ 0x0d0209c2,
+ 0xffd40906,
+ 0xc0009818,
+ 0xc4349240,
+ 0x0a020cb2,
+ 0xc000b481,
+ 0x4220b101,
+ 0x74402884,
+ 0x90e2c000,
+ 0x6a08b783,
+ 0xc0097500,
+ 0xb78091a2,
+ 0x75024e0c,
+ 0x90c4c000,
+ 0xc0140d82,
+ 0x3ac09a29,
+ 0x5694b740,
+ 0x560cb740,
+ 0xa8c5d810,
+ 0xaa55f088,
+ 0x4592b720,
+ 0x9e496243,
+ 0x5a11c200,
+ 0xba090a04,
+ 0xba244002,
+ 0x70484002,
+ 0x06850305,
+ 0x9138c000,
+ 0x490cb780,
+ 0xb5802a51,
+ 0xc003490c,
+ 0xf21091c0,
+ 0x2a04aa39,
+ 0xc0027500,
+ 0xb78093a2,
+ 0x7440490c,
+ 0x3942d011,
+ 0x490cb540,
+ 0x929cc002,
+ 0x4792b760,
+ 0xba249e5c,
+ 0xc002400a,
+ 0xc00291a2,
+ 0xb760911c,
+ 0xb740650a,
+ 0x9e995d04,
+ 0xba099e2d,
+ 0xd0a24003,
+ 0x9e485e7f,
+ 0x5a6dc200,
+ 0xc2000208,
+ 0xd2265a17,
+ 0x0c065908,
+ 0x5a14c200,
+ 0x9e401208,
+ 0xa94ee038,
+ 0x4002ba24,
+ 0x9e545090,
+ 0xc0017902,
+ 0xb7819102,
+ 0x75004b88,
+ 0x9064c001,
+ 0x470ab780,
+ 0xba249e48,
+ 0x70084002,
+ 0x9378c000,
+ 0xc0007640,
+ 0xb78190e4,
+ 0x75024b08,
+ 0x92c2c000,
+ 0x1e32d011,
+ 0x478ab580,
+ 0x48fd9e54,
+ 0x470ab560,
+ 0x4b90b501,
+ 0xb5402959,
+ 0x20c2490c,
+ 0xc000a0c1,
+ 0x850290a0,
+ 0x4b98b541,
+ 0x458ab780,
+ 0x400aba24,
+ 0x90fcc000,
+ 0x650ab780,
+ 0xb5800a04,
+ 0xb720650a,
+ 0xc03e490c,
+ 0xb4210c82,
+ 0xb780c000,
+ 0x0a04458a,
+ 0x458ab580,
+ 0x9a96c014,
+ 0x6108b783,
+ 0xc0027500,
+ 0xb7839222,
+ 0x75006208,
+ 0x9182c002,
+ 0x518cb780,
+ 0x75002a40,
+ 0x90e4c000,
+ 0x7008b783,
+ 0xc002751a,
+ 0xb7809024,
+ 0xb721578c,
+ 0xda087492,
+ 0x9e48a881,
+ 0xc0007002,
+ 0xb7809284,
+ 0x8502430a,
+ 0x749ab541,
+ 0x440ab580,
+ 0x4412b760,
+ 0x530cb780,
+ 0xb5438506,
+ 0xb5436b18,
+ 0x9ea46c18,
+ 0xf2109c62,
+ 0x2a10aa39,
+ 0xc0007500,
+ 0xb78393e2,
+ 0x75006c08,
+ 0x90e4c000,
+ 0x748ab781,
+ 0xc0007502,
+ 0xb78392a4,
+ 0x75006b08,
+ 0xd0010902,
+ 0xc4380922,
+ 0x0a020c82,
+ 0xc000b481,
+ 0x4220b101,
+ 0x309428f1,
+ 0x0c82c038,
+ 0xc000b421,
+ 0x983ec014,
+ 0x4e0cb780,
+ 0xa955f288,
+ 0x71040a04,
+ 0x4e0cb580,
+ 0x90a4c000,
+ 0xb5408502,
+ 0xda104e1c,
+ 0xb720a8a5,
+ 0x58914592,
+ 0xba0960a3,
+ 0x9e4c4003,
+ 0x08843a84,
+ 0x020b7102,
+ 0x2a3dcffe,
+ 0x4426b354,
+ 0xd0510289,
+ 0x744028d0,
+ 0x9142c000,
+ 0x0d82c0c0,
+ 0x09c2c012,
+ 0x09420d02,
+ 0x9ae3ffb4,
+ 0x518cb780,
+ 0xc0007500,
+ 0x9eab90a2,
+ 0x9b45ffd4,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0xa205f839,
+ 0x7008b723,
+ 0x5204b740,
+ 0x448ab780,
+ 0x5908d0a6,
+ 0xb7409e2d,
+ 0xe030570c,
+ 0xb760a94e,
+ 0xb7435f1c,
+ 0xb7437098,
+ 0x1a047000,
+ 0x448ab580,
+ 0xa8cdc030,
+ 0x5a40e200,
+ 0x0a20d251,
+ 0xa882da08,
+ 0x82a3e210,
+ 0x5194b540,
+ 0x5c905c95,
+ 0x7008b523,
+ 0x92c4c001,
+ 0x7088b783,
+ 0xd3f10a04,
+ 0x744428ce,
+ 0x7088b583,
+ 0x9034c001,
+ 0x7b94b760,
+ 0xb5438506,
+ 0x24a66a98,
+ 0xb5437640,
+ 0xb5206c18,
+ 0xc0005194,
+ 0xd1319202,
+ 0xb78008a0,
+ 0xc801402b,
+ 0x9e483c80,
+ 0x5a40c200,
+ 0x2a40c0ff,
+ 0xb5803208,
+ 0x0806518c,
+ 0xaa1df9f8,
+ 0xb7239c22,
+ 0xb7407088,
+ 0xd0a65c04,
+ 0x9e2d5904,
+ 0xaa4dc830,
+ 0x448ab580,
+ 0x09a0d132,
+ 0x458ab720,
+ 0xaa61d810,
+ 0x4002ba19,
+ 0x5a11c200,
+ 0x70c81a04,
+ 0x9104c000,
+ 0x7b8cb780,
+ 0x3a00c040,
+ 0x7b8cb580,
+ 0x4e8cb720,
+ 0x0a18d011,
+ 0xc00070c8,
+ 0xb7809104,
+ 0xc0107b8c,
+ 0xb5803a00,
+ 0xd0117b8c,
+ 0x70c80a1c,
+ 0x9104c000,
+ 0x7b8cb780,
+ 0x3a00c020,
+ 0x7b8cb580,
+ 0x560cb780,
+ 0xa916f288,
+ 0xa919f288,
+ 0xb7209e50,
+ 0xd011460a,
+ 0x62411a24,
+ 0x4002ba09,
+ 0x704800b2,
+ 0x9106c000,
+ 0x7b8cb780,
+ 0x2a7acfff,
+ 0x7b8cb580,
+ 0x1a22d011,
+ 0x62459e52,
+ 0xc0007048,
+ 0xb7809106,
+ 0xc7fe7b8c,
+ 0xb5802a7e,
+ 0xb7407b8c,
+ 0xd0a2451a,
+ 0xf3105e11,
+ 0x70c88821,
+ 0x9104c000,
+ 0x7b8cb780,
+ 0x2a4ecfff,
+ 0x7b8cb580,
+ 0x568cb740,
+ 0x7b8cb720,
+ 0xaa45d808,
+ 0x9e8a9e50,
+ 0x5a11c200,
+ 0x62091a04,
+ 0x5194b720,
+ 0xba240a04,
+ 0x70c84002,
+ 0xb5202494,
+ 0xc0005194,
+ 0xc8019118,
+ 0xb5203c80,
+ 0xc0005194,
+ 0xd81091c0,
+ 0xc801aa61,
+ 0x9e483c80,
+ 0x5a40c200,
+ 0x2a40c0ff,
+ 0xb5803208,
+ 0xf008518c,
+ 0xc040aa59,
+ 0x75002a00,
+ 0x9102c000,
+ 0x518cb780,
+ 0x3a00c101,
+ 0x518cb580,
+ 0x5194b760,
+ 0x9a34ffd4,
+ 0xf9f80802,
+ 0x9c22aa1d,
+ 0x5714b700,
+ 0x0e04d251,
+ 0x560cb760,
+ 0xa881da08,
+ 0x2dfcc00e,
+ 0x0cbac034,
+ 0xa961f008,
+ 0xc0805895,
+ 0x9e825810,
+ 0xc000b441,
+ 0x454ab780,
+ 0xa963f008,
+ 0x5a10c200,
+ 0x8021f310,
+ 0xa8e9f008,
+ 0xf0080c84,
+ 0xb421a261,
+ 0xb780c000,
+ 0xf00846ca,
+ 0xf310a96b,
+ 0xf0088021,
+ 0x0c84a8ed,
+ 0xa269f008,
+ 0xc000b421,
+ 0x46cab780,
+ 0xa96ff008,
+ 0x8021f310,
+ 0xa8f5f008,
+ 0xf0080c8c,
+ 0xb421a26d,
+ 0xf008c000,
+ 0x0c84a97d,
+ 0xc000b441,
+ 0x4d8cb780,
+ 0xd2240a08,
+ 0x72445890,
+ 0x931cc000,
+ 0x0e04d131,
+ 0xa903da08,
+ 0xe2109e4c,
+ 0x710288a1,
+ 0x91d6c000,
+ 0xaa75f008,
+ 0xa8fdf008,
+ 0x0a00c010,
+ 0xa275f008,
+ 0x0880c008,
+ 0xa0fdf008,
+ 0x4f0cb780,
+ 0x0cdac034,
+ 0xc000b481,
+ 0x4f8cb720,
+ 0xb4210c84,
+ 0xb780c000,
+ 0x0ce44f0c,
+ 0xb4810a40,
+ 0xb720c000,
+ 0x0c844f8c,
+ 0xb42108c0,
+ 0xb780c000,
+ 0xb7204f0c,
+ 0x1ce44f8c,
+ 0x0a00c010,
+ 0x4f0cb580,
+ 0xaa65f048,
+ 0x0880c008,
+ 0x4f8cb520,
+ 0xc000b481,
+ 0xa8edf048,
+ 0xb4210c84,
+ 0xf048c000,
+ 0xf048aa65,
+ 0x0c84a8ed,
+ 0x0a00c010,
+ 0xa265f048,
+ 0xaa75f048,
+ 0x0880c008,
+ 0xa0edf048,
+ 0xc000b481,
+ 0xa965f088,
+ 0xb4410c88,
+ 0xd131c000,
+ 0xb7800c80,
+ 0xf088402b,
+ 0xcffea967,
+ 0xf3102a40,
+ 0xf0888021,
+ 0x0c88a969,
+ 0xa265f088,
+ 0xc000b441,
+ 0x0c80d131,
+ 0x402bb780,
+ 0xa96bf088,
+ 0x2a40cffe,
+ 0x8021f310,
+ 0xa97df048,
+ 0xf0881c8c,
+ 0xb441a269,
+ 0xd131c000,
+ 0xb7800c80,
+ 0xf048402b,
+ 0x76c0a97f,
+ 0x5a11c200,
+ 0x5a14c200,
+ 0x8021f310,
+ 0xa27df048,
+ 0x9182c001,
+ 0x454ab720,
+ 0xb4211ca8,
+ 0xb780c000,
+ 0x0c8446ca,
+ 0x5a0dc200,
+ 0x58c0c200,
+ 0xb4813242,
+ 0xd131c000,
+ 0xd8080d04,
+ 0x0c8caa41,
+ 0x588cc200,
+ 0x28fccffe,
+ 0x5a50c200,
+ 0xb4213098,
+ 0xd251c000,
+ 0xd8080d04,
+ 0x0ca0aa41,
+ 0x5a11c200,
+ 0x2a3c1a10,
+ 0x3a00c004,
+ 0xc000b481,
+ 0x4d8cb780,
+ 0xb5800a04,
+ 0x9c224d8c,
+ 0xc43ea68d,
+ 0x0a020c92,
+ 0xc000b481,
+ 0x4220b103,
+ 0x5b0cb780,
+ 0xa885da08,
+ 0xa909da08,
+ 0xa189da08,
+ 0xa081da08,
+ 0xa105da08,
+ 0x0a020cd0,
+ 0xc000b481,
+ 0x4220b103,
+ 0x5a8cb720,
+ 0x518cb780,
+ 0x5b0cb7a0,
+ 0x40b3b720,
+ 0x412bb740,
+ 0x412bb560,
+ 0x75002a40,
+ 0xb5200303,
+ 0xb5404033,
+ 0xc00040ab,
+ 0xb78390e2,
+ 0x750a7008,
+ 0x90f2c000,
+ 0x7008b783,
+ 0xc00d751a,
+ 0xb7819204,
+ 0x0a04748a,
+ 0x748ab581,
+ 0x0ca6c450,
+ 0xb4810a02,
+ 0xb103c000,
+ 0x00874220,
+ 0x2880c031,
+ 0xc00f0207,
+ 0xd0a42a7c,
+ 0xd22859e1,
+ 0x000759c1,
+ 0x287ccffe,
+ 0x0a020c88,
+ 0xc000b481,
+ 0x4220b103,
+ 0x5bc1c180,
+ 0xcffe9e9a,
+ 0x0cbc2d7c,
+ 0xc000b481,
+ 0x4220b103,
+ 0xb7400087,
+ 0xb781568c,
+ 0xc0fc738a,
+ 0xd0f22880,
+ 0xd0a4283e,
+ 0x9e415b19,
+ 0xa8d2d888,
+ 0xb5019e95,
+ 0xdffc7392,
+ 0x12187e7e,
+ 0x4002ba1c,
+ 0x91c2c002,
+ 0xc00076c2,
+ 0xb7809384,
+ 0xb740480a,
+ 0xba245d04,
+ 0xc2004002,
+ 0x58ed58ff,
+ 0x589700c2,
+ 0x5908d0a6,
+ 0x58949e2d,
+ 0x9e591242,
+ 0xa8cee038,
+ 0x4a7d5230,
+ 0x249e9ea7,
+ 0xc001a0c2,
+ 0xb7809180,
+ 0xda08468a,
+ 0xba24a8a1,
+ 0x70484002,
+ 0x907cc001,
+ 0x488ab780,
+ 0x4812b720,
+ 0x5d04b740,
+ 0xb5800a04,
+ 0xba09488a,
+ 0xd0a24003,
+ 0x9e495e7f,
+ 0xc2009e2d,
+ 0x02185a6d,
+ 0x5a17c200,
+ 0x5908d226,
+ 0x5a14c200,
+ 0xe0389ea7,
+ 0x149ea94d,
+ 0x08869e4c,
+ 0x312250b0,
+ 0xb780a141,
+ 0x0a04480a,
+ 0x480ab580,
+ 0x6188b783,
+ 0xb7837500,
+ 0xc0006208,
+ 0xc01c90c4,
+ 0xc0027d3e,
+ 0xc01c9184,
+ 0xd0117d3e,
+ 0xd02103f0,
+ 0x76c20527,
+ 0xaa39f210,
+ 0xd0010882,
+ 0x2a040892,
+ 0xb7407902,
+ 0xc000598c,
+ 0xd80890e2,
+ 0x0a04aa49,
+ 0xa249d808,
+ 0xa94bf008,
+ 0xa94cf00a,
+ 0x8027f310,
+ 0x82a5e010,
+ 0xa249f008,
+ 0xa0cdf008,
+ 0x6688b783,
+ 0x08827500,
+ 0x0892d002,
+ 0x0a0276c2,
+ 0x0a42d002,
+ 0xc0007848,
+ 0xc07c90c2,
+ 0xda088542,
+ 0x76c2a123,
+ 0xa953f008,
+ 0x90c4c000,
+ 0xaa41da08,
+ 0x9080c000,
+ 0xaa21da08,
+ 0x80a1e310,
+ 0xaa4dd808,
+ 0xa0d1f008,
+ 0xd8080a04,
+ 0xc006a24d,
+ 0xb72091c0,
+ 0x9d2e598c,
+ 0xaa39f210,
+ 0x8136c301,
+ 0x8120c201,
+ 0x4525b740,
+ 0x75002a04,
+ 0x8027f010,
+ 0x8221f310,
+ 0xb5800103,
+ 0xc001452d,
+ 0x76c290a2,
+ 0x90c4c000,
+ 0xaa41da08,
+ 0x9080c000,
+ 0xaa21da08,
+ 0xa25dd808,
+ 0xc00176c6,
+ 0x76c09082,
+ 0x91a4c000,
+ 0xd80874c0,
+ 0xe002a953,
+ 0xf2108d2a,
+ 0xd808802d,
+ 0xc000a251,
+ 0x74c092c0,
+ 0xa947d848,
+ 0x8d26e002,
+ 0x9160c000,
+ 0xaa41da08,
+ 0xd84874c0,
+ 0xd808a947,
+ 0xe002a25d,
+ 0xf2108d2a,
+ 0xd848802d,
+ 0xb783a245,
+ 0x75006308,
+ 0x9302c000,
+ 0x440ab780,
+ 0x70489e41,
+ 0x9244c000,
+ 0xb5438502,
+ 0xc43a6318,
+ 0x0a020c82,
+ 0xc000b481,
+ 0x4220b103,
+ 0x29fecfef,
+ 0x0c82c03a,
+ 0xc000b461,
+ 0x440ab780,
+ 0x70489e41,
+ 0xd0020882,
+ 0x76c60892,
+ 0xd0010a02,
+ 0x78480a42,
+ 0x9242c000,
+ 0xb5438506,
+ 0xc43a6318,
+ 0x0a020c82,
+ 0xc000b481,
+ 0x4220b103,
+ 0x3980c011,
+ 0x0c82c03a,
+ 0xc000b461,
+ 0xc0017780,
+ 0x76c091a2,
+ 0x92e4c000,
+ 0xaa21da08,
+ 0xa947f008,
+ 0xa8d5d808,
+ 0x8021f310,
+ 0xa8dad808,
+ 0xa245f008,
+ 0x0c849e44,
+ 0xa0dad808,
+ 0xd80800c2,
+ 0xc000a0d5,
+ 0xda0892a0,
+ 0xf008aa41,
+ 0xd848a95b,
+ 0xf310a8c9,
+ 0xd8488021,
+ 0xf008a8ce,
+ 0x9e44a259,
+ 0xd8480c84,
+ 0x00c2a0ce,
+ 0xa0c9d848,
+ 0xaa5dd808,
+ 0xa95ff008,
+ 0xa940f04a,
+ 0xa9c7f048,
+ 0x8021f310,
+ 0xa94ff048,
+ 0xa25df008,
+ 0x8221f210,
+ 0xa8c2d848,
+ 0xa241f048,
+ 0x8037f010,
+ 0x80a9e210,
+ 0xd8480c84,
+ 0xf048a0c2,
+ 0xf048a245,
+ 0xb7bfa0cd,
+ 0xb7df7eee,
+ 0xb7ff7f6e,
+ 0x8c607fee,
+ 0xb7809c22,
+ 0xd0f1588c,
+ 0xb72008c0,
+ 0x76424031,
+ 0xc0009ea2,
+ 0xc43c9382,
+ 0x0a020cca,
+ 0xc000b481,
+ 0x4220b101,
+ 0x1914d011,
+ 0x2e3ed3f1,
+ 0xba090888,
+ 0xba124002,
+ 0xc4104002,
+ 0xc00e7048,
+ 0xc81228fc,
+ 0xd3f17044,
+ 0xc00028ae,
+ 0xd3f19080,
+ 0xd0f12cbe,
+ 0x85020e20,
+ 0x0cfec036,
+ 0xa103d208,
+ 0xc000b421,
+ 0x9e989c22,
+ 0x09020802,
+ 0x9140c000,
+ 0x08029e98,
+ 0x4530d010,
+ 0x72c0cc14,
+ 0x7200c014,
+ 0xc18072c0,
+ 0xe0095d09,
+ 0xf0127204,
+ 0xc0005d04,
+ 0x72c49254,
+ 0x0804d004,
+ 0x15b4d024,
+ 0xd00472c0,
+ 0xd0240802,
+ 0xe00015b0,
+ 0x11813124,
+ 0x442ab330,
+ 0x72c09c22,
+ 0xffff0886,
+ 0xc40293a6,
+ 0xd06572c0,
+ 0xd0652c9e,
+ 0xc8023c9e,
+ 0xd0657200,
+ 0xd0652d2e,
+ 0xe0003d2e,
+ 0x9e531514,
+ 0x5408d01a,
+ 0x50acd01a,
+ 0xd01472c0,
+ 0xd0240002,
+ 0xe08015b0,
+ 0x5c055885,
+ 0x9304ffff,
+ 0x3124e000,
+ 0xb3301181,
+ 0x9c22442a,
+ 0x87c2c809,
+ 0x0c20b060,
+ 0x87c2c809,
+ 0x0a60b060,
+ 0x87c2c809,
+ 0x09c0b060,
+};
+
+unsigned long aui32MPG4_MasterMTXTOPAZFWData[] = {
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x809000b0,
+ 0x80900374,
+ 0x828834d4,
+ 0x828830a4,
+ 0x828830b4,
+ 0x82883154,
+ 0x82882fc0,
+ 0x82883016,
+ 0x82883184,
+ 0x828831c0,
+ 0x828831f8,
+ 0x828831fc,
+ 0x8288322c,
+ 0x82883254,
+ 0x8288307c,
+ 0x8288325c,
+ 0x82883264,
+ 0x8288326c,
+ 0x828832a0,
+ 0x82883600,
+ 0x828834a0,
+ 0x8288359c,
+ 0x828835dc,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x809007c8,
+ 0x809007c8,
+ 0x809026b8,
+ 0x80902138,
+ 0x809038b4,
+ 0x80902aa4,
+ 0x80902460,
+ 0x809007c8,
+ 0x809007c8,
+ 0x809007c8,
+ 0x809007c8,
+ 0x809007c8,
+ 0x00000000,
+ 0x00000000,
+ 0xa0101100,
+ 0xa01001b0,
+ 0xa0101102,
+ 0xa01001b2,
+ 0xa0101104,
+ 0xa0100124,
+ 0xa0101106,
+ 0xa0100126,
+ 0xa0100134,
+ 0x00000000,
+ 0xa0101120,
+ 0xa0100136,
+ 0xa0101122,
+ 0xa0100144,
+ 0x80101160,
+ 0x80101162,
+ 0x80101180,
+ 0x80101182,
+ 0x80100140,
+ 0x80100142,
+ 0x80100150,
+ 0x80100152,
+ 0x80100154,
+ 0x80100146,
+ 0x803003a0,
+ 0x80100100,
+ 0x80105156,
+ 0xa0101164,
+ 0xa0100184,
+ 0x80101194,
+ 0x801001b4,
+ 0x80100146,
+ 0x00000000,
+ 0x00000003,
+ 0x00000002,
+ 0x00000002,
+ 0x00000001,
+ 0x00000001,
+ 0x00000001,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000005,
+ 0x000f9400,
+ 0x000f9401,
+ 0x000fd403,
+ 0x000fd40b,
+ 0x000fd41b,
+ 0x000ffc1b,
+ 0x000ffc1b,
+ 0x000ff81b,
+ 0x0000681b,
+ 0x0000681a,
+ 0x0000281a,
+ 0x00002810,
+ 0x00002800,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00010001,
+ 0x00004010,
+ 0x04010040,
+ 0x10040100,
+ 0x40100401,
+ 0x00008040,
+ 0x20100804,
+ 0x02010080,
+ 0x40201008,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x1234baac,
+ 0x00000000,
+};
+
+unsigned long aui32MPG4_MasterMTXTOPAZFWTextReloc[] = {
+ 0
+};
+
+unsigned char aui8MPG4_MasterMTXTOPAZFWTextRelocType[] = {
+ 0
+};
+
+unsigned long aui32MPG4_MasterMTXTOPAZFWTextRelocFullAddr[] = {
+ 0
+};
+
+unsigned long aui32MPG4_MasterMTXTOPAZFWDataReloc[] = {
+ 0
+};
diff --git a/fw/MPG4MasterFirmware_bin.h b/fw/MPG4MasterFirmware_bin.h
new file mode 100644
index 0000000..0caacd6
--- /dev/null
+++ b/fw/MPG4MasterFirmware_bin.h
@@ -0,0 +1,44 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+
+// This file was automatically generated from ../release/MPG4MasterFirmware.dnl using dnl2c.
+
+extern unsigned long aui32MPG4_MasterMTXTOPAZFWText[];
+extern unsigned long ui32MPG4_MasterMTXTOPAZFWTextSize;
+
+extern unsigned long aui32MPG4_MasterMTXTOPAZFWData[];
+extern unsigned long ui32MPG4_MasterMTXTOPAZFWDataSize;
+
+extern unsigned long aui32MPG4_MasterMTXTOPAZFWTextReloc[];
+extern unsigned char aui8MPG4_MasterMTXTOPAZFWTextRelocType[];
+extern unsigned long aui32MPG4_MasterMTXTOPAZFWTextRelocFullAddr[];
+
+extern unsigned long aui32MPG4_MasterMTXTOPAZFWDataReloc[];
+extern unsigned long ui32MPG4_MasterMTXTOPAZFWDataRelocSize;
+
+extern unsigned long ui32MPG4_MasterMTXTOPAZFWTextOrigin;
+extern unsigned long ui32MPG4_MasterMTXTOPAZFWDataOrigin;
+
diff --git a/fw/MPG4SlaveFirmwareCBR_bin.c b/fw/MPG4SlaveFirmwareCBR_bin.c
new file mode 100644
index 0000000..3c958f2
--- /dev/null
+++ b/fw/MPG4SlaveFirmwareCBR_bin.c
@@ -0,0 +1,3910 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+
+// This file was automatically generated from ../release/MPG4SlaveFirmwareCBR.dnl using dnl2c.
+
+unsigned char *szMPG4SlaveFirmwareCBR_buildtag = "BUILD_TOPAZ_SC_1_00_00_0318";
+
+unsigned long ui32MPG4CBR_SlaveMTXTOPAZFWTextSize = 3247;
+unsigned long ui32MPG4CBR_SlaveMTXTOPAZFWDataSize = 604;
+unsigned long ui32MPG4CBR_SlaveMTXTOPAZFWTextRelocSize = 0;
+unsigned long ui32MPG4CBR_SlaveMTXTOPAZFWDataRelocSize = 0;
+
+unsigned long ui32MPG4CBR_SlaveMTXTOPAZFWTextOrigin = 0x80900000;
+unsigned long ui32MPG4CBR_SlaveMTXTOPAZFWDataOrigin = 0x828832c0;
+
+unsigned long aui32MPG4CBR_SlaveMTXTOPAZFWText[] = {
+ 0x9040c001,
+ 0xc80993fe,
+ 0xc0000e42,
+ 0xc8290e00,
+ 0xc3c28422,
+ 0xc8298440,
+ 0xc32c8622,
+ 0x9e838600,
+ 0xc8099e43,
+ 0xc6540d42,
+ 0xc8090d60,
+ 0xc6560942,
+ 0xc8090920,
+ 0xc00a0e42,
+ 0xc8090e40,
+ 0xc00e87c2,
+ 0x9c1887d0,
+ 0x0c020802,
+ 0x09820d82,
+ 0x09020d02,
+ 0x08820c82,
+ 0x9320fffe,
+ 0xa401c838,
+ 0x0dc2c809,
+ 0x0da0c654,
+ 0x0e42c809,
+ 0x0b46b080,
+ 0x7e74b77f,
+ 0xa48d0882,
+ 0xffff9ff3,
+ 0x9d1393e0,
+ 0xf8398081,
+ 0x0707a205,
+ 0x06850307,
+ 0x03839e97,
+ 0x0fa0060f,
+ 0x018d058d,
+ 0x9c62008f,
+ 0x9340ffff,
+ 0x0ea0060b,
+ 0xffff9c62,
+ 0x058d93a0,
+ 0xb700018d,
+ 0xb780548c,
+ 0x9c015414,
+ 0x0687a605,
+ 0x0ea0060b,
+ 0xffff9c62,
+ 0xf9f893a0,
+ 0xf9f8aa9d,
+ 0x9c22aa1d,
+ 0xa6059c22,
+ 0x0e860a82,
+ 0xc0340d82,
+ 0xc0149b32,
+ 0x0d8a9967,
+ 0x9b2dc034,
+ 0x7508b783,
+ 0xc0007500,
+ 0xc0149082,
+ 0xc0149abe,
+ 0x740299db,
+ 0xb3549e6c,
+ 0x02894424,
+ 0x995dc014,
+ 0xffff7540,
+ 0xb79f90e2,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0x87029c22,
+ 0xb5438502,
+ 0xb5436c18,
+ 0xb5436c98,
+ 0xb5436d18,
+ 0xb5437018,
+ 0xb5437098,
+ 0xb5437118,
+ 0xb5437518,
+ 0xb5437598,
+ 0xb5437618,
+ 0xb5407c18,
+ 0xb5404804,
+ 0xb5404884,
+ 0xb5404904,
+ 0xb5404984,
+ 0xb5404a04,
+ 0xb5404c04,
+ 0xb5404c84,
+ 0xb5404d04,
+ 0xb5404202,
+ 0xb5404282,
+ 0xb5405004,
+ 0xb5407b84,
+ 0xb5404e84,
+ 0x9c224702,
+ 0x8420a605,
+ 0x9ba6fff4,
+ 0xc0340d8a,
+ 0xfff49ada,
+ 0xc0349bc6,
+ 0xc4209ae5,
+ 0x0a020cd2,
+ 0xc000b481,
+ 0x4220b105,
+ 0xe0310d8a,
+ 0xc0148d80,
+ 0xc8299a01,
+ 0xc3c20922,
+ 0xb73f0920,
+ 0xd0717f6c,
+ 0xb5802a5e,
+ 0xc01e450c,
+ 0x85022a80,
+ 0xa8c2f008,
+ 0xc2807102,
+ 0xb5a05a95,
+ 0xb341460c,
+ 0x76404434,
+ 0x459cb540,
+ 0x448cb520,
+ 0x90c2c000,
+ 0x0e12d011,
+ 0xa241f008,
+ 0x550cb780,
+ 0x08c2c807,
+ 0x0880c570,
+ 0x0caac032,
+ 0x538cb580,
+ 0xc000b421,
+ 0x0cf40a2a,
+ 0xc000b481,
+ 0x09021a28,
+ 0x08bac002,
+ 0x4078b960,
+ 0x0a00c200,
+ 0x588bd224,
+ 0xc000b441,
+ 0x0a11ce00,
+ 0x9301ffff,
+ 0x1884e000,
+ 0x9244ffff,
+ 0x0a42c807,
+ 0x0a00c576,
+ 0x0caac032,
+ 0xc000b481,
+ 0x08820a02,
+ 0x08840902,
+ 0x4078b960,
+ 0x0a00c200,
+ 0x588bd224,
+ 0xc000b441,
+ 0x0a11ce00,
+ 0x9301ffff,
+ 0x745ac004,
+ 0x923cffff,
+ 0xc0340a02,
+ 0xb4810c9e,
+ 0xfff4c000,
+ 0x08029b2c,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x9c228c60,
+ 0xc0409e54,
+ 0x9e590c82,
+ 0xc000b421,
+ 0x0d02c040,
+ 0xc000b482,
+ 0xc00e9c22,
+ 0xc00e2d7c,
+ 0x5d3029e0,
+ 0xc0409e54,
+ 0x31b80c82,
+ 0xc000b461,
+ 0x0d02c040,
+ 0xc000b442,
+ 0xa60d9c22,
+ 0x07038420,
+ 0xc2800687,
+ 0x1c845c8d,
+ 0x5ca0d0a2,
+ 0xd0110287,
+ 0xc2000a5e,
+ 0x1a045a0d,
+ 0x5a30c200,
+ 0x30985cd0,
+ 0x04059e4c,
+ 0x0c8ac032,
+ 0xc8013098,
+ 0xb4213880,
+ 0x9ea9c000,
+ 0x0a02c801,
+ 0x0a00c002,
+ 0xc0306553,
+ 0xb4810c8a,
+ 0xc002c000,
+ 0x0c840882,
+ 0xc000b421,
+ 0xd0229e93,
+ 0x9e535f09,
+ 0x1d045d0d,
+ 0x9bb4fff4,
+ 0x5e91c280,
+ 0xc2801e84,
+ 0x9e6c5e84,
+ 0xc2801a84,
+ 0xc1815a90,
+ 0x0d8a3a80,
+ 0x0d020982,
+ 0xfff4314a,
+ 0xc0c09bae,
+ 0x09920d82,
+ 0x0d02c002,
+ 0x0902c002,
+ 0x9a04c034,
+ 0xc0340a0a,
+ 0xb4810c9e,
+ 0x1b04c000,
+ 0x850275bf,
+ 0x9202c000,
+ 0xb55f9dcf,
+ 0xc0347f7c,
+ 0xf23199d7,
+ 0xb75fa045,
+ 0x1b047f7c,
+ 0x851075bf,
+ 0x9284ffff,
+ 0x0a42c002,
+ 0x0c8ec030,
+ 0xc000b481,
+ 0x7e6eb79f,
+ 0x7eeeb7bf,
+ 0x7f6eb7df,
+ 0x8c00c002,
+ 0x9c229c22,
+ 0x8502c200,
+ 0x9c89c037,
+ 0x9c80c171,
+ 0x9c80c817,
+ 0xf8399c22,
+ 0x0d9aa205,
+ 0x99bdc034,
+ 0xf9f80d8a,
+ 0xc02daa1d,
+ 0xa6059300,
+ 0x0a42c801,
+ 0x0a00c010,
+ 0x2ebed3f2,
+ 0x0caac032,
+ 0xc000b481,
+ 0x0cf408aa,
+ 0xc000b421,
+ 0x558cb780,
+ 0x0c92c080,
+ 0xa881f208,
+ 0xc000b421,
+ 0x558cb780,
+ 0xf2080c88,
+ 0xb421a889,
+ 0xb780c000,
+ 0x0c84558c,
+ 0xa88df208,
+ 0xc000b421,
+ 0x1c980902,
+ 0xc000b441,
+ 0x558cb780,
+ 0xf2080c90,
+ 0xb421a885,
+ 0xb7a0c000,
+ 0x0dd2558c,
+ 0x9976c034,
+ 0xaa25f208,
+ 0xffff7008,
+ 0x0daa9344,
+ 0x0d060982,
+ 0x0902c121,
+ 0x9b29fff4,
+ 0x4714b760,
+ 0x0d02c021,
+ 0x09c20d04,
+ 0x9b16fff4,
+ 0x4714b760,
+ 0x0d0609c2,
+ 0x9b10fff4,
+ 0x09820daa,
+ 0xc1010d02,
+ 0xfff40902,
+ 0x0d929b14,
+ 0x9952c034,
+ 0xaa25f208,
+ 0xffff7008,
+ 0x77409344,
+ 0x90a2c000,
+ 0xc0340d8e,
+ 0x0d8a9954,
+ 0x9951c034,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xc470a60d,
+ 0x0a020c8e,
+ 0xc000b481,
+ 0x4220b101,
+ 0x558cb780,
+ 0xa085f208,
+ 0x0a021c8c,
+ 0xc000b481,
+ 0x4220b105,
+ 0x2b5ed1f1,
+ 0x558cb780,
+ 0xcff09ead,
+ 0xc2802e80,
+ 0xf2085ea1,
+ 0xc280a281,
+ 0x2a845a9d,
+ 0x0a020c84,
+ 0xc000b481,
+ 0x4220b101,
+ 0x468cb520,
+ 0xb4810c84,
+ 0xb101c000,
+ 0xb5204220,
+ 0xc070470c,
+ 0xb4810c8e,
+ 0x0882c000,
+ 0xb4211c8c,
+ 0x0c90c000,
+ 0xc000b481,
+ 0xb4211c8c,
+ 0x0c84c000,
+ 0xc000b481,
+ 0x6284b740,
+ 0x5908d326,
+ 0xe0309e2d,
+ 0x9ea4aa4d,
+ 0xb7809c62,
+ 0x7740558c,
+ 0x9ea98502,
+ 0xd0010d82,
+ 0xf2080db2,
+ 0x2596a10f,
+ 0x9b3ffff4,
+ 0xc0700a06,
+ 0xb4810c82,
+ 0x000dc000,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x7ebec01c,
+ 0x9244c000,
+ 0x5e08d1a2,
+ 0x0a00c090,
+ 0x5909d224,
+ 0xc4000882,
+ 0xb4223d00,
+ 0xb104c000,
+ 0x75004220,
+ 0x9364ffff,
+ 0x5c88c180,
+ 0x0c80c090,
+ 0xb4615c89,
+ 0x9c22c000,
+ 0x5c88c180,
+ 0x0c80c090,
+ 0xc4005c89,
+ 0x0a023c80,
+ 0xc000b481,
+ 0x4220b101,
+ 0xa0e1f008,
+ 0xc0905d88,
+ 0x5d890d80,
+ 0xc000b483,
+ 0x9e5b9c22,
+ 0x68b1d312,
+ 0xc1c00a02,
+ 0x5c8b0cc0,
+ 0x3c80c400,
+ 0xc000b481,
+ 0x4220b102,
+ 0x5994b760,
+ 0x6931d312,
+ 0x9e518502,
+ 0x4070b960,
+ 0x08e0c1c0,
+ 0xaa65f031,
+ 0x5889d0a4,
+ 0xc000b481,
+ 0x85100890,
+ 0x9301ffff,
+ 0x8560c1c0,
+ 0x80ade210,
+ 0x5b94b760,
+ 0x3904c001,
+ 0x8521ce3e,
+ 0x4048b960,
+ 0xaa65f031,
+ 0x5889d0a4,
+ 0xc000b481,
+ 0x85100890,
+ 0x9301ffff,
+ 0x812de220,
+ 0x588cb780,
+ 0x3908c001,
+ 0x0d60c1c0,
+ 0xdac85d09,
+ 0xb422a885,
+ 0xd312c000,
+ 0xc1c068b1,
+ 0x5c8b0cc0,
+ 0xc000b441,
+ 0x84209c22,
+ 0xc4700882,
+ 0x0a020c92,
+ 0xc000b481,
+ 0x4220b102,
+ 0x02050185,
+ 0x2a04c001,
+ 0xc0007500,
+ 0xb7409362,
+ 0x09025994,
+ 0x4070b960,
+ 0x08e0c1c0,
+ 0x5889d0a4,
+ 0x08a1ce3e,
+ 0x3c80c400,
+ 0xc000b441,
+ 0x4220b104,
+ 0xa245f031,
+ 0xffff0890,
+ 0x01079221,
+ 0x297acfff,
+ 0xc0010205,
+ 0x75002a08,
+ 0x91e2c001,
+ 0x5b94b740,
+ 0xb9600982,
+ 0xc1c04048,
+ 0xd0a408e0,
+ 0xce3e5889,
+ 0xc40008a1,
+ 0xb4613c80,
+ 0xb104c000,
+ 0xf0314220,
+ 0x0890a245,
+ 0x9221ffff,
+ 0x8d00e032,
+ 0x08e0c1c0,
+ 0x5889d0a4,
+ 0xc4000a02,
+ 0xb4813c80,
+ 0xb101c000,
+ 0xf0104220,
+ 0xb73fa0c1,
+ 0xb7807e72,
+ 0xdac8588c,
+ 0xcfffa086,
+ 0xc0702976,
+ 0xb4410c92,
+ 0x8c20c000,
+ 0xb7409c22,
+ 0xd312508c,
+ 0x0a026cb1,
+ 0x0cc0c1c0,
+ 0xc4005c8b,
+ 0xb4813c80,
+ 0xb101c000,
+ 0xd3124220,
+ 0xc1ca6cb1,
+ 0x5c8b0cf0,
+ 0xc000b441,
+ 0x6d82c00c,
+ 0x38c0c001,
+ 0x0dc0c1c0,
+ 0xb4235d8b,
+ 0x9c22c000,
+ 0x6cb1d312,
+ 0xc1c00a02,
+ 0x5c8b0cc0,
+ 0x3c80c400,
+ 0xc000b481,
+ 0x4220b103,
+ 0x5a94b740,
+ 0x6d31d311,
+ 0x4058b960,
+ 0xc1c00085,
+ 0xf03108e0,
+ 0xd0a4aa45,
+ 0xb4815889,
+ 0x0890c000,
+ 0x9321ffff,
+ 0x3990c001,
+ 0x0940c1c0,
+ 0x588bd124,
+ 0xc000b461,
+ 0xf8399c22,
+ 0xf010a285,
+ 0x7500aa61,
+ 0x9164c000,
+ 0xa8c1d008,
+ 0x0a069e48,
+ 0x5200c200,
+ 0xd0083098,
+ 0xd011a0c1,
+ 0xd0100d38,
+ 0xf011a9f2,
+ 0xf0101a30,
+ 0x1984a943,
+ 0x93e2c000,
+ 0x8702cff1,
+ 0x8700cff0,
+ 0x087ec00f,
+ 0x087cc00e,
+ 0x0c1ac050,
+ 0xa8c5f029,
+ 0x2095d020,
+ 0x9e4d5ca1,
+ 0xc2002210,
+ 0x30d85a20,
+ 0x4006ba09,
+ 0xc000b420,
+ 0x1a30f011,
+ 0xffff1984,
+ 0xf21091e4,
+ 0xf010802f,
+ 0xf9f8a241,
+ 0x9c22aa9d,
+ 0x9e5da60d,
+ 0xf1245940,
+ 0xd3f15841,
+ 0xb3502d2e,
+ 0xc0024422,
+ 0xf00893e2,
+ 0xe000aa61,
+ 0xb4252a1c,
+ 0xd8084422,
+ 0x8522aa61,
+ 0x88a9e210,
+ 0x12182a1c,
+ 0xc00e9ea3,
+ 0xba1b0a7e,
+ 0xc200400b,
+ 0x21285207,
+ 0x9276c001,
+ 0xc1009e59,
+ 0x11035a20,
+ 0x5209c200,
+ 0xc2009ea2,
+ 0x9e8d58a1,
+ 0x0cb0d031,
+ 0xa8a2d208,
+ 0x2a7cc00e,
+ 0x5207c200,
+ 0x2a7cc00e,
+ 0xd208349a,
+ 0xf008a0a2,
+ 0x9ea1a963,
+ 0x2a2ed3f1,
+ 0x8128c201,
+ 0x8821f310,
+ 0xf0088502,
+ 0xd228a261,
+ 0x9eaba127,
+ 0x2d01cff0,
+ 0x59415940,
+ 0xc00e3522,
+ 0xfff42d7c,
+ 0xc0009bb1,
+ 0xd20892e0,
+ 0x9e5eaa21,
+ 0x50d8000b,
+ 0xd0293242,
+ 0xf008a205,
+ 0xd013a8e1,
+ 0xf210291e,
+ 0x75108029,
+ 0x00989e44,
+ 0xa0e1f008,
+ 0x4426b350,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x0685a60d,
+ 0x9e9e9e69,
+ 0x71820b02,
+ 0xc0000a86,
+ 0x9ea99208,
+ 0x9e6916d2,
+ 0x5a84c280,
+ 0x1a52d011,
+ 0xd0117102,
+ 0xd3f108e2,
+ 0xffff2b1e,
+ 0xd0119286,
+ 0x75100a62,
+ 0xc000028d,
+ 0x9e7391d4,
+ 0x09220d02,
+ 0x9b70fff4,
+ 0xd0111aa0,
+ 0x75100a52,
+ 0xffff9e83,
+ 0x9e7392d2,
+ 0xd0110d06,
+ 0xc00e0952,
+ 0xfff4297c,
+ 0x75909b61,
+ 0xc0009e83,
+ 0xd03192f4,
+ 0xd3f11a60,
+ 0x9e6c2b4e,
+ 0xc2009e73,
+ 0xd3f25299,
+ 0x0922295e,
+ 0x9b50fff4,
+ 0xc2009e83,
+ 0x9ea952b8,
+ 0x16d27590,
+ 0x91b2ffff,
+ 0xd3f29e73,
+ 0x010d2d5e,
+ 0x9b42fff4,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x0ca0f011,
+ 0xd09a9e99,
+ 0xd00d5a04,
+ 0xc0001a42,
+ 0x1203909a,
+ 0x9e4b1242,
+ 0xfffc9ea2,
+ 0xa60d9360,
+ 0x85028420,
+ 0xb55f9e55,
+ 0xb55f7f7c,
+ 0xf0107ffc,
+ 0xe011aa61,
+ 0x03078c8e,
+ 0x750a1a08,
+ 0x590cd226,
+ 0xe05a8540,
+ 0xc0038044,
+ 0xc00090a0,
+ 0xc0009180,
+ 0xc00092a0,
+ 0xc00193c0,
+ 0xc0019100,
+ 0xc0029200,
+ 0xe0119060,
+ 0x9e8b8d88,
+ 0x1954d072,
+ 0x500cb5a0,
+ 0x9bc8fff4,
+ 0x9200c002,
+ 0x5014b740,
+ 0xe0119ea9,
+ 0x9e8b8d88,
+ 0xfff41514,
+ 0xc0029bbd,
+ 0xe01190a0,
+ 0x9e8b8d88,
+ 0x295ed3f2,
+ 0xfff40916,
+ 0xb5a09aeb,
+ 0xc001500c,
+ 0xe0119320,
+ 0x9e8b8d88,
+ 0x295ed3f2,
+ 0xfff40916,
+ 0xc0019adf,
+ 0xd20891e0,
+ 0x9e8baa41,
+ 0x8c88f011,
+ 0xd0124a7d,
+ 0x0d062ace,
+ 0x018b0906,
+ 0x9ad0fff4,
+ 0x9e6a9e83,
+ 0x0d02018b,
+ 0x9acafff4,
+ 0x9340c000,
+ 0xaa41d208,
+ 0xf0119e8b,
+ 0x4a7d8c88,
+ 0x2aced012,
+ 0x09060d02,
+ 0xfff4018b,
+ 0x9e839abb,
+ 0x018b9e6a,
+ 0x0d7ec00e,
+ 0x9ab4fff4,
+ 0x9080c000,
+ 0x90e0c001,
+ 0x7e68b79f,
+ 0x0cfec00f,
+ 0x0cfcc00e,
+ 0xb59f9e4a,
+ 0xb73f7c68,
+ 0xcff17f6c,
+ 0xcff00a02,
+ 0xc0500a00,
+ 0x22180c9a,
+ 0x5a21c200,
+ 0x58a02094,
+ 0xba243242,
+ 0xb59f4006,
+ 0xb4817f6c,
+ 0xf208c000,
+ 0xb79fa943,
+ 0xf3107fec,
+ 0xf2088021,
+ 0xb79fa241,
+ 0xb7bf7e6e,
+ 0xb7df7eee,
+ 0xc0027f6e,
+ 0x9c228c00,
+ 0x8440a61d,
+ 0x9e9d8502,
+ 0xabe5f031,
+ 0xb55f0b02,
+ 0xb55f7878,
+ 0x718e7efc,
+ 0xc0019d3a,
+ 0xaa4191e8,
+ 0xc0007502,
+ 0xd0189392,
+ 0xe032aad1,
+ 0xe0518d08,
+ 0x9dcf8d00,
+ 0x85109eb1,
+ 0x7f7cb55f,
+ 0x0a9cc002,
+ 0x5a95c280,
+ 0xfff4018b,
+ 0xb75f9a1e,
+ 0xc2807f7c,
+ 0xc3015a88,
+ 0xc0008122,
+ 0xe03191a0,
+ 0x9dcf8d88,
+ 0x8510050b,
+ 0x7f7cb55f,
+ 0x9b23fff4,
+ 0x7f7cb75f,
+ 0x718e0b04,
+ 0x92a6fffe,
+ 0x7868b79f,
+ 0x0c9ec050,
+ 0xc000b481,
+ 0x0d16c050,
+ 0xc000b4e2,
+ 0x7eecb71f,
+ 0x7d6eb79f,
+ 0x7deeb7bf,
+ 0x7e6eb7df,
+ 0x7eeeb7ff,
+ 0x8c40c002,
+ 0xa6059c22,
+ 0x0c8ac450,
+ 0xb4810a02,
+ 0xb102c000,
+ 0xe00e4240,
+ 0xd1042d7c,
+ 0xc8015d10,
+ 0x0a400a02,
+ 0x0c8ac030,
+ 0xc000b481,
+ 0x0c8408c2,
+ 0xc000b421,
+ 0x600cb740,
+ 0xa947f048,
+ 0x802df210,
+ 0xa245f048,
+ 0x0c86c450,
+ 0xb4810a02,
+ 0xb101c000,
+ 0xc8014220,
+ 0xc0100a42,
+ 0xc0320a00,
+ 0xb4810caa,
+ 0x08aac000,
+ 0x0d1ec034,
+ 0xc000b422,
+ 0x0cf2c450,
+ 0xb4810a02,
+ 0xb101c000,
+ 0xd0534220,
+ 0xb7801910,
+ 0xf248570c,
+ 0xf210a891,
+ 0x0d8288a3,
+ 0x018b0d06,
+ 0x9884fff4,
+ 0x0ca2c080,
+ 0xc000b4a1,
+ 0x0d82c002,
+ 0x9954c014,
+ 0xffff700a,
+ 0x0daa9364,
+ 0x0d0a0982,
+ 0x0902c121,
+ 0x9b09ffd4,
+ 0x570cb780,
+ 0xa992f248,
+ 0x0d02c0a1,
+ 0x09c20d04,
+ 0x9af4ffd4,
+ 0x0d82c0c0,
+ 0x0d420992,
+ 0xc0140942,
+ 0xb79f9957,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa60d9c22,
+ 0x8400c010,
+ 0x570cb720,
+ 0x49adb780,
+ 0x75002a20,
+ 0x5994b7c0,
+ 0xc0000902,
+ 0xb7839182,
+ 0x75007508,
+ 0x90e2c000,
+ 0xaa41d290,
+ 0xc0057500,
+ 0xb7209164,
+ 0xd01149ad,
+ 0x75002a18,
+ 0x3924d002,
+ 0x9124c000,
+ 0x2a14d011,
+ 0xd0027500,
+ 0xd0013922,
+ 0xc0503926,
+ 0xb4410c82,
+ 0x9d87c000,
+ 0x468cb740,
+ 0x09c20dc2,
+ 0x0d02c010,
+ 0x0c81cff0,
+ 0x9acbffd4,
+ 0x7508b783,
+ 0x75009d1b,
+ 0x0b01cff0,
+ 0x9282c000,
+ 0xaa41d290,
+ 0xc0007500,
+ 0xb79f91e2,
+ 0xf211606c,
+ 0xc0108d00,
+ 0x75002a00,
+ 0x0a03cff0,
+ 0x8001f310,
+ 0x4422b346,
+ 0x4068b79e,
+ 0x08c2c801,
+ 0x0880c010,
+ 0x0ceac032,
+ 0x606cb59f,
+ 0xc000b421,
+ 0x7508b783,
+ 0xc0017500,
+ 0xb7839282,
+ 0x75007608,
+ 0x91e2c001,
+ 0x510cb720,
+ 0x2a12d011,
+ 0xc0017500,
+ 0xb7a09102,
+ 0xb7a06114,
+ 0xf2105a8c,
+ 0x9eabaa21,
+ 0xb52028f9,
+ 0x9ea4510c,
+ 0xb7209c62,
+ 0xb7805e8c,
+ 0x75004129,
+ 0x92a4c000,
+ 0xa9a1f208,
+ 0xa83df210,
+ 0x9e840d82,
+ 0xf2509c62,
+ 0x9eaba8a5,
+ 0xa021f208,
+ 0x9e8c0982,
+ 0xda089c62,
+ 0xb581aa21,
+ 0xda107d8a,
+ 0x9eb3a9cd,
+ 0x9aa6fff4,
+ 0x0a02c801,
+ 0x0a00c00a,
+ 0x0c8ac030,
+ 0xc000b481,
+ 0x08c2c008,
+ 0xb4210c84,
+ 0xc008c000,
+ 0x0c880a02,
+ 0xc000b481,
+ 0x0d82c0c0,
+ 0xc0080992,
+ 0xc0080d02,
+ 0xc0140902,
+ 0xc008989d,
+ 0xc0300a02,
+ 0xb4810c8e,
+ 0xb720c000,
+ 0x85065a0c,
+ 0x4039b540,
+ 0x9ad1fff4,
+ 0x6eeeb79f,
+ 0x6f6eb7bf,
+ 0x6feeb7df,
+ 0x8c60c010,
+ 0xf8399c22,
+ 0xc450a205,
+ 0x0a020c82,
+ 0xc000b481,
+ 0x4220b101,
+ 0x0a40c008,
+ 0x0c8ec030,
+ 0xc000b481,
+ 0x38c0c002,
+ 0x0c82c050,
+ 0xc000b421,
+ 0x0d82c0c0,
+ 0xc0080992,
+ 0xc0080d02,
+ 0xc0140902,
+ 0xc0089869,
+ 0xc0300a02,
+ 0xb4810c8e,
+ 0xf9f8c000,
+ 0xfff5aa1d,
+ 0xa60d9000,
+ 0x0eb0f011,
+ 0x9182c001,
+ 0x0f7ec01e,
+ 0x0b02c008,
+ 0x0e8ec030,
+ 0x7540c040,
+ 0xc0509e74,
+ 0xb3540c96,
+ 0x12d84426,
+ 0x5a14c200,
+ 0xc000b481,
+ 0x0d0ac030,
+ 0xc000b4c2,
+ 0xc000b4c5,
+ 0x0c96c030,
+ 0xc000b4c1,
+ 0x0d82c0c0,
+ 0xc0080992,
+ 0xc0080d02,
+ 0xc0140902,
+ 0xb4c59835,
+ 0x7540c000,
+ 0x93c4fffe,
+ 0x9a6ffff4,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0xc000b463,
+ 0xf8129c22,
+ 0x9c22a062,
+ 0x0d80c200,
+ 0x9e595d89,
+ 0xc4000982,
+ 0xb4633d80,
+ 0xb203c000,
+ 0x00074620,
+ 0xc1279c22,
+ 0x9c229c8f,
+ 0xb971080a,
+ 0xc01756f1,
+ 0xc0719c81,
+ 0xc0179c80,
+ 0xb9609c80,
+ 0x9c224000,
+ 0x9280ffff,
+ 0x01c69e5c,
+ 0x5889d1a4,
+ 0xc4000882,
+ 0xb4213c80,
+ 0xb104c000,
+ 0x22444220,
+ 0x71069e53,
+ 0x9324ffff,
+ 0xa60d9c22,
+ 0x8420c004,
+ 0x0ca2c829,
+ 0x0cb0c3a4,
+ 0xac3dc030,
+ 0x8d00e133,
+ 0xa45dc038,
+ 0xac3dc030,
+ 0xa45dc038,
+ 0xac3dc010,
+ 0xa45dc018,
+ 0xac25c010,
+ 0xa445c018,
+ 0x570cb7a0,
+ 0x85029ea9,
+ 0x651ab540,
+ 0x4b98b541,
+ 0x468cb740,
+ 0xc00a0dc2,
+ 0x09c20d42,
+ 0x9979ffd4,
+ 0x0a58d251,
+ 0xaa01da08,
+ 0x9ead7502,
+ 0x9084c000,
+ 0x448cb580,
+ 0xaa2df290,
+ 0x75002a08,
+ 0x90a4c000,
+ 0xb5408506,
+ 0xb780449c,
+ 0xf210600c,
+ 0x8502a8a1,
+ 0xa8a6f210,
+ 0x509cb540,
+ 0x481ab540,
+ 0xa103f208,
+ 0xa085f208,
+ 0xa929f210,
+ 0xa08af208,
+ 0xa92ef210,
+ 0xa8b2f210,
+ 0xa10df208,
+ 0xa8b1f250,
+ 0xa112f208,
+ 0xa096f208,
+ 0xa09af208,
+ 0x0cf2c050,
+ 0xf24808c0,
+ 0xb421a085,
+ 0x0a0ac000,
+ 0x0c92c036,
+ 0xc000b481,
+ 0x1c8c0896,
+ 0xc000b421,
+ 0x8c00f031,
+ 0x8d80e131,
+ 0xb7c09ea3,
+ 0xb55f5e8c,
+ 0x0d027ffc,
+ 0x4078b960,
+ 0xa103f208,
+ 0xd1229dba,
+ 0x9e2d5d0d,
+ 0xa8e5f029,
+ 0x2caed012,
+ 0xd1265c88,
+ 0x9e4a5908,
+ 0xaa4de038,
+ 0x28bc0d04,
+ 0x324250a8,
+ 0xffffa241,
+ 0xf01091c1,
+ 0xc036aa61,
+ 0xb4810c8e,
+ 0xb73fc000,
+ 0x1c847fec,
+ 0xc000b421,
+ 0x996bc014,
+ 0xaa4dd208,
+ 0xc0007500,
+ 0xf2909262,
+ 0xf011aa2d,
+ 0xc0002ac8,
+ 0xc80091a4,
+ 0x75002a00,
+ 0x90c4c000,
+ 0xa9c6f208,
+ 0x9ae3fff4,
+ 0xa2cdd208,
+ 0xa8adf290,
+ 0x2a14d011,
+ 0xc0007500,
+ 0xc8099104,
+ 0xc51e0a42,
+ 0xb5800a10,
+ 0xb780530c,
+ 0x7500460c,
+ 0x9162c000,
+ 0x5a31c080,
+ 0xc03e2a04,
+ 0xb4810cea,
+ 0xc000c000,
+ 0xb7809280,
+ 0x7502448c,
+ 0x915cc000,
+ 0x2880c100,
+ 0x0a0e7440,
+ 0x1a46d001,
+ 0x9060c000,
+ 0xc03e0a02,
+ 0xb4810cea,
+ 0xb79fc000,
+ 0xb7bf7a6e,
+ 0xb7df7aee,
+ 0xc0067b6e,
+ 0x9c228c00,
+ 0x538cb780,
+ 0x0892c0c8,
+ 0x40f8b960,
+ 0x0948d011,
+ 0xaa45f029,
+ 0x5889d0a4,
+ 0xc000b481,
+ 0xffff0890,
+ 0x9c229321,
+ 0xb720a605,
+ 0xb780460c,
+ 0x74407e0c,
+ 0xb5800a04,
+ 0xc0007e0c,
+ 0xb7839364,
+ 0x75007508,
+ 0x92c2c000,
+ 0x448cb720,
+ 0x510cb780,
+ 0x3a407442,
+ 0x510cb580,
+ 0x919cc000,
+ 0x5e8cb780,
+ 0xa889d208,
+ 0xc0007440,
+ 0x850690a4,
+ 0x7c18b543,
+ 0x0a42c801,
+ 0x0a00c010,
+ 0x0ceac032,
+ 0xc000b481,
+ 0x08c2c008,
+ 0x1ce0c002,
+ 0xc000b421,
+ 0x0a42c008,
+ 0x0d0ec030,
+ 0xc000b482,
+ 0x0c82c450,
+ 0x1a40c008,
+ 0xc000b481,
+ 0x4220b101,
+ 0x38c0c002,
+ 0x0c82c050,
+ 0xc000b421,
+ 0x0d82c0c0,
+ 0xc0080992,
+ 0xc0080d02,
+ 0xfff40902,
+ 0xc4509aa7,
+ 0x0a020c86,
+ 0xc000b481,
+ 0x4260b102,
+ 0x0a00c008,
+ 0x0d0ec030,
+ 0xc000b482,
+ 0xc0080c84,
+ 0xb4811a00,
+ 0xb101c000,
+ 0xc0804220,
+ 0xc8015a35,
+ 0x09400902,
+ 0x28fcc00e,
+ 0x5910d0a8,
+ 0x29ced071,
+ 0x0c8ac030,
+ 0xb4419dc8,
+ 0x0a42c000,
+ 0xb4810c84,
+ 0x7680c000,
+ 0x9182c000,
+ 0x600cb720,
+ 0x44bdb740,
+ 0x8a27f210,
+ 0x8021f310,
+ 0x44adb580,
+ 0x0c86c450,
+ 0xb4810a02,
+ 0xb102c000,
+ 0x0cec4260,
+ 0xc000b481,
+ 0x4260b102,
+ 0x8926c201,
+ 0xc03408ea,
+ 0xb4210c9e,
+ 0xb780c000,
+ 0xf248570c,
+ 0x8d40a891,
+ 0x88a3f210,
+ 0x0d060d82,
+ 0x5a0cc280,
+ 0x508cb580,
+ 0xffd4018b,
+ 0xc0809959,
+ 0xb4a10ca2,
+ 0xb780c000,
+ 0x0c88478c,
+ 0xc000b481,
+ 0x5894b7a0,
+ 0x0d82c002,
+ 0x9a22fff4,
+ 0xffff700a,
+ 0xb7809364,
+ 0xf2107e0c,
+ 0xf250a8ad,
+ 0x6243a8a2,
+ 0x71029e49,
+ 0x90b8c000,
+ 0xb5438506,
+ 0xb7807a18,
+ 0x7500460c,
+ 0x9242c000,
+ 0xffd40d82,
+ 0xb7839a10,
+ 0x75007608,
+ 0x90e2c000,
+ 0xffd40d82,
+ 0xc000995a,
+ 0x0d8290a0,
+ 0x9a22ffd4,
+ 0xc0800a02,
+ 0xb4810ca6,
+ 0xc002c000,
+ 0xfff40d92,
+ 0x740099f3,
+ 0x9364ffff,
+ 0x09820dea,
+ 0xc1210d0a,
+ 0xffb40902,
+ 0xb7809ba8,
+ 0xf248570c,
+ 0xc0a1a992,
+ 0x0d040d02,
+ 0xffb409c2,
+ 0xc0c09b93,
+ 0x09920d82,
+ 0x09420d42,
+ 0x99f6fff4,
+ 0xc03e0a02,
+ 0xb4810cea,
+ 0xb79fc000,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa60d9c22,
+ 0x570cb720,
+ 0x49b5b720,
+ 0x2e10d091,
+ 0x9e8e7500,
+ 0x91e2c003,
+ 0x2e14d011,
+ 0x87068502,
+ 0x7500b543,
+ 0xb5407500,
+ 0xb5437e1c,
+ 0xc0007a18,
+ 0xb5439082,
+ 0xd1117580,
+ 0x75002e10,
+ 0x9082c000,
+ 0x7600b543,
+ 0x2e10d211,
+ 0xc0007500,
+ 0xb5439082,
+ 0xb7837680,
+ 0x75007608,
+ 0x610cb7c0,
+ 0x92e2c001,
+ 0x7588b783,
+ 0xc0017500,
+ 0xc8099244,
+ 0xc6180a42,
+ 0xc8090a70,
+ 0xc5f808c2,
+ 0xc8090880,
+ 0xc6080cc2,
+ 0xc8090cb0,
+ 0xc55e0942,
+ 0xc8090910,
+ 0xc52a0d42,
+ 0xc8090d60,
+ 0xc54409c2,
+ 0xc80909d0,
+ 0xc5320dc2,
+ 0xc8090da0,
+ 0xc62a0c42,
+ 0xf2080c40,
+ 0xf208a24d,
+ 0xf248a0dd,
+ 0xf248a0c2,
+ 0xf248a145,
+ 0xf208a14a,
+ 0xf208a1c5,
+ 0xf248a1c2,
+ 0xb7a0a04e,
+ 0xf208580c,
+ 0x9eabaa4d,
+ 0x9c629ea4,
+ 0x598cb720,
+ 0xaa21d208,
+ 0x41abb580,
+ 0x41b3b720,
+ 0xb5408502,
+ 0xb520439a,
+ 0xb7c05014,
+ 0xf2d0588c,
+ 0xf208aa49,
+ 0x7048a8d9,
+ 0x9142c000,
+ 0x610cb780,
+ 0xa88df248,
+ 0x0de0d152,
+ 0x9c629e8c,
+ 0x7508b783,
+ 0xc0047500,
+ 0xb7209062,
+ 0x76404614,
+ 0x93c4c003,
+ 0x438ab720,
+ 0xc0007440,
+ 0xda0890e2,
+ 0x7048aa55,
+ 0x9004c001,
+ 0x5e94b7a0,
+ 0x7588b783,
+ 0x610cb7a0,
+ 0xa9d6da08,
+ 0x4392b520,
+ 0x7500850a,
+ 0xa0aad210,
+ 0xa8a9f208,
+ 0x8d24e001,
+ 0x1d849d4f,
+ 0x9c629e8c,
+ 0xaa31f208,
+ 0x0d8a030b,
+ 0x9c629ea4,
+ 0x9180c000,
+ 0x610cb780,
+ 0xa891f208,
+ 0x5e94b7a0,
+ 0x03090d86,
+ 0x9c629e8c,
+ 0x438ab780,
+ 0x7608b723,
+ 0x5994b720,
+ 0xb5800a04,
+ 0xd210438a,
+ 0x7440aa29,
+ 0x4849b580,
+ 0x9024c001,
+ 0x5a8cb7a0,
+ 0xa8c1f208,
+ 0x9e8c9eab,
+ 0xd2109c62,
+ 0x7500aa29,
+ 0x92a4c000,
+ 0xa9a1f208,
+ 0xa85df208,
+ 0x9e840d82,
+ 0xf2089c62,
+ 0xf248a021,
+ 0x9eaba845,
+ 0x9e840982,
+ 0xda089c62,
+ 0xb581aa21,
+ 0xb7807d8a,
+ 0x7502448c,
+ 0x90bcc000,
+ 0xffd40d86,
+ 0xd210982a,
+ 0x7500aa29,
+ 0x9122c000,
+ 0x558cb720,
+ 0x412db780,
+ 0xc0003a08,
+ 0xb72090e0,
+ 0xb780558c,
+ 0x2a75412d,
+ 0x412db580,
+ 0x7508b723,
+ 0x510cb780,
+ 0x3a047440,
+ 0x510cb580,
+ 0x91c4c000,
+ 0x0e60d151,
+ 0x598cb740,
+ 0xa882d208,
+ 0xa881d208,
+ 0x5014b520,
+ 0xa0cdd808,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0xc002a61d,
+ 0xc8298420,
+ 0xc3ac0ca2,
+ 0x02070cc0,
+ 0xac3dc010,
+ 0x8d00e0b3,
+ 0xa45dc018,
+ 0x0ca2c829,
+ 0x0c80c3ae,
+ 0xac3dc010,
+ 0x8c80e072,
+ 0xc0189d1a,
+ 0xc01ca45d,
+ 0x9e5f7d3e,
+ 0x9162c000,
+ 0x8c80f0b2,
+ 0xc0060faa,
+ 0xb53f08e2,
+ 0xc0007f6c,
+ 0x06839100,
+ 0xc0060fa6,
+ 0xb59f0a56,
+ 0x0b027f6c,
+ 0x0c82c450,
+ 0xb4810a02,
+ 0xb101c000,
+ 0xb53f4220,
+ 0xc0087fec,
+ 0xc0300a40,
+ 0xb4810c8a,
+ 0xc008c000,
+ 0x0c8408c2,
+ 0xc000b421,
+ 0x9e7b9ebb,
+ 0x99cec074,
+ 0x9e799e7c,
+ 0x714e6289,
+ 0x03890258,
+ 0x4422b357,
+ 0x028f71c2,
+ 0x9086c003,
+ 0x0f1ac050,
+ 0x7f6cb79f,
+ 0x7f6cb73f,
+ 0xf210710a,
+ 0x020ba8a2,
+ 0x4434b314,
+ 0x294ed3f1,
+ 0xc1009e4c,
+ 0x309858e0,
+ 0xc000b426,
+ 0xc00074b0,
+ 0xf21092d4,
+ 0xb486aa25,
+ 0xc004c000,
+ 0xc00074b0,
+ 0xf21090d4,
+ 0xb486aa29,
+ 0xc008c000,
+ 0xc00074b0,
+ 0xf21090d4,
+ 0xb486aa2d,
+ 0xd011c000,
+ 0xd3f10a62,
+ 0x75882b4e,
+ 0xd0010882,
+ 0xe0000892,
+ 0x0a0212d4,
+ 0x0a42d001,
+ 0x3098e000,
+ 0x9082c001,
+ 0x0c96c050,
+ 0xc000b4c1,
+ 0x7fecb73f,
+ 0xd0511c94,
+ 0xb4813a10,
+ 0xc0c0c000,
+ 0x09920d82,
+ 0x0902c008,
+ 0x0d02c008,
+ 0x981cfff4,
+ 0x0c86c450,
+ 0xb4810a02,
+ 0xb101c000,
+ 0xc0084220,
+ 0xc0300a00,
+ 0xb4810c8e,
+ 0x0b02c000,
+ 0x71489e7c,
+ 0x9048fffd,
+ 0xb79f000f,
+ 0xb7bf7bee,
+ 0xb7df7c6e,
+ 0xb7ff7cee,
+ 0xc0047d6e,
+ 0x9c228c20,
+ 0x4b0cb720,
+ 0xc0ff9e5c,
+ 0xc0ff2a40,
+ 0x710228c0,
+ 0xc0008502,
+ 0x85069062,
+ 0x4b9cb540,
+ 0x4b14b560,
+ 0xa6059c22,
+ 0xd0519e5d,
+ 0x75002a50,
+ 0x90e4c000,
+ 0x4b8cb780,
+ 0xc0007500,
+ 0xc0c09142,
+ 0xc0120d82,
+ 0x0d0209c2,
+ 0xffd40942,
+ 0xb7809bd9,
+ 0xc0344b0c,
+ 0xb4810cb6,
+ 0xc034c000,
+ 0xb4a20d32,
+ 0xb5a0c000,
+ 0xb79f4a8c,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa61d9c22,
+ 0xb7838420,
+ 0x75007508,
+ 0x9122c000,
+ 0x598cb780,
+ 0xa881d288,
+ 0xc0197440,
+ 0xb7c092a4,
+ 0x9eb1568c,
+ 0x468cb740,
+ 0x098e0dc2,
+ 0x0d42c002,
+ 0x995fffb4,
+ 0xaa55f208,
+ 0x5614b7c0,
+ 0xa8c5f208,
+ 0xa8caf208,
+ 0x570cb7a0,
+ 0x478cb580,
+ 0xa0d5f210,
+ 0xaa59da08,
+ 0xa8ddda08,
+ 0xa0def210,
+ 0x08d0d252,
+ 0xa259f210,
+ 0xa0c1f250,
+ 0xa942da08,
+ 0x404bb740,
+ 0x0a50d131,
+ 0xa881da08,
+ 0xda889e53,
+ 0x5915a8d2,
+ 0x5b90d124,
+ 0xa947f248,
+ 0x7e7edffc,
+ 0xc08060b2,
+ 0xc2005a7f,
+ 0x00985a71,
+ 0x58945893,
+ 0x80a3e210,
+ 0xa0ddf250,
+ 0x91e2c000,
+ 0x5d40e100,
+ 0x9164c000,
+ 0xaa55da88,
+ 0xb5208502,
+ 0xb5404792,
+ 0xb580489a,
+ 0xf288468a,
+ 0xd132aa21,
+ 0xf2500950,
+ 0xf250a255,
+ 0xda08a259,
+ 0xd810a8c1,
+ 0xf248aa41,
+ 0xda48a93b,
+ 0x6218a8ba,
+ 0x8021f310,
+ 0xa93dda48,
+ 0xa0caf250,
+ 0xa249f290,
+ 0xaa29da48,
+ 0xa151f250,
+ 0xa923f208,
+ 0xa8aeda48,
+ 0xc2006218,
+ 0xf3105a10,
+ 0xf2108021,
+ 0xf208a241,
+ 0x9e4ca927,
+ 0xa928f20a,
+ 0x588c6098,
+ 0x8023f210,
+ 0x82a3e210,
+ 0xa249f210,
+ 0xa8aada48,
+ 0xa0cdf210,
+ 0xaa41da08,
+ 0xa8c1d810,
+ 0xa0c6f210,
+ 0xa937f248,
+ 0x62430a04,
+ 0x600cb740,
+ 0x8021f310,
+ 0xa245f290,
+ 0xa8c1da08,
+ 0xa953f008,
+ 0xa8c2da08,
+ 0xa954f00a,
+ 0xe21058a0,
+ 0x5c9c80a3,
+ 0x82a3e020,
+ 0xaa2dda48,
+ 0xa0adf208,
+ 0xa0b2f208,
+ 0xa0c5f250,
+ 0xa0cef250,
+ 0xa251f210,
+ 0xa941d810,
+ 0x1880c004,
+ 0x4f0cb520,
+ 0x0a54d131,
+ 0xa881da08,
+ 0x1c80c002,
+ 0x4f94b520,
+ 0x59515940,
+ 0xa155f290,
+ 0x58d158c0,
+ 0xa0d9f290,
+ 0x0cf2c42e,
+ 0xb4810a02,
+ 0xb101c000,
+ 0x28844220,
+ 0xd1317440,
+ 0xc0000bd0,
+ 0xda089102,
+ 0xc09caa61,
+ 0xc012753e,
+ 0xc0c092f2,
+ 0xc05008c6,
+ 0xb4210ce2,
+ 0xf208c000,
+ 0x2a10aa59,
+ 0xc0007500,
+ 0xb7a09362,
+ 0xd2085e8c,
+ 0x7500aa2d,
+ 0x9282c000,
+ 0x570cb720,
+ 0x49b5b7a0,
+ 0x2e80e800,
+ 0x9184c000,
+ 0xa9a6f208,
+ 0xa9c1d2c8,
+ 0x29845d94,
+ 0x99fcfff4,
+ 0xa2aed208,
+ 0x570cb760,
+ 0xa959f208,
+ 0x0a30d131,
+ 0xa881da08,
+ 0x28a0d052,
+ 0x58917640,
+ 0x4e8cb520,
+ 0x9222c000,
+ 0xc0600a02,
+ 0xb4810cae,
+ 0xda08c000,
+ 0x7440a8c1,
+ 0x9302c000,
+ 0xb5408502,
+ 0xc0004e9c,
+ 0xc2009260,
+ 0x74802900,
+ 0x9122c000,
+ 0xc0600a0a,
+ 0xb4810cae,
+ 0xc000c000,
+ 0x0a0690e0,
+ 0x0caec060,
+ 0xc000b481,
+ 0xaa59f208,
+ 0x75002a04,
+ 0xb540850a,
+ 0xc000491c,
+ 0x850490a2,
+ 0x491cb540,
+ 0x7508b783,
+ 0xc0007500,
+ 0xb7839322,
+ 0x75007608,
+ 0x9284c000,
+ 0x460cb780,
+ 0xc0007500,
+ 0xb78391e2,
+ 0x75007688,
+ 0x9144c000,
+ 0x610cb720,
+ 0x5a94b760,
+ 0x402db780,
+ 0x9c629ea4,
+ 0xaa59f208,
+ 0x75002a20,
+ 0x90e2c000,
+ 0xaa41da08,
+ 0xc0007500,
+ 0xb7809244,
+ 0xb720598c,
+ 0xda08530c,
+ 0x9e8ca98e,
+ 0xb7839c62,
+ 0x75007508,
+ 0x90a2c000,
+ 0xb5438506,
+ 0xf2087f18,
+ 0x2a10aa59,
+ 0xc0017500,
+ 0xc2f09182,
+ 0xc0380a7e,
+ 0xb4810cfa,
+ 0xf248c000,
+ 0xc050a8c1,
+ 0xb4210ce6,
+ 0xf208c000,
+ 0xb720aa59,
+ 0x851a490c,
+ 0x0c82c038,
+ 0x75002a04,
+ 0xb5203890,
+ 0xc184490c,
+ 0xe00108e6,
+ 0xb5408d28,
+ 0xb4214d1c,
+ 0xb780c000,
+ 0xc800630c,
+ 0xc0020886,
+ 0xb5800c80,
+ 0xb421520c,
+ 0xffd4c000,
+ 0xb7809b0b,
+ 0xc03e490c,
+ 0xb4810c82,
+ 0xb720c000,
+ 0xc0504d0c,
+ 0xb4210c82,
+ 0xda08c000,
+ 0xf290a941,
+ 0xda08a8d5,
+ 0x6123a946,
+ 0xda089e53,
+ 0x6097aa41,
+ 0x5f94b720,
+ 0xb5418702,
+ 0x857f7e82,
+ 0x459ab540,
+ 0xb540851a,
+ 0x0d86449a,
+ 0xb5801a04,
+ 0xb5404d8c,
+ 0x8526405b,
+ 0x415bb540,
+ 0x460ab540,
+ 0x18a05891,
+ 0x40cbb520,
+ 0x7fe4b55f,
+ 0x9bb2c014,
+ 0x7fe4b75f,
+ 0xb5438506,
+ 0xb5437e18,
+ 0xb5447e80,
+ 0xb5444400,
+ 0xb5434480,
+ 0xda087f80,
+ 0xf290a8c6,
+ 0x9e49aa55,
+ 0x5694b720,
+ 0x4000b544,
+ 0xb7206243,
+ 0x8502434d,
+ 0xa9e2da08,
+ 0xc10158c8,
+ 0x9e892880,
+ 0x4e1cb540,
+ 0x519cb540,
+ 0xc0ff5dc0,
+ 0xca012dc0,
+ 0xc2003db0,
+ 0xb5805a11,
+ 0x3596450a,
+ 0x99b0fff4,
+ 0x0d82c0c0,
+ 0x09c2c012,
+ 0x09420d02,
+ 0x99a4ffd4,
+ 0x0a829e7b,
+ 0x85467146,
+ 0x9168c001,
+ 0xfff49dcf,
+ 0xc0c099b0,
+ 0xc0120d82,
+ 0x0d0209c2,
+ 0xffd40906,
+ 0xd0919993,
+ 0x71481e70,
+ 0xd00b0a02,
+ 0xda080a42,
+ 0xc200a9e2,
+ 0x9ea15a28,
+ 0xc0ff5dc0,
+ 0xc8012dc0,
+ 0x35963db0,
+ 0x9984fff4,
+ 0xd0519e7b,
+ 0xc2000a50,
+ 0xc2005a40,
+ 0x71465ac1,
+ 0xfffe8506,
+ 0xb7209326,
+ 0xb780610c,
+ 0x7500462d,
+ 0x857fcfce,
+ 0x409cb541,
+ 0x9102c000,
+ 0xa9def208,
+ 0x450ab760,
+ 0x9c629ea4,
+ 0xc0140d82,
+ 0xb78398e8,
+ 0x75007e88,
+ 0xb5438502,
+ 0xc0027e18,
+ 0xb7209324,
+ 0xb7a06114,
+ 0x0b025a8c,
+ 0xb7830683,
+ 0x75007508,
+ 0x90c2c002,
+ 0x7608b783,
+ 0xc0027500,
+ 0xb7839022,
+ 0x75007f08,
+ 0x91c2c000,
+ 0x610cb760,
+ 0xa9a2f208,
+ 0x7f08b5c3,
+ 0xa869f048,
+ 0x9c629e84,
+ 0x430ab500,
+ 0x4008b784,
+ 0xc0007500,
+ 0xf2109382,
+ 0x9eaba825,
+ 0x4008b5c4,
+ 0x9c629e84,
+ 0xaa21f250,
+ 0x9c629ea4,
+ 0xa9a1f208,
+ 0xa83df210,
+ 0x9e840d86,
+ 0xf2509c62,
+ 0x9eabaa25,
+ 0xa021f208,
+ 0x9ea40986,
+ 0xb7849c62,
+ 0x75004008,
+ 0x91e4c000,
+ 0xc0140d86,
+ 0xb7849898,
+ 0x75004008,
+ 0x9342ffff,
+ 0x90a0c000,
+ 0xc0140d86,
+ 0xb783988e,
+ 0x75007e88,
+ 0x9222fffd,
+ 0x0d82c0c0,
+ 0x09c2c012,
+ 0x09060d02,
+ 0x98faffd4,
+ 0x0a02c801,
+ 0x518cb580,
+ 0x0d82c0c0,
+ 0x09c2c012,
+ 0x09420d02,
+ 0x98eeffd4,
+ 0x5194b760,
+ 0x98eefff4,
+ 0xfff40d86,
+ 0xc0c098fc,
+ 0xc0120d82,
+ 0x0d0209c2,
+ 0xffd40906,
+ 0x850298df,
+ 0x0892c006,
+ 0x0c9ac430,
+ 0xb5400902,
+ 0xc006519c,
+ 0xb4418510,
+ 0xb104c000,
+ 0x2a404220,
+ 0x9d537500,
+ 0x4422b314,
+ 0xe0000089,
+ 0xffff1884,
+ 0xb7409284,
+ 0xc0064614,
+ 0xc4300892,
+ 0x09020c9a,
+ 0x8512c006,
+ 0xc000b441,
+ 0x4220b104,
+ 0x2a00c002,
+ 0x9d4f7500,
+ 0x4422b313,
+ 0xe0000087,
+ 0xffff1884,
+ 0x0a029264,
+ 0x0ceac03e,
+ 0x40e8b960,
+ 0xc000b481,
+ 0x93c1ffff,
+ 0xc0007680,
+ 0x0a029122,
+ 0x0ceac03e,
+ 0xc000b481,
+ 0x9180c000,
+ 0x448cb780,
+ 0x088a7504,
+ 0x0ceac03e,
+ 0x1894d00c,
+ 0xc000b421,
+ 0x0d82c0c0,
+ 0x0d0209e2,
+ 0xffd40942,
+ 0x0a02988b,
+ 0x0cb6c034,
+ 0xc000b481,
+ 0x7deeb79f,
+ 0x7e6eb7bf,
+ 0x7eeeb7df,
+ 0x7f6eb7ff,
+ 0x8c20c002,
+ 0xa60d9c22,
+ 0x7efec01c,
+ 0xc0000a82,
+ 0xc0c09182,
+ 0xc0120d82,
+ 0x0d0209c2,
+ 0xffd40906,
+ 0xc000986d,
+ 0xc4349240,
+ 0x0a020cb2,
+ 0xc000b481,
+ 0x4220b101,
+ 0x74402884,
+ 0x90e2c000,
+ 0x7e08b783,
+ 0xc0097500,
+ 0xb78091a2,
+ 0x75024e0c,
+ 0x90c4c000,
+ 0xc0140d82,
+ 0x3ac09a29,
+ 0x5694b740,
+ 0x560cb740,
+ 0xa8c5d810,
+ 0xaa55f088,
+ 0x4592b720,
+ 0x9e496243,
+ 0x5a11c200,
+ 0xba090a04,
+ 0xba244002,
+ 0x70484002,
+ 0x06850305,
+ 0x9138c000,
+ 0x490cb780,
+ 0xb5802a51,
+ 0xc003490c,
+ 0xf21091c0,
+ 0x2a04aa39,
+ 0xc0027500,
+ 0xb78093a2,
+ 0x7440490c,
+ 0x3942d011,
+ 0x490cb540,
+ 0x929cc002,
+ 0x4792b760,
+ 0xba249e5c,
+ 0xc002400a,
+ 0xc00291a2,
+ 0xb760911c,
+ 0xb740650a,
+ 0x9e996084,
+ 0xba099e2d,
+ 0xd0a24003,
+ 0x9e485e7f,
+ 0x5a6dc200,
+ 0xc2000208,
+ 0xd2265a17,
+ 0x0c065908,
+ 0x5a14c200,
+ 0x9e401208,
+ 0xa94ee038,
+ 0x4002ba24,
+ 0x9e545090,
+ 0xc0017902,
+ 0xb7819102,
+ 0x75004b88,
+ 0x9064c001,
+ 0x470ab780,
+ 0xba249e48,
+ 0x70084002,
+ 0x9378c000,
+ 0xc0007640,
+ 0xb78190e4,
+ 0x75024b08,
+ 0x92c2c000,
+ 0x1e32d011,
+ 0x478ab580,
+ 0x48fd9e54,
+ 0x470ab560,
+ 0x4b90b501,
+ 0xb5402959,
+ 0x20c2490c,
+ 0xc000a0c1,
+ 0x850290a0,
+ 0x4b98b541,
+ 0x458ab780,
+ 0x400aba24,
+ 0x90fcc000,
+ 0x650ab780,
+ 0xb5800a04,
+ 0xb720650a,
+ 0xc03e490c,
+ 0xb4210c82,
+ 0xb780c000,
+ 0x0a04458a,
+ 0x458ab580,
+ 0x9a96c014,
+ 0x7508b783,
+ 0xc0027500,
+ 0xb7839222,
+ 0x75007608,
+ 0x9182c002,
+ 0x518cb780,
+ 0x75002a40,
+ 0x90e4c000,
+ 0x4408b784,
+ 0xc002751a,
+ 0xb7809024,
+ 0xb721578c,
+ 0xda087e92,
+ 0x9e48a881,
+ 0xc0007002,
+ 0xb7809284,
+ 0x8502430a,
+ 0x7e9ab541,
+ 0x440ab580,
+ 0x4412b760,
+ 0x530cb780,
+ 0xb5438506,
+ 0xb5447f18,
+ 0x9ea44018,
+ 0xf2109c62,
+ 0x2a10aa39,
+ 0xc0007500,
+ 0xb78493e2,
+ 0x75004008,
+ 0x90e4c000,
+ 0x7e8ab781,
+ 0xc0007502,
+ 0xb78392a4,
+ 0x75007f08,
+ 0xd0010902,
+ 0xc4380922,
+ 0x0a020c82,
+ 0xc000b481,
+ 0x4220b101,
+ 0x309428f1,
+ 0x0c82c038,
+ 0xc000b421,
+ 0x983ec014,
+ 0x4e0cb780,
+ 0xa955f288,
+ 0x71040a04,
+ 0x4e0cb580,
+ 0x90a4c000,
+ 0xb5408502,
+ 0xda104e1c,
+ 0xb720a8a5,
+ 0x58914592,
+ 0xba0960a3,
+ 0x9e4c4003,
+ 0x08843a84,
+ 0x020b7102,
+ 0x2a3dcffe,
+ 0x4426b354,
+ 0xd0510289,
+ 0x744028d0,
+ 0x9142c000,
+ 0x0d82c0c0,
+ 0x09c2c012,
+ 0x09420d02,
+ 0x9b38ffb4,
+ 0x518cb780,
+ 0xc0007500,
+ 0x9eab90a2,
+ 0x9b45ffd4,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0xa205f839,
+ 0x4408b724,
+ 0x5204b740,
+ 0x448ab780,
+ 0x5908d0a6,
+ 0xb7409e2d,
+ 0xe030570c,
+ 0xb760a94e,
+ 0xb744639c,
+ 0xb7444498,
+ 0x1a044400,
+ 0x448ab580,
+ 0xa8cdc030,
+ 0x5a40e200,
+ 0x0a20d251,
+ 0xa882da08,
+ 0x82a3e210,
+ 0x5194b540,
+ 0x5c905c95,
+ 0x4408b524,
+ 0x92c4c001,
+ 0x4488b784,
+ 0xd3f10a04,
+ 0x744428ce,
+ 0x4488b584,
+ 0x9034c001,
+ 0x4094b761,
+ 0xb5438506,
+ 0x24a67e98,
+ 0xb5447640,
+ 0xb5204018,
+ 0xc0005194,
+ 0xd1319202,
+ 0xb78008a0,
+ 0xc801402b,
+ 0x9e483c80,
+ 0x5a40c200,
+ 0x2a40c0ff,
+ 0xb5803208,
+ 0x0806518c,
+ 0xaa1df9f8,
+ 0xb7249c22,
+ 0xb7404488,
+ 0xd0a65f84,
+ 0x9e2d5904,
+ 0xaa4dc830,
+ 0x448ab580,
+ 0x09a0d132,
+ 0x458ab720,
+ 0xaa61d810,
+ 0x4002ba19,
+ 0x5a11c200,
+ 0x70c81a04,
+ 0x9104c000,
+ 0x408cb781,
+ 0x3a00c040,
+ 0x408cb581,
+ 0x4e8cb720,
+ 0x0a18d011,
+ 0xc00070c8,
+ 0xb7819104,
+ 0xc010408c,
+ 0xb5813a00,
+ 0xd011408c,
+ 0x70c80a1c,
+ 0x9104c000,
+ 0x408cb781,
+ 0x3a00c020,
+ 0x408cb581,
+ 0x560cb780,
+ 0xa916f288,
+ 0xa919f288,
+ 0xb7209e50,
+ 0xd011460a,
+ 0x62411a24,
+ 0x4002ba09,
+ 0x704800b2,
+ 0x9106c000,
+ 0x408cb781,
+ 0x2a7acfff,
+ 0x408cb581,
+ 0x1a22d011,
+ 0x62459e52,
+ 0xc0007048,
+ 0xb7819106,
+ 0xc7fe408c,
+ 0xb5812a7e,
+ 0xb740408c,
+ 0xd0a2451a,
+ 0xf3105e11,
+ 0x70c88821,
+ 0x9104c000,
+ 0x408cb781,
+ 0x2a4ecfff,
+ 0x408cb581,
+ 0x568cb740,
+ 0x408cb721,
+ 0xaa45d808,
+ 0x9e8a9e50,
+ 0x5a11c200,
+ 0x62091a04,
+ 0x5194b720,
+ 0xba240a04,
+ 0x70c84002,
+ 0xb5202494,
+ 0xc0005194,
+ 0xc8019118,
+ 0xb5203c80,
+ 0xc0005194,
+ 0xd81091c0,
+ 0xc801aa61,
+ 0x9e483c80,
+ 0x5a40c200,
+ 0x2a40c0ff,
+ 0xb5803208,
+ 0xf008518c,
+ 0xc040aa59,
+ 0x75002a00,
+ 0x9102c000,
+ 0x518cb780,
+ 0x3a00c101,
+ 0x518cb580,
+ 0x5194b760,
+ 0x9a34ffd4,
+ 0xf9f80802,
+ 0x9c22aa1d,
+ 0x5714b700,
+ 0x0e04d251,
+ 0x560cb760,
+ 0xa881da08,
+ 0x2dfcc00e,
+ 0x0cbac034,
+ 0xa961f008,
+ 0xc0805895,
+ 0x9e825810,
+ 0xc000b441,
+ 0x454ab780,
+ 0xa963f008,
+ 0x5a10c200,
+ 0x8021f310,
+ 0xa8e9f008,
+ 0xf0080c84,
+ 0xb421a261,
+ 0xb780c000,
+ 0xf00846ca,
+ 0xf310a96b,
+ 0xf0088021,
+ 0x0c84a8ed,
+ 0xa269f008,
+ 0xc000b421,
+ 0x46cab780,
+ 0xa96ff008,
+ 0x8021f310,
+ 0xa8f5f008,
+ 0xf0080c8c,
+ 0xb421a26d,
+ 0xf008c000,
+ 0x0c84a97d,
+ 0xc000b441,
+ 0x4d8cb780,
+ 0xd2240a08,
+ 0x72445890,
+ 0x931cc000,
+ 0x0e04d131,
+ 0xa903da08,
+ 0xe2109e4c,
+ 0x710288a1,
+ 0x91d6c000,
+ 0xaa75f008,
+ 0xa8fdf008,
+ 0x0a00c010,
+ 0xa275f008,
+ 0x0880c008,
+ 0xa0fdf008,
+ 0x4f0cb780,
+ 0x0cdac034,
+ 0xc000b481,
+ 0x4f8cb720,
+ 0xb4210c84,
+ 0xb780c000,
+ 0x0ce44f0c,
+ 0xb4810a40,
+ 0xb720c000,
+ 0x0c844f8c,
+ 0xb42108c0,
+ 0xb780c000,
+ 0xb7204f0c,
+ 0x1ce44f8c,
+ 0x0a00c010,
+ 0x4f0cb580,
+ 0xaa65f048,
+ 0x0880c008,
+ 0x4f8cb520,
+ 0xc000b481,
+ 0xa8edf048,
+ 0xb4210c84,
+ 0xf048c000,
+ 0xf048aa65,
+ 0x0c84a8ed,
+ 0x0a00c010,
+ 0xa265f048,
+ 0xaa75f048,
+ 0x0880c008,
+ 0xa0edf048,
+ 0xc000b481,
+ 0xa965f088,
+ 0xb4410c88,
+ 0xd131c000,
+ 0xb7800c80,
+ 0xf088402b,
+ 0xcffea967,
+ 0xf3102a40,
+ 0xf0888021,
+ 0x0c88a969,
+ 0xa265f088,
+ 0xc000b441,
+ 0x0c80d131,
+ 0x402bb780,
+ 0xa96bf088,
+ 0x2a40cffe,
+ 0x8021f310,
+ 0xa97df048,
+ 0xf0881c8c,
+ 0xb441a269,
+ 0xd131c000,
+ 0xb7800c80,
+ 0xf048402b,
+ 0x76c0a97f,
+ 0x5a11c200,
+ 0x5a14c200,
+ 0x8021f310,
+ 0xa27df048,
+ 0x9182c001,
+ 0x454ab720,
+ 0xb4211ca8,
+ 0xb780c000,
+ 0x0c8446ca,
+ 0x5a0dc200,
+ 0x58c0c200,
+ 0xb4813242,
+ 0xd131c000,
+ 0xd8080d04,
+ 0x0c8caa41,
+ 0x588cc200,
+ 0x28fccffe,
+ 0x5a50c200,
+ 0xb4213098,
+ 0xd251c000,
+ 0xd8080d04,
+ 0x0ca0aa41,
+ 0x5a11c200,
+ 0x2a3c1a10,
+ 0x3a00c004,
+ 0xc000b481,
+ 0x4d8cb780,
+ 0xb5800a04,
+ 0x9c224d8c,
+ 0xc43ea68d,
+ 0x0a020c92,
+ 0xc000b481,
+ 0x4220b103,
+ 0x5e0cb780,
+ 0xa885da08,
+ 0xa909da08,
+ 0xa189da08,
+ 0xa081da08,
+ 0xa105da08,
+ 0x0a020cd0,
+ 0xc000b481,
+ 0x4220b103,
+ 0x5d8cb720,
+ 0x518cb780,
+ 0x5e0cb7a0,
+ 0x40b3b720,
+ 0x412bb740,
+ 0x412bb560,
+ 0x75002a40,
+ 0xb5200303,
+ 0xb5404033,
+ 0xc00040ab,
+ 0xb78490e2,
+ 0x750a4408,
+ 0x90f2c000,
+ 0x4408b784,
+ 0xc00d751a,
+ 0xb7819204,
+ 0x0a047e8a,
+ 0x7e8ab581,
+ 0x0ca6c450,
+ 0xb4810a02,
+ 0xb103c000,
+ 0x00874220,
+ 0x2880c031,
+ 0xc00f0207,
+ 0xd0a42a7c,
+ 0xd22859e1,
+ 0x000759c1,
+ 0x287ccffe,
+ 0x0a020c88,
+ 0xc000b481,
+ 0x4220b103,
+ 0x5bc1c180,
+ 0xcffe9e9a,
+ 0x0cbc2d7c,
+ 0xc000b481,
+ 0x4220b103,
+ 0xb7400087,
+ 0xb781568c,
+ 0xc0fc7d8a,
+ 0xd0f22880,
+ 0xd0a4283e,
+ 0x9e415b19,
+ 0xa8d2d888,
+ 0xb5019e95,
+ 0xdffc7d92,
+ 0x12187e7e,
+ 0x4002ba1c,
+ 0x91c2c002,
+ 0xc00076c2,
+ 0xb7809384,
+ 0xb740480a,
+ 0xba246084,
+ 0xc2004002,
+ 0x58ed58ff,
+ 0x589700c2,
+ 0x5908d0a6,
+ 0x58949e2d,
+ 0x9e591242,
+ 0xa8cee038,
+ 0x4a7d5230,
+ 0x249e9ea7,
+ 0xc001a0c2,
+ 0xb7809180,
+ 0xda08468a,
+ 0xba24a8a1,
+ 0x70484002,
+ 0x907cc001,
+ 0x488ab780,
+ 0x4812b720,
+ 0x6084b740,
+ 0xb5800a04,
+ 0xba09488a,
+ 0xd0a24003,
+ 0x9e495e7f,
+ 0xc2009e2d,
+ 0x02185a6d,
+ 0x5a17c200,
+ 0x5908d226,
+ 0x5a14c200,
+ 0xe0389ea7,
+ 0x149ea94d,
+ 0x08869e4c,
+ 0x312250b0,
+ 0xb780a141,
+ 0x0a04480a,
+ 0x480ab580,
+ 0x7588b783,
+ 0xb7837500,
+ 0xc0007608,
+ 0xc01c90c4,
+ 0xc0027d3e,
+ 0xc01c9184,
+ 0xd0117d3e,
+ 0xd02103f0,
+ 0x76c20527,
+ 0xaa39f210,
+ 0xd0010882,
+ 0x2a040892,
+ 0xb7407902,
+ 0xc0005a8c,
+ 0xd80890e2,
+ 0x0a04aa49,
+ 0xa249d808,
+ 0xa94bf008,
+ 0xa94cf00a,
+ 0x8027f310,
+ 0x82a5e010,
+ 0xa249f008,
+ 0xa0cdf008,
+ 0x7a88b783,
+ 0x08827500,
+ 0x0892d002,
+ 0x0a0276c2,
+ 0x0a42d002,
+ 0xc0007848,
+ 0xc07c90c2,
+ 0xda088542,
+ 0x76c2a123,
+ 0xa953f008,
+ 0x90c4c000,
+ 0xaa41da08,
+ 0x9080c000,
+ 0xaa21da08,
+ 0x80a1e310,
+ 0xaa4dd808,
+ 0xa0d1f008,
+ 0xd8080a04,
+ 0xc006a24d,
+ 0xb72091c0,
+ 0x9d2e5a8c,
+ 0xaa39f210,
+ 0x8136c301,
+ 0x8120c201,
+ 0x4525b740,
+ 0x75002a04,
+ 0x8027f010,
+ 0x8221f310,
+ 0xb5800103,
+ 0xc001452d,
+ 0x76c290a2,
+ 0x90c4c000,
+ 0xaa41da08,
+ 0x9080c000,
+ 0xaa21da08,
+ 0xa25dd808,
+ 0xc00176c6,
+ 0x76c09082,
+ 0x91a4c000,
+ 0xd80874c0,
+ 0xe002a953,
+ 0xf2108d2a,
+ 0xd808802d,
+ 0xc000a251,
+ 0x74c092c0,
+ 0xa947d848,
+ 0x8d26e002,
+ 0x9160c000,
+ 0xaa41da08,
+ 0xd84874c0,
+ 0xd808a947,
+ 0xe002a25d,
+ 0xf2108d2a,
+ 0xd848802d,
+ 0xb783a245,
+ 0x75007708,
+ 0x9302c000,
+ 0x440ab780,
+ 0x70489e41,
+ 0x9244c000,
+ 0xb5438502,
+ 0xc43a7718,
+ 0x0a020c82,
+ 0xc000b481,
+ 0x4220b103,
+ 0x29fecfef,
+ 0x0c82c03a,
+ 0xc000b461,
+ 0x440ab780,
+ 0x70489e41,
+ 0xd0020882,
+ 0x76c60892,
+ 0xd0010a02,
+ 0x78480a42,
+ 0x9242c000,
+ 0xb5438506,
+ 0xc43a7718,
+ 0x0a020c82,
+ 0xc000b481,
+ 0x4220b103,
+ 0x3980c011,
+ 0x0c82c03a,
+ 0xc000b461,
+ 0xc0017780,
+ 0x76c091a2,
+ 0x92e4c000,
+ 0xaa21da08,
+ 0xa947f008,
+ 0xa8d5d808,
+ 0x8021f310,
+ 0xa8dad808,
+ 0xa245f008,
+ 0x0c849e44,
+ 0xa0dad808,
+ 0xd80800c2,
+ 0xc000a0d5,
+ 0xda0892a0,
+ 0xf008aa41,
+ 0xd848a95b,
+ 0xf310a8c9,
+ 0xd8488021,
+ 0xf008a8ce,
+ 0x9e44a259,
+ 0xd8480c84,
+ 0x00c2a0ce,
+ 0xa0c9d848,
+ 0xaa5dd808,
+ 0xa95ff008,
+ 0xa940f04a,
+ 0xa9c7f048,
+ 0x8021f310,
+ 0xa94ff048,
+ 0xa25df008,
+ 0x8221f210,
+ 0xa8c2d848,
+ 0xa241f048,
+ 0x8037f010,
+ 0x80a9e210,
+ 0xd8480c84,
+ 0xf048a0c2,
+ 0xf048a245,
+ 0xb7bfa0cd,
+ 0xb7df7eee,
+ 0xb7ff7f6e,
+ 0x8c607fee,
+ 0xb7809c22,
+ 0xd0f1598c,
+ 0xb72008c0,
+ 0x76424031,
+ 0xc0009ea2,
+ 0xc43c9382,
+ 0x0a020cca,
+ 0xc000b481,
+ 0x4220b101,
+ 0x1914d011,
+ 0x2e3ed3f1,
+ 0xba090888,
+ 0xba124002,
+ 0xc4104002,
+ 0xc00e7048,
+ 0xc81228fc,
+ 0xd3f17044,
+ 0xc00028ae,
+ 0xd3f19080,
+ 0xd0f12cbe,
+ 0x85020e20,
+ 0x0cfec036,
+ 0xa103d208,
+ 0xc000b421,
+ 0xc0029c22,
+ 0xd01172c0,
+ 0x9c221c0a,
+ 0x5b0cb780,
+ 0xa882f208,
+ 0x1432d010,
+ 0xc000743d,
+ 0x087b90b6,
+ 0x90e0c000,
+ 0x850a7406,
+ 0x4478b302,
+ 0xf2089d43,
+ 0xe210a903,
+ 0x0a0a8021,
+ 0xc01208fe,
+ 0xc0107008,
+ 0x9c227002,
+ 0x5994b720,
+ 0xb7208502,
+ 0xd81041cb,
+ 0xd810a17f,
+ 0x8502a173,
+ 0x5b0cb780,
+ 0xa167f010,
+ 0xa17bd810,
+ 0xa177d810,
+ 0xa167d850,
+ 0xa17bf010,
+ 0xa16fd850,
+ 0xa16bd850,
+ 0xa163d850,
+ 0xa167f050,
+ 0xa163f050,
+ 0xa17ff010,
+ 0xa16ff050,
+ 0xa16bf050,
+ 0xa0e1f010,
+ 0xa11fda08,
+ 0xa113da08,
+ 0xa107f208,
+ 0xa11bda08,
+ 0xa117da08,
+ 0xa107da48,
+ 0xa11bf208,
+ 0xa10fda48,
+ 0xa10bda48,
+ 0xa103da48,
+ 0xa107f248,
+ 0x41cbb720,
+ 0xa103f248,
+ 0xa11ff208,
+ 0xa10ff248,
+ 0xa081f208,
+ 0xa10bf248,
+ 0xb7809c22,
+ 0xf0105b0c,
+ 0xf208a8e1,
+ 0xd810a081,
+ 0xda08a8f2,
+ 0xd850a092,
+ 0xda48a8e5,
+ 0xf050a085,
+ 0xf248a8e6,
+ 0xf050a086,
+ 0xf248a8e1,
+ 0xd810a081,
+ 0xda08a8fe,
+ 0xf010a09e,
+ 0xf208a8f9,
+ 0xf010a099,
+ 0xf208a8e6,
+ 0xd850a086,
+ 0xda48a8e1,
+ 0xd810a081,
+ 0xda08a8fa,
+ 0xd850a09a,
+ 0xda48a8ed,
+ 0xd810a08d,
+ 0xda08a8f6,
+ 0xd850a096,
+ 0xda48a8e9,
+ 0xf050a089,
+ 0xf248a8ee,
+ 0xf010a08e,
+ 0xb720a8fd,
+ 0xf2085c14,
+ 0xb740a09d,
+ 0xf05041dd,
+ 0xc301aa69,
+ 0xb5408120,
+ 0xf05041dd,
+ 0xf310aa61,
+ 0x85028821,
+ 0x40cdb580,
+ 0xa173d810,
+ 0x08028502,
+ 0xa167f010,
+ 0xa17bd810,
+ 0xa177d810,
+ 0xa167d850,
+ 0xa17bf010,
+ 0xa16fd850,
+ 0xa16bd850,
+ 0xa16bf050,
+ 0x74c29c22,
+ 0xc0019e5c,
+ 0xb78091c4,
+ 0xd2085e8c,
+ 0x7440a885,
+ 0xb5438502,
+ 0xc0017a98,
+ 0xb78091a4,
+ 0xb7205b0c,
+ 0xda485894,
+ 0xb740a881,
+ 0xb78042cd,
+ 0xb740598c,
+ 0x60955c14,
+ 0xa917f248,
+ 0xa94df010,
+ 0x44c5b740,
+ 0x444db780,
+ 0x8124c201,
+ 0x88a3e210,
+ 0x8a21f310,
+ 0xc0007048,
+ 0xb56391fc,
+ 0xc0007a88,
+ 0x74c09160,
+ 0x9104c000,
+ 0x598cb720,
+ 0xaa01da08,
+ 0x41abb580,
+ 0x7a88b703,
+ 0xa61d9c22,
+ 0xba3b0e82,
+ 0xcc124002,
+ 0x9eb872ca,
+ 0x9e969e56,
+ 0x12ac66b1,
+ 0xba017540,
+ 0xc0004003,
+ 0x058b933c,
+ 0x0d02018b,
+ 0x9b12c014,
+ 0x5e0bd322,
+ 0x9e857148,
+ 0x931ac000,
+ 0x5990d324,
+ 0x0d0201ee,
+ 0x9b06c014,
+ 0x60419e6c,
+ 0x5a93d024,
+ 0x9180c000,
+ 0x588cb780,
+ 0xa88ada08,
+ 0x1590d010,
+ 0xc0140d02,
+ 0x9e859af7,
+ 0xb79f9e68,
+ 0xb7bf7e6e,
+ 0xb7df7eee,
+ 0xb7ff7f6e,
+ 0xc0027fee,
+ 0x9c228c00,
+ 0x8440a61d,
+ 0x5894b7e0,
+ 0xaa75da10,
+ 0x598cb7e0,
+ 0xb740753a,
+ 0xf2085b0c,
+ 0x0c82aa61,
+ 0x0c92d00a,
+ 0x7e74b53f,
+ 0xd8087504,
+ 0xd848aa5d,
+ 0xb59fa8c1,
+ 0xf0087eec,
+ 0x9e8da8de,
+ 0xba2d0b02,
+ 0xb53f4003,
+ 0xc0017f74,
+ 0xb7c092a4,
+ 0xf2105c14,
+ 0xf210a94b,
+ 0x7740aa4d,
+ 0x88a1f310,
+ 0x921cc000,
+ 0xa9c6f048,
+ 0x0d029e6b,
+ 0x9ab6c014,
+ 0xa96bda10,
+ 0x882bf310,
+ 0x12d06009,
+ 0x714cd412,
+ 0xaa69f208,
+ 0xb79f7502,
+ 0x08827e6c,
+ 0x0892d009,
+ 0xc0017848,
+ 0xb77f93a2,
+ 0xb73f7d6a,
+ 0x9eab7f74,
+ 0xa949f250,
+ 0x4002ba1b,
+ 0x048b0503,
+ 0x9b71fff4,
+ 0x92c0c001,
+ 0x5c14b720,
+ 0x405db740,
+ 0x41cdb780,
+ 0xf3107740,
+ 0xc00088a1,
+ 0xda10915c,
+ 0xb780a96b,
+ 0xe310464d,
+ 0x624388ab,
+ 0xf20812d8,
+ 0x7502aa69,
+ 0x90f2c000,
+ 0xaa69da08,
+ 0xc0007500,
+ 0xb7409222,
+ 0xb77f45cd,
+ 0xb73f7d6a,
+ 0x9eab7f74,
+ 0x4002ba1b,
+ 0x048b0503,
+ 0x9b45fff4,
+ 0x9140c000,
+ 0xa96bda10,
+ 0xe3109eab,
+ 0x0d0289ab,
+ 0x9a60c014,
+ 0x08020301,
+ 0x7180c012,
+ 0x7d6eb79f,
+ 0x7deeb7bf,
+ 0x7e6eb7df,
+ 0x7eeeb7ff,
+ 0x8c40c002,
+ 0xa6059c22,
+ 0x6404b740,
+ 0x4003ba12,
+ 0x1e22d011,
+ 0x5904d226,
+ 0xc8309e2d,
+ 0xba13a8cd,
+ 0x9e5b4002,
+ 0x6a16d011,
+ 0x9e4d7088,
+ 0x90fcc001,
+ 0xc00074c0,
+ 0xc180921c,
+ 0xd0205a07,
+ 0x0d0201a8,
+ 0x9a32c014,
+ 0xaa25f208,
+ 0xd2246241,
+ 0xc0005943,
+ 0xd01190e0,
+ 0x9ea20e22,
+ 0x4003ba12,
+ 0x5c0cb720,
+ 0x0a10d091,
+ 0xa882d208,
+ 0xb3127282,
+ 0xc000485a,
+ 0xb72090da,
+ 0xc8124fb1,
+ 0x9e507282,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xb720a605,
+ 0xb7205994,
+ 0xb700404d,
+ 0x74445d14,
+ 0x1e00d051,
+ 0x4442b340,
+ 0xb7209e4d,
+ 0x9e5c43ca,
+ 0x4003ba12,
+ 0x7c7edffc,
+ 0x4002ba1b,
+ 0x4002ba12,
+ 0x9102c000,
+ 0xfff40481,
+ 0x9e829ba4,
+ 0x4003ba12,
+ 0xaa25d288,
+ 0xc0007502,
+ 0xb78091c4,
+ 0xd208590c,
+ 0x7440a881,
+ 0x90e4c000,
+ 0x0e24d011,
+ 0xba129ea2,
+ 0xd2884003,
+ 0x7502aa29,
+ 0x90e4c000,
+ 0x0e22d011,
+ 0xba129ea2,
+ 0xda484003,
+ 0x9e52aa39,
+ 0x08c8d011,
+ 0xc0007082,
+ 0x9e8a90fc,
+ 0x4003ba12,
+ 0x9140c000,
+ 0x1a109e51,
+ 0xba247048,
+ 0xb3244002,
+ 0x9ea24836,
+ 0x5c0cb720,
+ 0x4f29b780,
+ 0x12289e52,
+ 0xba129ea2,
+ 0x76844003,
+ 0xc0009e89,
+ 0x0d0a90bc,
+ 0x90e0c000,
+ 0x857b76bb,
+ 0x487ab322,
+ 0xb7409dcb,
+ 0xe2104f59,
+ 0xd09180ad,
+ 0x9e8a0e10,
+ 0xaa01d208,
+ 0x4003ba12,
+ 0x70489e51,
+ 0x445ab342,
+ 0x90fac000,
+ 0x4fc9b780,
+ 0xc8129ea1,
+ 0x9e507282,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xdffca61d,
+ 0xc0007efe,
+ 0xb7809204,
+ 0xb7c05b0c,
+ 0xda085d14,
+ 0xda08aa99,
+ 0xf208ab11,
+ 0xda08aa86,
+ 0xc000ab95,
+ 0xb78091c0,
+ 0xb7c05b0c,
+ 0xda485c94,
+ 0xda48aa8d,
+ 0xf208ab05,
+ 0xda48aa9a,
+ 0xc008ab89,
+ 0xc0007540,
+ 0x9eab91dc,
+ 0x9937fff4,
+ 0xc2009e81,
+ 0xc20052a3,
+ 0xc2005343,
+ 0xc20053e3,
+ 0xb74056a7,
+ 0xd2a66184,
+ 0x9e2d5904,
+ 0xa8cdc830,
+ 0xaa51da10,
+ 0x63f36363,
+ 0x621cb740,
+ 0xda100a04,
+ 0x9e89a251,
+ 0xda109d47,
+ 0xc210aa55,
+ 0x66d3a925,
+ 0xf310856e,
+ 0x9e918821,
+ 0x4002ba2c,
+ 0x56a7c200,
+ 0x7748c00c,
+ 0x534bc200,
+ 0x53ebc200,
+ 0x927cc001,
+ 0x7580c100,
+ 0xc07e9e6b,
+ 0xb3640a7e,
+ 0xd2264438,
+ 0xc2805114,
+ 0xe2205d87,
+ 0x0d0281af,
+ 0x9928c014,
+ 0xa943f210,
+ 0x618ed032,
+ 0xa9d1da10,
+ 0x81afe220,
+ 0xba1b0d02,
+ 0xf2104002,
+ 0xc014a1c2,
+ 0x755e9919,
+ 0xa045f210,
+ 0x1a50d04d,
+ 0x5213d01a,
+ 0x90dac000,
+ 0xf3108542,
+ 0x52108823,
+ 0xa245f210,
+ 0xda108506,
+ 0xb79fa15f,
+ 0xb7bf7e6e,
+ 0xb7df7eee,
+ 0xb7ff7f6e,
+ 0xc0027fee,
+ 0x9c228c00,
+ 0x76c0a60d,
+ 0x5894b7a0,
+ 0x92a2c001,
+ 0x5b0cb7a0,
+ 0xaa2dda48,
+ 0xc0007500,
+ 0x0d8690a2,
+ 0x9b60fff4,
+ 0xaa39da08,
+ 0xc0007500,
+ 0x0d8290a2,
+ 0x9b58fff4,
+ 0xa8a1da48,
+ 0xaa29da10,
+ 0xc0007048,
+ 0xda089382,
+ 0xfff4ab3d,
+ 0xb78099f1,
+ 0xf208598c,
+ 0xd210a881,
+ 0xb720aaa1,
+ 0x74425c14,
+ 0x4f49b5a0,
+ 0x9eaa9e83,
+ 0x4002ba1e,
+ 0xfff40916,
+ 0xba009ab9,
+ 0xd2104002,
+ 0xd210a021,
+ 0xb79fa821,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0x9c229c22,
+ 0x4002ba1b,
+ 0x5887d1a4,
+ 0x9e489e5a,
+ 0x52200886,
+ 0x70881a04,
+ 0x907cc001,
+ 0x08029e4c,
+ 0xd0117008,
+ 0x50b01a32,
+ 0x91d6c000,
+ 0xc0007844,
+ 0xd01191a4,
+ 0xba040a02,
+ 0x9e4c4002,
+ 0x58877008,
+ 0x92d8ffff,
+ 0x9c220802,
+ 0xba001030,
+ 0x9c224002,
+ 0x5907d1a6,
+ 0x8821e210,
+ 0x4002ba00,
+ 0xd0119c22,
+ 0x08021e12,
+ 0x50b07008,
+ 0x91f6c000,
+ 0x78449ea1,
+ 0x9204ffff,
+ 0x0a02d011,
+ 0x4002ba04,
+ 0x70089e4c,
+ 0xffff5887,
+ 0x080692d8,
+ 0xa6059c22,
+ 0xac7dc030,
+ 0x588cb7a0,
+ 0xc0389d59,
+ 0xc030a45d,
+ 0xc038ac7d,
+ 0xc030a45d,
+ 0xc038ac7d,
+ 0x0d82a45d,
+ 0x0982c002,
+ 0x9baafff4,
+ 0x7c3edffc,
+ 0xa9aada08,
+ 0xd0020a02,
+ 0xb7200a42,
+ 0x09ba5e8c,
+ 0x0aacc002,
+ 0xd2088506,
+ 0xb540a221,
+ 0xfff440b9,
+ 0xb7209b97,
+ 0xd1315c14,
+ 0xd1710e14,
+ 0xd1310c94,
+ 0xda080d1c,
+ 0xd171a001,
+ 0x85020e1c,
+ 0x402bb500,
+ 0xa143d808,
+ 0x0886c001,
+ 0xa103da08,
+ 0x48cdb520,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0x5894b720,
+ 0xa876d810,
+ 0xa96ff010,
+ 0x42d3b500,
+ 0xa96df010,
+ 0x5994b740,
+ 0x41cdb780,
+ 0x5f0cb760,
+ 0x41cdb540,
+ 0xa8c9d810,
+ 0x8821f310,
+ 0x1d02d013,
+ 0xa964f00a,
+ 0x88a3e210,
+ 0xf0506243,
+ 0xf310a96d,
+ 0xf0088221,
+ 0xb540a265,
+ 0xf01045cd,
+ 0xb580aa71,
+ 0xf010424d,
+ 0xb520a8f5,
+ 0x9c2242cd,
+ 0x74c0c008,
+ 0x9e529e58,
+ 0x90fcc000,
+ 0x70c0d002,
+ 0x51f31a14,
+ 0xc0055013,
+ 0xc0007400,
+ 0xd00290fc,
+ 0x1a507000,
+ 0x01285013,
+ 0x6184b740,
+ 0x620cb780,
+ 0x5904d1a6,
+ 0xc0409e2d,
+ 0xc830a8e5,
+ 0x7044aa4d,
+ 0xd01d6009,
+ 0xd01a1214,
+ 0xb3405013,
+ 0x122248ba,
+ 0x9c225010,
+ 0x08029e98,
+ 0xc0000902,
+ 0x9e989140,
+ 0xd0100802,
+ 0xcc144530,
+ 0xc01472c0,
+ 0x72c07200,
+ 0x5d09c180,
+ 0x7204e009,
+ 0x5d04f012,
+ 0x9254c000,
+ 0xd00472c4,
+ 0xd0240804,
+ 0x72c015b4,
+ 0x0802d004,
+ 0x15b0d024,
+ 0x3124e000,
+ 0xb3301181,
+ 0x9c22442a,
+ 0x088672c0,
+ 0x93a6ffff,
+ 0x72c0c402,
+ 0x2c9ed065,
+ 0x3c9ed065,
+ 0x7200c802,
+ 0x2d2ed065,
+ 0x3d2ed065,
+ 0x1514e000,
+ 0xd01a9e53,
+ 0xd01a5408,
+ 0x72c050ac,
+ 0x0002d014,
+ 0x15b0d024,
+ 0x5885e080,
+ 0xffff5c05,
+ 0xe0009304,
+ 0x11813124,
+ 0x442ab330,
+ 0x00009c22,
+ 0x87c2c809,
+ 0x0c20b060,
+ 0x87c2c809,
+ 0x0a60b060,
+ 0x87c2c809,
+ 0x09c0b060,
+};
+
+unsigned long aui32MPG4CBR_SlaveMTXTOPAZFWData[] = {
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x809000b0,
+ 0x809002f8,
+ 0x828839c4,
+ 0x828834cc,
+ 0x828834dc,
+ 0x8288357c,
+ 0x828833e8,
+ 0x8288343e,
+ 0x82883438,
+ 0x828835ac,
+ 0x828835d6,
+ 0x828835e8,
+ 0x82883620,
+ 0x82883624,
+ 0x82883654,
+ 0x82883684,
+ 0x828836ac,
+ 0x828836ec,
+ 0x828836fc,
+ 0x8288370c,
+ 0x828834a4,
+ 0x82883714,
+ 0x82883720,
+ 0x82883750,
+ 0x82883758,
+ 0x8288378c,
+ 0x82883bf4,
+ 0x82883b2e,
+ 0x82883bb0,
+ 0x8288398c,
+ 0x82883a8c,
+ 0x82883acc,
+ 0x82883af0,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x8090074c,
+ 0x8090074c,
+ 0x80901efc,
+ 0x8090197c,
+ 0x80902fa4,
+ 0x809022e8,
+ 0x80901ca4,
+ 0x8090074c,
+ 0x8090074c,
+ 0x8090074c,
+ 0x8090074c,
+ 0x8090074c,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0xa0101100,
+ 0xa01001b0,
+ 0xa0101102,
+ 0xa01001b2,
+ 0xa0101104,
+ 0xa0100124,
+ 0xa0101106,
+ 0xa0100126,
+ 0xa0100134,
+ 0x00000000,
+ 0xa0101120,
+ 0xa0100136,
+ 0xa0101122,
+ 0xa0100144,
+ 0x80101160,
+ 0x80101162,
+ 0x80101180,
+ 0x80101182,
+ 0x80100140,
+ 0x80100142,
+ 0x80100150,
+ 0x80100152,
+ 0x80100154,
+ 0x80100146,
+ 0x803003a0,
+ 0x80100100,
+ 0x80105156,
+ 0xa0101164,
+ 0xa0100184,
+ 0x80101194,
+ 0x801001b4,
+ 0x80100146,
+ 0x00000000,
+ 0x00000003,
+ 0x00000002,
+ 0x00000002,
+ 0x00000001,
+ 0x00000001,
+ 0x00000001,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000005,
+ 0x000f9400,
+ 0x000f9401,
+ 0x000fd403,
+ 0x000fd40b,
+ 0x000fd41b,
+ 0x000ffc1b,
+ 0x000ffc1b,
+ 0x000ff81b,
+ 0x0000681b,
+ 0x0000681a,
+ 0x0000281a,
+ 0x00002810,
+ 0x00002800,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00010001,
+ 0x00004010,
+ 0x04010040,
+ 0x10040100,
+ 0x40100401,
+ 0x00008040,
+ 0x20100804,
+ 0x02010080,
+ 0x40201008,
+ 0x00260019,
+ 0x003f0032,
+ 0x0058004b,
+ 0x00710064,
+ 0x008a007d,
+ 0x00a30096,
+ 0x00bc00af,
+ 0x00d500c8,
+ 0x00ee00e1,
+ 0x010700fa,
+ 0x01070107,
+ 0x01070107,
+ 0x01070107,
+ 0x01070107,
+ 0x01070107,
+ 0x00000107,
+ 0x00200040,
+ 0x001002ab,
+ 0x015500cd,
+ 0x00080249,
+ 0x00cd01c7,
+ 0x0155005d,
+ 0x0249013b,
+ 0x00040111,
+ 0x01c700f1,
+ 0x00cd01af,
+ 0x005d00c3,
+ 0x01550059,
+ 0x013b0029,
+ 0x0249025f,
+ 0x01110235,
+ 0x00020021,
+ 0x00f1001f,
+ 0x01c70075,
+ 0x01af006f,
+ 0x00cd0069,
+ 0x00c30019,
+ 0x005d017d,
+ 0x0059005b,
+ 0x015502b9,
+ 0x002900a7,
+ 0x013b0283,
+ 0x025f0135,
+ 0x02490095,
+ 0x0235023f,
+ 0x0111008b,
+ 0x00210219,
+ 0x00010041,
+ 0x0b060600,
+ 0x0c0b0a06,
+ 0x0a0b0c06,
+ 0x0c0d0c0c,
+ 0x0d0d0c06,
+ 0x0b0b0c0c,
+ 0x0e0d0a0d,
+ 0x0a0d0e0e,
+ 0x0c0d0a06,
+ 0x0c0e0c0e,
+ 0x0e0d0a0d,
+ 0x0f0c0c0c,
+ 0x0f0b0d0e,
+ 0x0d0f0e0e,
+ 0x0d0f0f0f,
+ 0x0c0b0f0e,
+ 0x00000006,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x1234baac,
+ 0x00000000,
+};
+
+unsigned long aui32MPG4CBR_SlaveMTXTOPAZFWTextReloc[] = {
+ 0
+};
+
+unsigned char aui8MPG4CBR_SlaveMTXTOPAZFWTextRelocType[] = {
+ 0
+};
+
+unsigned long aui32MPG4CBR_SlaveMTXTOPAZFWTextRelocFullAddr[] = {
+ 0
+};
+
+unsigned long aui32MPG4CBR_SlaveMTXTOPAZFWDataReloc[] = {
+ 0
+};
diff --git a/fw/MPG4SlaveFirmwareCBR_bin.h b/fw/MPG4SlaveFirmwareCBR_bin.h
new file mode 100644
index 0000000..a5579cf
--- /dev/null
+++ b/fw/MPG4SlaveFirmwareCBR_bin.h
@@ -0,0 +1,44 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+
+// This file was automatically generated from ../release/MPG4SlaveFirmwareCBR.dnl using dnl2c.
+
+extern unsigned long aui32MPG4CBR_SlaveMTXTOPAZFWText[];
+extern unsigned long ui32MPG4CBR_SlaveMTXTOPAZFWTextSize;
+
+extern unsigned long aui32MPG4CBR_SlaveMTXTOPAZFWData[];
+extern unsigned long ui32MPG4CBR_SlaveMTXTOPAZFWDataSize;
+
+extern unsigned long aui32MPG4CBR_SlaveMTXTOPAZFWTextReloc[];
+extern unsigned char aui8MPG4CBR_SlaveMTXTOPAZFWTextRelocType[];
+extern unsigned long aui32MPG4CBR_SlaveMTXTOPAZFWTextRelocFullAddr[];
+
+extern unsigned long aui32MPG4CBR_SlaveMTXTOPAZFWDataReloc[];
+extern unsigned long ui32MPG4CBR_SlaveMTXTOPAZFWDataRelocSize;
+
+extern unsigned long ui32MPG4CBR_SlaveMTXTOPAZFWTextOrigin;
+extern unsigned long ui32MPG4CBR_SlaveMTXTOPAZFWDataOrigin;
+
diff --git a/fw/MPG4SlaveFirmwareVBR_bin.c b/fw/MPG4SlaveFirmwareVBR_bin.c
new file mode 100644
index 0000000..5e79951
--- /dev/null
+++ b/fw/MPG4SlaveFirmwareVBR_bin.c
@@ -0,0 +1,3875 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+
+// This file was automatically generated from ../release/MPG4SlaveFirmwareVBR.dnl using dnl2c.
+
+unsigned char *szMPG4SlaveFirmwareVBR_buildtag = "BUILD_TOPAZ_SC_1_00_00_0318";
+
+unsigned long ui32MPG4VBR_SlaveMTXTOPAZFWTextSize = 3188;
+unsigned long ui32MPG4VBR_SlaveMTXTOPAZFWDataSize = 628;
+unsigned long ui32MPG4VBR_SlaveMTXTOPAZFWTextRelocSize = 0;
+unsigned long ui32MPG4VBR_SlaveMTXTOPAZFWDataRelocSize = 0;
+
+unsigned long ui32MPG4VBR_SlaveMTXTOPAZFWTextOrigin = 0x80900000;
+unsigned long ui32MPG4VBR_SlaveMTXTOPAZFWDataOrigin = 0x82883200;
+
+unsigned long aui32MPG4VBR_SlaveMTXTOPAZFWText[] = {
+ 0x9040c001,
+ 0xc80993fe,
+ 0xc0000e42,
+ 0xc8290e00,
+ 0xc3bc8422,
+ 0xc8298440,
+ 0xc3208622,
+ 0x9e838600,
+ 0xc8099e43,
+ 0xc6380d42,
+ 0xc8090d00,
+ 0xc6380942,
+ 0xc8090940,
+ 0xc00a0e42,
+ 0xc8090e40,
+ 0xc00e87c2,
+ 0x9c1887d0,
+ 0x0c020802,
+ 0x09820d82,
+ 0x09020d02,
+ 0x08820c82,
+ 0x9320fffe,
+ 0xa401c838,
+ 0x0dc2c809,
+ 0x0dc0c636,
+ 0x0e42c809,
+ 0x0b46b080,
+ 0x7e74b77f,
+ 0xa48d0882,
+ 0xffff9ff3,
+ 0x9d1393e0,
+ 0xf8398081,
+ 0x0707a205,
+ 0x06850307,
+ 0x03839e97,
+ 0x0fa0060f,
+ 0x018d058d,
+ 0x9c62008f,
+ 0x9340ffff,
+ 0x0ea0060b,
+ 0xffff9c62,
+ 0x058d93a0,
+ 0xb700018d,
+ 0xb780548c,
+ 0x9c015414,
+ 0x0687a605,
+ 0x0ea0060b,
+ 0xffff9c62,
+ 0xf9f893a0,
+ 0xf9f8aa9d,
+ 0x9c22aa1d,
+ 0xa6059c22,
+ 0x0e860a82,
+ 0xc0340d82,
+ 0xc0149b32,
+ 0x0d8a9967,
+ 0x9b2dc034,
+ 0x7108b783,
+ 0xc0007500,
+ 0xc0149082,
+ 0xc0149abe,
+ 0x740299db,
+ 0xb3549e6c,
+ 0x02894424,
+ 0x995dc014,
+ 0xffff7540,
+ 0xb79f90e2,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0x87029c22,
+ 0xb5438502,
+ 0xb5436818,
+ 0xb5436898,
+ 0xb5436918,
+ 0xb5436c18,
+ 0xb5436c98,
+ 0xb5436d18,
+ 0xb5437118,
+ 0xb5437198,
+ 0xb5437218,
+ 0xb5407818,
+ 0xb5404804,
+ 0xb5404884,
+ 0xb5404904,
+ 0xb5404984,
+ 0xb5404a04,
+ 0xb5404c04,
+ 0xb5404c84,
+ 0xb5404d04,
+ 0xb5404202,
+ 0xb5404282,
+ 0xb5405004,
+ 0xb5407a84,
+ 0xb5404e84,
+ 0x9c224702,
+ 0x8420a605,
+ 0x9ba6fff4,
+ 0xc0340d8a,
+ 0xfff49ada,
+ 0xc0349bc6,
+ 0xc4209ae5,
+ 0x0a020cd2,
+ 0xc000b481,
+ 0x4220b105,
+ 0xe0310d8a,
+ 0xc0148d80,
+ 0xc8299a01,
+ 0xc3bc0922,
+ 0xb73f0920,
+ 0xd0717f6c,
+ 0xb5802a5e,
+ 0xc01e450c,
+ 0x85022a80,
+ 0xa8c2f008,
+ 0xc2807102,
+ 0xb5a05a95,
+ 0xb341460c,
+ 0x76404434,
+ 0x459cb540,
+ 0x448cb520,
+ 0x90c2c000,
+ 0x0e12d011,
+ 0xa241f008,
+ 0x550cb780,
+ 0x08c2c807,
+ 0x0880c570,
+ 0x0caac032,
+ 0x538cb580,
+ 0xc000b421,
+ 0x0cf40a2a,
+ 0xc000b481,
+ 0x09021a28,
+ 0x08bac002,
+ 0x4078b960,
+ 0x0a00c200,
+ 0x588bd224,
+ 0xc000b441,
+ 0x0a11ce00,
+ 0x9301ffff,
+ 0x1884e000,
+ 0x9244ffff,
+ 0x0a42c807,
+ 0x0a00c576,
+ 0x0caac032,
+ 0xc000b481,
+ 0x08820a02,
+ 0x08840902,
+ 0x4078b960,
+ 0x0a00c200,
+ 0x588bd224,
+ 0xc000b441,
+ 0x0a11ce00,
+ 0x9301ffff,
+ 0x745ac004,
+ 0x923cffff,
+ 0xc0340a02,
+ 0xb4810c9e,
+ 0xfff4c000,
+ 0x08029b2c,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x9c228c60,
+ 0xc0409e54,
+ 0x9e590c82,
+ 0xc000b421,
+ 0x0d02c040,
+ 0xc000b482,
+ 0xc00e9c22,
+ 0xc00e2d7c,
+ 0x5d3029e0,
+ 0xc0409e54,
+ 0x31b80c82,
+ 0xc000b461,
+ 0x0d02c040,
+ 0xc000b442,
+ 0xa60d9c22,
+ 0x07038420,
+ 0xc2800687,
+ 0x1c845c8d,
+ 0x5ca0d0a2,
+ 0xd0110287,
+ 0xc2000a5e,
+ 0x1a045a0d,
+ 0x5a30c200,
+ 0x30985cd0,
+ 0x04059e4c,
+ 0x0c8ac032,
+ 0xc8013098,
+ 0xb4213880,
+ 0x9ea9c000,
+ 0x0a02c801,
+ 0x0a00c002,
+ 0xc0306553,
+ 0xb4810c8a,
+ 0xc002c000,
+ 0x0c840882,
+ 0xc000b421,
+ 0xd0229e93,
+ 0x9e535f09,
+ 0x1d045d0d,
+ 0x9bb4fff4,
+ 0x5e91c280,
+ 0xc2801e84,
+ 0x9e6c5e84,
+ 0xc2801a84,
+ 0xc1815a90,
+ 0x0d8a3a80,
+ 0x0d020982,
+ 0xfff4314a,
+ 0xc0c09bae,
+ 0x09920d82,
+ 0x0d02c002,
+ 0x0902c002,
+ 0x9a04c034,
+ 0xc0340a0a,
+ 0xb4810c9e,
+ 0x1b04c000,
+ 0x850275bf,
+ 0x9202c000,
+ 0xb55f9dcf,
+ 0xc0347f7c,
+ 0xf23199d7,
+ 0xb75fa045,
+ 0x1b047f7c,
+ 0x851075bf,
+ 0x9284ffff,
+ 0x0a42c002,
+ 0x0c8ec030,
+ 0xc000b481,
+ 0x7e6eb79f,
+ 0x7eeeb7bf,
+ 0x7f6eb7df,
+ 0x8c00c002,
+ 0x9c229c22,
+ 0x8502c200,
+ 0x9c89c037,
+ 0x9c80c171,
+ 0x9c80c817,
+ 0xf8399c22,
+ 0x0d9aa205,
+ 0x99bdc034,
+ 0xf9f80d8a,
+ 0xc02daa1d,
+ 0xa6059300,
+ 0x0a42c801,
+ 0x0a00c010,
+ 0x2ebed3f2,
+ 0x0caac032,
+ 0xc000b481,
+ 0x0cf408aa,
+ 0xc000b421,
+ 0x558cb780,
+ 0x0c92c080,
+ 0xa881f208,
+ 0xc000b421,
+ 0x558cb780,
+ 0xf2080c88,
+ 0xb421a889,
+ 0xb780c000,
+ 0x0c84558c,
+ 0xa88df208,
+ 0xc000b421,
+ 0x1c980902,
+ 0xc000b441,
+ 0x558cb780,
+ 0xf2080c90,
+ 0xb421a885,
+ 0xb7a0c000,
+ 0x0dd2558c,
+ 0x9976c034,
+ 0xaa25f208,
+ 0xffff7008,
+ 0x0daa9344,
+ 0x0d060982,
+ 0x0902c121,
+ 0x9b29fff4,
+ 0x4714b760,
+ 0x0d02c021,
+ 0x09c20d04,
+ 0x9b16fff4,
+ 0x4714b760,
+ 0x0d0609c2,
+ 0x9b10fff4,
+ 0x09820daa,
+ 0xc1010d02,
+ 0xfff40902,
+ 0x0d929b14,
+ 0x9952c034,
+ 0xaa25f208,
+ 0xffff7008,
+ 0x77409344,
+ 0x90a2c000,
+ 0xc0340d8e,
+ 0x0d8a9954,
+ 0x9951c034,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xc470a60d,
+ 0x0a020c8e,
+ 0xc000b481,
+ 0x4220b101,
+ 0x558cb780,
+ 0xa085f208,
+ 0x0a021c8c,
+ 0xc000b481,
+ 0x4220b105,
+ 0x2b5ed1f1,
+ 0x558cb780,
+ 0xcff09ead,
+ 0xc2802e80,
+ 0xf2085ea1,
+ 0xc280a281,
+ 0x2a845a9d,
+ 0x0a020c84,
+ 0xc000b481,
+ 0x4220b101,
+ 0x468cb520,
+ 0xb4810c84,
+ 0xb101c000,
+ 0xb5204220,
+ 0xc070470c,
+ 0xb4810c8e,
+ 0x0882c000,
+ 0xb4211c8c,
+ 0x0c90c000,
+ 0xc000b481,
+ 0xb4211c8c,
+ 0x0c84c000,
+ 0xc000b481,
+ 0x6204b740,
+ 0x5908d326,
+ 0xe0309e2d,
+ 0x9ea4aa4d,
+ 0xb7809c62,
+ 0x7740558c,
+ 0x9ea98502,
+ 0xd0010d82,
+ 0xf2080db2,
+ 0x2596a10f,
+ 0x9b3ffff4,
+ 0xc0700a06,
+ 0xb4810c82,
+ 0x000dc000,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x7ebec01c,
+ 0x9244c000,
+ 0x5e08d1a2,
+ 0x0a00c090,
+ 0x5909d224,
+ 0xc4000882,
+ 0xb4223d00,
+ 0xb104c000,
+ 0x75004220,
+ 0x9364ffff,
+ 0x5c88c180,
+ 0x0c80c090,
+ 0xb4615c89,
+ 0x9c22c000,
+ 0x5c88c180,
+ 0x0c80c090,
+ 0xc4005c89,
+ 0x0a023c80,
+ 0xc000b481,
+ 0x4220b101,
+ 0xa0e1f008,
+ 0xc0905d88,
+ 0x5d890d80,
+ 0xc000b483,
+ 0x9e5b9c22,
+ 0x68b1d312,
+ 0xc1c00a02,
+ 0x5c8b0cc0,
+ 0x3c80c400,
+ 0xc000b481,
+ 0x4220b102,
+ 0x5914b760,
+ 0x6931d312,
+ 0x9e518502,
+ 0x4070b960,
+ 0x08e0c1c0,
+ 0xaa65f031,
+ 0x5889d0a4,
+ 0xc000b481,
+ 0x85100890,
+ 0x9301ffff,
+ 0x8560c1c0,
+ 0x80ade210,
+ 0x5b14b760,
+ 0x3904c001,
+ 0x8521ce3e,
+ 0x4048b960,
+ 0xaa65f031,
+ 0x5889d0a4,
+ 0xc000b481,
+ 0x85100890,
+ 0x9301ffff,
+ 0x812de220,
+ 0x588cb780,
+ 0x3908c001,
+ 0x0d60c1c0,
+ 0xdac85d09,
+ 0xb422a885,
+ 0xd312c000,
+ 0xc1c068b1,
+ 0x5c8b0cc0,
+ 0xc000b441,
+ 0x84209c22,
+ 0xc4700882,
+ 0x0a020c92,
+ 0xc000b481,
+ 0x4220b102,
+ 0x02050185,
+ 0x2a04c001,
+ 0xc0007500,
+ 0xb7409362,
+ 0x09025914,
+ 0x4070b960,
+ 0x08e0c1c0,
+ 0x5889d0a4,
+ 0x08a1ce3e,
+ 0x3c80c400,
+ 0xc000b441,
+ 0x4220b104,
+ 0xa245f031,
+ 0xffff0890,
+ 0x01079221,
+ 0x297acfff,
+ 0xc0010205,
+ 0x75002a08,
+ 0x91e2c001,
+ 0x5b14b740,
+ 0xb9600982,
+ 0xc1c04048,
+ 0xd0a408e0,
+ 0xce3e5889,
+ 0xc40008a1,
+ 0xb4613c80,
+ 0xb104c000,
+ 0xf0314220,
+ 0x0890a245,
+ 0x9221ffff,
+ 0x8d00e032,
+ 0x08e0c1c0,
+ 0x5889d0a4,
+ 0xc4000a02,
+ 0xb4813c80,
+ 0xb101c000,
+ 0xf0104220,
+ 0xb73fa0c1,
+ 0xb7807e72,
+ 0xdac8588c,
+ 0xcfffa086,
+ 0xc0702976,
+ 0xb4410c92,
+ 0x8c20c000,
+ 0xb7409c22,
+ 0xd312508c,
+ 0x0a026cb1,
+ 0x0cc0c1c0,
+ 0xc4005c8b,
+ 0xb4813c80,
+ 0xb101c000,
+ 0xd3124220,
+ 0xc1ca6cb1,
+ 0x5c8b0cf0,
+ 0xc000b441,
+ 0x6d82c00c,
+ 0x38c0c001,
+ 0x0dc0c1c0,
+ 0xb4235d8b,
+ 0x9c22c000,
+ 0x6cb1d312,
+ 0xc1c00a02,
+ 0x5c8b0cc0,
+ 0x3c80c400,
+ 0xc000b481,
+ 0x4220b103,
+ 0x5a14b740,
+ 0x6d31d311,
+ 0x4058b960,
+ 0xc1c00085,
+ 0xf03108e0,
+ 0xd0a4aa45,
+ 0xb4815889,
+ 0x0890c000,
+ 0x9321ffff,
+ 0x3990c001,
+ 0x0940c1c0,
+ 0x588bd124,
+ 0xc000b461,
+ 0xf8399c22,
+ 0xf010a285,
+ 0x7500aa61,
+ 0x9164c000,
+ 0xa8c1d008,
+ 0x0a069e48,
+ 0x5200c200,
+ 0xd0083098,
+ 0xd011a0c1,
+ 0xd0100d38,
+ 0xf011a9f2,
+ 0xf0101a30,
+ 0x1984a943,
+ 0x93e2c000,
+ 0x8702cff1,
+ 0x8700cff0,
+ 0x087ec00f,
+ 0x087cc00e,
+ 0x0c1ac050,
+ 0xa8c5f029,
+ 0x2095d020,
+ 0x9e4d5ca1,
+ 0xc2002210,
+ 0x30d85a20,
+ 0x4006ba09,
+ 0xc000b420,
+ 0x1a30f011,
+ 0xffff1984,
+ 0xf21091e4,
+ 0xf010802f,
+ 0xf9f8a241,
+ 0x9c22aa9d,
+ 0x9e5da60d,
+ 0xf1245940,
+ 0xd3f15841,
+ 0xb3502d2e,
+ 0xc0024422,
+ 0xf00893e2,
+ 0xe000aa61,
+ 0xb4252a1c,
+ 0xd8084422,
+ 0x8522aa61,
+ 0x88a9e210,
+ 0x12182a1c,
+ 0xc00e9ea3,
+ 0xba1b0a7e,
+ 0xc200400b,
+ 0x21285207,
+ 0x9276c001,
+ 0xc1009e59,
+ 0x11035a20,
+ 0x5209c200,
+ 0xc2009ea2,
+ 0x9e8d58a1,
+ 0x0cb0d031,
+ 0xa8a2d208,
+ 0x2a7cc00e,
+ 0x5207c200,
+ 0x2a7cc00e,
+ 0xd208349a,
+ 0xf008a0a2,
+ 0x9ea1a963,
+ 0x2a2ed3f1,
+ 0x8128c201,
+ 0x8821f310,
+ 0xf0088502,
+ 0xd228a261,
+ 0x9eaba127,
+ 0x2d01cff0,
+ 0x59415940,
+ 0xc00e3522,
+ 0xfff42d7c,
+ 0xc0009bb1,
+ 0xd20892e0,
+ 0x9e5eaa21,
+ 0x50d8000b,
+ 0xd0293242,
+ 0xf008a205,
+ 0xd013a8e1,
+ 0xf210291e,
+ 0x75108029,
+ 0x00989e44,
+ 0xa0e1f008,
+ 0x4426b350,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x0685a60d,
+ 0x9e9e9e69,
+ 0x71820b02,
+ 0xc0000a86,
+ 0x9ea99208,
+ 0x9e6916d2,
+ 0x5a84c280,
+ 0x1a52d011,
+ 0xd0117102,
+ 0xd3f108e2,
+ 0xffff2b1e,
+ 0xd0119286,
+ 0x75100a62,
+ 0xc000028d,
+ 0x9e7391d4,
+ 0x09220d02,
+ 0x9b70fff4,
+ 0xd0111aa0,
+ 0x75100a52,
+ 0xffff9e83,
+ 0x9e7392d2,
+ 0xd0110d06,
+ 0xc00e0952,
+ 0xfff4297c,
+ 0x75909b61,
+ 0xc0009e83,
+ 0xd03192f4,
+ 0xd3f11a60,
+ 0x9e6c2b4e,
+ 0xc2009e73,
+ 0xd3f25299,
+ 0x0922295e,
+ 0x9b50fff4,
+ 0xc2009e83,
+ 0x9ea952b8,
+ 0x16d27590,
+ 0x91b2ffff,
+ 0xd3f29e73,
+ 0x010d2d5e,
+ 0x9b42fff4,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x0ca0f011,
+ 0xd09a9e99,
+ 0xd00d5a04,
+ 0xc0001a42,
+ 0x1203909a,
+ 0x9e4b1242,
+ 0xfffc9ea2,
+ 0xa60d9360,
+ 0x85028420,
+ 0xb55f9e55,
+ 0xb55f7f7c,
+ 0xf0107ffc,
+ 0xe011aa61,
+ 0x03078c8e,
+ 0x750a1a08,
+ 0x590cd226,
+ 0xe05a8540,
+ 0xc0038044,
+ 0xc00090a0,
+ 0xc0009180,
+ 0xc00092a0,
+ 0xc00193c0,
+ 0xc0019100,
+ 0xc0029200,
+ 0xe0119060,
+ 0x9e8b8d88,
+ 0x1954d072,
+ 0x500cb5a0,
+ 0x9bc8fff4,
+ 0x9200c002,
+ 0x5014b740,
+ 0xe0119ea9,
+ 0x9e8b8d88,
+ 0xfff41514,
+ 0xc0029bbd,
+ 0xe01190a0,
+ 0x9e8b8d88,
+ 0x295ed3f2,
+ 0xfff40916,
+ 0xb5a09aeb,
+ 0xc001500c,
+ 0xe0119320,
+ 0x9e8b8d88,
+ 0x295ed3f2,
+ 0xfff40916,
+ 0xc0019adf,
+ 0xd20891e0,
+ 0x9e8baa41,
+ 0x8c88f011,
+ 0xd0124a7d,
+ 0x0d062ace,
+ 0x018b0906,
+ 0x9ad0fff4,
+ 0x9e6a9e83,
+ 0x0d02018b,
+ 0x9acafff4,
+ 0x9340c000,
+ 0xaa41d208,
+ 0xf0119e8b,
+ 0x4a7d8c88,
+ 0x2aced012,
+ 0x09060d02,
+ 0xfff4018b,
+ 0x9e839abb,
+ 0x018b9e6a,
+ 0x0d7ec00e,
+ 0x9ab4fff4,
+ 0x9080c000,
+ 0x90e0c001,
+ 0x7e68b79f,
+ 0x0cfec00f,
+ 0x0cfcc00e,
+ 0xb59f9e4a,
+ 0xb73f7c68,
+ 0xcff17f6c,
+ 0xcff00a02,
+ 0xc0500a00,
+ 0x22180c9a,
+ 0x5a21c200,
+ 0x58a02094,
+ 0xba243242,
+ 0xb59f4006,
+ 0xb4817f6c,
+ 0xf208c000,
+ 0xb79fa943,
+ 0xf3107fec,
+ 0xf2088021,
+ 0xb79fa241,
+ 0xb7bf7e6e,
+ 0xb7df7eee,
+ 0xc0027f6e,
+ 0x9c228c00,
+ 0x8440a61d,
+ 0x9e9d8502,
+ 0xabe5f031,
+ 0xb55f0b02,
+ 0xb55f7878,
+ 0x718e7efc,
+ 0xc0019d3a,
+ 0xaa4191e8,
+ 0xc0007502,
+ 0xd0189392,
+ 0xe032aad1,
+ 0xe0518d08,
+ 0x9dcf8d00,
+ 0x85109eb1,
+ 0x7f7cb55f,
+ 0x0a9cc002,
+ 0x5a95c280,
+ 0xfff4018b,
+ 0xb75f9a1e,
+ 0xc2807f7c,
+ 0xc3015a88,
+ 0xc0008122,
+ 0xe03191a0,
+ 0x9dcf8d88,
+ 0x8510050b,
+ 0x7f7cb55f,
+ 0x9b23fff4,
+ 0x7f7cb75f,
+ 0x718e0b04,
+ 0x92a6fffe,
+ 0x7868b79f,
+ 0x0c9ec050,
+ 0xc000b481,
+ 0x0d16c050,
+ 0xc000b4e2,
+ 0x7eecb71f,
+ 0x7d6eb79f,
+ 0x7deeb7bf,
+ 0x7e6eb7df,
+ 0x7eeeb7ff,
+ 0x8c40c002,
+ 0xa6059c22,
+ 0x0c8ac450,
+ 0xb4810a02,
+ 0xb102c000,
+ 0xe00e4240,
+ 0xd1042d7c,
+ 0xc8015d10,
+ 0x0a400a02,
+ 0x0c8ac030,
+ 0xc000b481,
+ 0x0c8408c2,
+ 0xc000b421,
+ 0x5e0cb740,
+ 0xa947f048,
+ 0x802df210,
+ 0xa245f048,
+ 0x0c86c450,
+ 0xb4810a02,
+ 0xb101c000,
+ 0xc8014220,
+ 0xc0100a42,
+ 0xc0320a00,
+ 0xb4810caa,
+ 0x08aac000,
+ 0x0d1ec034,
+ 0xc000b422,
+ 0x0cf2c450,
+ 0xb4810a02,
+ 0xb101c000,
+ 0xd0534220,
+ 0xb7801910,
+ 0xf248570c,
+ 0xf210a891,
+ 0x0d8288a3,
+ 0x018b0d06,
+ 0x9884fff4,
+ 0x0ca2c080,
+ 0xc000b4a1,
+ 0x0d82c002,
+ 0x9954c014,
+ 0xffff700a,
+ 0x0daa9364,
+ 0x0d0a0982,
+ 0x0902c121,
+ 0x9b09ffd4,
+ 0x570cb780,
+ 0xa992f248,
+ 0x0d02c0a1,
+ 0x09c20d04,
+ 0x9af4ffd4,
+ 0x0d82c0c0,
+ 0x0d420992,
+ 0xc0140942,
+ 0xb79f9957,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa60d9c22,
+ 0x8400c010,
+ 0x570cb720,
+ 0x49adb780,
+ 0x75002a20,
+ 0x5914b7c0,
+ 0xc0000902,
+ 0xb7839182,
+ 0x75007108,
+ 0x90e2c000,
+ 0xaa41d290,
+ 0xc0057500,
+ 0xb7209164,
+ 0xd01149ad,
+ 0x75002a18,
+ 0x3924d002,
+ 0x9124c000,
+ 0x2a14d011,
+ 0xd0027500,
+ 0xd0013922,
+ 0xc0503926,
+ 0xb4410c82,
+ 0x9d87c000,
+ 0x468cb740,
+ 0x09c20dc2,
+ 0x0d02c010,
+ 0x0c81cff0,
+ 0x9acbffd4,
+ 0x7108b783,
+ 0x75009d1b,
+ 0x0b01cff0,
+ 0x9282c000,
+ 0xaa41d290,
+ 0xc0007500,
+ 0xb79f91e2,
+ 0xf211606c,
+ 0xc0108d00,
+ 0x75002a00,
+ 0x0a03cff0,
+ 0x8001f310,
+ 0x4422b346,
+ 0x4068b79e,
+ 0x08c2c801,
+ 0x0880c010,
+ 0x0ceac032,
+ 0x606cb59f,
+ 0xc000b421,
+ 0x7108b783,
+ 0xc0017500,
+ 0xb7839282,
+ 0x75007208,
+ 0x91e2c001,
+ 0x510cb720,
+ 0x2a12d011,
+ 0xc0017500,
+ 0xb7a09102,
+ 0xb7a05f14,
+ 0xf2105a0c,
+ 0x9eabaa21,
+ 0xb52028f9,
+ 0x9ea4510c,
+ 0xb7209c62,
+ 0xb7805c8c,
+ 0x75004129,
+ 0x92a4c000,
+ 0xa9a1f208,
+ 0xa83df210,
+ 0x9e840d82,
+ 0xf2509c62,
+ 0x9eaba8a5,
+ 0xa021f208,
+ 0x9e8c0982,
+ 0xda089c62,
+ 0xb581aa21,
+ 0xda107b8a,
+ 0x9eb3a9cd,
+ 0x9aa6fff4,
+ 0x0a02c801,
+ 0x0a00c00a,
+ 0x0c8ac030,
+ 0xc000b481,
+ 0x08c2c008,
+ 0xb4210c84,
+ 0xc008c000,
+ 0x0c880a02,
+ 0xc000b481,
+ 0x0d82c0c0,
+ 0xc0080992,
+ 0xc0080d02,
+ 0xc0140902,
+ 0xc008989d,
+ 0xc0300a02,
+ 0xb4810c8e,
+ 0xb720c000,
+ 0x8506598c,
+ 0x4039b540,
+ 0x9ad1fff4,
+ 0x6eeeb79f,
+ 0x6f6eb7bf,
+ 0x6feeb7df,
+ 0x8c60c010,
+ 0xf8399c22,
+ 0xc450a205,
+ 0x0a020c82,
+ 0xc000b481,
+ 0x4220b101,
+ 0x0a40c008,
+ 0x0c8ec030,
+ 0xc000b481,
+ 0x38c0c002,
+ 0x0c82c050,
+ 0xc000b421,
+ 0x0d82c0c0,
+ 0xc0080992,
+ 0xc0080d02,
+ 0xc0140902,
+ 0xc0089869,
+ 0xc0300a02,
+ 0xb4810c8e,
+ 0xf9f8c000,
+ 0xfff5aa1d,
+ 0xa60d9000,
+ 0x0eb0f011,
+ 0x9182c001,
+ 0x0f7ec01e,
+ 0x0b02c008,
+ 0x0e8ec030,
+ 0x7540c040,
+ 0xc0509e74,
+ 0xb3540c96,
+ 0x12d84426,
+ 0x5a14c200,
+ 0xc000b481,
+ 0x0d0ac030,
+ 0xc000b4c2,
+ 0xc000b4c5,
+ 0x0c96c030,
+ 0xc000b4c1,
+ 0x0d82c0c0,
+ 0xc0080992,
+ 0xc0080d02,
+ 0xc0140902,
+ 0xb4c59835,
+ 0x7540c000,
+ 0x93c4fffe,
+ 0x9a6ffff4,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0xc000b463,
+ 0xf8129c22,
+ 0x9c22a062,
+ 0x0d80c200,
+ 0x9e595d89,
+ 0xc4000982,
+ 0xb4633d80,
+ 0xb203c000,
+ 0x00074620,
+ 0xc1279c22,
+ 0x9c229c8f,
+ 0xb971080a,
+ 0xc01756f1,
+ 0xc0719c81,
+ 0xc0179c80,
+ 0xb9609c80,
+ 0x9c224000,
+ 0x9280ffff,
+ 0x01c69e5c,
+ 0x5889d1a4,
+ 0xc4000882,
+ 0xb4213c80,
+ 0xb104c000,
+ 0x22444220,
+ 0x71069e53,
+ 0x9324ffff,
+ 0xa60d9c22,
+ 0x8420c004,
+ 0x0ca2c829,
+ 0x0cf0c394,
+ 0xac3dc030,
+ 0x8d00e133,
+ 0xa45dc038,
+ 0xac3dc030,
+ 0xa45dc038,
+ 0xac3dc010,
+ 0xa45dc018,
+ 0xac25c010,
+ 0xa445c018,
+ 0x570cb7a0,
+ 0x85029ea9,
+ 0x651ab540,
+ 0x4b98b541,
+ 0x468cb740,
+ 0xc00a0dc2,
+ 0x09c20d42,
+ 0x9979ffd4,
+ 0x0a58d251,
+ 0xaa01da08,
+ 0x9ead7502,
+ 0x9084c000,
+ 0x448cb580,
+ 0xaa2df290,
+ 0x75002a08,
+ 0x90a4c000,
+ 0xb5408506,
+ 0xb780449c,
+ 0xf2105e0c,
+ 0x8502a8a1,
+ 0xa8a6f210,
+ 0x509cb540,
+ 0x481ab540,
+ 0xa103f208,
+ 0xa085f208,
+ 0xa929f210,
+ 0xa08af208,
+ 0xa92ef210,
+ 0xa8b2f210,
+ 0xa10df208,
+ 0xa8b1f250,
+ 0xa112f208,
+ 0xa096f208,
+ 0xa09af208,
+ 0x0cf2c050,
+ 0xf24808c0,
+ 0xb421a085,
+ 0x0a0ac000,
+ 0x0c92c036,
+ 0xc000b481,
+ 0x1c8c0896,
+ 0xc000b421,
+ 0x8c00f031,
+ 0x8d80e131,
+ 0xb7c09ea3,
+ 0xb55f5c8c,
+ 0x0d027ffc,
+ 0x4078b960,
+ 0xa103f208,
+ 0xd1229dba,
+ 0x9e2d5d0d,
+ 0xa8e5f029,
+ 0x2caed012,
+ 0xd1265c88,
+ 0x9e4a5908,
+ 0xaa4de038,
+ 0x28bc0d04,
+ 0x324250a8,
+ 0xffffa241,
+ 0xf01091c1,
+ 0xc036aa61,
+ 0xb4810c8e,
+ 0xb73fc000,
+ 0x1c847fec,
+ 0xc000b421,
+ 0x996bc014,
+ 0xaa4dd208,
+ 0xc0007500,
+ 0xf2909262,
+ 0xf011aa2d,
+ 0xc0002ac8,
+ 0xc80091a4,
+ 0x75002a00,
+ 0x90c4c000,
+ 0xa9c6f208,
+ 0x9ae3fff4,
+ 0xa2cdd208,
+ 0xa8adf290,
+ 0x2a14d011,
+ 0xc0007500,
+ 0xc8099104,
+ 0xc51c0a42,
+ 0xb5800a30,
+ 0xb780530c,
+ 0x7500460c,
+ 0x9162c000,
+ 0x5a31c080,
+ 0xc03e2a04,
+ 0xb4810cea,
+ 0xc000c000,
+ 0xb7809280,
+ 0x7502448c,
+ 0x915cc000,
+ 0x2880c100,
+ 0x0a0e7440,
+ 0x1a46d001,
+ 0x9060c000,
+ 0xc03e0a02,
+ 0xb4810cea,
+ 0xb79fc000,
+ 0xb7bf7a6e,
+ 0xb7df7aee,
+ 0xc0067b6e,
+ 0x9c228c00,
+ 0x538cb780,
+ 0x0892c0c8,
+ 0x40f8b960,
+ 0x0948d011,
+ 0xaa45f029,
+ 0x5889d0a4,
+ 0xc000b481,
+ 0xffff0890,
+ 0x9c229321,
+ 0xb720a605,
+ 0xb780460c,
+ 0x74407d0c,
+ 0xb5800a04,
+ 0xc0007d0c,
+ 0xb7839364,
+ 0x75007108,
+ 0x92c2c000,
+ 0x448cb720,
+ 0x510cb780,
+ 0x3a407442,
+ 0x510cb580,
+ 0x919cc000,
+ 0x5c8cb780,
+ 0xa889d208,
+ 0xc0007440,
+ 0x850690a4,
+ 0x7818b543,
+ 0x0a42c801,
+ 0x0a00c010,
+ 0x0ceac032,
+ 0xc000b481,
+ 0x08c2c008,
+ 0x1ce0c002,
+ 0xc000b421,
+ 0x0a42c008,
+ 0x0d0ec030,
+ 0xc000b482,
+ 0x0c82c450,
+ 0x1a40c008,
+ 0xc000b481,
+ 0x4220b101,
+ 0x38c0c002,
+ 0x0c82c050,
+ 0xc000b421,
+ 0x0d82c0c0,
+ 0xc0080992,
+ 0xc0080d02,
+ 0xfff40902,
+ 0xc4509aa7,
+ 0x0a020c86,
+ 0xc000b481,
+ 0x4260b102,
+ 0x0a00c008,
+ 0x0d0ec030,
+ 0xc000b482,
+ 0xc0080c84,
+ 0xb4811a00,
+ 0xb101c000,
+ 0xc0804220,
+ 0xc8015a35,
+ 0x09400902,
+ 0x28fcc00e,
+ 0x5910d0a8,
+ 0x29ced071,
+ 0x0c8ac030,
+ 0xb4419dc8,
+ 0x0a42c000,
+ 0xb4810c84,
+ 0x7680c000,
+ 0x9182c000,
+ 0x5e0cb720,
+ 0x44bdb740,
+ 0x8a27f210,
+ 0x8021f310,
+ 0x44adb580,
+ 0x0c86c450,
+ 0xb4810a02,
+ 0xb102c000,
+ 0x0cec4260,
+ 0xc000b481,
+ 0x4260b102,
+ 0x8926c201,
+ 0xc03408ea,
+ 0xb4210c9e,
+ 0xb780c000,
+ 0xf248570c,
+ 0x8d40a891,
+ 0x88a3f210,
+ 0x0d060d82,
+ 0x5a0cc280,
+ 0x508cb580,
+ 0xffd4018b,
+ 0xc0809959,
+ 0xb4a10ca2,
+ 0xb780c000,
+ 0x0c88478c,
+ 0xc000b481,
+ 0x5894b7a0,
+ 0x0d82c002,
+ 0x9a22fff4,
+ 0xffff700a,
+ 0xb7809364,
+ 0xf2107d0c,
+ 0xf250a8ad,
+ 0x6243a8a2,
+ 0x71029e49,
+ 0x90b8c000,
+ 0xb5438506,
+ 0xb7807618,
+ 0x7500460c,
+ 0x9242c000,
+ 0xffd40d82,
+ 0xb7839a10,
+ 0x75007208,
+ 0x90e2c000,
+ 0xffd40d82,
+ 0xc000995a,
+ 0x0d8290a0,
+ 0x9a22ffd4,
+ 0xc0800a02,
+ 0xb4810ca6,
+ 0xc002c000,
+ 0xfff40d92,
+ 0x740099f3,
+ 0x9364ffff,
+ 0x09820dea,
+ 0xc1210d0a,
+ 0xffb40902,
+ 0xb7809ba8,
+ 0xf248570c,
+ 0xc0a1a992,
+ 0x0d040d02,
+ 0xffb409c2,
+ 0xc0c09b93,
+ 0x09920d82,
+ 0x09420d42,
+ 0x99f6fff4,
+ 0xc03e0a02,
+ 0xb4810cea,
+ 0xb79fc000,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa60d9c22,
+ 0x570cb720,
+ 0x49b5b720,
+ 0x2e10d091,
+ 0x9e8e7500,
+ 0x9122c003,
+ 0x2e14d011,
+ 0xb5438506,
+ 0x0e827118,
+ 0xb5a07500,
+ 0xb5a37d14,
+ 0xc0007610,
+ 0xb5439082,
+ 0xd1117198,
+ 0x75002e10,
+ 0x9082c000,
+ 0x7218b543,
+ 0x2e10d211,
+ 0xc0007500,
+ 0xb5439082,
+ 0xb7837298,
+ 0x75007208,
+ 0x5f0cb7c0,
+ 0x9244c001,
+ 0x0a42c809,
+ 0x0a30c536,
+ 0x08c2c809,
+ 0x08c0c53e,
+ 0x0cc2c809,
+ 0x0cb0c58a,
+ 0x0942c809,
+ 0x0950c5f2,
+ 0x0d42c809,
+ 0x0d00c52a,
+ 0x09c2c809,
+ 0x09c0c52e,
+ 0x0dc2c809,
+ 0x0da0c52a,
+ 0x0c42c809,
+ 0x0c50c5f4,
+ 0xa24df208,
+ 0xa0ddf208,
+ 0xa0c2f248,
+ 0xa145f248,
+ 0xa14af248,
+ 0xa1c5f208,
+ 0xa1c2f208,
+ 0xa04ef248,
+ 0xaa4df208,
+ 0x0ee0d151,
+ 0x9ea49eab,
+ 0xb7209c62,
+ 0xd208590c,
+ 0xb580aa21,
+ 0xb72041ab,
+ 0xb5a041b3,
+ 0xb5204392,
+ 0xb7c05014,
+ 0xf2d0588c,
+ 0xf208aa49,
+ 0x7048a8d9,
+ 0x9142c000,
+ 0x5f0cb780,
+ 0xa88df248,
+ 0x0de0d152,
+ 0x9c629e8c,
+ 0x7108b783,
+ 0xc0047500,
+ 0xb7209062,
+ 0x76404614,
+ 0x93c4c003,
+ 0x438ab720,
+ 0xc0007440,
+ 0xda0890e2,
+ 0x7048aa55,
+ 0x9004c001,
+ 0x5c94b7a0,
+ 0x7188b783,
+ 0x5f0cb7a0,
+ 0xa9d6da08,
+ 0x4392b520,
+ 0x7500850a,
+ 0xa0aad210,
+ 0xa8a9f208,
+ 0x8d24e001,
+ 0x1d849d4f,
+ 0x9c629e8c,
+ 0xaa31f208,
+ 0x0d8a030b,
+ 0x9c629ea4,
+ 0x9180c000,
+ 0x5f0cb780,
+ 0xa891f208,
+ 0x5c94b7a0,
+ 0x03090d86,
+ 0x9c629e8c,
+ 0x438ab780,
+ 0x7208b723,
+ 0x5914b720,
+ 0xb5800a04,
+ 0xd210438a,
+ 0x7440aa29,
+ 0x4849b580,
+ 0x9024c001,
+ 0x5a0cb7a0,
+ 0xa8c1f208,
+ 0x9e8c9eab,
+ 0xd2109c62,
+ 0x7500aa29,
+ 0x92a4c000,
+ 0xa9a1f208,
+ 0xa85df208,
+ 0x9e840d82,
+ 0xf2089c62,
+ 0xf248a021,
+ 0x9eaba845,
+ 0x9e840982,
+ 0xda089c62,
+ 0xb581aa21,
+ 0xb7807b8a,
+ 0x7502448c,
+ 0x90bcc000,
+ 0xffd40d86,
+ 0xd2109830,
+ 0x7500aa29,
+ 0x9122c000,
+ 0x558cb720,
+ 0x412db780,
+ 0xc0003a08,
+ 0xb72090e0,
+ 0xb780558c,
+ 0x2a75412d,
+ 0x412db580,
+ 0x7108b723,
+ 0x510cb780,
+ 0x3a047440,
+ 0x510cb580,
+ 0x91c4c000,
+ 0x0e60d151,
+ 0x590cb740,
+ 0xa882d208,
+ 0xa881d208,
+ 0x5014b520,
+ 0xa0cdd808,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0xc002a61d,
+ 0xc8298420,
+ 0xc39e0ca2,
+ 0x02070c80,
+ 0xac3dc010,
+ 0x8d00e0b3,
+ 0xa45dc018,
+ 0x0ca2c829,
+ 0x0cc0c39e,
+ 0xac3dc010,
+ 0x8c80e072,
+ 0xc0189d1a,
+ 0xc01ca45d,
+ 0x9e5f7d3e,
+ 0x9162c000,
+ 0x8c80f0b2,
+ 0xc0060faa,
+ 0xb53f08e2,
+ 0xc0007f6c,
+ 0x06839100,
+ 0xc0060fa6,
+ 0xb59f0a56,
+ 0x0b027f6c,
+ 0x0c82c450,
+ 0xb4810a02,
+ 0xb101c000,
+ 0xb53f4220,
+ 0xc0087fec,
+ 0xc0300a40,
+ 0xb4810c8a,
+ 0xc008c000,
+ 0x0c8408c2,
+ 0xc000b421,
+ 0x9e7b9ebb,
+ 0x990bc074,
+ 0x9e799e7c,
+ 0x714e6289,
+ 0x03890258,
+ 0x4422b357,
+ 0x028f71c2,
+ 0x9086c003,
+ 0x0f1ac050,
+ 0x7f6cb79f,
+ 0x7f6cb73f,
+ 0xf210710a,
+ 0x020ba8a2,
+ 0x4434b314,
+ 0x294ed3f1,
+ 0xc1009e4c,
+ 0x309858e0,
+ 0xc000b426,
+ 0xc00074b0,
+ 0xf21092d4,
+ 0xb486aa25,
+ 0xc004c000,
+ 0xc00074b0,
+ 0xf21090d4,
+ 0xb486aa29,
+ 0xc008c000,
+ 0xc00074b0,
+ 0xf21090d4,
+ 0xb486aa2d,
+ 0xd011c000,
+ 0xd3f10a62,
+ 0x75882b4e,
+ 0xd0010882,
+ 0xe0000892,
+ 0x0a0212d4,
+ 0x0a42d001,
+ 0x3098e000,
+ 0x9082c001,
+ 0x0c96c050,
+ 0xc000b4c1,
+ 0x7fecb73f,
+ 0xd0511c94,
+ 0xb4813a10,
+ 0xc0c0c000,
+ 0x09920d82,
+ 0x0902c008,
+ 0x0d02c008,
+ 0x9822fff4,
+ 0x0c86c450,
+ 0xb4810a02,
+ 0xb101c000,
+ 0xc0084220,
+ 0xc0300a00,
+ 0xb4810c8e,
+ 0x0b02c000,
+ 0x71489e7c,
+ 0x9048fffd,
+ 0xb79f000f,
+ 0xb7bf7bee,
+ 0xb7df7c6e,
+ 0xb7ff7cee,
+ 0xc0047d6e,
+ 0x9c228c20,
+ 0x4b0cb720,
+ 0xc0ff9e5c,
+ 0xc0ff2a40,
+ 0x710228c0,
+ 0xc0008502,
+ 0x85069062,
+ 0x4b9cb540,
+ 0x4b14b560,
+ 0xa6059c22,
+ 0xd0519e5d,
+ 0x75002a50,
+ 0x90e4c000,
+ 0x4b8cb780,
+ 0xc0007500,
+ 0xc0c09142,
+ 0xc0120d82,
+ 0x0d0209c2,
+ 0xffd40942,
+ 0xb7809bdf,
+ 0xc0344b0c,
+ 0xb4810cb6,
+ 0xc034c000,
+ 0xb4a20d32,
+ 0xb5a0c000,
+ 0xb79f4a8c,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa61d9c22,
+ 0xb7838420,
+ 0x75007108,
+ 0x9122c000,
+ 0x590cb780,
+ 0xa881d288,
+ 0xc0197440,
+ 0xb7c092a4,
+ 0x9eb1568c,
+ 0x468cb740,
+ 0x098e0dc2,
+ 0x0d42c002,
+ 0x9965ffb4,
+ 0xaa55f208,
+ 0x5614b7c0,
+ 0xa8c5f208,
+ 0xa8caf208,
+ 0x570cb7a0,
+ 0x478cb580,
+ 0xa0d5f210,
+ 0xaa59da08,
+ 0xa8ddda08,
+ 0xa0def210,
+ 0x08d0d252,
+ 0xa259f210,
+ 0xa0c1f250,
+ 0xa942da08,
+ 0x404bb740,
+ 0x0a50d131,
+ 0xa881da08,
+ 0xda889e53,
+ 0x5915a8d2,
+ 0x5b90d124,
+ 0xa947f248,
+ 0x7e7edffc,
+ 0xc08060b2,
+ 0xc2005a7f,
+ 0x00985a71,
+ 0x58945893,
+ 0x80a3e210,
+ 0xa0ddf250,
+ 0x91e2c000,
+ 0x5d40e100,
+ 0x9164c000,
+ 0xaa55da88,
+ 0xb5208502,
+ 0xb5404792,
+ 0xb580489a,
+ 0xf288468a,
+ 0xd132aa21,
+ 0xf2500950,
+ 0xf250a255,
+ 0xda08a259,
+ 0xd810a8c1,
+ 0xf248aa41,
+ 0xda48a93b,
+ 0x6218a8ba,
+ 0x8021f310,
+ 0xa93dda48,
+ 0xa0caf250,
+ 0xa249f290,
+ 0xaa29da48,
+ 0xa151f250,
+ 0xa923f208,
+ 0xa8aeda48,
+ 0xc2006218,
+ 0xf3105a10,
+ 0xf2108021,
+ 0xf208a241,
+ 0x9e4ca927,
+ 0xa928f20a,
+ 0x588c6098,
+ 0x8023f210,
+ 0x82a3e210,
+ 0xa249f210,
+ 0xa8aada48,
+ 0xa0cdf210,
+ 0xaa41da08,
+ 0xa8c1d810,
+ 0xa0c6f210,
+ 0xa937f248,
+ 0x62430a04,
+ 0x5e0cb740,
+ 0x8021f310,
+ 0xa245f290,
+ 0xa8c1da08,
+ 0xa953f008,
+ 0xa8c2da08,
+ 0xa954f00a,
+ 0xe21058a0,
+ 0x5c9c80a3,
+ 0x82a3e020,
+ 0xaa2dda48,
+ 0xa0adf208,
+ 0xa0b2f208,
+ 0xa0c5f250,
+ 0xa0cef250,
+ 0xa251f210,
+ 0xa941d810,
+ 0x1880c004,
+ 0x4f0cb520,
+ 0x0a54d131,
+ 0xa881da08,
+ 0x1c80c002,
+ 0x4f94b520,
+ 0x59515940,
+ 0xa155f290,
+ 0x58d158c0,
+ 0xa0d9f290,
+ 0x0cf2c42e,
+ 0xb4810a02,
+ 0xb101c000,
+ 0x28844220,
+ 0xd1317440,
+ 0xc0000bd0,
+ 0xda089102,
+ 0xc09caa61,
+ 0xc012753e,
+ 0xc0c092f2,
+ 0xc05008c6,
+ 0xb4210ce2,
+ 0xf208c000,
+ 0x2a10aa59,
+ 0xc0007500,
+ 0xb7a09362,
+ 0xd2085c8c,
+ 0x7500aa2d,
+ 0x9282c000,
+ 0x570cb720,
+ 0x49b5b7a0,
+ 0x2e80e800,
+ 0x9184c000,
+ 0xa9a6f208,
+ 0xa9c1d2c8,
+ 0x29845d94,
+ 0x99fcfff4,
+ 0xa2aed208,
+ 0x570cb760,
+ 0xa959f208,
+ 0x0a30d131,
+ 0xa881da08,
+ 0x28a0d052,
+ 0x58917640,
+ 0x4e8cb520,
+ 0x9222c000,
+ 0xc0600a02,
+ 0xb4810cae,
+ 0xda08c000,
+ 0x7440a8c1,
+ 0x9302c000,
+ 0xb5408502,
+ 0xc0004e9c,
+ 0xc2009260,
+ 0x74802900,
+ 0x9122c000,
+ 0xc0600a0a,
+ 0xb4810cae,
+ 0xc000c000,
+ 0x0a0690e0,
+ 0x0caec060,
+ 0xc000b481,
+ 0xaa59f208,
+ 0x75002a04,
+ 0xb540850a,
+ 0xc000491c,
+ 0x850490a2,
+ 0x491cb540,
+ 0x7108b783,
+ 0xc0007500,
+ 0xb7839322,
+ 0x75007208,
+ 0x9284c000,
+ 0x460cb780,
+ 0xc0007500,
+ 0xb78391e2,
+ 0x75007288,
+ 0x9144c000,
+ 0x5f0cb720,
+ 0x5a14b760,
+ 0x402db780,
+ 0x9c629ea4,
+ 0xaa59f208,
+ 0x75002a20,
+ 0x90e2c000,
+ 0xaa41da08,
+ 0xc0007500,
+ 0xb7809244,
+ 0xb720590c,
+ 0xda08530c,
+ 0x9e8ca98e,
+ 0xb7839c62,
+ 0x75007108,
+ 0x90a2c000,
+ 0xb5438506,
+ 0xf2087b18,
+ 0x2a10aa59,
+ 0xc0017500,
+ 0xc2f09182,
+ 0xc0380a7e,
+ 0xb4810cfa,
+ 0xf248c000,
+ 0xc050a8c1,
+ 0xb4210ce6,
+ 0xf208c000,
+ 0xb720aa59,
+ 0x851a490c,
+ 0x0c82c038,
+ 0x75002a04,
+ 0xb5203890,
+ 0xc184490c,
+ 0xe00108e6,
+ 0xb5408d28,
+ 0xb4214d1c,
+ 0xb780c000,
+ 0xc800628c,
+ 0xc0020886,
+ 0xb5800c80,
+ 0xb421520c,
+ 0xffd4c000,
+ 0xb7809b11,
+ 0xc03e490c,
+ 0xb4810c82,
+ 0xb720c000,
+ 0xc0504d0c,
+ 0xb4210c82,
+ 0xda08c000,
+ 0xf290a941,
+ 0xda08a8d5,
+ 0x6123a946,
+ 0xda089e53,
+ 0x6097aa41,
+ 0x5d94b720,
+ 0xb5418702,
+ 0x857f7c82,
+ 0x459ab540,
+ 0xb540851a,
+ 0x0d86449a,
+ 0xb5801a04,
+ 0xb5404d8c,
+ 0x8526405b,
+ 0x415bb540,
+ 0x460ab540,
+ 0x18a05891,
+ 0x40cbb520,
+ 0x7fe4b55f,
+ 0x9bb2c014,
+ 0x7fe4b75f,
+ 0xb5438506,
+ 0xb5437a18,
+ 0xb5447a80,
+ 0xb5444000,
+ 0xb5434080,
+ 0xda087b80,
+ 0xf290a8c6,
+ 0x9e49aa55,
+ 0x5694b720,
+ 0x7c00b543,
+ 0xb7206243,
+ 0x8502434d,
+ 0xa9e2da08,
+ 0xc10158c8,
+ 0x9e892880,
+ 0x4e1cb540,
+ 0x519cb540,
+ 0xc0ff5dc0,
+ 0xca012dc0,
+ 0xc2003db0,
+ 0xb5805a11,
+ 0x3596450a,
+ 0x99b0fff4,
+ 0x0d82c0c0,
+ 0x09c2c012,
+ 0x09420d02,
+ 0x99aaffd4,
+ 0x0a829e7b,
+ 0x85467146,
+ 0x9168c001,
+ 0xfff49dcf,
+ 0xc0c099b0,
+ 0xc0120d82,
+ 0x0d0209c2,
+ 0xffd40906,
+ 0xd0919999,
+ 0x71481e70,
+ 0xd00b0a02,
+ 0xda080a42,
+ 0xc200a9e2,
+ 0x9ea15a28,
+ 0xc0ff5dc0,
+ 0xc8012dc0,
+ 0x35963db0,
+ 0x9984fff4,
+ 0xd0519e7b,
+ 0xc2000a50,
+ 0xc2005a40,
+ 0x71465ac1,
+ 0xfffe8506,
+ 0xb7209326,
+ 0xb7805f0c,
+ 0x7500462d,
+ 0x857fcfce,
+ 0x7f9cb540,
+ 0x9102c000,
+ 0xa9def208,
+ 0x450ab760,
+ 0x9c629ea4,
+ 0xc0140d82,
+ 0xb78398e8,
+ 0x75007a88,
+ 0xb5438502,
+ 0xc0027a18,
+ 0xb7209324,
+ 0xb7a05f14,
+ 0x0b025a0c,
+ 0xb7830683,
+ 0x75007108,
+ 0x90c2c002,
+ 0x7208b783,
+ 0xc0027500,
+ 0xb7839022,
+ 0x75007b08,
+ 0x91c2c000,
+ 0x5f0cb760,
+ 0xa9a2f208,
+ 0x7b08b5c3,
+ 0xa869f048,
+ 0x9c629e84,
+ 0x430ab500,
+ 0x7c08b783,
+ 0xc0007500,
+ 0xf2109382,
+ 0x9eaba825,
+ 0x7c08b5c3,
+ 0x9c629e84,
+ 0xaa21f250,
+ 0x9c629ea4,
+ 0xa9a1f208,
+ 0xa83df210,
+ 0x9e840d86,
+ 0xf2509c62,
+ 0x9eabaa25,
+ 0xa021f208,
+ 0x9ea40986,
+ 0xb7839c62,
+ 0x75007c08,
+ 0x91e4c000,
+ 0xc0140d86,
+ 0xb7839898,
+ 0x75007c08,
+ 0x9342ffff,
+ 0x90a0c000,
+ 0xc0140d86,
+ 0xb783988e,
+ 0x75007a88,
+ 0x9222fffd,
+ 0x0d82c0c0,
+ 0x09c2c012,
+ 0x09060d02,
+ 0x9900ffd4,
+ 0x0a02c801,
+ 0x518cb580,
+ 0x0d82c0c0,
+ 0x09c2c012,
+ 0x09420d02,
+ 0x98f4ffd4,
+ 0x5194b760,
+ 0x98eefff4,
+ 0xfff40d86,
+ 0xc0c098fc,
+ 0xc0120d82,
+ 0x0d0209c2,
+ 0xffd40906,
+ 0x850298e5,
+ 0x0892c006,
+ 0x0c9ac430,
+ 0xb5400902,
+ 0xc006519c,
+ 0xb4418510,
+ 0xb104c000,
+ 0x2a404220,
+ 0x9d537500,
+ 0x4422b314,
+ 0xe0000089,
+ 0xffff1884,
+ 0xb7409284,
+ 0xc0064614,
+ 0xc4300892,
+ 0x09020c9a,
+ 0x8512c006,
+ 0xc000b441,
+ 0x4220b104,
+ 0x2a00c002,
+ 0x9d4f7500,
+ 0x4422b313,
+ 0xe0000087,
+ 0xffff1884,
+ 0x0a029264,
+ 0x0ceac03e,
+ 0x40e8b960,
+ 0xc000b481,
+ 0x93c1ffff,
+ 0xc0007680,
+ 0x0a029122,
+ 0x0ceac03e,
+ 0xc000b481,
+ 0x9180c000,
+ 0x448cb780,
+ 0x088a7504,
+ 0x0ceac03e,
+ 0x1894d00c,
+ 0xc000b421,
+ 0x0d82c0c0,
+ 0x0d0209e2,
+ 0xffd40942,
+ 0x0a029891,
+ 0x0cb6c034,
+ 0xc000b481,
+ 0x7deeb79f,
+ 0x7e6eb7bf,
+ 0x7eeeb7df,
+ 0x7f6eb7ff,
+ 0x8c20c002,
+ 0xa60d9c22,
+ 0x7efec01c,
+ 0xc0000a82,
+ 0xc0c09182,
+ 0xc0120d82,
+ 0x0d0209c2,
+ 0xffd40906,
+ 0xc0009873,
+ 0xc4349240,
+ 0x0a020cb2,
+ 0xc000b481,
+ 0x4220b101,
+ 0x74402884,
+ 0x90e2c000,
+ 0x7a08b783,
+ 0xc0097500,
+ 0xb78091a2,
+ 0x75024e0c,
+ 0x90c4c000,
+ 0xc0140d82,
+ 0x3ac09a29,
+ 0x5694b740,
+ 0x560cb740,
+ 0xa8c5d810,
+ 0xaa55f088,
+ 0x4592b720,
+ 0x9e496243,
+ 0x5a11c200,
+ 0xba090a04,
+ 0xba244002,
+ 0x70484002,
+ 0x06850305,
+ 0x9138c000,
+ 0x490cb780,
+ 0xb5802a51,
+ 0xc003490c,
+ 0xf21091c0,
+ 0x2a04aa39,
+ 0xc0027500,
+ 0xb78093a2,
+ 0x7440490c,
+ 0x3942d011,
+ 0x490cb540,
+ 0x929cc002,
+ 0x4792b760,
+ 0xba249e5c,
+ 0xc002400a,
+ 0xc00291a2,
+ 0xb760911c,
+ 0xb740650a,
+ 0x9e995e84,
+ 0xba099e2d,
+ 0xd0a24003,
+ 0x9e485e7f,
+ 0x5a6dc200,
+ 0xc2000208,
+ 0xd2265a17,
+ 0x0c065908,
+ 0x5a14c200,
+ 0x9e401208,
+ 0xa94ee038,
+ 0x4002ba24,
+ 0x9e545090,
+ 0xc0017902,
+ 0xb7819102,
+ 0x75004b88,
+ 0x9064c001,
+ 0x470ab780,
+ 0xba249e48,
+ 0x70084002,
+ 0x9378c000,
+ 0xc0007640,
+ 0xb78190e4,
+ 0x75024b08,
+ 0x92c2c000,
+ 0x1e32d011,
+ 0x478ab580,
+ 0x48fd9e54,
+ 0x470ab560,
+ 0x4b90b501,
+ 0xb5402959,
+ 0x20c2490c,
+ 0xc000a0c1,
+ 0x850290a0,
+ 0x4b98b541,
+ 0x458ab780,
+ 0x400aba24,
+ 0x90fcc000,
+ 0x650ab780,
+ 0xb5800a04,
+ 0xb720650a,
+ 0xc03e490c,
+ 0xb4210c82,
+ 0xb780c000,
+ 0x0a04458a,
+ 0x458ab580,
+ 0x9a96c014,
+ 0x7108b783,
+ 0xc0027500,
+ 0xb7839222,
+ 0x75007208,
+ 0x9182c002,
+ 0x518cb780,
+ 0x75002a40,
+ 0x90e4c000,
+ 0x4008b784,
+ 0xc002751a,
+ 0xb7809024,
+ 0xb721578c,
+ 0xda087c92,
+ 0x9e48a881,
+ 0xc0007002,
+ 0xb7809284,
+ 0x8502430a,
+ 0x7c9ab541,
+ 0x440ab580,
+ 0x4412b760,
+ 0x530cb780,
+ 0xb5438506,
+ 0xb5437b18,
+ 0x9ea47c18,
+ 0xf2109c62,
+ 0x2a10aa39,
+ 0xc0007500,
+ 0xb78393e2,
+ 0x75007c08,
+ 0x90e4c000,
+ 0x7c8ab781,
+ 0xc0007502,
+ 0xb78392a4,
+ 0x75007b08,
+ 0xd0010902,
+ 0xc4380922,
+ 0x0a020c82,
+ 0xc000b481,
+ 0x4220b101,
+ 0x309428f1,
+ 0x0c82c038,
+ 0xc000b421,
+ 0x983ec014,
+ 0x4e0cb780,
+ 0xa955f288,
+ 0x71040a04,
+ 0x4e0cb580,
+ 0x90a4c000,
+ 0xb5408502,
+ 0xda104e1c,
+ 0xb720a8a5,
+ 0x58914592,
+ 0xba0960a3,
+ 0x9e4c4003,
+ 0x08843a84,
+ 0x020b7102,
+ 0x2a3dcffe,
+ 0x4426b354,
+ 0xd0510289,
+ 0x744028d0,
+ 0x9142c000,
+ 0x0d82c0c0,
+ 0x09c2c012,
+ 0x09420d02,
+ 0x9b3effb4,
+ 0x518cb780,
+ 0xc0007500,
+ 0x9eab90a2,
+ 0x9b45ffd4,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0xa205f839,
+ 0x4008b724,
+ 0x5204b740,
+ 0x448ab780,
+ 0x5908d0a6,
+ 0xb7409e2d,
+ 0xe030570c,
+ 0xb760a94e,
+ 0xb744631c,
+ 0xb7444098,
+ 0x1a044000,
+ 0x448ab580,
+ 0xa8cdc030,
+ 0x5a40e200,
+ 0x0a20d251,
+ 0xa882da08,
+ 0x82a3e210,
+ 0x5194b540,
+ 0x5c905c95,
+ 0x4008b524,
+ 0x92c4c001,
+ 0x4088b784,
+ 0xd3f10a04,
+ 0x744428ce,
+ 0x4088b584,
+ 0x9034c001,
+ 0x7f94b760,
+ 0xb5438506,
+ 0x24a67a98,
+ 0xb5437640,
+ 0xb5207c18,
+ 0xc0005194,
+ 0xd1319202,
+ 0xb78008a0,
+ 0xc801402b,
+ 0x9e483c80,
+ 0x5a40c200,
+ 0x2a40c0ff,
+ 0xb5803208,
+ 0x0806518c,
+ 0xaa1df9f8,
+ 0xb7249c22,
+ 0xb7404088,
+ 0xd0a65d84,
+ 0x9e2d5904,
+ 0xaa4dc830,
+ 0x448ab580,
+ 0x09a0d132,
+ 0x458ab720,
+ 0xaa61d810,
+ 0x4002ba19,
+ 0x5a11c200,
+ 0x70c81a04,
+ 0x9104c000,
+ 0x7f8cb780,
+ 0x3a00c040,
+ 0x7f8cb580,
+ 0x4e8cb720,
+ 0x0a18d011,
+ 0xc00070c8,
+ 0xb7809104,
+ 0xc0107f8c,
+ 0xb5803a00,
+ 0xd0117f8c,
+ 0x70c80a1c,
+ 0x9104c000,
+ 0x7f8cb780,
+ 0x3a00c020,
+ 0x7f8cb580,
+ 0x560cb780,
+ 0xa916f288,
+ 0xa919f288,
+ 0xb7209e50,
+ 0xd011460a,
+ 0x62411a24,
+ 0x4002ba09,
+ 0x704800b2,
+ 0x9106c000,
+ 0x7f8cb780,
+ 0x2a7acfff,
+ 0x7f8cb580,
+ 0x1a22d011,
+ 0x62459e52,
+ 0xc0007048,
+ 0xb7809106,
+ 0xc7fe7f8c,
+ 0xb5802a7e,
+ 0xb7407f8c,
+ 0xd0a2451a,
+ 0xf3105e11,
+ 0x70c88821,
+ 0x9104c000,
+ 0x7f8cb780,
+ 0x2a4ecfff,
+ 0x7f8cb580,
+ 0x568cb740,
+ 0x7f8cb720,
+ 0xaa45d808,
+ 0x9e8a9e50,
+ 0x5a11c200,
+ 0x62091a04,
+ 0x5194b720,
+ 0xba240a04,
+ 0x70c84002,
+ 0xb5202494,
+ 0xc0005194,
+ 0xc8019118,
+ 0xb5203c80,
+ 0xc0005194,
+ 0xd81091c0,
+ 0xc801aa61,
+ 0x9e483c80,
+ 0x5a40c200,
+ 0x2a40c0ff,
+ 0xb5803208,
+ 0xf008518c,
+ 0xc040aa59,
+ 0x75002a00,
+ 0x9102c000,
+ 0x518cb780,
+ 0x3a00c101,
+ 0x518cb580,
+ 0x5194b760,
+ 0x9a34ffd4,
+ 0xf9f80802,
+ 0x9c22aa1d,
+ 0x5714b700,
+ 0x0e04d251,
+ 0x560cb760,
+ 0xa881da08,
+ 0x2dfcc00e,
+ 0x0cbac034,
+ 0xa961f008,
+ 0xc0805895,
+ 0x9e825810,
+ 0xc000b441,
+ 0x454ab780,
+ 0xa963f008,
+ 0x5a10c200,
+ 0x8021f310,
+ 0xa8e9f008,
+ 0xf0080c84,
+ 0xb421a261,
+ 0xb780c000,
+ 0xf00846ca,
+ 0xf310a96b,
+ 0xf0088021,
+ 0x0c84a8ed,
+ 0xa269f008,
+ 0xc000b421,
+ 0x46cab780,
+ 0xa96ff008,
+ 0x8021f310,
+ 0xa8f5f008,
+ 0xf0080c8c,
+ 0xb421a26d,
+ 0xf008c000,
+ 0x0c84a97d,
+ 0xc000b441,
+ 0x4d8cb780,
+ 0xd2240a08,
+ 0x72445890,
+ 0x931cc000,
+ 0x0e04d131,
+ 0xa903da08,
+ 0xe2109e4c,
+ 0x710288a1,
+ 0x91d6c000,
+ 0xaa75f008,
+ 0xa8fdf008,
+ 0x0a00c010,
+ 0xa275f008,
+ 0x0880c008,
+ 0xa0fdf008,
+ 0x4f0cb780,
+ 0x0cdac034,
+ 0xc000b481,
+ 0x4f8cb720,
+ 0xb4210c84,
+ 0xb780c000,
+ 0x0ce44f0c,
+ 0xb4810a40,
+ 0xb720c000,
+ 0x0c844f8c,
+ 0xb42108c0,
+ 0xb780c000,
+ 0xb7204f0c,
+ 0x1ce44f8c,
+ 0x0a00c010,
+ 0x4f0cb580,
+ 0xaa65f048,
+ 0x0880c008,
+ 0x4f8cb520,
+ 0xc000b481,
+ 0xa8edf048,
+ 0xb4210c84,
+ 0xf048c000,
+ 0xf048aa65,
+ 0x0c84a8ed,
+ 0x0a00c010,
+ 0xa265f048,
+ 0xaa75f048,
+ 0x0880c008,
+ 0xa0edf048,
+ 0xc000b481,
+ 0xa965f088,
+ 0xb4410c88,
+ 0xd131c000,
+ 0xb7800c80,
+ 0xf088402b,
+ 0xcffea967,
+ 0xf3102a40,
+ 0xf0888021,
+ 0x0c88a969,
+ 0xa265f088,
+ 0xc000b441,
+ 0x0c80d131,
+ 0x402bb780,
+ 0xa96bf088,
+ 0x2a40cffe,
+ 0x8021f310,
+ 0xa97df048,
+ 0xf0881c8c,
+ 0xb441a269,
+ 0xd131c000,
+ 0xb7800c80,
+ 0xf048402b,
+ 0x76c0a97f,
+ 0x5a11c200,
+ 0x5a14c200,
+ 0x8021f310,
+ 0xa27df048,
+ 0x9182c001,
+ 0x454ab720,
+ 0xb4211ca8,
+ 0xb780c000,
+ 0x0c8446ca,
+ 0x5a0dc200,
+ 0x58c0c200,
+ 0xb4813242,
+ 0xd131c000,
+ 0xd8080d04,
+ 0x0c8caa41,
+ 0x588cc200,
+ 0x28fccffe,
+ 0x5a50c200,
+ 0xb4213098,
+ 0xd251c000,
+ 0xd8080d04,
+ 0x0ca0aa41,
+ 0x5a11c200,
+ 0x2a3c1a10,
+ 0x3a00c004,
+ 0xc000b481,
+ 0x4d8cb780,
+ 0xb5800a04,
+ 0x9c224d8c,
+ 0xc43ea68d,
+ 0x0a020c92,
+ 0xc000b481,
+ 0x4220b103,
+ 0x5c0cb780,
+ 0xa885da08,
+ 0xa909da08,
+ 0xa189da08,
+ 0xa081da08,
+ 0xa105da08,
+ 0x0a020cd0,
+ 0xc000b481,
+ 0x4220b103,
+ 0x5b8cb720,
+ 0x518cb780,
+ 0x5c0cb7a0,
+ 0x40b3b720,
+ 0x412bb740,
+ 0x412bb560,
+ 0x75002a40,
+ 0xb5200303,
+ 0xb5404033,
+ 0xc00040ab,
+ 0xb78490e2,
+ 0x750a4008,
+ 0x90f2c000,
+ 0x4008b784,
+ 0xc00d751a,
+ 0xb7819204,
+ 0x0a047c8a,
+ 0x7c8ab581,
+ 0x0ca6c450,
+ 0xb4810a02,
+ 0xb103c000,
+ 0x00874220,
+ 0x2880c031,
+ 0xc00f0207,
+ 0xd0a42a7c,
+ 0xd22859e1,
+ 0x000759c1,
+ 0x287ccffe,
+ 0x0a020c88,
+ 0xc000b481,
+ 0x4220b103,
+ 0x5bc1c180,
+ 0xcffe9e9a,
+ 0x0cbc2d7c,
+ 0xc000b481,
+ 0x4220b103,
+ 0xb7400087,
+ 0xb781568c,
+ 0xc0fc7b8a,
+ 0xd0f22880,
+ 0xd0a4283e,
+ 0x9e415b19,
+ 0xa8d2d888,
+ 0xb5019e95,
+ 0xdffc7b92,
+ 0x12187e7e,
+ 0x4002ba1c,
+ 0x91c2c002,
+ 0xc00076c2,
+ 0xb7809384,
+ 0xb740480a,
+ 0xba245e84,
+ 0xc2004002,
+ 0x58ed58ff,
+ 0x589700c2,
+ 0x5908d0a6,
+ 0x58949e2d,
+ 0x9e591242,
+ 0xa8cee038,
+ 0x4a7d5230,
+ 0x249e9ea7,
+ 0xc001a0c2,
+ 0xb7809180,
+ 0xda08468a,
+ 0xba24a8a1,
+ 0x70484002,
+ 0x907cc001,
+ 0x488ab780,
+ 0x4812b720,
+ 0x5e84b740,
+ 0xb5800a04,
+ 0xba09488a,
+ 0xd0a24003,
+ 0x9e495e7f,
+ 0xc2009e2d,
+ 0x02185a6d,
+ 0x5a17c200,
+ 0x5908d226,
+ 0x5a14c200,
+ 0xe0389ea7,
+ 0x149ea94d,
+ 0x08869e4c,
+ 0x312250b0,
+ 0xb780a141,
+ 0x0a04480a,
+ 0x480ab580,
+ 0x7188b783,
+ 0xb7837500,
+ 0xc0007208,
+ 0xc01c90c4,
+ 0xc0027d3e,
+ 0xc01c9184,
+ 0xd0117d3e,
+ 0xd02103f0,
+ 0x76c20527,
+ 0xaa39f210,
+ 0xd0010882,
+ 0x2a040892,
+ 0xb7407902,
+ 0xc0005a0c,
+ 0xd80890e2,
+ 0x0a04aa49,
+ 0xa249d808,
+ 0xa94bf008,
+ 0xa94cf00a,
+ 0x8027f310,
+ 0x82a5e010,
+ 0xa249f008,
+ 0xa0cdf008,
+ 0x7688b783,
+ 0x08827500,
+ 0x0892d002,
+ 0x0a0276c2,
+ 0x0a42d002,
+ 0xc0007848,
+ 0xc07c90c2,
+ 0xda088542,
+ 0x76c2a123,
+ 0xa953f008,
+ 0x90c4c000,
+ 0xaa41da08,
+ 0x9080c000,
+ 0xaa21da08,
+ 0x80a1e310,
+ 0xaa4dd808,
+ 0xa0d1f008,
+ 0xd8080a04,
+ 0xc006a24d,
+ 0xb72091c0,
+ 0x9d2e5a0c,
+ 0xaa39f210,
+ 0x8136c301,
+ 0x8120c201,
+ 0x4525b740,
+ 0x75002a04,
+ 0x8027f010,
+ 0x8221f310,
+ 0xb5800103,
+ 0xc001452d,
+ 0x76c290a2,
+ 0x90c4c000,
+ 0xaa41da08,
+ 0x9080c000,
+ 0xaa21da08,
+ 0xa25dd808,
+ 0xc00176c6,
+ 0x76c09082,
+ 0x91a4c000,
+ 0xd80874c0,
+ 0xe002a953,
+ 0xf2108d2a,
+ 0xd808802d,
+ 0xc000a251,
+ 0x74c092c0,
+ 0xa947d848,
+ 0x8d26e002,
+ 0x9160c000,
+ 0xaa41da08,
+ 0xd84874c0,
+ 0xd808a947,
+ 0xe002a25d,
+ 0xf2108d2a,
+ 0xd848802d,
+ 0xb783a245,
+ 0x75007308,
+ 0x9302c000,
+ 0x440ab780,
+ 0x70489e41,
+ 0x9244c000,
+ 0xb5438502,
+ 0xc43a7318,
+ 0x0a020c82,
+ 0xc000b481,
+ 0x4220b103,
+ 0x29fecfef,
+ 0x0c82c03a,
+ 0xc000b461,
+ 0x440ab780,
+ 0x70489e41,
+ 0xd0020882,
+ 0x76c60892,
+ 0xd0010a02,
+ 0x78480a42,
+ 0x9242c000,
+ 0xb5438506,
+ 0xc43a7318,
+ 0x0a020c82,
+ 0xc000b481,
+ 0x4220b103,
+ 0x3980c011,
+ 0x0c82c03a,
+ 0xc000b461,
+ 0xc0017780,
+ 0x76c091a2,
+ 0x92e4c000,
+ 0xaa21da08,
+ 0xa947f008,
+ 0xa8d5d808,
+ 0x8021f310,
+ 0xa8dad808,
+ 0xa245f008,
+ 0x0c849e44,
+ 0xa0dad808,
+ 0xd80800c2,
+ 0xc000a0d5,
+ 0xda0892a0,
+ 0xf008aa41,
+ 0xd848a95b,
+ 0xf310a8c9,
+ 0xd8488021,
+ 0xf008a8ce,
+ 0x9e44a259,
+ 0xd8480c84,
+ 0x00c2a0ce,
+ 0xa0c9d848,
+ 0xaa5dd808,
+ 0xa95ff008,
+ 0xa940f04a,
+ 0xa9c7f048,
+ 0x8021f310,
+ 0xa94ff048,
+ 0xa25df008,
+ 0x8221f210,
+ 0xa8c2d848,
+ 0xa241f048,
+ 0x8037f010,
+ 0x80a9e210,
+ 0xd8480c84,
+ 0xf048a0c2,
+ 0xf048a245,
+ 0xb7bfa0cd,
+ 0xb7df7eee,
+ 0xb7ff7f6e,
+ 0x8c607fee,
+ 0xb7809c22,
+ 0xd0f1590c,
+ 0xb72008c0,
+ 0x76424031,
+ 0xc0009ea2,
+ 0xc43c9382,
+ 0x0a020cca,
+ 0xc000b481,
+ 0x4220b101,
+ 0x1914d011,
+ 0x2e3ed3f1,
+ 0xba090888,
+ 0xba124002,
+ 0xc4104002,
+ 0xc00e7048,
+ 0xc81228fc,
+ 0xd3f17044,
+ 0xc00028ae,
+ 0xd3f19080,
+ 0xd0f12cbe,
+ 0x85020e20,
+ 0x0cfec036,
+ 0xa103d208,
+ 0xc000b421,
+ 0xc0029c22,
+ 0xd01172c0,
+ 0x9c221c0a,
+ 0x9c220802,
+ 0x590cb780,
+ 0xda088502,
+ 0xf010a88d,
+ 0xf010a16b,
+ 0xf010a16f,
+ 0xd810a173,
+ 0xd810a16f,
+ 0xf010a16b,
+ 0x9c22a0e1,
+ 0x5a94b720,
+ 0xa8e9d810,
+ 0x414bb520,
+ 0xaa71f010,
+ 0x5b0cb740,
+ 0x5a0fc200,
+ 0xa245f048,
+ 0xa8edf010,
+ 0x41cdb520,
+ 0xaa69f010,
+ 0x414db580,
+ 0xa96ff010,
+ 0xa869f010,
+ 0x8021e210,
+ 0xa041f008,
+ 0xc0309c22,
+ 0xb740ac7d,
+ 0xc038589c,
+ 0xc030a45d,
+ 0xc038ac7d,
+ 0xc030a45d,
+ 0xc038ac7d,
+ 0xb720a45d,
+ 0xb7805814,
+ 0x8706590c,
+ 0x5c8cb720,
+ 0x8576c002,
+ 0xa108d28a,
+ 0x485bb540,
+ 0xb5408502,
+ 0xb5404039,
+ 0x9c2240a1,
+ 0xb780a60d,
+ 0xf208590c,
+ 0x9ea5a881,
+ 0x00077444,
+ 0xc0000301,
+ 0xb7809104,
+ 0xdac8588c,
+ 0xc008a805,
+ 0x74429300,
+ 0x92a4c008,
+ 0xaa29da10,
+ 0xc0007500,
+ 0xd2909344,
+ 0x7500aa2d,
+ 0x92a4c000,
+ 0xaa25d290,
+ 0x588cb720,
+ 0x5b14b720,
+ 0xb7007500,
+ 0xb7404cab,
+ 0xe00244db,
+ 0xf2108526,
+ 0xb5808021,
+ 0xc00744cb,
+ 0xd2909300,
+ 0x7500aa2d,
+ 0x9382c001,
+ 0x580cb780,
+ 0x588cb740,
+ 0xa926d290,
+ 0x5b14b760,
+ 0xa891d2c8,
+ 0xa9c5d008,
+ 0xa8cad008,
+ 0xba097680,
+ 0x00024000,
+ 0xd8509e49,
+ 0xd011a967,
+ 0xb3040a02,
+ 0x00094422,
+ 0x7002c010,
+ 0x70c0cc12,
+ 0x04077680,
+ 0xe0020007,
+ 0xf2108526,
+ 0xd8508021,
+ 0xb780a265,
+ 0x75004648,
+ 0x91a2c000,
+ 0xa937da50,
+ 0xaa21da90,
+ 0x80a7e210,
+ 0xda900a04,
+ 0xda50a221,
+ 0x0007a0b5,
+ 0x9320c005,
+ 0xaa39d290,
+ 0xc0017500,
+ 0xb78091a2,
+ 0xd208588c,
+ 0xd208a881,
+ 0xd208a88a,
+ 0xd011a905,
+ 0x9e490812,
+ 0xaa25d290,
+ 0x7002c010,
+ 0x5b0cb720,
+ 0x7080c812,
+ 0x00057500,
+ 0x44bbb740,
+ 0x8526e002,
+ 0x8021f210,
+ 0xa937da50,
+ 0x44abb580,
+ 0xa8a1da90,
+ 0x8025f210,
+ 0x08840005,
+ 0xa0a1da90,
+ 0xa235da50,
+ 0x9120c004,
+ 0x580cb780,
+ 0xa8b1f250,
+ 0xa995f248,
+ 0x9ea67440,
+ 0xa18df248,
+ 0x9316c000,
+ 0x5b0cb720,
+ 0x4729b780,
+ 0x9e887500,
+ 0x0802d002,
+ 0x90a4c000,
+ 0xaa29d290,
+ 0xb7800008,
+ 0xd208588c,
+ 0x0289a889,
+ 0x7040c010,
+ 0x9280c001,
+ 0x588cb7a0,
+ 0x0a50d0b1,
+ 0xa882d208,
+ 0xa929f250,
+ 0xf2081196,
+ 0x5c85a8ad,
+ 0x588b9e4c,
+ 0x70c2cc12,
+ 0x51f35150,
+ 0x5914d126,
+ 0x5987d1a4,
+ 0x81afe220,
+ 0xf2500d02,
+ 0xc014a129,
+ 0xb7839a14,
+ 0x75007188,
+ 0x90e2c000,
+ 0xc0149e83,
+ 0xc0009a36,
+ 0x58199060,
+ 0xaa29d290,
+ 0x5b14b700,
+ 0xc01000e8,
+ 0x12687002,
+ 0x7100c012,
+ 0xa8a6d290,
+ 0xa8a9d208,
+ 0xd2087640,
+ 0xd011a925,
+ 0xb3040a02,
+ 0x00094422,
+ 0x7040c010,
+ 0x7080c812,
+ 0xb7407640,
+ 0x000544da,
+ 0x8526e002,
+ 0x80a1e210,
+ 0x4648b780,
+ 0xb5207500,
+ 0xc00044ca,
+ 0xda5091a2,
+ 0xda90a937,
+ 0xe210aa21,
+ 0x0a0480a5,
+ 0xa221da90,
+ 0xa0b5da50,
+ 0xaa35da08,
+ 0xa8a9da10,
+ 0x70481a08,
+ 0x4443b416,
+ 0xb79f0005,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0xa60d9c22,
+ 0x590cb720,
+ 0x402db780,
+ 0x9e8d7502,
+ 0x9264c00c,
+ 0x5a8cb780,
+ 0xa88ef208,
+ 0x7646c003,
+ 0xc0019ea2,
+ 0xb783911a,
+ 0x75007188,
+ 0x9102c000,
+ 0x5a0cb780,
+ 0x5f84b740,
+ 0x90c0c000,
+ 0x5a0cb780,
+ 0x6004b740,
+ 0xa881f208,
+ 0xd0a69e2d,
+ 0xc8305904,
+ 0x9e49aa4d,
+ 0xd2246219,
+ 0xb7805817,
+ 0xd0b1588c,
+ 0xb72008c0,
+ 0x9ea64031,
+ 0x580cb7c0,
+ 0xc0015407,
+ 0xb7c09300,
+ 0xb7c05894,
+ 0xd0a2580c,
+ 0xb7235e4b,
+ 0x75007188,
+ 0x5a14b720,
+ 0xc0000902,
+ 0xc200911c,
+ 0x75005a07,
+ 0xffff0904,
+ 0xc01c939a,
+ 0xc0007c7e,
+ 0xb7809102,
+ 0xb740404d,
+ 0xc0005f84,
+ 0xb78090c0,
+ 0xb740404d,
+ 0xd2266004,
+ 0x9e2d5904,
+ 0xa8cec830,
+ 0xa8cdf010,
+ 0x50ab9e4c,
+ 0xd0a46099,
+ 0xd0b15817,
+ 0xd2080e60,
+ 0x9e89a881,
+ 0x9e915407,
+ 0xda105404,
+ 0x7500aa29,
+ 0x90e2c000,
+ 0xaa2dd290,
+ 0xc0007500,
+ 0xf24892c2,
+ 0xf210a95b,
+ 0xf2488029,
+ 0xf250a259,
+ 0xf250a026,
+ 0xf248a02a,
+ 0xf010a046,
+ 0xf248aa49,
+ 0xf248a251,
+ 0xc007a255,
+ 0xd2909300,
+ 0x7500aa39,
+ 0x91c4c007,
+ 0x5b0cb720,
+ 0x46a9b780,
+ 0x9e897500,
+ 0x90c4c007,
+ 0xa95bf248,
+ 0x8029f210,
+ 0xa259f248,
+ 0xa8b5d290,
+ 0xc0007440,
+ 0xf01090c2,
+ 0xc000aa49,
+ 0xf2489240,
+ 0xf010a8d1,
+ 0xd0a6aa49,
+ 0xe2405908,
+ 0xd2268123,
+ 0xf3105904,
+ 0xf3108021,
+ 0xc2008221,
+ 0xf2485a0d,
+ 0xf248a251,
+ 0xf248aa51,
+ 0xd290a255,
+ 0x7440a8b5,
+ 0x9102c000,
+ 0xa026f250,
+ 0xa02af250,
+ 0x9360c005,
+ 0x4649b780,
+ 0xc0017500,
+ 0xda9090e2,
+ 0xf250a8a2,
+ 0xda90a925,
+ 0x1c84aa21,
+ 0xd0b19d1e,
+ 0xd3330ce0,
+ 0xb7606127,
+ 0xc2004031,
+ 0xc2005a40,
+ 0xc2015a45,
+ 0xf3108128,
+ 0x9ea18021,
+ 0xa9a1da90,
+ 0xf2500507,
+ 0x55afa225,
+ 0x98d7c014,
+ 0xa025f250,
+ 0xa029f250,
+ 0x9220c004,
+ 0xa92bda10,
+ 0xaa2df210,
+ 0xa8a6f250,
+ 0x88a1e310,
+ 0xda129e4a,
+ 0x8185a928,
+ 0xd0331884,
+ 0xf3106122,
+ 0xf31088b1,
+ 0xc0088a21,
+ 0xc2007540,
+ 0xc2015a07,
+ 0xf3108128,
+ 0xf2508021,
+ 0xc000a225,
+ 0x9eab91bc,
+ 0x9965fff4,
+ 0xaa25f250,
+ 0x52a3c200,
+ 0x5203c200,
+ 0xa225f250,
+ 0x6084b740,
+ 0xaa25f250,
+ 0x5904d2a6,
+ 0xc8309e2d,
+ 0x0189a8cd,
+ 0x59ffd224,
+ 0x01030c82,
+ 0xc0140503,
+ 0xb740994c,
+ 0x9d47611c,
+ 0xa926c210,
+ 0x05810181,
+ 0x9928c014,
+ 0xaa29f210,
+ 0xf2507502,
+ 0xc000a025,
+ 0xf25090c4,
+ 0xc002a029,
+ 0xda109040,
+ 0xda12a8aa,
+ 0xd0a2a954,
+ 0xf0115c84,
+ 0x70488e22,
+ 0x9176c000,
+ 0xaa45f248,
+ 0xc2000208,
+ 0xf2505a07,
+ 0xc001a229,
+ 0xf24891c0,
+ 0xd011a8c5,
+ 0x9e4a0e12,
+ 0x8a21f310,
+ 0x6104d033,
+ 0xc2016099,
+ 0xf2508122,
+ 0xda10a12b,
+ 0xd0b1aa55,
+ 0x1a040ce0,
+ 0x5a07c200,
+ 0x8021f310,
+ 0x4031b760,
+ 0xa229f250,
+ 0xa9d5da10,
+ 0x05079ea1,
+ 0x198455af,
+ 0x984bc014,
+ 0xa029f250,
+ 0x90e0c000,
+ 0xaa2df210,
+ 0xf2100a04,
+ 0xf248a22d,
+ 0xf210a8c9,
+ 0xf250aa29,
+ 0xd0a6a8aa,
+ 0x75025904,
+ 0x8122c201,
+ 0x802bf210,
+ 0xa0aef250,
+ 0x588bc200,
+ 0x90f4c000,
+ 0xd0109e4a,
+ 0xf2507044,
+ 0xb79fa229,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0xb7209c22,
+ 0xd810590c,
+ 0x0802aa61,
+ 0x41abb580,
+ 0xb7409c22,
+ 0xb720588c,
+ 0xf0125d14,
+ 0xf008a96c,
+ 0xb720aa4d,
+ 0xb740414d,
+ 0xf31040dd,
+ 0x62438a21,
+ 0x8021f310,
+ 0x40cdb580,
+ 0xa8edf010,
+ 0xa0cdf008,
+ 0xc0089c22,
+ 0x9e5874c0,
+ 0xc0009e52,
+ 0xd00290fc,
+ 0x1a1470c0,
+ 0x501351f3,
+ 0x7400c005,
+ 0x90fcc000,
+ 0x7000d002,
+ 0x50131a50,
+ 0xb7400128,
+ 0xb7806084,
+ 0xd1a6610c,
+ 0x9e2d5904,
+ 0xa8e5c040,
+ 0xaa4dc830,
+ 0x60097044,
+ 0x1214d01d,
+ 0x5013d01a,
+ 0x48bab340,
+ 0x50101222,
+ 0x9e5c9c22,
+ 0x08827526,
+ 0x4000d01e,
+ 0x48bcb340,
+ 0x7500c380,
+ 0x90bcc000,
+ 0x084ec002,
+ 0xc0049c22,
+ 0xc0007508,
+ 0x0a04915c,
+ 0x5a07c200,
+ 0x7508c004,
+ 0xffff0884,
+ 0xb740935a,
+ 0x9d4b619c,
+ 0xa805c220,
+ 0x691dd013,
+ 0x8021e210,
+ 0x9e989c22,
+ 0x09020802,
+ 0x9140c000,
+ 0x08029e98,
+ 0x4530d010,
+ 0x72c0cc14,
+ 0x7200c014,
+ 0xc18072c0,
+ 0xe0095d09,
+ 0xf0127204,
+ 0xc0005d04,
+ 0x72c49254,
+ 0x0804d004,
+ 0x15b4d024,
+ 0xd00472c0,
+ 0xd0240802,
+ 0xe00015b0,
+ 0x11813124,
+ 0x442ab330,
+ 0x72c09c22,
+ 0xffff0886,
+ 0xc40293a6,
+ 0xd06572c0,
+ 0xd0652c9e,
+ 0xc8023c9e,
+ 0xd0657200,
+ 0xd0652d2e,
+ 0xe0003d2e,
+ 0x9e531514,
+ 0x5408d01a,
+ 0x50acd01a,
+ 0xd01472c0,
+ 0xd0240002,
+ 0xe08015b0,
+ 0x5c055885,
+ 0x9304ffff,
+ 0x3124e000,
+ 0xb3301181,
+ 0x9c22442a,
+ 0x0d00e000,
+ 0x4422b330,
+ 0x4842b330,
+ 0x48a2b340,
+ 0x8502c002,
+ 0x882df210,
+ 0xc0007500,
+ 0x9e5990fa,
+ 0x12090c02,
+ 0x9c225031,
+ 0x50d09e5a,
+ 0x54699e52,
+ 0x30425269,
+ 0xa6859c22,
+ 0x9e810007,
+ 0xcffe9e90,
+ 0x9e412cfc,
+ 0x5c419e4c,
+ 0xcffe6491,
+ 0x62c328fc,
+ 0x9e445841,
+ 0x60096083,
+ 0x5a41c280,
+ 0x04909ea0,
+ 0x9d099e88,
+ 0x9e4c0490,
+ 0xc0017102,
+ 0xd0a28504,
+ 0xb3025e41,
+ 0xf3204468,
+ 0xd0a68121,
+ 0xcffe5d40,
+ 0xf3102afc,
+ 0x000d8123,
+ 0x9e54040d,
+ 0x6138d033,
+ 0x61459e5c,
+ 0x8125e210,
+ 0x04629e91,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c40,
+ 0x87c2c809,
+ 0x0c20b060,
+ 0x87c2c809,
+ 0x0a60b060,
+ 0x87c2c809,
+ 0x09c0b060,
+};
+
+unsigned long aui32MPG4VBR_SlaveMTXTOPAZFWData[] = {
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x809000b0,
+ 0x809002f8,
+ 0x828838d4,
+ 0x82883404,
+ 0x82883414,
+ 0x828834b4,
+ 0x82883320,
+ 0x82883376,
+ 0x828834e4,
+ 0x82883520,
+ 0x8288355c,
+ 0x82883594,
+ 0x82883598,
+ 0x828835c8,
+ 0x828835f8,
+ 0x82883620,
+ 0x828833dc,
+ 0x82883628,
+ 0x82883630,
+ 0x82883660,
+ 0x82883668,
+ 0x8288369c,
+ 0x82883b94,
+ 0x82883a26,
+ 0x82883a8e,
+ 0x82883ace,
+ 0x82883b50,
+ 0x82883a00,
+ 0x8288389c,
+ 0x8288399c,
+ 0x828839dc,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x8090074c,
+ 0x8090074c,
+ 0x80901efc,
+ 0x8090197c,
+ 0x80902f8c,
+ 0x809022e8,
+ 0x80901ca4,
+ 0x8090074c,
+ 0x8090074c,
+ 0x8090074c,
+ 0x8090074c,
+ 0x8090074c,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0xa0101100,
+ 0xa01001b0,
+ 0xa0101102,
+ 0xa01001b2,
+ 0xa0101104,
+ 0xa0100124,
+ 0xa0101106,
+ 0xa0100126,
+ 0xa0100134,
+ 0x00000000,
+ 0xa0101120,
+ 0xa0100136,
+ 0xa0101122,
+ 0xa0100144,
+ 0x80101160,
+ 0x80101162,
+ 0x80101180,
+ 0x80101182,
+ 0x80100140,
+ 0x80100142,
+ 0x80100150,
+ 0x80100152,
+ 0x80100154,
+ 0x80100146,
+ 0x803003a0,
+ 0x80100100,
+ 0x80105156,
+ 0xa0101164,
+ 0xa0100184,
+ 0x80101194,
+ 0x801001b4,
+ 0x80100146,
+ 0x00000000,
+ 0x00000003,
+ 0x00000002,
+ 0x00000002,
+ 0x00000001,
+ 0x00000001,
+ 0x00000001,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000005,
+ 0x000f9400,
+ 0x000f9401,
+ 0x000fd403,
+ 0x000fd40b,
+ 0x000fd41b,
+ 0x000ffc1b,
+ 0x000ffc1b,
+ 0x000ff81b,
+ 0x0000681b,
+ 0x0000681a,
+ 0x0000281a,
+ 0x00002810,
+ 0x00002800,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00010001,
+ 0x00004010,
+ 0x04010040,
+ 0x10040100,
+ 0x40100401,
+ 0x00008040,
+ 0x20100804,
+ 0x02010080,
+ 0x40201008,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x01010000,
+ 0x02020201,
+ 0x04030303,
+ 0x05040404,
+ 0x00140005,
+ 0x001a0016,
+ 0x0020001c,
+ 0x00280024,
+ 0x0034002c,
+ 0x00400038,
+ 0x00500048,
+ 0x00680058,
+ 0x00800070,
+ 0x00a00090,
+ 0x00d000b0,
+ 0x010000e0,
+ 0x01400120,
+ 0x01a00160,
+ 0x020001c0,
+ 0x02800240,
+ 0x034002c0,
+ 0x04000380,
+ 0x05000480,
+ 0x06800580,
+ 0x08000700,
+ 0x0a000900,
+ 0x0d000b00,
+ 0x10000e00,
+ 0x14001200,
+ 0x1a001600,
+ 0x00001c00,
+ 0x00800040,
+ 0x010000c0,
+ 0x01800140,
+ 0x020001c0,
+ 0x02800240,
+ 0x030002c0,
+ 0x03800340,
+ 0x040003c0,
+ 0x04800440,
+ 0x050004c0,
+ 0x05800540,
+ 0x060005c0,
+ 0x06800640,
+ 0x070006c0,
+ 0x07800740,
+ 0x000007c0,
+ 0x00200040,
+ 0x001002ab,
+ 0x015500cd,
+ 0x00080249,
+ 0x00cd01c7,
+ 0x0155005d,
+ 0x0249013b,
+ 0x00040111,
+ 0x01c700f1,
+ 0x00cd01af,
+ 0x005d00c3,
+ 0x01550059,
+ 0x013b0029,
+ 0x0249025f,
+ 0x01110235,
+ 0x00020021,
+ 0x00f1001f,
+ 0x01c70075,
+ 0x01af006f,
+ 0x00cd0069,
+ 0x00c30019,
+ 0x005d017d,
+ 0x0059005b,
+ 0x015502b9,
+ 0x002900a7,
+ 0x013b0283,
+ 0x025f0135,
+ 0x02490095,
+ 0x0235023f,
+ 0x0111008b,
+ 0x00210219,
+ 0x00010041,
+ 0x0b060600,
+ 0x0c0b0a06,
+ 0x0a0b0c06,
+ 0x0c0d0c0c,
+ 0x0d0d0c06,
+ 0x0b0b0c0c,
+ 0x0e0d0a0d,
+ 0x0a0d0e0e,
+ 0x0c0d0a06,
+ 0x0c0e0c0e,
+ 0x0e0d0a0d,
+ 0x0f0c0c0c,
+ 0x0f0b0d0e,
+ 0x0d0f0e0e,
+ 0x0d0f0f0f,
+ 0x0c0b0f0e,
+ 0x00000006,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x1234baac,
+ 0x00000000,
+};
+
+unsigned long aui32MPG4VBR_SlaveMTXTOPAZFWTextReloc[] = {
+ 0
+};
+
+unsigned char aui8MPG4VBR_SlaveMTXTOPAZFWTextRelocType[] = {
+ 0
+};
+
+unsigned long aui32MPG4VBR_SlaveMTXTOPAZFWTextRelocFullAddr[] = {
+ 0
+};
+
+unsigned long aui32MPG4VBR_SlaveMTXTOPAZFWDataReloc[] = {
+ 0
+};
diff --git a/fw/MPG4SlaveFirmwareVBR_bin.h b/fw/MPG4SlaveFirmwareVBR_bin.h
new file mode 100644
index 0000000..e895b4d
--- /dev/null
+++ b/fw/MPG4SlaveFirmwareVBR_bin.h
@@ -0,0 +1,44 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+
+// This file was automatically generated from ../release/MPG4SlaveFirmwareVBR.dnl using dnl2c.
+
+extern unsigned long aui32MPG4VBR_SlaveMTXTOPAZFWText[];
+extern unsigned long ui32MPG4VBR_SlaveMTXTOPAZFWTextSize;
+
+extern unsigned long aui32MPG4VBR_SlaveMTXTOPAZFWData[];
+extern unsigned long ui32MPG4VBR_SlaveMTXTOPAZFWDataSize;
+
+extern unsigned long aui32MPG4VBR_SlaveMTXTOPAZFWTextReloc[];
+extern unsigned char aui8MPG4VBR_SlaveMTXTOPAZFWTextRelocType[];
+extern unsigned long aui32MPG4VBR_SlaveMTXTOPAZFWTextRelocFullAddr[];
+
+extern unsigned long aui32MPG4VBR_SlaveMTXTOPAZFWDataReloc[];
+extern unsigned long ui32MPG4VBR_SlaveMTXTOPAZFWDataRelocSize;
+
+extern unsigned long ui32MPG4VBR_SlaveMTXTOPAZFWTextOrigin;
+extern unsigned long ui32MPG4VBR_SlaveMTXTOPAZFWDataOrigin;
+
diff --git a/fw/MPG4SlaveFirmware_bin.c b/fw/MPG4SlaveFirmware_bin.c
new file mode 100644
index 0000000..12158d4
--- /dev/null
+++ b/fw/MPG4SlaveFirmware_bin.c
@@ -0,0 +1,3199 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+
+// This file was automatically generated from ../release/MPG4SlaveFirmware.dnl using dnl2c.
+
+unsigned char *szMPG4SlaveFirmware_buildtag = "BUILD_TOPAZ_SC_1_00_00_0318";
+
+unsigned long ui32MPG4_SlaveMTXTOPAZFWTextSize = 2660;
+unsigned long ui32MPG4_SlaveMTXTOPAZFWDataSize = 480;
+unsigned long ui32MPG4_SlaveMTXTOPAZFWTextRelocSize = 0;
+unsigned long ui32MPG4_SlaveMTXTOPAZFWDataRelocSize = 0;
+
+unsigned long ui32MPG4_SlaveMTXTOPAZFWTextOrigin = 0x80900000;
+unsigned long ui32MPG4_SlaveMTXTOPAZFWDataOrigin = 0x828829c0;
+
+unsigned long aui32MPG4_SlaveMTXTOPAZFWText[] = {
+ 0x9040c001,
+ 0xc80993fe,
+ 0xc0000e42,
+ 0xc8290e00,
+ 0xc3148422,
+ 0xc8298400,
+ 0xc29c8622,
+ 0x9e838600,
+ 0xc8099e43,
+ 0xc5300d42,
+ 0xc8090d00,
+ 0xc5300942,
+ 0xc8090940,
+ 0xc00a0e42,
+ 0xc8090e40,
+ 0xc00e87c2,
+ 0x9c1887d0,
+ 0x0c020802,
+ 0x09820d82,
+ 0x09020d02,
+ 0x08820c82,
+ 0x9320fffe,
+ 0xa401c838,
+ 0x0dc2c809,
+ 0x0dc0c52e,
+ 0x0e42c809,
+ 0x0b46b080,
+ 0x7e74b77f,
+ 0xa48d0882,
+ 0xffff9ff3,
+ 0x9d1393e0,
+ 0xf8398081,
+ 0x0707a205,
+ 0x06850307,
+ 0x03839e97,
+ 0x0fa0060f,
+ 0x018d058d,
+ 0x9c62008f,
+ 0x9340ffff,
+ 0x0ea0060b,
+ 0xffff9c62,
+ 0x058d93a0,
+ 0xb700018d,
+ 0xb780548c,
+ 0x9c015414,
+ 0x0687a605,
+ 0x0ea0060b,
+ 0xffff9c62,
+ 0xf9f893a0,
+ 0xf9f8aa9d,
+ 0x9c22aa1d,
+ 0xa6059c22,
+ 0x0e860a82,
+ 0xc0340d82,
+ 0xc0149b32,
+ 0x0d8a9967,
+ 0x9b2dc034,
+ 0x6108b783,
+ 0xc0007500,
+ 0xc0149082,
+ 0xc0149abe,
+ 0x740299db,
+ 0xb3549e6c,
+ 0x02894424,
+ 0x995dc014,
+ 0xffff7540,
+ 0xb79f90e2,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0x87029c22,
+ 0xb5438502,
+ 0xb5435818,
+ 0xb5435898,
+ 0xb5435918,
+ 0xb5435c18,
+ 0xb5435c98,
+ 0xb5435d18,
+ 0xb5436118,
+ 0xb5436198,
+ 0xb5436218,
+ 0xb5406818,
+ 0xb5404804,
+ 0xb5404884,
+ 0xb5404904,
+ 0xb5404984,
+ 0xb5404a04,
+ 0xb5404c04,
+ 0xb5404c84,
+ 0xb5404d04,
+ 0xb5404202,
+ 0xb5404282,
+ 0xb5405004,
+ 0xb5407684,
+ 0xb5404e84,
+ 0x9c224702,
+ 0x8420a605,
+ 0x9ba6fff4,
+ 0xc0340d8a,
+ 0xfff49ada,
+ 0xc0349bc6,
+ 0xc4209ae5,
+ 0x0a020cd2,
+ 0xc000b481,
+ 0x4220b105,
+ 0xe0310d8a,
+ 0xc0148d80,
+ 0xc8299a01,
+ 0xc3120922,
+ 0xb73f0960,
+ 0xd0717f6c,
+ 0xb5802a5e,
+ 0xc01e450c,
+ 0x85022a80,
+ 0xa8c2f008,
+ 0xc2807102,
+ 0xb5a05a95,
+ 0xb341460c,
+ 0x76404434,
+ 0x459cb540,
+ 0x448cb520,
+ 0x90c2c000,
+ 0x0e12d011,
+ 0xa241f008,
+ 0x550cb780,
+ 0x08c2c807,
+ 0x0880c570,
+ 0x0caac032,
+ 0x538cb580,
+ 0xc000b421,
+ 0x0cf40a2a,
+ 0xc000b481,
+ 0x09021a28,
+ 0x08bac002,
+ 0x4078b960,
+ 0x0a00c200,
+ 0x588bd224,
+ 0xc000b441,
+ 0x0a11ce00,
+ 0x9301ffff,
+ 0x1884e000,
+ 0x9244ffff,
+ 0x0a42c807,
+ 0x0a00c576,
+ 0x0caac032,
+ 0xc000b481,
+ 0x08820a02,
+ 0x08840902,
+ 0x4078b960,
+ 0x0a00c200,
+ 0x588bd224,
+ 0xc000b441,
+ 0x0a11ce00,
+ 0x9301ffff,
+ 0x745ac004,
+ 0x923cffff,
+ 0xc0340a02,
+ 0xb4810c9e,
+ 0xfff4c000,
+ 0x08029b2c,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x9c228c60,
+ 0xc0409e54,
+ 0x9e590c82,
+ 0xc000b421,
+ 0x0d02c040,
+ 0xc000b482,
+ 0xc00e9c22,
+ 0xc00e2d7c,
+ 0x5d3029e0,
+ 0xc0409e54,
+ 0x31b80c82,
+ 0xc000b461,
+ 0x0d02c040,
+ 0xc000b442,
+ 0xa60d9c22,
+ 0x07038420,
+ 0xc2800687,
+ 0x1c845c8d,
+ 0x5ca0d0a2,
+ 0xd0110287,
+ 0xc2000a5e,
+ 0x1a045a0d,
+ 0x5a30c200,
+ 0x30985cd0,
+ 0x04059e4c,
+ 0x0c8ac032,
+ 0xc8013098,
+ 0xb4213880,
+ 0x9ea9c000,
+ 0x0a02c801,
+ 0x0a00c002,
+ 0xc0306553,
+ 0xb4810c8a,
+ 0xc002c000,
+ 0x0c840882,
+ 0xc000b421,
+ 0xd0229e93,
+ 0x9e535f09,
+ 0x1d045d0d,
+ 0x9bb4fff4,
+ 0x5e91c280,
+ 0xc2801e84,
+ 0x9e6c5e84,
+ 0xc2801a84,
+ 0xc1815a90,
+ 0x0d8a3a80,
+ 0x0d020982,
+ 0xfff4314a,
+ 0xc0c09bae,
+ 0x09920d82,
+ 0x0d02c002,
+ 0x0902c002,
+ 0x9a04c034,
+ 0xc0340a0a,
+ 0xb4810c9e,
+ 0x1b04c000,
+ 0x850275bf,
+ 0x9202c000,
+ 0xb55f9dcf,
+ 0xc0347f7c,
+ 0xf23199d7,
+ 0xb75fa045,
+ 0x1b047f7c,
+ 0x851075bf,
+ 0x9284ffff,
+ 0x0a42c002,
+ 0x0c8ec030,
+ 0xc000b481,
+ 0x7e6eb79f,
+ 0x7eeeb7bf,
+ 0x7f6eb7df,
+ 0x8c00c002,
+ 0x9c229c22,
+ 0x8502c200,
+ 0x9c89c037,
+ 0x9c80c171,
+ 0x9c80c817,
+ 0xf8399c22,
+ 0x0d9aa205,
+ 0x99bdc034,
+ 0xf9f80d8a,
+ 0xc02daa1d,
+ 0xa6059300,
+ 0x0a42c801,
+ 0x0a00c010,
+ 0x2ebed3f2,
+ 0x0caac032,
+ 0xc000b481,
+ 0x0cf408aa,
+ 0xc000b421,
+ 0x558cb780,
+ 0x0c92c080,
+ 0xa881f208,
+ 0xc000b421,
+ 0x558cb780,
+ 0xf2080c88,
+ 0xb421a889,
+ 0xb780c000,
+ 0x0c84558c,
+ 0xa88df208,
+ 0xc000b421,
+ 0x1c980902,
+ 0xc000b441,
+ 0x558cb780,
+ 0xf2080c90,
+ 0xb421a885,
+ 0xb7a0c000,
+ 0x0dd2558c,
+ 0x9976c034,
+ 0xaa25f208,
+ 0xffff7008,
+ 0x0daa9344,
+ 0x0d060982,
+ 0x0902c121,
+ 0x9b29fff4,
+ 0x4714b760,
+ 0x0d02c021,
+ 0x09c20d04,
+ 0x9b16fff4,
+ 0x4714b760,
+ 0x0d0609c2,
+ 0x9b10fff4,
+ 0x09820daa,
+ 0xc1010d02,
+ 0xfff40902,
+ 0x0d929b14,
+ 0x9952c034,
+ 0xaa25f208,
+ 0xffff7008,
+ 0x77409344,
+ 0x90a2c000,
+ 0xc0340d8e,
+ 0x0d8a9954,
+ 0x9951c034,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xc470a60d,
+ 0x0a020c8e,
+ 0xc000b481,
+ 0x4220b101,
+ 0x558cb780,
+ 0xa085f208,
+ 0x0a021c8c,
+ 0xc000b481,
+ 0x4220b105,
+ 0x2b5ed1f1,
+ 0x558cb780,
+ 0xcff09ead,
+ 0xc2802e80,
+ 0xf2085ea1,
+ 0xc280a281,
+ 0x2a845a9d,
+ 0x0a020c84,
+ 0xc000b481,
+ 0x4220b101,
+ 0x468cb520,
+ 0xb4810c84,
+ 0xb101c000,
+ 0xb5204220,
+ 0xc070470c,
+ 0xb4810c8e,
+ 0x0882c000,
+ 0xb4211c8c,
+ 0x0c90c000,
+ 0xc000b481,
+ 0xb4211c8c,
+ 0x0c84c000,
+ 0xc000b481,
+ 0x5e04b740,
+ 0x5908d326,
+ 0xe0309e2d,
+ 0x9ea4aa4d,
+ 0xb7809c62,
+ 0x7740558c,
+ 0x9ea98502,
+ 0xd0010d82,
+ 0xf2080db2,
+ 0x2596a10f,
+ 0x9b3ffff4,
+ 0xc0700a06,
+ 0xb4810c82,
+ 0x000dc000,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x7ebec01c,
+ 0x9244c000,
+ 0x5e08d1a2,
+ 0x0a00c090,
+ 0x5909d224,
+ 0xc4000882,
+ 0xb4223d00,
+ 0xb104c000,
+ 0x75004220,
+ 0x9364ffff,
+ 0x5c88c180,
+ 0x0c80c090,
+ 0xb4615c89,
+ 0x9c22c000,
+ 0x5c88c180,
+ 0x0c80c090,
+ 0xc4005c89,
+ 0x0a023c80,
+ 0xc000b481,
+ 0x4220b101,
+ 0xa0e1f008,
+ 0xc0905d88,
+ 0x5d890d80,
+ 0xc000b483,
+ 0x9e5b9c22,
+ 0x68b1d312,
+ 0xc1c00a02,
+ 0x5c8b0cc0,
+ 0x3c80c400,
+ 0xc000b481,
+ 0x4220b102,
+ 0x5894b760,
+ 0x6931d312,
+ 0x9e518502,
+ 0x4070b960,
+ 0x08e0c1c0,
+ 0xaa65f031,
+ 0x5889d0a4,
+ 0xc000b481,
+ 0x85100890,
+ 0x9301ffff,
+ 0x8560c1c0,
+ 0x80ade210,
+ 0x5a14b760,
+ 0x3904c001,
+ 0x8521ce3e,
+ 0x4048b960,
+ 0xaa65f031,
+ 0x5889d0a4,
+ 0xc000b481,
+ 0x85100890,
+ 0x9301ffff,
+ 0x812de220,
+ 0x580cb780,
+ 0x3908c001,
+ 0x0d60c1c0,
+ 0xdac85d09,
+ 0xb422a885,
+ 0xd312c000,
+ 0xc1c068b1,
+ 0x5c8b0cc0,
+ 0xc000b441,
+ 0x84209c22,
+ 0xc4700882,
+ 0x0a020c92,
+ 0xc000b481,
+ 0x4220b102,
+ 0x02050185,
+ 0x2a04c001,
+ 0xc0007500,
+ 0xb7409362,
+ 0x09025894,
+ 0x4070b960,
+ 0x08e0c1c0,
+ 0x5889d0a4,
+ 0x08a1ce3e,
+ 0x3c80c400,
+ 0xc000b441,
+ 0x4220b104,
+ 0xa245f031,
+ 0xffff0890,
+ 0x01079221,
+ 0x297acfff,
+ 0xc0010205,
+ 0x75002a08,
+ 0x91e2c001,
+ 0x5a14b740,
+ 0xb9600982,
+ 0xc1c04048,
+ 0xd0a408e0,
+ 0xce3e5889,
+ 0xc40008a1,
+ 0xb4613c80,
+ 0xb104c000,
+ 0xf0314220,
+ 0x0890a245,
+ 0x9221ffff,
+ 0x8d00e032,
+ 0x08e0c1c0,
+ 0x5889d0a4,
+ 0xc4000a02,
+ 0xb4813c80,
+ 0xb101c000,
+ 0xf0104220,
+ 0xb73fa0c1,
+ 0xb7807e72,
+ 0xdac8580c,
+ 0xcfffa086,
+ 0xc0702976,
+ 0xb4410c92,
+ 0x8c20c000,
+ 0xb7409c22,
+ 0xd312508c,
+ 0x0a026cb1,
+ 0x0cc0c1c0,
+ 0xc4005c8b,
+ 0xb4813c80,
+ 0xb101c000,
+ 0xd3124220,
+ 0xc1ca6cb1,
+ 0x5c8b0cf0,
+ 0xc000b441,
+ 0x6d82c00c,
+ 0x38c0c001,
+ 0x0dc0c1c0,
+ 0xb4235d8b,
+ 0x9c22c000,
+ 0x6cb1d312,
+ 0xc1c00a02,
+ 0x5c8b0cc0,
+ 0x3c80c400,
+ 0xc000b481,
+ 0x4220b103,
+ 0x5994b740,
+ 0x6d31d311,
+ 0x4058b960,
+ 0xc1c00085,
+ 0xf03108e0,
+ 0xd0a4aa45,
+ 0xb4815889,
+ 0x0890c000,
+ 0x9321ffff,
+ 0x3990c001,
+ 0x0940c1c0,
+ 0x588bd124,
+ 0xc000b461,
+ 0xf8399c22,
+ 0xf010a285,
+ 0x7500aa61,
+ 0x9164c000,
+ 0xa8c1d008,
+ 0x0a069e48,
+ 0x5200c200,
+ 0xd0083098,
+ 0xd011a0c1,
+ 0xd0100d38,
+ 0xf011a9f2,
+ 0xf0101a30,
+ 0x1984a943,
+ 0x93e2c000,
+ 0x8702cff1,
+ 0x8700cff0,
+ 0x087ec00f,
+ 0x087cc00e,
+ 0x0c1ac050,
+ 0xa8c5f029,
+ 0x2095d020,
+ 0x9e4d5ca1,
+ 0xc2002210,
+ 0x30d85a20,
+ 0x4006ba09,
+ 0xc000b420,
+ 0x1a30f011,
+ 0xffff1984,
+ 0xf21091e4,
+ 0xf010802f,
+ 0xf9f8a241,
+ 0x9c22aa9d,
+ 0x9e5da60d,
+ 0xf1245940,
+ 0xd3f15841,
+ 0xb3502d2e,
+ 0xc0024422,
+ 0xf00893e2,
+ 0xe000aa61,
+ 0xb4252a1c,
+ 0xd8084422,
+ 0x8522aa61,
+ 0x88a9e210,
+ 0x12182a1c,
+ 0xc00e9ea3,
+ 0xba1b0a7e,
+ 0xc200400b,
+ 0x21285207,
+ 0x9276c001,
+ 0xc1009e59,
+ 0x11035a20,
+ 0x5209c200,
+ 0xc2009ea2,
+ 0x9e8d58a1,
+ 0x0cb0d031,
+ 0xa8a2d208,
+ 0x2a7cc00e,
+ 0x5207c200,
+ 0x2a7cc00e,
+ 0xd208349a,
+ 0xf008a0a2,
+ 0x9ea1a963,
+ 0x2a2ed3f1,
+ 0x8128c201,
+ 0x8821f310,
+ 0xf0088502,
+ 0xd228a261,
+ 0x9eaba127,
+ 0x2d01cff0,
+ 0x59415940,
+ 0xc00e3522,
+ 0xfff42d7c,
+ 0xc0009bb1,
+ 0xd20892e0,
+ 0x9e5eaa21,
+ 0x50d8000b,
+ 0xd0293242,
+ 0xf008a205,
+ 0xd013a8e1,
+ 0xf210291e,
+ 0x75108029,
+ 0x00989e44,
+ 0xa0e1f008,
+ 0x4426b350,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x0685a60d,
+ 0x9e9e9e69,
+ 0x71820b02,
+ 0xc0000a86,
+ 0x9ea99208,
+ 0x9e6916d2,
+ 0x5a84c280,
+ 0x1a52d011,
+ 0xd0117102,
+ 0xd3f108e2,
+ 0xffff2b1e,
+ 0xd0119286,
+ 0x75100a62,
+ 0xc000028d,
+ 0x9e7391d4,
+ 0x09220d02,
+ 0x9b70fff4,
+ 0xd0111aa0,
+ 0x75100a52,
+ 0xffff9e83,
+ 0x9e7392d2,
+ 0xd0110d06,
+ 0xc00e0952,
+ 0xfff4297c,
+ 0x75909b61,
+ 0xc0009e83,
+ 0xd03192f4,
+ 0xd3f11a60,
+ 0x9e6c2b4e,
+ 0xc2009e73,
+ 0xd3f25299,
+ 0x0922295e,
+ 0x9b50fff4,
+ 0xc2009e83,
+ 0x9ea952b8,
+ 0x16d27590,
+ 0x91b2ffff,
+ 0xd3f29e73,
+ 0x010d2d5e,
+ 0x9b42fff4,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x0ca0f011,
+ 0xd09a9e99,
+ 0xd00d5a04,
+ 0xc0001a42,
+ 0x1203909a,
+ 0x9e4b1242,
+ 0xfffc9ea2,
+ 0xa60d9360,
+ 0x85028420,
+ 0xb55f9e55,
+ 0xb55f7f7c,
+ 0xf0107ffc,
+ 0xe011aa61,
+ 0x03078c8e,
+ 0x750a1a08,
+ 0x590cd226,
+ 0xe05a8540,
+ 0xc0038044,
+ 0xc00090a0,
+ 0xc0009180,
+ 0xc00092a0,
+ 0xc00193c0,
+ 0xc0019100,
+ 0xc0029200,
+ 0xe0119060,
+ 0x9e8b8d88,
+ 0x1954d072,
+ 0x500cb5a0,
+ 0x9bc8fff4,
+ 0x9200c002,
+ 0x5014b740,
+ 0xe0119ea9,
+ 0x9e8b8d88,
+ 0xfff41514,
+ 0xc0029bbd,
+ 0xe01190a0,
+ 0x9e8b8d88,
+ 0x295ed3f2,
+ 0xfff40916,
+ 0xb5a09aeb,
+ 0xc001500c,
+ 0xe0119320,
+ 0x9e8b8d88,
+ 0x295ed3f2,
+ 0xfff40916,
+ 0xc0019adf,
+ 0xd20891e0,
+ 0x9e8baa41,
+ 0x8c88f011,
+ 0xd0124a7d,
+ 0x0d062ace,
+ 0x018b0906,
+ 0x9ad0fff4,
+ 0x9e6a9e83,
+ 0x0d02018b,
+ 0x9acafff4,
+ 0x9340c000,
+ 0xaa41d208,
+ 0xf0119e8b,
+ 0x4a7d8c88,
+ 0x2aced012,
+ 0x09060d02,
+ 0xfff4018b,
+ 0x9e839abb,
+ 0x018b9e6a,
+ 0x0d7ec00e,
+ 0x9ab4fff4,
+ 0x9080c000,
+ 0x90e0c001,
+ 0x7e68b79f,
+ 0x0cfec00f,
+ 0x0cfcc00e,
+ 0xb59f9e4a,
+ 0xb73f7c68,
+ 0xcff17f6c,
+ 0xcff00a02,
+ 0xc0500a00,
+ 0x22180c9a,
+ 0x5a21c200,
+ 0x58a02094,
+ 0xba243242,
+ 0xb59f4006,
+ 0xb4817f6c,
+ 0xf208c000,
+ 0xb79fa943,
+ 0xf3107fec,
+ 0xf2088021,
+ 0xb79fa241,
+ 0xb7bf7e6e,
+ 0xb7df7eee,
+ 0xc0027f6e,
+ 0x9c228c00,
+ 0x8440a61d,
+ 0x9e9d8502,
+ 0xabe5f031,
+ 0xb55f0b02,
+ 0xb55f7878,
+ 0x718e7efc,
+ 0xc0019d3a,
+ 0xaa4191e8,
+ 0xc0007502,
+ 0xd0189392,
+ 0xe032aad1,
+ 0xe0518d08,
+ 0x9dcf8d00,
+ 0x85109eb1,
+ 0x7f7cb55f,
+ 0x0a9cc002,
+ 0x5a95c280,
+ 0xfff4018b,
+ 0xb75f9a1e,
+ 0xc2807f7c,
+ 0xc3015a88,
+ 0xc0008122,
+ 0xe03191a0,
+ 0x9dcf8d88,
+ 0x8510050b,
+ 0x7f7cb55f,
+ 0x9b23fff4,
+ 0x7f7cb75f,
+ 0x718e0b04,
+ 0x92a6fffe,
+ 0x7868b79f,
+ 0x0c9ec050,
+ 0xc000b481,
+ 0x0d16c050,
+ 0xc000b4e2,
+ 0x7eecb71f,
+ 0x7d6eb79f,
+ 0x7deeb7bf,
+ 0x7e6eb7df,
+ 0x7eeeb7ff,
+ 0x8c40c002,
+ 0xa6059c22,
+ 0x0c8ac450,
+ 0xb4810a02,
+ 0xb102c000,
+ 0xe00e4240,
+ 0xd1042d7c,
+ 0xc8015d10,
+ 0x0a400a02,
+ 0x0c8ac030,
+ 0xc000b481,
+ 0x0c8408c2,
+ 0xc000b421,
+ 0x5c8cb740,
+ 0xa947f048,
+ 0x802df210,
+ 0xa245f048,
+ 0x0c86c450,
+ 0xb4810a02,
+ 0xb101c000,
+ 0xc8014220,
+ 0xc0100a42,
+ 0xc0320a00,
+ 0xb4810caa,
+ 0x08aac000,
+ 0x0d1ec034,
+ 0xc000b422,
+ 0x0cf2c450,
+ 0xb4810a02,
+ 0xb101c000,
+ 0xd0534220,
+ 0xb7801910,
+ 0xf248570c,
+ 0xf210a891,
+ 0x0d8288a3,
+ 0x018b0d06,
+ 0x9884fff4,
+ 0x0ca2c080,
+ 0xc000b4a1,
+ 0x0d82c002,
+ 0x9954c014,
+ 0xffff700a,
+ 0x0daa9364,
+ 0x0d0a0982,
+ 0x0902c121,
+ 0x9b09ffd4,
+ 0x570cb780,
+ 0xa992f248,
+ 0x0d02c0a1,
+ 0x09c20d04,
+ 0x9af4ffd4,
+ 0x0d82c0c0,
+ 0x0d420992,
+ 0xc0140942,
+ 0xb79f9957,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa60d9c22,
+ 0x8400c010,
+ 0x570cb720,
+ 0x49adb780,
+ 0x75002a20,
+ 0x5894b7c0,
+ 0xc0000902,
+ 0xb7839182,
+ 0x75006108,
+ 0x90e2c000,
+ 0xaa41d290,
+ 0xc0057500,
+ 0xb7209164,
+ 0xd01149ad,
+ 0x75002a18,
+ 0x3924d002,
+ 0x9124c000,
+ 0x2a14d011,
+ 0xd0027500,
+ 0xd0013922,
+ 0xc0503926,
+ 0xb4410c82,
+ 0x9d87c000,
+ 0x468cb740,
+ 0x09c20dc2,
+ 0x0d02c010,
+ 0x0c81cff0,
+ 0x9acbffd4,
+ 0x6108b783,
+ 0x75009d1b,
+ 0x0b01cff0,
+ 0x9282c000,
+ 0xaa41d290,
+ 0xc0007500,
+ 0xb79f91e2,
+ 0xf211606c,
+ 0xc0108d00,
+ 0x75002a00,
+ 0x0a03cff0,
+ 0x8001f310,
+ 0x4422b346,
+ 0x4068b79e,
+ 0x08c2c801,
+ 0x0880c010,
+ 0x0ceac032,
+ 0x606cb59f,
+ 0xc000b421,
+ 0x6108b783,
+ 0xc0017500,
+ 0xb7839282,
+ 0x75006208,
+ 0x91e2c001,
+ 0x510cb720,
+ 0x2a12d011,
+ 0xc0017500,
+ 0xb7a09102,
+ 0xb7a05d94,
+ 0xf210598c,
+ 0x9eabaa21,
+ 0xb52028f9,
+ 0x9ea4510c,
+ 0xb7209c62,
+ 0xb7805b8c,
+ 0x75004129,
+ 0x92a4c000,
+ 0xa9a1f208,
+ 0xa83df210,
+ 0x9e840d82,
+ 0xf2509c62,
+ 0x9eaba8a5,
+ 0xa021f208,
+ 0x9e8c0982,
+ 0xda089c62,
+ 0xb581aa21,
+ 0xda10738a,
+ 0x9eb3a9cd,
+ 0x9aa6fff4,
+ 0x0a02c801,
+ 0x0a00c00a,
+ 0x0c8ac030,
+ 0xc000b481,
+ 0x08c2c008,
+ 0xb4210c84,
+ 0xc008c000,
+ 0x0c880a02,
+ 0xc000b481,
+ 0x0d82c0c0,
+ 0xc0080992,
+ 0xc0080d02,
+ 0xc0140902,
+ 0xc008989d,
+ 0xc0300a02,
+ 0xb4810c8e,
+ 0xb720c000,
+ 0x8506590c,
+ 0x4039b540,
+ 0x9ad1fff4,
+ 0x6eeeb79f,
+ 0x6f6eb7bf,
+ 0x6feeb7df,
+ 0x8c60c010,
+ 0xf8399c22,
+ 0xc450a205,
+ 0x0a020c82,
+ 0xc000b481,
+ 0x4220b101,
+ 0x0a40c008,
+ 0x0c8ec030,
+ 0xc000b481,
+ 0x38c0c002,
+ 0x0c82c050,
+ 0xc000b421,
+ 0x0d82c0c0,
+ 0xc0080992,
+ 0xc0080d02,
+ 0xc0140902,
+ 0xc0089869,
+ 0xc0300a02,
+ 0xb4810c8e,
+ 0xf9f8c000,
+ 0xfff5aa1d,
+ 0xa60d9000,
+ 0x0eb0f011,
+ 0x9182c001,
+ 0x0f7ec01e,
+ 0x0b02c008,
+ 0x0e8ec030,
+ 0x7540c040,
+ 0xc0509e74,
+ 0xb3540c96,
+ 0x12d84426,
+ 0x5a14c200,
+ 0xc000b481,
+ 0x0d0ac030,
+ 0xc000b4c2,
+ 0xc000b4c5,
+ 0x0c96c030,
+ 0xc000b4c1,
+ 0x0d82c0c0,
+ 0xc0080992,
+ 0xc0080d02,
+ 0xc0140902,
+ 0xb4c59835,
+ 0x7540c000,
+ 0x93c4fffe,
+ 0x9a6ffff4,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0xc000b463,
+ 0xf8129c22,
+ 0x9c22a062,
+ 0x0d80c200,
+ 0x9e595d89,
+ 0xc4000982,
+ 0xb4633d80,
+ 0xb203c000,
+ 0x00074620,
+ 0xc1279c22,
+ 0x9c229c8f,
+ 0xb971080a,
+ 0xc01756f1,
+ 0xc0719c81,
+ 0xc0179c80,
+ 0xb9609c80,
+ 0x9c224000,
+ 0x9280ffff,
+ 0x01c69e5c,
+ 0x5889d1a4,
+ 0xc4000882,
+ 0xb4213c80,
+ 0xb104c000,
+ 0x22444220,
+ 0x71069e53,
+ 0x9324ffff,
+ 0xa60d9c22,
+ 0x8420c004,
+ 0x0ca2c829,
+ 0x0cf0c304,
+ 0xac3dc030,
+ 0x8d00e133,
+ 0xa45dc038,
+ 0xac3dc030,
+ 0xa45dc038,
+ 0xac3dc010,
+ 0xa45dc018,
+ 0xac25c010,
+ 0xa445c018,
+ 0x570cb7a0,
+ 0x85029ea9,
+ 0x651ab540,
+ 0x4b98b541,
+ 0x468cb740,
+ 0xc00a0dc2,
+ 0x09c20d42,
+ 0x9979ffd4,
+ 0x0a58d251,
+ 0xaa01da08,
+ 0x9ead7502,
+ 0x9084c000,
+ 0x448cb580,
+ 0xaa2df290,
+ 0x75002a08,
+ 0x90a4c000,
+ 0xb5408506,
+ 0xb780449c,
+ 0xf2105c8c,
+ 0x8502a8a1,
+ 0xa8a6f210,
+ 0x509cb540,
+ 0x481ab540,
+ 0xa103f208,
+ 0xa085f208,
+ 0xa929f210,
+ 0xa08af208,
+ 0xa92ef210,
+ 0xa8b2f210,
+ 0xa10df208,
+ 0xa8b1f250,
+ 0xa112f208,
+ 0xa096f208,
+ 0xa09af208,
+ 0x0cf2c050,
+ 0xf24808c0,
+ 0xb421a085,
+ 0x0a0ac000,
+ 0x0c92c036,
+ 0xc000b481,
+ 0x1c8c0896,
+ 0xc000b421,
+ 0x8c00f031,
+ 0x8d80e131,
+ 0xb7c09ea3,
+ 0xb55f5b8c,
+ 0x0d027ffc,
+ 0x4078b960,
+ 0xa103f208,
+ 0xd1229dba,
+ 0x9e2d5d0d,
+ 0xa8e5f029,
+ 0x2caed012,
+ 0xd1265c88,
+ 0x9e4a5908,
+ 0xaa4de038,
+ 0x28bc0d04,
+ 0x324250a8,
+ 0xffffa241,
+ 0xf01091c1,
+ 0xc036aa61,
+ 0xb4810c8e,
+ 0xb73fc000,
+ 0x1c847fec,
+ 0xc000b421,
+ 0x996bc014,
+ 0xaa4dd208,
+ 0xc0007500,
+ 0xf2909262,
+ 0xf011aa2d,
+ 0xc0002ac8,
+ 0xc80091a4,
+ 0x75002a00,
+ 0x90c4c000,
+ 0xa9c6f208,
+ 0x9ae3fff4,
+ 0xa2cdd208,
+ 0xa8adf290,
+ 0x2a14d011,
+ 0xc0007500,
+ 0xc8099104,
+ 0xc50e0a42,
+ 0xb5800a60,
+ 0xb780530c,
+ 0x7500460c,
+ 0x9162c000,
+ 0x5a31c080,
+ 0xc03e2a04,
+ 0xb4810cea,
+ 0xc000c000,
+ 0xb7809280,
+ 0x7502448c,
+ 0x915cc000,
+ 0x2880c100,
+ 0x0a0e7440,
+ 0x1a46d001,
+ 0x9060c000,
+ 0xc03e0a02,
+ 0xb4810cea,
+ 0xb79fc000,
+ 0xb7bf7a6e,
+ 0xb7df7aee,
+ 0xc0067b6e,
+ 0x9c228c00,
+ 0x538cb780,
+ 0x0892c0c8,
+ 0x40f8b960,
+ 0x0948d011,
+ 0xaa45f029,
+ 0x5889d0a4,
+ 0xc000b481,
+ 0xffff0890,
+ 0x9c229321,
+ 0xb720a605,
+ 0xb780460c,
+ 0x7440790c,
+ 0xb5800a04,
+ 0xc000790c,
+ 0xb7839364,
+ 0x75006108,
+ 0x92c2c000,
+ 0x448cb720,
+ 0x510cb780,
+ 0x3a407442,
+ 0x510cb580,
+ 0x919cc000,
+ 0x5b8cb780,
+ 0xa889d208,
+ 0xc0007440,
+ 0x850690a4,
+ 0x6818b543,
+ 0x0a42c801,
+ 0x0a00c010,
+ 0x0ceac032,
+ 0xc000b481,
+ 0x08c2c008,
+ 0x1ce0c002,
+ 0xc000b421,
+ 0x0a42c008,
+ 0x0d0ec030,
+ 0xc000b482,
+ 0x0c82c450,
+ 0x1a40c008,
+ 0xc000b481,
+ 0x4220b101,
+ 0x38c0c002,
+ 0x0c82c050,
+ 0xc000b421,
+ 0x0d82c0c0,
+ 0xc0080992,
+ 0xc0080d02,
+ 0xfff40902,
+ 0xc4509aa7,
+ 0x0a020c86,
+ 0xc000b481,
+ 0x4260b102,
+ 0x0a00c008,
+ 0x0d0ec030,
+ 0xc000b482,
+ 0xc0080c84,
+ 0xb4811a00,
+ 0xb101c000,
+ 0xc0804220,
+ 0xc8015a35,
+ 0x09400902,
+ 0x28fcc00e,
+ 0x5910d0a8,
+ 0x29ced071,
+ 0x0c8ac030,
+ 0xb4419dc8,
+ 0x0a42c000,
+ 0xb4810c84,
+ 0x7680c000,
+ 0x9182c000,
+ 0x5c8cb720,
+ 0x44bdb740,
+ 0x8a27f210,
+ 0x8021f310,
+ 0x44adb580,
+ 0x0c86c450,
+ 0xb4810a02,
+ 0xb102c000,
+ 0x0cec4260,
+ 0xc000b481,
+ 0x4260b102,
+ 0x8926c201,
+ 0xc03408ea,
+ 0xb4210c9e,
+ 0xb780c000,
+ 0xf248570c,
+ 0x8d40a891,
+ 0x88a3f210,
+ 0x0d060d82,
+ 0x5a0cc280,
+ 0x508cb580,
+ 0xffd4018b,
+ 0xc0809959,
+ 0xb4a10ca2,
+ 0xb780c000,
+ 0x0c88478c,
+ 0xc000b481,
+ 0x5814b7a0,
+ 0x0d82c002,
+ 0x9a22fff4,
+ 0xffff700a,
+ 0xb7809364,
+ 0xf210790c,
+ 0xf250a8ad,
+ 0x6243a8a2,
+ 0x71029e49,
+ 0x90b8c000,
+ 0xb5438506,
+ 0xb7806618,
+ 0x7500460c,
+ 0x9242c000,
+ 0xffd40d82,
+ 0xb7839a10,
+ 0x75006208,
+ 0x90e2c000,
+ 0xffd40d82,
+ 0xc000995a,
+ 0x0d8290a0,
+ 0x9a22ffd4,
+ 0xc0800a02,
+ 0xb4810ca6,
+ 0xc002c000,
+ 0xfff40d92,
+ 0x740099f3,
+ 0x9364ffff,
+ 0x09820dea,
+ 0xc1210d0a,
+ 0xffb40902,
+ 0xb7809ba8,
+ 0xf248570c,
+ 0xc0a1a992,
+ 0x0d040d02,
+ 0xffb409c2,
+ 0xc0c09b93,
+ 0x09920d82,
+ 0x09420d42,
+ 0x99f6fff4,
+ 0xc03e0a02,
+ 0xb4810cea,
+ 0xb79fc000,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa60d9c22,
+ 0x570cb720,
+ 0x49b5b720,
+ 0x2e10d091,
+ 0x9e8e7500,
+ 0x9282c001,
+ 0x2e14d011,
+ 0xb5438506,
+ 0x0e826118,
+ 0xb5a07500,
+ 0xb5a37914,
+ 0xc0006610,
+ 0xb5439082,
+ 0xd1116198,
+ 0x75002e10,
+ 0x9082c000,
+ 0x6218b543,
+ 0x2e10d211,
+ 0xc0007500,
+ 0xb5439082,
+ 0xb7806298,
+ 0xd1515d8c,
+ 0xf2080ee0,
+ 0x9eaba88e,
+ 0x9c620603,
+ 0x588cb720,
+ 0xaa21d208,
+ 0x41abb580,
+ 0x41b3b720,
+ 0x4392b5a0,
+ 0x5014b520,
+ 0x580cb7c0,
+ 0xaa49f2d0,
+ 0xa8d9f208,
+ 0xc0007048,
+ 0xb7809142,
+ 0xf2485d8c,
+ 0xd152a88d,
+ 0x9e8c0de0,
+ 0xb7839c62,
+ 0x75006108,
+ 0x9062c004,
+ 0x4614b720,
+ 0xc0037640,
+ 0xb72093c4,
+ 0x7440438a,
+ 0x90e2c000,
+ 0xaa55da08,
+ 0xc0017048,
+ 0xb7a09004,
+ 0xb7835b94,
+ 0xb7a06188,
+ 0xda085d8c,
+ 0xb520a9d6,
+ 0x850a4392,
+ 0xd2107500,
+ 0xf208a0aa,
+ 0xe001a8a9,
+ 0x9d4f8d24,
+ 0x9e8c1d84,
+ 0xf2089c62,
+ 0x030baa31,
+ 0x9ea40d8a,
+ 0xc0009c62,
+ 0xb7809180,
+ 0xf2085d8c,
+ 0xb7a0a891,
+ 0x0d865b94,
+ 0x9e8c0309,
+ 0xb7809c62,
+ 0xb723438a,
+ 0xb7206208,
+ 0x0a045894,
+ 0x438ab580,
+ 0xaa29d210,
+ 0xb5807440,
+ 0xc0014849,
+ 0xb7a09024,
+ 0xf208598c,
+ 0x9eaba8c1,
+ 0x9c629e8c,
+ 0xaa29d210,
+ 0xc0007500,
+ 0xf20892a4,
+ 0xf208a9a1,
+ 0x0d82a85d,
+ 0x9c629e84,
+ 0xa021f208,
+ 0xa845f248,
+ 0x09829eab,
+ 0x9c629e84,
+ 0xaa21da08,
+ 0x738ab581,
+ 0x448cb780,
+ 0xc0007502,
+ 0x0d8690bc,
+ 0x9865ffd4,
+ 0xaa29d210,
+ 0xc0007500,
+ 0xb7209122,
+ 0xb780558c,
+ 0x3a08412d,
+ 0x90e0c000,
+ 0x558cb720,
+ 0x412db780,
+ 0xb5802a75,
+ 0xb723412d,
+ 0xb7806108,
+ 0x7440510c,
+ 0xb5803a04,
+ 0xc000510c,
+ 0xd15191c4,
+ 0xb7400e60,
+ 0xd208588c,
+ 0xd208a882,
+ 0xb520a881,
+ 0xd8085014,
+ 0xb79fa0cd,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0xa61d9c22,
+ 0x8420c002,
+ 0x0ca2c829,
+ 0x0c80c30e,
+ 0xc0100207,
+ 0xe0b3ac3d,
+ 0xc0188d00,
+ 0xc829a45d,
+ 0xc30e0ca2,
+ 0xc0100cc0,
+ 0xe072ac3d,
+ 0x9d1a8c80,
+ 0xa45dc018,
+ 0x7d3ec01c,
+ 0xc0009e5f,
+ 0xf0b29162,
+ 0x0faa8c80,
+ 0x08e2c006,
+ 0x7f6cb53f,
+ 0x9100c000,
+ 0x0fa60683,
+ 0x0a56c006,
+ 0x7f6cb59f,
+ 0xc4500b02,
+ 0x0a020c82,
+ 0xc000b481,
+ 0x4220b101,
+ 0x7fecb53f,
+ 0x0a40c008,
+ 0x0c8ac030,
+ 0xc000b481,
+ 0x08c2c008,
+ 0xb4210c84,
+ 0x9ebbc000,
+ 0xc0549e7b,
+ 0x9e7c9973,
+ 0x62899e79,
+ 0x0258714e,
+ 0xb3570389,
+ 0x71c24422,
+ 0xc003028f,
+ 0xc0509086,
+ 0xb79f0f1a,
+ 0xb73f7f6c,
+ 0x710a7f6c,
+ 0xa8a2f210,
+ 0xb314020b,
+ 0xd3f14434,
+ 0x9e4c294e,
+ 0x58e0c100,
+ 0xb4263098,
+ 0x74b0c000,
+ 0x92d4c000,
+ 0xaa25f210,
+ 0xc000b486,
+ 0x74b0c004,
+ 0x90d4c000,
+ 0xaa29f210,
+ 0xc000b486,
+ 0x74b0c008,
+ 0x90d4c000,
+ 0xaa2df210,
+ 0xc000b486,
+ 0x0a62d011,
+ 0x2b4ed3f1,
+ 0x08827588,
+ 0x0892d001,
+ 0x12d4e000,
+ 0xd0010a02,
+ 0xe0000a42,
+ 0xc0013098,
+ 0xc0509082,
+ 0xb4c10c96,
+ 0xb73fc000,
+ 0x1c947fec,
+ 0x3a10d051,
+ 0xc000b481,
+ 0x0d82c0c0,
+ 0xc0080992,
+ 0xc0080902,
+ 0xfff40d02,
+ 0xc4509857,
+ 0x0a020c86,
+ 0xc000b481,
+ 0x4220b101,
+ 0x0a00c008,
+ 0x0c8ec030,
+ 0xc000b481,
+ 0x9e7c0b02,
+ 0xfffd7148,
+ 0x000f9048,
+ 0x7beeb79f,
+ 0x7c6eb7bf,
+ 0x7ceeb7df,
+ 0x7d6eb7ff,
+ 0x8c20c004,
+ 0xb7209c22,
+ 0x9e5c4b0c,
+ 0x2a40c0ff,
+ 0x28c0c0ff,
+ 0x85027102,
+ 0x9062c000,
+ 0xb5408506,
+ 0xb5604b9c,
+ 0x9c224b14,
+ 0x9e5da605,
+ 0x2a50d051,
+ 0xc0007500,
+ 0xb78090e4,
+ 0x75004b8c,
+ 0x9142c000,
+ 0x0d82c0c0,
+ 0x09c2c012,
+ 0x09420d02,
+ 0x9814fff4,
+ 0x4b0cb780,
+ 0x0cb6c034,
+ 0xc000b481,
+ 0x0d32c034,
+ 0xc000b4a2,
+ 0x4a8cb5a0,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0x8420a61d,
+ 0x6108b783,
+ 0xc0007500,
+ 0xb7809122,
+ 0xd288588c,
+ 0x7440a881,
+ 0x92a4c019,
+ 0x568cb7c0,
+ 0xb7409eb1,
+ 0x0dc2468c,
+ 0xc002098e,
+ 0xffb40d42,
+ 0xf208999a,
+ 0xb7c0aa55,
+ 0xf2085614,
+ 0xf208a8c5,
+ 0xb7a0a8ca,
+ 0xb580570c,
+ 0xf210478c,
+ 0xda08a0d5,
+ 0xda08aa59,
+ 0xf210a8dd,
+ 0xd252a0de,
+ 0xf21008d0,
+ 0xf250a259,
+ 0xda08a0c1,
+ 0xb740a942,
+ 0xd131404b,
+ 0xda080a50,
+ 0x9e53a881,
+ 0xa8d2da88,
+ 0xd1245915,
+ 0xf2485b90,
+ 0xdffca947,
+ 0x60b27e7e,
+ 0x5a7fc080,
+ 0x5a71c200,
+ 0x58930098,
+ 0xe2105894,
+ 0xf25080a3,
+ 0xc000a0dd,
+ 0xe10091e2,
+ 0xc0005d40,
+ 0xda889164,
+ 0x8502aa55,
+ 0x4792b520,
+ 0x489ab540,
+ 0x468ab580,
+ 0xaa21f288,
+ 0x0950d132,
+ 0xa255f250,
+ 0xa259f250,
+ 0xa8c1da08,
+ 0xaa41d810,
+ 0xa93bf248,
+ 0xa8bada48,
+ 0xf3106218,
+ 0xda488021,
+ 0xf250a93d,
+ 0xf290a0ca,
+ 0xda48a249,
+ 0xf250aa29,
+ 0xf208a151,
+ 0xda48a923,
+ 0x6218a8ae,
+ 0x5a10c200,
+ 0x8021f310,
+ 0xa241f210,
+ 0xa927f208,
+ 0xf20a9e4c,
+ 0x6098a928,
+ 0xf210588c,
+ 0xe2108023,
+ 0xf21082a3,
+ 0xda48a249,
+ 0xf210a8aa,
+ 0xda08a0cd,
+ 0xd810aa41,
+ 0xf210a8c1,
+ 0xf248a0c6,
+ 0x0a04a937,
+ 0xb7406243,
+ 0xf3105c8c,
+ 0xf2908021,
+ 0xda08a245,
+ 0xf008a8c1,
+ 0xda08a953,
+ 0xf00aa8c2,
+ 0x58a0a954,
+ 0x80a3e210,
+ 0xe0205c9c,
+ 0xda4882a3,
+ 0xf208aa2d,
+ 0xf208a0ad,
+ 0xf250a0b2,
+ 0xf250a0c5,
+ 0xf210a0ce,
+ 0xd810a251,
+ 0xc004a941,
+ 0xb5201880,
+ 0xd1314f0c,
+ 0xda080a54,
+ 0xc002a881,
+ 0xb5201c80,
+ 0x59404f94,
+ 0xf2905951,
+ 0x58c0a155,
+ 0xf29058d1,
+ 0xc42ea0d9,
+ 0x0a020cf2,
+ 0xc000b481,
+ 0x4220b101,
+ 0x74402884,
+ 0x0bd0d131,
+ 0x9102c000,
+ 0xaa61da08,
+ 0x753ec09c,
+ 0x92f2c012,
+ 0x08c6c0c0,
+ 0x0ce2c050,
+ 0xc000b421,
+ 0xaa59f208,
+ 0x75002a10,
+ 0x9362c000,
+ 0x5b8cb7a0,
+ 0xaa2dd208,
+ 0xc0007500,
+ 0xb7209282,
+ 0xb7a0570c,
+ 0xe80049b5,
+ 0xc0002e80,
+ 0xf2089184,
+ 0xd2c8a9a6,
+ 0x5d94a9c1,
+ 0xfff42984,
+ 0xd20899fc,
+ 0xb760a2ae,
+ 0xf208570c,
+ 0xd131a959,
+ 0xda080a30,
+ 0xd052a881,
+ 0x764028a0,
+ 0xb5205891,
+ 0xc0004e8c,
+ 0x0a029222,
+ 0x0caec060,
+ 0xc000b481,
+ 0xa8c1da08,
+ 0xc0007440,
+ 0x85029302,
+ 0x4e9cb540,
+ 0x9260c000,
+ 0x2900c200,
+ 0xc0007480,
+ 0x0a0a9122,
+ 0x0caec060,
+ 0xc000b481,
+ 0x90e0c000,
+ 0xc0600a06,
+ 0xb4810cae,
+ 0xf208c000,
+ 0x2a04aa59,
+ 0x850a7500,
+ 0x491cb540,
+ 0x90a2c000,
+ 0xb5408504,
+ 0xb783491c,
+ 0x75006108,
+ 0x9322c000,
+ 0x6208b783,
+ 0xc0007500,
+ 0xb7809284,
+ 0x7500460c,
+ 0x91e2c000,
+ 0x6288b783,
+ 0xc0007500,
+ 0xb7209144,
+ 0xb7605d8c,
+ 0xb7805994,
+ 0x9ea4402d,
+ 0xf2089c62,
+ 0x2a20aa59,
+ 0xc0007500,
+ 0xda0890e2,
+ 0x7500aa41,
+ 0x9244c000,
+ 0x588cb780,
+ 0x530cb720,
+ 0xa98eda08,
+ 0x9c629e8c,
+ 0x6108b783,
+ 0xc0007500,
+ 0x850690a2,
+ 0x6b18b543,
+ 0xaa59f208,
+ 0x75002a10,
+ 0x9182c001,
+ 0x0a7ec2f0,
+ 0x0cfac038,
+ 0xc000b481,
+ 0xa8c1f248,
+ 0x0ce6c050,
+ 0xc000b421,
+ 0xaa59f208,
+ 0x490cb720,
+ 0xc038851a,
+ 0x2a040c82,
+ 0x38907500,
+ 0x490cb520,
+ 0x08e6c184,
+ 0x8d28e001,
+ 0x4d1cb540,
+ 0xc000b421,
+ 0x5e8cb780,
+ 0x0886c800,
+ 0x0c80c002,
+ 0x520cb580,
+ 0xc000b421,
+ 0x9b46ffd4,
+ 0x490cb780,
+ 0x0c82c03e,
+ 0xc000b481,
+ 0x4d0cb720,
+ 0x0c82c050,
+ 0xc000b421,
+ 0xa941da08,
+ 0xa8d5f290,
+ 0xa946da08,
+ 0x9e536123,
+ 0xaa41da08,
+ 0xb7206097,
+ 0x87025c14,
+ 0x7482b541,
+ 0xb540857f,
+ 0x851a459a,
+ 0x449ab540,
+ 0x1a040d86,
+ 0x4d8cb580,
+ 0x405bb540,
+ 0xb5408526,
+ 0xb540415b,
+ 0x5891460a,
+ 0xb52018a0,
+ 0xb55f40cb,
+ 0xc0147fe4,
+ 0xb75f9bb2,
+ 0x85067fe4,
+ 0x6a18b543,
+ 0x6a80b543,
+ 0x7000b543,
+ 0x7080b543,
+ 0x6b80b543,
+ 0xa8c6da08,
+ 0xaa55f290,
+ 0xb7209e49,
+ 0xb5435694,
+ 0x62436c00,
+ 0x434db720,
+ 0xda088502,
+ 0x58c8a9e2,
+ 0x2880c101,
+ 0xb5409e89,
+ 0xb5404e1c,
+ 0x5dc0519c,
+ 0x2dc0c0ff,
+ 0x3db0ca01,
+ 0x5a11c200,
+ 0x450ab580,
+ 0xfff43596,
+ 0xc0c099b0,
+ 0xc0120d82,
+ 0x0d0209c2,
+ 0xffd40942,
+ 0x9e7b99df,
+ 0x71460a82,
+ 0xc0018546,
+ 0x9dcf9168,
+ 0x99b0fff4,
+ 0x0d82c0c0,
+ 0x09c2c012,
+ 0x09060d02,
+ 0x99ceffd4,
+ 0x1e70d091,
+ 0x0a027148,
+ 0x0a42d00b,
+ 0xa9e2da08,
+ 0x5a28c200,
+ 0x5dc09ea1,
+ 0x2dc0c0ff,
+ 0x3db0c801,
+ 0xfff43596,
+ 0x9e7b9984,
+ 0x0a50d051,
+ 0x5a40c200,
+ 0x5ac1c200,
+ 0x85067146,
+ 0x9326fffe,
+ 0x5d8cb720,
+ 0x462db780,
+ 0xcfce7500,
+ 0xb540857f,
+ 0xc0007b9c,
+ 0xf2089102,
+ 0xb760a9de,
+ 0x9ea4450a,
+ 0x0d829c62,
+ 0x98e8c014,
+ 0x6a88b783,
+ 0x85027500,
+ 0x6a18b543,
+ 0x9324c002,
+ 0x5d94b720,
+ 0x598cb7a0,
+ 0x06830b02,
+ 0x6108b783,
+ 0xc0027500,
+ 0xb78390c2,
+ 0x75006208,
+ 0x9022c002,
+ 0x6b08b783,
+ 0xc0007500,
+ 0xb76091c2,
+ 0xf2085d8c,
+ 0xb5c3a9a2,
+ 0xf0486b08,
+ 0x9e84a869,
+ 0xb5009c62,
+ 0xb783430a,
+ 0x75006c08,
+ 0x9382c000,
+ 0xa825f210,
+ 0xb5c39eab,
+ 0x9e846c08,
+ 0xf2509c62,
+ 0x9ea4aa21,
+ 0xf2089c62,
+ 0xf210a9a1,
+ 0x0d86a83d,
+ 0x9c629e84,
+ 0xaa25f250,
+ 0xf2089eab,
+ 0x0986a021,
+ 0x9c629ea4,
+ 0x6c08b783,
+ 0xc0007500,
+ 0x0d8691e4,
+ 0x9898c014,
+ 0x6c08b783,
+ 0xffff7500,
+ 0xc0009342,
+ 0x0d8690a0,
+ 0x988ec014,
+ 0x6a88b783,
+ 0xfffd7500,
+ 0xc0c09222,
+ 0xc0120d82,
+ 0x0d0209c2,
+ 0xffd40906,
+ 0xc8019935,
+ 0xb5800a02,
+ 0xc0c0518c,
+ 0xc0120d82,
+ 0x0d0209c2,
+ 0xffd40942,
+ 0xb7609929,
+ 0xfff45194,
+ 0x0d8698ee,
+ 0x98fcfff4,
+ 0x0d82c0c0,
+ 0x09c2c012,
+ 0x09060d02,
+ 0x991affd4,
+ 0xc0068502,
+ 0xc4300892,
+ 0x09020c9a,
+ 0x519cb540,
+ 0x8510c006,
+ 0xc000b441,
+ 0x4220b104,
+ 0x75002a40,
+ 0xb3149d53,
+ 0x00894422,
+ 0x1884e000,
+ 0x9284ffff,
+ 0x4614b740,
+ 0x0892c006,
+ 0x0c9ac430,
+ 0xc0060902,
+ 0xb4418512,
+ 0xb104c000,
+ 0xc0024220,
+ 0x75002a00,
+ 0xb3139d4f,
+ 0x00874422,
+ 0x1884e000,
+ 0x9264ffff,
+ 0xc03e0a02,
+ 0xb9600cea,
+ 0xb48140e8,
+ 0xffffc000,
+ 0x768093c1,
+ 0x9122c000,
+ 0xc03e0a02,
+ 0xb4810cea,
+ 0xc000c000,
+ 0xb7809180,
+ 0x7504448c,
+ 0xc03e088a,
+ 0xd00c0cea,
+ 0xb4211894,
+ 0xc0c0c000,
+ 0x09e20d82,
+ 0x09420d02,
+ 0x98c6ffd4,
+ 0xc0340a02,
+ 0xb4810cb6,
+ 0xb79fc000,
+ 0xb7bf7dee,
+ 0xb7df7e6e,
+ 0xb7ff7eee,
+ 0xc0027f6e,
+ 0x9c228c20,
+ 0xc01ca60d,
+ 0x0a827efe,
+ 0x9182c000,
+ 0x0d82c0c0,
+ 0x09c2c012,
+ 0x09060d02,
+ 0x98a8ffd4,
+ 0x9240c000,
+ 0x0cb2c434,
+ 0xb4810a02,
+ 0xb101c000,
+ 0x28844220,
+ 0xc0007440,
+ 0xb78390e2,
+ 0x75006a08,
+ 0x91a2c009,
+ 0x4e0cb780,
+ 0xc0007502,
+ 0x0d8290c4,
+ 0x9a29c014,
+ 0xb7403ac0,
+ 0xb7405694,
+ 0xd810560c,
+ 0xf088a8c5,
+ 0xb720aa55,
+ 0x62434592,
+ 0xc2009e49,
+ 0x0a045a11,
+ 0x4002ba09,
+ 0x4002ba24,
+ 0x03057048,
+ 0xc0000685,
+ 0xb7809138,
+ 0x2a51490c,
+ 0x490cb580,
+ 0x91c0c003,
+ 0xaa39f210,
+ 0x75002a04,
+ 0x93a2c002,
+ 0x490cb780,
+ 0xd0117440,
+ 0xb5403942,
+ 0xc002490c,
+ 0xb760929c,
+ 0x9e5c4792,
+ 0x400aba24,
+ 0x91a2c002,
+ 0x911cc002,
+ 0x650ab760,
+ 0x5d04b740,
+ 0x9e2d9e99,
+ 0x4003ba09,
+ 0x5e7fd0a2,
+ 0xc2009e48,
+ 0x02085a6d,
+ 0x5a17c200,
+ 0x5908d226,
+ 0xc2000c06,
+ 0x12085a14,
+ 0xe0389e40,
+ 0xba24a94e,
+ 0x50904002,
+ 0x79029e54,
+ 0x9102c001,
+ 0x4b88b781,
+ 0xc0017500,
+ 0xb7809064,
+ 0x9e48470a,
+ 0x4002ba24,
+ 0xc0007008,
+ 0x76409378,
+ 0x90e4c000,
+ 0x4b08b781,
+ 0xc0007502,
+ 0xd01192c2,
+ 0xb5801e32,
+ 0x9e54478a,
+ 0xb56048fd,
+ 0xb501470a,
+ 0x29594b90,
+ 0x490cb540,
+ 0xa0c120c2,
+ 0x90a0c000,
+ 0xb5418502,
+ 0xb7804b98,
+ 0xba24458a,
+ 0xc000400a,
+ 0xb78090fc,
+ 0x0a04650a,
+ 0x650ab580,
+ 0x490cb720,
+ 0x0c82c03e,
+ 0xc000b421,
+ 0x458ab780,
+ 0xb5800a04,
+ 0xc014458a,
+ 0xb7839a96,
+ 0x75006108,
+ 0x9222c002,
+ 0x6208b783,
+ 0xc0027500,
+ 0xb7809182,
+ 0x2a40518c,
+ 0xc0007500,
+ 0xb78390e4,
+ 0x751a7008,
+ 0x9024c002,
+ 0x578cb780,
+ 0x7492b721,
+ 0xa881da08,
+ 0x70029e48,
+ 0x9284c000,
+ 0x430ab780,
+ 0xb5418502,
+ 0xb580749a,
+ 0xb760440a,
+ 0xb7804412,
+ 0x8506530c,
+ 0x6b18b543,
+ 0x6c18b543,
+ 0x9c629ea4,
+ 0xaa39f210,
+ 0x75002a10,
+ 0x93e2c000,
+ 0x6c08b783,
+ 0xc0007500,
+ 0xb78190e4,
+ 0x7502748a,
+ 0x92a4c000,
+ 0x6b08b783,
+ 0x09027500,
+ 0x0922d001,
+ 0x0c82c438,
+ 0xb4810a02,
+ 0xb101c000,
+ 0x28f14220,
+ 0xc0383094,
+ 0xb4210c82,
+ 0xc014c000,
+ 0xb780983e,
+ 0xf2884e0c,
+ 0x0a04a955,
+ 0xb5807104,
+ 0xc0004e0c,
+ 0x850290a4,
+ 0x4e1cb540,
+ 0xa8a5da10,
+ 0x4592b720,
+ 0x60a35891,
+ 0x4003ba09,
+ 0x3a849e4c,
+ 0x71020884,
+ 0xcffe020b,
+ 0xb3542a3d,
+ 0x02894426,
+ 0x28d0d051,
+ 0xc0007440,
+ 0xc0c09142,
+ 0xc0120d82,
+ 0x0d0209c2,
+ 0xffb40942,
+ 0xb7809b73,
+ 0x7500518c,
+ 0x90a2c000,
+ 0xffd49eab,
+ 0xb79f9b45,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0xf8399c22,
+ 0xb723a205,
+ 0xb7407008,
+ 0xb7805204,
+ 0xd0a6448a,
+ 0x9e2d5908,
+ 0x570cb740,
+ 0xa94ee030,
+ 0x5f1cb760,
+ 0x7098b743,
+ 0x7000b743,
+ 0xb5801a04,
+ 0xc030448a,
+ 0xe200a8cd,
+ 0xd2515a40,
+ 0xda080a20,
+ 0xe210a882,
+ 0xb54082a3,
+ 0x5c955194,
+ 0xb5235c90,
+ 0xc0017008,
+ 0xb78392c4,
+ 0x0a047088,
+ 0x28ced3f1,
+ 0xb5837444,
+ 0xc0017088,
+ 0xb7609034,
+ 0x85067b94,
+ 0x6a98b543,
+ 0x764024a6,
+ 0x6c18b543,
+ 0x5194b520,
+ 0x9202c000,
+ 0x08a0d131,
+ 0x402bb780,
+ 0x3c80c801,
+ 0xc2009e48,
+ 0xc0ff5a40,
+ 0x32082a40,
+ 0x518cb580,
+ 0xf9f80806,
+ 0x9c22aa1d,
+ 0x7088b723,
+ 0x5c04b740,
+ 0x5904d0a6,
+ 0xc8309e2d,
+ 0xb580aa4d,
+ 0xd132448a,
+ 0xb72009a0,
+ 0xd810458a,
+ 0xba19aa61,
+ 0xc2004002,
+ 0x1a045a11,
+ 0xc00070c8,
+ 0xb7809104,
+ 0xc0407b8c,
+ 0xb5803a00,
+ 0xb7207b8c,
+ 0xd0114e8c,
+ 0x70c80a18,
+ 0x9104c000,
+ 0x7b8cb780,
+ 0x3a00c010,
+ 0x7b8cb580,
+ 0x0a1cd011,
+ 0xc00070c8,
+ 0xb7809104,
+ 0xc0207b8c,
+ 0xb5803a00,
+ 0xb7807b8c,
+ 0xf288560c,
+ 0xf288a916,
+ 0x9e50a919,
+ 0x460ab720,
+ 0x1a24d011,
+ 0xba096241,
+ 0x00b24002,
+ 0xc0007048,
+ 0xb7809106,
+ 0xcfff7b8c,
+ 0xb5802a7a,
+ 0xd0117b8c,
+ 0x9e521a22,
+ 0x70486245,
+ 0x9106c000,
+ 0x7b8cb780,
+ 0x2a7ec7fe,
+ 0x7b8cb580,
+ 0x451ab740,
+ 0x5e11d0a2,
+ 0x8821f310,
+ 0xc00070c8,
+ 0xb7809104,
+ 0xcfff7b8c,
+ 0xb5802a4e,
+ 0xb7407b8c,
+ 0xb720568c,
+ 0xd8087b8c,
+ 0x9e50aa45,
+ 0xc2009e8a,
+ 0x1a045a11,
+ 0xb7206209,
+ 0x0a045194,
+ 0x4002ba24,
+ 0x249470c8,
+ 0x5194b520,
+ 0x9118c000,
+ 0x3c80c801,
+ 0x5194b520,
+ 0x91c0c000,
+ 0xaa61d810,
+ 0x3c80c801,
+ 0xc2009e48,
+ 0xc0ff5a40,
+ 0x32082a40,
+ 0x518cb580,
+ 0xaa59f008,
+ 0x2a00c040,
+ 0xc0007500,
+ 0xb7809102,
+ 0xc101518c,
+ 0xb5803a00,
+ 0xb760518c,
+ 0xffd45194,
+ 0x08029a34,
+ 0xaa1df9f8,
+ 0xb7009c22,
+ 0xd2515714,
+ 0xb7600e04,
+ 0xda08560c,
+ 0xc00ea881,
+ 0xc0342dfc,
+ 0xf0080cba,
+ 0x5895a961,
+ 0x5810c080,
+ 0xb4419e82,
+ 0xb780c000,
+ 0xf008454a,
+ 0xc200a963,
+ 0xf3105a10,
+ 0xf0088021,
+ 0x0c84a8e9,
+ 0xa261f008,
+ 0xc000b421,
+ 0x46cab780,
+ 0xa96bf008,
+ 0x8021f310,
+ 0xa8edf008,
+ 0xf0080c84,
+ 0xb421a269,
+ 0xb780c000,
+ 0xf00846ca,
+ 0xf310a96f,
+ 0xf0088021,
+ 0x0c8ca8f5,
+ 0xa26df008,
+ 0xc000b421,
+ 0xa97df008,
+ 0xb4410c84,
+ 0xb780c000,
+ 0x0a084d8c,
+ 0x5890d224,
+ 0xc0007244,
+ 0xd131931c,
+ 0xda080e04,
+ 0x9e4ca903,
+ 0x88a1e210,
+ 0xc0007102,
+ 0xf00891d6,
+ 0xf008aa75,
+ 0xc010a8fd,
+ 0xf0080a00,
+ 0xc008a275,
+ 0xf0080880,
+ 0xb780a0fd,
+ 0xc0344f0c,
+ 0xb4810cda,
+ 0xb720c000,
+ 0x0c844f8c,
+ 0xc000b421,
+ 0x4f0cb780,
+ 0x0a400ce4,
+ 0xc000b481,
+ 0x4f8cb720,
+ 0x08c00c84,
+ 0xc000b421,
+ 0x4f0cb780,
+ 0x4f8cb720,
+ 0xc0101ce4,
+ 0xb5800a00,
+ 0xf0484f0c,
+ 0xc008aa65,
+ 0xb5200880,
+ 0xb4814f8c,
+ 0xf048c000,
+ 0x0c84a8ed,
+ 0xc000b421,
+ 0xaa65f048,
+ 0xa8edf048,
+ 0xc0100c84,
+ 0xf0480a00,
+ 0xf048a265,
+ 0xc008aa75,
+ 0xf0480880,
+ 0xb481a0ed,
+ 0xf088c000,
+ 0x0c88a965,
+ 0xc000b441,
+ 0x0c80d131,
+ 0x402bb780,
+ 0xa967f088,
+ 0x2a40cffe,
+ 0x8021f310,
+ 0xa969f088,
+ 0xf0880c88,
+ 0xb441a265,
+ 0xd131c000,
+ 0xb7800c80,
+ 0xf088402b,
+ 0xcffea96b,
+ 0xf3102a40,
+ 0xf0488021,
+ 0x1c8ca97d,
+ 0xa269f088,
+ 0xc000b441,
+ 0x0c80d131,
+ 0x402bb780,
+ 0xa97ff048,
+ 0xc20076c0,
+ 0xc2005a11,
+ 0xf3105a14,
+ 0xf0488021,
+ 0xc001a27d,
+ 0xb7209182,
+ 0x1ca8454a,
+ 0xc000b421,
+ 0x46cab780,
+ 0xc2000c84,
+ 0xc2005a0d,
+ 0x324258c0,
+ 0xc000b481,
+ 0x0d04d131,
+ 0xaa41d808,
+ 0xc2000c8c,
+ 0xcffe588c,
+ 0xc20028fc,
+ 0x30985a50,
+ 0xc000b421,
+ 0x0d04d251,
+ 0xaa41d808,
+ 0xc2000ca0,
+ 0x1a105a11,
+ 0xc0042a3c,
+ 0xb4813a00,
+ 0xb780c000,
+ 0x0a044d8c,
+ 0x4d8cb580,
+ 0xa68d9c22,
+ 0x0c92c43e,
+ 0xb4810a02,
+ 0xb103c000,
+ 0xb7804220,
+ 0xda085b0c,
+ 0xda08a885,
+ 0xda08a909,
+ 0xda08a189,
+ 0xda08a081,
+ 0x0cd0a105,
+ 0xb4810a02,
+ 0xb103c000,
+ 0xb7204220,
+ 0xb7805a8c,
+ 0xb7a0518c,
+ 0xb7205b0c,
+ 0xb74040b3,
+ 0xb560412b,
+ 0x2a40412b,
+ 0x03037500,
+ 0x4033b520,
+ 0x40abb540,
+ 0x90e2c000,
+ 0x7008b783,
+ 0xc000750a,
+ 0xb78390f2,
+ 0x751a7008,
+ 0x9204c00d,
+ 0x748ab781,
+ 0xb5810a04,
+ 0xc450748a,
+ 0x0a020ca6,
+ 0xc000b481,
+ 0x4220b103,
+ 0xc0310087,
+ 0x02072880,
+ 0x2a7cc00f,
+ 0x59e1d0a4,
+ 0x59c1d228,
+ 0xcffe0007,
+ 0x0c88287c,
+ 0xb4810a02,
+ 0xb103c000,
+ 0xc1804220,
+ 0x9e9a5bc1,
+ 0x2d7ccffe,
+ 0xb4810cbc,
+ 0xb103c000,
+ 0x00874220,
+ 0x568cb740,
+ 0x738ab781,
+ 0x2880c0fc,
+ 0x283ed0f2,
+ 0x5b19d0a4,
+ 0xd8889e41,
+ 0x9e95a8d2,
+ 0x7392b501,
+ 0x7e7edffc,
+ 0xba1c1218,
+ 0xc0024002,
+ 0x76c291c2,
+ 0x9384c000,
+ 0x480ab780,
+ 0x5d04b740,
+ 0x4002ba24,
+ 0x58ffc200,
+ 0x00c258ed,
+ 0xd0a65897,
+ 0x9e2d5908,
+ 0x12425894,
+ 0xe0389e59,
+ 0x5230a8ce,
+ 0x9ea74a7d,
+ 0xa0c2249e,
+ 0x9180c001,
+ 0x468ab780,
+ 0xa8a1da08,
+ 0x4002ba24,
+ 0xc0017048,
+ 0xb780907c,
+ 0xb720488a,
+ 0xb7404812,
+ 0x0a045d04,
+ 0x488ab580,
+ 0x4003ba09,
+ 0x5e7fd0a2,
+ 0x9e2d9e49,
+ 0x5a6dc200,
+ 0xc2000218,
+ 0xd2265a17,
+ 0xc2005908,
+ 0x9ea75a14,
+ 0xa94de038,
+ 0x9e4c149e,
+ 0x50b00886,
+ 0xa1413122,
+ 0x480ab780,
+ 0xb5800a04,
+ 0xb783480a,
+ 0x75006188,
+ 0x6208b783,
+ 0x90c4c000,
+ 0x7d3ec01c,
+ 0x9184c002,
+ 0x7d3ec01c,
+ 0x03f0d011,
+ 0x0527d021,
+ 0xf21076c2,
+ 0x0882aa39,
+ 0x0892d001,
+ 0x79022a04,
+ 0x598cb740,
+ 0x90e2c000,
+ 0xaa49d808,
+ 0xd8080a04,
+ 0xf008a249,
+ 0xf00aa94b,
+ 0xf310a94c,
+ 0xe0108027,
+ 0xf00882a5,
+ 0xf008a249,
+ 0xb783a0cd,
+ 0x75006688,
+ 0xd0020882,
+ 0x76c20892,
+ 0xd0020a02,
+ 0x78480a42,
+ 0x90c2c000,
+ 0x8542c07c,
+ 0xa123da08,
+ 0xf00876c2,
+ 0xc000a953,
+ 0xda0890c4,
+ 0xc000aa41,
+ 0xda089080,
+ 0xe310aa21,
+ 0xd80880a1,
+ 0xf008aa4d,
+ 0x0a04a0d1,
+ 0xa24dd808,
+ 0x91c0c006,
+ 0x598cb720,
+ 0xf2109d2e,
+ 0xc301aa39,
+ 0xc2018136,
+ 0xb7408120,
+ 0x2a044525,
+ 0xf0107500,
+ 0xf3108027,
+ 0x01038221,
+ 0x452db580,
+ 0x90a2c001,
+ 0xc00076c2,
+ 0xda0890c4,
+ 0xc000aa41,
+ 0xda089080,
+ 0xd808aa21,
+ 0x76c6a25d,
+ 0x9082c001,
+ 0xc00076c0,
+ 0x74c091a4,
+ 0xa953d808,
+ 0x8d2ae002,
+ 0x802df210,
+ 0xa251d808,
+ 0x92c0c000,
+ 0xd84874c0,
+ 0xe002a947,
+ 0xc0008d26,
+ 0xda089160,
+ 0x74c0aa41,
+ 0xa947d848,
+ 0xa25dd808,
+ 0x8d2ae002,
+ 0x802df210,
+ 0xa245d848,
+ 0x6308b783,
+ 0xc0007500,
+ 0xb7809302,
+ 0x9e41440a,
+ 0xc0007048,
+ 0x85029244,
+ 0x6318b543,
+ 0x0c82c43a,
+ 0xb4810a02,
+ 0xb103c000,
+ 0xcfef4220,
+ 0xc03a29fe,
+ 0xb4610c82,
+ 0xb780c000,
+ 0x9e41440a,
+ 0x08827048,
+ 0x0892d002,
+ 0x0a0276c6,
+ 0x0a42d001,
+ 0xc0007848,
+ 0x85069242,
+ 0x6318b543,
+ 0x0c82c43a,
+ 0xb4810a02,
+ 0xb103c000,
+ 0xc0114220,
+ 0xc03a3980,
+ 0xb4610c82,
+ 0x7780c000,
+ 0x91a2c001,
+ 0xc00076c0,
+ 0xda0892e4,
+ 0xf008aa21,
+ 0xd808a947,
+ 0xf310a8d5,
+ 0xd8088021,
+ 0xf008a8da,
+ 0x9e44a245,
+ 0xd8080c84,
+ 0x00c2a0da,
+ 0xa0d5d808,
+ 0x92a0c000,
+ 0xaa41da08,
+ 0xa95bf008,
+ 0xa8c9d848,
+ 0x8021f310,
+ 0xa8ced848,
+ 0xa259f008,
+ 0x0c849e44,
+ 0xa0ced848,
+ 0xd84800c2,
+ 0xd808a0c9,
+ 0xf008aa5d,
+ 0xf04aa95f,
+ 0xf048a940,
+ 0xf310a9c7,
+ 0xf0488021,
+ 0xf008a94f,
+ 0xf210a25d,
+ 0xd8488221,
+ 0xf048a8c2,
+ 0xf010a241,
+ 0xe2108037,
+ 0x0c8480a9,
+ 0xa0c2d848,
+ 0xa245f048,
+ 0xa0cdf048,
+ 0x7eeeb7bf,
+ 0x7f6eb7df,
+ 0x7feeb7ff,
+ 0x9c228c60,
+ 0x588cb780,
+ 0x08c0d0f1,
+ 0x4031b720,
+ 0x9ea27642,
+ 0x9382c000,
+ 0x0ccac43c,
+ 0xb4810a02,
+ 0xb101c000,
+ 0xd0114220,
+ 0xd3f11914,
+ 0x08882e3e,
+ 0x4002ba09,
+ 0x4002ba12,
+ 0x7048c410,
+ 0x28fcc00e,
+ 0x7044c812,
+ 0x28aed3f1,
+ 0x9080c000,
+ 0x2cbed3f1,
+ 0x0e20d0f1,
+ 0xc0368502,
+ 0xd2080cfe,
+ 0xb421a103,
+ 0x9c22c000,
+ 0x08029e98,
+ 0xc0000902,
+ 0x9e989140,
+ 0xd0100802,
+ 0xcc144530,
+ 0xc01472c0,
+ 0x72c07200,
+ 0x5d09c180,
+ 0x7204e009,
+ 0x5d04f012,
+ 0x9254c000,
+ 0xd00472c4,
+ 0xd0240804,
+ 0x72c015b4,
+ 0x0802d004,
+ 0x15b0d024,
+ 0x3124e000,
+ 0xb3301181,
+ 0x9c22442a,
+ 0x088672c0,
+ 0x93a6ffff,
+ 0x72c0c402,
+ 0x2c9ed065,
+ 0x3c9ed065,
+ 0x7200c802,
+ 0x2d2ed065,
+ 0x3d2ed065,
+ 0x1514e000,
+ 0xd01a9e53,
+ 0xd01a5408,
+ 0x72c050ac,
+ 0x0002d014,
+ 0x15b0d024,
+ 0x5885e080,
+ 0xffff5c05,
+ 0xe0009304,
+ 0x11813124,
+ 0x442ab330,
+ 0x00009c22,
+ 0x87c2c809,
+ 0x0c20b060,
+ 0x87c2c809,
+ 0x0a60b060,
+ 0x87c2c809,
+ 0x09c0b060,
+};
+
+unsigned long aui32MPG4_SlaveMTXTOPAZFWData[] = {
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x809000b0,
+ 0x809002f8,
+ 0x82882fd4,
+ 0x82882ba4,
+ 0x82882bb4,
+ 0x82882c54,
+ 0x82882ac0,
+ 0x82882b16,
+ 0x82882c84,
+ 0x82882cc0,
+ 0x82882cf8,
+ 0x82882cfc,
+ 0x82882d2c,
+ 0x82882d54,
+ 0x82882b7c,
+ 0x82882d5c,
+ 0x82882d64,
+ 0x82882d6c,
+ 0x82882da0,
+ 0x82883100,
+ 0x82882fa0,
+ 0x8288309c,
+ 0x828830dc,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x8090074c,
+ 0x8090074c,
+ 0x80901efc,
+ 0x8090197c,
+ 0x80902eb8,
+ 0x809022e8,
+ 0x80901ca4,
+ 0x8090074c,
+ 0x8090074c,
+ 0x8090074c,
+ 0x8090074c,
+ 0x8090074c,
+ 0x00000000,
+ 0x00000000,
+ 0xa0101100,
+ 0xa01001b0,
+ 0xa0101102,
+ 0xa01001b2,
+ 0xa0101104,
+ 0xa0100124,
+ 0xa0101106,
+ 0xa0100126,
+ 0xa0100134,
+ 0x00000000,
+ 0xa0101120,
+ 0xa0100136,
+ 0xa0101122,
+ 0xa0100144,
+ 0x80101160,
+ 0x80101162,
+ 0x80101180,
+ 0x80101182,
+ 0x80100140,
+ 0x80100142,
+ 0x80100150,
+ 0x80100152,
+ 0x80100154,
+ 0x80100146,
+ 0x803003a0,
+ 0x80100100,
+ 0x80105156,
+ 0xa0101164,
+ 0xa0100184,
+ 0x80101194,
+ 0x801001b4,
+ 0x80100146,
+ 0x00000000,
+ 0x00000003,
+ 0x00000002,
+ 0x00000002,
+ 0x00000001,
+ 0x00000001,
+ 0x00000001,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000005,
+ 0x000f9400,
+ 0x000f9401,
+ 0x000fd403,
+ 0x000fd40b,
+ 0x000fd41b,
+ 0x000ffc1b,
+ 0x000ffc1b,
+ 0x000ff81b,
+ 0x0000681b,
+ 0x0000681a,
+ 0x0000281a,
+ 0x00002810,
+ 0x00002800,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00010001,
+ 0x00004010,
+ 0x04010040,
+ 0x10040100,
+ 0x40100401,
+ 0x00008040,
+ 0x20100804,
+ 0x02010080,
+ 0x40201008,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x1234baac,
+ 0x00000000,
+};
+
+unsigned long aui32MPG4_SlaveMTXTOPAZFWTextReloc[] = {
+ 0
+};
+
+unsigned char aui8MPG4_SlaveMTXTOPAZFWTextRelocType[] = {
+ 0
+};
+
+unsigned long aui32MPG4_SlaveMTXTOPAZFWTextRelocFullAddr[] = {
+ 0
+};
+
+unsigned long aui32MPG4_SlaveMTXTOPAZFWDataReloc[] = {
+ 0
+};
diff --git a/fw/MPG4SlaveFirmware_bin.h b/fw/MPG4SlaveFirmware_bin.h
new file mode 100644
index 0000000..4285dd9
--- /dev/null
+++ b/fw/MPG4SlaveFirmware_bin.h
@@ -0,0 +1,44 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+
+// This file was automatically generated from ../release/MPG4SlaveFirmware.dnl using dnl2c.
+
+extern unsigned long aui32MPG4_SlaveMTXTOPAZFWText[];
+extern unsigned long ui32MPG4_SlaveMTXTOPAZFWTextSize;
+
+extern unsigned long aui32MPG4_SlaveMTXTOPAZFWData[];
+extern unsigned long ui32MPG4_SlaveMTXTOPAZFWDataSize;
+
+extern unsigned long aui32MPG4_SlaveMTXTOPAZFWTextReloc[];
+extern unsigned char aui8MPG4_SlaveMTXTOPAZFWTextRelocType[];
+extern unsigned long aui32MPG4_SlaveMTXTOPAZFWTextRelocFullAddr[];
+
+extern unsigned long aui32MPG4_SlaveMTXTOPAZFWDataReloc[];
+extern unsigned long ui32MPG4_SlaveMTXTOPAZFWDataRelocSize;
+
+extern unsigned long ui32MPG4_SlaveMTXTOPAZFWTextOrigin;
+extern unsigned long ui32MPG4_SlaveMTXTOPAZFWDataOrigin;
+
diff --git a/fw/Makefile.am b/fw/Makefile.am
new file mode 100644
index 0000000..e6bbbf2
--- /dev/null
+++ b/fw/Makefile.am
@@ -0,0 +1,61 @@
+# Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sub license, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice (including the
+# next paragraph) shall be included in all copies or substantial portions
+# of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+# IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+# ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+# Makefile to build MSVDX firmware
+
+CFLAGS = -DFRAME_SWITCHING_VARIANT=1 -DSLICE_SWITCHING_VARIANT=1
+firmware_DATA = msvdx_fw.bin msvdx_fw_mfld.bin msvdx_fw_mfld_DE2.0.bin topaz_fw.bin topazsc_fw.bin
+firmwaredir = /lib/firmware
+msvdx_fw_bin_DEPENDENCIES = msvdx_bin
+topaz_fw_bin_DEPENDENCIES = topaz_bin
+topazsc_fw_bin_DEPENDENCIES = topazsc_bin
+
+noinst_PROGRAMS = msvdx_bin topaz_bin topazsc_bin
+msvdx_bin_SOURCES = msvdx_bin.c thread0_ss_bin.c thread0_bin.c thread1_bin.c thread2_bin.c thread3_bin.c
+topaz_bin_SOURCES = topaz_bin.c H263Firmware_bin.c H263FirmwareCBR_bin.c H263FirmwareVBR_bin.c H264Firmware_bin.c H264FirmwareCBR_bin.c H264FirmwareVBR_bin.c MPG4Firmware_bin.c MPG4FirmwareCBR_bin.c MPG4FirmwareVBR_bin.c H264FirmwareVCM_bin.c
+
+topazsc_bin_SOURCES = topazsc_bin.c H263MasterFirmwareCBR_bin.c H263MasterFirmwareVBR_bin.c H263MasterFirmware_bin.c \
+ H264MasterFirmwareCBR_bin.c H264MasterFirmwareVBR_bin.c H264MasterFirmware_bin.c \
+ JPEGMasterFirmware_bin.c MPG4MasterFirmwareCBR_bin.c MPG4MasterFirmwareVBR_bin.c \
+ MPG4MasterFirmware_bin.c H263SlaveFirmwareCBR_bin.c H263SlaveFirmwareVBR_bin.c \
+ H263SlaveFirmware_bin.c H264SlaveFirmwareCBR_bin.c H264SlaveFirmwareVBR_bin.c \
+ H264SlaveFirmware_bin.c JPEGSlaveFirmware_bin.c MPG4SlaveFirmwareCBR_bin.c \
+ MPG4SlaveFirmwareVBR_bin.c MPG4SlaveFirmware_bin.c \
+ H264SlaveFirmwareVCM_bin.c H264MasterFirmwareVCM_bin.c
+
+msvdx_fw.bin: msvdx_bin
+ ./msvdx_bin
+
+msvdx_fw_mfld.bin: msvdx_bin
+ ./msvdx_bin
+
+msvdx_fw_mfld_DE2.0.bin: msvdx_bin
+ ./msvdx_bin
+
+topaz_fw.bin: topaz_bin
+ ./topaz_bin
+
+topazsc_fw.bin: topazsc_bin
+ ./topazsc_bin
+
+clean-generic:
+ rm -f ./msvdx_fw.bin ./msvdx_fw_mfld.bin
diff --git a/fw/fwinfo.c b/fw/fwinfo.c
new file mode 100644
index 0000000..d6e6589
--- /dev/null
+++ b/fw/fwinfo.c
@@ -0,0 +1,230 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+
+
+
+/*
+ * Authors:
+ * Shengquan Yuan <shengquan.yuan@intel.com>
+ * Fei Jiang <fei.jiang@intel.com>
+ *
+ */
+
+#include <stdio.h>
+#define TOPAZ_FW_FILE_NAME_ANDROID "/etc/firmware/topaz_fw.bin"
+#define MSVDX_FW_FILE_NAME_ANDROID "/etc/firmware/msvdx_fw.bin"
+
+#define TOPAZ_FW_FILE_NAME_MEEGO "/lib/firmware/topaz_fw.bin"
+#define MSVDX_FW_FILE_NAME_MEEGO "/lib/firmware/msvdx_fw.bin"
+
+struct topaz_fw_info_item_s {
+ unsigned short ver;
+ unsigned short codec;
+
+ unsigned int text_size;
+ unsigned int data_size;
+ unsigned int data_location;
+};
+typedef struct topaz_fw_info_item_s topaz_fw_info_item_t;
+
+enum topaz_fw_codec_e {
+ FW_JPEG = 0,
+ FW_H264_NO_RC,
+ FW_H264_VBR,
+ FW_H264_CBR,
+ FW_H264_VCM,
+ FW_H263_NO_RC,
+ FW_H263_VBR,
+ FW_H263_CBR,
+ FW_MPEG4_NO_RC,
+ FW_MPEG4_VBR,
+ FW_MPEG4_CBR,
+ FW_NUM
+};
+typedef enum topaz_fw_codec_e topaz_fw_codec_t;
+
+struct fw_table_s {
+ topaz_fw_codec_t index;
+ topaz_fw_info_item_t header;
+ // unsigned long *fw_text;
+ // unsigned long *fw_data;
+};
+typedef struct fw_table_s fw_table_t;
+
+
+struct msvdx_fw {
+ unsigned int ver;
+ unsigned int text_size;
+ unsigned int data_size;
+ unsigned int data_location;
+};
+
+
+static char *codec_to_string(int codec)
+{
+ switch (codec) {
+ case FW_H264_NO_RC:
+ return "H264_NO_RC";
+ case FW_H264_VBR:
+ return "H264_VBR";
+ case FW_H264_CBR:
+ return "H264_CBR";
+ case FW_H264_VCM:
+ return "H264_VCM";
+ case FW_H263_NO_RC:
+ return "H263_NO_RC";
+ case FW_H263_VBR:
+ return "H263_VBR";
+ case FW_H263_CBR:
+ return "H263_CBR";
+ case FW_MPEG4_NO_RC:
+ return "MPEG4_NO_RC";
+ case FW_MPEG4_VBR:
+ return "MPEG4_VBR";
+ case FW_MPEG4_CBR:
+ return "MPEG4_CBR";
+ default:
+ return "Undefined codec";
+ }
+ return "";
+}
+
+int main()
+{
+ FILE *fp = NULL;
+ topaz_fw_codec_t iter = FW_H264_NO_RC;
+ // unsigned int read_data;
+ unsigned int i, lseek;
+ unsigned char system_id = 0;
+ fw_table_t topaz_fw_table[FW_NUM + 1];
+ struct msvdx_fw fw;
+
+
+ /* open file
+ * RRRdetermine Android or Meego
+ * system_id = 0 Android
+ * system_id = 1 Meego
+ */
+ fp = fopen(TOPAZ_FW_FILE_NAME_ANDROID, "r");
+
+ if (NULL == fp) {
+ fp = fopen(TOPAZ_FW_FILE_NAME_MEEGO, "r");
+ if (NULL == fp) {
+ printf("\nSystem isn't Android or Meego\n\n");
+ printf("\nCan't open topaz_fw.bin\n");
+ return -1;
+ }
+ system_id = 1;
+ printf("\nSystem is Meego\n\n");
+ } else {
+ printf("\nSystem is Android\n\n");
+ }
+
+ // fseek (fp, 0, SEEK_SET);
+
+ printf("topza:Try to read and print topaz_fw_table...\n\n\n\n");
+
+ /* read fw table into the topz_fw_table */
+ while (iter < FW_NUM) {
+
+ /* read header */
+ fread(&(topaz_fw_table[iter].header), sizeof(topaz_fw_table[iter].header), 1, fp);
+
+ /* print header */
+ printf("topaz: index : %s\n", codec_to_string(topaz_fw_table[iter].header.codec));
+ printf("topaz: ver : 0x%04x\n", topaz_fw_table[iter].header.ver);
+ printf("topaz: Codec : %s\n", codec_to_string(topaz_fw_table[iter].header.codec));
+ printf("topaz: text_size : %d\n", (topaz_fw_table[iter].header.text_size >> 2));
+ printf("topaz: data_size : %d\n", (topaz_fw_table[iter].header.data_size >> 2));
+ printf("topaz: data_location : 0x%08x\n\n", topaz_fw_table[iter].header.data_location);
+
+ fseek(fp, topaz_fw_table[iter].header.text_size + topaz_fw_table[iter].header.data_size, SEEK_CUR);
+#if 0
+ /* read and print fw_text */
+ printf("fw_text = {\n");
+ for (i = 0; i < (topaz_fw_table[iter].header.text_size >> 2); i++) {
+ fread(&read_data, 1, 4, fp);
+ printf(" 0x%08x\n", read_data);
+ }
+ printf(" }\n\n\n\n");
+
+ /* read and print fw_data */
+ printf("fw_data = {\n");
+ for (i = 0; i < (topaz_fw_table[iter].header.data_size >> 2); i++) {
+ fread(&read_data, 1, 4, fp);
+ printf(" 0x%08x\n", read_data);
+ }
+ printf(" }\n\n\n\n");
+#endif
+
+ ++iter;
+ }
+
+ /* close topaz_fw.bin file */
+ fclose(fp);
+
+ printf("\n\n\n\nmsvdx:Try to read and print msvdx_fw...\n\n\n\n");
+
+ /* open msvdx_fw.bin */
+ if (system_id == 0) {
+ fp = fopen(MSVDX_FW_FILE_NAME_ANDROID, "r");
+ } else {
+ fp = fopen(MSVDX_FW_FILE_NAME_MEEGO, "r");
+ }
+ if (NULL == fp) {
+ printf("Can't open msvdx_fw.bin\n");
+ return -1;
+ }
+
+ // fseek (fp, 0, SEEK_SET);
+
+ /*read and print fw*/
+ fread(&fw, sizeof(fw), 1, fp);
+
+ printf("msvdx slice switch firmware: ver : 0x%04x\n", fw.ver);
+ printf("msvdx slice switch firmware: text_size : %d\n", fw.text_size);
+ printf("msvdx slice switch firmware: data_size : %d\n", fw.data_size);
+ printf("msvdx slice switch firmware: data_location : 0x%08x\n\n", fw.data_location);
+
+ lseek = ((sizeof(fw) + (fw.text_size + fw.data_size) * 4 + 0xfff) & ~0xfff);
+ fseek(fp, lseek, SEEK_SET);
+
+ /*read and print fw*/
+ fread(&fw, sizeof(fw), 1, fp);
+
+ printf("msvdx frame switch firmware: ver : 0x%04x\n", fw.ver);
+ printf("msvdx frame switch firmware: text_size : %d\n", fw.text_size);
+ printf("msvdx frame switch firmware: data_size : %d\n", fw.data_size);
+ printf("msvdx frame switch firmware: data_location : 0x%08x\n\n", fw.data_location);
+
+ /* close msvdx_fw.bin file */
+ fclose(fp);
+
+ return 0;
+}
+
+
+
diff --git a/fw/msvdx_bin.c b/fw/msvdx_bin.c
new file mode 100644
index 0000000..336f744
--- /dev/null
+++ b/fw/msvdx_bin.c
@@ -0,0 +1,188 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+
+/*
+ * Authors:
+ * Waldo Bastian <waldo.bastian@intel.com>
+ *
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include "thread0_ss_bin.h" /* old sliceswitching firmware */
+#include "thread0_bin.h" /* new frameswitching firmware for error concealment */
+#include "thread1_bin.h"
+
+#define MDFLD_SLICESWITCH_FIRMWARE 1
+
+struct msvdx_fw {
+ unsigned int ver;
+ unsigned int text_size;
+ unsigned int data_size;
+ unsigned int data_location;
+};
+
+int main()
+{
+ unsigned long i = 0;
+ unsigned long lseek;
+ FILE *ptr = NULL;
+
+ /* Create msvdx firmware for mrst */
+
+ struct msvdx_fw fw;
+ fw.ver = 944;
+ fw.text_size = ui32MTXDXVAFWTextSize_ss;
+ fw.data_size = ui32MTXDXVAFWDataSize_ss;
+ fw.data_location = ui32MTXDXVAFWDataLocation_ss;
+
+ ptr = fopen("msvdx_fw.bin", "w");
+ if (ptr == NULL) {
+ fprintf(stderr, "Create msvdx_fw_mrst.bin failed\n");
+ exit(-1);
+ }
+ fwrite(&fw, sizeof(fw), 1, ptr);
+
+ for (i = 0; i < fw.text_size; i++) {
+ fwrite(&aui32MTXDXVAFWText_ss[i], 4, 1, ptr);
+ }
+ for (i = 0; i < fw.data_size; i++) {
+ fwrite(&aui32MTXDXVAFWData_ss[i], 4, 1, ptr);
+ }
+
+ lseek = ((sizeof(fw) + (fw.text_size + fw.data_size) * 4 + 0xfff) & ~0xfff);
+ fseek(ptr, lseek, SEEK_SET);
+
+ /* Create msvdx firmware for mrst error concealment*/
+ /* fw.ver = 0xec;
+ fw.text_size = ui32sMiniSSLegacyTextSize;
+ fw.data_size = ui32sMiniSSLegacyDataSize;
+ fw.data_location = ui32sMiniSSLegacyDataLocation;
+
+ fwrite( &fw, sizeof(fw), 1, ptr);
+
+ for (i = 0; i < fw.text_size; i++)
+ {
+ fwrite( &aui32sMiniSSLegacyText[i],4, 1, ptr);
+ }
+ for (i = 0; i < fw.data_size; i++)
+ {
+ fwrite( &aui32sMiniSSLegacyData[i],4, 1, ptr);
+ }
+ fclose (ptr);
+ */
+ fw.ver = 0x4cd;
+ fw.text_size = ui32MTXDXVAFWTextSize;
+ fw.data_size = ui32MTXDXVAFWDataSize;
+ fw.data_location = ui32MTXDXVAFWDataLocation;
+
+ fwrite(&fw, sizeof(fw), 1, ptr);
+
+ for (i = 0; i < fw.text_size; i++) {
+ fwrite(&aui32MTXDXVAFWText[i], 4, 1, ptr);
+ }
+ for (i = 0; i < fw.data_size; i++) {
+ fwrite(&aui32MTXDXVAFWData[i], 4, 1, ptr);
+ }
+ fclose(ptr);
+
+#if MDFLD_SLICESWITCH_FIRMWARE
+ /* Create msvdx firmware for mfld */
+ fw.ver = 0x2;
+ fw.text_size = sSliceSwitchingFirmware.uiTextSize / 4;
+ fw.data_size = sSliceSwitchingFirmware.uiDataSize / 4;;
+ fw.data_location = sSliceSwitchingFirmware.DataOffset + 0x82880000;
+
+ ptr = fopen("msvdx_fw_mfld.bin", "w");
+ if (ptr == NULL) {
+ fprintf(stderr, "Create msvdx_fw_mfld.bin failed\n");
+ exit(-1);
+ }
+ fwrite(&fw, sizeof(fw), 1, ptr);
+
+ for (i = 0; i < fw.text_size; i++) {
+ fwrite(&sSliceSwitchingFirmware.pui8Text[i*4], 4, 1, ptr);
+ }
+ for (i = 0; i < fw.data_size; i++) {
+ fwrite(&sSliceSwitchingFirmware.pui8Data[i*4], 4, 1, ptr);
+ }
+ fclose(ptr);
+
+#else
+ fw.ver = 0x2;
+ fw.text_size = sFrameSwitchingFirmware.uiTextSize / 4;
+ fw.data_size = sFrameSwitchingFirmware.uiDataSize / 4;;
+ fw.data_location = sFrameSwitchingFirmware.DataOffset + 0x82880000;
+
+ ptr = fopen("msvdx_fw_mfld.bin", "w");
+ if (ptr == NULL) {
+ fprintf(stderr, "Create msvdx_fw_mfld.bin failed\n");
+ exit(-1);
+ }
+ fwrite(&fw, sizeof(fw), 1, ptr);
+
+ for (i = 0; i < fw.text_size; i++) {
+ fwrite(&sFrameSwitchingFirmware.pui8Text[i*4], 4, 1, ptr);
+ }
+ for (i = 0; i < fw.data_size; i++) {
+ fwrite(&sFrameSwitchingFirmware.pui8Data[i*4], 4, 1, ptr);
+ }
+ fclose(ptr);
+#endif
+
+ /* Create msvdx firmware for mfld DE2.0 */
+
+ FIRMWARE fw_DE2;
+
+ /* fw_DE2 = sFirmware1133_SS; */
+ fw_DE2 = sFirmware1163_SS;
+ /* fw_DE2 = sFirmware1163_FS; */
+ /* fw_DE2 = sFirmware1133_FS; */
+
+ fw.ver = 0x0496;
+ fw.text_size = fw_DE2.uiTextSize / 4;
+ fw.data_size = fw_DE2.uiDataSize / 4;;
+ fw.data_location = fw_DE2.DataOffset + 0x82880000;
+
+ ptr = fopen("msvdx_fw_mfld_DE2.0.bin", "w");
+ if (ptr == NULL) {
+ fprintf(stderr, "Create msvdx_fw_mfld_DE2.0.bin failed\n");
+ exit(-1);
+ }
+ fwrite(&fw, sizeof(fw), 1, ptr);
+
+ for (i = 0; i < fw.text_size; i++) {
+ fwrite(&fw_DE2.pui8Text[i*4], 4, 1, ptr);
+ }
+ for (i = 0; i < fw.data_size; i++) {
+ fwrite(&fw_DE2.pui8Data[i*4], 4, 1, ptr);
+ }
+ fclose(ptr);
+
+ return 0;
+}
+
diff --git a/fw/thread0_bin.c b/fw/thread0_bin.c
new file mode 100644
index 0000000..b0636e2
--- /dev/null
+++ b/fw/thread0_bin.c
@@ -0,0 +1,3916 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/******************************************************************************
+
+ @File thread0_bin.c
+
+ @Title
+
+ @Copyright Copyright (C) Imagination Technologies Limited. All Rights Reserved.
+
+ @Platform
+
+ @Description
+
+******************************************************************************/
+#ifdef DE_ENV
+#include "global.h"
+#endif
+//#if SLICE_SWITCHING_VARIANT
+// This file was automatically generated from ../release/thread0.dnl using dnl2c.
+
+unsigned long ui32MTXDXVAFWTextSize = 2953;
+unsigned long ui32MTXDXVAFWDataSize = 908;
+unsigned long ui32MTXDXVAFWDataLocation = 0x82882e28;
+
+unsigned long aui32MTXDXVAFWText[] = {
+ 0x93fe9421,
+ 0x0e42c809,
+ 0x0e00c000,
+ 0x8422c829,
+ 0x8460c3c4,
+ 0x8622c829,
+ 0x8620c2e2,
+ 0x9e439e83,
+ 0x0d42c809,
+ 0x0d00c5c2,
+ 0x0942c809,
+ 0x0940c5c2,
+ 0x0e42c809,
+ 0x0e20c00a,
+ 0x87c2c809,
+ 0x87a0c00e,
+ 0x08029c18,
+ 0x0d820c02,
+ 0x0d020982,
+ 0x0c820902,
+ 0x97d90882,
+ 0xa401c838,
+ 0x0dc2c809,
+ 0x0dc0c5c0,
+ 0x0e42c809,
+ 0x0be6b080,
+ 0x7e74b77f,
+ 0xa48d0882,
+ 0x97ff9ff3,
+ 0x80819d13,
+ 0xa205f839,
+ 0x03070707,
+ 0x9e970685,
+ 0xc8090383,
+ 0xc5c40ac2,
+ 0xc8090a80,
+ 0xc5c21ac0,
+ 0x060f1ae0,
+ 0x07fac101,
+ 0x018d058d,
+ 0x9c62008f,
+ 0x060b97f9,
+ 0x06dac101,
+ 0x97fc9c62,
+ 0x018d058d,
+ 0x558cb700,
+ 0x5514b780,
+ 0xa6059c01,
+ 0xc8090687,
+ 0xc5c40ac2,
+ 0xc8090a80,
+ 0xc5c21ac0,
+ 0x060b1ae0,
+ 0x06dac101,
+ 0x97fc9c62,
+ 0xaa9df9f8,
+ 0xaa1df9f8,
+ 0x9c229c22,
+ 0xa285f839,
+ 0x2abed3f1,
+ 0x4414b700,
+ 0x9cccc072,
+ 0xaa61d010,
+ 0x0d02c049,
+ 0x0d40c2fc,
+ 0xe2000a0c,
+ 0xf0105a09,
+ 0xc000a8dd,
+ 0xd0109382,
+ 0x048519c2,
+ 0xf0310802,
+ 0xb7a0a9e5,
+ 0xd0a44294,
+ 0x08845908,
+ 0xa1c9e050,
+ 0x454bb740,
+ 0x70440201,
+ 0x4426b314,
+ 0xb7800089,
+ 0x7102434d,
+ 0xffff93a2,
+ 0xc0499181,
+ 0xc2fc0a02,
+ 0xf2080a40,
+ 0xc072a09d,
+ 0xc0499ccc,
+ 0xc2fc0902,
+ 0xf0080970,
+ 0x7540aa41,
+ 0xf0080a04,
+ 0x90e2a241,
+ 0x470cb780,
+ 0x0902c400,
+ 0xa109f208,
+ 0xaa9df9f8,
+ 0xa61d9c22,
+ 0x9bb28420,
+ 0xc9170a0a,
+ 0xb7a09c83,
+ 0x1a04470c,
+ 0x0b58d0f2,
+ 0xa241f210,
+ 0x9affc034,
+ 0x0902c049,
+ 0x0940c2fc,
+ 0xaaa1f288,
+ 0xaa49f048,
+ 0x0d02c00c,
+ 0x0982c006,
+ 0x2a00e400,
+ 0x1d28d281,
+ 0xd2817500,
+ 0xc07009b6,
+ 0x75000d82,
+ 0x0a42c046,
+ 0x4442b343,
+ 0x0a02c040,
+ 0xa14ad848,
+ 0xa1c1d888,
+ 0xa24dd848,
+ 0xa1c6d888,
+ 0x0a16ca5b,
+ 0xa946d888,
+ 0x0a14ca5a,
+ 0xa9cdd848,
+ 0xa251f008,
+ 0xab49f048,
+ 0x0d00c049,
+ 0x0980c049,
+ 0x2afec00f,
+ 0x0d00c200,
+ 0x0980c200,
+ 0x490cb5a0,
+ 0x4314b540,
+ 0x428cb560,
+ 0x2b00c200,
+ 0xc8170a0a,
+ 0xc0499c81,
+ 0xc2fc0e82,
+ 0x0b8a0ec0,
+ 0xc0740f82,
+ 0xc9719bc9,
+ 0xf0119c80,
+ 0xc0012ac4,
+ 0x758091a4,
+ 0x92c4c002,
+ 0x9913c034,
+ 0x7c3ec01c,
+ 0x0a129224,
+ 0x7f6cb59f,
+ 0xf2101a04,
+ 0xc971a241,
+ 0xe0009c80,
+ 0xc0002a08,
+ 0xc91791e4,
+ 0xb79f9c83,
+ 0x1a047f6c,
+ 0x7f6cb59f,
+ 0x7f6cb75f,
+ 0x93047480,
+ 0x9c8fc917,
+ 0xa3c1f210,
+ 0x9b9ec074,
+ 0x9c80c971,
+ 0x2ac4f011,
+ 0x92e2fffe,
+ 0xa925f250,
+ 0xaa2df250,
+ 0xc0017088,
+ 0xf2509022,
+ 0xb740aa25,
+ 0xc200430c,
+ 0x01c45a08,
+ 0xaa65d008,
+ 0xaae1d008,
+ 0xc0017500,
+ 0xf25090a4,
+ 0xcff6aa25,
+ 0xda902afd,
+ 0xd011a922,
+ 0x59090956,
+ 0x9e7c0128,
+ 0xb3247095,
+ 0xf2504426,
+ 0x97a8a225,
+ 0xfffd7540,
+ 0xc17190c2,
+ 0x97a29c80,
+ 0x98bfc034,
+ 0x7c3ec01c,
+ 0x9204fffe,
+ 0x9c80c171,
+ 0xfffc7d04,
+ 0x97c99302,
+ 0xc0549ea3,
+ 0x97da99fa,
+ 0x440cb740,
+ 0x9ccec071,
+ 0x4714b740,
+ 0xc1005db0,
+ 0xf0102d80,
+ 0xcefeaa41,
+ 0x9ea12a7d,
+ 0xf01035b2,
+ 0xc071a1c2,
+ 0x9c229cce,
+ 0x588cb780,
+ 0xd1105d8c,
+ 0xf0080539,
+ 0xd011a841,
+ 0x75021a04,
+ 0x1248d01a,
+ 0x4634b422,
+ 0xa60d9c22,
+ 0xb7809e5d,
+ 0xd2a4588c,
+ 0x0886598c,
+ 0x05b8c101,
+ 0xa0e5f031,
+ 0xa9e2f010,
+ 0x2eaed3f2,
+ 0x2b2ed3f2,
+ 0x99fd0307,
+ 0x0d827740,
+ 0x0db2d001,
+ 0xb7809bc6,
+ 0xc280468c,
+ 0xc8055a94,
+ 0x02d80912,
+ 0x0958d012,
+ 0xf2080a1e,
+ 0xc805a239,
+ 0xf2080a02,
+ 0xf208a321,
+ 0xf010a32a,
+ 0xf010a241,
+ 0xb79fa141,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0xa6059c22,
+ 0xb7409e5d,
+ 0xc280588c,
+ 0xe2285a0c,
+ 0xb560a906,
+ 0x76824410,
+ 0x9eab9102,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x97a98c40,
+ 0xa986f208,
+ 0x9eab99c8,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x979f8c40,
+ 0x9e5da605,
+ 0x2d7cc00e,
+ 0x297cc00e,
+ 0x9eab9ba7,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x97d68c40,
+ 0xd051a60d,
+ 0x06870e38,
+ 0x0d869ea2,
+ 0xc00755e8,
+ 0x98fc2dc0,
+ 0x468cb780,
+ 0x5f14c280,
+ 0x5e8cc280,
+ 0x0768c101,
+ 0x0f68d011,
+ 0x588cb780,
+ 0xaac1f208,
+ 0x06d8c101,
+ 0x3aa0c001,
+ 0xa2c1f208,
+ 0xa9a6f210,
+ 0x2ae8cfff,
+ 0xf208998c,
+ 0x0a02a2c1,
+ 0x2adecfff,
+ 0xa2c1f208,
+ 0xa24df210,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0xb780a61d,
+ 0x9e5f468c,
+ 0xd0320f02,
+ 0xc0070ac8,
+ 0xc0010b42,
+ 0x0f8a0ac2,
+ 0x0a7f940b,
+ 0xe000424a,
+ 0x0f042368,
+ 0xc00202da,
+ 0xc0010e80,
+ 0x794e9042,
+ 0xf21092a2,
+ 0xc005aa21,
+ 0xffff7d04,
+ 0xb7409202,
+ 0xc3005894,
+ 0xcffd5d8c,
+ 0x05b42a76,
+ 0xa221f210,
+ 0xa3e6f031,
+ 0xa9e2f010,
+ 0xc0020f04,
+ 0x99600e80,
+ 0x424a0a7f,
+ 0x2368e000,
+ 0xffff02da,
+ 0xb79f9044,
+ 0xb7bf7e6e,
+ 0xb7df7eee,
+ 0xb7ff7f6e,
+ 0xc0027fee,
+ 0x9c228c00,
+ 0xc094a605,
+ 0xc0119b13,
+ 0xc0940d82,
+ 0xc8099af8,
+ 0xc0ba0a42,
+ 0xb5800a70,
+ 0xc8094c2c,
+ 0xb7800942,
+ 0xc0ae420c,
+ 0xb5400960,
+ 0xb5404cac,
+ 0xb5404a2c,
+ 0xb540422c,
+ 0xf2484b2c,
+ 0xb740aa09,
+ 0xc800440c,
+ 0xd0527d00,
+ 0x90823aa0,
+ 0xb5402979,
+ 0x9e6c440c,
+ 0xcffe0a82,
+ 0x9eab2a7c,
+ 0xc0940189,
+ 0xc1719b0f,
+ 0x2ef99ccd,
+ 0x32d89e6c,
+ 0x9ccdc171,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0x0a82a60d,
+ 0x07070307,
+ 0x9ead9e53,
+ 0x9ccdc172,
+ 0xc00076a0,
+ 0x76809362,
+ 0x92c2c000,
+ 0xc00076aa,
+ 0x018b9382,
+ 0x9e83080e,
+ 0x9bedc074,
+ 0x9ccdc172,
+ 0x040d000d,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x97f0080a,
+ 0x9b34c074,
+ 0xffff7400,
+ 0x018b91e2,
+ 0xb78097e9,
+ 0x080e470c,
+ 0xa989f208,
+ 0xa60d97e3,
+ 0x07070307,
+ 0x440cb7a0,
+ 0x9ccdc171,
+ 0x91a276a8,
+ 0x9ccdc171,
+ 0x040d000d,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0xc1719822,
+ 0x000d9ccd,
+ 0xb79f040d,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0xb7409c22,
+ 0xb7804494,
+ 0x35b4470c,
+ 0x4494b560,
+ 0xa196f208,
+ 0xb7409c22,
+ 0xb7804494,
+ 0x4dfd470c,
+ 0xb56025b4,
+ 0xf2084494,
+ 0x9c22a196,
+ 0xb780a60d,
+ 0xc209470c,
+ 0xc1040f3e,
+ 0xd0320f3c,
+ 0xd0310ac0,
+ 0xf2100b48,
+ 0xb780a921,
+ 0xe000448c,
+ 0xc00022a8,
+ 0x020b9322,
+ 0x2a40e007,
+ 0xa2c1f208,
+ 0x9344c000,
+ 0xe0009e72,
+ 0xffff2254,
+ 0x9ea391c2,
+ 0x9b2ac054,
+ 0xa921f210,
+ 0x448cb780,
+ 0x22a8e000,
+ 0x9164ffff,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x9ae79ea3,
+ 0xa61d97e6,
+ 0xc0490687,
+ 0xc0490e80,
+ 0xc0490f02,
+ 0xc0800b82,
+ 0xc0600e80,
+ 0xc0600f20,
+ 0x02870bb0,
+ 0xc0410802,
+ 0x94050b02,
+ 0xa361f208,
+ 0x9b31c094,
+ 0xc0949e83,
+ 0xf2109b2e,
+ 0xf210a2a1,
+ 0x9e83aa41,
+ 0x7d00c081,
+ 0x9e839244,
+ 0x7e6eb79f,
+ 0x7eeeb7bf,
+ 0x7f6eb7df,
+ 0x7feeb7ff,
+ 0x8c00c002,
+ 0x9320c098,
+ 0x0687a61d,
+ 0x0e80c049,
+ 0x0f02c049,
+ 0x0b82c049,
+ 0x0e80c080,
+ 0x0f20c060,
+ 0x0bb0c060,
+ 0xc0810802,
+ 0x94050b02,
+ 0xa361f208,
+ 0x9b03c094,
+ 0xc0949e83,
+ 0xf2109b00,
+ 0xf210aaa1,
+ 0x9e83aa41,
+ 0x7d00c101,
+ 0x9e839244,
+ 0x9af5c094,
+ 0xb79f000b,
+ 0xb7bf7e6e,
+ 0xb7df7eee,
+ 0xb7ff7f6e,
+ 0xc0027fee,
+ 0x9c228c00,
+ 0xf0100a02,
+ 0x9c22a261,
+ 0xaa61f010,
+ 0x93a27500,
+ 0x440cb740,
+ 0x9ccec071,
+ 0xaa61f010,
+ 0xf0101a04,
+ 0xc071a261,
+ 0x08029cce,
+ 0xb7409c22,
+ 0xc071440c,
+ 0xf0109cce,
+ 0x0a04aa61,
+ 0xa261f010,
+ 0x9ccec071,
+ 0x9c220802,
+ 0xc801a605,
+ 0xc0040a82,
+ 0x9ba90df2,
+ 0x938c780a,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xa205f839,
+ 0xc0060992,
+ 0x9b6c0d92,
+ 0xc0049bec,
+ 0x9b970df2,
+ 0x0d82c006,
+ 0xaa1df9f8,
+ 0xa6059792,
+ 0x0de29e5d,
+ 0x5aa0c280,
+ 0x018b9b8c,
+ 0x287dcfce,
+ 0x2980c030,
+ 0x0de23186,
+ 0x0de29b55,
+ 0xc0309b82,
+ 0x71402800,
+ 0xb79f9364,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa6059c22,
+ 0x7cfec01c,
+ 0x5e8cd1a2,
+ 0x0a125920,
+ 0x1a48d002,
+ 0x2900c030,
+ 0x2aa03244,
+ 0x3a842a5d,
+ 0x018b32d8,
+ 0x06850de2,
+ 0x018b9b35,
+ 0x0de229f1,
+ 0x9e6b9b31,
+ 0xc00f0df2,
+ 0xb79f29fe,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa6059727,
+ 0xaae9f010,
+ 0x09820687,
+ 0x0da2c002,
+ 0xcfff9947,
+ 0xc0022ac2,
+ 0x09820db2,
+ 0xc0019941,
+ 0xc0023a84,
+ 0x09820dc2,
+ 0xc9fe993b,
+ 0xc0022afd,
+ 0x09820df2,
+ 0x018b9935,
+ 0x3980c400,
+ 0x99300da2,
+ 0x0d82c040,
+ 0x09a2c100,
+ 0xc060992b,
+ 0xc1000d82,
+ 0x992609a2,
+ 0x0da2c040,
+ 0x99220982,
+ 0x0da2c040,
+ 0x991e0986,
+ 0x0da2c040,
+ 0x991a098a,
+ 0x440cb7a0,
+ 0x9ccdc171,
+ 0x0d92c040,
+ 0x99120982,
+ 0x0d92c040,
+ 0x990e098a,
+ 0x4714b740,
+ 0x0d20d031,
+ 0xaa41f008,
+ 0x2a30c001,
+ 0x7518c001,
+ 0xf0109344,
+ 0xf250a24d,
+ 0xc081aa35,
+ 0xf2503a00,
+ 0xc171a235,
+ 0x058b9ccd,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x95da8c40,
+ 0xb780a605,
+ 0x75004a0c,
+ 0xc07490e2,
+ 0xb780984b,
+ 0x75004a0c,
+ 0xb7a09364,
+ 0xc171440c,
+ 0xb7a09ccd,
+ 0xd0b14714,
+ 0xf0080d58,
+ 0x7d20aa41,
+ 0xc00893a2,
+ 0x9adf0de2,
+ 0xa921f210,
+ 0xc0100d82,
+ 0xcfff0982,
+ 0x0205293e,
+ 0x3a40c001,
+ 0xa221f210,
+ 0xa922f210,
+ 0xa121f210,
+ 0xa121f210,
+ 0xc1719a9d,
+ 0x08069ccd,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xb7a0a60d,
+ 0xc171440c,
+ 0xb7409ccd,
+ 0xc0064714,
+ 0xf0100db2,
+ 0xcfffaa41,
+ 0x01092a7a,
+ 0x3904c001,
+ 0xa141f010,
+ 0xa9c1f010,
+ 0xa241f010,
+ 0x01819aac,
+ 0x29fecf7f,
+ 0x3980c081,
+ 0x0db2c006,
+ 0xc0069a75,
+ 0x9aa10df2,
+ 0xc0089e85,
+ 0x9a9d0d82,
+ 0x0da2c006,
+ 0x0982c002,
+ 0x9a680301,
+ 0xc0069e6b,
+ 0x9a640df2,
+ 0xc008018d,
+ 0x9a600d82,
+ 0x0db2c006,
+ 0x01819a8c,
+ 0x29fecf7f,
+ 0x0db2c006,
+ 0xc1719a57,
+ 0xb79f9ccd,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0xb7009c22,
+ 0xf010470c,
+ 0xd0b1a8ea,
+ 0xb7800880,
+ 0x750c402d,
+ 0xb70093b4,
+ 0xcfff4814,
+ 0xc0012cc2,
+ 0xc9fe3c84,
+ 0xd0b12cfd,
+ 0xd0f10d08,
+ 0x0a020d88,
+ 0x3c80c400,
+ 0x0d00d0d2,
+ 0x454cb580,
+ 0xa241f008,
+ 0xa241f010,
+ 0xa261f008,
+ 0x4154b520,
+ 0xaa7df010,
+ 0x2a7dccfe,
+ 0x3a00c100,
+ 0x404cb582,
+ 0x404cb583,
+ 0x402db780,
+ 0x93b4750a,
+ 0xc0400501,
+ 0xc00e0d20,
+ 0xc00e0a6a,
+ 0xf010096e,
+ 0xb960a241,
+ 0xf0104018,
+ 0x0a08a141,
+ 0xa241f010,
+ 0x93a10a04,
+ 0x402db780,
+ 0x93b47506,
+ 0xf0100a02,
+ 0xf050a241,
+ 0x7c84a975,
+ 0x9022c001,
+ 0x0a02c010,
+ 0xa241f010,
+ 0x440cb720,
+ 0x9ccdc071,
+ 0x09029e44,
+ 0x0a10c040,
+ 0xf2080d0a,
+ 0xf208a101,
+ 0xd031a102,
+ 0xf0080900,
+ 0xc001aa41,
+ 0xc0012a30,
+ 0x93447518,
+ 0x41acb580,
+ 0x9ccdc071,
+ 0x0a0694ed,
+ 0xa241f010,
+ 0xb78097e2,
+ 0x9e9a470c,
+ 0x0940d0b1,
+ 0xaa41f008,
+ 0x93a27500,
+ 0x480cb780,
+ 0xe0409e5a,
+ 0x9c22a146,
+ 0x0d220a02,
+ 0xc000b482,
+ 0x4620b202,
+ 0xf8399c22,
+ 0xe000a285,
+ 0xc0020980,
+ 0xb76090c2,
+ 0xb7604804,
+ 0x0a82471c,
+ 0x9d609e39,
+ 0x9de49de0,
+ 0x8530e0b2,
+ 0x19b2d010,
+ 0x8520c040,
+ 0x0860c040,
+ 0x0c40c042,
+ 0x0c80c050,
+ 0xc002008b,
+ 0x76c08702,
+ 0x92c2c000,
+ 0x59a0c280,
+ 0x3984c001,
+ 0xf0100103,
+ 0x7506aa41,
+ 0x323493b4,
+ 0x70970904,
+ 0xb520a241,
+ 0xb540402c,
+ 0xb5204044,
+ 0x9244404d,
+ 0xffff0a84,
+ 0xe0b19101,
+ 0xf0088530,
+ 0x7502aa41,
+ 0x9d7093b4,
+ 0xc0400902,
+ 0x0d060a10,
+ 0xa101f208,
+ 0xa102f208,
+ 0xaa9df9f8,
+ 0xb7609c22,
+ 0xb760471c,
+ 0x97ea4804,
+ 0xc1710a02,
+ 0xf0109ccc,
+ 0xc171a1e1,
+ 0x9c229ccc,
+ 0xa205f839,
+ 0x420cb780,
+ 0x09060d02,
+ 0xa102f208,
+ 0x530cb780,
+ 0x498cb540,
+ 0x9c81cb10,
+ 0x5614b760,
+ 0x518cb760,
+ 0xb7809be6,
+ 0xf248420c,
+ 0x7d10aa09,
+ 0xb7209122,
+ 0x0a02450c,
+ 0x412db581,
+ 0xaa1df9f8,
+ 0xb7409c22,
+ 0xc020450c,
+ 0xf0080920,
+ 0xc001aa41,
+ 0xf0083a04,
+ 0xf9f8a241,
+ 0x9c22aa1d,
+ 0x420cb780,
+ 0x09060d02,
+ 0xa101f208,
+ 0x5294b540,
+ 0x4994b540,
+ 0xaa09f248,
+ 0x7d00c800,
+ 0x48a4b340,
+ 0x450cb780,
+ 0x0a20c020,
+ 0xa901f208,
+ 0xa101f208,
+ 0xf8399c22,
+ 0xb740a205,
+ 0xb960578c,
+ 0xd0084038,
+ 0xc002aa41,
+ 0xf1120960,
+ 0xc0002940,
+ 0x93019344,
+ 0x4a8cb780,
+ 0x91827500,
+ 0xaa15f248,
+ 0x7d00c021,
+ 0x080690e2,
+ 0x5294b540,
+ 0xaa1df9f8,
+ 0xb7809c22,
+ 0x7502498c,
+ 0x08029122,
+ 0xaa1df9f8,
+ 0x08069c22,
+ 0xaa1df9f8,
+ 0xb7809c22,
+ 0xb740570c,
+ 0xf208470c,
+ 0xf048aa01,
+ 0x9bb5a241,
+ 0xb78097ef,
+ 0x0487470c,
+ 0x0940d0b1,
+ 0xaa41f008,
+ 0x93b4750a,
+ 0x44cdb740,
+ 0x480cb720,
+ 0x2901cf00,
+ 0x452db540,
+ 0x454db780,
+ 0x2a01cf00,
+ 0x45adb580,
+ 0x5249b740,
+ 0x462db540,
+ 0x414db780,
+ 0x412db580,
+ 0x43cdb740,
+ 0x402db542,
+ 0xd0909c22,
+ 0xcffea9f2,
+ 0xc18029fc,
+ 0x0d845821,
+ 0x29fcc00e,
+ 0x6007c101,
+ 0x9c220006,
+ 0xd010a605,
+ 0x9e5da9e5,
+ 0xc00174c0,
+ 0xb7809344,
+ 0xcb6d578c,
+ 0xc6da0d6e,
+ 0x11580d5c,
+ 0xc101590f,
+ 0x19046125,
+ 0xc002291c,
+ 0xc0406962,
+ 0xf112a945,
+ 0xc0012aa0,
+ 0xf05093a4,
+ 0xc400aa75,
+ 0xc0027d00,
+ 0xd2089182,
+ 0xc00aaa21,
+ 0xd2082a7c,
+ 0xb5a0a221,
+ 0xd2084a14,
+ 0x7d08aa21,
+ 0x93e2c000,
+ 0x470cb780,
+ 0x0948d0b1,
+ 0xaa41f008,
+ 0x93a27d20,
+ 0x0de2c008,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0xffe58c40,
+ 0xf0509220,
+ 0xc101aa75,
+ 0xf0503a00,
+ 0xb79fa275,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xd2089c22,
+ 0x7d10aa21,
+ 0x9004ffff,
+ 0xaa21d208,
+ 0xfffe7d02,
+ 0x97f09364,
+ 0xa975f050,
+ 0x018b9e9b,
+ 0x3900c101,
+ 0xa135f248,
+ 0xaa35f248,
+ 0x3a40c001,
+ 0xa235f248,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0xc04d8c40,
+ 0xb7609260,
+ 0xc0744d0c,
+ 0xb5a09a28,
+ 0x97b04d14,
+ 0xa205f839,
+ 0x0db2c006,
+ 0x9878fff4,
+ 0xc0810181,
+ 0xc0063980,
+ 0xf9f80db2,
+ 0xffe2aa1d,
+ 0xa6059000,
+ 0x0d829e5d,
+ 0x9ac1ffd4,
+ 0x4b8cb740,
+ 0x450cb720,
+ 0xcffe0d82,
+ 0xb541297c,
+ 0xda4868ad,
+ 0x0d06aa21,
+ 0x3a04c001,
+ 0x682db581,
+ 0xa921d208,
+ 0xa9b9f208,
+ 0x297cc00e,
+ 0x49045905,
+ 0xb79f2904,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0x93c0ffd5,
+ 0xb780a605,
+ 0xf0504d8c,
+ 0x9e5da975,
+ 0x5910c200,
+ 0x7ca0c01c,
+ 0xb78090e2,
+ 0xc01c4608,
+ 0xc0027d3e,
+ 0x74809084,
+ 0x91c4c001,
+ 0x9ab1c054,
+ 0xaa35f248,
+ 0x7d00c020,
+ 0x93e4c000,
+ 0xaa35f248,
+ 0x7d00c011,
+ 0x92a4c000,
+ 0x470cb780,
+ 0x0948d0b1,
+ 0xaa41f008,
+ 0x93a27d20,
+ 0x0de2c008,
+ 0x981cfff4,
+ 0xb79f0806,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0x9eab9c22,
+ 0x9997fff4,
+ 0x9eab97ea,
+ 0x9841c074,
+ 0xc0749eab,
+ 0x97dd980d,
+ 0xffd40d82,
+ 0xb7609a5e,
+ 0x0a024d8c,
+ 0x0882c049,
+ 0x0880c2cc,
+ 0x9ea29ea3,
+ 0x09065990,
+ 0x402db580,
+ 0x9a6cffd4,
+ 0x9e5b97c2,
+ 0x0dc2c809,
+ 0x0da0c1d0,
+ 0x991ec054,
+ 0xb79f0802,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa6059c22,
+ 0x578cb7a0,
+ 0xc0549403,
+ 0xb780993b,
+ 0x0a044b0c,
+ 0xc0022a1c,
+ 0xc2506a62,
+ 0xc008aa05,
+ 0x92847d00,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xa205f839,
+ 0x4488b780,
+ 0x7d3ec01c,
+ 0xc0549102,
+ 0xb7809921,
+ 0xc01c4488,
+ 0x93447d3e,
+ 0xaa1df9f8,
+ 0xa60d9c22,
+ 0x4714b7a0,
+ 0xaa31f250,
+ 0xa922f290,
+ 0x7d00c800,
+ 0x2d7ec00f,
+ 0x4914b540,
+ 0x93a2c002,
+ 0x0a06c001,
+ 0x420cb7c0,
+ 0x0a2cc010,
+ 0x490cb580,
+ 0x9aa0ffd4,
+ 0xffd40d8a,
+ 0x0d829a27,
+ 0x9a24ffd4,
+ 0x981cc054,
+ 0x458cb780,
+ 0xf2080a82,
+ 0xc00ca2c1,
+ 0xf2680df2,
+ 0x018ba295,
+ 0x9b65ffd4,
+ 0x0d82c00e,
+ 0x09c2c0f4,
+ 0x9b5fffd4,
+ 0x0d92c00e,
+ 0x09c2c0cc,
+ 0x9b59ffd4,
+ 0x09c2c004,
+ 0x0da2c00e,
+ 0x9b53ffd4,
+ 0xc0109eab,
+ 0xffd40982,
+ 0x0a7f9b4e,
+ 0x0dbec209,
+ 0xa22df210,
+ 0x0dbcc104,
+ 0x9afbffd4,
+ 0x0a02c1f1,
+ 0x0a00c0f0,
+ 0xa239f210,
+ 0x99c8c054,
+ 0x490cb740,
+ 0x0a06c001,
+ 0x70880a24,
+ 0x92c2c001,
+ 0x9eaa0d86,
+ 0x018b9e5a,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0xffdf8c60,
+ 0xc0039000,
+ 0xc0017682,
+ 0xb7c09054,
+ 0xf248420c,
+ 0xc200aa49,
+ 0x91647d00,
+ 0x570cb740,
+ 0x0a7ac03b,
+ 0x0a04c004,
+ 0xa245f008,
+ 0xa241f008,
+ 0xcfff9e54,
+ 0xc01c0a78,
+ 0xfffc753e,
+ 0xb7409272,
+ 0xf008570c,
+ 0x3a08aa45,
+ 0xa245f008,
+ 0xb7c0978a,
+ 0x9787420c,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0xc002a61d,
+ 0xb7208400,
+ 0x0a064590,
+ 0x4508b580,
+ 0xb53f0a7f,
+ 0xb5807cf4,
+ 0xd0104588,
+ 0x0787a961,
+ 0xc0147c84,
+ 0xb7a09304,
+ 0xd032470c,
+ 0x09020958,
+ 0x09d0d0b1,
+ 0xc0020dff,
+ 0xb55f0a80,
+ 0xb55f7dec,
+ 0xb57f7ef4,
+ 0xb5bf7f6c,
+ 0xb57f7c6c,
+ 0xb55f7e74,
+ 0xd2107d6c,
+ 0x7d02aa61,
+ 0x9022c006,
+ 0x510cb760,
+ 0x5694b760,
+ 0x9952fff4,
+ 0x9a84058f,
+ 0xaa61d210,
+ 0x90e27d04,
+ 0x4588b780,
+ 0x753cc01c,
+ 0x9302c015,
+ 0xaa75da10,
+ 0x75082a3c,
+ 0x93a2c012,
+ 0x4b94b7c0,
+ 0xf231068d,
+ 0x028dab25,
+ 0x2a80cf01,
+ 0x7540d001,
+ 0x9022c001,
+ 0x7540d001,
+ 0x92f2c002,
+ 0x7540c801,
+ 0x9342c009,
+ 0x7540c801,
+ 0x9292c004,
+ 0x7540c201,
+ 0x9282c00a,
+ 0x7540c401,
+ 0x93c2c000,
+ 0x068d070b,
+ 0xab25f231,
+ 0xcf01028d,
+ 0xd0012a80,
+ 0xffff7540,
+ 0xc0019064,
+ 0x92627da0,
+ 0xaa75f250,
+ 0x7d04c001,
+ 0x91c4ffff,
+ 0x2b7ccffe,
+ 0x5a08c300,
+ 0x06d8c101,
+ 0x97e6070b,
+ 0x0f50d031,
+ 0xa9c1f208,
+ 0x5a41c180,
+ 0xd1a40a04,
+ 0xd2245b11,
+ 0x0b105a85,
+ 0x2f7cc0fe,
+ 0x0afa777c,
+ 0x4834b355,
+ 0x9e739eb3,
+ 0xc1019eaa,
+ 0xc034076a,
+ 0xc28098ef,
+ 0xe1015a08,
+ 0x036816da,
+ 0x9204ffff,
+ 0xa9c1f208,
+ 0xffff74ce,
+ 0xd0129024,
+ 0x070b0ae8,
+ 0xd60197bd,
+ 0xc0057540,
+ 0xd60191a2,
+ 0xc0017540,
+ 0xd20190f2,
+ 0xc0027540,
+ 0xd4019062,
+ 0xfffd7540,
+ 0xd21091a4,
+ 0x0d82aa61,
+ 0x5b10d324,
+ 0x2a7cc00e,
+ 0x5a05c200,
+ 0xd0114a04,
+ 0xffd42b42,
+ 0xd40198b6,
+ 0xc0117540,
+ 0x9e7392c2,
+ 0x010d0d82,
+ 0xffd40507,
+ 0x070b9876,
+ 0xb57f0986,
+ 0x97907d6c,
+ 0x7540d801,
+ 0x9022ffff,
+ 0x7540da01,
+ 0x9104fffc,
+ 0x5a10c300,
+ 0xa279f210,
+ 0xaa61d210,
+ 0xa921da10,
+ 0xda507d02,
+ 0xfffaa161,
+ 0xb7609064,
+ 0x9741508c,
+ 0x7540cc01,
+ 0x91a2c008,
+ 0x7540ce01,
+ 0x9204fffb,
+ 0xc3009e6c,
+ 0xf2295b10,
+ 0xb5dfa905,
+ 0xf2107dec,
+ 0xf208a17d,
+ 0xb77faa01,
+ 0x29307cec,
+ 0xa26df250,
+ 0xa92af210,
+ 0x0eb070c4,
+ 0xa172f250,
+ 0x4588b540,
+ 0x09029182,
+ 0x9ccec071,
+ 0xaa75f250,
+ 0x3a10c001,
+ 0xa275f250,
+ 0x9ccec071,
+ 0xaa75da10,
+ 0x75082a3c,
+ 0x90c4fffa,
+ 0xaa7df210,
+ 0x75042a0c,
+ 0x9004fffa,
+ 0xaa75f250,
+ 0x7d00c008,
+ 0xda5090c4,
+ 0xdffca96d,
+ 0x90c27cbe,
+ 0xc034058f,
+ 0xda509b10,
+ 0xcffea96d,
+ 0x7480297c,
+ 0x9182fff9,
+ 0xaa71d290,
+ 0x5921d124,
+ 0x297cc00e,
+ 0xc2000a04,
+ 0x0a045a15,
+ 0x6245c101,
+ 0x02445915,
+ 0x5a08c200,
+ 0x0a00c049,
+ 0x0a00c288,
+ 0xaa01f208,
+ 0x0d82c049,
+ 0x0d80c288,
+ 0xf010070b,
+ 0x970ea261,
+ 0xaa61d210,
+ 0xd0417d04,
+ 0xfff80ee0,
+ 0xf23190e2,
+ 0x0d8aa925,
+ 0x7e6cb55f,
+ 0xaaa2f210,
+ 0x9815ffd4,
+ 0x440cb7a0,
+ 0x9ccdc171,
+ 0x29e2d012,
+ 0x0982050b,
+ 0xffd40906,
+ 0xf2109a3c,
+ 0x0d02a9cd,
+ 0x59909e52,
+ 0xffb40d8a,
+ 0xffd49bcc,
+ 0x0d8e99fb,
+ 0x9a15ffd4,
+ 0x9bacffd4,
+ 0xffd40d86,
+ 0xb75f9a10,
+ 0x0a0a7ef4,
+ 0xa241f010,
+ 0x9ccdc171,
+ 0x0ee0d052,
+ 0x96d6070b,
+ 0xaa75f250,
+ 0x3a10c100,
+ 0xa275f250,
+ 0xa975f250,
+ 0x0a7ec006,
+ 0x3900c008,
+ 0xa175f250,
+ 0x7c74b77f,
+ 0xaae1f010,
+ 0xa261f010,
+ 0xa9a6f231,
+ 0xa9a1f210,
+ 0x0ee8d032,
+ 0xffd4070b,
+ 0xb73f9b88,
+ 0xb5a07c74,
+ 0x96b4404d,
+ 0xc0ff020d,
+ 0xc0092a40,
+ 0xc0057500,
+ 0x038d93c2,
+ 0x2bbee001,
+ 0x9102fff5,
+ 0x0ee0d031,
+ 0x940a0b02,
+ 0xaa21f208,
+ 0x718e0b04,
+ 0xa241f008,
+ 0xc0010aa0,
+ 0xf3c891c2,
+ 0x0205a93d,
+ 0x0a7ccfb7,
+ 0x0a00cf80,
+ 0x7500c100,
+ 0x9334c000,
+ 0xcfb70205,
+ 0xcf000a7c,
+ 0xc2000a00,
+ 0xffff7500,
+ 0xb75f90b2,
+ 0xf0107f74,
+ 0x7500aa41,
+ 0x93c4fffe,
+ 0x7f74b75f,
+ 0xaa41f010,
+ 0x92827500,
+ 0xf20897d6,
+ 0x9ea3a9a1,
+ 0xffd40b04,
+ 0x718e9904,
+ 0xfffe0aa0,
+ 0xc38092c4,
+ 0xc1015a0c,
+ 0x070b06d8,
+ 0xb79f9669,
+ 0x75007d6c,
+ 0x9204c007,
+ 0xaa61d210,
+ 0xc0027d04,
+ 0xb7809382,
+ 0xb73f570c,
+ 0xf2087c74,
+ 0xb580aa05,
+ 0xf250404d,
+ 0xc001a975,
+ 0xc0047c88,
+ 0xd2909002,
+ 0x7506aa71,
+ 0xf25090fc,
+ 0xc009aa75,
+ 0xf2503a00,
+ 0xb77fa275,
+ 0x058f7dec,
+ 0xcb015991,
+ 0xc0143980,
+ 0xb75f9b9a,
+ 0x74807e6c,
+ 0x93c2c000,
+ 0xc2800285,
+ 0x1a845a91,
+ 0xc000757f,
+ 0xc0069222,
+ 0xc0080d92,
+ 0xffd40986,
+ 0xc00498be,
+ 0xffd40df2,
+ 0x740098e9,
+ 0x1a849376,
+ 0x9244757f,
+ 0x7e6cb79f,
+ 0x29cef031,
+ 0x9044c006,
+ 0xffd40d8a,
+ 0x0a06994a,
+ 0x4488b580,
+ 0x4a94b5e0,
+ 0xaaf5f250,
+ 0xffd40d82,
+ 0xc28098d1,
+ 0x01815a84,
+ 0x2a84c001,
+ 0xcfff3a84,
+ 0x31d629fa,
+ 0xffd40d82,
+ 0xb7609896,
+ 0x09825694,
+ 0x9b1effd4,
+ 0x08060a02,
+ 0x4508b580,
+ 0x7c6eb79f,
+ 0x7ceeb7bf,
+ 0x7d6eb7df,
+ 0x7deeb7ff,
+ 0x8c00c004,
+ 0xda109c22,
+ 0x2a3caa75,
+ 0xfffa7504,
+ 0xd2109004,
+ 0x7d02aa61,
+ 0x9362fff9,
+ 0x490cb780,
+ 0x090ac001,
+ 0x0978c00e,
+ 0xfff97104,
+ 0xf2509252,
+ 0xc008aa75,
+ 0xfff97d00,
+ 0x058f9182,
+ 0x993fffd4,
+ 0xf2509727,
+ 0xc008aa75,
+ 0xfffc7d00,
+ 0xd2909102,
+ 0x7506aa71,
+ 0x907cfffc,
+ 0xc060977b,
+ 0xc0890dd2,
+ 0xffd40982,
+ 0xffec9852,
+ 0xb76093e0,
+ 0xb7605694,
+ 0xffd4508c,
+ 0xf2509ad7,
+ 0xc008aa75,
+ 0xc0037d00,
+ 0xb7609084,
+ 0xcb6d578c,
+ 0xc6da096e,
+ 0xd110095c,
+ 0xda101677,
+ 0xc200a976,
+ 0x62455a0f,
+ 0x2a1c1a04,
+ 0x6a62c002,
+ 0x02462d3c,
+ 0xaa15da08,
+ 0x72992a3c,
+ 0x9242c000,
+ 0xc401058f,
+ 0xc0140982,
+ 0x09029af0,
+ 0x9ccec071,
+ 0xaa75f250,
+ 0x3a00c041,
+ 0xa275f250,
+ 0x9ccec071,
+ 0xc101058f,
+ 0xc0140982,
+ 0x0db29ae0,
+ 0xffd4098e,
+ 0xb7809812,
+ 0xb7a0570c,
+ 0xf208470c,
+ 0x3a40aa05,
+ 0xa221f248,
+ 0x90a0ffe9,
+ 0xffb40d82,
+ 0x970f9a8a,
+ 0x4b94b720,
+ 0x404db780,
+ 0x7500d201,
+ 0x9082ffea,
+ 0xffea9f00,
+ 0x9e739020,
+ 0x010d0d82,
+ 0xffb40507,
+ 0x070b9a42,
+ 0x93e0ffea,
+ 0x3984598c,
+ 0x0d92c006,
+ 0x9be9ffb4,
+ 0x0df2c004,
+ 0x9814ffd4,
+ 0x93767400,
+ 0x058f9734,
+ 0x994cffd4,
+ 0xa61d979b,
+ 0x2ebed3f1,
+ 0xffd40307,
+ 0xb7809a6d,
+ 0xb7e04b0c,
+ 0xc006578c,
+ 0xc0020afc,
+ 0xd0206a62,
+ 0xfff402ce,
+ 0xd3f19814,
+ 0x75082a5e,
+ 0x9312c001,
+ 0xc2000a06,
+ 0xf0515214,
+ 0xc0022acc,
+ 0xb7a09042,
+ 0xc171440c,
+ 0x9eb39ccd,
+ 0xc0549e6b,
+ 0xf21098c3,
+ 0xb780a925,
+ 0x70884c0c,
+ 0xf25090e2,
+ 0xc004aa35,
+ 0xf2503a00,
+ 0xd210a235,
+ 0xb540aa21,
+ 0xc00e4c0c,
+ 0xc0042a7c,
+ 0xd2103a00,
+ 0xc171a221,
+ 0xffd49ccd,
+ 0xb7809bfd,
+ 0xb740570c,
+ 0x058b470c,
+ 0xaa05f208,
+ 0x0982c301,
+ 0xa241f048,
+ 0x9a5bc014,
+ 0x4b0cb780,
+ 0x2a1c0a04,
+ 0x4b0cb580,
+ 0x7e6eb79f,
+ 0x7eeeb7bf,
+ 0x7f6eb7df,
+ 0x7feeb7ff,
+ 0x8c00c002,
+ 0x7d129c22,
+ 0x91c2ffff,
+ 0x4414b7c0,
+ 0x9ccec172,
+ 0x9e6b9eb3,
+ 0x9838c054,
+ 0xa92af210,
+ 0x7e80cc00,
+ 0x90a2c004,
+ 0xa2a5da50,
+ 0xa2bdf210,
+ 0x4c0cb780,
+ 0xa925f210,
+ 0xa2a5f250,
+ 0xa2a9f250,
+ 0x90e27088,
+ 0xaa35f250,
+ 0x3a00c004,
+ 0xa235f250,
+ 0x4c8cb780,
+ 0x90e27088,
+ 0xaa35f250,
+ 0x3a08c001,
+ 0xa235f250,
+ 0xc0019e54,
+ 0xc0012a3c,
+ 0xc0037504,
+ 0xc00191a2,
+ 0xc0012d3c,
+ 0xc0047682,
+ 0xd2109082,
+ 0xb540aa21,
+ 0xb5404c8c,
+ 0xc00e4c0c,
+ 0xc0042a7c,
+ 0xd2103a00,
+ 0xc172a221,
+ 0xffd49cce,
+ 0xb7809b93,
+ 0xb740570c,
+ 0xf208470c,
+ 0xf048aa05,
+ 0x9955a241,
+ 0x0982058b,
+ 0x9bd9c014,
+ 0xaa21d210,
+ 0x2ac4f011,
+ 0x93c4c001,
+ 0xaa35f250,
+ 0x90e27d08,
+ 0xaa35f250,
+ 0x3a00c008,
+ 0xa235f250,
+ 0x165fd110,
+ 0x096ecb6d,
+ 0x5a0fc200,
+ 0x095cc6da,
+ 0xda106245,
+ 0x1a04a936,
+ 0xc0022a1c,
+ 0x2d3c6a62,
+ 0xda08024e,
+ 0x2a3caa15,
+ 0xc0007299,
+ 0x058b9222,
+ 0x0982c401,
+ 0x010b99c5,
+ 0x9ccec071,
+ 0xaa35f250,
+ 0x3a00c041,
+ 0xa235f250,
+ 0x9ccec071,
+ 0xc101058b,
+ 0x99b60982,
+ 0xf250975c,
+ 0xc040aa35,
+ 0xf2503a00,
+ 0x9777a235,
+ 0xffd4058b,
+ 0xc0349beb,
+ 0x974f997d,
+ 0xaa21d210,
+ 0xfffc7d04,
+ 0xf2509242,
+ 0xc080aa35,
+ 0xfffc7d00,
+ 0xf2509182,
+ 0x7d02aa35,
+ 0x90e4fffc,
+ 0xaa35f250,
+ 0x7d00c008,
+ 0x9022fffc,
+ 0xaa35f250,
+ 0x3a00c020,
+ 0xa235f250,
+ 0xd210977f,
+ 0x7d04aa21,
+ 0x9362fffb,
+ 0xaa35f250,
+ 0x7d00c080,
+ 0x92a2fffb,
+ 0xaa35f250,
+ 0xfffb7d02,
+ 0xf2509204,
+ 0xc008aa35,
+ 0xfffb7d00,
+ 0x97e39142,
+ 0x4608b780,
+ 0xc01c9e5b,
+ 0x90e27d3e,
+ 0x0dc2c809,
+ 0x0dc0c218,
+ 0x9380c01f,
+ 0x90c0ffdd,
+ 0xb780a60d,
+ 0x9e5d4a0c,
+ 0x90e27500,
+ 0x981cc034,
+ 0x4a0cb780,
+ 0x93647500,
+ 0x420cb780,
+ 0xaa09f248,
+ 0x7d00c004,
+ 0xf24890e2,
+ 0xc004aa35,
+ 0xc0057d00,
+ 0x9eab9144,
+ 0xb5a00986,
+ 0xc0144a0c,
+ 0x0d829b30,
+ 0xc1719e5c,
+ 0xf2489ccc,
+ 0xc003a935,
+ 0xf2483900,
+ 0xc171a135,
+ 0xf2489ccc,
+ 0xc008a935,
+ 0xc0007c80,
+ 0xb7409222,
+ 0xf0104714,
+ 0xcffdaa41,
+ 0x01092a7e,
+ 0x3900c003,
+ 0xa141f010,
+ 0xa9c1f010,
+ 0xa241f010,
+ 0x458cb7c0,
+ 0xa1d6f208,
+ 0xaa21d208,
+ 0x2ac2f012,
+ 0x92c4c003,
+ 0xaa35f248,
+ 0x7d00c008,
+ 0x9222c000,
+ 0x478cb720,
+ 0xb5800a42,
+ 0xb580502d,
+ 0xb580522d,
+ 0xb580542d,
+ 0xb580562d,
+ 0xb580582d,
+ 0xf2485a2d,
+ 0xc008aa35,
+ 0xc0017d00,
+ 0xda089204,
+ 0x2a3caa35,
+ 0xc0027514,
+ 0xd20891c2,
+ 0x7d04aa21,
+ 0x9044c001,
+ 0x470cb780,
+ 0x0948d0b1,
+ 0xaa41f008,
+ 0x93a27d20,
+ 0x0de2c008,
+ 0x9a50ffb4,
+ 0xc0710902,
+ 0xf2489cce,
+ 0xc005aa35,
+ 0xf2483a00,
+ 0xc071a235,
+ 0x08069cce,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0xa2d6f248,
+ 0x9e6b97de,
+ 0x0de2c02c,
+ 0x9a05ffb4,
+ 0xc02c9e6b,
+ 0xffb40df2,
+ 0x9e6b9a00,
+ 0x0d82c02e,
+ 0x99fbffb4,
+ 0xc02e9e6b,
+ 0xffb40d92,
+ 0x9e6b99f6,
+ 0x0da2c02e,
+ 0x99f1ffb4,
+ 0xc02e9e6b,
+ 0xffb40dd2,
+ 0xda0899ec,
+ 0x2a3caa35,
+ 0xfffd7514,
+ 0xc02e92c4,
+ 0xc0cc0dc2,
+ 0xffb409c2,
+ 0x97ae99e0,
+ 0x9b339eab,
+ 0x0daa97bc,
+ 0xc0340982,
+ 0x9754993c,
+ 0xc008a605,
+ 0xffb40df2,
+ 0xe0409a01,
+ 0x93442800,
+ 0xc0060281,
+ 0x098a0da2,
+ 0xffb49ead,
+ 0xc00899c8,
+ 0xffb40df2,
+ 0xc18099f3,
+ 0x0a847c00,
+ 0x75429124,
+ 0xb79f92f4,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0x9e6d9c22,
+ 0xa60d97ef,
+ 0xc0069e5d,
+ 0xffb40dc2,
+ 0x9e8699df,
+ 0x0db2c006,
+ 0x99daffb4,
+ 0x2830c001,
+ 0x58499e72,
+ 0xcffe0818,
+ 0x0a06297c,
+ 0x5300c200,
+ 0xd2a45930,
+ 0x12ac5a94,
+ 0xc0149403,
+ 0xc0089b21,
+ 0xffb40db2,
+ 0xc0ff99c5,
+ 0x1050287e,
+ 0x92da7351,
+ 0x5e41d322,
+ 0x5a30c200,
+ 0x940312cc,
+ 0x9b10c014,
+ 0x0dc2c008,
+ 0x99b4ffb4,
+ 0x287ec0ff,
+ 0x73511050,
+ 0xc00892da,
+ 0xffb40df2,
+ 0xc08099ab,
+ 0x93447c00,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x0685a60d,
+ 0x9e5e0287,
+ 0xd0129b96,
+ 0x9bb40dd8,
+ 0x0986c001,
+ 0x0dd2c008,
+ 0xffb409ac,
+ 0xc0089962,
+ 0x09820dd2,
+ 0x995dffb4,
+ 0x05dad010,
+ 0x5a90c280,
+ 0x3a8c1984,
+ 0x31d659c0,
+ 0x0dd2c008,
+ 0x9951ffb4,
+ 0x91627740,
+ 0xf2290a82,
+ 0x0a84a9c5,
+ 0x0dd2c008,
+ 0x9947ffb4,
+ 0x9304715b,
+ 0x0dd2c008,
+ 0xffb4099e,
+ 0xb79f9940,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0xa60d9762,
+ 0x9e9d9e5d,
+ 0x9992ffd4,
+ 0x0d969b5c,
+ 0xb7c09b7b,
+ 0xc1724414,
+ 0xb7809cce,
+ 0xb740578c,
+ 0x12d8580c,
+ 0x0a6ecb6d,
+ 0x5a8fc280,
+ 0x0a5cc6da,
+ 0x030562d9,
+ 0xa2cdf008,
+ 0xa2c6f008,
+ 0x0aa8d051,
+ 0xa9c5f229,
+ 0x0dd2c008,
+ 0x9913ffb4,
+ 0x9324718a,
+ 0xc1729b3a,
+ 0xb79f9cce,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0xf8399c22,
+ 0xb780a205,
+ 0xc01c4488,
+ 0x90447d3e,
+ 0x08069b28,
+ 0xaa1df9f8,
+ 0xb7809c22,
+ 0x9e5b4a0c,
+ 0x90e27500,
+ 0x0dc2c809,
+ 0x0d80c450,
+ 0x9180c012,
+ 0x9240c016,
+ 0xb780a60d,
+ 0xc4014608,
+ 0x06877ec0,
+ 0xc00e0a04,
+ 0xb5802a7c,
+ 0x90a24608,
+ 0x7edcc001,
+ 0x9344c005,
+ 0x0a06c209,
+ 0x0a38c102,
+ 0xc0057b59,
+ 0xcefe9382,
+ 0x7b590a49,
+ 0x9122c005,
+ 0x0d9a9e6b,
+ 0x9831c034,
+ 0x7f422ef9,
+ 0x9304c005,
+ 0x7f40c008,
+ 0x9102c002,
+ 0x470cb780,
+ 0x0ac8d0b1,
+ 0xaa21f208,
+ 0x93a27d20,
+ 0x0de2c008,
+ 0x98e8ffb4,
+ 0xaa21f208,
+ 0x93a27d20,
+ 0x0de2c008,
+ 0x98e0ffb4,
+ 0x4d8cb500,
+ 0xaa21f208,
+ 0x93a27d20,
+ 0x0de2c008,
+ 0x98d6ffb4,
+ 0xaa21f208,
+ 0x93a27d20,
+ 0x0de2c008,
+ 0x98ceffb4,
+ 0x4d8cb740,
+ 0x6862c002,
+ 0x578cb780,
+ 0x2900cf01,
+ 0x7480c601,
+ 0x0188d020,
+ 0x9002c008,
+ 0x7480c601,
+ 0x9092c007,
+ 0x7480c201,
+ 0xb7809184,
+ 0x75004a0c,
+ 0x93e2c008,
+ 0xc8099e5b,
+ 0xc3300dc2,
+ 0x99db0d80,
+ 0x7f48c001,
+ 0x93a2c000,
+ 0x4a14b740,
+ 0xc0077680,
+ 0xb7809262,
+ 0xf288458c,
+ 0xf050aa09,
+ 0xd810a955,
+ 0xc201a25d,
+ 0xf0503900,
+ 0xd010a155,
+ 0x7d04aa41,
+ 0x9084c005,
+ 0xaa41d010,
+ 0xc0047d02,
+ 0xc00193e4,
+ 0xc0017f54,
+ 0xb76090a2,
+ 0x74c04a0c,
+ 0x9082c006,
+ 0x470cb780,
+ 0x4614b760,
+ 0xf2c80902,
+ 0xf010a111,
+ 0xb780a976,
+ 0xd1104d0c,
+ 0xb7800529,
+ 0xb540420c,
+ 0xf2484d0c,
+ 0xc001aa09,
+ 0x90c27d10,
+ 0xaa71f010,
+ 0xb5800228,
+ 0x9e9b4d0c,
+ 0x9b7affb4,
+ 0x4608b780,
+ 0xc00e1a04,
+ 0xb5802a7c,
+ 0xb79f4608,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0x9e6b9c22,
+ 0xc0140d96,
+ 0x97599b8a,
+ 0x0a06c209,
+ 0x0a38c102,
+ 0x2efecdff,
+ 0xfffa7b59,
+ 0xb7609104,
+ 0xb7605614,
+ 0xffb4518c,
+ 0x7f429aa3,
+ 0x9182fffa,
+ 0x4a8cb7a0,
+ 0x0db2c00a,
+ 0x983cffb4,
+ 0xaa2dda48,
+ 0x70085841,
+ 0xf24890e2,
+ 0xc401aa35,
+ 0xf2483a00,
+ 0xda48a235,
+ 0xf248a025,
+ 0x7d10aa35,
+ 0x93a2c002,
+ 0x470cb780,
+ 0x0d860902,
+ 0x4a8cb7c0,
+ 0xa105f2c8,
+ 0x988fffb4,
+ 0x987effb4,
+ 0x986effb4,
+ 0xaa29f208,
+ 0x2a3cc001,
+ 0x7508c001,
+ 0x9242c003,
+ 0x4488b780,
+ 0xc00e1a04,
+ 0xb5802a7c,
+ 0xb7804488,
+ 0xcb6d578c,
+ 0xc6da0d6e,
+ 0x11680d5c,
+ 0xc101590f,
+ 0x09046125,
+ 0xc002291c,
+ 0xc0406962,
+ 0xc008a945,
+ 0xfff87c80,
+ 0xc8099064,
+ 0x018b0dc2,
+ 0x0df0c394,
+ 0x96fb9920,
+ 0xaa55f050,
+ 0x7d00c010,
+ 0x93e4fffa,
+ 0xaa55f050,
+ 0x2a10e000,
+ 0x92c2c001,
+ 0xaa55f050,
+ 0x0d92c040,
+ 0xc0080986,
+ 0xf0503a00,
+ 0xffb4a255,
+ 0x974c99d4,
+ 0x7480c801,
+ 0x9302c000,
+ 0x7480d601,
+ 0x90c4fff9,
+ 0x9b88ffb4,
+ 0xda489722,
+ 0x7008aa29,
+ 0x9044fffd,
+ 0xaa35f248,
+ 0xf2483a10,
+ 0x979ba235,
+ 0x973d9f00,
+ 0x97139a99,
+ 0x4a0cb780,
+ 0xc0017500,
+ 0x9e5b9122,
+ 0x0dc2c809,
+ 0x0da0c124,
+ 0x970798e2,
+ 0x970e9f00,
+ 0x470cb740,
+ 0xf0c80585,
+ 0xf050a251,
+ 0xc011aa55,
+ 0xf0503a00,
+ 0xffb4a255,
+ 0x97169ab7,
+ 0xaa3df208,
+ 0x75022a0c,
+ 0x9184fffc,
+ 0x0dc2c809,
+ 0xc422018b,
+ 0x98c50dd0,
+ 0xfff4978b,
+ 0x96e798cb,
+ 0x989affb4,
+ 0xb74096e4,
+ 0xc008470c,
+ 0xf0080900,
+ 0x2a41aa41,
+ 0xf0083a20,
+ 0x9c22a241,
+ 0x470cb720,
+ 0x4e0cb780,
+ 0x512db580,
+ 0xa60597ef,
+ 0xaa75f050,
+ 0xb7a09d3d,
+ 0xd052440c,
+ 0xc17128c0,
+ 0xb7609ccd,
+ 0xb7605904,
+ 0xf010598c,
+ 0x9e39a966,
+ 0xaa6dc020,
+ 0x5a08c200,
+ 0xaa05e230,
+ 0xc0027115,
+ 0x09029362,
+ 0x4018b960,
+ 0x5a08c100,
+ 0xaa05e230,
+ 0xc0027299,
+ 0x09049302,
+ 0x9d679301,
+ 0x74409e39,
+ 0xa96dc020,
+ 0x9d640a02,
+ 0x0a42d001,
+ 0xaa05c210,
+ 0x290c0904,
+ 0xc0027104,
+ 0xb7209042,
+ 0xcf00470c,
+ 0xd1242d01,
+ 0xd2525808,
+ 0x9daa0898,
+ 0xe0029e39,
+ 0xc020a128,
+ 0xf010a16d,
+ 0x9e9aaa65,
+ 0xe0200c86,
+ 0xb740a209,
+ 0xd0004e0c,
+ 0x7640aa61,
+ 0x297dcfce,
+ 0x5a20c200,
+ 0x2a00c030,
+ 0xb5803244,
+ 0xb7404e0c,
+ 0xd0004e0c,
+ 0xcf3eaa65,
+ 0xc200297d,
+ 0xc0c05a28,
+ 0x32442a00,
+ 0x4e0cb580,
+ 0x4e0cb740,
+ 0x512db540,
+ 0x9b849042,
+ 0x9ccdc171,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0x470cb720,
+ 0x0a0497d5,
+ 0x2946d011,
+ 0xb72097bd,
+ 0x9e39470c,
+ 0xa16dc020,
+ 0xa60597cb,
+ 0x0d829e5d,
+ 0x9951ff94,
+ 0xf2480d82,
+ 0x9e5aa9ad,
+ 0xff940507,
+ 0xb7809967,
+ 0x08064488,
+ 0xc00e1a04,
+ 0xb5802a7c,
+ 0xb79f4488,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa6059c22,
+ 0x0d829e5d,
+ 0x9937ff94,
+ 0xf2480d82,
+ 0x9e5aa9b1,
+ 0xb79f0507,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0x9100ff8a,
+ 0x4f0cb780,
+ 0x4e8cb740,
+ 0x0a040087,
+ 0x71042a7c,
+ 0x9f009044,
+ 0x4414b740,
+ 0x9ccec072,
+ 0x4f0cb780,
+ 0x4f0cb740,
+ 0x5a0cb760,
+ 0x5a0cc200,
+ 0x0126590c,
+ 0xa186e230,
+ 0xa0c5f008,
+ 0x40a9b780,
+ 0xb5800a04,
+ 0xb74040a9,
+ 0x09044f0c,
+ 0xb540297c,
+ 0xc0724f0c,
+ 0x9c229cce,
+ 0xb760a60d,
+ 0xb7804e8c,
+ 0x70c84f0c,
+ 0x9202c002,
+ 0x5a0cb7c0,
+ 0xb740941e,
+ 0x06854414,
+ 0x9ccdc172,
+ 0xaa25d208,
+ 0xd2081a04,
+ 0xd208a225,
+ 0x7480a925,
+ 0xf24890e4,
+ 0xc201aa35,
+ 0xc0017d00,
+ 0xc17291a4,
+ 0xb7609ccd,
+ 0xb7804e8c,
+ 0x70c84f0c,
+ 0x9202c001,
+ 0x5a0cc180,
+ 0xaa86e268,
+ 0x4414b740,
+ 0xaa85f208,
+ 0xc0719e52,
+ 0xd0119cce,
+ 0x2a7c0a32,
+ 0x4e8cb580,
+ 0x9ccec071,
+ 0x9eab7740,
+ 0x9222fffe,
+ 0x9c62060b,
+ 0x7c3ec01c,
+ 0x9124fffe,
+ 0x018b058b,
+ 0xb7409b90,
+ 0x97c44414,
+ 0xffb49eab,
+ 0xc172996f,
+ 0xb7609ccd,
+ 0xb7804e8c,
+ 0x70c84f0c,
+ 0x9284fffe,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0xb780a60d,
+ 0x9e5d4a0c,
+ 0xd0127500,
+ 0x91221000,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0xb5600986,
+ 0x9aba4a14,
+ 0xaa21d208,
+ 0xc0007d20,
+ 0xb78092a4,
+ 0xcb6d578c,
+ 0xc6da0d6e,
+ 0x11580d5c,
+ 0xc101590f,
+ 0x19046125,
+ 0xc002291c,
+ 0xc0406962,
+ 0x7480a945,
+ 0x9064c003,
+ 0xaa21d208,
+ 0xc0017d20,
+ 0xf2489162,
+ 0xc020aa35,
+ 0xc0017d00,
+ 0xb7409222,
+ 0xcb6d5794,
+ 0xc6da096e,
+ 0xc101095c,
+ 0xc2001254,
+ 0x62455a0f,
+ 0x2a1c1a04,
+ 0x6a62c002,
+ 0x02c5d120,
+ 0xa921d210,
+ 0x7cbec01c,
+ 0x9044c001,
+ 0x4894b7a0,
+ 0xb7869e69,
+ 0x750058ad,
+ 0x92a2c000,
+ 0x0a029e69,
+ 0x58adb586,
+ 0xc0149eab,
+ 0x08069b1c,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x4894b7a0,
+ 0x9eab97ee,
+ 0x98f2ffb4,
+ 0x979b0806,
+ 0xa9bdda10,
+ 0xffb4058b,
+ 0xda5098de,
+ 0x058ba9a9,
+ 0xffb40301,
+ 0x718098d8,
+ 0x9282fffe,
+ 0x4894b7a0,
+ 0xd0119e82,
+ 0x9e6909e2,
+ 0x9eab0a06,
+ 0x58adb586,
+ 0x29fccffe,
+ 0x2d7ccffe,
+ 0x9ad3c014,
+ 0xb7a097c4,
+ 0xc1724414,
+ 0xc0409ccd,
+ 0x09860d92,
+ 0x9bafff94,
+ 0x4714b740,
+ 0x0d20d031,
+ 0xaa41f008,
+ 0x7d04c001,
+ 0xc0019382,
+ 0xf0100a0a,
+ 0xc172a24d,
+ 0x97879ccd,
+ 0x470cb740,
+ 0xaa45f0c8,
+ 0xb3407500,
+ 0xc00148a2,
+ 0xb5803a04,
+ 0xf0c84f8c,
+ 0xc001aa51,
+ 0xb5803a04,
+ 0x9c22500c,
+ 0x4714b740,
+ 0xf0d00a02,
+ 0xf0d0a249,
+ 0x7480a94d,
+ 0x48a2b340,
+ 0x4f8cb780,
+ 0xa245f0d0,
+ 0xb7409c22,
+ 0x0a024714,
+ 0xa255f0d0,
+ 0xa959f0d0,
+ 0xb3407480,
+ 0xb78048a2,
+ 0xf0d0500c,
+ 0x9c22a251,
+ 0x530cb780,
+ 0x9c81cb10,
+ 0x520cb740,
+ 0x91627480,
+ 0x520cb780,
+ 0xb5801a04,
+ 0xb740520c,
+ 0x7480520c,
+ 0x9262c000,
+ 0x528cb780,
+ 0x91827500,
+ 0x528cb780,
+ 0xb5801a04,
+ 0xb740528c,
+ 0x7480528c,
+ 0x08129064,
+ 0x08029c22,
+ 0x08069c22,
+ 0xb7809c22,
+ 0x9e5a438c,
+ 0xc0007502,
+ 0x75029322,
+ 0x750890e6,
+ 0x93c2c000,
+ 0x438cb700,
+ 0x76c89c22,
+ 0x9022c001,
+ 0xc00076ca,
+ 0x76c29302,
+ 0x92a2c000,
+ 0xb5800a0a,
+ 0xb700438c,
+ 0x9c22438c,
+ 0xc00076c8,
+ 0x76ca9242,
+ 0x9142ffff,
+ 0xb5800a0a,
+ 0x97f4438c,
+ 0xffff76ce,
+ 0x0a0691e4,
+ 0x438cb580,
+ 0x438cb700,
+ 0xb5409c22,
+ 0xb700438c,
+ 0x9c22438c,
+ 0x420cb780,
+ 0xa90af208,
+ 0x35b45d20,
+ 0xa18af208,
+ 0xa60d9c22,
+ 0x0a020687,
+ 0x9cccc171,
+ 0x488cb720,
+ 0x470cb740,
+ 0xb5860a06,
+ 0xc00858ad,
+ 0xf0080900,
+ 0x2a41aa41,
+ 0xf0083a08,
+ 0xb740a241,
+ 0xd0114b14,
+ 0xd0110e22,
+ 0xd0112d2e,
+ 0x71442ace,
+ 0x9062c001,
+ 0x578cb7c0,
+ 0xd011940a,
+ 0xd0110a52,
+ 0xd0112d2e,
+ 0x708a2ace,
+ 0x92e2c000,
+ 0x6a51d0f1,
+ 0x01ccd020,
+ 0xa961d010,
+ 0x7c80c008,
+ 0x91e2ffff,
+ 0xaa75f050,
+ 0x7d00c004,
+ 0x9122ffff,
+ 0x9a1fc014,
+ 0x4b14b740,
+ 0xb76097e3,
+ 0x9e6b5394,
+ 0x9a31c014,
+ 0xa60d9400,
+ 0x438cb780,
+ 0x9e5d0307,
+ 0x540cb580,
+ 0xb7a09baa,
+ 0xf2504214,
+ 0x7d20aa29,
+ 0x90e4c005,
+ 0xc000754a,
+ 0x754293e2,
+ 0x9382c000,
+ 0xc002754c,
+ 0x755490a2,
+ 0x9042c002,
+ 0x9b609eab,
+ 0x438cb780,
+ 0xc0047508,
+ 0xb7809322,
+ 0x7504438c,
+ 0x9302c003,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x4a8cb740,
+ 0x538cb5c0,
+ 0x90e27480,
+ 0xaa55f048,
+ 0x3a00c002,
+ 0xa255f048,
+ 0x0d82c002,
+ 0x9815ff94,
+ 0x0dbec100,
+ 0x981bff94,
+ 0xb5800a0a,
+ 0xb7804488,
+ 0x0902470c,
+ 0xa105f2c8,
+ 0x4a8cb780,
+ 0x4a14b740,
+ 0xfffe7299,
+ 0xf2509164,
+ 0xc004aa29,
+ 0xfffe7d00,
+ 0x9eb390a2,
+ 0x97c19b61,
+ 0x4a0cb740,
+ 0x91627480,
+ 0x538cb780,
+ 0x90e47500,
+ 0xaa55f048,
+ 0x3a00c002,
+ 0xa255f048,
+ 0x9be6ff94,
+ 0xaa29f250,
+ 0x7d00c010,
+ 0x9182fffd,
+ 0x470cb720,
+ 0x452db780,
+ 0xfffd7502,
+ 0xb76090b4,
+ 0xc0724414,
+ 0xb7409ccf,
+ 0xc0014814,
+ 0xc0d40a0e,
+ 0xc0400a00,
+ 0xc8100d10,
+ 0x090a9c83,
+ 0xf0100a02,
+ 0xd031a241,
+ 0xf0100990,
+ 0xf008a141,
+ 0xc001aa61,
+ 0xc0012a30,
+ 0x90427518,
+ 0xc0019321,
+ 0xb5800a32,
+ 0xc07241ad,
+ 0x977f9ccf,
+ 0x7d80c1c0,
+ 0xb7409182,
+ 0x74804a0c,
+ 0x9082c001,
+ 0xaa55f048,
+ 0x3a00c002,
+ 0xa255f048,
+ 0xb79f9eb3,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0x0da69707,
+ 0x9eb39afc,
+ 0x97579b03,
+ 0x4a0cb780,
+ 0x90a27500,
+ 0xaa01d208,
+ 0x90847d08,
+ 0x9aba0da2,
+ 0x0d9e975f,
+ 0x975c9ab7,
+ 0x4a8cb740,
+ 0xfffe7480,
+ 0x97df9364,
+ 0xb720a605,
+ 0x0687488c,
+ 0x58adb786,
+ 0x91227500,
+ 0xaae9f010,
+ 0xc001020b,
+ 0xc0012a3c,
+ 0x90e27502,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xaa75f050,
+ 0x7d00c080,
+ 0xc9fe92c2,
+ 0xc2002afd,
+ 0x0da23a80,
+ 0xff94018b,
+ 0xf25099d6,
+ 0xf210aa35,
+ 0xc001a2a9,
+ 0xf2503a20,
+ 0xb79fa235,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa60d9c22,
+ 0xaa61d010,
+ 0x7d049e5d,
+ 0x90a2c002,
+ 0xa9edd850,
+ 0x7cfedffc,
+ 0x93e2c001,
+ 0x5794b740,
+ 0x096ecb6d,
+ 0x095cc6da,
+ 0x1254c101,
+ 0x5a0fc200,
+ 0x1a046245,
+ 0xc0022a1c,
+ 0xd1206a62,
+ 0xd01001c5,
+ 0xc01ca961,
+ 0x90c27cbe,
+ 0xaa75f050,
+ 0xc0017d08,
+ 0xcffe9182,
+ 0xcffe0efa,
+ 0x9eab0b7e,
+ 0x29fccffe,
+ 0x9aa3ff94,
+ 0xc000700c,
+ 0xb7209302,
+ 0xd011488c,
+ 0xd0120dd2,
+ 0x9eab1902,
+ 0xcffe0a06,
+ 0xcffe29fc,
+ 0xb5862d7c,
+ 0xb79f58ad,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0xb79f9497,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0xd0109c22,
+ 0x7d04aa61,
+ 0x9262fffe,
+ 0xa9fdd810,
+ 0x9a79ff94,
+ 0xa9adda48,
+ 0xd0119e85,
+ 0x97cc0b02,
+ 0xaa71f010,
+ 0xd0129e98,
+ 0xd8080cb8,
+ 0xf010a265,
+ 0xd051a97e,
+ 0x098a0cb8,
+ 0x46d4b540,
+ 0xa969f010,
+ 0x46d4b740,
+ 0x434cb540,
+ 0xaa6df010,
+ 0x404db740,
+ 0x2d00c080,
+ 0x2a7cc0fe,
+ 0x2901cf00,
+ 0xb5803244,
+ 0xb74040cc,
+ 0x7680402d,
+ 0x19b2d001,
+ 0x414cb540,
+ 0x4048b560,
+ 0x402db720,
+ 0x414cb520,
+ 0xaa71d850,
+ 0x45cab580,
+ 0xa975d850,
+ 0x454ab540,
+ 0xa9e6d810,
+ 0x2dfcc0fe,
+ 0xb5605d89,
+ 0xb7204452,
+ 0x7e424055,
+ 0x48a2b340,
+ 0x46ccb780,
+ 0xb5803a40,
+ 0x9c2246cc,
+ 0xd0080a12,
+ 0xd010a261,
+ 0x0087aa65,
+ 0x750ac010,
+ 0x90e2c001,
+ 0xa969f010,
+ 0x0db8d031,
+ 0x40abb540,
+ 0xaa65d810,
+ 0x46adb580,
+ 0xa962f008,
+ 0xa965f010,
+ 0x0a06c001,
+ 0x2d01cf00,
+ 0x412db580,
+ 0xc0fe9e54,
+ 0x3128297c,
+ 0x40adb540,
+ 0xa9e1f008,
+ 0xb3407cc2,
+ 0xb78048a2,
+ 0x3a4046ad,
+ 0x46adb580,
+ 0xd0089c22,
+ 0xc00eaa61,
+ 0x3a402a7c,
+ 0xa261d008,
+ 0xf83997d4,
+ 0x8420a205,
+ 0x091bcffc,
+ 0xb59f0a22,
+ 0xb55f7c68,
+ 0xd8107ce8,
+ 0xe032aa65,
+ 0xb57f8d80,
+ 0x09867fea,
+ 0x7eeab59f,
+ 0x7f72b55f,
+ 0x9bc2ff54,
+ 0xaa19f9f8,
+ 0xf8399c22,
+ 0x8420a205,
+ 0xa8e5f010,
+ 0xa966d810,
+ 0x8d80e032,
+ 0x28fcc0fe,
+ 0xcffc0a22,
+ 0x0986090b,
+ 0x7c68b59f,
+ 0x7ce8b55f,
+ 0x7ef2b55f,
+ 0x7fecb53f,
+ 0x9ba6ff54,
+ 0xaa19f9f8,
+ 0xf8399c22,
+ 0x8420a205,
+ 0xa8e5d810,
+ 0xa976f050,
+ 0x8d80e032,
+ 0xcffc0a22,
+ 0x09820917,
+ 0x7c68b59f,
+ 0x7ce8b55f,
+ 0x7ff4b55f,
+ 0x7eeab53f,
+ 0x9b8cff54,
+ 0xaa19f9f8,
+ 0xa60d9c22,
+ 0xb7408440,
+ 0x0a424a14,
+ 0x091fcffc,
+ 0xb59f7680,
+ 0xb55f7868,
+ 0x070778e8,
+ 0xf0510307,
+ 0xc0018c80,
+ 0xd8109202,
+ 0xb760aa45,
+ 0x0585458c,
+ 0x7ceab59f,
+ 0xa9e9f088,
+ 0x29fccffe,
+ 0x9985ff94,
+ 0x4a14b760,
+ 0xd8509e85,
+ 0xcffea9ed,
+ 0xff942efc,
+ 0xcffe997c,
+ 0xe052287c,
+ 0x09868d80,
+ 0xa32df208,
+ 0xa029da08,
+ 0xa2aeda08,
+ 0xa32af208,
+ 0x9b52ff54,
+ 0x7deeb79f,
+ 0x7e6eb7bf,
+ 0x7eeeb7df,
+ 0x8c20c002,
+ 0xcffe9c22,
+ 0x9e680efe,
+ 0xa60597e7,
+ 0xb7808440,
+ 0xf050420c,
+ 0xf248aaf6,
+ 0xc100aa09,
+ 0xc0017d00,
+ 0x0a429122,
+ 0x8c80f051,
+ 0x7868b59f,
+ 0x7fecb57f,
+ 0xa975f050,
+ 0xa966d810,
+ 0x0a03cffc,
+ 0xa225d208,
+ 0xa129f208,
+ 0xa126f208,
+ 0xa9fdd810,
+ 0x993dff94,
+ 0x5db9d2a2,
+ 0x8d80e052,
+ 0xda082984,
+ 0xff54a025,
+ 0xb79f9b19,
+ 0xb7bf7e6e,
+ 0xc0027eee,
+ 0x9c228c00,
+ 0x8c80f051,
+ 0xb59f0a32,
+ 0x97db7868,
+ 0x4d96b740,
+ 0x9c88c001,
+ 0xc00176c0,
+ 0x58202800,
+ 0xb33241b0,
+ 0xf0114844,
+ 0xb3400c20,
+ 0xf81048a2,
+ 0x7086a942,
+ 0x78009324,
+ 0xc0219c22,
+ 0xb7007ec0,
+ 0xb300400e,
+ 0x9c224a24,
+ 0x7cc2c001,
+ 0xc07190c2,
+ 0xd0709c8c,
+ 0x31b04580,
+ 0xf839a48d,
+ 0x9feca185,
+ 0xa81df9f8,
+ 0x9c228c60,
+ 0x9c88c002,
+ 0x9c80c001,
+ 0x2c04c001,
+ 0xc0705c20,
+ 0x58482800,
+ 0xb7009c22,
+ 0xb7604035,
+ 0xc00243bf,
+ 0x0d2e7200,
+ 0x50a2b330,
+ 0x87020d06,
+ 0x9ccec074,
+ 0xb7009cf3,
+ 0xc4024035,
+ 0x55447200,
+ 0xb5004404,
+ 0x9cf04035,
+ 0x9ccec074,
+ 0x5c880d2a,
+ 0x9c1b0c84,
+ 0xe0139d33,
+ 0xf8398480,
+ 0xc051a205,
+ 0xc8099c84,
+ 0xc57e0a42,
+ 0x70080a60,
+ 0x9222c006,
+ 0x81010d9c,
+ 0x0007e000,
+ 0x2de2cffe,
+ 0xb3320407,
+ 0xc809486a,
+ 0xc5a60cc2,
+ 0xe0330cb0,
+ 0xc80185a0,
+ 0xc0012980,
+ 0x0096088a,
+ 0xa0c1f818,
+ 0x8420f171,
+ 0xa47dc9f8,
+ 0x0c820882,
+ 0xa0e5f839,
+ 0xa0e5f839,
+ 0xa41fca08,
+ 0x945f8085,
+ 0xc8099cef,
+ 0xc57e8542,
+ 0x9c178560,
+ 0xc8109c02,
+ 0xc010ac1f,
+ 0xb71f9c82,
+ 0x9cff794e,
+ 0x40eeb500,
+ 0x8400e172,
+ 0x9c88c001,
+ 0x4000b940,
+ 0xa41fc810,
+ 0xe0549cf0,
+ 0x80818500,
+ 0xa4ddc8e0,
+ 0x9c8ec001,
+ 0xc0020d02,
+ 0xc0019c8b,
+ 0xb9209c87,
+ 0xc0014000,
+ 0xc0097ec0,
+ 0xd0120882,
+ 0xc8003002,
+ 0x0181a545,
+ 0x2982c00d,
+ 0x9c87c052,
+ 0x3984c001,
+ 0x406fb560,
+ 0x8460c006,
+ 0x9c8ac071,
+ 0x9c8ac002,
+ 0xca050181,
+ 0xcf012980,
+ 0x5d712d00,
+ 0x2928d017,
+ 0x296ceffe,
+ 0x3984c001,
+ 0x4016b720,
+ 0x9322c001,
+ 0xc0710d86,
+ 0xd02e9c8c,
+ 0xd0175568,
+ 0x31b02988,
+ 0xd1220d40,
+ 0x08405c08,
+ 0xa826e000,
+ 0x9ba39daf,
+ 0xc0719cef,
+ 0xd0709c8e,
+ 0xb70031a0,
+ 0x8003406f,
+ 0x9c8bc871,
+ 0xdffc9c06,
+ 0xfffe7cfe,
+ 0xc40191a4,
+ 0xfffe7c00,
+ 0xf0249124,
+ 0xe1325884,
+ 0xe0538410,
+ 0xc8108410,
+ 0x9de8ad07,
+ 0x5884f024,
+ 0x2802c005,
+ 0xac9dc8f8,
+ 0x9c8bc030,
+ 0x9c8dc030,
+ 0xc0719783,
+ 0xe0039c8e,
+ 0xd0172870,
+ 0xcffe29a8,
+ 0x31b4296c,
+ 0xd0240912,
+ 0xc0045949,
+ 0xfffe0822,
+ 0xc18090c4,
+ 0xcff95d24,
+ 0x5d292d80,
+ 0xd83105b4,
+ 0xd810a8e6,
+ 0xc800a962,
+ 0xb3127e40,
+ 0x5d404842,
+ 0xc0800494,
+ 0x2d0c5d59,
+ 0x5c08d122,
+ 0xf83997af,
+ 0xe033aa25,
+ 0x9d458c10,
+ 0xc0729c22,
+ 0x9e589ccf,
+ 0xa6059c22,
+ 0x0e42c809,
+ 0x32c6b08a,
+ 0xb7400281,
+ 0xb5204d8e,
+ 0x7480548c,
+ 0x93e2c000,
+ 0x09d8d0b1,
+ 0x0d829ead,
+ 0x0e42c809,
+ 0x2d46b08a,
+ 0x0e42c809,
+ 0x1a86b08b,
+ 0x0a80c011,
+ 0x09d8d0b1,
+ 0x9cc5c921,
+ 0xc8090d82,
+ 0xb08a0e42,
+ 0xc8092d46,
+ 0xb08b0e42,
+ 0xb5a01a86,
+ 0xf9f8400e,
+ 0xf9f8aa9d,
+ 0x9c22aa1d,
+ 0xd0217800,
+ 0xb34046da,
+ 0xb76048a2,
+ 0xc04942bc,
+ 0xc0080d82,
+ 0xc0210d80,
+ 0xcfc17f40,
+ 0xc2802e80,
+ 0xd0225eb9,
+ 0x05ba0ed0,
+ 0xf8390982,
+ 0x9e83a1e5,
+ 0x8cb0f032,
+ 0xa1e5f839,
+ 0x4078b960,
+ 0x0d42c809,
+ 0x0d60c560,
+ 0xf8399e52,
+ 0x93c1a165,
+ 0x0d42c809,
+ 0x0d10c568,
+ 0xa166f198,
+ 0x00009c22,
+ 0x00000000,
+ 0x87c2c809,
+ 0x0dc0b060,
+ 0x87c2c809,
+ 0x0b00b060,
+ 0x9320fffc,
+ 0x87c2c809,
+ 0x0a60b060,
+};
+
+unsigned long aui32MTXDXVAFWData[] = {
+ 0x80905c30,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x04802fd0,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000025,
+ 0x00000000,
+ 0x04800000,
+ 0x04800400,
+ 0x04800480,
+ 0x04800500,
+ 0x04800600,
+ 0x04800700,
+ 0x04801000,
+ 0x04802000,
+ 0x00010009,
+ 0x00000001,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x82883218,
+ 0xffffffff,
+ 0xffffffff,
+ 0x00000000,
+ 0x00000000,
+ 0x0000e400,
+ 0x00000000,
+ 0x00000000,
+ 0x00070117,
+ 0x000f01d7,
+ 0x0000000a,
+ 0x00000032,
+ 0x00000032,
+ 0x00000000,
+ 0x00000000,
+ 0xffffd8ef,
+ 0x00000000,
+ 0x00000000,
+ 0x80905c30,
+ 0x809000a8,
+ 0x809002fc,
+ 0x82882ebc,
+ 0x82882eb8,
+ 0x82882f28,
+ 0x82882f30,
+ 0x828830f0,
+ 0x82882f08,
+ 0x82883104,
+ 0x82883108,
+ 0x82883118,
+ 0x00000000,
+ 0x82883a18,
+ 0x00000000,
+ 0x00000000,
+ 0x82882f20,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x82882f24,
+ 0x00000000,
+ 0x00000000,
+ 0x00000041,
+ 0x0000007f,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x0001001b,
+ 0x00000000,
+ 0x00010003,
+ 0xcdcdcdcd,
+ 0x00000007,
+ 0x00000100,
+ 0xdeadbeef,
+ 0xdeadbeef,
+ 0xdeadbeef,
+ 0xdeadbeef,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x82883ac8,
+ 0x0000002c,
+ 0x00000000,
+ 0x00000090,
+ 0x82883a30,
+ 0x82883a30,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x82883b78,
+ 0x0100002c,
+ 0x00000000,
+ 0x00000090,
+ 0x82883ae0,
+ 0x82883ae0,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x82883b98,
+ 0x8400002a,
+ 0x00000000,
+ 0x00000000,
+ 0x82883a18,
+ 0x82883a18,
+ 0x00000000,
+ 0x00000101,
+ 0x82883bb8,
+ 0x00000014,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x82883bd8,
+ 0x00000012,
+ 0x00000000,
+ 0x00000000,
+ 0x80900000,
+ 0x80900000,
+ 0x00000000,
+ 0x00000000,
+ 0x82883bf8,
+ 0x00000012,
+ 0x00000000,
+ 0x00000000,
+ 0x80905c30,
+ 0x80905c30,
+ 0x00000000,
+ 0x00000000,
+ 0x82883c18,
+ 0x00000012,
+ 0x00000000,
+ 0x00000000,
+ 0x80905c20,
+ 0x80905c20,
+ 0x00000000,
+ 0x00000000,
+ 0x82883c38,
+ 0x00000012,
+ 0x00000000,
+ 0x00000000,
+ 0x80905c10,
+ 0x80905c10,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x0000001a,
+ 0x00000000,
+ 0x007ffff0,
+ 0xb0000000,
+ 0xb0000000,
+ 0x00000000,
+ 0x00000000,
+};
+//char* psFirmwareVersion = "BUILD_DXVA_FW1.00.10.1229.02.0008_Legacy";
+//char* psFirmwareBuildDate = "09_02_2011";
diff --git a/fw/thread0_bin.h b/fw/thread0_bin.h
new file mode 100644
index 0000000..41802e0
--- /dev/null
+++ b/fw/thread0_bin.h
@@ -0,0 +1,52 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/******************************************************************************
+
+ @File thread0_bin.h
+
+ @Title
+
+ @Copyright Copyright (C) Imagination Technologies Limited. All Rights Reserved.
+
+ @Platform
+
+ @Description
+
+******************************************************************************/
+#ifdef DE_ENV
+#include "global.h"
+#endif
+//#if SLICE_SWITCHING_VARIANT
+// This file was automatically generated from ../release/thread0.dnl using dnl2c.
+
+extern unsigned long aui32MTXDXVAFWText[];
+extern unsigned long ui32MTXDXVAFWTextSize;
+extern unsigned long aui32MTXDXVAFWData[];
+extern unsigned long ui32MTXDXVAFWDataSize;
+extern unsigned long ui32MTXDXVAFWDataLocation;
+#define FIRMWARE_VERSION_DEFINED
+#define FIRMWARE_BUILDDATE_DEFINED
+//#endif /* SLICE_SWITCHING_VARIANT */
diff --git a/fw/thread0_ss_bin.c b/fw/thread0_ss_bin.c
new file mode 100644
index 0000000..a3160c1
--- /dev/null
+++ b/fw/thread0_ss_bin.c
@@ -0,0 +1,3933 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/******************************************************************************
+
+ @File thread0_bin.c
+
+ @Title
+
+ @Copyright Copyright (C) Imagination Technologies Limited. All Rights Reserved.
+
+ @Platform
+
+ @Description
+
+******************************************************************************/
+#ifdef DE_ENV
+#include "global.h"
+#endif
+//#if SLICE_SWITCHING_VARIANT
+// This file was automatically generated from ../release/thread0.dnl using dnl2c.
+
+unsigned long ui32MTXDXVAFWTextSize_ss = 2866;
+unsigned long ui32MTXDXVAFWDataSize_ss = 1010;
+unsigned long ui32MTXDXVAFWDataLocation_ss = 0x82882d00;
+
+unsigned long aui32MTXDXVAFWText_ss[] = {
+ 0x9040c001,
+ 0xc80993fe,
+ 0xc0000e42,
+ 0xc8290e00,
+ 0xc3cc8422,
+ 0xc8298440,
+ 0xc2d08622,
+ 0x9e838600,
+ 0xc8099e43,
+ 0xc5960d42,
+ 0xc8090d20,
+ 0xc5960942,
+ 0xc8090960,
+ 0xc00a0e42,
+ 0xc8090e40,
+ 0xc00e87c2,
+ 0x9c1887d0,
+ 0x0c020802,
+ 0x09820d82,
+ 0x09020d02,
+ 0x08820c82,
+ 0x9320fffe,
+ 0xa401c838,
+ 0x0dc2c809,
+ 0x0de0c594,
+ 0x0e42c809,
+ 0x0b46b080,
+ 0x7e74b77f,
+ 0xa48d0882,
+ 0xffff9ff3,
+ 0x9d1393e0,
+ 0xf8398081,
+ 0x0707a205,
+ 0x06850307,
+ 0x03839e97,
+ 0x0fa0060f,
+ 0x018d058d,
+ 0x9c62008f,
+ 0x9340ffff,
+ 0x0ea0060b,
+ 0xffff9c62,
+ 0x058d93a0,
+ 0xb700018d,
+ 0xb780510c,
+ 0x9c015094,
+ 0x0687a605,
+ 0x0ea0060b,
+ 0xffff9c62,
+ 0xf9f893a0,
+ 0xf9f8aa9d,
+ 0x9c22aa1d,
+ 0xc00e9c22,
+ 0x850229fc,
+ 0xc0719d4b,
+ 0xc0499cce,
+ 0xc2fc0882,
+ 0xd01008c0,
+ 0x0a0caa61,
+ 0x5a09e200,
+ 0x43b5b720,
+ 0x9082c001,
+ 0x4204b740,
+ 0x87829e8a,
+ 0x19c2d010,
+ 0xa8e5f031,
+ 0x5d08d0a6,
+ 0xe0309e2d,
+ 0xd850a0cd,
+ 0x0c84aa49,
+ 0xc2009e49,
+ 0xc2005a40,
+ 0x70485a41,
+ 0xb3109de0,
+ 0x04814846,
+ 0xaa59f010,
+ 0x70489e49,
+ 0x9382ffff,
+ 0x90c1ffff,
+ 0x0882c049,
+ 0x08c0c2fc,
+ 0x43b5b520,
+ 0x9ccec071,
+ 0xb78008b0,
+ 0x74c0402d,
+ 0xb5800a04,
+ 0xb340402d,
+ 0xb78048a2,
+ 0xc400458c,
+ 0xf2088502,
+ 0x9c22a10b,
+ 0x8420a61d,
+ 0x9bb0fff4,
+ 0xc137850a,
+ 0xb7809c8b,
+ 0x8d04458c,
+ 0xa11ff248,
+ 0x98c5c054,
+ 0x480cb780,
+ 0x7520c004,
+ 0x9144c000,
+ 0x8502c058,
+ 0x870ac008,
+ 0x0a06c004,
+ 0x9100c000,
+ 0x8502c040,
+ 0x870ac00c,
+ 0x0a06c006,
+ 0x0882c049,
+ 0x08c0c2fc,
+ 0x0d02c049,
+ 0x0d00c200,
+ 0x452bb580,
+ 0x5a08c200,
+ 0x8021f310,
+ 0x4823b540,
+ 0x45bbb540,
+ 0x48abb580,
+ 0x48b3b720,
+ 0x0a16ca5b,
+ 0x0a14ca5a,
+ 0x45abb740,
+ 0xd0a65cc0,
+ 0xb5805d41,
+ 0x5940422d,
+ 0x802df210,
+ 0x5941d126,
+ 0x4535b720,
+ 0x812de220,
+ 0x428cb580,
+ 0x4214b540,
+ 0xd0125cb5,
+ 0x850a2f12,
+ 0x9c89c037,
+ 0xb7c00f82,
+ 0x0b8a458c,
+ 0x98dec094,
+ 0x9c80c971,
+ 0x2ac4f011,
+ 0x9224c000,
+ 0xc0027780,
+ 0xc0549142,
+ 0xc01c9b77,
+ 0xc0007c3e,
+ 0xc1719104,
+ 0x2a089c80,
+ 0xc0017500,
+ 0xc04993c2,
+ 0xc2fc0e82,
+ 0xf2500ec0,
+ 0xf250a8a5,
+ 0x7048aa2d,
+ 0x9182c001,
+ 0xaa25f250,
+ 0x429cb740,
+ 0x5a08c200,
+ 0x81a1e310,
+ 0xa8e1d008,
+ 0xaa65d008,
+ 0x28fdcff6,
+ 0x088c7500,
+ 0x5a89c080,
+ 0x90a2c000,
+ 0xc0549ea3,
+ 0xf2509a57,
+ 0xda90a927,
+ 0xe310aa21,
+ 0xc20080a3,
+ 0xc2005a40,
+ 0x70485a41,
+ 0xb3149e7c,
+ 0x00894426,
+ 0xa0a5f250,
+ 0x92c0fffd,
+ 0xfffd7540,
+ 0xc1719262,
+ 0xfffd9c80,
+ 0x778091e0,
+ 0x9184fffd,
+ 0x9b2cc054,
+ 0x7c3ec01c,
+ 0x90c4fffd,
+ 0xb55f8512,
+ 0x8d047f7c,
+ 0xa15ff248,
+ 0x9c80c971,
+ 0x75002a08,
+ 0x9204c000,
+ 0x9c8fc927,
+ 0x7f6cb79f,
+ 0xb59f1a04,
+ 0xb73f7f6c,
+ 0x74407f6c,
+ 0x9304ffff,
+ 0x9c8fc917,
+ 0xa3ddf248,
+ 0x9100fffc,
+ 0x7deeb79f,
+ 0x7e6eb7bf,
+ 0x7eeeb7df,
+ 0x7f6eb7ff,
+ 0x8c20c002,
+ 0xa61d9c22,
+ 0x538cb780,
+ 0x0b48d012,
+ 0x450cb720,
+ 0xc0070787,
+ 0xc0010bc2,
+ 0x03090ec2,
+ 0x0a98d031,
+ 0xc0007bca,
+ 0xf2089262,
+ 0xc005aa21,
+ 0xc0007d04,
+ 0xcffd91a2,
+ 0xf2082a76,
+ 0x850aa221,
+ 0xa143f208,
+ 0xa9c2f210,
+ 0x997bc014,
+ 0x0f209e6c,
+ 0x4a7d0b20,
+ 0x23f8e000,
+ 0x0a80c002,
+ 0x5e84c280,
+ 0x9044ffff,
+ 0x7e6eb79f,
+ 0x7eeeb7bf,
+ 0x7f6eb7df,
+ 0x7feeb7ff,
+ 0x8c00c002,
+ 0xa6059c22,
+ 0xd0519e5d,
+ 0x9ea10a58,
+ 0x55e40d86,
+ 0x2dc0c007,
+ 0x9939c014,
+ 0xc0149eab,
+ 0xb79f9808,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa60d9c22,
+ 0x450cb780,
+ 0x5d14d1a6,
+ 0x8121f310,
+ 0x5404b740,
+ 0xf2309eb5,
+ 0xd1a6aaa5,
+ 0x9e2d5d0c,
+ 0x3aa0c001,
+ 0xa2a1f210,
+ 0xa9cee030,
+ 0x9923c014,
+ 0xcfff8502,
+ 0xf2102ae8,
+ 0xcfffa2a1,
+ 0xf2102ade,
+ 0xd031a2a1,
+ 0xf2080a68,
+ 0xb79fa103,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0xa6059c22,
+ 0xc00e9e5d,
+ 0xc00e2d7c,
+ 0xc014297c,
+ 0x9eab983b,
+ 0x9808c014,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0x9e5da605,
+ 0x539cb740,
+ 0x590cd2a8,
+ 0xe0209e2d,
+ 0x7502aa6d,
+ 0x7008b5a1,
+ 0x90e4c000,
+ 0xe0208510,
+ 0xc014a9ee,
+ 0x9eab98ee,
+ 0x985bc014,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0x9d538502,
+ 0x9cccc171,
+ 0x4594b720,
+ 0x404db720,
+ 0xc1005db0,
+ 0x9e5a2d80,
+ 0x28fdcefe,
+ 0xb5203094,
+ 0xc171404d,
+ 0x9c229ccc,
+ 0x9e5ea60d,
+ 0x538cb780,
+ 0x598cd324,
+ 0x9e599e55,
+ 0xe0408506,
+ 0xd013a127,
+ 0x9e9e0948,
+ 0x9e959dc7,
+ 0xa9eae010,
+ 0x2afcc00e,
+ 0x2efcc00e,
+ 0x98b5c014,
+ 0x0d827540,
+ 0x0db2d001,
+ 0x9bd0fff4,
+ 0x450cb720,
+ 0x5914d326,
+ 0x8122c201,
+ 0x8420f071,
+ 0xf20a871e,
+ 0xf031a100,
+ 0x9e2a8420,
+ 0x0c82c805,
+ 0xf208a342,
+ 0xf020a282,
+ 0xc805a0c6,
+ 0xf0000c92,
+ 0xb79fa0c2,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0xb7409c22,
+ 0xd1a65384,
+ 0x9e2e5d0c,
+ 0xa841e038,
+ 0x1a04d011,
+ 0xb3407502,
+ 0x850248b2,
+ 0xa143f000,
+ 0xa60d9c22,
+ 0x07070307,
+ 0x9e550e82,
+ 0x9ccdc172,
+ 0xc0007568,
+ 0xc0149084,
+ 0x75609840,
+ 0x90a4c000,
+ 0xc0740dff,
+ 0x75649908,
+ 0x9104c000,
+ 0x0dbaceef,
+ 0x0db8ceee,
+ 0x98ffc074,
+ 0x9ccdc172,
+ 0x040d000d,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0xc094a605,
+ 0xc0119a24,
+ 0xc0940d82,
+ 0xc8099a08,
+ 0xc0a60a42,
+ 0x0ad60a50,
+ 0x018b0e82,
+ 0xb580058b,
+ 0xb5804c2c,
+ 0xb5804a2c,
+ 0xc0944b2c,
+ 0x0a029a95,
+ 0x9cccc171,
+ 0xc1713a50,
+ 0xb79f9ccc,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa6059c22,
+ 0x4594b7a0,
+ 0xa8a9f210,
+ 0x430cb780,
+ 0x2298e000,
+ 0x9322c000,
+ 0xe007020b,
+ 0xf2102a40,
+ 0xc000a2ad,
+ 0x9ea390a2,
+ 0x9a99fff4,
+ 0x0a3ec2f9,
+ 0x0a3cc1f4,
+ 0x2258e000,
+ 0x9102ffff,
+ 0xc0549ea3,
+ 0xffff99ee,
+ 0xb79f9060,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xb7209c22,
+ 0xb7804314,
+ 0x3496458c,
+ 0x4314b520,
+ 0xa096f208,
+ 0x85029c22,
+ 0xa163f010,
+ 0xf0109c22,
+ 0x7500aa61,
+ 0x93a2ffff,
+ 0x9d538502,
+ 0x9cccc171,
+ 0xa8e1f010,
+ 0xf0101884,
+ 0xc171a0e1,
+ 0x08029ccc,
+ 0x85029c22,
+ 0xc1719d53,
+ 0xf0109ccc,
+ 0x0884a8e1,
+ 0xa0e1f010,
+ 0x9cccc171,
+ 0x9c220802,
+ 0x7cfec01c,
+ 0x2da05d8c,
+ 0x08829e5b,
+ 0x0892d001,
+ 0x468cb780,
+ 0xc0305920,
+ 0xc00f2900,
+ 0x58882d7e,
+ 0x30a63114,
+ 0xf2083884,
+ 0x28f9a099,
+ 0xa099f208,
+ 0xa11ef208,
+ 0xb7209c22,
+ 0xb780468c,
+ 0x75004bad,
+ 0x93b6ffff,
+ 0xb7209c22,
+ 0x5da04694,
+ 0xb7809e59,
+ 0x9e4a434d,
+ 0x2880c030,
+ 0x2a7dcfce,
+ 0xb5803242,
+ 0xf008434d,
+ 0x9e59aa59,
+ 0x2a00c030,
+ 0xffff7102,
+ 0x9c229344,
+ 0xb7a0a605,
+ 0x8512468c,
+ 0xa127f2c8,
+ 0x9bdbfff4,
+ 0xaa3df288,
+ 0xa8a1f2c8,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0x0687a605,
+ 0xaaadf210,
+ 0x0da2c002,
+ 0xc0140982,
+ 0xc00299b0,
+ 0x09820db2,
+ 0x99abc014,
+ 0x0dc2c002,
+ 0xc0140982,
+ 0x018b99a6,
+ 0x29c2cfff,
+ 0x3984c001,
+ 0x29fdc9fe,
+ 0xc4000da2,
+ 0xc0143980,
+ 0xc100999a,
+ 0xc0400aa2,
+ 0x018b0d82,
+ 0x9993c014,
+ 0x0d82c060,
+ 0xc014018b,
+ 0xc040998e,
+ 0x09820da2,
+ 0x9989c014,
+ 0x0da2c040,
+ 0xc0140986,
+ 0xc0409984,
+ 0x098a0da2,
+ 0x997fc014,
+ 0x9d578502,
+ 0x9ccdc171,
+ 0x0d92c040,
+ 0xc0140982,
+ 0xc0409976,
+ 0x098a0d92,
+ 0x9971c014,
+ 0x4594b720,
+ 0xb7809e49,
+ 0xc001412d,
+ 0xc0012a30,
+ 0xffff7518,
+ 0xb5809344,
+ 0xf25041cd,
+ 0xc081a8b1,
+ 0xf2503880,
+ 0xc171a0b1,
+ 0xc0029ccd,
+ 0xf2500da2,
+ 0xc014a9a1,
+ 0xc0029956,
+ 0xf2500db2,
+ 0xc014a9a5,
+ 0xc0029950,
+ 0xf2500dc2,
+ 0xc014a9a1,
+ 0xb79f994a,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa6059c22,
+ 0x7488b781,
+ 0x7d3ec01c,
+ 0x5194b7a0,
+ 0xc0000a82,
+ 0xc0749142,
+ 0xb78199e5,
+ 0xc01c7488,
+ 0xffff7d3e,
+ 0xb7809344,
+ 0xc004480c,
+ 0xc000753e,
+ 0xc0149092,
+ 0x85029962,
+ 0xc0729dcf,
+ 0xb7409ccf,
+ 0xb7404594,
+ 0xb720468c,
+ 0x018b4a8c,
+ 0x29becfff,
+ 0xb7800485,
+ 0x2a4045cd,
+ 0xffff7500,
+ 0xd2719382,
+ 0xf2080a20,
+ 0x1884a882,
+ 0x5908d0a6,
+ 0xe0509dc3,
+ 0x9e49aa09,
+ 0xc0007048,
+ 0x9fc09062,
+ 0xa8c2f010,
+ 0xc0010287,
+ 0x0a7f3ac0,
+ 0x9ea0424a,
+ 0x9e4c2490,
+ 0xf01030ca,
+ 0xf010a0c1,
+ 0xb720aac1,
+ 0xf010468c,
+ 0xf010a0c2,
+ 0xc010a0c2,
+ 0xb5200c82,
+ 0xc0724035,
+ 0x08069ccf,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0x85028420,
+ 0xc0719d4b,
+ 0xb7209cce,
+ 0xb760458c,
+ 0xb720402d,
+ 0xcfff4694,
+ 0x020729fa,
+ 0x3a04c001,
+ 0x402db580,
+ 0x4035b760,
+ 0x402db560,
+ 0x4dcdb760,
+ 0x0d82c081,
+ 0x32329e59,
+ 0x4dcdb580,
+ 0x4fcdb720,
+ 0x0d10d212,
+ 0x7f6cb53f,
+ 0xaa41f010,
+ 0x0982c002,
+ 0x7fecb59f,
+ 0x4d4db560,
+ 0x7f6cb79f,
+ 0x4fcdb580,
+ 0x7fecb73f,
+ 0xa0c1f010,
+ 0x4dcdb760,
+ 0x4a7d9e5c,
+ 0xb56021b8,
+ 0xc0714dcd,
+ 0x8c209cce,
+ 0x9e5a9c22,
+ 0x4594b720,
+ 0xa8cdf008,
+ 0x454db780,
+ 0xffff750a,
+ 0xb78093b4,
+ 0x8502470c,
+ 0xa10bf248,
+ 0xa10ff248,
+ 0xa113f248,
+ 0x28c2cfff,
+ 0x3884c001,
+ 0x28fdc9fe,
+ 0x3880c400,
+ 0xa089f208,
+ 0xa8ddf008,
+ 0x28fdccfe,
+ 0x3880c100,
+ 0x0a00c040,
+ 0xa081f208,
+ 0x0a01cfc0,
+ 0x0a00c060,
+ 0xa081f208,
+ 0x8568c00e,
+ 0x458cb720,
+ 0x452db780,
+ 0xffff750c,
+ 0xb72093a6,
+ 0xb960470c,
+ 0xc0404028,
+ 0xb54008a0,
+ 0xf011403d,
+ 0xc2008422,
+ 0xd2265a40,
+ 0xffff5941,
+ 0xb7209301,
+ 0xb780458c,
+ 0x7506452d,
+ 0x93b4ffff,
+ 0xb7200882,
+ 0xc0404714,
+ 0xb5200ca0,
+ 0xf048404d,
+ 0x2a08aa51,
+ 0xc0007500,
+ 0xc01090c2,
+ 0xc0000882,
+ 0x08869060,
+ 0x404db520,
+ 0x87028502,
+ 0xc0729dcb,
+ 0xb7809cce,
+ 0xc040470c,
+ 0xf20a0a10,
+ 0x8508a100,
+ 0xa103f208,
+ 0x458cb720,
+ 0x412db780,
+ 0x2a30c001,
+ 0x7518c001,
+ 0x9344ffff,
+ 0x4594b720,
+ 0x41cdb580,
+ 0xa8d1f048,
+ 0x3880c002,
+ 0xa0d1f048,
+ 0x9ccec072,
+ 0xb7809e49,
+ 0x7508452d,
+ 0x93b4ffff,
+ 0x4714b720,
+ 0xaa41f048,
+ 0x454db580,
+ 0xa8c5f048,
+ 0x45cdb520,
+ 0xaa41f048,
+ 0x464db580,
+ 0xa8cdf008,
+ 0x414db520,
+ 0x0c80c040,
+ 0xaa5df008,
+ 0x404db580,
+ 0xb7409c22,
+ 0x9d3a4704,
+ 0xb7209e99,
+ 0xb780458c,
+ 0x7500452d,
+ 0x93a2ffff,
+ 0xe0209e2d,
+ 0x9c22a0ee,
+ 0x0ca20a02,
+ 0xc000b481,
+ 0x4420b201,
+ 0xc0499c22,
+ 0xc0200c82,
+ 0xc0010ca0,
+ 0xc0120886,
+ 0xb52008ac,
+ 0xb780404d,
+ 0xcb10478c,
+ 0xc0719c81,
+ 0x38849c8d,
+ 0x9c87c017,
+ 0xc0499c22,
+ 0xc0200882,
+ 0xc17108a0,
+ 0xcffe9c8c,
+ 0xc8172a78,
+ 0x85029c83,
+ 0x403db540,
+ 0xf8399c22,
+ 0xc000a205,
+ 0xc0749080,
+ 0xb7819871,
+ 0xc01c7408,
+ 0xffff7d3e,
+ 0xf9f89344,
+ 0x9c22aa1d,
+ 0x468cb780,
+ 0xb5408506,
+ 0xc0084418,
+ 0xf2080a70,
+ 0xc040a881,
+ 0x74402880,
+ 0xc0000902,
+ 0xb72092a2,
+ 0xc2f94594,
+ 0xc1f00d06,
+ 0xb7200d38,
+ 0x9e53414d,
+ 0xb3407846,
+ 0xf20848a4,
+ 0xc040a881,
+ 0x74402880,
+ 0x92a4ffff,
+ 0x468cb780,
+ 0x0d06c2f9,
+ 0x0d38c1f0,
+ 0x4594b720,
+ 0xf2c83908,
+ 0xc008a109,
+ 0xf2080a70,
+ 0xc180a881,
+ 0xc0007c40,
+ 0xc02091e2,
+ 0x74402880,
+ 0x48a4b340,
+ 0x414db720,
+ 0x78449e52,
+ 0x48a4b340,
+ 0x91e0ffff,
+ 0xb5408502,
+ 0x9c224418,
+ 0x4694b720,
+ 0xb7200c02,
+ 0x5d8c4e4d,
+ 0xb7807206,
+ 0x01034dcd,
+ 0x297ccffe,
+ 0x59c1c080,
+ 0x59b05930,
+ 0x2a30c001,
+ 0x58c9c200,
+ 0x0a060898,
+ 0x5084c200,
+ 0x9216c000,
+ 0x0d18d232,
+ 0x1122d030,
+ 0xaa41f010,
+ 0xc0ff9e5a,
+ 0xf3102a7e,
+ 0x71048821,
+ 0x9318ffff,
+ 0xc0007206,
+ 0xd25191f6,
+ 0xd0300d10,
+ 0xf0081132,
+ 0xc0ffaa41,
+ 0xe3202a7e,
+ 0x72068821,
+ 0x9338ffff,
+ 0x0c98d271,
+ 0x402db780,
+ 0x2a00c040,
+ 0xffff7500,
+ 0x9c229324,
+ 0x9e5ea60d,
+ 0xfff49e9d,
+ 0x85029b66,
+ 0xc1729ddb,
+ 0xb7a09cce,
+ 0x0dd2518c,
+ 0xa2a6f208,
+ 0xa32df208,
+ 0x9baefff4,
+ 0x468cb780,
+ 0xb9609ea9,
+ 0xd2514020,
+ 0xf03108c8,
+ 0xb580aa25,
+ 0xffff402d,
+ 0xfff49381,
+ 0xc1729b59,
+ 0xb79f9cce,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0xf8399c22,
+ 0x0dd2a205,
+ 0x9b90fff4,
+ 0x8506c001,
+ 0x8702852c,
+ 0x468cb780,
+ 0x0a50c008,
+ 0xa103f208,
+ 0xa100f20a,
+ 0x8706c001,
+ 0x874cc500,
+ 0xa100f20a,
+ 0xf2088506,
+ 0x8518a103,
+ 0xa103f208,
+ 0xaa1df9f8,
+ 0xf8399c22,
+ 0x8460a205,
+ 0xd0009dba,
+ 0xc01caa45,
+ 0xc0047d3e,
+ 0xb7209184,
+ 0xcb6d528c,
+ 0xc6da0cee,
+ 0x9e4a0cdc,
+ 0x8a23f210,
+ 0xc2006245,
+ 0x1a045a0f,
+ 0xd0f32a1c,
+ 0xe2106941,
+ 0xb78080a3,
+ 0xc01c4129,
+ 0xc0007d3e,
+ 0xf04092a2,
+ 0x0203a8d1,
+ 0x2a00c101,
+ 0xc0007500,
+ 0x9fc09062,
+ 0xc1019d4c,
+ 0xf04038c0,
+ 0x0d82a0d1,
+ 0x9b2fc054,
+ 0x90e0c003,
+ 0xaa51f040,
+ 0xe2009ea1,
+ 0xc2002c80,
+ 0xd0115a39,
+ 0xc00129c2,
+ 0xb72091a4,
+ 0xb780418c,
+ 0xc080452d,
+ 0x75002a00,
+ 0x91a2c000,
+ 0x4c8cb780,
+ 0xb55f8542,
+ 0xb5207478,
+ 0xb59f4c94,
+ 0xc0007eec,
+ 0x853290a0,
+ 0x7478b55f,
+ 0xaa51f040,
+ 0x8d80e072,
+ 0xa8c9f000,
+ 0x8502c00c,
+ 0x74f8b55f,
+ 0x7f64b55f,
+ 0x7e6cb59f,
+ 0x7decb53f,
+ 0x99a7ffd4,
+ 0x7f64b75f,
+ 0xaa41d000,
+ 0xc0007504,
+ 0xf0409164,
+ 0xc421aa51,
+ 0xc0007d00,
+ 0x9fc092c4,
+ 0x9260c000,
+ 0xc0007506,
+ 0xb7209204,
+ 0xb780458c,
+ 0x2a4045ad,
+ 0xffff7500,
+ 0xb7809382,
+ 0xc008468c,
+ 0xf2080a60,
+ 0x8502a881,
+ 0xa14bd000,
+ 0x7498b541,
+ 0xb540857f,
+ 0xc000499c,
+ 0xf0409100,
+ 0xc101aa51,
+ 0xf0403a00,
+ 0xf9f8a251,
+ 0x9c22aa11,
+ 0xa205f839,
+ 0x85228420,
+ 0x7c78b55f,
+ 0x850ac00c,
+ 0x7cf8b55f,
+ 0xaa65f010,
+ 0x8d80e032,
+ 0xb59f0986,
+ 0xffd47fec,
+ 0xf9f89960,
+ 0x9c22aa19,
+ 0x0d92c040,
+ 0xfff1098a,
+ 0xa6059200,
+ 0x0d829e5d,
+ 0x9b0affd4,
+ 0x4394b720,
+ 0x540ab720,
+ 0x0c90c034,
+ 0xa0bdf1f1,
+ 0xaa25da48,
+ 0x5a09c200,
+ 0x3a04c001,
+ 0x404db580,
+ 0xa8a1d208,
+ 0xf2087444,
+ 0x0902a9b9,
+ 0x0922d002,
+ 0x0d060d82,
+ 0x9addffd4,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0x5c91c180,
+ 0x767f1c84,
+ 0x8506c008,
+ 0x9282c000,
+ 0x468cb720,
+ 0xf0c80103,
+ 0x1c84a147,
+ 0xaa5df088,
+ 0xffff7500,
+ 0x767f93b6,
+ 0x4badb780,
+ 0x4c2db780,
+ 0x9264ffff,
+ 0x2e3ef031,
+ 0x48a2b340,
+ 0x468cb720,
+ 0x5a0cc200,
+ 0xb5803a04,
+ 0x9e894cad,
+ 0x4bcdb780,
+ 0xffff7500,
+ 0xb78093b6,
+ 0xb7804bad,
+ 0x9c224c2d,
+ 0x8420a61d,
+ 0x4488b720,
+ 0x877f0707,
+ 0x7f64b55f,
+ 0xc00e0f82,
+ 0xb540857e,
+ 0xb53f4498,
+ 0xb7e07fec,
+ 0xfff44a0c,
+ 0x058d99dc,
+ 0x9b95fff4,
+ 0xaa41d210,
+ 0xc0027502,
+ 0xfff490a2,
+ 0xda1099f4,
+ 0x2a3caa5d,
+ 0x75021a04,
+ 0x9192c000,
+ 0xaa51f250,
+ 0x2a00c004,
+ 0xc0007500,
+ 0x058d90a2,
+ 0x98c8fff4,
+ 0x5294b720,
+ 0x08eecb6d,
+ 0x08dcc6da,
+ 0x1662d010,
+ 0xc2006243,
+ 0x1a045a0f,
+ 0xd0f32a1c,
+ 0xe2206941,
+ 0xda1080ab,
+ 0xb780a8dd,
+ 0x28bc43cb,
+ 0x70482a3c,
+ 0x9262c000,
+ 0xc101058d,
+ 0xfff40982,
+ 0x85029a5b,
+ 0xc0719d47,
+ 0xf2509ccd,
+ 0xc041aa51,
+ 0xf2503a00,
+ 0xc071a251,
+ 0x058d9ccd,
+ 0x0982c201,
+ 0x9a4afff4,
+ 0xaa5dda10,
+ 0x75082a3c,
+ 0x9144c000,
+ 0x468cb780,
+ 0x08c2c0b9,
+ 0x0a50c060,
+ 0xa081f208,
+ 0xab65f229,
+ 0xcf01020d,
+ 0xd0012a00,
+ 0xc0017500,
+ 0xc00092e2,
+ 0xc4019372,
+ 0xc0047500,
+ 0xc0009242,
+ 0x75009172,
+ 0x91c2ffff,
+ 0x7500c201,
+ 0x9382c001,
+ 0x9100ffff,
+ 0x7500cc01,
+ 0x9242c009,
+ 0x7500ce01,
+ 0x9342c007,
+ 0x93c0fffe,
+ 0x7500d601,
+ 0x9302c005,
+ 0x9192c000,
+ 0x7500d201,
+ 0x90c2c007,
+ 0x7500d401,
+ 0x9102c004,
+ 0x91c0fffe,
+ 0x7500d801,
+ 0x9042c004,
+ 0x7500da01,
+ 0x9342c004,
+ 0x9080fffe,
+ 0xc001020d,
+ 0x75002a40,
+ 0x93c2fffd,
+ 0xaa51f250,
+ 0x2a00c008,
+ 0xfffd7500,
+ 0xcffe92e4,
+ 0xc3002b7c,
+ 0x03f85a08,
+ 0x9200fffd,
+ 0xc0ff028d,
+ 0xc0092b40,
+ 0xc0017580,
+ 0xc0002abe,
+ 0xda1093a4,
+ 0x2a3caa5d,
+ 0xc0007504,
+ 0xd21092e4,
+ 0x7502aa41,
+ 0x9244c000,
+ 0x480cb780,
+ 0x753ec004,
+ 0x9192c000,
+ 0xaa51f250,
+ 0x2a00c004,
+ 0xc0007500,
+ 0x058d90a2,
+ 0x9b40ffd4,
+ 0x757f1a84,
+ 0x9102fffc,
+ 0x458cb760,
+ 0x0dfecfb7,
+ 0x0d80cf00,
+ 0xa963f208,
+ 0x18d2d012,
+ 0x802ff210,
+ 0x7500c200,
+ 0xa966f208,
+ 0x0970d031,
+ 0x9112c000,
+ 0xb7800087,
+ 0x7500452d,
+ 0x93a2ffff,
+ 0xaa61f208,
+ 0x757f9e4d,
+ 0xf2080385,
+ 0xffffa102,
+ 0xfffb90a4,
+ 0x028d9060,
+ 0x2abec001,
+ 0x5988d2a4,
+ 0x9954fff4,
+ 0x757f1a84,
+ 0x9302fffa,
+ 0x468cb780,
+ 0x9c87c810,
+ 0x08c8d251,
+ 0xaa65f229,
+ 0x402db580,
+ 0x9381ffff,
+ 0x9140fffa,
+ 0xaa41d210,
+ 0x0e827504,
+ 0x0ed2d002,
+ 0xc3000d82,
+ 0xcf015a90,
+ 0xffd42b00,
+ 0xd4019987,
+ 0xb3527580,
+ 0xc0004822,
+ 0x9e6a9082,
+ 0x0d820f86,
+ 0x0d02018b,
+ 0x99aaffd4,
+ 0x91c0fff9,
+ 0x5a10c300,
+ 0xa259f210,
+ 0xa8e1da08,
+ 0xa0c5da50,
+ 0x90e0fff6,
+ 0xa963f208,
+ 0xb55f0d8a,
+ 0x85027f7c,
+ 0x7518b541,
+ 0xaae6f208,
+ 0x9962ffd4,
+ 0x29e2d012,
+ 0x9d578502,
+ 0x9ccdc171,
+ 0x050b0982,
+ 0xffd40906,
+ 0xf2089a75,
+ 0x0d8aab69,
+ 0x09020d02,
+ 0x5990c300,
+ 0x997effd4,
+ 0x9a85ffd4,
+ 0xffd40d8e,
+ 0xfff49a8a,
+ 0x0d869877,
+ 0x9a85ffd4,
+ 0x458cb780,
+ 0xf208850a,
+ 0xc171a10f,
+ 0x0bb09ccd,
+ 0x9200fff7,
+ 0xaa65f229,
+ 0xa241f250,
+ 0xa8e5f229,
+ 0xa0c5f250,
+ 0xa8e5f229,
+ 0xa0ddf210,
+ 0xaa51d2d0,
+ 0x7fecb73f,
+ 0x70482a30,
+ 0x4488b580,
+ 0x91c2c000,
+ 0x9d478502,
+ 0x9ccdc071,
+ 0xaa51f250,
+ 0x3a00c010,
+ 0xa251f250,
+ 0x9ccdc071,
+ 0xaa65f229,
+ 0xa8ddda10,
+ 0xa249f250,
+ 0xa8e6f229,
+ 0x744828bc,
+ 0xa0cef250,
+ 0x9004fff6,
+ 0xaa51f250,
+ 0x2a00c020,
+ 0xfff57500,
+ 0x058d9322,
+ 0x9873c054,
+ 0x9280fff5,
+ 0xc00077c0,
+ 0x0d8290a2,
+ 0x98f8ffd4,
+ 0xaa41d210,
+ 0xc0027504,
+ 0xf2509184,
+ 0x0205a951,
+ 0x2a04c040,
+ 0x7500c080,
+ 0x9124c000,
+ 0xc401058d,
+ 0xfff40982,
+ 0xc00198d5,
+ 0xb7809000,
+ 0xc004480c,
+ 0x0c82753e,
+ 0x0c92d00a,
+ 0x7520c004,
+ 0x08829e4c,
+ 0x0892d002,
+ 0xc0007902,
+ 0xc0289202,
+ 0xc0007c80,
+ 0xd2909182,
+ 0x7506aa41,
+ 0x90f4c000,
+ 0xc001058d,
+ 0xfff409c2,
+ 0xb77f98b5,
+ 0xfff47f74,
+ 0x0d8a99db,
+ 0x99ffffd4,
+ 0x468cb780,
+ 0xb5418506,
+ 0xf2507418,
+ 0xb5c0a8d1,
+ 0xf2085c94,
+ 0xcfffa882,
+ 0x9e4a2cfa,
+ 0xc0015884,
+ 0x30a22884,
+ 0xf2083884,
+ 0xffd4a081,
+ 0x08069bf2,
+ 0x7deeb79f,
+ 0x7e6eb7bf,
+ 0x7eeeb7df,
+ 0x7f6eb7ff,
+ 0x8c20c002,
+ 0xf8399c22,
+ 0xb720a205,
+ 0xb780458c,
+ 0xb720462d,
+ 0xc400482d,
+ 0x75002a00,
+ 0x28fec00f,
+ 0x9102c000,
+ 0x8542c002,
+ 0x481cb540,
+ 0x93a0c000,
+ 0x7442c003,
+ 0x9334c000,
+ 0x418cb720,
+ 0x452db780,
+ 0x2a00c100,
+ 0xc0047500,
+ 0xb5408502,
+ 0xc000481c,
+ 0xb7209184,
+ 0xc03b520c,
+ 0xc0040a7a,
+ 0xb5800a04,
+ 0xb580402d,
+ 0xffd440ad,
+ 0x0d8a990f,
+ 0x9815ffd4,
+ 0xffd40d82,
+ 0xc0349812,
+ 0xb7809b35,
+ 0xb720418c,
+ 0xb720440c,
+ 0x85024694,
+ 0x0dbec2f9,
+ 0x0dbcc1f4,
+ 0xa103f208,
+ 0x46bdb540,
+ 0x0e18d371,
+ 0x0c90d391,
+ 0xa103f208,
+ 0x8542c0b0,
+ 0x403db540,
+ 0x0e18d391,
+ 0x0c90d3b1,
+ 0x8542c088,
+ 0xa103f208,
+ 0x458cb780,
+ 0x8542c004,
+ 0x403db540,
+ 0x8540c00a,
+ 0x405db540,
+ 0xf208857f,
+ 0xf9f8a10f,
+ 0xffc9aa1d,
+ 0xa6059000,
+ 0x490cb780,
+ 0x5294b720,
+ 0x2a1c0a04,
+ 0x6941d0f3,
+ 0x80abe210,
+ 0x4129b780,
+ 0x7d3ec01c,
+ 0xc0009e4d,
+ 0xc0349242,
+ 0xb7809be9,
+ 0x0a04490c,
+ 0xd0f32a1c,
+ 0xe3106941,
+ 0xb78080a3,
+ 0xc01c4129,
+ 0xffff7d3e,
+ 0xb79f9244,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa60d9c22,
+ 0xb7808420,
+ 0xb7a0490c,
+ 0xd0f35294,
+ 0x9e5d6941,
+ 0x812be340,
+ 0x7f64b55f,
+ 0x9bcbfff4,
+ 0x85028582,
+ 0xc1719d5b,
+ 0x0d869cce,
+ 0x490cb760,
+ 0x7ffcb57f,
+ 0x9a95c034,
+ 0x7f64b75f,
+ 0x7ffcb77f,
+ 0xf0408506,
+ 0xd000a1d3,
+ 0xf208a14b,
+ 0xf000a92d,
+ 0xf208a145,
+ 0xf040aa25,
+ 0xf208a255,
+ 0xf000a8a9,
+ 0xda08a0d9,
+ 0xc0feaa25,
+ 0xd8402a7c,
+ 0xf208a245,
+ 0xf000a8b1,
+ 0xf208a0c9,
+ 0xf000aa35,
+ 0xda48a24d,
+ 0xd840a8b5,
+ 0xf208a0c1,
+ 0x9e54a93e,
+ 0x2a00c080,
+ 0xb7207500,
+ 0x08824b14,
+ 0x1892d001,
+ 0x0a7f9e4b,
+ 0xf0404242,
+ 0x2884a152,
+ 0x30982a08,
+ 0xa0c1d000,
+ 0xaa31da48,
+ 0x70c49e6d,
+ 0xa1dff000,
+ 0xa1c3f040,
+ 0xa1c7f040,
+ 0xa249d840,
+ 0x90c2c000,
+ 0x3e20d111,
+ 0xa251f040,
+ 0x4b8cb720,
+ 0xaa45f000,
+ 0xc0007048,
+ 0xf0409102,
+ 0xc008aa51,
+ 0xf0403a00,
+ 0xf000a251,
+ 0xcc00aa4d,
+ 0xc0007d00,
+ 0xf0409104,
+ 0xc040aa51,
+ 0xf0403a00,
+ 0xd000a251,
+ 0x7504aa41,
+ 0x91e4c000,
+ 0xa8d1f040,
+ 0xc0440203,
+ 0xc0882a04,
+ 0xc0007500,
+ 0xc02090c4,
+ 0xf0403880,
+ 0xd000a0d1,
+ 0x7504aa41,
+ 0x9264c000,
+ 0xaa5dd800,
+ 0x75082a3c,
+ 0x91a4c000,
+ 0xa8d1f040,
+ 0x2a10d111,
+ 0xc0007500,
+ 0xc02090c2,
+ 0xf0403880,
+ 0xc171a0d1,
+ 0xb55f9cce,
+ 0xffd47f64,
+ 0xb7809ab0,
+ 0xb75f520c,
+ 0xb7207f64,
+ 0xf2084594,
+ 0x9dcca885,
+ 0xb5200982,
+ 0xb55f444d,
+ 0xc0347f64,
+ 0xb75f9a34,
+ 0xd0007f64,
+ 0x7504aa41,
+ 0x9124c000,
+ 0xfff49dcc,
+ 0xc0149887,
+ 0xc00299d3,
+ 0xf0409040,
+ 0xd011a8d1,
+ 0x75002a18,
+ 0x90c2c000,
+ 0x3888c001,
+ 0xa0d1f040,
+ 0x08eecb6d,
+ 0x08dcc6da,
+ 0x8a23f310,
+ 0xc2006243,
+ 0x1a045a0f,
+ 0xd0f32a1c,
+ 0xd8006941,
+ 0xf310a8de,
+ 0xda088023,
+ 0x2cbca89d,
+ 0x28bc9e4c,
+ 0xc0007102,
+ 0x9dcc92e2,
+ 0x0982c101,
+ 0x7f64b55f,
+ 0x9afeffd4,
+ 0x9d478502,
+ 0x9ccdc071,
+ 0x7f64b75f,
+ 0xaa51f040,
+ 0x3a00c041,
+ 0xa251f040,
+ 0x9ccdc071,
+ 0xc2019dcc,
+ 0xb55f0982,
+ 0xffd47f64,
+ 0xb75f9ae9,
+ 0xb7807f64,
+ 0xf000490c,
+ 0x0a04a8c5,
+ 0xb5802a1c,
+ 0xb520490c,
+ 0xb5204b0c,
+ 0xb79f4b8c,
+ 0xb7bf7e6e,
+ 0xb7df7eee,
+ 0xc0027f6e,
+ 0x9c228c00,
+ 0xb720a60d,
+ 0xb720490c,
+ 0x9e5d5294,
+ 0x6911d0f3,
+ 0xaa25f208,
+ 0x80abf220,
+ 0xa225f210,
+ 0x9aa5fff4,
+ 0x9d5b8502,
+ 0x9ccec171,
+ 0xb7600d86,
+ 0xc034490c,
+ 0x85069972,
+ 0xa12bd210,
+ 0xd210850e,
+ 0xf208a123,
+ 0xf210aa29,
+ 0xf210a8a6,
+ 0xf208a229,
+ 0x9e4ba8ad,
+ 0x4b0cb740,
+ 0xa0b5f250,
+ 0xa8a5da08,
+ 0x0a06c001,
+ 0xf2107086,
+ 0xf250a22d,
+ 0xc000a0b1,
+ 0xd11190c2,
+ 0xf2503a10,
+ 0xc171a231,
+ 0xffd49cce,
+ 0xb78099fc,
+ 0xb720520c,
+ 0xf2084594,
+ 0x058ba885,
+ 0x0982c801,
+ 0x444db520,
+ 0x9a86ffd4,
+ 0xa8a5f210,
+ 0x490cb780,
+ 0x4b0cb520,
+ 0x2a1c0a04,
+ 0x490cb580,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x418cb780,
+ 0x2cbed3f1,
+ 0xc0108502,
+ 0xf2087442,
+ 0x8504a103,
+ 0x489cb540,
+ 0x90e2c000,
+ 0x7444c010,
+ 0x90c2c000,
+ 0x9e9b9c22,
+ 0x9120fff3,
+ 0xfffc9e9b,
+ 0xa6059160,
+ 0xb7818420,
+ 0xcb6d7488,
+ 0xc6da0cee,
+ 0x9e5d0cdc,
+ 0x528cb720,
+ 0x7d3ec01c,
+ 0x10d29e4c,
+ 0xd0a46099,
+ 0xc0005a8f,
+ 0xc0349142,
+ 0xb7819a23,
+ 0xc01c7488,
+ 0xffff7d3e,
+ 0x9eab9344,
+ 0x4994b5a0,
+ 0xc0340986,
+ 0x85069936,
+ 0x7498b541,
+ 0x9d538502,
+ 0x9cccc171,
+ 0xa8b2f248,
+ 0x3c80c003,
+ 0xa0b2f248,
+ 0x9cccc171,
+ 0x2c90d111,
+ 0xc0007440,
+ 0xb7809264,
+ 0xc004480c,
+ 0xc000753e,
+ 0xda089392,
+ 0x2a3caa3d,
+ 0xc0007504,
+ 0xd01192c4,
+ 0x75002e12,
+ 0x9222c000,
+ 0x4594b720,
+ 0x404db720,
+ 0x28fecffd,
+ 0xc0030203,
+ 0xb5803a00,
+ 0xb740404d,
+ 0xb520404d,
+ 0xb7a0404d,
+ 0x87024414,
+ 0xa134f212,
+ 0xaa21d208,
+ 0xc0007502,
+ 0xb78092c4,
+ 0xc01c4508,
+ 0xc0007d3e,
+ 0xc8099162,
+ 0xc1da0dc2,
+ 0x018b0d80,
+ 0x9999c034,
+ 0x9360c002,
+ 0xffd49eab,
+ 0xc0029b43,
+ 0xf24892c0,
+ 0xc004aa31,
+ 0x75002a00,
+ 0x93a2c000,
+ 0x460cb780,
+ 0x08c0d212,
+ 0xb5408542,
+ 0xd292405d,
+ 0xd25108c0,
+ 0xb54008c0,
+ 0xb540403d,
+ 0xd312405d,
+ 0xd2d108c0,
+ 0xb54008c0,
+ 0xc00c403d,
+ 0xb5400a40,
+ 0xf208405d,
+ 0xf248a103,
+ 0xc004aa31,
+ 0x75002a00,
+ 0x9242c000,
+ 0x468cb780,
+ 0x0a60c02c,
+ 0xa104f22b,
+ 0xa104f22b,
+ 0xa104f22b,
+ 0xa104f22b,
+ 0xa10cf22b,
+ 0xa100f20a,
+ 0x7f64b55f,
+ 0x9870c014,
+ 0xaa21d208,
+ 0xb75f7504,
+ 0xc0007f64,
+ 0xf2529084,
+ 0xb720a134,
+ 0xb7204694,
+ 0xb780458c,
+ 0x2a4045ad,
+ 0xffff7500,
+ 0xd2719382,
+ 0xf2080e10,
+ 0x8502a881,
+ 0xc0719d47,
+ 0xf2489ccd,
+ 0xc005aa31,
+ 0xf2483a00,
+ 0xc071a231,
+ 0x08069ccd,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x9c228c60,
+ 0x5294b720,
+ 0xb7800882,
+ 0xf3f14149,
+ 0xc00029ce,
+ 0x08069082,
+ 0x08849c22,
+ 0xc002744e,
+ 0xffff0ce0,
+ 0xb7409294,
+ 0x76824894,
+ 0x9204c000,
+ 0x520cb780,
+ 0x458cb740,
+ 0xa881f208,
+ 0x4194b720,
+ 0xa0c1f048,
+ 0x4055b540,
+ 0x488cb560,
+ 0x9c220802,
+ 0x4594b720,
+ 0x418cb720,
+ 0xc0338502,
+ 0xc0320a52,
+ 0xb5400a50,
+ 0xb5804d5d,
+ 0xb7804dcd,
+ 0x2a20452d,
+ 0x0a027500,
+ 0x90c4c000,
+ 0x0a06c001,
+ 0x0a00c010,
+ 0x2a3dcffc,
+ 0xb5803a5c,
+ 0x9c224ccd,
+ 0x4594b720,
+ 0x418cb720,
+ 0xc2018502,
+ 0xc2000a22,
+ 0xb5400a20,
+ 0xb5804edd,
+ 0xb7804f4d,
+ 0x2a20452d,
+ 0x0a027500,
+ 0x90c4c000,
+ 0x0a06c001,
+ 0x0a00c010,
+ 0x2a3dcff0,
+ 0x3a5cc00c,
+ 0x4e4db580,
+ 0xa60d9c22,
+ 0x4508b780,
+ 0x9e6b0687,
+ 0x0a040d82,
+ 0x4508b580,
+ 0x9bcbc014,
+ 0xc2019e6c,
+ 0x75002a00,
+ 0x9142c000,
+ 0xc0019e6c,
+ 0xcdff7f5c,
+ 0xb3542a7e,
+ 0x9ea54822,
+ 0x0a06c2f9,
+ 0x0a38c1f0,
+ 0x78489e69,
+ 0x90a2c000,
+ 0xc014058b,
+ 0xd0119aa0,
+ 0x75002e52,
+ 0x9122c000,
+ 0x458cb780,
+ 0xf2c88502,
+ 0xc014a107,
+ 0xd11198e1,
+ 0x75002e50,
+ 0x90a2c000,
+ 0xc014058b,
+ 0x9e6c9969,
+ 0x2a10c001,
+ 0x048b7500,
+ 0x2ca8c001,
+ 0x9042c005,
+ 0x458cb780,
+ 0x498cb720,
+ 0xb7c08502,
+ 0xf2c8528c,
+ 0xd0f3a113,
+ 0xb7606911,
+ 0xf310498c,
+ 0x0d8a80a5,
+ 0x9b83c014,
+ 0x498cb720,
+ 0xc000747f,
+ 0x9fc09064,
+ 0xaa21d208,
+ 0xc0037506,
+ 0xd01191e2,
+ 0x2a1c0a12,
+ 0x6941d0f3,
+ 0x80a5e310,
+ 0x4129b780,
+ 0x7d3ec01c,
+ 0x9162c000,
+ 0x462db780,
+ 0x2a00c004,
+ 0xf2487500,
+ 0xc000a8b2,
+ 0xf2489122,
+ 0xc001aa31,
+ 0x9ea17d0c,
+ 0x9222c000,
+ 0x4129b780,
+ 0x7d3ec01c,
+ 0x9322c001,
+ 0x4029b780,
+ 0xc0017506,
+ 0xc0019284,
+ 0xc0017e4c,
+ 0xf2489204,
+ 0x9eabaa31,
+ 0x4129b720,
+ 0x3a08c001,
+ 0xa231f248,
+ 0x9986ffd4,
+ 0xaa31f248,
+ 0x2a10c040,
+ 0x7500c080,
+ 0x9144c001,
+ 0xaa21d208,
+ 0xc0017504,
+ 0xda0890a4,
+ 0x2a3caa3d,
+ 0xc0007504,
+ 0x9eab90e4,
+ 0x9aaec034,
+ 0x90a0c000,
+ 0xc0349eab,
+ 0xf24898f6,
+ 0xc801aa31,
+ 0xf2483a00,
+ 0xc000a231,
+ 0xf24891e0,
+ 0xc001aa31,
+ 0xc0007d0c,
+ 0x9eab9124,
+ 0x3a00c011,
+ 0xa231f248,
+ 0x98a3ffd4,
+ 0xaa31f248,
+ 0x3a00c201,
+ 0xa231f248,
+ 0xaa21d208,
+ 0x048b7502,
+ 0x2ca8c001,
+ 0x9204c000,
+ 0x458cb720,
+ 0x45adb780,
+ 0x75002a40,
+ 0x9382ffff,
+ 0x468cb780,
+ 0x0a60c008,
+ 0xa881f208,
+ 0xc0017640,
+ 0xb7609002,
+ 0xb780498c,
+ 0xd0f3528c,
+ 0xf3106931,
+ 0x0d8a80a1,
+ 0x9ae7c014,
+ 0x498cb780,
+ 0xc000753f,
+ 0x9fc09064,
+ 0x448cb720,
+ 0x4c9cb740,
+ 0x42adb780,
+ 0xf3109eab,
+ 0xb5808021,
+ 0xffd44c8c,
+ 0xb7809866,
+ 0x1a044508,
+ 0x4508b580,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0xb7a0a60d,
+ 0xb7a05c94,
+ 0xcb6d528c,
+ 0xc6da0a6e,
+ 0x9e690a5c,
+ 0x61b9119a,
+ 0x598f0d8a,
+ 0x9ab7c014,
+ 0x468cb780,
+ 0x0a30c00a,
+ 0xa881f208,
+ 0xc0800d8e,
+ 0x018d5b41,
+ 0x9aabc014,
+ 0xaa29da50,
+ 0x5a40c200,
+ 0x5a41c200,
+ 0xc0007188,
+ 0xf2509102,
+ 0xc401aa31,
+ 0xf2503a00,
+ 0xda50a231,
+ 0xf250a32d,
+ 0x2a20aa31,
+ 0xc0007500,
+ 0xda509304,
+ 0xc200aa21,
+ 0xc2005a40,
+ 0x71885a41,
+ 0x91e4c000,
+ 0xaa31f250,
+ 0x3a10c001,
+ 0xa231f250,
+ 0xa8b1f250,
+ 0xf2503890,
+ 0xffb4a0b1,
+ 0xffb49bf0,
+ 0xb7809b3b,
+ 0xf3f14408,
+ 0xc0012b4e,
+ 0x0d869324,
+ 0x990bffb4,
+ 0x9920ffb4,
+ 0x98ffffb4,
+ 0xaa2df210,
+ 0x2a3cc001,
+ 0x7508c001,
+ 0x9104c001,
+ 0x5c9cb740,
+ 0x0a6ecb6d,
+ 0x0a5cc6da,
+ 0x88a3e310,
+ 0x588f6099,
+ 0x289c0884,
+ 0x6911d0f3,
+ 0x80a3e310,
+ 0x4129b780,
+ 0x7d3ec01c,
+ 0x9122c000,
+ 0x462db780,
+ 0x2a00c004,
+ 0xc0007500,
+ 0xc8099162,
+ 0xc4680dc2,
+ 0x9e6b0db0,
+ 0x9b35c014,
+ 0x9080c000,
+ 0x7408b5c1,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x8420a60d,
+ 0x4694b740,
+ 0x458cb740,
+ 0x518cb7c0,
+ 0x5294b7c0,
+ 0xb7800085,
+ 0x2a4045ad,
+ 0xffff7500,
+ 0xd2719382,
+ 0xf2080e20,
+ 0xf208a882,
+ 0x9e4ca8c1,
+ 0xc0007102,
+ 0x9fc09062,
+ 0xb7800085,
+ 0x2a4045ad,
+ 0xffff7500,
+ 0xd2719382,
+ 0xf2080e20,
+ 0x0085aa82,
+ 0x45adb780,
+ 0x75002a40,
+ 0x9382ffff,
+ 0x0e20d271,
+ 0xa882f208,
+ 0xb7800085,
+ 0x2a4045ad,
+ 0xffff7500,
+ 0xd2719382,
+ 0xf20a0e20,
+ 0xf110a900,
+ 0xcb6d8aa5,
+ 0xc6da0a6e,
+ 0x62d90a5c,
+ 0xb55f0d8a,
+ 0xc2807f64,
+ 0x018b5a8f,
+ 0x99ebc014,
+ 0x7f64b75f,
+ 0x7740c401,
+ 0x2a9c1a84,
+ 0x9302c004,
+ 0x9192c000,
+ 0x7760c001,
+ 0x91e2c001,
+ 0x7740c201,
+ 0x91c2c000,
+ 0x9360c005,
+ 0x7740c801,
+ 0x90a2c002,
+ 0x7740d001,
+ 0x92a2c003,
+ 0x9220c005,
+ 0x7488b781,
+ 0x7d3ec01c,
+ 0x91c4c000,
+ 0x480cb780,
+ 0x753ec004,
+ 0x91d2c000,
+ 0x7408b781,
+ 0x7d3ec01c,
+ 0x9102c000,
+ 0x0dc2c809,
+ 0x0dd0c0fe,
+ 0x91e0c004,
+ 0xffb49dcc,
+ 0xc00498e8,
+ 0x9dcc92a0,
+ 0x9981ffb4,
+ 0x458cb720,
+ 0x45adb780,
+ 0x75002a40,
+ 0x9382ffff,
+ 0x468cb780,
+ 0x0a60c008,
+ 0xa882f208,
+ 0x4a8cb720,
+ 0xd0a61884,
+ 0x9d475908,
+ 0xaa25e060,
+ 0x70489e49,
+ 0x9302c003,
+ 0xc0039fc0,
+ 0xf04092a0,
+ 0xc020aa51,
+ 0x75002a00,
+ 0x9242c000,
+ 0xaa5dd800,
+ 0x75042a3c,
+ 0x90e4c000,
+ 0xc0349dcc,
+ 0xc0039918,
+ 0x9dcc9060,
+ 0x9bcdc014,
+ 0x93c0c002,
+ 0x4694b740,
+ 0x4a8cb720,
+ 0x4594b720,
+ 0x45cdb780,
+ 0x75002a40,
+ 0x9382ffff,
+ 0x0e20d271,
+ 0xa882f208,
+ 0xd0a61884,
+ 0x9d475908,
+ 0xaa25e060,
+ 0x70489e49,
+ 0x9082c002,
+ 0xc0029fc0,
+ 0xb7819020,
+ 0xc01c7488,
+ 0xc8097d3e,
+ 0xc4f40dc2,
+ 0xc0010df0,
+ 0x9dcc9184,
+ 0x985fc034,
+ 0x9240c001,
+ 0xa8d2f040,
+ 0x2e12d011,
+ 0xc0007500,
+ 0xd0f392c4,
+ 0xf3106951,
+ 0xf248802d,
+ 0xc001a891,
+ 0xc0007c4c,
+ 0x9e4c9182,
+ 0x2a00c040,
+ 0xc0007500,
+ 0xc02090c2,
+ 0xf0403c80,
+ 0xb781a0d2,
+ 0xc01c7488,
+ 0xc0007d3e,
+ 0xc8099162,
+ 0xc2ec0dc2,
+ 0x9d4c0dd0,
+ 0x9a17c014,
+ 0x9100c000,
+ 0xfff49dcc,
+ 0xc000980e,
+ 0x9fc09060,
+ 0x7e6eb79f,
+ 0x7eeeb7bf,
+ 0x7f6eb7df,
+ 0x8c00c002,
+ 0xa61d9c22,
+ 0x8420c002,
+ 0x418cb780,
+ 0x458cb720,
+ 0xab06f248,
+ 0xab8ef248,
+ 0x0880c008,
+ 0x402db780,
+ 0x3a082a41,
+ 0x402db580,
+ 0x4914b720,
+ 0x0e12d011,
+ 0x9e492c9c,
+ 0xb55f8532,
+ 0xc00c7478,
+ 0xb55f8516,
+ 0xd01174f8,
+ 0x71422ace,
+ 0x7f74b57f,
+ 0x7e74b57f,
+ 0x91c2c001,
+ 0x528cb7c0,
+ 0x0be0d031,
+ 0x6951d0f3,
+ 0x80a5f320,
+ 0xaa29d210,
+ 0x7d3ec01c,
+ 0x92c2c000,
+ 0x8d80e072,
+ 0x0960d0d4,
+ 0x9e2d9d4b,
+ 0xa8c5e070,
+ 0xaa4dc830,
+ 0xb53f0982,
+ 0xb59f7dec,
+ 0xff947aea,
+ 0x8502986c,
+ 0xa12bd210,
+ 0x490cb720,
+ 0x0a52d011,
+ 0x2aced011,
+ 0x7142289c,
+ 0x9344fffe,
+ 0xc004738e,
+ 0xb7809342,
+ 0xb7c0490c,
+ 0xd0f4528c,
+ 0xe31069c1,
+ 0xb78082b5,
+ 0xf3f14129,
+ 0xc00229ce,
+ 0xb7a092a2,
+ 0xb7404194,
+ 0xf2504284,
+ 0x9e2daa25,
+ 0x5908d226,
+ 0xaacdc038,
+ 0x2a50d211,
+ 0xc0017500,
+ 0xd0d392a2,
+ 0x9e3d0960,
+ 0xa8edc820,
+ 0x0960d033,
+ 0x8d80e072,
+ 0xaa6de020,
+ 0xb53f0982,
+ 0xb59f7aea,
+ 0xff947dec,
+ 0xb780982c,
+ 0xd0f4490c,
+ 0xcff66941,
+ 0xd0112afd,
+ 0xc08008d6,
+ 0x9eaa5a89,
+ 0xaa21da90,
+ 0x9e4904e4,
+ 0x5a40c200,
+ 0x5a41c200,
+ 0x85027048,
+ 0x8225f310,
+ 0x4866b312,
+ 0xa127f250,
+ 0x8502c008,
+ 0xa10bd208,
+ 0x9120c002,
+ 0x3a50d211,
+ 0xa241d018,
+ 0x490cb720,
+ 0x6911d0f3,
+ 0x8025f310,
+ 0x8506c008,
+ 0xa10bd208,
+ 0x9320c001,
+ 0x4194b740,
+ 0xaa45f050,
+ 0x429cb740,
+ 0x5a08c200,
+ 0x8121e310,
+ 0xa8c5d008,
+ 0x7442c010,
+ 0x9124c001,
+ 0x5c94b720,
+ 0xc0017640,
+ 0xb7209082,
+ 0xf008434d,
+ 0x7048aa49,
+ 0x93a4c000,
+ 0x46cdb720,
+ 0xaa45f008,
+ 0xc0007048,
+ 0xd00892c4,
+ 0xcff6a8c1,
+ 0x088c28fd,
+ 0x9e8b5889,
+ 0xaa41d890,
+ 0x9e4904e6,
+ 0x5a40c200,
+ 0x5a41c200,
+ 0xb3137048,
+ 0xf0504826,
+ 0xe0b2a1c5,
+ 0x85328d80,
+ 0x6c78b55f,
+ 0x851ec00c,
+ 0x6cf8b55f,
+ 0xb75f8502,
+ 0x09867f6c,
+ 0x7bfcb55f,
+ 0x76fab55f,
+ 0x7c6cb55f,
+ 0x9bafff74,
+ 0x9000c000,
+ 0x7beeb79f,
+ 0x7c6eb7bf,
+ 0x7ceeb7df,
+ 0x7d6eb7ff,
+ 0x8c20c004,
+ 0xb7809c22,
+ 0xb7604c0c,
+ 0xf011531c,
+ 0xd2260cb0,
+ 0xe0385908,
+ 0x9e2aa1cd,
+ 0x9122c000,
+ 0x3980cff1,
+ 0x5a40c080,
+ 0xf0003238,
+ 0xb780a241,
+ 0x0a044c0c,
+ 0xb5802a7c,
+ 0x9c224c0c,
+ 0x458cb780,
+ 0x0a00c008,
+ 0xa881f208,
+ 0x38a028c1,
+ 0xa081f208,
+ 0x4d8cb720,
+ 0xb5200884,
+ 0x9c224d8c,
+ 0x4594b720,
+ 0xd2718502,
+ 0xd2910e18,
+ 0xf2080c90,
+ 0xb540a103,
+ 0xb780403d,
+ 0xc0084d0c,
+ 0xce4e0ca0,
+ 0xce402a71,
+ 0xb5803a00,
+ 0xb5804d0c,
+ 0xfffe404d,
+ 0xf8399320,
+ 0x9e9aa205,
+ 0x5504b740,
+ 0x5d08d126,
+ 0xaa75f050,
+ 0x9d489d4f,
+ 0xa8e5e028,
+ 0x549cb760,
+ 0x75002a0c,
+ 0x5908d0a6,
+ 0xa8e5f010,
+ 0xaa4de030,
+ 0x0c029e3e,
+ 0x0c02d002,
+ 0x9e2d7102,
+ 0x9142c002,
+ 0xaa61f000,
+ 0x09027048,
+ 0xb4130c82,
+ 0xd0014622,
+ 0xc0000922,
+ 0x0c849282,
+ 0xc0007646,
+ 0xd0a89212,
+ 0xf0105d08,
+ 0xe030a8e5,
+ 0x7048aa41,
+ 0x92a4ffff,
+ 0x5d08d126,
+ 0xe0300906,
+ 0x7480a0ce,
+ 0x9144c001,
+ 0x5d08d126,
+ 0xe0387680,
+ 0x8712a8ce,
+ 0x8f28e002,
+ 0x9e299d4b,
+ 0xe0300c84,
+ 0x2c8caa4d,
+ 0x71029e49,
+ 0x0c92d001,
+ 0x2c96d001,
+ 0x458cb720,
+ 0xaa75f050,
+ 0x5d08d0a8,
+ 0x82a3e210,
+ 0xc0082a61,
+ 0xb58008d0,
+ 0xf008402d,
+ 0xf010a0c2,
+ 0x0c06aa65,
+ 0xa241e030,
+ 0xb780a961,
+ 0xa8e64d0c,
+ 0x458cb720,
+ 0xc0305920,
+ 0xcf0e2900,
+ 0x5ca82a7d,
+ 0x2c80c0c0,
+ 0x9e4a3244,
+ 0xc0087600,
+ 0x324408a0,
+ 0x4d0cb580,
+ 0x402db580,
+ 0x9082c000,
+ 0x9b56fff4,
+ 0xaa1df9f8,
+ 0xa6059c22,
+ 0x0d829e5d,
+ 0x988aff94,
+ 0xa9adf248,
+ 0x0d020d82,
+ 0xff940902,
+ 0xb79f9872,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa6059c22,
+ 0x0d829e5d,
+ 0x9878ff94,
+ 0xa9a9f248,
+ 0x0d020d82,
+ 0xff940902,
+ 0x85029860,
+ 0x7418b541,
+ 0xb79f0806,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xb7809c22,
+ 0xb7204f0c,
+ 0x0a044f8c,
+ 0x71022a3c,
+ 0xc0009e5a,
+ 0x9fc09064,
+ 0x9dc78502,
+ 0x9ccdc072,
+ 0x5584b740,
+ 0x4f0cb780,
+ 0x4f0cb720,
+ 0x590cd226,
+ 0x87109e2d,
+ 0xa14de030,
+ 0x590cd0a6,
+ 0xe0309e2d,
+ 0xd008a1cd,
+ 0x0a04aa65,
+ 0xa265d008,
+ 0x4f0cb720,
+ 0x28bc0884,
+ 0x4f0cb520,
+ 0x9ccdc072,
+ 0x4e0cb780,
+ 0xb5800a04,
+ 0x9c224e0c,
+ 0xb720a60d,
+ 0xb7804f8c,
+ 0x70484f0c,
+ 0x91c2c002,
+ 0x558cb7c0,
+ 0x4f8cb780,
+ 0x0968d014,
+ 0x590cd226,
+ 0x9d479e2d,
+ 0xaacde030,
+ 0xaaa6e060,
+ 0xc0738502,
+ 0x0a049cce,
+ 0xb5802a3c,
+ 0xc0734f8c,
+ 0xb7809cce,
+ 0x77404e8c,
+ 0xb5800a04,
+ 0xc0004e8c,
+ 0x9eab91a2,
+ 0x9c62060b,
+ 0x7c3ec01c,
+ 0x90c4c000,
+ 0x018b058b,
+ 0x9b9dfff4,
+ 0x9dd78502,
+ 0x9ccdc172,
+ 0xaa25d208,
+ 0xd2081a04,
+ 0xd208a225,
+ 0xc01ca8a5,
+ 0xc0007c7e,
+ 0xf2489184,
+ 0xc101aa31,
+ 0x75002a00,
+ 0x90a2c000,
+ 0xffb49eab,
+ 0xc1729824,
+ 0xb7209ccd,
+ 0xb7804f8c,
+ 0x70484f0c,
+ 0x9304fffd,
+ 0x7eeeb79f,
+ 0x7f6eb7bf,
+ 0x7feeb7df,
+ 0x9c228c60,
+ 0x9e5da605,
+ 0xff740d82,
+ 0xb7809bd3,
+ 0xb720438c,
+ 0xc001570c,
+ 0xc0060c8e,
+ 0xc0340c98,
+ 0xcffe0a10,
+ 0xf3e928fc,
+ 0xf208a09d,
+ 0xf248a082,
+ 0x0d82a9a9,
+ 0x09060d06,
+ 0x9babff74,
+ 0xb79f0806,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa6059c22,
+ 0x0d820687,
+ 0x9bb0ff74,
+ 0x438cb780,
+ 0x570cb720,
+ 0x0c86c001,
+ 0x0c98c006,
+ 0x0a10c034,
+ 0x28fccffe,
+ 0xa09df3e9,
+ 0xa082f208,
+ 0xa9adf250,
+ 0x0d060d82,
+ 0xff740906,
+ 0x85029b88,
+ 0xc1719d57,
+ 0x058b9ccd,
+ 0x988dc014,
+ 0x9ccdc171,
+ 0xb79f0806,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xa60d9c22,
+ 0x8582c049,
+ 0x8580c200,
+ 0x8702c049,
+ 0x8710c200,
+ 0x468cb720,
+ 0x9e5b0c02,
+ 0xf0489d63,
+ 0x8506a8f2,
+ 0xc00c0a82,
+ 0xd0a208e0,
+ 0xb7405e05,
+ 0x5cf9402d,
+ 0x2a044c84,
+ 0xb7807500,
+ 0x2c84570c,
+ 0x2970c0fe,
+ 0x8522e001,
+ 0xa006f208,
+ 0xa8c5e000,
+ 0xe2209d40,
+ 0xe00088ab,
+ 0xc080a9c6,
+ 0x09207448,
+ 0xc0020009,
+ 0x9e829002,
+ 0x0b00d031,
+ 0x0ec2c088,
+ 0x0980d174,
+ 0xc0809dfb,
+ 0xd0117450,
+ 0xb3040e02,
+ 0x9ea04824,
+ 0xc0007202,
+ 0xf01092a6,
+ 0x9d6da947,
+ 0x5a05c080,
+ 0xa24dc030,
+ 0xa8c5f010,
+ 0xd0a69e3d,
+ 0xe0305908,
+ 0xf010a1ce,
+ 0x0a04aa45,
+ 0xa245f010,
+ 0xcf760205,
+ 0xc0500a41,
+ 0x9e6c7500,
+ 0xb3240a84,
+ 0xc0104426,
+ 0x0109757e,
+ 0x91b2c000,
+ 0xe0409e74,
+ 0x9d50a8c5,
+ 0x7448c080,
+ 0xa9c6e040,
+ 0xfffe0920,
+ 0xf0089184,
+ 0xc809aa65,
+ 0xc4920dc2,
+ 0xb5800d80,
+ 0xfff4402c,
+ 0xb79f9aaa,
+ 0xb7bf7eee,
+ 0xb7df7f6e,
+ 0x8c607fee,
+ 0xa61d9c22,
+ 0x5714b720,
+ 0xf2089e5d,
+ 0xb720aa25,
+ 0x7048404d,
+ 0xc0000683,
+ 0xc8099162,
+ 0xc49a0dc2,
+ 0x018b0db0,
+ 0x9a8ffff4,
+ 0x9000c005,
+ 0xaa25f210,
+ 0xc0047500,
+ 0x0b8291a2,
+ 0x480cb780,
+ 0x753ec004,
+ 0x9192c000,
+ 0xaa31f248,
+ 0x2a00c004,
+ 0xc0007500,
+ 0x9eab90a2,
+ 0x9846ff94,
+ 0xa9adf208,
+ 0xc6000da2,
+ 0xff943980,
+ 0xc04099f6,
+ 0xf2080d82,
+ 0xff94a9bd,
+ 0x098299f0,
+ 0xaa25f210,
+ 0xc00270c8,
+ 0x9e6e9328,
+ 0x4594b700,
+ 0x0b60d032,
+ 0xc0109e71,
+ 0xd012aa65,
+ 0x75080ab2,
+ 0x5808c180,
+ 0x91c4c001,
+ 0x75c40b84,
+ 0x9144c001,
+ 0x9e490c82,
+ 0x1a32d011,
+ 0xc0017048,
+ 0xc0499068,
+ 0xc1608782,
+ 0xb7408780,
+ 0x05015684,
+ 0xd0a69ea3,
+ 0xd0115d08,
+ 0xf0500d12,
+ 0x7500aa49,
+ 0x93a2ffff,
+ 0xb7609ddc,
+ 0xc070561c,
+ 0x9e91aa29,
+ 0xe0307246,
+ 0x9e3da8cd,
+ 0x5904d226,
+ 0xa0cde030,
+ 0x9126ffff,
+ 0xb7809e41,
+ 0x7500452d,
+ 0x93a2ffff,
+ 0xd1739e71,
+ 0xc0100960,
+ 0x9d47aa65,
+ 0xa886e010,
+ 0x5a04c200,
+ 0x0a00c049,
+ 0x0a00c140,
+ 0xa082f208,
+ 0xa8c5f208,
+ 0x70c29e6b,
+ 0x9206fffd,
+ 0x0d92c040,
+ 0xff940982,
+ 0x0da2998e,
+ 0xa9adf208,
+ 0x9989ff94,
+ 0x0d82c040,
+ 0xa9bdf208,
+ 0x9983ff94,
+ 0x4694b720,
+ 0x458cb720,
+ 0x45adb780,
+ 0x75002a40,
+ 0x9382ffff,
+ 0x0e10d271,
+ 0xa881f208,
+ 0x7e6eb79f,
+ 0x7eeeb7bf,
+ 0x7f6eb7df,
+ 0x7feeb7ff,
+ 0x8c00c002,
+ 0xa6059c22,
+ 0x7488b781,
+ 0x7d3ec01c,
+ 0xc0009e5d,
+ 0x85069344,
+ 0x7498b541,
+ 0xfff40986,
+ 0xb7809928,
+ 0xcb6d528c,
+ 0xc6da08ee,
+ 0x9eab08dc,
+ 0x62431258,
+ 0x5a0fc200,
+ 0x498cb580,
+ 0x9b04ff94,
+ 0xc0000806,
+ 0x08029060,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0x9e5da605,
+ 0xff740d82,
+ 0xb7809a1d,
+ 0xb720438c,
+ 0xc001578c,
+ 0x0c8c0c8e,
+ 0x0a10c034,
+ 0x28fccffe,
+ 0xa09df3e9,
+ 0xa082f208,
+ 0xa9a9f248,
+ 0x0d060d82,
+ 0xff740906,
+ 0x080699f6,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0x0687a605,
+ 0xff740d82,
+ 0xb78099fb,
+ 0xb720438c,
+ 0xc001578c,
+ 0x0c8c0c86,
+ 0x0a10c034,
+ 0x28fccffe,
+ 0xa09df3e9,
+ 0xa082f208,
+ 0xa9adf250,
+ 0x0d060d82,
+ 0xff740906,
+ 0x850299d4,
+ 0xc1719d57,
+ 0x058b9ccd,
+ 0x981fc014,
+ 0x9ccdc171,
+ 0x7f6eb79f,
+ 0x7feeb7bf,
+ 0x9c228c40,
+ 0xb7209e5b,
+ 0xd8485794,
+ 0xb580aa6d,
+ 0xf008414d,
+ 0xb520a8fd,
+ 0xf00840cd,
+ 0xc809aa65,
+ 0xc4fe0dc2,
+ 0xb5800de0,
+ 0xffea404d,
+ 0xa6059380,
+ 0x5794b720,
+ 0xf2089e5d,
+ 0xb720aa25,
+ 0x7048404d,
+ 0xc0000683,
+ 0xc8099162,
+ 0xc5080dc2,
+ 0x018b0d80,
+ 0x9949fff4,
+ 0x9060c002,
+ 0x480cb780,
+ 0x753ec004,
+ 0x9192c000,
+ 0xaa31f248,
+ 0x2a00c004,
+ 0xc0007500,
+ 0x9eab90a2,
+ 0x9b06ff74,
+ 0xa9adf208,
+ 0xc6000da2,
+ 0xff943980,
+ 0xc04098b6,
+ 0xf2100d82,
+ 0xff94a9a5,
+ 0xc04098b0,
+ 0xf2100da2,
+ 0xff94a9a9,
+ 0xc04098aa,
+ 0x09820d92,
+ 0x98a5ff94,
+ 0xf2080da2,
+ 0xff94a9ad,
+ 0xc04098a0,
+ 0xf2080d82,
+ 0xff94a9bd,
+ 0xb720989a,
+ 0xb780458c,
+ 0x2a4045ad,
+ 0xffff7500,
+ 0xb7809382,
+ 0xc008468c,
+ 0xf2080a60,
+ 0xb79fa881,
+ 0xb7bf7f6e,
+ 0x8c407fee,
+ 0xb7409c22,
+ 0xc0014c16,
+ 0x76c09c88,
+ 0x2800c001,
+ 0x41b05820,
+ 0x4844b332,
+ 0x0c20f011,
+ 0x48a2b340,
+ 0xa942f810,
+ 0xffff7086,
+ 0x7a849324,
+ 0xc0219c22,
+ 0xb7007ec0,
+ 0xb300400e,
+ 0x9c224a24,
+ 0x7cc2c001,
+ 0x90e2c000,
+ 0x9c8cc071,
+ 0x4580d070,
+ 0xa48d31b0,
+ 0xa185f839,
+ 0xf9f89fec,
+ 0x8c60a81d,
+ 0xc0029c22,
+ 0xc0019c88,
+ 0xc0019c80,
+ 0x5c202c04,
+ 0x2800c070,
+ 0x9c225848,
+ 0xc809a605,
+ 0xb08a0e42,
+ 0x02811d26,
+ 0x4c0eb740,
+ 0x500cb520,
+ 0xc0007480,
+ 0xd0b193e2,
+ 0x9ead09d8,
+ 0xc8090d82,
+ 0xb08a0e42,
+ 0xc8091766,
+ 0xb08a0e42,
+ 0xc0112466,
+ 0xd0b10a80,
+ 0xc92109d8,
+ 0x0d829cc5,
+ 0x0e42c809,
+ 0x1766b08a,
+ 0x0e42c809,
+ 0x2466b08a,
+ 0x400eb5a0,
+ 0xaa9df9f8,
+ 0xaa1df9f8,
+ 0x78009c22,
+ 0x46dad021,
+ 0x48a2b340,
+ 0x42bcb760,
+ 0x0d82c049,
+ 0x0d80c008,
+ 0x7f40c021,
+ 0x2e80cfc1,
+ 0x5eb9c280,
+ 0x0ed0d022,
+ 0x098205ba,
+ 0xa1e5f839,
+ 0xf0329e83,
+ 0xf8398cb0,
+ 0xb960a1e5,
+ 0xc8094078,
+ 0xc5360d42,
+ 0x9e520d00,
+ 0xa165f839,
+ 0x93c1ffff,
+ 0x0d42c809,
+ 0x0d10c554,
+ 0xa166f198,
+ 0xb7009c22,
+ 0xb7604035,
+ 0xc00243bf,
+ 0x0d2e7200,
+ 0x50a2b330,
+ 0x87020d06,
+ 0x9ccec074,
+ 0xb7009cf3,
+ 0xc4024035,
+ 0x55447200,
+ 0xb5004404,
+ 0x9cf04035,
+ 0x9ccec074,
+ 0x5c880d2a,
+ 0x9c1b0c84,
+ 0xe0139d33,
+ 0xf8398480,
+ 0xc051a205,
+ 0xc8099c84,
+ 0xc56a0a42,
+ 0x70080a20,
+ 0x92c2c006,
+ 0x81010d9c,
+ 0x0007e000,
+ 0x2de2cffe,
+ 0xb3320407,
+ 0xc809486a,
+ 0xc5940cc2,
+ 0xe0330c80,
+ 0xc80185a0,
+ 0xc0012980,
+ 0x0096088a,
+ 0xa0c1f818,
+ 0x8420f171,
+ 0xa47dc9f8,
+ 0x0c820882,
+ 0xa0e5f839,
+ 0xa0e5f839,
+ 0xa41fca08,
+ 0xc0038085,
+ 0x9cef9000,
+ 0x84c0e095,
+ 0xc0109c02,
+ 0xb71f9c82,
+ 0x9cff794e,
+ 0x40eeb500,
+ 0x8400e172,
+ 0x9c88c001,
+ 0x4000b940,
+ 0xa41fc810,
+ 0xe0549cf0,
+ 0x80818500,
+ 0xa4ddc8e0,
+ 0x9c8ec001,
+ 0xc0020d02,
+ 0xc0019c8b,
+ 0xb9209c87,
+ 0xc8004000,
+ 0x0181a545,
+ 0x2982c00d,
+ 0x9c87c052,
+ 0x3984c001,
+ 0x406fb560,
+ 0x8460c006,
+ 0x9c8ac071,
+ 0x9c8ac002,
+ 0xca050181,
+ 0xcf012980,
+ 0x5d712d00,
+ 0x2928d017,
+ 0x296ceffe,
+ 0x3984c001,
+ 0x4016b720,
+ 0x90e2c002,
+ 0x7080c002,
+ 0x9e827c84,
+ 0x40bdb760,
+ 0xc0710d86,
+ 0xd02e9c8c,
+ 0xd0175568,
+ 0xe0022988,
+ 0x31b07622,
+ 0xd1220d40,
+ 0xb41b5c08,
+ 0x08404a7a,
+ 0xa826e000,
+ 0xfff49daf,
+ 0x9cef9ba4,
+ 0x9c8ec071,
+ 0x31a0d070,
+ 0x406fb700,
+ 0xc8718003,
+ 0x9c069c8b,
+ 0x7cfedffc,
+ 0x9044fffe,
+ 0x7c00c401,
+ 0x93c4fffd,
+ 0x5884f024,
+ 0x8410e132,
+ 0x8410e053,
+ 0xad07c810,
+ 0xf0249de8,
+ 0xc0055884,
+ 0xc8f82802,
+ 0xc030ac9d,
+ 0xc0309c8b,
+ 0xc8109c8d,
+ 0xfffbac1f,
+ 0xc07193c0,
+ 0xe0039c8e,
+ 0xd0172870,
+ 0xcffe29a8,
+ 0x31b4296c,
+ 0xd0240912,
+ 0xc0045949,
+ 0xfffe0822,
+ 0xc1809044,
+ 0xcff95d24,
+ 0x5d292d80,
+ 0xd83105b4,
+ 0xd810a8e6,
+ 0xc800a962,
+ 0xb3127e40,
+ 0x5d404842,
+ 0xc0800494,
+ 0x2d0c5d59,
+ 0x5c08d122,
+ 0x9160fffd,
+ 0xaa25f839,
+ 0x8c10e033,
+ 0x9c229d45,
+ 0x87c2c809,
+ 0x0c20b060,
+ 0x87c2c809,
+ 0x0a60b060,
+ 0x92c0fff4,
+ 0x87c2c809,
+ 0x09c0b060,
+};
+
+unsigned long aui32MTXDXVAFWData_ss[] = {
+ 0x80905978,
+ 0x00000000,
+ 0x00000000,
+ 0x04802fd0,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x04800000,
+ 0x04800400,
+ 0x04800480,
+ 0x04800500,
+ 0x04800600,
+ 0x04800700,
+ 0x04800800,
+ 0x04801000,
+ 0xffffec78,
+ 0x00000000,
+ 0x00000001,
+ 0x00000000,
+ 0xffffffff,
+ 0x82883290,
+ 0x00000005,
+ 0xffffffff,
+ 0xffffffff,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x80905978,
+ 0x809000b0,
+ 0x809002d0,
+ 0x82882dfc,
+ 0x82882df4,
+ 0x82882e10,
+ 0x82882fd0,
+ 0x82882dc8,
+ 0x82882dcc,
+ 0x82883050,
+ 0x82883060,
+ 0x82883068,
+ 0x82883140,
+ 0x828830f0,
+ 0x828830e8,
+ 0x82883280,
+ 0x82883a90,
+ 0x00000000,
+ 0x00000000,
+ 0x82882dec,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x82882df0,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000041,
+ 0x0000007f,
+ 0x0001001b,
+ 0x00000000,
+ 0x00010003,
+ 0xcdcdcdcd,
+ 0x00000007,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0xdeadbeef,
+ 0xdeadbeef,
+ 0xdeadbeef,
+ 0xdeadbeef,
+ 0x00000000,
+ 0x00000001,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x82883b40,
+ 0x0000002c,
+ 0x00000000,
+ 0x00000090,
+ 0x82883aa8,
+ 0x82883aa8,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x82883bf0,
+ 0x0100002c,
+ 0x00000000,
+ 0x00000090,
+ 0x82883b58,
+ 0x82883b58,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x82883c10,
+ 0x8400002a,
+ 0x00000000,
+ 0x00000000,
+ 0x82883a90,
+ 0x82883a90,
+ 0x00000000,
+ 0x00000101,
+ 0x82883c30,
+ 0x00000014,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x82883c50,
+ 0x00000012,
+ 0x00000000,
+ 0x00000000,
+ 0x80900000,
+ 0x80900000,
+ 0x00000000,
+ 0x00000000,
+ 0x82883c70,
+ 0x00000012,
+ 0x00000000,
+ 0x00000000,
+ 0x80905978,
+ 0x80905978,
+ 0x00000000,
+ 0x00000000,
+ 0x82883c90,
+ 0x00000012,
+ 0x00000000,
+ 0x00000000,
+ 0x80905968,
+ 0x80905968,
+ 0x00000000,
+ 0x00000000,
+ 0x82883cb0,
+ 0x00000012,
+ 0x00000000,
+ 0x00000000,
+ 0x80905958,
+ 0x80905958,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x0000001a,
+ 0x00000000,
+ 0x007ffff0,
+ 0xb0000000,
+ 0xb0000000,
+};
+char* psFirmwareVersion_ss = "BUILD_DXVA_FW1-00-10-0944_02_05_SliceSwitching";
+char* psFirmwareBuildDate_ss = "25-02-2011";
+//#endif /* SLICE_SWITCHING_VARIANT */
+
diff --git a/fw/thread0_ss_bin.h b/fw/thread0_ss_bin.h
new file mode 100644
index 0000000..2c7f601
--- /dev/null
+++ b/fw/thread0_ss_bin.h
@@ -0,0 +1,53 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/******************************************************************************
+
+ @File thread0_bin.h
+
+ @Title
+
+ @Copyright Copyright (C) Imagination Technologies Limited. All Rights Reserved.
+
+ @Platform
+
+ @Description
+
+******************************************************************************/
+#ifdef DE_ENV
+#include "global.h"
+#endif
+//#if SLICE_SWITCHING_VARIANT
+// This file was automatically generated from ../release/thread0.dnl using dnl2c.
+
+extern unsigned long aui32MTXDXVAFWText_ss[];
+extern unsigned long ui32MTXDXVAFWTextSize_ss;
+extern unsigned long aui32MTXDXVAFWData_ss[];
+extern unsigned long ui32MTXDXVAFWDataSize_ss;
+extern unsigned long ui32MTXDXVAFWDataLocation_ss;
+
+#define FIRMWARE_VERSION_DEFINED
+#define FIRMWARE_BUILDDATE_DEFINED
+//#endif /* SLICE_SWITCHING_VARIANT */
diff --git a/fw/thread1_bin.c b/fw/thread1_bin.c
new file mode 100644
index 0000000..6abd55e
--- /dev/null
+++ b/fw/thread1_bin.c
@@ -0,0 +1,615 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/******************************************************************************
+
+ @File thread0_bin.c
+
+ @Title
+
+ @Version
+
+ @Copyright Copyright (C) Imagination Technologies Limited. All Rights Reserved.
+
+ @Platform
+
+ @Description This file was automatically generated from ../release/thread0.dnl
+ using dnl2c.
+
+******************************************************************************/
+
+/******************************************************************************
+
+ Version : BUILD_DXVA_FW1.00.10.0963.02.0011
+ Date : 26_08_2009
+ Code : 12388 bytes 12.098 Kb
+ Data : 3408 bytes 3.328 Kb
+ Total : 15824 bytes 15.453 Kb
+
+******************************************************************************/
+//#include "firmware.h"
+
+
+typedef struct {
+ const char* psVersion;
+ const char* psBuildDate;
+ unsigned int uiTextSize;
+ unsigned int uiDataSize;
+ unsigned int DataOffset;
+ const unsigned char* pui8Text;
+ const unsigned char* pui8Data;
+} FIRMWARE;
+
+static const unsigned char aui8Text[] = {
+ 0x01, 0xC0, 0x40, 0x90, 0xFE, 0x93, 0x09, 0xC8, 0x42, 0x0E, 0x00, 0xC0, 0x00, 0x0E, 0x29, 0xC8, 0x22, 0x84, 0xDC, 0xC3, 0x60, 0x84, 0x29, 0xC8, 0x22, 0x86, 0x08, 0xC3, 0x00, 0x86,
+ 0x83, 0x9E, 0x43, 0x9E, 0x09, 0xC8, 0x42, 0x0D, 0x0A, 0xC6, 0x00, 0x0D, 0x09, 0xC8, 0x42, 0x09, 0x0A, 0xC6, 0x40, 0x09, 0x09, 0xC8, 0x42, 0x0E, 0x0A, 0xC0, 0x40, 0x0E, 0x09, 0xC8,
+ 0xC2, 0x87, 0x0E, 0xC0, 0xD0, 0x87, 0x18, 0x9C, 0x02, 0x08, 0x02, 0x0C, 0x82, 0x0D, 0x82, 0x09, 0x02, 0x0D, 0x02, 0x09, 0x82, 0x0C, 0x82, 0x08, 0xFE, 0xFF, 0x20, 0x93, 0x38, 0xC8,
+ 0x01, 0xA4, 0x09, 0xC8, 0xC2, 0x0D, 0x08, 0xC6, 0xC0, 0x0D, 0x09, 0xC8, 0x42, 0x0E, 0x80, 0xB0, 0x46, 0x0B, 0x7F, 0xB7, 0x74, 0x7E, 0x82, 0x08, 0x8D, 0xA4, 0xF3, 0x9F, 0xFF, 0xFF,
+ 0xE0, 0x93, 0x13, 0x9D, 0x81, 0x80, 0x39, 0xF8, 0x05, 0xA2, 0x07, 0x07, 0x07, 0x03, 0x85, 0x06, 0x97, 0x9E, 0x83, 0x03, 0x0F, 0x06, 0xA0, 0x0F, 0x8D, 0x05, 0x8D, 0x01, 0x8F, 0x00,
+ 0x62, 0x9C, 0xFF, 0xFF, 0x40, 0x93, 0x0B, 0x06, 0xA0, 0x0E, 0x62, 0x9C, 0xFF, 0xFF, 0xA0, 0x93, 0x8D, 0x05, 0x8D, 0x01, 0x00, 0xB7, 0x0C, 0x51, 0x80, 0xB7, 0x94, 0x50, 0x01, 0x9C,
+ 0x05, 0xA6, 0x87, 0x06, 0x0B, 0x06, 0xA0, 0x0E, 0x62, 0x9C, 0xFF, 0xFF, 0xA0, 0x93, 0xF8, 0xF9, 0x9D, 0xAA, 0xF8, 0xF9, 0x1D, 0xAA, 0x22, 0x9C, 0x22, 0x9C, 0x0E, 0xC0, 0xFC, 0x29,
+ 0x02, 0xC0, 0x16, 0x85, 0x4B, 0x9D, 0x71, 0xC0, 0xCE, 0x9C, 0x49, 0xC0, 0x82, 0x08, 0xFC, 0xC2, 0xC0, 0x08, 0x10, 0xD0, 0x61, 0xAA, 0x0C, 0x0A, 0x00, 0xE2, 0x09, 0x5A, 0x20, 0xB7,
+ 0xB5, 0x43, 0x01, 0xC0, 0x82, 0x90, 0x40, 0xB7, 0x04, 0x42, 0x8A, 0x9E, 0x82, 0x87, 0x10, 0xD0, 0xC2, 0x19, 0x31, 0xF0, 0xE5, 0xA8, 0xA6, 0xD0, 0x08, 0x5D, 0x2D, 0x9E, 0x30, 0xE0,
+ 0xCD, 0xA0, 0x50, 0xD8, 0x49, 0xAA, 0x84, 0x0C, 0x49, 0x9E, 0x00, 0xC2, 0x40, 0x5A, 0x00, 0xC2, 0x41, 0x5A, 0x48, 0x70, 0xE0, 0x9D, 0x10, 0xB3, 0x46, 0x48, 0x81, 0x04, 0x10, 0xF0,
+ 0x59, 0xAA, 0x49, 0x9E, 0x48, 0x70, 0xFF, 0xFF, 0x82, 0x93, 0xFF, 0xFF, 0xC1, 0x90, 0x49, 0xC0, 0x82, 0x08, 0xFC, 0xC2, 0xC0, 0x08, 0x20, 0xB5, 0xB5, 0x43, 0x71, 0xC0, 0xCE, 0x9C,
+ 0xB0, 0x08, 0x80, 0xB7, 0x2D, 0x40, 0xC0, 0x74, 0x04, 0x0A, 0x80, 0xB5, 0x2D, 0x40, 0x40, 0xB3, 0xA2, 0x48, 0x80, 0xB7, 0x0C, 0x46, 0x00, 0xC4, 0x02, 0x85, 0x08, 0xF2, 0x0B, 0xA1,
+ 0x22, 0x9C, 0x1D, 0xA6, 0x20, 0x84, 0xF4, 0xFF, 0xAF, 0x9B, 0x0A, 0x85, 0x37, 0xC1, 0x8B, 0x9C, 0x80, 0xB7, 0x0C, 0x46, 0x04, 0x8D, 0x48, 0xF2, 0x1F, 0xA1, 0x54, 0xC0, 0xD0, 0x99,
+ 0x49, 0xC0, 0x82, 0x0C, 0xFC, 0xC2, 0xC0, 0x0C, 0x49, 0xC0, 0x02, 0x0D, 0x00, 0xC2, 0x00, 0x0D, 0x06, 0xC0, 0x06, 0x85, 0x40, 0xB5, 0x5B, 0x45, 0x06, 0xC0, 0x04, 0x85, 0x40, 0xB5,
+ 0x5B, 0x48, 0x40, 0xC0, 0x02, 0x85, 0x40, 0xB5, 0xDB, 0x45, 0x58, 0xC0, 0x12, 0x85, 0x40, 0xB5, 0xDB, 0x48, 0x20, 0xB7, 0xCB, 0x48, 0x5B, 0xCA, 0x16, 0x0A, 0x5A, 0xCA, 0x14, 0x0A,
+ 0x40, 0xB7, 0xCB, 0x45, 0x80, 0xB5, 0x4D, 0x42, 0xC0, 0x58, 0xA6, 0xD0, 0x41, 0x59, 0x20, 0xB7, 0x4D, 0x45, 0x40, 0x59, 0x10, 0xF2, 0x2D, 0x80, 0x26, 0xD1, 0x41, 0x59, 0x20, 0xE2,
+ 0x2D, 0x81, 0xB5, 0x58, 0x12, 0xD0, 0x12, 0x2B, 0x80, 0xB5, 0x8C, 0x42, 0x40, 0xB5, 0x14, 0x42, 0x0A, 0x85, 0x37, 0xC0, 0x89, 0x9C, 0x82, 0x0F, 0xC0, 0xB7, 0x0C, 0x46, 0x8A, 0x0B,
+ 0x94, 0xC0, 0x1D, 0x9A, 0x71, 0xC9, 0x80, 0x9C, 0x11, 0xF0, 0xC4, 0x2A, 0x00, 0xC0, 0x24, 0x92, 0x80, 0x77, 0x02, 0xC0, 0x42, 0x91, 0x74, 0xC0, 0xB1, 0x98, 0x1C, 0xC0, 0x3E, 0x7C,
+ 0x00, 0xC0, 0x04, 0x91, 0x71, 0xC1, 0x80, 0x9C, 0x08, 0x2A, 0x00, 0x75, 0x01, 0xC0, 0xC2, 0x93, 0x49, 0xC0, 0x82, 0x0E, 0xFC, 0xC2, 0xC0, 0x0E, 0x50, 0xF2, 0xA5, 0xA8, 0x50, 0xF2,
+ 0x2D, 0xAA, 0x48, 0x70, 0x01, 0xC0, 0x82, 0x91, 0x50, 0xF2, 0x25, 0xAA, 0x40, 0xB7, 0x9C, 0x42, 0x00, 0xC2, 0x08, 0x5A, 0x10, 0xE3, 0xA1, 0x81, 0x08, 0xD0, 0xE1, 0xA8, 0x08, 0xD0,
+ 0x65, 0xAA, 0xF6, 0xCF, 0xFD, 0x28, 0x00, 0x75, 0x8C, 0x08, 0x80, 0xC0, 0x89, 0x5A, 0x00, 0xC0, 0xA2, 0x90, 0xA3, 0x9E, 0x54, 0xC0, 0x93, 0x9B, 0x50, 0xF2, 0x27, 0xA9, 0x90, 0xDA,
+ 0x21, 0xAA, 0x10, 0xE3, 0xA3, 0x80, 0x00, 0xC2, 0x40, 0x5A, 0x00, 0xC2, 0x41, 0x5A, 0x48, 0x70, 0x7C, 0x9E, 0x14, 0xB3, 0x26, 0x44, 0x89, 0x00, 0x50, 0xF2, 0xA5, 0xA0, 0xFD, 0xFF,
+ 0xC0, 0x92, 0x40, 0x75, 0xFD, 0xFF, 0x62, 0x92, 0x71, 0xC1, 0x80, 0x9C, 0xFD, 0xFF, 0xE0, 0x91, 0x80, 0x77, 0xFD, 0xFF, 0x84, 0x91, 0x74, 0xC0, 0x66, 0x98, 0x1C, 0xC0, 0x3E, 0x7C,
+ 0xFD, 0xFF, 0xC4, 0x90, 0x12, 0x85, 0x5F, 0xB5, 0x7C, 0x7F, 0x04, 0x8D, 0x48, 0xF2, 0x5F, 0xA1, 0x71, 0xC9, 0x80, 0x9C, 0x08, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x04, 0x92, 0x27, 0xC9,
+ 0x8F, 0x9C, 0x9F, 0xB7, 0x6C, 0x7F, 0x04, 0x1A, 0x9F, 0xB5, 0x6C, 0x7F, 0x3F, 0xB7, 0x6C, 0x7F, 0x40, 0x74, 0xFF, 0xFF, 0x04, 0x93, 0x17, 0xC9, 0x8F, 0x9C, 0x48, 0xF2, 0xDD, 0xA3,
+ 0xFC, 0xFF, 0x00, 0x91, 0x9F, 0xB7, 0xEE, 0x7D, 0xBF, 0xB7, 0x6E, 0x7E, 0xDF, 0xB7, 0xEE, 0x7E, 0xFF, 0xB7, 0x6E, 0x7F, 0x02, 0xC0, 0x20, 0x8C, 0x22, 0x9C, 0x1D, 0xA6, 0x80, 0xB7,
+ 0x0C, 0x53, 0x12, 0xD0, 0x48, 0x0B, 0x20, 0xB7, 0x8C, 0x45, 0x87, 0x07, 0x07, 0xC0, 0xC2, 0x0B, 0x01, 0xC0, 0xC2, 0x0E, 0x09, 0x03, 0x31, 0xD0, 0x98, 0x0A, 0xCA, 0x7B, 0x00, 0xC0,
+ 0x62, 0x92, 0x08, 0xF2, 0x21, 0xAA, 0x05, 0xC0, 0x04, 0x7D, 0x00, 0xC0, 0xA2, 0x91, 0xFD, 0xCF, 0x76, 0x2A, 0x08, 0xF2, 0x21, 0xA2, 0x0A, 0x85, 0x08, 0xF2, 0x43, 0xA1, 0x10, 0xF2,
+ 0xC2, 0xA9, 0x14, 0xC0, 0x4E, 0x9A, 0x6C, 0x9E, 0x20, 0x0F, 0x20, 0x0B, 0x7D, 0x4A, 0x00, 0xE0, 0xF8, 0x23, 0x02, 0xC0, 0x80, 0x0A, 0x80, 0xC2, 0x84, 0x5E, 0xFF, 0xFF, 0x44, 0x90,
+ 0x9F, 0xB7, 0x6E, 0x7E, 0xBF, 0xB7, 0xEE, 0x7E, 0xDF, 0xB7, 0x6E, 0x7F, 0xFF, 0xB7, 0xEE, 0x7F, 0x02, 0xC0, 0x00, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x5D, 0x9E, 0x51, 0xD0, 0x58, 0x0A,
+ 0xA1, 0x9E, 0x86, 0x0D, 0xE4, 0x55, 0x07, 0xC0, 0xC0, 0x2D, 0x14, 0xC0, 0xC2, 0x99, 0xAB, 0x9E, 0x14, 0xC0, 0x08, 0x98, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C,
+ 0x22, 0x9C, 0x0D, 0xA6, 0x80, 0xB7, 0x8C, 0x45, 0xA6, 0xD1, 0x14, 0x5D, 0x10, 0xF3, 0x21, 0x81, 0x40, 0xB7, 0x84, 0x53, 0xB5, 0x9E, 0x30, 0xF2, 0xA5, 0xAA, 0xA6, 0xD1, 0x0C, 0x5D,
+ 0x2D, 0x9E, 0x01, 0xC0, 0xA0, 0x3A, 0x10, 0xF2, 0xA1, 0xA2, 0x30, 0xE0, 0xCE, 0xA9, 0x14, 0xC0, 0xF5, 0x99, 0x02, 0x85, 0xFF, 0xCF, 0xE8, 0x2A, 0x10, 0xF2, 0xA1, 0xA2, 0xFF, 0xCF,
+ 0xDE, 0x2A, 0x10, 0xF2, 0xA1, 0xA2, 0x31, 0xD0, 0x68, 0x0A, 0x08, 0xF2, 0x03, 0xA1, 0x9F, 0xB7, 0xEE, 0x7E, 0xBF, 0xB7, 0x6E, 0x7F, 0xDF, 0xB7, 0xEE, 0x7F, 0x60, 0x8C, 0x22, 0x9C,
+ 0x05, 0xA6, 0x5D, 0x9E, 0x0E, 0xC0, 0x7C, 0x2D, 0x0E, 0xC0, 0x7C, 0x29, 0x14, 0xC0, 0x3C, 0x98, 0xAB, 0x9E, 0x14, 0xC0, 0x08, 0x98, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F,
+ 0x40, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x5D, 0x9E, 0x40, 0xB7, 0x1C, 0x53, 0xA8, 0xD2, 0x0C, 0x59, 0x2D, 0x9E, 0x20, 0xE0, 0x6D, 0xAA, 0x02, 0x75, 0xA1, 0xB5, 0x08, 0x68, 0x00, 0xC0,
+ 0xE4, 0x90, 0x10, 0x85, 0x20, 0xE0, 0xEE, 0xA9, 0x14, 0xC0, 0xC0, 0x99, 0xAB, 0x9E, 0x14, 0xC0, 0x9C, 0x98, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C,
+ 0x02, 0xC0, 0x16, 0x85, 0x53, 0x9D, 0x71, 0xC1, 0xCC, 0x9C, 0x20, 0xB7, 0x14, 0x46, 0x20, 0xB7, 0x4D, 0x40, 0xB0, 0x5D, 0x00, 0xC1, 0x80, 0x2D, 0x5A, 0x9E, 0xFE, 0xCE, 0xFD, 0x28,
+ 0x94, 0x30, 0x20, 0xB5, 0x4D, 0x40, 0x71, 0xC1, 0xCC, 0x9C, 0x22, 0x9C, 0x0D, 0xA6, 0x5E, 0x9E, 0x80, 0xB7, 0x0C, 0x53, 0x24, 0xD3, 0x8C, 0x59, 0x55, 0x9E, 0x59, 0x9E, 0x06, 0x85,
+ 0x40, 0xE0, 0x27, 0xA1, 0x13, 0xD0, 0x48, 0x09, 0x9E, 0x9E, 0xC7, 0x9D, 0x95, 0x9E, 0x10, 0xE0, 0xEA, 0xA9, 0x0E, 0xC0, 0xFC, 0x2A, 0x0E, 0xC0, 0xFC, 0x2E, 0x14, 0xC0, 0x86, 0x99,
+ 0x40, 0x75, 0x82, 0x0D, 0x01, 0xD0, 0xB2, 0x0D, 0xF4, 0xFF, 0xCF, 0x9B, 0x20, 0xB7, 0x8C, 0x45, 0x26, 0xD3, 0x14, 0x59, 0x01, 0xC2, 0x22, 0x81, 0x71, 0xF0, 0x20, 0x84, 0x1E, 0x87,
+ 0x0A, 0xF2, 0x00, 0xA1, 0x31, 0xF0, 0x20, 0x84, 0x2A, 0x9E, 0x05, 0xC8, 0x82, 0x0C, 0x42, 0xA3, 0x08, 0xF2, 0x82, 0xA2, 0x20, 0xF0, 0xC6, 0xA0, 0x05, 0xC8, 0x92, 0x0C, 0x00, 0xF0,
+ 0xC2, 0xA0, 0x9F, 0xB7, 0xEE, 0x7E, 0xBF, 0xB7, 0x6E, 0x7F, 0xDF, 0xB7, 0xEE, 0x7F, 0x60, 0x8C, 0x22, 0x9C, 0x1D, 0xA6, 0x80, 0xB7, 0x0C, 0x53, 0x5F, 0x9E, 0x9D, 0x9E, 0x55, 0x9E,
+ 0x06, 0x85, 0x08, 0xF2, 0x03, 0xA1, 0x08, 0xF2, 0x86, 0xA9, 0x96, 0x9E, 0x4E, 0x9E, 0x14, 0xC0, 0x50, 0x99, 0x82, 0x0D, 0xF4, 0xFF, 0x9C, 0x9B, 0x11, 0xC0, 0x82, 0x08, 0x84, 0x08,
+ 0x80, 0xB7, 0x8C, 0x45, 0x80, 0xC2, 0xD0, 0x5E, 0x6A, 0x9E, 0x42, 0x85, 0x80, 0xC2, 0xA8, 0x5A, 0x08, 0xF2, 0x1B, 0xA1, 0x08, 0xF2, 0x01, 0xA3, 0x08, 0xF2, 0x89, 0xA0, 0xAA, 0x30,
+ 0x72, 0x9E, 0x34, 0xC0, 0x42, 0x85, 0x94, 0x30, 0x08, 0xF2, 0x91, 0xA0, 0x08, 0xF2, 0x17, 0xA1, 0x8F, 0x00, 0x01, 0xC2, 0x88, 0x38, 0x08, 0xF2, 0x85, 0xA0, 0x01, 0xC0, 0x84, 0x38,
+ 0x08, 0xF2, 0x85, 0xA0, 0x9F, 0xB7, 0x6E, 0x7E, 0xBF, 0xB7, 0xEE, 0x7E, 0xDF, 0xB7, 0x6E, 0x7F, 0xFF, 0xB7, 0xEE, 0x7F, 0x02, 0xC0, 0x00, 0x8C, 0x22, 0x9C, 0x40, 0xB7, 0x04, 0x53,
+ 0xA6, 0xD1, 0x0C, 0x5D, 0x2E, 0x9E, 0x38, 0xE0, 0x41, 0xA8, 0x11, 0xD0, 0x04, 0x1A, 0x02, 0x75, 0x40, 0xB3, 0xB2, 0x48, 0x02, 0x85, 0x00, 0xF0, 0x43, 0xA1, 0x22, 0x9C, 0x05, 0xA6,
+ 0x20, 0x84, 0x87, 0x02, 0x87, 0x06, 0x02, 0x87, 0x54, 0x9E, 0x74, 0xC0, 0xCE, 0x9C, 0x00, 0x75, 0x00, 0xC0, 0x24, 0x91, 0xEF, 0xCE, 0x3A, 0x87, 0xEE, 0xCE, 0x38, 0x87, 0x06, 0x85,
+ 0x01, 0xC0, 0x40, 0x91, 0x20, 0x75, 0x31, 0xD0, 0x00, 0x41, 0x01, 0xC0, 0xA2, 0x90, 0x2A, 0x75, 0x01, 0xC0, 0x24, 0x90, 0x20, 0xB7, 0x14, 0x46, 0x40, 0xB7, 0x45, 0x41, 0x50, 0x9D,
+ 0x01, 0xC1, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0xE2, 0x92, 0x01, 0xC1, 0x82, 0x08, 0x20, 0xB5, 0xCD, 0x41, 0x80, 0xB7, 0x8C, 0x4A, 0x20, 0xB7, 0x94, 0x41, 0x04, 0x0A, 0x80, 0xB5,
+ 0x8C, 0x4A, 0x20, 0xB7, 0x8C, 0x4A, 0x80, 0xB7, 0x4D, 0x41, 0x48, 0x70, 0x00, 0xC0, 0xC6, 0x91, 0x0E, 0x85, 0x00, 0xC0, 0x60, 0x90, 0x0A, 0x85, 0xCF, 0x9D, 0x4C, 0x9D, 0x5F, 0xB5,
+ 0x64, 0x7F, 0x74, 0xC0, 0x89, 0x9A, 0x5F, 0xB7, 0x64, 0x7F, 0x74, 0xC0, 0xCE, 0x9C, 0x0B, 0x00, 0x0B, 0x04, 0x9F, 0xB7, 0xEE, 0x7E, 0xBF, 0xB7, 0x6E, 0x7F, 0x60, 0x8C, 0x22, 0x9C,
+ 0x05, 0xA6, 0x20, 0x84, 0x87, 0x02, 0x87, 0x06, 0x02, 0xC0, 0x16, 0x85, 0x73, 0xC0, 0xCE, 0x9C, 0xA8, 0x76, 0x00, 0xC0, 0x04, 0x91, 0x5F, 0xB5, 0x7C, 0x7F, 0x14, 0xC0, 0x39, 0x98,
+ 0x5F, 0xB7, 0x7C, 0x7F, 0x73, 0xC0, 0xCE, 0x9C, 0x0B, 0x00, 0x0B, 0x04, 0x9F, 0xB7, 0xEE, 0x7E, 0xBF, 0xB7, 0x6E, 0x7F, 0x60, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x94, 0xC0, 0x7F, 0x9B,
+ 0x11, 0xC0, 0x82, 0x0D, 0x94, 0xC0, 0x63, 0x9B, 0x09, 0xC8, 0xC2, 0x08, 0xC6, 0xC0, 0xB0, 0x08, 0x09, 0xC8, 0x42, 0x0A, 0xB2, 0xC0, 0x70, 0x0A, 0x02, 0xC0, 0xD6, 0x0A, 0x82, 0x0E,
+ 0x8B, 0x01, 0x8B, 0x05, 0x20, 0xB5, 0x2C, 0x4C, 0x80, 0xB5, 0xAC, 0x4C, 0x80, 0xB5, 0x2C, 0x4A, 0x80, 0xB5, 0x2C, 0x42, 0x94, 0xC0, 0xE9, 0x9B, 0x02, 0x0A, 0x71, 0xC1, 0xCC, 0x9C,
+ 0x02, 0xC0, 0x50, 0x3A, 0x71, 0xC1, 0xCC, 0x9C, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0xA0, 0xB7, 0x14, 0x46, 0x10, 0xF2, 0xA9, 0xA8,
+ 0x80, 0xB7, 0x8C, 0x43, 0x00, 0xE0, 0x98, 0x22, 0x00, 0xC0, 0x22, 0x93, 0x0B, 0x02, 0x07, 0xE0, 0x40, 0x2A, 0x10, 0xF2, 0xAD, 0xA2, 0x00, 0xC0, 0xA2, 0x90, 0xA3, 0x9E, 0xF4, 0xFF,
+ 0x10, 0x9A, 0x09, 0xC2, 0x3E, 0x0A, 0x04, 0xC1, 0x3C, 0x0A, 0x00, 0xE0, 0x58, 0x22, 0xFF, 0xFF, 0x02, 0x91, 0xA3, 0x9E, 0x54, 0xC0, 0xB8, 0x9A, 0xFF, 0xFF, 0x60, 0x90, 0x9F, 0xB7,
+ 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x20, 0xB7, 0x94, 0x43, 0x80, 0xB7, 0x0C, 0x46, 0x96, 0x34, 0x20, 0xB5, 0x94, 0x43, 0x08, 0xF2, 0x96, 0xA0, 0x22, 0x9C,
+ 0x20, 0xB7, 0x94, 0x43, 0x80, 0xB7, 0x0C, 0x46, 0xFD, 0x4D, 0x96, 0x24, 0x20, 0xB5, 0x94, 0x43, 0x08, 0xF2, 0x96, 0xA0, 0x22, 0x9C, 0x49, 0xC0, 0x02, 0x0D, 0x60, 0xC0, 0x20, 0x0D,
+ 0x59, 0x9E, 0x49, 0xC0, 0x02, 0x09, 0x60, 0xC0, 0x30, 0x09, 0x81, 0xC0, 0x82, 0x0C, 0x49, 0xC0, 0x80, 0x08, 0x80, 0xC0, 0x80, 0x08, 0x00, 0xB7, 0x2D, 0x40, 0x10, 0xF0, 0x41, 0xAA,
+ 0x81, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x06, 0x0A, 0x02, 0xD0, 0x42, 0x1A, 0x0A, 0xB4, 0x24, 0x4A, 0x00, 0x75, 0xFF, 0xFF, 0x62, 0x92, 0x22, 0x9C, 0x49, 0xC0, 0x02, 0x0D, 0x60, 0xC0,
+ 0x20, 0x0D, 0x59, 0x9E, 0x49, 0xC0, 0x02, 0x09, 0x60, 0xC0, 0x30, 0x09, 0x41, 0xC0, 0x82, 0x0C, 0x49, 0xC0, 0x80, 0x08, 0x80, 0xC0, 0x80, 0x08, 0x60, 0xB5, 0x2D, 0x40, 0x10, 0xF0,
+ 0x41, 0xAA, 0x41, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x06, 0x0A, 0x02, 0xD0, 0x42, 0x1A, 0x0A, 0xB4, 0x24, 0x4A, 0x00, 0x75, 0xFF, 0xFF, 0x62, 0x92, 0x22, 0x9C, 0x02, 0x85, 0x10, 0xF0,
+ 0x63, 0xA1, 0x22, 0x9C, 0x10, 0xF0, 0x61, 0xAA, 0x00, 0x75, 0xFF, 0xFF, 0xA2, 0x93, 0x02, 0xC0, 0x16, 0x85, 0x53, 0x9D, 0x71, 0xC1, 0xCC, 0x9C, 0x10, 0xF0, 0xE1, 0xA8, 0x84, 0x18,
+ 0x10, 0xF0, 0xE1, 0xA0, 0x71, 0xC1, 0xCC, 0x9C, 0x02, 0x08, 0x22, 0x9C, 0x02, 0xC0, 0x16, 0x85, 0x53, 0x9D, 0x71, 0xC1, 0xCC, 0x9C, 0x10, 0xF0, 0xE1, 0xA8, 0x84, 0x08, 0x10, 0xF0,
+ 0xE1, 0xA0, 0x71, 0xC1, 0xCC, 0x9C, 0x02, 0x08, 0x22, 0x9C, 0x05, 0xA6, 0x1C, 0xC0, 0xFE, 0x7C, 0x82, 0x08, 0x01, 0xD0, 0x92, 0x08, 0xA2, 0xD1, 0x0C, 0x5E, 0xA4, 0xD0, 0x88, 0x5A,
+ 0x55, 0x9E, 0x69, 0x9E, 0x20, 0x59, 0x30, 0xC0, 0x00, 0x29, 0x20, 0x2A, 0x14, 0x31, 0x20, 0xD0, 0xA8, 0x32, 0x84, 0x3E, 0x6B, 0x9E, 0xE2, 0x0D, 0xF4, 0xFF, 0xA6, 0x9B, 0x6B, 0x9E,
+ 0xE2, 0x0D, 0xF9, 0x29, 0xF4, 0xFF, 0xA1, 0x9B, 0xF2, 0x0D, 0x8B, 0x01, 0x0F, 0xC0, 0xFE, 0x29, 0xF4, 0xFF, 0x9B, 0x9B, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C,
+ 0x22, 0x9C, 0x39, 0xF8, 0x05, 0xA2, 0x04, 0xC0, 0xF2, 0x0D, 0xF4, 0xFF, 0x70, 0x9B, 0x00, 0x74, 0xFF, 0xFF, 0x76, 0x93, 0xF8, 0xF9, 0x1D, 0xAA, 0x22, 0x9C, 0x05, 0xA6, 0x5D, 0x9E,
+ 0xE2, 0x0D, 0xF4, 0xFF, 0x65, 0x9B, 0xE2, 0x0D, 0xCE, 0xCF, 0x7D, 0x28, 0x80, 0xC2, 0xA0, 0x5A, 0x8B, 0x01, 0x30, 0xC0, 0x80, 0x29, 0x86, 0x31, 0xF4, 0xFF, 0x79, 0x9B, 0xE2, 0x0D,
+ 0xF4, 0xFF, 0x57, 0x9B, 0x30, 0xC0, 0x00, 0x28, 0x0A, 0x70, 0xFF, 0xFF, 0x44, 0x93, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x39, 0xF8, 0x05, 0xA2,
+ 0x06, 0xC0, 0x92, 0x0D, 0x92, 0x09, 0xF4, 0xFF, 0x64, 0x9B, 0xF4, 0xFF, 0xCF, 0x9B, 0x04, 0xC0, 0xF2, 0x0D, 0xF4, 0xFF, 0x3F, 0x9B, 0x06, 0xC0, 0x82, 0x0D, 0xF8, 0xF9, 0x1D, 0xAA,
+ 0xF9, 0xFF, 0x20, 0x93, 0x0D, 0xA6, 0x81, 0xB7, 0x88, 0x6C, 0x1C, 0xC0, 0x3E, 0x7D, 0xC0, 0xB7, 0x8C, 0x51, 0x82, 0x0A, 0x00, 0xC0, 0x42, 0x91, 0x74, 0xC0, 0xAB, 0x9A, 0x81, 0xB7,
+ 0x88, 0x6C, 0x1C, 0xC0, 0x3E, 0x7D, 0xFF, 0xFF, 0x44, 0x93, 0x02, 0xC0, 0x16, 0x85, 0xD7, 0x9D, 0x72, 0xC1, 0xCD, 0x9C, 0xFF, 0xCF, 0xBE, 0x2A, 0x20, 0xB7, 0x0C, 0x46, 0x80, 0xB7,
+ 0xAD, 0x45, 0x40, 0x2A, 0x00, 0x75, 0xFF, 0xFF, 0x82, 0x93, 0x08, 0xC0, 0xE2, 0x0D, 0xF4, 0xFF, 0x14, 0x9B, 0x80, 0xB7, 0x0C, 0x4B, 0x04, 0x1A, 0x26, 0xD2, 0x08, 0x59, 0x53, 0x9D,
+ 0x60, 0xE2, 0x85, 0xA8, 0x02, 0x70, 0x00, 0xC0, 0x62, 0x90, 0x00, 0x9F, 0x20, 0xB7, 0x14, 0x46, 0x01, 0xC0, 0xC0, 0x3A, 0x7F, 0x09, 0x2A, 0x41, 0x20, 0xB7, 0x4D, 0x40, 0x82, 0x0D,
+ 0x10, 0xC0, 0x82, 0x09, 0x94, 0x20, 0x1A, 0x32, 0x80, 0xB5, 0x4D, 0x40, 0xA0, 0xB7, 0x4D, 0x40, 0x20, 0xB5, 0x4D, 0x40, 0x20, 0xB5, 0x4D, 0x40, 0xF4, 0xFF, 0x10, 0x9B, 0x72, 0xC1,
+ 0xCD, 0x9C, 0x06, 0x08, 0x9F, 0xB7, 0xEE, 0x7E, 0xBF, 0xB7, 0x6E, 0x7F, 0xDF, 0xB7, 0xEE, 0x7F, 0x60, 0x8C, 0x22, 0x9C, 0x0D, 0xA6, 0x20, 0x84, 0x02, 0xC0, 0x16, 0x85, 0x57, 0x9D,
+ 0x71, 0xC1, 0xCD, 0x9C, 0x20, 0xB7, 0x14, 0x46, 0x20, 0xB7, 0x4D, 0x40, 0x06, 0xC0, 0xB2, 0x0D, 0xFF, 0xCF, 0xFA, 0x28, 0x03, 0x02, 0x01, 0xC0, 0x04, 0x3A, 0x80, 0xB5, 0x4D, 0x40,
+ 0x80, 0xB7, 0x4D, 0x40, 0x20, 0xB5, 0x4D, 0x40, 0xF4, 0xFF, 0xCC, 0x9A, 0x81, 0xC0, 0x02, 0x0A, 0x7F, 0x0B, 0x68, 0x43, 0x06, 0xC0, 0xB2, 0x0D, 0x88, 0x31, 0xF4, 0xFF, 0xE2, 0x9A,
+ 0x06, 0xC0, 0xF2, 0x0D, 0xF4, 0xFF, 0xBF, 0x9A, 0x1F, 0xB5, 0x6C, 0x7F, 0x08, 0xC0, 0x82, 0x0D, 0xF4, 0xFF, 0xB9, 0x9A, 0x1F, 0xB5, 0xEC, 0x7F, 0x06, 0xC0, 0xA2, 0x0D, 0x02, 0xC0,
+ 0x82, 0x09, 0xF4, 0xFF, 0xD0, 0x9A, 0x7F, 0xB7, 0x6C, 0x7F, 0x06, 0xC0, 0xF2, 0x0D, 0xF4, 0xFF, 0xCA, 0x9A, 0x7F, 0xB7, 0xEC, 0x7F, 0x08, 0xC0, 0x82, 0x0D, 0xF4, 0xFF, 0xC4, 0x9A,
+ 0x06, 0xC0, 0xB2, 0x0D, 0xF4, 0xFF, 0xA1, 0x9A, 0x06, 0xC0, 0xB2, 0x0D, 0x8C, 0x21, 0xF4, 0xFF, 0xBB, 0x9A, 0x71, 0xC1, 0xCD, 0x9C, 0x9F, 0xB7, 0x6E, 0x7E, 0xBF, 0xB7, 0xEE, 0x7E,
+ 0xDF, 0xB7, 0x6E, 0x7F, 0x02, 0xC0, 0x00, 0x8C, 0x22, 0x9C, 0x5A, 0x9E, 0x20, 0xB7, 0x14, 0x46, 0x08, 0xF0, 0xCD, 0xA8, 0x80, 0xB7, 0x4D, 0x45, 0x0A, 0x75, 0xFF, 0xFF, 0xB4, 0x93,
+ 0x80, 0xB7, 0x0C, 0x47, 0x02, 0x85, 0x48, 0xF2, 0x0B, 0xA1, 0x48, 0xF2, 0x0F, 0xA1, 0x48, 0xF2, 0x13, 0xA1, 0xFF, 0xCF, 0xC2, 0x28, 0x01, 0xC0, 0x84, 0x38, 0xFE, 0xC9, 0xFD, 0x28,
+ 0x00, 0xC4, 0x80, 0x38, 0x08, 0xF2, 0x89, 0xA0, 0x08, 0xF0, 0xDD, 0xA8, 0xFE, 0xCC, 0xFD, 0x28, 0x00, 0xC1, 0x80, 0x38, 0x40, 0xC0, 0x00, 0x0A, 0x08, 0xF2, 0x81, 0xA0, 0xC0, 0xCF,
+ 0x01, 0x0A, 0x60, 0xC0, 0x00, 0x0A, 0x08, 0xF2, 0x81, 0xA0, 0x0E, 0xC0, 0x68, 0x85, 0x20, 0xB7, 0x0C, 0x46, 0x80, 0xB7, 0x2D, 0x45, 0x0C, 0x75, 0xFF, 0xFF, 0xA6, 0x93, 0x20, 0xB7,
+ 0x0C, 0x47, 0x60, 0xB9, 0x28, 0x40, 0x40, 0xC0, 0xA0, 0x08, 0x40, 0xB5, 0x3D, 0x40, 0x11, 0xF0, 0x22, 0x84, 0x00, 0xC2, 0x40, 0x5A, 0x26, 0xD2, 0x41, 0x59, 0xFF, 0xFF, 0x01, 0x93,
+ 0x20, 0xB7, 0x0C, 0x46, 0x80, 0xB7, 0x2D, 0x45, 0x06, 0x75, 0xFF, 0xFF, 0xB4, 0x93, 0x82, 0x08, 0x20, 0xB7, 0x14, 0x47, 0x40, 0xC0, 0xA0, 0x0C, 0x20, 0xB5, 0x4D, 0x40, 0x48, 0xF0,
+ 0x51, 0xAA, 0x08, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0xC2, 0x90, 0x10, 0xC0, 0x82, 0x08, 0x00, 0xC0, 0x60, 0x90, 0x86, 0x08, 0x20, 0xB5, 0x4D, 0x40, 0x02, 0xC0, 0x16, 0x85, 0xC7, 0x9D,
+ 0x72, 0xC0, 0xCD, 0x9C, 0x80, 0xB7, 0x0C, 0x47, 0x40, 0xC0, 0x10, 0x0A, 0x02, 0xC0, 0x14, 0x8D, 0x08, 0xF2, 0x03, 0xA1, 0x08, 0x85, 0x08, 0xF2, 0x03, 0xA1, 0x80, 0xB7, 0x0C, 0x46,
+ 0x08, 0xF2, 0x89, 0xA8, 0x01, 0xC0, 0xB0, 0x28, 0x01, 0xC0, 0x58, 0x74, 0xFF, 0xFF, 0x44, 0x93, 0x80, 0xB7, 0x0C, 0x46, 0x08, 0xF2, 0x8D, 0xA0, 0x48, 0xF0, 0xD1, 0xA8, 0x09, 0xC0,
+ 0x80, 0x38, 0x48, 0xF0, 0xD1, 0xA0, 0x72, 0xC0, 0xCD, 0x9C, 0x89, 0x00, 0x80, 0xB7, 0x2D, 0x45, 0x08, 0x75, 0xFF, 0xFF, 0xB4, 0x93, 0x20, 0xB7, 0x14, 0x47, 0x48, 0xF0, 0x41, 0xAA,
+ 0x80, 0xB5, 0x4D, 0x45, 0x48, 0xF0, 0xC5, 0xA8, 0x20, 0xB5, 0xCD, 0x45, 0x48, 0xF0, 0x41, 0xAA, 0x80, 0xB5, 0x4D, 0x46, 0x08, 0xF0, 0xCD, 0xA8, 0x20, 0xB5, 0x4D, 0x41, 0x40, 0xC0,
+ 0x80, 0x0C, 0x08, 0xF0, 0x5D, 0xAA, 0x80, 0xB5, 0x4D, 0x40, 0x22, 0x9C, 0x40, 0xB7, 0x04, 0x47, 0x3A, 0x9D, 0x99, 0x9E, 0x20, 0xB7, 0x0C, 0x46, 0x80, 0xB7, 0x2D, 0x45, 0x00, 0x75,
+ 0xFF, 0xFF, 0xA2, 0x93, 0x2D, 0x9E, 0x20, 0xE0, 0xEE, 0xA0, 0x22, 0x9C, 0x02, 0x0A, 0xA2, 0x0C, 0x81, 0xB4, 0x00, 0xC0, 0x01, 0xB2, 0x20, 0x44, 0x22, 0x9C, 0x20, 0xB7, 0x8C, 0x41,
+ 0x80, 0xB7, 0x2D, 0x45, 0x20, 0x2A, 0x00, 0x75, 0x5C, 0x9E, 0x40, 0xB3, 0xA4, 0x48, 0x82, 0x08, 0x10, 0xCB, 0x81, 0x9C, 0x08, 0xC0, 0xD4, 0x38, 0x80, 0xB7, 0x0C, 0x44, 0x01, 0xC0,
+ 0x84, 0x38, 0x20, 0xC0, 0x20, 0x0A, 0x08, 0xF2, 0x81, 0xA0, 0x22, 0x9C, 0x80, 0xB7, 0x0C, 0x44, 0x02, 0x85, 0x20, 0xC0, 0x20, 0x0A, 0x08, 0xF2, 0x03, 0xA1, 0x22, 0x9C, 0x39, 0xF8,
+ 0x05, 0xA2, 0x00, 0xC0, 0x80, 0x90, 0x74, 0xC0, 0x2E, 0x99, 0x81, 0xB7, 0x08, 0x6C, 0x1C, 0xC0, 0x3E, 0x7D, 0xFF, 0xFF, 0x44, 0x93, 0xF8, 0xF9, 0x1D, 0xAA, 0x22, 0x9C, 0x05, 0xA6,
+ 0xA0, 0xB7, 0x0C, 0x46, 0x09, 0xC2, 0x86, 0x0E, 0x00, 0xC1, 0xB8, 0x0E, 0x06, 0x85, 0x40, 0xB5, 0x18, 0x44, 0x00, 0xC0, 0x00, 0x91, 0x08, 0xF2, 0x29, 0xA8, 0x6C, 0x9E, 0x08, 0x78,
+ 0x01, 0xC0, 0xE4, 0x91, 0x08, 0xC0, 0xF2, 0x0D, 0xF4, 0xFF, 0x91, 0x99, 0x40, 0xC0, 0x00, 0x28, 0x00, 0x74, 0xFF, 0xFF, 0x64, 0x92, 0x06, 0xC0, 0xA2, 0x0D, 0x82, 0x09, 0x88, 0x39,
+ 0xF4, 0xFF, 0xA5, 0x99, 0xA0, 0xB7, 0x0C, 0x46, 0x09, 0xC2, 0x86, 0x0E, 0x00, 0xC1, 0xB8, 0x0E, 0x08, 0xC0, 0xF2, 0x0D, 0xF4, 0xFF, 0x7C, 0x99, 0x80, 0xC1, 0x00, 0x7C, 0x00, 0xC0,
+ 0xE2, 0x91, 0x20, 0xC0, 0x00, 0x28, 0x00, 0x74, 0x00, 0xC0, 0xA4, 0x91, 0x08, 0xF2, 0x29, 0xA8, 0x6C, 0x9E, 0x08, 0x78, 0x00, 0xC0, 0xE4, 0x90, 0xFF, 0xFF, 0xA0, 0x91, 0x02, 0x85,
+ 0x40, 0xB5, 0x18, 0x44, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x1D, 0xA6, 0x5D, 0x9E, 0x06, 0xC0, 0xC2, 0x0D, 0xF4, 0xFF, 0x5C, 0x99, 0x85, 0x9E,
+ 0x24, 0xD0, 0x41, 0x5B, 0x82, 0x0B, 0x06, 0xC0, 0xB2, 0x0D, 0xF4, 0xFF, 0x54, 0x99, 0x01, 0xC0, 0x30, 0x28, 0x00, 0xC0, 0x49, 0x5B, 0x11, 0xD0, 0xEC, 0x08, 0x06, 0x0A, 0x00, 0xC2,
+ 0x04, 0x53, 0xFE, 0xCF, 0xFC, 0x2E, 0x80, 0xC2, 0x8C, 0x5A, 0xCA, 0x71, 0x80, 0xC2, 0xB0, 0x5E, 0x00, 0xC3, 0x30, 0x5F, 0x00, 0xC0, 0xF6, 0x91, 0xB1, 0x9E, 0xD2, 0x16, 0x08, 0xC0,
+ 0xB2, 0x0D, 0xF4, 0xFF, 0x3A, 0x99, 0x6C, 0x9E, 0xFF, 0xC0, 0x7E, 0x28, 0x40, 0x10, 0x0A, 0x70, 0xFF, 0xFF, 0xF8, 0x92, 0xCA, 0x71, 0x00, 0xC0, 0xF6, 0x91, 0xB1, 0x9E, 0xE2, 0x16,
+ 0x08, 0xC0, 0xC2, 0x0D, 0xF4, 0xFF, 0x2A, 0x99, 0x6C, 0x9E, 0xFF, 0xC0, 0x7E, 0x28, 0xC0, 0x13, 0xCA, 0x71, 0xFF, 0xFF, 0xF8, 0x92, 0x08, 0xC0, 0xF2, 0x0D, 0xF4, 0xFF, 0x1F, 0x99,
+ 0x40, 0xC0, 0x00, 0x28, 0x00, 0x74, 0xFF, 0xFF, 0x24, 0x93, 0x9F, 0xB7, 0x6E, 0x7E, 0xBF, 0xB7, 0xEE, 0x7E, 0xDF, 0xB7, 0x6E, 0x7F, 0xFF, 0xB7, 0xEE, 0x7F, 0x02, 0xC0, 0x00, 0x8C,
+ 0x22, 0x9C, 0x1D, 0xA6, 0x5E, 0x9E, 0x9D, 0x9E, 0xF4, 0xFF, 0x56, 0x9B, 0x02, 0xC0, 0x16, 0x85, 0xDB, 0x9D, 0x72, 0xC1, 0xCE, 0x9C, 0xA0, 0xB7, 0x8C, 0x51, 0x82, 0x0B, 0xD2, 0x0D,
+ 0x08, 0xF2, 0xA6, 0xA2, 0x08, 0xF2, 0x2D, 0xA3, 0xF4, 0xFF, 0x9B, 0x9B, 0x29, 0xF2, 0xA5, 0xA9, 0x08, 0xC0, 0xD2, 0x0D, 0xF4, 0xFF, 0x14, 0x99, 0x84, 0x0B, 0xC8, 0x75, 0xFF, 0xFF,
+ 0x14, 0x93, 0xF4, 0xFF, 0x4A, 0x9B, 0x72, 0xC1, 0xCE, 0x9C, 0x9F, 0xB7, 0x6E, 0x7E, 0xBF, 0xB7, 0xEE, 0x7E, 0xDF, 0xB7, 0x6E, 0x7F, 0xFF, 0xB7, 0xEE, 0x7F, 0x02, 0xC0, 0x00, 0x8C,
+ 0x22, 0x9C, 0x39, 0xF8, 0x05, 0xA2, 0xD2, 0x0D, 0xF4, 0xFF, 0x7D, 0x9B, 0x08, 0xC0, 0xD2, 0x0D, 0x01, 0xC0, 0x86, 0x09, 0xAC, 0x09, 0xF4, 0xFF, 0xF5, 0x98, 0x08, 0xC0, 0xD2, 0x0D,
+ 0x82, 0x09, 0xF4, 0xFF, 0xF0, 0x98, 0x08, 0xC0, 0xD2, 0x0D, 0x01, 0xC0, 0x86, 0x09, 0x00, 0xC5, 0xCC, 0x09, 0xF4, 0xFF, 0xE8, 0x98, 0x08, 0xC0, 0xD2, 0x0D, 0x86, 0x09, 0xF4, 0xFF,
+ 0xE3, 0x98, 0x08, 0xC0, 0xD2, 0x0D, 0x9E, 0x09, 0xF8, 0xF9, 0x1D, 0xAA, 0xE6, 0xFF, 0x80, 0x93, 0x39, 0xF8, 0x05, 0xA2, 0x60, 0x84, 0x3A, 0x9D, 0x18, 0xD0, 0x45, 0xAA, 0x1C, 0xC0,
+ 0x3E, 0x7D, 0x04, 0xC0, 0x04, 0x93, 0x20, 0xB7, 0x8C, 0x52, 0x6D, 0xCB, 0xEE, 0x0C, 0xDA, 0xC6, 0xDC, 0x0C, 0x4A, 0x9E, 0x10, 0xF2, 0x23, 0x88, 0x45, 0x62, 0x00, 0xC2, 0x0F, 0x5A,
+ 0x04, 0x1A, 0x1C, 0x2A, 0xF4, 0xD0, 0x41, 0x69, 0x10, 0xE2, 0xA3, 0x82, 0x80, 0xB7, 0x29, 0x41, 0x1C, 0xC0, 0x3E, 0x7D, 0x00, 0xC0, 0x82, 0x93, 0x58, 0xF0, 0x51, 0xAA, 0x01, 0xC1,
+ 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x62, 0x90, 0x00, 0x9F, 0x58, 0xF0, 0x51, 0xAA, 0x01, 0xC1, 0x00, 0x3A, 0x58, 0xF0, 0x51, 0xA2, 0x58, 0xF0, 0xD1, 0xA8, 0x01, 0xC0, 0xC0, 0x38,
+ 0x58, 0xF0, 0xD1, 0xA0, 0x82, 0x0D, 0x4F, 0x9D, 0x54, 0xC0, 0xD2, 0x9B, 0x03, 0xC0, 0x80, 0x91, 0x58, 0xF0, 0xD1, 0xA8, 0x58, 0xF0, 0xD2, 0xA8, 0x00, 0xE2, 0x80, 0x2C, 0xB9, 0x58,
+ 0x11, 0xD0, 0x92, 0x29, 0x01, 0xC0, 0x04, 0x92, 0x20, 0xB7, 0x8C, 0x41, 0x80, 0xB7, 0x2D, 0x45, 0x80, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0xA2, 0x91, 0x80, 0xB7, 0x0C, 0x4D,
+ 0x42, 0x87, 0x5F, 0xB5, 0x60, 0x74, 0x20, 0xB5, 0x14, 0x4D, 0x9F, 0xB5, 0xEC, 0x7E, 0x00, 0xC0, 0xA0, 0x90, 0x32, 0x87, 0x5F, 0xB5, 0x60, 0x74, 0x0C, 0xC0, 0x02, 0x87, 0x5F, 0xB5,
+ 0xE0, 0x74, 0x58, 0xF0, 0x51, 0xAA, 0xC9, 0xA8, 0x72, 0xE0, 0x80, 0x8D, 0x58, 0xD8, 0xC2, 0xA8, 0x5F, 0xB5, 0x7C, 0x7F, 0x9F, 0xB5, 0x6C, 0x7E, 0x3F, 0xB5, 0xEC, 0x7D, 0x3F, 0xB5,
+ 0xF2, 0x7A, 0xD4, 0xFF, 0x13, 0x99, 0x5F, 0xB7, 0x7C, 0x7F, 0x18, 0xD0, 0x41, 0xAA, 0x04, 0x75, 0x00, 0xC0, 0x64, 0x91, 0x58, 0xF0, 0x51, 0xAA, 0x21, 0xC4, 0x00, 0x7D, 0x00, 0xC0,
+ 0x04, 0x93, 0x00, 0x9F, 0x00, 0xC0, 0xA0, 0x92, 0x06, 0x75, 0x00, 0xC0, 0x44, 0x92, 0x20, 0xB7, 0x0C, 0x46, 0x80, 0xB7, 0xAD, 0x45, 0x40, 0x2A, 0x00, 0x75, 0xFF, 0xFF, 0x82, 0x93,
+ 0x08, 0xC0, 0xE2, 0x0D, 0x5F, 0xB5, 0x7C, 0x7F, 0xF4, 0xFF, 0x29, 0x98, 0x5F, 0xB7, 0x7C, 0x7F, 0x02, 0x87, 0x1A, 0xD0, 0x48, 0xA1, 0x41, 0xB5, 0x80, 0x6C, 0x7F, 0x85, 0x40, 0xB5,
+ 0x9C, 0x49, 0x00, 0xC0, 0x00, 0x91, 0x58, 0xF0, 0x51, 0xAA, 0x01, 0xC1, 0x00, 0x3A, 0x58, 0xF0, 0x51, 0xA2, 0xF8, 0xF9, 0x11, 0xAA, 0x22, 0x9C, 0x39, 0xF8, 0x05, 0xA2, 0x20, 0x84,
+ 0x22, 0x85, 0x5F, 0xB5, 0x78, 0x7C, 0x0C, 0xC0, 0x0A, 0x85, 0x5F, 0xB5, 0xF8, 0x7C, 0x10, 0xF0, 0x65, 0xAA, 0x32, 0xE0, 0x80, 0x8D, 0x86, 0x09, 0x9F, 0xB5, 0xEC, 0x7F, 0xD4, 0xFF,
+ 0xCA, 0x98, 0xF8, 0xF9, 0x19, 0xAA, 0x22, 0x9C, 0x05, 0xA6, 0x5D, 0x9E, 0x82, 0x0D, 0xD4, 0xFF, 0x6A, 0x9A, 0x20, 0xB7, 0x14, 0x44, 0x20, 0xB7, 0x0A, 0x54, 0x34, 0xC0, 0x90, 0x0C,
+ 0xF1, 0xF1, 0xBD, 0xA0, 0x48, 0xDA, 0x25, 0xAA, 0x00, 0xC2, 0x09, 0x5A, 0x01, 0xC0, 0x04, 0x3A, 0x80, 0xB5, 0x4D, 0x40, 0x08, 0xD2, 0xA1, 0xA8, 0x44, 0x74, 0x08, 0xF2, 0xB9, 0xA9,
+ 0x02, 0x09, 0x02, 0xD0, 0x22, 0x09, 0x82, 0x0D, 0x06, 0x0D, 0xD4, 0xFF, 0x3D, 0x9A, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x87, 0x06,
+ 0xA2, 0xD2, 0x91, 0x5E, 0x84, 0x1A, 0x7F, 0x75, 0x00, 0xC0, 0x62, 0x92, 0x06, 0xC0, 0x92, 0x0D, 0x08, 0xC0, 0x86, 0x09, 0xD4, 0xFF, 0xE8, 0x9B, 0x84, 0x1A, 0x04, 0xC0, 0xF2, 0x0D,
+ 0xD4, 0xFF, 0xC4, 0x9B, 0x00, 0x74, 0xFF, 0xFF, 0x76, 0x93, 0x7F, 0x75, 0xFF, 0xFF, 0x24, 0x92, 0x31, 0xF0, 0xDE, 0x2D, 0x00, 0xC0, 0xE2, 0x91, 0x06, 0xC0, 0x92, 0x0D, 0x8C, 0x59,
+ 0x84, 0x39, 0xD4, 0xFF, 0xD3, 0x9B, 0x04, 0xC0, 0xF2, 0x0D, 0xD4, 0xFF, 0xB0, 0x9B, 0x00, 0x74, 0xFF, 0xFF, 0x76, 0x93, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C,
+ 0x22, 0x9C, 0x1D, 0xA6, 0x40, 0x84, 0x5F, 0x9E, 0x20, 0xB7, 0x90, 0x44, 0x7F, 0x87, 0x5F, 0xB5, 0x64, 0x7E, 0x82, 0x08, 0x3F, 0xB5, 0xEC, 0x7E, 0x3F, 0xB5, 0x6C, 0x7F, 0x0E, 0xC0,
+ 0x7E, 0x85, 0x40, 0xB5, 0x98, 0x44, 0x3F, 0xB5, 0xF4, 0x7F, 0x60, 0xB7, 0x94, 0x47, 0xC0, 0xB7, 0x14, 0x4A, 0xF4, 0xFF, 0xBB, 0x99, 0x48, 0xDA, 0x65, 0xAA, 0x00, 0xC1, 0x00, 0x75,
+ 0x13, 0xC0, 0x12, 0x92, 0xBB, 0x9E, 0xF4, 0xFF, 0x89, 0x9B, 0x08, 0xDA, 0x7D, 0xAA, 0x3C, 0x2A, 0x02, 0x75, 0x00, 0xC0, 0x84, 0x91, 0x48, 0xF2, 0x71, 0xAA, 0x04, 0xC0, 0x00, 0x2A,
+ 0x00, 0x75, 0x00, 0xC0, 0xA2, 0x90, 0xBB, 0x9E, 0xF4, 0xFF, 0x91, 0x98, 0x40, 0xB7, 0x8C, 0x52, 0x6D, 0xCB, 0xEE, 0x08, 0xDA, 0xC6, 0xDC, 0x08, 0x74, 0x12, 0x43, 0x62, 0x00, 0xC2,
+ 0x0F, 0x5A, 0x04, 0x1A, 0x1C, 0x2A, 0xF3, 0xD0, 0x41, 0x69, 0x08, 0xDA, 0xFE, 0xA8, 0x10, 0xF2, 0x25, 0x80, 0x08, 0xDA, 0x9D, 0xA8, 0xBC, 0x2C, 0x4C, 0x9E, 0xBC, 0x28, 0x02, 0x71,
+ 0x00, 0xC0, 0x42, 0x92, 0xBB, 0x9E, 0x01, 0xC1, 0x82, 0x09, 0xF4, 0xFF, 0x49, 0x9A, 0x02, 0x85, 0x73, 0xC0, 0xCE, 0x9C, 0x48, 0xF2, 0x71, 0xAA, 0x41, 0xC0, 0x00, 0x3A, 0x48, 0xF2,
+ 0x71, 0xA2, 0x73, 0xC0, 0xCE, 0x9C, 0xBB, 0x9E, 0x01, 0xC2, 0x82, 0x09, 0xF4, 0xFF, 0x39, 0x9A, 0x08, 0xDA, 0x7D, 0xAA, 0x3C, 0x2A, 0x08, 0x75, 0x00, 0xC0, 0x04, 0x91, 0x60, 0xC0,
+ 0xD2, 0x0D, 0xB9, 0xC0, 0xC2, 0x09, 0xD4, 0xFF, 0x59, 0x9B, 0x31, 0xF2, 0xC6, 0xAA, 0x6C, 0x9E, 0x01, 0xCF, 0x00, 0x2A, 0x01, 0xD0, 0x00, 0x75, 0x01, 0xC0, 0xE2, 0x92, 0x00, 0xC0,
+ 0x72, 0x93, 0x01, 0xC4, 0x00, 0x75, 0x04, 0xC0, 0x62, 0x90, 0x00, 0xC0, 0x72, 0x91, 0x00, 0x75, 0xFF, 0xFF, 0xC2, 0x91, 0x01, 0xC2, 0x00, 0x75, 0x01, 0xC0, 0xC2, 0x93, 0xFF, 0xFF,
+ 0x00, 0x91, 0x01, 0xCC, 0x00, 0x75, 0x09, 0xC0, 0xE2, 0x92, 0x01, 0xCE, 0x00, 0x75, 0x08, 0xC0, 0x02, 0x90, 0xFE, 0xFF, 0xC0, 0x93, 0x01, 0xD6, 0x00, 0x75, 0x05, 0xC0, 0xE2, 0x90,
+ 0x00, 0xC0, 0x92, 0x91, 0x01, 0xD2, 0x00, 0x75, 0x07, 0xC0, 0x82, 0x91, 0x01, 0xD4, 0x00, 0x75, 0x03, 0xC0, 0xE2, 0x92, 0xFE, 0xFF, 0xC0, 0x91, 0x01, 0xD8, 0x00, 0x75, 0x03, 0xC0,
+ 0x22, 0x92, 0x01, 0xDA, 0x00, 0x75, 0x04, 0xC0, 0x22, 0x91, 0xFE, 0xFF, 0x80, 0x90, 0x6C, 0x9E, 0x01, 0xC0, 0x40, 0x2A, 0x00, 0x75, 0xFD, 0xFF, 0xC2, 0x93, 0x48, 0xF2, 0x71, 0xAA,
+ 0x08, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0xFD, 0xFF, 0xE4, 0x92, 0xFE, 0xCF, 0xFC, 0x2E, 0xA2, 0xD2, 0x08, 0x5E, 0x49, 0x9D, 0x01, 0xC3, 0x64, 0x07, 0xFD, 0xFF, 0xC0, 0x91, 0x6D, 0x9E,
+ 0x01, 0xC0, 0xBE, 0x2A, 0x84, 0x1A, 0x7F, 0x75, 0xFD, 0xFF, 0xE2, 0x90, 0x10, 0xF2, 0x41, 0xA9, 0x05, 0x02, 0xB7, 0xCF, 0x7C, 0x0A, 0x80, 0xCF, 0x00, 0x0A, 0x00, 0xC1, 0x00, 0x75,
+ 0x00, 0xC0, 0xB2, 0x91, 0x10, 0xF2, 0xC5, 0xA9, 0xA3, 0x9E, 0xD4, 0xFF, 0xEE, 0x9A, 0x11, 0xD0, 0xD2, 0x19, 0x32, 0xD0, 0x60, 0x0D, 0x00, 0xC0, 0x40, 0x93, 0x05, 0x02, 0xB7, 0xCF,
+ 0x7C, 0x0A, 0x00, 0xCF, 0x00, 0x0A, 0x10, 0xF2, 0xC5, 0xA8, 0x00, 0xC2, 0x00, 0x75, 0x11, 0xD0, 0xD2, 0x19, 0x32, 0xD0, 0x60, 0x0D, 0x00, 0xC0, 0x32, 0x91, 0x20, 0xB7, 0x14, 0x46,
+ 0x80, 0xB7, 0x4D, 0x45, 0x00, 0x75, 0xFF, 0xFF, 0xA2, 0x93, 0x08, 0xF0, 0xC1, 0xA0, 0x87, 0x02, 0x7F, 0x75, 0x05, 0x07, 0xFE, 0xFF, 0xE4, 0x91, 0xFB, 0xFF, 0x40, 0x92, 0x6D, 0x9E,
+ 0x01, 0xC0, 0xBE, 0x2A, 0xA4, 0xD2, 0x88, 0x59, 0xF4, 0xFF, 0x43, 0x99, 0x84, 0x1A, 0x7F, 0x75, 0xFB, 0xFF, 0xE2, 0x90, 0x31, 0xF2, 0xC5, 0xA9, 0x08, 0xC0, 0xD2, 0x0D, 0xD4, 0xFF,
+ 0xB8, 0x9A, 0x84, 0x1A, 0x7F, 0x75, 0xFF, 0xFF, 0x04, 0x93, 0xFA, 0xFF, 0x60, 0x93, 0x08, 0xD2, 0x61, 0xAA, 0x04, 0x75, 0xA2, 0xD2, 0x90, 0x5E, 0x02, 0x0B, 0x02, 0xD0, 0x62, 0x0B,
+ 0x82, 0x0D, 0x01, 0xCF, 0x80, 0x2E, 0xD4, 0xFF, 0xF7, 0x98, 0x01, 0xD4, 0x40, 0x77, 0x00, 0xC0, 0xA2, 0x90, 0x86, 0x08, 0x3F, 0xB5, 0x6C, 0x7F, 0x82, 0x0D, 0x8B, 0x01, 0x02, 0x0D,
+ 0x0D, 0x01, 0xD4, 0xFF, 0x1B, 0x99, 0xF9, 0xFF, 0xE0, 0x93, 0xA2, 0xD2, 0x10, 0x5E, 0x08, 0xF2, 0x79, 0xA2, 0x10, 0xDA, 0xC1, 0xA8, 0x48, 0xDA, 0xE5, 0xA0, 0xF6, 0xFF, 0x60, 0x93,
+ 0x10, 0xF2, 0x43, 0xA9, 0x11, 0xF0, 0x54, 0x2E, 0x11, 0xD0, 0x52, 0x2F, 0x5F, 0xB5, 0x7C, 0x7E, 0x10, 0xF2, 0xC6, 0xAB, 0x06, 0x85, 0x00, 0xC0, 0x62, 0x92, 0xB3, 0x9E, 0x41, 0xB5,
+ 0x18, 0x6D, 0x82, 0x09, 0x0F, 0x05, 0x06, 0x09, 0xD4, 0xFF, 0xBB, 0x9A, 0xFF, 0xC0, 0xFC, 0x2E, 0x80, 0xC2, 0xC1, 0x5E, 0xBF, 0xB5, 0xF4, 0x7E, 0x20, 0x0F, 0xF8, 0xFF, 0xE0, 0x92,
+ 0x81, 0xB5, 0x08, 0x6D, 0x8A, 0x0D, 0xD4, 0xFF, 0xBB, 0x98, 0x02, 0xC0, 0x16, 0x85, 0x57, 0x9D, 0x71, 0xC1, 0xCD, 0x9C, 0xB3, 0x9E, 0x82, 0x09, 0x06, 0x09, 0x0F, 0x05, 0xD4, 0xFF,
+ 0xA2, 0x9A, 0x10, 0xF2, 0xCA, 0xAA, 0xA2, 0xD2, 0x90, 0x5D, 0x8A, 0x0D, 0x02, 0x0D, 0x02, 0x09, 0xD4, 0xFF, 0xD8, 0x98, 0xD4, 0xFF, 0xC0, 0x9A, 0x8E, 0x0D, 0xD4, 0xFF, 0xC9, 0x9A,
+ 0xF4, 0xFF, 0x55, 0x98, 0x86, 0x0D, 0xD4, 0xFF, 0xC4, 0x9A, 0x80, 0xB7, 0x0C, 0x46, 0x0A, 0x85, 0x08, 0xF2, 0x0F, 0xA1, 0x71, 0xC1, 0xCD, 0x9C, 0x30, 0x0F, 0xF7, 0xFF, 0x40, 0x91,
+ 0x31, 0xF2, 0x45, 0xAA, 0x48, 0xF2, 0x61, 0xA2, 0x31, 0xF2, 0xC5, 0xA8, 0x48, 0xF2, 0xE5, 0xA0, 0x31, 0xF2, 0xC5, 0xA8, 0x08, 0xF2, 0xFD, 0xA0, 0xC8, 0xD2, 0x71, 0xAA, 0x3F, 0xB7,
+ 0xEC, 0x7F, 0x30, 0x2A, 0x48, 0x70, 0x80, 0xB5, 0x88, 0x44, 0x00, 0xC0, 0xA2, 0x91, 0x02, 0x85, 0x73, 0xC0, 0xCE, 0x9C, 0x48, 0xF2, 0x71, 0xAA, 0x10, 0xC0, 0x00, 0x3A, 0x48, 0xF2,
+ 0x71, 0xA2, 0x73, 0xC0, 0xCE, 0x9C, 0x31, 0xF2, 0x45, 0xAA, 0x08, 0xDA, 0xFD, 0xA8, 0x48, 0xF2, 0x69, 0xA2, 0x31, 0xF2, 0xC6, 0xA8, 0xBC, 0x28, 0x48, 0x74, 0x48, 0xF2, 0xEE, 0xA0,
+ 0xF5, 0xFF, 0x64, 0x93, 0x48, 0xF2, 0x71, 0xAA, 0x20, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0xF5, 0xFF, 0x82, 0x92, 0xBB, 0x9E, 0x54, 0xC0, 0x0E, 0x99, 0xF5, 0xFF, 0xE0, 0x91, 0x3F, 0xB7,
+ 0x74, 0x7F, 0x40, 0x76, 0x00, 0xC0, 0xA2, 0x90, 0x82, 0x0D, 0xD4, 0xFF, 0x50, 0x98, 0x08, 0xD2, 0x61, 0xAA, 0x04, 0x75, 0x06, 0xC0, 0x04, 0x90, 0x48, 0xF2, 0x71, 0xAA, 0x04, 0x2A,
+ 0x00, 0x75, 0x01, 0xC0, 0x24, 0x90, 0x48, 0xF2, 0x71, 0xAA, 0x40, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x42, 0x93, 0x40, 0xB7, 0x8C, 0x52, 0x6D, 0xCB, 0x6E, 0x0A, 0xDA, 0xC6,
+ 0x5C, 0x0A, 0xF4, 0x10, 0x99, 0x60, 0x8F, 0x58, 0x84, 0x18, 0x9C, 0x28, 0xF3, 0xD0, 0x11, 0x69, 0x2D, 0x9D, 0x30, 0xC0, 0x4D, 0xAA, 0x00, 0x75, 0x00, 0xC0, 0xE4, 0x90, 0xBB, 0x9E,
+ 0x01, 0xC0, 0x86, 0x09, 0xF4, 0xFF, 0xA8, 0x98, 0x20, 0xB7, 0x0C, 0x48, 0x01, 0xC0, 0x0A, 0x0A, 0x08, 0x0A, 0x48, 0x70, 0x00, 0xC0, 0x52, 0x93, 0x48, 0xF2, 0x71, 0xAA, 0x10, 0xC0,
+ 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x24, 0x91, 0x48, 0xF2, 0x71, 0xAA, 0x04, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x82, 0x91, 0x88, 0xD2, 0x61, 0xAA, 0x06, 0x75, 0x00, 0xC0,
+ 0xF4, 0x90, 0xBB, 0x9E, 0x01, 0xC0, 0xC2, 0x09, 0xF4, 0xFF, 0x88, 0x98, 0x3F, 0xB7, 0xEC, 0x7E, 0x40, 0x74, 0x02, 0xC0, 0x02, 0x93, 0xD4, 0xFF, 0xD2, 0x9B, 0x06, 0xC0, 0x92, 0x0D,
+ 0x82, 0x09, 0xD4, 0xFF, 0xA8, 0x99, 0x5F, 0xB7, 0xEC, 0x7E, 0x0C, 0xC0, 0x02, 0x0F, 0x11, 0xD0, 0xA2, 0x1A, 0x04, 0xC0, 0xF2, 0x0D, 0xD4, 0xFF, 0x7F, 0x99, 0x00, 0xE0, 0x00, 0x08,
+ 0xFF, 0xFF, 0x56, 0x93, 0x51, 0xD0, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x24, 0x91, 0x06, 0xC0, 0x92, 0x0D, 0xA6, 0x09, 0xD4, 0xFF, 0x90, 0x99, 0xFF, 0xFF, 0xC0, 0x91, 0xC0, 0xB7,
+ 0x0C, 0x46, 0x06, 0x0A, 0x12, 0xD1, 0xC0, 0x3A, 0x73, 0x9E, 0x06, 0xC0, 0x92, 0x0D, 0xD4, 0xFF, 0x84, 0x99, 0x04, 0xC0, 0xF2, 0x0D, 0xD4, 0xFF, 0x61, 0x99, 0x00, 0x74, 0xFF, 0xFF,
+ 0x76, 0x93, 0x06, 0xC0, 0x82, 0x0D, 0xD4, 0xFF, 0x5A, 0x99, 0x02, 0x74, 0x00, 0xC0, 0x44, 0x91, 0x80, 0xC2, 0x40, 0x5A, 0x00, 0xE2, 0x41, 0x5A, 0x9F, 0xB5, 0xEC, 0x7E, 0x00, 0xC0,
+ 0xE2, 0x92, 0x6B, 0x9E, 0x06, 0xC0, 0x92, 0x0D, 0xD4, 0xFF, 0x69, 0x99, 0x02, 0x85, 0xC8, 0xF2, 0x57, 0xA1, 0x9F, 0xB7, 0xEC, 0x7E, 0x11, 0xD0, 0xC2, 0x1A, 0x04, 0xC0, 0xF2, 0x0D,
+ 0xD4, 0xFF, 0x3F, 0x99, 0x00, 0x74, 0xFF, 0xFF, 0x76, 0x93, 0xFE, 0xFF, 0x40, 0x92, 0x7F, 0xB7, 0x74, 0x7E, 0xF4, 0xFF, 0x61, 0x99, 0x8A, 0x0D, 0xD4, 0xFF, 0xCB, 0x99, 0x06, 0x85,
+ 0x41, 0xB5, 0x18, 0x6C, 0x48, 0xF2, 0xF1, 0xAA, 0xE0, 0xB5, 0x8C, 0x5A, 0x82, 0x0D, 0x80, 0xC2, 0xBD, 0x5A, 0x84, 0x2A, 0xD4, 0xFF, 0x26, 0x99, 0x81, 0x01, 0xFF, 0xCF, 0xFA, 0x29,
+ 0x80, 0xC2, 0xC0, 0x5A, 0xBA, 0x31, 0x82, 0x0D, 0x84, 0x39, 0xD4, 0xFF, 0x3B, 0x99, 0xD4, 0xFF, 0x5E, 0x9B, 0x9F, 0xB7, 0x6E, 0x7D, 0xBF, 0xB7, 0xEE, 0x7D, 0xDF, 0xB7, 0x6E, 0x7E,
+ 0xFF, 0xB7, 0xEE, 0x7E, 0x02, 0xC0, 0x40, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0xA0, 0xB7, 0x0C, 0x46, 0x88, 0xF2, 0x21, 0xAA, 0x0F, 0xC0, 0x7E, 0x2A, 0x80, 0xB5, 0x0C, 0x48, 0xD4, 0xFF,
+ 0x9C, 0x98, 0x8A, 0x0D, 0xB4, 0xFF, 0x21, 0x9B, 0x82, 0x0D, 0xB4, 0xFF, 0x1E, 0x9B, 0x34, 0xC0, 0x93, 0x9B, 0x80, 0xB7, 0x8C, 0x41, 0x02, 0x85, 0x20, 0xB7, 0x8C, 0x44, 0x0C, 0xC0,
+ 0xF2, 0x0D, 0x82, 0x09, 0x08, 0xF2, 0x03, 0xA1, 0x40, 0xB5, 0xBD, 0x46, 0xD4, 0xFF, 0x0D, 0x99, 0x0E, 0xC0, 0x82, 0x0D, 0xB0, 0xC0, 0xC2, 0x09, 0xD4, 0xFF, 0x07, 0x99, 0x0E, 0xC0,
+ 0x92, 0x0D, 0x88, 0xC0, 0xC2, 0x09, 0xD4, 0xFF, 0x01, 0x99, 0x0E, 0xC0, 0xA2, 0x0D, 0x04, 0xC0, 0xC2, 0x09, 0xD4, 0xFF, 0xFB, 0x98, 0x82, 0x0D, 0x10, 0xC0, 0x82, 0x09, 0xD4, 0xFF,
+ 0xF6, 0x98, 0x09, 0xC2, 0xBE, 0x0D, 0x04, 0xC1, 0xBC, 0x0D, 0x7F, 0x85, 0x08, 0xF2, 0x2F, 0xA1, 0xD4, 0xFF, 0xB9, 0x98, 0xF1, 0xC1, 0x02, 0x0A, 0xF0, 0xC0, 0x00, 0x0A, 0x08, 0xF2,
+ 0x39, 0xA2, 0x20, 0xB7, 0x0C, 0x48, 0x01, 0xC0, 0x06, 0x0A, 0x24, 0x0A, 0x48, 0x70, 0x00, 0xC0, 0x02, 0x91, 0x86, 0x0D, 0x82, 0x09, 0x02, 0x0D, 0x06, 0x09, 0xD4, 0xFF, 0x1D, 0x99,
+ 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x80, 0xB7, 0x0C, 0x49, 0x20, 0xB7, 0x94, 0x52, 0x04, 0x0A, 0x1C, 0x2A, 0xF3, 0xD0, 0x41, 0x69,
+ 0x10, 0xE2, 0xAB, 0x80, 0x80, 0xB7, 0x29, 0x41, 0x1C, 0xC0, 0x3E, 0x7D, 0x4D, 0x9E, 0x00, 0xC0, 0x42, 0x92, 0x54, 0xC0, 0x1E, 0x98, 0x80, 0xB7, 0x0C, 0x49, 0x04, 0x0A, 0x1C, 0x2A,
+ 0xF3, 0xD0, 0x41, 0x69, 0x10, 0xE3, 0xA3, 0x80, 0x80, 0xB7, 0x29, 0x41, 0x1C, 0xC0, 0x3E, 0x7D, 0xFF, 0xFF, 0x44, 0x92, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C,
+ 0x22, 0x9C, 0x05, 0xA6, 0x80, 0xB7, 0x0C, 0x49, 0x20, 0xB7, 0x8C, 0x52, 0xF3, 0xD0, 0x41, 0x69, 0x5D, 0x9E, 0x20, 0xF2, 0xA3, 0x80, 0xF4, 0xFF, 0xCE, 0x9B, 0x02, 0xC0, 0x16, 0x85,
+ 0xCB, 0x9D, 0x72, 0xC0, 0xCE, 0x9C, 0x02, 0x87, 0x06, 0x85, 0x52, 0xF2, 0x30, 0xA1, 0x10, 0xD2, 0x2B, 0xA1, 0x08, 0xF2, 0x2D, 0xA9, 0x10, 0xF2, 0x25, 0xA1, 0x08, 0xF2, 0x25, 0xAA,
+ 0x50, 0xF2, 0x35, 0xA2, 0x08, 0xF2, 0xA9, 0xA8, 0x10, 0xF2, 0xB9, 0xA0, 0x08, 0xDA, 0x25, 0xAA, 0xFE, 0xC0, 0x7C, 0x2A, 0x50, 0xDA, 0x25, 0xA2, 0x08, 0xF2, 0xB1, 0xA8, 0x10, 0xF2,
+ 0xA9, 0xA0, 0x08, 0xF2, 0x35, 0xAA, 0x10, 0xF2, 0x2D, 0xA2, 0x48, 0xDA, 0xB5, 0xA8, 0x50, 0xDA, 0xA1, 0xA0, 0x08, 0xF2, 0xBE, 0xA8, 0x50, 0xF2, 0xB2, 0xA0, 0x50, 0xF2, 0x31, 0xAA,
+ 0x80, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x20, 0xB7, 0x94, 0x4B, 0x02, 0x0A, 0x01, 0xD0, 0x42, 0x1A, 0x4B, 0x9E, 0xFF, 0x08, 0x98, 0x40, 0xC4, 0x70, 0x04, 0x2A, 0x88, 0x28, 0x42, 0x32,
+ 0x10, 0xD2, 0x21, 0xA2, 0x48, 0xDA, 0xB1, 0xA8, 0x12, 0xF2, 0x3C, 0xA1, 0x52, 0xF2, 0x20, 0xA1, 0x52, 0xF2, 0x24, 0xA1, 0x52, 0xDA, 0x2C, 0xA1, 0x50, 0xDA, 0xA9, 0xA0, 0x00, 0xC0,
+ 0x02, 0x91, 0x50, 0xF2, 0x31, 0xAA, 0x04, 0xC0, 0x00, 0x3A, 0x50, 0xF2, 0x31, 0xA2, 0x20, 0xB7, 0x0C, 0x4C, 0x10, 0xF2, 0x25, 0xAA, 0x48, 0x70, 0x00, 0xC0, 0x02, 0x91, 0x50, 0xF2,
+ 0x31, 0xAA, 0x08, 0xC0, 0x00, 0x3A, 0x50, 0xF2, 0x31, 0xA2, 0x10, 0xF2, 0x2D, 0xAA, 0x00, 0xCC, 0x00, 0x7D, 0x00, 0xC0, 0x04, 0x91, 0x50, 0xF2, 0x31, 0xAA, 0x40, 0xC0, 0x00, 0x3A,
+ 0x50, 0xF2, 0x31, 0xA2, 0x10, 0xD2, 0x21, 0xAA, 0x04, 0x75, 0x00, 0xC0, 0x84, 0x93, 0x50, 0xF2, 0x31, 0xAA, 0x40, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0xA2, 0x92, 0x50, 0xF2,
+ 0x31, 0xAA, 0x04, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0xE4, 0x91, 0x50, 0xF2, 0x31, 0xAA, 0x04, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x02, 0x91, 0x50, 0xF2, 0x31, 0xAA, 0x20, 0xC0,
+ 0x00, 0x3A, 0x50, 0xF2, 0x31, 0xA2, 0x10, 0xD2, 0x21, 0xAA, 0x04, 0x75, 0x00, 0xC0, 0xA4, 0x92, 0x10, 0xDA, 0x3D, 0xAA, 0x3C, 0x2A, 0x08, 0x75, 0x00, 0xC0, 0xE4, 0x91, 0x50, 0xF2,
+ 0x31, 0xAA, 0x04, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x02, 0x91, 0x50, 0xF2, 0x31, 0xAA, 0x20, 0xC0, 0x00, 0x3A, 0x50, 0xF2, 0x31, 0xA2, 0x72, 0xC0, 0xCE, 0x9C, 0xD4, 0xFF,
+ 0x24, 0x9A, 0x80, 0xB7, 0x0C, 0x52, 0x20, 0xB7, 0x14, 0x46, 0x08, 0xF2, 0x85, 0xA8, 0x8B, 0x05, 0x82, 0x09, 0x20, 0xB5, 0x4D, 0x44, 0x34, 0xC0, 0x6D, 0x9A, 0x10, 0xD2, 0x21, 0xAA,
+ 0x04, 0x75, 0x00, 0xC0, 0xE4, 0x90, 0x8B, 0x05, 0xF4, 0xFF, 0x1F, 0x98, 0x14, 0xC0, 0x1E, 0x9A, 0x80, 0xB7, 0x0C, 0x49, 0x10, 0xF2, 0xA5, 0xA8, 0x04, 0x0A, 0x1C, 0x2A, 0x80, 0xB5,
+ 0x0C, 0x49, 0x20, 0xB5, 0x8C, 0x4B, 0x20, 0xB5, 0x0C, 0x4C, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x20, 0xB7, 0x0C, 0x49, 0x20, 0xB7,
+ 0x94, 0x52, 0x5D, 0x9E, 0xF3, 0xD0, 0x11, 0x69, 0x08, 0xF2, 0x25, 0xAA, 0x20, 0xF2, 0xAB, 0x80, 0x10, 0xF2, 0x25, 0xA2, 0xF4, 0xFF, 0xEE, 0x9A, 0x02, 0xC0, 0x16, 0x85, 0x4F, 0x9D,
+ 0x71, 0xC0, 0xCF, 0x9C, 0x06, 0x85, 0x10, 0xD2, 0x2B, 0xA1, 0x0E, 0x85, 0x10, 0xD2, 0x23, 0xA1, 0x08, 0xF2, 0x29, 0xAA, 0x10, 0xF2, 0x29, 0xA2, 0x08, 0xF2, 0xAD, 0xA8, 0x40, 0xB7,
+ 0x94, 0x4B, 0x10, 0xF2, 0xA6, 0xA8, 0x50, 0xF2, 0xB5, 0xA0, 0x08, 0xDA, 0x25, 0xA9, 0x01, 0xC0, 0x06, 0x0A, 0x82, 0x72, 0x10, 0xF2, 0x2D, 0xA2, 0x50, 0xF2, 0x31, 0xA1, 0x00, 0xC0,
+ 0x02, 0x91, 0x50, 0xF2, 0x31, 0xAA, 0x04, 0xC0, 0x00, 0x3A, 0x50, 0xF2, 0x31, 0xA2, 0x71, 0xC0, 0xCF, 0x9C, 0xD4, 0xFF, 0xC0, 0x99, 0x20, 0xB7, 0x0C, 0x52, 0x20, 0xB7, 0x14, 0x46,
+ 0x80, 0xB7, 0xAD, 0x40, 0x8B, 0x05, 0x01, 0xC8, 0x82, 0x09, 0x80, 0xB5, 0x4D, 0x44, 0xD4, 0xFF, 0x5A, 0x9A, 0x10, 0xF2, 0xA5, 0xA8, 0x80, 0xB7, 0x0C, 0x49, 0x20, 0xB5, 0x8C, 0x4B,
+ 0x04, 0x0A, 0x1C, 0x2A, 0x80, 0xB5, 0x0C, 0x49, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x20, 0x84, 0x80, 0xB7, 0x0C, 0x49, 0xA0, 0xB7,
+ 0x94, 0x52, 0xF3, 0xD0, 0x41, 0x69, 0x5D, 0x9E, 0x40, 0xE3, 0x2B, 0x81, 0x5F, 0xB5, 0x64, 0x7F, 0xF4, 0xFF, 0x96, 0x9A, 0x02, 0xC0, 0x16, 0x85, 0xC7, 0x9D, 0x72, 0xC0, 0xCD, 0x9C,
+ 0x12, 0x85, 0x5F, 0xB7, 0x64, 0x7F, 0x00, 0xD0, 0x43, 0xA1, 0x08, 0xF2, 0x2D, 0xAA, 0x00, 0xF0, 0x4D, 0xA2, 0x08, 0xF2, 0xA9, 0xA8, 0x00, 0xF0, 0xC9, 0xA0, 0x08, 0xF2, 0x25, 0xAA,
+ 0x40, 0xF0, 0x55, 0xA2, 0x48, 0xDA, 0xA5, 0xA8, 0x00, 0xF0, 0xD1, 0xA0, 0x48, 0xDA, 0x21, 0xAA, 0x00, 0xF0, 0x55, 0xA2, 0x08, 0xF2, 0xB5, 0xA8, 0x00, 0xF0, 0xD9, 0xA0, 0x08, 0xF2,
+ 0x39, 0xAA, 0x00, 0xF0, 0x5D, 0xA2, 0x08, 0xF2, 0xBD, 0xA8, 0x40, 0xF0, 0xC1, 0xA0, 0x08, 0xD2, 0x29, 0xAA, 0x6D, 0xCB, 0xEE, 0x08, 0xDA, 0xC6, 0xDC, 0x08, 0x0C, 0x2A, 0x40, 0xF0,
+ 0x45, 0xA2, 0x10, 0xF1, 0x23, 0x8A, 0x43, 0x62, 0x48, 0xF2, 0x21, 0xA9, 0x00, 0xC2, 0x0F, 0x5A, 0x04, 0x1A, 0x1C, 0x2A, 0xF3, 0xD0, 0xC1, 0x69, 0x40, 0xF0, 0x49, 0xA1, 0x48, 0xF2,
+ 0xA5, 0xA8, 0x20, 0xF3, 0xBB, 0x80, 0x00, 0xC4, 0x02, 0x85, 0x40, 0xF0, 0x53, 0xA1, 0x40, 0xF0, 0xCD, 0xA0, 0x10, 0xF2, 0x25, 0xAA, 0x06, 0x85, 0x00, 0xD0, 0x4B, 0xA1, 0x00, 0xF0,
+ 0x45, 0xA2, 0x72, 0xC0, 0xCD, 0x9C, 0x5F, 0xB5, 0x64, 0x7F, 0xD4, 0xFF, 0x3D, 0x99, 0x20, 0xB7, 0x0C, 0x52, 0x20, 0xB7, 0x14, 0x46, 0x80, 0xB7, 0xAD, 0x40, 0x80, 0xB5, 0x4D, 0x44,
+ 0x7F, 0xB7, 0x74, 0x7F, 0x81, 0xC0, 0x82, 0x09, 0xD4, 0xFF, 0xD6, 0x99, 0x80, 0xB7, 0x0C, 0x49, 0x04, 0x0A, 0x1C, 0x2A, 0x80, 0xB5, 0x0C, 0x49, 0x9F, 0xB7, 0xEE, 0x7E, 0xBF, 0xB7,
+ 0x6E, 0x7F, 0x60, 0x8C, 0x22, 0x9C, 0x80, 0xB7, 0x8C, 0x41, 0x02, 0x87, 0x0A, 0xF2, 0x00, 0xA1, 0x08, 0xF2, 0x89, 0xA8, 0x9A, 0x9E, 0xF1, 0xD3, 0x3E, 0x2D, 0x40, 0x74, 0x06, 0x85,
+ 0x40, 0xB5, 0x9C, 0x48, 0x00, 0xC0, 0x22, 0x92, 0x80, 0xB7, 0x0C, 0x46, 0x01, 0xC0, 0x86, 0x0C, 0x9C, 0x0C, 0xF1, 0xD3, 0xC0, 0x08, 0x40, 0xB5, 0x3D, 0x40, 0x0E, 0xC0, 0x50, 0x0A,
+ 0x08, 0xF2, 0x82, 0xA0, 0x40, 0xB5, 0x84, 0x4A, 0x10, 0xC0, 0x84, 0x74, 0x00, 0xC0, 0x22, 0x92, 0x00, 0xC0, 0xFA, 0x90, 0x10, 0xC0, 0x82, 0x74, 0x00, 0xC0, 0x02, 0x91, 0x22, 0x9C,
+ 0x10, 0xC0, 0x86, 0x74, 0x00, 0xC0, 0x22, 0x91, 0x22, 0x9C, 0x85, 0x05, 0xF0, 0xFF, 0x60, 0x93, 0x85, 0x05, 0xF7, 0xFF, 0x80, 0x92, 0x85, 0x05, 0xFA, 0xFF, 0x40, 0x91, 0x0D, 0xA6,
+ 0x81, 0xB7, 0x88, 0x6C, 0x6D, 0xCB, 0xEE, 0x0C, 0xDA, 0xC6, 0xDC, 0x0C, 0x5D, 0x9E, 0x20, 0xB7, 0x8C, 0x52, 0x1C, 0xC0, 0x3E, 0x7D, 0x4C, 0x9E, 0xD2, 0x10, 0x99, 0x60, 0xA4, 0xD0,
+ 0x8F, 0x5A, 0x00, 0xC0, 0x42, 0x91, 0x34, 0xC0, 0x08, 0x9A, 0x81, 0xB7, 0x88, 0x6C, 0x1C, 0xC0, 0x3E, 0x7D, 0xFF, 0xFF, 0x44, 0x93, 0xAB, 0x9E, 0xA0, 0xB5, 0x94, 0x49, 0x86, 0x09,
+ 0x34, 0xC0, 0x1F, 0x99, 0x06, 0x85, 0x41, 0xB5, 0x98, 0x6C, 0x02, 0x85, 0x73, 0xC0, 0xCE, 0x9C, 0x48, 0xF2, 0x31, 0xAA, 0x03, 0xC0, 0x00, 0x3A, 0x48, 0xF2, 0x31, 0xA2, 0x73, 0xC0,
+ 0xCE, 0x9C, 0x48, 0xF2, 0x31, 0xAA, 0x04, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x22, 0x92, 0x20, 0xB7, 0x14, 0x46, 0x20, 0xB7, 0x4D, 0x40, 0xFD, 0xCF, 0xFE, 0x28, 0x03, 0x02,
+ 0x03, 0xC0, 0x00, 0x3A, 0x80, 0xB5, 0x4D, 0x40, 0x40, 0xB7, 0x4D, 0x40, 0x20, 0xB5, 0x4D, 0x40, 0xA0, 0xB7, 0x94, 0x44, 0x02, 0x0B, 0x10, 0xF2, 0x35, 0xA3, 0x48, 0xF2, 0x31, 0xAA,
+ 0x04, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0xA2, 0x93, 0x80, 0xB7, 0x8C, 0x46, 0x12, 0xD2, 0xC0, 0x08, 0x42, 0x85, 0x40, 0xB5, 0x5D, 0x40, 0x92, 0xD2, 0xC0, 0x08, 0x51, 0xD2,
+ 0xC0, 0x08, 0x40, 0xB5, 0x3D, 0x40, 0x40, 0xB5, 0x5D, 0x40, 0x12, 0xD3, 0xC0, 0x08, 0xD1, 0xD2, 0xC0, 0x08, 0x40, 0xB5, 0x3D, 0x40, 0x0C, 0xC0, 0x40, 0x0A, 0x40, 0xB5, 0x5D, 0x40,
+ 0x08, 0xF2, 0x03, 0xA1, 0x48, 0xF2, 0x31, 0xAA, 0x04, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x01, 0xC0, 0x02, 0x90, 0x2C, 0xC0, 0xE2, 0x0D, 0x82, 0x09, 0xB4, 0xFF, 0x46, 0x9A, 0x2C, 0xC0,
+ 0xF2, 0x0D, 0x82, 0x09, 0xB4, 0xFF, 0x41, 0x9A, 0x2E, 0xC0, 0x82, 0x0D, 0x82, 0x09, 0xB4, 0xFF, 0x3C, 0x9A, 0x2E, 0xC0, 0x92, 0x0D, 0x82, 0x09, 0xB4, 0xFF, 0x37, 0x9A, 0x2E, 0xC0,
+ 0xA2, 0x0D, 0x82, 0x09, 0xB4, 0xFF, 0x32, 0x9A, 0x2E, 0xC0, 0xD2, 0x0D, 0x82, 0x09, 0xB4, 0xFF, 0x2D, 0x9A, 0x14, 0xC0, 0x84, 0x98, 0x08, 0xD2, 0x21, 0xAA, 0x04, 0x75, 0x00, 0xC0,
+ 0x84, 0x90, 0x50, 0xF2, 0x35, 0xA3, 0x20, 0xB7, 0x0C, 0x46, 0x80, 0xB7, 0xAD, 0x45, 0x40, 0x2A, 0x00, 0x75, 0xFF, 0xFF, 0x82, 0x93, 0x08, 0xC0, 0xE2, 0x0D, 0xB4, 0xFF, 0xF9, 0x99,
+ 0x02, 0x85, 0x73, 0xC0, 0xCE, 0x9C, 0x48, 0xF2, 0x31, 0xAA, 0x05, 0xC0, 0x00, 0x3A, 0x48, 0xF2, 0x31, 0xA2, 0x73, 0xC0, 0xCE, 0x9C, 0x06, 0x08, 0x9F, 0xB7, 0xEE, 0x7E, 0xBF, 0xB7,
+ 0x6E, 0x7F, 0xDF, 0xB7, 0xEE, 0x7F, 0x60, 0x8C, 0x22, 0x9C, 0x80, 0xB7, 0x8C, 0x49, 0x20, 0xB7, 0x8C, 0x52, 0xF3, 0xD0, 0x41, 0x69, 0x02, 0x09, 0x89, 0x9E, 0x20, 0xE2, 0x23, 0x81,
+ 0x80, 0xB7, 0x49, 0x41, 0xF1, 0xF3, 0xCE, 0x28, 0x00, 0xC0, 0xC4, 0x92, 0x04, 0x09, 0x8E, 0x74, 0x02, 0xC0, 0xE0, 0x0C, 0xFF, 0xFF, 0xD4, 0x92, 0x50, 0xF0, 0xD1, 0xA9, 0x11, 0xE0,
+ 0x80, 0x29, 0x00, 0xC0, 0x82, 0x91, 0x80, 0xB7, 0x0C, 0x46, 0x06, 0x08, 0x0E, 0xC0, 0x50, 0x0A, 0x08, 0xF2, 0x81, 0xA0, 0x22, 0x9C, 0x06, 0x08, 0x22, 0x9C, 0x40, 0xB7, 0x94, 0x48,
+ 0x82, 0x76, 0x00, 0xC0, 0x84, 0x92, 0x20, 0xB7, 0x0C, 0x52, 0x80, 0xB7, 0x0C, 0x46, 0x20, 0xB7, 0x35, 0x40, 0x40, 0xB7, 0x8C, 0x41, 0x48, 0xF2, 0x82, 0xA0, 0x08, 0xF0, 0x42, 0xA1,
+ 0x60, 0xB5, 0x8C, 0x48, 0x0E, 0xC0, 0x50, 0x0A, 0x08, 0xF2, 0x81, 0xA1, 0x02, 0x08, 0x22, 0x9C, 0x20, 0xB7, 0x14, 0x46, 0x20, 0xB7, 0x8C, 0x41, 0x02, 0x85, 0x33, 0xC0, 0x52, 0x0A,
+ 0x32, 0xC0, 0x50, 0x0A, 0x40, 0xB5, 0x5D, 0x4D, 0x80, 0xB5, 0xCD, 0x4D, 0x80, 0xB7, 0x2D, 0x45, 0x20, 0x2A, 0x00, 0x75, 0x02, 0x0A, 0x00, 0xC0, 0xC4, 0x90, 0x01, 0xC0, 0x06, 0x0A,
+ 0x10, 0xC0, 0x00, 0x0A, 0x5C, 0x3A, 0x80, 0xB5, 0xCD, 0x4C, 0x22, 0x9C, 0x20, 0xB7, 0x14, 0x46, 0x20, 0xB7, 0x8C, 0x41, 0x02, 0x85, 0x01, 0xC2, 0x22, 0x0A, 0x00, 0xC2, 0x20, 0x0A,
+ 0x40, 0xB5, 0xDD, 0x4E, 0x80, 0xB5, 0x4D, 0x4F, 0x80, 0xB7, 0x2D, 0x45, 0x20, 0x2A, 0x00, 0x75, 0x02, 0x0A, 0x00, 0xC0, 0xC4, 0x90, 0x01, 0xC0, 0x06, 0x0A, 0x10, 0xC0, 0x00, 0x0A,
+ 0x0C, 0xC0, 0x5C, 0x3A, 0x80, 0xB5, 0x4D, 0x4E, 0x22, 0x9C, 0x02, 0x85, 0x40, 0xB5, 0x9C, 0x4A, 0x22, 0x9C, 0x0D, 0xA6, 0x20, 0xB7, 0x08, 0x45, 0x87, 0x06, 0x6C, 0x9E, 0x01, 0xC2,
+ 0x00, 0x2A, 0x00, 0x75, 0x84, 0x08, 0x20, 0xB5, 0x08, 0x45, 0x00, 0xC0, 0x42, 0x91, 0x6C, 0x9E, 0x01, 0xC0, 0x5C, 0x7F, 0xFF, 0xCD, 0x7E, 0x2A, 0xA5, 0x9E, 0x35, 0xB3, 0x42, 0x48,
+ 0x09, 0xC2, 0x06, 0x0A, 0x02, 0xC1, 0x38, 0x0A, 0x69, 0x9E, 0x48, 0x78, 0x00, 0xC0, 0x42, 0x92, 0xFE, 0xCE, 0x49, 0x0A, 0x48, 0x78, 0x00, 0xC0, 0x02, 0x91, 0x6B, 0x9E, 0x96, 0x0D,
+ 0x14, 0xC0, 0x3B, 0x9B, 0x00, 0xC0, 0xC0, 0x90, 0x6B, 0x9E, 0x92, 0x0D, 0x14, 0xC0, 0x35, 0x9B, 0xF9, 0x2E, 0x11, 0xD0, 0x52, 0x2E, 0x00, 0x75, 0x00, 0xC0, 0x82, 0x90, 0x14, 0xC0,
+ 0x8E, 0x98, 0x11, 0xD1, 0x50, 0x2E, 0x00, 0x75, 0x00, 0xC0, 0xA2, 0x90, 0x8B, 0x05, 0x14, 0xC0, 0x0C, 0x99, 0x6C, 0x9E, 0x01, 0xC0, 0x10, 0x2A, 0x00, 0x75, 0x02, 0xC0, 0xE2, 0x90,
+ 0x80, 0xB7, 0x8C, 0x49, 0x20, 0xB7, 0x8C, 0x52, 0xF3, 0xD0, 0x41, 0x69, 0x10, 0xF2, 0xA3, 0x80, 0x3F, 0x75, 0x00, 0xC0, 0x64, 0x90, 0x00, 0x9F, 0x80, 0xB7, 0x8C, 0x41, 0xC0, 0xB7,
+ 0x0C, 0x46, 0x08, 0xF2, 0x89, 0xA8, 0x20, 0xB7, 0x94, 0x44, 0xF1, 0xD3, 0x60, 0x0A, 0x08, 0xF2, 0x81, 0xA0, 0x40, 0xB7, 0x4D, 0x49, 0x48, 0xF2, 0x31, 0xAA, 0x02, 0xC0, 0x00, 0x2A,
+ 0x00, 0x75, 0x48, 0xDA, 0x21, 0xA1, 0x00, 0xC0, 0xA2, 0x90, 0x8B, 0x05, 0x14, 0xC0, 0x5C, 0x9A, 0x08, 0xD2, 0x21, 0xAA, 0x0C, 0x1A, 0x0E, 0xC0, 0x7C, 0x2A, 0x02, 0x75, 0x00, 0xC0,
+ 0x34, 0x93, 0x48, 0xF2, 0x31, 0xAA, 0x00, 0xE0, 0x10, 0x2A, 0x00, 0xC0, 0xA4, 0x91, 0xC8, 0xF2, 0x51, 0xA2, 0x48, 0xF2, 0x31, 0xAA, 0x11, 0xC0, 0x00, 0x3A, 0x48, 0xF2, 0x31, 0xA2,
+ 0xAB, 0x9E, 0xD4, 0xFF, 0x2D, 0x98, 0x48, 0xF2, 0x31, 0xAA, 0x01, 0xC2, 0x00, 0x3A, 0x48, 0xF2, 0x31, 0xA2, 0x01, 0xC0, 0x54, 0x7F, 0x01, 0xC0, 0x42, 0x91, 0x80, 0xB7, 0x8C, 0x49,
+ 0x20, 0xB7, 0x8C, 0x52, 0xF3, 0xD0, 0x41, 0x69, 0x10, 0xF2, 0xA3, 0x80, 0x3F, 0x75, 0x00, 0xC0, 0x64, 0x90, 0x00, 0x9F, 0x80, 0xB7, 0x0C, 0x46, 0x20, 0xB7, 0x14, 0x45, 0x02, 0x85,
+ 0xC8, 0xF2, 0x13, 0xA1, 0x20, 0xB7, 0xCD, 0x42, 0x40, 0xB7, 0x1C, 0x4D, 0x48, 0xF2, 0x31, 0xAA, 0x10, 0xE2, 0xA3, 0x80, 0x02, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x20, 0xB5, 0x0C, 0x4D,
+ 0x00, 0xC0, 0xA2, 0x90, 0x8B, 0x05, 0x14, 0xC0, 0x14, 0x9A, 0xAB, 0x9E, 0xB4, 0xFF, 0xFB, 0x9B, 0x80, 0xB7, 0x08, 0x45, 0x04, 0x1A, 0x80, 0xB5, 0x08, 0x45, 0x9F, 0xB7, 0xEE, 0x7E,
+ 0xBF, 0xB7, 0x6E, 0x7F, 0xDF, 0xB7, 0xEE, 0x7F, 0x60, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0xA0, 0xB7, 0x8C, 0x5A, 0x0A, 0xC0, 0xB2, 0x0D, 0xB4, 0xFF, 0xA2, 0x98, 0x48, 0xDA, 0x29, 0xAA,
+ 0x41, 0x58, 0x00, 0xC2, 0x40, 0x5A, 0x00, 0xC2, 0x41, 0x5A, 0x08, 0x70, 0x00, 0xC0, 0x02, 0x91, 0x48, 0xF2, 0x31, 0xAA, 0x01, 0xC4, 0x00, 0x3A, 0x48, 0xF2, 0x31, 0xA2, 0x48, 0xDA,
+ 0x2D, 0xA0, 0x48, 0xF2, 0x31, 0xAA, 0x20, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x04, 0x93, 0x48, 0xDA, 0x21, 0xAA, 0x00, 0xC2, 0x40, 0x5A, 0x00, 0xC2, 0x41, 0x5A, 0x08, 0x70, 0x00, 0xC0,
+ 0xE4, 0x91, 0x48, 0xF2, 0x31, 0xAA, 0x01, 0xC0, 0x10, 0x3A, 0x48, 0xF2, 0x31, 0xA2, 0x48, 0xF2, 0xB1, 0xA8, 0x90, 0x38, 0x48, 0xF2, 0xB1, 0xA0, 0xB4, 0xFF, 0x94, 0x9B, 0xF4, 0xFF,
+ 0x07, 0x9B, 0xB4, 0xFF, 0xCB, 0x9A, 0x80, 0xB7, 0x08, 0x44, 0xF1, 0xF3, 0xCE, 0x28, 0x02, 0xC0, 0x64, 0x90, 0x80, 0xB7, 0x0C, 0x46, 0x86, 0x0D, 0xC8, 0xF2, 0x85, 0xA0, 0xB4, 0xFF,
+ 0xFB, 0x98, 0xB4, 0xFF, 0x17, 0x99, 0xB4, 0xFF, 0xEB, 0x98, 0x08, 0xF2, 0x2D, 0xAA, 0x01, 0xC0, 0x3C, 0x2A, 0x01, 0xC0, 0x08, 0x75, 0x01, 0xC0, 0x64, 0x91, 0x40, 0xB7, 0x9C, 0x5A,
+ 0x20, 0xB7, 0x94, 0x52, 0x6D, 0xCB, 0xEE, 0x08, 0xDA, 0xC6, 0xDC, 0x08, 0x10, 0xF2, 0x2B, 0x88, 0x43, 0x62, 0x00, 0xC2, 0x0F, 0x5A, 0x04, 0x0A, 0x1C, 0x2A, 0xF3, 0xD0, 0x41, 0x69,
+ 0x10, 0xE2, 0xAB, 0x80, 0x80, 0xB7, 0x29, 0x41, 0x1C, 0xC0, 0x3E, 0x7D, 0x00, 0xC0, 0x22, 0x91, 0x80, 0xB7, 0x2D, 0x46, 0x04, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x62, 0x91,
+ 0x09, 0xC8, 0xC2, 0x0D, 0xB4, 0xC4, 0xD0, 0x0D, 0x8B, 0x01, 0x14, 0xC0, 0x7F, 0x9B, 0x00, 0xC0, 0xE0, 0x90, 0x81, 0xB7, 0x08, 0x6C, 0x04, 0x1A, 0x81, 0xB5, 0x08, 0x6C, 0x9F, 0xB7,
+ 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x0D, 0xA6, 0x20, 0xB7, 0x0C, 0x46, 0x80, 0xB7, 0xAD, 0x45, 0x40, 0x2A, 0x00, 0x75, 0xFF, 0xFF, 0x82, 0x93, 0x08, 0xC0,
+ 0xE2, 0x0D, 0xB4, 0xFF, 0x16, 0x98, 0x20, 0xB7, 0x8C, 0x51, 0x80, 0xB7, 0x2D, 0x40, 0x08, 0x70, 0x03, 0x03, 0x00, 0xC0, 0x62, 0x90, 0x00, 0x9F, 0x20, 0xB7, 0x0C, 0x46, 0x80, 0xB7,
+ 0xAD, 0x45, 0x40, 0x2A, 0x00, 0x75, 0xFF, 0xFF, 0x82, 0x93, 0x08, 0xC0, 0xE2, 0x0D, 0xB4, 0xFF, 0x01, 0x98, 0x81, 0x02, 0x20, 0xB7, 0x0C, 0x46, 0x80, 0xB7, 0xAD, 0x45, 0x40, 0x2A,
+ 0x00, 0x75, 0xFF, 0xFF, 0x82, 0x93, 0x08, 0xC0, 0xE2, 0x0D, 0x94, 0xFF, 0xF4, 0x9B, 0x20, 0xB7, 0x0C, 0x46, 0x80, 0xB7, 0xAD, 0x45, 0x40, 0x2A, 0x00, 0x75, 0xFF, 0xFF, 0x82, 0x93,
+ 0x08, 0xC0, 0xE2, 0x0D, 0x94, 0xFF, 0xE8, 0x9B, 0x85, 0x9E, 0x01, 0xC1, 0x40, 0x75, 0x04, 0xC0, 0x02, 0x90, 0x00, 0xC0, 0x92, 0x91, 0x01, 0xC0, 0x42, 0x75, 0x02, 0xC0, 0x42, 0x90,
+ 0x01, 0xC0, 0x60, 0x75, 0x01, 0xC0, 0x22, 0x90, 0x04, 0xC0, 0x40, 0x92, 0x01, 0xC4, 0x40, 0x75, 0x03, 0xC0, 0xC2, 0x92, 0x00, 0xC0, 0x12, 0x91, 0x01, 0xC2, 0x40, 0x75, 0x00, 0xC0,
+ 0x42, 0x91, 0x04, 0xC0, 0xC0, 0x90, 0x01, 0xD0, 0x40, 0x75, 0x02, 0xC0, 0xA2, 0x92, 0x04, 0xC0, 0x00, 0x90, 0x81, 0xB7, 0x88, 0x6C, 0x1C, 0xC0, 0x3E, 0x7D, 0x03, 0xC0, 0x24, 0x92,
+ 0x8B, 0x05, 0xB4, 0xFF, 0x85, 0x98, 0x03, 0xC0, 0xC0, 0x92, 0x8B, 0x05, 0xB4, 0xFF, 0x28, 0x99, 0x20, 0xB7, 0x0C, 0x46, 0x80, 0xB7, 0xAD, 0x45, 0x40, 0x2A, 0x00, 0x75, 0xFF, 0xFF,
+ 0x82, 0x93, 0x08, 0xC0, 0xE2, 0x0D, 0x94, 0xFF, 0xAB, 0x9B, 0x80, 0xB7, 0x0C, 0x4B, 0x04, 0x1A, 0x26, 0xD2, 0x08, 0x59, 0x53, 0x9D, 0x60, 0xE2, 0x85, 0xA8, 0x02, 0x70, 0x02, 0xC0,
+ 0x82, 0x93, 0x00, 0x9F, 0x02, 0xC0, 0x20, 0x93, 0x10, 0xF2, 0xAD, 0xA9, 0xFE, 0xC9, 0xFD, 0x29, 0xA2, 0x0D, 0x00, 0xC2, 0x80, 0x39, 0xB4, 0xFF, 0xAB, 0x99, 0x20, 0xB7, 0x0C, 0x46,
+ 0x80, 0xB7, 0xAD, 0x45, 0x40, 0x2A, 0x00, 0x75, 0xFF, 0xFF, 0x82, 0x93, 0x08, 0xC0, 0xE2, 0x0D, 0x94, 0xFF, 0x88, 0x9B, 0x80, 0xB7, 0x0C, 0x4B, 0x04, 0x1A, 0x26, 0xD2, 0x08, 0x59,
+ 0x53, 0x9D, 0x60, 0xE2, 0x85, 0xA8, 0x02, 0x70, 0x00, 0xC0, 0x62, 0x90, 0x00, 0x9F, 0x50, 0xF2, 0x31, 0xAA, 0x01, 0xC0, 0x20, 0x3A, 0x50, 0xF2, 0x31, 0xA2, 0x01, 0xC0, 0x00, 0x92,
+ 0x81, 0xB7, 0x88, 0x6C, 0x1C, 0xC0, 0x3E, 0x7D, 0x09, 0xC8, 0xC2, 0x0D, 0xDC, 0xC4, 0xD0, 0x0D, 0x01, 0xC0, 0x04, 0x90, 0x8B, 0x05, 0x14, 0xC0, 0x3E, 0x9B, 0x01, 0xC0, 0x20, 0x90,
+ 0x09, 0xC8, 0xC2, 0x0D, 0x16, 0xC5, 0xA0, 0x0D, 0x00, 0xC0, 0xA0, 0x92, 0x81, 0xB7, 0x88, 0x6C, 0x1C, 0xC0, 0x3E, 0x7D, 0x09, 0xC8, 0xC2, 0x0D, 0x40, 0xC3, 0x90, 0x0D, 0x00, 0xC0,
+ 0x64, 0x91, 0x8B, 0x05, 0xF4, 0xFF, 0xB5, 0x98, 0x00, 0xC0, 0x80, 0x91, 0x09, 0xC8, 0xC2, 0x0D, 0x18, 0xC1, 0xF0, 0x0D, 0x6B, 0x9E, 0x14, 0xC0, 0x98, 0x9A, 0x00, 0xC0, 0x60, 0x90,
+ 0x00, 0x9F, 0x9F, 0xB7, 0xEE, 0x7E, 0xBF, 0xB7, 0x6E, 0x7F, 0xDF, 0xB7, 0xEE, 0x7F, 0x60, 0x8C, 0x22, 0x9C, 0x80, 0xB7, 0x0C, 0x49, 0x11, 0xD0, 0xC2, 0x08, 0x12, 0xD0, 0x9E, 0x28,
+ 0x49, 0x9E, 0x1C, 0x2A, 0x48, 0x70, 0x02, 0x87, 0x01, 0xC0, 0x62, 0x92, 0x20, 0xB7, 0x8C, 0x52, 0xF3, 0xD0, 0x11, 0x6D, 0x10, 0xE2, 0x23, 0x81, 0x08, 0xD0, 0x49, 0xAA, 0x1C, 0xC0,
+ 0x3E, 0x7D, 0x8A, 0x9E, 0x01, 0xC0, 0xC2, 0x90, 0x08, 0xD0, 0x41, 0xAA, 0x06, 0x75, 0x04, 0x87, 0x00, 0xC0, 0xE4, 0x90, 0x10, 0xF0, 0x61, 0xAA, 0x04, 0x0A, 0x10, 0xF0, 0x61, 0xA2,
+ 0x11, 0xD0, 0x12, 0x0E, 0x20, 0xB7, 0x0C, 0x49, 0x12, 0xD0, 0xCE, 0x28, 0x4C, 0x9E, 0x9C, 0x28, 0x02, 0x71, 0x00, 0xC0, 0x02, 0x92, 0xF3, 0xD0, 0x11, 0x6D, 0x10, 0xE2, 0xAD, 0x80,
+ 0x80, 0xB7, 0x29, 0x41, 0x1C, 0xC0, 0x3E, 0x7D, 0x00, 0xC0, 0xC2, 0x90, 0x80, 0xB7, 0x29, 0x40, 0xFF, 0xFF, 0x00, 0x90, 0x40, 0x9D, 0x22, 0x9C, 0x05, 0xA6, 0x60, 0x84, 0x80, 0xB7,
+ 0x0C, 0x49, 0x02, 0x87, 0x11, 0xD0, 0xC2, 0x08, 0x11, 0xD0, 0x9E, 0x2A, 0x1C, 0x2A, 0x48, 0x71, 0x02, 0x09, 0x02, 0xC0, 0x82, 0x90, 0x80, 0xB7, 0x8C, 0x52, 0xF3, 0xD0, 0x51, 0x69,
+ 0x80, 0x74, 0x20, 0xE3, 0xA1, 0x80, 0x00, 0xC0, 0x62, 0x91, 0x80, 0xB7, 0x49, 0x41, 0x1C, 0xC0, 0x3E, 0x7D, 0x11, 0xE0, 0xA2, 0x86, 0x21, 0xB3, 0x22, 0x50, 0x99, 0x9D, 0x80, 0xB7,
+ 0x49, 0x41, 0x1C, 0xC0, 0x3E, 0x7D, 0x01, 0xC0, 0x42, 0x90, 0x80, 0xB7, 0x4D, 0x46, 0x02, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x62, 0x93, 0x32, 0x85, 0x5F, 0xB5, 0x78, 0x74,
+ 0x20, 0xB7, 0x4D, 0x46, 0x72, 0xE0, 0x80, 0x8D, 0x80, 0xB7, 0x4D, 0x41, 0x0C, 0xC0, 0x16, 0x85, 0x5F, 0xB5, 0xF8, 0x74, 0x82, 0x09, 0x5F, 0xB5, 0x64, 0x7F, 0x3F, 0xB5, 0x6C, 0x7E,
+ 0x9F, 0xB5, 0xEC, 0x7D, 0x74, 0xFF, 0x85, 0x9B, 0x5F, 0xB7, 0x64, 0x7F, 0x06, 0x09, 0x20, 0xB7, 0x0C, 0x49, 0x11, 0xD0, 0x52, 0x0A, 0x11, 0xD0, 0xCE, 0x2A, 0x9C, 0x28, 0x42, 0x71,
+ 0xFE, 0xFF, 0x04, 0x90, 0x40, 0x9D, 0x9F, 0xB7, 0xEE, 0x7D, 0xBF, 0xB7, 0x6E, 0x7E, 0x02, 0xC0, 0x20, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x40, 0x84, 0x5D, 0x9E, 0x02, 0x85, 0x73, 0xC0,
+ 0xCE, 0x9C, 0x20, 0xB7, 0x0C, 0x46, 0x08, 0xC0, 0x80, 0x08, 0x80, 0xB7, 0x2D, 0x40, 0xAB, 0x9E, 0x41, 0x2A, 0x08, 0x3A, 0x80, 0xB5, 0x2D, 0x40, 0xF4, 0xFF, 0x97, 0x9B, 0x20, 0xB7,
+ 0x0A, 0x59, 0x52, 0xE0, 0x80, 0x8D, 0x20, 0xB7, 0x94, 0x44, 0x42, 0x85, 0x5F, 0xB5, 0x78, 0x78, 0x0C, 0xC0, 0x1E, 0x85, 0x5F, 0xB5, 0xF8, 0x78, 0x1F, 0xB5, 0x6A, 0x7D, 0x3F, 0xB5,
+ 0xEA, 0x7D, 0x80, 0xB7, 0x4D, 0x49, 0x20, 0xB7, 0x8C, 0x4D, 0x86, 0x09, 0xBF, 0xB5, 0xEC, 0x7F, 0x9F, 0xB5, 0xEA, 0x7C, 0x3F, 0xB5, 0x6C, 0x7F, 0x74, 0xFF, 0x3F, 0x9B, 0x00, 0xC0,
+ 0x00, 0x90, 0x9F, 0xB7, 0x6E, 0x7E, 0xBF, 0xB7, 0xEE, 0x7E, 0x02, 0xC0, 0x00, 0x8C, 0x22, 0x9C, 0x39, 0xF8, 0x05, 0xA2, 0x06, 0xC0, 0xB2, 0x0D, 0x94, 0xFF, 0x67, 0x9A, 0x06, 0xC0,
+ 0xB2, 0x0D, 0x81, 0x01, 0x81, 0xC0, 0x80, 0x39, 0xF8, 0xF9, 0x1D, 0xAA, 0x93, 0xFF, 0xA0, 0x93, 0x80, 0xB7, 0x0C, 0x43, 0x59, 0x9E, 0x08, 0x75, 0x26, 0xD2, 0x0C, 0x59, 0x40, 0x85,
+ 0x5A, 0xE0, 0x44, 0x80, 0x02, 0xC0, 0x00, 0x91, 0x00, 0xC0, 0x40, 0x91, 0x01, 0xC0, 0x80, 0x90, 0x02, 0xC0, 0x40, 0x90, 0x02, 0xC0, 0x00, 0x90, 0x01, 0xC0, 0xE0, 0x92, 0x4A, 0x74,
+ 0xA6, 0xD0, 0x0C, 0x59, 0x40, 0x85, 0x5A, 0xE0, 0x44, 0x80, 0x00, 0xC0, 0x80, 0x92, 0x00, 0xC0, 0xE0, 0x91, 0x01, 0xC0, 0xE0, 0x91, 0x01, 0xC0, 0xA0, 0x91, 0x00, 0xC0, 0xC0, 0x90,
+ 0x00, 0xC0, 0xE0, 0x90, 0x01, 0xC0, 0xE0, 0x90, 0x12, 0x85, 0x01, 0xC0, 0xA0, 0x90, 0x06, 0x85, 0x01, 0xC0, 0x40, 0x90, 0x00, 0xC0, 0xE0, 0x93, 0x4A, 0x74, 0xA6, 0xD0, 0x0C, 0x59,
+ 0x40, 0x85, 0x5A, 0xE0, 0x44, 0x80, 0x00, 0xC0, 0x20, 0x92, 0x00, 0xC0, 0xA0, 0x92, 0x00, 0xC0, 0x60, 0x92, 0x00, 0xC0, 0x20, 0x92, 0x00, 0xC0, 0xC0, 0x90, 0x00, 0xC0, 0x00, 0x92,
+ 0x00, 0xC0, 0x60, 0x91, 0x12, 0x85, 0x00, 0xC0, 0x20, 0x91, 0x00, 0xC0, 0xC0, 0x90, 0x4C, 0x74, 0x06, 0x85, 0x00, 0xC0, 0x62, 0x90, 0x0A, 0x85, 0x40, 0xB5, 0x1C, 0x43, 0x00, 0xB7,
+ 0x0C, 0x43, 0x22, 0x9C, 0x0D, 0xA6, 0x20, 0x84, 0x80, 0xB7, 0x0C, 0x43, 0x87, 0x06, 0x48, 0x77, 0x07, 0x03, 0x80, 0xB5, 0x0C, 0x4E, 0x01, 0xC0, 0x04, 0x91, 0x32, 0xE0, 0x80, 0x8D,
+ 0xA0, 0xB7, 0x8C, 0x5A, 0x02, 0x0F, 0xDF, 0xB5, 0x74, 0x7F, 0xC0, 0xB5, 0x8C, 0x4D, 0xF4, 0xFF, 0xB8, 0x9A, 0x00, 0xB5, 0x8C, 0x4C, 0x48, 0xF2, 0x31, 0xAA, 0x02, 0xC0, 0x00, 0x3A,
+ 0x48, 0xF2, 0x31, 0xA2, 0x02, 0xC0, 0x82, 0x0D, 0x94, 0xFF, 0xD3, 0x99, 0x00, 0xC1, 0xBE, 0x0D, 0x94, 0xFF, 0xD9, 0x99, 0x80, 0xB7, 0x0C, 0x46, 0x0A, 0x85, 0x41, 0xB5, 0x18, 0x6C,
+ 0xC8, 0xF2, 0x06, 0xA3, 0xF4, 0xFF, 0x70, 0x98, 0x00, 0xC0, 0x40, 0x93, 0x4A, 0x77, 0x00, 0xC0, 0xE4, 0x92, 0x80, 0xB7, 0x8C, 0x49, 0x20, 0xB7, 0x94, 0x4D, 0x20, 0xB7, 0x8C, 0x52,
+ 0xF3, 0xD0, 0x41, 0x69, 0x40, 0x76, 0x10, 0xE2, 0xA3, 0x80, 0x00, 0xC0, 0x04, 0x91, 0x80, 0xB7, 0x2D, 0x46, 0x02, 0xC0, 0x00, 0x3A, 0x80, 0xB5, 0x2D, 0x46, 0xF4, 0xFF, 0x56, 0x9B,
+ 0x8B, 0x05, 0xF4, 0xFF, 0x62, 0x9B, 0x80, 0xB7, 0x0C, 0x43, 0x08, 0x75, 0x00, 0xC0, 0x64, 0x93, 0x80, 0xB7, 0x8C, 0x49, 0x3F, 0x75, 0x00, 0xC0, 0x62, 0x92, 0x40, 0xB7, 0x84, 0x52,
+ 0xF3, 0xD0, 0x41, 0x69, 0x2D, 0x9E, 0x30, 0xC0, 0x4D, 0xAA, 0x06, 0x75, 0x00, 0xC0, 0x24, 0x91, 0x9A, 0x0D, 0xF4, 0xFF, 0x4B, 0x9B, 0xF4, 0xFF, 0x3A, 0x98, 0x00, 0xC0, 0xA0, 0x90,
+ 0x9E, 0x0D, 0xF4, 0xFF, 0x44, 0x9B, 0x80, 0xB7, 0x0C, 0x43, 0x04, 0x75, 0x00, 0xC0, 0xC4, 0x93, 0xC0, 0xC1, 0x80, 0x7D, 0x00, 0xC0, 0xE2, 0x92, 0x80, 0xB7, 0x8C, 0x49, 0x3F, 0x75,
+ 0x00, 0xC0, 0x42, 0x91, 0x20, 0xB7, 0x8C, 0x52, 0xF3, 0xD0, 0x41, 0x69, 0x10, 0xE2, 0xA3, 0x80, 0x00, 0xC0, 0x80, 0x90, 0x20, 0xB7, 0x8C, 0x5A, 0x80, 0xB7, 0x2D, 0x46, 0x02, 0xC0,
+ 0x00, 0x3A, 0x80, 0xB5, 0x2D, 0x46, 0xB3, 0x9E, 0xF4, 0xFF, 0xDA, 0x9A, 0x9F, 0xB7, 0x6E, 0x7E, 0xBF, 0xB7, 0xEE, 0x7E, 0xDF, 0xB7, 0x6E, 0x7F, 0x02, 0xC0, 0x00, 0x8C, 0x22, 0x9C,
+ 0x20, 0xB7, 0x0C, 0x46, 0x08, 0xC0, 0x80, 0x08, 0x80, 0xB7, 0x2D, 0x40, 0x41, 0x2A, 0x20, 0x3A, 0x80, 0xB5, 0x2D, 0x40, 0x22, 0x9C, 0x80, 0xB7, 0x0C, 0x46, 0x20, 0xB7, 0x8C, 0x4E,
+ 0x08, 0xC0, 0x20, 0x0A, 0x08, 0xF2, 0x81, 0xA0, 0xFF, 0xFF, 0xA0, 0x91, 0x39, 0xF8, 0x05, 0xA2, 0x60, 0xB7, 0x9C, 0x54, 0x60, 0xB7, 0x04, 0x54, 0xB9, 0x9D, 0x50, 0xF0, 0x75, 0xAA,
+ 0xC8, 0x9D, 0xE7, 0x9D, 0x68, 0x9D, 0x18, 0xC0, 0xC9, 0xA8, 0x0C, 0x2A, 0x00, 0x75, 0x80, 0xC0, 0x08, 0x5A, 0x20, 0xE2, 0x05, 0xAA, 0x10, 0xF0, 0xE5, 0xA8, 0x82, 0x09, 0x02, 0xD0,
+ 0xB2, 0x09, 0x02, 0x71, 0xE0, 0x9D, 0x02, 0xC0, 0x02, 0x91, 0x80, 0xB7, 0x4C, 0x40, 0x48, 0x70, 0x02, 0x09, 0x82, 0x0C, 0x12, 0xB4, 0x42, 0x44, 0x01, 0xD0, 0x22, 0x09, 0x00, 0xC0,
+ 0x82, 0x92, 0x84, 0x0C, 0x46, 0x76, 0x00, 0xC0, 0x12, 0x92, 0xA2, 0xD0, 0x08, 0x5E, 0x40, 0x9E, 0x10, 0xF0, 0xE5, 0xA8, 0x00, 0xE2, 0x05, 0xAA, 0x48, 0x70, 0xFF, 0xFF, 0x84, 0x92,
+ 0x29, 0x9E, 0x06, 0x09, 0x30, 0xC0, 0xCE, 0xA0, 0x80, 0x74, 0x01, 0xC0, 0x04, 0x91, 0x40, 0x9D, 0x3E, 0x9E, 0x00, 0x74, 0x38, 0xC0, 0xC2, 0xA8, 0x02, 0x85, 0x01, 0xE0, 0x22, 0x85,
+ 0x30, 0xC0, 0x4D, 0xAA, 0x84, 0x0C, 0x8C, 0x2C, 0x48, 0x9E, 0x00, 0x71, 0x01, 0xD0, 0x92, 0x0C, 0x01, 0xD0, 0x96, 0x2C, 0x50, 0xF0, 0x75, 0xAA, 0x20, 0xB7, 0x0C, 0x46, 0xA2, 0xD0,
+ 0x08, 0x5D, 0x61, 0x2A, 0xA2, 0x00, 0x08, 0xC0, 0xD0, 0x08, 0x80, 0xB5, 0x2D, 0x40, 0x00, 0xD0, 0xC2, 0xA0, 0x10, 0xF0, 0x65, 0xAA, 0x91, 0x9E, 0x86, 0x09, 0x00, 0xE0, 0x29, 0xA2,
+ 0x18, 0xD0, 0x61, 0xA9, 0x80, 0xB7, 0x8C, 0x4E, 0x18, 0xD0, 0xE6, 0xA8, 0x20, 0xB7, 0x0C, 0x46, 0x20, 0x59, 0x30, 0xC0, 0x00, 0x29, 0x0E, 0xCF, 0x7D, 0x2A, 0xA8, 0x5C, 0xC0, 0xC0,
+ 0x80, 0x2C, 0x44, 0x32, 0x4A, 0x9E, 0xC0, 0x74, 0x08, 0xC0, 0xA0, 0x08, 0x44, 0x32, 0x80, 0xB5, 0x8C, 0x4E, 0x80, 0xB5, 0x2D, 0x40, 0x00, 0xC0, 0x82, 0x90, 0xF4, 0xFF, 0x6C, 0x9B,
+ 0xF8, 0xF9, 0x1D, 0xAA, 0x22, 0x9C, 0x05, 0xA6, 0x5D, 0x9E, 0x82, 0x0D, 0x74, 0xFF, 0x49, 0x9B, 0x48, 0xF2, 0xAD, 0xA9, 0x82, 0x0D, 0x02, 0x0D, 0x02, 0x09, 0x74, 0xFF, 0x31, 0x9B,
+ 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x5D, 0x9E, 0x82, 0x0D, 0x74, 0xFF, 0x37, 0x9B, 0x48, 0xF2, 0xA9, 0xA9, 0x82, 0x0D, 0x02, 0x0D,
+ 0x02, 0x09, 0x74, 0xFF, 0x1F, 0x9B, 0x81, 0xB7, 0x08, 0x6C, 0x06, 0x08, 0x04, 0x1A, 0x81, 0xB5, 0x08, 0x6C, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C,
+ 0x80, 0xB7, 0x0C, 0x4F, 0x20, 0xB7, 0x8C, 0x4F, 0x04, 0x0A, 0x1C, 0x2A, 0x02, 0x71, 0x5A, 0x9E, 0x00, 0xC0, 0x64, 0x90, 0x00, 0x9F, 0x02, 0xC0, 0x16, 0x85, 0xC7, 0x9D, 0x72, 0xC0,
+ 0xCD, 0x9C, 0x40, 0xB7, 0x04, 0x55, 0x80, 0xB7, 0x0C, 0x4F, 0x20, 0xB7, 0x0C, 0x4F, 0x26, 0xD2, 0x0C, 0x59, 0x2D, 0x9E, 0x10, 0x87, 0x30, 0xE0, 0x4D, 0xA1, 0xA6, 0xD0, 0x0C, 0x59,
+ 0x2D, 0x9E, 0x30, 0xE0, 0xCD, 0xA1, 0x08, 0xD0, 0x65, 0xAA, 0x04, 0x0A, 0x08, 0xD0, 0x65, 0xA2, 0x20, 0xB7, 0x0C, 0x4F, 0x84, 0x08, 0x9C, 0x28, 0x20, 0xB5, 0x0C, 0x4F, 0x72, 0xC0,
+ 0xCD, 0x9C, 0x22, 0x9C, 0x0D, 0xA6, 0x20, 0xB7, 0x8C, 0x4F, 0x80, 0xB7, 0x0C, 0x4F, 0x48, 0x70, 0x02, 0xC0, 0x62, 0x91, 0xC0, 0xB7, 0x0C, 0x55, 0x80, 0xB7, 0x8C, 0x4F, 0x14, 0xD0,
+ 0x68, 0x09, 0x26, 0xD2, 0x0C, 0x59, 0x2D, 0x9E, 0x47, 0x9D, 0x30, 0xE0, 0xCD, 0xAA, 0x60, 0xE0, 0xA6, 0xAA, 0x02, 0xC0, 0x16, 0x85, 0x73, 0xC0, 0xCE, 0x9C, 0x04, 0x0A, 0x1C, 0x2A,
+ 0x80, 0xB5, 0x8C, 0x4F, 0x73, 0xC0, 0xCE, 0x9C, 0x40, 0x77, 0x00, 0xC0, 0xA2, 0x91, 0xAB, 0x9E, 0x0B, 0x06, 0x62, 0x9C, 0x1C, 0xC0, 0x3E, 0x7C, 0x00, 0xC0, 0xC4, 0x90, 0x8B, 0x05,
+ 0x8B, 0x01, 0xF4, 0xFF, 0xA5, 0x9B, 0x02, 0xC0, 0x16, 0x85, 0xD7, 0x9D, 0x72, 0xC1, 0xCD, 0x9C, 0x08, 0xD2, 0x25, 0xAA, 0x04, 0x1A, 0x08, 0xD2, 0x25, 0xA2, 0x08, 0xD2, 0xA5, 0xA8,
+ 0x1C, 0xC0, 0x7E, 0x7C, 0x00, 0xC0, 0x84, 0x91, 0x48, 0xF2, 0x31, 0xAA, 0x01, 0xC1, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0xA2, 0x90, 0xAB, 0x9E, 0x94, 0xFF, 0x81, 0x9B, 0x72, 0xC1,
+ 0xCD, 0x9C, 0x20, 0xB7, 0x8C, 0x4F, 0x80, 0xB7, 0x0C, 0x4F, 0x48, 0x70, 0xFD, 0xFF, 0x64, 0x93, 0x9F, 0xB7, 0xEE, 0x7E, 0xBF, 0xB7, 0x6E, 0x7F, 0xDF, 0xB7, 0xEE, 0x7F, 0x60, 0x8C,
+ 0x22, 0x9C, 0x0D, 0xA6, 0xC1, 0xB7, 0x88, 0x6C, 0x1C, 0xC0, 0xBE, 0x7D, 0x87, 0x06, 0x12, 0xD0, 0x00, 0x40, 0x02, 0xC0, 0x24, 0x91, 0x06, 0x85, 0x41, 0xB5, 0x98, 0x6C, 0x8B, 0x05,
+ 0x86, 0x09, 0xF4, 0xFF, 0xBB, 0x9A, 0x40, 0xB7, 0x84, 0x52, 0x6D, 0xCB, 0x6E, 0x0A, 0xDA, 0xC6, 0x5C, 0x0A, 0x10, 0xD0, 0xD5, 0x14, 0x99, 0x60, 0x8F, 0x58, 0x84, 0x18, 0x9C, 0x28,
+ 0xF3, 0xD0, 0x11, 0x69, 0x2D, 0x9E, 0x30, 0xC0, 0x4D, 0xAA, 0x00, 0x75, 0xD8, 0x9D, 0x00, 0xC0, 0xC2, 0x93, 0x02, 0xC0, 0x16, 0x85, 0x57, 0x9D, 0x71, 0xC1, 0xCD, 0x9C, 0xF1, 0xD3,
+ 0xEC, 0x29, 0x40, 0xC0, 0x92, 0x0D, 0x84, 0x39, 0x94, 0xFF, 0x10, 0x9A, 0x20, 0xB7, 0x14, 0x46, 0x49, 0x9E, 0x80, 0xB7, 0x2D, 0x41, 0x01, 0xC0, 0x08, 0x2A, 0x00, 0x75, 0xFF, 0xFF,
+ 0x62, 0x93, 0x01, 0xC0, 0x8A, 0x08, 0x20, 0xB5, 0xCD, 0x41, 0x71, 0xC1, 0xCD, 0x9C, 0x6D, 0xCB, 0xEE, 0x08, 0xDA, 0xC6, 0xDC, 0x08, 0x10, 0xD0, 0x5C, 0x16, 0x43, 0x62, 0x8B, 0x05,
+ 0x00, 0xC2, 0x0F, 0x5A, 0x80, 0xB5, 0x8C, 0x49, 0x94, 0xFF, 0xC9, 0x9B, 0x06, 0x08, 0x9F, 0xB7, 0xEE, 0x7E, 0xBF, 0xB7, 0x6E, 0x7F, 0xDF, 0xB7, 0xEE, 0x7F, 0x60, 0x8C, 0x22, 0x9C,
+ 0x1D, 0xA6, 0x20, 0x84, 0x5E, 0x9E, 0x95, 0x9E, 0x4F, 0x9E, 0x48, 0xF2, 0x45, 0xAA, 0xA2, 0xD2, 0x9C, 0x5E, 0x22, 0x0F, 0x06, 0x75, 0x85, 0x07, 0x7F, 0xB5, 0x6C, 0x7F, 0x00, 0xC0,
+ 0xC4, 0x93, 0x08, 0xF2, 0xD1, 0xA9, 0x8B, 0x05, 0x84, 0x59, 0x14, 0xC0, 0x51, 0x9A, 0x08, 0xF2, 0xD1, 0xA9, 0x04, 0x58, 0x87, 0x62, 0x8B, 0x05, 0x14, 0xC0, 0x97, 0x9A, 0x08, 0xF2,
+ 0xD1, 0xA9, 0x8B, 0x05, 0x04, 0x58, 0xD0, 0x02, 0x14, 0xC0, 0x43, 0x9A, 0x13, 0xD0, 0x52, 0x09, 0x04, 0x28, 0x10, 0xF2, 0xA1, 0x88, 0x20, 0x0F, 0x80, 0xC2, 0x9C, 0x5A, 0x48, 0xF2,
+ 0x45, 0xAA, 0x02, 0x75, 0x14, 0xD3, 0x04, 0x5F, 0x94, 0xD2, 0x84, 0x5A, 0x00, 0x75, 0x82, 0x0D, 0x11, 0xD2, 0x50, 0x0A, 0x54, 0xB3, 0x24, 0x44, 0x89, 0x02, 0x74, 0xFF, 0x07, 0x9A,
+ 0x80, 0xB7, 0x0C, 0x44, 0x79, 0x9E, 0xA4, 0xD3, 0x88, 0x59, 0x2E, 0xC0, 0x82, 0x68, 0x5F, 0xB7, 0x6C, 0x7F, 0x87, 0x04, 0x21, 0xC0, 0x84, 0x3C, 0x34, 0xC0, 0x10, 0x0A, 0x94, 0x00,
+ 0x20, 0xC0, 0xC0, 0x08, 0xE9, 0xF3, 0x9D, 0xA0, 0x08, 0xF2, 0x82, 0xA0, 0x48, 0xF2, 0x43, 0xA9, 0xC0, 0x0A, 0x20, 0xE3, 0xA3, 0x80, 0x04, 0x1F, 0x11, 0xD0, 0xF2, 0x19, 0x0D, 0x05,
+ 0x06, 0x09, 0x74, 0xFF, 0x56, 0x9A, 0x9F, 0xB7, 0xEE, 0x7D, 0xBF, 0xB7, 0x6E, 0x7E, 0xDF, 0xB7, 0xEE, 0x7E, 0xFF, 0xB7, 0x6E, 0x7F, 0x02, 0xC0, 0x20, 0x8C, 0x22, 0x9C, 0x2E, 0xC0,
+ 0x82, 0x69, 0x3E, 0x9D, 0x10, 0x5D, 0x20, 0xC0, 0x80, 0x09, 0x01, 0xC2, 0x36, 0x81, 0x20, 0xE2, 0x2D, 0x81, 0xD0, 0xD0, 0x5D, 0xA8, 0x50, 0xD8, 0x5D, 0xAA, 0x50, 0xD8, 0xC9, 0xA8,
+ 0x90, 0xD0, 0xDE, 0xA8, 0x0E, 0xC0, 0x70, 0x28, 0x38, 0x58, 0x3E, 0xC0, 0x40, 0x2A, 0x00, 0xC2, 0x10, 0x5A, 0x08, 0x30, 0x3E, 0xC0, 0xC0, 0x28, 0x91, 0x58, 0x02, 0x30, 0xA2, 0xD0,
+ 0xC8, 0x5C, 0x11, 0xC0, 0x80, 0x28, 0x02, 0x30, 0x22, 0x9C, 0x1D, 0xA6, 0x02, 0xC0, 0x60, 0x84, 0x07, 0x07, 0x10, 0xF2, 0xCE, 0xAA, 0x06, 0x87, 0x5F, 0xB5, 0x64, 0x7C, 0x82, 0x08,
+ 0x3F, 0xB5, 0xEC, 0x7C, 0x50, 0xF2, 0x45, 0xAA, 0x3F, 0xB5, 0xEC, 0x7D, 0x21, 0xB7, 0x88, 0x6C, 0x06, 0x09, 0x06, 0x75, 0x22, 0x0B, 0x00, 0xC2, 0x08, 0x5A, 0x46, 0xB3, 0x24, 0x44,
+ 0x80, 0xB7, 0x0C, 0x4A, 0x5F, 0xB5, 0x6C, 0x7D, 0x1C, 0xC0, 0x7E, 0x7C, 0x82, 0x0F, 0x9F, 0xB5, 0x6C, 0x7E, 0x00, 0xC0, 0x02, 0x91, 0x81, 0xB7, 0x88, 0x6C, 0x1C, 0xC0, 0x3E, 0x7D,
+ 0xFF, 0xFF, 0x84, 0x93, 0x80, 0xB7, 0x8C, 0x52, 0x72, 0x9E, 0x6D, 0xCB, 0xEE, 0x08, 0xDA, 0xC6, 0xDC, 0x08, 0x28, 0x12, 0x43, 0x62, 0x8D, 0x05, 0x86, 0x09, 0x00, 0xC2, 0x0F, 0x5A,
+ 0x80, 0xB5, 0x8C, 0x49, 0xF4, 0xFF, 0xAC, 0x99, 0x06, 0x85, 0x41, 0xB5, 0x98, 0x6C, 0x10, 0xF2, 0xD1, 0xAA, 0xAB, 0x9E, 0x02, 0xC0, 0xB6, 0x09, 0x14, 0xC0, 0x96, 0x99, 0xAB, 0x9E,
+ 0x1F, 0xB5, 0xEC, 0x79, 0x02, 0xC0, 0xB6, 0x09, 0x14, 0xC0, 0xDC, 0x99, 0x00, 0x74, 0x5F, 0xB7, 0xE4, 0x79, 0xAB, 0x9E, 0x02, 0x0A, 0x02, 0xD0, 0x42, 0x0A, 0x01, 0xC3, 0x20, 0x83,
+ 0x4C, 0x9D, 0x5F, 0xB5, 0xE4, 0x79, 0x14, 0xC0, 0x81, 0x99, 0x7F, 0xB7, 0xE4, 0x79, 0x10, 0xF2, 0xD2, 0xA9, 0x6C, 0x9D, 0x1F, 0xB5, 0x6C, 0x7A, 0x14, 0xC0, 0xC5, 0x99, 0x00, 0x74,
+ 0x5F, 0xB7, 0x64, 0x7A, 0x02, 0x0A, 0x02, 0xD0, 0x42, 0x0A, 0x7F, 0xB7, 0xE4, 0x79, 0x01, 0xC3, 0x20, 0x83, 0x5F, 0xB5, 0x64, 0x7A, 0x10, 0xF2, 0xD6, 0xA8, 0x11, 0xF0, 0x32, 0x8E,
+ 0x10, 0xF2, 0xD1, 0xA8, 0x01, 0xC0, 0x45, 0x62, 0x4A, 0x9E, 0x15, 0x61, 0x00, 0xE0, 0x98, 0x10, 0x9D, 0x9D, 0x82, 0x0D, 0x5F, 0xB5, 0xE4, 0x7B, 0x5F, 0xB5, 0x6C, 0x7B, 0x32, 0xB3,
+ 0x84, 0x50, 0x5F, 0xB5, 0xE4, 0x7A, 0x74, 0xFF, 0x30, 0x99, 0x5F, 0xB7, 0x7C, 0x7A, 0xFE, 0xC9, 0xFD, 0x2E, 0x00, 0xC4, 0x80, 0x3E, 0xC7, 0x9D, 0x3F, 0xB7, 0x6C, 0x7E, 0x8D, 0x05,
+ 0x02, 0x0D, 0x02, 0x09, 0x83, 0x01, 0xF4, 0xFF, 0xE0, 0x9A, 0xA2, 0x0D, 0x6B, 0x9E, 0x94, 0xFF, 0xC3, 0x98, 0xB2, 0x0D, 0x10, 0xF2, 0xD9, 0xA9, 0x94, 0xFF, 0xBE, 0x98, 0xC2, 0x0D,
+ 0x10, 0xF2, 0xDD, 0xA9, 0x94, 0xFF, 0xB9, 0x98, 0x02, 0xC0, 0xA2, 0x0D, 0x50, 0xF2, 0xC9, 0xA9, 0x94, 0xFF, 0xB3, 0x98, 0x02, 0xC0, 0xB2, 0x0D, 0x50, 0xF2, 0xCD, 0xA9, 0x94, 0xFF,
+ 0xAD, 0x98, 0x71, 0xC0, 0x80, 0x2E, 0xA2, 0xD2, 0xD1, 0x5D, 0x02, 0xC0, 0xF2, 0x0D, 0xB0, 0x39, 0x94, 0xFF, 0xA4, 0x98, 0x40, 0xC0, 0x82, 0x0D, 0x8D, 0x01, 0x94, 0xFF, 0x9F, 0x98,
+ 0x01, 0xC0, 0xA0, 0x3F, 0x50, 0xF2, 0x45, 0xAA, 0x02, 0x75, 0x00, 0xC0, 0xB2, 0x91, 0x3F, 0xB7, 0xEC, 0x7D, 0x0A, 0x87, 0x5F, 0xB5, 0x64, 0x7C, 0x01, 0xC0, 0xC0, 0x3F, 0x01, 0xC0,
+ 0xC0, 0x38, 0x3F, 0xB5, 0xEC, 0x7D, 0x10, 0xF2, 0x55, 0xAA, 0x02, 0x09, 0x88, 0x70, 0x5F, 0xB5, 0x6C, 0x79, 0x06, 0xC0, 0x88, 0x93, 0x5F, 0xB7, 0x6C, 0x79, 0x79, 0x9E, 0x01, 0xC0,
+ 0x90, 0x38, 0x0E, 0xC0, 0xFE, 0x28, 0x00, 0xC1, 0x20, 0x5A, 0x80, 0x74, 0xF0, 0xCF, 0x00, 0x2A, 0x20, 0xD0, 0x98, 0x33, 0x00, 0xC0, 0xE2, 0x91, 0x3F, 0xB7, 0xEC, 0x7D, 0x11, 0xD0,
+ 0x22, 0x1A, 0x00, 0xC2, 0x20, 0x5A, 0xF0, 0xCF, 0x00, 0x2A, 0x0E, 0xC0, 0xFE, 0x28, 0x98, 0x30, 0x3F, 0xB5, 0xEC, 0x7D, 0x5F, 0xB7, 0xFC, 0x79, 0x3F, 0xB7, 0x6C, 0x79, 0x86, 0x0E,
+ 0x75, 0x73, 0x5F, 0xB7, 0x7C, 0x7C, 0x82, 0x0B, 0x01, 0xC3, 0x94, 0x00, 0x3F, 0xB5, 0x6C, 0x7F, 0x05, 0xC0, 0x92, 0x90, 0x5F, 0xB7, 0xE4, 0x79, 0x3F, 0xB7, 0xEC, 0x7A, 0xDE, 0x9D,
+ 0x11, 0xF0, 0x22, 0x8E, 0x5F, 0xB7, 0x7C, 0x7A, 0x07, 0x71, 0x83, 0x02, 0x25, 0xB3, 0x24, 0x4C, 0x82, 0x0D, 0x74, 0xFF, 0xA3, 0x98, 0x3F, 0xB7, 0xEC, 0x7B, 0x5F, 0xB7, 0x6C, 0x7B,
+ 0x9F, 0xB7, 0xEC, 0x7C, 0x44, 0x70, 0x3F, 0xB7, 0x6C, 0x7D, 0x04, 0x4A, 0x9F, 0xB5, 0xEC, 0x7C, 0x84, 0x48, 0x3F, 0xB5, 0x6C, 0x7D, 0x00, 0xC0, 0x68, 0x92, 0x5F, 0xB7, 0x6C, 0x7E,
+ 0xA1, 0x9E, 0x9F, 0xB7, 0xEC, 0x7B, 0x03, 0x05, 0xA9, 0x9E, 0x8D, 0x05, 0x85, 0x01, 0x09, 0x01, 0xF4, 0xFF, 0x45, 0x9A, 0x3F, 0xB7, 0xEC, 0x7B, 0x9A, 0x00, 0x3F, 0xB5, 0xEC, 0x7B,
+ 0x5F, 0xB7, 0x7C, 0x7A, 0x02, 0x0B, 0xB5, 0x71, 0x84, 0x0E, 0xBF, 0xB5, 0xF4, 0x7E, 0x03, 0xC0, 0x28, 0x90, 0x10, 0xF2, 0x51, 0xAA, 0xC8, 0x71, 0x02, 0xC0, 0x88, 0x93, 0x5F, 0xB7,
+ 0x64, 0x7E, 0xA6, 0xD3, 0x08, 0x59, 0x20, 0xF0, 0xA5, 0x80, 0x9F, 0xB7, 0xEC, 0x7D, 0x3F, 0xB7, 0x74, 0x79, 0xF1, 0xD3, 0xFE, 0x28, 0xF0, 0xCF, 0x01, 0x2A, 0x42, 0x32, 0x9F, 0xB5,
+ 0xEC, 0x7D, 0x7C, 0x9E, 0x40, 0x76, 0xF0, 0xCF, 0x01, 0x2A, 0x20, 0xD0, 0xC2, 0x33, 0x00, 0xC0, 0x82, 0x92, 0x5F, 0xB7, 0xEC, 0x7D, 0x60, 0xC0, 0xA2, 0x0D, 0x85, 0x01, 0x74, 0xFF,
+ 0xF9, 0x9B, 0x60, 0xC0, 0xB2, 0x0D, 0x10, 0xF2, 0xA1, 0xA9, 0x74, 0xFF, 0xF3, 0x9B, 0x60, 0xC0, 0xF2, 0x0D, 0x82, 0x09, 0x74, 0xFF, 0xEE, 0x9B, 0x3F, 0xB7, 0x74, 0x7E, 0x5F, 0xB7,
+ 0x6C, 0x7D, 0xB2, 0x9E, 0x83, 0x05, 0x85, 0x01, 0xF4, 0xFF, 0x66, 0x9A, 0x81, 0x02, 0x40, 0xC0, 0xA2, 0x0D, 0x7B, 0x9E, 0x74, 0xFF, 0xDF, 0x9B, 0x40, 0xC0, 0xB2, 0x0D, 0x8B, 0x01,
+ 0x74, 0xFF, 0xDA, 0x9B, 0x40, 0xC0, 0xF2, 0x0D, 0x82, 0x09, 0x74, 0xFF, 0xD5, 0x9B, 0x42, 0xC0, 0xB2, 0x0D, 0x01, 0xC0, 0x86, 0x09, 0x74, 0xFF, 0xCF, 0x9B, 0x31, 0xF2, 0xA5, 0xA2,
+ 0x5F, 0xB7, 0x7C, 0x7A, 0x04, 0x0B, 0xB5, 0x71, 0xFF, 0xCF, 0xEE, 0x2F, 0x84, 0x0B, 0x00, 0xC0, 0xE8, 0x90, 0x10, 0xF2, 0x51, 0xAA, 0xC8, 0x71, 0xFD, 0xFF, 0xC6, 0x91, 0x3F, 0xB7,
+ 0xF4, 0x7E, 0x5F, 0xB7, 0xFC, 0x79, 0x83, 0x06, 0x75, 0x73, 0xFB, 0xFF, 0x14, 0x90, 0x5F, 0xB7, 0x64, 0x7F, 0x10, 0xF2, 0x55, 0xAA, 0x44, 0x9D, 0x5F, 0xB5, 0x64, 0x79, 0x48, 0x70,
+ 0xFF, 0xCF, 0xDE, 0x2F, 0xF9, 0xFF, 0x06, 0x91, 0x40, 0xC0, 0x92, 0x0D, 0x82, 0x09, 0x74, 0xFF, 0xA6, 0x9B, 0x40, 0xC0, 0x92, 0x0D, 0x86, 0x09, 0x74, 0xFF, 0xA1, 0x9B, 0x20, 0xB7,
+ 0x0C, 0x46, 0x80, 0xB7, 0xAD, 0x45, 0x40, 0x2A, 0x00, 0x75, 0xFF, 0xFF, 0x82, 0x93, 0x08, 0xC0, 0xE2, 0x0D, 0x74, 0xFF, 0x7E, 0x99, 0x02, 0xC0, 0xF2, 0x0D, 0x82, 0x09, 0x74, 0xFF,
+ 0x90, 0x9B, 0x06, 0x08, 0x9F, 0xB7, 0xEE, 0x7A, 0xBF, 0xB7, 0x6E, 0x7B, 0xDF, 0xB7, 0xEE, 0x7B, 0xFF, 0xB7, 0x6E, 0x7C, 0x04, 0xC0, 0x60, 0x8C, 0x22, 0x9C, 0x98, 0x9E, 0x02, 0x08,
+ 0x02, 0x09, 0x00, 0xC0, 0x40, 0x91, 0x98, 0x9E, 0x02, 0x08, 0x10, 0xD0, 0x30, 0x45, 0x14, 0xCC, 0xC0, 0x72, 0x14, 0xC0, 0x00, 0x72, 0xC0, 0x72, 0x80, 0xC1, 0x09, 0x5D, 0x09, 0xE0,
+ 0x04, 0x72, 0x12, 0xF0, 0x04, 0x5D, 0x00, 0xC0, 0x54, 0x92, 0xC4, 0x72, 0x04, 0xD0, 0x04, 0x08, 0x24, 0xD0, 0xB4, 0x15, 0xC0, 0x72, 0x04, 0xD0, 0x02, 0x08, 0x24, 0xD0, 0xB0, 0x15,
+ 0x00, 0xE0, 0x24, 0x31, 0x81, 0x11, 0x30, 0xB3, 0x2A, 0x44, 0x22, 0x9C, 0xC0, 0x72, 0x86, 0x08, 0xFF, 0xFF, 0xA6, 0x93, 0x02, 0xC4, 0xC0, 0x72, 0x65, 0xD0, 0x9E, 0x2C, 0x65, 0xD0,
+ 0x9E, 0x3C, 0x02, 0xC8, 0x00, 0x72, 0x65, 0xD0, 0x2E, 0x2D, 0x65, 0xD0, 0x2E, 0x3D, 0x00, 0xE0, 0x14, 0x15, 0x53, 0x9E, 0x1A, 0xD0, 0x08, 0x54, 0x1A, 0xD0, 0xAC, 0x50, 0xC0, 0x72,
+ 0x14, 0xD0, 0x02, 0x00, 0x24, 0xD0, 0xB0, 0x15, 0x80, 0xE0, 0x85, 0x58, 0x05, 0x5C, 0xFF, 0xFF, 0x04, 0x93, 0x00, 0xE0, 0x24, 0x31, 0x81, 0x11, 0x30, 0xB3, 0x2A, 0x44, 0x22, 0x9C,
+ 0x64, 0x9E, 0x09, 0xC8, 0x42, 0x0E, 0x8B, 0xB0, 0x66, 0x06, 0xA4, 0x9E, 0x58, 0x9E, 0x22, 0x9C, 0x40, 0xB7, 0x16, 0x4B, 0x01, 0xC0, 0x88, 0x9C, 0xC0, 0x76, 0x01, 0xC0, 0x00, 0x28,
+ 0x20, 0x58, 0xB0, 0x41, 0x32, 0xB3, 0x44, 0x48, 0x11, 0xF0, 0x20, 0x0C, 0x40, 0xB3, 0xA2, 0x48, 0x10, 0xF8, 0x42, 0xA9, 0x86, 0x70, 0xFF, 0xFF, 0x24, 0x93, 0x84, 0x7A, 0x22, 0x9C,
+ 0x21, 0xC0, 0xC0, 0x7E, 0x00, 0xB7, 0x0E, 0x40, 0x00, 0xB3, 0x24, 0x4A, 0x22, 0x9C, 0x01, 0xC0, 0xC2, 0x7C, 0x00, 0xC0, 0xE2, 0x90, 0x71, 0xC0, 0x8C, 0x9C, 0x70, 0xD0, 0x80, 0x45,
+ 0xB0, 0x31, 0x8D, 0xA4, 0x39, 0xF8, 0x85, 0xA1, 0xEC, 0x9F, 0xF8, 0xF9, 0x1D, 0xA8, 0x60, 0x8C, 0x22, 0x9C, 0x02, 0xC0, 0x88, 0x9C, 0x01, 0xC0, 0x80, 0x9C, 0x01, 0xC0, 0x04, 0x2C,
+ 0x20, 0x5C, 0x70, 0xC0, 0x00, 0x28, 0x48, 0x58, 0x22, 0x9C, 0x05, 0xA6, 0x09, 0xC8, 0x42, 0x0E, 0x8B, 0xB0, 0xC6, 0x16, 0x81, 0x02, 0x40, 0xB7, 0x0E, 0x4B, 0x20, 0xB5, 0x0C, 0x50,
+ 0x80, 0x74, 0x00, 0xC0, 0xE2, 0x93, 0xB1, 0xD0, 0xD8, 0x09, 0xAD, 0x9E, 0x82, 0x0D, 0x09, 0xC8, 0x42, 0x0E, 0x8B, 0xB0, 0x06, 0x11, 0x09, 0xC8, 0x42, 0x0E, 0x8B, 0xB0, 0x06, 0x1E,
+ 0x11, 0xC0, 0x80, 0x0A, 0xB1, 0xD0, 0xD8, 0x09, 0x21, 0xC9, 0xC5, 0x9C, 0x82, 0x0D, 0x09, 0xC8, 0x42, 0x0E, 0x8B, 0xB0, 0x06, 0x11, 0x09, 0xC8, 0x42, 0x0E, 0x8B, 0xB0, 0x06, 0x1E,
+ 0xA0, 0xB5, 0x0E, 0x40, 0xF8, 0xF9, 0x9D, 0xAA, 0xF8, 0xF9, 0x1D, 0xAA, 0x22, 0x9C, 0x00, 0x78, 0x21, 0xD0, 0xDA, 0x46, 0x40, 0xB3, 0xA2, 0x48, 0x60, 0xB7, 0xBC, 0x42, 0x49, 0xC0,
+ 0x82, 0x0D, 0x08, 0xC0, 0x80, 0x0D, 0x21, 0xC0, 0x40, 0x7F, 0xC1, 0xCF, 0x80, 0x2E, 0x80, 0xC2, 0xB9, 0x5E, 0x22, 0xD0, 0xD0, 0x0E, 0xBA, 0x05, 0x82, 0x09, 0x39, 0xF8, 0xE5, 0xA1,
+ 0x83, 0x9E, 0x32, 0xF0, 0xB0, 0x8C, 0x39, 0xF8, 0xE5, 0xA1, 0x60, 0xB9, 0x78, 0x40, 0x09, 0xC8, 0x42, 0x0D, 0xA8, 0xC5, 0x50, 0x0D, 0x52, 0x9E, 0x39, 0xF8, 0x65, 0xA1, 0xFF, 0xFF,
+ 0xC1, 0x93, 0x09, 0xC8, 0x42, 0x0D, 0xC6, 0xC5, 0x60, 0x0D, 0x98, 0xF1, 0x66, 0xA1, 0x22, 0x9C, 0x00, 0xB7, 0x35, 0x40, 0x60, 0xB7, 0xBF, 0x43, 0x02, 0xC0, 0x00, 0x72, 0x2E, 0x0D,
+ 0x30, 0xB3, 0xA2, 0x50, 0x06, 0x0D, 0x02, 0x87, 0x74, 0xC0, 0xCE, 0x9C, 0xF3, 0x9C, 0x00, 0xB7, 0x35, 0x40, 0x02, 0xC4, 0x00, 0x72, 0x44, 0x55, 0x04, 0x44, 0x00, 0xB5, 0x35, 0x40,
+ 0xF0, 0x9C, 0x74, 0xC0, 0xCE, 0x9C, 0x2A, 0x0D, 0x88, 0x5C, 0x84, 0x0C, 0x1B, 0x9C, 0x33, 0x9D, 0x13, 0xE0, 0x80, 0x84, 0x39, 0xF8, 0x05, 0xA2, 0x51, 0xC0, 0x84, 0x9C, 0x09, 0xC8,
+ 0x42, 0x0A, 0xDC, 0xC5, 0x70, 0x0A, 0x08, 0x70, 0x06, 0xC0, 0xC2, 0x92, 0x9C, 0x0D, 0x01, 0x81, 0x00, 0xE0, 0x07, 0x00, 0xFE, 0xCF, 0xE2, 0x2D, 0x07, 0x04, 0x32, 0xB3, 0x6A, 0x48,
+ 0x09, 0xC8, 0xC2, 0x0C, 0x06, 0xC6, 0xD0, 0x0C, 0x33, 0xE0, 0xA0, 0x85, 0x01, 0xC8, 0x80, 0x29, 0x01, 0xC0, 0x8A, 0x08, 0x96, 0x00, 0x18, 0xF8, 0xC1, 0xA0, 0x71, 0xF1, 0x20, 0x84,
+ 0xF8, 0xC9, 0x7D, 0xA4, 0x82, 0x08, 0x82, 0x0C, 0x39, 0xF8, 0xE5, 0xA0, 0x39, 0xF8, 0xE5, 0xA0, 0x08, 0xCA, 0x1F, 0xA4, 0x85, 0x80, 0x03, 0xC0, 0x00, 0x90, 0xEF, 0x9C, 0x95, 0xE0,
+ 0xC0, 0x84, 0x02, 0x9C, 0x10, 0xC0, 0x82, 0x9C, 0x1F, 0xB7, 0x4E, 0x79, 0xFF, 0x9C, 0x00, 0xB5, 0xEE, 0x40, 0x72, 0xE1, 0x00, 0x84, 0x01, 0xC0, 0x88, 0x9C, 0x40, 0xB9, 0x00, 0x40,
+ 0x10, 0xC8, 0x1F, 0xA4, 0xF0, 0x9C, 0x54, 0xE0, 0x00, 0x85, 0x81, 0x80, 0xE0, 0xC8, 0xDD, 0xA4, 0x01, 0xC0, 0x8E, 0x9C, 0x02, 0x0D, 0x02, 0xC0, 0x8B, 0x9C, 0x01, 0xC0, 0x87, 0x9C,
+ 0x20, 0xB9, 0x00, 0x40, 0x00, 0xC8, 0x45, 0xA5, 0x81, 0x01, 0x0D, 0xC0, 0x82, 0x29, 0x52, 0xC0, 0x87, 0x9C, 0x01, 0xC0, 0x84, 0x39, 0x60, 0xB5, 0x6F, 0x40, 0x06, 0xC0, 0x60, 0x84,
+ 0x71, 0xC0, 0x8A, 0x9C, 0x02, 0xC0, 0x8A, 0x9C, 0x81, 0x01, 0x05, 0xCA, 0x80, 0x29, 0x01, 0xCF, 0x00, 0x2D, 0x71, 0x5D, 0x17, 0xD0, 0x28, 0x29, 0xFE, 0xEF, 0x6C, 0x29, 0x01, 0xC0,
+ 0x84, 0x39, 0x20, 0xB7, 0x16, 0x40, 0x02, 0xC0, 0xE2, 0x90, 0x02, 0xC0, 0x80, 0x70, 0x84, 0x7C, 0x82, 0x9E, 0x60, 0xB7, 0xBD, 0x40, 0x86, 0x0D, 0x71, 0xC0, 0x8C, 0x9C, 0x2E, 0xD0,
+ 0x68, 0x55, 0x17, 0xD0, 0x88, 0x29, 0x02, 0xE0, 0x22, 0x76, 0xB0, 0x31, 0x40, 0x0D, 0x22, 0xD1, 0x08, 0x5C, 0x1B, 0xB4, 0x7A, 0x4A, 0x40, 0x08, 0x00, 0xE0, 0x26, 0xA8, 0xAF, 0x9D,
+ 0xF4, 0xFF, 0xA4, 0x9B, 0xEF, 0x9C, 0x71, 0xC0, 0x8E, 0x9C, 0x70, 0xD0, 0xA0, 0x31, 0x00, 0xB7, 0x6F, 0x40, 0x03, 0x80, 0x71, 0xC8, 0x8B, 0x9C, 0x06, 0x9C, 0xFC, 0xDF, 0xFE, 0x7C,
+ 0xFE, 0xFF, 0x44, 0x90, 0x01, 0xC4, 0x00, 0x7C, 0xFD, 0xFF, 0xC4, 0x93, 0x24, 0xF0, 0x84, 0x58, 0x32, 0xE1, 0x10, 0x84, 0x53, 0xE0, 0x10, 0x84, 0x10, 0xC8, 0x07, 0xAD, 0xE8, 0x9D,
+ 0x24, 0xF0, 0x84, 0x58, 0x05, 0xC0, 0x02, 0x28, 0xF8, 0xC8, 0x9D, 0xAC, 0x30, 0xC0, 0x8B, 0x9C, 0x30, 0xC0, 0x8D, 0x9C, 0x10, 0xC8, 0x1F, 0xAC, 0xFB, 0xFF, 0xC0, 0x93, 0x71, 0xC0,
+ 0x8E, 0x9C, 0x03, 0xE0, 0x70, 0x28, 0x17, 0xD0, 0xA8, 0x29, 0xFE, 0xCF, 0x6C, 0x29, 0xB4, 0x31, 0x12, 0x09, 0x24, 0xD0, 0x49, 0x59, 0x04, 0xC0, 0x22, 0x08, 0xFE, 0xFF, 0x44, 0x90,
+ 0x80, 0xC1, 0x24, 0x5D, 0xF9, 0xCF, 0x80, 0x2D, 0x29, 0x5D, 0xB4, 0x05, 0x31, 0xD8, 0xE6, 0xA8, 0x10, 0xD8, 0x62, 0xA9, 0x00, 0xC8, 0x40, 0x7E, 0x12, 0xB3, 0x42, 0x48, 0x40, 0x5D,
+ 0x94, 0x04, 0x80, 0xC0, 0x59, 0x5D, 0x0C, 0x2D, 0x22, 0xD1, 0x08, 0x5C, 0xFD, 0xFF, 0x60, 0x91, 0x39, 0xF8, 0x25, 0xAA, 0x33, 0xE0, 0x10, 0x8C, 0x45, 0x9D, 0x22, 0x9C, 0x00, 0x00,
+ 0x09, 0xC8, 0xC2, 0x87, 0x60, 0xB0, 0x20, 0x0C, 0x09, 0xC8, 0xC2, 0x87, 0x60, 0xB0, 0x60, 0x0A, 0xF4, 0xFF, 0xA0, 0x92, 0x09, 0xC8, 0xC2, 0x87, 0x60, 0xB0, 0xC0, 0x09,
+};
+
+
+static const unsigned char aui8Data[] = {
+ 0xB0, 0x60, 0x90, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD0, 0x2F, 0x80, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x80, 0x04, 0x00, 0x04, 0x80, 0x04, 0x80, 0x04, 0x80, 0x04, 0x00, 0x05, 0x80, 0x04, 0x00, 0x06, 0x80, 0x04, 0x00, 0x07, 0x80, 0x04, 0x00, 0x10, 0x80, 0x04,
+ 0xF0, 0xD8, 0xFF, 0xFF, 0x09, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x98, 0x33, 0x88, 0x82, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00,
+ 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE4, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB0, 0x60, 0x90, 0x80, 0xB0, 0x00, 0x90, 0x80, 0xD4, 0x02, 0x90, 0x80, 0x6C, 0x31, 0x88, 0x82, 0x64, 0x31, 0x88, 0x82, 0x80, 0x31,
+ 0x88, 0x82, 0x38, 0x31, 0x88, 0x82, 0x3C, 0x31, 0x88, 0x82, 0x40, 0x33, 0x88, 0x82, 0x50, 0x33, 0x88, 0x82, 0x54, 0x33, 0x88, 0x82, 0x00, 0x00, 0x00, 0x00, 0x98, 0x3B, 0x88, 0x82,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5C, 0x31, 0x88, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x31, 0x88, 0x82, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x01, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x01, 0x00, 0xCD, 0xCD, 0xCD, 0xCD, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xEF, 0xBE, 0xAD, 0xDE, 0xEF, 0xBE, 0xAD, 0xDE, 0xEF, 0xBE, 0xAD, 0xDE, 0xEF, 0xBE, 0xAD, 0xDE,
+ 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x3C, 0x88, 0x82, 0x2C, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0xB0, 0x3B, 0x88, 0x82, 0xB0, 0x3B, 0x88, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x3C, 0x88, 0x82, 0x2C, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x90, 0x00,
+ 0x00, 0x00, 0x60, 0x3C, 0x88, 0x82, 0x60, 0x3C, 0x88, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x3D, 0x88, 0x82, 0x2A, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x98, 0x3B,
+ 0x88, 0x82, 0x98, 0x3B, 0x88, 0x82, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x38, 0x3D, 0x88, 0x82, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x3D, 0x88, 0x82, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x90, 0x80, 0x00, 0x00, 0x90, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x3D, 0x88, 0x82, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xB0, 0x60, 0x90, 0x80, 0xB0, 0x60, 0x90, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x98, 0x3D, 0x88, 0x82, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0x60, 0x90, 0x80, 0xA0, 0x60, 0x90, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB8, 0x3D, 0x88, 0x82, 0x12, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x60, 0x90, 0x80, 0x90, 0x60, 0x90, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1A, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0xB0, 0x00, 0x00, 0x00, 0xB0,
+};
+
+const FIRMWARE sFrameSwitchingFirmware = {
+ "BUILD_DXVA_FW1.00.10.0963.02.0011",
+ "26_08_2009",
+ 12388, /* TextSize bytes */
+ 3408, /* DataSize bytes */
+ 0x00003080, /* DataOffset bytes */
+ aui8Text,
+ aui8Data,
+};
+/*
+unsigned long ui32MTXDXVAFWTextSize = 12388 / 4;
+unsigned long ui32MTXDXVAFWDataSize = 3408 / 4;
+unsigned long ui32MTXDXVAFWDataLocation = 0x82883080;
+
+unsigned long aui32MTXDXVAFWText[12388/4];
+unsigned long aui32MTXDXVAFWData[3408/4];
+*/
diff --git a/fw/thread1_bin.h b/fw/thread1_bin.h
new file mode 100644
index 0000000..b5620ce
--- /dev/null
+++ b/fw/thread1_bin.h
@@ -0,0 +1,74 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/******************************************************************************
+
+ @File thread0_bin.h
+
+ @Title
+
+ @Copyright Copyright (C) Imagination Technologies Limited. All Rights Reserved.
+
+ @Platform
+
+ @Description
+
+******************************************************************************/
+#ifdef DE_ENV
+#include "global.h"
+#endif
+//#if SLICE_SWITCHING_VARIANT
+// This file was automatically generated from ../release/thread0.dnl using dnl2c.
+
+/*
+extern unsigned long aui32MTXDXVAFWText[];
+extern unsigned long ui32MTXDXVAFWTextSize;
+
+extern unsigned long aui32MTXDXVAFWData[];
+extern unsigned long ui32MTXDXVAFWDataSize;
+
+extern unsigned long ui32MTXDXVAFWDataLocation;
+*/
+typedef struct {
+ const char* psVersion;
+ const char* psBuildDate;
+ unsigned int uiTextSize;
+ unsigned int uiDataSize;
+ unsigned int DataOffset;
+ const unsigned char* pui8Text;
+ const unsigned char* pui8Data;
+} FIRMWARE;
+
+//extern const FIRMWARE sSliceSwitchingFirmware;
+extern const FIRMWARE sFrameSwitchingFirmware;
+extern const FIRMWARE sSliceSwitchingFirmware;
+extern const FIRMWARE sFirmware1100_SS;
+extern const FIRMWARE sFirmware1133_SS;
+extern const FIRMWARE sFirmware1133_FS;
+extern const FIRMWARE sFirmware1163_SS;
+extern const FIRMWARE sFirmware1163_FS;
+#define FIRMWARE_VERSION_DEFINED
+#define FIRMWARE_BUILDDATE_DEFINED
+//#endif /* SLICE_SWITCHING_VARIANT */
diff --git a/fw/thread2_bin.c b/fw/thread2_bin.c
new file mode 100644
index 0000000..7101e91
--- /dev/null
+++ b/fw/thread2_bin.c
@@ -0,0 +1,4369 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/******************************************************************************
+@File ../release/thread0_bin.c
+@Title
+@Copyright Copyright (C) Imagination Technologies Limited. All Rights Reserved.
+@Platform
+@Description This file was automatically generated from ../release/thread0.dnl using dnl2c.
+******************************************************************************/
+/******************************************************************************
+ Version : BUILD_DXVA_FW1.00.10.1100
+ Date : 06_05_2010
+ Code : 25020 bytes 24.434 Kb
+ Data : 6736 bytes 6.578 Kb
+ Total : 31760 bytes 31.016 Kb
+******************************************************************************/
+
+//#include "firmware.h"
+
+typedef struct {
+ const char* psVersion;
+ const char* psBuildDate;
+ unsigned int uiTextSize;
+ unsigned int uiDataSize;
+ unsigned int DataOffset;
+ const unsigned char* pui8Text;
+ const unsigned char* pui8Data;
+} FIRMWARE;
+
+
+static const unsigned char aui81100_SSText[] = {
+ 0x01, 0xC0, 0x40, 0x90, 0xFE, 0x93, 0x09, 0xC8, 0x42, 0x0E, 0x00, 0xC0, 0x00, 0x0E, 0x29, 0xC8, 0x22, 0x84, 0xC0, 0xC7, 0x60, 0x84, 0x29, 0xC8, 0x22, 0x86, 0x1C, 0xC6, 0x00, 0x86,
+ 0x83, 0x9E, 0x43, 0x9E, 0x09, 0xC8, 0x42, 0x0D, 0x34, 0xCC, 0x40, 0x0D, 0x09, 0xC8, 0x42, 0x09, 0x36, 0xCC, 0x00, 0x09, 0x09, 0xC8, 0x42, 0x0E, 0x0A, 0xC0, 0x40, 0x0E, 0x09, 0xC8,
+ 0xC2, 0x87, 0x0E, 0xC0, 0xD0, 0x87, 0x18, 0x9C, 0x02, 0x08, 0x02, 0x0C, 0x82, 0x0D, 0x82, 0x09, 0x02, 0x0D, 0x02, 0x09, 0x82, 0x0C, 0x82, 0x08, 0xFE, 0xFF, 0x20, 0x93, 0x38, 0xC8,
+ 0x01, 0xA4, 0x09, 0xC8, 0xC2, 0x0D, 0x34, 0xCC, 0x80, 0x0D, 0x09, 0xC8, 0x42, 0x0E, 0x80, 0xB0, 0x46, 0x0B, 0x7F, 0xB7, 0x74, 0x7E, 0x82, 0x08, 0x8D, 0xA4, 0xF3, 0x9F, 0xFF, 0xFF,
+ 0xE0, 0x93, 0x13, 0x9D, 0x81, 0x80, 0x39, 0xF8, 0x05, 0xA2, 0x07, 0x07, 0x07, 0x03, 0x85, 0x06, 0x97, 0x9E, 0x83, 0x03, 0x0F, 0x06, 0xA0, 0x0F, 0x8D, 0x05, 0x8D, 0x01, 0x8F, 0x00,
+ 0x62, 0x9C, 0xFF, 0xFF, 0x40, 0x93, 0x0B, 0x06, 0xA0, 0x0E, 0x62, 0x9C, 0xFF, 0xFF, 0xA0, 0x93, 0x8D, 0x05, 0x8D, 0x01, 0x00, 0xB7, 0x8C, 0x54, 0x80, 0xB7, 0x14, 0x54, 0x01, 0x9C,
+ 0x05, 0xA6, 0x87, 0x06, 0x0B, 0x06, 0xA0, 0x0E, 0x62, 0x9C, 0xFF, 0xFF, 0xA0, 0x93, 0xF8, 0xF9, 0x9D, 0xAA, 0xF8, 0xF9, 0x1D, 0xAA, 0x22, 0x9C, 0x22, 0x9C, 0x0E, 0xC0, 0xFC, 0x29,
+ 0x40, 0xB7, 0x8C, 0x43, 0x71, 0xC0, 0xCE, 0x9C, 0x49, 0xC0, 0x82, 0x08, 0xFC, 0xC2, 0xC0, 0x08, 0x10, 0xD0, 0x61, 0xAA, 0x0C, 0x0A, 0x00, 0xE2, 0x09, 0x5A, 0x20, 0xB7, 0xB5, 0x43,
+ 0x01, 0xC0, 0x82, 0x90, 0x40, 0xB7, 0x04, 0x42, 0x8A, 0x9E, 0x82, 0x87, 0x10, 0xD0, 0xC2, 0x19, 0x31, 0xF0, 0xE5, 0xA8, 0xA6, 0xD0, 0x08, 0x5D, 0x2D, 0x9E, 0x30, 0xE0, 0xCD, 0xA0,
+ 0x50, 0xD8, 0x49, 0xAA, 0x84, 0x0C, 0x49, 0x9E, 0x00, 0xC2, 0x40, 0x5A, 0x00, 0xC2, 0x41, 0x5A, 0x48, 0x70, 0xE0, 0x9D, 0x10, 0xB3, 0x46, 0x48, 0x81, 0x04, 0x10, 0xF0, 0x59, 0xAA,
+ 0x49, 0x9E, 0x48, 0x70, 0xFF, 0xFF, 0x82, 0x93, 0xFF, 0xFF, 0xC1, 0x90, 0x49, 0xC0, 0x82, 0x08, 0xFC, 0xC2, 0xC0, 0x08, 0x20, 0xB5, 0xB5, 0x43, 0x71, 0xC0, 0xCE, 0x9C, 0xB0, 0x08,
+ 0x80, 0xB7, 0x2D, 0x40, 0xC0, 0x74, 0x04, 0x0A, 0x80, 0xB5, 0x2D, 0x40, 0x40, 0xB3, 0xA2, 0x48, 0x80, 0xB7, 0x8C, 0x46, 0x00, 0xC4, 0x02, 0x85, 0x08, 0xF2, 0x0B, 0xA1, 0x22, 0x9C,
+ 0x1D, 0xA6, 0x20, 0x84, 0xF4, 0xFF, 0xB0, 0x9B, 0x0A, 0x85, 0x37, 0xC1, 0x8B, 0x9C, 0x80, 0xB7, 0x8C, 0x46, 0x04, 0x8D, 0x48, 0xF2, 0x1F, 0xA1, 0x54, 0xC0, 0xFF, 0x9B, 0x49, 0xC0,
+ 0x82, 0x08, 0xFC, 0xC2, 0xC0, 0x08, 0x80, 0xB7, 0x2D, 0x45, 0x00, 0xC4, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x02, 0x91, 0x06, 0xC0, 0x06, 0x85, 0x0C, 0xC0, 0x0A, 0x0A, 0x00, 0xC0,
+ 0xA0, 0x90, 0x10, 0xC0, 0x1A, 0x85, 0x76, 0x0A, 0x49, 0xC0, 0x82, 0x0C, 0xFC, 0xC2, 0xC0, 0x0C, 0x49, 0xC0, 0x02, 0x0D, 0x00, 0xC2, 0x00, 0x0D, 0x80, 0xB5, 0x4B, 0x45, 0x40, 0xB5,
+ 0x5B, 0x48, 0x26, 0xD2, 0x08, 0x59, 0x40, 0xC0, 0x02, 0x87, 0x10, 0xF0, 0x25, 0x80, 0x40, 0xB5, 0xC3, 0x45, 0x80, 0xB5, 0xCB, 0x48, 0x20, 0xB7, 0xCB, 0x48, 0x5B, 0xCA, 0x16, 0x0A,
+ 0x5A, 0xCA, 0x14, 0x0A, 0x40, 0xB7, 0xCB, 0x45, 0x80, 0xB5, 0x4D, 0x42, 0xC0, 0x58, 0xA6, 0xD0, 0x41, 0x59, 0x20, 0xB7, 0x4D, 0x45, 0x40, 0x59, 0x10, 0xF2, 0x2D, 0x80, 0x26, 0xD1,
+ 0x41, 0x59, 0x20, 0xE2, 0x2D, 0x81, 0xB5, 0x58, 0x12, 0xD0, 0x12, 0x2B, 0x80, 0xB5, 0x8C, 0x42, 0x40, 0xB5, 0x14, 0x42, 0x0A, 0x85, 0x37, 0xC0, 0x89, 0x9C, 0x82, 0x0F, 0xC0, 0xB7,
+ 0x8C, 0x46, 0x8A, 0x0B, 0xB4, 0xC0, 0x60, 0x99, 0x71, 0xC9, 0x80, 0x9C, 0x11, 0xF0, 0xC4, 0x2A, 0x00, 0xC0, 0x24, 0x92, 0x80, 0x77, 0x02, 0xC0, 0x42, 0x91, 0x74, 0xC0, 0x26, 0x9B,
+ 0x1C, 0xC0, 0x3E, 0x7C, 0x00, 0xC0, 0x04, 0x91, 0x71, 0xC1, 0x80, 0x9C, 0x08, 0x2A, 0x00, 0x75, 0x01, 0xC0, 0xC2, 0x93, 0x49, 0xC0, 0x82, 0x0E, 0xFC, 0xC2, 0xC0, 0x0E, 0x50, 0xF2,
+ 0xA5, 0xA8, 0x50, 0xF2, 0x2D, 0xAA, 0x48, 0x70, 0x01, 0xC0, 0x82, 0x91, 0x50, 0xF2, 0x25, 0xAA, 0x40, 0xB7, 0x9C, 0x42, 0x00, 0xC2, 0x08, 0x5A, 0x10, 0xE3, 0xA1, 0x81, 0x08, 0xD0,
+ 0xE1, 0xA8, 0x08, 0xD0, 0x65, 0xAA, 0xF6, 0xCF, 0xFD, 0x28, 0x00, 0x75, 0x8C, 0x08, 0x80, 0xC0, 0x89, 0x5A, 0x00, 0xC0, 0xA2, 0x90, 0xA3, 0x9E, 0x74, 0xC0, 0x1A, 0x9A, 0x50, 0xF2,
+ 0x27, 0xA9, 0x90, 0xDA, 0x21, 0xAA, 0x10, 0xE3, 0xA3, 0x80, 0x00, 0xC2, 0x40, 0x5A, 0x00, 0xC2, 0x41, 0x5A, 0x48, 0x70, 0x7C, 0x9E, 0x14, 0xB3, 0x26, 0x44, 0x89, 0x00, 0x50, 0xF2,
+ 0xA5, 0xA0, 0xFD, 0xFF, 0xC0, 0x92, 0x40, 0x75, 0xFD, 0xFF, 0x62, 0x92, 0x71, 0xC1, 0x80, 0x9C, 0xFD, 0xFF, 0xE0, 0x91, 0x80, 0x77, 0xFD, 0xFF, 0x84, 0x91, 0x74, 0xC0, 0xDB, 0x9A,
+ 0x1C, 0xC0, 0x3E, 0x7C, 0xFD, 0xFF, 0xC4, 0x90, 0x12, 0x85, 0x5F, 0xB5, 0x7C, 0x7F, 0x04, 0x8D, 0x48, 0xF2, 0x5F, 0xA1, 0x71, 0xC9, 0x80, 0x9C, 0x08, 0x2A, 0x00, 0x75, 0x00, 0xC0,
+ 0x04, 0x92, 0x27, 0xC9, 0x8F, 0x9C, 0x9F, 0xB7, 0x6C, 0x7F, 0x04, 0x1A, 0x9F, 0xB5, 0x6C, 0x7F, 0x3F, 0xB7, 0x6C, 0x7F, 0x40, 0x74, 0xFF, 0xFF, 0x04, 0x93, 0x17, 0xC9, 0x8F, 0x9C,
+ 0x48, 0xF2, 0xDD, 0xA3, 0xFC, 0xFF, 0x00, 0x91, 0x9F, 0xB7, 0xEE, 0x7D, 0xBF, 0xB7, 0x6E, 0x7E, 0xDF, 0xB7, 0xEE, 0x7E, 0xFF, 0xB7, 0x6E, 0x7F, 0x02, 0xC0, 0x20, 0x8C, 0x22, 0x9C,
+ 0x1D, 0xA6, 0x80, 0xB7, 0x0C, 0x68, 0x12, 0xD0, 0x48, 0x0B, 0x20, 0xB7, 0x0C, 0x46, 0x87, 0x07, 0x07, 0xC0, 0xC2, 0x0B, 0x01, 0xC0, 0xC2, 0x0E, 0x09, 0x03, 0x31, 0xD0, 0x98, 0x0A,
+ 0xCA, 0x7B, 0x00, 0xC0, 0x62, 0x92, 0x08, 0xF2, 0x21, 0xAA, 0x05, 0xC0, 0x04, 0x7D, 0x00, 0xC0, 0xA2, 0x91, 0xFD, 0xCF, 0x76, 0x2A, 0x08, 0xF2, 0x21, 0xA2, 0x0A, 0x85, 0x08, 0xF2,
+ 0x43, 0xA1, 0x10, 0xF2, 0xC2, 0xA9, 0x14, 0xC0, 0x2A, 0x9A, 0x6C, 0x9E, 0x20, 0x0F, 0x20, 0x0B, 0x7D, 0x4A, 0x00, 0xE0, 0xF8, 0x23, 0x02, 0xC0, 0x80, 0x0A, 0x80, 0xC2, 0x84, 0x5E,
+ 0xFF, 0xFF, 0x44, 0x90, 0x9F, 0xB7, 0x6E, 0x7E, 0xBF, 0xB7, 0xEE, 0x7E, 0xDF, 0xB7, 0x6E, 0x7F, 0xFF, 0xB7, 0xEE, 0x7F, 0x02, 0xC0, 0x00, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x5D, 0x9E,
+ 0x51, 0xD0, 0x58, 0x0A, 0xA1, 0x9E, 0x86, 0x0D, 0xE4, 0x55, 0x07, 0xC0, 0xC0, 0x2D, 0x14, 0xC0, 0xDC, 0x99, 0xAB, 0x9E, 0x14, 0xC0, 0x08, 0x98, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7,
+ 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x0D, 0xA6, 0x80, 0xB7, 0x0C, 0x46, 0xA6, 0xD1, 0x14, 0x5D, 0x10, 0xF3, 0x21, 0x81, 0x40, 0xB7, 0x84, 0x68, 0xB5, 0x9E, 0x30, 0xF2, 0xA5, 0xAA,
+ 0xA6, 0xD1, 0x0C, 0x5D, 0x2D, 0x9E, 0x01, 0xC0, 0xA0, 0x3A, 0x10, 0xF2, 0xA1, 0xA2, 0x30, 0xE0, 0xCE, 0xA9, 0x14, 0xC0, 0xD1, 0x99, 0x02, 0x85, 0xFF, 0xCF, 0xE8, 0x2A, 0x10, 0xF2,
+ 0xA1, 0xA2, 0xFF, 0xCF, 0xDE, 0x2A, 0x10, 0xF2, 0xA1, 0xA2, 0x31, 0xD0, 0x68, 0x0A, 0x08, 0xF2, 0x03, 0xA1, 0x9F, 0xB7, 0xEE, 0x7E, 0xBF, 0xB7, 0x6E, 0x7F, 0xDF, 0xB7, 0xEE, 0x7F,
+ 0x60, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x5D, 0x9E, 0x0E, 0xC0, 0x7C, 0x2D, 0x0E, 0xC0, 0x7C, 0x29, 0x14, 0xC0, 0x3B, 0x98, 0xAB, 0x9E, 0x14, 0xC0, 0x08, 0x98, 0x9F, 0xB7, 0x6E, 0x7F,
+ 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x5D, 0x9E, 0x40, 0xB7, 0x1C, 0x68, 0xA8, 0xD2, 0x0C, 0x59, 0x2D, 0x9E, 0x20, 0xE0, 0x6D, 0xAA, 0x02, 0x75, 0xA3, 0xB5,
+ 0x08, 0x70, 0x00, 0xC0, 0xE4, 0x90, 0x10, 0x85, 0x20, 0xE0, 0xEE, 0xA9, 0x14, 0xC0, 0x9C, 0x99, 0xAB, 0x9E, 0x14, 0xC0, 0x89, 0x98, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F,
+ 0x40, 0x8C, 0x22, 0x9C, 0x80, 0xB7, 0x8C, 0x43, 0x71, 0xC1, 0xCC, 0x9C, 0x20, 0xB7, 0x94, 0x46, 0x20, 0xB7, 0x4D, 0x40, 0xB0, 0x5D, 0x00, 0xC1, 0x80, 0x2D, 0x5A, 0x9E, 0xFE, 0xCE,
+ 0xFD, 0x28, 0x94, 0x30, 0x20, 0xB5, 0x4D, 0x40, 0x71, 0xC1, 0xCC, 0x9C, 0x22, 0x9C, 0x0D, 0xA6, 0x5E, 0x9E, 0x80, 0xB7, 0x0C, 0x68, 0x24, 0xD3, 0x8C, 0x59, 0x55, 0x9E, 0x59, 0x9E,
+ 0x06, 0x85, 0x40, 0xE0, 0x27, 0xA1, 0x13, 0xD0, 0x48, 0x09, 0x9E, 0x9E, 0xC7, 0x9D, 0x95, 0x9E, 0x10, 0xE0, 0xEA, 0xA9, 0x0E, 0xC0, 0xFC, 0x2A, 0x0E, 0xC0, 0xFC, 0x2E, 0x14, 0xC0,
+ 0x63, 0x99, 0x40, 0x75, 0x82, 0x0D, 0x01, 0xD0, 0xB2, 0x0D, 0xF4, 0xFF, 0xD0, 0x9B, 0x20, 0xB7, 0x0C, 0x46, 0x26, 0xD3, 0x14, 0x59, 0x01, 0xC2, 0x22, 0x81, 0x71, 0xF0, 0x20, 0x84,
+ 0x1E, 0x87, 0x0A, 0xF2, 0x00, 0xA1, 0x31, 0xF0, 0x20, 0x84, 0x2A, 0x9E, 0x05, 0xC8, 0x82, 0x0C, 0x42, 0xA3, 0x08, 0xF2, 0x82, 0xA2, 0x20, 0xF0, 0xC6, 0xA0, 0x05, 0xC8, 0x92, 0x0C,
+ 0x00, 0xF0, 0xC2, 0xA0, 0x9F, 0xB7, 0xEE, 0x7E, 0xBF, 0xB7, 0x6E, 0x7F, 0xDF, 0xB7, 0xEE, 0x7F, 0x60, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x80, 0xB7, 0x0C, 0x68, 0x06, 0x85, 0x87, 0x06,
+ 0x08, 0xF2, 0x03, 0xA1, 0x08, 0xF2, 0x86, 0xA9, 0x87, 0x02, 0x14, 0xC0, 0x30, 0x99, 0x82, 0x0D, 0xF4, 0xFF, 0xA0, 0x9B, 0x80, 0xB7, 0x0C, 0x46, 0x21, 0xC0, 0x82, 0x08, 0x84, 0x08,
+ 0x42, 0x85, 0x08, 0xF2, 0x1B, 0xA1, 0x08, 0xF2, 0x81, 0xA2, 0x08, 0xF2, 0x89, 0xA0, 0x69, 0x9E, 0x34, 0xC0, 0x42, 0x85, 0x08, 0xF2, 0x17, 0xA1, 0x01, 0xC2, 0x80, 0x38, 0x08, 0xF2,
+ 0x85, 0xA0, 0x01, 0xC0, 0x84, 0x38, 0x08, 0xF2, 0x85, 0xA0, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x40, 0xB7, 0x04, 0x68, 0xA6, 0xD1, 0x0C, 0x5D,
+ 0x2E, 0x9E, 0x38, 0xE0, 0x41, 0xA8, 0x11, 0xD0, 0x04, 0x1A, 0x02, 0x75, 0x40, 0xB3, 0xB2, 0x48, 0x02, 0x85, 0x00, 0xF0, 0x43, 0xA1, 0x22, 0x9C, 0x0D, 0xA6, 0x80, 0xB7, 0x0C, 0x68,
+ 0x5E, 0x9E, 0x06, 0x85, 0x08, 0xF2, 0x03, 0xA1, 0x08, 0xF2, 0x86, 0xA9, 0x87, 0x02, 0x85, 0x06, 0x14, 0xC0, 0xF1, 0x98, 0x86, 0x0D, 0xF4, 0xFF, 0x61, 0x9B, 0x80, 0xB7, 0x0C, 0x46,
+ 0xA1, 0xC0, 0x82, 0x08, 0x1E, 0x85, 0x08, 0xF2, 0x1B, 0xA1, 0x08, 0xF2, 0x81, 0xA2, 0x08, 0xF2, 0x89, 0xA0, 0x08, 0xF2, 0x96, 0xA2, 0x8D, 0x00, 0x81, 0xC2, 0x80, 0x38, 0x08, 0xF2,
+ 0x85, 0xA0, 0x01, 0xC0, 0x84, 0x38, 0x08, 0xF2, 0x85, 0xA0, 0x9F, 0xB7, 0xEE, 0x7E, 0xBF, 0xB7, 0x6E, 0x7F, 0xDF, 0xB7, 0xEE, 0x7F, 0x60, 0x8C, 0x22, 0x9C, 0x0D, 0xA6, 0x07, 0x03,
+ 0x07, 0x07, 0x82, 0x0E, 0x82, 0x0A, 0x54, 0x9E, 0x71, 0xC1, 0xCD, 0x9C, 0x20, 0x75, 0x00, 0xC0, 0x44, 0x91, 0x74, 0xC0, 0x98, 0x99, 0x13, 0xF0, 0x00, 0x09, 0x00, 0xC0, 0x22, 0x93,
+ 0x00, 0xC0, 0x60, 0x92, 0x00, 0x75, 0x00, 0xC0, 0xA4, 0x90, 0x0A, 0x85, 0x00, 0xC0, 0xA0, 0x91, 0x2A, 0x75, 0x00, 0xC0, 0x24, 0x91, 0x80, 0xB7, 0x8C, 0x46, 0x0E, 0x85, 0x08, 0xF2,
+ 0x8A, 0xAA, 0x00, 0xC0, 0x60, 0x90, 0x0E, 0x85, 0xCF, 0x9D, 0x6B, 0x9E, 0x94, 0xC0, 0xC8, 0x99, 0x71, 0xC1, 0xCD, 0x9C, 0x0D, 0x00, 0x0D, 0x04, 0x9F, 0xB7, 0xEE, 0x7E, 0xBF, 0xB7,
+ 0x6E, 0x7F, 0xDF, 0xB7, 0xEE, 0x7F, 0x60, 0x8C, 0x22, 0x9C, 0x0D, 0xA6, 0xA0, 0xB7, 0x8C, 0x43, 0x07, 0x03, 0x07, 0x07, 0x71, 0xC1, 0xCD, 0x9C, 0xA8, 0x76, 0x00, 0xC0, 0x84, 0x90,
+ 0x14, 0xC0, 0x53, 0x98, 0x71, 0xC1, 0xCD, 0x9C, 0x0D, 0x00, 0x0D, 0x04, 0x9F, 0xB7, 0xEE, 0x7E, 0xBF, 0xB7, 0x6E, 0x7F, 0xDF, 0xB7, 0xEE, 0x7F, 0x60, 0x8C, 0x22, 0x9C, 0x0D, 0xA6,
+ 0x74, 0xC1, 0x1B, 0x98, 0x11, 0xC0, 0x82, 0x0D, 0x54, 0xC1, 0xFF, 0x9B, 0x09, 0xC8, 0x42, 0x0A, 0xCA, 0xC0, 0x70, 0x0A, 0x09, 0xC8, 0xC2, 0x08, 0xBE, 0xC0, 0xB0, 0x08, 0x20, 0xB7,
+ 0x94, 0x41, 0x80, 0xB5, 0x2C, 0x4C, 0x20, 0xB5, 0xAC, 0x4C, 0x20, 0xB5, 0x2C, 0x4A, 0x20, 0xB5, 0x2C, 0x42, 0x20, 0xB5, 0x2C, 0x4B, 0x80, 0xB7, 0x4D, 0x45, 0x20, 0xB7, 0x8C, 0x43,
+ 0x00, 0xC4, 0x00, 0x2A, 0x00, 0x75, 0x51, 0xD0, 0x10, 0x3B, 0x00, 0xC0, 0xA2, 0x90, 0xF9, 0x28, 0x20, 0xB5, 0x8C, 0x43, 0x00, 0xC3, 0x40, 0x5A, 0x00, 0xC2, 0xC1, 0x5A, 0x8B, 0x00,
+ 0xFE, 0xCF, 0xFC, 0x28, 0x83, 0x02, 0x82, 0x0E, 0x8B, 0x01, 0x8B, 0x05, 0x79, 0x2B, 0x74, 0xC1, 0x6C, 0x98, 0x02, 0x0A, 0x71, 0xC1, 0xCC, 0x9C, 0x4C, 0x32, 0x71, 0xC1, 0xCC, 0x9C,
+ 0x9F, 0xB7, 0xEE, 0x7E, 0xBF, 0xB7, 0x6E, 0x7F, 0xDF, 0xB7, 0xEE, 0x7F, 0x60, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0xA0, 0xB7, 0x94, 0x46, 0x10, 0xF2, 0xA9, 0xA8, 0x80, 0xB7, 0x0C, 0x44,
+ 0x00, 0xE0, 0x98, 0x22, 0x00, 0xC0, 0x22, 0x93, 0x0B, 0x02, 0x07, 0xE0, 0x40, 0x2A, 0x10, 0xF2, 0xAD, 0xA2, 0x00, 0xC0, 0xA2, 0x90, 0xA3, 0x9E, 0xF4, 0xFF, 0xF6, 0x99, 0x09, 0xC2,
+ 0x3E, 0x0A, 0x04, 0xC1, 0x3C, 0x0A, 0x00, 0xE0, 0x58, 0x22, 0xFF, 0xFF, 0x02, 0x91, 0xA3, 0x9E, 0x74, 0xC0, 0x5F, 0x99, 0xFF, 0xFF, 0x60, 0x90, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7,
+ 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x20, 0xB7, 0x14, 0x44, 0x80, 0xB7, 0x8C, 0x46, 0x96, 0x34, 0x20, 0xB5, 0x14, 0x44, 0x08, 0xF2, 0x96, 0xA0, 0x22, 0x9C, 0x20, 0xB7, 0x14, 0x44,
+ 0x80, 0xB7, 0x8C, 0x46, 0xFD, 0x4D, 0x96, 0x24, 0x20, 0xB5, 0x14, 0x44, 0x08, 0xF2, 0x96, 0xA0, 0x22, 0x9C, 0x02, 0x85, 0x10, 0xF0, 0x63, 0xA1, 0x22, 0x9C, 0x20, 0xB7, 0x8C, 0x43,
+ 0x10, 0xF0, 0x61, 0xAA, 0x00, 0x75, 0xFF, 0xFF, 0xA2, 0x93, 0x03, 0x02, 0x71, 0xC1, 0xCC, 0x9C, 0x10, 0xF0, 0xE1, 0xA8, 0x84, 0x18, 0x10, 0xF0, 0xE1, 0xA0, 0x71, 0xC1, 0xCC, 0x9C,
+ 0x02, 0x08, 0x22, 0x9C, 0x80, 0xB7, 0x8C, 0x43, 0x71, 0xC1, 0xCC, 0x9C, 0x10, 0xF0, 0xE1, 0xA8, 0x84, 0x08, 0x10, 0xF0, 0xE1, 0xA0, 0x71, 0xC1, 0xCC, 0x9C, 0x02, 0x08, 0x22, 0x9C,
+ 0x1C, 0xC0, 0xFE, 0x7C, 0x8C, 0x5D, 0xA0, 0x2D, 0x5B, 0x9E, 0x82, 0x08, 0x01, 0xD0, 0x92, 0x08, 0x80, 0xB7, 0x8C, 0x47, 0x20, 0x59, 0x30, 0xC0, 0x00, 0x29, 0x0F, 0xC0, 0x7E, 0x2D,
+ 0x88, 0x58, 0x14, 0x31, 0xA6, 0x30, 0x84, 0x38, 0x08, 0xF2, 0x99, 0xA0, 0xF9, 0x28, 0x08, 0xF2, 0x99, 0xA0, 0x08, 0xF2, 0x1E, 0xA1, 0x22, 0x9C, 0x20, 0xB7, 0x8C, 0x47, 0x80, 0xB7,
+ 0xAD, 0x4B, 0x00, 0x75, 0xFF, 0xFF, 0xB6, 0x93, 0x22, 0x9C, 0x20, 0xB7, 0x94, 0x47, 0xA0, 0x5D, 0x59, 0x9E, 0x80, 0xB7, 0x4D, 0x43, 0x4A, 0x9E, 0x30, 0xC0, 0x80, 0x28, 0xCE, 0xCF,
+ 0x7D, 0x2A, 0x42, 0x32, 0x80, 0xB5, 0x4D, 0x43, 0x08, 0xF0, 0x59, 0xAA, 0x59, 0x9E, 0x30, 0xC0, 0x00, 0x2A, 0x02, 0x71, 0xFF, 0xFF, 0x44, 0x93, 0x22, 0x9C, 0x05, 0xA6, 0xA0, 0xB7,
+ 0x8C, 0x47, 0x12, 0x85, 0xC8, 0xF2, 0x27, 0xA1, 0xF4, 0xFF, 0xDB, 0x9B, 0x88, 0xF2, 0x3D, 0xAA, 0xC8, 0xF2, 0xA1, 0xA8, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C,
+ 0x22, 0x9C, 0x05, 0xA6, 0xA0, 0xB7, 0x8C, 0x47, 0xC8, 0xF2, 0xA6, 0xA1, 0xF4, 0xFF, 0xCA, 0x9B, 0x88, 0xF2, 0x3D, 0xAA, 0xC8, 0xF2, 0x21, 0xA8, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7,
+ 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x8C, 0x5D, 0x0E, 0xC0, 0xE0, 0x2D, 0x84, 0x3D, 0xFF, 0xFF, 0x60, 0x91, 0x8C, 0x5D, 0x0E, 0xC0, 0xE0, 0x2D, 0xFF, 0xFF, 0xC0, 0x90, 0x9A, 0x0D,
+ 0xFF, 0xFF, 0x60, 0x90, 0x05, 0xA6, 0x87, 0x06, 0x10, 0xF2, 0xA9, 0xAA, 0x02, 0xC0, 0xA2, 0x0D, 0x82, 0x09, 0x14, 0xC0, 0x99, 0x99, 0x02, 0xC0, 0xB2, 0x0D, 0x82, 0x09, 0x14, 0xC0,
+ 0x94, 0x99, 0x02, 0xC0, 0xC2, 0x0D, 0x82, 0x09, 0x14, 0xC0, 0x8F, 0x99, 0x8B, 0x01, 0xFF, 0xCF, 0xC2, 0x29, 0x01, 0xC0, 0x84, 0x39, 0xFE, 0xC9, 0xFD, 0x29, 0xA2, 0x0D, 0x00, 0xC4,
+ 0x80, 0x39, 0x14, 0xC0, 0x83, 0x99, 0x00, 0xC1, 0xA2, 0x0A, 0x40, 0xC0, 0x82, 0x0D, 0x8B, 0x01, 0x14, 0xC0, 0x7C, 0x99, 0x60, 0xC0, 0x82, 0x0D, 0x8B, 0x01, 0x14, 0xC0, 0x77, 0x99,
+ 0x40, 0xC0, 0xA2, 0x0D, 0x82, 0x09, 0x14, 0xC0, 0x72, 0x99, 0x40, 0xC0, 0xA2, 0x0D, 0x86, 0x09, 0x14, 0xC0, 0x6D, 0x99, 0x40, 0xC0, 0xA2, 0x0D, 0x8A, 0x09, 0x14, 0xC0, 0x68, 0x99,
+ 0xA0, 0xB7, 0x8C, 0x43, 0x71, 0xC1, 0xCD, 0x9C, 0x40, 0xC0, 0x92, 0x0D, 0x82, 0x09, 0x14, 0xC0, 0x5F, 0x99, 0x40, 0xC0, 0x92, 0x0D, 0x8A, 0x09, 0x14, 0xC0, 0x5A, 0x99, 0x20, 0xB7,
+ 0x94, 0x46, 0x49, 0x9E, 0x80, 0xB7, 0x2D, 0x41, 0x01, 0xC0, 0x30, 0x2A, 0x01, 0xC0, 0x18, 0x75, 0xFF, 0xFF, 0x44, 0x93, 0x80, 0xB5, 0xCD, 0x41, 0x50, 0xF2, 0x39, 0xAA, 0x81, 0xC0,
+ 0x00, 0x3A, 0x50, 0xF2, 0x39, 0xA2, 0x71, 0xC1, 0xCD, 0x9C, 0x02, 0xC0, 0xA2, 0x0D, 0x50, 0xF2, 0xA1, 0xA9, 0x14, 0xC0, 0x3F, 0x99, 0x02, 0xC0, 0xB2, 0x0D, 0x50, 0xF2, 0xA5, 0xA9,
+ 0x14, 0xC0, 0x39, 0x99, 0x02, 0xC0, 0xC2, 0x0D, 0x50, 0xF2, 0xA1, 0xA9, 0x14, 0xC0, 0x33, 0x99, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x05, 0xA6,
+ 0x83, 0xB7, 0x88, 0x74, 0x1C, 0xC0, 0x3E, 0x7D, 0x82, 0x0A, 0x00, 0xC0, 0x42, 0x91, 0x94, 0xC0, 0x9B, 0x99, 0x83, 0xB7, 0x88, 0x74, 0x1C, 0xC0, 0x3E, 0x7D, 0xFF, 0xFF, 0x44, 0x93,
+ 0x60, 0xB7, 0x8C, 0x43, 0x71, 0xC0, 0xCF, 0x9C, 0x40, 0xB7, 0x8C, 0x46, 0x20, 0xB7, 0x94, 0x47, 0xAA, 0x9E, 0xFF, 0xCF, 0x3E, 0x2D, 0x85, 0x00, 0x80, 0xB7, 0xAD, 0x45, 0x40, 0x2A,
+ 0x00, 0x75, 0xFF, 0xFF, 0x82, 0x93, 0x71, 0xD2, 0x10, 0x0E, 0x08, 0xF2, 0x81, 0xA8, 0x08, 0xF0, 0xC2, 0xA8, 0x55, 0x9E, 0x01, 0xC0, 0xC0, 0x3A, 0x7F, 0x0A, 0x4A, 0x42, 0xA2, 0x9E,
+ 0x94, 0x24, 0x4C, 0x9E, 0xCA, 0x30, 0x08, 0xF0, 0xC1, 0xA0, 0x08, 0xF0, 0xC1, 0xAA, 0x20, 0xB7, 0x8C, 0x47, 0x08, 0xF0, 0xC2, 0xA0, 0x08, 0xF0, 0xC2, 0xA0, 0x10, 0xC0, 0x82, 0x0C,
+ 0x20, 0xB5, 0x35, 0x40, 0x71, 0xC0, 0xCF, 0x9C, 0x06, 0x08, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x20, 0x84, 0x20, 0xB7, 0x94, 0x43, 0x72, 0xC0,
+ 0xCD, 0x9C, 0x20, 0xB7, 0x8C, 0x46, 0x60, 0xB7, 0x2D, 0x40, 0x40, 0xB7, 0x8C, 0x47, 0xFF, 0xCF, 0xFA, 0x29, 0x07, 0x02, 0x01, 0xC0, 0x04, 0x3A, 0x80, 0xB5, 0x2D, 0x40, 0x60, 0xB7,
+ 0x35, 0x40, 0x60, 0xB5, 0x2D, 0x40, 0xC8, 0xF0, 0xCD, 0xA9, 0x81, 0xC0, 0x82, 0x0D, 0x59, 0x9E, 0x32, 0x32, 0xC8, 0xF0, 0x4D, 0xA2, 0xC8, 0xF0, 0xDD, 0xA8, 0x12, 0xD2, 0x20, 0x09,
+ 0x3F, 0xB5, 0x6C, 0x7F, 0x10, 0xF0, 0x41, 0xAA, 0x02, 0xC0, 0x82, 0x09, 0x9F, 0xB5, 0xEC, 0x7F, 0xC8, 0xF0, 0xC9, 0xA1, 0x9F, 0xB7, 0x6C, 0x7F, 0xC8, 0xF0, 0x5D, 0xA2, 0x3F, 0xB7,
+ 0xEC, 0x7F, 0x10, 0xF0, 0xC1, 0xA0, 0xC8, 0xF0, 0xCD, 0xA9, 0x5C, 0x9E, 0x7D, 0x4A, 0xB8, 0x21, 0xC8, 0xF0, 0xCD, 0xA1, 0x72, 0xC0, 0xCD, 0x9C, 0x20, 0x8C, 0x22, 0x9C, 0x5A, 0x9E,
+ 0x20, 0xB7, 0x94, 0x46, 0x08, 0xF0, 0xC9, 0xA8, 0x80, 0xB7, 0x4D, 0x45, 0x0A, 0x75, 0xFF, 0xFF, 0xB4, 0x93, 0x80, 0xB7, 0x0C, 0x48, 0x02, 0x85, 0x48, 0xF2, 0x0B, 0xA1, 0x48, 0xF2,
+ 0x0F, 0xA1, 0x48, 0xF2, 0x13, 0xA1, 0xFF, 0xCF, 0xC2, 0x28, 0x01, 0xC0, 0x84, 0x38, 0xFE, 0xC9, 0xFD, 0x28, 0x00, 0xC4, 0x80, 0x38, 0x08, 0xF2, 0x89, 0xA0, 0x08, 0xF0, 0xDD, 0xA8,
+ 0xFE, 0xCC, 0xFD, 0x28, 0x00, 0xC1, 0x80, 0x38, 0x40, 0xC0, 0x00, 0x0A, 0x08, 0xF2, 0x81, 0xA0, 0xC0, 0xCF, 0x01, 0x0A, 0x60, 0xC0, 0x00, 0x0A, 0x08, 0xF2, 0x81, 0xA0, 0x0E, 0xC0,
+ 0x68, 0x85, 0x20, 0xB7, 0x8C, 0x46, 0x80, 0xB7, 0x2D, 0x45, 0x0C, 0x75, 0xFF, 0xFF, 0xA6, 0x93, 0x20, 0xB7, 0x0C, 0x48, 0x60, 0xB9, 0x28, 0x40, 0x40, 0xC0, 0xA0, 0x08, 0x40, 0xB5,
+ 0x3D, 0x40, 0x11, 0xF0, 0x22, 0x84, 0x00, 0xC2, 0x40, 0x5A, 0x26, 0xD2, 0x41, 0x59, 0xFF, 0xFF, 0x01, 0x93, 0x20, 0xB7, 0x8C, 0x46, 0x80, 0xB7, 0x2D, 0x45, 0x06, 0x75, 0xFF, 0xFF,
+ 0xB4, 0x93, 0x82, 0x08, 0x20, 0xB7, 0x14, 0x48, 0x40, 0xC0, 0xA0, 0x0C, 0x20, 0xB5, 0x4D, 0x40, 0x48, 0xF0, 0x59, 0xAA, 0x08, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0xC2, 0x90, 0x10, 0xC0,
+ 0x82, 0x08, 0x00, 0xC0, 0x60, 0x90, 0x86, 0x08, 0x20, 0xB5, 0x4D, 0x40, 0x20, 0xB7, 0x94, 0x43, 0x72, 0xC0, 0xCD, 0x9C, 0x20, 0xB7, 0x0C, 0x48, 0x02, 0x85, 0x40, 0xC0, 0x90, 0x08,
+ 0x40, 0xB5, 0x3D, 0x40, 0x08, 0x85, 0x40, 0xB5, 0x3D, 0x40, 0x80, 0xB7, 0x8C, 0x46, 0x08, 0xF2, 0x89, 0xA8, 0x01, 0xC0, 0xB0, 0x28, 0x01, 0xC0, 0x58, 0x74, 0xFF, 0xFF, 0x44, 0x93,
+ 0x80, 0xB7, 0x8C, 0x46, 0x08, 0xF2, 0x8D, 0xA0, 0x48, 0xF0, 0xD9, 0xA8, 0x09, 0xC0, 0x80, 0x38, 0x48, 0xF0, 0xD9, 0xA0, 0x72, 0xC0, 0xCD, 0x9C, 0x89, 0x00, 0x80, 0xB7, 0x2D, 0x45,
+ 0x08, 0x75, 0xFF, 0xFF, 0xB4, 0x93, 0x20, 0xB7, 0x14, 0x48, 0x48, 0xF0, 0x41, 0xAA, 0x80, 0xB5, 0x4D, 0x45, 0x48, 0xF0, 0xC5, 0xA8, 0x20, 0xB5, 0xCD, 0x45, 0x48, 0xF0, 0x41, 0xAA,
+ 0x80, 0xB5, 0x4D, 0x46, 0x08, 0xF0, 0xC9, 0xA8, 0x20, 0xB5, 0x4D, 0x41, 0x40, 0xC0, 0x80, 0x0C, 0x08, 0xF0, 0x5D, 0xAA, 0x80, 0xB5, 0x4D, 0x40, 0x22, 0x9C, 0x40, 0xB7, 0x04, 0x48,
+ 0x3A, 0x9D, 0x99, 0x9E, 0x20, 0xB7, 0x8C, 0x46, 0x80, 0xB7, 0x2D, 0x45, 0x00, 0x75, 0xFF, 0xFF, 0xA2, 0x93, 0x2D, 0x9E, 0x20, 0xE0, 0xEE, 0xA0, 0x22, 0x9C, 0x02, 0x0A, 0xA2, 0x0C,
+ 0x81, 0xB4, 0x00, 0xC0, 0x01, 0xB2, 0x20, 0x44, 0x22, 0x9C, 0x39, 0xF8, 0x05, 0xA2, 0x00, 0xC0, 0x80, 0x90, 0x94, 0xC0, 0x5E, 0x98, 0x83, 0xB7, 0x08, 0x74, 0x1C, 0xC0, 0x3E, 0x7D,
+ 0xFF, 0xFF, 0x44, 0x93, 0xF8, 0xF9, 0x1D, 0xAA, 0x22, 0x9C, 0x80, 0xB7, 0x8C, 0x47, 0x06, 0x85, 0x40, 0xB5, 0x98, 0x44, 0x08, 0xC0, 0x70, 0x0A, 0x08, 0xF2, 0x81, 0xA8, 0x40, 0xC0,
+ 0x80, 0x28, 0x40, 0x74, 0x02, 0x09, 0x00, 0xC0, 0xA2, 0x92, 0x20, 0xB7, 0x94, 0x46, 0x09, 0xC2, 0x06, 0x0D, 0x00, 0xC1, 0x38, 0x0D, 0x20, 0xB7, 0x4D, 0x41, 0x53, 0x9E, 0x46, 0x78,
+ 0x40, 0xB3, 0xA4, 0x48, 0x08, 0xF2, 0x81, 0xA8, 0x40, 0xC0, 0x80, 0x28, 0x40, 0x74, 0xFF, 0xFF, 0xA4, 0x92, 0x80, 0xB7, 0x8C, 0x47, 0x09, 0xC2, 0x06, 0x0D, 0x00, 0xC1, 0x38, 0x0D,
+ 0x20, 0xB7, 0x94, 0x46, 0x08, 0x39, 0xC8, 0xF2, 0x09, 0xA1, 0x08, 0xC0, 0x70, 0x0A, 0x08, 0xF2, 0x81, 0xA8, 0x80, 0xC1, 0x40, 0x7C, 0x00, 0xC0, 0xE2, 0x91, 0x20, 0xC0, 0x80, 0x28,
+ 0x40, 0x74, 0x40, 0xB3, 0xA4, 0x48, 0x20, 0xB7, 0x4D, 0x41, 0x52, 0x9E, 0x44, 0x78, 0x40, 0xB3, 0xA4, 0x48, 0xFF, 0xFF, 0xE0, 0x91, 0x02, 0x85, 0x40, 0xB5, 0x98, 0x44, 0x22, 0x9C,
+ 0x20, 0xB7, 0x94, 0x47, 0x02, 0x0C, 0x20, 0xB7, 0x4D, 0x4E, 0x94, 0x5D, 0x06, 0x72, 0x80, 0xB7, 0xCD, 0x4D, 0x03, 0x01, 0xFE, 0xCF, 0x7C, 0x29, 0x80, 0xC0, 0xC1, 0x59, 0x30, 0x59,
+ 0xB0, 0x59, 0x01, 0xC0, 0x30, 0x2A, 0x00, 0xC2, 0xC9, 0x58, 0x98, 0x08, 0x06, 0x0A, 0x00, 0xC2, 0x84, 0x50, 0x00, 0xC0, 0x16, 0x92, 0x32, 0xD2, 0x18, 0x0D, 0x30, 0xD0, 0x22, 0x11,
+ 0x10, 0xF0, 0x41, 0xAA, 0x5A, 0x9E, 0xFF, 0xC0, 0x7E, 0x2A, 0x10, 0xF3, 0x21, 0x88, 0x04, 0x71, 0xFF, 0xFF, 0x18, 0x93, 0x06, 0x72, 0x00, 0xC0, 0xF6, 0x91, 0x51, 0xD2, 0x10, 0x0D,
+ 0x30, 0xD0, 0x32, 0x11, 0x08, 0xF0, 0x41, 0xAA, 0xFF, 0xC0, 0x7E, 0x2A, 0x20, 0xE3, 0x21, 0x88, 0x06, 0x72, 0xFF, 0xFF, 0x38, 0x93, 0x71, 0xD2, 0x98, 0x0C, 0x80, 0xB7, 0x2D, 0x40,
+ 0x40, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0xFF, 0xFF, 0x24, 0x93, 0x22, 0x9C, 0x0D, 0xA6, 0x5E, 0x9E, 0x9D, 0x9E, 0xF4, 0xFF, 0x66, 0x9B, 0xC0, 0xB7, 0x94, 0x43, 0x72, 0xC1, 0xCE, 0x9C,
+ 0xA0, 0xB7, 0x8C, 0x58, 0x96, 0x0D, 0x08, 0xF2, 0xA6, 0xA2, 0x08, 0xF2, 0x2D, 0xA3, 0xF4, 0xFF, 0xAE, 0x9B, 0x80, 0xB7, 0x8C, 0x47, 0xA9, 0x9E, 0x60, 0xB9, 0x20, 0x40, 0x51, 0xD2,
+ 0xC8, 0x08, 0x31, 0xF0, 0x25, 0xAA, 0x80, 0xB5, 0x2D, 0x40, 0xFF, 0xFF, 0x81, 0x93, 0xF4, 0xFF, 0x59, 0x9B, 0x72, 0xC1, 0xCE, 0x9C, 0x9F, 0xB7, 0xEE, 0x7E, 0xBF, 0xB7, 0x6E, 0x7F,
+ 0xDF, 0xB7, 0xEE, 0x7F, 0x60, 0x8C, 0x22, 0x9C, 0x39, 0xF8, 0x05, 0xA2, 0x96, 0x0D, 0xF4, 0xFF, 0x90, 0x9B, 0x01, 0xC0, 0x06, 0x85, 0x2C, 0x85, 0x02, 0x87, 0x80, 0xB7, 0x8C, 0x47,
+ 0x08, 0xC0, 0x50, 0x0A, 0x08, 0xF2, 0x03, 0xA1, 0x0A, 0xF2, 0x00, 0xA1, 0x01, 0xC0, 0x06, 0x87, 0x00, 0xC5, 0x4C, 0x87, 0x0A, 0xF2, 0x00, 0xA1, 0x06, 0x85, 0x08, 0xF2, 0x03, 0xA1,
+ 0x18, 0x85, 0x08, 0xF2, 0x03, 0xA1, 0xF8, 0xF9, 0x1D, 0xAA, 0x22, 0x9C, 0x39, 0xF8, 0x05, 0xA2, 0x02, 0xC0, 0x40, 0x84, 0x3A, 0x9D, 0x18, 0xD0, 0x45, 0xAA, 0x1C, 0xC0, 0x3E, 0x7D,
+ 0x05, 0xC0, 0x04, 0x92, 0x60, 0xB7, 0x04, 0x5A, 0xCF, 0xC3, 0x4E, 0x0A, 0xF2, 0xCC, 0x74, 0x0A, 0x10, 0xE0, 0xA7, 0x88, 0x99, 0x60, 0x8B, 0x58, 0x84, 0x18, 0x9C, 0x28, 0x54, 0xD1,
+ 0x19, 0x69, 0x30, 0xC0, 0x41, 0xAA, 0x40, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x82, 0x92, 0x58, 0xF0, 0x59, 0xAA, 0x01, 0xC1, 0x00, 0x3A, 0x58, 0xF0, 0x59, 0xA2, 0x58, 0xF0, 0xD9, 0xA8,
+ 0x01, 0xC0, 0xC0, 0x38, 0x58, 0xF0, 0xD9, 0xA0, 0x82, 0x0D, 0x4F, 0x9D, 0x74, 0xC0, 0x1D, 0x9B, 0x04, 0xC0, 0x00, 0x92, 0x58, 0xF0, 0xD9, 0xA8, 0x58, 0xF0, 0x59, 0xA9, 0x00, 0xE2,
+ 0x00, 0x29, 0xB9, 0x58, 0x11, 0xD0, 0x92, 0x29, 0x02, 0xC0, 0xE4, 0x92, 0x40, 0xB7, 0x94, 0x41, 0x50, 0xF0, 0x49, 0xAA, 0x80, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x8E, 0x0C, 0x00, 0xC0,
+ 0x22, 0x91, 0x80, 0xB7, 0x0C, 0x50, 0x40, 0xB5, 0x0C, 0x50, 0x84, 0x0C, 0x9F, 0xB5, 0xEC, 0x7B, 0x50, 0xF0, 0x49, 0xAA, 0x00, 0xC4, 0x00, 0x2A, 0x00, 0x75, 0x01, 0xC0, 0x62, 0x90,
+ 0x58, 0xF0, 0x5D, 0xAA, 0x98, 0xF0, 0xC1, 0xA8, 0x98, 0xF0, 0xC6, 0xA8, 0x98, 0xF0, 0x49, 0xA9, 0x9F, 0xB5, 0x6C, 0x7C, 0x3F, 0xB5, 0xEC, 0x7C, 0x3F, 0xB5, 0x74, 0x7D, 0x5F, 0xB5,
+ 0xEC, 0x7D, 0x50, 0xF0, 0x49, 0xAA, 0x00, 0xC8, 0x00, 0x2A, 0x00, 0x75, 0xA2, 0x0C, 0x00, 0xC0, 0x62, 0x91, 0x98, 0xF0, 0x4D, 0xAA, 0x98, 0xF0, 0xD1, 0xA8, 0x88, 0x0C, 0x9F, 0xB5,
+ 0x6C, 0x7E, 0x3F, 0xB5, 0xEC, 0x7E, 0xA2, 0xD0, 0x08, 0x5E, 0xD2, 0xE0, 0x80, 0x8D, 0x0C, 0xC0, 0x02, 0x87, 0x5F, 0xB5, 0xE0, 0x68, 0x9F, 0xB5, 0x68, 0x68, 0x58, 0xF0, 0x59, 0xAA,
+ 0x18, 0xD8, 0xC5, 0xA8, 0x18, 0xD8, 0xDE, 0xA8, 0x5F, 0xB5, 0x7C, 0x7F, 0x9F, 0xB5, 0x6C, 0x7B, 0x3F, 0xB5, 0xEA, 0x74, 0x3F, 0xB5, 0x72, 0x75, 0xD4, 0xFF, 0xEA, 0x98, 0x5F, 0xB7,
+ 0x7C, 0x7F, 0x18, 0xD0, 0x41, 0xAA, 0x08, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0xC4, 0x92, 0x18, 0xD0, 0x41, 0xAA, 0x10, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x02, 0x92, 0x20, 0xB7, 0x8C, 0x46,
+ 0x80, 0xB7, 0xAD, 0x45, 0x40, 0x2A, 0x00, 0x75, 0xFF, 0xFF, 0x82, 0x93, 0x80, 0xB7, 0x8C, 0x47, 0x08, 0xC0, 0x60, 0x0A, 0x08, 0xF2, 0x81, 0xA8, 0x18, 0xD0, 0x41, 0xAA, 0x0E, 0xC0,
+ 0x3C, 0x2A, 0x18, 0xD0, 0x41, 0xA2, 0x02, 0x85, 0x43, 0xB5, 0x98, 0x74, 0x02, 0x85, 0x40, 0xB5, 0x9C, 0x49, 0x00, 0xC0, 0x00, 0x91, 0x58, 0xF0, 0x59, 0xAA, 0x01, 0xC1, 0x00, 0x3A,
+ 0x58, 0xF0, 0x59, 0xA2, 0xF8, 0xF9, 0x05, 0xAA, 0x22, 0x9C, 0x39, 0xF8, 0x05, 0xA2, 0x20, 0x84, 0x9F, 0xB7, 0x6C, 0x7F, 0x0C, 0xC0, 0x0A, 0x85, 0xF0, 0xCF, 0x01, 0x2A, 0x10, 0x3A,
+ 0x9F, 0xB5, 0x6C, 0x7F, 0x5F, 0xB5, 0xF8, 0x7C, 0x10, 0xD8, 0x65, 0xAA, 0x32, 0xE0, 0x80, 0x8D, 0x86, 0x09, 0x9F, 0xB5, 0xEA, 0x7E, 0xD4, 0xFF, 0xA0, 0x98, 0xF8, 0xF9, 0x19, 0xAA,
+ 0x22, 0x9C, 0x40, 0xC0, 0x92, 0x0D, 0x8A, 0x09, 0xF1, 0xFF, 0x20, 0x91, 0x39, 0xF8, 0x85, 0xA2, 0x02, 0x0A, 0x87, 0x02, 0x0A, 0x71, 0x01, 0xC0, 0x68, 0x93, 0xA0, 0xB7, 0x94, 0x46,
+ 0x40, 0xB7, 0x1C, 0x48, 0x5A, 0x9E, 0x82, 0x08, 0x44, 0x70, 0x11, 0xD0, 0xC2, 0x09, 0x01, 0xC0, 0x88, 0x91, 0xC3, 0x9D, 0x5E, 0x9D, 0x28, 0xD2, 0xA0, 0x59, 0xCB, 0x9D, 0x02, 0x87,
+ 0x4B, 0x9D, 0xC7, 0x9D, 0x40, 0xC0, 0x20, 0x0C, 0x40, 0xC0, 0x60, 0x0D, 0x42, 0xC0, 0x40, 0x09, 0x50, 0xC0, 0x80, 0x0C, 0x11, 0xD0, 0x12, 0x08, 0x58, 0xF0, 0x69, 0xAA, 0x06, 0x75,
+ 0xFF, 0xFF, 0xB4, 0x93, 0x01, 0xC0, 0x84, 0x38, 0x01, 0xC0, 0x96, 0x30, 0x20, 0xB5, 0x4C, 0x40, 0x12, 0xF0, 0x40, 0xA1, 0x02, 0xC0, 0x82, 0x08, 0x08, 0xF0, 0xC1, 0xA0, 0x40, 0xB5,
+ 0x45, 0x40, 0x81, 0x00, 0x5C, 0x9E, 0x48, 0x70, 0xFF, 0xFF, 0x06, 0x91, 0x07, 0x02, 0x0A, 0x71, 0xFE, 0xFF, 0xA6, 0x91, 0x20, 0xB7, 0x14, 0x48, 0x20, 0xB7, 0x8C, 0x46, 0x80, 0xB7,
+ 0x2D, 0x45, 0x02, 0x75, 0xFF, 0xFF, 0xB4, 0x93, 0x02, 0x85, 0x40, 0xC0, 0x90, 0x0C, 0x40, 0xB5, 0x5D, 0x40, 0x86, 0x08, 0x80, 0xB7, 0x0C, 0x48, 0x40, 0xC0, 0x10, 0x0A, 0x08, 0xF2,
+ 0x81, 0xA0, 0xF8, 0xF9, 0x9D, 0xAA, 0x22, 0x9C, 0xA2, 0xD1, 0x08, 0x5E, 0xFE, 0xC0, 0x7C, 0x2A, 0x20, 0xC0, 0x00, 0x75, 0x99, 0x9E, 0x01, 0xC0, 0x02, 0x90, 0x00, 0xC0, 0xD2, 0x90,
+ 0x00, 0x75, 0x00, 0xC0, 0x02, 0x91, 0x22, 0x9C, 0x80, 0xC0, 0x00, 0x75, 0x00, 0xC0, 0xE2, 0x91, 0x22, 0x9C, 0x20, 0xB7, 0x4D, 0x41, 0x73, 0xC0, 0x7E, 0x0A, 0x00, 0xC1, 0x00, 0x0A,
+ 0x98, 0x20, 0x00, 0xC2, 0x80, 0x38, 0x20, 0xB5, 0x4D, 0x41, 0x22, 0x9C, 0x20, 0xB7, 0x4D, 0x40, 0xC1, 0x28, 0xA4, 0x38, 0x20, 0xB5, 0x4D, 0x40, 0x22, 0x9C, 0x80, 0xB7, 0x4D, 0x41,
+ 0x20, 0xB7, 0xCD, 0x41, 0x80, 0xB5, 0x4D, 0x40, 0x20, 0xB5, 0xCD, 0x40, 0x22, 0x9C, 0x05, 0xA6, 0x5D, 0x9E, 0x82, 0x0D, 0xD4, 0xFF, 0xC4, 0x99, 0x20, 0xB7, 0x8C, 0x44, 0x20, 0xB7,
+ 0x12, 0x55, 0x34, 0xC0, 0x90, 0x08, 0xE9, 0xF1, 0xBE, 0xA0, 0x48, 0xDA, 0x21, 0xAA, 0x01, 0xC0, 0x04, 0x3A, 0x80, 0xB5, 0x2D, 0x40, 0x08, 0xD2, 0x21, 0xA9, 0x82, 0x0D, 0x06, 0x0D,
+ 0x08, 0xF2, 0xB9, 0xA9, 0x0E, 0xC0, 0x7C, 0x29, 0x05, 0x59, 0x04, 0x49, 0x04, 0x29, 0xD4, 0xFF, 0x98, 0x99, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C,
+ 0x5A, 0x9E, 0x00, 0xC1, 0x11, 0x5A, 0x04, 0x1A, 0x3F, 0x75, 0x08, 0xC0, 0x06, 0x85, 0x00, 0xC0, 0x22, 0x92, 0x20, 0xB7, 0x94, 0x47, 0x40, 0xB5, 0xDD, 0x4C, 0x11, 0xD0, 0xC2, 0x18,
+ 0x80, 0xB7, 0xCD, 0x4B, 0x00, 0x75, 0xFF, 0xFF, 0xB6, 0x93, 0x03, 0x02, 0x3F, 0x75, 0xFF, 0xFF, 0xA4, 0x92, 0x31, 0xF0, 0x2E, 0x2A, 0x40, 0xB3, 0xA2, 0x48, 0x20, 0xB7, 0x8C, 0x47,
+ 0x00, 0xC2, 0x0C, 0x5A, 0x04, 0x3A, 0x80, 0xB5, 0xAD, 0x4C, 0x80, 0xB7, 0xAD, 0x4B, 0x00, 0x75, 0xFF, 0xFF, 0xB6, 0x93, 0x22, 0x9C, 0x1D, 0xA6, 0x60, 0x84, 0x20, 0xB7, 0x10, 0x45,
+ 0x7F, 0x87, 0x5F, 0xB5, 0x64, 0x7D, 0x82, 0x08, 0x3F, 0xB5, 0xEC, 0x7D, 0x0E, 0xC0, 0x7E, 0x85, 0x40, 0xB5, 0x18, 0x45, 0x07, 0x07, 0x3F, 0xB5, 0x74, 0x7E, 0x01, 0xC9, 0x80, 0x9C,
+ 0x90, 0xF2, 0x4D, 0xA2, 0x10, 0xD2, 0xC1, 0xA8, 0x88, 0x28, 0x40, 0x74, 0x02, 0xC0, 0xC2, 0x91, 0x20, 0xB7, 0x14, 0x59, 0x60, 0xB7, 0x0C, 0x4D, 0x83, 0x05, 0x34, 0xC0, 0xFE, 0x9B,
+ 0x10, 0xDA, 0x55, 0xAA, 0x3C, 0x2A, 0x04, 0x1A, 0x02, 0x75, 0x00, 0xC0, 0x92, 0x91, 0x50, 0xF2, 0x59, 0xAA, 0x04, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0xA2, 0x90, 0x8D, 0x05,
+ 0xF4, 0xFF, 0x3C, 0x98, 0x20, 0xB7, 0x14, 0x5A, 0xCF, 0xC3, 0xCE, 0x08, 0xF2, 0xCC, 0xF4, 0x08, 0x10, 0xD0, 0x62, 0x16, 0x43, 0x62, 0x00, 0xC2, 0x0B, 0x5A, 0x04, 0x1A, 0x1C, 0x2A,
+ 0x53, 0xD1, 0x49, 0x69, 0x20, 0xE2, 0xAB, 0x80, 0x10, 0xDA, 0xD5, 0xA8, 0x80, 0xB7, 0xCB, 0x42, 0xBC, 0x28, 0x3C, 0x2A, 0x48, 0x70, 0x00, 0xC0, 0x42, 0x92, 0x8D, 0x05, 0x01, 0xC1,
+ 0x82, 0x09, 0xF4, 0xFF, 0xAD, 0x99, 0x02, 0x85, 0x73, 0xC0, 0xCE, 0x9C, 0x50, 0xF2, 0x59, 0xAA, 0x41, 0xC0, 0x00, 0x3A, 0x50, 0xF2, 0x59, 0xA2, 0x73, 0xC0, 0xCE, 0x9C, 0x8D, 0x05,
+ 0x01, 0xC2, 0x82, 0x09, 0xF4, 0xFF, 0x9D, 0x99, 0x80, 0xB7, 0x8C, 0x47, 0x0E, 0x85, 0x08, 0xF2, 0x0F, 0xA1, 0x10, 0xD2, 0x41, 0xAA, 0x04, 0x2A, 0x00, 0x75, 0x40, 0xB7, 0x84, 0x4A,
+ 0x00, 0xC0, 0xC2, 0x90, 0x60, 0xB7, 0x8C, 0x4D, 0x00, 0xC0, 0x80, 0x90, 0x60, 0xB7, 0x0C, 0x4D, 0x20, 0xB7, 0x14, 0x59, 0x5F, 0xB5, 0x64, 0x7F, 0x83, 0x05, 0x34, 0xC0, 0xA4, 0x9B,
+ 0x8D, 0x05, 0xF4, 0xFF, 0x34, 0x9B, 0x10, 0xDA, 0x55, 0xAA, 0x3C, 0x2A, 0x08, 0x75, 0x5F, 0xB7, 0x64, 0x7F, 0x00, 0xC0, 0x44, 0x91, 0x80, 0xB7, 0x8C, 0x47, 0xB9, 0xC0, 0xC2, 0x08,
+ 0x60, 0xC0, 0x50, 0x0A, 0x08, 0xF2, 0x81, 0xA0, 0x80, 0xB7, 0x8C, 0x47, 0xE0, 0xB7, 0x0C, 0x55, 0x52, 0xD2, 0xC8, 0x0B, 0x21, 0xF0, 0x45, 0xAB, 0x0D, 0x02, 0x01, 0xCF, 0x00, 0x2A,
+ 0x01, 0xD0, 0x00, 0x75, 0x01, 0xC0, 0xE2, 0x93, 0x00, 0xC0, 0x72, 0x93, 0x01, 0xC8, 0x00, 0x75, 0x0E, 0xC0, 0x82, 0x90, 0x00, 0xC0, 0x72, 0x91, 0x00, 0x75, 0xFF, 0xFF, 0xC2, 0x91,
+ 0x01, 0xC2, 0x00, 0x75, 0x02, 0xC0, 0xA2, 0x90, 0xFF, 0xFF, 0x00, 0x91, 0x01, 0xCA, 0x00, 0x75, 0x06, 0xC0, 0xE2, 0x90, 0x01, 0xCC, 0x00, 0x75, 0x15, 0xC0, 0x42, 0x92, 0xFE, 0xFF,
+ 0xC0, 0x93, 0x01, 0xD6, 0x00, 0x75, 0x10, 0xC0, 0x22, 0x92, 0x00, 0xC0, 0x92, 0x91, 0x01, 0xD2, 0x00, 0x75, 0x12, 0xC0, 0x62, 0x91, 0x01, 0xD4, 0x00, 0x75, 0x0B, 0xC0, 0x02, 0x91,
+ 0xFE, 0xFF, 0xC0, 0x91, 0x01, 0xDA, 0x00, 0x75, 0x0C, 0xC0, 0x22, 0x92, 0x00, 0xC0, 0x12, 0x91, 0x01, 0xD8, 0x00, 0x75, 0x0A, 0xC0, 0x82, 0x93, 0xFE, 0xFF, 0x40, 0x90, 0x01, 0xDE,
+ 0x00, 0x75, 0x0D, 0xC0, 0x02, 0x91, 0xFD, 0xFF, 0x80, 0x93, 0x0D, 0x02, 0x01, 0xC0, 0x40, 0x2A, 0x00, 0x75, 0xFD, 0xFF, 0xC2, 0x92, 0x50, 0xF2, 0x59, 0xAA, 0x01, 0xC0, 0x08, 0x2A,
+ 0x00, 0x75, 0xFD, 0xFF, 0xE4, 0x91, 0xFE, 0xCF, 0x7C, 0x2B, 0x00, 0xC3, 0x08, 0x5A, 0x01, 0xC3, 0x20, 0x83, 0xFD, 0xFF, 0xE0, 0x90, 0x0D, 0x02, 0xFF, 0xC0, 0x40, 0x2A, 0x11, 0xC0,
+ 0x00, 0x75, 0x82, 0x0E, 0x01, 0xD0, 0xD2, 0x0E, 0x09, 0xC0, 0x00, 0x75, 0x8D, 0x02, 0x01, 0xC0, 0xBE, 0x2A, 0x01, 0xC0, 0x84, 0x90, 0x10, 0xDA, 0x55, 0xAA, 0x3C, 0x2A, 0x04, 0x75,
+ 0x00, 0xC0, 0xC4, 0x93, 0x10, 0xD2, 0x41, 0xAA, 0x04, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x02, 0x93, 0x20, 0xB7, 0x8C, 0x48, 0x01, 0xC0, 0x0A, 0x0A, 0x08, 0x0A, 0x48, 0x70, 0x00, 0xC0,
+ 0x12, 0x92, 0x50, 0xF2, 0x59, 0xAA, 0x04, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x22, 0x91, 0x8D, 0x05, 0x5F, 0xB5, 0x64, 0x7F, 0xD4, 0xFF, 0x93, 0x9A, 0x5F, 0xB7, 0x64, 0x7F,
+ 0x84, 0x1A, 0x7F, 0x75, 0xFB, 0xFF, 0x42, 0x92, 0x60, 0xB7, 0x14, 0x55, 0x00, 0xB7, 0x94, 0x46, 0x10, 0xDA, 0x55, 0xAA, 0x3C, 0x2A, 0x04, 0x75, 0x6C, 0x9E, 0x82, 0x08, 0x01, 0xD0,
+ 0x92, 0x08, 0x48, 0x78, 0x00, 0xF0, 0x42, 0xA9, 0x01, 0xC0, 0xC2, 0x90, 0xF1, 0xD3, 0x2E, 0x2E, 0x18, 0x75, 0x00, 0xC0, 0x82, 0x92, 0x00, 0xC0, 0xF2, 0x90, 0x10, 0x75, 0x00, 0xC0,
+ 0x22, 0x91, 0x00, 0xC0, 0x40, 0x93, 0x28, 0x75, 0x00, 0xC0, 0x02, 0x92, 0x00, 0xC0, 0xA0, 0x92, 0x00, 0xF0, 0x45, 0xAA, 0x10, 0xF0, 0xE1, 0xA8, 0x00, 0xC0, 0x80, 0x91, 0x00, 0xF0,
+ 0x45, 0xAA, 0x10, 0xF0, 0xE5, 0xA8, 0x00, 0xC0, 0xC0, 0x90, 0x00, 0xF0, 0x45, 0xAA, 0x10, 0xF0, 0xE9, 0xA8, 0x42, 0x32, 0x00, 0xF0, 0x45, 0xA2, 0x54, 0x9E, 0x31, 0xE0, 0xA0, 0x86,
+ 0xB7, 0xCF, 0x7C, 0x0A, 0x00, 0xCF, 0x00, 0x0A, 0x00, 0xC2, 0x00, 0x75, 0x00, 0xF0, 0x45, 0xA9, 0x11, 0xD0, 0xD2, 0x19, 0x00, 0xC0, 0x12, 0x91, 0x81, 0x04, 0x80, 0xB7, 0x4D, 0x45,
+ 0x00, 0x75, 0xFF, 0xFF, 0xA2, 0x93, 0x87, 0x02, 0x7F, 0x75, 0x99, 0x9D, 0x10, 0xF0, 0x41, 0xA1, 0xFD, 0xFF, 0xA4, 0x92, 0xF8, 0xFF, 0xE0, 0x93, 0x00, 0xC3, 0x41, 0x5A, 0xF1, 0xD3,
+ 0xCE, 0x2A, 0x12, 0xD0, 0xD8, 0x09, 0x5F, 0xB5, 0x64, 0x7F, 0xF4, 0xFF, 0x3B, 0x98, 0x24, 0xD3, 0x91, 0x5A, 0x01, 0xC0, 0x86, 0x08, 0xAC, 0x08, 0xFE, 0xC0, 0xFC, 0x2E, 0x10, 0xF2,
+ 0xE1, 0xA0, 0x02, 0x85, 0x10, 0xF2, 0x63, 0xA1, 0xA2, 0xD2, 0x90, 0x5C, 0x8C, 0x38, 0x80, 0xC2, 0x44, 0x5A, 0xFF, 0xCF, 0x7C, 0x0A, 0x98, 0x30, 0x10, 0xF2, 0xE1, 0xA0, 0x10, 0xDA,
+ 0x55, 0xAA, 0x3C, 0x2A, 0x04, 0x75, 0x5F, 0xB7, 0x64, 0x7F, 0x03, 0xC0, 0x44, 0x93, 0x0D, 0x02, 0xF1, 0xC0, 0x00, 0x2A, 0x21, 0xC0, 0x00, 0x75, 0xA3, 0x9E, 0x00, 0xC0, 0x04, 0x92,
+ 0x00, 0xF0, 0x49, 0xAA, 0x08, 0xF2, 0xED, 0xA8, 0x42, 0x32, 0x00, 0xF0, 0x49, 0xA2, 0x10, 0xF2, 0xC9, 0xA8, 0x08, 0xF2, 0x6D, 0xAA, 0x98, 0x30, 0x10, 0xF2, 0xC9, 0xA0, 0x81, 0xC0,
+ 0xC0, 0x76, 0x00, 0xC0, 0x04, 0x92, 0x00, 0xF0, 0x41, 0xAA, 0x08, 0xF2, 0xF5, 0xA8, 0x42, 0x32, 0x00, 0xF0, 0x41, 0xA2, 0x10, 0xF2, 0xDD, 0xA8, 0x08, 0xF2, 0x75, 0xAA, 0x98, 0x30,
+ 0x10, 0xF2, 0xDD, 0xA0, 0x01, 0xC1, 0xC0, 0x76, 0x00, 0xC0, 0x04, 0x93, 0x44, 0x75, 0x00, 0xC0, 0x64, 0x91, 0x00, 0xF0, 0x45, 0xAA, 0x08, 0xF2, 0xF1, 0xA8, 0x42, 0x32, 0x00, 0xF0,
+ 0x45, 0xA2, 0x00, 0xC0, 0x80, 0x91, 0x48, 0x75, 0x00, 0xC0, 0x24, 0x91, 0x00, 0xF0, 0x4D, 0xAA, 0x08, 0xF2, 0xF9, 0xA8, 0x42, 0x32, 0x00, 0xF0, 0x4D, 0xA2, 0x41, 0xC0, 0xC0, 0x76,
+ 0x01, 0xC0, 0xA4, 0x90, 0x00, 0xF0, 0x45, 0xAA, 0x08, 0xF2, 0xFD, 0xA8, 0x42, 0x32, 0x00, 0xF0, 0xC9, 0xA8, 0x00, 0xF0, 0x45, 0xA2, 0x48, 0xF2, 0x61, 0xAA, 0x98, 0x30, 0x00, 0xF0,
+ 0x4D, 0xAA, 0x00, 0xF0, 0xC9, 0xA0, 0x48, 0xF2, 0xE5, 0xA8, 0x42, 0x32, 0x00, 0xF0, 0xD1, 0xA8, 0x00, 0xF0, 0x4D, 0xA2, 0x48, 0xF2, 0x69, 0xAA, 0x98, 0x30, 0x40, 0xF0, 0x41, 0xAA,
+ 0x00, 0xF0, 0xD1, 0xA0, 0x48, 0xF2, 0xED, 0xA8, 0x42, 0x32, 0x40, 0xF0, 0x41, 0xA2, 0x80, 0xB7, 0x8C, 0x55, 0x88, 0xD2, 0x9D, 0xA8, 0x48, 0x74, 0x00, 0xC0, 0x44, 0x91, 0x4C, 0x9D,
+ 0x8B, 0x05, 0x5F, 0xB5, 0x64, 0x7F, 0xF4, 0xFF, 0x6D, 0x99, 0x5F, 0xB7, 0x64, 0x7F, 0x84, 0x1A, 0x7F, 0x75, 0x00, 0xC0, 0xC2, 0x91, 0x80, 0xB7, 0x8C, 0x47, 0x10, 0xC8, 0x87, 0x9C,
+ 0x51, 0xD2, 0xC8, 0x08, 0x21, 0xF0, 0x45, 0xAA, 0x80, 0xB5, 0x2D, 0x40, 0xFF, 0xFF, 0x81, 0x93, 0x9E, 0x08, 0x10, 0xF2, 0xE1, 0xA0, 0xF3, 0xFF, 0x40, 0x91, 0x24, 0xD3, 0x90, 0x5A,
+ 0x10, 0xD2, 0x41, 0xAA, 0x82, 0x0D, 0x01, 0xCF, 0x00, 0x2B, 0x5F, 0xB5, 0x64, 0x7F, 0x0E, 0xC0, 0x7C, 0x2A, 0x00, 0xC2, 0x05, 0x5A, 0x04, 0x4A, 0x11, 0xD0, 0xC2, 0x2A, 0xB4, 0xFF,
+ 0x3B, 0x9B, 0x01, 0xD4, 0x80, 0x75, 0x5F, 0xB7, 0x64, 0x7F, 0x53, 0xB3, 0x22, 0x48, 0x21, 0xD0, 0x80, 0x45, 0x21, 0xD0, 0x00, 0x45, 0x52, 0xB3, 0x22, 0x44, 0x00, 0xC0, 0x62, 0x91,
+ 0x6B, 0x9E, 0x86, 0x08, 0x3F, 0xB5, 0xEC, 0x7D, 0x82, 0x0D, 0x02, 0x0D, 0x0B, 0x01, 0x5F, 0xB5, 0x64, 0x7F, 0xB4, 0xFF, 0x52, 0x9B, 0x5F, 0xB7, 0x64, 0x7F, 0xF1, 0xFF, 0x60, 0x93,
+ 0x00, 0xC3, 0x10, 0x5A, 0x10, 0xF2, 0x59, 0xA2, 0x00, 0xD8, 0xC1, 0xA8, 0x50, 0xDA, 0xC1, 0xA0, 0xF0, 0xFF, 0x60, 0x90, 0x50, 0xF2, 0xD9, 0xA8, 0x00, 0xC1, 0x90, 0x38, 0x50, 0xF2,
+ 0xD9, 0xA0, 0x50, 0xF2, 0x59, 0xAA, 0x08, 0xC0, 0x00, 0x3A, 0x50, 0xF2, 0x59, 0xA2, 0x00, 0xF0, 0xC2, 0xA9, 0x00, 0xF0, 0xC5, 0xA9, 0x20, 0x87, 0x5F, 0xB5, 0x64, 0x7F, 0xF4, 0xFF,
+ 0xB0, 0x98, 0x5F, 0xB7, 0x64, 0x7F, 0xF0, 0xFF, 0x00, 0x93, 0x20, 0xB7, 0x94, 0x56, 0x00, 0xF0, 0xC9, 0xA8, 0x00, 0xF0, 0xC2, 0xA9, 0x00, 0xF0, 0xC5, 0xA9, 0x20, 0xB5, 0x4D, 0x40,
+ 0x00, 0xF0, 0x4D, 0xAA, 0x80, 0xB5, 0xCD, 0x40, 0x00, 0xF0, 0xD1, 0xA8, 0x40, 0xB7, 0x0C, 0x57, 0x20, 0xB5, 0x4D, 0x41, 0x00, 0xF0, 0x59, 0xAA, 0x00, 0xF0, 0xD6, 0xA8, 0x08, 0xF0,
+ 0x41, 0xA2, 0x00, 0xF0, 0xDD, 0xA8, 0x20, 0xB5, 0x14, 0x53, 0x08, 0xF0, 0xC5, 0xA0, 0x5F, 0xB5, 0x64, 0x7F, 0x94, 0xC0, 0xDD, 0x9B, 0x5F, 0xB7, 0x64, 0x7F, 0xFF, 0xC0, 0x7E, 0x2B,
+ 0x82, 0x75, 0x02, 0xC0, 0x00, 0x87, 0x00, 0xC0, 0x02, 0x92, 0x06, 0x85, 0x40, 0xB5, 0x18, 0x44, 0x86, 0x0D, 0x5F, 0xB5, 0x64, 0x7F, 0xD4, 0xFF, 0xB6, 0x98, 0x94, 0xC0, 0x73, 0x9B,
+ 0x5F, 0xB7, 0x64, 0x7F, 0x00, 0xC0, 0xA0, 0x90, 0x02, 0x85, 0x40, 0xB5, 0x18, 0x44, 0x80, 0xB7, 0x8C, 0x55, 0x88, 0xD2, 0x9D, 0xA8, 0x48, 0x74, 0xEE, 0xFF, 0x62, 0x92, 0x5F, 0xB5,
+ 0x64, 0x7F, 0x14, 0xC1, 0xE9, 0x98, 0x5F, 0xB7, 0x64, 0x7F, 0xEE, 0xFF, 0x60, 0x91, 0x10, 0xD2, 0x41, 0xAA, 0x08, 0x2A, 0x00, 0x75, 0x01, 0xC0, 0x22, 0x93, 0x00, 0xF0, 0x43, 0xA9,
+ 0x8A, 0x0D, 0x5F, 0xB5, 0x7C, 0x7D, 0x00, 0xF0, 0xC6, 0xAA, 0x02, 0x85, 0x43, 0xB5, 0x18, 0x75, 0x5F, 0xB5, 0x64, 0x7F, 0xB4, 0xFF, 0x9A, 0x9A, 0x12, 0xD0, 0xE2, 0x29, 0xA0, 0xB7,
+ 0x8C, 0x43, 0x71, 0xC1, 0xCD, 0x9C, 0x82, 0x09, 0x0B, 0x05, 0x06, 0x09, 0xD4, 0xFF, 0x5C, 0x98, 0x5F, 0xB7, 0x64, 0x7F, 0x00, 0xF0, 0x49, 0xAB, 0x8A, 0x0D, 0x02, 0x0D, 0x02, 0x09,
+ 0x00, 0xC3, 0x90, 0x59, 0xB4, 0xFF, 0xB4, 0x9A, 0xD4, 0xFF, 0x6A, 0x98, 0x8E, 0x0D, 0xD4, 0xFF, 0x6F, 0x98, 0xD4, 0xFF, 0x64, 0x9A, 0x86, 0x0D, 0xD4, 0xFF, 0x6A, 0x98, 0x80, 0xB7,
+ 0x8C, 0x46, 0x0A, 0x85, 0x08, 0xF2, 0x0F, 0xA1, 0x71, 0xC1, 0xCD, 0x9C, 0x5F, 0xB7, 0x64, 0x7F, 0x30, 0x87, 0xEC, 0xFF, 0x60, 0x91, 0x00, 0xF0, 0x41, 0xAA, 0x50, 0xF2, 0x41, 0xA2,
+ 0x00, 0xF0, 0xC5, 0xA8, 0x50, 0xF2, 0xC5, 0xA0, 0x00, 0xF0, 0x49, 0xAA, 0x10, 0xF2, 0x5D, 0xA2, 0x00, 0xF0, 0xCD, 0xA8, 0x50, 0xF2, 0xD1, 0xA0, 0x00, 0xF0, 0x51, 0xAA, 0x50, 0xF2,
+ 0x55, 0xA2, 0x40, 0xD8, 0xCD, 0xA8, 0xD0, 0xD2, 0x51, 0xAA, 0x50, 0xDA, 0xCD, 0xA0, 0x3F, 0xB7, 0x6C, 0x7E, 0x40, 0xD8, 0xCA, 0xA8, 0x30, 0x2A, 0x60, 0x87, 0x48, 0x70, 0x50, 0xDA,
+ 0xCA, 0xA0, 0x80, 0xB5, 0x08, 0x45, 0x00, 0xC0, 0xA2, 0x91, 0x02, 0x85, 0x73, 0xC0, 0xCE, 0x9C, 0x50, 0xF2, 0x59, 0xAA, 0x10, 0xC0, 0x00, 0x3A, 0x50, 0xF2, 0x59, 0xA2, 0x73, 0xC0,
+ 0xCE, 0x9C, 0x10, 0xDA, 0x55, 0xAA, 0x3C, 0x2A, 0x08, 0x75, 0x00, 0xC0, 0x04, 0x92, 0x50, 0xF2, 0x59, 0xAA, 0x20, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x22, 0x91, 0x8D, 0x05,
+ 0x5F, 0xB5, 0x64, 0x7F, 0x54, 0xC0, 0x1A, 0x9A, 0x5F, 0xB7, 0x64, 0x7F, 0x10, 0xDA, 0x55, 0xAA, 0x3C, 0x2A, 0x04, 0x75, 0xE9, 0xFF, 0xE4, 0x93, 0x10, 0xD2, 0x41, 0xAA, 0x08, 0x2A,
+ 0x00, 0x75, 0xE9, 0xFF, 0x22, 0x93, 0x8D, 0x05, 0x5F, 0xB5, 0x64, 0x7F, 0x74, 0xC0, 0x62, 0x99, 0x5F, 0xB7, 0x64, 0x7F, 0xE9, 0xFF, 0x00, 0x92, 0x3F, 0xB7, 0xF4, 0x7D, 0x40, 0x76,
+ 0x00, 0xC0, 0xA2, 0x90, 0x82, 0x0D, 0xB4, 0xFF, 0x0B, 0x9A, 0x10, 0xDA, 0x55, 0xAA, 0x3C, 0x2A, 0x04, 0x75, 0x01, 0xC0, 0x64, 0x91, 0x80, 0xB7, 0x8C, 0x55, 0x88, 0xD2, 0x9D, 0xA8,
+ 0x48, 0x74, 0x01, 0xC0, 0x84, 0x90, 0x20, 0xB7, 0x94, 0x57, 0x20, 0xB7, 0xC9, 0x4C, 0x50, 0xF2, 0x59, 0xAA, 0x50, 0xDA, 0xC5, 0xA0, 0x40, 0xB7, 0x49, 0x4D, 0x00, 0xC1, 0x10, 0x3A,
+ 0x50, 0xF2, 0x59, 0xA2, 0x50, 0xDA, 0x4D, 0xA1, 0x50, 0xF2, 0x59, 0xAA, 0x08, 0xC0, 0x00, 0x3A, 0x50, 0xF2, 0x59, 0xA2, 0x8D, 0x05, 0x01, 0xC0, 0x8A, 0x09, 0xD4, 0xFF, 0x68, 0x9A,
+ 0x86, 0x0D, 0xB4, 0xFF, 0xD0, 0x9B, 0xB4, 0xFF, 0xE5, 0x9B, 0x03, 0xC0, 0xA0, 0x90, 0x10, 0xD2, 0x41, 0xAA, 0x08, 0x2A, 0x00, 0x75, 0x02, 0xC0, 0xE2, 0x93, 0x50, 0xF2, 0x59, 0xAA,
+ 0x04, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x04, 0x92, 0x50, 0xF2, 0x59, 0xAA, 0x40, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x22, 0x91, 0x8D, 0x05, 0x01, 0xC4, 0x82, 0x09, 0xD4, 0xFF,
+ 0x49, 0x9A, 0x01, 0xC0, 0x60, 0x90, 0x20, 0xB7, 0x8C, 0x48, 0x01, 0xC0, 0x12, 0x0A, 0x10, 0xC0, 0x00, 0x0A, 0x48, 0x70, 0x00, 0xC0, 0x52, 0x93, 0x50, 0xF2, 0x59, 0xAA, 0x10, 0xC0,
+ 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x24, 0x91, 0x50, 0xF2, 0x59, 0xAA, 0x04, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x82, 0x91, 0x90, 0xD2, 0x51, 0xAA, 0x06, 0x75, 0x00, 0xC0,
+ 0xF4, 0x90, 0x8D, 0x05, 0x01, 0xC0, 0xC2, 0x09, 0xD4, 0xFF, 0x26, 0x9A, 0x80, 0xB7, 0x08, 0x44, 0x00, 0x75, 0x00, 0xC0, 0xC4, 0x90, 0x7F, 0xB7, 0x74, 0x7D, 0xD4, 0xFF, 0xF7, 0x9B,
+ 0x02, 0x85, 0x40, 0xB5, 0x18, 0x44, 0x8A, 0x0D, 0xB4, 0xFF, 0x82, 0x9B, 0x01, 0xC9, 0x80, 0x9C, 0x50, 0xF2, 0x5D, 0xA2, 0x06, 0x85, 0x20, 0xB7, 0x94, 0x47, 0x43, 0xB5, 0x18, 0x74,
+ 0x50, 0xF2, 0x59, 0xAA, 0xC0, 0xB5, 0x94, 0x7C, 0x20, 0xB7, 0x4D, 0x40, 0x00, 0xC2, 0x04, 0x5A, 0x01, 0xC0, 0x04, 0x2A, 0xFF, 0xCF, 0xFA, 0x28, 0x98, 0x30, 0x84, 0x38, 0x20, 0xB5,
+ 0x4D, 0x40, 0x01, 0xC9, 0x80, 0x9C, 0x90, 0xF2, 0x51, 0xA2, 0x20, 0xB7, 0x14, 0x59, 0x83, 0x05, 0x82, 0x09, 0x34, 0xC0, 0x15, 0x98, 0x06, 0x08, 0x9F, 0xB7, 0xEE, 0x7C, 0xBF, 0xB7,
+ 0x6E, 0x7D, 0xDF, 0xB7, 0xEE, 0x7D, 0xFF, 0xB7, 0x6E, 0x7E, 0x02, 0xC0, 0x60, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x20, 0xB7, 0x8C, 0x46, 0x80, 0xB7, 0x2D, 0x46, 0x20, 0xB7, 0x2D, 0x48,
+ 0x00, 0xC4, 0x00, 0x2A, 0x00, 0x75, 0x0F, 0xC0, 0xFE, 0x28, 0x20, 0xB5, 0x8C, 0x48, 0x00, 0xC0, 0x42, 0x91, 0x01, 0xC0, 0x06, 0x0A, 0x10, 0xC0, 0x2C, 0x0A, 0x80, 0xB5, 0x8C, 0x48,
+ 0x01, 0xC0, 0xE0, 0x90, 0x03, 0xC0, 0x42, 0x74, 0x01, 0xC0, 0x74, 0x90, 0x20, 0xB7, 0x8C, 0x41, 0x80, 0xB7, 0x2D, 0x45, 0x00, 0xC1, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x84, 0x91,
+ 0x20, 0xB7, 0x0C, 0x58, 0x3B, 0xC0, 0x7A, 0x0A, 0x04, 0xC0, 0x04, 0x0A, 0x80, 0xB5, 0x2D, 0x40, 0x80, 0xB5, 0xAD, 0x40, 0x80, 0xB7, 0x8C, 0x48, 0xFF, 0xCF, 0x78, 0x0A, 0x06, 0x75,
+ 0x00, 0xC0, 0x32, 0x91, 0x20, 0xB7, 0x0C, 0x58, 0x80, 0xB7, 0xAD, 0x40, 0x08, 0x3A, 0x80, 0xB5, 0xAD, 0x40, 0xB4, 0xFF, 0x4B, 0x9A, 0x8A, 0x0D, 0xB4, 0xFF, 0xD0, 0x98, 0x82, 0x0D,
+ 0xB4, 0xFF, 0xCD, 0x98, 0x54, 0xC0, 0x69, 0x98, 0x80, 0xB7, 0x8C, 0x41, 0x20, 0xB7, 0x0C, 0x45, 0x20, 0xB7, 0x94, 0x47, 0x02, 0x85, 0x09, 0xC2, 0xBE, 0x0D, 0x04, 0xC1, 0xBC, 0x0D,
+ 0x08, 0xF2, 0x03, 0xA1, 0x40, 0xB5, 0xBD, 0x46, 0x71, 0xD3, 0x18, 0x0E, 0x91, 0xD3, 0x90, 0x0C, 0x08, 0xF2, 0x03, 0xA1, 0xB0, 0xC0, 0x42, 0x85, 0x40, 0xB5, 0x3D, 0x40, 0x91, 0xD3,
+ 0x18, 0x0E, 0xB1, 0xD3, 0x90, 0x0C, 0xA0, 0xB7, 0x8C, 0x46, 0x88, 0xC0, 0x42, 0x85, 0x08, 0xF2, 0x03, 0xA1, 0x04, 0xC0, 0x42, 0x85, 0x40, 0xB5, 0x3D, 0x40, 0x0A, 0xC0, 0x40, 0x85,
+ 0x40, 0xB5, 0x5D, 0x40, 0x7F, 0x85, 0x08, 0xF2, 0x2F, 0xA1, 0xB4, 0xFF, 0x80, 0x9A, 0xF1, 0xC1, 0x02, 0x0A, 0xF0, 0xC0, 0x00, 0x0A, 0x08, 0xF2, 0x39, 0xA2, 0x20, 0xB7, 0x8C, 0x48,
+ 0x01, 0xC0, 0x06, 0x0A, 0x24, 0x0A, 0x48, 0x70, 0x00, 0xC0, 0x02, 0x91, 0x86, 0x0D, 0x82, 0x09, 0x02, 0x0D, 0x06, 0x09, 0xB4, 0xFF, 0xA5, 0x9A, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7,
+ 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x20, 0xB7, 0x0C, 0x4A, 0x40, 0xB7, 0x04, 0x5A, 0x84, 0x08, 0x9C, 0x28, 0x53, 0xD1, 0x19, 0x69, 0x2D, 0x9E, 0x30, 0xC0, 0x4D, 0xAA,
+ 0x40, 0x2A, 0x00, 0x75, 0x54, 0x9D, 0x00, 0xC0, 0x22, 0x92, 0x54, 0xC0, 0x0F, 0x99, 0x80, 0xB7, 0x0C, 0x4A, 0x04, 0x0A, 0x1C, 0x2A, 0x53, 0xD1, 0x49, 0x69, 0x53, 0x9D, 0x50, 0xC2,
+ 0x85, 0xA8, 0xC0, 0x28, 0x40, 0x74, 0xFF, 0xFF, 0x64, 0x92, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x20, 0x84, 0x80, 0xB7, 0x0C, 0x4A,
+ 0xA0, 0xB7, 0x0C, 0x5A, 0x53, 0xD1, 0x49, 0x69, 0x40, 0xE3, 0x23, 0x81, 0x87, 0x06, 0x5F, 0xB5, 0x64, 0x7F, 0xF4, 0xFF, 0xCD, 0x9B, 0x40, 0xB7, 0x8C, 0x43, 0x71, 0xC0, 0xCE, 0x9C,
+ 0x10, 0xDA, 0xAD, 0xA8, 0x5F, 0xB7, 0x64, 0x7F, 0x40, 0xD8, 0xC1, 0xA0, 0x10, 0xDA, 0x25, 0xAA, 0x00, 0xD8, 0x45, 0xA2, 0x10, 0xDA, 0xA9, 0xA8, 0x40, 0xF0, 0xD9, 0xA0, 0x10, 0xF2,
+ 0x29, 0xAA, 0x00, 0xF0, 0x59, 0xA2, 0x10, 0xD2, 0xA1, 0xA8, 0x58, 0x74, 0x00, 0xC0, 0xF4, 0x91, 0x10, 0xF2, 0x2D, 0xAA, 0x50, 0xD2, 0xB1, 0xA8, 0xF0, 0xCF, 0x01, 0x2A, 0x42, 0x32,
+ 0x00, 0xF0, 0x45, 0xA2, 0x10, 0xF2, 0xB1, 0xA8, 0x00, 0xC0, 0xE0, 0x92, 0xCF, 0xC3, 0xCE, 0x08, 0xF2, 0xCC, 0xF4, 0x08, 0x10, 0xF3, 0x23, 0x8A, 0x43, 0x62, 0x00, 0xC2, 0x0B, 0x5A,
+ 0x04, 0x1A, 0x1C, 0x2A, 0x53, 0xD1, 0x49, 0x69, 0x20, 0xE3, 0xA3, 0x80, 0x80, 0xB7, 0xCD, 0x40, 0x00, 0xF0, 0x45, 0xA2, 0x20, 0xB7, 0x4D, 0x41, 0x00, 0xF0, 0xC9, 0xA0, 0x40, 0xF0,
+ 0x59, 0xAA, 0x80, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x82, 0x08, 0x01, 0xD0, 0x92, 0x18, 0x02, 0x85, 0x7F, 0x0A, 0x42, 0x42, 0x84, 0x28, 0x08, 0x2A, 0x98, 0x30, 0x00, 0xD0, 0xC1, 0xA0,
+ 0x20, 0xB7, 0x14, 0x4B, 0x00, 0xF0, 0x5F, 0xA1, 0x40, 0xF0, 0x43, 0xA1, 0x00, 0xF0, 0xC5, 0xA8, 0x4B, 0x9E, 0x00, 0xD0, 0x41, 0xAA, 0x40, 0xF0, 0x47, 0xA1, 0x40, 0xD8, 0x47, 0xA1,
+ 0xC2, 0x70, 0x40, 0x3A, 0x00, 0xD0, 0x41, 0xA2, 0x00, 0xC0, 0x02, 0x91, 0x40, 0xF0, 0x59, 0xAA, 0x04, 0xC0, 0x00, 0x3A, 0x40, 0xF0, 0x59, 0xA2, 0x20, 0xB7, 0x8C, 0x4B, 0x00, 0xF0,
+ 0x45, 0xAA, 0x48, 0x70, 0x00, 0xC0, 0x02, 0x91, 0x40, 0xF0, 0x59, 0xAA, 0x01, 0xC0, 0x08, 0x3A, 0x40, 0xF0, 0x59, 0xA2, 0x00, 0xF0, 0x49, 0xAA, 0x00, 0xCC, 0x00, 0x7D, 0x00, 0xC0,
+ 0x04, 0x91, 0x40, 0xF0, 0x59, 0xAA, 0x40, 0xC0, 0x00, 0x3A, 0x40, 0xF0, 0x59, 0xA2, 0x00, 0xF0, 0xC9, 0xA8, 0x03, 0x02, 0x01, 0xC0, 0x3C, 0x2A, 0x01, 0xC0, 0x04, 0x75, 0x00, 0xC0,
+ 0x84, 0x93, 0x00, 0xD0, 0x41, 0xAA, 0x08, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0xC2, 0x92, 0x40, 0xF0, 0x59, 0xAA, 0x40, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0xE2, 0x91, 0x40, 0xF0,
+ 0x59, 0xAA, 0x04, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x24, 0x91, 0x40, 0xF0, 0x59, 0xAA, 0x04, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x01, 0xC0, 0x44, 0x90, 0x01, 0xC0, 0xBC, 0x28, 0x01, 0xC0,
+ 0x42, 0x74, 0x01, 0xC0, 0x44, 0x90, 0x00, 0xD0, 0x41, 0xAA, 0x08, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x82, 0x93, 0x40, 0xF0, 0x59, 0xAA, 0x40, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0,
+ 0xA2, 0x92, 0x40, 0xF0, 0x59, 0xAA, 0x04, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0xE4, 0x91, 0x40, 0xF0, 0x59, 0xAA, 0x04, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x02, 0x91, 0x40, 0xF0,
+ 0x59, 0xAA, 0x20, 0xC0, 0x00, 0x3A, 0x40, 0xF0, 0x59, 0xA2, 0x00, 0xD0, 0x41, 0xAA, 0x08, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0xA2, 0x92, 0x00, 0xD8, 0x55, 0xAA, 0x3C, 0x2A, 0x08, 0x75,
+ 0x00, 0xC0, 0xE4, 0x91, 0x40, 0xF0, 0x59, 0xAA, 0x04, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x02, 0x91, 0x40, 0xF0, 0x59, 0xAA, 0x20, 0xC0, 0x00, 0x3A, 0x40, 0xF0, 0x59, 0xA2,
+ 0x71, 0xC0, 0xCE, 0x9C, 0x5F, 0xB5, 0x64, 0x7F, 0xB4, 0xFF, 0xA0, 0x9B, 0x80, 0xB7, 0x0C, 0x58, 0x5F, 0xB7, 0x64, 0x7F, 0x20, 0xB7, 0x94, 0x46, 0x08, 0xF2, 0x85, 0xA8, 0xCC, 0x9D,
+ 0x82, 0x09, 0x20, 0xB5, 0x4D, 0x44, 0x5F, 0xB5, 0x64, 0x7F, 0x34, 0xC0, 0xF9, 0x9A, 0x5F, 0xB7, 0x64, 0x7F, 0x00, 0xD0, 0x41, 0xAA, 0x12, 0xF0, 0xC4, 0x2A, 0x00, 0xC0, 0x22, 0x91,
+ 0xCC, 0x9D, 0xD4, 0xFF, 0x1F, 0x9A, 0x14, 0xC0, 0xE3, 0x99, 0x02, 0xC0, 0x40, 0x90, 0x40, 0xF0, 0x59, 0xAA, 0x10, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x02, 0x91, 0x40, 0xF0, 0x59, 0xAA,
+ 0x08, 0xC0, 0x00, 0x3A, 0x40, 0xF0, 0x59, 0xA2, 0xCF, 0xC3, 0xCE, 0x08, 0xF2, 0xCC, 0xF4, 0x08, 0x10, 0xF3, 0x23, 0x8A, 0x43, 0x62, 0x00, 0xC2, 0x0B, 0x5A, 0x04, 0x1A, 0x1C, 0x2A,
+ 0x53, 0xD1, 0x49, 0x69, 0x00, 0xD8, 0xD6, 0xA8, 0x10, 0xF3, 0x23, 0x80, 0x08, 0xDA, 0x95, 0xA8, 0xBC, 0x2C, 0x4C, 0x9E, 0xBC, 0x28, 0x02, 0x71, 0x00, 0xC0, 0xC2, 0x92, 0xCC, 0x9D,
+ 0x01, 0xC1, 0x82, 0x09, 0x5F, 0xB5, 0x64, 0x7F, 0xB4, 0xFF, 0xEC, 0x9B, 0x69, 0x9E, 0x71, 0xC0, 0xCD, 0x9C, 0x5F, 0xB7, 0x64, 0x7F, 0x40, 0xF0, 0x59, 0xAA, 0x41, 0xC0, 0x00, 0x3A,
+ 0x40, 0xF0, 0x59, 0xA2, 0x71, 0xC0, 0xCD, 0x9C, 0xCC, 0x9D, 0x01, 0xC2, 0x82, 0x09, 0x5F, 0xB5, 0x64, 0x7F, 0xB4, 0xFF, 0xD8, 0x9B, 0x5F, 0xB7, 0x64, 0x7F, 0x80, 0xB7, 0x0C, 0x4A,
+ 0x00, 0xF0, 0xC5, 0xA8, 0x04, 0x0A, 0x1C, 0x2A, 0x80, 0xB5, 0x0C, 0x4A, 0x20, 0xB5, 0x0C, 0x4B, 0x20, 0xB5, 0x8C, 0x4B, 0x9F, 0xB7, 0xEE, 0x7E, 0xBF, 0xB7, 0x6E, 0x7F, 0x60, 0x8C,
+ 0x22, 0x9C, 0x05, 0xA6, 0x20, 0xB7, 0x0C, 0x4A, 0x20, 0xB7, 0x14, 0x5A, 0x5D, 0x9E, 0x53, 0xD1, 0x19, 0x69, 0x48, 0xD2, 0x31, 0xAA, 0x20, 0xF2, 0xAB, 0x80, 0x10, 0xF2, 0x25, 0xA2,
+ 0xF4, 0xFF, 0x5F, 0x9A, 0x40, 0xB7, 0x94, 0x43, 0x72, 0xC0, 0xCE, 0x9C, 0x12, 0x85, 0x10, 0xD2, 0x23, 0xA1, 0x10, 0xD2, 0x21, 0xAA, 0x40, 0x3A, 0x10, 0xD2, 0x21, 0xA2, 0x08, 0xDA,
+ 0xA5, 0xA8, 0x10, 0xDA, 0xA5, 0xA0, 0x08, 0xDA, 0x29, 0xAA, 0x50, 0xF2, 0x39, 0xA2, 0x08, 0xF2, 0x2D, 0xA9, 0x48, 0xD2, 0x31, 0xAA, 0xF0, 0xCF, 0x01, 0x29, 0x28, 0x31, 0x10, 0xF2,
+ 0x25, 0xA1, 0x08, 0xF2, 0x29, 0xAA, 0x10, 0xF2, 0x29, 0xA2, 0x48, 0xDA, 0xA5, 0xA8, 0x10, 0xF2, 0xB1, 0xA0, 0x48, 0xDA, 0x21, 0xAA, 0x10, 0xF2, 0x35, 0xA2, 0x08, 0xF2, 0xB5, 0xA8,
+ 0x10, 0xF2, 0xB9, 0xA0, 0x08, 0xF2, 0x39, 0xAA, 0x10, 0xF2, 0x3D, 0xA2, 0x08, 0xF2, 0xBD, 0xA8, 0x50, 0xF2, 0xA1, 0xA0, 0x48, 0xF2, 0x29, 0xAA, 0x50, 0xF2, 0x2D, 0xA2, 0x48, 0xF2,
+ 0xA1, 0xA8, 0x20, 0xB7, 0x14, 0x4B, 0x50, 0xF2, 0xA5, 0xA0, 0x48, 0xF2, 0x25, 0xAA, 0x49, 0x9E, 0x44, 0x70, 0x50, 0xF2, 0x29, 0xA2, 0x00, 0xC0, 0x02, 0x91, 0x50, 0xF2, 0x39, 0xAA,
+ 0x04, 0xC0, 0x00, 0x3A, 0x50, 0xF2, 0x39, 0xA2, 0x72, 0xC0, 0xCE, 0x9C, 0xB4, 0xFF, 0xCC, 0x9A, 0x20, 0xB7, 0x0C, 0x58, 0x20, 0xB7, 0x94, 0x46, 0x80, 0xB7, 0xAD, 0x40, 0x8B, 0x05,
+ 0x01, 0xC8, 0x82, 0x09, 0x80, 0xB5, 0x4D, 0x44, 0xB4, 0xFF, 0x56, 0x9B, 0x10, 0xF2, 0xA5, 0xA8, 0x80, 0xB7, 0x0C, 0x4A, 0x20, 0xB5, 0x0C, 0x4B, 0x04, 0x0A, 0x1C, 0x2A, 0x80, 0xB5,
+ 0x0C, 0x4A, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x9D, 0x9E, 0xF1, 0xD3, 0xBE, 0x2E, 0x14, 0xC0, 0x69, 0x99, 0x10, 0xC0, 0x42, 0x75,
+ 0x00, 0xC0, 0x02, 0x91, 0x10, 0xC0, 0x44, 0x75, 0x00, 0xC0, 0x22, 0x91, 0x00, 0xC0, 0x40, 0x91, 0x8B, 0x05, 0xF4, 0xFF, 0x04, 0x9A, 0x00, 0xC0, 0xA0, 0x90, 0x8B, 0x05, 0xF4, 0xFF,
+ 0x6C, 0x9B, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x0D, 0xA6, 0x83, 0xB7, 0x88, 0x74, 0x1C, 0xC0, 0x3E, 0x7D, 0x5D, 0x9E, 0x00, 0xC0, 0x42, 0x91,
+ 0x34, 0xC0, 0xE9, 0x9A, 0x83, 0xB7, 0x88, 0x74, 0x1C, 0xC0, 0x3E, 0x7D, 0xFF, 0xFF, 0x44, 0x93, 0x01, 0xC9, 0x80, 0x9C, 0x88, 0xF2, 0x25, 0xA2, 0xA0, 0xB5, 0x8C, 0x49, 0xAB, 0x9E,
+ 0x86, 0x09, 0x34, 0xC0, 0xE0, 0x99, 0x06, 0x85, 0x43, 0xB5, 0x98, 0x74, 0x02, 0x85, 0x73, 0xC0, 0xCE, 0x9C, 0x48, 0xF2, 0x39, 0xAA, 0x03, 0xC0, 0x00, 0x3A, 0x48, 0xF2, 0x39, 0xA2,
+ 0x73, 0xC0, 0xCE, 0x9C, 0x48, 0xF2, 0x39, 0xAA, 0x04, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x22, 0x92, 0x20, 0xB7, 0x94, 0x46, 0x20, 0xB7, 0x4D, 0x40, 0xFD, 0xCF, 0xFE, 0x28,
+ 0x03, 0x02, 0x03, 0xC0, 0x00, 0x3A, 0x80, 0xB5, 0x4D, 0x40, 0x40, 0xB7, 0x4D, 0x40, 0x20, 0xB5, 0x4D, 0x40, 0xC0, 0xB7, 0x0C, 0x45, 0x02, 0x85, 0x08, 0xF2, 0x57, 0xA1, 0x08, 0xD2,
+ 0x21, 0xAA, 0x12, 0xF0, 0xC2, 0x2A, 0x00, 0xC0, 0xC2, 0x92, 0x80, 0xB7, 0x88, 0x45, 0x1C, 0xC0, 0x3E, 0x7D, 0x00, 0xC0, 0x62, 0x91, 0x09, 0xC8, 0xC2, 0x0D, 0x2A, 0xC2, 0x80, 0x0D,
+ 0x8B, 0x01, 0x34, 0xC0, 0x67, 0x9A, 0x02, 0xC0, 0x00, 0x93, 0xAB, 0x9E, 0xD4, 0xFF, 0xD0, 0x98, 0x02, 0xC0, 0x60, 0x92, 0x48, 0xF2, 0x39, 0xAA, 0x04, 0xC0, 0x00, 0x2A, 0x00, 0x75,
+ 0x00, 0xC0, 0xA2, 0x93, 0x80, 0xB7, 0x0C, 0x47, 0x12, 0xD2, 0xC0, 0x08, 0x42, 0x85, 0x40, 0xB5, 0x5D, 0x40, 0x92, 0xD2, 0xC0, 0x08, 0x51, 0xD2, 0xC0, 0x08, 0x40, 0xB5, 0x3D, 0x40,
+ 0x40, 0xB5, 0x5D, 0x40, 0x12, 0xD3, 0xC0, 0x08, 0xD1, 0xD2, 0xC0, 0x08, 0x40, 0xB5, 0x3D, 0x40, 0x0C, 0xC0, 0x40, 0x0A, 0x40, 0xB5, 0x5D, 0x40, 0x08, 0xF2, 0x03, 0xA1, 0x48, 0xF2,
+ 0x39, 0xAA, 0x04, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x42, 0x92, 0x80, 0xB7, 0x8C, 0x47, 0x2C, 0xC0, 0x60, 0x0A, 0x29, 0xF2, 0x86, 0xA2, 0x29, 0xF2, 0x86, 0xA2, 0x29, 0xF2,
+ 0x86, 0xA2, 0x29, 0xF2, 0x86, 0xA2, 0x29, 0xF2, 0x8E, 0xA2, 0x08, 0xF2, 0x82, 0xA2, 0x14, 0xC0, 0x71, 0x98, 0x08, 0xD2, 0x21, 0xAA, 0x08, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x82, 0x90,
+ 0x48, 0xF2, 0xD6, 0xA2, 0x20, 0xB7, 0x94, 0x47, 0x20, 0xB7, 0x8C, 0x46, 0x80, 0xB7, 0xAD, 0x45, 0x40, 0x2A, 0x00, 0x75, 0xFF, 0xFF, 0x82, 0x93, 0x71, 0xD2, 0x10, 0x0E, 0x08, 0xF2,
+ 0x81, 0xA8, 0x02, 0x85, 0x73, 0xC0, 0xCE, 0x9C, 0x48, 0xF2, 0x39, 0xAA, 0x05, 0xC0, 0x00, 0x3A, 0x48, 0xF2, 0x39, 0xA2, 0x73, 0xC0, 0xCE, 0x9C, 0x06, 0x08, 0x9F, 0xB7, 0xEE, 0x7E,
+ 0xBF, 0xB7, 0x6E, 0x7F, 0xDF, 0xB7, 0xEE, 0x7F, 0x60, 0x8C, 0x22, 0x9C, 0x39, 0xF8, 0x05, 0xA2, 0x20, 0xB7, 0x0C, 0x5A, 0x89, 0x9E, 0x03, 0x01, 0x24, 0xC0, 0xB0, 0x0C, 0x08, 0xD0,
+ 0x41, 0xAA, 0x40, 0x2A, 0x00, 0x75, 0x04, 0xC0, 0xD0, 0x08, 0x00, 0xC0, 0xC2, 0x90, 0x06, 0x08, 0xF8, 0xF9, 0x1D, 0xAA, 0x22, 0x9C, 0x4C, 0x9E, 0x48, 0x70, 0x04, 0xC0, 0x50, 0x09,
+ 0xFF, 0xFF, 0x14, 0x92, 0x80, 0xB7, 0x0C, 0x49, 0x02, 0x75, 0x00, 0xC0, 0x84, 0x91, 0x80, 0xB7, 0x0C, 0x58, 0x20, 0xB7, 0x94, 0x46, 0x08, 0xF2, 0x81, 0xA8, 0x20, 0xB5, 0x4D, 0x44,
+ 0x14, 0xC0, 0x87, 0x98, 0x02, 0x08, 0xF8, 0xF9, 0x1D, 0xAA, 0x22, 0x9C, 0x40, 0xB7, 0x8C, 0x46, 0x02, 0x85, 0xC8, 0xF0, 0x4B, 0xA1, 0x80, 0xB7, 0x0C, 0x4C, 0x20, 0xB7, 0x94, 0x41,
+ 0xC8, 0xF0, 0x4D, 0xA2, 0x20, 0xB7, 0x4D, 0x45, 0xA0, 0x28, 0x40, 0x74, 0x00, 0xC0, 0xC4, 0x90, 0x01, 0xC0, 0x06, 0x85, 0x10, 0xC0, 0x5C, 0x85, 0xC8, 0xF0, 0x47, 0xA1, 0x22, 0x9C,
+ 0x40, 0xB7, 0x8C, 0x46, 0x02, 0x85, 0xC8, 0xF0, 0x57, 0xA1, 0x80, 0xB7, 0x8C, 0x4C, 0x20, 0xB7, 0x94, 0x41, 0xC8, 0xF0, 0x59, 0xA2, 0x20, 0xB7, 0x4D, 0x45, 0xA0, 0x28, 0x40, 0x74,
+ 0x00, 0xC0, 0xC4, 0x90, 0x01, 0xC0, 0x06, 0x85, 0x1C, 0xC0, 0x5C, 0x85, 0xC8, 0xF0, 0x53, 0xA1, 0x22, 0x9C, 0x80, 0xB7, 0x8C, 0x4E, 0x00, 0x75, 0x00, 0xC0, 0xC2, 0x91, 0x80, 0xB7,
+ 0x8C, 0x4E, 0x04, 0x1A, 0x80, 0xB5, 0x8C, 0x4E, 0x20, 0xB7, 0x8C, 0x4E, 0x40, 0x74, 0x00, 0xC0, 0x84, 0x90, 0x06, 0x08, 0x22, 0x9C, 0x80, 0xB7, 0x0C, 0x4F, 0x00, 0x75, 0x00, 0xC0,
+ 0xC2, 0x91, 0x80, 0xB7, 0x0C, 0x4F, 0x04, 0x1A, 0x80, 0xB5, 0x0C, 0x4F, 0x20, 0xB7, 0x0C, 0x4F, 0x40, 0x74, 0x00, 0xC0, 0x84, 0x90, 0x12, 0x08, 0x22, 0x9C, 0x80, 0xB7, 0x8C, 0x4F,
+ 0x10, 0xCB, 0x81, 0x9C, 0x02, 0x08, 0x22, 0x9C, 0x02, 0x85, 0x73, 0xC0, 0xCE, 0x9C, 0x10, 0xF0, 0xE1, 0xA1, 0x73, 0xC0, 0xCE, 0x9C, 0x22, 0x9C, 0x39, 0xF8, 0x05, 0xA2, 0x80, 0xB7,
+ 0x8C, 0x41, 0x02, 0x85, 0x08, 0xF2, 0x03, 0xA1, 0x04, 0x85, 0x40, 0xB5, 0x1C, 0x49, 0x80, 0xB7, 0x8C, 0x4F, 0x10, 0xCB, 0x81, 0x9C, 0x60, 0xB7, 0x94, 0x59, 0x60, 0xB7, 0x0C, 0x4E,
+ 0xF4, 0xFF, 0xE6, 0x9B, 0x20, 0xB7, 0x8C, 0x44, 0x20, 0xC0, 0xA0, 0x08, 0x80, 0xB7, 0x2D, 0x40, 0x01, 0xC0, 0x04, 0x3A, 0x80, 0xB5, 0x2D, 0x40, 0xF8, 0xF9, 0x1D, 0xAA, 0x22, 0x9C,
+ 0x20, 0xB7, 0x8C, 0x41, 0x06, 0x85, 0x40, 0xB5, 0x3D, 0x40, 0x04, 0x8D, 0x40, 0xB5, 0x1C, 0x4F, 0x80, 0xB7, 0x2D, 0x45, 0x00, 0xC4, 0x00, 0x2A, 0x00, 0x75, 0x40, 0xB5, 0x1C, 0x49,
+ 0x40, 0xB3, 0xA4, 0x48, 0x80, 0xB7, 0x8C, 0x44, 0x20, 0xC0, 0x20, 0x0A, 0x08, 0xF2, 0x81, 0xA8, 0x08, 0xF2, 0x81, 0xA0, 0x22, 0x9C, 0x05, 0xA6, 0x20, 0xB7, 0x88, 0x45, 0x87, 0x06,
+ 0x6C, 0x9E, 0x01, 0xC2, 0x00, 0x2A, 0x00, 0x75, 0x84, 0x08, 0x20, 0xB5, 0x88, 0x45, 0x00, 0xC0, 0x42, 0x91, 0x6C, 0x9E, 0x01, 0xC0, 0x5C, 0x7F, 0xFF, 0xCD, 0x7E, 0x2A, 0xA5, 0x9E,
+ 0x35, 0xB3, 0x42, 0x48, 0x09, 0xC2, 0x06, 0x0A, 0x02, 0xC1, 0x38, 0x0A, 0x69, 0x9E, 0x48, 0x78, 0x00, 0xC0, 0x82, 0x92, 0xFE, 0xCE, 0x49, 0x0A, 0x48, 0x78, 0x00, 0xC0, 0x02, 0x91,
+ 0x6B, 0x9E, 0x9A, 0x0D, 0x14, 0xC0, 0xBC, 0x9B, 0x00, 0xC0, 0xC0, 0x90, 0x6B, 0x9E, 0x96, 0x0D, 0x14, 0xC0, 0xB6, 0x9B, 0xF9, 0x2E, 0x00, 0xC0, 0x00, 0x91, 0x60, 0xB7, 0x94, 0x59,
+ 0x60, 0xB7, 0x0C, 0x4E, 0xF4, 0xFF, 0x8A, 0x9B, 0x11, 0xD0, 0x52, 0x2E, 0x00, 0x75, 0x00, 0xC0, 0x82, 0x90, 0x14, 0xC0, 0x1B, 0x99, 0x11, 0xD1, 0x50, 0x2E, 0x00, 0x75, 0x00, 0xC0,
+ 0xA2, 0x90, 0x8B, 0x05, 0x14, 0xC0, 0xB7, 0x99, 0x6C, 0x9E, 0x01, 0xC0, 0x10, 0x2A, 0x00, 0x75, 0x8B, 0x04, 0x01, 0xC0, 0xA8, 0x2C, 0x06, 0xC0, 0x42, 0x92, 0xA0, 0xB7, 0x8C, 0x49,
+ 0x40, 0x75, 0x00, 0xC0, 0x64, 0x91, 0x49, 0xC0, 0x02, 0x0A, 0xFC, 0xC2, 0x60, 0x0A, 0x06, 0xC0, 0x66, 0x85, 0x08, 0xF2, 0x03, 0xA1, 0x00, 0x9F, 0x80, 0xB7, 0x0C, 0x45, 0x88, 0xF2,
+ 0x8A, 0xA8, 0x48, 0xF2, 0xB9, 0xA8, 0x02, 0xC0, 0x80, 0x28, 0x40, 0x74, 0x08, 0xDA, 0xBE, 0xA0, 0x00, 0xC0, 0xA2, 0x90, 0x8B, 0x05, 0x14, 0xC0, 0xE2, 0x9A, 0x01, 0xC9, 0x80, 0x9C,
+ 0x88, 0xF2, 0x29, 0xA2, 0x48, 0xF2, 0xB9, 0xA8, 0x01, 0xC2, 0x80, 0x38, 0x48, 0xF2, 0xB9, 0xA0, 0x08, 0xD2, 0x21, 0xAA, 0x10, 0x2A, 0x00, 0x75, 0x04, 0xC0, 0xA4, 0x91, 0x40, 0xB7,
+ 0x9C, 0x49, 0x40, 0xB7, 0x04, 0x5A, 0xCF, 0xC3, 0x4E, 0x0A, 0xF2, 0xCC, 0x74, 0x0A, 0x10, 0xE0, 0xA5, 0x88, 0x99, 0x60, 0x8B, 0x58, 0x84, 0x08, 0x9C, 0x28, 0x53, 0xD1, 0x19, 0x69,
+ 0x2D, 0x9E, 0x38, 0xC0, 0x4D, 0xAA, 0x40, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x64, 0x91, 0x48, 0xF2, 0xB9, 0xA8, 0x01, 0xC0, 0x12, 0x0A, 0x08, 0xC0, 0x00, 0x0A, 0x48, 0x78, 0x01, 0xC0,
+ 0xE2, 0x90, 0x58, 0xF0, 0x59, 0xAA, 0x04, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x62, 0x91, 0x48, 0xF2, 0xB9, 0xA8, 0x01, 0xC0, 0x12, 0x0A, 0x08, 0xC0, 0x00, 0x0A, 0x48, 0x78,
+ 0x00, 0xC0, 0xE2, 0x92, 0x18, 0xD0, 0x41, 0xAA, 0x40, 0x2A, 0x00, 0x75, 0x02, 0xC0, 0x02, 0x90, 0x18, 0xD0, 0x41, 0xAA, 0x10, 0x2A, 0x00, 0x75, 0x01, 0xC0, 0x42, 0x93, 0x48, 0xF2,
+ 0xB9, 0xA8, 0x01, 0xC0, 0x12, 0x0A, 0x08, 0xC0, 0x00, 0x0A, 0x48, 0x78, 0x01, 0xC0, 0x24, 0x92, 0x18, 0xD0, 0x41, 0xAA, 0x48, 0xF2, 0xB9, 0xA8, 0x08, 0xC0, 0x80, 0x38, 0x48, 0xF2,
+ 0xB9, 0xA0, 0xAB, 0x9E, 0xB4, 0xFF, 0xFA, 0x99, 0x08, 0xDA, 0x35, 0xAA, 0x3C, 0x2A, 0x02, 0x75, 0x01, 0xC0, 0xE4, 0x92, 0x48, 0xF2, 0x39, 0xAA, 0x10, 0x2A, 0x00, 0x75, 0x01, 0xC0,
+ 0x24, 0x92, 0x48, 0xF2, 0x39, 0xAA, 0x40, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x01, 0xC0, 0x42, 0x91, 0x08, 0xD2, 0x21, 0xAA, 0x08, 0x2A, 0x00, 0x75, 0x01, 0xC0, 0x82, 0x90, 0xAB, 0x9E,
+ 0x34, 0xC0, 0x29, 0x99, 0x48, 0xF2, 0x39, 0xAA, 0x01, 0xC8, 0x00, 0x3A, 0x48, 0xF2, 0x39, 0xA2, 0x00, 0xC0, 0x20, 0x93, 0x48, 0xF2, 0xB9, 0xA8, 0x01, 0xC0, 0x12, 0x0A, 0x08, 0xC0,
+ 0x00, 0x0A, 0x00, 0xE0, 0x18, 0x22, 0x00, 0xC0, 0xE4, 0x91, 0x20, 0xB7, 0x8C, 0x46, 0x80, 0xB5, 0x2D, 0x4E, 0x48, 0xF2, 0x39, 0xAA, 0x11, 0xC0, 0x00, 0x3A, 0x48, 0xF2, 0x39, 0xA2,
+ 0xAB, 0x9E, 0xB4, 0xFF, 0xE3, 0x98, 0x08, 0xD2, 0x21, 0xAA, 0x04, 0x2A, 0x00, 0x75, 0x8B, 0x04, 0x01, 0xC0, 0xA8, 0x2C, 0x00, 0xC0, 0x02, 0x92, 0x20, 0xB7, 0x8C, 0x46, 0x80, 0xB7,
+ 0xAD, 0x45, 0x40, 0x2A, 0x00, 0x75, 0xFF, 0xFF, 0x82, 0x93, 0x80, 0xB7, 0x8C, 0x47, 0x08, 0xC0, 0x60, 0x0A, 0x08, 0xF2, 0x81, 0xA8, 0x40, 0x76, 0x01, 0xC0, 0x82, 0x91, 0xA0, 0xB7,
+ 0x8C, 0x49, 0x40, 0x75, 0x00, 0xC0, 0x64, 0x91, 0x49, 0xC0, 0x02, 0x0A, 0xFC, 0xC2, 0x60, 0x0A, 0x0E, 0xC0, 0x4A, 0x85, 0x08, 0xF2, 0x03, 0xA1, 0x00, 0x9F, 0x80, 0xB7, 0x8C, 0x46,
+ 0x20, 0xB7, 0x94, 0x45, 0x02, 0x85, 0xC8, 0xF2, 0x13, 0xA1, 0x20, 0xB7, 0xCD, 0x42, 0x40, 0xB7, 0x1C, 0x50, 0x48, 0xF2, 0x39, 0xAA, 0x10, 0xE2, 0xA3, 0x80, 0x02, 0xC0, 0x00, 0x2A,
+ 0x00, 0x75, 0x20, 0xB5, 0x0C, 0x50, 0x00, 0xC0, 0xA2, 0x90, 0x8B, 0x05, 0x14, 0xC0, 0x06, 0x9A, 0xAB, 0x9E, 0xB4, 0xFF, 0x9F, 0x98, 0x80, 0xB7, 0x88, 0x45, 0x04, 0x1A, 0x80, 0xB5,
+ 0x88, 0x45, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0xA0, 0xB7, 0x8C, 0x7C, 0x01, 0xC9, 0x80, 0x9C, 0x88, 0xF2, 0x21, 0xA2, 0x20, 0xB7,
+ 0x8C, 0x47, 0x0A, 0xC0, 0xB0, 0x08, 0x20, 0xB7, 0x35, 0x40, 0x48, 0xDA, 0x2D, 0xAA, 0xA2, 0xD0, 0xC1, 0x5C, 0x00, 0xC2, 0x40, 0x5A, 0x00, 0xC2, 0x41, 0x5A, 0x48, 0x70, 0x00, 0xC0,
+ 0x02, 0x91, 0x48, 0xF2, 0x39, 0xAA, 0x01, 0xC4, 0x00, 0x3A, 0x48, 0xF2, 0x39, 0xA2, 0x48, 0xDA, 0xA5, 0xA0, 0x48, 0xF2, 0x39, 0xAA, 0x20, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x04, 0x93,
+ 0x48, 0xDA, 0x29, 0xAA, 0x00, 0xC2, 0x40, 0x5A, 0x00, 0xC2, 0x41, 0x5A, 0x48, 0x70, 0x00, 0xC0, 0xE4, 0x91, 0x48, 0xF2, 0x39, 0xAA, 0x01, 0xC0, 0x10, 0x3A, 0x48, 0xF2, 0x39, 0xA2,
+ 0x48, 0xF2, 0xB9, 0xA8, 0x90, 0x38, 0x48, 0xF2, 0xB9, 0xA0, 0xB4, 0xFF, 0x38, 0x98, 0x94, 0xFF, 0x83, 0x9B, 0x80, 0xB7, 0x88, 0x44, 0xF1, 0xF3, 0xCE, 0x28, 0x02, 0xC0, 0x84, 0x93,
+ 0x80, 0xB7, 0x8C, 0x46, 0x86, 0x0D, 0xC8, 0xF2, 0x85, 0xA0, 0x94, 0xFF, 0x69, 0x99, 0x94, 0xFF, 0x7E, 0x99, 0x94, 0xFF, 0x5D, 0x99, 0x08, 0xD2, 0x21, 0xAA, 0x08, 0x2A, 0x00, 0x75,
+ 0x02, 0xC0, 0xC2, 0x90, 0x08, 0xF2, 0x29, 0xAA, 0x01, 0xC0, 0x3C, 0x2A, 0x01, 0xC0, 0x04, 0x75, 0x00, 0xC0, 0x42, 0x91, 0x08, 0xF2, 0x29, 0xAA, 0x01, 0xC0, 0x3C, 0x2A, 0x01, 0xC0,
+ 0x08, 0x75, 0x01, 0xC0, 0xC4, 0x92, 0x40, 0xB7, 0x9C, 0x7C, 0x40, 0xB7, 0x04, 0x5A, 0xCF, 0xC3, 0x4E, 0x0A, 0xF2, 0xCC, 0x74, 0x0A, 0x10, 0xE0, 0xA5, 0x88, 0x99, 0x60, 0x8B, 0x58,
+ 0x84, 0x08, 0x9C, 0x28, 0x53, 0xD1, 0x19, 0x69, 0x2D, 0x9E, 0x38, 0xC0, 0x4D, 0xAA, 0x40, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x22, 0x91, 0x58, 0xF0, 0x59, 0xAA, 0x04, 0xC0, 0x00, 0x2A,
+ 0x00, 0x75, 0x00, 0xC0, 0x02, 0x93, 0x08, 0xF2, 0x29, 0xAA, 0x01, 0xC0, 0x3C, 0x2A, 0x01, 0xC0, 0x08, 0x75, 0x00, 0xC0, 0x64, 0x91, 0x09, 0xC8, 0xC2, 0x0D, 0x88, 0xC5, 0xA0, 0x0D,
+ 0x8B, 0x01, 0x14, 0xC0, 0x4C, 0x9B, 0x00, 0xC0, 0x80, 0x91, 0xAB, 0x9E, 0x34, 0xC0, 0xD9, 0x99, 0x00, 0xC0, 0xE0, 0x90, 0x83, 0xB7, 0x08, 0x74, 0x04, 0x1A, 0x83, 0xB5, 0x08, 0x74,
+ 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x39, 0xF8, 0x05, 0xA2, 0x40, 0xB7, 0x8C, 0x46, 0x85, 0x00, 0x80, 0xB7, 0xAD, 0x45, 0x40, 0x2A, 0x00, 0x75,
+ 0xFF, 0xFF, 0x82, 0x93, 0x80, 0xB7, 0x8C, 0x47, 0x71, 0xD2, 0xC0, 0x08, 0x20, 0xB7, 0x35, 0x40, 0xA2, 0x9E, 0x85, 0x00, 0x80, 0xB7, 0xAD, 0x45, 0x40, 0x2A, 0x00, 0x75, 0xFF, 0xFF,
+ 0x82, 0x93, 0x71, 0xD2, 0x20, 0x0E, 0x08, 0xF2, 0x82, 0xA8, 0x85, 0x00, 0x80, 0xB7, 0xAD, 0x45, 0x40, 0x2A, 0x00, 0x75, 0xFF, 0xFF, 0x82, 0x93, 0x71, 0xD2, 0x20, 0x0E, 0x08, 0xF2,
+ 0x81, 0xA8, 0x85, 0x00, 0x80, 0xB7, 0xAD, 0x45, 0x40, 0x2A, 0x00, 0x75, 0xFF, 0xFF, 0x82, 0x93, 0x71, 0xD2, 0x20, 0x0E, 0x08, 0xF2, 0x03, 0xA9, 0x01, 0xC2, 0x40, 0x76, 0x01, 0xC0,
+ 0x62, 0x90, 0x00, 0xC0, 0xB2, 0x91, 0x01, 0xC0, 0x44, 0x76, 0x06, 0xC0, 0xA2, 0x90, 0x01, 0xC0, 0x60, 0x76, 0x01, 0xC0, 0x82, 0x90, 0xF8, 0xF9, 0x1D, 0xAA, 0x22, 0x9C, 0x01, 0xC8,
+ 0x40, 0x76, 0x01, 0xC0, 0x22, 0x92, 0x00, 0xC0, 0x32, 0x91, 0x01, 0xC4, 0x40, 0x76, 0x03, 0xC0, 0x22, 0x92, 0xF8, 0xF9, 0x1D, 0xAA, 0x22, 0x9C, 0x01, 0xD0, 0x40, 0x76, 0x02, 0xC0,
+ 0x22, 0x91, 0xF8, 0xF9, 0x1D, 0xAA, 0x22, 0x9C, 0x83, 0xB7, 0x88, 0x74, 0x1C, 0xC0, 0x3E, 0x7D, 0x04, 0xC0, 0xC4, 0x93, 0xCF, 0x9D, 0xF8, 0xF9, 0x1D, 0xAA, 0x8B, 0xFF, 0x40, 0x91,
+ 0xCF, 0x9D, 0x94, 0xFF, 0xEE, 0x99, 0x20, 0xB7, 0x8C, 0x46, 0x80, 0xB7, 0xAD, 0x45, 0x40, 0x2A, 0x00, 0x75, 0xFF, 0xFF, 0x82, 0x93, 0x80, 0xB7, 0x8C, 0x47, 0x08, 0xC0, 0x60, 0x0A,
+ 0x08, 0xF2, 0x81, 0xA8, 0xF8, 0xF9, 0x1D, 0xAA, 0x22, 0x9C, 0x58, 0xF0, 0x59, 0xAA, 0x20, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x42, 0x92, 0x18, 0xD8, 0x55, 0xAA, 0x3C, 0x2A,
+ 0x04, 0x75, 0x00, 0xC0, 0xE4, 0x90, 0xCF, 0x9D, 0xF8, 0xF9, 0x1D, 0xAA, 0x2C, 0xC0, 0x00, 0x93, 0xCF, 0x9D, 0xF8, 0xF9, 0x1D, 0xAA, 0x20, 0xC0, 0x40, 0x92, 0x85, 0x00, 0x80, 0xB7,
+ 0xAD, 0x45, 0x40, 0x2A, 0x00, 0x75, 0xFF, 0xFF, 0x82, 0x93, 0x71, 0xD2, 0x20, 0x0E, 0x08, 0xF2, 0x81, 0xA8, 0xF8, 0xF9, 0x1D, 0xAA, 0x22, 0x9C, 0x20, 0xB7, 0x8C, 0x41, 0x80, 0xB7,
+ 0x2D, 0x45, 0x01, 0xC0, 0x08, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x64, 0x91, 0x09, 0xC8, 0xC2, 0x0D, 0x92, 0xC7, 0x80, 0x0D, 0x4F, 0x9D, 0xF8, 0xF9, 0x1D, 0xAA, 0x14, 0xC0, 0x80, 0x91,
+ 0x83, 0xB7, 0x88, 0x74, 0x1C, 0xC0, 0x3E, 0x7D, 0x09, 0xC8, 0xC2, 0x0D, 0x18, 0xC6, 0x80, 0x0D, 0xFF, 0xFF, 0x64, 0x92, 0xCF, 0x9D, 0xF8, 0xF9, 0x1D, 0xAA, 0x25, 0xC0, 0x60, 0x90,
+ 0x40, 0xB7, 0x0C, 0x5A, 0xCF, 0xC3, 0xCE, 0x0C, 0xF2, 0xCC, 0xF4, 0x0C, 0x49, 0x9E, 0x10, 0xF2, 0x25, 0x88, 0x43, 0x62, 0x58, 0xF0, 0xD9, 0xA8, 0x00, 0xC2, 0x0B, 0x5A, 0x04, 0x1A,
+ 0x1C, 0x2A, 0x54, 0xD1, 0x49, 0x69, 0x84, 0x28, 0x40, 0x74, 0x10, 0xF2, 0x25, 0x82, 0x00, 0xC0, 0x04, 0x93, 0x48, 0xF2, 0x99, 0xA8, 0x01, 0xC0, 0x12, 0x0A, 0x08, 0xC0, 0x00, 0x0A,
+ 0x48, 0x78, 0x00, 0xC0, 0xE2, 0x91, 0x58, 0xF0, 0x59, 0xAA, 0x40, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x02, 0x91, 0x58, 0xF0, 0x59, 0xAA, 0x20, 0xC0, 0x00, 0x3A, 0x58, 0xF0,
+ 0x59, 0xA2, 0x83, 0xB7, 0x88, 0x74, 0x1C, 0xC0, 0x3E, 0x7D, 0x09, 0xC8, 0xC2, 0x0D, 0xDE, 0xC3, 0xF0, 0x0D, 0xFD, 0xFF, 0xC4, 0x92, 0xCF, 0x9D, 0xF8, 0xF9, 0x1D, 0xAA, 0xDC, 0xFF,
+ 0xA0, 0x90, 0x09, 0xC8, 0xC2, 0x0D, 0x32, 0xC1, 0xD0, 0x0D, 0xFD, 0xFF, 0x60, 0x91, 0x58, 0xD8, 0xC6, 0xA9, 0x58, 0xD8, 0xCD, 0xA9, 0x94, 0xFF, 0xCB, 0x9B, 0x20, 0xB7, 0x8C, 0x46,
+ 0x80, 0xB7, 0xAD, 0x45, 0x40, 0x2A, 0x00, 0x75, 0xFF, 0xFF, 0x82, 0x93, 0xFB, 0xFF, 0x00, 0x90, 0x05, 0xA6, 0x20, 0x84, 0x80, 0xB7, 0x0C, 0x4A, 0x11, 0xD0, 0xC2, 0x08, 0x11, 0xD0,
+ 0x9E, 0x2A, 0x1C, 0x2A, 0x48, 0x71, 0x01, 0xC0, 0x42, 0x92, 0x53, 0xD1, 0x59, 0x69, 0x40, 0xB7, 0x04, 0x5A, 0x2E, 0x9E, 0x38, 0xC0, 0x41, 0xAA, 0x40, 0x2A, 0x00, 0x75, 0x00, 0xC0,
+ 0xA2, 0x93, 0x40, 0xF0, 0x59, 0xAA, 0x02, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0xC2, 0x92, 0x22, 0x85, 0x5F, 0xB5, 0x78, 0x7C, 0x40, 0xF0, 0xD9, 0xA8, 0x32, 0xE0, 0x80, 0x8D,
+ 0x00, 0xD8, 0x45, 0xAA, 0x0C, 0xC0, 0x16, 0x85, 0x5F, 0xB5, 0xF8, 0x7C, 0x82, 0x09, 0x3F, 0xB5, 0xEC, 0x7F, 0x9F, 0xB5, 0xEA, 0x7E, 0x74, 0xFF, 0x25, 0x98, 0x20, 0xB7, 0x0C, 0x4A,
+ 0x11, 0xD0, 0x52, 0x0A, 0x11, 0xD0, 0xCE, 0x2A, 0x9C, 0x28, 0x42, 0x71, 0xFE, 0xFF, 0x44, 0x92, 0x9F, 0xB7, 0xEE, 0x7E, 0xBF, 0xB7, 0x6E, 0x7F, 0x60, 0x8C, 0x22, 0x9C, 0x05, 0xA6,
+ 0x40, 0x84, 0x5D, 0x9E, 0x02, 0x85, 0x73, 0xC0, 0xCE, 0x9C, 0x20, 0xB7, 0x8C, 0x46, 0x08, 0xC0, 0x80, 0x08, 0x80, 0xB7, 0x2D, 0x40, 0xAB, 0x9E, 0x41, 0x2A, 0x08, 0x3A, 0x80, 0xB5,
+ 0x2D, 0x40, 0xF4, 0xFF, 0xAD, 0x9B, 0x20, 0xB7, 0x14, 0x45, 0x42, 0x85, 0x5F, 0xB5, 0x78, 0x78, 0x0C, 0xC0, 0x1E, 0x85, 0x5F, 0xB5, 0xF8, 0x78, 0x52, 0xE0, 0x80, 0x8D, 0x80, 0xB7,
+ 0x4D, 0x49, 0x20, 0xB7, 0x8C, 0x50, 0x86, 0x09, 0xBF, 0xB5, 0x6C, 0x7F, 0x9F, 0xB5, 0x6A, 0x7F, 0x3F, 0xB5, 0xEC, 0x7E, 0x54, 0xFF, 0xEA, 0x9B, 0x00, 0xC0, 0x00, 0x90, 0x9F, 0xB7,
+ 0x6E, 0x7E, 0xBF, 0xB7, 0xEE, 0x7E, 0x02, 0xC0, 0x00, 0x8C, 0x22, 0x9C, 0x20, 0xB7, 0x8C, 0x47, 0x80, 0xB7, 0xAD, 0x4D, 0x81, 0xC0, 0x00, 0x3A, 0x80, 0xB5, 0xAD, 0x4D, 0x22, 0x9C,
+ 0x80, 0xB7, 0x0C, 0x43, 0x59, 0x9E, 0x08, 0x75, 0x26, 0xD2, 0x0C, 0x59, 0x40, 0x85, 0x5A, 0xE0, 0x44, 0x80, 0x02, 0xC0, 0x80, 0x91, 0x00, 0xC0, 0x40, 0x91, 0x01, 0xC0, 0xC0, 0x90,
+ 0x02, 0xC0, 0xC0, 0x90, 0x02, 0xC0, 0x80, 0x90, 0x01, 0xC0, 0x60, 0x93, 0x11, 0xD0, 0x12, 0x1A, 0x0A, 0x75, 0x26, 0xD2, 0x0C, 0x59, 0x40, 0x85, 0x5A, 0xE0, 0x44, 0x80, 0x00, 0xC0,
+ 0x80, 0x92, 0x00, 0xC0, 0xE0, 0x91, 0x01, 0xC0, 0x20, 0x92, 0x01, 0xC0, 0xE0, 0x91, 0x00, 0xC0, 0xC0, 0x90, 0x00, 0xC0, 0xE0, 0x90, 0x01, 0xC0, 0x20, 0x91, 0x12, 0x85, 0x01, 0xC0,
+ 0xE0, 0x90, 0x06, 0x85, 0x01, 0xC0, 0x80, 0x90, 0x01, 0xC0, 0x20, 0x90, 0x11, 0xD0, 0x12, 0x1A, 0x0A, 0x75, 0x26, 0xD2, 0x0C, 0x59, 0x40, 0x85, 0x5A, 0xE0, 0x44, 0x80, 0x00, 0xC0,
+ 0x20, 0x92, 0x00, 0xC0, 0xA0, 0x92, 0x00, 0xC0, 0x60, 0x92, 0x00, 0xC0, 0x20, 0x92, 0x00, 0xC0, 0xC0, 0x90, 0x00, 0xC0, 0x00, 0x92, 0x00, 0xC0, 0x60, 0x91, 0x12, 0x85, 0x00, 0xC0,
+ 0x20, 0x91, 0x00, 0xC0, 0xC0, 0x90, 0x4E, 0x74, 0x06, 0x85, 0x00, 0xC0, 0x62, 0x90, 0x0A, 0x85, 0x40, 0xB5, 0x1C, 0x43, 0x00, 0xB7, 0x0C, 0x43, 0x22, 0x9C, 0x05, 0xA6, 0x80, 0xB7,
+ 0x0C, 0x43, 0x20, 0xB7, 0x8C, 0x41, 0x5D, 0x9E, 0x9D, 0x9E, 0x4A, 0x75, 0x80, 0xB5, 0x0C, 0x51, 0xA0, 0xB5, 0x2D, 0x41, 0x00, 0xC0, 0xC4, 0x93, 0x80, 0xB7, 0x8C, 0x7C, 0xA0, 0xB5,
+ 0x94, 0x50, 0x48, 0xF2, 0x99, 0xA8, 0x02, 0xC0, 0x80, 0x38, 0x48, 0xF2, 0x99, 0xA0, 0x02, 0xC0, 0x82, 0x0D, 0x74, 0xFF, 0xB1, 0x9A, 0x00, 0xC1, 0xBE, 0x0D, 0x74, 0xFF, 0xB7, 0x9A,
+ 0x80, 0xB7, 0x8C, 0x46, 0x0A, 0x85, 0x43, 0xB5, 0x18, 0x74, 0x02, 0x85, 0xC8, 0xF2, 0x07, 0xA1, 0x00, 0xC0, 0x80, 0x92, 0x4C, 0x75, 0x00, 0xC0, 0x24, 0x92, 0x80, 0xB7, 0x8C, 0x50,
+ 0x00, 0x75, 0x20, 0xB7, 0x8C, 0x49, 0x00, 0xC0, 0x04, 0x91, 0x80, 0xB7, 0x2D, 0x47, 0x02, 0xC0, 0x00, 0x3A, 0x80, 0xB5, 0x2D, 0x47, 0xF4, 0xFF, 0x65, 0x9B, 0xAB, 0x9E, 0xF4, 0xFF,
+ 0x6B, 0x9B, 0x80, 0xB7, 0x0C, 0x43, 0x08, 0x75, 0x00, 0xC0, 0xA4, 0x92, 0x80, 0xB7, 0x8C, 0x49, 0x00, 0x75, 0x00, 0xC0, 0xA2, 0x91, 0x08, 0xD2, 0x01, 0xAA, 0x10, 0x2A, 0x00, 0x75,
+ 0x00, 0xC0, 0xE2, 0x90, 0x9E, 0x0D, 0xF4, 0xFF, 0x58, 0x9B, 0x00, 0xC0, 0xA0, 0x90, 0xA2, 0x0D, 0xF4, 0xFF, 0x53, 0x9B, 0x80, 0xB7, 0x0C, 0x43, 0x04, 0x75, 0x00, 0xC0, 0x24, 0x93,
+ 0xC0, 0xC1, 0x40, 0x7F, 0x00, 0xC0, 0x42, 0x92, 0x20, 0xB7, 0x8C, 0x49, 0x40, 0x74, 0x00, 0xC0, 0xE4, 0x90, 0x20, 0xB7, 0x8C, 0x7C, 0x40, 0x74, 0x00, 0xC0, 0x02, 0x91, 0x80, 0xB7,
+ 0x2D, 0x47, 0x02, 0xC0, 0x00, 0x3A, 0x80, 0xB5, 0x2D, 0x47, 0x8B, 0x05, 0xF4, 0xFF, 0xFA, 0x9A, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x20, 0xB7,
+ 0x8C, 0x46, 0x08, 0xC0, 0x80, 0x08, 0x80, 0xB7, 0x2D, 0x40, 0x41, 0x2A, 0x20, 0x3A, 0x80, 0xB5, 0x2D, 0x40, 0x22, 0x9C, 0x80, 0xB7, 0x8C, 0x46, 0x20, 0xB7, 0x8C, 0x51, 0x08, 0xC0,
+ 0x20, 0x0A, 0x08, 0xF2, 0x81, 0xA0, 0xFF, 0xFF, 0xA0, 0x91, 0x05, 0xA6, 0x50, 0xF0, 0x79, 0xAA, 0xB9, 0x9D, 0x52, 0xD0, 0x40, 0x28, 0xA0, 0xB7, 0x8C, 0x43, 0x71, 0xC1, 0xCD, 0x9C,
+ 0x60, 0xB7, 0x04, 0x69, 0x60, 0xB7, 0x9C, 0x69, 0xC8, 0x9D, 0xE7, 0x9D, 0x18, 0xC0, 0x49, 0xAA, 0x68, 0x9D, 0x10, 0xF0, 0xE6, 0xA8, 0x0E, 0xC0, 0x7C, 0x2A, 0x00, 0xC2, 0x08, 0x5A,
+ 0x20, 0xE2, 0x85, 0xA8, 0x4C, 0x9E, 0x48, 0x70, 0x6C, 0x9D, 0x02, 0xC0, 0x42, 0x91, 0x08, 0xF0, 0x61, 0xAA, 0x49, 0x9E, 0x48, 0x70, 0x02, 0x09, 0x82, 0x0C, 0x12, 0xB4, 0x42, 0x44,
+ 0x01, 0xD0, 0x22, 0x09, 0x00, 0xC0, 0x62, 0x92, 0x84, 0x0C, 0x46, 0x76, 0x00, 0xC0, 0xF2, 0x91, 0xA2, 0xD0, 0x08, 0x5E, 0x10, 0xF0, 0xE5, 0xA8, 0x30, 0xE2, 0x05, 0xAA, 0x48, 0x70,
+ 0xFF, 0xFF, 0xA4, 0x92, 0x29, 0x9E, 0x06, 0x09, 0x30, 0xC0, 0xCE, 0xA0, 0x80, 0x74, 0x01, 0xC0, 0x44, 0x91, 0x44, 0x9D, 0x3E, 0x9E, 0x40, 0x74, 0x38, 0xC0, 0x41, 0xAA, 0x02, 0x85,
+ 0x01, 0xE0, 0x22, 0x85, 0xF2, 0xD3, 0xCE, 0x28, 0x30, 0xC0, 0xCD, 0xA8, 0x84, 0x0C, 0x8C, 0x2C, 0x4A, 0x9E, 0x44, 0x70, 0x01, 0xD0, 0x92, 0x0C, 0x01, 0xD0, 0x96, 0x2C, 0x10, 0xF0,
+ 0x65, 0xAA, 0x20, 0xB7, 0x8C, 0x46, 0xA2, 0xD0, 0x08, 0x5D, 0xF0, 0xCF, 0x01, 0x2A, 0xA2, 0x00, 0x08, 0xC0, 0xD0, 0x08, 0x80, 0xB5, 0x2D, 0x40, 0x00, 0xD0, 0xC2, 0xA0, 0x10, 0xF0,
+ 0x66, 0xA9, 0x06, 0x0C, 0x30, 0xE0, 0x46, 0xA1, 0x20, 0xB7, 0x8C, 0x51, 0x18, 0xD0, 0x61, 0xAA, 0xCE, 0xCF, 0xFD, 0x28, 0x00, 0xC2, 0x20, 0x5A, 0x30, 0xC0, 0x00, 0x2A, 0x98, 0x30,
+ 0x20, 0xB5, 0x8C, 0x51, 0x20, 0xB7, 0x94, 0x51, 0x18, 0xD0, 0x65, 0xAA, 0x00, 0xC2, 0x28, 0x5A, 0xC0, 0xC0, 0x00, 0x2A, 0x49, 0x9D, 0x80, 0xB7, 0x8C, 0x46, 0x3E, 0xCF, 0xFD, 0x2C,
+ 0x01, 0xC3, 0x94, 0x34, 0x20, 0xB5, 0x94, 0x51, 0x20, 0xB7, 0x8C, 0x51, 0x00, 0x76, 0x08, 0xC0, 0x20, 0x0A, 0x08, 0xF2, 0x81, 0xA0, 0x00, 0xC0, 0x82, 0x90, 0xF4, 0xFF, 0x5C, 0x9B,
+ 0x71, 0xC1, 0xCD, 0x9C, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x5D, 0x9E, 0x82, 0x0D, 0x74, 0xFF, 0x0D, 0x98, 0x48, 0xF2, 0xB5, 0xA9,
+ 0x82, 0x0D, 0x02, 0x0D, 0x02, 0x09, 0x54, 0xFF, 0xF5, 0x9B, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x5D, 0x9E, 0x82, 0x0D, 0x54, 0xFF,
+ 0xFB, 0x9B, 0x48, 0xF2, 0xB1, 0xA9, 0x82, 0x0D, 0x02, 0x0D, 0x02, 0x09, 0x54, 0xFF, 0xE3, 0x9B, 0x83, 0xB7, 0x08, 0x74, 0x06, 0x08, 0x04, 0x1A, 0x83, 0xB5, 0x08, 0x74, 0x9F, 0xB7,
+ 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x80, 0xB7, 0x0C, 0x52, 0x20, 0xB7, 0x8C, 0x52, 0x04, 0x0A, 0x1C, 0x2A, 0x02, 0x71, 0x5A, 0x9E, 0x00, 0xC0, 0x64, 0x91,
+ 0x49, 0xC0, 0x02, 0x0A, 0xFC, 0xC2, 0x60, 0x0A, 0x02, 0xC0, 0x2E, 0x85, 0x08, 0xF2, 0x03, 0xA1, 0x00, 0x9F, 0x20, 0xB7, 0x94, 0x43, 0x72, 0xC0, 0xCD, 0x9C, 0x40, 0xB7, 0x04, 0x6A,
+ 0x80, 0xB7, 0x0C, 0x52, 0x20, 0xB7, 0x0C, 0x52, 0x26, 0xD2, 0x0C, 0x59, 0x2D, 0x9E, 0x10, 0x87, 0x30, 0xE0, 0x4D, 0xA1, 0xA6, 0xD0, 0x0C, 0x59, 0x2D, 0x9E, 0x30, 0xE0, 0xCD, 0xA1,
+ 0x08, 0xD0, 0x65, 0xAA, 0x04, 0x0A, 0x08, 0xD0, 0x65, 0xA2, 0x20, 0xB7, 0x0C, 0x52, 0x84, 0x08, 0x9C, 0x28, 0x20, 0xB5, 0x0C, 0x52, 0x72, 0xC0, 0xCD, 0x9C, 0x22, 0x9C, 0x0D, 0xA6,
+ 0x20, 0xB7, 0x8C, 0x52, 0x80, 0xB7, 0x0C, 0x52, 0x48, 0x70, 0x02, 0xC0, 0x42, 0x91, 0xC0, 0xB7, 0x0C, 0x6A, 0x80, 0xB7, 0x8C, 0x52, 0x14, 0xD0, 0x68, 0x09, 0x26, 0xD2, 0x0C, 0x59,
+ 0x2D, 0x9E, 0x47, 0x9D, 0x30, 0xE0, 0xCD, 0xAA, 0x60, 0xE0, 0xA6, 0xAA, 0x20, 0xB7, 0x8C, 0x43, 0x71, 0xC0, 0xCD, 0x9C, 0x04, 0x0A, 0x1C, 0x2A, 0x80, 0xB5, 0x8C, 0x52, 0x71, 0xC0,
+ 0xCD, 0x9C, 0x40, 0x77, 0x00, 0xC0, 0xA2, 0x91, 0xAB, 0x9E, 0x0B, 0x06, 0x62, 0x9C, 0x1C, 0xC0, 0x3E, 0x7C, 0x00, 0xC0, 0xC4, 0x90, 0x8B, 0x05, 0x8B, 0x01, 0xF4, 0xFF, 0x9E, 0x9B,
+ 0xA0, 0xB7, 0x94, 0x43, 0x72, 0xC1, 0xCD, 0x9C, 0x08, 0xD2, 0x25, 0xAA, 0x04, 0x1A, 0x08, 0xD2, 0x25, 0xA2, 0x08, 0xD2, 0xA5, 0xA8, 0x1C, 0xC0, 0x7E, 0x7C, 0x00, 0xC0, 0x84, 0x91,
+ 0x48, 0xF2, 0x39, 0xAA, 0x01, 0xC1, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0xA2, 0x90, 0xAB, 0x9E, 0x94, 0xFF, 0x3B, 0x98, 0x72, 0xC1, 0xCD, 0x9C, 0x20, 0xB7, 0x8C, 0x52, 0x80, 0xB7,
+ 0x0C, 0x52, 0x48, 0x70, 0xFD, 0xFF, 0x84, 0x93, 0x9F, 0xB7, 0xEE, 0x7E, 0xBF, 0xB7, 0x6E, 0x7F, 0xDF, 0xB7, 0xEE, 0x7F, 0x60, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x5D, 0x9E, 0x82, 0x0D,
+ 0x54, 0xFF, 0x55, 0x9B, 0x80, 0xB7, 0x8C, 0x44, 0x20, 0xB7, 0x8C, 0x6B, 0x01, 0xC0, 0x8E, 0x0C, 0x06, 0xC0, 0x98, 0x0C, 0x34, 0xC0, 0x10, 0x0A, 0xFE, 0xCF, 0xFC, 0x28, 0xE9, 0xF3,
+ 0x9D, 0xA0, 0x08, 0xF2, 0x82, 0xA0, 0x48, 0xF2, 0xB1, 0xA9, 0x82, 0x0D, 0x06, 0x0D, 0x06, 0x09, 0x54, 0xFF, 0x2D, 0x9B, 0x06, 0x08, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F,
+ 0x40, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x87, 0x06, 0x82, 0x0D, 0x54, 0xFF, 0x32, 0x9B, 0x80, 0xB7, 0x8C, 0x44, 0x20, 0xB7, 0x8C, 0x6B, 0x01, 0xC0, 0x86, 0x0C, 0x06, 0xC0, 0x98, 0x0C,
+ 0x34, 0xC0, 0x10, 0x0A, 0xFE, 0xCF, 0xFC, 0x28, 0xE9, 0xF3, 0x9D, 0xA0, 0x08, 0xF2, 0x82, 0xA0, 0x50, 0xF2, 0xB5, 0xA9, 0x82, 0x0D, 0x06, 0x0D, 0x06, 0x09, 0x54, 0xFF, 0x0A, 0x9B,
+ 0xA0, 0xB7, 0x8C, 0x43, 0x71, 0xC1, 0xCD, 0x9C, 0x8B, 0x05, 0x14, 0xC0, 0x94, 0x98, 0x71, 0xC1, 0xCD, 0x9C, 0x06, 0x08, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C,
+ 0x22, 0x9C, 0x1D, 0xA6, 0x49, 0xC0, 0x82, 0x85, 0x00, 0xC2, 0x80, 0x85, 0x20, 0xB7, 0x8C, 0x47, 0x02, 0x0C, 0x06, 0x85, 0x82, 0x0A, 0x5B, 0x9E, 0x49, 0xC0, 0x02, 0x87, 0x00, 0xC2,
+ 0x10, 0x87, 0x48, 0xF0, 0x79, 0xAA, 0xEF, 0x9D, 0xD4, 0x9D, 0x48, 0xF0, 0xFA, 0xA8, 0x0C, 0xC0, 0xE0, 0x08, 0x40, 0xB7, 0x35, 0x40, 0x48, 0xF0, 0x79, 0xA9, 0x00, 0xC2, 0x05, 0x5A,
+ 0x04, 0x2A, 0x00, 0x75, 0x80, 0xB7, 0x8C, 0x6B, 0xF9, 0x5C, 0x84, 0x4C, 0x84, 0x2C, 0xFE, 0xC0, 0x70, 0x2D, 0x08, 0xF2, 0x06, 0xA0, 0x30, 0xE0, 0xC9, 0xA8, 0x01, 0xE0, 0x22, 0x85,
+ 0x20, 0xE2, 0xAB, 0x88, 0x50, 0xE0, 0xCA, 0xA9, 0x80, 0xC0, 0x48, 0x74, 0x20, 0x0D, 0x09, 0x00, 0x02, 0xC0, 0x02, 0x90, 0x01, 0x01, 0x31, 0xD0, 0x00, 0x0B, 0x88, 0xC0, 0xC2, 0x0E,
+ 0x74, 0xD1, 0x80, 0x09, 0x7F, 0x9D, 0x80, 0xC0, 0x50, 0x74, 0x11, 0xD0, 0x02, 0x0E, 0x04, 0xB3, 0x24, 0x48, 0xA0, 0x9E, 0x02, 0x72, 0x00, 0xC0, 0xA6, 0x92, 0x08, 0xF0, 0x47, 0xA9,
+ 0x6D, 0x9D, 0x80, 0xC0, 0x05, 0x5A, 0x30, 0xC0, 0x4D, 0xA2, 0x08, 0xF0, 0xC5, 0xA8, 0x3D, 0x9E, 0xA6, 0xD0, 0x08, 0x59, 0x30, 0xE0, 0xCE, 0xA1, 0x08, 0xF0, 0x45, 0xAA, 0x04, 0x0A,
+ 0x08, 0xF0, 0x45, 0xA2, 0x54, 0x9E, 0x76, 0xCF, 0x41, 0x0A, 0x50, 0xC0, 0x00, 0x75, 0x84, 0x0A, 0x8B, 0x05, 0x23, 0xB3, 0x46, 0x48, 0x10, 0xC0, 0x7E, 0x75, 0x07, 0x05, 0x00, 0xC0,
+ 0xB2, 0x91, 0x5C, 0x9E, 0x70, 0xE2, 0x85, 0xA8, 0xD8, 0x9D, 0x80, 0xC0, 0x48, 0x74, 0x60, 0xE0, 0xCA, 0xA9, 0x20, 0x0D, 0xFE, 0xFF, 0x84, 0x91, 0x08, 0xF0, 0x65, 0xAA, 0x09, 0xC8,
+ 0xC2, 0x0D, 0xB2, 0xC5, 0x80, 0x0D, 0x80, 0xB5, 0x2C, 0x40, 0xF4, 0xFF, 0xA7, 0x9A, 0x9F, 0xB7, 0x6E, 0x7E, 0xBF, 0xB7, 0xEE, 0x7E, 0xDF, 0xB7, 0x6E, 0x7F, 0xFF, 0xB7, 0xEE, 0x7F,
+ 0x02, 0xC0, 0x00, 0x8C, 0x22, 0x9C, 0x1D, 0xA6, 0x20, 0xB7, 0x94, 0x6B, 0x5D, 0x9E, 0x08, 0xF2, 0x25, 0xAA, 0x20, 0xB7, 0x4D, 0x40, 0x48, 0x70, 0x83, 0x06, 0x00, 0xC0, 0x62, 0x91,
+ 0x09, 0xC8, 0xC2, 0x0D, 0xBA, 0xC5, 0xB0, 0x0D, 0x8B, 0x01, 0xF4, 0xFF, 0x89, 0x9A, 0x05, 0xC0, 0x40, 0x90, 0x10, 0xF2, 0x25, 0xAA, 0x00, 0x75, 0x04, 0xC0, 0xE2, 0x91, 0x82, 0x0B,
+ 0x20, 0xB7, 0x8C, 0x48, 0x01, 0xC0, 0x0A, 0x0A, 0x08, 0x0A, 0x48, 0x70, 0x00, 0xC0, 0x92, 0x91, 0x48, 0xF2, 0x39, 0xAA, 0x04, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0xA2, 0x90,
+ 0xAB, 0x9E, 0x74, 0xFF, 0x8D, 0x98, 0x08, 0xF2, 0xA9, 0xA9, 0xA2, 0x0D, 0x00, 0xC6, 0x80, 0x39, 0x74, 0xFF, 0x26, 0x9A, 0x40, 0xC0, 0x82, 0x0D, 0x08, 0xF2, 0xBD, 0xA9, 0x74, 0xFF,
+ 0x20, 0x9A, 0x82, 0x09, 0x10, 0xF2, 0x25, 0xAA, 0xC8, 0x70, 0x02, 0xC0, 0x28, 0x93, 0x6E, 0x9E, 0x00, 0xB7, 0x94, 0x46, 0x32, 0xD0, 0x60, 0x0B, 0x71, 0x9E, 0x10, 0xC0, 0x65, 0xAA,
+ 0x12, 0xD0, 0xB2, 0x0A, 0x08, 0x75, 0x80, 0xC1, 0x08, 0x58, 0x01, 0xC0, 0xC4, 0x91, 0x84, 0x0B, 0xC4, 0x75, 0x01, 0xC0, 0x44, 0x91, 0x82, 0x0C, 0x49, 0x9E, 0x11, 0xD0, 0x32, 0x1A,
+ 0x48, 0x70, 0x01, 0xC0, 0x68, 0x90, 0x49, 0xC0, 0x82, 0x87, 0x60, 0xC1, 0x80, 0x87, 0x40, 0xB7, 0x04, 0x6B, 0x01, 0x05, 0xA3, 0x9E, 0xA6, 0xD0, 0x08, 0x5D, 0x11, 0xD0, 0x12, 0x0D,
+ 0x50, 0xF0, 0x49, 0xAA, 0x00, 0x75, 0xFF, 0xFF, 0xA2, 0x93, 0xDC, 0x9D, 0x60, 0xB7, 0x9C, 0x6A, 0x70, 0xC0, 0x29, 0xAA, 0x91, 0x9E, 0x46, 0x72, 0x30, 0xE0, 0xCD, 0xA8, 0x3D, 0x9E,
+ 0x26, 0xD2, 0x04, 0x59, 0x30, 0xE0, 0xCD, 0xA0, 0xFF, 0xFF, 0x26, 0x91, 0x41, 0x9E, 0x80, 0xB7, 0x2D, 0x45, 0x00, 0x75, 0xFF, 0xFF, 0xA2, 0x93, 0x71, 0x9E, 0x73, 0xD1, 0x60, 0x09,
+ 0x10, 0xC0, 0x65, 0xAA, 0x47, 0x9D, 0x10, 0xE0, 0x86, 0xA8, 0x00, 0xC2, 0x04, 0x5A, 0x49, 0xC0, 0x00, 0x0A, 0x40, 0xC1, 0x00, 0x0A, 0x08, 0xF2, 0x82, 0xA0, 0x08, 0xF2, 0xC5, 0xA8,
+ 0x6B, 0x9E, 0xC2, 0x70, 0xFD, 0xFF, 0x06, 0x92, 0x40, 0xC0, 0x92, 0x0D, 0x82, 0x09, 0x74, 0xFF, 0xBE, 0x99, 0xA2, 0x0D, 0x08, 0xF2, 0xA9, 0xA9, 0x74, 0xFF, 0xB9, 0x99, 0x40, 0xC0,
+ 0x82, 0x0D, 0x08, 0xF2, 0xBD, 0xA9, 0x74, 0xFF, 0xB3, 0x99, 0x20, 0xB7, 0x94, 0x47, 0x20, 0xB7, 0x8C, 0x46, 0x80, 0xB7, 0xAD, 0x45, 0x40, 0x2A, 0x00, 0x75, 0xFF, 0xFF, 0x82, 0x93,
+ 0x71, 0xD2, 0x10, 0x0E, 0x08, 0xF2, 0x81, 0xA8, 0x9F, 0xB7, 0x6E, 0x7E, 0xBF, 0xB7, 0xEE, 0x7E, 0xDF, 0xB7, 0x6E, 0x7F, 0xFF, 0xB7, 0xEE, 0x7F, 0x02, 0xC0, 0x00, 0x8C, 0x22, 0x9C,
+ 0x05, 0xA6, 0x83, 0xB7, 0x88, 0x74, 0x1C, 0xC0, 0x3E, 0x7D, 0x5D, 0x9E, 0x00, 0xC0, 0xA4, 0x92, 0x06, 0x85, 0x43, 0xB5, 0x98, 0x74, 0x01, 0xC9, 0x80, 0x9C, 0xAB, 0x9E, 0x88, 0xF2,
+ 0x25, 0xA2, 0x86, 0x09, 0xF4, 0xFF, 0x06, 0x99, 0xAB, 0x9E, 0xA0, 0xB5, 0x8C, 0x49, 0x74, 0xFF, 0x3C, 0x9B, 0x06, 0x08, 0x00, 0xC0, 0x60, 0x90, 0x02, 0x08, 0x9F, 0xB7, 0x6E, 0x7F,
+ 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x5D, 0x9E, 0x82, 0x0D, 0x54, 0xFF, 0x9B, 0x99, 0x80, 0xB7, 0x8C, 0x44, 0x20, 0xB7, 0x0C, 0x6C, 0x01, 0xC0, 0x8E, 0x0C,
+ 0x02, 0xC0, 0x80, 0x0C, 0x34, 0xC0, 0x10, 0x0A, 0xFE, 0xCF, 0xFC, 0x28, 0xE9, 0xF3, 0x9D, 0xA0, 0x08, 0xF2, 0x82, 0xA0, 0x48, 0xF2, 0xB1, 0xA9, 0x82, 0x0D, 0x06, 0x0D, 0x02, 0x09,
+ 0x54, 0xFF, 0x73, 0x99, 0x83, 0xB7, 0x08, 0x74, 0x06, 0x08, 0x04, 0x1A, 0x83, 0xB5, 0x08, 0x74, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x05, 0xA6,
+ 0x5D, 0x9E, 0x82, 0x0D, 0x54, 0xFF, 0x73, 0x99, 0x80, 0xB7, 0x8C, 0x44, 0x20, 0xB7, 0x0C, 0x6C, 0x01, 0xC0, 0x86, 0x0C, 0x02, 0xC0, 0x80, 0x0C, 0x34, 0xC0, 0x10, 0x0A, 0xFE, 0xCF,
+ 0xFC, 0x28, 0xE9, 0xF3, 0x9D, 0xA0, 0x08, 0xF2, 0x82, 0xA0, 0x48, 0xF2, 0xB5, 0xA9, 0x82, 0x0D, 0x06, 0x0D, 0x02, 0x09, 0x54, 0xFF, 0x4B, 0x99, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7,
+ 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x87, 0x06, 0x50, 0xF2, 0x39, 0xAA, 0x10, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0xE4, 0x92, 0x50, 0xF2, 0x39, 0xAA, 0x40, 0xC0, 0x00, 0x2A,
+ 0x00, 0x75, 0x00, 0xC0, 0x02, 0x92, 0x20, 0xB7, 0x14, 0x6C, 0x50, 0xDA, 0x25, 0xAA, 0x80, 0xB5, 0x4D, 0x41, 0x10, 0xF2, 0xBD, 0xA8, 0x20, 0xB5, 0xCD, 0x40, 0x10, 0xF2, 0x25, 0xAA,
+ 0x80, 0xB5, 0x4D, 0x40, 0xA0, 0xB7, 0x8C, 0x6C, 0x60, 0xB7, 0x8C, 0x55, 0xAB, 0x9E, 0x2A, 0x0D, 0x94, 0xC0, 0x5A, 0x9B, 0x60, 0xB7, 0x0C, 0x55, 0xD2, 0xD0, 0xD0, 0x19, 0x32, 0x0D,
+ 0x94, 0xC0, 0x53, 0x9B, 0x60, 0xB7, 0x8C, 0x5A, 0xB2, 0xD0, 0xD0, 0x09, 0x12, 0x0D, 0x94, 0xC0, 0x4C, 0x9B, 0x60, 0xB7, 0x0C, 0x5B, 0xF2, 0xD0, 0xD0, 0x09, 0x0A, 0x0D, 0x94, 0xC0,
+ 0x45, 0x9B, 0x20, 0xB7, 0x8C, 0x5B, 0x09, 0xC8, 0xC2, 0x0D, 0x20, 0xC6, 0xA0, 0x0D, 0x6B, 0x9E, 0x20, 0xB7, 0x31, 0x40, 0x40, 0xB7, 0xA9, 0x40, 0x11, 0xD1, 0x50, 0x0A, 0x04, 0xC0,
+ 0x84, 0x0A, 0x08, 0xD2, 0x82, 0xA0, 0x08, 0xD2, 0x21, 0xA1, 0xF4, 0xFF, 0x21, 0x99, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x5D, 0x9E,
+ 0x20, 0xB7, 0x8C, 0x48, 0x01, 0xC0, 0x0A, 0x0A, 0x08, 0x0A, 0x48, 0x70, 0x00, 0xC0, 0x72, 0x91, 0x48, 0xF2, 0x39, 0xAA, 0x04, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x82, 0x90,
+ 0x54, 0xFF, 0x26, 0x9B, 0x08, 0xF2, 0xA9, 0xA9, 0xA2, 0x0D, 0x00, 0xC6, 0x80, 0x39, 0x74, 0xFF, 0xBF, 0x98, 0x40, 0xC0, 0x82, 0x0D, 0x48, 0xF2, 0xA9, 0xA9, 0x74, 0xFF, 0xB9, 0x98,
+ 0x40, 0xC0, 0xA2, 0x0D, 0x08, 0xDA, 0xB9, 0xA9, 0x74, 0xFF, 0xB3, 0x98, 0x40, 0xC0, 0x92, 0x0D, 0x82, 0x09, 0x74, 0xFF, 0xAE, 0x98, 0xA2, 0x0D, 0x08, 0xF2, 0xA9, 0xA9, 0x74, 0xFF,
+ 0xA9, 0x98, 0x40, 0xC0, 0x82, 0x0D, 0x08, 0xF2, 0xBD, 0xA9, 0x74, 0xFF, 0xA3, 0x98, 0x20, 0xB7, 0x8C, 0x46, 0x80, 0xB7, 0xAD, 0x45, 0x40, 0x2A, 0x00, 0x75, 0xFF, 0xFF, 0x82, 0x93,
+ 0x80, 0xB7, 0x8C, 0x47, 0x08, 0xC0, 0x60, 0x0A, 0x08, 0xF2, 0x81, 0xA8, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0xA0, 0xB7, 0x0C, 0x6C,
+ 0x87, 0x06, 0x10, 0xF2, 0x25, 0xAA, 0x08, 0xF2, 0xA1, 0xA8, 0x48, 0x70, 0x01, 0xC0, 0xC2, 0x91, 0xF4, 0xFF, 0x34, 0x9B, 0x60, 0xB7, 0x94, 0x55, 0xF1, 0xD0, 0xD8, 0x09, 0x2A, 0x0D,
+ 0x94, 0xC0, 0xCC, 0x9A, 0x60, 0xB7, 0x14, 0x55, 0x31, 0xD0, 0xD8, 0x09, 0x32, 0x0D, 0x94, 0xC0, 0xC5, 0x9A, 0x60, 0xB7, 0x94, 0x5A, 0x91, 0xD1, 0xD8, 0x09, 0x12, 0x0D, 0x94, 0xC0,
+ 0xBE, 0x9A, 0x60, 0xB7, 0x14, 0x5B, 0xD1, 0xD1, 0xD8, 0x09, 0x0A, 0x0D, 0x94, 0xC0, 0xB7, 0x9A, 0x40, 0xB7, 0x8C, 0x5B, 0xF1, 0xD1, 0x58, 0x0A, 0x08, 0xD2, 0x82, 0xA8, 0xF1, 0xD1,
+ 0xDA, 0x08, 0x80, 0xB7, 0x29, 0x40, 0x08, 0xD0, 0xC2, 0xA0, 0x08, 0xD0, 0x45, 0xA2, 0x08, 0xF2, 0x25, 0xAA, 0x50, 0xF2, 0x29, 0xA2, 0x08, 0xDA, 0xB1, 0xA8, 0x10, 0xDA, 0xB9, 0xA0,
+ 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x1D, 0xA6, 0x40, 0x84, 0x60, 0xB7, 0x8C, 0x5C, 0x00, 0xB7, 0x0C, 0x5C, 0x02, 0x85, 0x60, 0xB7, 0x1C, 0x6D,
+ 0x60, 0xB9, 0x78, 0x40, 0x01, 0x02, 0x29, 0xF2, 0x07, 0xA1, 0xFF, 0xFF, 0xC1, 0x93, 0x10, 0xD0, 0x61, 0xAA, 0x73, 0xD0, 0x48, 0x29, 0x30, 0xE0, 0xCD, 0xA8, 0x08, 0xF0, 0xE9, 0xA0,
+ 0x10, 0xD0, 0x61, 0xAA, 0x40, 0xB7, 0x04, 0x5C, 0x0E, 0xC0, 0x00, 0x2A, 0x26, 0xD2, 0x0D, 0x59, 0x3F, 0xC0, 0x7E, 0x0C, 0x00, 0xCC, 0x00, 0x0C, 0x30, 0xE0, 0xCD, 0xA8, 0x11, 0xD0,
+ 0x38, 0x0D, 0x40, 0xB7, 0x94, 0x6F, 0x60, 0xB9, 0x18, 0x40, 0x08, 0xF0, 0xED, 0xA0, 0x31, 0xF0, 0x45, 0xAA, 0x08, 0xD8, 0xC2, 0xA8, 0x2D, 0x9E, 0x26, 0xD2, 0x08, 0x59, 0x38, 0xE0,
+ 0xCD, 0xA8, 0x4C, 0x9E, 0xFE, 0xC3, 0x7C, 0x2A, 0x98, 0x30, 0xC1, 0xA0, 0x29, 0xF0, 0x45, 0xAA, 0x40, 0x9E, 0x40, 0x22, 0x98, 0x30, 0xC1, 0xA0, 0xFF, 0xFF, 0x81, 0x91, 0x40, 0xB7,
+ 0x04, 0x5D, 0x20, 0xB7, 0x14, 0x71, 0x9C, 0x0D, 0x60, 0xB9, 0x08, 0x40, 0x31, 0xF0, 0xA5, 0xA8, 0x10, 0xD0, 0x61, 0xAA, 0x2D, 0x9E, 0xA6, 0xD0, 0x08, 0x59, 0x90, 0x0D, 0x02, 0xC0,
+ 0x70, 0x2A, 0x00, 0xC2, 0x09, 0x5A, 0x30, 0xE0, 0x4D, 0xA2, 0xFF, 0xFF, 0x41, 0x92, 0x00, 0xB7, 0x8C, 0x5C, 0x80, 0xB7, 0x2C, 0x41, 0x60, 0xB7, 0x9C, 0x6D, 0x26, 0xD2, 0x08, 0x59,
+ 0x30, 0xE0, 0xCD, 0xA8, 0x80, 0xC0, 0x05, 0x5B, 0x82, 0x71, 0x03, 0xC0, 0x48, 0x91, 0x81, 0x9E, 0xE0, 0xB7, 0x8C, 0x6E, 0x83, 0x07, 0x10, 0xF2, 0x69, 0xAA, 0x60, 0xB7, 0x1C, 0x6E,
+ 0x00, 0xC2, 0x08, 0x5A, 0x30, 0xD0, 0x68, 0x01, 0x30, 0xC0, 0x4E, 0xAB, 0x26, 0xD3, 0x08, 0x5D, 0x60, 0xB7, 0x1C, 0x5D, 0xC7, 0x9D, 0x70, 0xE0, 0xA9, 0xAA, 0x30, 0xE0, 0x4D, 0xAA,
+ 0x80, 0xC2, 0xC0, 0x59, 0x02, 0xC0, 0x80, 0x39, 0xCF, 0x9D, 0x62, 0xC0, 0xC0, 0x0D, 0xB8, 0x31, 0x5F, 0xB5, 0x7C, 0x7E, 0x54, 0xFF, 0xBD, 0x9B, 0x82, 0x0E, 0xA8, 0xD2, 0x08, 0x59,
+ 0x40, 0x9D, 0x70, 0xE0, 0x05, 0xAA, 0x69, 0x9E, 0x48, 0x70, 0x5F, 0xB7, 0x7C, 0x7E, 0x11, 0xD0, 0xE2, 0x0A, 0x01, 0xC0, 0x68, 0x91, 0xC0, 0xB7, 0x0C, 0x6F, 0x28, 0xD3, 0x8C, 0x5D,
+ 0xDB, 0x9D, 0x30, 0xD0, 0x55, 0x05, 0x43, 0x9D, 0x60, 0xC0, 0x05, 0xAA, 0x71, 0x9E, 0x20, 0xE3, 0xB1, 0x83, 0x18, 0x02, 0x88, 0x5D, 0x60, 0xB7, 0x1C, 0x5C, 0x26, 0xD2, 0x08, 0x59,
+ 0x30, 0xE0, 0xCD, 0xA9, 0x70, 0xC0, 0x80, 0x0D, 0x5F, 0xB5, 0xE4, 0x7E, 0x7F, 0xB5, 0xE4, 0x7F, 0x54, 0xFF, 0x92, 0x9B, 0x84, 0x0E, 0x5F, 0xB7, 0xE4, 0x7E, 0x40, 0x9D, 0x70, 0xE0,
+ 0x05, 0xAA, 0x69, 0x9E, 0x48, 0x70, 0x7F, 0xB7, 0xE4, 0x7F, 0xFE, 0xFF, 0xC6, 0x93, 0x20, 0xB7, 0x94, 0x5C, 0x80, 0xB7, 0x4D, 0x41, 0x60, 0xB7, 0x9C, 0x6D, 0x26, 0xD2, 0x08, 0x59,
+ 0x30, 0xE0, 0xCD, 0xA8, 0x0B, 0x03, 0x82, 0x71, 0xFC, 0xFF, 0xC6, 0x93, 0x9F, 0xB7, 0x6E, 0x7D, 0xBF, 0xB7, 0xEE, 0x7D, 0xDF, 0xB7, 0x6E, 0x7E, 0xFF, 0xB7, 0xEE, 0x7E, 0x02, 0xC0,
+ 0x40, 0x8C, 0x22, 0x9C, 0x1D, 0xA6, 0x40, 0x84, 0x20, 0xB7, 0x0C, 0x5C, 0x02, 0x85, 0x00, 0xB7, 0x94, 0x5C, 0x60, 0xB9, 0x78, 0x40, 0x03, 0x02, 0x29, 0xF2, 0x07, 0xA1, 0xFF, 0xFF,
+ 0xC1, 0x93, 0x90, 0xF0, 0x7D, 0xAA, 0x72, 0xD1, 0xBC, 0x0C, 0x00, 0xC2, 0x39, 0x5A, 0x1C, 0x2A, 0x80, 0xB5, 0x4C, 0x40, 0x80, 0xB7, 0x49, 0x40, 0x38, 0x2A, 0x00, 0xC2, 0x05, 0x5A,
+ 0x80, 0xB5, 0xCC, 0x40, 0x20, 0xB7, 0x49, 0x40, 0x3F, 0xC0, 0xFE, 0x09, 0x00, 0xCC, 0x80, 0x09, 0x40, 0xB7, 0x04, 0x5C, 0x06, 0xC0, 0xC0, 0x28, 0x91, 0x58, 0x20, 0xB5, 0x4C, 0x41,
+ 0x80, 0xB7, 0x4B, 0x40, 0x11, 0xD0, 0x38, 0x0D, 0x40, 0xB7, 0x14, 0x70, 0x60, 0xB9, 0x08, 0x40, 0x38, 0xC0, 0x00, 0x2A, 0x00, 0xC2, 0x1D, 0x5A, 0x80, 0xB5, 0xCC, 0x41, 0x31, 0xD8,
+ 0x45, 0xAA, 0x08, 0xD8, 0xC2, 0xA8, 0x2D, 0x9E, 0x26, 0xD2, 0x08, 0x59, 0x38, 0xE0, 0xCD, 0xA8, 0x4C, 0x9E, 0xFE, 0xC3, 0x7C, 0x2A, 0x98, 0x30, 0xC1, 0xA0, 0x29, 0xF0, 0x45, 0xAA,
+ 0x46, 0x22, 0x98, 0x30, 0xC1, 0xA0, 0xFF, 0xFF, 0xA1, 0x91, 0x3F, 0xC0, 0xFE, 0x09, 0x00, 0xCC, 0x80, 0x09, 0x40, 0xB7, 0x04, 0x5C, 0x91, 0xD0, 0x30, 0x0D, 0x40, 0xB7, 0x94, 0x70,
+ 0x60, 0xB9, 0x68, 0x40, 0x31, 0xD8, 0x45, 0xAA, 0x08, 0xD8, 0xC2, 0xA8, 0x2D, 0x9E, 0x26, 0xD2, 0x08, 0x59, 0x38, 0xE0, 0xCD, 0xA8, 0x4C, 0x9E, 0xFE, 0xC3, 0x7C, 0x2A, 0x98, 0x30,
+ 0xC1, 0xA0, 0x29, 0xF0, 0x45, 0xAA, 0x46, 0x22, 0x98, 0x30, 0xC1, 0xA0, 0xFF, 0xFF, 0xA1, 0x91, 0x40, 0xB7, 0x04, 0x5D, 0x40, 0xB7, 0x0C, 0x71, 0x92, 0xD0, 0xB6, 0x0C, 0x60, 0xB9,
+ 0x18, 0x40, 0x29, 0xF0, 0xC5, 0xA8, 0x80, 0xB7, 0x49, 0x40, 0x2D, 0x9E, 0xA6, 0xD0, 0x08, 0x59, 0x90, 0x0C, 0x02, 0xC0, 0x70, 0x2A, 0x00, 0xC2, 0x09, 0x5A, 0x30, 0xE0, 0x4D, 0xA2,
+ 0xFF, 0xFF, 0x41, 0x92, 0x20, 0xB7, 0x8C, 0x5C, 0x80, 0xB7, 0x2D, 0x40, 0x60, 0xB7, 0x9C, 0x6D, 0x26, 0xD2, 0x08, 0x59, 0x30, 0xE0, 0xCD, 0xA8, 0x02, 0x0F, 0x74, 0x9E, 0x02, 0x71,
+ 0x03, 0xC0, 0x68, 0x91, 0x20, 0xB7, 0x94, 0x5C, 0xE0, 0xB7, 0x8C, 0x6E, 0x83, 0x07, 0x10, 0xF2, 0x61, 0xAA, 0x6E, 0x9D, 0x00, 0xC2, 0x08, 0x5A, 0x01, 0xC3, 0x30, 0x81, 0x60, 0xB7,
+ 0x1C, 0x6E, 0x30, 0xC0, 0x4D, 0xAB, 0x26, 0xD3, 0x08, 0x59, 0x60, 0xB7, 0x1C, 0x5D, 0xC7, 0x9D, 0x70, 0xE0, 0xA9, 0xAA, 0x30, 0xE0, 0x4D, 0xAA, 0x80, 0xC2, 0xC0, 0x59, 0x02, 0xC0,
+ 0x80, 0x39, 0xCF, 0x9D, 0x42, 0xC0, 0xC0, 0x0D, 0xB8, 0x31, 0x5F, 0xB5, 0x7C, 0x7E, 0x54, 0xFF, 0xB2, 0x9A, 0x82, 0x0E, 0xA8, 0xD2, 0x08, 0x59, 0x44, 0x9D, 0x70, 0xE0, 0x25, 0xAA,
+ 0x69, 0x9E, 0x48, 0x70, 0x11, 0xD0, 0xE2, 0x0E, 0x5F, 0xB7, 0x7C, 0x7E, 0x01, 0xC0, 0x48, 0x91, 0xC0, 0xB7, 0x14, 0x6F, 0x28, 0xD3, 0x8C, 0x59, 0x5B, 0x9D, 0x30, 0xD0, 0x55, 0x05,
+ 0xC7, 0x9D, 0x60, 0xC0, 0x29, 0xAA, 0x20, 0xE3, 0xB1, 0x83, 0x68, 0x02, 0x88, 0x5D, 0x60, 0xB7, 0x1C, 0x5C, 0x26, 0xD2, 0x08, 0x59, 0x30, 0xE0, 0xCD, 0xA9, 0x50, 0xC0, 0x80, 0x0D,
+ 0x5F, 0xB5, 0xE4, 0x7E, 0x7F, 0xB5, 0xE4, 0x7F, 0x54, 0xFF, 0x88, 0x9A, 0x84, 0x0E, 0x5F, 0xB7, 0xE4, 0x7E, 0x44, 0x9D, 0x70, 0xE0, 0x25, 0xAA, 0x69, 0x9E, 0x48, 0x70, 0x7F, 0xB7,
+ 0xE4, 0x7F, 0xFE, 0xFF, 0xE6, 0x93, 0x20, 0xB7, 0x94, 0x5C, 0x80, 0xB7, 0x4D, 0x40, 0x60, 0xB7, 0x9C, 0x6D, 0x26, 0xD2, 0x08, 0x59, 0x30, 0xE0, 0xCD, 0xA8, 0xAE, 0x9E, 0x42, 0x71,
+ 0xFC, 0xFF, 0xC6, 0x93, 0x9F, 0xB7, 0x6E, 0x7D, 0xBF, 0xB7, 0xEE, 0x7D, 0xDF, 0xB7, 0x6E, 0x7E, 0xFF, 0xB7, 0xEE, 0x7E, 0x02, 0xC0, 0x40, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x0E, 0xC0,
+ 0xFC, 0x29, 0xC2, 0x74, 0x0E, 0x85, 0x53, 0x9D, 0x57, 0x9D, 0x02, 0xD0, 0x46, 0x1A, 0x02, 0xD0, 0xD4, 0x1A, 0x80, 0xC2, 0xC0, 0x5A, 0x40, 0xC0, 0xF2, 0x0D, 0x00, 0xC2, 0xC0, 0x59,
+ 0x54, 0xFF, 0x50, 0x9A, 0x42, 0xC0, 0xB2, 0x0D, 0x8B, 0x01, 0x54, 0xFF, 0x4B, 0x9A, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x0E, 0xC0, 0xFC, 0x2D,
+ 0xC2, 0x76, 0x8E, 0x09, 0x02, 0xD0, 0xB6, 0x19, 0x60, 0xC0, 0xF2, 0x0D, 0xC0, 0x59, 0x51, 0xFF, 0x40, 0x93, 0x0D, 0xA6, 0x5E, 0x9E, 0x82, 0x08, 0xC8, 0xD2, 0xDD, 0xAA, 0x20, 0x5D,
+ 0xC8, 0xD2, 0xCE, 0xAA, 0x48, 0xDA, 0x5D, 0xAA, 0x0E, 0xC0, 0xF0, 0x2A, 0x80, 0xC2, 0xB8, 0x5A, 0x02, 0xC0, 0xC0, 0x2E, 0x80, 0xC2, 0x91, 0x5E, 0x46, 0x77, 0x3E, 0xC0, 0x40, 0x2A,
+ 0x00, 0xC2, 0x10, 0x5A, 0xD8, 0x32, 0x54, 0x9E, 0x51, 0xB3, 0x24, 0x48, 0x80, 0xC0, 0x40, 0x59, 0x28, 0x31, 0x71, 0xD1, 0x66, 0x0A, 0x08, 0xD2, 0x82, 0xA8, 0x48, 0xDA, 0xC9, 0xA8,
+ 0xA2, 0xD0, 0x05, 0x5E, 0x3E, 0xC0, 0xC0, 0x28, 0x91, 0x58, 0xD2, 0x32, 0x11, 0xD0, 0xC2, 0x28, 0x84, 0x48, 0x80, 0xC0, 0x4C, 0x5A, 0x11, 0xD0, 0x92, 0x2C, 0x26, 0x31, 0x28, 0x31,
+ 0x84, 0x48, 0x80, 0xC0, 0xC8, 0x59, 0x40, 0xC0, 0xA2, 0x0D, 0xA6, 0x31, 0x54, 0xFF, 0xFF, 0x99, 0x40, 0xC0, 0xB2, 0x0D, 0x8B, 0x01, 0x54, 0xFF, 0xFA, 0x99, 0x02, 0x85, 0x46, 0x77,
+ 0xA6, 0xD2, 0x8C, 0x5D, 0xC0, 0x85, 0x5A, 0xE0, 0x46, 0x80, 0x00, 0xC0, 0x80, 0x92, 0x00, 0xC0, 0x20, 0x91, 0x00, 0xC0, 0xA0, 0x91, 0x00, 0xC0, 0xC0, 0x91, 0x00, 0xC0, 0x40, 0x90,
+ 0x06, 0x85, 0xB3, 0x9E, 0x4F, 0x9D, 0xF4, 0xFF, 0x83, 0x9B, 0x00, 0xC0, 0xA0, 0x90, 0xB3, 0x9E, 0xF4, 0xFF, 0x74, 0x9A, 0x88, 0xF2, 0xD9, 0xA9, 0x40, 0xC0, 0xD2, 0x0D, 0x0F, 0xC0,
+ 0xFE, 0x29, 0x54, 0xFF, 0xD7, 0x99, 0x9F, 0xB7, 0xEE, 0x7E, 0xBF, 0xB7, 0x6E, 0x7F, 0xDF, 0xB7, 0xEE, 0x7F, 0x60, 0x8C, 0x22, 0x9C, 0x0D, 0xA6, 0x5E, 0x9E, 0x08, 0xD2, 0xC2, 0xAA,
+ 0x02, 0x09, 0x20, 0x5D, 0x08, 0xF2, 0x41, 0xAA, 0x8C, 0x2E, 0x46, 0x77, 0x08, 0xDA, 0xC5, 0xAA, 0x00, 0xC2, 0x99, 0x58, 0x52, 0xB3, 0x24, 0x48, 0x08, 0xD2, 0x45, 0xAA, 0x3E, 0xC0,
+ 0xC0, 0x2A, 0x80, 0xC2, 0xB0, 0x5A, 0xF0, 0xC3, 0x80, 0x28, 0xD2, 0x32, 0xF1, 0xD0, 0xCE, 0x28, 0xD2, 0x32, 0x51, 0x9E, 0x00, 0xC1, 0x40, 0x5A, 0x42, 0x31, 0x60, 0xC0, 0xA2, 0x0D,
+ 0xA6, 0x31, 0x54, 0xFF, 0xAA, 0x99, 0x60, 0xC0, 0xB2, 0x0D, 0x8B, 0x01, 0x54, 0xFF, 0xA5, 0x99, 0x02, 0x85, 0x46, 0x77, 0xA6, 0xD2, 0x8C, 0x5D, 0xC0, 0x85, 0x5A, 0xE0, 0x46, 0x80,
+ 0x00, 0xC0, 0x60, 0x92, 0x00, 0xC0, 0x20, 0x91, 0x00, 0xC0, 0x80, 0x91, 0x00, 0xC0, 0xA0, 0x91, 0x00, 0xC0, 0x40, 0x90, 0x06, 0x85, 0xCF, 0x9D, 0xF4, 0xFF, 0x4D, 0x9B, 0x00, 0xC0,
+ 0xA0, 0x90, 0xB3, 0x9E, 0xF4, 0xFF, 0x43, 0x99, 0x08, 0xD2, 0xCD, 0xA9, 0x0E, 0xC0, 0xF0, 0x29, 0x60, 0xC0, 0xD2, 0x0D, 0xA0, 0x59, 0x54, 0xFF, 0x82, 0x99, 0x9F, 0xB7, 0xEE, 0x7E,
+ 0xBF, 0xB7, 0x6E, 0x7F, 0xDF, 0xB7, 0xEE, 0x7F, 0x60, 0x8C, 0x22, 0x9C, 0x71, 0xD1, 0x3A, 0x0E, 0x04, 0xC0, 0xF0, 0x0D, 0x10, 0xD0, 0xE2, 0xA8, 0x08, 0xD2, 0x01, 0xA8, 0xD1, 0xD3,
+ 0x10, 0x2E, 0x31, 0xD0, 0x98, 0x2C, 0x8C, 0x2C, 0x02, 0xC0, 0x7C, 0x28, 0x20, 0x58, 0x08, 0x30, 0x4C, 0x9E, 0x02, 0x30, 0x08, 0x30, 0x22, 0x9C, 0x39, 0xF8, 0x85, 0xA2, 0xD0, 0xD0,
+ 0xED, 0xA8, 0x9A, 0x9E, 0x10, 0xD0, 0x41, 0xAA, 0x02, 0xC0, 0xC0, 0x28, 0x91, 0x58, 0x0E, 0xC0, 0x70, 0x2A, 0x42, 0x32, 0x10, 0xD0, 0x41, 0xA2, 0xD0, 0xD0, 0xFD, 0xA8, 0x10, 0xD8,
+ 0x45, 0xAA, 0x3F, 0xC0, 0x7E, 0x08, 0x00, 0xCC, 0x00, 0x08, 0x0E, 0xC0, 0xF0, 0x28, 0xC0, 0xCF, 0x3C, 0x2A, 0x88, 0x58, 0x42, 0x32, 0x10, 0xD8, 0x45, 0xA2, 0xFF, 0xCF, 0x42, 0x0A,
+ 0xFE, 0xC3, 0x7C, 0x0A, 0x50, 0xD8, 0xFD, 0xA8, 0x5B, 0x9E, 0xA0, 0x9E, 0x10, 0xF0, 0xC2, 0xA8, 0x3E, 0xC0, 0xC0, 0x28, 0xA8, 0x58, 0x8D, 0x9E, 0x90, 0x24, 0x9A, 0x34, 0x10, 0xF0,
+ 0xC2, 0xA0, 0x50, 0xD8, 0x69, 0xAA, 0x10, 0xD0, 0xC5, 0xA8, 0x11, 0xD0, 0x28, 0x0D, 0x3E, 0xC0, 0x40, 0x2A, 0x0C, 0xC0, 0x80, 0x28, 0x00, 0xC2, 0x11, 0x5A, 0x98, 0x30, 0x10, 0xD0,
+ 0xC5, 0xA0, 0x90, 0xF0, 0x79, 0xAA, 0x10, 0xD0, 0xCD, 0xA8, 0x72, 0xD1, 0xBC, 0x0C, 0xC0, 0xCC, 0x00, 0x2A, 0x8C, 0x28, 0x00, 0xC2, 0x21, 0x5A, 0x98, 0x30, 0x10, 0xD0, 0xCD, 0xA0,
+ 0x20, 0xB7, 0x49, 0x40, 0x10, 0xD0, 0x41, 0xAA, 0xC1, 0xCF, 0x02, 0x0C, 0xFE, 0xC3, 0x7C, 0x0C, 0x06, 0xC0, 0xC0, 0x28, 0x0E, 0xC0, 0x0C, 0x2A, 0x89, 0x58, 0x42, 0x32, 0x10, 0xD0,
+ 0x41, 0xA2, 0x20, 0xB7, 0x4B, 0x40, 0x60, 0xB9, 0x18, 0x40, 0x7C, 0x2A, 0x38, 0xC0, 0x80, 0x28, 0x89, 0x58, 0x42, 0x32, 0x10, 0xD0, 0x41, 0xA2, 0x08, 0xD8, 0xC1, 0xA8, 0x08, 0xD8,
+ 0x61, 0xAA, 0x00, 0xCC, 0x80, 0x28, 0xFE, 0xC3, 0x7C, 0x2A, 0x98, 0x30, 0x08, 0xD8, 0xC1, 0xA0, 0x29, 0xF0, 0x65, 0xAA, 0x08, 0xF0, 0xC2, 0xA8, 0x40, 0x22, 0xA5, 0x9E, 0x90, 0x24,
+ 0x9A, 0x34, 0x29, 0xF0, 0xC6, 0xA0, 0xFF, 0xFF, 0x61, 0x91, 0x91, 0xD0, 0x36, 0x0D, 0x12, 0xD0, 0xAE, 0x0C, 0x60, 0xB9, 0x08, 0x40, 0x80, 0xB7, 0x49, 0x40, 0x29, 0xD0, 0xD1, 0xA8,
+ 0x0C, 0xC0, 0x0C, 0x2A, 0x02, 0xC0, 0xF0, 0x28, 0x42, 0x32, 0x31, 0xD0, 0x31, 0xA2, 0xFF, 0xFF, 0xA1, 0x92, 0xF8, 0xF9, 0x9D, 0xAA, 0x22, 0x9C, 0x1D, 0xA6, 0x06, 0xC0, 0x02, 0x69,
+ 0x5F, 0x9E, 0x24, 0xD1, 0x89, 0x5A, 0x82, 0x0D, 0x07, 0x03, 0x00, 0xC1, 0x1C, 0x5F, 0x34, 0xFF, 0xEB, 0x98, 0xA0, 0xB7, 0x8C, 0x44, 0x34, 0xC0, 0xA0, 0x0A, 0x08, 0xF2, 0xA1, 0xA8,
+ 0x80, 0xE0, 0xC1, 0x58, 0xCA, 0xCF, 0xE1, 0x0A, 0x00, 0xC0, 0x02, 0x91, 0x01, 0xC0, 0xB6, 0x0D, 0x10, 0xCB, 0xB0, 0x0D, 0xB4, 0xFF, 0x0D, 0x9B, 0x69, 0x9E, 0x34, 0xC0, 0x90, 0x0A,
+ 0xE9, 0xF3, 0x3D, 0xA3, 0x0B, 0x02, 0x41, 0xC0, 0x84, 0x38, 0x08, 0xF2, 0x81, 0xA0, 0x74, 0x9E, 0x8B, 0x05, 0xF8, 0x01, 0x34, 0xFF, 0x39, 0x99, 0x9F, 0xB7, 0x6E, 0x7E, 0xBF, 0xB7,
+ 0xEE, 0x7E, 0xDF, 0xB7, 0x6E, 0x7F, 0xFF, 0xB7, 0xEE, 0x7F, 0x02, 0xC0, 0x00, 0x8C, 0x22, 0x9C, 0x1D, 0xA6, 0x02, 0xC0, 0x20, 0x84, 0x07, 0x02, 0xA5, 0x9E, 0x55, 0x9E, 0x6B, 0x9E,
+ 0x9F, 0xB5, 0x6C, 0x7B, 0x91, 0xD1, 0xC0, 0x08, 0x3F, 0xB5, 0xEC, 0x7B, 0x82, 0x08, 0x3F, 0xB5, 0xEC, 0x7D, 0x7F, 0xB5, 0x74, 0x7C, 0x02, 0x0D, 0x5F, 0xB5, 0xEC, 0x7C, 0x06, 0x09,
+ 0x3F, 0xB5, 0x74, 0x7D, 0x0C, 0xC0, 0x00, 0x0A, 0x9F, 0xB5, 0xEC, 0x7E, 0xF4, 0xFF, 0xAC, 0x9B, 0x82, 0x0D, 0x34, 0xFF, 0x9E, 0x98, 0xFE, 0xC9, 0xFD, 0x2A, 0xA2, 0x0D, 0x8B, 0x01,
+ 0x00, 0xC4, 0x80, 0x39, 0x54, 0xFF, 0x6E, 0x98, 0x8B, 0x05, 0xF4, 0xFF, 0xF3, 0x9A, 0x01, 0x03, 0x40, 0xC0, 0x82, 0x0D, 0x8D, 0x01, 0x54, 0xFF, 0x65, 0x98, 0x60, 0xC0, 0x82, 0x0D,
+ 0x8D, 0x01, 0x54, 0xFF, 0x60, 0x98, 0x5F, 0xB7, 0x6C, 0x7D, 0x9F, 0xB7, 0xEC, 0x7C, 0x5F, 0xB7, 0x7C, 0x7D, 0x29, 0x61, 0x82, 0x0B, 0xF5, 0x71, 0x5F, 0xB5, 0x6C, 0x7E, 0x04, 0xC0,
+ 0xA8, 0x91, 0x1F, 0xB7, 0xF4, 0x7C, 0x3F, 0xB7, 0xEC, 0x7E, 0x02, 0x0F, 0x11, 0xD0, 0x72, 0x09, 0x80, 0x73, 0x5F, 0xB5, 0x6C, 0x7F, 0x83, 0x02, 0x03, 0xC0, 0x08, 0x93, 0xE0, 0xB7,
+ 0x94, 0x44, 0x34, 0xC0, 0xA0, 0x0F, 0x3F, 0xB7, 0xEC, 0x7D, 0x5F, 0xB7, 0x6C, 0x7E, 0xFC, 0xCF, 0x63, 0x0C, 0x11, 0xD0, 0x12, 0x2A, 0x84, 0x08, 0x3F, 0xB5, 0xEC, 0x7D, 0x44, 0x70,
+ 0x00, 0xC2, 0x88, 0x58, 0x01, 0xC2, 0x02, 0x81, 0x20, 0xE2, 0xA9, 0x80, 0xA0, 0xB7, 0x55, 0x40, 0x00, 0xC0, 0x28, 0x93, 0x3F, 0xB7, 0xEC, 0x7D, 0x11, 0xD0, 0x12, 0x2A, 0x00, 0xC2,
+ 0x88, 0x58, 0x01, 0xC2, 0x02, 0x81, 0x20, 0xE2, 0xA9, 0x80, 0x1F, 0xB7, 0x74, 0x7C, 0x60, 0xB7, 0x4D, 0x40, 0x3F, 0xB7, 0xF4, 0x7D, 0x06, 0x09, 0x81, 0x05, 0x03, 0x05, 0xF4, 0xFF,
+ 0x4A, 0x9B, 0x00, 0xC0, 0x20, 0x92, 0x82, 0x0D, 0x34, 0xFF, 0x3A, 0x98, 0x10, 0xF2, 0x61, 0xAA, 0x00, 0xE2, 0x41, 0x5A, 0x00, 0xC0, 0x02, 0x91, 0x01, 0xC0, 0xB6, 0x0D, 0x10, 0xCB,
+ 0xB0, 0x0D, 0xB4, 0xFF, 0x62, 0x9A, 0x8B, 0x05, 0xF4, 0xFF, 0x8B, 0x9A, 0x0D, 0x02, 0x01, 0x03, 0x0C, 0x71, 0x00, 0xC0, 0x82, 0x91, 0x40, 0xC0, 0x92, 0x0D, 0x82, 0x09, 0x34, 0xFF,
+ 0xF9, 0x9B, 0x40, 0xC0, 0x82, 0x0D, 0x8D, 0x01, 0x34, 0xFF, 0xF4, 0x9B, 0xC0, 0x75, 0x00, 0xC0, 0x62, 0x92, 0xAB, 0x9E, 0x73, 0x9E, 0x12, 0xD0, 0x72, 0x19, 0xF4, 0xFF, 0x1E, 0x9A,
+ 0x73, 0x9E, 0xBA, 0x9E, 0x8B, 0x05, 0xF4, 0xFF, 0xAE, 0x99, 0x8B, 0x05, 0x8B, 0x01, 0xF4, 0xFF, 0x7F, 0x9A, 0x00, 0xC0, 0x60, 0x91, 0x73, 0x9E, 0x8B, 0x05, 0x02, 0x0D, 0xF4, 0xFF,
+ 0xA3, 0x99, 0x8B, 0x05, 0x8B, 0x01, 0xF4, 0xFF, 0x74, 0x9A, 0x5F, 0xB7, 0xFC, 0x7C, 0x04, 0x0F, 0xB5, 0x73, 0xD0, 0x0A, 0xFC, 0xFF, 0x06, 0x92, 0x3F, 0xB7, 0x6C, 0x7F, 0x5F, 0xB7,
+ 0x6C, 0x7D, 0x83, 0x03, 0xC4, 0x71, 0xFB, 0xFF, 0xE6, 0x92, 0x40, 0xC0, 0x92, 0x0D, 0x82, 0x09, 0x34, 0xFF, 0xC3, 0x9B, 0x40, 0xC0, 0x92, 0x0D, 0x86, 0x09, 0x34, 0xFF, 0xBE, 0x9B,
+ 0x06, 0x08, 0x9F, 0xB7, 0xEE, 0x7B, 0xBF, 0xB7, 0x6E, 0x7C, 0xDF, 0xB7, 0xEE, 0x7C, 0xFF, 0xB7, 0x6E, 0x7D, 0x04, 0xC0, 0x20, 0x8C, 0x22, 0x9C, 0x1D, 0xA6, 0x20, 0x84, 0x83, 0xB7,
+ 0x88, 0x74, 0x1C, 0xC0, 0x3E, 0x7D, 0x5E, 0x9E, 0x12, 0xD0, 0x00, 0x40, 0x03, 0xC0, 0x64, 0x92, 0x06, 0x85, 0x43, 0xB5, 0x98, 0x74, 0x01, 0xC9, 0x80, 0x9C, 0x88, 0xF2, 0x45, 0xA2,
+ 0xB3, 0x9E, 0x86, 0x09, 0xB4, 0xFF, 0x1B, 0x9B, 0xC0, 0xB5, 0x8C, 0x49, 0x82, 0x0D, 0x14, 0xFF, 0xBF, 0x9B, 0x80, 0xB7, 0x8C, 0x4A, 0x08, 0xF2, 0xD5, 0xAB, 0x08, 0xF2, 0x52, 0xAB,
+ 0x9F, 0xB5, 0x6C, 0x7F, 0xA4, 0xD3, 0x90, 0x5A, 0x22, 0xD3, 0x90, 0x5E, 0x48, 0xF2, 0xC2, 0xAB, 0x84, 0x1E, 0xA2, 0xD2, 0xB0, 0x5D, 0x84, 0x1A, 0x82, 0x0D, 0xBA, 0x31, 0x34, 0xFF,
+ 0x81, 0x9B, 0xA2, 0xD2, 0xB0, 0x5D, 0x92, 0x0D, 0xBA, 0x31, 0x34, 0xFF, 0x7B, 0x9B, 0xB2, 0x0D, 0x08, 0xF2, 0xD9, 0xA9, 0x34, 0xFF, 0x76, 0x9B, 0xC2, 0x0D, 0x08, 0xF2, 0xDD, 0xA9,
+ 0x34, 0xFF, 0x71, 0x9B, 0x48, 0xF2, 0xCD, 0xA9, 0x11, 0xD0, 0x36, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x62, 0x93, 0xA0, 0x39, 0x02, 0xC0, 0xF2, 0x0D, 0xED, 0x29, 0x34, 0xFF, 0x64, 0x9B,
+ 0x02, 0xC0, 0xA2, 0x0D, 0x48, 0xF2, 0xC5, 0xA9, 0x34, 0xFF, 0x5E, 0x9B, 0x02, 0xC0, 0xB2, 0x0D, 0x48, 0xF2, 0xC9, 0xA9, 0x34, 0xFF, 0x58, 0x9B, 0x02, 0xC0, 0xC2, 0x0D, 0x82, 0x09,
+ 0x34, 0xFF, 0x53, 0x9B, 0x00, 0xC0, 0x20, 0x92, 0x02, 0xC0, 0xA2, 0x0D, 0x82, 0x09, 0x34, 0xFF, 0x4C, 0x9B, 0x02, 0xC0, 0xB2, 0x0D, 0x82, 0x09, 0x34, 0xFF, 0x47, 0x9B, 0x02, 0xC0,
+ 0xC2, 0x0D, 0x82, 0x09, 0x34, 0xFF, 0x42, 0x9B, 0x08, 0xF2, 0x4A, 0xA9, 0x9F, 0xB7, 0x6C, 0x7F, 0x72, 0x9E, 0xB9, 0x9E, 0x8F, 0x05, 0x89, 0x01, 0xF4, 0xFF, 0xA3, 0x9A, 0x0E, 0xC0,
+ 0x7C, 0x28, 0x9F, 0xB7, 0xEE, 0x7D, 0xBF, 0xB7, 0x6E, 0x7E, 0xDF, 0xB7, 0xEE, 0x7E, 0xFF, 0xB7, 0x6E, 0x7F, 0x02, 0xC0, 0x20, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x60, 0xB7, 0x94, 0x55,
+ 0xA0, 0xB7, 0x8C, 0x57, 0x02, 0x85, 0x91, 0xD0, 0x3C, 0x0E, 0x88, 0xD2, 0xBD, 0xA8, 0x08, 0xD2, 0x03, 0xA1, 0x91, 0xD0, 0x3E, 0x0E, 0x46, 0x74, 0x08, 0xD2, 0x03, 0xA1, 0x00, 0xC0,
+ 0xA2, 0x90, 0xAA, 0x09, 0x74, 0xC0, 0x59, 0x99, 0x88, 0xD2, 0x31, 0xAA, 0x04, 0x75, 0x01, 0xC0, 0x44, 0x92, 0x08, 0xD2, 0x29, 0xAA, 0x00, 0x75, 0x01, 0xC0, 0x22, 0x91, 0x88, 0xD2,
+ 0x35, 0xAA, 0x00, 0x75, 0x00, 0xC0, 0x84, 0x90, 0x14, 0xC0, 0x81, 0x9B, 0x88, 0xD2, 0x3D, 0xAA, 0x06, 0x75, 0x01, 0xC0, 0x64, 0x90, 0x88, 0xD2, 0x39, 0xAA, 0x00, 0x75, 0x82, 0x0C,
+ 0x01, 0xD0, 0x92, 0x0C, 0x06, 0x75, 0x4C, 0x9E, 0x82, 0x08, 0x01, 0xD0, 0x92, 0x08, 0x00, 0xE0, 0x42, 0x32, 0x00, 0xC0, 0x02, 0x91, 0x88, 0xD2, 0xB6, 0xA9, 0x34, 0xC0, 0x20, 0x98,
+ 0x00, 0xC0, 0xC0, 0x91, 0x88, 0xD2, 0xB6, 0xA9, 0x34, 0xC0, 0x72, 0x98, 0x00, 0xC0, 0x00, 0x91, 0x14, 0xC0, 0x3B, 0x9A, 0x00, 0xC0, 0x80, 0x90, 0x34, 0xC0, 0xD2, 0x99, 0x14, 0xC0,
+ 0x8C, 0x98, 0x54, 0xC0, 0x1E, 0x9A, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x20, 0xB7, 0x94, 0x57, 0xA2, 0xD1, 0x05, 0x5E, 0x11, 0xD0, 0xB2, 0x2C,
+ 0x04, 0x2A, 0x20, 0xB5, 0x49, 0x43, 0x80, 0xB5, 0xC9, 0x42, 0xA2, 0xD1, 0x8D, 0x5C, 0xA2, 0xD1, 0x11, 0x5E, 0x84, 0x28, 0x20, 0xB5, 0x49, 0x42, 0x04, 0x2A, 0x80, 0xB5, 0xC9, 0x41,
+ 0xA2, 0xD1, 0x95, 0x5C, 0xA2, 0xD1, 0x19, 0x5E, 0x84, 0x28, 0x20, 0xB5, 0x49, 0x41, 0x04, 0x2A, 0x80, 0xB5, 0xC9, 0x40, 0xA2, 0xD1, 0x9D, 0x5C, 0xA2, 0xD1, 0x21, 0x5E, 0x84, 0x28,
+ 0x20, 0xB5, 0x49, 0x40, 0x04, 0x2A, 0x80, 0xB5, 0xC9, 0x46, 0xA2, 0xD1, 0xA5, 0x5C, 0xA2, 0xD1, 0x2D, 0x5E, 0x8C, 0x28, 0x20, 0xB5, 0x49, 0x46, 0x04, 0x2A, 0x80, 0xB5, 0xC9, 0x45,
+ 0xA2, 0xD1, 0xB1, 0x5C, 0xA2, 0xD1, 0x35, 0x5E, 0x84, 0x28, 0x20, 0xB5, 0x49, 0x45, 0x04, 0x2A, 0x80, 0xB5, 0xC9, 0x44, 0xA2, 0xD1, 0xB9, 0x5C, 0xA2, 0xD1, 0x3D, 0x5E, 0x84, 0x28,
+ 0x20, 0xB5, 0x49, 0x44, 0x04, 0x2A, 0x80, 0xB5, 0xC9, 0x43, 0xA2, 0xD1, 0xC1, 0x5C, 0xA2, 0xD1, 0x4D, 0x5E, 0x9C, 0x28, 0x20, 0xB5, 0x49, 0x49, 0x04, 0x2A, 0x80, 0xB5, 0xC9, 0x48,
+ 0xA2, 0xD1, 0xD1, 0x5C, 0xA2, 0xD1, 0x55, 0x5E, 0x84, 0x28, 0x20, 0xB5, 0x49, 0x48, 0x04, 0x2A, 0x80, 0xB5, 0xC9, 0x47, 0xA2, 0xD1, 0xD9, 0x5C, 0xA2, 0xD1, 0x61, 0x5E, 0x8C, 0x28,
+ 0x20, 0xB5, 0x49, 0x47, 0x04, 0x2A, 0x80, 0xB5, 0xC9, 0x49, 0xA2, 0xD1, 0xE5, 0x5C, 0xA2, 0xD1, 0x09, 0x5E, 0x8C, 0x28, 0x20, 0xB5, 0x49, 0x4A, 0x04, 0x2A, 0x80, 0xB5, 0xC9, 0x4A,
+ 0xA2, 0xD1, 0xED, 0x5C, 0xA2, 0xD1, 0x79, 0x5E, 0x60, 0xB5, 0xC9, 0x4C, 0xC1, 0x59, 0x60, 0xB5, 0x49, 0x4D, 0xF5, 0x5D, 0x84, 0x2D, 0x60, 0xB5, 0x51, 0x4C, 0x8C, 0x28, 0x20, 0xB5,
+ 0x49, 0x4B, 0x80, 0xB5, 0xC9, 0x4B, 0x22, 0x9C, 0x8D, 0xA6, 0x40, 0x84, 0x80, 0xB7, 0x8C, 0x55, 0x08, 0xD2, 0x99, 0xAA, 0xC9, 0x9D, 0x82, 0x08, 0x82, 0x0B, 0x48, 0x75, 0x3F, 0xB5,
+ 0x6C, 0x7E, 0xFF, 0xB5, 0x6C, 0x7F, 0x00, 0xC0, 0x84, 0x90, 0x00, 0xD0, 0xDD, 0xAA, 0x20, 0xB7, 0x8C, 0x57, 0x80, 0xB7, 0xA9, 0x4B, 0x04, 0x75, 0x8E, 0x9E, 0x00, 0xC0, 0x64, 0x93,
+ 0x90, 0xD2, 0xD9, 0xA8, 0x11, 0xD0, 0x12, 0x1A, 0x0E, 0xC0, 0x7C, 0x2A, 0x02, 0x75, 0x00, 0xC0, 0x52, 0x92, 0xF1, 0xD3, 0x1E, 0x2A, 0x02, 0x75, 0x82, 0x0A, 0x00, 0xC0, 0x44, 0x91,
+ 0x91, 0xF0, 0x24, 0x86, 0x08, 0xD2, 0x81, 0xA8, 0x42, 0x74, 0x00, 0xC0, 0x64, 0x90, 0x8E, 0x0A, 0x00, 0xD0, 0xD9, 0xA2, 0x40, 0x75, 0x02, 0x0A, 0x01, 0xD0, 0x42, 0x0A, 0x46, 0x75,
+ 0x82, 0x08, 0x01, 0xD0, 0x92, 0x08, 0x00, 0xE0, 0x42, 0x32, 0x10, 0xD2, 0xDA, 0xA8, 0x02, 0x09, 0x01, 0xD0, 0x22, 0x09, 0x42, 0x76, 0x5F, 0xB5, 0xEC, 0x7E, 0x00, 0xC0, 0x04, 0x92,
+ 0x60, 0xB7, 0x84, 0x74, 0x80, 0xD0, 0x5B, 0xA9, 0x80, 0xB7, 0x0C, 0x75, 0x3D, 0x9E, 0x47, 0x9D, 0x30, 0xC0, 0x4D, 0xAB, 0x40, 0xC0, 0xA6, 0xAA, 0x00, 0xC0, 0x80, 0x90, 0x02, 0x0B,
+ 0x82, 0x0E, 0x90, 0xD2, 0x59, 0xAA, 0x04, 0x75, 0x01, 0xC0, 0xA4, 0x92, 0x40, 0xB7, 0x9C, 0x75, 0x00, 0xD0, 0xCA, 0xA8, 0x60, 0xB7, 0x04, 0x76, 0xCB, 0x9D, 0x20, 0xC0, 0x29, 0xAA,
+ 0xE8, 0x9D, 0x20, 0xB7, 0x0C, 0x74, 0x20, 0xC0, 0xAA, 0xA8, 0x04, 0x1A, 0x26, 0xD2, 0x04, 0x59, 0x90, 0xD2, 0x5D, 0xAA, 0x4B, 0x9D, 0x10, 0xC8, 0xC5, 0xA8, 0x06, 0x75, 0x4C, 0x9E,
+ 0x43, 0x62, 0x9F, 0xB5, 0x6C, 0x7F, 0x00, 0xC0, 0x04, 0x93, 0x80, 0xD0, 0x4B, 0xA9, 0x01, 0xC3, 0x45, 0x62, 0x00, 0xC2, 0x21, 0x5A, 0x0E, 0xC0, 0x7C, 0x2A, 0x10, 0xE3, 0xA1, 0x88,
+ 0x9F, 0xB5, 0x6C, 0x7E, 0x84, 0x18, 0xF1, 0xD3, 0x9E, 0x2B, 0x27, 0xBA, 0x00, 0x40, 0x3F, 0x75, 0x02, 0x85, 0x72, 0xB3, 0x7A, 0x44, 0x5F, 0x9D, 0x60, 0xB7, 0x04, 0x55, 0x00, 0xD0,
+ 0x59, 0xA9, 0x00, 0xD0, 0x42, 0xA9, 0x91, 0xE0, 0xAC, 0x86, 0x00, 0xD0, 0xC5, 0xA9, 0x80, 0xB7, 0x29, 0x40, 0x91, 0xE0, 0xAE, 0x86, 0x00, 0xD0, 0xCA, 0xA9, 0x20, 0xB7, 0x31, 0x40,
+ 0x30, 0x5D, 0x2E, 0x9D, 0x00, 0xD0, 0x4E, 0xA8, 0xCC, 0x5C, 0x1A, 0x9D, 0x00, 0xD0, 0xDD, 0xA8, 0x40, 0x59, 0x94, 0x5D, 0x08, 0x5C, 0x00, 0xC2, 0x68, 0x5A, 0x01, 0xC2, 0x00, 0x3A,
+ 0xB4, 0x58, 0x01, 0xC3, 0x44, 0x32, 0x44, 0x32, 0x42, 0x32, 0x01, 0xC3, 0x46, 0x32, 0x59, 0x9E, 0x42, 0x9E, 0x5A, 0x9D, 0x3D, 0x9E, 0x40, 0xD0, 0x55, 0xA8, 0xA8, 0x59, 0x46, 0x32,
+ 0x42, 0x32, 0x44, 0x32, 0x00, 0xC3, 0x84, 0x58, 0x42, 0x32, 0x01, 0xC3, 0x44, 0x32, 0x02, 0x85, 0x02, 0x74, 0x00, 0xF0, 0x61, 0xA2, 0x00, 0xF0, 0x67, 0xA1, 0x00, 0xC0, 0xC4, 0x90,
+ 0x40, 0xD0, 0x5D, 0xAA, 0x00, 0xC0, 0x80, 0x90, 0x80, 0xD0, 0x41, 0xAA, 0x00, 0xC2, 0x60, 0x5A, 0x00, 0xF0, 0x65, 0xA2, 0x40, 0xD0, 0xC1, 0xA8, 0x02, 0x85, 0x18, 0xF0, 0x77, 0xA1,
+ 0x80, 0xD0, 0x49, 0xAA, 0x50, 0x74, 0x80, 0xD0, 0xD2, 0xA8, 0x80, 0xD0, 0xCD, 0xA8, 0x02, 0x0D, 0x09, 0xD0, 0x22, 0x0D, 0x80, 0xD0, 0x55, 0xA9, 0x00, 0xC2, 0x58, 0x5A, 0xD0, 0x5C,
+ 0xD4, 0x58, 0x42, 0x32, 0x49, 0x9E, 0x00, 0xD0, 0xCD, 0xA9, 0x48, 0x59, 0x42, 0x32, 0x44, 0x32, 0x5F, 0xB7, 0xEC, 0x7E, 0xA0, 0x59, 0xED, 0xA1, 0x00, 0xC1, 0xC4, 0x58, 0x42, 0x32,
+ 0x69, 0xA2, 0x40, 0xD0, 0xCD, 0xA8, 0xC0, 0xD0, 0xCA, 0xA8, 0x65, 0xAA, 0x40, 0xD0, 0x51, 0xA9, 0x40, 0xD0, 0xD6, 0xA9, 0xD4, 0x5C, 0x1A, 0x9D, 0x00, 0xD0, 0x51, 0xA8, 0xBC, 0x58,
+ 0x42, 0x32, 0x98, 0x5D, 0x59, 0x9E, 0x80, 0xD0, 0xC5, 0xA9, 0x08, 0x58, 0x81, 0x9E, 0x40, 0xD0, 0x5A, 0xA8, 0x42, 0x75, 0x34, 0x59, 0xA0, 0x59, 0x14, 0x5C, 0x01, 0xC3, 0x44, 0x32,
+ 0x44, 0x32, 0x46, 0x32, 0x42, 0x32, 0x42, 0x9E, 0x67, 0x9D, 0x00, 0xD0, 0xD5, 0xAA, 0x44, 0x32, 0x49, 0x9D, 0x10, 0x5D, 0x01, 0xC3, 0x24, 0x35, 0x59, 0x9D, 0x82, 0x0F, 0x22, 0x35,
+ 0x01, 0xC3, 0x24, 0x35, 0x66, 0xA1, 0x00, 0xC0, 0xE4, 0x90, 0x90, 0xD2, 0x5D, 0xAA, 0x04, 0x75, 0x00, 0xC0, 0x64, 0x90, 0x86, 0x0F, 0x02, 0x85, 0xA2, 0xD3, 0x40, 0x5E, 0x90, 0xD2,
+ 0xDA, 0xA8, 0x18, 0xF0, 0x7F, 0xA1, 0x20, 0xB7, 0xAD, 0x42, 0x02, 0x08, 0x44, 0x76, 0x98, 0x30, 0x18, 0xF0, 0xF5, 0xA0, 0x00, 0xC0, 0x02, 0x91, 0x00, 0xD0, 0x4D, 0xAA, 0x00, 0x75,
+ 0x02, 0x08, 0x02, 0xD0, 0x02, 0x08, 0x3F, 0xB7, 0x68, 0x78, 0xA2, 0xD2, 0xC0, 0x5D, 0xC0, 0xD0, 0x4E, 0xA8, 0x27, 0xBA, 0x00, 0x40, 0x00, 0xC2, 0x20, 0x5A, 0x09, 0xBA, 0x00, 0x40,
+ 0x42, 0x32, 0x58, 0xF0, 0x65, 0xA2, 0x3F, 0xB7, 0x6C, 0x7F, 0x00, 0x76, 0x00, 0xC3, 0x3C, 0x5A, 0x58, 0xF0, 0xE9, 0xA0, 0x00, 0xD0, 0xDE, 0xA8, 0xB8, 0x31, 0x00, 0xD0, 0xD9, 0xA8,
+ 0x80, 0xD0, 0x56, 0xA9, 0x8C, 0x5C, 0x4A, 0x9E, 0x82, 0x0C, 0x01, 0xD0, 0x92, 0x0C, 0x80, 0xD0, 0x49, 0xAA, 0x94, 0x58, 0xB2, 0x31, 0x0C, 0x5D, 0x2A, 0x9D, 0x80, 0xD0, 0xCD, 0xA8,
+ 0x00, 0xC2, 0x1C, 0x5A, 0xB4, 0x31, 0x9B, 0x9E, 0x80, 0xD0, 0x51, 0xA9, 0x00, 0xC4, 0x80, 0x39, 0x00, 0xC6, 0x80, 0x3D, 0x98, 0x58, 0x42, 0x32, 0x14, 0x59, 0x44, 0x32, 0x5F, 0xB7,
+ 0xEC, 0x7E, 0x33, 0xB3, 0x22, 0x48, 0x01, 0xC3, 0x44, 0x32, 0x00, 0xC1, 0x88, 0x58, 0x42, 0x32, 0x58, 0xF0, 0x6D, 0xA2, 0x40, 0xD0, 0xCD, 0xA8, 0x00, 0xC0, 0x38, 0x5A, 0xA2, 0x9E,
+ 0x00, 0xD0, 0x49, 0xA9, 0xA0, 0x58, 0x19, 0x9D, 0xB4, 0x5C, 0x94, 0x34, 0x0C, 0x59, 0x92, 0x9E, 0x58, 0xF0, 0xE1, 0xA1, 0x01, 0xC3, 0x94, 0x34, 0x94, 0x34, 0x18, 0xF0, 0xFE, 0xA0,
+ 0xBF, 0xB7, 0xEE, 0x7D, 0xDF, 0xB7, 0x6E, 0x7E, 0xFF, 0xB7, 0xEE, 0x7E, 0x02, 0xC0, 0x20, 0x8C, 0x22, 0x9C, 0x0D, 0xA6, 0xE2, 0x0D, 0x14, 0xFF, 0xFD, 0x9A, 0x02, 0x74, 0x00, 0xC0,
+ 0x04, 0x91, 0xE2, 0x0D, 0x14, 0xFF, 0xF1, 0x9A, 0xA2, 0x0D, 0x14, 0xFF, 0xEE, 0x9A, 0x60, 0xB7, 0x94, 0x5D, 0xA0, 0xB7, 0x94, 0x55, 0x34, 0xC0, 0xBB, 0x98, 0x40, 0xB7, 0x84, 0x5F,
+ 0xC0, 0xB7, 0x8C, 0x57, 0x90, 0xD2, 0x3D, 0xA0, 0x90, 0xD2, 0x3F, 0xA9, 0x6D, 0x9E, 0x08, 0xD2, 0x4D, 0xAA, 0x2D, 0x9E, 0xB6, 0x9E, 0x30, 0xC0, 0xCD, 0xA8, 0x00, 0x75, 0x90, 0xD2,
+ 0xBD, 0xA0, 0x00, 0xC0, 0xA2, 0x90, 0xA2, 0x0D, 0x14, 0xFF, 0xD1, 0x9A, 0x34, 0xC0, 0xDE, 0x98, 0x90, 0xD2, 0x3D, 0xAA, 0x08, 0x75, 0x07, 0xC0, 0xA2, 0x91, 0x86, 0x0D, 0x14, 0xFF,
+ 0xC7, 0x9A, 0x08, 0xD2, 0x49, 0xAA, 0x00, 0x75, 0x00, 0xC0, 0xA2, 0x90, 0x86, 0x0D, 0x14, 0xFF, 0xBF, 0x9A, 0x08, 0xD2, 0x51, 0xAA, 0x00, 0x75, 0x00, 0xC0, 0xA2, 0x90, 0x86, 0x0D,
+ 0x14, 0xFF, 0xB7, 0x9A, 0x90, 0xD2, 0x3D, 0xAA, 0x04, 0x75, 0x00, 0xC0, 0x04, 0x91, 0x60, 0xB7, 0x14, 0x5E, 0x34, 0xC0, 0x81, 0x98, 0x10, 0xD2, 0x29, 0xA0, 0x34, 0xC0, 0x39, 0x99,
+ 0x08, 0xD2, 0x41, 0xAA, 0x02, 0x75, 0x00, 0xC0, 0xA4, 0x90, 0x8A, 0x0D, 0x14, 0xFF, 0xA2, 0x9A, 0x90, 0xD2, 0x3D, 0xAA, 0x04, 0x1A, 0x0E, 0xC0, 0x7C, 0x2A, 0x02, 0x75, 0x04, 0xC0,
+ 0x72, 0x91, 0x48, 0xD2, 0x4D, 0xAA, 0x02, 0x75, 0x00, 0xC0, 0x44, 0x91, 0x60, 0xB7, 0x94, 0x5E, 0x34, 0xC0, 0x64, 0x98, 0x90, 0xD2, 0x35, 0xA0, 0x00, 0xC0, 0xA0, 0x90, 0x02, 0x85,
+ 0x90, 0xD2, 0x37, 0xA1, 0x88, 0xD2, 0x3D, 0xAA, 0x02, 0x75, 0x01, 0xC0, 0x84, 0x90, 0x34, 0xC0, 0x79, 0x99, 0x08, 0xD2, 0x39, 0xAA, 0x08, 0x75, 0x00, 0xC0, 0x44, 0x91, 0x34, 0xC0,
+ 0xA4, 0x99, 0x9A, 0x0D, 0x14, 0xFF, 0x79, 0x9A, 0x9A, 0x0D, 0x14, 0xFF, 0x76, 0x9A, 0x08, 0xD2, 0x39, 0xAA, 0x06, 0x75, 0x00, 0xC0, 0x42, 0x91, 0x08, 0xF2, 0x25, 0xAA, 0xFF, 0xCF,
+ 0x7C, 0x2A, 0x61, 0xC0, 0x08, 0x75, 0x00, 0xC0, 0xA4, 0x92, 0x82, 0x0D, 0x8A, 0x09, 0x34, 0xC0, 0x9F, 0x9A, 0x00, 0xC0, 0xE0, 0x91, 0x86, 0x0D, 0x14, 0xFF, 0x60, 0x9A, 0x00, 0x74,
+ 0x02, 0x0A, 0x01, 0xD0, 0x42, 0x0A, 0x86, 0x0D, 0x82, 0x09, 0x08, 0xD2, 0x39, 0xA2, 0x34, 0xC0, 0x90, 0x9A, 0x8A, 0x0D, 0x86, 0x09, 0x34, 0xC0, 0x8C, 0x9A, 0x8A, 0x0D, 0x14, 0xFF,
+ 0x4F, 0x9A, 0xC8, 0xD2, 0x39, 0xA0, 0x8A, 0x0D, 0x14, 0xFF, 0x4A, 0x9A, 0x50, 0xD2, 0x51, 0xAA, 0x00, 0x75, 0xC8, 0xD2, 0x31, 0xA0, 0x00, 0xC0, 0x82, 0x90, 0x34, 0xC0, 0x8E, 0x99,
+ 0x34, 0xC0, 0x1E, 0x9A, 0x60, 0xB7, 0x14, 0x5F, 0x34, 0xC0, 0x0E, 0x98, 0x88, 0xD2, 0x3D, 0xAA, 0x02, 0x75, 0x08, 0xD2, 0x31, 0xA0, 0x00, 0xC0, 0xC4, 0x90, 0x08, 0xD2, 0x35, 0xA0,
+ 0x00, 0xC0, 0xA0, 0x90, 0x02, 0x85, 0x08, 0xD2, 0x37, 0xA1, 0x86, 0x0D, 0x14, 0xFF, 0x2A, 0x9A, 0x48, 0xD2, 0x25, 0xAA, 0x10, 0x75, 0x91, 0xD0, 0xD8, 0x08, 0x00, 0xB5, 0x29, 0x40,
+ 0x00, 0xC0, 0xB4, 0x91, 0x90, 0xD2, 0xCD, 0xA8, 0x40, 0x74, 0x02, 0x0A, 0x02, 0xD0, 0x42, 0x1A, 0x08, 0x2A, 0x08, 0xD2, 0x2D, 0xA2, 0x01, 0xC0, 0x20, 0x93, 0x02, 0x85, 0x08, 0xD2,
+ 0x2F, 0xA1, 0x01, 0xC0, 0x80, 0x92, 0xA0, 0xB7, 0x0C, 0x5F, 0x96, 0x0D, 0x86, 0x09, 0x34, 0xC0, 0x45, 0x9A, 0x34, 0xC0, 0x06, 0x9A, 0xAB, 0x9E, 0x14, 0xC0, 0xD9, 0x9B, 0xAB, 0x9E,
+ 0x10, 0xD2, 0x31, 0xA0, 0x14, 0xC0, 0xD4, 0x9B, 0x10, 0xD2, 0x35, 0xA0, 0x86, 0x0D, 0x14, 0xFF, 0xFC, 0x99, 0x08, 0xD2, 0x49, 0xAA, 0x91, 0xD0, 0xD8, 0x0C, 0x00, 0x75, 0x00, 0xB5,
+ 0x29, 0x40, 0x00, 0xC0, 0xE2, 0x90, 0xD0, 0xD2, 0x25, 0xAA, 0x00, 0x75, 0x00, 0xC0, 0x24, 0x92, 0x90, 0xD2, 0xBD, 0xA8, 0x46, 0x74, 0x00, 0xC0, 0x42, 0x91, 0x40, 0x74, 0x00, 0xC0,
+ 0x24, 0x91, 0x48, 0xD2, 0x51, 0xAA, 0x00, 0x75, 0x00, 0xC0, 0x82, 0x90, 0x34, 0xC0, 0x2C, 0x99, 0x9F, 0xB7, 0xEE, 0x7E, 0xBF, 0xB7, 0x6E, 0x7F, 0xDF, 0xB7, 0xEE, 0x7F, 0x60, 0x8C,
+ 0x22, 0x9C, 0x0D, 0xA6, 0xE2, 0x0D, 0x14, 0xFF, 0xD9, 0x99, 0x02, 0x74, 0x02, 0x0B, 0x00, 0xC0, 0x04, 0x91, 0xE2, 0x0D, 0x14, 0xFF, 0xCC, 0x99, 0xA2, 0x0D, 0x14, 0xFF, 0xC9, 0x99,
+ 0x60, 0xB7, 0x14, 0x60, 0x14, 0xC0, 0x98, 0x9B, 0x20, 0xB7, 0x8C, 0x55, 0x40, 0xB7, 0x84, 0x60, 0x00, 0xB5, 0xA9, 0x4C, 0x40, 0xB7, 0xB9, 0x4C, 0x2D, 0x9E, 0x30, 0xC0, 0x4D, 0xAA,
+ 0xF2, 0xF3, 0xCE, 0x28, 0x83, 0x02, 0x80, 0xB5, 0xA9, 0x4C, 0x00, 0xC0, 0xC4, 0x90, 0xF4, 0xFF, 0xB8, 0x9A, 0x04, 0xC0, 0x20, 0x91, 0x44, 0x76, 0x00, 0xC0, 0x04, 0x93, 0x60, 0xB7,
+ 0x94, 0x5D, 0x14, 0xC0, 0x7B, 0x9B, 0x40, 0xB7, 0x84, 0x5F, 0x88, 0xD2, 0x3D, 0xA0, 0x88, 0xD2, 0x3F, 0xA9, 0x2D, 0x9E, 0x30, 0xC0, 0xCD, 0xA8, 0xF1, 0xD3, 0x1E, 0x2A, 0x08, 0x75,
+ 0x88, 0xD2, 0xBD, 0xA0, 0x03, 0xC0, 0x42, 0x92, 0x00, 0xC0, 0x00, 0x93, 0x46, 0x76, 0x00, 0xC0, 0xA4, 0x92, 0x8E, 0x0D, 0x14, 0xFF, 0x90, 0x99, 0x40, 0xB7, 0x9C, 0x71, 0x40, 0xB7,
+ 0x04, 0x72, 0xF1, 0xD3, 0x0E, 0x2B, 0x47, 0x9D, 0x48, 0x9D, 0x10, 0xC2, 0x45, 0xAA, 0x20, 0xC2, 0xC5, 0xA8, 0x88, 0xD2, 0x3D, 0xA2, 0xC8, 0xD2, 0xA1, 0xA0, 0xA0, 0xB7, 0x94, 0x57,
+ 0x10, 0xD2, 0x2D, 0xAA, 0x00, 0x75, 0x00, 0xC0, 0xA2, 0x90, 0xA2, 0x0D, 0x14, 0xFF, 0x76, 0x99, 0x14, 0xC0, 0x83, 0x9B, 0x86, 0x0D, 0x14, 0xFF, 0x71, 0x99, 0x86, 0x0D, 0x14, 0xFF,
+ 0x6E, 0x99, 0xC8, 0xD2, 0x25, 0xAA, 0x06, 0x75, 0x01, 0xC0, 0xE4, 0x90, 0x50, 0xD2, 0xA2, 0xA8, 0x40, 0x76, 0x82, 0x08, 0x02, 0xD0, 0x92, 0x08, 0x86, 0x75, 0x02, 0x0A, 0x0A, 0xD0,
+ 0x42, 0x0A, 0x48, 0x78, 0x00, 0xC0, 0x42, 0x91, 0x60, 0xB7, 0x94, 0x72, 0x14, 0xC0, 0x2B, 0x9B, 0x88, 0xD2, 0x29, 0xA0, 0x00, 0xC0, 0xE0, 0x90, 0x40, 0x76, 0x00, 0xC0, 0x84, 0x90,
+ 0x88, 0xD2, 0xAA, 0xA0, 0x11, 0xD0, 0x68, 0x1A, 0x06, 0x75, 0x00, 0xC0, 0x12, 0x91, 0x60, 0xB7, 0x14, 0x5E, 0x14, 0xC0, 0x19, 0x9B, 0x08, 0xD2, 0x29, 0xA0, 0xC8, 0xD2, 0x25, 0xAA,
+ 0x04, 0x75, 0x00, 0xC0, 0x24, 0x93, 0x88, 0xD2, 0x3D, 0xAA, 0x00, 0x75, 0x82, 0x0C, 0x01, 0xD0, 0x92, 0x0C, 0x06, 0x75, 0x4C, 0x9E, 0x82, 0x08, 0x01, 0xD0, 0x92, 0x08, 0x00, 0xE0,
+ 0x42, 0x32, 0x00, 0xC0, 0xE2, 0x90, 0x82, 0x0D, 0x14, 0xC0, 0x0F, 0x98, 0x00, 0xC0, 0xA0, 0x90, 0x82, 0x0D, 0x14, 0xC0, 0x62, 0x98, 0x9F, 0xB7, 0xEE, 0x7E, 0xBF, 0xB7, 0x6E, 0x7F,
+ 0xDF, 0xB7, 0xEE, 0x7F, 0x60, 0x8C, 0x22, 0x9C, 0x0D, 0xA6, 0xA0, 0xB7, 0x94, 0x55, 0xD0, 0xD2, 0x25, 0xAA, 0x06, 0x75, 0x82, 0x08, 0x01, 0xD0, 0x92, 0x08, 0x1C, 0xC0, 0xFE, 0x7E,
+ 0x02, 0x0A, 0x02, 0xD0, 0x42, 0x0A, 0x48, 0x78, 0x00, 0xC0, 0x82, 0x91, 0xD0, 0xD2, 0x21, 0xAA, 0xE2, 0x0D, 0x90, 0xD2, 0x3D, 0xA2, 0x14, 0xFF, 0x08, 0x99, 0xA2, 0x0D, 0x14, 0xFF,
+ 0x05, 0x99, 0xC0, 0xB7, 0x8C, 0x57, 0x14, 0xC0, 0x90, 0x9B, 0x08, 0xD2, 0x41, 0xAA, 0x00, 0x75, 0x00, 0xC0, 0xA2, 0x90, 0x8A, 0x0D, 0x14, 0xFF, 0xF9, 0x98, 0xD0, 0xD2, 0x25, 0xAA,
+ 0x04, 0x75, 0x00, 0xC0, 0xC4, 0x90, 0x8E, 0x0D, 0x82, 0x09, 0x34, 0xC0, 0x2A, 0x99, 0xA0, 0xB7, 0x0C, 0x5F, 0x96, 0x0D, 0x86, 0x09, 0x34, 0xC0, 0x24, 0x99, 0x34, 0xC0, 0xE5, 0x98,
+ 0xAB, 0x9E, 0x14, 0xC0, 0xB8, 0x9A, 0xAB, 0x9E, 0x10, 0xD2, 0x31, 0xA0, 0x14, 0xC0, 0xB3, 0x9A, 0x10, 0xD2, 0x35, 0xA0, 0x86, 0x0D, 0x14, 0xFF, 0xDB, 0x98, 0x48, 0xD2, 0x51, 0xAA,
+ 0x91, 0xD0, 0xD8, 0x0C, 0x00, 0x75, 0x00, 0xB5, 0x29, 0x40, 0x00, 0xC0, 0x82, 0x90, 0x34, 0xC0, 0x1D, 0x98, 0x9F, 0xB7, 0xEE, 0x7E, 0xBF, 0xB7, 0x6E, 0x7F, 0xDF, 0xB7, 0xEE, 0x7F,
+ 0x60, 0x8C, 0x22, 0x9C, 0x0D, 0xA6, 0x20, 0xB7, 0x94, 0x55, 0x80, 0xB7, 0xC9, 0x4C, 0x06, 0x75, 0x82, 0x08, 0x01, 0xD0, 0x92, 0x08, 0x1C, 0xC0, 0xFE, 0x7E, 0x02, 0x0A, 0x02, 0xD0,
+ 0x42, 0x0A, 0x48, 0x78, 0x83, 0x06, 0x00, 0xC0, 0x82, 0x91, 0xD0, 0xD2, 0x21, 0xAA, 0xE2, 0x0D, 0x90, 0xD2, 0x3D, 0xA2, 0x14, 0xFF, 0xAF, 0x98, 0xA2, 0x0D, 0x14, 0xFF, 0xAC, 0x98,
+ 0x14, 0xC0, 0x39, 0x9B, 0x20, 0xB7, 0x8C, 0x57, 0x80, 0xB7, 0x29, 0x40, 0x00, 0x75, 0x03, 0x03, 0x00, 0xC0, 0xA2, 0x90, 0x8A, 0x0D, 0x14, 0xFF, 0x9F, 0x98, 0x90, 0xD2, 0x3D, 0xAA,
+ 0x04, 0x75, 0x00, 0xC0, 0xA4, 0x91, 0xD0, 0xD2, 0x25, 0xAA, 0x04, 0x75, 0x00, 0xC0, 0x04, 0x91, 0x60, 0xB7, 0x14, 0x5E, 0x14, 0xC0, 0x64, 0x9A, 0x10, 0xD2, 0x29, 0xA0, 0xD0, 0xD2,
+ 0x25, 0xAA, 0x06, 0x75, 0x00, 0xC0, 0xA4, 0x92, 0x90, 0xD2, 0x3D, 0xAA, 0x02, 0x75, 0x00, 0xC0, 0x04, 0x92, 0x86, 0x0D, 0x14, 0xFF, 0x82, 0x98, 0x1C, 0xC0, 0x3E, 0x7C, 0x90, 0xD2,
+ 0x2D, 0xA0, 0x00, 0xC0, 0xE4, 0x90, 0x86, 0x0D, 0x14, 0xFF, 0x79, 0x98, 0x90, 0xD2, 0x31, 0xA0, 0x48, 0xD2, 0x4D, 0xAA, 0x00, 0x75, 0x00, 0xC0, 0x42, 0x91, 0x60, 0xB7, 0x94, 0x5E,
+ 0x14, 0xC0, 0x41, 0x9A, 0x90, 0xD2, 0x35, 0xA0, 0x00, 0xC0, 0x80, 0x90, 0x90, 0xD2, 0x35, 0xA2, 0x08, 0xD2, 0x59, 0xAA, 0x02, 0x75, 0x00, 0xC0, 0x04, 0x91, 0x60, 0xB7, 0x94, 0x73,
+ 0x14, 0xC0, 0x32, 0x9A, 0x90, 0xD2, 0x39, 0xA0, 0xD0, 0xD2, 0x25, 0xAA, 0x04, 0x75, 0x00, 0xC0, 0xE4, 0x92, 0x90, 0xD2, 0x3D, 0xAA, 0x04, 0x75, 0x00, 0xC0, 0x44, 0x92, 0x91, 0xD0,
+ 0x54, 0x0E, 0x02, 0x85, 0x86, 0x0D, 0x08, 0xD2, 0x03, 0xA1, 0x14, 0xFF, 0x4B, 0x98, 0x86, 0x0D, 0x82, 0x09, 0x34, 0xC0, 0x81, 0x98, 0x8A, 0x0D, 0x86, 0x09, 0x34, 0xC0, 0x7D, 0x98,
+ 0xD0, 0xD2, 0x25, 0xAA, 0x04, 0x75, 0x00, 0xC0, 0xE4, 0x93, 0x90, 0xD2, 0x3D, 0xAA, 0x02, 0x75, 0x00, 0xC0, 0x44, 0x93, 0x86, 0x0D, 0x14, 0xFF, 0x36, 0x98, 0x91, 0xD0, 0x54, 0x0E,
+ 0x86, 0x0D, 0x08, 0xD2, 0x01, 0xA0, 0x14, 0xFF, 0x2F, 0x98, 0x1C, 0xC0, 0x3E, 0x7C, 0x00, 0xC0, 0x02, 0x91, 0x9A, 0x0D, 0x14, 0xFF, 0x28, 0x98, 0x9A, 0x0D, 0x14, 0xFF, 0x25, 0x98,
+ 0x8A, 0x0D, 0x86, 0x09, 0x34, 0xC0, 0x5B, 0x98, 0xD0, 0xD2, 0x25, 0xAA, 0x06, 0x75, 0x01, 0xC0, 0x44, 0x92, 0x14, 0xC0, 0x10, 0x9B, 0x10, 0xD2, 0x39, 0xAA, 0x08, 0x75, 0x01, 0xC0,
+ 0x44, 0x90, 0x90, 0xD2, 0x3D, 0xAA, 0x02, 0x75, 0x00, 0xC0, 0xA4, 0x93, 0x14, 0xC0, 0x36, 0x9B, 0x60, 0xB7, 0x14, 0x73, 0x14, 0xC0, 0xDD, 0x99, 0x91, 0xD0, 0xDA, 0x0E, 0x9A, 0x0D,
+ 0x08, 0xD2, 0x21, 0xA0, 0x14, 0xFF, 0x03, 0x98, 0x9A, 0x0D, 0x14, 0xFF, 0x00, 0x98, 0x08, 0xD2, 0x21, 0xAA, 0x00, 0x75, 0x00, 0xC0, 0x04, 0x91, 0x9A, 0x0D, 0xF4, 0xFE, 0xF8, 0x9B,
+ 0x9A, 0x0D, 0xF4, 0xFE, 0xF5, 0x9B, 0x90, 0xD2, 0x3D, 0xAA, 0x04, 0x75, 0x00, 0xC0, 0xC4, 0x90, 0x92, 0x0D, 0x8A, 0x09, 0x34, 0xC0, 0x26, 0x98, 0xD0, 0xD2, 0x25, 0xAA, 0x04, 0x75,
+ 0x0A, 0x85, 0x02, 0xE0, 0x22, 0x85, 0xCF, 0x9D, 0xF4, 0xFE, 0xE3, 0x9B, 0xD0, 0xD2, 0x25, 0xAA, 0x91, 0xD0, 0xD6, 0x0C, 0x06, 0x75, 0x00, 0xB5, 0x29, 0x40, 0x00, 0xC0, 0x84, 0x91,
+ 0x90, 0xD2, 0x3D, 0xAA, 0x02, 0x75, 0x00, 0xC0, 0xE4, 0x90, 0x90, 0xD2, 0x2D, 0xAA, 0x00, 0x75, 0x00, 0xC0, 0xA0, 0x90, 0xD0, 0xD2, 0x25, 0xAA, 0x04, 0x75, 0x8A, 0x0D, 0x00, 0xC0,
+ 0x62, 0x90, 0x8E, 0x0D, 0xF4, 0xFE, 0xC7, 0x9B, 0xD0, 0xD2, 0x3D, 0xA0, 0x8E, 0x0D, 0xF4, 0xFE, 0xC2, 0x9B, 0xD0, 0xD2, 0x25, 0xAA, 0x04, 0x75, 0xD0, 0xD2, 0x35, 0xA0, 0x00, 0xC0,
+ 0xA4, 0x92, 0x8A, 0x0D, 0xF4, 0xFE, 0xB8, 0x9B, 0x91, 0xD0, 0x54, 0x0E, 0x08, 0xD2, 0x81, 0xA8, 0x91, 0xD0, 0x50, 0x0E, 0x42, 0x74, 0x08, 0xD2, 0x01, 0xA0, 0x00, 0xC0, 0xE2, 0x92,
+ 0x90, 0xD2, 0x3D, 0xAA, 0x04, 0x75, 0x00, 0xC0, 0x00, 0x92, 0x06, 0x75, 0x00, 0xC0, 0xC4, 0x92, 0x10, 0xD2, 0x39, 0xAA, 0x06, 0x75, 0x00, 0xC0, 0x42, 0x91, 0x10, 0xF2, 0x25, 0xAA,
+ 0xFF, 0xCF, 0x7C, 0x2A, 0x61, 0xC0, 0x08, 0x75, 0x00, 0xC0, 0x24, 0x91, 0x8A, 0x0D, 0xF4, 0xFE, 0x95, 0x9B, 0x91, 0xD0, 0x52, 0x0E, 0x08, 0xD2, 0x01, 0xA0, 0x48, 0xD2, 0x51, 0xAA,
+ 0x00, 0x75, 0x00, 0xC0, 0x82, 0x90, 0x14, 0xC0, 0xD7, 0x9A, 0x14, 0xC0, 0x67, 0x9B, 0x60, 0xB7, 0x14, 0x5F, 0x14, 0xC0, 0x57, 0x99, 0x10, 0xD2, 0x31, 0xA0, 0x86, 0x0D, 0xF4, 0xFE,
+ 0x7F, 0x9B, 0x50, 0xD2, 0x25, 0xAA, 0x91, 0xD0, 0xD8, 0x0C, 0x10, 0x75, 0x00, 0xB5, 0x29, 0x40, 0x00, 0xC0, 0xB4, 0x91, 0x88, 0xD2, 0xCD, 0xA8, 0x40, 0x74, 0x02, 0x0A, 0x02, 0xD0,
+ 0x42, 0x1A, 0x08, 0x2A, 0x10, 0xD2, 0x2D, 0xA2, 0x00, 0xC0, 0xA0, 0x90, 0x02, 0x85, 0x10, 0xD2, 0x2F, 0xA1, 0x9F, 0xB7, 0xEE, 0x7E, 0xBF, 0xB7, 0x6E, 0x7F, 0xDF, 0xB7, 0xEE, 0x7F,
+ 0x60, 0x8C, 0x22, 0x9C, 0x0D, 0xA6, 0xA0, 0xB7, 0x8C, 0x55, 0x02, 0x0F, 0xC8, 0xD2, 0x2A, 0xA3, 0xF4, 0xFE, 0x63, 0x9B, 0x20, 0xB7, 0x8C, 0x57, 0x80, 0xB7, 0x29, 0x42, 0x00, 0x75,
+ 0x03, 0x03, 0x00, 0xC0, 0x42, 0x91, 0x86, 0x0D, 0xF4, 0xFE, 0x4D, 0x9B, 0x8A, 0x0D, 0xF4, 0xFE, 0x4A, 0x9B, 0x00, 0xC0, 0xA0, 0x90, 0x8A, 0x0D, 0xF4, 0xFE, 0x45, 0x9B, 0x88, 0xD2,
+ 0x45, 0xAA, 0x00, 0x75, 0x00, 0xC0, 0xA2, 0x90, 0x86, 0x0D, 0xF4, 0xFE, 0x3D, 0x9B, 0x86, 0x0D, 0xF4, 0xFE, 0x3A, 0x9B, 0x02, 0x74, 0x00, 0xC0, 0xC4, 0x90, 0x88, 0xD2, 0x3D, 0xA0,
+ 0x00, 0xC0, 0xA0, 0x92, 0x88, 0xD2, 0x49, 0xAA, 0x00, 0x75, 0x00, 0xC0, 0xC4, 0x90, 0x88, 0xD2, 0x3D, 0xA2, 0x00, 0xC0, 0x80, 0x91, 0x86, 0x0D, 0xF4, 0xFE, 0x27, 0x9B, 0x02, 0x74,
+ 0x0A, 0x85, 0x00, 0xC0, 0x64, 0x90, 0x02, 0x85, 0x88, 0xD2, 0x3F, 0xA1, 0x88, 0xD2, 0x3D, 0xAA, 0x04, 0x75, 0x00, 0xC0, 0x04, 0x92, 0x60, 0xB7, 0x14, 0x5E, 0x14, 0xC0, 0xEA, 0x98,
+ 0xF1, 0xD3, 0x0E, 0x2A, 0x2C, 0x75, 0x08, 0xD2, 0x29, 0xA0, 0x00, 0xC0, 0xA4, 0x90, 0x0E, 0x85, 0x88, 0xD2, 0x3F, 0xA1, 0x88, 0xD2, 0x3D, 0xAA, 0x00, 0x75, 0x82, 0x0C, 0x01, 0xD0,
+ 0x92, 0x0C, 0x06, 0x75, 0x82, 0x08, 0x01, 0xD0, 0x92, 0x08, 0x8A, 0x9E, 0x00, 0xE0, 0x94, 0x36, 0x00, 0xC0, 0xA2, 0x90, 0x9E, 0x0D, 0xF4, 0xFE, 0xFB, 0x9A, 0x14, 0xC0, 0x88, 0x99,
+ 0x48, 0xD2, 0x4D, 0xAA, 0x00, 0x75, 0x00, 0xC0, 0xE2, 0x91, 0x88, 0xD2, 0x51, 0xAA, 0x00, 0x75, 0x00, 0xC0, 0x42, 0x91, 0x60, 0xB7, 0x94, 0x5E, 0x14, 0xC0, 0xBE, 0x98, 0x88, 0xD2,
+ 0x35, 0xA0, 0x00, 0xC0, 0xA0, 0x90, 0x02, 0x85, 0x88, 0xD2, 0x37, 0xA1, 0x88, 0xD2, 0x3D, 0xAA, 0x02, 0x75, 0x00, 0xC0, 0x52, 0x91, 0x48, 0xD2, 0x5D, 0xAA, 0x00, 0x75, 0x00, 0xC0,
+ 0xA2, 0x90, 0x8A, 0x0D, 0xF4, 0xFE, 0xD7, 0x9A, 0x40, 0x77, 0x02, 0xC0, 0xE4, 0x93, 0x88, 0xD2, 0x3D, 0xAA, 0x02, 0x75, 0x00, 0xC0, 0xA4, 0x91, 0x14, 0xC0, 0xC3, 0x99, 0x08, 0xD2,
+ 0x39, 0xAA, 0x08, 0x75, 0x00, 0xC0, 0x44, 0x92, 0x14, 0xC0, 0xEE, 0x99, 0x00, 0xC0, 0xC0, 0x91, 0x04, 0x75, 0x00, 0xC0, 0x64, 0x91, 0x86, 0x0D, 0xF4, 0xFE, 0xBE, 0x9A, 0x00, 0x74,
+ 0x02, 0x0A, 0x01, 0xD0, 0x42, 0x0A, 0x08, 0xD2, 0x39, 0xA2, 0x88, 0xD2, 0x3D, 0xAA, 0x02, 0x75, 0x00, 0xC0, 0xA4, 0x91, 0x08, 0xD2, 0x39, 0xAA, 0x08, 0x75, 0x00, 0xC0, 0x04, 0x91,
+ 0x9A, 0x0D, 0xF4, 0xFE, 0xAB, 0x9A, 0x9A, 0x0D, 0xF4, 0xFE, 0xA8, 0x9A, 0x08, 0xF2, 0x25, 0xAA, 0xFF, 0xCF, 0x7C, 0x2A, 0x61, 0xC0, 0x08, 0x75, 0x00, 0xC0, 0xE2, 0x90, 0x08, 0xD2,
+ 0x39, 0xAA, 0x06, 0x75, 0x00, 0xC0, 0xC4, 0x90, 0x82, 0x0D, 0x8A, 0x09, 0x14, 0xC0, 0xD1, 0x9A, 0x88, 0xD2, 0x3D, 0xAA, 0x04, 0x75, 0x00, 0xC0, 0xC4, 0x90, 0x86, 0x0D, 0x82, 0x09,
+ 0x14, 0xC0, 0xC8, 0x9A, 0x8A, 0x0D, 0x86, 0x09, 0x14, 0xC0, 0xC4, 0x9A, 0x8A, 0x0D, 0xF4, 0xFE, 0x87, 0x9A, 0xC8, 0xD2, 0x39, 0xA0, 0x8A, 0x0D, 0xF4, 0xFE, 0x82, 0x9A, 0x48, 0xD2,
+ 0x51, 0xAA, 0x00, 0x75, 0xC8, 0xD2, 0x31, 0xA0, 0x00, 0xC0, 0x82, 0x90, 0x14, 0xC0, 0xC6, 0x99, 0x14, 0xC0, 0x56, 0x9A, 0x88, 0xD2, 0xBD, 0xA8, 0x42, 0x74, 0x02, 0x0A, 0x64, 0xB3,
+ 0x32, 0x48, 0x00, 0x75, 0x00, 0xC0, 0xA4, 0x93, 0xA0, 0xB7, 0x14, 0x5F, 0x8B, 0x05, 0x14, 0xC0, 0x3C, 0x98, 0x88, 0xD2, 0x3D, 0xAA, 0x00, 0x75, 0x82, 0x0C, 0x01, 0xD0, 0x92, 0x0C,
+ 0x06, 0x75, 0x4C, 0x9E, 0x82, 0x08, 0x01, 0xD0, 0x92, 0x08, 0x00, 0xE0, 0x42, 0x32, 0x08, 0xD2, 0x31, 0xA0, 0x00, 0xC0, 0xE2, 0x90, 0x8B, 0x05, 0x14, 0xC0, 0x28, 0x98, 0x08, 0xD2,
+ 0x35, 0xA0, 0x86, 0x0D, 0xF4, 0xFE, 0x50, 0x9A, 0x88, 0xD2, 0xBD, 0xA8, 0x91, 0xD0, 0x58, 0x0A, 0x08, 0xD2, 0x01, 0xA0, 0x44, 0x74, 0x0A, 0x85, 0x08, 0xD2, 0x2F, 0xA1, 0x00, 0xC0,
+ 0x82, 0x91, 0x48, 0xD2, 0x25, 0xAA, 0x10, 0x75, 0x00, 0xC0, 0xF4, 0x90, 0x88, 0xD2, 0x4D, 0xAA, 0x00, 0x75, 0x00, 0xC0, 0xA4, 0x90, 0x02, 0x85, 0x08, 0xD2, 0x2F, 0xA1, 0x9F, 0xB7,
+ 0xEE, 0x7E, 0xBF, 0xB7, 0x6E, 0x7F, 0xDF, 0xB7, 0xEE, 0x7F, 0x60, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x20, 0x84, 0x82, 0x0A, 0x82, 0x08, 0x87, 0x06, 0xDA, 0x9D, 0x00, 0xF0, 0x43, 0xA9,
+ 0x10, 0xF2, 0x23, 0x88, 0xA3, 0x9E, 0x5F, 0xB5, 0x64, 0x7F, 0x00, 0xC2, 0xB0, 0x52, 0xF4, 0xFE, 0x1E, 0x9A, 0x5F, 0xB7, 0x64, 0x7F, 0x00, 0xF0, 0x45, 0xAA, 0xD0, 0x32, 0x48, 0x71,
+ 0x00, 0xF0, 0xC1, 0xA8, 0x00, 0xC0, 0x82, 0x91, 0x20, 0xF0, 0x49, 0xAA, 0x48, 0x70, 0x00, 0xC0, 0xE4, 0x90, 0x00, 0xF0, 0x45, 0xAA, 0x48, 0x71, 0xFF, 0xFF, 0x04, 0x93, 0x00, 0xF0,
+ 0x41, 0xAA, 0x48, 0x70, 0x00, 0xC0, 0xC2, 0x90, 0x1C, 0xC0, 0x3E, 0x75, 0xFE, 0xFF, 0x44, 0x93, 0x10, 0xE1, 0x23, 0x8A, 0x26, 0xD0, 0x0B, 0x59, 0x7D, 0x58, 0x10, 0xE2, 0x21, 0x80,
+ 0x07, 0x58, 0x9F, 0xB7, 0xEE, 0x7E, 0xBF, 0xB7, 0x6E, 0x7F, 0x60, 0x8C, 0x22, 0x9C, 0x0D, 0xA6, 0x02, 0xC0, 0x40, 0x84, 0x20, 0xB7, 0x8C, 0x57, 0x80, 0xB7, 0xA9, 0x40, 0x02, 0x0F,
+ 0x00, 0x75, 0x02, 0x0B, 0x83, 0x02, 0x00, 0xC0, 0x62, 0x93, 0x08, 0xD2, 0x29, 0xAA, 0x00, 0x75, 0x00, 0xC0, 0xE2, 0x90, 0x08, 0xD2, 0x35, 0xAA, 0x00, 0x75, 0x00, 0xC0, 0x22, 0x91,
+ 0x8A, 0x0D, 0xF4, 0xFE, 0xD9, 0x99, 0xF2, 0xD3, 0x0E, 0x2B, 0x00, 0xC0, 0x40, 0x91, 0x86, 0x0D, 0xF4, 0xFE, 0xD2, 0x99, 0x86, 0x0D, 0xF4, 0xFE, 0xCF, 0x99, 0xF1, 0xD3, 0x0E, 0x2B,
+ 0x08, 0xD2, 0x3D, 0xAA, 0x00, 0x75, 0x02, 0xC0, 0xC2, 0x91, 0x86, 0x0D, 0xF4, 0xFE, 0xC5, 0x99, 0x1C, 0xC0, 0x3E, 0x7C, 0x02, 0xC0, 0xE2, 0x90, 0x08, 0xD2, 0x29, 0xAA, 0x00, 0x75,
+ 0x00, 0xC0, 0x02, 0x92, 0x08, 0xD2, 0x35, 0xAA, 0x00, 0x75, 0x00, 0xC0, 0x64, 0x91, 0x08, 0xD2, 0x25, 0xAA, 0xB1, 0x9E, 0x00, 0x75, 0x8A, 0x0E, 0x02, 0xD0, 0x94, 0x0E, 0x00, 0xC0,
+ 0x00, 0x91, 0x08, 0xD2, 0x25, 0xAA, 0x00, 0x75, 0x86, 0x0E, 0x02, 0xD0, 0xE2, 0x0E, 0x6C, 0x9E, 0x82, 0x0A, 0x48, 0x71, 0x01, 0xC0, 0x28, 0x91, 0xD2, 0xF0, 0x00, 0x8D, 0x91, 0xF0,
+ 0x00, 0x8D, 0xCA, 0x0D, 0xF4, 0xFE, 0x9C, 0x99, 0x29, 0xF2, 0x45, 0xA0, 0xCA, 0x0D, 0xF4, 0xFE, 0x97, 0x99, 0xA8, 0xD2, 0x08, 0x59, 0x2D, 0x9E, 0x53, 0xE0, 0x00, 0x8D, 0xBA, 0x0D,
+ 0x30, 0xE0, 0x4D, 0xA0, 0xF4, 0xFE, 0x8D, 0x99, 0x31, 0xDA, 0x45, 0xA0, 0xBA, 0x0D, 0xF4, 0xFE, 0x88, 0x99, 0xA8, 0xD2, 0x04, 0x59, 0x6C, 0x9E, 0x2D, 0x9E, 0x84, 0x0A, 0x48, 0x71,
+ 0xB3, 0xE0, 0x00, 0x8D, 0x30, 0xC8, 0x4D, 0xA0, 0xFE, 0xFF, 0xE6, 0x93, 0x9F, 0xB7, 0xEE, 0x7B, 0xBF, 0xB7, 0x6E, 0x7C, 0xDF, 0xB7, 0xEE, 0x7C, 0x04, 0xC0, 0x20, 0x8C, 0x22, 0x9C,
+ 0x05, 0xA6, 0x96, 0x0D, 0xF4, 0xFE, 0x6F, 0x99, 0x20, 0xB7, 0x94, 0x57, 0x20, 0xB7, 0x8C, 0x55, 0x80, 0xB7, 0x49, 0x47, 0x00, 0xB5, 0x29, 0x44, 0x02, 0x75, 0x83, 0x02, 0x83, 0x06,
+ 0x00, 0xC0, 0x02, 0x91, 0x48, 0xD2, 0xA2, 0xA9, 0x50, 0xD2, 0xB9, 0xA9, 0x14, 0xC0, 0x2F, 0x98, 0x48, 0xD2, 0x21, 0xAA, 0x10, 0x75, 0x00, 0xC0, 0x32, 0x91, 0x86, 0x0D, 0xF4, 0xFE,
+ 0x54, 0x99, 0x48, 0xD2, 0x2D, 0xA0, 0x00, 0xC0, 0xA0, 0x90, 0x02, 0x85, 0x48, 0xD2, 0x2F, 0xA1, 0x50, 0xD2, 0x39, 0xAA, 0x02, 0x75, 0x02, 0x85, 0x48, 0xD2, 0x2B, 0xA1, 0x00, 0xC0,
+ 0x44, 0x92, 0x86, 0x0D, 0xF4, 0xFE, 0x42, 0x99, 0x1C, 0xC0, 0x3E, 0x7C, 0x48, 0xD2, 0xA1, 0xA8, 0x02, 0x0A, 0x01, 0xD0, 0x42, 0x0A, 0x48, 0xD2, 0x29, 0xA0, 0xC8, 0xD2, 0x2D, 0xA2,
+ 0x48, 0xD2, 0xA5, 0xA0, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x20, 0xB7, 0x8C, 0x55, 0xF1, 0xD3, 0x3E, 0x2E, 0x0E, 0xE0, 0xFC, 0x29, 0x02, 0x85,
+ 0x80, 0xB5, 0xA9, 0x44, 0x40, 0xB5, 0xB9, 0x4D, 0x00, 0xC0, 0xC2, 0x90, 0xC4, 0x74, 0x00, 0xC0, 0x22, 0x92, 0x22, 0x9C, 0x10, 0x75, 0x40, 0xB3, 0xB4, 0x48, 0x40, 0xB7, 0x9C, 0x77,
+ 0x4B, 0x9D, 0x20, 0xC2, 0x05, 0xAA, 0x06, 0x85, 0x40, 0xB5, 0xB9, 0x4D, 0x80, 0xB5, 0xA9, 0x44, 0x22, 0x9C, 0x06, 0x85, 0x40, 0xB5, 0xB9, 0x4D, 0x22, 0x9C, 0x05, 0xA6, 0x20, 0xB7,
+ 0x8C, 0x55, 0x80, 0xB7, 0xA9, 0x4B, 0x02, 0x75, 0x83, 0x02, 0x00, 0xC0, 0x04, 0x91, 0x60, 0xB7, 0x94, 0x61, 0x20, 0xB7, 0x0C, 0x62, 0x00, 0xC0, 0xC0, 0x90, 0x60, 0xB7, 0x94, 0x63,
+ 0x20, 0xB7, 0x0C, 0x64, 0x48, 0xD2, 0x25, 0xAA, 0x18, 0x75, 0x00, 0xC0, 0x14, 0x91, 0xF4, 0xFF, 0xC5, 0x9A, 0x40, 0xB7, 0x84, 0x62, 0x00, 0xC0, 0xE0, 0x90, 0x8B, 0x9E, 0xF4, 0xFF,
+ 0xBE, 0x9A, 0x40, 0xB7, 0x04, 0x63, 0x08, 0xD2, 0x39, 0xA0, 0x08, 0xD2, 0x3B, 0xA9, 0x2D, 0x9E, 0x30, 0xC0, 0x4D, 0xAA, 0x08, 0xD2, 0x39, 0xA2, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7,
+ 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0xA0, 0xB7, 0x8C, 0x55, 0x48, 0xD2, 0x25, 0xAA, 0x18, 0x75, 0x00, 0xC0, 0x54, 0x91, 0x60, 0xB7, 0x94, 0x63, 0xF4, 0xFF, 0xA1, 0x9A,
+ 0x40, 0xB7, 0x84, 0x64, 0x00, 0xC0, 0x00, 0x91, 0x60, 0xB7, 0x14, 0x64, 0xF4, 0xFF, 0x99, 0x9A, 0x40, 0xB7, 0x04, 0x65, 0x08, 0xD2, 0x3D, 0xA0, 0x08, 0xD2, 0x3F, 0xA9, 0x2D, 0x9E,
+ 0x30, 0xC0, 0x4D, 0xAA, 0x08, 0xD2, 0x3D, 0xA2, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x20, 0xB7, 0x8C, 0x57, 0xA0, 0xB7, 0x8C, 0x55,
+ 0x80, 0xB7, 0x29, 0x46, 0xAD, 0x9E, 0x02, 0x85, 0x48, 0xD2, 0x33, 0xA1, 0x04, 0x75, 0x06, 0x85, 0xC8, 0xD2, 0x2B, 0xA1, 0x00, 0xC0, 0x04, 0x91, 0x48, 0xD2, 0x33, 0xA1, 0x14, 0xC0,
+ 0x5F, 0x98, 0x02, 0xC0, 0xE0, 0x92, 0x80, 0xB7, 0x29, 0x46, 0x02, 0x75, 0x82, 0x0C, 0x01, 0xD0, 0x92, 0x0C, 0x06, 0x75, 0x4C, 0x9E, 0x82, 0x08, 0x01, 0xD0, 0x92, 0x08, 0x00, 0xE0,
+ 0x42, 0x32, 0x02, 0xC0, 0x02, 0x91, 0x86, 0x0D, 0xF4, 0xFE, 0x8C, 0x98, 0xF1, 0xF3, 0x0E, 0x2A, 0x48, 0xD2, 0x31, 0xA0, 0x01, 0xC0, 0xA2, 0x93, 0x0E, 0x85, 0x48, 0xD2, 0x33, 0xA1,
+ 0x8A, 0x0D, 0xF4, 0xFE, 0x80, 0x98, 0x48, 0xD2, 0x35, 0xA0, 0x48, 0xD2, 0x35, 0xAA, 0x04, 0x75, 0x00, 0xC0, 0xA2, 0x92, 0x00, 0xC0, 0xFA, 0x90, 0x02, 0x75, 0x00, 0xC0, 0x22, 0x91,
+ 0x00, 0xC0, 0x40, 0x93, 0x06, 0x75, 0x00, 0xC0, 0x42, 0x92, 0x00, 0xC0, 0xA0, 0x92, 0x8A, 0x0D, 0xF4, 0xFE, 0x6A, 0x98, 0x48, 0xD2, 0x3D, 0xA0, 0x00, 0xC0, 0xC0, 0x91, 0x8A, 0x0D,
+ 0xF4, 0xFE, 0x63, 0x98, 0x88, 0xD2, 0x21, 0xA0, 0x00, 0xC0, 0xE0, 0x90, 0x86, 0x0D, 0xF4, 0xFE, 0x5C, 0x98, 0x48, 0xD2, 0x39, 0xA0, 0x10, 0xF2, 0x2D, 0xAA, 0x0F, 0xC0, 0xFE, 0x08,
+ 0xF0, 0xCF, 0x80, 0x08, 0x42, 0x22, 0x60, 0xC0, 0x00, 0x75, 0x00, 0xC0, 0x02, 0x91, 0x14, 0xC0, 0x0C, 0x98, 0x00, 0xC0, 0x80, 0x90, 0x48, 0xD2, 0x35, 0xA2, 0x9F, 0xB7, 0x6E, 0x7F,
+ 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x39, 0xF8, 0x05, 0xA2, 0x8E, 0x0D, 0xF4, 0xFE, 0x3E, 0x98, 0xF2, 0xD3, 0x8E, 0x28, 0x4E, 0x76, 0x00, 0xC0, 0x84, 0x91, 0x96, 0x0D,
+ 0xF4, 0xFE, 0x36, 0x98, 0x80, 0xB7, 0x8C, 0x55, 0x88, 0xD2, 0x05, 0xA0, 0xF8, 0xF9, 0x1D, 0xAA, 0x22, 0x9C, 0x20, 0xB7, 0x8C, 0x55, 0x80, 0xB7, 0xA9, 0x44, 0x4A, 0x9E, 0x28, 0x02,
+ 0x04, 0x0A, 0x80, 0xB5, 0xA9, 0x48, 0xF8, 0xF9, 0x1D, 0xAA, 0x22, 0x9C, 0x05, 0xA6, 0x80, 0xB7, 0x8C, 0x57, 0x48, 0xD2, 0x95, 0xA8, 0x40, 0x74, 0x00, 0xC0, 0x42, 0x92, 0x86, 0x0D,
+ 0xF4, 0xFE, 0x18, 0x98, 0xA0, 0xB7, 0x8C, 0x55, 0x1C, 0xC0, 0x3E, 0x7C, 0x08, 0xD2, 0x21, 0xA0, 0x00, 0xC0, 0xE2, 0x90, 0x8A, 0x0D, 0xF4, 0xFE, 0x0D, 0x98, 0x08, 0xD2, 0x25, 0xA0,
+ 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x20, 0xB7, 0x8C, 0x57, 0x80, 0xB7, 0xA9, 0x49, 0x00, 0x75, 0xA0, 0xB7, 0x8C, 0x55, 0x01, 0xC0,
+ 0x22, 0x90, 0x48, 0xD2, 0x25, 0xAA, 0x10, 0x75, 0x00, 0xC0, 0x92, 0x93, 0x60, 0xB7, 0x14, 0x77, 0xF4, 0xFF, 0xC5, 0x99, 0x40, 0xB7, 0x04, 0x61, 0x08, 0xD2, 0x2D, 0xA0, 0x08, 0xD2,
+ 0x2F, 0xA9, 0x2D, 0x9E, 0x30, 0xC0, 0xCD, 0xA8, 0xF1, 0xD3, 0x1E, 0x2A, 0x06, 0x75, 0x08, 0xD2, 0xAD, 0xA0, 0x00, 0xC0, 0xC4, 0x92, 0x9A, 0x0D, 0x8A, 0x09, 0x14, 0xC0, 0x18, 0x98,
+ 0x00, 0xC0, 0x00, 0x92, 0x80, 0xB7, 0xA9, 0x49, 0x00, 0x75, 0x02, 0x85, 0x00, 0xC0, 0x02, 0x91, 0x48, 0xD2, 0x25, 0xAA, 0x10, 0x75, 0x00, 0xC0, 0x74, 0x90, 0x0A, 0x85, 0x08, 0xD2,
+ 0x2F, 0xA1, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x5C, 0x9E, 0xF2, 0xD3, 0xCE, 0x2A, 0x96, 0x0D, 0xF1, 0xD3, 0xBE, 0x2A, 0xD4, 0xFE,
+ 0xC5, 0x9B, 0x3C, 0x28, 0x00, 0x74, 0x06, 0x0D, 0x54, 0x9E, 0x60, 0xB7, 0x8C, 0x55, 0x01, 0xD0, 0x42, 0x1A, 0x00, 0x75, 0x54, 0x9E, 0x91, 0xD0, 0x3C, 0x09, 0x08, 0xD0, 0xC2, 0xA8,
+ 0x00, 0xC2, 0x94, 0x50, 0x8B, 0x9E, 0x96, 0x34, 0x08, 0xD0, 0xC2, 0xA0, 0x00, 0xC0, 0xA2, 0x91, 0x8A, 0x0D, 0xD4, 0xFE, 0x6C, 0x9B, 0xAB, 0x9E, 0x14, 0xC0, 0x1D, 0x98, 0x86, 0x0D,
+ 0xD4, 0xFE, 0x66, 0x9B, 0x00, 0xC0, 0x40, 0x92, 0x91, 0xD0, 0x3E, 0x0A, 0x08, 0xD2, 0x81, 0xA8, 0xD4, 0x54, 0x4A, 0x9E, 0x86, 0x0D, 0x94, 0x30, 0x08, 0xD2, 0x81, 0xA0, 0xD4, 0xFE,
+ 0x92, 0x9B, 0x60, 0xB7, 0x94, 0x76, 0xF4, 0xFF, 0x61, 0x99, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x40, 0xB7, 0x8C, 0x57, 0x88, 0xD0, 0x51, 0xAA,
+ 0x20, 0xB7, 0x94, 0x47, 0x40, 0xB7, 0x9C, 0x56, 0x24, 0xD2, 0x0C, 0x59, 0x08, 0x3D, 0x40, 0xB5, 0xD5, 0x41, 0xCB, 0x9D, 0x88, 0x5D, 0x3E, 0xC0, 0xF0, 0x2D, 0x20, 0xE0, 0xEA, 0xA9,
+ 0x40, 0xC0, 0xE0, 0x0C, 0x60, 0xB5, 0x55, 0x40, 0xC8, 0xD0, 0x45, 0xAA, 0xC8, 0xD0, 0xC9, 0xA8, 0x04, 0x1A, 0x24, 0xD2, 0x4C, 0x59, 0x84, 0x18, 0xB0, 0x58, 0x8B, 0x9E, 0xD0, 0x1C,
+ 0x26, 0x35, 0x40, 0xB5, 0x55, 0x40, 0xC8, 0xD0, 0x45, 0xAA, 0xC8, 0xD0, 0xC9, 0xA8, 0x43, 0x62, 0x02, 0xC0, 0x80, 0x0C, 0x0A, 0x0D, 0x04, 0x1A, 0x80, 0xB5, 0x4D, 0x40, 0xBC, 0xCF,
+ 0xF1, 0x0C, 0x40, 0xB5, 0x55, 0x40, 0x49, 0x9E, 0x61, 0xB9, 0xF0, 0x7F, 0x00, 0xC0, 0x01, 0x90, 0x40, 0xB7, 0x35, 0x40, 0x11, 0xD0, 0x28, 0x2E, 0x00, 0x75, 0xFF, 0xFF, 0xE2, 0x92,
+ 0x22, 0x9C, 0x40, 0xB7, 0x04, 0x5B, 0x26, 0xD1, 0x08, 0x5D, 0x2D, 0x9E, 0x38, 0xC0, 0xCD, 0xA8, 0x8C, 0x5D, 0x18, 0xD0, 0xC6, 0xA8, 0xA6, 0xD1, 0x08, 0x59, 0x60, 0xB7, 0x9C, 0x5A,
+ 0x40, 0xE2, 0x2F, 0x81, 0x29, 0x9E, 0x38, 0xC0, 0xCD, 0xA0, 0x18, 0xD0, 0x49, 0xAA, 0x18, 0xD0, 0xC6, 0xA0, 0x04, 0x0A, 0x18, 0xD0, 0x49, 0xA2, 0x22, 0x9C, 0x80, 0xB7, 0x0C, 0x5B,
+ 0x26, 0xD1, 0x08, 0x5D, 0x60, 0xB7, 0x9C, 0x5A, 0x8C, 0x5D, 0x10, 0xF3, 0x21, 0x80, 0xA6, 0xD1, 0x08, 0x59, 0x08, 0xD2, 0x89, 0xA8, 0x40, 0xE2, 0x2F, 0x81, 0x29, 0x9E, 0x08, 0xD2,
+ 0x8E, 0xA8, 0x38, 0xC0, 0xCD, 0xA0, 0x18, 0xD0, 0x49, 0xAA, 0x18, 0xD0, 0xC6, 0xA0, 0x04, 0x0A, 0x18, 0xD0, 0x49, 0xA2, 0x22, 0x9C, 0x1D, 0xA6, 0x02, 0xC0, 0x20, 0x84, 0x40, 0xB7,
+ 0x94, 0x57, 0x02, 0x87, 0x80, 0xB7, 0x0C, 0x57, 0x82, 0x08, 0x3F, 0xB5, 0xEC, 0x7B, 0x3F, 0xB5, 0x6C, 0x7C, 0x3F, 0xB5, 0xEC, 0x7C, 0x02, 0x0B, 0x82, 0x0F, 0xDF, 0xB5, 0x6C, 0x7D,
+ 0xDF, 0xB5, 0xEC, 0x7D, 0xDF, 0xB5, 0x6C, 0x7E, 0x5F, 0xB5, 0x64, 0x7B, 0x5F, 0xB5, 0xE4, 0x7E, 0x90, 0xD0, 0xD9, 0xA8, 0x08, 0xDA, 0x86, 0xA8, 0xA5, 0x9E, 0x55, 0x9E, 0x08, 0xDA,
+ 0x0D, 0xA9, 0xDF, 0xB5, 0x6C, 0x7F, 0x42, 0x74, 0x12, 0xD0, 0x12, 0x2F, 0x11, 0xD0, 0xA2, 0x2B, 0x01, 0xC0, 0xB2, 0x90, 0x08, 0xF2, 0x35, 0xAA, 0xF1, 0xCF, 0x82, 0x08, 0xF0, 0xCF,
+ 0x80, 0x08, 0x42, 0x22, 0x61, 0xC0, 0x00, 0x75, 0x00, 0xC0, 0x44, 0x93, 0x80, 0xB7, 0x8C, 0x5A, 0x08, 0xF2, 0x8A, 0xA8, 0x08, 0xF2, 0x8D, 0xA8, 0x48, 0xD2, 0x01, 0xA3, 0x48, 0xD2,
+ 0x05, 0xA3, 0x48, 0xD2, 0x09, 0xA3, 0x48, 0xD2, 0x11, 0xA3, 0x48, 0xD2, 0x15, 0xA3, 0x48, 0xD2, 0x19, 0xA3, 0x08, 0xF2, 0x82, 0xA0, 0x08, 0xF2, 0x85, 0xA0, 0x00, 0xC0, 0x80, 0x93,
+ 0x88, 0xD2, 0xB9, 0xA8, 0x40, 0x74, 0x00, 0xC0, 0xE4, 0x92, 0x88, 0xD2, 0x3D, 0xAA, 0x06, 0x75, 0x00, 0xC0, 0x42, 0x92, 0x80, 0xB7, 0x8C, 0x5B, 0x60, 0xB7, 0x94, 0x5A, 0x92, 0x09,
+ 0x08, 0xD2, 0x81, 0xA0, 0x08, 0xD2, 0x85, 0xA0, 0x14, 0xC0, 0x9E, 0x9A, 0x60, 0xB7, 0x14, 0x5B, 0x8A, 0x09, 0x14, 0xC0, 0x99, 0x9A, 0x88, 0xD2, 0x39, 0xAA, 0x02, 0x75, 0x05, 0xC0,
+ 0xE4, 0x91, 0x88, 0xD2, 0xBE, 0xA9, 0xC4, 0x76, 0x03, 0xC0, 0xC2, 0x90, 0xC8, 0xD2, 0x21, 0xAA, 0x00, 0x75, 0x04, 0xC0, 0xC2, 0x90, 0xC6, 0x76, 0x00, 0xC0, 0x82, 0x91, 0x40, 0xB7,
+ 0x94, 0x5B, 0x88, 0xD2, 0x35, 0xAA, 0x52, 0x9E, 0x0E, 0x85, 0x20, 0xC2, 0x07, 0xA1, 0x03, 0xC0, 0x20, 0x90, 0x88, 0xD2, 0xB5, 0xA8, 0x40, 0xB7, 0x04, 0x5B, 0x10, 0xD2, 0xA2, 0xA8,
+ 0xA6, 0xD0, 0x08, 0x59, 0x2D, 0x9E, 0x10, 0xF2, 0x21, 0xAA, 0x03, 0x01, 0x30, 0xC0, 0xCE, 0xA0, 0x26, 0xD1, 0x08, 0x59, 0x10, 0xE0, 0xA5, 0x80, 0x00, 0xC2, 0x21, 0x5A, 0x80, 0xB5,
+ 0xA9, 0x40, 0x88, 0xD2, 0xB5, 0xA8, 0x20, 0xB7, 0x14, 0x56, 0x88, 0xD2, 0x36, 0xA9, 0xA6, 0xD0, 0x08, 0x59, 0x10, 0xD2, 0x31, 0xA9, 0x10, 0xF0, 0x25, 0x80, 0x26, 0xD1, 0x08, 0x5D,
+ 0x60, 0xB7, 0x49, 0x40, 0x08, 0xD2, 0x09, 0xA1, 0x10, 0xF2, 0xA5, 0xA8, 0x10, 0xF0, 0x25, 0x80, 0xC2, 0x74, 0xA1, 0x58, 0x08, 0xD2, 0x8D, 0xA0, 0x00, 0xC0, 0x42, 0x93, 0x00, 0xC0,
+ 0x3A, 0x91, 0xC0, 0x74, 0x00, 0xC0, 0xA2, 0x91, 0x40, 0xB7, 0x84, 0x5B, 0x02, 0xC0, 0xC0, 0x90, 0xC4, 0x74, 0x00, 0xC0, 0xC2, 0x91, 0x40, 0xB7, 0x84, 0x5B, 0x01, 0xC0, 0xE0, 0x93,
+ 0x40, 0xB7, 0x84, 0x5B, 0x8A, 0xD2, 0xB4, 0xA9, 0x20, 0xC0, 0xE2, 0xA1, 0x01, 0xC0, 0xE0, 0x92, 0x40, 0xB7, 0x84, 0x5B, 0x8A, 0xD2, 0xB4, 0xA9, 0x20, 0xC0, 0xE1, 0xA1, 0x01, 0xC0,
+ 0xE0, 0x91, 0xC8, 0xD2, 0x21, 0xAA, 0x00, 0x75, 0x01, 0xC0, 0x42, 0x90, 0x40, 0xB7, 0x94, 0x5B, 0x88, 0xD2, 0x35, 0xAA, 0x51, 0x9E, 0x0E, 0x85, 0x10, 0xC2, 0x07, 0xA1, 0x88, 0xD2,
+ 0xB5, 0xA8, 0x60, 0xB7, 0x1C, 0x5B, 0x10, 0xD2, 0xB2, 0xA8, 0xA6, 0xD0, 0x08, 0x59, 0x10, 0xF2, 0x25, 0xAA, 0x03, 0x01, 0x30, 0xC0, 0xCE, 0xA0, 0x26, 0xD1, 0x08, 0x59, 0xAA, 0x9D,
+ 0x10, 0xE0, 0xA6, 0x80, 0x00, 0xC2, 0x21, 0x5A, 0x80, 0xB5, 0xA9, 0x40, 0x00, 0xC0, 0x40, 0x91, 0x40, 0xB7, 0x84, 0x5B, 0x8A, 0xD2, 0xB4, 0xA9, 0x60, 0xB7, 0x1C, 0x5B, 0x20, 0xC0,
+ 0x61, 0xA2, 0x88, 0xD2, 0x35, 0xAA, 0x26, 0xD2, 0x08, 0x59, 0x3A, 0xC0, 0xCC, 0xA9, 0x7F, 0xB5, 0x64, 0x7B, 0x18, 0xD0, 0xC6, 0xA8, 0x44, 0x9D, 0x10, 0xC2, 0x05, 0xAB, 0x3F, 0xB5,
+ 0xF4, 0x7B, 0x18, 0xD0, 0x49, 0xA9, 0x5F, 0xB5, 0x6C, 0x7C, 0x18, 0xD0, 0xCD, 0xA9, 0x7F, 0xB5, 0xEC, 0x7C, 0x08, 0xF2, 0x35, 0xAA, 0xFF, 0xCF, 0x7C, 0x2A, 0x61, 0xC0, 0x02, 0x75,
+ 0x01, 0xC0, 0x44, 0x92, 0x88, 0xD2, 0x35, 0xAA, 0x00, 0x75, 0x00, 0xC0, 0xA2, 0x92, 0x20, 0xB7, 0x8C, 0x5A, 0x80, 0xB7, 0x29, 0x43, 0x02, 0x75, 0x00, 0xC0, 0xC4, 0x91, 0x60, 0xB7,
+ 0x31, 0x42, 0x80, 0x77, 0x7F, 0xB5, 0xF4, 0x7D, 0x20, 0xB7, 0xA9, 0x42, 0x8A, 0x0F, 0x01, 0xD0, 0xF2, 0x1F, 0x00, 0xC0, 0x00, 0x93, 0x88, 0xD2, 0x35, 0xAA, 0x00, 0x75, 0x00, 0xC0,
+ 0xA4, 0x92, 0x20, 0xB7, 0x8C, 0x5A, 0x80, 0xB7, 0x29, 0x41, 0x02, 0x75, 0x00, 0xC0, 0xC4, 0x91, 0x20, 0xB7, 0x31, 0x40, 0x80, 0x77, 0x3F, 0xB5, 0xF4, 0x7D, 0x20, 0xB7, 0xA9, 0x40,
+ 0x01, 0xD0, 0x42, 0x0A, 0xA7, 0x9E, 0x3F, 0xB5, 0x6C, 0x7E, 0x08, 0xF2, 0x35, 0xAA, 0xFF, 0xCF, 0x7C, 0x2A, 0x61, 0xC0, 0x02, 0x75, 0x03, 0xC0, 0xE4, 0x90, 0x40, 0xB7, 0x84, 0x5B,
+ 0x88, 0xD2, 0x37, 0xA9, 0x2D, 0x9E, 0x30, 0xC0, 0x4D, 0xAA, 0x73, 0x9E, 0x8F, 0x00, 0x06, 0x75, 0x26, 0xD2, 0x0C, 0x59, 0x40, 0x85, 0x5A, 0xE0, 0x44, 0x80, 0x02, 0xC0, 0xC0, 0x92,
+ 0x02, 0xC0, 0x80, 0x92, 0x00, 0xC0, 0xC0, 0x90, 0x00, 0xC0, 0x00, 0x91, 0x00, 0xC0, 0xA0, 0x93, 0x11, 0xD0, 0xE2, 0x4D, 0x11, 0xD0, 0xF2, 0x48, 0x88, 0xD2, 0x35, 0xAA, 0x00, 0x75,
+ 0x00, 0xC0, 0xA2, 0x90, 0x40, 0x74, 0x00, 0xC0, 0x22, 0x91, 0x88, 0xD2, 0x36, 0xA9, 0x82, 0x0D, 0xF4, 0xFF, 0x46, 0x9A, 0x01, 0xC0, 0x60, 0x93, 0x88, 0xD2, 0x36, 0xA9, 0x86, 0x0D,
+ 0x82, 0x09, 0xF4, 0xFF, 0x3E, 0x9A, 0x01, 0xC0, 0x60, 0x92, 0x88, 0xD2, 0x35, 0xAA, 0x00, 0x75, 0x00, 0xC0, 0x24, 0x92, 0x88, 0xD2, 0x36, 0xA9, 0x11, 0xD0, 0xE2, 0x4D, 0x82, 0x0D,
+ 0xF4, 0xFF, 0x30, 0x9A, 0x88, 0xD2, 0x36, 0xA9, 0x73, 0x9E, 0x82, 0x0D, 0xF4, 0xFF, 0x45, 0x9A, 0x00, 0xC0, 0xE0, 0x93, 0xC0, 0x75, 0x00, 0xC0, 0x02, 0x92, 0x88, 0xD2, 0x36, 0xA9,
+ 0x86, 0x0D, 0x82, 0x09, 0xF4, 0xFF, 0x1F, 0x9A, 0x88, 0xD2, 0x36, 0xA9, 0x82, 0x0D, 0x8F, 0x01, 0xF4, 0xFF, 0x34, 0x9A, 0x00, 0xC0, 0xC0, 0x91, 0x88, 0xD2, 0x36, 0xA9, 0x82, 0x0D,
+ 0x82, 0x09, 0xF4, 0xFF, 0x11, 0x9A, 0x88, 0xD2, 0x36, 0xA9, 0x86, 0x0D, 0x82, 0x09, 0xF4, 0xFF, 0x26, 0x9A, 0x08, 0xF2, 0x35, 0xAA, 0xFF, 0xCF, 0x7C, 0x2A, 0x61, 0xC0, 0x02, 0x75,
+ 0x01, 0xC0, 0xE4, 0x90, 0x88, 0xD2, 0x35, 0xAA, 0x00, 0x75, 0x01, 0xC0, 0x42, 0x90, 0x80, 0xB7, 0x8C, 0x5A, 0x08, 0xD2, 0x99, 0xA8, 0x44, 0x74, 0x00, 0xC0, 0x64, 0x93, 0x80, 0x77,
+ 0x00, 0xC0, 0xA2, 0x91, 0x80, 0xB7, 0x0C, 0x5B, 0x08, 0xD2, 0x89, 0xA8, 0x3F, 0xB5, 0xEC, 0x7D, 0x08, 0xD2, 0x0D, 0xAA, 0x8A, 0x0F, 0x00, 0xC0, 0x60, 0x91, 0x80, 0xB7, 0x0C, 0x5B,
+ 0x08, 0xD2, 0x82, 0xA8, 0x3F, 0xB5, 0xF4, 0x7D, 0x08, 0xD2, 0x05, 0xAA, 0x86, 0x0F, 0x9F, 0xB5, 0x6C, 0x7E, 0x08, 0xF2, 0x35, 0xAA, 0xFF, 0xCF, 0x7C, 0x2A, 0x61, 0xC0, 0x04, 0x75,
+ 0x03, 0xC0, 0x84, 0x93, 0x80, 0xB7, 0x8C, 0x5A, 0x48, 0xD2, 0x89, 0xA8, 0x42, 0x74, 0xCD, 0x9D, 0x00, 0xC0, 0xE4, 0x91, 0x40, 0xD0, 0x63, 0xA9, 0x80, 0x77, 0x5F, 0xB5, 0xFC, 0x7E,
+ 0x40, 0xD0, 0xE6, 0xA8, 0x01, 0xD0, 0x92, 0x08, 0x3F, 0xB5, 0x6C, 0x7D, 0x3F, 0xB5, 0x74, 0x7F, 0x00, 0xD0, 0x69, 0xAA, 0x02, 0x75, 0x01, 0xC0, 0x84, 0x91, 0x00, 0xD0, 0x79, 0xAA,
+ 0x00, 0x75, 0x01, 0xC0, 0xE2, 0x90, 0x88, 0xD2, 0x35, 0xAA, 0x00, 0x75, 0x01, 0xC0, 0x44, 0x90, 0x12, 0x85, 0x2A, 0x9E, 0x47, 0x9D, 0x26, 0xD3, 0x08, 0x5D, 0x3D, 0x9E, 0x80, 0x77,
+ 0x38, 0xC0, 0x4D, 0xA9, 0x02, 0xE0, 0x28, 0x8F, 0x5F, 0xB5, 0x6C, 0x7C, 0x32, 0xC0, 0x40, 0xA9, 0x5F, 0xB5, 0x64, 0x7B, 0x18, 0xD0, 0xC6, 0xA8, 0x02, 0xD0, 0x98, 0x18, 0x01, 0xC0,
+ 0x16, 0x02, 0x3F, 0xB5, 0xF4, 0x7C, 0x08, 0xD2, 0x05, 0xAA, 0x0E, 0x0B, 0x9F, 0xB5, 0xEC, 0x7B, 0x02, 0xC0, 0x20, 0x93, 0x00, 0xD0, 0x69, 0xAA, 0x00, 0x75, 0x00, 0xC0, 0x02, 0x93,
+ 0x88, 0xD2, 0x35, 0xAA, 0x00, 0x75, 0x00, 0xC0, 0xA2, 0x90, 0xC0, 0x75, 0x00, 0xC0, 0x04, 0x92, 0x00, 0xD0, 0x63, 0xA9, 0x80, 0x77, 0x5F, 0xB5, 0x7C, 0x7B, 0x00, 0xD0, 0xE5, 0xA8,
+ 0x06, 0x0B, 0x01, 0xD0, 0x62, 0x0B, 0x3F, 0xB5, 0xEC, 0x7B, 0x01, 0xC0, 0xC0, 0x93, 0x00, 0xD0, 0x79, 0xAA, 0x00, 0x75, 0x01, 0xC0, 0x22, 0x93, 0x88, 0xD2, 0x35, 0xAA, 0x00, 0x75,
+ 0x00, 0xC0, 0xA2, 0x90, 0xC0, 0x75, 0x01, 0xC0, 0x22, 0x92, 0x00, 0xD0, 0x73, 0xA9, 0x80, 0x77, 0x5F, 0xB5, 0x7C, 0x7B, 0x00, 0xD0, 0xF5, 0xA8, 0x0A, 0x0B, 0x01, 0xD0, 0x62, 0x1B,
+ 0x3F, 0xB5, 0xEC, 0x7B, 0x01, 0xC0, 0x60, 0x90, 0x88, 0xD2, 0x39, 0xAA, 0x04, 0x75, 0x00, 0xC0, 0xC4, 0x93, 0x88, 0xD2, 0x35, 0xAA, 0x40, 0xB7, 0x04, 0x5B, 0x20, 0xB7, 0x94, 0x5B,
+ 0x26, 0xD2, 0x08, 0x59, 0x2D, 0x9E, 0x38, 0xC0, 0xCF, 0xA9, 0x49, 0x9E, 0x7F, 0xB5, 0x7C, 0x7B, 0x18, 0xD0, 0xC6, 0xA8, 0x10, 0xC2, 0x05, 0xAB, 0x3F, 0xB5, 0xF4, 0x7B, 0x18, 0xD0,
+ 0x49, 0xA9, 0x5F, 0xB5, 0x6C, 0x7C, 0x18, 0xD0, 0xCD, 0xA9, 0x7F, 0xB5, 0xEC, 0x7C, 0x08, 0xF2, 0x35, 0xAA, 0xFF, 0xCF, 0x7C, 0x2A, 0x61, 0xC0, 0x04, 0x75, 0x01, 0xC0, 0x44, 0x90,
+ 0x80, 0xB7, 0x8C, 0x5A, 0x08, 0xD2, 0x99, 0xA8, 0x44, 0x74, 0x00, 0xC0, 0x64, 0x93, 0x80, 0x77, 0x00, 0xC0, 0xA2, 0x91, 0x80, 0xB7, 0x0C, 0x5B, 0x08, 0xD2, 0x8A, 0xA9, 0x7F, 0xB5,
+ 0xF4, 0x7D, 0x08, 0xD2, 0x0D, 0xAA, 0x8A, 0x0F, 0x00, 0xC0, 0x60, 0x91, 0x80, 0xB7, 0x0C, 0x5B, 0x08, 0xD2, 0x81, 0xA8, 0x3F, 0xB5, 0xEC, 0x7D, 0x08, 0xD2, 0x05, 0xAA, 0x86, 0x0F,
+ 0x9F, 0xB5, 0x6C, 0x7E, 0x7F, 0xB7, 0xF4, 0x7B, 0x40, 0xB7, 0x14, 0x55, 0x5F, 0xB7, 0xEC, 0x7C, 0x7F, 0xB7, 0x6C, 0x7C, 0x80, 0xC1, 0x98, 0x5C, 0x1A, 0x9D, 0x5F, 0xB7, 0x64, 0x7B,
+ 0x00, 0xC1, 0x48, 0x5A, 0x80, 0xC1, 0xB0, 0x58, 0x42, 0x32, 0x01, 0xC3, 0x44, 0x32, 0x01, 0xC0, 0x44, 0x32, 0x10, 0xF0, 0x51, 0xA2, 0x3F, 0xB7, 0x6C, 0x7E, 0x7F, 0xB7, 0xEC, 0x7D,
+ 0x7F, 0xB7, 0x74, 0x7F, 0x5F, 0xB7, 0xE4, 0x7E, 0x80, 0xC0, 0x48, 0x5A, 0x80, 0xC1, 0xB0, 0x58, 0x42, 0x32, 0x80, 0xC1, 0x98, 0x5C, 0x1A, 0x9D, 0xA2, 0xD3, 0xE8, 0x5C, 0x10, 0xF0,
+ 0x55, 0xA9, 0x01, 0xC3, 0x44, 0x32, 0x01, 0xC0, 0x44, 0x32, 0x10, 0xF0, 0x59, 0xA2, 0x22, 0x31, 0x3F, 0xB7, 0x6C, 0x7D, 0x80, 0xC0, 0x60, 0x5A, 0x28, 0x31, 0x00, 0xC3, 0xC4, 0x58,
+ 0x22, 0x31, 0x10, 0xF0, 0x55, 0xA1, 0x9F, 0xB7, 0xEE, 0x7B, 0xBF, 0xB7, 0x6E, 0x7C, 0xDF, 0xB7, 0xEE, 0x7C, 0xFF, 0xB7, 0x6E, 0x7D, 0x04, 0xC0, 0x20, 0x8C, 0x22, 0x9C, 0x00, 0xE0,
+ 0x80, 0x09, 0x5C, 0x9E, 0x40, 0xB3, 0xA2, 0x48, 0x02, 0x85, 0x10, 0xD0, 0xB2, 0x19, 0x29, 0xF2, 0x07, 0xA1, 0xFF, 0xFF, 0xC1, 0x93, 0x22, 0x9C, 0x11, 0xF0, 0x20, 0x0E, 0x59, 0x9E,
+ 0x40, 0xB3, 0xA2, 0x48, 0x10, 0xD0, 0xC2, 0x19, 0x29, 0xF0, 0x65, 0xAA, 0x29, 0xF0, 0x25, 0xA2, 0xFF, 0xFF, 0x81, 0x93, 0x22, 0x9C, 0x1D, 0xA6, 0x0E, 0xC0, 0x60, 0x84, 0x20, 0xB7,
+ 0x8C, 0x57, 0x80, 0xB7, 0x29, 0x41, 0x02, 0x85, 0x00, 0x75, 0x82, 0x0E, 0x83, 0x03, 0x00, 0xC0, 0xE2, 0x90, 0x88, 0xD2, 0x7D, 0xAA, 0x00, 0x75, 0x00, 0xC0, 0xA4, 0x93, 0x88, 0xD2,
+ 0xFA, 0xA8, 0x40, 0x76, 0x82, 0x08, 0x01, 0xD0, 0x92, 0x08, 0x46, 0x76, 0x02, 0x0A, 0x01, 0xD0, 0x42, 0x0A, 0x00, 0xE0, 0x98, 0x30, 0x00, 0xC0, 0xC4, 0x93, 0x11, 0xD0, 0x12, 0x1E,
+ 0x02, 0x75, 0x01, 0xC0, 0x52, 0x90, 0x20, 0xB7, 0x8C, 0x55, 0x80, 0xB7, 0x29, 0x4E, 0x13, 0xD1, 0x4E, 0x09, 0x00, 0xC0, 0x40, 0x93, 0x88, 0xD2, 0x79, 0xAA, 0x00, 0x75, 0x82, 0x0C,
+ 0x01, 0xD0, 0x92, 0x0C, 0x06, 0x75, 0x4A, 0x9E, 0x82, 0x08, 0x01, 0xD0, 0x92, 0x08, 0x00, 0xE0, 0x22, 0x31, 0x00, 0xC0, 0xA2, 0x90, 0x3A, 0x85, 0x00, 0xC0, 0x00, 0x91, 0x80, 0xB7,
+ 0x8C, 0x55, 0xC8, 0xD2, 0x95, 0xA8, 0x73, 0xD0, 0x16, 0x09, 0x52, 0xD0, 0xD9, 0x6D, 0xD1, 0xF3, 0x80, 0x8C, 0x4F, 0x9D, 0xA9, 0x9E, 0x96, 0x05, 0x14, 0xC0, 0x75, 0x9A, 0x40, 0xB7,
+ 0x8C, 0x55, 0x91, 0xD0, 0x22, 0x0A, 0x08, 0xD2, 0x81, 0xA9, 0x52, 0xD0, 0xD8, 0x09, 0x84, 0x09, 0x14, 0xC0, 0x6A, 0x9A, 0x20, 0xB7, 0x8C, 0x55, 0x91, 0xD0, 0x10, 0x0A, 0x08, 0xD2,
+ 0x81, 0xA9, 0xB2, 0xD0, 0xD0, 0x09, 0xBC, 0x09, 0x14, 0xC0, 0x5F, 0x9A, 0x08, 0xD2, 0x69, 0xAA, 0xAF, 0x9E, 0x00, 0x75, 0x8E, 0x0E, 0x00, 0xC0, 0xE2, 0x90, 0x88, 0xD2, 0xFD, 0xA8,
+ 0x40, 0x74, 0x00, 0xC0, 0x44, 0x91, 0x20, 0xB7, 0x94, 0x55, 0x80, 0xB7, 0x49, 0x4F, 0xD3, 0xD0, 0x4E, 0x09, 0x01, 0xC0, 0x60, 0x91, 0x88, 0xD2, 0xFA, 0xA8, 0x11, 0xD0, 0x12, 0x1E,
+ 0x0E, 0xC0, 0x7C, 0x2A, 0x02, 0x75, 0x00, 0xC0, 0xB2, 0x90, 0x44, 0x74, 0x00, 0xC0, 0x22, 0x92, 0x46, 0x74, 0x00, 0xC0, 0xC4, 0x92, 0x40, 0xB7, 0x8C, 0x55, 0x88, 0xD0, 0x4D, 0xAA,
+ 0x00, 0x75, 0x00, 0xC0, 0xE4, 0x91, 0xF1, 0xD3, 0x1E, 0x2E, 0x02, 0x75, 0x00, 0xC0, 0x44, 0x91, 0x60, 0xB7, 0x9C, 0x55, 0xD8, 0xD0, 0x7D, 0xAA, 0xF3, 0xD0, 0x46, 0x09, 0x00, 0xC0,
+ 0x00, 0x91, 0x20, 0xB7, 0x8C, 0x55, 0x80, 0xB7, 0xA9, 0x4F, 0x33, 0xD1, 0x46, 0x09, 0x52, 0xD0, 0xD9, 0x6D, 0x4F, 0x9D, 0xF6, 0x05, 0x14, 0xC0, 0x1C, 0x9A, 0x08, 0xD2, 0x69, 0xAA,
+ 0x02, 0x85, 0x00, 0x75, 0x84, 0x0E, 0x01, 0xC0, 0xA2, 0x93, 0x88, 0xD2, 0xFE, 0xA8, 0x40, 0x76, 0x01, 0xC0, 0x02, 0x93, 0x40, 0xB7, 0x8C, 0x55, 0x08, 0xD0, 0xD9, 0xA8, 0x48, 0x74,
+ 0x00, 0xC0, 0x84, 0x90, 0x08, 0xD0, 0xDD, 0xA8, 0x88, 0xD2, 0x79, 0xAA, 0x04, 0x1A, 0x0E, 0xC0, 0x7C, 0x2A, 0x02, 0x75, 0x01, 0xC0, 0xF2, 0x90, 0x46, 0x76, 0x00, 0xC0, 0x24, 0x92,
+ 0x46, 0x74, 0x20, 0xB7, 0x8C, 0x55, 0x91, 0xD0, 0x16, 0x0A, 0x08, 0xD2, 0x01, 0xAA, 0xA1, 0xD0, 0xCE, 0x09, 0x00, 0xC0, 0x02, 0x93, 0xF1, 0xD0, 0xCE, 0x09, 0x00, 0xC0, 0x80, 0x92,
+ 0x44, 0x76, 0x00, 0xC0, 0x44, 0x92, 0x40, 0xB7, 0x8C, 0x55, 0x91, 0xD0, 0x24, 0x0A, 0x08, 0xD2, 0x81, 0xA8, 0x40, 0x74, 0x91, 0xD0, 0x26, 0x0A, 0x08, 0xD2, 0x01, 0xAA, 0x42, 0xD0,
+ 0xC6, 0x09, 0x41, 0xD0, 0xCE, 0x09, 0x39, 0x9D, 0x52, 0xD0, 0xD9, 0x6D, 0x4F, 0x9D, 0xF6, 0x05, 0x14, 0xC0, 0xD4, 0x99, 0x02, 0x85, 0x60, 0xB7, 0x9C, 0x55, 0x5F, 0xB5, 0x7A, 0x42,
+ 0x5F, 0xB5, 0xFA, 0x42, 0x5F, 0xB5, 0x7A, 0x43, 0x58, 0xD0, 0x65, 0xAA, 0xF1, 0xD3, 0xCE, 0x28, 0x48, 0x74, 0x84, 0x0E, 0x00, 0xC0, 0x72, 0x91, 0x2E, 0x85, 0x5F, 0xB5, 0x7A, 0x43,
+ 0x32, 0x85, 0x5F, 0xB5, 0xFA, 0x42, 0x36, 0x85, 0x01, 0xC0, 0x20, 0x90, 0x14, 0x1A, 0x0E, 0xC0, 0x7C, 0x2A, 0x0E, 0x75, 0x00, 0xC0, 0xD2, 0x91, 0x02, 0xC0, 0x2A, 0x85, 0x5F, 0xB5,
+ 0x7A, 0x43, 0x02, 0xC0, 0x2E, 0x85, 0x5F, 0xB5, 0xFA, 0x42, 0x02, 0xC0, 0x32, 0x85, 0x00, 0xC0, 0xE0, 0x91, 0x58, 0x74, 0x00, 0xC0, 0xD4, 0x91, 0x02, 0xC0, 0x1E, 0x85, 0x5F, 0xB5,
+ 0x7A, 0x43, 0x02, 0xC0, 0x22, 0x85, 0x5F, 0xB5, 0xFA, 0x42, 0x02, 0xC0, 0x26, 0x85, 0x5F, 0xB5, 0x7A, 0x42, 0x6D, 0x9E, 0x11, 0xD0, 0x56, 0x0A, 0x48, 0x71, 0xA6, 0x9E, 0x00, 0xC0,
+ 0x68, 0x92, 0x53, 0xD0, 0x59, 0x69, 0xF1, 0xF3, 0x00, 0x8D, 0x20, 0xF3, 0xAF, 0x80, 0x29, 0xDA, 0xC5, 0xA9, 0x8B, 0x05, 0x14, 0xC0, 0x87, 0x99, 0x71, 0x9E, 0x84, 0x0A, 0x42, 0x71,
+ 0xD0, 0x0E, 0xFF, 0xFF, 0xE6, 0x92, 0x88, 0xD2, 0x79, 0xAA, 0x00, 0x75, 0x82, 0x0C, 0x01, 0xD0, 0x92, 0x0C, 0x06, 0x75, 0x4A, 0x9E, 0x82, 0x08, 0x01, 0xD0, 0x92, 0x08, 0x00, 0xE0,
+ 0x22, 0x31, 0x00, 0xC0, 0x02, 0x91, 0x80, 0xB7, 0x8C, 0x55, 0x08, 0xD2, 0x17, 0xA9, 0x00, 0xC0, 0xC0, 0x90, 0x60, 0xB7, 0x9C, 0x55, 0x18, 0xD0, 0x73, 0xA9, 0x20, 0xB7, 0x8C, 0x55,
+ 0x80, 0xB7, 0x29, 0x44, 0x10, 0x75, 0x60, 0xB7, 0x21, 0x42, 0x00, 0xC0, 0x12, 0x91, 0x40, 0xB7, 0x04, 0x66, 0x80, 0xB7, 0x8C, 0x66, 0x00, 0xC0, 0xC0, 0x90, 0x40, 0xB7, 0x04, 0x67,
+ 0x80, 0xB7, 0x8C, 0x67, 0x64, 0x9D, 0x2D, 0x9E, 0x40, 0xC0, 0xA5, 0xAA, 0x30, 0xC0, 0x4F, 0xA9, 0x52, 0xD0, 0xE9, 0x6D, 0x4F, 0x9D, 0x12, 0xD0, 0xE2, 0x0E, 0xF6, 0x05, 0x14, 0xC0,
+ 0x47, 0x99, 0x52, 0xD0, 0xD9, 0x6D, 0x8B, 0x01, 0xF6, 0x05, 0x14, 0xC0, 0x41, 0x99, 0x40, 0xB7, 0x8C, 0x55, 0x91, 0xD0, 0x28, 0x0A, 0x08, 0xD2, 0x81, 0xA8, 0x40, 0x74, 0x84, 0x0E,
+ 0x00, 0xC0, 0x04, 0x91, 0x02, 0xC0, 0x1A, 0x85, 0x02, 0xC0, 0x8E, 0x0A, 0x00, 0xC0, 0x80, 0x90, 0x22, 0x85, 0x96, 0x0A, 0x52, 0xD0, 0xD9, 0x6D, 0x4F, 0x9D, 0x84, 0x0E, 0xF6, 0x05,
+ 0x14, 0xC0, 0x28, 0x99, 0x52, 0xD0, 0xD9, 0x6D, 0x7F, 0x9E, 0x7E, 0x9E, 0x82, 0x0E, 0x02, 0x0F, 0x8B, 0x01, 0xF6, 0x05, 0x14, 0xC0, 0x1E, 0x99, 0x11, 0xF0, 0xD6, 0x2C, 0x00, 0xC0,
+ 0x42, 0x91, 0x13, 0xD0, 0x58, 0x0D, 0x10, 0xF2, 0x23, 0x88, 0x00, 0xC2, 0x40, 0x5A, 0x24, 0xD2, 0xC1, 0x5A, 0x33, 0xD0, 0x70, 0x09, 0x6E, 0x9D, 0x82, 0x0D, 0x30, 0xE0, 0xCE, 0xA2,
+ 0xB4, 0xFE, 0x12, 0x98, 0x08, 0xF2, 0xC1, 0xA9, 0x40, 0xB7, 0x04, 0x53, 0x13, 0xD0, 0x78, 0x09, 0x71, 0x9E, 0x57, 0x9D, 0x18, 0xE2, 0xA6, 0xA9, 0x84, 0x59, 0x10, 0xE2, 0xA7, 0x83,
+ 0x80, 0xC2, 0x08, 0x5D, 0x00, 0xC3, 0x00, 0x0D, 0xB4, 0xFE, 0xAC, 0x98, 0x6A, 0x9E, 0x08, 0xDA, 0xA1, 0xA8, 0x50, 0x0B, 0x71, 0xD3, 0x78, 0x0A, 0x88, 0x71, 0xA2, 0x00, 0xC0, 0x58,
+ 0xA4, 0xD0, 0xC1, 0x5A, 0x50, 0x0F, 0xFE, 0xFF, 0xB4, 0x91, 0x82, 0x0D, 0x94, 0xFE, 0xEE, 0x9B, 0x3F, 0xB7, 0x74, 0x63, 0x9F, 0xB7, 0xEC, 0x65, 0x40, 0xB7, 0x94, 0x47, 0x49, 0x9E,
+ 0x00, 0xC2, 0x2C, 0x5A, 0x98, 0x31, 0xB1, 0xD3, 0xA8, 0x0C, 0x60, 0xB5, 0x2D, 0x40, 0x3F, 0xB7, 0x74, 0x68, 0x9F, 0xB7, 0xEC, 0x6A, 0xD1, 0xD3, 0xA0, 0x0C, 0x4A, 0x9E, 0x00, 0xC2,
+ 0x2C, 0x5A, 0xA8, 0x31, 0x60, 0xB5, 0x2D, 0x40, 0x3F, 0xB7, 0x74, 0x6D, 0x9F, 0xB7, 0xEC, 0x6F, 0x49, 0x9E, 0x00, 0xC2, 0x2C, 0x5A, 0x98, 0x31, 0xD1, 0xD3, 0xA8, 0x0C, 0x51, 0xD2,
+ 0x78, 0x0E, 0x12, 0xD2, 0xF0, 0x0C, 0x60, 0xB5, 0x2D, 0x40, 0x08, 0xF2, 0x81, 0xA8, 0x40, 0xB7, 0x4D, 0x40, 0xF1, 0xD3, 0x20, 0x0E, 0xAC, 0x58, 0xA2, 0x31, 0xF1, 0xD2, 0xF8, 0x0C,
+ 0xB2, 0xD2, 0xF0, 0x0C, 0x08, 0xF2, 0x81, 0xA1, 0x80, 0xB7, 0x2D, 0x40, 0x40, 0xB7, 0x4D, 0x40, 0xF1, 0xD3, 0xA8, 0x0C, 0x00, 0xC2, 0x2C, 0x5A, 0xA8, 0x31, 0x91, 0xD3, 0x78, 0x0E,
+ 0x60, 0xB5, 0x2D, 0x40, 0x08, 0xF2, 0x82, 0xA8, 0x51, 0xD3, 0xF0, 0x0C, 0x80, 0xB7, 0x2D, 0x40, 0xAC, 0x5C, 0x4A, 0x9E, 0x10, 0xC0, 0x00, 0x0D, 0xC4, 0x31, 0x10, 0xF0, 0xC1, 0xA1,
+ 0x9F, 0xB7, 0x6C, 0x66, 0x5F, 0xB7, 0xEC, 0x63, 0x3F, 0xB7, 0x74, 0x6B, 0x3F, 0xB7, 0xEC, 0x68, 0x00, 0xC2, 0x0C, 0x5A, 0xA8, 0x31, 0xA4, 0x5C, 0x4C, 0x9E, 0x98, 0x58, 0xB2, 0x31,
+ 0xB8, 0x31, 0x11, 0xD2, 0x78, 0x0E, 0x3F, 0xB7, 0x74, 0x70, 0x08, 0xF2, 0x01, 0xA9, 0x71, 0xD2, 0x70, 0x0E, 0x3F, 0xB7, 0xEC, 0x6D, 0xBC, 0x5C, 0x1E, 0x9D, 0x08, 0xF2, 0x82, 0xA8,
+ 0xB0, 0x58, 0xB2, 0x31, 0xB1, 0xD2, 0xF8, 0x0C, 0x11, 0xD3, 0x70, 0x0E, 0x01, 0xC3, 0xB6, 0x31, 0x48, 0x59, 0xB4, 0x31, 0x40, 0xB7, 0x2D, 0x40, 0x08, 0xF2, 0x81, 0xA8, 0xD4, 0x5C,
+ 0x4C, 0x9E, 0xB8, 0x31, 0xB1, 0xD3, 0x70, 0x0E, 0x02, 0xC0, 0x30, 0x0D, 0x52, 0xD3, 0xF8, 0x0C, 0x60, 0x59, 0xB4, 0x31, 0xEC, 0x58, 0xB2, 0x31, 0x31, 0xF0, 0xC5, 0xA1, 0x08, 0xF2,
+ 0x81, 0xA8, 0x80, 0xB7, 0x4D, 0x40, 0x8C, 0x58, 0xC2, 0x31, 0x10, 0xF0, 0xC1, 0xA1, 0x9F, 0xB7, 0xEC, 0x66, 0x5F, 0xB7, 0x6C, 0x64, 0x3F, 0xB7, 0x6C, 0x69, 0x3F, 0xB7, 0xF4, 0x6B,
+ 0x00, 0xC2, 0x08, 0x5A, 0xA8, 0x31, 0x9F, 0xB7, 0x6C, 0x6E, 0x90, 0x58, 0xB2, 0x31, 0x98, 0x5C, 0x1E, 0x9D, 0x3F, 0xB7, 0xEC, 0x70, 0x01, 0xC3, 0xB6, 0x31, 0x00, 0xC2, 0x20, 0x5A,
+ 0xB8, 0x31, 0xA8, 0x58, 0xB2, 0x31, 0x31, 0xD2, 0x70, 0x0E, 0x71, 0xD2, 0xF8, 0x0C, 0x08, 0xF2, 0x82, 0xA8, 0xD1, 0xD2, 0x70, 0x0E, 0x40, 0xB7, 0x2D, 0x40, 0x08, 0xF2, 0x81, 0xA8,
+ 0xB0, 0x5C, 0x4C, 0x9E, 0xB8, 0x31, 0x11, 0xD3, 0x78, 0x0E, 0x30, 0x0D, 0x38, 0x59, 0xB4, 0x31, 0xC0, 0x58, 0xB2, 0x31, 0x08, 0xF2, 0x82, 0xA8, 0x71, 0xD3, 0xF0, 0x0C, 0xB1, 0xD3,
+ 0x78, 0x0E, 0x40, 0xB7, 0x2D, 0x40, 0xC8, 0x5C, 0x1E, 0x9D, 0x08, 0xF2, 0x81, 0xA8, 0x50, 0x59, 0x01, 0xC3, 0xB6, 0x31, 0xB4, 0x31, 0xD8, 0x58, 0xB2, 0x31, 0x10, 0xF0, 0xC1, 0xA1,
+ 0x9F, 0xB7, 0xEE, 0x6E, 0xBF, 0xB7, 0x6E, 0x6F, 0xDF, 0xB7, 0xEE, 0x6F, 0xFF, 0xB7, 0x6E, 0x70, 0x10, 0xC0, 0x60, 0x8C, 0x22, 0x9C, 0x40, 0xB7, 0x84, 0x65, 0xC0, 0x59, 0xA6, 0xD1,
+ 0x39, 0x59, 0x2D, 0x9E, 0x30, 0xC8, 0xCD, 0xA8, 0x30, 0xE0, 0xCE, 0xA8, 0x10, 0xF0, 0xE1, 0xA0, 0x4C, 0x9E, 0xA2, 0xD0, 0xE5, 0x5C, 0xF1, 0x5C, 0x8C, 0x2C, 0x10, 0xF0, 0xF2, 0xA0,
+ 0x1F, 0xC0, 0x7C, 0x2A, 0x00, 0xC2, 0x41, 0x5A, 0x10, 0xF0, 0x65, 0xA2, 0x9C, 0x28, 0x10, 0xF0, 0xED, 0xA0, 0x22, 0x9C, 0x40, 0xB7, 0x16, 0x5C, 0x01, 0xC0, 0x88, 0x9C, 0xC0, 0x76,
+ 0x01, 0xC0, 0x00, 0x28, 0x20, 0x58, 0xB0, 0x41, 0x32, 0xB3, 0x44, 0x48, 0x11, 0xF0, 0x20, 0x0C, 0x40, 0xB3, 0xA2, 0x48, 0x10, 0xF8, 0x42, 0xA9, 0x86, 0x70, 0xFF, 0xFF, 0x24, 0x93,
+ 0x84, 0x7A, 0x22, 0x9C, 0x21, 0xC0, 0xC0, 0x7E, 0x00, 0xB7, 0x0E, 0x40, 0x00, 0xB3, 0x24, 0x4A, 0x22, 0x9C, 0x01, 0xC0, 0xC2, 0x7C, 0x00, 0xC0, 0xE2, 0x90, 0x71, 0xC0, 0x8C, 0x9C,
+ 0x70, 0xD0, 0x80, 0x45, 0xB0, 0x31, 0x8D, 0xA4, 0x39, 0xF8, 0x85, 0xA1, 0xEC, 0x9F, 0xF8, 0xF9, 0x1D, 0xA8, 0x60, 0x8C, 0x22, 0x9C, 0x02, 0xC0, 0x88, 0x9C, 0x01, 0xC0, 0x80, 0x9C,
+ 0x01, 0xC0, 0x04, 0x2C, 0x20, 0x5C, 0x70, 0xC0, 0x00, 0x28, 0x48, 0x58, 0x22, 0x9C, 0x05, 0xA6, 0x09, 0xC8, 0x42, 0x0E, 0x97, 0xB0, 0x66, 0x2C, 0x81, 0x02, 0x40, 0xB7, 0x0E, 0x5C,
+ 0x20, 0xB5, 0x8C, 0x53, 0x80, 0x74, 0x00, 0xC0, 0xE2, 0x93, 0xB1, 0xD0, 0xD8, 0x09, 0xAD, 0x9E, 0x82, 0x0D, 0x09, 0xC8, 0x42, 0x0E, 0x97, 0xB0, 0xA6, 0x26, 0x09, 0xC8, 0x42, 0x0E,
+ 0x97, 0xB0, 0xA6, 0x33, 0x11, 0xC0, 0x80, 0x0A, 0xB1, 0xD0, 0xD8, 0x09, 0x21, 0xC9, 0xC5, 0x9C, 0x82, 0x0D, 0x09, 0xC8, 0x42, 0x0E, 0x97, 0xB0, 0xA6, 0x26, 0x09, 0xC8, 0x42, 0x0E,
+ 0x97, 0xB0, 0xA6, 0x33, 0xA0, 0xB5, 0x0E, 0x40, 0xF8, 0xF9, 0x9D, 0xAA, 0xF8, 0xF9, 0x1D, 0xAA, 0x22, 0x9C, 0x00, 0x78, 0x21, 0xD0, 0xDA, 0x46, 0x40, 0xB3, 0xA2, 0x48, 0x60, 0xB7,
+ 0xBC, 0x42, 0x49, 0xC0, 0x82, 0x0D, 0x08, 0xC0, 0x80, 0x0D, 0x21, 0xC0, 0x40, 0x7F, 0xC1, 0xCF, 0x80, 0x2E, 0x80, 0xC2, 0xB9, 0x5E, 0x22, 0xD0, 0xD0, 0x0E, 0xBA, 0x05, 0x82, 0x09,
+ 0x39, 0xF8, 0xE5, 0xA1, 0x83, 0x9E, 0x32, 0xF0, 0xB0, 0x8C, 0x39, 0xF8, 0xE5, 0xA1, 0x60, 0xB9, 0x78, 0x40, 0x09, 0xC8, 0x42, 0x0D, 0xD4, 0xCB, 0x20, 0x0D, 0x52, 0x9E, 0x39, 0xF8,
+ 0x65, 0xA1, 0xFF, 0xFF, 0xC1, 0x93, 0x09, 0xC8, 0x42, 0x0D, 0xF2, 0xCB, 0x30, 0x0D, 0x98, 0xF1, 0x66, 0xA1, 0x22, 0x9C, 0x00, 0xB7, 0x35, 0x40, 0x60, 0xB7, 0xBF, 0x43, 0x02, 0xC0,
+ 0x00, 0x72, 0x2E, 0x0D, 0x30, 0xB3, 0xA2, 0x50, 0x06, 0x0D, 0x02, 0x87, 0x74, 0xC0, 0xCE, 0x9C, 0xF3, 0x9C, 0x00, 0xB7, 0x35, 0x40, 0x02, 0xC4, 0x00, 0x72, 0x44, 0x55, 0x04, 0x44,
+ 0x00, 0xB5, 0x35, 0x40, 0xF0, 0x9C, 0x74, 0xC0, 0xCE, 0x9C, 0x2A, 0x0D, 0x88, 0x5C, 0x84, 0x0C, 0x1B, 0x9C, 0x33, 0x9D, 0x13, 0xE0, 0x80, 0x84, 0x39, 0xF8, 0x05, 0xA2, 0x51, 0xC0,
+ 0x84, 0x9C, 0x09, 0xC8, 0x42, 0x0A, 0x08, 0xCC, 0x40, 0x0A, 0x08, 0x70, 0x06, 0xC0, 0xC2, 0x92, 0x9C, 0x0D, 0x01, 0x81, 0x00, 0xE0, 0x07, 0x00, 0xFE, 0xCF, 0xE2, 0x2D, 0x07, 0x04,
+ 0x32, 0xB3, 0x6A, 0x48, 0x09, 0xC8, 0xC2, 0x0C, 0x32, 0xCC, 0xA0, 0x0C, 0x33, 0xE0, 0xA0, 0x85, 0x01, 0xC8, 0x80, 0x29, 0x01, 0xC0, 0x8A, 0x08, 0x96, 0x00, 0x18, 0xF8, 0xC1, 0xA0,
+ 0x71, 0xF1, 0x20, 0x84, 0xF8, 0xC9, 0x7D, 0xA4, 0x82, 0x08, 0x82, 0x0C, 0x39, 0xF8, 0xE5, 0xA0, 0x39, 0xF8, 0xE5, 0xA0, 0x08, 0xCA, 0x1F, 0xA4, 0x85, 0x80, 0x03, 0xC0, 0x00, 0x90,
+ 0xEF, 0x9C, 0x95, 0xE0, 0xC0, 0x84, 0x02, 0x9C, 0x10, 0xC0, 0x82, 0x9C, 0x1F, 0xB7, 0x4E, 0x79, 0xFF, 0x9C, 0x00, 0xB5, 0xEE, 0x40, 0x72, 0xE1, 0x00, 0x84, 0x01, 0xC0, 0x88, 0x9C,
+ 0x40, 0xB9, 0x00, 0x40, 0x10, 0xC8, 0x1F, 0xA4, 0xF0, 0x9C, 0x54, 0xE0, 0x00, 0x85, 0x81, 0x80, 0xE0, 0xC8, 0xDD, 0xA4, 0x01, 0xC0, 0x8E, 0x9C, 0x02, 0x0D, 0x02, 0xC0, 0x8B, 0x9C,
+ 0x01, 0xC0, 0x87, 0x9C, 0x20, 0xB9, 0x00, 0x40, 0x00, 0xC8, 0x45, 0xA5, 0x81, 0x01, 0x0D, 0xC0, 0x82, 0x29, 0x52, 0xC0, 0x87, 0x9C, 0x01, 0xC0, 0x84, 0x39, 0x60, 0xB5, 0x6F, 0x40,
+ 0x06, 0xC0, 0x60, 0x84, 0x71, 0xC0, 0x8A, 0x9C, 0x02, 0xC0, 0x8A, 0x9C, 0x81, 0x01, 0x05, 0xCA, 0x80, 0x29, 0x01, 0xCF, 0x00, 0x2D, 0x71, 0x5D, 0x17, 0xD0, 0x28, 0x29, 0xFE, 0xEF,
+ 0x6C, 0x29, 0x01, 0xC0, 0x84, 0x39, 0x20, 0xB7, 0x16, 0x40, 0x02, 0xC0, 0xE2, 0x90, 0x02, 0xC0, 0x80, 0x70, 0x84, 0x7C, 0x82, 0x9E, 0x60, 0xB7, 0xBD, 0x40, 0x86, 0x0D, 0x71, 0xC0,
+ 0x8C, 0x9C, 0x2E, 0xD0, 0x68, 0x55, 0x17, 0xD0, 0x88, 0x29, 0x02, 0xE0, 0x22, 0x76, 0xB0, 0x31, 0x40, 0x0D, 0x22, 0xD1, 0x08, 0x5C, 0x1B, 0xB4, 0x7A, 0x4A, 0x40, 0x08, 0x00, 0xE0,
+ 0x26, 0xA8, 0xAF, 0x9D, 0xF4, 0xFF, 0xA4, 0x9B, 0xEF, 0x9C, 0x71, 0xC0, 0x8E, 0x9C, 0x70, 0xD0, 0xA0, 0x31, 0x00, 0xB7, 0x6F, 0x40, 0x03, 0x80, 0x71, 0xC8, 0x8B, 0x9C, 0x06, 0x9C,
+ 0xFC, 0xDF, 0xFE, 0x7C, 0xFE, 0xFF, 0x44, 0x90, 0x01, 0xC4, 0x00, 0x7C, 0xFD, 0xFF, 0xC4, 0x93, 0x24, 0xF0, 0x84, 0x58, 0x32, 0xE1, 0x10, 0x84, 0x53, 0xE0, 0x10, 0x84, 0x10, 0xC8,
+ 0x07, 0xAD, 0xE8, 0x9D, 0x24, 0xF0, 0x84, 0x58, 0x05, 0xC0, 0x02, 0x28, 0xF8, 0xC8, 0x9D, 0xAC, 0x30, 0xC0, 0x8B, 0x9C, 0x30, 0xC0, 0x8D, 0x9C, 0x10, 0xC8, 0x1F, 0xAC, 0xFB, 0xFF,
+ 0xC0, 0x93, 0x71, 0xC0, 0x8E, 0x9C, 0x03, 0xE0, 0x70, 0x28, 0x17, 0xD0, 0xA8, 0x29, 0xFE, 0xCF, 0x6C, 0x29, 0xB4, 0x31, 0x12, 0x09, 0x24, 0xD0, 0x49, 0x59, 0x04, 0xC0, 0x22, 0x08,
+ 0xFE, 0xFF, 0x44, 0x90, 0x80, 0xC1, 0x24, 0x5D, 0xF9, 0xCF, 0x80, 0x2D, 0x29, 0x5D, 0xB4, 0x05, 0x31, 0xD8, 0xE6, 0xA8, 0x10, 0xD8, 0x62, 0xA9, 0x00, 0xC8, 0x40, 0x7E, 0x12, 0xB3,
+ 0x42, 0x48, 0x40, 0x5D, 0x94, 0x04, 0x80, 0xC0, 0x59, 0x5D, 0x0C, 0x2D, 0x22, 0xD1, 0x08, 0x5C, 0xFD, 0xFF, 0x60, 0x91, 0x39, 0xF8, 0x25, 0xAA, 0x33, 0xE0, 0x10, 0x8C, 0x45, 0x9D,
+ 0x22, 0x9C, 0x09, 0xC8, 0xC2, 0x87, 0x60, 0xB0, 0x20, 0x0C, 0x09, 0xC8, 0xC2, 0x87, 0x60, 0xB0, 0x60, 0x0A, 0xF4, 0xFF, 0xC0, 0x92, 0x09, 0xC8, 0xC2, 0x87, 0x60, 0xB0, 0xC0, 0x09,
+
+};
+
+
+static const unsigned char aui81100_SSData[] = {
+ 0x60, 0xC3, 0x90, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD0, 0x2F, 0x80, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x25, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x04, 0x00, 0x04, 0x80, 0x04, 0x80, 0x04, 0x80, 0x04, 0x00, 0x05, 0x80, 0x04, 0x00, 0x06, 0x80, 0x04, 0x00, 0x07, 0x80, 0x04,
+ 0x00, 0x08, 0x80, 0x04, 0x00, 0x10, 0x80, 0x04, 0x09, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB8, 0x6F, 0x88, 0x82, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x34, 0x03, 0x34, 0x03, 0x08, 0x20, 0x08, 0x20, 0x0A, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xEF, 0xD8, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0xC3, 0x90, 0x80, 0xB0, 0x00, 0x90, 0x80, 0xD0, 0x02, 0x90, 0x80, 0xC4, 0x6C, 0x88, 0x82, 0x9C, 0x6C, 0x88, 0x82, 0xC1, 0x6C, 0x88, 0x82,
+ 0xF4, 0x6C, 0x88, 0x82, 0x00, 0x6D, 0x88, 0x82, 0x80, 0x6C, 0x88, 0x82, 0xB4, 0x63, 0x88, 0x82, 0xBC, 0x63, 0x88, 0x82, 0x34, 0x62, 0x88, 0x82, 0x38, 0x62, 0x88, 0x82, 0xD0, 0x63,
+ 0x88, 0x82, 0x3C, 0x6E, 0x88, 0x82, 0x4C, 0x6E, 0x88, 0x82, 0x54, 0x6E, 0x88, 0x82, 0xAC, 0x69, 0x88, 0x82, 0xEC, 0x69, 0x88, 0x82, 0xFC, 0x69, 0x88, 0x82, 0x0C, 0x6A, 0x88, 0x82,
+ 0x38, 0x6A, 0x88, 0x82, 0xF4, 0x6A, 0x88, 0x82, 0x18, 0x6B, 0x88, 0x82, 0x34, 0x6B, 0x88, 0x82, 0x3C, 0x6B, 0x88, 0x82, 0x58, 0x6B, 0x88, 0x82, 0x60, 0x6D, 0x88, 0x82, 0x64, 0x6D,
+ 0x88, 0x82, 0x90, 0x6D, 0x88, 0x82, 0xBC, 0x6D, 0x88, 0x82, 0xC4, 0x6D, 0x88, 0x82, 0xCC, 0x6D, 0x88, 0x82, 0xF0, 0x6D, 0x88, 0x82, 0x14, 0x6E, 0x88, 0x82, 0x18, 0x6E, 0x88, 0x82,
+ 0x58, 0x6E, 0x88, 0x82, 0xA4, 0x6F, 0x88, 0x82, 0xA8, 0x6F, 0x88, 0x82, 0xAC, 0x6F, 0x88, 0x82, 0xB0, 0x6F, 0x88, 0x82, 0x88, 0x63, 0x88, 0x82, 0x8C, 0x63, 0x88, 0x82, 0x70, 0x66,
+ 0x88, 0x82, 0x80, 0x66, 0x88, 0x82, 0x84, 0x66, 0x88, 0x82, 0x1C, 0x67, 0x88, 0x82, 0xCC, 0x66, 0x88, 0x82, 0xC4, 0x66, 0x88, 0x82, 0x5C, 0x68, 0x88, 0x82, 0x98, 0x68, 0x88, 0x82,
+ 0xDC, 0x68, 0x88, 0x82, 0xF8, 0x68, 0x88, 0x82, 0x14, 0x69, 0x88, 0x82, 0x30, 0x69, 0x88, 0x82, 0x4C, 0x69, 0x88, 0x82, 0x68, 0x69, 0x88, 0x82, 0x7A, 0x69, 0x88, 0x82, 0x80, 0x69,
+ 0x88, 0x82, 0x9C, 0x69, 0x88, 0x82, 0x5C, 0x6B, 0x88, 0x82, 0x64, 0x6B, 0x88, 0x82, 0x6C, 0x6B, 0x88, 0x82, 0xF8, 0x6B, 0x88, 0x82, 0x14, 0x6C, 0x88, 0x82, 0x38, 0x6C, 0x88, 0x82,
+ 0x48, 0x6C, 0x88, 0x82, 0x4C, 0x6C, 0x88, 0x82, 0x50, 0x6C, 0x88, 0x82, 0x68, 0x6C, 0x88, 0x82, 0x08, 0x6D, 0x88, 0x82, 0x44, 0x6D, 0x88, 0x82, 0x1C, 0x6E, 0x88, 0x82, 0xD8, 0x79,
+ 0x88, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAC, 0x63, 0x88, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB0, 0x63, 0x88, 0x82,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x1B, 0x00,
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x01, 0x00, 0xCD, 0xCD, 0xCD, 0xCD, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xEF, 0xBE, 0xAD, 0xDE, 0xEF, 0xBE, 0xAD, 0xDE, 0xEF, 0xBE, 0xAD, 0xDE, 0xEF, 0xBE, 0xAD, 0xDE, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00,
+ 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
+ 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0x03, 0x00, 0x01, 0x02, 0x03, 0x00, 0x01, 0x02, 0x03, 0x00, 0x01, 0x02, 0x03, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
+ 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02,
+ 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x02, 0x03, 0x0D, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x0E, 0x00,
+ 0x0B, 0x00, 0x0A, 0x00, 0x0A, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, 0x0D, 0x00, 0x02, 0x00, 0x07, 0x00, 0x01, 0x00, 0x04, 0x00, 0x03, 0x00, 0x06, 0x00, 0x09, 0x00,
+ 0x0C, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
+ 0x0F, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00,
+ 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
+ 0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, 0x07, 0x00,
+ 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00,
+ 0x07, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x7A, 0x00,
+ 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x7B, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x7D, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
+ 0x7E, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00,
+ 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x03, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x02, 0x03, 0x00,
+ 0x00, 0x00, 0x01, 0x01, 0x02, 0x02, 0x03, 0x03, 0x00, 0x01, 0x00, 0x01, 0x02, 0x03, 0x02, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00,
+ 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
+ 0x1E, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x09, 0x00,
+ 0x00, 0x00, 0xFE, 0x01, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xFE, 0x03, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0xFE, 0x07, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0xFE, 0x0F, 0x00, 0x00,
+ 0x0D, 0x00, 0x00, 0x00, 0xFE, 0x1F, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0xFE, 0x3F, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0xFE, 0x7F, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0xFE, 0xFF,
+ 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
+ 0xFF, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x03, 0x00,
+ 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0x00, 0x55, 0x00, 0x40, 0x00, 0x33, 0x00, 0x2B, 0x00, 0x25, 0x00, 0x20, 0x00, 0x00, 0x01, 0x00, 0x01,
+ 0x00, 0x00, 0x01, 0x01, 0x02, 0x03, 0x03, 0x04, 0x04, 0x05, 0x05, 0x05, 0x05, 0x06, 0x06, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x08, 0x08, 0x08, 0x08, 0xFF, 0xFF, 0x00, 0x01, 0x01,
+ 0x02, 0x01, 0x03, 0x01, 0x02, 0x03, 0x04, 0x01, 0x05, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x01, 0x03, 0x05, 0x07, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00,
+ 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00,
+ 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x02, 0x03, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
+ 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00,
+ 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
+ 0x01, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x03, 0x04, 0x00, 0x00, 0x00, 0x00, 0x03, 0x02, 0x01, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00,
+ 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00,
+ 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x03, 0x00, 0x03, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C,
+ 0x0D, 0x0E, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1B, 0x1D, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5B, 0x06, 0x5B, 0x00, 0x13, 0x04, 0x6E, 0x00, 0x14, 0x06, 0x82, 0x00, 0x12, 0x06,
+ 0x94, 0x00, 0x14, 0x06, 0xA8, 0x00, 0x4D, 0x06, 0xF5, 0x00, 0xF1, 0x09, 0xE6, 0x02, 0x0C, 0x09, 0xF2, 0x03, 0x6F, 0x06, 0x61, 0x04, 0xF6, 0x08, 0x57, 0x05, 0xD6, 0x09, 0x2D, 0x07,
+ 0x22, 0x08, 0x4F, 0x07, 0x08, 0x02, 0x57, 0x07, 0x16, 0x04, 0x6D, 0x07, 0x5D, 0x06, 0xCA, 0x07, 0x04, 0x02, 0xCE, 0x07, 0x03, 0x22, 0xD1, 0x07, 0x05, 0x22, 0xD6, 0x07, 0x05, 0x22,
+ 0xDB, 0x07, 0x2B, 0x08, 0x06, 0x08, 0x25, 0x08, 0x2B, 0x08, 0x23, 0x08, 0x4E, 0x08, 0x2B, 0x08, 0x79, 0x08, 0x0B, 0x02, 0x84, 0x08, 0x0D, 0x04, 0x91, 0x08, 0x0B, 0x02, 0x9C, 0x08,
+ 0x0B, 0x22, 0xA7, 0x08, 0x42, 0x04, 0xE9, 0x08, 0x4F, 0x08, 0x38, 0x09, 0x51, 0x08, 0x89, 0x09, 0x46, 0x08, 0xCF, 0x09, 0x4D, 0x08, 0x1C, 0x0A, 0x44, 0x08, 0x60, 0x0A, 0x4E, 0x08,
+ 0xAE, 0x0A, 0x4F, 0x08, 0xFD, 0x0A, 0x5C, 0x08, 0x59, 0x0B, 0xAE, 0x09, 0x07, 0x0D, 0x40, 0x09, 0x47, 0x0E, 0x50, 0x2A, 0x97, 0x0E, 0x16, 0x06, 0xAD, 0x0E, 0x07, 0x02, 0xB4, 0x0E,
+ 0x14, 0x04, 0xC8, 0x0E, 0x16, 0x06, 0xDE, 0x0E, 0x08, 0x04, 0xE6, 0x0E, 0x18, 0x06, 0xFE, 0x0E, 0x97, 0x08, 0x95, 0x0F, 0x9D, 0x08, 0x32, 0x10, 0x22, 0x08, 0x54, 0x10, 0x20, 0x08,
+ 0x74, 0x10, 0x22, 0x08, 0x96, 0x10, 0x22, 0x08, 0xB8, 0x10, 0x22, 0x08, 0xDA, 0x10, 0x22, 0x08, 0xFC, 0x10, 0x20, 0x08, 0x1C, 0x11, 0x22, 0x08, 0x3E, 0x11, 0x59, 0x08, 0x97, 0x11,
+ 0x55, 0x08, 0xEC, 0x11, 0x34, 0x08, 0x20, 0x12, 0x60, 0x08, 0x80, 0x12, 0x62, 0x08, 0xE2, 0x12, 0x62, 0x08, 0x44, 0x13, 0x65, 0x08, 0xA9, 0x13, 0x5F, 0x08, 0x08, 0x14, 0x06, 0x28,
+ 0x0E, 0x14, 0x06, 0x28, 0x14, 0x14, 0x20, 0x08, 0x34, 0x14, 0x20, 0x08, 0x54, 0x14, 0x10, 0x06, 0x64, 0x14, 0x10, 0x06, 0x74, 0x14, 0x06, 0x28, 0x7A, 0x14, 0x20, 0x08, 0x9A, 0x14,
+ 0x5F, 0x08, 0xF9, 0x14, 0x58, 0x08, 0x51, 0x15, 0x5A, 0x08, 0xAB, 0x15, 0x50, 0x06, 0xFB, 0x15, 0xB0, 0x08, 0xAB, 0x16, 0xB4, 0x08, 0x5F, 0x17, 0xAD, 0x08, 0x0C, 0x18, 0xB7, 0x08,
+ 0xC3, 0x18, 0xB3, 0x08, 0x76, 0x19, 0xB2, 0x08, 0x28, 0x1A, 0xAD, 0x06, 0xD5, 0x1A, 0xF4, 0x09, 0x0A, 0x07, 0x2E, 0x00, 0x09, 0x06, 0x2D, 0x00, 0x25, 0x07, 0x2E, 0x00, 0x24, 0x06,
+ 0x2D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x7A, 0x88, 0x82, 0x2C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x90, 0x00, 0x00, 0x00, 0xF0, 0x79, 0x88, 0x82, 0xF0, 0x79, 0x88, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x7B, 0x88, 0x82, 0x2C, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00,
+ 0xA0, 0x7A, 0x88, 0x82, 0xA0, 0x7A, 0x88, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x7B, 0x88, 0x82, 0x2A, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD8, 0x79, 0x88, 0x82,
+ 0xD8, 0x79, 0x88, 0x82, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x78, 0x7B, 0x88, 0x82, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x98, 0x7B, 0x88, 0x82, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x90, 0x80, 0x00, 0x00, 0x90, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB8, 0x7B, 0x88, 0x82, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x60, 0xC3, 0x90, 0x80, 0x60, 0xC3, 0x90, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD8, 0x7B, 0x88, 0x82, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x50, 0xC3, 0x90, 0x80, 0x50, 0xC3, 0x90, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x7B, 0x88, 0x82, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xC3, 0x90, 0x80, 0x40, 0xC3, 0x90, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0xB0, 0x00, 0x00, 0x00, 0xB0,
+};
+
+/*
+static const FW_PATCHLIST a1100_SSPatch[] =
+{
+ { VLD_SETUP_WDT , 0x6228 },
+ { MC_SETUP_WDT , 0x622c },
+ { FW_ACTIVITY_WDT , 0x6230 },
+ { TIMER_DIV , 0x623c },
+};
+*/
+//#define CAPABILITY_FW_VC1_HEADER_PARSING (1<<18)
+
+const FIRMWARE sFirmware1100_SS = {
+ "BUILD_DXVA_FW1.00.10.1100_1100_SS",
+ "06_05_2010",
+ 25020, /* TextSize bytes */
+ 6736, /* DataSize bytes */
+ 0x000061c0, /* DataOffset bytes */
+ aui81100_SSText,
+ aui81100_SSData,
+};
+
+
+/******************************************************************************
+@File ../release/thread0_bin.c
+@Title
+@Copyright Copyright (C) Imagination Technologies Limited. All Rights Reserved.
+@Platform
+@Description This file was automatically generated from ../release/thread0.dnl using dnl2c.
+******************************************************************************/
+/******************************************************************************
+ Version : BUILD_DXVA_FW1.00.10.1133
+ Date : 04_08_2010
+ Code : 23608 bytes 23.055 Kb
+ Data : 7568 bytes 7.391 Kb
+ Total : 31184 bytes 30.453 Kb
+******************************************************************************/
+
+
+static const unsigned char aui81133_SSText[] = {
+ 0x01, 0xC0, 0x40, 0x90, 0xFE, 0x93, 0x09, 0xC8, 0x42, 0x0E, 0x00, 0xC0, 0x00, 0x0E, 0x29, 0xC8, 0x22, 0x84, 0x9C, 0xC7, 0x60, 0x84, 0x29, 0xC8, 0x22, 0x86, 0xC4, 0xC5, 0x00, 0x86,
+ 0x83, 0x9E, 0x43, 0x9E, 0x09, 0xC8, 0x42, 0x0D, 0x84, 0xCB, 0x20, 0x0D, 0x09, 0xC8, 0x42, 0x09, 0x84, 0xCB, 0x60, 0x09, 0x09, 0xC8, 0x42, 0x0E, 0x0A, 0xC0, 0x40, 0x0E, 0x09, 0xC8,
+ 0xC2, 0x87, 0x0E, 0xC0, 0xD0, 0x87, 0x18, 0x9C, 0x02, 0x08, 0x02, 0x0C, 0x82, 0x0D, 0x82, 0x09, 0x02, 0x0D, 0x02, 0x09, 0x82, 0x0C, 0x82, 0x08, 0xFE, 0xFF, 0x20, 0x93, 0x38, 0xC8,
+ 0x01, 0xA4, 0x09, 0xC8, 0xC2, 0x0D, 0x82, 0xCB, 0xE0, 0x0D, 0x09, 0xC8, 0x42, 0x0E, 0x80, 0xB0, 0x46, 0x0B, 0x7F, 0xB7, 0x74, 0x7E, 0x82, 0x08, 0x8D, 0xA4, 0xF3, 0x9F, 0xFF, 0xFF,
+ 0xE0, 0x93, 0x13, 0x9D, 0x81, 0x80, 0x39, 0xF8, 0x05, 0xA2, 0x07, 0x07, 0x07, 0x03, 0x85, 0x06, 0x97, 0x9E, 0x83, 0x03, 0x0F, 0x06, 0xA0, 0x0F, 0x8D, 0x05, 0x8D, 0x01, 0x8F, 0x00,
+ 0x62, 0x9C, 0xFF, 0xFF, 0x40, 0x93, 0x0B, 0x06, 0xA0, 0x0E, 0x62, 0x9C, 0xFF, 0xFF, 0xA0, 0x93, 0x8D, 0x05, 0x8D, 0x01, 0x00, 0xB7, 0x8C, 0x54, 0x80, 0xB7, 0x14, 0x54, 0x01, 0x9C,
+ 0x05, 0xA6, 0x87, 0x06, 0x0B, 0x06, 0xA0, 0x0E, 0x62, 0x9C, 0xFF, 0xFF, 0xA0, 0x93, 0xF8, 0xF9, 0x9D, 0xAA, 0xF8, 0xF9, 0x1D, 0xAA, 0x22, 0x9C, 0x22, 0x9C, 0x0E, 0xC0, 0xFC, 0x29,
+ 0x40, 0xB7, 0x8C, 0x43, 0x71, 0xC0, 0xCE, 0x9C, 0x49, 0xC0, 0x82, 0x08, 0xFC, 0xC2, 0xC0, 0x08, 0x10, 0xD0, 0x61, 0xAA, 0x0C, 0x0A, 0x00, 0xE2, 0x09, 0x5A, 0x20, 0xB7, 0xB5, 0x43,
+ 0x01, 0xC0, 0x82, 0x90, 0x40, 0xB7, 0x04, 0x42, 0x8A, 0x9E, 0x82, 0x87, 0x10, 0xD0, 0xC2, 0x19, 0x31, 0xF0, 0xE5, 0xA8, 0xA6, 0xD0, 0x08, 0x5D, 0x2D, 0x9E, 0x30, 0xE0, 0xCD, 0xA0,
+ 0x50, 0xD8, 0x49, 0xAA, 0x84, 0x0C, 0x49, 0x9E, 0x00, 0xC2, 0x40, 0x5A, 0x00, 0xC2, 0x41, 0x5A, 0x48, 0x70, 0xE0, 0x9D, 0x10, 0xB3, 0x46, 0x48, 0x81, 0x04, 0x10, 0xF0, 0x59, 0xAA,
+ 0x49, 0x9E, 0x48, 0x70, 0xFF, 0xFF, 0x82, 0x93, 0xFF, 0xFF, 0xC1, 0x90, 0x49, 0xC0, 0x82, 0x08, 0xFC, 0xC2, 0xC0, 0x08, 0x20, 0xB5, 0xB5, 0x43, 0x71, 0xC0, 0xCE, 0x9C, 0xB0, 0x08,
+ 0x80, 0xB7, 0x2D, 0x40, 0xC0, 0x74, 0x04, 0x0A, 0x80, 0xB5, 0x2D, 0x40, 0x40, 0xB3, 0xA2, 0x48, 0x80, 0xB7, 0x8C, 0x46, 0x00, 0xC4, 0x02, 0x85, 0x08, 0xF2, 0x0B, 0xA1, 0x22, 0x9C,
+ 0x1D, 0xA6, 0x20, 0x84, 0xF4, 0xFF, 0xB0, 0x9B, 0x0A, 0x85, 0x37, 0xC1, 0x8B, 0x9C, 0x80, 0xB7, 0x8C, 0x46, 0x04, 0x8D, 0x48, 0xF2, 0x1F, 0xA1, 0x74, 0xC0, 0x6F, 0x98, 0x49, 0xC0,
+ 0x82, 0x08, 0xFC, 0xC2, 0xC0, 0x08, 0x80, 0xB7, 0x2D, 0x45, 0x00, 0xC4, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x02, 0x91, 0x06, 0xC0, 0x06, 0x85, 0x0C, 0xC0, 0x0A, 0x0A, 0x00, 0xC0,
+ 0xA0, 0x90, 0x10, 0xC0, 0x1A, 0x85, 0x76, 0x0A, 0x49, 0xC0, 0x82, 0x0C, 0xFC, 0xC2, 0xC0, 0x0C, 0x49, 0xC0, 0x02, 0x0D, 0x00, 0xC2, 0x00, 0x0D, 0x80, 0xB5, 0x4B, 0x45, 0x40, 0xB5,
+ 0x5B, 0x48, 0x26, 0xD2, 0x08, 0x59, 0x40, 0xC0, 0x02, 0x87, 0x10, 0xF0, 0x25, 0x80, 0x40, 0xB5, 0xC3, 0x45, 0x80, 0xB5, 0xCB, 0x48, 0x20, 0xB7, 0xCB, 0x48, 0x5B, 0xCA, 0x16, 0x0A,
+ 0x5A, 0xCA, 0x14, 0x0A, 0x40, 0xB7, 0xCB, 0x45, 0x80, 0xB5, 0x4D, 0x42, 0xC0, 0x58, 0xA6, 0xD0, 0x41, 0x59, 0x20, 0xB7, 0x4D, 0x45, 0x40, 0x59, 0x10, 0xF2, 0x2D, 0x80, 0x26, 0xD1,
+ 0x41, 0x59, 0x20, 0xE2, 0x2D, 0x81, 0xB5, 0x58, 0x12, 0xD0, 0x12, 0x2B, 0x80, 0xB5, 0x8C, 0x42, 0x40, 0xB5, 0x14, 0x42, 0x0A, 0x85, 0x37, 0xC0, 0x89, 0x9C, 0x82, 0x0F, 0xC0, 0xB7,
+ 0x8C, 0x46, 0x8A, 0x0B, 0xB4, 0xC0, 0xF9, 0x99, 0x71, 0xC9, 0x80, 0x9C, 0x11, 0xF0, 0xC4, 0x2A, 0x00, 0xC0, 0x24, 0x92, 0x80, 0x77, 0x02, 0xC0, 0x42, 0x91, 0x74, 0xC0, 0xAB, 0x9B,
+ 0x1C, 0xC0, 0x3E, 0x7C, 0x00, 0xC0, 0x04, 0x91, 0x71, 0xC1, 0x80, 0x9C, 0x08, 0x2A, 0x00, 0x75, 0x01, 0xC0, 0xC2, 0x93, 0x49, 0xC0, 0x82, 0x0E, 0xFC, 0xC2, 0xC0, 0x0E, 0x50, 0xF2,
+ 0xA5, 0xA8, 0x50, 0xF2, 0x2D, 0xAA, 0x48, 0x70, 0x01, 0xC0, 0x82, 0x91, 0x50, 0xF2, 0x25, 0xAA, 0x40, 0xB7, 0x9C, 0x42, 0x00, 0xC2, 0x08, 0x5A, 0x10, 0xE3, 0xA1, 0x81, 0x08, 0xD0,
+ 0xE1, 0xA8, 0x08, 0xD0, 0x65, 0xAA, 0xF6, 0xCF, 0xFD, 0x28, 0x00, 0x75, 0x8C, 0x08, 0x80, 0xC0, 0x89, 0x5A, 0x00, 0xC0, 0xA2, 0x90, 0xA3, 0x9E, 0x74, 0xC0, 0x9A, 0x9A, 0x50, 0xF2,
+ 0x27, 0xA9, 0x90, 0xDA, 0x21, 0xAA, 0x10, 0xE3, 0xA3, 0x80, 0x00, 0xC2, 0x40, 0x5A, 0x00, 0xC2, 0x41, 0x5A, 0x48, 0x70, 0x7C, 0x9E, 0x14, 0xB3, 0x26, 0x44, 0x89, 0x00, 0x50, 0xF2,
+ 0xA5, 0xA0, 0xFD, 0xFF, 0xC0, 0x92, 0x40, 0x75, 0xFD, 0xFF, 0x62, 0x92, 0x71, 0xC1, 0x80, 0x9C, 0xFD, 0xFF, 0xE0, 0x91, 0x80, 0x77, 0xFD, 0xFF, 0x84, 0x91, 0x74, 0xC0, 0x60, 0x9B,
+ 0x1C, 0xC0, 0x3E, 0x7C, 0xFD, 0xFF, 0xC4, 0x90, 0x12, 0x85, 0x5F, 0xB5, 0x7C, 0x7F, 0x04, 0x8D, 0x48, 0xF2, 0x5F, 0xA1, 0x71, 0xC9, 0x80, 0x9C, 0x08, 0x2A, 0x00, 0x75, 0x00, 0xC0,
+ 0x04, 0x92, 0x27, 0xC9, 0x8F, 0x9C, 0x9F, 0xB7, 0x6C, 0x7F, 0x04, 0x1A, 0x9F, 0xB5, 0x6C, 0x7F, 0x3F, 0xB7, 0x6C, 0x7F, 0x40, 0x74, 0xFF, 0xFF, 0x04, 0x93, 0x17, 0xC9, 0x8F, 0x9C,
+ 0x48, 0xF2, 0xDD, 0xA3, 0xFC, 0xFF, 0x00, 0x91, 0x9F, 0xB7, 0xEE, 0x7D, 0xBF, 0xB7, 0x6E, 0x7E, 0xDF, 0xB7, 0xEE, 0x7E, 0xFF, 0xB7, 0x6E, 0x7F, 0x02, 0xC0, 0x20, 0x8C, 0x22, 0x9C,
+ 0x1D, 0xA6, 0x80, 0xB7, 0x8C, 0x65, 0x12, 0xD0, 0x48, 0x0B, 0x20, 0xB7, 0x0C, 0x46, 0x87, 0x07, 0x07, 0xC0, 0xC2, 0x0B, 0x01, 0xC0, 0xC2, 0x0E, 0x09, 0x03, 0x31, 0xD0, 0x98, 0x0A,
+ 0xCA, 0x7B, 0x00, 0xC0, 0x62, 0x92, 0x08, 0xF2, 0x21, 0xAA, 0x05, 0xC0, 0x04, 0x7D, 0x00, 0xC0, 0xA2, 0x91, 0xFD, 0xCF, 0x76, 0x2A, 0x08, 0xF2, 0x21, 0xA2, 0x0A, 0x85, 0x08, 0xF2,
+ 0x43, 0xA1, 0x10, 0xF2, 0xC2, 0xA9, 0x14, 0xC0, 0x2A, 0x9A, 0x6C, 0x9E, 0x20, 0x0F, 0x20, 0x0B, 0x7D, 0x4A, 0x00, 0xE0, 0xF8, 0x23, 0x02, 0xC0, 0x80, 0x0A, 0x80, 0xC2, 0x84, 0x5E,
+ 0xFF, 0xFF, 0x44, 0x90, 0x9F, 0xB7, 0x6E, 0x7E, 0xBF, 0xB7, 0xEE, 0x7E, 0xDF, 0xB7, 0x6E, 0x7F, 0xFF, 0xB7, 0xEE, 0x7F, 0x02, 0xC0, 0x00, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x5D, 0x9E,
+ 0x51, 0xD0, 0x58, 0x0A, 0xA1, 0x9E, 0x86, 0x0D, 0xE4, 0x55, 0x07, 0xC0, 0xC0, 0x2D, 0x14, 0xC0, 0xDC, 0x99, 0xAB, 0x9E, 0x14, 0xC0, 0x08, 0x98, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7,
+ 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x0D, 0xA6, 0x80, 0xB7, 0x0C, 0x46, 0xA6, 0xD1, 0x14, 0x5D, 0x10, 0xF3, 0x21, 0x81, 0x40, 0xB7, 0x04, 0x66, 0xB5, 0x9E, 0x30, 0xF2, 0xA5, 0xAA,
+ 0xA6, 0xD1, 0x0C, 0x5D, 0x2D, 0x9E, 0x01, 0xC0, 0xA0, 0x3A, 0x10, 0xF2, 0xA1, 0xA2, 0x30, 0xE0, 0xCE, 0xA9, 0x14, 0xC0, 0xD1, 0x99, 0x02, 0x85, 0xFF, 0xCF, 0xE8, 0x2A, 0x10, 0xF2,
+ 0xA1, 0xA2, 0xFF, 0xCF, 0xDE, 0x2A, 0x10, 0xF2, 0xA1, 0xA2, 0x31, 0xD0, 0x68, 0x0A, 0x08, 0xF2, 0x03, 0xA1, 0x9F, 0xB7, 0xEE, 0x7E, 0xBF, 0xB7, 0x6E, 0x7F, 0xDF, 0xB7, 0xEE, 0x7F,
+ 0x60, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x5D, 0x9E, 0x0E, 0xC0, 0x7C, 0x2D, 0x0E, 0xC0, 0x7C, 0x29, 0x14, 0xC0, 0x3B, 0x98, 0xAB, 0x9E, 0x14, 0xC0, 0x08, 0x98, 0x9F, 0xB7, 0x6E, 0x7F,
+ 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x5D, 0x9E, 0x40, 0xB7, 0x9C, 0x65, 0xA8, 0xD2, 0x0C, 0x59, 0x2D, 0x9E, 0x20, 0xE0, 0x6D, 0xAA, 0x02, 0x75, 0xA3, 0xB5,
+ 0x08, 0x68, 0x00, 0xC0, 0xE4, 0x90, 0x10, 0x85, 0x20, 0xE0, 0xEE, 0xA9, 0x14, 0xC0, 0x9C, 0x99, 0xAB, 0x9E, 0x14, 0xC0, 0x89, 0x98, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F,
+ 0x40, 0x8C, 0x22, 0x9C, 0x80, 0xB7, 0x8C, 0x43, 0x71, 0xC1, 0xCC, 0x9C, 0x20, 0xB7, 0x94, 0x46, 0x20, 0xB7, 0x4D, 0x40, 0xB0, 0x5D, 0x00, 0xC1, 0x80, 0x2D, 0x5A, 0x9E, 0xFE, 0xCE,
+ 0xFD, 0x28, 0x94, 0x30, 0x20, 0xB5, 0x4D, 0x40, 0x71, 0xC1, 0xCC, 0x9C, 0x22, 0x9C, 0x0D, 0xA6, 0x5E, 0x9E, 0x80, 0xB7, 0x8C, 0x65, 0x24, 0xD3, 0x8C, 0x59, 0x55, 0x9E, 0x59, 0x9E,
+ 0x06, 0x85, 0x40, 0xE0, 0x27, 0xA1, 0x13, 0xD0, 0x48, 0x09, 0x9E, 0x9E, 0xC7, 0x9D, 0x95, 0x9E, 0x10, 0xE0, 0xEA, 0xA9, 0x0E, 0xC0, 0xFC, 0x2A, 0x0E, 0xC0, 0xFC, 0x2E, 0x14, 0xC0,
+ 0x63, 0x99, 0x40, 0x75, 0x82, 0x0D, 0x01, 0xD0, 0xB2, 0x0D, 0xF4, 0xFF, 0xD0, 0x9B, 0x20, 0xB7, 0x0C, 0x46, 0x26, 0xD3, 0x14, 0x59, 0x01, 0xC2, 0x22, 0x81, 0x71, 0xF0, 0x20, 0x84,
+ 0x1E, 0x87, 0x0A, 0xF2, 0x00, 0xA1, 0x31, 0xF0, 0x20, 0x84, 0x2A, 0x9E, 0x05, 0xC8, 0x82, 0x0C, 0x42, 0xA3, 0x08, 0xF2, 0x82, 0xA2, 0x20, 0xF0, 0xC6, 0xA0, 0x05, 0xC8, 0x92, 0x0C,
+ 0x00, 0xF0, 0xC2, 0xA0, 0x9F, 0xB7, 0xEE, 0x7E, 0xBF, 0xB7, 0x6E, 0x7F, 0xDF, 0xB7, 0xEE, 0x7F, 0x60, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x80, 0xB7, 0x8C, 0x65, 0x06, 0x85, 0x87, 0x06,
+ 0x08, 0xF2, 0x03, 0xA1, 0x08, 0xF2, 0x86, 0xA9, 0x87, 0x02, 0x14, 0xC0, 0x30, 0x99, 0x82, 0x0D, 0xF4, 0xFF, 0xA0, 0x9B, 0x80, 0xB7, 0x0C, 0x46, 0x21, 0xC0, 0x82, 0x08, 0x84, 0x08,
+ 0x42, 0x85, 0x08, 0xF2, 0x1B, 0xA1, 0x08, 0xF2, 0x81, 0xA2, 0x08, 0xF2, 0x89, 0xA0, 0x69, 0x9E, 0x34, 0xC0, 0x42, 0x85, 0x08, 0xF2, 0x17, 0xA1, 0x01, 0xC2, 0x80, 0x38, 0x08, 0xF2,
+ 0x85, 0xA0, 0x01, 0xC0, 0x84, 0x38, 0x08, 0xF2, 0x85, 0xA0, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x40, 0xB7, 0x84, 0x65, 0xA6, 0xD1, 0x0C, 0x5D,
+ 0x2E, 0x9E, 0x38, 0xE0, 0x41, 0xA8, 0x11, 0xD0, 0x04, 0x1A, 0x02, 0x75, 0x40, 0xB3, 0xB2, 0x48, 0x02, 0x85, 0x00, 0xF0, 0x43, 0xA1, 0x22, 0x9C, 0x0D, 0xA6, 0x80, 0xB7, 0x8C, 0x65,
+ 0x5E, 0x9E, 0x06, 0x85, 0x08, 0xF2, 0x03, 0xA1, 0x08, 0xF2, 0x86, 0xA9, 0x87, 0x02, 0x85, 0x06, 0x14, 0xC0, 0xF1, 0x98, 0x86, 0x0D, 0xF4, 0xFF, 0x61, 0x9B, 0x80, 0xB7, 0x0C, 0x46,
+ 0xA1, 0xC0, 0x82, 0x08, 0x1E, 0x85, 0x08, 0xF2, 0x1B, 0xA1, 0x08, 0xF2, 0x81, 0xA2, 0x08, 0xF2, 0x89, 0xA0, 0x08, 0xF2, 0x96, 0xA2, 0x8D, 0x00, 0x81, 0xC2, 0x80, 0x38, 0x08, 0xF2,
+ 0x85, 0xA0, 0x01, 0xC0, 0x84, 0x38, 0x08, 0xF2, 0x85, 0xA0, 0x9F, 0xB7, 0xEE, 0x7E, 0xBF, 0xB7, 0x6E, 0x7F, 0xDF, 0xB7, 0xEE, 0x7F, 0x60, 0x8C, 0x22, 0x9C, 0x0D, 0xA6, 0x07, 0x03,
+ 0x07, 0x07, 0x82, 0x0E, 0x82, 0x0A, 0x54, 0x9E, 0x71, 0xC1, 0xCD, 0x9C, 0x20, 0x75, 0x00, 0xC0, 0x44, 0x91, 0x74, 0xC0, 0x1D, 0x9A, 0x13, 0xF0, 0x00, 0x09, 0x00, 0xC0, 0x22, 0x93,
+ 0x00, 0xC0, 0x60, 0x92, 0x00, 0x75, 0x00, 0xC0, 0xA4, 0x90, 0x0A, 0x85, 0x00, 0xC0, 0xA0, 0x91, 0x2A, 0x75, 0x00, 0xC0, 0x24, 0x91, 0x80, 0xB7, 0x8C, 0x46, 0x0E, 0x85, 0x08, 0xF2,
+ 0x8A, 0xAA, 0x00, 0xC0, 0x60, 0x90, 0x0E, 0x85, 0xCF, 0x9D, 0x6B, 0x9E, 0x94, 0xC0, 0x69, 0x9A, 0x71, 0xC1, 0xCD, 0x9C, 0x0D, 0x00, 0x0D, 0x04, 0x9F, 0xB7, 0xEE, 0x7E, 0xBF, 0xB7,
+ 0x6E, 0x7F, 0xDF, 0xB7, 0xEE, 0x7F, 0x60, 0x8C, 0x22, 0x9C, 0x0D, 0xA6, 0xA0, 0xB7, 0x8C, 0x43, 0x07, 0x03, 0x07, 0x07, 0x71, 0xC1, 0xCD, 0x9C, 0xA8, 0x76, 0x00, 0xC0, 0x84, 0x90,
+ 0x14, 0xC0, 0x53, 0x98, 0x71, 0xC1, 0xCD, 0x9C, 0x0D, 0x00, 0x0D, 0x04, 0x9F, 0xB7, 0xEE, 0x7E, 0xBF, 0xB7, 0x6E, 0x7F, 0xDF, 0xB7, 0xEE, 0x7F, 0x60, 0x8C, 0x22, 0x9C, 0x0D, 0xA6,
+ 0x54, 0xC1, 0x58, 0x99, 0x11, 0xC0, 0x82, 0x0D, 0x54, 0xC1, 0x3C, 0x99, 0x09, 0xC8, 0x42, 0x0A, 0xCA, 0xC0, 0x70, 0x0A, 0x09, 0xC8, 0xC2, 0x08, 0xBE, 0xC0, 0xB0, 0x08, 0x20, 0xB7,
+ 0x94, 0x41, 0x80, 0xB5, 0x2C, 0x4C, 0x20, 0xB5, 0xAC, 0x4C, 0x20, 0xB5, 0x2C, 0x4A, 0x20, 0xB5, 0x2C, 0x42, 0x20, 0xB5, 0x2C, 0x4B, 0x80, 0xB7, 0x4D, 0x45, 0x20, 0xB7, 0x8C, 0x43,
+ 0x00, 0xC4, 0x00, 0x2A, 0x00, 0x75, 0x51, 0xD0, 0x10, 0x3B, 0x00, 0xC0, 0xA2, 0x90, 0xF9, 0x28, 0x20, 0xB5, 0x8C, 0x43, 0x00, 0xC3, 0x40, 0x5A, 0x00, 0xC2, 0xC1, 0x5A, 0x8B, 0x00,
+ 0xFE, 0xCF, 0xFC, 0x28, 0x83, 0x02, 0x82, 0x0E, 0x8B, 0x01, 0x8B, 0x05, 0x79, 0x2B, 0x54, 0xC1, 0xA9, 0x99, 0x02, 0x0A, 0x71, 0xC1, 0xCC, 0x9C, 0x4C, 0x32, 0x71, 0xC1, 0xCC, 0x9C,
+ 0x9F, 0xB7, 0xEE, 0x7E, 0xBF, 0xB7, 0x6E, 0x7F, 0xDF, 0xB7, 0xEE, 0x7F, 0x60, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0xA0, 0xB7, 0x94, 0x46, 0x10, 0xF2, 0xA9, 0xA8, 0x80, 0xB7, 0x0C, 0x44,
+ 0x00, 0xE0, 0x98, 0x22, 0x00, 0xC0, 0x22, 0x93, 0x0B, 0x02, 0x07, 0xE0, 0x40, 0x2A, 0x10, 0xF2, 0xAD, 0xA2, 0x00, 0xC0, 0xA2, 0x90, 0xA3, 0x9E, 0xF4, 0xFF, 0xF6, 0x99, 0x09, 0xC2,
+ 0x3E, 0x0A, 0x04, 0xC1, 0x3C, 0x0A, 0x00, 0xE0, 0x58, 0x22, 0xFF, 0xFF, 0x02, 0x91, 0xA3, 0x9E, 0x74, 0xC0, 0x2F, 0x9A, 0xFF, 0xFF, 0x60, 0x90, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7,
+ 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x20, 0xB7, 0x14, 0x44, 0x80, 0xB7, 0x8C, 0x46, 0x96, 0x34, 0x20, 0xB5, 0x14, 0x44, 0x08, 0xF2, 0x96, 0xA0, 0x22, 0x9C, 0x20, 0xB7, 0x14, 0x44,
+ 0x80, 0xB7, 0x8C, 0x46, 0xFD, 0x4D, 0x96, 0x24, 0x20, 0xB5, 0x14, 0x44, 0x08, 0xF2, 0x96, 0xA0, 0x22, 0x9C, 0x02, 0x85, 0x10, 0xF0, 0x63, 0xA1, 0x22, 0x9C, 0x20, 0xB7, 0x8C, 0x43,
+ 0x10, 0xF0, 0x61, 0xAA, 0x00, 0x75, 0xFF, 0xFF, 0xA2, 0x93, 0x03, 0x02, 0x71, 0xC1, 0xCC, 0x9C, 0x10, 0xF0, 0xE1, 0xA8, 0x84, 0x18, 0x10, 0xF0, 0xE1, 0xA0, 0x71, 0xC1, 0xCC, 0x9C,
+ 0x02, 0x08, 0x22, 0x9C, 0x80, 0xB7, 0x8C, 0x43, 0x71, 0xC1, 0xCC, 0x9C, 0x10, 0xF0, 0xE1, 0xA8, 0x84, 0x08, 0x10, 0xF0, 0xE1, 0xA0, 0x71, 0xC1, 0xCC, 0x9C, 0x02, 0x08, 0x22, 0x9C,
+ 0x1C, 0xC0, 0xFE, 0x7C, 0x8C, 0x5D, 0xA0, 0x2D, 0x5B, 0x9E, 0x82, 0x08, 0x01, 0xD0, 0x92, 0x08, 0x80, 0xB7, 0x8C, 0x47, 0x20, 0x59, 0x30, 0xC0, 0x00, 0x29, 0x0F, 0xC0, 0x7E, 0x2D,
+ 0x88, 0x58, 0x14, 0x31, 0xA6, 0x30, 0x84, 0x38, 0x08, 0xF2, 0x99, 0xA0, 0xF9, 0x28, 0x08, 0xF2, 0x99, 0xA0, 0x08, 0xF2, 0x1E, 0xA1, 0x22, 0x9C, 0x20, 0xB7, 0x8C, 0x47, 0x80, 0xB7,
+ 0xAD, 0x4B, 0x00, 0x75, 0xFF, 0xFF, 0xB6, 0x93, 0x22, 0x9C, 0x20, 0xB7, 0x94, 0x47, 0xA0, 0x5D, 0x59, 0x9E, 0x80, 0xB7, 0x4D, 0x43, 0x4A, 0x9E, 0x30, 0xC0, 0x80, 0x28, 0xCE, 0xCF,
+ 0x7D, 0x2A, 0x42, 0x32, 0x80, 0xB5, 0x4D, 0x43, 0x08, 0xF0, 0x59, 0xAA, 0x59, 0x9E, 0x30, 0xC0, 0x00, 0x2A, 0x02, 0x71, 0xFF, 0xFF, 0x44, 0x93, 0x22, 0x9C, 0x05, 0xA6, 0xA0, 0xB7,
+ 0x8C, 0x47, 0x12, 0x85, 0xC8, 0xF2, 0x27, 0xA1, 0xF4, 0xFF, 0xDB, 0x9B, 0x88, 0xF2, 0x3D, 0xAA, 0xC8, 0xF2, 0xA1, 0xA8, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C,
+ 0x22, 0x9C, 0x05, 0xA6, 0xA0, 0xB7, 0x8C, 0x47, 0xC8, 0xF2, 0xA6, 0xA1, 0xF4, 0xFF, 0xCA, 0x9B, 0x88, 0xF2, 0x3D, 0xAA, 0xC8, 0xF2, 0x21, 0xA8, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7,
+ 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x8C, 0x5D, 0x0E, 0xC0, 0xE0, 0x2D, 0x84, 0x3D, 0xFF, 0xFF, 0x60, 0x91, 0x8C, 0x5D, 0x0E, 0xC0, 0xE0, 0x2D, 0xFF, 0xFF, 0xC0, 0x90, 0x9A, 0x0D,
+ 0xFF, 0xFF, 0x60, 0x90, 0x05, 0xA6, 0x87, 0x06, 0x10, 0xF2, 0xA9, 0xAA, 0x02, 0xC0, 0xA2, 0x0D, 0x82, 0x09, 0x14, 0xC0, 0x70, 0x99, 0x02, 0xC0, 0xB2, 0x0D, 0x82, 0x09, 0x14, 0xC0,
+ 0x6B, 0x99, 0x02, 0xC0, 0xC2, 0x0D, 0x82, 0x09, 0x14, 0xC0, 0x66, 0x99, 0x02, 0xC0, 0xF2, 0x0D, 0x82, 0x09, 0x14, 0xC0, 0x61, 0x99, 0x8B, 0x01, 0xFF, 0xCF, 0xC2, 0x29, 0x01, 0xC0,
+ 0x84, 0x39, 0xFE, 0xC9, 0xFD, 0x29, 0xA2, 0x0D, 0x00, 0xC4, 0x80, 0x39, 0x14, 0xC0, 0x55, 0x99, 0x00, 0xC1, 0xA2, 0x0A, 0x40, 0xC0, 0x82, 0x0D, 0x8B, 0x01, 0x14, 0xC0, 0x4E, 0x99,
+ 0x60, 0xC0, 0x82, 0x0D, 0x8B, 0x01, 0x14, 0xC0, 0x49, 0x99, 0x40, 0xC0, 0xA2, 0x0D, 0x82, 0x09, 0x14, 0xC0, 0x44, 0x99, 0x40, 0xC0, 0xA2, 0x0D, 0x86, 0x09, 0x14, 0xC0, 0x3F, 0x99,
+ 0x40, 0xC0, 0xA2, 0x0D, 0x8A, 0x09, 0x14, 0xC0, 0x3A, 0x99, 0xA0, 0xB7, 0x8C, 0x43, 0x71, 0xC1, 0xCD, 0x9C, 0x40, 0xC0, 0x92, 0x0D, 0x82, 0x09, 0x14, 0xC0, 0x31, 0x99, 0x40, 0xC0,
+ 0x92, 0x0D, 0x8A, 0x09, 0x14, 0xC0, 0x2C, 0x99, 0x20, 0xB7, 0x94, 0x46, 0x49, 0x9E, 0x80, 0xB7, 0x2D, 0x41, 0x01, 0xC0, 0x30, 0x2A, 0x01, 0xC0, 0x18, 0x75, 0xFF, 0xFF, 0x44, 0x93,
+ 0x80, 0xB5, 0xCD, 0x41, 0x50, 0xF2, 0x3D, 0xAA, 0x81, 0xC0, 0x00, 0x3A, 0x50, 0xF2, 0x3D, 0xA2, 0x71, 0xC1, 0xCD, 0x9C, 0x8B, 0x05, 0x74, 0xC0, 0xD3, 0x98, 0x9F, 0xB7, 0x6E, 0x7F,
+ 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x80, 0xB7, 0x8C, 0x49, 0x00, 0x75, 0x82, 0x0A, 0x00, 0xC0, 0x22, 0x91, 0x94, 0xC0, 0x3F, 0x9A, 0x80, 0xB7, 0x8C, 0x49,
+ 0x00, 0x75, 0xFF, 0xFF, 0x64, 0x93, 0x60, 0xB7, 0x8C, 0x43, 0x71, 0xC0, 0xCF, 0x9C, 0x40, 0xB7, 0x8C, 0x46, 0x20, 0xB7, 0x94, 0x47, 0xAA, 0x9E, 0xFF, 0xCF, 0x3E, 0x2D, 0x85, 0x00,
+ 0x80, 0xB7, 0xAD, 0x45, 0x40, 0x2A, 0x00, 0x75, 0xFF, 0xFF, 0x82, 0x93, 0x71, 0xD2, 0x10, 0x0E, 0x08, 0xF2, 0x81, 0xA8, 0x08, 0xF0, 0xC2, 0xA8, 0x55, 0x9E, 0x01, 0xC0, 0xC0, 0x3A,
+ 0x7F, 0x0A, 0x4A, 0x42, 0xA2, 0x9E, 0x94, 0x24, 0x4C, 0x9E, 0xCA, 0x30, 0x08, 0xF0, 0xC1, 0xA0, 0x08, 0xF0, 0xC1, 0xAA, 0x20, 0xB7, 0x8C, 0x47, 0x08, 0xF0, 0xC2, 0xA0, 0x08, 0xF0,
+ 0xC2, 0xA0, 0x10, 0xC0, 0x82, 0x0C, 0x20, 0xB5, 0x35, 0x40, 0x71, 0xC0, 0xCF, 0x9C, 0x06, 0x08, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x20, 0x84,
+ 0x20, 0xB7, 0x94, 0x43, 0x72, 0xC0, 0xCD, 0x9C, 0x20, 0xB7, 0x8C, 0x46, 0x60, 0xB7, 0x2D, 0x40, 0x40, 0xB7, 0x8C, 0x47, 0xFF, 0xCF, 0xFA, 0x29, 0x07, 0x02, 0x01, 0xC0, 0x04, 0x3A,
+ 0x80, 0xB5, 0x2D, 0x40, 0x60, 0xB7, 0x35, 0x40, 0x60, 0xB5, 0x2D, 0x40, 0xC8, 0xF0, 0xCD, 0xA9, 0x81, 0xC0, 0x82, 0x0D, 0x59, 0x9E, 0x32, 0x32, 0xC8, 0xF0, 0x4D, 0xA2, 0xC8, 0xF0,
+ 0xDD, 0xA8, 0x12, 0xD2, 0x20, 0x09, 0x3F, 0xB5, 0x6C, 0x7F, 0x10, 0xF0, 0x41, 0xAA, 0x02, 0xC0, 0x82, 0x09, 0x9F, 0xB5, 0xEC, 0x7F, 0xC8, 0xF0, 0xC9, 0xA1, 0x9F, 0xB7, 0x6C, 0x7F,
+ 0xC8, 0xF0, 0x5D, 0xA2, 0x3F, 0xB7, 0xEC, 0x7F, 0x10, 0xF0, 0xC1, 0xA0, 0xC8, 0xF0, 0xCD, 0xA9, 0x5C, 0x9E, 0x7D, 0x4A, 0xB8, 0x21, 0xC8, 0xF0, 0xCD, 0xA1, 0x72, 0xC0, 0xCD, 0x9C,
+ 0x20, 0x8C, 0x22, 0x9C, 0x10, 0xF0, 0xE9, 0xA8, 0x20, 0xB7, 0x94, 0x46, 0x80, 0xB7, 0x4D, 0x45, 0x0C, 0x75, 0xFF, 0xFF, 0xB4, 0x93, 0x80, 0xB7, 0x0C, 0x48, 0x02, 0x85, 0x48, 0xF2,
+ 0x0B, 0xA1, 0x48, 0xF2, 0x0F, 0xA1, 0x48, 0xF2, 0x13, 0xA1, 0x48, 0xF2, 0x1F, 0xA1, 0xFF, 0xCF, 0xC2, 0x28, 0x01, 0xC0, 0x84, 0x38, 0xFE, 0xC9, 0xFD, 0x28, 0x00, 0xC4, 0x80, 0x38,
+ 0x08, 0xF2, 0x89, 0xA0, 0x10, 0xF0, 0xFD, 0xA8, 0xFE, 0xCC, 0xFD, 0x28, 0x00, 0xC1, 0x80, 0x38, 0x40, 0xC0, 0x00, 0x0A, 0x08, 0xF2, 0x81, 0xA0, 0xC0, 0xCF, 0x01, 0x0A, 0x60, 0xC0,
+ 0x00, 0x0A, 0x08, 0xF2, 0x81, 0xA0, 0x0E, 0xC0, 0x68, 0x85, 0x20, 0xB7, 0x8C, 0x46, 0x80, 0xB7, 0x2D, 0x45, 0x0C, 0x75, 0xFF, 0xFF, 0xA6, 0x93, 0x20, 0xB7, 0x0C, 0x48, 0x60, 0xB9,
+ 0x28, 0x40, 0x40, 0xC0, 0xA0, 0x08, 0x40, 0xB5, 0x3D, 0x40, 0x11, 0xF0, 0x22, 0x84, 0x00, 0xC2, 0x40, 0x5A, 0x26, 0xD2, 0x41, 0x59, 0xFF, 0xFF, 0x01, 0x93, 0x20, 0xB7, 0x8C, 0x46,
+ 0x80, 0xB7, 0x2D, 0x45, 0x06, 0x75, 0xFF, 0xFF, 0xB4, 0x93, 0x82, 0x08, 0x20, 0xB7, 0x14, 0x48, 0x40, 0xC0, 0xA0, 0x0C, 0x20, 0xB5, 0x4D, 0x40, 0x50, 0xF0, 0x7D, 0xAA, 0x08, 0x2A,
+ 0x00, 0x75, 0x00, 0xC0, 0xC2, 0x90, 0x10, 0xC0, 0x82, 0x08, 0x00, 0xC0, 0x60, 0x90, 0x86, 0x08, 0x20, 0xB5, 0x4D, 0x40, 0x20, 0xB7, 0x94, 0x43, 0x72, 0xC0, 0xCD, 0x9C, 0x20, 0xB7,
+ 0x0C, 0x48, 0x02, 0x85, 0x40, 0xC0, 0x90, 0x08, 0x40, 0xB5, 0x3D, 0x40, 0x08, 0x85, 0x40, 0xB5, 0x3D, 0x40, 0x40, 0xB7, 0x8C, 0x46, 0x85, 0x00, 0x80, 0xB7, 0x2D, 0x41, 0x01, 0xC0,
+ 0x30, 0x2A, 0x01, 0xC0, 0x18, 0x75, 0xFF, 0xFF, 0x44, 0x93, 0x08, 0xF0, 0x4D, 0xA2, 0x50, 0xF0, 0x7D, 0xAA, 0x09, 0xC0, 0x00, 0x3A, 0x50, 0xF0, 0x7D, 0xA2, 0x72, 0xC0, 0xCD, 0x9C,
+ 0x5E, 0xC0, 0x20, 0x90, 0x40, 0xB7, 0x04, 0x48, 0x3A, 0x9D, 0x99, 0x9E, 0x20, 0xB7, 0x8C, 0x46, 0x80, 0xB7, 0x2D, 0x45, 0x00, 0x75, 0xFF, 0xFF, 0xA2, 0x93, 0x2D, 0x9E, 0x20, 0xE0,
+ 0xEE, 0xA0, 0x22, 0x9C, 0x02, 0x0A, 0xA2, 0x0C, 0x81, 0xB4, 0x00, 0xC0, 0x01, 0xB2, 0x20, 0x44, 0x22, 0x9C, 0x0D, 0xA6, 0x5E, 0x9E, 0x85, 0x06, 0x87, 0x02, 0x12, 0xD0, 0xD8, 0x0D,
+ 0x14, 0xC0, 0x67, 0x98, 0x01, 0xC0, 0x86, 0x0C, 0xAC, 0x0C, 0x80, 0xB7, 0x8C, 0x47, 0x51, 0xD2, 0xC8, 0x08, 0x20, 0xB5, 0x35, 0x40, 0x02, 0x85, 0x40, 0xB5, 0x3D, 0x40, 0x80, 0xC2,
+ 0x90, 0x5A, 0xA2, 0xD2, 0x44, 0x5E, 0x12, 0xD0, 0xD6, 0x38, 0xFF, 0xCF, 0x7C, 0x0A, 0xA2, 0x9E, 0x94, 0x34, 0x20, 0xB5, 0x35, 0x40, 0x84, 0x1E, 0x7F, 0x77, 0x00, 0xC0, 0x42, 0x91,
+ 0x20, 0xC8, 0x87, 0x9C, 0x29, 0xF2, 0x45, 0xAA, 0x80, 0xB5, 0x2D, 0x40, 0xFF, 0xFF, 0x81, 0x93, 0x9E, 0x0C, 0x80, 0xB7, 0x8C, 0x47, 0x08, 0xC0, 0x50, 0x0A, 0x08, 0xF2, 0x82, 0xA0,
+ 0x14, 0xC0, 0x19, 0x98, 0x9F, 0xB7, 0xEE, 0x7E, 0xBF, 0xB7, 0x6E, 0x7F, 0xDF, 0xB7, 0xEE, 0x7F, 0x60, 0x8C, 0x22, 0x9C, 0x39, 0xF8, 0x05, 0xA2, 0x00, 0xC0, 0x80, 0x90, 0x94, 0xC0,
+ 0xE3, 0x98, 0x83, 0xB7, 0x08, 0x6C, 0x1C, 0xC0, 0x3E, 0x7D, 0xFF, 0xFF, 0x44, 0x93, 0xF8, 0xF9, 0x1D, 0xAA, 0x22, 0x9C, 0x80, 0xB7, 0x8C, 0x47, 0x02, 0x09, 0x08, 0xC0, 0x70, 0x0A,
+ 0x08, 0xF2, 0x81, 0xA8, 0x40, 0xC0, 0x80, 0x28, 0x40, 0x74, 0xFF, 0xFF, 0x64, 0x93, 0x80, 0xB7, 0x8C, 0x47, 0x08, 0x39, 0x82, 0x0C, 0xC8, 0xF2, 0x09, 0xA1, 0x08, 0xC0, 0x70, 0x0A,
+ 0x08, 0xF2, 0x81, 0xA8, 0x80, 0xC1, 0x40, 0x7C, 0x22, 0xD0, 0x80, 0x44, 0xFF, 0xFF, 0x44, 0x93, 0x84, 0x0C, 0x42, 0x76, 0xFF, 0xFF, 0xD4, 0x92, 0x22, 0x9C, 0x20, 0xB7, 0x94, 0x47,
+ 0x02, 0x0C, 0x20, 0xB7, 0x4D, 0x4E, 0x94, 0x5D, 0x06, 0x72, 0x80, 0xB7, 0xCD, 0x4D, 0x03, 0x01, 0xFE, 0xCF, 0x7C, 0x29, 0x80, 0xC0, 0xC1, 0x59, 0x30, 0x59, 0xB0, 0x59, 0x01, 0xC0,
+ 0x30, 0x2A, 0x00, 0xC2, 0xC9, 0x58, 0x98, 0x08, 0x06, 0x0A, 0x00, 0xC2, 0x84, 0x50, 0x00, 0xC0, 0x16, 0x92, 0x32, 0xD2, 0x18, 0x0D, 0x30, 0xD0, 0x22, 0x11, 0x10, 0xF0, 0x41, 0xAA,
+ 0x5A, 0x9E, 0xFF, 0xC0, 0x7E, 0x2A, 0x10, 0xF3, 0x21, 0x88, 0x04, 0x71, 0xFF, 0xFF, 0x18, 0x93, 0x06, 0x72, 0x00, 0xC0, 0xF6, 0x91, 0x51, 0xD2, 0x10, 0x0D, 0x30, 0xD0, 0x32, 0x11,
+ 0x08, 0xF0, 0x41, 0xAA, 0xFF, 0xC0, 0x7E, 0x2A, 0x20, 0xE3, 0x21, 0x88, 0x06, 0x72, 0xFF, 0xFF, 0x38, 0x93, 0x71, 0xD2, 0x98, 0x0C, 0x80, 0xB7, 0x2D, 0x40, 0x40, 0xC0, 0x00, 0x2A,
+ 0x00, 0x75, 0xFF, 0xFF, 0x24, 0x93, 0x22, 0x9C, 0x0D, 0xA6, 0x5E, 0x9E, 0x9D, 0x9E, 0xF4, 0xFF, 0x8B, 0x9B, 0xC0, 0xB7, 0x94, 0x43, 0x72, 0xC1, 0xCE, 0x9C, 0xA0, 0xB7, 0x8C, 0x57,
+ 0x96, 0x0D, 0x08, 0xF2, 0xA6, 0xA2, 0x08, 0xF2, 0x2D, 0xA3, 0xF4, 0xFF, 0xAE, 0x9B, 0x80, 0xB7, 0x8C, 0x47, 0xA9, 0x9E, 0x60, 0xB9, 0x20, 0x40, 0x51, 0xD2, 0xC8, 0x08, 0x31, 0xF0,
+ 0x25, 0xAA, 0x80, 0xB5, 0x2D, 0x40, 0xFF, 0xFF, 0x81, 0x93, 0xF4, 0xFF, 0x7E, 0x9B, 0x72, 0xC1, 0xCE, 0x9C, 0x9F, 0xB7, 0xEE, 0x7E, 0xBF, 0xB7, 0x6E, 0x7F, 0xDF, 0xB7, 0xEE, 0x7F,
+ 0x60, 0x8C, 0x22, 0x9C, 0x39, 0xF8, 0x05, 0xA2, 0x96, 0x0D, 0xF4, 0xFF, 0x90, 0x9B, 0x01, 0xC0, 0x06, 0x85, 0x2C, 0x85, 0x02, 0x87, 0x80, 0xB7, 0x8C, 0x47, 0x08, 0xC0, 0x50, 0x0A,
+ 0x08, 0xF2, 0x03, 0xA1, 0x0A, 0xF2, 0x00, 0xA1, 0x01, 0xC0, 0x06, 0x87, 0x00, 0xC5, 0x4C, 0x87, 0x0A, 0xF2, 0x00, 0xA1, 0x06, 0x85, 0x08, 0xF2, 0x03, 0xA1, 0x18, 0x85, 0x08, 0xF2,
+ 0x03, 0xA1, 0xF8, 0xF9, 0x1D, 0xAA, 0x22, 0x9C, 0x39, 0xF8, 0x05, 0xA2, 0x02, 0xC0, 0x40, 0x84, 0x3A, 0x9D, 0x18, 0xD0, 0x45, 0xAA, 0x1C, 0xC0, 0x3E, 0x7D, 0x05, 0xC0, 0xA4, 0x91,
+ 0x60, 0xB7, 0x04, 0x59, 0xA3, 0xCB, 0x3A, 0x0A, 0xBA, 0xC8, 0x0C, 0x0A, 0x10, 0xE0, 0xA7, 0x88, 0x99, 0x60, 0x8F, 0x58, 0x84, 0x18, 0xBC, 0x28, 0x74, 0xD1, 0x11, 0x69, 0x30, 0xC0,
+ 0x41, 0xAA, 0x40, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x82, 0x92, 0x58, 0xF0, 0x5D, 0xAA, 0x01, 0xC1, 0x00, 0x3A, 0x58, 0xF0, 0x5D, 0xA2, 0x58, 0xF0, 0xDD, 0xA8, 0x01, 0xC0, 0xC0, 0x38,
+ 0x58, 0xF0, 0xDD, 0xA0, 0x82, 0x0D, 0x4F, 0x9D, 0x74, 0xC0, 0xCF, 0x9B, 0x04, 0xC0, 0xA0, 0x91, 0x58, 0xF0, 0xDD, 0xA8, 0x58, 0xF0, 0x5D, 0xA9, 0x00, 0xE2, 0x00, 0x29, 0xB9, 0x58,
+ 0x11, 0xD0, 0x92, 0x29, 0x02, 0xC0, 0xE4, 0x92, 0x40, 0xB7, 0x94, 0x41, 0x50, 0xF0, 0x49, 0xAA, 0x80, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x8E, 0x0C, 0x00, 0xC0, 0x22, 0x91, 0x80, 0xB7,
+ 0x0C, 0x50, 0x40, 0xB5, 0x0C, 0x50, 0x84, 0x0C, 0x9F, 0xB5, 0xEC, 0x7B, 0x50, 0xF0, 0x49, 0xAA, 0x00, 0xC4, 0x00, 0x2A, 0x00, 0x75, 0x01, 0xC0, 0x62, 0x90, 0x98, 0xF0, 0x41, 0xAA,
+ 0x98, 0xF0, 0xC5, 0xA8, 0x98, 0xF0, 0xCA, 0xA8, 0x98, 0xF0, 0x4D, 0xA9, 0x9F, 0xB5, 0x6C, 0x7C, 0x3F, 0xB5, 0xEC, 0x7C, 0x3F, 0xB5, 0x74, 0x7D, 0x5F, 0xB5, 0xEC, 0x7D, 0x50, 0xF0,
+ 0x49, 0xAA, 0x00, 0xC8, 0x00, 0x2A, 0x00, 0x75, 0xA2, 0x0C, 0x00, 0xC0, 0x62, 0x91, 0x98, 0xF0, 0x51, 0xAA, 0x98, 0xF0, 0xD5, 0xA8, 0x88, 0x0C, 0x9F, 0xB5, 0x6C, 0x7E, 0x3F, 0xB5,
+ 0xEC, 0x7E, 0xA2, 0xD0, 0x08, 0x5E, 0xD2, 0xE0, 0x80, 0x8D, 0x0C, 0xC0, 0x02, 0x87, 0x5F, 0xB5, 0xE0, 0x68, 0x9F, 0xB5, 0x68, 0x68, 0x58, 0xF0, 0x5D, 0xAA, 0x18, 0xD8, 0xC5, 0xA8,
+ 0x18, 0xD8, 0xDE, 0xA8, 0x5F, 0xB5, 0x7C, 0x7F, 0x9F, 0xB5, 0x6C, 0x7B, 0x3F, 0xB5, 0xEA, 0x74, 0x3F, 0xB5, 0x72, 0x75, 0xD4, 0xFF, 0xFB, 0x98, 0x5F, 0xB7, 0x7C, 0x7F, 0x18, 0xD0,
+ 0x41, 0xAA, 0x02, 0x87, 0x0E, 0xC0, 0x3C, 0x2A, 0x18, 0xD0, 0x41, 0xA2, 0x40, 0xB5, 0x84, 0x49, 0x18, 0xD0, 0x41, 0xAA, 0x08, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0xC4, 0x93, 0x18, 0xD0,
+ 0x41, 0xAA, 0x10, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x02, 0x93, 0x20, 0xB7, 0x8C, 0x46, 0x80, 0xB7, 0xAD, 0x45, 0x40, 0x2A, 0x00, 0x75, 0xFF, 0xFF, 0x82, 0x93, 0x80, 0xB7, 0x8C, 0x47,
+ 0x08, 0xC0, 0x60, 0x0A, 0x08, 0xF2, 0x81, 0xA8, 0x00, 0xC0, 0x00, 0x91, 0x58, 0xF0, 0x5D, 0xAA, 0x01, 0xC1, 0x00, 0x3A, 0x58, 0xF0, 0x5D, 0xA2, 0xF8, 0xF9, 0x05, 0xAA, 0x22, 0x9C,
+ 0x39, 0xF8, 0x05, 0xA2, 0x20, 0x84, 0x9F, 0xB7, 0x6C, 0x7F, 0x0C, 0xC0, 0x0A, 0x85, 0xF0, 0xCF, 0x01, 0x2A, 0x10, 0x3A, 0x9F, 0xB5, 0x6C, 0x7F, 0x5F, 0xB5, 0xF8, 0x7C, 0x10, 0xD8,
+ 0x65, 0xAA, 0x32, 0xE0, 0x80, 0x8D, 0x86, 0x09, 0x9F, 0xB5, 0xEA, 0x7E, 0xD4, 0xFF, 0xB4, 0x98, 0xF8, 0xF9, 0x19, 0xAA, 0x22, 0x9C, 0x40, 0xC0, 0x92, 0x0D, 0x8A, 0x09, 0xF0, 0xFF,
+ 0x80, 0x92, 0x39, 0xF8, 0x85, 0xA2, 0x02, 0x0A, 0x87, 0x02, 0x0A, 0x71, 0x01, 0xC0, 0x68, 0x93, 0xA0, 0xB7, 0x94, 0x46, 0x40, 0xB7, 0x1C, 0x48, 0x5A, 0x9E, 0x82, 0x08, 0x44, 0x70,
+ 0x11, 0xD0, 0xC2, 0x09, 0x01, 0xC0, 0x88, 0x91, 0xC3, 0x9D, 0x5E, 0x9D, 0x28, 0xD2, 0xA0, 0x59, 0xCB, 0x9D, 0x02, 0x87, 0x4B, 0x9D, 0xC7, 0x9D, 0x40, 0xC0, 0x20, 0x0C, 0x40, 0xC0,
+ 0x60, 0x0D, 0x42, 0xC0, 0x40, 0x09, 0x50, 0xC0, 0x80, 0x0C, 0x11, 0xD0, 0x12, 0x08, 0x58, 0xF0, 0x69, 0xAA, 0x06, 0x75, 0xFF, 0xFF, 0xB4, 0x93, 0x01, 0xC0, 0x84, 0x38, 0x01, 0xC0,
+ 0x96, 0x30, 0x20, 0xB5, 0x4C, 0x40, 0x12, 0xF0, 0x40, 0xA1, 0x02, 0xC0, 0x82, 0x08, 0x08, 0xF0, 0xC1, 0xA0, 0x40, 0xB5, 0x45, 0x40, 0x81, 0x00, 0x5C, 0x9E, 0x48, 0x70, 0xFF, 0xFF,
+ 0x06, 0x91, 0x07, 0x02, 0x0A, 0x71, 0xFE, 0xFF, 0xA6, 0x91, 0x20, 0xB7, 0x14, 0x48, 0x20, 0xB7, 0x8C, 0x46, 0x80, 0xB7, 0x2D, 0x45, 0x02, 0x75, 0xFF, 0xFF, 0xB4, 0x93, 0x02, 0x85,
+ 0x40, 0xC0, 0x90, 0x0C, 0x40, 0xB5, 0x5D, 0x40, 0x86, 0x08, 0x80, 0xB7, 0x0C, 0x48, 0x40, 0xC0, 0x10, 0x0A, 0x08, 0xF2, 0x81, 0xA0, 0xF8, 0xF9, 0x9D, 0xAA, 0x22, 0x9C, 0xA2, 0xD1,
+ 0x08, 0x5E, 0xFE, 0xC0, 0x7C, 0x2A, 0x20, 0xC0, 0x00, 0x75, 0x99, 0x9E, 0x01, 0xC0, 0x02, 0x90, 0x00, 0xC0, 0xD2, 0x90, 0x00, 0x75, 0x00, 0xC0, 0x02, 0x91, 0x22, 0x9C, 0x80, 0xC0,
+ 0x00, 0x75, 0x00, 0xC0, 0xE2, 0x91, 0x22, 0x9C, 0x20, 0xB7, 0x4D, 0x41, 0xF3, 0xC1, 0x7E, 0x0A, 0x00, 0xC1, 0x00, 0x0A, 0x98, 0x20, 0x00, 0xC2, 0x80, 0x38, 0x20, 0xB5, 0x4D, 0x41,
+ 0x22, 0x9C, 0x20, 0xB7, 0x4D, 0x40, 0xC1, 0x28, 0xA4, 0x38, 0x20, 0xB5, 0x4D, 0x40, 0x22, 0x9C, 0x80, 0xB7, 0x4D, 0x41, 0x20, 0xB7, 0xCD, 0x41, 0x80, 0xB5, 0x4D, 0x40, 0x20, 0xB5,
+ 0xCD, 0x40, 0x22, 0x9C, 0x05, 0xA6, 0x5D, 0x9E, 0x82, 0x0D, 0xD4, 0xFF, 0xD8, 0x99, 0x20, 0xB7, 0x8C, 0x44, 0x20, 0xB7, 0x12, 0x55, 0x34, 0xC0, 0x90, 0x08, 0xE9, 0xF1, 0xBE, 0xA0,
+ 0x48, 0xDA, 0x21, 0xAA, 0x01, 0xC0, 0x04, 0x3A, 0x80, 0xB5, 0x2D, 0x40, 0x08, 0xD2, 0x21, 0xA9, 0x82, 0x0D, 0x06, 0x0D, 0x08, 0xF2, 0xB9, 0xA9, 0x0E, 0xC0, 0x7C, 0x29, 0x05, 0x59,
+ 0x04, 0x49, 0x04, 0x29, 0xD4, 0xFF, 0xAC, 0x99, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x5A, 0x9E, 0x00, 0xC1, 0x11, 0x5A, 0x04, 0x1A, 0x3F, 0x75,
+ 0x08, 0xC0, 0x06, 0x85, 0x00, 0xC0, 0x22, 0x92, 0x20, 0xB7, 0x94, 0x47, 0x40, 0xB5, 0xDD, 0x4C, 0x11, 0xD0, 0xC2, 0x18, 0x80, 0xB7, 0xCD, 0x4B, 0x00, 0x75, 0xFF, 0xFF, 0xB6, 0x93,
+ 0x03, 0x02, 0x3F, 0x75, 0xFF, 0xFF, 0xA4, 0x92, 0x31, 0xF0, 0x2E, 0x2A, 0x40, 0xB3, 0xA2, 0x48, 0x20, 0xB7, 0x8C, 0x47, 0x00, 0xC2, 0x0C, 0x5A, 0x04, 0x3A, 0x80, 0xB5, 0xAD, 0x4C,
+ 0x80, 0xB7, 0xAD, 0x4B, 0x00, 0x75, 0xFF, 0xFF, 0xB6, 0x93, 0x22, 0x9C, 0x1D, 0xA6, 0x02, 0xC0, 0x00, 0x84, 0x3E, 0x9D, 0x20, 0xB7, 0x10, 0x44, 0x7F, 0x87, 0x5F, 0xB5, 0x64, 0x7C,
+ 0x82, 0x0A, 0xBF, 0xB5, 0xEC, 0x7C, 0xBF, 0xB5, 0x6C, 0x7D, 0x0E, 0xC0, 0x7E, 0x85, 0x40, 0xB5, 0x18, 0x44, 0x3F, 0xB5, 0xF4, 0x7D, 0x01, 0xC9, 0x80, 0x9C, 0x98, 0xF0, 0x71, 0xA2,
+ 0x20, 0xB7, 0x0C, 0x55, 0xA0, 0xB5, 0xA9, 0x4B, 0x18, 0xD0, 0x61, 0xAA, 0x08, 0x2A, 0x00, 0x75, 0x8F, 0x9E, 0x02, 0xC0, 0xC2, 0x93, 0x20, 0xB7, 0x14, 0x58, 0x60, 0xB7, 0x0C, 0x4D,
+ 0x7F, 0xB5, 0x7C, 0x7F, 0x83, 0x05, 0x54, 0xC0, 0x8D, 0x98, 0x7F, 0xB7, 0x7C, 0x7F, 0x58, 0xF0, 0x7D, 0xAA, 0x04, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0xE2, 0x90, 0xEF, 0x9D,
+ 0xF4, 0xFF, 0x3F, 0x98, 0x7F, 0xB7, 0x7C, 0x7F, 0x20, 0xB7, 0x14, 0x59, 0xA3, 0xCB, 0xBA, 0x08, 0xBA, 0xC8, 0x8C, 0x08, 0x10, 0xF2, 0x3B, 0x88, 0x43, 0x62, 0x00, 0xC2, 0x0F, 0x5A,
+ 0x04, 0x1A, 0x3C, 0x2A, 0x73, 0xD1, 0x41, 0x69, 0x20, 0xE2, 0xAB, 0x80, 0x18, 0xD8, 0xF5, 0xA8, 0x80, 0xB7, 0xCB, 0x42, 0xBC, 0x28, 0x3C, 0x2A, 0x48, 0x70, 0x00, 0xC0, 0xC2, 0x92,
+ 0xEF, 0x9D, 0x01, 0xC1, 0x82, 0x09, 0x7F, 0xB5, 0x7C, 0x7F, 0xF4, 0xFF, 0xA7, 0x99, 0x8B, 0x00, 0x71, 0xC0, 0xCD, 0x9C, 0x7F, 0xB7, 0x7C, 0x7F, 0x58, 0xF0, 0x7D, 0xAA, 0x41, 0xC0,
+ 0x00, 0x3A, 0x58, 0xF0, 0x7D, 0xA2, 0x71, 0xC0, 0xCD, 0x9C, 0xEF, 0x9D, 0x01, 0xC2, 0x82, 0x09, 0x7F, 0xB5, 0x7C, 0x7F, 0xF4, 0xFF, 0x93, 0x99, 0x20, 0xB7, 0x8C, 0x47, 0x20, 0xB7,
+ 0x14, 0x57, 0x0E, 0x85, 0x40, 0xB5, 0xBD, 0x41, 0x80, 0xB7, 0xCD, 0x40, 0x20, 0xB7, 0x8C, 0x46, 0x40, 0x3A, 0x80, 0xB5, 0x2D, 0x44, 0x7F, 0xB7, 0x7C, 0x7F, 0x18, 0xD0, 0x61, 0xAA,
+ 0x04, 0x2A, 0x00, 0x75, 0x40, 0xB7, 0x84, 0x4A, 0x00, 0xC0, 0xC2, 0x90, 0x60, 0xB7, 0x8C, 0x4D, 0x00, 0xC0, 0x80, 0x90, 0x60, 0xB7, 0x0C, 0x4D, 0x20, 0xB7, 0x14, 0x58, 0x5F, 0xB5,
+ 0xE4, 0x7E, 0x7F, 0xB5, 0x7C, 0x7F, 0x83, 0x05, 0x54, 0xC0, 0x23, 0x98, 0x7F, 0xB7, 0x74, 0x7F, 0xF4, 0xFF, 0x19, 0x9B, 0x7F, 0xB7, 0x7C, 0x7F, 0x18, 0xD8, 0x75, 0xAA, 0x3C, 0x2A,
+ 0x08, 0x75, 0x5F, 0xB7, 0xE4, 0x7E, 0x00, 0xC0, 0x44, 0x91, 0x80, 0xB7, 0x8C, 0x47, 0xB9, 0xC0, 0xC2, 0x08, 0x60, 0xC0, 0x50, 0x0A, 0x08, 0xF2, 0x81, 0xA0, 0xE0, 0xB7, 0x8C, 0x55,
+ 0x21, 0xF0, 0x45, 0xAB, 0x0D, 0x02, 0x01, 0xCF, 0x00, 0x2A, 0x01, 0xD0, 0x00, 0x75, 0x02, 0xC0, 0xE2, 0x90, 0x01, 0xC0, 0x72, 0x90, 0x01, 0xC8, 0x00, 0x75, 0x0E, 0xC0, 0x22, 0x93,
+ 0x00, 0xC0, 0x72, 0x91, 0x00, 0x75, 0xFF, 0xFF, 0xC2, 0x91, 0x01, 0xC2, 0x00, 0x75, 0x02, 0xC0, 0xA2, 0x91, 0xFF, 0xFF, 0x00, 0x91, 0x01, 0xCC, 0x00, 0x75, 0x18, 0xC0, 0x42, 0x90,
+ 0x00, 0xC0, 0x12, 0x91, 0x01, 0xCA, 0x00, 0x75, 0x07, 0xC0, 0x42, 0x93, 0xFE, 0xFF, 0x80, 0x93, 0x01, 0xCE, 0x00, 0x75, 0x0F, 0xC0, 0x22, 0x90, 0xFE, 0xFF, 0xC0, 0x92, 0x01, 0xD6,
+ 0x00, 0x75, 0x12, 0xC0, 0xA2, 0x90, 0x00, 0xC0, 0x92, 0x91, 0x01, 0xD2, 0x00, 0x75, 0x14, 0xC0, 0x62, 0x90, 0x01, 0xD4, 0x00, 0x75, 0x0B, 0xC0, 0x22, 0x92, 0xFE, 0xFF, 0xC0, 0x90,
+ 0x01, 0xDA, 0x00, 0x75, 0x0C, 0xC0, 0xC2, 0x93, 0x00, 0xC0, 0x12, 0x91, 0x01, 0xD8, 0x00, 0x75, 0x0B, 0xC0, 0xA2, 0x90, 0xFD, 0xFF, 0x40, 0x93, 0x01, 0xDE, 0x00, 0x75, 0x0F, 0xC0,
+ 0x42, 0x90, 0xFD, 0xFF, 0x80, 0x92, 0x0D, 0x02, 0x01, 0xC0, 0x40, 0x2A, 0x00, 0x75, 0xFD, 0xFF, 0xC2, 0x91, 0x58, 0xF0, 0x7D, 0xAA, 0x01, 0xC0, 0x08, 0x2A, 0x00, 0x75, 0xFD, 0xFF,
+ 0xE4, 0x90, 0xFE, 0xCF, 0x7C, 0x2B, 0x00, 0xC3, 0x08, 0x5A, 0x01, 0xC3, 0x20, 0x83, 0xFC, 0xFF, 0xE0, 0x93, 0x0D, 0x02, 0xFF, 0xC0, 0x40, 0x2A, 0x11, 0xC0, 0x00, 0x75, 0x82, 0x0E,
+ 0x01, 0xD0, 0xD2, 0x0E, 0x09, 0xC0, 0x00, 0x75, 0x8D, 0x02, 0x01, 0xC0, 0xBE, 0x2A, 0x01, 0xC0, 0x24, 0x91, 0x18, 0xD8, 0x75, 0xAA, 0x3C, 0x2A, 0x04, 0x75, 0x01, 0xC0, 0x64, 0x90,
+ 0x18, 0xD0, 0x61, 0xAA, 0x04, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0xA2, 0x93, 0x20, 0xB7, 0x8C, 0x48, 0x01, 0xC0, 0x0A, 0x0A, 0x0E, 0xC0, 0x78, 0x0A, 0x48, 0x70, 0x00, 0xC0, 0x92, 0x92,
+ 0x58, 0xF0, 0x7D, 0xAA, 0x04, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0xA2, 0x91, 0xEF, 0x9D, 0x5F, 0xB5, 0xE4, 0x7E, 0x7F, 0xB5, 0x7C, 0x7F, 0xD4, 0xFF, 0x83, 0x9A, 0x7F, 0xB7,
+ 0x7C, 0x7F, 0x5F, 0xB7, 0xE4, 0x7E, 0x84, 0x1A, 0x7F, 0x75, 0xFB, 0xFF, 0xA2, 0x90, 0x60, 0xB7, 0x94, 0x55, 0x00, 0xB7, 0x94, 0x46, 0x18, 0xD8, 0x75, 0xAA, 0x3C, 0x2A, 0x04, 0x75,
+ 0x6A, 0x9E, 0x82, 0x08, 0x01, 0xD0, 0x92, 0x08, 0x44, 0x78, 0x00, 0xF0, 0x42, 0xA9, 0x02, 0xC0, 0x42, 0x92, 0xF1, 0xD3, 0x2E, 0x2E, 0x10, 0x1A, 0x20, 0x75, 0x26, 0xD2, 0x0C, 0x59,
+ 0x40, 0x85, 0x5A, 0xE0, 0x44, 0x80, 0x02, 0xC0, 0xE0, 0x90, 0x01, 0xC0, 0x40, 0x90, 0x02, 0xC0, 0x60, 0x90, 0x02, 0xC0, 0x20, 0x90, 0x01, 0xC0, 0xE0, 0x93, 0x01, 0xC0, 0x40, 0x91,
+ 0x01, 0xC0, 0x60, 0x93, 0x01, 0xC0, 0x20, 0x93, 0x01, 0xC0, 0xE0, 0x92, 0x01, 0xC0, 0x00, 0x91, 0x01, 0xC0, 0x60, 0x92, 0x01, 0xC0, 0x20, 0x92, 0x01, 0xC0, 0xE0, 0x91, 0x01, 0xC0,
+ 0xA0, 0x91, 0x01, 0xC0, 0x60, 0x91, 0x01, 0xC0, 0x20, 0x91, 0x01, 0xC0, 0xE0, 0x90, 0x00, 0xC0, 0xC0, 0x93, 0x20, 0xB7, 0x14, 0x56, 0x00, 0xF0, 0xC5, 0xA8, 0x80, 0xB7, 0x49, 0x4B,
+ 0xFE, 0xCF, 0x8D, 0x28, 0x00, 0xC2, 0x08, 0x5A, 0x70, 0x2A, 0x98, 0x30, 0x00, 0xF0, 0xC5, 0xA0, 0x00, 0xC0, 0xA0, 0x92, 0x00, 0xF0, 0x45, 0xAA, 0x10, 0xF0, 0xE1, 0xA8, 0x00, 0xC0,
+ 0x80, 0x91, 0x00, 0xF0, 0x45, 0xAA, 0x10, 0xF0, 0xE5, 0xA8, 0x00, 0xC0, 0xC0, 0x90, 0x00, 0xF0, 0x45, 0xAA, 0x10, 0xF0, 0xE9, 0xA8, 0x42, 0x32, 0x00, 0xF0, 0x45, 0xA2, 0x54, 0x9E,
+ 0x31, 0xE0, 0xA0, 0x86, 0xB7, 0xCF, 0x7C, 0x0A, 0x00, 0xCF, 0x00, 0x0A, 0x00, 0xC2, 0x00, 0x75, 0x00, 0xF0, 0x45, 0xA9, 0x11, 0xD0, 0xD2, 0x19, 0x00, 0xC0, 0x12, 0x91, 0x81, 0x04,
+ 0x80, 0xB7, 0x4D, 0x45, 0x00, 0x75, 0xFF, 0xFF, 0xA2, 0x93, 0x87, 0x02, 0x7F, 0x75, 0x99, 0x9D, 0x10, 0xF0, 0x41, 0xA1, 0xFC, 0xFF, 0x24, 0x91, 0xF7, 0xFF, 0xC0, 0x90, 0x18, 0xD8,
+ 0xF5, 0xA8, 0x00, 0xC3, 0x41, 0x5A, 0xF2, 0xD3, 0x4E, 0x2B, 0x24, 0xD3, 0x91, 0x5A, 0xBC, 0x28, 0x44, 0x74, 0xFE, 0xC0, 0xFC, 0x2E, 0x02, 0xC0, 0xE4, 0x93, 0xB3, 0x9E, 0xF1, 0xC0,
+ 0x80, 0x2D, 0x21, 0xC0, 0xC0, 0x76, 0x00, 0xC0, 0xC4, 0x91, 0x00, 0xF0, 0x49, 0xAA, 0x08, 0xF2, 0xED, 0xA8, 0x42, 0x32, 0x00, 0xF0, 0x49, 0xA2, 0xE9, 0xA8, 0x08, 0xF2, 0x6D, 0xAA,
+ 0x98, 0x30, 0xE9, 0xA0, 0x81, 0xC0, 0xC0, 0x76, 0x00, 0xC0, 0x04, 0x92, 0x00, 0xF0, 0x41, 0xAA, 0x08, 0xF2, 0xF1, 0xA8, 0x42, 0x32, 0x00, 0xF0, 0x41, 0xA2, 0x18, 0xF0, 0xFD, 0xA8,
+ 0x08, 0xF2, 0x71, 0xAA, 0x98, 0x30, 0x18, 0xF0, 0xFD, 0xA0, 0x41, 0xC0, 0xC0, 0x76, 0x01, 0xC0, 0xA4, 0x90, 0x00, 0xF0, 0x45, 0xAA, 0x08, 0xF2, 0xF5, 0xA8, 0x42, 0x32, 0x00, 0xF0,
+ 0xC9, 0xA8, 0x00, 0xF0, 0x45, 0xA2, 0x08, 0xF2, 0x79, 0xAA, 0x98, 0x30, 0x00, 0xF0, 0x4D, 0xAA, 0x00, 0xF0, 0xC9, 0xA0, 0x08, 0xF2, 0xFD, 0xA8, 0x42, 0x32, 0x00, 0xF0, 0xD1, 0xA8,
+ 0x00, 0xF0, 0x4D, 0xA2, 0x48, 0xF2, 0x61, 0xAA, 0x98, 0x30, 0x40, 0xF0, 0x41, 0xAA, 0x00, 0xF0, 0xD1, 0xA0, 0x48, 0xF2, 0xE5, 0xA8, 0x42, 0x32, 0x40, 0xF0, 0x41, 0xA2, 0x90, 0xD2,
+ 0x7D, 0xAA, 0x08, 0x75, 0x00, 0xC0, 0xC4, 0x91, 0x4C, 0x9D, 0x8B, 0x05, 0x5F, 0xB5, 0xE4, 0x7E, 0x7F, 0xB5, 0x7C, 0x7F, 0xF4, 0xFF, 0x52, 0x99, 0x7F, 0xB7, 0x7C, 0x7F, 0x5F, 0xB7,
+ 0xE4, 0x7E, 0x7A, 0x85, 0xBE, 0x77, 0x57, 0x9D, 0xCC, 0x9D, 0x65, 0xB3, 0x26, 0x48, 0x6B, 0x9E, 0xAA, 0x9E, 0x5F, 0xB5, 0x7C, 0x7E, 0x5F, 0xB5, 0xE4, 0x7E, 0x7F, 0xB5, 0x7C, 0x7F,
+ 0xD4, 0xFF, 0x0E, 0x9B, 0x5F, 0xB7, 0xE4, 0x7E, 0x5F, 0xB7, 0x7C, 0x7E, 0xA9, 0x9E, 0x7F, 0xB7, 0x7C, 0x7F, 0x80, 0xC2, 0x08, 0x5A, 0x00, 0xE0, 0x62, 0x17, 0xD2, 0x06, 0x01, 0xC3,
+ 0x20, 0x83, 0xFF, 0xFF, 0x64, 0x90, 0xF2, 0xFF, 0x20, 0x93, 0x24, 0xD3, 0x90, 0x5A, 0x18, 0xD0, 0x61, 0xAA, 0x82, 0x0D, 0x01, 0xCF, 0x00, 0x2B, 0x5F, 0xB5, 0xE4, 0x7E, 0x7F, 0xB5,
+ 0x7C, 0x7F, 0x0E, 0xC0, 0x7C, 0x2A, 0x00, 0xC2, 0x05, 0x5A, 0x04, 0x4A, 0x11, 0xD0, 0xC2, 0x2A, 0xB4, 0xFF, 0x23, 0x9B, 0x01, 0xD4, 0x80, 0x75, 0x5F, 0xB7, 0xE4, 0x7E, 0x7F, 0xB7,
+ 0x7C, 0x7F, 0x00, 0xC0, 0x44, 0x91, 0x6B, 0x9E, 0x82, 0x0D, 0x02, 0x0D, 0x0B, 0x01, 0xB4, 0xFF, 0x45, 0x9B, 0x0A, 0xC0, 0xA0, 0x91, 0x6B, 0x9E, 0x06, 0x09, 0x5F, 0xB5, 0xEC, 0x7C,
+ 0x82, 0x0D, 0x02, 0x0D, 0x0B, 0x01, 0x5F, 0xB5, 0xE4, 0x7E, 0x7F, 0xB5, 0x7C, 0x7F, 0xB4, 0xFF, 0x36, 0x9B, 0x09, 0xC0, 0xC0, 0x93, 0x00, 0xC3, 0x10, 0x5A, 0x18, 0xF0, 0x79, 0xA2,
+ 0x00, 0xD8, 0xC1, 0xA8, 0x58, 0xD8, 0xE1, 0xA0, 0xEF, 0xFF, 0xA0, 0x91, 0x58, 0xF0, 0xFD, 0xA8, 0x00, 0xC1, 0x90, 0x38, 0x58, 0xF0, 0xFD, 0xA0, 0x58, 0xF0, 0x7D, 0xAA, 0x08, 0xC0,
+ 0x00, 0x3A, 0x58, 0xF0, 0x7D, 0xA2, 0xA0, 0xB7, 0x8C, 0x46, 0x06, 0xC0, 0x7E, 0x85, 0x48, 0xF2, 0xA2, 0xAA, 0x48, 0xF2, 0x23, 0xA1, 0x00, 0xF0, 0xC2, 0xA9, 0x00, 0xF0, 0xC5, 0xA9,
+ 0x20, 0x87, 0x5F, 0xB5, 0xE4, 0x7E, 0x7F, 0xB5, 0x7C, 0x7F, 0xF4, 0xFF, 0x78, 0x98, 0x48, 0xF2, 0xA2, 0xA2, 0x08, 0xC0, 0x20, 0x92, 0x21, 0xF0, 0x45, 0xAA, 0x18, 0xF0, 0x71, 0xA2,
+ 0x00, 0xD8, 0xC1, 0xA8, 0x58, 0xD8, 0xE9, 0xA0, 0x20, 0xD8, 0x49, 0xAA, 0x58, 0xD8, 0x6D, 0xA2, 0x10, 0x87, 0x21, 0xF0, 0x45, 0xAA, 0xEF, 0x9D, 0x02, 0x85, 0x18, 0xF0, 0x79, 0xA2,
+ 0x00, 0xF0, 0xC1, 0xA8, 0x01, 0xC8, 0x82, 0x09, 0x58, 0xF0, 0x73, 0xA1, 0x18, 0xF0, 0xFD, 0xA0, 0x7F, 0xB5, 0x7C, 0x7F, 0xD4, 0xFF, 0x2C, 0x9B, 0x7F, 0xB7, 0x7C, 0x7F, 0x0D, 0xC0,
+ 0xA0, 0x91, 0x20, 0xB7, 0x94, 0x56, 0x00, 0xF0, 0xC9, 0xA8, 0x00, 0xF0, 0xC2, 0xA9, 0x00, 0xF0, 0xC5, 0xA9, 0x20, 0xB5, 0x4D, 0x40, 0x00, 0xF0, 0x4D, 0xAA, 0x80, 0xB5, 0xCD, 0x40,
+ 0x00, 0xF0, 0xD1, 0xA8, 0x20, 0xB5, 0x4D, 0x41, 0x00, 0xF0, 0x55, 0xAA, 0x5F, 0xB5, 0xE4, 0x7E, 0x7F, 0xB5, 0x7C, 0x7F, 0x80, 0xB5, 0x0C, 0x53, 0x94, 0xC0, 0xE9, 0x9B, 0x5F, 0xB7,
+ 0xE4, 0x7E, 0xFF, 0xC0, 0x7E, 0x2B, 0x82, 0x75, 0x7F, 0xB7, 0x7C, 0x7F, 0x02, 0xC0, 0x00, 0x87, 0x00, 0xC0, 0x42, 0x92, 0x06, 0x0A, 0x9F, 0xB5, 0x6C, 0x7D, 0x86, 0x0D, 0x5F, 0xB5,
+ 0xE4, 0x7E, 0xD4, 0xFF, 0x75, 0x98, 0x94, 0xC0, 0x7F, 0x9B, 0x5F, 0xB7, 0xE4, 0x7E, 0x7F, 0xB7, 0x7C, 0x7F, 0x00, 0xC0, 0xA0, 0x90, 0x02, 0x09, 0x5F, 0xB5, 0x6C, 0x7D, 0x90, 0xD2,
+ 0x7D, 0xAA, 0x08, 0x75, 0xEC, 0xFF, 0xE2, 0x92, 0x5F, 0xB5, 0xE4, 0x7E, 0x7F, 0xB5, 0x7C, 0x7F, 0xF4, 0xC0, 0xE3, 0x99, 0x05, 0xC0, 0xE0, 0x90, 0x18, 0xD0, 0x61, 0xAA, 0x08, 0x2A,
+ 0x00, 0x75, 0x01, 0xC0, 0xA2, 0x93, 0x00, 0xF0, 0x43, 0xA9, 0x8A, 0x0D, 0x5F, 0xB5, 0x7C, 0x7C, 0x00, 0xF0, 0xC6, 0xAA, 0x02, 0x85, 0x43, 0xB5, 0x98, 0x6C, 0x5F, 0xB5, 0xE4, 0x7E,
+ 0x7F, 0xB5, 0x7C, 0x7F, 0xB4, 0xFF, 0x57, 0x9A, 0x12, 0xD0, 0xE2, 0x29, 0xA0, 0xB7, 0x8C, 0x43, 0x71, 0xC1, 0xCD, 0x9C, 0x82, 0x09, 0x0B, 0x05, 0x06, 0x09, 0xD4, 0xFF, 0x19, 0x98,
+ 0x5F, 0xB7, 0xE4, 0x7E, 0x00, 0xF0, 0x49, 0xAB, 0x8A, 0x0D, 0x02, 0x0D, 0x02, 0x09, 0x00, 0xC3, 0x90, 0x59, 0xB4, 0xFF, 0x71, 0x9A, 0xD4, 0xFF, 0x27, 0x98, 0x8E, 0x0D, 0xD4, 0xFF,
+ 0x2C, 0x98, 0xD4, 0xFF, 0xF8, 0x99, 0x86, 0x0D, 0xD4, 0xFF, 0x27, 0x98, 0x80, 0xB7, 0x8C, 0x46, 0x0A, 0x85, 0x08, 0xF2, 0x0F, 0xA1, 0x71, 0xC1, 0xCD, 0x9C, 0x5F, 0xB7, 0xE4, 0x7E,
+ 0x7F, 0xB7, 0x7C, 0x7F, 0x30, 0x87, 0xEA, 0xFF, 0x60, 0x91, 0x00, 0xF0, 0x41, 0xAA, 0x18, 0xF0, 0x7D, 0xA2, 0x00, 0xF0, 0xC5, 0xA8, 0x58, 0xF0, 0xF5, 0xA0, 0x00, 0xF0, 0x49, 0xAA,
+ 0x58, 0xF0, 0x79, 0xA2, 0x00, 0xD8, 0xDD, 0xA8, 0x58, 0xD8, 0xED, 0xA0, 0x00, 0xD8, 0x59, 0xAA, 0x58, 0xD8, 0x69, 0xA2, 0x00, 0xF0, 0xD1, 0xA8, 0x58, 0xF0, 0xE5, 0xA0, 0x00, 0xF0,
+ 0xD6, 0xA8, 0xD8, 0xD0, 0x71, 0xAA, 0x58, 0xF0, 0xEA, 0xA0, 0x5F, 0xB7, 0xEC, 0x7D, 0x00, 0xF0, 0xD9, 0xA8, 0x30, 0x2A, 0x70, 0x87, 0x88, 0x70, 0x58, 0xF0, 0xED, 0xA0, 0x80, 0xB5,
+ 0x08, 0x44, 0x00, 0xC0, 0xA2, 0x91, 0x02, 0x85, 0x73, 0xC0, 0xCE, 0x9C, 0x58, 0xF0, 0x7D, 0xAA, 0x10, 0xC0, 0x00, 0x3A, 0x58, 0xF0, 0x7D, 0xA2, 0x73, 0xC0, 0xCE, 0x9C, 0x18, 0xD8,
+ 0x75, 0xAA, 0x3C, 0x2A, 0x08, 0x75, 0x00, 0xC0, 0x84, 0x92, 0x58, 0xF0, 0x7D, 0xAA, 0x20, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0xA2, 0x91, 0xEF, 0x9D, 0x5F, 0xB5, 0xE4, 0x7E,
+ 0x7F, 0xB5, 0x7C, 0x7F, 0x54, 0xC0, 0x70, 0x9A, 0x7F, 0xB7, 0x7C, 0x7F, 0x5F, 0xB7, 0xE4, 0x7E, 0x18, 0xD8, 0x75, 0xAA, 0x3C, 0x2A, 0x04, 0x75, 0xE7, 0xFF, 0xE4, 0x92, 0x18, 0xD0,
+ 0x61, 0xAA, 0x08, 0x2A, 0x00, 0x75, 0xE7, 0xFF, 0x22, 0x92, 0xEF, 0x9D, 0x5F, 0xB5, 0xE4, 0x7E, 0x7F, 0xB5, 0x7C, 0x7F, 0x74, 0xC0, 0x85, 0x99, 0x5F, 0xB7, 0xE4, 0x7E, 0x7F, 0xB7,
+ 0x7C, 0x7F, 0xE7, 0xFF, 0x80, 0x90, 0x9F, 0xB7, 0xEC, 0x7C, 0x00, 0x75, 0x00, 0xC0, 0x22, 0x91, 0x82, 0x0D, 0x7F, 0xB5, 0x7C, 0x7F, 0xB4, 0xFF, 0xB8, 0x99, 0x7F, 0xB7, 0x7C, 0x7F,
+ 0x18, 0xD0, 0x61, 0xAA, 0x08, 0x2A, 0x00, 0x75, 0x01, 0xC0, 0x62, 0x92, 0x18, 0xD8, 0x75, 0xAA, 0x3C, 0x2A, 0x04, 0x75, 0x01, 0xC0, 0xA4, 0x91, 0x90, 0xD2, 0x7D, 0xAA, 0x08, 0x75,
+ 0x01, 0xC0, 0x04, 0x91, 0x20, 0xB7, 0x14, 0x56, 0x20, 0xB7, 0xC9, 0x4C, 0x58, 0xF0, 0x7D, 0xAA, 0x58, 0xD8, 0xE5, 0xA0, 0x40, 0xB7, 0x49, 0x4D, 0x00, 0xC1, 0x10, 0x3A, 0x58, 0xF0,
+ 0x7D, 0xA2, 0x58, 0xD8, 0x6D, 0xA1, 0x58, 0xF0, 0x7D, 0xAA, 0x08, 0xC0, 0x00, 0x3A, 0x58, 0xF0, 0x7D, 0xA2, 0xEF, 0x9D, 0x01, 0xC0, 0x8A, 0x09, 0x7F, 0xB5, 0x7C, 0x7F, 0xD4, 0xFF,
+ 0xFC, 0x99, 0x86, 0x0D, 0xB4, 0xFF, 0x75, 0x9B, 0xB4, 0xFF, 0x8A, 0x9B, 0x7F, 0xB7, 0x7C, 0x7F, 0x03, 0xC0, 0x00, 0x93, 0x18, 0xD0, 0x61, 0xAA, 0x08, 0x2A, 0x00, 0x75, 0x03, 0xC0,
+ 0x42, 0x92, 0x80, 0xB7, 0x0C, 0x57, 0x20, 0xB7, 0x94, 0x46, 0x08, 0xF2, 0x85, 0xA8, 0x20, 0xB5, 0x4D, 0x44, 0x58, 0xF0, 0x7D, 0xAA, 0x04, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x44, 0x92,
+ 0x58, 0xF0, 0x7D, 0xAA, 0x40, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x62, 0x91, 0xEF, 0x9D, 0x01, 0xC4, 0x82, 0x09, 0x7F, 0xB5, 0x7C, 0x7F, 0xD4, 0xFF, 0xD1, 0x99, 0x01, 0xC0,
+ 0xA0, 0x90, 0x20, 0xB7, 0x8C, 0x48, 0x01, 0xC0, 0x12, 0x0A, 0x10, 0xC0, 0x00, 0x0A, 0x48, 0x70, 0x00, 0xC0, 0xD2, 0x93, 0x58, 0xF0, 0x7D, 0xAA, 0x10, 0xC0, 0x00, 0x2A, 0x00, 0x75,
+ 0x00, 0xC0, 0x24, 0x91, 0x58, 0xF0, 0x7D, 0xAA, 0x04, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x02, 0x92, 0x98, 0xD0, 0x71, 0xAA, 0x06, 0x75, 0x00, 0xC0, 0x74, 0x91, 0xEF, 0x9D,
+ 0x01, 0xC0, 0xC2, 0x09, 0x7F, 0xB5, 0x7C, 0x7F, 0xD4, 0xFF, 0xAC, 0x99, 0x7F, 0xB7, 0x7C, 0x7F, 0x3F, 0xB7, 0x74, 0x7D, 0x40, 0x76, 0x00, 0xC0, 0x44, 0x91, 0x7F, 0xB7, 0x74, 0x7C,
+ 0x7F, 0xB5, 0x7C, 0x7F, 0xD4, 0xFF, 0x76, 0x9B, 0x7F, 0xB7, 0x7C, 0x7F, 0x8A, 0x0D, 0x7F, 0xB5, 0x7C, 0x7F, 0xB4, 0xFF, 0x14, 0x9B, 0x01, 0xC9, 0x80, 0x9C, 0x7F, 0xB7, 0x7C, 0x7F,
+ 0x98, 0xF0, 0x61, 0xA2, 0x06, 0x85, 0x20, 0xB7, 0x94, 0x47, 0x43, 0xB5, 0x18, 0x6C, 0x58, 0xF0, 0xFD, 0xA8, 0x60, 0xB5, 0x9C, 0x7A, 0x80, 0xB7, 0x4D, 0x40, 0x80, 0xC0, 0x84, 0x5A,
+ 0x01, 0xC0, 0x84, 0x2A, 0xFF, 0xCF, 0x7A, 0x2A, 0xCA, 0x30, 0x84, 0x38, 0x20, 0xB5, 0x4D, 0x40, 0x01, 0xC9, 0x80, 0x9C, 0x98, 0xF0, 0x75, 0xA2, 0x20, 0xB7, 0x14, 0x58, 0x83, 0x05,
+ 0x82, 0x09, 0x34, 0xC0, 0x2A, 0x98, 0x06, 0x08, 0x9F, 0xB7, 0x6E, 0x7C, 0xBF, 0xB7, 0xEE, 0x7C, 0xDF, 0xB7, 0x6E, 0x7D, 0xFF, 0xB7, 0xEE, 0x7D, 0x04, 0xC0, 0x00, 0x8C, 0x22, 0x9C,
+ 0x05, 0xA6, 0x20, 0xB7, 0x8C, 0x46, 0x80, 0xB7, 0x2D, 0x46, 0x20, 0xB7, 0x2D, 0x48, 0x00, 0xC4, 0x00, 0x2A, 0x00, 0x75, 0x0F, 0xC0, 0xFE, 0x28, 0x20, 0xB5, 0x8C, 0x48, 0x00, 0xC0,
+ 0x42, 0x91, 0x01, 0xC0, 0x06, 0x0A, 0x10, 0xC0, 0x2C, 0x0A, 0x80, 0xB5, 0x8C, 0x48, 0x01, 0xC0, 0x00, 0x91, 0x03, 0xC0, 0x42, 0x74, 0x01, 0xC0, 0x94, 0x90, 0x20, 0xB7, 0x8C, 0x41,
+ 0x80, 0xB7, 0x2D, 0x45, 0x00, 0xC1, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x84, 0x91, 0x20, 0xB7, 0x0C, 0x57, 0x3B, 0xC0, 0x7A, 0x0A, 0x04, 0xC0, 0x04, 0x0A, 0x80, 0xB5, 0x2D, 0x40,
+ 0x80, 0xB5, 0xAD, 0x40, 0x80, 0xB7, 0x8C, 0x48, 0xFF, 0xCF, 0x78, 0x0A, 0x1C, 0xC0, 0x3E, 0x75, 0x00, 0xC0, 0x32, 0x91, 0x20, 0xB7, 0x0C, 0x57, 0x80, 0xB7, 0xAD, 0x40, 0x08, 0x3A,
+ 0x80, 0xB5, 0xAD, 0x40, 0xB4, 0xFF, 0xDA, 0x99, 0x8A, 0x0D, 0xB4, 0xFF, 0x5F, 0x98, 0x82, 0x0D, 0xB4, 0xFF, 0x5C, 0x98, 0x54, 0xC0, 0x99, 0x98, 0x80, 0xB7, 0x8C, 0x41, 0x20, 0xB7,
+ 0x0C, 0x45, 0x20, 0xB7, 0x94, 0x47, 0x02, 0x85, 0x09, 0xC2, 0xBE, 0x0D, 0x04, 0xC1, 0xBC, 0x0D, 0x08, 0xF2, 0x03, 0xA1, 0x40, 0xB5, 0xBD, 0x46, 0x71, 0xD3, 0x18, 0x0E, 0x91, 0xD3,
+ 0x90, 0x0C, 0x08, 0xF2, 0x03, 0xA1, 0xB0, 0xC0, 0x42, 0x85, 0x40, 0xB5, 0x3D, 0x40, 0x91, 0xD3, 0x18, 0x0E, 0xB1, 0xD3, 0x90, 0x0C, 0xA0, 0xB7, 0x8C, 0x46, 0x88, 0xC0, 0x42, 0x85,
+ 0x08, 0xF2, 0x03, 0xA1, 0x04, 0xC0, 0x42, 0x85, 0x40, 0xB5, 0x3D, 0x40, 0x0A, 0xC0, 0x40, 0x85, 0x40, 0xB5, 0x5D, 0x40, 0x7F, 0x85, 0x08, 0xF2, 0x2F, 0xA1, 0xB4, 0xFF, 0x0F, 0x9A,
+ 0xF1, 0xC1, 0x02, 0x0A, 0xF0, 0xC0, 0x00, 0x0A, 0x08, 0xF2, 0x39, 0xA2, 0x20, 0xB7, 0x8C, 0x48, 0x01, 0xC0, 0x06, 0x0A, 0x24, 0x0A, 0x48, 0x70, 0x00, 0xC0, 0x02, 0x91, 0x86, 0x0D,
+ 0x82, 0x09, 0x02, 0x0D, 0x06, 0x09, 0xB4, 0xFF, 0x34, 0x9A, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x20, 0xB7, 0x0C, 0x4A, 0x40, 0xB7,
+ 0x04, 0x59, 0x84, 0x08, 0xBC, 0x28, 0x73, 0xD1, 0x11, 0x69, 0x2D, 0x9E, 0x30, 0xC0, 0x4D, 0xAA, 0x40, 0x2A, 0x00, 0x75, 0x54, 0x9D, 0x00, 0xC0, 0x22, 0x92, 0x54, 0xC0, 0x37, 0x99,
+ 0x80, 0xB7, 0x0C, 0x4A, 0x04, 0x0A, 0x3C, 0x2A, 0x73, 0xD1, 0x41, 0x69, 0x53, 0x9D, 0x50, 0xC2, 0x85, 0xA8, 0xC0, 0x28, 0x40, 0x74, 0xFF, 0xFF, 0x64, 0x92, 0x9F, 0xB7, 0x6E, 0x7F,
+ 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x20, 0x84, 0x80, 0xB7, 0x0C, 0x4A, 0xA0, 0xB7, 0x0C, 0x59, 0x73, 0xD1, 0x41, 0x69, 0x40, 0xE3, 0x23, 0x81, 0x87, 0x06,
+ 0x5F, 0xB5, 0x64, 0x7F, 0xF4, 0xFF, 0xCD, 0x9B, 0x40, 0xB7, 0x8C, 0x43, 0x71, 0xC0, 0xCE, 0x9C, 0x10, 0xDA, 0xAD, 0xA8, 0x5F, 0xB7, 0x64, 0x7F, 0x40, 0xD8, 0xC1, 0xA0, 0x10, 0xDA,
+ 0x25, 0xAA, 0x00, 0xD8, 0x45, 0xA2, 0x10, 0xDA, 0xA9, 0xA8, 0x40, 0xF0, 0xDD, 0xA0, 0x10, 0xF2, 0x29, 0xAA, 0x00, 0xF0, 0x59, 0xA2, 0x10, 0xD2, 0xA1, 0xA8, 0x58, 0x74, 0x00, 0xC0,
+ 0xF4, 0x91, 0x10, 0xF2, 0x2D, 0xAA, 0x50, 0xD2, 0xB1, 0xA8, 0xF0, 0xCF, 0x01, 0x2A, 0x42, 0x32, 0x00, 0xF0, 0x45, 0xA2, 0x10, 0xF2, 0xB1, 0xA8, 0x00, 0xC0, 0xE0, 0x92, 0xA3, 0xCB,
+ 0xBA, 0x08, 0xBA, 0xC8, 0x8C, 0x08, 0x10, 0xF3, 0x23, 0x8A, 0x43, 0x62, 0x00, 0xC2, 0x0F, 0x5A, 0x04, 0x1A, 0x3C, 0x2A, 0x73, 0xD1, 0x41, 0x69, 0x20, 0xE3, 0xA3, 0x80, 0x80, 0xB7,
+ 0xCD, 0x40, 0x00, 0xF0, 0x45, 0xA2, 0x20, 0xB7, 0x4D, 0x41, 0x00, 0xF0, 0xC9, 0xA0, 0x10, 0xD2, 0x25, 0xAA, 0x10, 0xC0, 0x02, 0x75, 0x06, 0x85, 0x00, 0xC0, 0x64, 0x90, 0x0A, 0x85,
+ 0x00, 0xD0, 0x43, 0xA1, 0x20, 0xB7, 0x14, 0x4B, 0x00, 0xF0, 0xC5, 0xA8, 0x02, 0x85, 0x4B, 0x9E, 0x00, 0xD0, 0x41, 0xAA, 0x00, 0xF0, 0x5F, 0xA1, 0x40, 0xF0, 0x47, 0xA1, 0x40, 0xF0,
+ 0x4B, 0xA1, 0x40, 0xD8, 0x47, 0xA1, 0xC2, 0x70, 0x40, 0x3A, 0x00, 0xD0, 0x41, 0xA2, 0x00, 0xC0, 0x02, 0x91, 0x40, 0xF0, 0x5D, 0xAA, 0x04, 0xC0, 0x00, 0x3A, 0x40, 0xF0, 0x5D, 0xA2,
+ 0x20, 0xB7, 0x8C, 0x4B, 0x00, 0xF0, 0x45, 0xAA, 0x48, 0x70, 0x00, 0xC0, 0x02, 0x91, 0x40, 0xF0, 0x5D, 0xAA, 0x01, 0xC0, 0x08, 0x3A, 0x40, 0xF0, 0x5D, 0xA2, 0x00, 0xF0, 0x49, 0xAA,
+ 0x00, 0xCC, 0x00, 0x7D, 0x00, 0xC0, 0x04, 0x91, 0x40, 0xF0, 0x5D, 0xAA, 0x40, 0xC0, 0x00, 0x3A, 0x40, 0xF0, 0x5D, 0xA2, 0x00, 0xF0, 0xC9, 0xA8, 0x03, 0x02, 0x01, 0xC0, 0x3C, 0x2A,
+ 0x01, 0xC0, 0x04, 0x75, 0x00, 0xC0, 0x84, 0x93, 0x00, 0xD0, 0x41, 0xAA, 0x08, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0xC2, 0x92, 0x40, 0xF0, 0x5D, 0xAA, 0x40, 0xC0, 0x00, 0x2A, 0x00, 0x75,
+ 0x00, 0xC0, 0xE2, 0x91, 0x40, 0xF0, 0x5D, 0xAA, 0x04, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x24, 0x91, 0x40, 0xF0, 0x5D, 0xAA, 0x04, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x01, 0xC0, 0x44, 0x90,
+ 0x01, 0xC0, 0xBC, 0x28, 0x01, 0xC0, 0x42, 0x74, 0x01, 0xC0, 0x44, 0x90, 0x00, 0xD0, 0x41, 0xAA, 0x08, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x82, 0x93, 0x40, 0xF0, 0x5D, 0xAA, 0x40, 0xC0,
+ 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0xA2, 0x92, 0x40, 0xF0, 0x5D, 0xAA, 0x04, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0xE4, 0x91, 0x40, 0xF0, 0x5D, 0xAA, 0x04, 0xC0, 0x00, 0x2A, 0x00, 0x75,
+ 0x00, 0xC0, 0x02, 0x91, 0x40, 0xF0, 0x5D, 0xAA, 0x20, 0xC0, 0x00, 0x3A, 0x40, 0xF0, 0x5D, 0xA2, 0x00, 0xD0, 0x41, 0xAA, 0x08, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0xA2, 0x92, 0x00, 0xD8,
+ 0x55, 0xAA, 0x3C, 0x2A, 0x08, 0x75, 0x00, 0xC0, 0xE4, 0x91, 0x40, 0xF0, 0x5D, 0xAA, 0x04, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x02, 0x91, 0x40, 0xF0, 0x5D, 0xAA, 0x20, 0xC0,
+ 0x00, 0x3A, 0x40, 0xF0, 0x5D, 0xA2, 0x71, 0xC0, 0xCE, 0x9C, 0x5F, 0xB5, 0x64, 0x7F, 0xB4, 0xFF, 0x48, 0x9B, 0x80, 0xB7, 0x0C, 0x57, 0x5F, 0xB7, 0x64, 0x7F, 0x20, 0xB7, 0x94, 0x46,
+ 0x08, 0xF2, 0x85, 0xA8, 0xCC, 0x9D, 0x82, 0x09, 0x20, 0xB5, 0x4D, 0x44, 0x5F, 0xB5, 0x64, 0x7F, 0x34, 0xC0, 0x2E, 0x9B, 0x5F, 0xB7, 0x64, 0x7F, 0x00, 0xD0, 0x41, 0xAA, 0x12, 0xF0,
+ 0xC4, 0x2A, 0x00, 0xC0, 0x22, 0x91, 0xCC, 0x9D, 0xD4, 0xFF, 0x9F, 0x99, 0x14, 0xC0, 0xFC, 0x99, 0x02, 0xC0, 0x40, 0x90, 0x40, 0xF0, 0x5D, 0xAA, 0x10, 0x2A, 0x00, 0x75, 0x00, 0xC0,
+ 0x02, 0x91, 0x40, 0xF0, 0x5D, 0xAA, 0x08, 0xC0, 0x00, 0x3A, 0x40, 0xF0, 0x5D, 0xA2, 0xA3, 0xCB, 0xBA, 0x08, 0xBA, 0xC8, 0x8C, 0x08, 0x10, 0xF3, 0x23, 0x8A, 0x43, 0x62, 0x00, 0xC2,
+ 0x0F, 0x5A, 0x04, 0x1A, 0x3C, 0x2A, 0x73, 0xD1, 0x41, 0x69, 0x00, 0xD8, 0xD6, 0xA8, 0x10, 0xF3, 0x23, 0x80, 0x08, 0xDA, 0x95, 0xA8, 0xBC, 0x2C, 0x4C, 0x9E, 0xBC, 0x28, 0x02, 0x71,
+ 0x00, 0xC0, 0xC2, 0x92, 0xCC, 0x9D, 0x01, 0xC1, 0x82, 0x09, 0x5F, 0xB5, 0x64, 0x7F, 0xB4, 0xFF, 0x6F, 0x9B, 0x69, 0x9E, 0x71, 0xC0, 0xCD, 0x9C, 0x5F, 0xB7, 0x64, 0x7F, 0x40, 0xF0,
+ 0x5D, 0xAA, 0x41, 0xC0, 0x00, 0x3A, 0x40, 0xF0, 0x5D, 0xA2, 0x71, 0xC0, 0xCD, 0x9C, 0xCC, 0x9D, 0x01, 0xC2, 0x82, 0x09, 0x5F, 0xB5, 0x64, 0x7F, 0xB4, 0xFF, 0x5B, 0x9B, 0x5F, 0xB7,
+ 0x64, 0x7F, 0x80, 0xB7, 0x0C, 0x4A, 0x00, 0xF0, 0xC5, 0xA8, 0x04, 0x0A, 0x3C, 0x2A, 0x80, 0xB5, 0x0C, 0x4A, 0x20, 0xB5, 0x0C, 0x4B, 0x20, 0xB5, 0x8C, 0x4B, 0x9F, 0xB7, 0xEE, 0x7E,
+ 0xBF, 0xB7, 0x6E, 0x7F, 0x60, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x20, 0xB7, 0x0C, 0x4A, 0x20, 0xB7, 0x14, 0x59, 0x87, 0x06, 0x73, 0xD1, 0x11, 0x69, 0x50, 0xD2, 0x31, 0xAA, 0x10, 0xF2,
+ 0xAB, 0x80, 0x08, 0xF2, 0x25, 0xA2, 0xF4, 0xFF, 0x64, 0x9A, 0x40, 0xB7, 0x8C, 0x43, 0x71, 0xC0, 0xCE, 0x9C, 0x10, 0xD2, 0xA5, 0xA8, 0x10, 0xC0, 0x44, 0x74, 0x22, 0x85, 0x00, 0xC0,
+ 0x64, 0x90, 0x12, 0x85, 0x08, 0xD2, 0x23, 0xA1, 0x08, 0xD2, 0x21, 0xAA, 0x40, 0x3A, 0x08, 0xD2, 0x21, 0xA2, 0x10, 0xDA, 0xA5, 0xA8, 0x08, 0xDA, 0xA5, 0xA0, 0x10, 0xDA, 0xAA, 0xA8,
+ 0x48, 0xF2, 0xBE, 0xA0, 0x10, 0xF2, 0x2D, 0xAA, 0x50, 0xD2, 0xB1, 0xA8, 0xF0, 0xCF, 0x01, 0x2A, 0x42, 0x32, 0x08, 0xF2, 0x25, 0xA2, 0x10, 0xF2, 0xA9, 0xA8, 0x08, 0xF2, 0xA9, 0xA0,
+ 0x50, 0xDA, 0x25, 0xAA, 0x48, 0xDA, 0x29, 0xA2, 0x50, 0xDA, 0xA1, 0xA8, 0x48, 0xDA, 0xAD, 0xA0, 0x10, 0xF2, 0x35, 0xAA, 0x08, 0xF2, 0x39, 0xA2, 0x10, 0xF2, 0xB9, 0xA8, 0x08, 0xF2,
+ 0xBD, 0xA0, 0x10, 0xF2, 0x3D, 0xAA, 0x08, 0xF2, 0x31, 0xA2, 0x50, 0xF2, 0xA1, 0xA8, 0x48, 0xF2, 0xB1, 0xA0, 0x50, 0xF2, 0x25, 0xAA, 0x48, 0xF2, 0x25, 0xA2, 0x50, 0xF2, 0xA9, 0xA8,
+ 0x48, 0xF2, 0xA9, 0xA0, 0x50, 0xF2, 0xAE, 0xA8, 0x48, 0xF2, 0xAE, 0xA0, 0x10, 0xD2, 0x39, 0xAA, 0x91, 0xD0, 0xD0, 0x08, 0x0C, 0x2A, 0x80, 0xB5, 0x29, 0x40, 0x20, 0xB7, 0x14, 0x4B,
+ 0x08, 0xF2, 0x25, 0xAA, 0x49, 0x9E, 0x48, 0x70, 0x00, 0xC0, 0x02, 0x91, 0x48, 0xF2, 0x3D, 0xAA, 0x04, 0xC0, 0x00, 0x3A, 0x48, 0xF2, 0x3D, 0xA2, 0x71, 0xC0, 0xCE, 0x9C, 0xB4, 0xFF,
+ 0x60, 0x9A, 0x20, 0xB7, 0x0C, 0x57, 0x20, 0xB7, 0x94, 0x46, 0x80, 0xB7, 0xAD, 0x40, 0xAB, 0x9E, 0x01, 0xC8, 0x82, 0x09, 0x80, 0xB5, 0x4D, 0x44, 0xB4, 0xFF, 0xC5, 0x9A, 0x08, 0xF2,
+ 0xA5, 0xA8, 0x80, 0xB7, 0x0C, 0x4A, 0x20, 0xB5, 0x0C, 0x4B, 0x04, 0x0A, 0x3C, 0x2A, 0x80, 0xB5, 0x0C, 0x4A, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C,
+ 0x05, 0xA6, 0x5D, 0x9E, 0x9D, 0x9E, 0x0E, 0xC0, 0xFC, 0x2A, 0x14, 0xC0, 0x6D, 0x99, 0x08, 0xC0, 0x84, 0x1A, 0x46, 0x75, 0xA6, 0xD2, 0x0C, 0x59, 0x40, 0x85, 0x5A, 0xE0, 0x44, 0x80,
+ 0x00, 0xC0, 0x40, 0x92, 0x00, 0xC0, 0x00, 0x91, 0x00, 0xC0, 0x60, 0x91, 0x00, 0xC0, 0x20, 0x91, 0x00, 0xC0, 0x40, 0x90, 0x8B, 0x05, 0xF4, 0xFF, 0xEC, 0x99, 0x00, 0xC0, 0xA0, 0x90,
+ 0x8B, 0x05, 0xF4, 0xFF, 0x4F, 0x9B, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x80, 0xB7, 0x88, 0x44, 0x1C, 0xC0, 0x3E, 0x7D, 0x5B, 0x9E, 0x00, 0xC0,
+ 0x02, 0x91, 0x09, 0xC8, 0xC2, 0x0D, 0x24, 0xC2, 0xC0, 0x0D, 0x36, 0xC0, 0x00, 0x91, 0x9B, 0x9E, 0xC3, 0xFF, 0xC0, 0x93, 0x0D, 0xA6, 0x80, 0xB7, 0x8C, 0x49, 0x00, 0x75, 0x5D, 0x9E,
+ 0x00, 0xC0, 0x22, 0x91, 0x34, 0xC0, 0xEA, 0x9A, 0x80, 0xB7, 0x8C, 0x49, 0x00, 0x75, 0xFF, 0xFF, 0x64, 0x93, 0x01, 0xC9, 0x80, 0x9C, 0x88, 0xF2, 0x29, 0xA2, 0xA0, 0xB5, 0x8C, 0x49,
+ 0xAB, 0x9E, 0x86, 0x09, 0x34, 0xC0, 0xEA, 0x99, 0x02, 0x85, 0x73, 0xC0, 0xCE, 0x9C, 0x48, 0xF2, 0x3D, 0xAA, 0x03, 0xC0, 0x00, 0x3A, 0x48, 0xF2, 0x3D, 0xA2, 0x73, 0xC0, 0xCE, 0x9C,
+ 0x48, 0xF2, 0x3D, 0xAA, 0x04, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x22, 0x92, 0x20, 0xB7, 0x94, 0x46, 0x20, 0xB7, 0x4D, 0x40, 0xFD, 0xCF, 0xFE, 0x28, 0x03, 0x02, 0x03, 0xC0,
+ 0x00, 0x3A, 0x80, 0xB5, 0x4D, 0x40, 0x40, 0xB7, 0x4D, 0x40, 0x20, 0xB5, 0x4D, 0x40, 0xC0, 0xB7, 0x0C, 0x45, 0x02, 0x85, 0x08, 0xF2, 0x57, 0xA1, 0x08, 0xD2, 0x21, 0xAA, 0x12, 0xF0,
+ 0xC2, 0x2A, 0x00, 0xC0, 0xE2, 0x90, 0xAB, 0x9E, 0xF4, 0xFF, 0xAB, 0x9B, 0x02, 0xC0, 0x60, 0x92, 0x48, 0xF2, 0x3D, 0xAA, 0x04, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0xA2, 0x93,
+ 0x80, 0xB7, 0x0C, 0x47, 0x12, 0xD2, 0xC0, 0x08, 0x42, 0x85, 0x40, 0xB5, 0x5D, 0x40, 0x92, 0xD2, 0xC0, 0x08, 0x51, 0xD2, 0xC0, 0x08, 0x40, 0xB5, 0x3D, 0x40, 0x40, 0xB5, 0x5D, 0x40,
+ 0x12, 0xD3, 0xC0, 0x08, 0xD1, 0xD2, 0xC0, 0x08, 0x40, 0xB5, 0x3D, 0x40, 0x0C, 0xC0, 0x40, 0x0A, 0x40, 0xB5, 0x5D, 0x40, 0x08, 0xF2, 0x03, 0xA1, 0x48, 0xF2, 0x3D, 0xAA, 0x04, 0xC0,
+ 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x42, 0x92, 0x80, 0xB7, 0x8C, 0x47, 0x2C, 0xC0, 0x60, 0x0A, 0x29, 0xF2, 0x86, 0xA2, 0x29, 0xF2, 0x86, 0xA2, 0x29, 0xF2, 0x86, 0xA2, 0x29, 0xF2,
+ 0x86, 0xA2, 0x29, 0xF2, 0x8E, 0xA2, 0x08, 0xF2, 0x82, 0xA2, 0x14, 0xC0, 0x71, 0x98, 0x08, 0xD2, 0x21, 0xAA, 0x08, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x82, 0x90, 0x48, 0xF2, 0xD6, 0xA2,
+ 0x20, 0xB7, 0x94, 0x47, 0x20, 0xB7, 0x8C, 0x46, 0x80, 0xB7, 0xAD, 0x45, 0x40, 0x2A, 0x00, 0x75, 0xFF, 0xFF, 0x82, 0x93, 0x71, 0xD2, 0x10, 0x0E, 0x08, 0xF2, 0x81, 0xA8, 0x02, 0x85,
+ 0x73, 0xC0, 0xCE, 0x9C, 0x48, 0xF2, 0x3D, 0xAA, 0x05, 0xC0, 0x00, 0x3A, 0x48, 0xF2, 0x3D, 0xA2, 0x73, 0xC0, 0xCE, 0x9C, 0x06, 0x08, 0x9F, 0xB7, 0xEE, 0x7E, 0xBF, 0xB7, 0x6E, 0x7F,
+ 0xDF, 0xB7, 0xEE, 0x7F, 0x60, 0x8C, 0x22, 0x9C, 0x39, 0xF8, 0x05, 0xA2, 0x20, 0xB7, 0x0C, 0x59, 0x89, 0x9E, 0x03, 0x01, 0x52, 0xC0, 0xA0, 0x0C, 0x08, 0xD0, 0x41, 0xAA, 0x40, 0x2A,
+ 0x00, 0x75, 0x04, 0xC0, 0xE0, 0x08, 0x00, 0xC0, 0xC2, 0x90, 0x06, 0x08, 0xF8, 0xF9, 0x1D, 0xAA, 0x22, 0x9C, 0x4C, 0x9E, 0x48, 0x70, 0x04, 0xC0, 0x60, 0x09, 0xFF, 0xFF, 0x14, 0x92,
+ 0x80, 0xB7, 0x0C, 0x49, 0x02, 0x75, 0x00, 0xC0, 0x84, 0x91, 0x80, 0xB7, 0x0C, 0x57, 0x20, 0xB7, 0x94, 0x46, 0x08, 0xF2, 0x81, 0xA8, 0x20, 0xB5, 0x4D, 0x44, 0x14, 0xC0, 0x87, 0x98,
+ 0x02, 0x08, 0xF8, 0xF9, 0x1D, 0xAA, 0x22, 0x9C, 0x40, 0xB7, 0x8C, 0x46, 0x02, 0x85, 0xC8, 0xF0, 0x4B, 0xA1, 0x80, 0xB7, 0x0C, 0x4C, 0x20, 0xB7, 0x94, 0x41, 0xC8, 0xF0, 0x4D, 0xA2,
+ 0x20, 0xB7, 0x4D, 0x45, 0xA0, 0x28, 0x40, 0x74, 0x00, 0xC0, 0xC4, 0x90, 0x01, 0xC0, 0x06, 0x85, 0x10, 0xC0, 0x5C, 0x85, 0xC8, 0xF0, 0x47, 0xA1, 0x22, 0x9C, 0x40, 0xB7, 0x8C, 0x46,
+ 0x02, 0x85, 0xC8, 0xF0, 0x57, 0xA1, 0x80, 0xB7, 0x8C, 0x4C, 0x20, 0xB7, 0x94, 0x41, 0xC8, 0xF0, 0x59, 0xA2, 0x20, 0xB7, 0x4D, 0x45, 0xA0, 0x28, 0x40, 0x74, 0x00, 0xC0, 0xC4, 0x90,
+ 0x01, 0xC0, 0x06, 0x85, 0x1C, 0xC0, 0x5C, 0x85, 0xC8, 0xF0, 0x53, 0xA1, 0x22, 0x9C, 0x80, 0xB7, 0x8C, 0x4E, 0x00, 0x75, 0x00, 0xC0, 0xC2, 0x91, 0x80, 0xB7, 0x8C, 0x4E, 0x04, 0x1A,
+ 0x80, 0xB5, 0x8C, 0x4E, 0x20, 0xB7, 0x8C, 0x4E, 0x40, 0x74, 0x00, 0xC0, 0x84, 0x90, 0x06, 0x08, 0x22, 0x9C, 0x80, 0xB7, 0x0C, 0x4F, 0x00, 0x75, 0x00, 0xC0, 0xC2, 0x91, 0x80, 0xB7,
+ 0x0C, 0x4F, 0x04, 0x1A, 0x80, 0xB5, 0x0C, 0x4F, 0x20, 0xB7, 0x0C, 0x4F, 0x40, 0x74, 0x00, 0xC0, 0x84, 0x90, 0x12, 0x08, 0x22, 0x9C, 0x80, 0xB7, 0x8C, 0x4F, 0x10, 0xCB, 0x81, 0x9C,
+ 0x02, 0x08, 0x22, 0x9C, 0x02, 0x85, 0x73, 0xC0, 0xCE, 0x9C, 0x10, 0xF0, 0xE1, 0xA1, 0x73, 0xC0, 0xCE, 0x9C, 0x22, 0x9C, 0x39, 0xF8, 0x05, 0xA2, 0x80, 0xB7, 0x8C, 0x41, 0x02, 0x85,
+ 0x08, 0xF2, 0x03, 0xA1, 0x04, 0x85, 0x40, 0xB5, 0x1C, 0x49, 0x80, 0xB7, 0x8C, 0x4F, 0x10, 0xCB, 0x81, 0x9C, 0x60, 0xB7, 0x94, 0x58, 0x60, 0xB7, 0x0C, 0x4E, 0xF4, 0xFF, 0xE6, 0x9B,
+ 0x20, 0xB7, 0x8C, 0x44, 0x20, 0xC0, 0xA0, 0x08, 0x80, 0xB7, 0x2D, 0x40, 0x01, 0xC0, 0x04, 0x3A, 0x80, 0xB5, 0x2D, 0x40, 0xF8, 0xF9, 0x1D, 0xAA, 0x22, 0x9C, 0x20, 0xB7, 0x8C, 0x41,
+ 0x06, 0x85, 0x40, 0xB5, 0x3D, 0x40, 0x04, 0x8D, 0x40, 0xB5, 0x1C, 0x4F, 0x80, 0xB7, 0x2D, 0x45, 0x00, 0xC4, 0x00, 0x2A, 0x00, 0x75, 0x40, 0xB5, 0x1C, 0x49, 0x40, 0xB3, 0xA4, 0x48,
+ 0x80, 0xB7, 0x8C, 0x44, 0x20, 0xC0, 0x20, 0x0A, 0x08, 0xF2, 0x81, 0xA8, 0x08, 0xF2, 0x81, 0xA0, 0x22, 0x9C, 0x20, 0xB7, 0x14, 0x48, 0x5A, 0x9E, 0x20, 0xB7, 0x8C, 0x46, 0x80, 0xB7,
+ 0x2D, 0x45, 0x0A, 0x75, 0xFF, 0xFF, 0xB4, 0x93, 0x48, 0xF0, 0x45, 0xAA, 0x00, 0xCF, 0x01, 0x2A, 0x80, 0xB5, 0x4D, 0x45, 0x20, 0xB7, 0x14, 0x48, 0x48, 0xF0, 0x49, 0xAA, 0x00, 0xCF,
+ 0x01, 0x2A, 0x80, 0xB5, 0xCD, 0x45, 0x48, 0xF0, 0xC5, 0xA8, 0x0E, 0xC0, 0xFC, 0x28, 0x20, 0xB5, 0x4D, 0x46, 0x48, 0xF0, 0x4D, 0xAA, 0x80, 0xB5, 0xCD, 0x47, 0x08, 0xF0, 0xC9, 0xA8,
+ 0x20, 0xB5, 0x4D, 0x41, 0x40, 0xC0, 0x80, 0x0C, 0x08, 0xF0, 0x5D, 0xAA, 0x80, 0xB5, 0x4D, 0x40, 0x22, 0x9C, 0x20, 0xB7, 0x8C, 0x41, 0x80, 0xB7, 0x2D, 0x45, 0x01, 0xC0, 0x08, 0x2A,
+ 0x00, 0x75, 0x5B, 0x9E, 0x00, 0xC0, 0x04, 0x91, 0x09, 0xC8, 0xC2, 0x0D, 0xA6, 0xC7, 0xE0, 0x0D, 0x28, 0xC0, 0x40, 0x92, 0x80, 0xB7, 0x8C, 0x49, 0x00, 0x75, 0x00, 0xC0, 0x02, 0x91,
+ 0x09, 0xC8, 0xC2, 0x0D, 0x3C, 0xC6, 0xB0, 0x0D, 0x28, 0xC0, 0xE0, 0x90, 0x9B, 0x9E, 0x38, 0xC0, 0x80, 0x93, 0x05, 0xA6, 0x20, 0xB7, 0x88, 0x44, 0x87, 0x06, 0x6C, 0x9E, 0x01, 0xC2,
+ 0x00, 0x2A, 0x00, 0x75, 0x84, 0x08, 0x20, 0xB5, 0x88, 0x44, 0x00, 0xC0, 0x42, 0x91, 0x6C, 0x9E, 0x01, 0xC0, 0x5C, 0x7F, 0xFF, 0xCD, 0x7E, 0x2A, 0xA5, 0x9E, 0x35, 0xB3, 0x42, 0x48,
+ 0x09, 0xC2, 0x06, 0x0A, 0x02, 0xC1, 0x38, 0x0A, 0x69, 0x9E, 0x48, 0x78, 0x00, 0xC0, 0x82, 0x92, 0xFE, 0xCE, 0x49, 0x0A, 0x48, 0x78, 0x00, 0xC0, 0x02, 0x91, 0x6B, 0x9E, 0x9A, 0x0D,
+ 0x14, 0xC0, 0x8D, 0x9B, 0x00, 0xC0, 0xC0, 0x90, 0x6B, 0x9E, 0x96, 0x0D, 0x14, 0xC0, 0x87, 0x9B, 0xF9, 0x2E, 0x00, 0xC0, 0x00, 0x91, 0x60, 0xB7, 0x94, 0x58, 0x60, 0xB7, 0x0C, 0x4E,
+ 0xF4, 0xFF, 0x3F, 0x9B, 0x11, 0xD0, 0x52, 0x2E, 0x00, 0x75, 0x00, 0xC0, 0x82, 0x90, 0x14, 0xC0, 0x09, 0x99, 0x11, 0xD1, 0x50, 0x2E, 0x00, 0x75, 0x00, 0xC0, 0xA2, 0x90, 0x8B, 0x05,
+ 0x14, 0xC0, 0xA0, 0x99, 0x6C, 0x9E, 0x01, 0xC0, 0x10, 0x2A, 0x00, 0x75, 0x8B, 0x04, 0x01, 0xC0, 0xA8, 0x2C, 0x06, 0xC0, 0x02, 0x91, 0xA0, 0xB7, 0x8C, 0x49, 0x40, 0x75, 0x00, 0xC0,
+ 0x64, 0x90, 0x00, 0x9F, 0x80, 0xB7, 0x0C, 0x45, 0x88, 0xF2, 0x8A, 0xA8, 0x48, 0xF2, 0xBD, 0xA8, 0x02, 0xC0, 0x80, 0x28, 0x40, 0x74, 0x08, 0xDA, 0xBE, 0xA0, 0x00, 0xC0, 0xA2, 0x90,
+ 0x8B, 0x05, 0x14, 0xC0, 0xBB, 0x9A, 0x01, 0xC9, 0x80, 0x9C, 0x88, 0xF2, 0x2D, 0xA2, 0x48, 0xF2, 0xBD, 0xA8, 0x01, 0xC2, 0x80, 0x38, 0x48, 0xF2, 0xBD, 0xA0, 0x08, 0xD2, 0x21, 0xAA,
+ 0x10, 0x2A, 0x00, 0x75, 0x04, 0xC0, 0x64, 0x91, 0x40, 0xB7, 0x9C, 0x49, 0x40, 0xB7, 0x04, 0x59, 0xA3, 0xCB, 0x3A, 0x0A, 0xBA, 0xC8, 0x0C, 0x0A, 0x10, 0xE0, 0xA5, 0x88, 0x99, 0x60,
+ 0x8F, 0x58, 0x84, 0x08, 0xBC, 0x28, 0x73, 0xD1, 0x11, 0x69, 0x2D, 0x9E, 0x38, 0xC0, 0x4D, 0xAA, 0x40, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x64, 0x91, 0x48, 0xF2, 0xBD, 0xA8, 0x01, 0xC0,
+ 0x12, 0x0A, 0x08, 0xC0, 0x00, 0x0A, 0x48, 0x78, 0x01, 0xC0, 0xE2, 0x90, 0x58, 0xF0, 0x5D, 0xAA, 0x04, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x62, 0x91, 0x48, 0xF2, 0xBD, 0xA8,
+ 0x01, 0xC0, 0x12, 0x0A, 0x08, 0xC0, 0x00, 0x0A, 0x48, 0x78, 0x00, 0xC0, 0xE2, 0x92, 0x18, 0xD0, 0x41, 0xAA, 0x40, 0x2A, 0x00, 0x75, 0x01, 0xC0, 0xC2, 0x93, 0x18, 0xD0, 0x41, 0xAA,
+ 0x10, 0x2A, 0x00, 0x75, 0x01, 0xC0, 0x02, 0x93, 0x48, 0xF2, 0xBD, 0xA8, 0x01, 0xC0, 0x12, 0x0A, 0x08, 0xC0, 0x00, 0x0A, 0x48, 0x78, 0x01, 0xC0, 0xE4, 0x91, 0x48, 0xF2, 0x3D, 0xAA,
+ 0x08, 0xC0, 0x00, 0x3A, 0x48, 0xF2, 0x3D, 0xA2, 0xAB, 0x9E, 0xB4, 0xFF, 0x20, 0x99, 0x08, 0xDA, 0x35, 0xAA, 0x3C, 0x2A, 0x02, 0x75, 0x01, 0xC0, 0xE4, 0x92, 0x48, 0xF2, 0x3D, 0xAA,
+ 0x10, 0x2A, 0x00, 0x75, 0x01, 0xC0, 0x24, 0x92, 0x48, 0xF2, 0x3D, 0xAA, 0x40, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x01, 0xC0, 0x42, 0x91, 0x08, 0xD2, 0x21, 0xAA, 0x08, 0x2A, 0x00, 0x75,
+ 0x01, 0xC0, 0x82, 0x90, 0xAB, 0x9E, 0x34, 0xC0, 0xFC, 0x98, 0x48, 0xF2, 0x3D, 0xAA, 0x01, 0xC8, 0x00, 0x3A, 0x48, 0xF2, 0x3D, 0xA2, 0x00, 0xC0, 0x20, 0x93, 0x48, 0xF2, 0xBD, 0xA8,
+ 0x01, 0xC0, 0x12, 0x0A, 0x08, 0xC0, 0x00, 0x0A, 0x00, 0xE0, 0x18, 0x22, 0x00, 0xC0, 0xE4, 0x91, 0x20, 0xB7, 0x8C, 0x46, 0x80, 0xB5, 0x2D, 0x4E, 0x48, 0xF2, 0x3D, 0xAA, 0x11, 0xC0,
+ 0x00, 0x3A, 0x48, 0xF2, 0x3D, 0xA2, 0xAB, 0x9E, 0xB4, 0xFF, 0x0C, 0x98, 0x08, 0xD2, 0x21, 0xAA, 0x04, 0x2A, 0x00, 0x75, 0x8B, 0x04, 0x01, 0xC0, 0xA8, 0x2C, 0x00, 0xC0, 0x02, 0x92,
+ 0x20, 0xB7, 0x8C, 0x46, 0x80, 0xB7, 0xAD, 0x45, 0x40, 0x2A, 0x00, 0x75, 0xFF, 0xFF, 0x82, 0x93, 0x80, 0xB7, 0x8C, 0x47, 0x08, 0xC0, 0x60, 0x0A, 0x08, 0xF2, 0x81, 0xA8, 0x40, 0x76,
+ 0x01, 0xC0, 0x82, 0x90, 0xA0, 0xB7, 0x8C, 0x49, 0x40, 0x75, 0x00, 0xC0, 0x64, 0x90, 0x00, 0x9F, 0x80, 0xB7, 0x8C, 0x46, 0x20, 0xB7, 0x94, 0x45, 0x02, 0x85, 0xC8, 0xF2, 0x13, 0xA1,
+ 0x20, 0xB7, 0xCD, 0x42, 0x40, 0xB7, 0x1C, 0x50, 0x48, 0xF2, 0x3D, 0xAA, 0x10, 0xE2, 0xA3, 0x80, 0x02, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x20, 0xB5, 0x0C, 0x50, 0x00, 0xC0, 0xA2, 0x90,
+ 0x8B, 0x05, 0x14, 0xC0, 0xE9, 0x99, 0xAB, 0x9E, 0x94, 0xFF, 0xD0, 0x9B, 0x80, 0xB7, 0x88, 0x44, 0x04, 0x1A, 0x80, 0xB5, 0x88, 0x44, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F,
+ 0x40, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0xA0, 0xB7, 0x8C, 0x7A, 0x01, 0xC9, 0x80, 0x9C, 0x88, 0xF2, 0x25, 0xA2, 0x20, 0xB7, 0x8C, 0x47, 0x0A, 0xC0, 0xB0, 0x08, 0x20, 0xB7, 0x35, 0x40,
+ 0x48, 0xDA, 0x2D, 0xAA, 0xA2, 0xD0, 0xC1, 0x5C, 0x00, 0xC2, 0x40, 0x5A, 0x00, 0xC2, 0x41, 0x5A, 0x48, 0x70, 0x00, 0xC0, 0x02, 0x91, 0x48, 0xF2, 0x3D, 0xAA, 0x01, 0xC4, 0x00, 0x3A,
+ 0x48, 0xF2, 0x3D, 0xA2, 0x48, 0xDA, 0xA5, 0xA0, 0x48, 0xF2, 0x3D, 0xAA, 0x20, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x04, 0x93, 0x48, 0xDA, 0x29, 0xAA, 0x00, 0xC2, 0x40, 0x5A, 0x00, 0xC2,
+ 0x41, 0x5A, 0x48, 0x70, 0x00, 0xC0, 0xE4, 0x91, 0x48, 0xF2, 0x3D, 0xAA, 0x01, 0xC0, 0x10, 0x3A, 0x48, 0xF2, 0x3D, 0xA2, 0x48, 0xF2, 0xBD, 0xA8, 0x90, 0x38, 0x48, 0xF2, 0xBD, 0xA0,
+ 0x94, 0xFF, 0x69, 0x9B, 0x94, 0xFF, 0xD9, 0x9A, 0x80, 0xB7, 0x8C, 0x46, 0x02, 0x85, 0x86, 0x0D, 0xC8, 0xF2, 0x07, 0xA1, 0x94, 0xFF, 0xB0, 0x98, 0x94, 0xFF, 0xC5, 0x98, 0x94, 0xFF,
+ 0xA4, 0x98, 0x08, 0xD2, 0x21, 0xAA, 0x08, 0x2A, 0x00, 0x75, 0x02, 0xC0, 0xC2, 0x90, 0x08, 0xF2, 0x29, 0xAA, 0x01, 0xC0, 0x3C, 0x2A, 0x01, 0xC0, 0x04, 0x75, 0x00, 0xC0, 0x42, 0x91,
+ 0x08, 0xF2, 0x29, 0xAA, 0x01, 0xC0, 0x3C, 0x2A, 0x01, 0xC0, 0x08, 0x75, 0x01, 0xC0, 0xC4, 0x92, 0x40, 0xB7, 0x9C, 0x7A, 0x40, 0xB7, 0x04, 0x59, 0xA3, 0xCB, 0x3A, 0x0A, 0xBA, 0xC8,
+ 0x0C, 0x0A, 0x10, 0xE0, 0xA5, 0x88, 0x99, 0x60, 0x8F, 0x58, 0x84, 0x08, 0xBC, 0x28, 0x73, 0xD1, 0x11, 0x69, 0x2D, 0x9E, 0x38, 0xC0, 0x4D, 0xAA, 0x40, 0x2A, 0x00, 0x75, 0x00, 0xC0,
+ 0x22, 0x91, 0x58, 0xF0, 0x5D, 0xAA, 0x04, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x02, 0x93, 0x08, 0xF2, 0x29, 0xAA, 0x01, 0xC0, 0x3C, 0x2A, 0x01, 0xC0, 0x08, 0x75, 0x00, 0xC0,
+ 0x64, 0x91, 0x09, 0xC8, 0xC2, 0x0D, 0xB0, 0xC5, 0xB0, 0x0D, 0x8B, 0x01, 0x14, 0xC0, 0x34, 0x9B, 0x00, 0xC0, 0x80, 0x91, 0xAB, 0x9E, 0x34, 0xC0, 0xAD, 0x99, 0x00, 0xC0, 0xE0, 0x90,
+ 0x83, 0xB7, 0x08, 0x6C, 0x04, 0x1A, 0x83, 0xB5, 0x08, 0x6C, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x39, 0xF8, 0x05, 0xA2, 0x20, 0x84, 0x40, 0xB7,
+ 0x8C, 0x46, 0x85, 0x00, 0x80, 0xB7, 0xAD, 0x45, 0x40, 0x2A, 0x00, 0x75, 0xFF, 0xFF, 0x82, 0x93, 0x80, 0xB7, 0x8C, 0x47, 0x71, 0xD2, 0xC0, 0x08, 0x20, 0xB7, 0x35, 0x40, 0xA2, 0x9E,
+ 0x85, 0x00, 0x80, 0xB7, 0xAD, 0x45, 0x40, 0x2A, 0x00, 0x75, 0xFF, 0xFF, 0x82, 0x93, 0x71, 0xD2, 0x20, 0x0E, 0x08, 0xF2, 0x82, 0xA8, 0x85, 0x00, 0x80, 0xB7, 0xAD, 0x45, 0x40, 0x2A,
+ 0x00, 0x75, 0xFF, 0xFF, 0x82, 0x93, 0x71, 0xD2, 0x20, 0x0E, 0x08, 0xF2, 0x81, 0xA8, 0x85, 0x00, 0x80, 0xB7, 0xAD, 0x45, 0x40, 0x2A, 0x00, 0x75, 0xFF, 0xFF, 0x82, 0x93, 0x71, 0xD2,
+ 0x20, 0x0E, 0x08, 0xF2, 0x03, 0xA9, 0x01, 0xC2, 0x40, 0x76, 0x01, 0xC0, 0x02, 0x90, 0x00, 0xC0, 0x92, 0x91, 0x01, 0xC0, 0x44, 0x76, 0x04, 0xC0, 0xA2, 0x93, 0x01, 0xC0, 0x60, 0x76,
+ 0x01, 0xC0, 0x02, 0x90, 0x05, 0xC0, 0x60, 0x92, 0x01, 0xC8, 0x40, 0x76, 0x01, 0xC0, 0xE2, 0x90, 0x00, 0xC0, 0x12, 0x91, 0x01, 0xC4, 0x40, 0x76, 0x02, 0xC0, 0x02, 0x91, 0x05, 0xC0,
+ 0xE0, 0x90, 0x01, 0xD0, 0x40, 0x76, 0x01, 0xC0, 0xA2, 0x93, 0x05, 0xC0, 0x20, 0x90, 0x80, 0xB7, 0x8C, 0x49, 0x00, 0x75, 0x03, 0xC0, 0xE4, 0x92, 0xCF, 0x9D, 0x94, 0xFF, 0xAC, 0x98,
+ 0x04, 0xC0, 0xE0, 0x92, 0xCF, 0x9D, 0x94, 0xFF, 0x2C, 0x99, 0x20, 0xB7, 0x8C, 0x46, 0x80, 0xB7, 0xAD, 0x45, 0x40, 0x2A, 0x00, 0x75, 0xFF, 0xFF, 0x82, 0x93, 0x04, 0xC0, 0x80, 0x90,
+ 0x58, 0xF0, 0x5D, 0xAA, 0x20, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x42, 0x92, 0x18, 0xD8, 0x55, 0xAA, 0x3C, 0x2A, 0x04, 0x75, 0x00, 0xC0, 0xE4, 0x90, 0xCF, 0x9D, 0x34, 0xC0,
+ 0x5C, 0x99, 0x03, 0xC0, 0x00, 0x93, 0xCF, 0x9D, 0x14, 0xC0, 0xFE, 0x9B, 0x03, 0xC0, 0x60, 0x92, 0x85, 0x00, 0x80, 0xB7, 0xAD, 0x45, 0x40, 0x2A, 0x00, 0x75, 0xFF, 0xFF, 0x82, 0x93,
+ 0x71, 0xD2, 0x20, 0x0E, 0x03, 0xC0, 0xC0, 0x90, 0xCF, 0x9D, 0xF4, 0xFF, 0x70, 0x99, 0x03, 0xC0, 0x60, 0x90, 0x40, 0xB7, 0x0C, 0x59, 0xA3, 0xCB, 0xBA, 0x0C, 0xBA, 0xC8, 0x8C, 0x0C,
+ 0x49, 0x9E, 0x10, 0xF2, 0x25, 0x88, 0x43, 0x62, 0x58, 0xF0, 0xDD, 0xA8, 0x00, 0xC2, 0x0F, 0x5A, 0x04, 0x1A, 0x3C, 0x2A, 0x74, 0xD1, 0x41, 0x69, 0x84, 0x28, 0x40, 0x74, 0x10, 0xF2,
+ 0x25, 0x82, 0x00, 0xC0, 0x04, 0x93, 0x48, 0xF2, 0x9D, 0xA8, 0x01, 0xC0, 0x12, 0x0A, 0x08, 0xC0, 0x00, 0x0A, 0x48, 0x78, 0x00, 0xC0, 0xE2, 0x91, 0x58, 0xF0, 0x5D, 0xAA, 0x40, 0xC0,
+ 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x02, 0x91, 0x58, 0xF0, 0x5D, 0xAA, 0x20, 0xC0, 0x00, 0x3A, 0x58, 0xF0, 0x5D, 0xA2, 0x80, 0xB7, 0x8C, 0x49, 0x00, 0x75, 0x09, 0xC8, 0xC2, 0x0D,
+ 0x06, 0xC4, 0x80, 0x0D, 0x00, 0xC0, 0x64, 0x91, 0xCF, 0x9D, 0xD4, 0xFF, 0x91, 0x9B, 0x01, 0xC0, 0xE0, 0x90, 0x09, 0xC8, 0xC2, 0x0D, 0x30, 0xC1, 0xB0, 0x0D, 0x4F, 0x9D, 0x14, 0xC0,
+ 0x4B, 0x9A, 0x00, 0xC0, 0xC0, 0x93, 0xCF, 0x9D, 0x86, 0x09, 0x5F, 0xB5, 0x7C, 0x7F, 0x14, 0xC0, 0x80, 0x99, 0x5F, 0xB7, 0x7C, 0x7F, 0x58, 0xD8, 0xC6, 0xA9, 0x58, 0xD8, 0xCD, 0xA9,
+ 0x94, 0xFF, 0x1D, 0x9B, 0x20, 0xB7, 0x8C, 0x46, 0x80, 0xB7, 0xAD, 0x45, 0x40, 0x2A, 0x00, 0x75, 0xFF, 0xFF, 0x82, 0x93, 0x80, 0xB7, 0x8C, 0x47, 0x08, 0xC0, 0x60, 0x0A, 0x08, 0xF2,
+ 0x81, 0xA8, 0xF8, 0xF9, 0x19, 0xAA, 0x22, 0x9C, 0x05, 0xA6, 0x20, 0x84, 0x80, 0xB7, 0x0C, 0x4A, 0x11, 0xD0, 0xC2, 0x08, 0x31, 0xD0, 0x9E, 0x2A, 0x3C, 0x2A, 0x48, 0x71, 0x01, 0xC0,
+ 0x42, 0x92, 0x73, 0xD1, 0x51, 0x69, 0x40, 0xB7, 0x04, 0x59, 0x2E, 0x9E, 0x38, 0xC0, 0x41, 0xAA, 0x40, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0xA2, 0x93, 0x40, 0xF0, 0x5D, 0xAA, 0x02, 0xC0,
+ 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0xC2, 0x92, 0x22, 0x85, 0x5F, 0xB5, 0x78, 0x7C, 0x40, 0xF0, 0xDD, 0xA8, 0x32, 0xE0, 0x80, 0x8D, 0x00, 0xD8, 0x45, 0xAA, 0x0C, 0xC0, 0x16, 0x85,
+ 0x5F, 0xB5, 0xF8, 0x7C, 0x82, 0x09, 0x3F, 0xB5, 0xEC, 0x7F, 0x9F, 0xB5, 0xEA, 0x7E, 0x54, 0xFF, 0x84, 0x9B, 0x20, 0xB7, 0x0C, 0x4A, 0x11, 0xD0, 0x52, 0x0A, 0x31, 0xD0, 0xCE, 0x2A,
+ 0xBC, 0x28, 0x42, 0x71, 0xFE, 0xFF, 0x44, 0x92, 0x9F, 0xB7, 0xEE, 0x7E, 0xBF, 0xB7, 0x6E, 0x7F, 0x60, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x40, 0x84, 0x5D, 0x9E, 0x02, 0x85, 0x73, 0xC0,
+ 0xCE, 0x9C, 0x20, 0xB7, 0x8C, 0x46, 0x08, 0xC0, 0x80, 0x08, 0x80, 0xB7, 0x2D, 0x40, 0xAB, 0x9E, 0x41, 0x2A, 0x08, 0x3A, 0x80, 0xB5, 0x2D, 0x40, 0xF4, 0xFF, 0xAD, 0x9B, 0x20, 0xB7,
+ 0x14, 0x45, 0x42, 0x85, 0x5F, 0xB5, 0x78, 0x78, 0x0C, 0xC0, 0x1E, 0x85, 0x5F, 0xB5, 0xF8, 0x78, 0x52, 0xE0, 0x80, 0x8D, 0x80, 0xB7, 0x4D, 0x49, 0x20, 0xB7, 0x8C, 0x50, 0x86, 0x09,
+ 0xBF, 0xB5, 0x6C, 0x7F, 0x9F, 0xB5, 0x6A, 0x7F, 0x3F, 0xB5, 0xEC, 0x7E, 0x54, 0xFF, 0x49, 0x9B, 0x00, 0xC0, 0x00, 0x90, 0x9F, 0xB7, 0x6E, 0x7E, 0xBF, 0xB7, 0xEE, 0x7E, 0x02, 0xC0,
+ 0x00, 0x8C, 0x22, 0x9C, 0x20, 0xB7, 0x8C, 0x47, 0x80, 0xB7, 0xAD, 0x4D, 0x81, 0xC0, 0x00, 0x3A, 0x80, 0xB5, 0xAD, 0x4D, 0x22, 0x9C, 0x80, 0xB7, 0x0C, 0x43, 0x59, 0x9E, 0x08, 0x75,
+ 0x26, 0xD2, 0x0C, 0x59, 0x40, 0x85, 0x5A, 0xE0, 0x44, 0x80, 0x02, 0xC0, 0x80, 0x91, 0x00, 0xC0, 0x40, 0x91, 0x01, 0xC0, 0xC0, 0x90, 0x02, 0xC0, 0xC0, 0x90, 0x02, 0xC0, 0x80, 0x90,
+ 0x01, 0xC0, 0x60, 0x93, 0x11, 0xD0, 0x12, 0x1A, 0x0A, 0x75, 0x26, 0xD2, 0x0C, 0x59, 0x40, 0x85, 0x5A, 0xE0, 0x44, 0x80, 0x00, 0xC0, 0x80, 0x92, 0x00, 0xC0, 0xE0, 0x91, 0x01, 0xC0,
+ 0x20, 0x92, 0x01, 0xC0, 0xE0, 0x91, 0x00, 0xC0, 0xC0, 0x90, 0x00, 0xC0, 0xE0, 0x90, 0x01, 0xC0, 0x20, 0x91, 0x12, 0x85, 0x01, 0xC0, 0xE0, 0x90, 0x06, 0x85, 0x01, 0xC0, 0x80, 0x90,
+ 0x01, 0xC0, 0x20, 0x90, 0x11, 0xD0, 0x12, 0x1A, 0x0A, 0x75, 0x26, 0xD2, 0x0C, 0x59, 0x40, 0x85, 0x5A, 0xE0, 0x44, 0x80, 0x00, 0xC0, 0x20, 0x92, 0x00, 0xC0, 0xA0, 0x92, 0x00, 0xC0,
+ 0x60, 0x92, 0x00, 0xC0, 0x20, 0x92, 0x00, 0xC0, 0xC0, 0x90, 0x00, 0xC0, 0x00, 0x92, 0x00, 0xC0, 0x60, 0x91, 0x12, 0x85, 0x00, 0xC0, 0x20, 0x91, 0x00, 0xC0, 0xC0, 0x90, 0x4E, 0x74,
+ 0x06, 0x85, 0x00, 0xC0, 0x62, 0x90, 0x0A, 0x85, 0x40, 0xB5, 0x1C, 0x43, 0x00, 0xB7, 0x0C, 0x43, 0x22, 0x9C, 0x05, 0xA6, 0x80, 0xB7, 0x0C, 0x43, 0x20, 0xB7, 0x8C, 0x41, 0x5D, 0x9E,
+ 0x9D, 0x9E, 0x4A, 0x75, 0x80, 0xB5, 0x0C, 0x51, 0xA0, 0xB5, 0x2D, 0x41, 0x00, 0xC0, 0xC4, 0x93, 0x80, 0xB7, 0x8C, 0x7A, 0xA0, 0xB5, 0x94, 0x50, 0x48, 0xF2, 0x9D, 0xA8, 0x02, 0xC0,
+ 0x80, 0x38, 0x48, 0xF2, 0x9D, 0xA0, 0x02, 0xC0, 0x82, 0x0D, 0x74, 0xFF, 0x10, 0x9A, 0x00, 0xC1, 0xBE, 0x0D, 0x74, 0xFF, 0x16, 0x9A, 0x80, 0xB7, 0x8C, 0x46, 0x0A, 0x85, 0x43, 0xB5,
+ 0x18, 0x6C, 0x02, 0x85, 0xC8, 0xF2, 0x07, 0xA1, 0x00, 0xC0, 0x80, 0x92, 0x4C, 0x75, 0x00, 0xC0, 0x24, 0x92, 0x80, 0xB7, 0x8C, 0x50, 0x00, 0x75, 0x20, 0xB7, 0x8C, 0x49, 0x00, 0xC0,
+ 0x04, 0x91, 0x80, 0xB7, 0xAD, 0x47, 0x02, 0xC0, 0x00, 0x3A, 0x80, 0xB5, 0xAD, 0x47, 0xF4, 0xFF, 0x65, 0x9B, 0xAB, 0x9E, 0xF4, 0xFF, 0x6B, 0x9B, 0x80, 0xB7, 0x0C, 0x43, 0x08, 0x75,
+ 0x00, 0xC0, 0xA4, 0x92, 0x80, 0xB7, 0x8C, 0x49, 0x00, 0x75, 0x00, 0xC0, 0xA2, 0x91, 0x08, 0xD2, 0x01, 0xAA, 0x10, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0xE2, 0x90, 0x9E, 0x0D, 0xF4, 0xFF,
+ 0x58, 0x9B, 0x00, 0xC0, 0xA0, 0x90, 0xA2, 0x0D, 0xF4, 0xFF, 0x53, 0x9B, 0x80, 0xB7, 0x0C, 0x43, 0x04, 0x75, 0x00, 0xC0, 0x24, 0x93, 0xC0, 0xC1, 0x40, 0x7F, 0x00, 0xC0, 0x42, 0x92,
+ 0x20, 0xB7, 0x8C, 0x49, 0x40, 0x74, 0x00, 0xC0, 0xE4, 0x90, 0x20, 0xB7, 0x8C, 0x7A, 0x40, 0x74, 0x00, 0xC0, 0x02, 0x91, 0x80, 0xB7, 0xAD, 0x47, 0x02, 0xC0, 0x00, 0x3A, 0x80, 0xB5,
+ 0xAD, 0x47, 0x8B, 0x05, 0xF4, 0xFF, 0xFA, 0x9A, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x20, 0xB7, 0x8C, 0x46, 0x08, 0xC0, 0x80, 0x08, 0x80, 0xB7,
+ 0x2D, 0x40, 0x41, 0x2A, 0x20, 0x3A, 0x80, 0xB5, 0x2D, 0x40, 0x22, 0x9C, 0x80, 0xB7, 0x8C, 0x46, 0x20, 0xB7, 0x8C, 0x51, 0x08, 0xC0, 0x20, 0x0A, 0x08, 0xF2, 0x81, 0xA0, 0xFF, 0xFF,
+ 0xA0, 0x91, 0x05, 0xA6, 0x50, 0xF0, 0x7D, 0xAA, 0xB9, 0x9D, 0x52, 0xD0, 0x40, 0x28, 0xA0, 0xB7, 0x8C, 0x43, 0x71, 0xC1, 0xCD, 0x9C, 0x60, 0xB7, 0x84, 0x66, 0x60, 0xB7, 0x1C, 0x67,
+ 0xC8, 0x9D, 0xE7, 0x9D, 0x18, 0xC0, 0x49, 0xAA, 0x68, 0x9D, 0x10, 0xF0, 0xE6, 0xA8, 0x0E, 0xC0, 0x7C, 0x2A, 0x00, 0xC2, 0x08, 0x5A, 0x20, 0xE2, 0x85, 0xA8, 0x4C, 0x9E, 0x48, 0x70,
+ 0x6C, 0x9D, 0x02, 0xC0, 0x42, 0x91, 0x08, 0xF0, 0x61, 0xAA, 0x49, 0x9E, 0x48, 0x70, 0x02, 0x09, 0x82, 0x0C, 0x12, 0xB4, 0x42, 0x44, 0x01, 0xD0, 0x22, 0x09, 0x00, 0xC0, 0x62, 0x92,
+ 0x84, 0x0C, 0x46, 0x76, 0x00, 0xC0, 0xF2, 0x91, 0xA2, 0xD0, 0x08, 0x5E, 0x10, 0xF0, 0xE5, 0xA8, 0x30, 0xE2, 0x05, 0xAA, 0x48, 0x70, 0xFF, 0xFF, 0xA4, 0x92, 0x29, 0x9E, 0x06, 0x09,
+ 0x30, 0xC0, 0xCE, 0xA0, 0x80, 0x74, 0x01, 0xC0, 0x44, 0x91, 0x44, 0x9D, 0x3E, 0x9E, 0x40, 0x74, 0x38, 0xC0, 0x41, 0xAA, 0x02, 0x85, 0x01, 0xE0, 0x22, 0x85, 0xF2, 0xD3, 0xCE, 0x28,
+ 0x30, 0xC0, 0xCD, 0xA8, 0x84, 0x0C, 0x8C, 0x2C, 0x4A, 0x9E, 0x44, 0x70, 0x01, 0xD0, 0x92, 0x0C, 0x01, 0xD0, 0x96, 0x2C, 0x10, 0xF0, 0x65, 0xAA, 0x20, 0xB7, 0x8C, 0x46, 0xA2, 0xD0,
+ 0x08, 0x5D, 0xF0, 0xCF, 0x01, 0x2A, 0xA2, 0x00, 0x08, 0xC0, 0xD0, 0x08, 0x80, 0xB5, 0x2D, 0x40, 0x00, 0xD0, 0xC2, 0xA0, 0x10, 0xF0, 0x66, 0xA9, 0x06, 0x0C, 0x30, 0xE0, 0x46, 0xA1,
+ 0x20, 0xB7, 0x8C, 0x51, 0x18, 0xD0, 0x61, 0xAA, 0xCE, 0xCF, 0xFD, 0x28, 0x00, 0xC2, 0x20, 0x5A, 0x30, 0xC0, 0x00, 0x2A, 0x98, 0x30, 0x20, 0xB5, 0x8C, 0x51, 0x20, 0xB7, 0x94, 0x51,
+ 0x18, 0xD0, 0x65, 0xAA, 0x00, 0xC2, 0x28, 0x5A, 0xC0, 0xC0, 0x00, 0x2A, 0x49, 0x9D, 0x80, 0xB7, 0x8C, 0x46, 0x3E, 0xCF, 0xFD, 0x2C, 0x01, 0xC3, 0x94, 0x34, 0x20, 0xB5, 0x94, 0x51,
+ 0x20, 0xB7, 0x8C, 0x51, 0x00, 0x76, 0x08, 0xC0, 0x20, 0x0A, 0x08, 0xF2, 0x81, 0xA0, 0x00, 0xC0, 0x82, 0x90, 0xF4, 0xFF, 0x5C, 0x9B, 0x71, 0xC1, 0xCD, 0x9C, 0x9F, 0xB7, 0x6E, 0x7F,
+ 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x5D, 0x9E, 0x82, 0x0D, 0x54, 0xFF, 0x6C, 0x9B, 0x48, 0xF2, 0xB9, 0xA9, 0x82, 0x0D, 0x02, 0x0D, 0x02, 0x09, 0x54, 0xFF,
+ 0x54, 0x9B, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x5D, 0x9E, 0x82, 0x0D, 0x54, 0xFF, 0x5A, 0x9B, 0x48, 0xF2, 0xB5, 0xA9, 0x82, 0x0D,
+ 0x02, 0x0D, 0x02, 0x09, 0x54, 0xFF, 0x42, 0x9B, 0x83, 0xB7, 0x08, 0x6C, 0x06, 0x08, 0x04, 0x1A, 0x83, 0xB5, 0x08, 0x6C, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C,
+ 0x22, 0x9C, 0x80, 0xB7, 0x0C, 0x52, 0x20, 0xB7, 0x8C, 0x52, 0x04, 0x0A, 0x7C, 0x2A, 0x02, 0x71, 0x5A, 0x9E, 0x00, 0xC0, 0x64, 0x90, 0x00, 0x9F, 0x20, 0xB7, 0x94, 0x43, 0x72, 0xC0,
+ 0xCD, 0x9C, 0x40, 0xB7, 0x84, 0x67, 0x80, 0xB7, 0x0C, 0x52, 0x20, 0xB7, 0x0C, 0x52, 0x26, 0xD2, 0x0C, 0x59, 0x2D, 0x9E, 0x10, 0x87, 0x30, 0xE0, 0x4D, 0xA1, 0xA6, 0xD0, 0x0C, 0x59,
+ 0x2D, 0x9E, 0x30, 0xE0, 0xCD, 0xA1, 0x08, 0xD0, 0x65, 0xAA, 0x04, 0x0A, 0x08, 0xD0, 0x65, 0xA2, 0x20, 0xB7, 0x0C, 0x52, 0x84, 0x08, 0xFC, 0x28, 0x20, 0xB5, 0x0C, 0x52, 0x72, 0xC0,
+ 0xCD, 0x9C, 0x22, 0x9C, 0x0D, 0xA6, 0x20, 0xB7, 0x8C, 0x52, 0x80, 0xB7, 0x0C, 0x52, 0x48, 0x70, 0x02, 0xC0, 0x42, 0x91, 0xC0, 0xB7, 0x8C, 0x67, 0x80, 0xB7, 0x8C, 0x52, 0x14, 0xD0,
+ 0x68, 0x09, 0x26, 0xD2, 0x0C, 0x59, 0x2D, 0x9E, 0x47, 0x9D, 0x30, 0xE0, 0xCD, 0xAA, 0x60, 0xE0, 0xA6, 0xAA, 0x20, 0xB7, 0x8C, 0x43, 0x71, 0xC0, 0xCD, 0x9C, 0x04, 0x0A, 0x7C, 0x2A,
+ 0x80, 0xB5, 0x8C, 0x52, 0x71, 0xC0, 0xCD, 0x9C, 0x40, 0x77, 0x00, 0xC0, 0xA2, 0x91, 0xAB, 0x9E, 0x0B, 0x06, 0x62, 0x9C, 0x1C, 0xC0, 0x3E, 0x7C, 0x00, 0xC0, 0xC4, 0x90, 0x8B, 0x05,
+ 0x8B, 0x01, 0xF4, 0xFF, 0xA6, 0x9B, 0xA0, 0xB7, 0x94, 0x43, 0x72, 0xC1, 0xCD, 0x9C, 0x08, 0xD2, 0x25, 0xAA, 0x04, 0x1A, 0x08, 0xD2, 0x25, 0xA2, 0x08, 0xD2, 0xA5, 0xA8, 0x1C, 0xC0,
+ 0x7E, 0x7C, 0x00, 0xC0, 0x84, 0x91, 0x48, 0xF2, 0x3D, 0xAA, 0x01, 0xC1, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0xA2, 0x90, 0xAB, 0x9E, 0x74, 0xFF, 0x91, 0x9B, 0x72, 0xC1, 0xCD, 0x9C,
+ 0x20, 0xB7, 0x8C, 0x52, 0x80, 0xB7, 0x0C, 0x52, 0x48, 0x70, 0xFD, 0xFF, 0x84, 0x93, 0x9F, 0xB7, 0xEE, 0x7E, 0xBF, 0xB7, 0x6E, 0x7F, 0xDF, 0xB7, 0xEE, 0x7F, 0x60, 0x8C, 0x22, 0x9C,
+ 0x05, 0xA6, 0x5D, 0x9E, 0x82, 0x0D, 0x54, 0xFF, 0xBC, 0x9A, 0x80, 0xB7, 0x8C, 0x44, 0x20, 0xB7, 0x0C, 0x69, 0x01, 0xC0, 0x8E, 0x0C, 0x06, 0xC0, 0x98, 0x0C, 0x34, 0xC0, 0x10, 0x0A,
+ 0xFE, 0xCF, 0xFC, 0x28, 0xE9, 0xF3, 0x9D, 0xA0, 0x08, 0xF2, 0x82, 0xA0, 0x48, 0xF2, 0xB5, 0xA9, 0x82, 0x0D, 0x06, 0x0D, 0x06, 0x09, 0x54, 0xFF, 0x94, 0x9A, 0x06, 0x08, 0x9F, 0xB7,
+ 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x87, 0x06, 0x82, 0x0D, 0x54, 0xFF, 0x99, 0x9A, 0x80, 0xB7, 0x8C, 0x44, 0x20, 0xB7, 0x0C, 0x69, 0x01, 0xC0,
+ 0x86, 0x0C, 0x06, 0xC0, 0x98, 0x0C, 0x34, 0xC0, 0x10, 0x0A, 0xFE, 0xCF, 0xFC, 0x28, 0xE9, 0xF3, 0x9D, 0xA0, 0x08, 0xF2, 0x82, 0xA0, 0x50, 0xF2, 0xB9, 0xA9, 0x82, 0x0D, 0x06, 0x0D,
+ 0x06, 0x09, 0x54, 0xFF, 0x71, 0x9A, 0xA0, 0xB7, 0x8C, 0x43, 0x71, 0xC1, 0xCD, 0x9C, 0x8B, 0x05, 0x14, 0xC0, 0x94, 0x98, 0x71, 0xC1, 0xCD, 0x9C, 0x06, 0x08, 0x9F, 0xB7, 0x6E, 0x7F,
+ 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x1D, 0xA6, 0x49, 0xC0, 0x82, 0x85, 0x00, 0xC2, 0x80, 0x85, 0x20, 0xB7, 0x8C, 0x47, 0x02, 0x0C, 0x06, 0x85, 0x82, 0x0A, 0x5B, 0x9E,
+ 0x49, 0xC0, 0x02, 0x87, 0x00, 0xC2, 0x10, 0x87, 0x48, 0xF0, 0x7D, 0xAA, 0xEF, 0x9D, 0xD4, 0x9D, 0x48, 0xF0, 0xFE, 0xA8, 0x0C, 0xC0, 0xE0, 0x08, 0x40, 0xB7, 0x35, 0x40, 0x48, 0xF0,
+ 0x7D, 0xA9, 0x00, 0xC2, 0x05, 0x5A, 0x04, 0x2A, 0x00, 0x75, 0x80, 0xB7, 0x0C, 0x69, 0xF9, 0x5C, 0x84, 0x4C, 0x84, 0x2C, 0xFE, 0xC0, 0x70, 0x2D, 0x08, 0xF2, 0x06, 0xA0, 0x30, 0xE0,
+ 0xC9, 0xA8, 0x01, 0xE0, 0x22, 0x85, 0x20, 0xE2, 0xAB, 0x88, 0x50, 0xE0, 0xCA, 0xA9, 0x80, 0xC0, 0x48, 0x74, 0x20, 0x0D, 0x09, 0x00, 0x02, 0xC0, 0x02, 0x90, 0x01, 0x01, 0x31, 0xD0,
+ 0x00, 0x0B, 0x88, 0xC0, 0xC2, 0x0E, 0x74, 0xD1, 0x80, 0x09, 0x7F, 0x9D, 0x80, 0xC0, 0x50, 0x74, 0x11, 0xD0, 0x02, 0x0E, 0x04, 0xB3, 0x24, 0x48, 0xA0, 0x9E, 0x02, 0x72, 0x00, 0xC0,
+ 0xA6, 0x92, 0x08, 0xF0, 0x47, 0xA9, 0x6D, 0x9D, 0x80, 0xC0, 0x05, 0x5A, 0x30, 0xC0, 0x4D, 0xA2, 0x08, 0xF0, 0xC5, 0xA8, 0x3D, 0x9E, 0xA6, 0xD0, 0x08, 0x59, 0x30, 0xE0, 0xCE, 0xA1,
+ 0x08, 0xF0, 0x45, 0xAA, 0x04, 0x0A, 0x08, 0xF0, 0x45, 0xA2, 0x54, 0x9E, 0x76, 0xCF, 0x41, 0x0A, 0x50, 0xC0, 0x00, 0x75, 0x84, 0x0A, 0x8B, 0x05, 0x23, 0xB3, 0x46, 0x48, 0x10, 0xC0,
+ 0x7E, 0x75, 0x07, 0x05, 0x00, 0xC0, 0xB2, 0x91, 0x5C, 0x9E, 0x70, 0xE2, 0x85, 0xA8, 0xD8, 0x9D, 0x80, 0xC0, 0x48, 0x74, 0x60, 0xE0, 0xCA, 0xA9, 0x20, 0x0D, 0xFE, 0xFF, 0x84, 0x91,
+ 0x08, 0xF0, 0x65, 0xAA, 0x09, 0xC8, 0xC2, 0x0D, 0xD8, 0xC5, 0x90, 0x0D, 0x80, 0xB5, 0x2C, 0x40, 0xF4, 0xFF, 0xAF, 0x9A, 0x9F, 0xB7, 0x6E, 0x7E, 0xBF, 0xB7, 0xEE, 0x7E, 0xDF, 0xB7,
+ 0x6E, 0x7F, 0xFF, 0xB7, 0xEE, 0x7F, 0x02, 0xC0, 0x00, 0x8C, 0x22, 0x9C, 0x1D, 0xA6, 0xA0, 0xB7, 0x14, 0x69, 0x5D, 0x9E, 0x08, 0xF2, 0x25, 0xAA, 0x10, 0xF2, 0xA1, 0xA8, 0x48, 0x70,
+ 0x6C, 0x9E, 0x00, 0xC0, 0x62, 0x91, 0x09, 0xC8, 0xC2, 0x0D, 0xE0, 0xC5, 0xC0, 0x0D, 0x8B, 0x01, 0xF4, 0xFF, 0x91, 0x9A, 0x04, 0xC0, 0x80, 0x93, 0x08, 0xF2, 0x05, 0xAA, 0x00, 0x75,
+ 0x04, 0xC0, 0x22, 0x91, 0x82, 0x0B, 0x20, 0xB7, 0x8C, 0x48, 0x01, 0xC0, 0x12, 0x0A, 0x10, 0xC0, 0x00, 0x0A, 0x48, 0x70, 0x00, 0xC0, 0xB2, 0x90, 0xAB, 0x9E, 0x54, 0xFF, 0xFA, 0x9B,
+ 0x08, 0xF2, 0xA9, 0xA9, 0xA2, 0x0D, 0x00, 0xC6, 0x80, 0x39, 0x74, 0xFF, 0x6A, 0x99, 0x40, 0xC0, 0x82, 0x0D, 0x08, 0xF2, 0xBD, 0xA9, 0x74, 0xFF, 0x64, 0x99, 0x82, 0x09, 0x10, 0xF2,
+ 0x25, 0xAA, 0xC8, 0x70, 0x02, 0xC0, 0x28, 0x93, 0x6E, 0x9E, 0x00, 0xB7, 0x94, 0x46, 0x32, 0xD0, 0x60, 0x0B, 0x71, 0x9E, 0x10, 0xC0, 0x65, 0xAA, 0x12, 0xD0, 0xB2, 0x0A, 0x08, 0x75,
+ 0x80, 0xC1, 0x08, 0x58, 0x01, 0xC0, 0xC4, 0x91, 0x84, 0x0B, 0xC4, 0x75, 0x01, 0xC0, 0x44, 0x91, 0x82, 0x0C, 0x49, 0x9E, 0x11, 0xD0, 0x32, 0x1A, 0x48, 0x70, 0x01, 0xC0, 0x68, 0x90,
+ 0x49, 0xC0, 0x82, 0x87, 0x60, 0xC1, 0x80, 0x87, 0x40, 0xB7, 0x84, 0x68, 0x01, 0x05, 0xA3, 0x9E, 0xA6, 0xD0, 0x08, 0x5D, 0x11, 0xD0, 0x12, 0x0D, 0x50, 0xF0, 0x49, 0xAA, 0x00, 0x75,
+ 0xFF, 0xFF, 0xA2, 0x93, 0xDC, 0x9D, 0x60, 0xB7, 0x1C, 0x68, 0x70, 0xC0, 0x29, 0xAA, 0x91, 0x9E, 0x46, 0x72, 0x30, 0xE0, 0xCD, 0xA8, 0x3D, 0x9E, 0x26, 0xD2, 0x04, 0x59, 0x30, 0xE0,
+ 0xCD, 0xA0, 0xFF, 0xFF, 0x26, 0x91, 0x41, 0x9E, 0x80, 0xB7, 0x2D, 0x45, 0x00, 0x75, 0xFF, 0xFF, 0xA2, 0x93, 0x71, 0x9E, 0x73, 0xD1, 0x60, 0x09, 0x10, 0xC0, 0x65, 0xAA, 0x47, 0x9D,
+ 0x10, 0xE0, 0x86, 0xA8, 0x00, 0xC2, 0x04, 0x5A, 0x49, 0xC0, 0x00, 0x0A, 0x40, 0xC1, 0x00, 0x0A, 0x08, 0xF2, 0x82, 0xA0, 0x08, 0xF2, 0xC5, 0xA8, 0x6B, 0x9E, 0xC2, 0x70, 0xFD, 0xFF,
+ 0x06, 0x92, 0x40, 0xC0, 0x92, 0x0D, 0x82, 0x09, 0x74, 0xFF, 0x02, 0x99, 0xA2, 0x0D, 0x08, 0xF2, 0xA9, 0xA9, 0x74, 0xFF, 0xFD, 0x98, 0x40, 0xC0, 0x82, 0x0D, 0x08, 0xF2, 0xBD, 0xA9,
+ 0x74, 0xFF, 0xF7, 0x98, 0x20, 0xB7, 0x94, 0x47, 0x20, 0xB7, 0x8C, 0x46, 0x80, 0xB7, 0xAD, 0x45, 0x40, 0x2A, 0x00, 0x75, 0xFF, 0xFF, 0x82, 0x93, 0x71, 0xD2, 0x10, 0x0E, 0x08, 0xF2,
+ 0x81, 0xA8, 0x9F, 0xB7, 0x6E, 0x7E, 0xBF, 0xB7, 0xEE, 0x7E, 0xDF, 0xB7, 0x6E, 0x7F, 0xFF, 0xB7, 0xEE, 0x7F, 0x02, 0xC0, 0x00, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x80, 0xB7, 0x8C, 0x49,
+ 0x00, 0x75, 0x5D, 0x9E, 0x00, 0xC0, 0x44, 0x92, 0xA0, 0xB5, 0x8C, 0x49, 0x01, 0xC9, 0x80, 0x9C, 0xAB, 0x9E, 0x88, 0xF2, 0x29, 0xA2, 0x86, 0x09, 0xF4, 0xFF, 0x16, 0x99, 0xAB, 0x9E,
+ 0x74, 0xFF, 0x99, 0x9A, 0x06, 0x08, 0x00, 0xC0, 0x60, 0x90, 0x02, 0x08, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x5D, 0x9E, 0x82, 0x0D,
+ 0x54, 0xFF, 0x0C, 0x99, 0x80, 0xB7, 0x8C, 0x44, 0x20, 0xB7, 0x8C, 0x69, 0x01, 0xC0, 0x8E, 0x0C, 0xDC, 0x0C, 0x34, 0xC0, 0x10, 0x0A, 0xFE, 0xCF, 0xFC, 0x28, 0xE9, 0xF3, 0x9D, 0xA0,
+ 0x08, 0xF2, 0x82, 0xA0, 0x48, 0xF2, 0xB5, 0xA9, 0x82, 0x0D, 0x06, 0x0D, 0x02, 0x09, 0x54, 0xFF, 0xE5, 0x98, 0x83, 0xB7, 0x08, 0x6C, 0x06, 0x08, 0x04, 0x1A, 0x83, 0xB5, 0x08, 0x6C,
+ 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x5D, 0x9E, 0x82, 0x0D, 0x54, 0xFF, 0xE5, 0x98, 0x80, 0xB7, 0x8C, 0x44, 0x20, 0xB7, 0x8C, 0x69,
+ 0x01, 0xC0, 0x86, 0x0C, 0xDC, 0x0C, 0x34, 0xC0, 0x10, 0x0A, 0xFE, 0xCF, 0xFC, 0x28, 0xE9, 0xF3, 0x9D, 0xA0, 0x08, 0xF2, 0x82, 0xA0, 0x48, 0xF2, 0xB9, 0xA9, 0x82, 0x0D, 0x06, 0x0D,
+ 0x02, 0x09, 0x54, 0xFF, 0xBE, 0x98, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x87, 0x06, 0x50, 0xF2, 0x3D, 0xAA, 0x10, 0x2A, 0x00, 0x75,
+ 0x00, 0xC0, 0xE4, 0x92, 0x50, 0xF2, 0x3D, 0xAA, 0x40, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x02, 0x92, 0x20, 0xB7, 0x94, 0x69, 0x50, 0xDA, 0x25, 0xAA, 0x80, 0xB5, 0x4D, 0x41,
+ 0x10, 0xF2, 0xBD, 0xA8, 0x20, 0xB5, 0xCD, 0x40, 0x10, 0xF2, 0x25, 0xAA, 0x80, 0xB5, 0x4D, 0x40, 0xA0, 0xB7, 0x0C, 0x6A, 0x60, 0xB7, 0x0C, 0x55, 0xAB, 0x9E, 0x2A, 0x0D, 0x94, 0xC0,
+ 0x0A, 0x98, 0x60, 0xB7, 0x8C, 0x55, 0xB2, 0xD0, 0xD0, 0x19, 0x2A, 0x0D, 0x94, 0xC0, 0x03, 0x98, 0x09, 0xC8, 0xC2, 0x0D, 0x44, 0xC6, 0x90, 0x0D, 0x6B, 0x9E, 0xF4, 0xFF, 0x51, 0x99,
+ 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x5D, 0x9E, 0x20, 0xB7, 0x8C, 0x48, 0x01, 0xC0, 0x0A, 0x0A, 0x0E, 0xC0, 0x78, 0x0A, 0x48, 0x70,
+ 0x00, 0xC0, 0x72, 0x91, 0x48, 0xF2, 0x3D, 0xAA, 0x04, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x82, 0x90, 0x54, 0xFF, 0xB4, 0x9A, 0x08, 0xF2, 0xA9, 0xA9, 0xA2, 0x0D, 0x00, 0xC6,
+ 0x80, 0x39, 0x74, 0xFF, 0x24, 0x98, 0x40, 0xC0, 0x82, 0x0D, 0x48, 0xF2, 0xA1, 0xA9, 0x74, 0xFF, 0x1E, 0x98, 0x40, 0xC0, 0xA2, 0x0D, 0x08, 0xDA, 0xB9, 0xA9, 0x74, 0xFF, 0x18, 0x98,
+ 0x40, 0xC0, 0x92, 0x0D, 0x82, 0x09, 0x74, 0xFF, 0x13, 0x98, 0xA2, 0x0D, 0x08, 0xF2, 0xA9, 0xA9, 0x74, 0xFF, 0x0E, 0x98, 0x40, 0xC0, 0x82, 0x0D, 0x08, 0xF2, 0xBD, 0xA9, 0x74, 0xFF,
+ 0x08, 0x98, 0x20, 0xB7, 0x8C, 0x46, 0x80, 0xB7, 0xAD, 0x45, 0x40, 0x2A, 0x00, 0x75, 0xFF, 0xFF, 0x82, 0x93, 0x80, 0xB7, 0x8C, 0x47, 0x08, 0xC0, 0x60, 0x0A, 0x08, 0xF2, 0x81, 0xA8,
+ 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0xA0, 0xB7, 0x94, 0x69, 0x5D, 0x9E, 0x08, 0xF2, 0x25, 0xAA, 0x10, 0xF2, 0xA1, 0xA8, 0x48, 0x70,
+ 0x00, 0xC0, 0x42, 0x92, 0xF4, 0xFF, 0x50, 0x9B, 0x60, 0xB7, 0x14, 0x55, 0xD1, 0xD0, 0xD8, 0x0D, 0x2A, 0x0D, 0x74, 0xC0, 0x97, 0x9B, 0x60, 0xB7, 0x94, 0x55, 0x31, 0xD0, 0xD8, 0x0D,
+ 0x2A, 0x0D, 0x74, 0xC0, 0x90, 0x9B, 0x10, 0xF2, 0x25, 0xAA, 0x48, 0xF2, 0x21, 0xA2, 0x10, 0xDA, 0xB1, 0xA8, 0x08, 0xDA, 0xB9, 0xA0, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F,
+ 0x40, 0x8C, 0x22, 0x9C, 0x1D, 0xA6, 0x40, 0x84, 0x60, 0xB7, 0x0C, 0x5A, 0x00, 0xB7, 0x8C, 0x59, 0x02, 0x85, 0x60, 0xB7, 0x9C, 0x6A, 0x60, 0xB9, 0x78, 0x40, 0x01, 0x02, 0x29, 0xF2,
+ 0x07, 0xA1, 0xFF, 0xFF, 0xC1, 0x93, 0x10, 0xD0, 0x61, 0xAA, 0x73, 0xD0, 0x48, 0x29, 0x30, 0xE0, 0xCD, 0xA8, 0x08, 0xF0, 0xE9, 0xA0, 0x10, 0xD0, 0x61, 0xAA, 0x40, 0xB7, 0x84, 0x59,
+ 0x0E, 0xC0, 0x00, 0x2A, 0x26, 0xD2, 0x0D, 0x59, 0x3F, 0xC0, 0x7E, 0x0C, 0x00, 0xCC, 0x00, 0x0C, 0x30, 0xE0, 0xCD, 0xA8, 0x11, 0xD0, 0x38, 0x0D, 0x40, 0xB7, 0x14, 0x6D, 0x60, 0xB9,
+ 0x18, 0x40, 0x08, 0xF0, 0xED, 0xA0, 0x31, 0xF0, 0x45, 0xAA, 0x08, 0xD8, 0xC2, 0xA8, 0x2D, 0x9E, 0x26, 0xD2, 0x08, 0x59, 0x38, 0xE0, 0xCD, 0xA8, 0x4C, 0x9E, 0xFE, 0xC3, 0x7C, 0x2A,
+ 0x98, 0x30, 0xC1, 0xA0, 0x29, 0xF0, 0x45, 0xAA, 0x40, 0x9E, 0x40, 0x22, 0x98, 0x30, 0xC1, 0xA0, 0xFF, 0xFF, 0x81, 0x91, 0x40, 0xB7, 0x84, 0x5A, 0x20, 0xB7, 0x94, 0x6E, 0x9C, 0x0D,
+ 0x60, 0xB9, 0x08, 0x40, 0x31, 0xF0, 0xA5, 0xA8, 0x10, 0xD0, 0x61, 0xAA, 0x2D, 0x9E, 0xA6, 0xD0, 0x08, 0x59, 0x90, 0x0D, 0x02, 0xC0, 0x70, 0x2A, 0x00, 0xC2, 0x09, 0x5A, 0x30, 0xE0,
+ 0x4D, 0xA2, 0xFF, 0xFF, 0x41, 0x92, 0x00, 0xB7, 0x0C, 0x5A, 0x80, 0xB7, 0x2C, 0x41, 0x60, 0xB7, 0x1C, 0x6B, 0x26, 0xD2, 0x08, 0x59, 0x30, 0xE0, 0xCD, 0xA8, 0x80, 0xC0, 0x05, 0x5B,
+ 0x82, 0x71, 0x03, 0xC0, 0x48, 0x91, 0x81, 0x9E, 0xE0, 0xB7, 0x0C, 0x6C, 0x83, 0x07, 0x10, 0xF2, 0x69, 0xAA, 0x60, 0xB7, 0x9C, 0x6B, 0x00, 0xC2, 0x08, 0x5A, 0x30, 0xD0, 0x68, 0x01,
+ 0x30, 0xC0, 0x4E, 0xAB, 0x26, 0xD3, 0x08, 0x5D, 0x60, 0xB7, 0x9C, 0x5A, 0xC7, 0x9D, 0x70, 0xE0, 0xA9, 0xAA, 0x30, 0xE0, 0x4D, 0xAA, 0x80, 0xC2, 0xC0, 0x59, 0x02, 0xC0, 0x80, 0x39,
+ 0xCF, 0x9D, 0x62, 0xC0, 0xC0, 0x0D, 0xB8, 0x31, 0x5F, 0xB5, 0x7C, 0x7E, 0x54, 0xFF, 0x3E, 0x9B, 0x82, 0x0E, 0xA8, 0xD2, 0x08, 0x59, 0x40, 0x9D, 0x70, 0xE0, 0x05, 0xAA, 0x69, 0x9E,
+ 0x48, 0x70, 0x5F, 0xB7, 0x7C, 0x7E, 0x11, 0xD0, 0xE2, 0x0A, 0x01, 0xC0, 0x68, 0x91, 0xC0, 0xB7, 0x8C, 0x6C, 0x28, 0xD3, 0x8C, 0x5D, 0xDB, 0x9D, 0x30, 0xD0, 0x55, 0x05, 0x43, 0x9D,
+ 0x60, 0xC0, 0x05, 0xAA, 0x71, 0x9E, 0x20, 0xE3, 0xB1, 0x83, 0x18, 0x02, 0x88, 0x5D, 0x60, 0xB7, 0x9C, 0x59, 0x26, 0xD2, 0x08, 0x59, 0x30, 0xE0, 0xCD, 0xA9, 0x70, 0xC0, 0x80, 0x0D,
+ 0x5F, 0xB5, 0xE4, 0x7E, 0x7F, 0xB5, 0xE4, 0x7F, 0x54, 0xFF, 0x13, 0x9B, 0x84, 0x0E, 0x5F, 0xB7, 0xE4, 0x7E, 0x40, 0x9D, 0x70, 0xE0, 0x05, 0xAA, 0x69, 0x9E, 0x48, 0x70, 0x7F, 0xB7,
+ 0xE4, 0x7F, 0xFE, 0xFF, 0xC6, 0x93, 0x20, 0xB7, 0x14, 0x5A, 0x80, 0xB7, 0x4D, 0x41, 0x60, 0xB7, 0x1C, 0x6B, 0x26, 0xD2, 0x08, 0x59, 0x30, 0xE0, 0xCD, 0xA8, 0x0B, 0x03, 0x82, 0x71,
+ 0xFC, 0xFF, 0xC6, 0x93, 0x9F, 0xB7, 0x6E, 0x7D, 0xBF, 0xB7, 0xEE, 0x7D, 0xDF, 0xB7, 0x6E, 0x7E, 0xFF, 0xB7, 0xEE, 0x7E, 0x02, 0xC0, 0x40, 0x8C, 0x22, 0x9C, 0x1D, 0xA6, 0x40, 0x84,
+ 0x20, 0xB7, 0x8C, 0x59, 0x02, 0x85, 0x00, 0xB7, 0x14, 0x5A, 0x60, 0xB9, 0x78, 0x40, 0x03, 0x02, 0x29, 0xF2, 0x07, 0xA1, 0xFF, 0xFF, 0xC1, 0x93, 0x90, 0xF0, 0x7D, 0xAA, 0x72, 0xD1,
+ 0xBC, 0x0C, 0x00, 0xC2, 0x39, 0x5A, 0x1C, 0x2A, 0x80, 0xB5, 0x4C, 0x40, 0x80, 0xB7, 0x49, 0x40, 0x38, 0x2A, 0x00, 0xC2, 0x05, 0x5A, 0x80, 0xB5, 0xCC, 0x40, 0x20, 0xB7, 0x49, 0x40,
+ 0x3F, 0xC0, 0xFE, 0x09, 0x00, 0xCC, 0x80, 0x09, 0x40, 0xB7, 0x84, 0x59, 0x06, 0xC0, 0xC0, 0x28, 0x91, 0x58, 0x20, 0xB5, 0x4C, 0x41, 0x80, 0xB7, 0x4B, 0x40, 0x11, 0xD0, 0x38, 0x0D,
+ 0x40, 0xB7, 0x94, 0x6D, 0x60, 0xB9, 0x08, 0x40, 0x38, 0xC0, 0x00, 0x2A, 0x00, 0xC2, 0x1D, 0x5A, 0x80, 0xB5, 0xCC, 0x41, 0x31, 0xD8, 0x45, 0xAA, 0x08, 0xD8, 0xC2, 0xA8, 0x2D, 0x9E,
+ 0x26, 0xD2, 0x08, 0x59, 0x38, 0xE0, 0xCD, 0xA8, 0x4C, 0x9E, 0xFE, 0xC3, 0x7C, 0x2A, 0x98, 0x30, 0xC1, 0xA0, 0x29, 0xF0, 0x45, 0xAA, 0x46, 0x22, 0x98, 0x30, 0xC1, 0xA0, 0xFF, 0xFF,
+ 0xA1, 0x91, 0x3F, 0xC0, 0xFE, 0x09, 0x00, 0xCC, 0x80, 0x09, 0x40, 0xB7, 0x84, 0x59, 0x91, 0xD0, 0x30, 0x0D, 0x40, 0xB7, 0x14, 0x6E, 0x60, 0xB9, 0x68, 0x40, 0x31, 0xD8, 0x45, 0xAA,
+ 0x08, 0xD8, 0xC2, 0xA8, 0x2D, 0x9E, 0x26, 0xD2, 0x08, 0x59, 0x38, 0xE0, 0xCD, 0xA8, 0x4C, 0x9E, 0xFE, 0xC3, 0x7C, 0x2A, 0x98, 0x30, 0xC1, 0xA0, 0x29, 0xF0, 0x45, 0xAA, 0x46, 0x22,
+ 0x98, 0x30, 0xC1, 0xA0, 0xFF, 0xFF, 0xA1, 0x91, 0x40, 0xB7, 0x84, 0x5A, 0x40, 0xB7, 0x8C, 0x6E, 0x92, 0xD0, 0xB6, 0x0C, 0x60, 0xB9, 0x18, 0x40, 0x29, 0xF0, 0xC5, 0xA8, 0x80, 0xB7,
+ 0x49, 0x40, 0x2D, 0x9E, 0xA6, 0xD0, 0x08, 0x59, 0x90, 0x0C, 0x02, 0xC0, 0x70, 0x2A, 0x00, 0xC2, 0x09, 0x5A, 0x30, 0xE0, 0x4D, 0xA2, 0xFF, 0xFF, 0x41, 0x92, 0x20, 0xB7, 0x0C, 0x5A,
+ 0x80, 0xB7, 0x2D, 0x40, 0x60, 0xB7, 0x1C, 0x6B, 0x26, 0xD2, 0x08, 0x59, 0x30, 0xE0, 0xCD, 0xA8, 0x02, 0x0F, 0x74, 0x9E, 0x02, 0x71, 0x03, 0xC0, 0x68, 0x91, 0x20, 0xB7, 0x14, 0x5A,
+ 0xE0, 0xB7, 0x0C, 0x6C, 0x83, 0x07, 0x10, 0xF2, 0x61, 0xAA, 0x6E, 0x9D, 0x00, 0xC2, 0x08, 0x5A, 0x01, 0xC3, 0x30, 0x81, 0x60, 0xB7, 0x9C, 0x6B, 0x30, 0xC0, 0x4D, 0xAB, 0x26, 0xD3,
+ 0x08, 0x59, 0x60, 0xB7, 0x9C, 0x5A, 0xC7, 0x9D, 0x70, 0xE0, 0xA9, 0xAA, 0x30, 0xE0, 0x4D, 0xAA, 0x80, 0xC2, 0xC0, 0x59, 0x02, 0xC0, 0x80, 0x39, 0xCF, 0x9D, 0x42, 0xC0, 0xC0, 0x0D,
+ 0xB8, 0x31, 0x5F, 0xB5, 0x7C, 0x7E, 0x54, 0xFF, 0x33, 0x9A, 0x82, 0x0E, 0xA8, 0xD2, 0x08, 0x59, 0x44, 0x9D, 0x70, 0xE0, 0x25, 0xAA, 0x69, 0x9E, 0x48, 0x70, 0x11, 0xD0, 0xE2, 0x0E,
+ 0x5F, 0xB7, 0x7C, 0x7E, 0x01, 0xC0, 0x48, 0x91, 0xC0, 0xB7, 0x94, 0x6C, 0x28, 0xD3, 0x8C, 0x59, 0x5B, 0x9D, 0x30, 0xD0, 0x55, 0x05, 0xC7, 0x9D, 0x60, 0xC0, 0x29, 0xAA, 0x20, 0xE3,
+ 0xB1, 0x83, 0x68, 0x02, 0x88, 0x5D, 0x60, 0xB7, 0x9C, 0x59, 0x26, 0xD2, 0x08, 0x59, 0x30, 0xE0, 0xCD, 0xA9, 0x50, 0xC0, 0x80, 0x0D, 0x5F, 0xB5, 0xE4, 0x7E, 0x7F, 0xB5, 0xE4, 0x7F,
+ 0x54, 0xFF, 0x09, 0x9A, 0x84, 0x0E, 0x5F, 0xB7, 0xE4, 0x7E, 0x44, 0x9D, 0x70, 0xE0, 0x25, 0xAA, 0x69, 0x9E, 0x48, 0x70, 0x7F, 0xB7, 0xE4, 0x7F, 0xFE, 0xFF, 0xE6, 0x93, 0x20, 0xB7,
+ 0x14, 0x5A, 0x80, 0xB7, 0x4D, 0x40, 0x60, 0xB7, 0x1C, 0x6B, 0x26, 0xD2, 0x08, 0x59, 0x30, 0xE0, 0xCD, 0xA8, 0xAE, 0x9E, 0x42, 0x71, 0xFC, 0xFF, 0xC6, 0x93, 0x9F, 0xB7, 0x6E, 0x7D,
+ 0xBF, 0xB7, 0xEE, 0x7D, 0xDF, 0xB7, 0x6E, 0x7E, 0xFF, 0xB7, 0xEE, 0x7E, 0x02, 0xC0, 0x40, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x0E, 0xC0, 0xFC, 0x29, 0xC2, 0x74, 0x0E, 0x85, 0x53, 0x9D,
+ 0x57, 0x9D, 0x02, 0xD0, 0x46, 0x1A, 0x02, 0xD0, 0xD4, 0x1A, 0x80, 0xC2, 0xC0, 0x5A, 0x40, 0xC0, 0xF2, 0x0D, 0x00, 0xC2, 0xC0, 0x59, 0x54, 0xFF, 0xD1, 0x99, 0x42, 0xC0, 0xB2, 0x0D,
+ 0x8B, 0x01, 0x54, 0xFF, 0xCC, 0x99, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x0E, 0xC0, 0xFC, 0x2D, 0xC2, 0x76, 0x8E, 0x09, 0x02, 0xD0, 0xB6, 0x19,
+ 0x60, 0xC0, 0xF2, 0x0D, 0xC0, 0x59, 0x4D, 0xFF, 0x60, 0x93, 0x0D, 0xA6, 0x5E, 0x9E, 0x82, 0x08, 0xC8, 0xD2, 0xDD, 0xAA, 0x20, 0x5D, 0xC8, 0xD2, 0xCE, 0xAA, 0x48, 0xDA, 0x5D, 0xAA,
+ 0x0E, 0xC0, 0xF0, 0x2A, 0x80, 0xC2, 0xB8, 0x5A, 0x02, 0xC0, 0xC0, 0x2E, 0x80, 0xC2, 0x91, 0x5E, 0x46, 0x77, 0x3E, 0xC0, 0x40, 0x2A, 0x00, 0xC2, 0x10, 0x5A, 0xD8, 0x32, 0x54, 0x9E,
+ 0x51, 0xB3, 0x24, 0x48, 0x80, 0xC0, 0x40, 0x59, 0x28, 0x31, 0x71, 0xD1, 0x66, 0x0A, 0x08, 0xD2, 0x82, 0xA8, 0x48, 0xDA, 0xC9, 0xA8, 0xA2, 0xD0, 0x05, 0x5E, 0x3E, 0xC0, 0xC0, 0x28,
+ 0x91, 0x58, 0xD2, 0x32, 0x11, 0xD0, 0xC2, 0x28, 0x84, 0x48, 0x80, 0xC0, 0x4C, 0x5A, 0x11, 0xD0, 0x92, 0x2C, 0x26, 0x31, 0x28, 0x31, 0x84, 0x48, 0x80, 0xC0, 0xC8, 0x59, 0x40, 0xC0,
+ 0xA2, 0x0D, 0xA6, 0x31, 0x54, 0xFF, 0x80, 0x99, 0x40, 0xC0, 0xB2, 0x0D, 0x8B, 0x01, 0x54, 0xFF, 0x7B, 0x99, 0x02, 0x85, 0x46, 0x77, 0xA6, 0xD2, 0x8C, 0x5D, 0xC0, 0x85, 0x5A, 0xE0,
+ 0x46, 0x80, 0x00, 0xC0, 0x80, 0x92, 0x00, 0xC0, 0x20, 0x91, 0x00, 0xC0, 0xA0, 0x91, 0x00, 0xC0, 0xC0, 0x91, 0x00, 0xC0, 0x40, 0x90, 0x06, 0x85, 0xB3, 0x9E, 0x4F, 0x9D, 0xF4, 0xFF,
+ 0x83, 0x9B, 0x00, 0xC0, 0xA0, 0x90, 0xB3, 0x9E, 0xF4, 0xFF, 0x74, 0x9A, 0x88, 0xF2, 0xD9, 0xA9, 0x40, 0xC0, 0xD2, 0x0D, 0x0F, 0xC0, 0xFE, 0x29, 0x54, 0xFF, 0x58, 0x99, 0x9F, 0xB7,
+ 0xEE, 0x7E, 0xBF, 0xB7, 0x6E, 0x7F, 0xDF, 0xB7, 0xEE, 0x7F, 0x60, 0x8C, 0x22, 0x9C, 0x0D, 0xA6, 0x5E, 0x9E, 0x08, 0xD2, 0xC2, 0xAA, 0x02, 0x09, 0x20, 0x5D, 0x08, 0xF2, 0x41, 0xAA,
+ 0x8C, 0x2E, 0x46, 0x77, 0x08, 0xDA, 0xC5, 0xAA, 0x00, 0xC2, 0x99, 0x58, 0x52, 0xB3, 0x24, 0x48, 0x08, 0xD2, 0x45, 0xAA, 0x3E, 0xC0, 0xC0, 0x2A, 0x80, 0xC2, 0xB0, 0x5A, 0xF0, 0xC3,
+ 0x80, 0x28, 0xD2, 0x32, 0xF1, 0xD0, 0xCE, 0x28, 0xD2, 0x32, 0x51, 0x9E, 0x00, 0xC1, 0x40, 0x5A, 0x42, 0x31, 0x60, 0xC0, 0xA2, 0x0D, 0xA6, 0x31, 0x54, 0xFF, 0x2B, 0x99, 0x60, 0xC0,
+ 0xB2, 0x0D, 0x8B, 0x01, 0x54, 0xFF, 0x26, 0x99, 0x02, 0x85, 0x46, 0x77, 0xA6, 0xD2, 0x8C, 0x5D, 0xC0, 0x85, 0x5A, 0xE0, 0x46, 0x80, 0x00, 0xC0, 0x60, 0x92, 0x00, 0xC0, 0x20, 0x91,
+ 0x00, 0xC0, 0x80, 0x91, 0x00, 0xC0, 0xA0, 0x91, 0x00, 0xC0, 0x40, 0x90, 0x06, 0x85, 0xCF, 0x9D, 0xF4, 0xFF, 0x4D, 0x9B, 0x00, 0xC0, 0xA0, 0x90, 0xB3, 0x9E, 0xF4, 0xFF, 0x43, 0x99,
+ 0x08, 0xD2, 0xCD, 0xA9, 0x0E, 0xC0, 0xF0, 0x29, 0x60, 0xC0, 0xD2, 0x0D, 0xA0, 0x59, 0x54, 0xFF, 0x03, 0x99, 0x9F, 0xB7, 0xEE, 0x7E, 0xBF, 0xB7, 0x6E, 0x7F, 0xDF, 0xB7, 0xEE, 0x7F,
+ 0x60, 0x8C, 0x22, 0x9C, 0x71, 0xD1, 0x3A, 0x0E, 0x04, 0xC0, 0xF0, 0x0D, 0x10, 0xD0, 0xE2, 0xA8, 0x08, 0xD2, 0x01, 0xA8, 0xD1, 0xD3, 0x10, 0x2E, 0x31, 0xD0, 0x98, 0x2C, 0x8C, 0x2C,
+ 0x02, 0xC0, 0x7C, 0x28, 0x20, 0x58, 0x08, 0x30, 0x4C, 0x9E, 0x02, 0x30, 0x08, 0x30, 0x22, 0x9C, 0x39, 0xF8, 0x85, 0xA2, 0xD0, 0xD0, 0xED, 0xA8, 0x9A, 0x9E, 0x10, 0xD0, 0x41, 0xAA,
+ 0x02, 0xC0, 0xC0, 0x28, 0x91, 0x58, 0x0E, 0xC0, 0x70, 0x2A, 0x42, 0x32, 0x10, 0xD0, 0x41, 0xA2, 0xD0, 0xD0, 0xFD, 0xA8, 0x10, 0xD8, 0x45, 0xAA, 0x3F, 0xC0, 0x7E, 0x08, 0x00, 0xCC,
+ 0x00, 0x08, 0x0E, 0xC0, 0xF0, 0x28, 0xC0, 0xCF, 0x3C, 0x2A, 0x88, 0x58, 0x42, 0x32, 0x10, 0xD8, 0x45, 0xA2, 0xFF, 0xCF, 0x42, 0x0A, 0xFE, 0xC3, 0x7C, 0x0A, 0x50, 0xD8, 0xFD, 0xA8,
+ 0x5B, 0x9E, 0xA0, 0x9E, 0x10, 0xF0, 0xC2, 0xA8, 0x3E, 0xC0, 0xC0, 0x28, 0xA8, 0x58, 0x8D, 0x9E, 0x90, 0x24, 0x9A, 0x34, 0x10, 0xF0, 0xC2, 0xA0, 0x50, 0xD8, 0x69, 0xAA, 0x10, 0xD0,
+ 0xC5, 0xA8, 0x11, 0xD0, 0x28, 0x0D, 0x3E, 0xC0, 0x40, 0x2A, 0x0C, 0xC0, 0x80, 0x28, 0x00, 0xC2, 0x11, 0x5A, 0x98, 0x30, 0x10, 0xD0, 0xC5, 0xA0, 0x90, 0xF0, 0x79, 0xAA, 0x10, 0xD0,
+ 0xCD, 0xA8, 0x72, 0xD1, 0xBC, 0x0C, 0xC0, 0xCC, 0x00, 0x2A, 0x8C, 0x28, 0x00, 0xC2, 0x21, 0x5A, 0x98, 0x30, 0x10, 0xD0, 0xCD, 0xA0, 0x20, 0xB7, 0x49, 0x40, 0x10, 0xD0, 0x41, 0xAA,
+ 0xC1, 0xCF, 0x02, 0x0C, 0xFE, 0xC3, 0x7C, 0x0C, 0x06, 0xC0, 0xC0, 0x28, 0x0E, 0xC0, 0x0C, 0x2A, 0x89, 0x58, 0x42, 0x32, 0x10, 0xD0, 0x41, 0xA2, 0x20, 0xB7, 0x4B, 0x40, 0x60, 0xB9,
+ 0x18, 0x40, 0x7C, 0x2A, 0x38, 0xC0, 0x80, 0x28, 0x89, 0x58, 0x42, 0x32, 0x10, 0xD0, 0x41, 0xA2, 0x08, 0xD8, 0xC1, 0xA8, 0x08, 0xD8, 0x61, 0xAA, 0x00, 0xCC, 0x80, 0x28, 0xFE, 0xC3,
+ 0x7C, 0x2A, 0x98, 0x30, 0x08, 0xD8, 0xC1, 0xA0, 0x29, 0xF0, 0x65, 0xAA, 0x08, 0xF0, 0xC2, 0xA8, 0x40, 0x22, 0xA5, 0x9E, 0x90, 0x24, 0x9A, 0x34, 0x29, 0xF0, 0xC6, 0xA0, 0xFF, 0xFF,
+ 0x61, 0x91, 0x91, 0xD0, 0x36, 0x0D, 0x12, 0xD0, 0xAE, 0x0C, 0x60, 0xB9, 0x08, 0x40, 0x80, 0xB7, 0x49, 0x40, 0x29, 0xD0, 0xD1, 0xA8, 0x0C, 0xC0, 0x0C, 0x2A, 0x02, 0xC0, 0xF0, 0x28,
+ 0x42, 0x32, 0x31, 0xD0, 0x31, 0xA2, 0xFF, 0xFF, 0xA1, 0x92, 0xF8, 0xF9, 0x9D, 0xAA, 0x22, 0x9C, 0x1D, 0xA6, 0x06, 0xC0, 0x02, 0x69, 0x5F, 0x9E, 0x24, 0xD1, 0x89, 0x5A, 0x82, 0x0D,
+ 0x07, 0x03, 0x00, 0xC1, 0x1C, 0x5F, 0x34, 0xFF, 0x95, 0x98, 0xA0, 0xB7, 0x8C, 0x44, 0x34, 0xC0, 0xA0, 0x0A, 0x08, 0xF2, 0xA1, 0xA8, 0x80, 0xE0, 0xC1, 0x58, 0xCA, 0xCF, 0xE1, 0x0A,
+ 0x00, 0xC0, 0x02, 0x91, 0x01, 0xC0, 0xB6, 0x0D, 0x10, 0xCB, 0xB0, 0x0D, 0xB4, 0xFF, 0x58, 0x9B, 0x69, 0x9E, 0x34, 0xC0, 0x90, 0x0A, 0xE9, 0xF3, 0x3D, 0xA3, 0x0B, 0x02, 0x41, 0xC0,
+ 0x84, 0x38, 0x08, 0xF2, 0x81, 0xA0, 0x74, 0x9E, 0x8B, 0x05, 0xF8, 0x01, 0x34, 0xFF, 0xE3, 0x98, 0x9F, 0xB7, 0x6E, 0x7E, 0xBF, 0xB7, 0xEE, 0x7E, 0xDF, 0xB7, 0x6E, 0x7F, 0xFF, 0xB7,
+ 0xEE, 0x7F, 0x02, 0xC0, 0x00, 0x8C, 0x22, 0x9C, 0x1D, 0xA6, 0x02, 0xC0, 0x20, 0x84, 0x07, 0x02, 0xA5, 0x9E, 0x55, 0x9E, 0x6B, 0x9E, 0x9F, 0xB5, 0x6C, 0x7B, 0x91, 0xD1, 0xC0, 0x08,
+ 0x3F, 0xB5, 0xEC, 0x7B, 0x82, 0x08, 0x3F, 0xB5, 0xEC, 0x7D, 0x7F, 0xB5, 0x74, 0x7C, 0x02, 0x0D, 0x5F, 0xB5, 0xEC, 0x7C, 0x06, 0x09, 0x3F, 0xB5, 0x74, 0x7D, 0x0C, 0xC0, 0x00, 0x0A,
+ 0x9F, 0xB5, 0xEC, 0x7E, 0xF4, 0xFF, 0xAC, 0x9B, 0x82, 0x0D, 0x34, 0xFF, 0x48, 0x98, 0xFE, 0xC9, 0xFD, 0x2A, 0xA2, 0x0D, 0x8B, 0x01, 0x00, 0xC4, 0x80, 0x39, 0x34, 0xFF, 0xEF, 0x9B,
+ 0x8B, 0x05, 0xF4, 0xFF, 0xF3, 0x9A, 0x01, 0x03, 0x40, 0xC0, 0x82, 0x0D, 0x8D, 0x01, 0x34, 0xFF, 0xE6, 0x9B, 0x60, 0xC0, 0x82, 0x0D, 0x8D, 0x01, 0x34, 0xFF, 0xE1, 0x9B, 0x5F, 0xB7,
+ 0x6C, 0x7D, 0x9F, 0xB7, 0xEC, 0x7C, 0x5F, 0xB7, 0x7C, 0x7D, 0x29, 0x61, 0x82, 0x0B, 0xF5, 0x71, 0x5F, 0xB5, 0x6C, 0x7E, 0x04, 0xC0, 0xA8, 0x91, 0x1F, 0xB7, 0xF4, 0x7C, 0x3F, 0xB7,
+ 0xEC, 0x7E, 0x02, 0x0F, 0x11, 0xD0, 0x72, 0x09, 0x80, 0x73, 0x5F, 0xB5, 0x6C, 0x7F, 0x83, 0x02, 0x03, 0xC0, 0x08, 0x93, 0xE0, 0xB7, 0x94, 0x44, 0x34, 0xC0, 0xA0, 0x0F, 0x3F, 0xB7,
+ 0xEC, 0x7D, 0x5F, 0xB7, 0x6C, 0x7E, 0xFC, 0xCF, 0x63, 0x0C, 0x11, 0xD0, 0x12, 0x2A, 0x84, 0x08, 0x3F, 0xB5, 0xEC, 0x7D, 0x44, 0x70, 0x00, 0xC2, 0x88, 0x58, 0x01, 0xC2, 0x02, 0x81,
+ 0x20, 0xE2, 0xA9, 0x80, 0xA0, 0xB7, 0x55, 0x40, 0x00, 0xC0, 0x28, 0x93, 0x3F, 0xB7, 0xEC, 0x7D, 0x11, 0xD0, 0x12, 0x2A, 0x00, 0xC2, 0x88, 0x58, 0x01, 0xC2, 0x02, 0x81, 0x20, 0xE2,
+ 0xA9, 0x80, 0x1F, 0xB7, 0x74, 0x7C, 0x60, 0xB7, 0x4D, 0x40, 0x3F, 0xB7, 0xF4, 0x7D, 0x06, 0x09, 0x81, 0x05, 0x03, 0x05, 0xF4, 0xFF, 0x4A, 0x9B, 0x00, 0xC0, 0x20, 0x92, 0x82, 0x0D,
+ 0x14, 0xFF, 0xE4, 0x9B, 0x10, 0xF2, 0x61, 0xAA, 0x00, 0xE2, 0x41, 0x5A, 0x00, 0xC0, 0x02, 0x91, 0x01, 0xC0, 0xB6, 0x0D, 0x10, 0xCB, 0xB0, 0x0D, 0xB4, 0xFF, 0xAD, 0x9A, 0x8B, 0x05,
+ 0xF4, 0xFF, 0x8B, 0x9A, 0x0D, 0x02, 0x01, 0x03, 0x0C, 0x71, 0x00, 0xC0, 0x82, 0x91, 0x40, 0xC0, 0x92, 0x0D, 0x82, 0x09, 0x34, 0xFF, 0x7A, 0x9B, 0x40, 0xC0, 0x82, 0x0D, 0x8D, 0x01,
+ 0x34, 0xFF, 0x75, 0x9B, 0xC0, 0x75, 0x00, 0xC0, 0x62, 0x92, 0xAB, 0x9E, 0x73, 0x9E, 0x12, 0xD0, 0x72, 0x19, 0xF4, 0xFF, 0x1E, 0x9A, 0x73, 0x9E, 0xBA, 0x9E, 0x8B, 0x05, 0xF4, 0xFF,
+ 0xAE, 0x99, 0x8B, 0x05, 0x8B, 0x01, 0xF4, 0xFF, 0x7F, 0x9A, 0x00, 0xC0, 0x60, 0x91, 0x73, 0x9E, 0x8B, 0x05, 0x02, 0x0D, 0xF4, 0xFF, 0xA3, 0x99, 0x8B, 0x05, 0x8B, 0x01, 0xF4, 0xFF,
+ 0x74, 0x9A, 0x5F, 0xB7, 0xFC, 0x7C, 0x04, 0x0F, 0xB5, 0x73, 0xD0, 0x0A, 0xFC, 0xFF, 0x06, 0x92, 0x3F, 0xB7, 0x6C, 0x7F, 0x5F, 0xB7, 0x6C, 0x7D, 0x83, 0x03, 0xC4, 0x71, 0xFB, 0xFF,
+ 0xE6, 0x92, 0x40, 0xC0, 0x92, 0x0D, 0x82, 0x09, 0x34, 0xFF, 0x44, 0x9B, 0x40, 0xC0, 0x92, 0x0D, 0x86, 0x09, 0x34, 0xFF, 0x3F, 0x9B, 0x06, 0x08, 0x9F, 0xB7, 0xEE, 0x7B, 0xBF, 0xB7,
+ 0x6E, 0x7C, 0xDF, 0xB7, 0xEE, 0x7C, 0xFF, 0xB7, 0x6E, 0x7D, 0x04, 0xC0, 0x20, 0x8C, 0x22, 0x9C, 0x1D, 0xA6, 0x20, 0x84, 0x5E, 0x9E, 0x08, 0xD2, 0x41, 0xAA, 0x10, 0x2A, 0x00, 0x75,
+ 0x00, 0xC0, 0x22, 0x91, 0x80, 0xB7, 0x8C, 0x49, 0x00, 0x75, 0x12, 0xD0, 0x00, 0x40, 0x03, 0xC0, 0xA4, 0x90, 0x52, 0x85, 0x08, 0xD2, 0x43, 0xA1, 0xC0, 0xB5, 0x8C, 0x49, 0x01, 0xC9,
+ 0x80, 0x9C, 0x88, 0xF2, 0x49, 0xA2, 0xB3, 0x9E, 0x86, 0x09, 0xB4, 0xFF, 0x5F, 0x9B, 0x82, 0x0D, 0x14, 0xFF, 0x64, 0x9B, 0x80, 0xB7, 0x8C, 0x4A, 0x48, 0xDA, 0xCD, 0xAB, 0x48, 0xDA,
+ 0x4A, 0xAB, 0x9F, 0xB5, 0x6C, 0x7F, 0xA4, 0xD3, 0x90, 0x5A, 0x22, 0xD3, 0x90, 0x5E, 0x08, 0xF2, 0xD2, 0xAB, 0x84, 0x1E, 0xA2, 0xD2, 0xB0, 0x5D, 0x84, 0x1A, 0x82, 0x0D, 0xBA, 0x31,
+ 0x34, 0xFF, 0xFD, 0x9A, 0xA2, 0xD2, 0xB0, 0x5D, 0x92, 0x0D, 0xBA, 0x31, 0x34, 0xFF, 0xF7, 0x9A, 0xB2, 0x0D, 0x08, 0xF2, 0xD9, 0xA9, 0x34, 0xFF, 0xF2, 0x9A, 0xC2, 0x0D, 0x08, 0xF2,
+ 0xDD, 0xA9, 0x34, 0xFF, 0xED, 0x9A, 0x48, 0xF2, 0xCD, 0xA9, 0x02, 0xC0, 0xF2, 0x0D, 0xED, 0x29, 0x34, 0xFF, 0xE6, 0x9A, 0x02, 0xC0, 0xA2, 0x0D, 0x48, 0xF2, 0xC5, 0xA9, 0x34, 0xFF,
+ 0xE0, 0x9A, 0x02, 0xC0, 0xB2, 0x0D, 0x48, 0xF2, 0xC9, 0xA9, 0x34, 0xFF, 0xDA, 0x9A, 0x02, 0xC0, 0xC2, 0x0D, 0x82, 0x09, 0x34, 0xFF, 0xD5, 0x9A, 0x48, 0xF2, 0xD1, 0xA9, 0xC0, 0x74,
+ 0x00, 0xC0, 0xC2, 0x90, 0x04, 0xC0, 0x82, 0x0D, 0x34, 0xFF, 0xCC, 0x9A, 0x08, 0xF2, 0x4A, 0xA9, 0x9F, 0xB7, 0x6C, 0x7F, 0x72, 0x9E, 0xB9, 0x9E, 0x8F, 0x05, 0x89, 0x01, 0xF4, 0xFF,
+ 0xAC, 0x9A, 0x0E, 0xC0, 0x7C, 0x28, 0x9F, 0xB7, 0xEE, 0x7D, 0xBF, 0xB7, 0x6E, 0x7E, 0xDF, 0xB7, 0xEE, 0x7E, 0xFF, 0xB7, 0x6E, 0x7F, 0x02, 0xC0, 0x20, 0x8C, 0x22, 0x9C, 0x05, 0xA6,
+ 0x60, 0xB7, 0x14, 0x55, 0xA0, 0xB7, 0x0C, 0x56, 0x02, 0x85, 0x91, 0xD0, 0x3C, 0x0E, 0x88, 0xD2, 0xBD, 0xA8, 0x08, 0xD2, 0x03, 0xA1, 0x91, 0xD0, 0x3E, 0x0E, 0x46, 0x74, 0x08, 0xD2,
+ 0x03, 0xA1, 0x00, 0xC0, 0xA2, 0x90, 0xAA, 0x09, 0x54, 0xC0, 0x49, 0x9A, 0x88, 0xD2, 0x31, 0xAA, 0x04, 0x75, 0x01, 0xC0, 0x44, 0x92, 0x08, 0xD2, 0x29, 0xAA, 0x00, 0x75, 0x01, 0xC0,
+ 0x22, 0x91, 0x88, 0xD2, 0x35, 0xAA, 0x00, 0x75, 0x00, 0xC0, 0x84, 0x90, 0x14, 0xC0, 0xA8, 0x9B, 0x88, 0xD2, 0x3D, 0xAA, 0x06, 0x75, 0x01, 0xC0, 0x64, 0x90, 0x88, 0xD2, 0x39, 0xAA,
+ 0x00, 0x75, 0x82, 0x0C, 0x01, 0xD0, 0x92, 0x0C, 0x06, 0x75, 0x4C, 0x9E, 0x82, 0x08, 0x01, 0xD0, 0x92, 0x08, 0x00, 0xE0, 0x42, 0x32, 0x00, 0xC0, 0x02, 0x91, 0x88, 0xD2, 0xB6, 0xA9,
+ 0x34, 0xC0, 0x47, 0x98, 0x00, 0xC0, 0xC0, 0x91, 0x88, 0xD2, 0xB6, 0xA9, 0x34, 0xC0, 0x99, 0x98, 0x00, 0xC0, 0x00, 0x91, 0x14, 0xC0, 0x62, 0x9A, 0x00, 0xC0, 0x80, 0x90, 0x34, 0xC0,
+ 0xF9, 0x99, 0x14, 0xC0, 0x8A, 0x98, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x20, 0xB7, 0x14, 0x56, 0xA2, 0xD1, 0x05, 0x5E, 0x11, 0xD0, 0xB2, 0x2C,
+ 0x04, 0x2A, 0x20, 0xB5, 0x49, 0x43, 0x80, 0xB5, 0xC9, 0x42, 0xA2, 0xD1, 0x8D, 0x5C, 0xA2, 0xD1, 0x11, 0x5E, 0x84, 0x28, 0x20, 0xB5, 0x49, 0x42, 0x04, 0x2A, 0x80, 0xB5, 0xC9, 0x41,
+ 0xA2, 0xD1, 0x95, 0x5C, 0xA2, 0xD1, 0x19, 0x5E, 0x84, 0x28, 0x20, 0xB5, 0x49, 0x41, 0x04, 0x2A, 0x80, 0xB5, 0xC9, 0x40, 0xA2, 0xD1, 0x9D, 0x5C, 0xA2, 0xD1, 0x21, 0x5E, 0x84, 0x28,
+ 0x20, 0xB5, 0x49, 0x40, 0x04, 0x2A, 0x80, 0xB5, 0xC9, 0x46, 0xA2, 0xD1, 0xA5, 0x5C, 0xA2, 0xD1, 0x2D, 0x5E, 0x8C, 0x28, 0x20, 0xB5, 0x49, 0x46, 0x04, 0x2A, 0x80, 0xB5, 0xC9, 0x45,
+ 0xA2, 0xD1, 0xB1, 0x5C, 0xA2, 0xD1, 0x35, 0x5E, 0x84, 0x28, 0x20, 0xB5, 0x49, 0x45, 0x04, 0x2A, 0x80, 0xB5, 0xC9, 0x44, 0xA2, 0xD1, 0xB9, 0x5C, 0xA2, 0xD1, 0x3D, 0x5E, 0x84, 0x28,
+ 0x20, 0xB5, 0x49, 0x44, 0x04, 0x2A, 0x80, 0xB5, 0xC9, 0x43, 0xA2, 0xD1, 0xC1, 0x5C, 0xA2, 0xD1, 0x4D, 0x5E, 0x9C, 0x28, 0x20, 0xB5, 0x49, 0x49, 0x04, 0x2A, 0x80, 0xB5, 0xC9, 0x48,
+ 0xA2, 0xD1, 0xD1, 0x5C, 0xA2, 0xD1, 0x55, 0x5E, 0x84, 0x28, 0x20, 0xB5, 0x49, 0x48, 0x04, 0x2A, 0x80, 0xB5, 0xC9, 0x47, 0xA2, 0xD1, 0xD9, 0x5C, 0xA2, 0xD1, 0x61, 0x5E, 0x8C, 0x28,
+ 0x20, 0xB5, 0x49, 0x47, 0x04, 0x2A, 0x80, 0xB5, 0xC9, 0x49, 0xA2, 0xD1, 0xE5, 0x5C, 0xA2, 0xD1, 0x09, 0x5E, 0x8C, 0x28, 0x20, 0xB5, 0x49, 0x4A, 0x04, 0x2A, 0x80, 0xB5, 0xC9, 0x4A,
+ 0xA2, 0xD1, 0xED, 0x5C, 0xA2, 0xD1, 0x79, 0x5E, 0x60, 0xB5, 0xC9, 0x4C, 0xC1, 0x59, 0x60, 0xB5, 0x49, 0x4D, 0xF5, 0x5D, 0x84, 0x2D, 0x60, 0xB5, 0x51, 0x4C, 0x8C, 0x28, 0x20, 0xB5,
+ 0x49, 0x4B, 0x80, 0xB5, 0xC9, 0x4B, 0x22, 0x9C, 0x8D, 0xA6, 0x40, 0x84, 0x40, 0xB7, 0x0C, 0x55, 0x88, 0xD0, 0xDE, 0xA8, 0xF1, 0xD3, 0x1E, 0x2E, 0x08, 0x75, 0x82, 0x08, 0x01, 0xD0,
+ 0x92, 0x18, 0x08, 0xD0, 0xD9, 0xAA, 0x02, 0x0A, 0x9F, 0xB5, 0x6C, 0x7E, 0x7F, 0x0A, 0x42, 0x42, 0xA9, 0x9D, 0x49, 0x9D, 0x40, 0xB7, 0x14, 0x56, 0x01, 0xC3, 0x94, 0x24, 0x1E, 0x9D,
+ 0x82, 0x0B, 0xFF, 0xB5, 0x6C, 0x7F, 0x05, 0x07, 0x48, 0x75, 0x84, 0x28, 0x01, 0xC3, 0x96, 0x30, 0x90, 0xD0, 0xD9, 0xA0, 0x00, 0xC0, 0x84, 0x90, 0x00, 0xD0, 0xDD, 0xAA, 0x90, 0xD2,
+ 0x5D, 0xAA, 0x04, 0x75, 0x00, 0xC0, 0x24, 0x93, 0x11, 0xD0, 0x12, 0x1A, 0x0E, 0xC0, 0x7C, 0x2A, 0x02, 0x75, 0x00, 0xC0, 0x52, 0x92, 0xF1, 0xD3, 0x1E, 0x2A, 0x02, 0x75, 0x82, 0x0A,
+ 0x00, 0xC0, 0x44, 0x91, 0x91, 0xF0, 0x24, 0x86, 0x08, 0xD2, 0x81, 0xA8, 0x42, 0x74, 0x00, 0xC0, 0x64, 0x90, 0x8E, 0x0A, 0x00, 0xD0, 0xD9, 0xA2, 0x40, 0x75, 0x02, 0x0A, 0x01, 0xD0,
+ 0x42, 0x0A, 0x46, 0x75, 0x82, 0x08, 0x01, 0xD0, 0x92, 0x08, 0x00, 0xE0, 0x42, 0x32, 0x10, 0xD2, 0xDA, 0xA8, 0x82, 0x08, 0x01, 0xD0, 0x92, 0x08, 0x42, 0x76, 0x3F, 0xB5, 0xEC, 0x7E,
+ 0x00, 0xC0, 0x04, 0x92, 0x60, 0xB7, 0x04, 0x72, 0x80, 0xD0, 0x5B, 0xA9, 0x80, 0xB7, 0x8C, 0x72, 0x3D, 0x9E, 0x47, 0x9D, 0x30, 0xC0, 0x4D, 0xAB, 0x40, 0xC0, 0xA6, 0xAA, 0x00, 0xC0,
+ 0x80, 0x90, 0x02, 0x0B, 0x82, 0x0E, 0x90, 0xD2, 0x59, 0xAA, 0x04, 0x75, 0x01, 0xC0, 0xA4, 0x92, 0x40, 0xB7, 0x1C, 0x73, 0x00, 0xD0, 0xCA, 0xA8, 0x60, 0xB7, 0x84, 0x73, 0xCB, 0x9D,
+ 0x20, 0xC0, 0x29, 0xAA, 0xEC, 0x9D, 0x20, 0xB7, 0x8C, 0x71, 0x30, 0xC0, 0xAA, 0xA8, 0x04, 0x1A, 0x26, 0xD2, 0x04, 0x59, 0x90, 0xD2, 0x5D, 0xAA, 0x4B, 0x9D, 0x10, 0xC8, 0xC5, 0xA8,
+ 0x06, 0x75, 0x4C, 0x9E, 0x43, 0x62, 0x9F, 0xB5, 0x6C, 0x7F, 0x00, 0xC0, 0x04, 0x93, 0x80, 0xD0, 0x4B, 0xA9, 0x01, 0xC3, 0x45, 0x62, 0x00, 0xC2, 0x21, 0x5A, 0x0E, 0xC0, 0x7C, 0x2A,
+ 0x10, 0xE3, 0xA1, 0x88, 0x9F, 0xB5, 0x6C, 0x7E, 0x84, 0x18, 0xF1, 0xD3, 0x9E, 0x2B, 0x27, 0xBA, 0x00, 0x40, 0x3F, 0x75, 0x02, 0x85, 0x72, 0xB3, 0x7A, 0x44, 0x5F, 0x9D, 0x60, 0xB7,
+ 0x84, 0x55, 0x00, 0xD0, 0x59, 0xA9, 0x00, 0xD0, 0x42, 0xA9, 0x91, 0xE0, 0xAC, 0x86, 0x00, 0xD0, 0xC5, 0xA9, 0x80, 0xB7, 0x29, 0x40, 0x91, 0xE0, 0xAE, 0x86, 0x00, 0xD0, 0xCA, 0xA9,
+ 0x20, 0xB7, 0x31, 0x40, 0x30, 0x5D, 0x2E, 0x9D, 0x00, 0xD0, 0x4E, 0xA8, 0xCC, 0x5C, 0x1A, 0x9D, 0x00, 0xD0, 0xDD, 0xA8, 0x40, 0x59, 0x94, 0x5D, 0x08, 0x5C, 0x00, 0xC2, 0x68, 0x5A,
+ 0x01, 0xC2, 0x00, 0x3A, 0xB4, 0x58, 0x01, 0xC3, 0x44, 0x32, 0x44, 0x32, 0x42, 0x32, 0x01, 0xC3, 0x46, 0x32, 0x59, 0x9E, 0x42, 0x9E, 0x5A, 0x9D, 0x3D, 0x9E, 0x40, 0xD0, 0x55, 0xA8,
+ 0xA8, 0x59, 0x46, 0x32, 0x42, 0x32, 0x44, 0x32, 0x00, 0xC3, 0x84, 0x58, 0x42, 0x32, 0x01, 0xC3, 0x44, 0x32, 0x02, 0x85, 0x02, 0x74, 0x00, 0xF0, 0x61, 0xA2, 0x00, 0xF0, 0x67, 0xA1,
+ 0x00, 0xC0, 0xC4, 0x90, 0x40, 0xD0, 0x5D, 0xAA, 0x00, 0xC0, 0x80, 0x90, 0x80, 0xD0, 0x41, 0xAA, 0x00, 0xC2, 0x60, 0x5A, 0x00, 0xF0, 0x65, 0xA2, 0x02, 0x85, 0x40, 0xD0, 0xC1, 0xA8,
+ 0x18, 0xF0, 0x73, 0xA1, 0x80, 0xD0, 0x49, 0xAA, 0x80, 0xD0, 0xD2, 0xA8, 0x50, 0x74, 0x80, 0xD0, 0x55, 0xA9, 0x80, 0xD0, 0xCD, 0xA8, 0x82, 0x09, 0x09, 0xD0, 0xB2, 0x09, 0x00, 0xD0,
+ 0x4E, 0xA9, 0x00, 0xC2, 0x58, 0x5A, 0xD0, 0x5C, 0xD4, 0x58, 0x42, 0x32, 0x49, 0x9E, 0x40, 0xD0, 0xC6, 0xA9, 0x48, 0x59, 0x20, 0x5D, 0x42, 0x32, 0x44, 0x32, 0x5F, 0xB7, 0xEC, 0x7E,
+ 0x26, 0x35, 0x90, 0x59, 0x6E, 0xA1, 0x00, 0xC1, 0xC4, 0x58, 0x42, 0x32, 0x69, 0xA2, 0x40, 0xD0, 0xCD, 0xA8, 0x65, 0xAA, 0xC0, 0xD0, 0xCA, 0xA8, 0x40, 0xD0, 0x51, 0xA9, 0x80, 0xD0,
+ 0x46, 0xA9, 0x40, 0xD0, 0xD6, 0xA9, 0xD4, 0x5C, 0x1A, 0x9D, 0x40, 0xD0, 0x5A, 0xA8, 0xBC, 0x58, 0x42, 0x32, 0x20, 0x5D, 0x51, 0x9E, 0x00, 0xD0, 0x51, 0xA8, 0x34, 0x59, 0x98, 0x5D,
+ 0x14, 0x5C, 0x08, 0x58, 0x01, 0xC3, 0x44, 0x32, 0x44, 0x32, 0x42, 0x32, 0x5A, 0x9E, 0x0A, 0x9D, 0x00, 0xD0, 0xD5, 0xA8, 0x44, 0x32, 0x01, 0xC3, 0x44, 0x32, 0xB8, 0x31, 0x40, 0xD0,
+ 0x45, 0xAA, 0xB0, 0x31, 0xB2, 0x31, 0x67, 0x9D, 0x82, 0x0F, 0x42, 0x75, 0x00, 0xC2, 0x40, 0x5A, 0xB8, 0x31, 0xE5, 0xA1, 0x00, 0xC0, 0xE4, 0x90, 0x90, 0xD2, 0x5D, 0xAA, 0x04, 0x75,
+ 0x00, 0xC0, 0x64, 0x90, 0x86, 0x0F, 0x90, 0xD2, 0x59, 0xA8, 0x20, 0xB7, 0x2D, 0x42, 0xA2, 0xD3, 0x40, 0x5E, 0xF2, 0xD3, 0x0E, 0x28, 0x06, 0x76, 0x98, 0x30, 0x18, 0xF0, 0xF1, 0xA0,
+ 0x02, 0xD0, 0x06, 0x2A, 0x12, 0xD0, 0x98, 0x30, 0x02, 0x85, 0x18, 0xF0, 0xF1, 0xA0, 0x04, 0x76, 0x82, 0x0A, 0x18, 0xF0, 0x77, 0xA1, 0x00, 0xC0, 0x02, 0x91, 0x00, 0xD0, 0x4D, 0xAA,
+ 0x00, 0x75, 0x82, 0x0A, 0x02, 0xD0, 0xD2, 0x0A, 0xC0, 0xD0, 0xCE, 0xA9, 0x00, 0xD0, 0xDA, 0xA8, 0xA2, 0xD2, 0x40, 0x5E, 0x00, 0xD0, 0x5D, 0xA9, 0x00, 0xC3, 0xBC, 0x58, 0x42, 0x32,
+ 0x94, 0x5C, 0x49, 0x9E, 0xC0, 0x76, 0x0C, 0x59, 0x42, 0x32, 0x44, 0x32, 0x40, 0xD0, 0x4D, 0xA9, 0x80, 0xC2, 0xB8, 0x58, 0x89, 0x9E, 0x02, 0x0D, 0x01, 0xD0, 0x22, 0x0D, 0x40, 0xD0,
+ 0xC5, 0xA8, 0x89, 0x01, 0x00, 0xC6, 0x80, 0x39, 0x00, 0xC4, 0x00, 0x3A, 0x34, 0xB3, 0x22, 0x44, 0x06, 0x76, 0x34, 0x5D, 0x22, 0x35, 0x20, 0x59, 0x93, 0x9E, 0x00, 0xD0, 0xCA, 0xA8,
+ 0xA0, 0x58, 0x42, 0x32, 0x18, 0xF0, 0x79, 0xA2, 0x89, 0x00, 0x26, 0x35, 0x8C, 0x5C, 0x22, 0x35, 0x18, 0xF0, 0x76, 0xA1, 0x02, 0xD0, 0x06, 0x2A, 0x12, 0xD0, 0x98, 0x30, 0x18, 0xF0,
+ 0xF9, 0xA0, 0x3F, 0xB7, 0x68, 0x78, 0x27, 0xBA, 0x00, 0x40, 0x00, 0xC2, 0x20, 0x5A, 0x09, 0xBA, 0x00, 0x40, 0x42, 0x32, 0x18, 0xF0, 0x7D, 0xA2, 0x9F, 0xB7, 0x6C, 0x7F, 0x58, 0xF0,
+ 0x61, 0xA2, 0x80, 0xD0, 0xD2, 0xA8, 0x80, 0xD0, 0x49, 0xAA, 0x80, 0xD0, 0xCD, 0xA8, 0x94, 0x5C, 0x1A, 0x9D, 0x80, 0xD0, 0x55, 0xA9, 0x00, 0xC2, 0x1C, 0x5A, 0x98, 0x58, 0x42, 0x32,
+ 0x0C, 0x59, 0x01, 0xC3, 0x44, 0x32, 0x44, 0x32, 0x5F, 0xB7, 0xEC, 0x7E, 0x00, 0xC1, 0x88, 0x58, 0x42, 0x32, 0x58, 0xF0, 0x65, 0xA2, 0xBF, 0xB7, 0xEE, 0x7D, 0xDF, 0xB7, 0x6E, 0x7E,
+ 0xFF, 0xB7, 0xEE, 0x7E, 0x02, 0xC0, 0x20, 0x8C, 0x22, 0x9C, 0x0D, 0xA6, 0xE2, 0x0D, 0x14, 0xFF, 0x89, 0x9A, 0x02, 0x74, 0x00, 0xC0, 0x04, 0x91, 0xE2, 0x0D, 0x14, 0xFF, 0x7D, 0x9A,
+ 0xA2, 0x0D, 0x14, 0xFF, 0x7A, 0x9A, 0x60, 0xB7, 0x14, 0x5B, 0xA0, 0xB7, 0x14, 0x55, 0x34, 0xC0, 0xBB, 0x98, 0x40, 0xB7, 0x04, 0x5D, 0xC0, 0xB7, 0x0C, 0x56, 0x90, 0xD2, 0x3D, 0xA0,
+ 0x90, 0xD2, 0x3F, 0xA9, 0x6D, 0x9E, 0x08, 0xD2, 0x4D, 0xAA, 0x2D, 0x9E, 0xB6, 0x9E, 0x30, 0xC0, 0xCD, 0xA8, 0x00, 0x75, 0x90, 0xD2, 0xBD, 0xA0, 0x00, 0xC0, 0xA2, 0x90, 0xA2, 0x0D,
+ 0x14, 0xFF, 0x5D, 0x9A, 0x34, 0xC0, 0xDE, 0x98, 0x90, 0xD2, 0x3D, 0xAA, 0x08, 0x75, 0x07, 0xC0, 0xA2, 0x91, 0x86, 0x0D, 0x14, 0xFF, 0x53, 0x9A, 0x08, 0xD2, 0x49, 0xAA, 0x00, 0x75,
+ 0x00, 0xC0, 0xA2, 0x90, 0x86, 0x0D, 0x14, 0xFF, 0x4B, 0x9A, 0x08, 0xD2, 0x51, 0xAA, 0x00, 0x75, 0x00, 0xC0, 0xA2, 0x90, 0x86, 0x0D, 0x14, 0xFF, 0x43, 0x9A, 0x90, 0xD2, 0x3D, 0xAA,
+ 0x04, 0x75, 0x00, 0xC0, 0x04, 0x91, 0x60, 0xB7, 0x94, 0x5B, 0x34, 0xC0, 0x81, 0x98, 0x10, 0xD2, 0x29, 0xA0, 0x34, 0xC0, 0x39, 0x99, 0x08, 0xD2, 0x41, 0xAA, 0x02, 0x75, 0x00, 0xC0,
+ 0xA4, 0x90, 0x8A, 0x0D, 0x14, 0xFF, 0x2E, 0x9A, 0x90, 0xD2, 0x3D, 0xAA, 0x04, 0x1A, 0x0E, 0xC0, 0x7C, 0x2A, 0x02, 0x75, 0x04, 0xC0, 0x72, 0x91, 0x48, 0xD2, 0x4D, 0xAA, 0x02, 0x75,
+ 0x00, 0xC0, 0x44, 0x91, 0x60, 0xB7, 0x14, 0x5C, 0x34, 0xC0, 0x64, 0x98, 0x90, 0xD2, 0x35, 0xA0, 0x00, 0xC0, 0xA0, 0x90, 0x02, 0x85, 0x90, 0xD2, 0x37, 0xA1, 0x88, 0xD2, 0x3D, 0xAA,
+ 0x02, 0x75, 0x01, 0xC0, 0x84, 0x90, 0x34, 0xC0, 0x79, 0x99, 0x08, 0xD2, 0x39, 0xAA, 0x08, 0x75, 0x00, 0xC0, 0x44, 0x91, 0x34, 0xC0, 0xA4, 0x99, 0x9A, 0x0D, 0x14, 0xFF, 0x05, 0x9A,
+ 0x9A, 0x0D, 0x14, 0xFF, 0x02, 0x9A, 0x08, 0xD2, 0x39, 0xAA, 0x06, 0x75, 0x00, 0xC0, 0x42, 0x91, 0x08, 0xF2, 0x25, 0xAA, 0xFF, 0xCF, 0x7C, 0x2A, 0x61, 0xC0, 0x08, 0x75, 0x00, 0xC0,
+ 0xA4, 0x92, 0x82, 0x0D, 0x8A, 0x09, 0x34, 0xC0, 0x9F, 0x9A, 0x00, 0xC0, 0xE0, 0x91, 0x86, 0x0D, 0x14, 0xFF, 0xEC, 0x99, 0x00, 0x74, 0x02, 0x0A, 0x01, 0xD0, 0x42, 0x0A, 0x86, 0x0D,
+ 0x82, 0x09, 0x08, 0xD2, 0x39, 0xA2, 0x34, 0xC0, 0x90, 0x9A, 0x8A, 0x0D, 0x86, 0x09, 0x34, 0xC0, 0x8C, 0x9A, 0x8A, 0x0D, 0x14, 0xFF, 0xDB, 0x99, 0xC8, 0xD2, 0x39, 0xA0, 0x8A, 0x0D,
+ 0x14, 0xFF, 0xD6, 0x99, 0x50, 0xD2, 0x51, 0xAA, 0x00, 0x75, 0xC8, 0xD2, 0x31, 0xA0, 0x00, 0xC0, 0x82, 0x90, 0x34, 0xC0, 0x8E, 0x99, 0x34, 0xC0, 0x1E, 0x9A, 0x60, 0xB7, 0x94, 0x5C,
+ 0x34, 0xC0, 0x0E, 0x98, 0x88, 0xD2, 0x3D, 0xAA, 0x02, 0x75, 0x08, 0xD2, 0x31, 0xA0, 0x00, 0xC0, 0xC4, 0x90, 0x08, 0xD2, 0x35, 0xA0, 0x00, 0xC0, 0xA0, 0x90, 0x02, 0x85, 0x08, 0xD2,
+ 0x37, 0xA1, 0x86, 0x0D, 0x14, 0xFF, 0xB6, 0x99, 0x48, 0xD2, 0x25, 0xAA, 0x10, 0x75, 0x91, 0xD0, 0xD8, 0x08, 0x00, 0xB5, 0x29, 0x40, 0x00, 0xC0, 0xB4, 0x91, 0x90, 0xD2, 0xCD, 0xA8,
+ 0x40, 0x74, 0x02, 0x0A, 0x02, 0xD0, 0x42, 0x1A, 0x08, 0x2A, 0x08, 0xD2, 0x2D, 0xA2, 0x01, 0xC0, 0x20, 0x93, 0x02, 0x85, 0x08, 0xD2, 0x2F, 0xA1, 0x01, 0xC0, 0x80, 0x92, 0xA0, 0xB7,
+ 0x8C, 0x5C, 0x96, 0x0D, 0x86, 0x09, 0x34, 0xC0, 0x45, 0x9A, 0x34, 0xC0, 0x06, 0x9A, 0xAB, 0x9E, 0x14, 0xC0, 0xD9, 0x9B, 0xAB, 0x9E, 0x10, 0xD2, 0x31, 0xA0, 0x14, 0xC0, 0xD4, 0x9B,
+ 0x10, 0xD2, 0x35, 0xA0, 0x86, 0x0D, 0x14, 0xFF, 0x88, 0x99, 0x08, 0xD2, 0x49, 0xAA, 0x91, 0xD0, 0xD8, 0x0C, 0x00, 0x75, 0x00, 0xB5, 0x29, 0x40, 0x00, 0xC0, 0xE2, 0x90, 0xD0, 0xD2,
+ 0x25, 0xAA, 0x00, 0x75, 0x00, 0xC0, 0x24, 0x92, 0x90, 0xD2, 0xBD, 0xA8, 0x46, 0x74, 0x00, 0xC0, 0x42, 0x91, 0x40, 0x74, 0x00, 0xC0, 0x24, 0x91, 0x48, 0xD2, 0x51, 0xAA, 0x00, 0x75,
+ 0x00, 0xC0, 0x82, 0x90, 0x34, 0xC0, 0x2C, 0x99, 0x9F, 0xB7, 0xEE, 0x7E, 0xBF, 0xB7, 0x6E, 0x7F, 0xDF, 0xB7, 0xEE, 0x7F, 0x60, 0x8C, 0x22, 0x9C, 0x0D, 0xA6, 0xE2, 0x0D, 0x14, 0xFF,
+ 0x65, 0x99, 0x02, 0x74, 0x02, 0x0B, 0x00, 0xC0, 0x04, 0x91, 0xE2, 0x0D, 0x14, 0xFF, 0x58, 0x99, 0xA2, 0x0D, 0x14, 0xFF, 0x55, 0x99, 0x60, 0xB7, 0x94, 0x5D, 0x14, 0xC0, 0x98, 0x9B,
+ 0x20, 0xB7, 0x0C, 0x55, 0x40, 0xB7, 0x04, 0x5E, 0x00, 0xB5, 0xA9, 0x4C, 0x40, 0xB7, 0xB9, 0x4C, 0x2D, 0x9E, 0x30, 0xC0, 0x4D, 0xAA, 0xF2, 0xF3, 0xCE, 0x28, 0x83, 0x02, 0x80, 0xB5,
+ 0xA9, 0x4C, 0x00, 0xC0, 0xC4, 0x90, 0xF4, 0xFF, 0xB8, 0x9A, 0x04, 0xC0, 0x20, 0x91, 0x44, 0x76, 0x00, 0xC0, 0x04, 0x93, 0x60, 0xB7, 0x14, 0x5B, 0x14, 0xC0, 0x7B, 0x9B, 0x40, 0xB7,
+ 0x04, 0x5D, 0x88, 0xD2, 0x3D, 0xA0, 0x88, 0xD2, 0x3F, 0xA9, 0x2D, 0x9E, 0x30, 0xC0, 0xCD, 0xA8, 0xF1, 0xD3, 0x1E, 0x2A, 0x08, 0x75, 0x88, 0xD2, 0xBD, 0xA0, 0x03, 0xC0, 0x42, 0x92,
+ 0x00, 0xC0, 0x00, 0x93, 0x46, 0x76, 0x00, 0xC0, 0xA4, 0x92, 0x8E, 0x0D, 0x14, 0xFF, 0x1C, 0x99, 0x40, 0xB7, 0x1C, 0x6F, 0x40, 0xB7, 0x84, 0x6F, 0xF1, 0xD3, 0x0E, 0x2B, 0x47, 0x9D,
+ 0x48, 0x9D, 0x10, 0xC2, 0x45, 0xAA, 0x20, 0xC2, 0xC5, 0xA8, 0x88, 0xD2, 0x3D, 0xA2, 0xC8, 0xD2, 0xA1, 0xA0, 0xA0, 0xB7, 0x14, 0x56, 0x10, 0xD2, 0x2D, 0xAA, 0x00, 0x75, 0x00, 0xC0,
+ 0xA2, 0x90, 0xA2, 0x0D, 0x14, 0xFF, 0x02, 0x99, 0x14, 0xC0, 0x83, 0x9B, 0x86, 0x0D, 0x14, 0xFF, 0xFD, 0x98, 0x86, 0x0D, 0x14, 0xFF, 0xFA, 0x98, 0xC8, 0xD2, 0x25, 0xAA, 0x06, 0x75,
+ 0x01, 0xC0, 0xE4, 0x90, 0x50, 0xD2, 0xA2, 0xA8, 0x40, 0x76, 0x82, 0x08, 0x02, 0xD0, 0x92, 0x08, 0x86, 0x75, 0x02, 0x0A, 0x0A, 0xD0, 0x42, 0x0A, 0x48, 0x78, 0x00, 0xC0, 0x42, 0x91,
+ 0x60, 0xB7, 0x14, 0x70, 0x14, 0xC0, 0x2B, 0x9B, 0x88, 0xD2, 0x29, 0xA0, 0x00, 0xC0, 0xE0, 0x90, 0x40, 0x76, 0x00, 0xC0, 0x84, 0x90, 0x88, 0xD2, 0xAA, 0xA0, 0x11, 0xD0, 0x68, 0x1A,
+ 0x06, 0x75, 0x00, 0xC0, 0x12, 0x91, 0x60, 0xB7, 0x94, 0x5B, 0x14, 0xC0, 0x19, 0x9B, 0x08, 0xD2, 0x29, 0xA0, 0xC8, 0xD2, 0x25, 0xAA, 0x04, 0x75, 0x00, 0xC0, 0x24, 0x93, 0x88, 0xD2,
+ 0x3D, 0xAA, 0x00, 0x75, 0x82, 0x0C, 0x01, 0xD0, 0x92, 0x0C, 0x06, 0x75, 0x4C, 0x9E, 0x82, 0x08, 0x01, 0xD0, 0x92, 0x08, 0x00, 0xE0, 0x42, 0x32, 0x00, 0xC0, 0xE2, 0x90, 0x82, 0x0D,
+ 0x14, 0xC0, 0x0F, 0x98, 0x00, 0xC0, 0xA0, 0x90, 0x82, 0x0D, 0x14, 0xC0, 0x62, 0x98, 0x9F, 0xB7, 0xEE, 0x7E, 0xBF, 0xB7, 0x6E, 0x7F, 0xDF, 0xB7, 0xEE, 0x7F, 0x60, 0x8C, 0x22, 0x9C,
+ 0x0D, 0xA6, 0xA0, 0xB7, 0x14, 0x55, 0xD0, 0xD2, 0x25, 0xAA, 0x06, 0x75, 0x82, 0x08, 0x01, 0xD0, 0x92, 0x08, 0x1C, 0xC0, 0xFE, 0x7E, 0x02, 0x0A, 0x02, 0xD0, 0x42, 0x0A, 0x48, 0x78,
+ 0x00, 0xC0, 0x82, 0x91, 0xD0, 0xD2, 0x21, 0xAA, 0xE2, 0x0D, 0x90, 0xD2, 0x3D, 0xA2, 0x14, 0xFF, 0x94, 0x98, 0xA2, 0x0D, 0x14, 0xFF, 0x91, 0x98, 0xC0, 0xB7, 0x0C, 0x56, 0x14, 0xC0,
+ 0x90, 0x9B, 0x08, 0xD2, 0x41, 0xAA, 0x00, 0x75, 0x00, 0xC0, 0xA2, 0x90, 0x8A, 0x0D, 0x14, 0xFF, 0x85, 0x98, 0xD0, 0xD2, 0x25, 0xAA, 0x04, 0x75, 0x00, 0xC0, 0xC4, 0x90, 0x8E, 0x0D,
+ 0x82, 0x09, 0x34, 0xC0, 0x2A, 0x99, 0xA0, 0xB7, 0x8C, 0x5C, 0x96, 0x0D, 0x86, 0x09, 0x34, 0xC0, 0x24, 0x99, 0x34, 0xC0, 0xE5, 0x98, 0xAB, 0x9E, 0x14, 0xC0, 0xB8, 0x9A, 0xAB, 0x9E,
+ 0x10, 0xD2, 0x31, 0xA0, 0x14, 0xC0, 0xB3, 0x9A, 0x10, 0xD2, 0x35, 0xA0, 0x86, 0x0D, 0x14, 0xFF, 0x67, 0x98, 0x48, 0xD2, 0x51, 0xAA, 0x91, 0xD0, 0xD8, 0x0C, 0x00, 0x75, 0x00, 0xB5,
+ 0x29, 0x40, 0x00, 0xC0, 0x82, 0x90, 0x34, 0xC0, 0x1D, 0x98, 0x9F, 0xB7, 0xEE, 0x7E, 0xBF, 0xB7, 0x6E, 0x7F, 0xDF, 0xB7, 0xEE, 0x7F, 0x60, 0x8C, 0x22, 0x9C, 0x0D, 0xA6, 0x20, 0xB7,
+ 0x14, 0x55, 0x80, 0xB7, 0xC9, 0x4C, 0x06, 0x75, 0x82, 0x08, 0x01, 0xD0, 0x92, 0x08, 0x1C, 0xC0, 0xFE, 0x7E, 0x02, 0x0A, 0x02, 0xD0, 0x42, 0x0A, 0x48, 0x78, 0x83, 0x06, 0x00, 0xC0,
+ 0x82, 0x91, 0xD0, 0xD2, 0x21, 0xAA, 0xE2, 0x0D, 0x90, 0xD2, 0x3D, 0xA2, 0x14, 0xFF, 0x3B, 0x98, 0xA2, 0x0D, 0x14, 0xFF, 0x38, 0x98, 0x14, 0xC0, 0x39, 0x9B, 0x20, 0xB7, 0x0C, 0x56,
+ 0x80, 0xB7, 0x29, 0x40, 0x00, 0x75, 0x03, 0x03, 0x00, 0xC0, 0xA2, 0x90, 0x8A, 0x0D, 0x14, 0xFF, 0x2B, 0x98, 0x90, 0xD2, 0x3D, 0xAA, 0x04, 0x75, 0x00, 0xC0, 0xA4, 0x91, 0xD0, 0xD2,
+ 0x25, 0xAA, 0x04, 0x75, 0x00, 0xC0, 0x04, 0x91, 0x60, 0xB7, 0x94, 0x5B, 0x14, 0xC0, 0x64, 0x9A, 0x10, 0xD2, 0x29, 0xA0, 0xD0, 0xD2, 0x25, 0xAA, 0x06, 0x75, 0x00, 0xC0, 0xA4, 0x92,
+ 0x90, 0xD2, 0x3D, 0xAA, 0x02, 0x75, 0x00, 0xC0, 0x04, 0x92, 0x86, 0x0D, 0x14, 0xFF, 0x0E, 0x98, 0x1C, 0xC0, 0x3E, 0x7C, 0x90, 0xD2, 0x2D, 0xA0, 0x00, 0xC0, 0xE4, 0x90, 0x86, 0x0D,
+ 0x14, 0xFF, 0x05, 0x98, 0x90, 0xD2, 0x31, 0xA0, 0x48, 0xD2, 0x4D, 0xAA, 0x00, 0x75, 0x00, 0xC0, 0x42, 0x91, 0x60, 0xB7, 0x14, 0x5C, 0x14, 0xC0, 0x41, 0x9A, 0x90, 0xD2, 0x35, 0xA0,
+ 0x00, 0xC0, 0x80, 0x90, 0x90, 0xD2, 0x35, 0xA2, 0x08, 0xD2, 0x59, 0xAA, 0x02, 0x75, 0x00, 0xC0, 0x04, 0x91, 0x60, 0xB7, 0x14, 0x71, 0x14, 0xC0, 0x32, 0x9A, 0x90, 0xD2, 0x39, 0xA0,
+ 0xD0, 0xD2, 0x25, 0xAA, 0x04, 0x75, 0x00, 0xC0, 0xE4, 0x92, 0x90, 0xD2, 0x3D, 0xAA, 0x04, 0x75, 0x00, 0xC0, 0x44, 0x92, 0x91, 0xD0, 0x54, 0x0E, 0x02, 0x85, 0x86, 0x0D, 0x08, 0xD2,
+ 0x03, 0xA1, 0xF4, 0xFE, 0xD7, 0x9B, 0x86, 0x0D, 0x82, 0x09, 0x34, 0xC0, 0x81, 0x98, 0x8A, 0x0D, 0x86, 0x09, 0x34, 0xC0, 0x7D, 0x98, 0xD0, 0xD2, 0x25, 0xAA, 0x04, 0x75, 0x00, 0xC0,
+ 0xE4, 0x93, 0x90, 0xD2, 0x3D, 0xAA, 0x02, 0x75, 0x00, 0xC0, 0x44, 0x93, 0x86, 0x0D, 0xF4, 0xFE, 0xC2, 0x9B, 0x91, 0xD0, 0x54, 0x0E, 0x86, 0x0D, 0x08, 0xD2, 0x01, 0xA0, 0xF4, 0xFE,
+ 0xBB, 0x9B, 0x1C, 0xC0, 0x3E, 0x7C, 0x00, 0xC0, 0x02, 0x91, 0x9A, 0x0D, 0xF4, 0xFE, 0xB4, 0x9B, 0x9A, 0x0D, 0xF4, 0xFE, 0xB1, 0x9B, 0x8A, 0x0D, 0x86, 0x09, 0x34, 0xC0, 0x5B, 0x98,
+ 0xD0, 0xD2, 0x25, 0xAA, 0x06, 0x75, 0x01, 0xC0, 0x44, 0x92, 0x14, 0xC0, 0x10, 0x9B, 0x10, 0xD2, 0x39, 0xAA, 0x08, 0x75, 0x01, 0xC0, 0x44, 0x90, 0x90, 0xD2, 0x3D, 0xAA, 0x02, 0x75,
+ 0x00, 0xC0, 0xA4, 0x93, 0x14, 0xC0, 0x36, 0x9B, 0x60, 0xB7, 0x94, 0x70, 0x14, 0xC0, 0xDD, 0x99, 0x91, 0xD0, 0xDA, 0x0E, 0x9A, 0x0D, 0x08, 0xD2, 0x21, 0xA0, 0xF4, 0xFE, 0x8F, 0x9B,
+ 0x9A, 0x0D, 0xF4, 0xFE, 0x8C, 0x9B, 0x08, 0xD2, 0x21, 0xAA, 0x00, 0x75, 0x00, 0xC0, 0x04, 0x91, 0x9A, 0x0D, 0xF4, 0xFE, 0x84, 0x9B, 0x9A, 0x0D, 0xF4, 0xFE, 0x81, 0x9B, 0x90, 0xD2,
+ 0x3D, 0xAA, 0x04, 0x75, 0x00, 0xC0, 0xC4, 0x90, 0x92, 0x0D, 0x8A, 0x09, 0x34, 0xC0, 0x26, 0x98, 0xD0, 0xD2, 0x25, 0xAA, 0x04, 0x75, 0x0A, 0x85, 0x02, 0xE0, 0x22, 0x85, 0xCF, 0x9D,
+ 0xF4, 0xFE, 0x6F, 0x9B, 0xD0, 0xD2, 0x25, 0xAA, 0x91, 0xD0, 0xD6, 0x0C, 0x06, 0x75, 0x00, 0xB5, 0x29, 0x40, 0x00, 0xC0, 0x84, 0x91, 0x90, 0xD2, 0x3D, 0xAA, 0x02, 0x75, 0x00, 0xC0,
+ 0xE4, 0x90, 0x90, 0xD2, 0x2D, 0xAA, 0x00, 0x75, 0x00, 0xC0, 0xA0, 0x90, 0xD0, 0xD2, 0x25, 0xAA, 0x04, 0x75, 0x8A, 0x0D, 0x00, 0xC0, 0x62, 0x90, 0x8E, 0x0D, 0xF4, 0xFE, 0x53, 0x9B,
+ 0xD0, 0xD2, 0x3D, 0xA0, 0x8E, 0x0D, 0xF4, 0xFE, 0x4E, 0x9B, 0xD0, 0xD2, 0x25, 0xAA, 0x04, 0x75, 0xD0, 0xD2, 0x35, 0xA0, 0x00, 0xC0, 0xA4, 0x92, 0x8A, 0x0D, 0xF4, 0xFE, 0x44, 0x9B,
+ 0x91, 0xD0, 0x54, 0x0E, 0x08, 0xD2, 0x81, 0xA8, 0x91, 0xD0, 0x50, 0x0E, 0x42, 0x74, 0x08, 0xD2, 0x01, 0xA0, 0x00, 0xC0, 0xE2, 0x92, 0x90, 0xD2, 0x3D, 0xAA, 0x04, 0x75, 0x00, 0xC0,
+ 0x00, 0x92, 0x06, 0x75, 0x00, 0xC0, 0xC4, 0x92, 0x10, 0xD2, 0x39, 0xAA, 0x06, 0x75, 0x00, 0xC0, 0x42, 0x91, 0x10, 0xF2, 0x25, 0xAA, 0xFF, 0xCF, 0x7C, 0x2A, 0x61, 0xC0, 0x08, 0x75,
+ 0x00, 0xC0, 0x24, 0x91, 0x8A, 0x0D, 0xF4, 0xFE, 0x21, 0x9B, 0x91, 0xD0, 0x52, 0x0E, 0x08, 0xD2, 0x01, 0xA0, 0x48, 0xD2, 0x51, 0xAA, 0x00, 0x75, 0x00, 0xC0, 0x82, 0x90, 0x14, 0xC0,
+ 0xD7, 0x9A, 0x14, 0xC0, 0x67, 0x9B, 0x60, 0xB7, 0x94, 0x5C, 0x14, 0xC0, 0x57, 0x99, 0x10, 0xD2, 0x31, 0xA0, 0x86, 0x0D, 0xF4, 0xFE, 0x0B, 0x9B, 0x50, 0xD2, 0x25, 0xAA, 0x91, 0xD0,
+ 0xD8, 0x0C, 0x10, 0x75, 0x00, 0xB5, 0x29, 0x40, 0x00, 0xC0, 0xB4, 0x91, 0x88, 0xD2, 0xCD, 0xA8, 0x40, 0x74, 0x02, 0x0A, 0x02, 0xD0, 0x42, 0x1A, 0x08, 0x2A, 0x10, 0xD2, 0x2D, 0xA2,
+ 0x00, 0xC0, 0xA0, 0x90, 0x02, 0x85, 0x10, 0xD2, 0x2F, 0xA1, 0x9F, 0xB7, 0xEE, 0x7E, 0xBF, 0xB7, 0x6E, 0x7F, 0xDF, 0xB7, 0xEE, 0x7F, 0x60, 0x8C, 0x22, 0x9C, 0x0D, 0xA6, 0xA0, 0xB7,
+ 0x0C, 0x55, 0x02, 0x0F, 0xC8, 0xD2, 0x2A, 0xA3, 0xF4, 0xFE, 0xEF, 0x9A, 0x20, 0xB7, 0x0C, 0x56, 0x80, 0xB7, 0x29, 0x42, 0x00, 0x75, 0x03, 0x03, 0x00, 0xC0, 0x42, 0x91, 0x86, 0x0D,
+ 0xF4, 0xFE, 0xD9, 0x9A, 0x8A, 0x0D, 0xF4, 0xFE, 0xD6, 0x9A, 0x00, 0xC0, 0xA0, 0x90, 0x8A, 0x0D, 0xF4, 0xFE, 0xD1, 0x9A, 0x88, 0xD2, 0x45, 0xAA, 0x00, 0x75, 0x00, 0xC0, 0xA2, 0x90,
+ 0x86, 0x0D, 0xF4, 0xFE, 0xC9, 0x9A, 0x86, 0x0D, 0xF4, 0xFE, 0xC6, 0x9A, 0x02, 0x74, 0x00, 0xC0, 0xC4, 0x90, 0x88, 0xD2, 0x3D, 0xA0, 0x00, 0xC0, 0xA0, 0x92, 0x88, 0xD2, 0x49, 0xAA,
+ 0x00, 0x75, 0x00, 0xC0, 0xC4, 0x90, 0x88, 0xD2, 0x3D, 0xA2, 0x00, 0xC0, 0x80, 0x91, 0x86, 0x0D, 0xF4, 0xFE, 0xB3, 0x9A, 0x02, 0x74, 0x0A, 0x85, 0x00, 0xC0, 0x64, 0x90, 0x02, 0x85,
+ 0x88, 0xD2, 0x3F, 0xA1, 0x88, 0xD2, 0x3D, 0xAA, 0x04, 0x75, 0x00, 0xC0, 0x04, 0x92, 0x60, 0xB7, 0x94, 0x5B, 0x14, 0xC0, 0xEA, 0x98, 0xF1, 0xD3, 0x0E, 0x2A, 0x2C, 0x75, 0x08, 0xD2,
+ 0x29, 0xA0, 0x00, 0xC0, 0xA4, 0x90, 0x0E, 0x85, 0x88, 0xD2, 0x3F, 0xA1, 0x88, 0xD2, 0x3D, 0xAA, 0x00, 0x75, 0x82, 0x0C, 0x01, 0xD0, 0x92, 0x0C, 0x06, 0x75, 0x82, 0x08, 0x01, 0xD0,
+ 0x92, 0x08, 0x8A, 0x9E, 0x00, 0xE0, 0x94, 0x36, 0x00, 0xC0, 0xA2, 0x90, 0x9E, 0x0D, 0xF4, 0xFE, 0x87, 0x9A, 0x14, 0xC0, 0x88, 0x99, 0x48, 0xD2, 0x4D, 0xAA, 0x00, 0x75, 0x00, 0xC0,
+ 0xE2, 0x91, 0x88, 0xD2, 0x51, 0xAA, 0x00, 0x75, 0x00, 0xC0, 0x42, 0x91, 0x60, 0xB7, 0x14, 0x5C, 0x14, 0xC0, 0xBE, 0x98, 0x88, 0xD2, 0x35, 0xA0, 0x00, 0xC0, 0xA0, 0x90, 0x02, 0x85,
+ 0x88, 0xD2, 0x37, 0xA1, 0x88, 0xD2, 0x3D, 0xAA, 0x02, 0x75, 0x00, 0xC0, 0x52, 0x91, 0x48, 0xD2, 0x5D, 0xAA, 0x00, 0x75, 0x00, 0xC0, 0xA2, 0x90, 0x8A, 0x0D, 0xF4, 0xFE, 0x63, 0x9A,
+ 0x40, 0x77, 0x02, 0xC0, 0xE4, 0x93, 0x88, 0xD2, 0x3D, 0xAA, 0x02, 0x75, 0x00, 0xC0, 0xA4, 0x91, 0x14, 0xC0, 0xC3, 0x99, 0x08, 0xD2, 0x39, 0xAA, 0x08, 0x75, 0x00, 0xC0, 0x44, 0x92,
+ 0x14, 0xC0, 0xEE, 0x99, 0x00, 0xC0, 0xC0, 0x91, 0x04, 0x75, 0x00, 0xC0, 0x64, 0x91, 0x86, 0x0D, 0xF4, 0xFE, 0x4A, 0x9A, 0x00, 0x74, 0x02, 0x0A, 0x01, 0xD0, 0x42, 0x0A, 0x08, 0xD2,
+ 0x39, 0xA2, 0x88, 0xD2, 0x3D, 0xAA, 0x02, 0x75, 0x00, 0xC0, 0xA4, 0x91, 0x08, 0xD2, 0x39, 0xAA, 0x08, 0x75, 0x00, 0xC0, 0x04, 0x91, 0x9A, 0x0D, 0xF4, 0xFE, 0x37, 0x9A, 0x9A, 0x0D,
+ 0xF4, 0xFE, 0x34, 0x9A, 0x08, 0xF2, 0x25, 0xAA, 0xFF, 0xCF, 0x7C, 0x2A, 0x61, 0xC0, 0x08, 0x75, 0x00, 0xC0, 0xE2, 0x90, 0x08, 0xD2, 0x39, 0xAA, 0x06, 0x75, 0x00, 0xC0, 0xC4, 0x90,
+ 0x82, 0x0D, 0x8A, 0x09, 0x14, 0xC0, 0xD1, 0x9A, 0x88, 0xD2, 0x3D, 0xAA, 0x04, 0x75, 0x00, 0xC0, 0xC4, 0x90, 0x86, 0x0D, 0x82, 0x09, 0x14, 0xC0, 0xC8, 0x9A, 0x8A, 0x0D, 0x86, 0x09,
+ 0x14, 0xC0, 0xC4, 0x9A, 0x8A, 0x0D, 0xF4, 0xFE, 0x13, 0x9A, 0xC8, 0xD2, 0x39, 0xA0, 0x8A, 0x0D, 0xF4, 0xFE, 0x0E, 0x9A, 0x48, 0xD2, 0x51, 0xAA, 0x00, 0x75, 0xC8, 0xD2, 0x31, 0xA0,
+ 0x00, 0xC0, 0x82, 0x90, 0x14, 0xC0, 0xC6, 0x99, 0x14, 0xC0, 0x56, 0x9A, 0x88, 0xD2, 0xBD, 0xA8, 0x42, 0x74, 0x02, 0x0A, 0x64, 0xB3, 0x32, 0x48, 0x00, 0x75, 0x00, 0xC0, 0xA4, 0x93,
+ 0xA0, 0xB7, 0x94, 0x5C, 0x8B, 0x05, 0x14, 0xC0, 0x3C, 0x98, 0x88, 0xD2, 0x3D, 0xAA, 0x00, 0x75, 0x82, 0x0C, 0x01, 0xD0, 0x92, 0x0C, 0x06, 0x75, 0x4C, 0x9E, 0x82, 0x08, 0x01, 0xD0,
+ 0x92, 0x08, 0x00, 0xE0, 0x42, 0x32, 0x08, 0xD2, 0x31, 0xA0, 0x00, 0xC0, 0xE2, 0x90, 0x8B, 0x05, 0x14, 0xC0, 0x28, 0x98, 0x08, 0xD2, 0x35, 0xA0, 0x86, 0x0D, 0xF4, 0xFE, 0xDC, 0x99,
+ 0x88, 0xD2, 0xBD, 0xA8, 0x91, 0xD0, 0x58, 0x0A, 0x08, 0xD2, 0x01, 0xA0, 0x44, 0x74, 0x0A, 0x85, 0x08, 0xD2, 0x2F, 0xA1, 0x00, 0xC0, 0x82, 0x91, 0x48, 0xD2, 0x25, 0xAA, 0x10, 0x75,
+ 0x00, 0xC0, 0xF4, 0x90, 0x88, 0xD2, 0x4D, 0xAA, 0x00, 0x75, 0x00, 0xC0, 0xA4, 0x90, 0x02, 0x85, 0x08, 0xD2, 0x2F, 0xA1, 0x9F, 0xB7, 0xEE, 0x7E, 0xBF, 0xB7, 0x6E, 0x7F, 0xDF, 0xB7,
+ 0xEE, 0x7F, 0x60, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x20, 0x84, 0x82, 0x0A, 0x82, 0x08, 0x87, 0x06, 0xDA, 0x9D, 0x00, 0xF0, 0x43, 0xA9, 0x10, 0xF2, 0x23, 0x88, 0xA3, 0x9E, 0x5F, 0xB5,
+ 0x64, 0x7F, 0x00, 0xC2, 0xB0, 0x52, 0xF4, 0xFE, 0xAA, 0x99, 0x5F, 0xB7, 0x64, 0x7F, 0x00, 0xF0, 0x45, 0xAA, 0xD0, 0x32, 0x48, 0x71, 0x00, 0xF0, 0xC1, 0xA8, 0x00, 0xC0, 0x82, 0x91,
+ 0x20, 0xF0, 0x49, 0xAA, 0x48, 0x70, 0x00, 0xC0, 0xE4, 0x90, 0x00, 0xF0, 0x45, 0xAA, 0x48, 0x71, 0xFF, 0xFF, 0x04, 0x93, 0x00, 0xF0, 0x41, 0xAA, 0x48, 0x70, 0x00, 0xC0, 0xC2, 0x90,
+ 0x1C, 0xC0, 0x3E, 0x75, 0xFE, 0xFF, 0x44, 0x93, 0x10, 0xE1, 0x23, 0x8A, 0x26, 0xD0, 0x0B, 0x59, 0x7D, 0x58, 0x10, 0xE2, 0x21, 0x80, 0x07, 0x58, 0x9F, 0xB7, 0xEE, 0x7E, 0xBF, 0xB7,
+ 0x6E, 0x7F, 0x60, 0x8C, 0x22, 0x9C, 0x0D, 0xA6, 0x02, 0xC0, 0x40, 0x84, 0x20, 0xB7, 0x0C, 0x56, 0x80, 0xB7, 0xA9, 0x40, 0x02, 0x0F, 0x00, 0x75, 0x02, 0x0B, 0x83, 0x02, 0x00, 0xC0,
+ 0x62, 0x93, 0x08, 0xD2, 0x29, 0xAA, 0x00, 0x75, 0x00, 0xC0, 0xE2, 0x90, 0x08, 0xD2, 0x35, 0xAA, 0x00, 0x75, 0x00, 0xC0, 0x22, 0x91, 0x8A, 0x0D, 0xF4, 0xFE, 0x65, 0x99, 0xF2, 0xD3,
+ 0x0E, 0x2B, 0x00, 0xC0, 0x40, 0x91, 0x86, 0x0D, 0xF4, 0xFE, 0x5E, 0x99, 0x86, 0x0D, 0xF4, 0xFE, 0x5B, 0x99, 0xF1, 0xD3, 0x0E, 0x2B, 0x08, 0xD2, 0x3D, 0xAA, 0x00, 0x75, 0x02, 0xC0,
+ 0xC2, 0x91, 0x86, 0x0D, 0xF4, 0xFE, 0x51, 0x99, 0x1C, 0xC0, 0x3E, 0x7C, 0x02, 0xC0, 0xE2, 0x90, 0x08, 0xD2, 0x29, 0xAA, 0x00, 0x75, 0x00, 0xC0, 0x02, 0x92, 0x08, 0xD2, 0x35, 0xAA,
+ 0x00, 0x75, 0x00, 0xC0, 0x64, 0x91, 0x08, 0xD2, 0x25, 0xAA, 0xB1, 0x9E, 0x00, 0x75, 0x8A, 0x0E, 0x02, 0xD0, 0x94, 0x0E, 0x00, 0xC0, 0x00, 0x91, 0x08, 0xD2, 0x25, 0xAA, 0x00, 0x75,
+ 0x86, 0x0E, 0x02, 0xD0, 0xE2, 0x0E, 0x6C, 0x9E, 0x82, 0x0A, 0x48, 0x71, 0x01, 0xC0, 0x28, 0x91, 0xD2, 0xF0, 0x00, 0x8D, 0x91, 0xF0, 0x00, 0x8D, 0xCA, 0x0D, 0xF4, 0xFE, 0x28, 0x99,
+ 0x29, 0xF2, 0x45, 0xA0, 0xCA, 0x0D, 0xF4, 0xFE, 0x23, 0x99, 0xA8, 0xD2, 0x08, 0x59, 0x2D, 0x9E, 0x53, 0xE0, 0x00, 0x8D, 0xBA, 0x0D, 0x30, 0xE0, 0x4D, 0xA0, 0xF4, 0xFE, 0x19, 0x99,
+ 0x31, 0xDA, 0x45, 0xA0, 0xBA, 0x0D, 0xF4, 0xFE, 0x14, 0x99, 0xA8, 0xD2, 0x04, 0x59, 0x6C, 0x9E, 0x2D, 0x9E, 0x84, 0x0A, 0x48, 0x71, 0xB3, 0xE0, 0x00, 0x8D, 0x30, 0xC8, 0x4D, 0xA0,
+ 0xFE, 0xFF, 0xE6, 0x93, 0x9F, 0xB7, 0xEE, 0x7B, 0xBF, 0xB7, 0x6E, 0x7C, 0xDF, 0xB7, 0xEE, 0x7C, 0x04, 0xC0, 0x20, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x96, 0x0D, 0xF4, 0xFE, 0xFB, 0x98,
+ 0x20, 0xB7, 0x14, 0x56, 0x20, 0xB7, 0x0C, 0x55, 0x80, 0xB7, 0x49, 0x47, 0x00, 0xB5, 0x29, 0x44, 0x02, 0x75, 0x83, 0x02, 0x83, 0x06, 0x00, 0xC0, 0x02, 0x91, 0x48, 0xD2, 0xA2, 0xA9,
+ 0x50, 0xD2, 0xB9, 0xA9, 0x14, 0xC0, 0x2F, 0x98, 0x48, 0xD2, 0x21, 0xAA, 0x10, 0x75, 0x00, 0xC0, 0x32, 0x91, 0x86, 0x0D, 0xF4, 0xFE, 0xE0, 0x98, 0x48, 0xD2, 0x2D, 0xA0, 0x00, 0xC0,
+ 0xA0, 0x90, 0x02, 0x85, 0x48, 0xD2, 0x2F, 0xA1, 0x50, 0xD2, 0x39, 0xAA, 0x02, 0x75, 0x02, 0x85, 0x48, 0xD2, 0x2B, 0xA1, 0x00, 0xC0, 0x44, 0x92, 0x86, 0x0D, 0xF4, 0xFE, 0xCE, 0x98,
+ 0x1C, 0xC0, 0x3E, 0x7C, 0x48, 0xD2, 0xA1, 0xA8, 0x02, 0x0A, 0x01, 0xD0, 0x42, 0x0A, 0x48, 0xD2, 0x29, 0xA0, 0xC8, 0xD2, 0x2D, 0xA2, 0x48, 0xD2, 0xA5, 0xA0, 0x9F, 0xB7, 0x6E, 0x7F,
+ 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x20, 0xB7, 0x0C, 0x55, 0xF1, 0xD3, 0x3E, 0x2E, 0x0E, 0xE0, 0xFC, 0x29, 0x02, 0x85, 0x80, 0xB5, 0xA9, 0x44, 0x40, 0xB5, 0xB9, 0x4D,
+ 0x00, 0xC0, 0xC2, 0x90, 0xC4, 0x74, 0x00, 0xC0, 0x22, 0x92, 0x22, 0x9C, 0x10, 0x75, 0x40, 0xB3, 0xB4, 0x48, 0x40, 0xB7, 0x1C, 0x75, 0x4B, 0x9D, 0x20, 0xC2, 0x05, 0xAA, 0x06, 0x85,
+ 0x40, 0xB5, 0xB9, 0x4D, 0x80, 0xB5, 0xA9, 0x44, 0x22, 0x9C, 0x06, 0x85, 0x40, 0xB5, 0xB9, 0x4D, 0x22, 0x9C, 0x05, 0xA6, 0x20, 0xB7, 0x0C, 0x55, 0x80, 0xB7, 0xA9, 0x4B, 0x02, 0x75,
+ 0x83, 0x02, 0x00, 0xC0, 0x04, 0x91, 0x60, 0xB7, 0x14, 0x5F, 0x20, 0xB7, 0x8C, 0x5F, 0x00, 0xC0, 0xC0, 0x90, 0x60, 0xB7, 0x14, 0x61, 0x20, 0xB7, 0x8C, 0x61, 0x48, 0xD2, 0x25, 0xAA,
+ 0x18, 0x75, 0x00, 0xC0, 0x14, 0x91, 0xF4, 0xFF, 0xC5, 0x9A, 0x40, 0xB7, 0x04, 0x60, 0x00, 0xC0, 0xE0, 0x90, 0x8B, 0x9E, 0xF4, 0xFF, 0xBE, 0x9A, 0x40, 0xB7, 0x84, 0x60, 0x08, 0xD2,
+ 0x39, 0xA0, 0x08, 0xD2, 0x3B, 0xA9, 0x2D, 0x9E, 0x30, 0xC0, 0x4D, 0xAA, 0x08, 0xD2, 0x39, 0xA2, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x05, 0xA6,
+ 0xA0, 0xB7, 0x0C, 0x55, 0x48, 0xD2, 0x25, 0xAA, 0x18, 0x75, 0x00, 0xC0, 0x54, 0x91, 0x60, 0xB7, 0x14, 0x61, 0xF4, 0xFF, 0xA1, 0x9A, 0x40, 0xB7, 0x04, 0x62, 0x00, 0xC0, 0x00, 0x91,
+ 0x60, 0xB7, 0x94, 0x61, 0xF4, 0xFF, 0x99, 0x9A, 0x40, 0xB7, 0x84, 0x62, 0x08, 0xD2, 0x3D, 0xA0, 0x08, 0xD2, 0x3F, 0xA9, 0x2D, 0x9E, 0x30, 0xC0, 0x4D, 0xAA, 0x08, 0xD2, 0x3D, 0xA2,
+ 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x20, 0xB7, 0x0C, 0x56, 0xA0, 0xB7, 0x0C, 0x55, 0x80, 0xB7, 0x29, 0x46, 0xAD, 0x9E, 0x02, 0x85,
+ 0x48, 0xD2, 0x33, 0xA1, 0x04, 0x75, 0x06, 0x85, 0xC8, 0xD2, 0x2B, 0xA1, 0x00, 0xC0, 0x04, 0x91, 0x48, 0xD2, 0x33, 0xA1, 0x14, 0xC0, 0x5F, 0x98, 0x02, 0xC0, 0xE0, 0x92, 0x80, 0xB7,
+ 0x29, 0x46, 0x02, 0x75, 0x82, 0x0C, 0x01, 0xD0, 0x92, 0x0C, 0x06, 0x75, 0x4C, 0x9E, 0x82, 0x08, 0x01, 0xD0, 0x92, 0x08, 0x00, 0xE0, 0x42, 0x32, 0x02, 0xC0, 0x02, 0x91, 0x86, 0x0D,
+ 0xF4, 0xFE, 0x18, 0x98, 0xF1, 0xF3, 0x0E, 0x2A, 0x48, 0xD2, 0x31, 0xA0, 0x01, 0xC0, 0xA2, 0x93, 0x0E, 0x85, 0x48, 0xD2, 0x33, 0xA1, 0x8A, 0x0D, 0xF4, 0xFE, 0x0C, 0x98, 0x48, 0xD2,
+ 0x35, 0xA0, 0x48, 0xD2, 0x35, 0xAA, 0x04, 0x75, 0x00, 0xC0, 0xA2, 0x92, 0x00, 0xC0, 0xFA, 0x90, 0x02, 0x75, 0x00, 0xC0, 0x22, 0x91, 0x00, 0xC0, 0x40, 0x93, 0x06, 0x75, 0x00, 0xC0,
+ 0x42, 0x92, 0x00, 0xC0, 0xA0, 0x92, 0x8A, 0x0D, 0xD4, 0xFE, 0xF6, 0x9B, 0x48, 0xD2, 0x3D, 0xA0, 0x00, 0xC0, 0xC0, 0x91, 0x8A, 0x0D, 0xD4, 0xFE, 0xEF, 0x9B, 0x88, 0xD2, 0x21, 0xA0,
+ 0x00, 0xC0, 0xE0, 0x90, 0x86, 0x0D, 0xD4, 0xFE, 0xE8, 0x9B, 0x48, 0xD2, 0x39, 0xA0, 0x10, 0xF2, 0x2D, 0xAA, 0x0F, 0xC0, 0xFE, 0x08, 0xF0, 0xCF, 0x80, 0x08, 0x42, 0x22, 0x60, 0xC0,
+ 0x00, 0x75, 0x00, 0xC0, 0x02, 0x91, 0x14, 0xC0, 0x0C, 0x98, 0x00, 0xC0, 0x80, 0x90, 0x48, 0xD2, 0x35, 0xA2, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C,
+ 0x39, 0xF8, 0x05, 0xA2, 0x8E, 0x0D, 0xD4, 0xFE, 0xCA, 0x9B, 0xF2, 0xD3, 0x8E, 0x28, 0x4E, 0x76, 0x00, 0xC0, 0x84, 0x91, 0x96, 0x0D, 0xD4, 0xFE, 0xC2, 0x9B, 0x80, 0xB7, 0x0C, 0x55,
+ 0x88, 0xD2, 0x05, 0xA0, 0xF8, 0xF9, 0x1D, 0xAA, 0x22, 0x9C, 0x20, 0xB7, 0x0C, 0x55, 0x80, 0xB7, 0xA9, 0x44, 0x4A, 0x9E, 0x28, 0x02, 0x04, 0x0A, 0x80, 0xB5, 0xA9, 0x48, 0xF8, 0xF9,
+ 0x1D, 0xAA, 0x22, 0x9C, 0x05, 0xA6, 0x80, 0xB7, 0x0C, 0x56, 0x48, 0xD2, 0x95, 0xA8, 0x40, 0x74, 0x00, 0xC0, 0x42, 0x92, 0x86, 0x0D, 0xD4, 0xFE, 0xA4, 0x9B, 0xA0, 0xB7, 0x0C, 0x55,
+ 0x1C, 0xC0, 0x3E, 0x7C, 0x08, 0xD2, 0x21, 0xA0, 0x00, 0xC0, 0xE2, 0x90, 0x8A, 0x0D, 0xD4, 0xFE, 0x99, 0x9B, 0x08, 0xD2, 0x25, 0xA0, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F,
+ 0x40, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x20, 0xB7, 0x0C, 0x56, 0x80, 0xB7, 0xA9, 0x49, 0x00, 0x75, 0xA0, 0xB7, 0x0C, 0x55, 0x01, 0xC0, 0x22, 0x90, 0x48, 0xD2, 0x25, 0xAA, 0x10, 0x75,
+ 0x00, 0xC0, 0x92, 0x93, 0x60, 0xB7, 0x94, 0x74, 0xF4, 0xFF, 0xC5, 0x99, 0x40, 0xB7, 0x84, 0x5E, 0x08, 0xD2, 0x2D, 0xA0, 0x08, 0xD2, 0x2F, 0xA9, 0x2D, 0x9E, 0x30, 0xC0, 0xCD, 0xA8,
+ 0xF1, 0xD3, 0x1E, 0x2A, 0x06, 0x75, 0x08, 0xD2, 0xAD, 0xA0, 0x00, 0xC0, 0xC4, 0x92, 0x9A, 0x0D, 0x8A, 0x09, 0x14, 0xC0, 0x18, 0x98, 0x00, 0xC0, 0x00, 0x92, 0x80, 0xB7, 0xA9, 0x49,
+ 0x00, 0x75, 0x02, 0x85, 0x00, 0xC0, 0x02, 0x91, 0x48, 0xD2, 0x25, 0xAA, 0x10, 0x75, 0x00, 0xC0, 0x74, 0x90, 0x0A, 0x85, 0x08, 0xD2, 0x2F, 0xA1, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7,
+ 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x5C, 0x9E, 0xF2, 0xD3, 0xCE, 0x2A, 0x96, 0x0D, 0xF1, 0xD3, 0xBE, 0x2A, 0xD4, 0xFE, 0x51, 0x9B, 0x3C, 0x28, 0x00, 0x74, 0x06, 0x0D,
+ 0x54, 0x9E, 0x60, 0xB7, 0x0C, 0x55, 0x01, 0xD0, 0x42, 0x1A, 0x00, 0x75, 0x54, 0x9E, 0x91, 0xD0, 0x3C, 0x09, 0x08, 0xD0, 0xC2, 0xA8, 0x00, 0xC2, 0x94, 0x50, 0x8B, 0x9E, 0x96, 0x34,
+ 0x08, 0xD0, 0xC2, 0xA0, 0x00, 0xC0, 0xA2, 0x91, 0x8A, 0x0D, 0xD4, 0xFE, 0xF8, 0x9A, 0xAB, 0x9E, 0x14, 0xC0, 0x1D, 0x98, 0x86, 0x0D, 0xD4, 0xFE, 0xF2, 0x9A, 0x00, 0xC0, 0x40, 0x92,
+ 0x91, 0xD0, 0x3E, 0x0A, 0x08, 0xD2, 0x81, 0xA8, 0xD4, 0x54, 0x4A, 0x9E, 0x86, 0x0D, 0x94, 0x30, 0x08, 0xD2, 0x81, 0xA0, 0xD4, 0xFE, 0x1E, 0x9B, 0x60, 0xB7, 0x14, 0x74, 0xF4, 0xFF,
+ 0x61, 0x99, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x40, 0xB7, 0x0C, 0x56, 0x88, 0xD0, 0x51, 0xAA, 0x20, 0xB7, 0x94, 0x47, 0x40, 0xB7, 0x9C, 0x56,
+ 0x24, 0xD2, 0x0C, 0x59, 0x08, 0x3D, 0x40, 0xB5, 0xD5, 0x41, 0xCB, 0x9D, 0x88, 0x5D, 0x3E, 0xC0, 0xF0, 0x2D, 0x20, 0xE0, 0xEA, 0xA9, 0x40, 0xC0, 0xE0, 0x0C, 0x60, 0xB5, 0x55, 0x40,
+ 0xC8, 0xD0, 0x45, 0xAA, 0xC8, 0xD0, 0xC9, 0xA8, 0x04, 0x1A, 0x24, 0xD2, 0x4C, 0x59, 0x84, 0x18, 0xB0, 0x58, 0x8B, 0x9E, 0xD0, 0x1C, 0x26, 0x35, 0x40, 0xB5, 0x55, 0x40, 0xC8, 0xD0,
+ 0x45, 0xAA, 0xC8, 0xD0, 0xC9, 0xA8, 0x43, 0x62, 0x02, 0xC0, 0x80, 0x0C, 0x0A, 0x0D, 0x04, 0x1A, 0x80, 0xB5, 0x4D, 0x40, 0xBC, 0xCF, 0xF1, 0x0C, 0x40, 0xB5, 0x55, 0x40, 0x49, 0x9E,
+ 0x61, 0xB9, 0xF0, 0x7F, 0x00, 0xC0, 0x01, 0x90, 0x40, 0xB7, 0x35, 0x40, 0x11, 0xD0, 0x28, 0x2E, 0x00, 0x75, 0xFF, 0xFF, 0xE2, 0x92, 0x22, 0x9C, 0x00, 0xE0, 0x80, 0x09, 0x5C, 0x9E,
+ 0x40, 0xB3, 0xA2, 0x48, 0x02, 0x85, 0x10, 0xD0, 0xB2, 0x19, 0x29, 0xF2, 0x07, 0xA1, 0xFF, 0xFF, 0xC1, 0x93, 0x22, 0x9C, 0x11, 0xF0, 0x20, 0x0E, 0x59, 0x9E, 0x40, 0xB3, 0xA2, 0x48,
+ 0x10, 0xD0, 0xC2, 0x19, 0x29, 0xF0, 0x65, 0xAA, 0x29, 0xF0, 0x25, 0xA2, 0xFF, 0xFF, 0x81, 0x93, 0x22, 0x9C, 0x1D, 0xA6, 0x0E, 0xC0, 0x60, 0x84, 0x20, 0xB7, 0x0C, 0x56, 0x80, 0xB7,
+ 0x29, 0x41, 0x02, 0x85, 0x00, 0x75, 0x82, 0x0E, 0x83, 0x03, 0x00, 0xC0, 0xE2, 0x90, 0x88, 0xD2, 0x7D, 0xAA, 0x00, 0x75, 0x00, 0xC0, 0xA4, 0x93, 0x88, 0xD2, 0xFA, 0xA8, 0x40, 0x76,
+ 0x82, 0x08, 0x01, 0xD0, 0x92, 0x08, 0x46, 0x76, 0x02, 0x0A, 0x01, 0xD0, 0x42, 0x0A, 0x00, 0xE0, 0x98, 0x30, 0x00, 0xC0, 0xC4, 0x93, 0x11, 0xD0, 0x12, 0x1E, 0x02, 0x75, 0x01, 0xC0,
+ 0x52, 0x90, 0x20, 0xB7, 0x0C, 0x55, 0x80, 0xB7, 0x29, 0x4E, 0x13, 0xD1, 0x4E, 0x09, 0x00, 0xC0, 0x40, 0x93, 0x88, 0xD2, 0x79, 0xAA, 0x00, 0x75, 0x82, 0x0C, 0x01, 0xD0, 0x92, 0x0C,
+ 0x06, 0x75, 0x4A, 0x9E, 0x82, 0x08, 0x01, 0xD0, 0x92, 0x08, 0x00, 0xE0, 0x22, 0x31, 0x00, 0xC0, 0xA2, 0x90, 0x3A, 0x85, 0x00, 0xC0, 0x00, 0x91, 0x80, 0xB7, 0x0C, 0x55, 0xC8, 0xD2,
+ 0x95, 0xA8, 0x73, 0xD0, 0x16, 0x09, 0x52, 0xD0, 0xD9, 0x6D, 0xD1, 0xF3, 0x80, 0x8C, 0x4F, 0x9D, 0xA9, 0x9E, 0x96, 0x05, 0x14, 0xC0, 0x75, 0x9A, 0x40, 0xB7, 0x0C, 0x55, 0x91, 0xD0,
+ 0x22, 0x0A, 0x08, 0xD2, 0x81, 0xA9, 0x52, 0xD0, 0xD8, 0x09, 0x84, 0x09, 0x14, 0xC0, 0x6A, 0x9A, 0x20, 0xB7, 0x0C, 0x55, 0x91, 0xD0, 0x10, 0x0A, 0x08, 0xD2, 0x81, 0xA9, 0xB2, 0xD0,
+ 0xD0, 0x09, 0xBC, 0x09, 0x14, 0xC0, 0x5F, 0x9A, 0x08, 0xD2, 0x69, 0xAA, 0xAF, 0x9E, 0x00, 0x75, 0x8E, 0x0E, 0x00, 0xC0, 0xE2, 0x90, 0x88, 0xD2, 0xFD, 0xA8, 0x40, 0x74, 0x00, 0xC0,
+ 0x44, 0x91, 0x20, 0xB7, 0x14, 0x55, 0x80, 0xB7, 0x49, 0x4F, 0xD3, 0xD0, 0x4E, 0x09, 0x01, 0xC0, 0x60, 0x91, 0x88, 0xD2, 0xFA, 0xA8, 0x11, 0xD0, 0x12, 0x1E, 0x0E, 0xC0, 0x7C, 0x2A,
+ 0x02, 0x75, 0x00, 0xC0, 0xB2, 0x90, 0x44, 0x74, 0x00, 0xC0, 0x22, 0x92, 0x46, 0x74, 0x00, 0xC0, 0xC4, 0x92, 0x40, 0xB7, 0x0C, 0x55, 0x88, 0xD0, 0x4D, 0xAA, 0x00, 0x75, 0x00, 0xC0,
+ 0xE4, 0x91, 0xF1, 0xD3, 0x1E, 0x2E, 0x02, 0x75, 0x00, 0xC0, 0x44, 0x91, 0x60, 0xB7, 0x1C, 0x55, 0xD8, 0xD0, 0x7D, 0xAA, 0xF3, 0xD0, 0x46, 0x09, 0x00, 0xC0, 0x00, 0x91, 0x20, 0xB7,
+ 0x0C, 0x55, 0x80, 0xB7, 0xA9, 0x4F, 0x33, 0xD1, 0x46, 0x09, 0x52, 0xD0, 0xD9, 0x6D, 0x4F, 0x9D, 0xF6, 0x05, 0x14, 0xC0, 0x1C, 0x9A, 0x08, 0xD2, 0x69, 0xAA, 0x02, 0x85, 0x00, 0x75,
+ 0x84, 0x0E, 0x01, 0xC0, 0xA2, 0x93, 0x88, 0xD2, 0xFE, 0xA8, 0x40, 0x76, 0x01, 0xC0, 0x02, 0x93, 0x40, 0xB7, 0x0C, 0x55, 0x08, 0xD0, 0xD9, 0xA8, 0x48, 0x74, 0x00, 0xC0, 0x84, 0x90,
+ 0x08, 0xD0, 0xDD, 0xA8, 0x88, 0xD2, 0x79, 0xAA, 0x04, 0x1A, 0x0E, 0xC0, 0x7C, 0x2A, 0x02, 0x75, 0x01, 0xC0, 0xF2, 0x90, 0x46, 0x76, 0x00, 0xC0, 0x24, 0x92, 0x46, 0x74, 0x20, 0xB7,
+ 0x0C, 0x55, 0x91, 0xD0, 0x16, 0x0A, 0x08, 0xD2, 0x01, 0xAA, 0xA1, 0xD0, 0xCE, 0x09, 0x00, 0xC0, 0x02, 0x93, 0xF1, 0xD0, 0xCE, 0x09, 0x00, 0xC0, 0x80, 0x92, 0x44, 0x76, 0x00, 0xC0,
+ 0x44, 0x92, 0x40, 0xB7, 0x0C, 0x55, 0x91, 0xD0, 0x24, 0x0A, 0x08, 0xD2, 0x81, 0xA8, 0x40, 0x74, 0x91, 0xD0, 0x26, 0x0A, 0x08, 0xD2, 0x01, 0xAA, 0x42, 0xD0, 0xC6, 0x09, 0x41, 0xD0,
+ 0xCE, 0x09, 0x39, 0x9D, 0x52, 0xD0, 0xD9, 0x6D, 0x4F, 0x9D, 0xF6, 0x05, 0x14, 0xC0, 0xD4, 0x99, 0x02, 0x85, 0x60, 0xB7, 0x1C, 0x55, 0x5F, 0xB5, 0x7A, 0x42, 0x5F, 0xB5, 0xFA, 0x42,
+ 0x5F, 0xB5, 0x7A, 0x43, 0x58, 0xD0, 0x65, 0xAA, 0xF1, 0xD3, 0xCE, 0x28, 0x48, 0x74, 0x84, 0x0E, 0x00, 0xC0, 0x72, 0x91, 0x2E, 0x85, 0x5F, 0xB5, 0x7A, 0x43, 0x32, 0x85, 0x5F, 0xB5,
+ 0xFA, 0x42, 0x36, 0x85, 0x01, 0xC0, 0x20, 0x90, 0x14, 0x1A, 0x0E, 0xC0, 0x7C, 0x2A, 0x0E, 0x75, 0x00, 0xC0, 0xD2, 0x91, 0x02, 0xC0, 0x2A, 0x85, 0x5F, 0xB5, 0x7A, 0x43, 0x02, 0xC0,
+ 0x2E, 0x85, 0x5F, 0xB5, 0xFA, 0x42, 0x02, 0xC0, 0x32, 0x85, 0x00, 0xC0, 0xE0, 0x91, 0x58, 0x74, 0x00, 0xC0, 0xD4, 0x91, 0x02, 0xC0, 0x1E, 0x85, 0x5F, 0xB5, 0x7A, 0x43, 0x02, 0xC0,
+ 0x22, 0x85, 0x5F, 0xB5, 0xFA, 0x42, 0x02, 0xC0, 0x26, 0x85, 0x5F, 0xB5, 0x7A, 0x42, 0x6D, 0x9E, 0x11, 0xD0, 0x56, 0x0A, 0x48, 0x71, 0xA6, 0x9E, 0x00, 0xC0, 0x68, 0x92, 0x53, 0xD0,
+ 0x59, 0x69, 0xF1, 0xF3, 0x00, 0x8D, 0x20, 0xF3, 0xAF, 0x80, 0x29, 0xDA, 0xC5, 0xA9, 0x8B, 0x05, 0x14, 0xC0, 0x87, 0x99, 0x71, 0x9E, 0x84, 0x0A, 0x42, 0x71, 0xD0, 0x0E, 0xFF, 0xFF,
+ 0xE6, 0x92, 0x88, 0xD2, 0x79, 0xAA, 0x00, 0x75, 0x82, 0x0C, 0x01, 0xD0, 0x92, 0x0C, 0x06, 0x75, 0x4A, 0x9E, 0x82, 0x08, 0x01, 0xD0, 0x92, 0x08, 0x00, 0xE0, 0x22, 0x31, 0x00, 0xC0,
+ 0x02, 0x91, 0x80, 0xB7, 0x0C, 0x55, 0x08, 0xD2, 0x17, 0xA9, 0x00, 0xC0, 0xC0, 0x90, 0x60, 0xB7, 0x1C, 0x55, 0x18, 0xD0, 0x73, 0xA9, 0x20, 0xB7, 0x0C, 0x55, 0x80, 0xB7, 0x29, 0x44,
+ 0x10, 0x75, 0x60, 0xB7, 0x21, 0x42, 0x00, 0xC0, 0x12, 0x91, 0x40, 0xB7, 0x84, 0x63, 0x80, 0xB7, 0x0C, 0x64, 0x00, 0xC0, 0xC0, 0x90, 0x40, 0xB7, 0x84, 0x64, 0x80, 0xB7, 0x0C, 0x65,
+ 0x64, 0x9D, 0x2D, 0x9E, 0x40, 0xC0, 0xA5, 0xAA, 0x30, 0xC0, 0x4F, 0xA9, 0x52, 0xD0, 0xE9, 0x6D, 0x4F, 0x9D, 0x12, 0xD0, 0xE2, 0x0E, 0xF6, 0x05, 0x14, 0xC0, 0x47, 0x99, 0x52, 0xD0,
+ 0xD9, 0x6D, 0x8B, 0x01, 0xF6, 0x05, 0x14, 0xC0, 0x41, 0x99, 0x40, 0xB7, 0x0C, 0x55, 0x91, 0xD0, 0x28, 0x0A, 0x08, 0xD2, 0x81, 0xA8, 0x40, 0x74, 0x84, 0x0E, 0x00, 0xC0, 0x04, 0x91,
+ 0x02, 0xC0, 0x1A, 0x85, 0x02, 0xC0, 0x8E, 0x0A, 0x00, 0xC0, 0x80, 0x90, 0x22, 0x85, 0x96, 0x0A, 0x52, 0xD0, 0xD9, 0x6D, 0x4F, 0x9D, 0x84, 0x0E, 0xF6, 0x05, 0x14, 0xC0, 0x28, 0x99,
+ 0x52, 0xD0, 0xD9, 0x6D, 0x7F, 0x9E, 0x7E, 0x9E, 0x82, 0x0E, 0x02, 0x0F, 0x8B, 0x01, 0xF6, 0x05, 0x14, 0xC0, 0x1E, 0x99, 0x11, 0xF0, 0xD6, 0x2C, 0x00, 0xC0, 0x42, 0x91, 0x13, 0xD0,
+ 0x58, 0x0D, 0x10, 0xF2, 0x23, 0x88, 0x00, 0xC2, 0x40, 0x5A, 0x24, 0xD2, 0xC1, 0x5A, 0x33, 0xD0, 0x70, 0x09, 0x6E, 0x9D, 0x82, 0x0D, 0x30, 0xE0, 0xCE, 0xA2, 0xB4, 0xFE, 0xD5, 0x9A,
+ 0x08, 0xF2, 0xC1, 0xA9, 0x40, 0xB7, 0x04, 0x53, 0x13, 0xD0, 0x78, 0x09, 0x71, 0x9E, 0x57, 0x9D, 0x18, 0xE2, 0xA6, 0xA9, 0x84, 0x59, 0x10, 0xE2, 0xA7, 0x83, 0x80, 0xC2, 0x08, 0x5D,
+ 0x00, 0xC3, 0x00, 0x0D, 0xB4, 0xFE, 0x6F, 0x9B, 0x6A, 0x9E, 0x08, 0xDA, 0xA1, 0xA8, 0x50, 0x0B, 0x71, 0xD3, 0x78, 0x0A, 0x88, 0x71, 0xA2, 0x00, 0xC0, 0x58, 0xA4, 0xD0, 0xC1, 0x5A,
+ 0x50, 0x0F, 0xFE, 0xFF, 0xB4, 0x91, 0x82, 0x0D, 0xB4, 0xFE, 0xB1, 0x9A, 0x3F, 0xB7, 0x74, 0x63, 0x9F, 0xB7, 0xEC, 0x65, 0x40, 0xB7, 0x94, 0x47, 0x49, 0x9E, 0x00, 0xC2, 0x2C, 0x5A,
+ 0x98, 0x31, 0xB1, 0xD3, 0xA8, 0x0C, 0x60, 0xB5, 0x2D, 0x40, 0x3F, 0xB7, 0x74, 0x68, 0x9F, 0xB7, 0xEC, 0x6A, 0xD1, 0xD3, 0xA0, 0x0C, 0x4A, 0x9E, 0x00, 0xC2, 0x2C, 0x5A, 0xA8, 0x31,
+ 0x60, 0xB5, 0x2D, 0x40, 0x3F, 0xB7, 0x74, 0x6D, 0x9F, 0xB7, 0xEC, 0x6F, 0x49, 0x9E, 0x00, 0xC2, 0x2C, 0x5A, 0x98, 0x31, 0xD1, 0xD3, 0xA8, 0x0C, 0x51, 0xD2, 0x78, 0x0E, 0x12, 0xD2,
+ 0xF0, 0x0C, 0x60, 0xB5, 0x2D, 0x40, 0x08, 0xF2, 0x81, 0xA8, 0x40, 0xB7, 0x4D, 0x40, 0xF1, 0xD3, 0x20, 0x0E, 0xAC, 0x58, 0xA2, 0x31, 0xF1, 0xD2, 0xF8, 0x0C, 0xB2, 0xD2, 0xF0, 0x0C,
+ 0x08, 0xF2, 0x81, 0xA1, 0x80, 0xB7, 0x2D, 0x40, 0x40, 0xB7, 0x4D, 0x40, 0xF1, 0xD3, 0xA8, 0x0C, 0x00, 0xC2, 0x2C, 0x5A, 0xA8, 0x31, 0x91, 0xD3, 0x78, 0x0E, 0x60, 0xB5, 0x2D, 0x40,
+ 0x08, 0xF2, 0x82, 0xA8, 0x51, 0xD3, 0xF0, 0x0C, 0x80, 0xB7, 0x2D, 0x40, 0xAC, 0x5C, 0x4A, 0x9E, 0x10, 0xC0, 0x00, 0x0D, 0xC4, 0x31, 0x10, 0xF0, 0xC1, 0xA1, 0x9F, 0xB7, 0x6C, 0x66,
+ 0x5F, 0xB7, 0xEC, 0x63, 0x3F, 0xB7, 0x74, 0x6B, 0x3F, 0xB7, 0xEC, 0x68, 0x00, 0xC2, 0x0C, 0x5A, 0xA8, 0x31, 0xA4, 0x5C, 0x4C, 0x9E, 0x98, 0x58, 0xB2, 0x31, 0xB8, 0x31, 0x11, 0xD2,
+ 0x78, 0x0E, 0x3F, 0xB7, 0x74, 0x70, 0x08, 0xF2, 0x01, 0xA9, 0x71, 0xD2, 0x70, 0x0E, 0x3F, 0xB7, 0xEC, 0x6D, 0xBC, 0x5C, 0x1E, 0x9D, 0x08, 0xF2, 0x82, 0xA8, 0xB0, 0x58, 0xB2, 0x31,
+ 0xB1, 0xD2, 0xF8, 0x0C, 0x11, 0xD3, 0x70, 0x0E, 0x01, 0xC3, 0xB6, 0x31, 0x48, 0x59, 0xB4, 0x31, 0x40, 0xB7, 0x2D, 0x40, 0x08, 0xF2, 0x81, 0xA8, 0xD4, 0x5C, 0x4C, 0x9E, 0xB8, 0x31,
+ 0xB1, 0xD3, 0x70, 0x0E, 0x02, 0xC0, 0x30, 0x0D, 0x52, 0xD3, 0xF8, 0x0C, 0x60, 0x59, 0xB4, 0x31, 0xEC, 0x58, 0xB2, 0x31, 0x31, 0xF0, 0xC5, 0xA1, 0x08, 0xF2, 0x81, 0xA8, 0x80, 0xB7,
+ 0x4D, 0x40, 0x8C, 0x58, 0xC2, 0x31, 0x10, 0xF0, 0xC1, 0xA1, 0x9F, 0xB7, 0xEC, 0x66, 0x5F, 0xB7, 0x6C, 0x64, 0x3F, 0xB7, 0x6C, 0x69, 0x3F, 0xB7, 0xF4, 0x6B, 0x00, 0xC2, 0x08, 0x5A,
+ 0xA8, 0x31, 0x9F, 0xB7, 0x6C, 0x6E, 0x90, 0x58, 0xB2, 0x31, 0x98, 0x5C, 0x1E, 0x9D, 0x3F, 0xB7, 0xEC, 0x70, 0x01, 0xC3, 0xB6, 0x31, 0x00, 0xC2, 0x20, 0x5A, 0xB8, 0x31, 0xA8, 0x58,
+ 0xB2, 0x31, 0x31, 0xD2, 0x70, 0x0E, 0x71, 0xD2, 0xF8, 0x0C, 0x08, 0xF2, 0x82, 0xA8, 0xD1, 0xD2, 0x70, 0x0E, 0x40, 0xB7, 0x2D, 0x40, 0x08, 0xF2, 0x81, 0xA8, 0xB0, 0x5C, 0x4C, 0x9E,
+ 0xB8, 0x31, 0x11, 0xD3, 0x78, 0x0E, 0x30, 0x0D, 0x38, 0x59, 0xB4, 0x31, 0xC0, 0x58, 0xB2, 0x31, 0x08, 0xF2, 0x82, 0xA8, 0x71, 0xD3, 0xF0, 0x0C, 0xB1, 0xD3, 0x78, 0x0E, 0x40, 0xB7,
+ 0x2D, 0x40, 0xC8, 0x5C, 0x1E, 0x9D, 0x08, 0xF2, 0x81, 0xA8, 0x50, 0x59, 0x01, 0xC3, 0xB6, 0x31, 0xB4, 0x31, 0xD8, 0x58, 0xB2, 0x31, 0x10, 0xF0, 0xC1, 0xA1, 0x9F, 0xB7, 0xEE, 0x6E,
+ 0xBF, 0xB7, 0x6E, 0x6F, 0xDF, 0xB7, 0xEE, 0x6F, 0xFF, 0xB7, 0x6E, 0x70, 0x10, 0xC0, 0x60, 0x8C, 0x22, 0x9C, 0x40, 0xB7, 0x04, 0x63, 0xC0, 0x59, 0xA6, 0xD1, 0x39, 0x59, 0x2D, 0x9E,
+ 0x30, 0xC8, 0xCD, 0xA8, 0x30, 0xE0, 0xCE, 0xA8, 0x10, 0xF0, 0xE1, 0xA0, 0x4C, 0x9E, 0xA2, 0xD0, 0xE5, 0x5C, 0xF1, 0x5C, 0x8C, 0x2C, 0x10, 0xF0, 0xF2, 0xA0, 0x1F, 0xC0, 0x7C, 0x2A,
+ 0x00, 0xC2, 0x41, 0x5A, 0x10, 0xF0, 0x65, 0xA2, 0x9C, 0x28, 0x10, 0xF0, 0xED, 0xA0, 0x22, 0x9C, 0x40, 0xB7, 0x16, 0x5B, 0x01, 0xC0, 0x88, 0x9C, 0xC0, 0x76, 0x01, 0xC0, 0x00, 0x28,
+ 0x20, 0x58, 0xB0, 0x41, 0x32, 0xB3, 0x44, 0x48, 0x11, 0xF0, 0x20, 0x0C, 0x40, 0xB3, 0xA2, 0x48, 0x10, 0xF8, 0x42, 0xA9, 0x86, 0x70, 0xFF, 0xFF, 0x24, 0x93, 0x84, 0x7A, 0x22, 0x9C,
+ 0x21, 0xC0, 0xC0, 0x7E, 0x00, 0xB7, 0x0E, 0x40, 0x00, 0xB3, 0x24, 0x4A, 0x22, 0x9C, 0x01, 0xC0, 0xC2, 0x7C, 0x00, 0xC0, 0xE2, 0x90, 0x71, 0xC0, 0x8C, 0x9C, 0x70, 0xD0, 0x80, 0x45,
+ 0xB0, 0x31, 0x8D, 0xA4, 0x39, 0xF8, 0x85, 0xA1, 0xEC, 0x9F, 0xF8, 0xF9, 0x1D, 0xA8, 0x60, 0x8C, 0x22, 0x9C, 0x02, 0xC0, 0x88, 0x9C, 0x01, 0xC0, 0x80, 0x9C, 0x01, 0xC0, 0x04, 0x2C,
+ 0x20, 0x5C, 0x70, 0xC0, 0x00, 0x28, 0x48, 0x58, 0x22, 0x9C, 0x05, 0xA6, 0x09, 0xC8, 0x42, 0x0E, 0x96, 0xB0, 0x06, 0x14, 0x81, 0x02, 0x40, 0xB7, 0x0E, 0x5B, 0x20, 0xB5, 0x8C, 0x53,
+ 0x80, 0x74, 0x00, 0xC0, 0xE2, 0x93, 0xB1, 0xD0, 0xD8, 0x09, 0xAD, 0x9E, 0x82, 0x0D, 0x09, 0xC8, 0x42, 0x0E, 0x96, 0xB0, 0x46, 0x0E, 0x09, 0xC8, 0x42, 0x0E, 0x96, 0xB0, 0x46, 0x1B,
+ 0x11, 0xC0, 0x80, 0x0A, 0xB1, 0xD0, 0xD8, 0x09, 0x21, 0xC9, 0xC5, 0x9C, 0x82, 0x0D, 0x09, 0xC8, 0x42, 0x0E, 0x96, 0xB0, 0x46, 0x0E, 0x09, 0xC8, 0x42, 0x0E, 0x96, 0xB0, 0x46, 0x1B,
+ 0xA0, 0xB5, 0x0E, 0x40, 0xF8, 0xF9, 0x9D, 0xAA, 0xF8, 0xF9, 0x1D, 0xAA, 0x22, 0x9C, 0x00, 0x78, 0x21, 0xD0, 0xDA, 0x46, 0x40, 0xB3, 0xA2, 0x48, 0x60, 0xB7, 0xBC, 0x42, 0x49, 0xC0,
+ 0x82, 0x0D, 0x08, 0xC0, 0x80, 0x0D, 0x21, 0xC0, 0x40, 0x7F, 0xC1, 0xCF, 0x80, 0x2E, 0x80, 0xC2, 0xB9, 0x5E, 0x22, 0xD0, 0xD0, 0x0E, 0xBA, 0x05, 0x82, 0x09, 0x39, 0xF8, 0xE5, 0xA1,
+ 0x83, 0x9E, 0x32, 0xF0, 0xB0, 0x8C, 0x39, 0xF8, 0xE5, 0xA1, 0x60, 0xB9, 0x78, 0x40, 0x09, 0xC8, 0x42, 0x0D, 0x22, 0xCB, 0x70, 0x0D, 0x52, 0x9E, 0x39, 0xF8, 0x65, 0xA1, 0xFF, 0xFF,
+ 0xC1, 0x93, 0x09, 0xC8, 0x42, 0x0D, 0x42, 0xCB, 0x00, 0x0D, 0x98, 0xF1, 0x66, 0xA1, 0x22, 0x9C, 0x00, 0xB7, 0x35, 0x40, 0x60, 0xB7, 0xBF, 0x43, 0x02, 0xC0, 0x00, 0x72, 0x2E, 0x0D,
+ 0x30, 0xB3, 0xA2, 0x50, 0x06, 0x0D, 0x02, 0x87, 0x74, 0xC0, 0xCE, 0x9C, 0xF3, 0x9C, 0x00, 0xB7, 0x35, 0x40, 0x02, 0xC4, 0x00, 0x72, 0x44, 0x55, 0x04, 0x44, 0x00, 0xB5, 0x35, 0x40,
+ 0xF0, 0x9C, 0x74, 0xC0, 0xCE, 0x9C, 0x2A, 0x0D, 0x88, 0x5C, 0x84, 0x0C, 0x1B, 0x9C, 0x33, 0x9D, 0x13, 0xE0, 0x80, 0x84, 0x39, 0xF8, 0x05, 0xA2, 0x51, 0xC0, 0x84, 0x9C, 0x09, 0xC8,
+ 0x42, 0x0A, 0x58, 0xCB, 0x10, 0x0A, 0x08, 0x70, 0x06, 0xC0, 0xC2, 0x92, 0x9C, 0x0D, 0x01, 0x81, 0x00, 0xE0, 0x07, 0x00, 0xFE, 0xCF, 0xE2, 0x2D, 0x07, 0x04, 0x32, 0xB3, 0x6A, 0x48,
+ 0x09, 0xC8, 0xC2, 0x0C, 0x80, 0xCB, 0xF0, 0x0C, 0x33, 0xE0, 0xA0, 0x85, 0x01, 0xC8, 0x80, 0x29, 0x01, 0xC0, 0x8A, 0x08, 0x96, 0x00, 0x18, 0xF8, 0xC1, 0xA0, 0x71, 0xF1, 0x20, 0x84,
+ 0xF8, 0xC9, 0x7D, 0xA4, 0x82, 0x08, 0x82, 0x0C, 0x39, 0xF8, 0xE5, 0xA0, 0x39, 0xF8, 0xE5, 0xA0, 0x08, 0xCA, 0x1F, 0xA4, 0x85, 0x80, 0x03, 0xC0, 0x00, 0x90, 0xEF, 0x9C, 0x95, 0xE0,
+ 0xC0, 0x84, 0x02, 0x9C, 0x10, 0xC0, 0x82, 0x9C, 0x1F, 0xB7, 0x4E, 0x79, 0xFF, 0x9C, 0x00, 0xB5, 0xEE, 0x40, 0x72, 0xE1, 0x00, 0x84, 0x01, 0xC0, 0x88, 0x9C, 0x40, 0xB9, 0x00, 0x40,
+ 0x10, 0xC8, 0x1F, 0xA4, 0xF0, 0x9C, 0x54, 0xE0, 0x00, 0x85, 0x81, 0x80, 0xE0, 0xC8, 0xDD, 0xA4, 0x01, 0xC0, 0x8E, 0x9C, 0x02, 0x0D, 0x02, 0xC0, 0x8B, 0x9C, 0x01, 0xC0, 0x87, 0x9C,
+ 0x20, 0xB9, 0x00, 0x40, 0x00, 0xC8, 0x45, 0xA5, 0x81, 0x01, 0x0D, 0xC0, 0x82, 0x29, 0x52, 0xC0, 0x87, 0x9C, 0x01, 0xC0, 0x84, 0x39, 0x60, 0xB5, 0x6F, 0x40, 0x06, 0xC0, 0x60, 0x84,
+ 0x71, 0xC0, 0x8A, 0x9C, 0x02, 0xC0, 0x8A, 0x9C, 0x81, 0x01, 0x05, 0xCA, 0x80, 0x29, 0x01, 0xCF, 0x00, 0x2D, 0x71, 0x5D, 0x17, 0xD0, 0x28, 0x29, 0xFE, 0xEF, 0x6C, 0x29, 0x01, 0xC0,
+ 0x84, 0x39, 0x20, 0xB7, 0x16, 0x40, 0x02, 0xC0, 0xE2, 0x90, 0x02, 0xC0, 0x80, 0x70, 0x84, 0x7C, 0x82, 0x9E, 0x60, 0xB7, 0xBD, 0x40, 0x86, 0x0D, 0x71, 0xC0, 0x8C, 0x9C, 0x2E, 0xD0,
+ 0x68, 0x55, 0x17, 0xD0, 0x88, 0x29, 0x02, 0xE0, 0x22, 0x76, 0xB0, 0x31, 0x40, 0x0D, 0x22, 0xD1, 0x08, 0x5C, 0x1B, 0xB4, 0x7A, 0x4A, 0x40, 0x08, 0x00, 0xE0, 0x26, 0xA8, 0xAF, 0x9D,
+ 0xF4, 0xFF, 0xA4, 0x9B, 0xEF, 0x9C, 0x71, 0xC0, 0x8E, 0x9C, 0x70, 0xD0, 0xA0, 0x31, 0x00, 0xB7, 0x6F, 0x40, 0x03, 0x80, 0x71, 0xC8, 0x8B, 0x9C, 0x06, 0x9C, 0xFC, 0xDF, 0xFE, 0x7C,
+ 0xFE, 0xFF, 0x44, 0x90, 0x01, 0xC4, 0x00, 0x7C, 0xFD, 0xFF, 0xC4, 0x93, 0x24, 0xF0, 0x84, 0x58, 0x32, 0xE1, 0x10, 0x84, 0x53, 0xE0, 0x10, 0x84, 0x10, 0xC8, 0x07, 0xAD, 0xE8, 0x9D,
+ 0x24, 0xF0, 0x84, 0x58, 0x05, 0xC0, 0x02, 0x28, 0xF8, 0xC8, 0x9D, 0xAC, 0x30, 0xC0, 0x8B, 0x9C, 0x30, 0xC0, 0x8D, 0x9C, 0x10, 0xC8, 0x1F, 0xAC, 0xFB, 0xFF, 0xC0, 0x93, 0x71, 0xC0,
+ 0x8E, 0x9C, 0x03, 0xE0, 0x70, 0x28, 0x17, 0xD0, 0xA8, 0x29, 0xFE, 0xCF, 0x6C, 0x29, 0xB4, 0x31, 0x12, 0x09, 0x24, 0xD0, 0x49, 0x59, 0x04, 0xC0, 0x22, 0x08, 0xFE, 0xFF, 0x44, 0x90,
+ 0x80, 0xC1, 0x24, 0x5D, 0xF9, 0xCF, 0x80, 0x2D, 0x29, 0x5D, 0xB4, 0x05, 0x31, 0xD8, 0xE6, 0xA8, 0x10, 0xD8, 0x62, 0xA9, 0x00, 0xC8, 0x40, 0x7E, 0x12, 0xB3, 0x42, 0x48, 0x40, 0x5D,
+ 0x94, 0x04, 0x80, 0xC0, 0x59, 0x5D, 0x0C, 0x2D, 0x22, 0xD1, 0x08, 0x5C, 0xFD, 0xFF, 0x60, 0x91, 0x39, 0xF8, 0x25, 0xAA, 0x33, 0xE0, 0x10, 0x8C, 0x45, 0x9D, 0x22, 0x9C, 0x00, 0x00,
+ 0x09, 0xC8, 0xC2, 0x87, 0x60, 0xB0, 0x20, 0x0C, 0x09, 0xC8, 0xC2, 0x87, 0x60, 0xB0, 0x60, 0x0A, 0xF4, 0xFF, 0xA0, 0x92, 0x09, 0xC8, 0xC2, 0x87, 0x60, 0xB0, 0xC0, 0x09,
+};
+
+
+static const unsigned char aui81133_SSData[] = {
+ 0x58, 0xB8, 0x90, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD0, 0x2F, 0x80, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x25, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x04, 0x00, 0x04, 0x80, 0x04, 0x80, 0x04, 0x80, 0x04, 0x00, 0x05, 0x80, 0x04, 0x00, 0x06, 0x80, 0x04, 0x00, 0x07, 0x80, 0x04,
+ 0x00, 0x08, 0x80, 0x04, 0x00, 0x10, 0x80, 0x04, 0x09, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x6D, 0x88, 0x82, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x34, 0x03, 0x34, 0x03, 0x08, 0x20, 0x08, 0x20, 0x0A, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xEF, 0xD8, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0xB8, 0x90, 0x80, 0xB0, 0x00, 0x90, 0x80, 0xD0, 0x02, 0x90, 0x80, 0x88, 0x6A, 0x88, 0x82, 0xB0, 0x6A, 0x88, 0x82, 0x6C, 0x6A, 0x88, 0x82,
+ 0xD8, 0x6A, 0x88, 0x82, 0x24, 0x5E, 0x88, 0x82, 0x2C, 0x5E, 0x88, 0x82, 0xB4, 0x5C, 0x88, 0x82, 0xB8, 0x5C, 0x88, 0x82, 0x40, 0x5E, 0x88, 0x82, 0x98, 0x67, 0x88, 0x82, 0xD8, 0x67,
+ 0x88, 0x82, 0xE8, 0x67, 0x88, 0x82, 0xF8, 0x67, 0x88, 0x82, 0x24, 0x68, 0x88, 0x82, 0xE0, 0x68, 0x88, 0x82, 0x04, 0x69, 0x88, 0x82, 0x20, 0x69, 0x88, 0x82, 0x28, 0x69, 0x88, 0x82,
+ 0x44, 0x69, 0x88, 0x82, 0x3C, 0x6B, 0x88, 0x82, 0x40, 0x6B, 0x88, 0x82, 0x6C, 0x6B, 0x88, 0x82, 0x98, 0x6B, 0x88, 0x82, 0xA0, 0x6B, 0x88, 0x82, 0xA8, 0x6B, 0x88, 0x82, 0xCC, 0x6B,
+ 0x88, 0x82, 0xF0, 0x6B, 0x88, 0x82, 0xF4, 0x6B, 0x88, 0x82, 0x18, 0x6C, 0x88, 0x82, 0x64, 0x6D, 0x88, 0x82, 0x68, 0x6D, 0x88, 0x82, 0x6C, 0x6D, 0x88, 0x82, 0x70, 0x6D, 0x88, 0x82,
+ 0xF8, 0x5D, 0x88, 0x82, 0xFC, 0x5D, 0x88, 0x82, 0xC0, 0x63, 0x88, 0x82, 0xD0, 0x63, 0x88, 0x82, 0xD4, 0x63, 0x88, 0x82, 0x2C, 0x65, 0x88, 0x82, 0xDC, 0x64, 0x88, 0x82, 0xD4, 0x64,
+ 0x88, 0x82, 0x6C, 0x66, 0x88, 0x82, 0xA0, 0x66, 0x88, 0x82, 0xC8, 0x66, 0x88, 0x82, 0xE4, 0x66, 0x88, 0x82, 0x00, 0x67, 0x88, 0x82, 0x1C, 0x67, 0x88, 0x82, 0x38, 0x67, 0x88, 0x82,
+ 0x54, 0x67, 0x88, 0x82, 0x66, 0x67, 0x88, 0x82, 0x6C, 0x67, 0x88, 0x82, 0x88, 0x67, 0x88, 0x82, 0x48, 0x69, 0x88, 0x82, 0x50, 0x69, 0x88, 0x82, 0x58, 0x69, 0x88, 0x82, 0xE4, 0x69,
+ 0x88, 0x82, 0x00, 0x6A, 0x88, 0x82, 0x24, 0x6A, 0x88, 0x82, 0x34, 0x6A, 0x88, 0x82, 0x38, 0x6A, 0x88, 0x82, 0x3C, 0x6A, 0x88, 0x82, 0x54, 0x6A, 0x88, 0x82, 0xE4, 0x6A, 0x88, 0x82,
+ 0x20, 0x6B, 0x88, 0x82, 0xF8, 0x6B, 0x88, 0x82, 0x00, 0x00, 0x00, 0x00, 0x98, 0x77, 0x88, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x5E, 0x88, 0x82, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x5E, 0x88, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x01, 0x00, 0xCD, 0xCD, 0xCD, 0xCD, 0x07, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xEF, 0xBE, 0xAD, 0xDE, 0xEF, 0xBE, 0xAD, 0xDE, 0xEF, 0xBE, 0xAD, 0xDE, 0xEF, 0xBE, 0xAD, 0xDE, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
+ 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00,
+ 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x02, 0x03, 0x00, 0x01, 0x02, 0x03, 0x00, 0x01, 0x02, 0x03, 0x00, 0x01, 0x02, 0x03, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00,
+ 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x02, 0x03, 0x0D, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x08, 0x00,
+ 0x00, 0x00, 0x0F, 0x00, 0x0E, 0x00, 0x0B, 0x00, 0x0A, 0x00, 0x0A, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, 0x0D, 0x00, 0x02, 0x00, 0x07, 0x00, 0x01, 0x00, 0x04, 0x00,
+ 0x03, 0x00, 0x06, 0x00, 0x09, 0x00, 0x0C, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0E, 0x00,
+ 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
+ 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x05, 0x00,
+ 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
+ 0x72, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, 0x07, 0x00,
+ 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00,
+ 0x07, 0x00, 0x00, 0x00, 0x7A, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x7B, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x7D, 0x00,
+ 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x01, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x03,
+ 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xFF, 0x00,
+ 0x00, 0x00, 0x00, 0x02, 0x03, 0x00, 0x00, 0x00, 0x01, 0x01, 0x02, 0x02, 0x03, 0x03, 0x00, 0x01, 0x00, 0x01, 0x02, 0x03, 0x02, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0E, 0x00,
+ 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
+ 0xFE, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0xFE, 0x01, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xFE, 0x03, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0xFE, 0x07, 0x00, 0x00, 0x0C, 0x00,
+ 0x00, 0x00, 0xFE, 0x0F, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0xFE, 0x1F, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0xFE, 0x3F, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0xFE, 0x7F, 0x00, 0x00,
+ 0x10, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
+ 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
+ 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0x00, 0x55, 0x00, 0x40, 0x00, 0x33, 0x00, 0x2B, 0x00, 0x25, 0x00,
+ 0x20, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x01, 0x01, 0x02, 0x03, 0x03, 0x04, 0x04, 0x05, 0x05, 0x05, 0x05, 0x06, 0x06, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x08, 0x08, 0x08,
+ 0x08, 0xFF, 0xFF, 0x00, 0x01, 0x01, 0x02, 0x01, 0x03, 0x01, 0x02, 0x03, 0x04, 0x01, 0x05, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x01, 0x03, 0x05, 0x07, 0xFF, 0xFF, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
+ 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
+ 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x01, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x02, 0x03, 0x00,
+ 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
+ 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x01, 0x00,
+ 0x02, 0x03, 0x04, 0x00, 0x00, 0x00, 0x00, 0x03, 0x02, 0x01, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
+ 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00,
+ 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x03,
+ 0x00, 0x03, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16,
+ 0x17, 0x18, 0x19, 0x1B, 0x1D, 0x1F, 0x00, 0x00, 0x5B, 0x06, 0x5B, 0x00, 0x13, 0x04, 0x6E, 0x00, 0x14, 0x06, 0x82, 0x00, 0x12, 0x06, 0x94, 0x00, 0x14, 0x06, 0xA8, 0x00, 0x4D, 0x06,
+ 0xF5, 0x00, 0xF1, 0x09, 0xE6, 0x02, 0x0C, 0x09, 0xF2, 0x03, 0x6F, 0x06, 0x61, 0x04, 0xF6, 0x08, 0x57, 0x05, 0xD6, 0x09, 0x2D, 0x07, 0x22, 0x08, 0x4F, 0x07, 0x08, 0x02, 0x57, 0x07,
+ 0x16, 0x04, 0x6D, 0x07, 0x5D, 0x06, 0xCA, 0x07, 0x04, 0x02, 0xCE, 0x07, 0x03, 0x22, 0xD1, 0x07, 0x05, 0x22, 0xD6, 0x07, 0x05, 0x22, 0xDB, 0x07, 0x2B, 0x08, 0x06, 0x08, 0x25, 0x08,
+ 0x2B, 0x08, 0x23, 0x08, 0x4E, 0x08, 0x2B, 0x08, 0x79, 0x08, 0x0B, 0x02, 0x84, 0x08, 0x0D, 0x04, 0x91, 0x08, 0x0B, 0x02, 0x9C, 0x08, 0x0B, 0x22, 0xA7, 0x08, 0x42, 0x04, 0xE9, 0x08,
+ 0x4F, 0x08, 0x38, 0x09, 0x51, 0x08, 0x89, 0x09, 0x46, 0x08, 0xCF, 0x09, 0x4D, 0x08, 0x1C, 0x0A, 0x44, 0x08, 0x60, 0x0A, 0x4E, 0x08, 0xAE, 0x0A, 0x4F, 0x08, 0xFD, 0x0A, 0x5C, 0x08,
+ 0x59, 0x0B, 0xAE, 0x09, 0x07, 0x0D, 0x40, 0x09, 0x47, 0x0E, 0x50, 0x2A, 0x97, 0x0E, 0x16, 0x06, 0xAD, 0x0E, 0x07, 0x02, 0xB4, 0x0E, 0x14, 0x04, 0xC8, 0x0E, 0x16, 0x06, 0xDE, 0x0E,
+ 0x08, 0x04, 0xE6, 0x0E, 0x18, 0x06, 0xFE, 0x0E, 0x97, 0x08, 0x95, 0x0F, 0x9D, 0x08, 0x32, 0x10, 0x22, 0x08, 0x54, 0x10, 0x20, 0x08, 0x74, 0x10, 0x22, 0x08, 0x96, 0x10, 0x22, 0x08,
+ 0xB8, 0x10, 0x22, 0x08, 0xDA, 0x10, 0x22, 0x08, 0xFC, 0x10, 0x20, 0x08, 0x1C, 0x11, 0x22, 0x08, 0x3E, 0x11, 0x59, 0x08, 0x97, 0x11, 0x55, 0x08, 0xEC, 0x11, 0x34, 0x08, 0x20, 0x12,
+ 0x60, 0x08, 0x80, 0x12, 0x62, 0x08, 0xE2, 0x12, 0x62, 0x08, 0x44, 0x13, 0x65, 0x08, 0xA9, 0x13, 0x5F, 0x08, 0x08, 0x14, 0x06, 0x28, 0x0E, 0x14, 0x06, 0x28, 0x14, 0x14, 0x20, 0x08,
+ 0x34, 0x14, 0x20, 0x08, 0x54, 0x14, 0x10, 0x06, 0x64, 0x14, 0x10, 0x06, 0x74, 0x14, 0x06, 0x28, 0x7A, 0x14, 0x20, 0x08, 0x9A, 0x14, 0x5F, 0x08, 0xF9, 0x14, 0x58, 0x08, 0x51, 0x15,
+ 0x5A, 0x08, 0xAB, 0x15, 0x50, 0x06, 0xFB, 0x15, 0xB0, 0x08, 0xAB, 0x16, 0xB4, 0x08, 0x5F, 0x17, 0xAD, 0x08, 0x0C, 0x18, 0xB7, 0x08, 0xC3, 0x18, 0xB3, 0x08, 0x76, 0x19, 0xB2, 0x08,
+ 0x28, 0x1A, 0xAD, 0x06, 0xD5, 0x1A, 0xF4, 0x09, 0x0A, 0x07, 0x2E, 0x00, 0x09, 0x06, 0x2D, 0x00, 0x25, 0x07, 0x2E, 0x00, 0x24, 0x06, 0x2D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x78, 0x88, 0x82, 0x2C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0xB0, 0x77, 0x88, 0x82,
+ 0xB0, 0x77, 0x88, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x78, 0x88, 0x82, 0x2C, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x60, 0x78, 0x88, 0x82, 0x60, 0x78, 0x88, 0x82,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x18, 0x79, 0x88, 0x82, 0x2A, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x98, 0x77, 0x88, 0x82, 0x98, 0x77, 0x88, 0x82, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x01, 0x00, 0x00, 0x38, 0x79, 0x88, 0x82, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x79, 0x88, 0x82, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x80, 0x00, 0x00, 0x90, 0x80,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x79, 0x88, 0x82, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0xB8, 0x90, 0x80, 0x58, 0xB8,
+ 0x90, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x98, 0x79, 0x88, 0x82, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0xB8, 0x90, 0x80,
+ 0x48, 0xB8, 0x90, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB8, 0x79, 0x88, 0x82, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0xB8,
+ 0x90, 0x80, 0x38, 0xB8, 0x90, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0x7F, 0x00,
+ 0x00, 0x00, 0x00, 0xB0, 0x00, 0x00, 0x00, 0xB0,
+};
+
+/*
+static const FW_PATCHLIST a1133_SSPatch[] =
+{
+ { VLD_SETUP_WDT , 0x5ca8 },
+ { MC_SETUP_WDT , 0x5cac },
+ { FW_ACTIVITY_WDT , 0x5cb0 },
+ { TIMER_DIV , 0x5cbc },
+};
+*/
+
+const FIRMWARE sFirmware1133_SS = {
+ "BUILD_DXVA_FW1.00.10.1133_1133_SS",
+ "04_08_2010",
+ 23608, /* TextSize bytes */
+ 7568, /* DataSize bytes */
+ 0x00005c40, /* DataOffset bytes */
+ aui81133_SSText,
+ aui81133_SSData,
+};
+
+
+static const unsigned char aui81163_SSText[] = {
+ 0x01, 0xC0, 0x40, 0x90, 0xFE, 0x93, 0x09, 0xC8, 0x42, 0x0E, 0x00, 0xC0, 0x00, 0x0E, 0x29, 0xC8, 0x22, 0x84, 0x00, 0xC8, 0x60, 0x84, 0x29, 0xC8, 0x22, 0x86, 0x28, 0xC6, 0x00, 0x86,
+ 0x83, 0x9E, 0x43, 0x9E, 0x09, 0xC8, 0x42, 0x0D, 0x4C, 0xCC, 0x00, 0x0D, 0x09, 0xC8, 0x42, 0x09, 0x4C, 0xCC, 0x40, 0x09, 0x09, 0xC8, 0x42, 0x0E, 0x0A, 0xC0, 0x40, 0x0E, 0x09, 0xC8,
+ 0xC2, 0x87, 0x0E, 0xC0, 0xD0, 0x87, 0x18, 0x9C, 0x02, 0x08, 0x02, 0x0C, 0x82, 0x0D, 0x82, 0x09, 0x02, 0x0D, 0x02, 0x09, 0x82, 0x0C, 0x82, 0x08, 0xFE, 0xFF, 0x20, 0x93, 0x38, 0xC8,
+ 0x01, 0xA4, 0x09, 0xC8, 0xC2, 0x0D, 0x4A, 0xCC, 0xC0, 0x0D, 0x09, 0xC8, 0x42, 0x0E, 0x80, 0xB0, 0x46, 0x0B, 0x7F, 0xB7, 0x74, 0x7E, 0x82, 0x08, 0x8D, 0xA4, 0xF3, 0x9F, 0xFF, 0xFF,
+ 0xE0, 0x93, 0x13, 0x9D, 0x81, 0x80, 0x39, 0xF8, 0x05, 0xA2, 0x07, 0x07, 0x07, 0x03, 0x85, 0x06, 0x97, 0x9E, 0x83, 0x03, 0x0F, 0x06, 0xA0, 0x0F, 0x8D, 0x05, 0x8D, 0x01, 0x8F, 0x00,
+ 0x62, 0x9C, 0xFF, 0xFF, 0x40, 0x93, 0x0B, 0x06, 0xA0, 0x0E, 0x62, 0x9C, 0xFF, 0xFF, 0xA0, 0x93, 0x8D, 0x05, 0x8D, 0x01, 0x00, 0xB7, 0x8C, 0x54, 0x80, 0xB7, 0x14, 0x54, 0x01, 0x9C,
+ 0x05, 0xA6, 0x87, 0x06, 0x0B, 0x06, 0xA0, 0x0E, 0x62, 0x9C, 0xFF, 0xFF, 0xA0, 0x93, 0xF8, 0xF9, 0x9D, 0xAA, 0xF8, 0xF9, 0x1D, 0xAA, 0x22, 0x9C, 0x22, 0x9C, 0x0E, 0xC0, 0xFC, 0x29,
+ 0x40, 0xB7, 0x8C, 0x43, 0x71, 0xC0, 0xCE, 0x9C, 0x49, 0xC0, 0x82, 0x08, 0xFC, 0xC2, 0xC0, 0x08, 0x10, 0xD0, 0x61, 0xAA, 0x0C, 0x0A, 0x00, 0xE2, 0x09, 0x5A, 0x20, 0xB7, 0xB5, 0x43,
+ 0x01, 0xC0, 0x82, 0x90, 0x40, 0xB7, 0x04, 0x42, 0x8A, 0x9E, 0x82, 0x87, 0x10, 0xD0, 0xC2, 0x19, 0x31, 0xF0, 0xE5, 0xA8, 0xA6, 0xD0, 0x08, 0x5D, 0x2D, 0x9E, 0x30, 0xE0, 0xCD, 0xA0,
+ 0x50, 0xD8, 0x49, 0xAA, 0x84, 0x0C, 0x49, 0x9E, 0x00, 0xC2, 0x40, 0x5A, 0x00, 0xC2, 0x41, 0x5A, 0x48, 0x70, 0xE0, 0x9D, 0x10, 0xB3, 0x46, 0x48, 0x81, 0x04, 0x10, 0xF0, 0x59, 0xAA,
+ 0x49, 0x9E, 0x48, 0x70, 0xFF, 0xFF, 0x82, 0x93, 0xFF, 0xFF, 0xC1, 0x90, 0x49, 0xC0, 0x82, 0x08, 0xFC, 0xC2, 0xC0, 0x08, 0x20, 0xB5, 0xB5, 0x43, 0x71, 0xC0, 0xCE, 0x9C, 0xB0, 0x08,
+ 0x80, 0xB7, 0x2D, 0x40, 0xC0, 0x74, 0x04, 0x0A, 0x80, 0xB5, 0x2D, 0x40, 0x40, 0xB3, 0xA2, 0x48, 0x80, 0xB7, 0x8C, 0x46, 0x00, 0xC4, 0x02, 0x85, 0x08, 0xF2, 0x0B, 0xA1, 0x22, 0x9C,
+ 0x1D, 0xA6, 0x20, 0x84, 0xF4, 0xFF, 0xB0, 0x9B, 0x0A, 0x85, 0x37, 0xC1, 0x8B, 0x9C, 0x80, 0xB7, 0x8C, 0x46, 0x04, 0x8D, 0x48, 0xF2, 0x1F, 0xA1, 0x74, 0xC0, 0x27, 0x98, 0x49, 0xC0,
+ 0x82, 0x08, 0xFC, 0xC2, 0xC0, 0x08, 0x80, 0xB7, 0x2D, 0x45, 0x00, 0xC4, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x02, 0x91, 0x06, 0xC0, 0x06, 0x85, 0x0C, 0xC0, 0x0A, 0x0A, 0x00, 0xC0,
+ 0xA0, 0x90, 0x10, 0xC0, 0x1A, 0x85, 0x76, 0x0A, 0x49, 0xC0, 0x82, 0x0C, 0xFC, 0xC2, 0xC0, 0x0C, 0x49, 0xC0, 0x02, 0x0D, 0x00, 0xC2, 0x00, 0x0D, 0x80, 0xB5, 0x4B, 0x45, 0x40, 0xB5,
+ 0x5B, 0x48, 0x26, 0xD2, 0x08, 0x59, 0x40, 0xC0, 0x02, 0x87, 0x10, 0xF0, 0x25, 0x80, 0x40, 0xB5, 0xC3, 0x45, 0x80, 0xB5, 0xCB, 0x48, 0x20, 0xB7, 0xCB, 0x48, 0x5B, 0xCA, 0x16, 0x0A,
+ 0x5A, 0xCA, 0x14, 0x0A, 0x40, 0xB7, 0xCB, 0x45, 0x80, 0xB5, 0x4D, 0x42, 0xC0, 0x58, 0xA6, 0xD0, 0x41, 0x59, 0x20, 0xB7, 0x4D, 0x45, 0x40, 0x59, 0x10, 0xF2, 0x2D, 0x80, 0x26, 0xD1,
+ 0x41, 0x59, 0x20, 0xE2, 0x2D, 0x81, 0xB5, 0x58, 0x12, 0xD0, 0x12, 0x2B, 0x80, 0xB5, 0x8C, 0x42, 0x40, 0xB5, 0x14, 0x42, 0x0A, 0x85, 0x37, 0xC0, 0x89, 0x9C, 0x82, 0x0F, 0xC0, 0xB7,
+ 0x8C, 0x46, 0x8A, 0x0B, 0xB4, 0xC0, 0x5E, 0x9A, 0x71, 0xC9, 0x80, 0x9C, 0x11, 0xF0, 0xC4, 0x2A, 0x00, 0xC0, 0x24, 0x92, 0x80, 0x77, 0x02, 0xC0, 0x42, 0x91, 0x74, 0xC0, 0x4C, 0x9B,
+ 0x1C, 0xC0, 0x3E, 0x7C, 0x00, 0xC0, 0x04, 0x91, 0x71, 0xC1, 0x80, 0x9C, 0x08, 0x2A, 0x00, 0x75, 0x01, 0xC0, 0xC2, 0x93, 0x49, 0xC0, 0x82, 0x0E, 0xFC, 0xC2, 0xC0, 0x0E, 0x50, 0xF2,
+ 0xA5, 0xA8, 0x50, 0xF2, 0x2D, 0xAA, 0x48, 0x70, 0x01, 0xC0, 0x82, 0x91, 0x50, 0xF2, 0x25, 0xAA, 0x40, 0xB7, 0x9C, 0x42, 0x00, 0xC2, 0x08, 0x5A, 0x10, 0xE3, 0xA1, 0x81, 0x08, 0xD0,
+ 0xE1, 0xA8, 0x08, 0xD0, 0x65, 0xAA, 0xF6, 0xCF, 0xFD, 0x28, 0x00, 0x75, 0x8C, 0x08, 0x80, 0xC0, 0x89, 0x5A, 0x00, 0xC0, 0xA2, 0x90, 0xA3, 0x9E, 0x74, 0xC0, 0x3B, 0x9A, 0x50, 0xF2,
+ 0x27, 0xA9, 0x90, 0xDA, 0x21, 0xAA, 0x10, 0xE3, 0xA3, 0x80, 0x00, 0xC2, 0x40, 0x5A, 0x00, 0xC2, 0x41, 0x5A, 0x48, 0x70, 0x7C, 0x9E, 0x14, 0xB3, 0x26, 0x44, 0x89, 0x00, 0x50, 0xF2,
+ 0xA5, 0xA0, 0xFD, 0xFF, 0xC0, 0x92, 0x40, 0x75, 0xFD, 0xFF, 0x62, 0x92, 0x71, 0xC1, 0x80, 0x9C, 0xFD, 0xFF, 0xE0, 0x91, 0x80, 0x77, 0xFD, 0xFF, 0x84, 0x91, 0x74, 0xC0, 0x01, 0x9B,
+ 0x1C, 0xC0, 0x3E, 0x7C, 0xFD, 0xFF, 0xC4, 0x90, 0x12, 0x85, 0x5F, 0xB5, 0x7C, 0x7F, 0x04, 0x8D, 0x48, 0xF2, 0x5F, 0xA1, 0x71, 0xC9, 0x80, 0x9C, 0x08, 0x2A, 0x00, 0x75, 0x00, 0xC0,
+ 0x04, 0x92, 0x27, 0xC9, 0x8F, 0x9C, 0x9F, 0xB7, 0x6C, 0x7F, 0x04, 0x1A, 0x9F, 0xB5, 0x6C, 0x7F, 0x3F, 0xB7, 0x6C, 0x7F, 0x40, 0x74, 0xFF, 0xFF, 0x04, 0x93, 0x17, 0xC9, 0x8F, 0x9C,
+ 0x48, 0xF2, 0xDD, 0xA3, 0xFC, 0xFF, 0x00, 0x91, 0x9F, 0xB7, 0xEE, 0x7D, 0xBF, 0xB7, 0x6E, 0x7E, 0xDF, 0xB7, 0xEE, 0x7E, 0xFF, 0xB7, 0x6E, 0x7F, 0x02, 0xC0, 0x20, 0x8C, 0x22, 0x9C,
+ 0x1D, 0xA6, 0x80, 0xB7, 0x8C, 0x65, 0x12, 0xD0, 0x48, 0x0B, 0x20, 0xB7, 0x0C, 0x46, 0x87, 0x07, 0x07, 0xC0, 0xC2, 0x0B, 0x01, 0xC0, 0xC2, 0x0E, 0x09, 0x03, 0x31, 0xD0, 0x98, 0x0A,
+ 0xCA, 0x7B, 0x00, 0xC0, 0x62, 0x92, 0x08, 0xF2, 0x21, 0xAA, 0x05, 0xC0, 0x04, 0x7D, 0x00, 0xC0, 0xA2, 0x91, 0xFD, 0xCF, 0x76, 0x2A, 0x08, 0xF2, 0x21, 0xA2, 0x0A, 0x85, 0x08, 0xF2,
+ 0x43, 0xA1, 0x10, 0xF2, 0xC2, 0xA9, 0x14, 0xC0, 0x6A, 0x9A, 0x6C, 0x9E, 0x20, 0x0F, 0x20, 0x0B, 0x7D, 0x4A, 0x00, 0xE0, 0xF8, 0x23, 0x02, 0xC0, 0x80, 0x0A, 0x80, 0xC2, 0x84, 0x5E,
+ 0xFF, 0xFF, 0x44, 0x90, 0x9F, 0xB7, 0x6E, 0x7E, 0xBF, 0xB7, 0xEE, 0x7E, 0xDF, 0xB7, 0x6E, 0x7F, 0xFF, 0xB7, 0xEE, 0x7F, 0x02, 0xC0, 0x00, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x5D, 0x9E,
+ 0x51, 0xD0, 0x58, 0x0A, 0xA1, 0x9E, 0x86, 0x0D, 0xE4, 0x55, 0x07, 0xC0, 0xC0, 0x2D, 0x14, 0xC0, 0x1C, 0x9A, 0xAB, 0x9E, 0x14, 0xC0, 0x08, 0x98, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7,
+ 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x0D, 0xA6, 0x80, 0xB7, 0x0C, 0x46, 0xA6, 0xD1, 0x14, 0x5D, 0x10, 0xF3, 0x21, 0x81, 0x40, 0xB7, 0x04, 0x66, 0xB5, 0x9E, 0x30, 0xF2, 0xA5, 0xAA,
+ 0xA6, 0xD1, 0x0C, 0x5D, 0x2D, 0x9E, 0x01, 0xC0, 0xA0, 0x3A, 0x10, 0xF2, 0xA1, 0xA2, 0x30, 0xE0, 0xCE, 0xA9, 0x14, 0xC0, 0x11, 0x9A, 0x02, 0x85, 0xFF, 0xCF, 0xE8, 0x2A, 0x10, 0xF2,
+ 0xA1, 0xA2, 0xFF, 0xCF, 0xDE, 0x2A, 0x10, 0xF2, 0xA1, 0xA2, 0x31, 0xD0, 0x68, 0x0A, 0x08, 0xF2, 0x03, 0xA1, 0x9F, 0xB7, 0xEE, 0x7E, 0xBF, 0xB7, 0x6E, 0x7F, 0xDF, 0xB7, 0xEE, 0x7F,
+ 0x60, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x5D, 0x9E, 0x0E, 0xC0, 0x7C, 0x2D, 0x0E, 0xC0, 0x7C, 0x29, 0x14, 0xC0, 0x3B, 0x98, 0xAB, 0x9E, 0x14, 0xC0, 0x08, 0x98, 0x9F, 0xB7, 0x6E, 0x7F,
+ 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x5D, 0x9E, 0x40, 0xB7, 0x9C, 0x65, 0xA8, 0xD2, 0x0C, 0x59, 0x2D, 0x9E, 0x20, 0xE0, 0x6D, 0xAA, 0x02, 0x75, 0xA3, 0xB5,
+ 0x08, 0x68, 0x00, 0xC0, 0xE4, 0x90, 0x10, 0x85, 0x20, 0xE0, 0xEE, 0xA9, 0x14, 0xC0, 0xDC, 0x99, 0xAB, 0x9E, 0x14, 0xC0, 0xC9, 0x98, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F,
+ 0x40, 0x8C, 0x22, 0x9C, 0x80, 0xB7, 0x8C, 0x43, 0x71, 0xC1, 0xCC, 0x9C, 0x20, 0xB7, 0x94, 0x46, 0x20, 0xB7, 0x4D, 0x40, 0xB0, 0x5D, 0x00, 0xC1, 0x80, 0x2D, 0x5A, 0x9E, 0xFE, 0xCE,
+ 0xFD, 0x28, 0x94, 0x30, 0x20, 0xB5, 0x4D, 0x40, 0x71, 0xC1, 0xCC, 0x9C, 0x22, 0x9C, 0x0D, 0xA6, 0x5E, 0x9E, 0x80, 0xB7, 0x8C, 0x65, 0x24, 0xD3, 0x8C, 0x59, 0x55, 0x9E, 0x59, 0x9E,
+ 0x06, 0x85, 0x40, 0xE0, 0x27, 0xA1, 0x13, 0xD0, 0x48, 0x09, 0x9E, 0x9E, 0xC7, 0x9D, 0x95, 0x9E, 0x10, 0xE0, 0xEA, 0xA9, 0x0E, 0xC0, 0xFC, 0x2A, 0x0E, 0xC0, 0xFC, 0x2E, 0x14, 0xC0,
+ 0xA3, 0x99, 0x40, 0x75, 0x82, 0x0D, 0x01, 0xD0, 0xB2, 0x0D, 0xF4, 0xFF, 0xD0, 0x9B, 0x20, 0xB7, 0x0C, 0x46, 0x26, 0xD3, 0x14, 0x59, 0x01, 0xC2, 0x22, 0x81, 0x71, 0xF0, 0x20, 0x84,
+ 0x1E, 0x87, 0x0A, 0xF2, 0x00, 0xA1, 0x31, 0xF0, 0x20, 0x84, 0x2A, 0x9E, 0x05, 0xC8, 0x82, 0x0C, 0x42, 0xA3, 0x08, 0xF2, 0x82, 0xA2, 0x20, 0xF0, 0xC6, 0xA0, 0x05, 0xC8, 0x92, 0x0C,
+ 0x00, 0xF0, 0xC2, 0xA0, 0x9F, 0xB7, 0xEE, 0x7E, 0xBF, 0xB7, 0x6E, 0x7F, 0xDF, 0xB7, 0xEE, 0x7F, 0x60, 0x8C, 0x22, 0x9C, 0x1D, 0xA6, 0x80, 0xB7, 0x8C, 0x65, 0x5F, 0x9E, 0x9D, 0x9E,
+ 0x55, 0x9E, 0x06, 0x85, 0x08, 0xF2, 0x03, 0xA1, 0x08, 0xF2, 0x86, 0xA9, 0x96, 0x9E, 0x4E, 0x9E, 0x14, 0xC0, 0x6D, 0x99, 0x82, 0x0D, 0xF4, 0xFF, 0x9D, 0x9B, 0x11, 0xC0, 0x82, 0x08,
+ 0x84, 0x08, 0x80, 0xB7, 0x0C, 0x46, 0x80, 0xC2, 0xD0, 0x5E, 0x6A, 0x9E, 0x42, 0x85, 0x80, 0xC2, 0xA8, 0x5A, 0x08, 0xF2, 0x1B, 0xA1, 0x08, 0xF2, 0x01, 0xA3, 0x08, 0xF2, 0x89, 0xA0,
+ 0xAA, 0x30, 0x72, 0x9E, 0x34, 0xC0, 0x42, 0x85, 0x94, 0x30, 0x08, 0xF2, 0x91, 0xA0, 0x08, 0xF2, 0x17, 0xA1, 0x8F, 0x00, 0x01, 0xC2, 0x88, 0x38, 0x08, 0xF2, 0x85, 0xA0, 0x01, 0xC0,
+ 0x84, 0x38, 0x08, 0xF2, 0x85, 0xA0, 0x9F, 0xB7, 0x6E, 0x7E, 0xBF, 0xB7, 0xEE, 0x7E, 0xDF, 0xB7, 0x6E, 0x7F, 0xFF, 0xB7, 0xEE, 0x7F, 0x02, 0xC0, 0x00, 0x8C, 0x22, 0x9C, 0x05, 0xA6,
+ 0x80, 0xB7, 0x8C, 0x65, 0x06, 0x85, 0x87, 0x06, 0x08, 0xF2, 0x03, 0xA1, 0x08, 0xF2, 0x86, 0xA9, 0x87, 0x02, 0x14, 0xC0, 0x30, 0x99, 0x82, 0x0D, 0xF4, 0xFF, 0x60, 0x9B, 0x80, 0xB7,
+ 0x0C, 0x46, 0x21, 0xC0, 0x82, 0x08, 0x84, 0x08, 0x42, 0x85, 0x08, 0xF2, 0x1B, 0xA1, 0x08, 0xF2, 0x81, 0xA2, 0x08, 0xF2, 0x89, 0xA0, 0x69, 0x9E, 0x34, 0xC0, 0x42, 0x85, 0x08, 0xF2,
+ 0x17, 0xA1, 0x01, 0xC2, 0x80, 0x38, 0x08, 0xF2, 0x85, 0xA0, 0x01, 0xC0, 0x84, 0x38, 0x08, 0xF2, 0x85, 0xA0, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C,
+ 0x40, 0xB7, 0x84, 0x65, 0xA6, 0xD1, 0x0C, 0x5D, 0x2E, 0x9E, 0x38, 0xE0, 0x41, 0xA8, 0x11, 0xD0, 0x04, 0x1A, 0x02, 0x75, 0x40, 0xB3, 0xB2, 0x48, 0x02, 0x85, 0x00, 0xF0, 0x43, 0xA1,
+ 0x22, 0x9C, 0x0D, 0xA6, 0x80, 0xB7, 0x8C, 0x65, 0x5E, 0x9E, 0x06, 0x85, 0x08, 0xF2, 0x03, 0xA1, 0x08, 0xF2, 0x86, 0xA9, 0x87, 0x02, 0x85, 0x06, 0x14, 0xC0, 0xF1, 0x98, 0x86, 0x0D,
+ 0xF4, 0xFF, 0x21, 0x9B, 0x80, 0xB7, 0x0C, 0x46, 0xA1, 0xC0, 0x82, 0x08, 0x1E, 0x85, 0x08, 0xF2, 0x1B, 0xA1, 0x08, 0xF2, 0x81, 0xA2, 0x08, 0xF2, 0x89, 0xA0, 0x08, 0xF2, 0x96, 0xA2,
+ 0x8D, 0x00, 0x81, 0xC2, 0x80, 0x38, 0x08, 0xF2, 0x85, 0xA0, 0x01, 0xC0, 0x84, 0x38, 0x08, 0xF2, 0x85, 0xA0, 0x9F, 0xB7, 0xEE, 0x7E, 0xBF, 0xB7, 0x6E, 0x7F, 0xDF, 0xB7, 0xEE, 0x7F,
+ 0x60, 0x8C, 0x22, 0x9C, 0x0D, 0xA6, 0x07, 0x03, 0x07, 0x07, 0x82, 0x0E, 0x82, 0x0A, 0x54, 0x9E, 0x71, 0xC1, 0xCD, 0x9C, 0x20, 0x75, 0x00, 0xC0, 0x44, 0x91, 0x74, 0xC0, 0x6C, 0x99,
+ 0x13, 0xF0, 0x00, 0x09, 0x00, 0xC0, 0x22, 0x93, 0x00, 0xC0, 0x60, 0x92, 0x00, 0x75, 0x00, 0xC0, 0xA4, 0x90, 0x0A, 0x85, 0x00, 0xC0, 0xA0, 0x91, 0x2A, 0x75, 0x00, 0xC0, 0x24, 0x91,
+ 0x80, 0xB7, 0x8C, 0x46, 0x0E, 0x85, 0x08, 0xF2, 0x8A, 0xAA, 0x00, 0xC0, 0x60, 0x90, 0x0E, 0x85, 0xCF, 0x9D, 0x6B, 0x9E, 0x94, 0xC0, 0x8A, 0x9A, 0x71, 0xC1, 0xCD, 0x9C, 0x0D, 0x00,
+ 0x0D, 0x04, 0x9F, 0xB7, 0xEE, 0x7E, 0xBF, 0xB7, 0x6E, 0x7F, 0xDF, 0xB7, 0xEE, 0x7F, 0x60, 0x8C, 0x22, 0x9C, 0x0D, 0xA6, 0xA0, 0xB7, 0x8C, 0x43, 0x07, 0x03, 0x07, 0x07, 0x71, 0xC1,
+ 0xCD, 0x9C, 0xA8, 0x76, 0x00, 0xC0, 0x84, 0x90, 0x14, 0xC0, 0x53, 0x98, 0x71, 0xC1, 0xCD, 0x9C, 0x0D, 0x00, 0x0D, 0x04, 0x9F, 0xB7, 0xEE, 0x7E, 0xBF, 0xB7, 0x6E, 0x7F, 0xDF, 0xB7,
+ 0xEE, 0x7F, 0x60, 0x8C, 0x22, 0x9C, 0x0D, 0xA6, 0x74, 0xC1, 0x36, 0x98, 0x11, 0xC0, 0x82, 0x0D, 0x74, 0xC1, 0x1A, 0x98, 0x09, 0xC8, 0x42, 0x0A, 0xDA, 0xC0, 0x70, 0x0A, 0x09, 0xC8,
+ 0xC2, 0x08, 0xCE, 0xC0, 0xB0, 0x08, 0x20, 0xB7, 0x94, 0x41, 0x80, 0xB5, 0x2C, 0x4C, 0x20, 0xB5, 0xAC, 0x4C, 0x20, 0xB5, 0x2C, 0x4A, 0x20, 0xB5, 0x2C, 0x42, 0x20, 0xB5, 0x2C, 0x4B,
+ 0x80, 0xB7, 0x4D, 0x45, 0x20, 0xB7, 0x8C, 0x43, 0x00, 0xC4, 0x00, 0x2A, 0x00, 0x75, 0x51, 0xD0, 0x10, 0x3B, 0x00, 0xC0, 0xA2, 0x90, 0xF9, 0x28, 0x20, 0xB5, 0x8C, 0x43, 0x00, 0xC3,
+ 0x40, 0x5A, 0x00, 0xC2, 0xC1, 0x5A, 0x8B, 0x00, 0xFE, 0xCF, 0xFC, 0x28, 0x83, 0x02, 0x82, 0x0E, 0x8B, 0x01, 0x8B, 0x05, 0x79, 0x2B, 0x74, 0xC1, 0x87, 0x98, 0x02, 0x0A, 0x71, 0xC1,
+ 0xCC, 0x9C, 0x4C, 0x32, 0x71, 0xC1, 0xCC, 0x9C, 0x9F, 0xB7, 0xEE, 0x7E, 0xBF, 0xB7, 0x6E, 0x7F, 0xDF, 0xB7, 0xEE, 0x7F, 0x60, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0xA0, 0xB7, 0x94, 0x46,
+ 0x10, 0xF2, 0xA9, 0xA8, 0x80, 0xB7, 0x0C, 0x44, 0x00, 0xE0, 0x98, 0x22, 0x00, 0xC0, 0x22, 0x93, 0x0B, 0x02, 0x07, 0xE0, 0x40, 0x2A, 0x10, 0xF2, 0xAD, 0xA2, 0x00, 0xC0, 0xA2, 0x90,
+ 0xA3, 0x9E, 0xF4, 0xFF, 0xB6, 0x99, 0x09, 0xC2, 0x3E, 0x0A, 0x04, 0xC1, 0x3C, 0x0A, 0x00, 0xE0, 0x58, 0x22, 0xFF, 0xFF, 0x02, 0x91, 0xA3, 0x9E, 0x74, 0xC0, 0x68, 0x9A, 0xFF, 0xFF,
+ 0x60, 0x90, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x20, 0xB7, 0x14, 0x44, 0x80, 0xB7, 0x8C, 0x46, 0x96, 0x34, 0x20, 0xB5, 0x14, 0x44, 0x08, 0xF2,
+ 0x96, 0xA0, 0x22, 0x9C, 0x20, 0xB7, 0x14, 0x44, 0x80, 0xB7, 0x8C, 0x46, 0xFD, 0x4D, 0x96, 0x24, 0x20, 0xB5, 0x14, 0x44, 0x08, 0xF2, 0x96, 0xA0, 0x22, 0x9C, 0x02, 0x85, 0x10, 0xF0,
+ 0x63, 0xA1, 0x22, 0x9C, 0x20, 0xB7, 0x8C, 0x43, 0x10, 0xF0, 0x61, 0xAA, 0x00, 0x75, 0xFF, 0xFF, 0xA2, 0x93, 0x03, 0x02, 0x71, 0xC1, 0xCC, 0x9C, 0x10, 0xF0, 0xE1, 0xA8, 0x84, 0x18,
+ 0x10, 0xF0, 0xE1, 0xA0, 0x71, 0xC1, 0xCC, 0x9C, 0x02, 0x08, 0x22, 0x9C, 0x80, 0xB7, 0x8C, 0x43, 0x71, 0xC1, 0xCC, 0x9C, 0x10, 0xF0, 0xE1, 0xA8, 0x84, 0x08, 0x10, 0xF0, 0xE1, 0xA0,
+ 0x71, 0xC1, 0xCC, 0x9C, 0x02, 0x08, 0x22, 0x9C, 0x1C, 0xC0, 0xFE, 0x7C, 0x8C, 0x5D, 0xA0, 0x2D, 0x5B, 0x9E, 0x82, 0x08, 0x01, 0xD0, 0x92, 0x08, 0x80, 0xB7, 0x8C, 0x47, 0x20, 0x59,
+ 0x30, 0xC0, 0x00, 0x29, 0x0F, 0xC0, 0x7E, 0x2D, 0x88, 0x58, 0x14, 0x31, 0xA6, 0x30, 0x84, 0x38, 0x08, 0xF2, 0x99, 0xA0, 0xF9, 0x28, 0x08, 0xF2, 0x99, 0xA0, 0x08, 0xF2, 0x1E, 0xA1,
+ 0x22, 0x9C, 0x20, 0xB7, 0x8C, 0x47, 0x80, 0xB7, 0xAD, 0x4B, 0x00, 0x75, 0xFF, 0xFF, 0xB6, 0x93, 0x22, 0x9C, 0x20, 0xB7, 0x94, 0x47, 0xA0, 0x5D, 0x59, 0x9E, 0x80, 0xB7, 0x4D, 0x43,
+ 0x4A, 0x9E, 0x30, 0xC0, 0x80, 0x28, 0xCE, 0xCF, 0x7D, 0x2A, 0x42, 0x32, 0x80, 0xB5, 0x4D, 0x43, 0x08, 0xF0, 0x59, 0xAA, 0x59, 0x9E, 0x30, 0xC0, 0x00, 0x2A, 0x02, 0x71, 0xFF, 0xFF,
+ 0x44, 0x93, 0x22, 0x9C, 0x05, 0xA6, 0xA0, 0xB7, 0x8C, 0x47, 0x12, 0x85, 0xC8, 0xF2, 0x27, 0xA1, 0xF4, 0xFF, 0xDB, 0x9B, 0x88, 0xF2, 0x3D, 0xAA, 0xC8, 0xF2, 0xA1, 0xA8, 0x9F, 0xB7,
+ 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0xA0, 0xB7, 0x8C, 0x47, 0xC8, 0xF2, 0xA6, 0xA1, 0xF4, 0xFF, 0xCA, 0x9B, 0x88, 0xF2, 0x3D, 0xAA, 0xC8, 0xF2,
+ 0x21, 0xA8, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x8C, 0x5D, 0x0E, 0xC0, 0xE0, 0x2D, 0x84, 0x3D, 0xFF, 0xFF, 0x60, 0x91, 0x8C, 0x5D, 0x0E, 0xC0,
+ 0xE0, 0x2D, 0xFF, 0xFF, 0xC0, 0x90, 0x9A, 0x0D, 0xFF, 0xFF, 0x60, 0x90, 0x05, 0xA6, 0x87, 0x06, 0x10, 0xF2, 0xA9, 0xAA, 0x02, 0xC0, 0xA2, 0x0D, 0x82, 0x09, 0x14, 0xC0, 0x70, 0x99,
+ 0x02, 0xC0, 0xB2, 0x0D, 0x82, 0x09, 0x14, 0xC0, 0x6B, 0x99, 0x02, 0xC0, 0xC2, 0x0D, 0x82, 0x09, 0x14, 0xC0, 0x66, 0x99, 0x02, 0xC0, 0xF2, 0x0D, 0x82, 0x09, 0x14, 0xC0, 0x61, 0x99,
+ 0x8B, 0x01, 0xFF, 0xCF, 0xC2, 0x29, 0x01, 0xC0, 0x84, 0x39, 0xFE, 0xC9, 0xFD, 0x29, 0xA2, 0x0D, 0x00, 0xC4, 0x80, 0x39, 0x14, 0xC0, 0x55, 0x99, 0x00, 0xC1, 0xA2, 0x0A, 0x40, 0xC0,
+ 0x82, 0x0D, 0x8B, 0x01, 0x14, 0xC0, 0x4E, 0x99, 0x60, 0xC0, 0x82, 0x0D, 0x8B, 0x01, 0x14, 0xC0, 0x49, 0x99, 0x40, 0xC0, 0xA2, 0x0D, 0x82, 0x09, 0x14, 0xC0, 0x44, 0x99, 0x40, 0xC0,
+ 0xA2, 0x0D, 0x86, 0x09, 0x14, 0xC0, 0x3F, 0x99, 0x40, 0xC0, 0xA2, 0x0D, 0x8A, 0x09, 0x14, 0xC0, 0x3A, 0x99, 0xA0, 0xB7, 0x8C, 0x43, 0x71, 0xC1, 0xCD, 0x9C, 0x40, 0xC0, 0x92, 0x0D,
+ 0x82, 0x09, 0x14, 0xC0, 0x31, 0x99, 0x40, 0xC0, 0x92, 0x0D, 0x8A, 0x09, 0x14, 0xC0, 0x2C, 0x99, 0x20, 0xB7, 0x94, 0x46, 0x49, 0x9E, 0x80, 0xB7, 0x2D, 0x41, 0x01, 0xC0, 0x30, 0x2A,
+ 0x01, 0xC0, 0x18, 0x75, 0xFF, 0xFF, 0x44, 0x93, 0x80, 0xB5, 0xCD, 0x41, 0x50, 0xF2, 0x3D, 0xAA, 0x81, 0xC0, 0x00, 0x3A, 0x50, 0xF2, 0x3D, 0xA2, 0x71, 0xC1, 0xCD, 0x9C, 0x8B, 0x05,
+ 0x74, 0xC0, 0x21, 0x98, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x80, 0xB7, 0x8C, 0x49, 0x00, 0x75, 0x82, 0x0A, 0x00, 0xC0, 0x22, 0x91,
+ 0x94, 0xC0, 0x64, 0x9A, 0x80, 0xB7, 0x8C, 0x49, 0x00, 0x75, 0xFF, 0xFF, 0x64, 0x93, 0x60, 0xB7, 0x8C, 0x43, 0x71, 0xC0, 0xCF, 0x9C, 0x40, 0xB7, 0x8C, 0x46, 0x20, 0xB7, 0x94, 0x47,
+ 0xAA, 0x9E, 0xFF, 0xCF, 0x3E, 0x2D, 0x85, 0x00, 0x80, 0xB7, 0xAD, 0x45, 0x40, 0x2A, 0x00, 0x75, 0xFF, 0xFF, 0x82, 0x93, 0x71, 0xD2, 0x10, 0x0E, 0x08, 0xF2, 0x81, 0xA8, 0x08, 0xF0,
+ 0xC2, 0xA8, 0x55, 0x9E, 0x01, 0xC0, 0xC0, 0x3A, 0x7F, 0x0A, 0x4A, 0x42, 0xA2, 0x9E, 0x94, 0x24, 0x4C, 0x9E, 0xCA, 0x30, 0x08, 0xF0, 0xC1, 0xA0, 0x08, 0xF0, 0xC1, 0xAA, 0x20, 0xB7,
+ 0x8C, 0x47, 0x08, 0xF0, 0xC2, 0xA0, 0x08, 0xF0, 0xC2, 0xA0, 0x10, 0xC0, 0x82, 0x0C, 0x20, 0xB5, 0x35, 0x40, 0x71, 0xC0, 0xCF, 0x9C, 0x06, 0x08, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7,
+ 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x20, 0x84, 0x20, 0xB7, 0x94, 0x43, 0x72, 0xC0, 0xCD, 0x9C, 0x20, 0xB7, 0x8C, 0x46, 0x60, 0xB7, 0x2D, 0x40, 0x40, 0xB7, 0x8C, 0x47, 0xFF, 0xCF,
+ 0xFA, 0x29, 0x07, 0x02, 0x01, 0xC0, 0x04, 0x3A, 0x80, 0xB5, 0x2D, 0x40, 0x60, 0xB7, 0x35, 0x40, 0x60, 0xB5, 0x2D, 0x40, 0xC8, 0xF0, 0xCD, 0xA9, 0x81, 0xC0, 0x82, 0x0D, 0x59, 0x9E,
+ 0x32, 0x32, 0xC8, 0xF0, 0x4D, 0xA2, 0xC8, 0xF0, 0xDD, 0xA8, 0x12, 0xD2, 0x20, 0x09, 0x3F, 0xB5, 0x6C, 0x7F, 0x10, 0xF0, 0x41, 0xAA, 0x02, 0xC0, 0x82, 0x09, 0x9F, 0xB5, 0xEC, 0x7F,
+ 0xC8, 0xF0, 0xC9, 0xA1, 0x9F, 0xB7, 0x6C, 0x7F, 0xC8, 0xF0, 0x5D, 0xA2, 0x3F, 0xB7, 0xEC, 0x7F, 0x10, 0xF0, 0xC1, 0xA0, 0xC8, 0xF0, 0xCD, 0xA9, 0x5C, 0x9E, 0x7D, 0x4A, 0xB8, 0x21,
+ 0xC8, 0xF0, 0xCD, 0xA1, 0x72, 0xC0, 0xCD, 0x9C, 0x20, 0x8C, 0x22, 0x9C, 0x10, 0xF0, 0xE9, 0xA8, 0x20, 0xB7, 0x94, 0x46, 0x80, 0xB7, 0x4D, 0x45, 0x0C, 0x75, 0xFF, 0xFF, 0xB4, 0x93,
+ 0x80, 0xB7, 0x0C, 0x48, 0x02, 0x85, 0x48, 0xF2, 0x0B, 0xA1, 0x48, 0xF2, 0x0F, 0xA1, 0x48, 0xF2, 0x13, 0xA1, 0x48, 0xF2, 0x1F, 0xA1, 0xFF, 0xCF, 0xC2, 0x28, 0x01, 0xC0, 0x84, 0x38,
+ 0xFE, 0xC9, 0xFD, 0x28, 0x00, 0xC4, 0x80, 0x38, 0x08, 0xF2, 0x89, 0xA0, 0x10, 0xF0, 0xFD, 0xA8, 0xFE, 0xCC, 0xFD, 0x28, 0x00, 0xC1, 0x80, 0x38, 0x40, 0xC0, 0x00, 0x0A, 0x08, 0xF2,
+ 0x81, 0xA0, 0xC0, 0xCF, 0x01, 0x0A, 0x60, 0xC0, 0x00, 0x0A, 0x08, 0xF2, 0x81, 0xA0, 0x0E, 0xC0, 0x68, 0x85, 0x20, 0xB7, 0x8C, 0x46, 0x80, 0xB7, 0x2D, 0x45, 0x0C, 0x75, 0xFF, 0xFF,
+ 0xA6, 0x93, 0x20, 0xB7, 0x0C, 0x48, 0x60, 0xB9, 0x28, 0x40, 0x40, 0xC0, 0xA0, 0x08, 0x40, 0xB5, 0x3D, 0x40, 0x11, 0xF0, 0x22, 0x84, 0x00, 0xC2, 0x40, 0x5A, 0x26, 0xD2, 0x41, 0x59,
+ 0xFF, 0xFF, 0x01, 0x93, 0x20, 0xB7, 0x8C, 0x46, 0x80, 0xB7, 0x2D, 0x45, 0x06, 0x75, 0xFF, 0xFF, 0xB4, 0x93, 0x82, 0x08, 0x20, 0xB7, 0x14, 0x48, 0x40, 0xC0, 0xA0, 0x0C, 0x20, 0xB5,
+ 0x4D, 0x40, 0x50, 0xF0, 0x7D, 0xAA, 0x08, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0xC2, 0x90, 0x10, 0xC0, 0x82, 0x08, 0x00, 0xC0, 0x60, 0x90, 0x86, 0x08, 0x20, 0xB5, 0x4D, 0x40, 0x20, 0xB7,
+ 0x94, 0x43, 0x72, 0xC0, 0xCD, 0x9C, 0x20, 0xB7, 0x0C, 0x48, 0x02, 0x85, 0x40, 0xC0, 0x90, 0x08, 0x40, 0xB5, 0x3D, 0x40, 0x08, 0x85, 0x40, 0xB5, 0x3D, 0x40, 0x40, 0xB7, 0x8C, 0x46,
+ 0x85, 0x00, 0x80, 0xB7, 0x2D, 0x41, 0x01, 0xC0, 0x30, 0x2A, 0x01, 0xC0, 0x18, 0x75, 0xFF, 0xFF, 0x44, 0x93, 0x08, 0xF0, 0x4D, 0xA2, 0x50, 0xF0, 0x7D, 0xAA, 0x09, 0xC0, 0x00, 0x3A,
+ 0x50, 0xF0, 0x7D, 0xA2, 0x72, 0xC0, 0xCD, 0x9C, 0x58, 0xC0, 0xE0, 0x91, 0x40, 0xB7, 0x04, 0x48, 0x3A, 0x9D, 0x99, 0x9E, 0x20, 0xB7, 0x8C, 0x46, 0x80, 0xB7, 0x2D, 0x45, 0x00, 0x75,
+ 0xFF, 0xFF, 0xA2, 0x93, 0x2D, 0x9E, 0x20, 0xE0, 0xEE, 0xA0, 0x22, 0x9C, 0x02, 0x0A, 0xA2, 0x0C, 0x81, 0xB4, 0x00, 0xC0, 0x01, 0xB2, 0x20, 0x44, 0x22, 0x9C, 0x39, 0xF8, 0x05, 0xA2,
+ 0x00, 0xC0, 0x80, 0x90, 0x94, 0xC0, 0x45, 0x99, 0x83, 0xB7, 0x08, 0x6C, 0x1C, 0xC0, 0x3E, 0x7D, 0xFF, 0xFF, 0x44, 0x93, 0xF8, 0xF9, 0x1D, 0xAA, 0x22, 0x9C, 0x39, 0xF8, 0x05, 0xA2,
+ 0x02, 0xC0, 0x40, 0x84, 0x3A, 0x9D, 0x18, 0xD0, 0x45, 0xAA, 0x1C, 0xC0, 0x3E, 0x7D, 0x05, 0xC0, 0x64, 0x92, 0x60, 0xB7, 0x84, 0x58, 0xA3, 0xCB, 0x3A, 0x0A, 0xBA, 0xC8, 0x0C, 0x0A,
+ 0x10, 0xE0, 0xA7, 0x88, 0x99, 0x60, 0x8F, 0x58, 0x84, 0x18, 0xBC, 0x28, 0x74, 0xD1, 0x11, 0x69, 0x30, 0xC0, 0x41, 0xAA, 0x40, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x82, 0x92, 0x58, 0xF0,
+ 0x5D, 0xAA, 0x01, 0xC1, 0x00, 0x3A, 0x58, 0xF0, 0x5D, 0xA2, 0x58, 0xF0, 0xDD, 0xA8, 0x01, 0xC0, 0xC0, 0x38, 0x58, 0xF0, 0xDD, 0xA0, 0x82, 0x0D, 0x4F, 0x9D, 0x94, 0xC0, 0xDF, 0x98,
+ 0x04, 0xC0, 0x60, 0x92, 0x58, 0xF0, 0xDD, 0xA8, 0x58, 0xF0, 0x5D, 0xA9, 0x00, 0xE2, 0x00, 0x29, 0xB9, 0x58, 0x11, 0xD0, 0x92, 0x29, 0x02, 0xC0, 0xE4, 0x92, 0x40, 0xB7, 0x94, 0x41,
+ 0x50, 0xF0, 0x49, 0xAA, 0x80, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x8E, 0x0C, 0x00, 0xC0, 0x22, 0x91, 0x80, 0xB7, 0x0C, 0x50, 0x40, 0xB5, 0x0C, 0x50, 0x84, 0x0C, 0x9F, 0xB5, 0xEC, 0x7B,
+ 0x50, 0xF0, 0x49, 0xAA, 0x00, 0xC4, 0x00, 0x2A, 0x00, 0x75, 0x01, 0xC0, 0x62, 0x90, 0x98, 0xF0, 0x41, 0xAA, 0x98, 0xF0, 0xC5, 0xA8, 0x98, 0xF0, 0xCA, 0xA8, 0x98, 0xF0, 0x4D, 0xA9,
+ 0x9F, 0xB5, 0x6C, 0x7C, 0x3F, 0xB5, 0xEC, 0x7C, 0x3F, 0xB5, 0x74, 0x7D, 0x5F, 0xB5, 0xEC, 0x7D, 0x50, 0xF0, 0x49, 0xAA, 0x00, 0xC8, 0x00, 0x2A, 0x00, 0x75, 0xA2, 0x0C, 0x00, 0xC0,
+ 0x62, 0x91, 0x98, 0xF0, 0x51, 0xAA, 0x98, 0xF0, 0xD5, 0xA8, 0x88, 0x0C, 0x9F, 0xB5, 0x6C, 0x7E, 0x3F, 0xB5, 0xEC, 0x7E, 0xA2, 0xD0, 0x08, 0x5E, 0xD2, 0xE0, 0x80, 0x8D, 0x0C, 0xC0,
+ 0x02, 0x87, 0x5F, 0xB5, 0xE0, 0x68, 0x9F, 0xB5, 0x68, 0x68, 0x58, 0xF0, 0x5D, 0xAA, 0x18, 0xD8, 0xC5, 0xA8, 0x18, 0xD8, 0xDE, 0xA8, 0x5F, 0xB5, 0x7C, 0x7F, 0x9F, 0xB5, 0x6C, 0x7B,
+ 0x3F, 0xB5, 0xEA, 0x74, 0x3F, 0xB5, 0x72, 0x75, 0xD4, 0xFF, 0xA6, 0x99, 0x5F, 0xB7, 0x7C, 0x7F, 0x18, 0xD0, 0x41, 0xAA, 0x02, 0x87, 0x0E, 0xC0, 0x3C, 0x2A, 0x18, 0xD0, 0x41, 0xA2,
+ 0x40, 0xB5, 0x84, 0x49, 0x18, 0xD0, 0x41, 0xAA, 0x10, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0xC4, 0x91, 0x18, 0xD0, 0x41, 0xAA, 0x20, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x04, 0x91, 0x18, 0xD0,
+ 0x41, 0xAA, 0x04, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x02, 0x93, 0x20, 0xB7, 0x94, 0x47, 0x20, 0xB7, 0x8C, 0x46, 0x80, 0xB7, 0xAD, 0x45, 0x40, 0x2A, 0x00, 0x75, 0xFF, 0xFF, 0x82, 0x93,
+ 0x71, 0xD2, 0x10, 0x0E, 0x08, 0xF2, 0x81, 0xA8, 0x00, 0xC0, 0x00, 0x91, 0x58, 0xF0, 0x5D, 0xAA, 0x01, 0xC1, 0x00, 0x3A, 0x58, 0xF0, 0x5D, 0xA2, 0xF8, 0xF9, 0x05, 0xAA, 0x22, 0x9C,
+ 0x39, 0xF8, 0x05, 0xA2, 0x20, 0x84, 0x9F, 0xB7, 0x6C, 0x7F, 0x0C, 0xC0, 0x0A, 0x85, 0xF0, 0xCF, 0x01, 0x2A, 0x10, 0x3A, 0x9F, 0xB5, 0x6C, 0x7F, 0x5F, 0xB5, 0xF8, 0x7C, 0x10, 0xD8,
+ 0x65, 0xAA, 0x32, 0xE0, 0x80, 0x8D, 0x86, 0x09, 0x9F, 0xB5, 0xEA, 0x7E, 0xD4, 0xFF, 0x59, 0x99, 0xF8, 0xF9, 0x19, 0xAA, 0x22, 0x9C, 0x39, 0xF8, 0x85, 0xA2, 0x02, 0x0A, 0x87, 0x02,
+ 0x0A, 0x71, 0x01, 0xC0, 0x68, 0x93, 0xA0, 0xB7, 0x94, 0x46, 0x40, 0xB7, 0x1C, 0x48, 0x5A, 0x9E, 0x82, 0x08, 0x44, 0x70, 0x11, 0xD0, 0xC2, 0x09, 0x01, 0xC0, 0x88, 0x91, 0xC3, 0x9D,
+ 0x5E, 0x9D, 0x28, 0xD2, 0xA0, 0x59, 0xCB, 0x9D, 0x02, 0x87, 0x4B, 0x9D, 0xC7, 0x9D, 0x40, 0xC0, 0x20, 0x0C, 0x40, 0xC0, 0x60, 0x0D, 0x42, 0xC0, 0x40, 0x09, 0x50, 0xC0, 0x80, 0x0C,
+ 0x11, 0xD0, 0x12, 0x08, 0x58, 0xF0, 0x69, 0xAA, 0x06, 0x75, 0xFF, 0xFF, 0xB4, 0x93, 0x01, 0xC0, 0x84, 0x38, 0x01, 0xC0, 0x96, 0x30, 0x20, 0xB5, 0x4C, 0x40, 0x12, 0xF0, 0x40, 0xA1,
+ 0x02, 0xC0, 0x82, 0x08, 0x08, 0xF0, 0xC1, 0xA0, 0x40, 0xB5, 0x45, 0x40, 0x81, 0x00, 0x5C, 0x9E, 0x48, 0x70, 0xFF, 0xFF, 0x06, 0x91, 0x07, 0x02, 0x0A, 0x71, 0xFE, 0xFF, 0xA6, 0x91,
+ 0x20, 0xB7, 0x14, 0x48, 0x20, 0xB7, 0x8C, 0x46, 0x80, 0xB7, 0x2D, 0x45, 0x02, 0x75, 0xFF, 0xFF, 0xB4, 0x93, 0x02, 0x85, 0x40, 0xC0, 0x90, 0x0C, 0x40, 0xB5, 0x5D, 0x40, 0x86, 0x08,
+ 0x80, 0xB7, 0x0C, 0x48, 0x40, 0xC0, 0x10, 0x0A, 0x08, 0xF2, 0x81, 0xA0, 0xF8, 0xF9, 0x9D, 0xAA, 0x22, 0x9C, 0xA2, 0xD1, 0x08, 0x5E, 0xFE, 0xC0, 0x7C, 0x2A, 0x20, 0xC0, 0x00, 0x75,
+ 0x99, 0x9E, 0x01, 0xC0, 0x02, 0x90, 0x00, 0xC0, 0xD2, 0x90, 0x00, 0x75, 0x00, 0xC0, 0x02, 0x91, 0x22, 0x9C, 0x80, 0xC0, 0x00, 0x75, 0x00, 0xC0, 0xE2, 0x91, 0x22, 0x9C, 0x20, 0xB7,
+ 0x4D, 0x41, 0xF3, 0xC1, 0x7E, 0x0A, 0x00, 0xC1, 0x00, 0x0A, 0x98, 0x20, 0x00, 0xC2, 0x80, 0x38, 0x20, 0xB5, 0x4D, 0x41, 0x22, 0x9C, 0x20, 0xB7, 0x4D, 0x40, 0xC1, 0x28, 0xA4, 0x38,
+ 0x20, 0xB5, 0x4D, 0x40, 0x22, 0x9C, 0x80, 0xB7, 0x4D, 0x41, 0x20, 0xB7, 0xCD, 0x41, 0x80, 0xB5, 0x4D, 0x40, 0x20, 0xB5, 0xCD, 0x40, 0x22, 0x9C, 0x05, 0xA6, 0x5D, 0x9E, 0x82, 0x0D,
+ 0xD4, 0xFF, 0x82, 0x9A, 0x20, 0xB7, 0x8C, 0x44, 0x20, 0xB7, 0x12, 0x55, 0x34, 0xC0, 0x90, 0x08, 0xE9, 0xF1, 0xBE, 0xA0, 0x48, 0xDA, 0x21, 0xAA, 0x01, 0xC0, 0x04, 0x3A, 0x80, 0xB5,
+ 0x2D, 0x40, 0x08, 0xD2, 0x21, 0xA9, 0x82, 0x0D, 0x06, 0x0D, 0x08, 0xF2, 0xB9, 0xA9, 0x0E, 0xC0, 0x7C, 0x29, 0x05, 0x59, 0x04, 0x49, 0x04, 0x29, 0xD4, 0xFF, 0x56, 0x9A, 0x9F, 0xB7,
+ 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x5A, 0x9E, 0x00, 0xC1, 0x11, 0x5A, 0x04, 0x1A, 0x3F, 0x75, 0x08, 0xC0, 0x06, 0x85, 0x00, 0xC0, 0x22, 0x92, 0x20, 0xB7,
+ 0x94, 0x47, 0x40, 0xB5, 0xDD, 0x4C, 0x11, 0xD0, 0xC2, 0x18, 0x80, 0xB7, 0xCD, 0x4B, 0x00, 0x75, 0xFF, 0xFF, 0xB6, 0x93, 0x03, 0x02, 0x3F, 0x75, 0xFF, 0xFF, 0xA4, 0x92, 0x31, 0xF0,
+ 0x2E, 0x2A, 0x40, 0xB3, 0xA2, 0x48, 0x20, 0xB7, 0x8C, 0x47, 0x00, 0xC2, 0x0C, 0x5A, 0x04, 0x3A, 0x80, 0xB5, 0xAD, 0x4C, 0x80, 0xB7, 0xAD, 0x4B, 0x00, 0x75, 0xFF, 0xFF, 0xB6, 0x93,
+ 0x22, 0x9C, 0x1D, 0xA6, 0x02, 0xC0, 0x00, 0x84, 0x3E, 0x9D, 0x20, 0xB7, 0x90, 0x44, 0x7F, 0x87, 0x5F, 0xB5, 0x64, 0x7C, 0x82, 0x0A, 0xBF, 0xB5, 0xEC, 0x7C, 0x82, 0x0F, 0x0E, 0xC0,
+ 0x7E, 0x85, 0x40, 0xB5, 0x98, 0x44, 0x3F, 0xB5, 0x74, 0x7D, 0x01, 0xC9, 0x80, 0x9C, 0x98, 0xF0, 0x71, 0xA2, 0x06, 0x85, 0x40, 0xB5, 0x18, 0x44, 0x18, 0xD0, 0x61, 0xAA, 0x08, 0x2A,
+ 0x00, 0x75, 0x03, 0xC0, 0xE2, 0x90, 0x20, 0xB7, 0x94, 0x57, 0x60, 0xB7, 0x0C, 0x4D, 0x7F, 0xB5, 0x7C, 0x7F, 0x83, 0x05, 0x54, 0xC0, 0xC8, 0x98, 0x7F, 0xB7, 0x7C, 0x7F, 0x58, 0xF0,
+ 0x7D, 0xAA, 0x04, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0xE2, 0x90, 0xEF, 0x9D, 0xF4, 0xFF, 0x2C, 0x99, 0x7F, 0xB7, 0x7C, 0x7F, 0x20, 0xB7, 0x94, 0x58, 0xA3, 0xCB, 0xBA, 0x08,
+ 0xBA, 0xC8, 0x8C, 0x08, 0x10, 0xF2, 0x3B, 0x88, 0x43, 0x62, 0x00, 0xC2, 0x0F, 0x5A, 0x04, 0x1A, 0x3C, 0x2A, 0x73, 0xD1, 0x41, 0x69, 0x20, 0xE2, 0xAB, 0x80, 0x18, 0xD8, 0xF5, 0xA8,
+ 0x80, 0xB7, 0xCB, 0x42, 0xBC, 0x28, 0x3C, 0x2A, 0x48, 0x70, 0x00, 0xC0, 0xC2, 0x92, 0xEF, 0x9D, 0x01, 0xC1, 0x82, 0x09, 0x7F, 0xB5, 0x7C, 0x7F, 0x54, 0xC0, 0x7D, 0x99, 0x8B, 0x00,
+ 0x71, 0xC0, 0xCD, 0x9C, 0x7F, 0xB7, 0x7C, 0x7F, 0x58, 0xF0, 0x7D, 0xAA, 0x41, 0xC0, 0x00, 0x3A, 0x58, 0xF0, 0x7D, 0xA2, 0x71, 0xC0, 0xCD, 0x9C, 0xEF, 0x9D, 0x01, 0xC2, 0x82, 0x09,
+ 0x7F, 0xB5, 0x7C, 0x7F, 0x54, 0xC0, 0x69, 0x99, 0x80, 0xB7, 0x8C, 0x47, 0x0E, 0x85, 0x08, 0xF2, 0x0F, 0xA1, 0x20, 0xB7, 0x8C, 0x48, 0x01, 0xC0, 0x12, 0x0A, 0x10, 0xC0, 0x04, 0x0A,
+ 0x48, 0x70, 0x7F, 0xB7, 0x7C, 0x7F, 0x00, 0xC0, 0x72, 0x91, 0x80, 0xB7, 0x0C, 0x57, 0x08, 0xF2, 0x85, 0xA8, 0x20, 0xB7, 0x94, 0x46, 0xC0, 0x38, 0x20, 0xB5, 0x4D, 0x44, 0x18, 0xD0,
+ 0x61, 0xAA, 0x04, 0x2A, 0x00, 0x75, 0x40, 0xB7, 0x84, 0x4A, 0x00, 0xC0, 0xC2, 0x90, 0x60, 0xB7, 0x8C, 0x4D, 0x00, 0xC0, 0x80, 0x90, 0x60, 0xB7, 0x0C, 0x4D, 0x20, 0xB7, 0x94, 0x57,
+ 0x5F, 0xB5, 0xE4, 0x7E, 0x7F, 0xB5, 0x7C, 0x7F, 0x83, 0x05, 0x54, 0xC0, 0x55, 0x98, 0x7F, 0xB7, 0x74, 0x7F, 0xF4, 0xFF, 0x13, 0x9B, 0x7F, 0xB7, 0x7C, 0x7F, 0x18, 0xD0, 0x61, 0xAA,
+ 0x08, 0x2A, 0x00, 0x75, 0x5F, 0xB7, 0xE4, 0x7E, 0x00, 0xC0, 0x22, 0x92, 0x80, 0xB7, 0x88, 0x44, 0x1C, 0xC0, 0x3C, 0x75, 0x00, 0xC0, 0x64, 0x91, 0x20, 0xB7, 0x8C, 0x4A, 0x80, 0xB7,
+ 0x2D, 0x40, 0x01, 0xD2, 0x00, 0x75, 0x00, 0xC0, 0x62, 0x90, 0x00, 0x9F, 0x18, 0xD8, 0x75, 0xAA, 0x3C, 0x2A, 0x08, 0x75, 0x00, 0xC0, 0x44, 0x91, 0x80, 0xB7, 0x8C, 0x47, 0xB9, 0xC0,
+ 0xC2, 0x08, 0x60, 0xC0, 0x50, 0x0A, 0x08, 0xF2, 0x81, 0xA0, 0xE0, 0xB7, 0x0C, 0x55, 0x21, 0xF0, 0x45, 0xAB, 0x0D, 0x02, 0x01, 0xCF, 0x00, 0x2A, 0x01, 0xD0, 0x00, 0x75, 0x02, 0xC0,
+ 0xE2, 0x90, 0x01, 0xC0, 0x72, 0x90, 0x01, 0xC8, 0x00, 0x75, 0x0F, 0xC0, 0x42, 0x90, 0x00, 0xC0, 0x72, 0x91, 0x00, 0x75, 0xFF, 0xFF, 0xC2, 0x91, 0x01, 0xC2, 0x00, 0x75, 0x02, 0xC0,
+ 0xA2, 0x91, 0xFF, 0xFF, 0x00, 0x91, 0x01, 0xCC, 0x00, 0x75, 0x1A, 0xC0, 0xC2, 0x90, 0x00, 0xC0, 0x12, 0x91, 0x01, 0xCA, 0x00, 0x75, 0x07, 0xC0, 0x42, 0x93, 0xFE, 0xFF, 0x80, 0x93,
+ 0x01, 0xCE, 0x00, 0x75, 0x0F, 0xC0, 0x42, 0x91, 0xFE, 0xFF, 0xC0, 0x92, 0x01, 0xD6, 0x00, 0x75, 0x12, 0xC0, 0x82, 0x91, 0x00, 0xC0, 0x92, 0x91, 0x01, 0xD2, 0x00, 0x75, 0x14, 0xC0,
+ 0x42, 0x91, 0x01, 0xD4, 0x00, 0x75, 0x0B, 0xC0, 0x42, 0x93, 0xFE, 0xFF, 0xC0, 0x90, 0x01, 0xDA, 0x00, 0x75, 0x0D, 0xC0, 0xE2, 0x90, 0x00, 0xC0, 0x12, 0x91, 0x01, 0xD8, 0x00, 0x75,
+ 0x0B, 0xC0, 0xC2, 0x91, 0xFD, 0xFF, 0x40, 0x93, 0x01, 0xDE, 0x00, 0x75, 0x0F, 0xC0, 0x62, 0x91, 0xFD, 0xFF, 0x80, 0x92, 0x0D, 0x02, 0x01, 0xC0, 0x40, 0x2A, 0x00, 0x75, 0xFD, 0xFF,
+ 0xC2, 0x91, 0x58, 0xF0, 0x7D, 0xAA, 0x01, 0xC0, 0x08, 0x2A, 0x00, 0x75, 0xFD, 0xFF, 0xE4, 0x90, 0xFE, 0xCF, 0x7C, 0x2B, 0x00, 0xC3, 0x08, 0x5A, 0x01, 0xC3, 0x20, 0x83, 0xFC, 0xFF,
+ 0xE0, 0x93, 0x0D, 0x02, 0xFF, 0xC0, 0x40, 0x2A, 0x11, 0xC0, 0x00, 0x75, 0x82, 0x0E, 0x01, 0xD0, 0xD2, 0x0E, 0x09, 0xC0, 0x00, 0x75, 0x8D, 0x02, 0x01, 0xC0, 0xBE, 0x2A, 0x01, 0xC0,
+ 0x24, 0x91, 0x18, 0xD8, 0x75, 0xAA, 0x3C, 0x2A, 0x04, 0x75, 0x01, 0xC0, 0x64, 0x90, 0x18, 0xD0, 0x61, 0xAA, 0x04, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0xA2, 0x93, 0x20, 0xB7, 0x8C, 0x48,
+ 0x01, 0xC0, 0x0A, 0x0A, 0x0E, 0xC0, 0x78, 0x0A, 0x48, 0x70, 0x00, 0xC0, 0x92, 0x92, 0x58, 0xF0, 0x7D, 0xAA, 0x04, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0xA2, 0x91, 0xEF, 0x9D,
+ 0x5F, 0xB5, 0xE4, 0x7E, 0x7F, 0xB5, 0x7C, 0x7F, 0xD4, 0xFF, 0x52, 0x9B, 0x7F, 0xB7, 0x7C, 0x7F, 0x5F, 0xB7, 0xE4, 0x7E, 0x84, 0x1A, 0x7F, 0x75, 0xFB, 0xFF, 0xA2, 0x90, 0x60, 0xB7,
+ 0x14, 0x55, 0x00, 0xB7, 0x94, 0x46, 0x18, 0xD8, 0x75, 0xAA, 0x3C, 0x2A, 0x04, 0x75, 0x6A, 0x9E, 0x82, 0x08, 0x01, 0xD0, 0x92, 0x08, 0x44, 0x78, 0x00, 0xF0, 0x42, 0xA9, 0x02, 0xC0,
+ 0x42, 0x92, 0xF1, 0xD3, 0x2E, 0x2E, 0x10, 0x1A, 0x20, 0x75, 0x26, 0xD2, 0x0C, 0x59, 0x40, 0x85, 0x5A, 0xE0, 0x44, 0x80, 0x02, 0xC0, 0xE0, 0x90, 0x01, 0xC0, 0x40, 0x90, 0x02, 0xC0,
+ 0x60, 0x90, 0x02, 0xC0, 0x20, 0x90, 0x01, 0xC0, 0xE0, 0x93, 0x01, 0xC0, 0x40, 0x91, 0x01, 0xC0, 0x60, 0x93, 0x01, 0xC0, 0x20, 0x93, 0x01, 0xC0, 0xE0, 0x92, 0x01, 0xC0, 0x00, 0x91,
+ 0x01, 0xC0, 0x60, 0x92, 0x01, 0xC0, 0x20, 0x92, 0x01, 0xC0, 0xE0, 0x91, 0x01, 0xC0, 0xA0, 0x91, 0x01, 0xC0, 0x60, 0x91, 0x01, 0xC0, 0x20, 0x91, 0x01, 0xC0, 0xE0, 0x90, 0x00, 0xC0,
+ 0xC0, 0x93, 0x20, 0xB7, 0x94, 0x55, 0x00, 0xF0, 0xC5, 0xA8, 0x80, 0xB7, 0x49, 0x4B, 0xFE, 0xCF, 0x8D, 0x28, 0x00, 0xC2, 0x08, 0x5A, 0x70, 0x2A, 0x98, 0x30, 0x00, 0xF0, 0xC5, 0xA0,
+ 0x00, 0xC0, 0xA0, 0x92, 0x00, 0xF0, 0x45, 0xAA, 0x10, 0xF0, 0xE1, 0xA8, 0x00, 0xC0, 0x80, 0x91, 0x00, 0xF0, 0x45, 0xAA, 0x10, 0xF0, 0xE5, 0xA8, 0x00, 0xC0, 0xC0, 0x90, 0x00, 0xF0,
+ 0x45, 0xAA, 0x10, 0xF0, 0xE9, 0xA8, 0x42, 0x32, 0x00, 0xF0, 0x45, 0xA2, 0x54, 0x9E, 0x31, 0xE0, 0xA0, 0x86, 0xB7, 0xCF, 0x7C, 0x0A, 0x00, 0xCF, 0x00, 0x0A, 0x00, 0xC2, 0x00, 0x75,
+ 0x00, 0xF0, 0x45, 0xA9, 0x11, 0xD0, 0xD2, 0x19, 0x00, 0xC0, 0x12, 0x91, 0x81, 0x04, 0x80, 0xB7, 0x4D, 0x45, 0x00, 0x75, 0xFF, 0xFF, 0xA2, 0x93, 0x87, 0x02, 0x7F, 0x75, 0x99, 0x9D,
+ 0x10, 0xF0, 0x41, 0xA1, 0xFC, 0xFF, 0x24, 0x91, 0xF7, 0xFF, 0xC0, 0x90, 0x18, 0xD8, 0xF5, 0xA8, 0x00, 0xC3, 0x41, 0x5A, 0xF2, 0xD3, 0x4E, 0x2B, 0x24, 0xD3, 0x91, 0x5A, 0xBC, 0x28,
+ 0x44, 0x74, 0xFE, 0xC0, 0xFC, 0x2E, 0x03, 0xC0, 0x04, 0x91, 0x0D, 0x02, 0xF1, 0xC0, 0x00, 0x2A, 0x21, 0xC0, 0x00, 0x75, 0xA3, 0x9E, 0x00, 0xC0, 0xC4, 0x91, 0x00, 0xF0, 0x49, 0xAA,
+ 0x08, 0xF2, 0xED, 0xA8, 0x42, 0x32, 0x00, 0xF0, 0x49, 0xA2, 0xE9, 0xA8, 0x08, 0xF2, 0x6D, 0xAA, 0x98, 0x30, 0xE9, 0xA0, 0x81, 0xC0, 0xC0, 0x76, 0x20, 0xB7, 0x14, 0x56, 0x00, 0xC0,
+ 0xC4, 0x92, 0x00, 0xF0, 0x41, 0xAA, 0x08, 0xF2, 0xF1, 0xA8, 0xC2, 0x30, 0x00, 0xF0, 0xC1, 0xA0, 0x80, 0xB7, 0xC9, 0x4B, 0x08, 0x75, 0x00, 0xC0, 0xC4, 0x90, 0xFE, 0xCB, 0xFD, 0x28,
+ 0x00, 0xF0, 0xC1, 0xA0, 0x00, 0xF0, 0x41, 0xAA, 0x18, 0xF0, 0x7D, 0xA2, 0x41, 0xC0, 0xC0, 0x76, 0x01, 0xC0, 0xA4, 0x90, 0x00, 0xF0, 0x45, 0xAA, 0x08, 0xF2, 0xF5, 0xA8, 0x42, 0x32,
+ 0x00, 0xF0, 0xC9, 0xA8, 0x00, 0xF0, 0x45, 0xA2, 0x08, 0xF2, 0x79, 0xAA, 0x98, 0x30, 0x00, 0xF0, 0x4D, 0xAA, 0x00, 0xF0, 0xC9, 0xA0, 0x08, 0xF2, 0xFD, 0xA8, 0x42, 0x32, 0x00, 0xF0,
+ 0xD1, 0xA8, 0x00, 0xF0, 0x4D, 0xA2, 0x48, 0xF2, 0x61, 0xAA, 0x98, 0x30, 0x40, 0xF0, 0x41, 0xAA, 0x00, 0xF0, 0xD1, 0xA0, 0x48, 0xF2, 0xE5, 0xA8, 0x42, 0x32, 0x40, 0xF0, 0x41, 0xA2,
+ 0x80, 0xB7, 0xC9, 0x4B, 0x08, 0x75, 0x00, 0xC0, 0xC4, 0x91, 0x4C, 0x9D, 0x8B, 0x05, 0x5F, 0xB5, 0xE4, 0x7E, 0x7F, 0xB5, 0x7C, 0x7F, 0xF4, 0xFF, 0x2E, 0x99, 0x7F, 0xB7, 0x7C, 0x7F,
+ 0x5F, 0xB7, 0xE4, 0x7E, 0x7A, 0x85, 0xBE, 0x77, 0x57, 0x9D, 0xCC, 0x9D, 0x65, 0xB3, 0x26, 0x48, 0x6B, 0x9E, 0xAA, 0x9E, 0x5F, 0xB5, 0x7C, 0x7E, 0x5F, 0xB5, 0xE4, 0x7E, 0x7F, 0xB5,
+ 0x7C, 0x7F, 0x34, 0xC0, 0x98, 0x9B, 0x5F, 0xB7, 0xE4, 0x7E, 0x5F, 0xB7, 0x7C, 0x7E, 0xA9, 0x9E, 0x7F, 0xB7, 0x7C, 0x7F, 0x80, 0xC2, 0x08, 0x5A, 0x00, 0xE0, 0x62, 0x17, 0xD2, 0x06,
+ 0x01, 0xC3, 0x20, 0x83, 0xFF, 0xFF, 0x64, 0x90, 0xF2, 0xFF, 0x00, 0x92, 0x24, 0xD3, 0x90, 0x5A, 0x18, 0xD0, 0x61, 0xAA, 0x82, 0x0D, 0x01, 0xCF, 0x00, 0x2B, 0x5F, 0xB5, 0xE4, 0x7E,
+ 0x7F, 0xB5, 0x7C, 0x7F, 0x0E, 0xC0, 0x7C, 0x2A, 0x00, 0xC2, 0x05, 0x5A, 0x04, 0x4A, 0x11, 0xD0, 0xC2, 0x2A, 0xB4, 0xFF, 0xA9, 0x9B, 0x01, 0xD4, 0x80, 0x75, 0x5F, 0xB7, 0xE4, 0x7E,
+ 0x7F, 0xB7, 0x7C, 0x7F, 0x00, 0xC0, 0x44, 0x91, 0x6B, 0x9E, 0x82, 0x0D, 0x02, 0x0D, 0x0B, 0x01, 0xB4, 0xFF, 0xCB, 0x9B, 0x0C, 0xC0, 0x00, 0x91, 0x6B, 0x9E, 0x06, 0x09, 0x5F, 0xB5,
+ 0xEC, 0x7C, 0x82, 0x0D, 0x02, 0x0D, 0x0B, 0x01, 0x5F, 0xB5, 0xE4, 0x7E, 0x7F, 0xB5, 0x7C, 0x7F, 0xB4, 0xFF, 0xBC, 0x9B, 0x0B, 0xC0, 0x20, 0x93, 0x00, 0xC3, 0x10, 0x5A, 0x18, 0xF0,
+ 0x79, 0xA2, 0x00, 0xD8, 0xC1, 0xA8, 0x58, 0xD8, 0xE1, 0xA0, 0xEE, 0xFF, 0xE0, 0x91, 0x58, 0xF0, 0xFD, 0xA8, 0x00, 0xC1, 0x90, 0x38, 0x58, 0xF0, 0xFD, 0xA0, 0x58, 0xF0, 0x7D, 0xAA,
+ 0x08, 0xC0, 0x00, 0x3A, 0x58, 0xF0, 0x7D, 0xA2, 0xA0, 0xB7, 0x8C, 0x46, 0x06, 0xC0, 0x7E, 0x85, 0x48, 0xF2, 0xA2, 0xAA, 0x48, 0xF2, 0x23, 0xA1, 0x00, 0xF0, 0xC2, 0xA9, 0x00, 0xF0,
+ 0xC5, 0xA9, 0x20, 0x87, 0x5F, 0xB5, 0xE4, 0x7E, 0x7F, 0xB5, 0x7C, 0x7F, 0xF4, 0xFF, 0x54, 0x98, 0x48, 0xF2, 0xA2, 0xA2, 0x0A, 0xC0, 0x80, 0x91, 0x21, 0xF0, 0x45, 0xAA, 0x18, 0xF0,
+ 0x71, 0xA2, 0x00, 0xD8, 0xC1, 0xA8, 0x58, 0xD8, 0xE9, 0xA0, 0x20, 0xD8, 0x49, 0xAA, 0x58, 0xD8, 0x6D, 0xA2, 0x10, 0x87, 0x21, 0xF0, 0x45, 0xAA, 0xEF, 0x9D, 0x02, 0x85, 0x18, 0xF0,
+ 0x79, 0xA2, 0x00, 0xF0, 0xC1, 0xA8, 0x01, 0xC8, 0x82, 0x09, 0x58, 0xF0, 0x73, 0xA1, 0x18, 0xF0, 0xFD, 0xA0, 0x7F, 0xB5, 0x7C, 0x7F, 0x34, 0xC0, 0xDB, 0x9A, 0x7F, 0xB7, 0x7C, 0x7F,
+ 0x0F, 0xC0, 0x00, 0x91, 0x20, 0xB7, 0x94, 0x56, 0x00, 0xF0, 0xC9, 0xA8, 0x00, 0xF0, 0xC2, 0xA9, 0x00, 0xF0, 0xC5, 0xA9, 0x20, 0xB5, 0x4D, 0x40, 0x00, 0xF0, 0x4D, 0xAA, 0x80, 0xB5,
+ 0xCD, 0x40, 0x00, 0xF0, 0xD1, 0xA8, 0x20, 0xB5, 0x4D, 0x41, 0x00, 0xF0, 0x55, 0xAA, 0x5F, 0xB5, 0xE4, 0x7E, 0x7F, 0xB5, 0x7C, 0x7F, 0x80, 0xB5, 0x0C, 0x53, 0xB4, 0xC0, 0x38, 0x9B,
+ 0x5F, 0xB7, 0xE4, 0x7E, 0xFF, 0xC0, 0x7E, 0x2B, 0x82, 0x75, 0x7F, 0xB7, 0x7C, 0x7F, 0x02, 0xC0, 0x00, 0x87, 0x00, 0xC0, 0x02, 0x92, 0x86, 0x0F, 0x86, 0x0D, 0x5F, 0xB5, 0xE4, 0x7E,
+ 0xD4, 0xFF, 0x3D, 0x99, 0xB4, 0xC0, 0xD0, 0x9A, 0x5F, 0xB7, 0xE4, 0x7E, 0x7F, 0xB7, 0x7C, 0x7F, 0x00, 0xC0, 0x60, 0x90, 0x82, 0x0F, 0x80, 0xB7, 0x0C, 0x56, 0x88, 0xD2, 0x9D, 0xA8,
+ 0x48, 0x74, 0xEC, 0xFF, 0x02, 0x92, 0x5F, 0xB5, 0xE4, 0x7E, 0x7F, 0xB5, 0x7C, 0x7F, 0x14, 0xC1, 0x34, 0x99, 0x07, 0xC0, 0x80, 0x90, 0x18, 0xD0, 0x61, 0xAA, 0x08, 0x2A, 0x00, 0x75,
+ 0x01, 0xC0, 0xA2, 0x93, 0x00, 0xF0, 0x43, 0xA9, 0x8A, 0x0D, 0x5F, 0xB5, 0x7C, 0x7C, 0x00, 0xF0, 0xC6, 0xAA, 0x02, 0x85, 0x43, 0xB5, 0x98, 0x6C, 0x5F, 0xB5, 0xE4, 0x7E, 0x7F, 0xB5,
+ 0x7C, 0x7F, 0xB4, 0xFF, 0xDF, 0x9A, 0x12, 0xD0, 0xE2, 0x29, 0xA0, 0xB7, 0x8C, 0x43, 0x71, 0xC1, 0xCD, 0x9C, 0x82, 0x09, 0x0B, 0x05, 0x06, 0x09, 0xD4, 0xFF, 0xE1, 0x98, 0x5F, 0xB7,
+ 0xE4, 0x7E, 0x00, 0xF0, 0x49, 0xAB, 0x8A, 0x0D, 0x02, 0x0D, 0x02, 0x09, 0x00, 0xC3, 0x90, 0x59, 0xB4, 0xFF, 0xF9, 0x9A, 0xD4, 0xFF, 0xEF, 0x98, 0x8E, 0x0D, 0xD4, 0xFF, 0xF4, 0x98,
+ 0xD4, 0xFF, 0xC0, 0x9A, 0x86, 0x0D, 0xD4, 0xFF, 0xEF, 0x98, 0x80, 0xB7, 0x8C, 0x46, 0x0A, 0x85, 0x08, 0xF2, 0x0F, 0xA1, 0x71, 0xC1, 0xCD, 0x9C, 0x5F, 0xB7, 0xE4, 0x7E, 0x7F, 0xB7,
+ 0x7C, 0x7F, 0x30, 0x87, 0xEA, 0xFF, 0x80, 0x90, 0x00, 0xF0, 0x41, 0xAA, 0x18, 0xF0, 0x7D, 0xA2, 0x00, 0xF0, 0xC5, 0xA8, 0x58, 0xF0, 0xF5, 0xA0, 0x00, 0xF0, 0x49, 0xAA, 0x58, 0xF0,
+ 0x79, 0xA2, 0x00, 0xD8, 0xDD, 0xA8, 0x58, 0xD8, 0xED, 0xA0, 0x00, 0xD8, 0x59, 0xAA, 0x58, 0xD8, 0x69, 0xA2, 0x00, 0xF0, 0xD1, 0xA8, 0x58, 0xF0, 0xE5, 0xA0, 0x00, 0xF0, 0xD6, 0xA8,
+ 0xD8, 0xD0, 0x71, 0xAA, 0x58, 0xF0, 0xEA, 0xA0, 0x5F, 0xB7, 0x6C, 0x7D, 0x00, 0xF0, 0xD9, 0xA8, 0x30, 0x2A, 0x70, 0x87, 0x88, 0x70, 0x58, 0xF0, 0xED, 0xA0, 0x80, 0xB5, 0x88, 0x44,
+ 0x00, 0xC0, 0xA2, 0x91, 0x02, 0x85, 0x73, 0xC0, 0xCE, 0x9C, 0x58, 0xF0, 0x7D, 0xAA, 0x10, 0xC0, 0x00, 0x3A, 0x58, 0xF0, 0x7D, 0xA2, 0x73, 0xC0, 0xCE, 0x9C, 0x18, 0xD8, 0x75, 0xAA,
+ 0x3C, 0x2A, 0x08, 0x75, 0x02, 0xC0, 0x44, 0x91, 0x18, 0xF0, 0x7D, 0xAA, 0x0C, 0x2A, 0x04, 0x75, 0x02, 0xC0, 0x84, 0x90, 0x58, 0xF0, 0x7D, 0xAA, 0x04, 0xC0, 0x00, 0x2A, 0x00, 0x75,
+ 0x00, 0xC0, 0xE4, 0x90, 0x58, 0xD8, 0x6D, 0xAA, 0x00, 0x75, 0x00, 0xC0, 0xA2, 0x91, 0xEF, 0x9D, 0x5F, 0xB5, 0xE4, 0x7E, 0x7F, 0xB5, 0x7C, 0x7F, 0x54, 0xC0, 0x52, 0x9B, 0x7F, 0xB7,
+ 0x7C, 0x7F, 0x5F, 0xB7, 0xE4, 0x7E, 0x58, 0xD8, 0xEE, 0xA8, 0xA2, 0xF0, 0xC0, 0x5C, 0x01, 0xC0, 0xE2, 0x90, 0x98, 0xD0, 0x71, 0xAA, 0x49, 0xC0, 0x82, 0x87, 0xB8, 0xC2, 0xC0, 0x87,
+ 0xE1, 0x58, 0x04, 0x0A, 0x00, 0xC2, 0x15, 0x5A, 0x04, 0x0A, 0x33, 0xD0, 0x42, 0x61, 0x68, 0x9D, 0xF1, 0xD3, 0x1E, 0x2E, 0x00, 0xC2, 0x15, 0x5A, 0x10, 0xF3, 0x21, 0x80, 0x00, 0xC2,
+ 0x08, 0x5A, 0x20, 0xE2, 0x85, 0xA8, 0x00, 0xF0, 0xE1, 0xA0, 0x02, 0x85, 0x73, 0xC0, 0xCE, 0x9C, 0x58, 0xF0, 0x7D, 0xAA, 0x80, 0xC0, 0x00, 0x3A, 0x58, 0xF0, 0x7D, 0xA2, 0x73, 0xC0,
+ 0xCE, 0x9C, 0x58, 0xF0, 0x7D, 0xAA, 0x04, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0xE5, 0xFF, 0x22, 0x93, 0x18, 0xD8, 0x75, 0xAA, 0x3C, 0x2A, 0x04, 0x75, 0xE5, 0xFF, 0x64, 0x92, 0x18, 0xD0,
+ 0x61, 0xAA, 0x08, 0x2A, 0x00, 0x75, 0xE5, 0xFF, 0xA2, 0x91, 0xEF, 0x9D, 0x5F, 0xB5, 0xE4, 0x7E, 0x7F, 0xB5, 0x7C, 0x7F, 0x74, 0xC0, 0x17, 0x9A, 0x5F, 0xB7, 0xE4, 0x7E, 0x7F, 0xB7,
+ 0x7C, 0x7F, 0xE5, 0xFF, 0x00, 0x90, 0x9F, 0xB7, 0xEC, 0x7C, 0x00, 0x75, 0x00, 0xC0, 0x22, 0x91, 0x82, 0x0D, 0x7F, 0xB5, 0x7C, 0x7F, 0xB4, 0xFF, 0x03, 0x9A, 0x7F, 0xB7, 0x7C, 0x7F,
+ 0x18, 0xD0, 0x61, 0xAA, 0x08, 0x2A, 0x00, 0x75, 0x01, 0xC0, 0xA2, 0x92, 0x18, 0xD8, 0x75, 0xAA, 0x3C, 0x2A, 0x04, 0x75, 0x01, 0xC0, 0xE4, 0x91, 0x80, 0xB7, 0x0C, 0x56, 0x88, 0xD2,
+ 0x9D, 0xA8, 0x48, 0x74, 0x01, 0xC0, 0x04, 0x91, 0x20, 0xB7, 0x94, 0x55, 0x20, 0xB7, 0xC9, 0x4C, 0x58, 0xF0, 0x7D, 0xAA, 0x58, 0xD8, 0xE5, 0xA0, 0x40, 0xB7, 0x49, 0x4D, 0x00, 0xC1,
+ 0x10, 0x3A, 0x58, 0xF0, 0x7D, 0xA2, 0x58, 0xD8, 0x6D, 0xA1, 0x58, 0xF0, 0x7D, 0xAA, 0x08, 0xC0, 0x00, 0x3A, 0x58, 0xF0, 0x7D, 0xA2, 0xEF, 0x9D, 0x01, 0xC0, 0x8A, 0x09, 0x7F, 0xB5,
+ 0x7C, 0x7F, 0x34, 0xC0, 0x6E, 0x99, 0x86, 0x0D, 0xB4, 0xFF, 0xFE, 0x9B, 0xD4, 0xFF, 0x13, 0x98, 0x7F, 0xB7, 0x7C, 0x7F, 0x03, 0xC0, 0xC0, 0x92, 0x18, 0xD0, 0x61, 0xAA, 0x08, 0x2A,
+ 0x00, 0x75, 0x03, 0xC0, 0x02, 0x92, 0x80, 0xB7, 0x0C, 0x57, 0x20, 0xB7, 0x94, 0x46, 0x08, 0xF2, 0x85, 0xA8, 0x20, 0xB5, 0x4D, 0x44, 0x58, 0xF0, 0x7D, 0xAA, 0x04, 0x2A, 0x00, 0x75,
+ 0x00, 0xC0, 0x44, 0x92, 0x58, 0xF0, 0x7D, 0xAA, 0x40, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x62, 0x91, 0xEF, 0x9D, 0x01, 0xC4, 0x82, 0x09, 0x7F, 0xB5, 0x7C, 0x7F, 0x34, 0xC0,
+ 0x43, 0x99, 0x01, 0xC0, 0xA0, 0x90, 0x20, 0xB7, 0x8C, 0x48, 0x01, 0xC0, 0x12, 0x0A, 0x10, 0xC0, 0x00, 0x0A, 0x48, 0x70, 0x00, 0xC0, 0xD2, 0x93, 0x58, 0xF0, 0x7D, 0xAA, 0x10, 0xC0,
+ 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x24, 0x91, 0x58, 0xF0, 0x7D, 0xAA, 0x04, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x02, 0x92, 0x98, 0xD0, 0x71, 0xAA, 0x06, 0x75, 0x00, 0xC0,
+ 0x74, 0x91, 0xEF, 0x9D, 0x01, 0xC0, 0xC2, 0x09, 0x7F, 0xB5, 0x7C, 0x7F, 0x34, 0xC0, 0x1E, 0x99, 0x7F, 0xB7, 0x7C, 0x7F, 0xC0, 0x77, 0x00, 0xC0, 0x44, 0x91, 0x7F, 0xB7, 0x74, 0x7C,
+ 0x7F, 0xB5, 0x7C, 0x7F, 0xD4, 0xFF, 0x17, 0x9B, 0x7F, 0xB7, 0x7C, 0x7F, 0x8A, 0x0D, 0x7F, 0xB5, 0x7C, 0x7F, 0xB4, 0xFF, 0x9F, 0x9B, 0x01, 0xC9, 0x80, 0x9C, 0x7F, 0xB7, 0x7C, 0x7F,
+ 0x98, 0xF0, 0x61, 0xA2, 0x06, 0x85, 0x20, 0xB7, 0x94, 0x47, 0x43, 0xB5, 0x18, 0x6C, 0x58, 0xF0, 0xFD, 0xA8, 0x60, 0xB5, 0x9C, 0x7A, 0x80, 0xB7, 0x4D, 0x40, 0x80, 0xC0, 0x84, 0x5A,
+ 0x01, 0xC0, 0x84, 0x2A, 0xFF, 0xCF, 0x7A, 0x2A, 0xCA, 0x30, 0x84, 0x38, 0x20, 0xB5, 0x4D, 0x40, 0x01, 0xC9, 0x80, 0x9C, 0x98, 0xF0, 0x75, 0xA2, 0x20, 0xB7, 0x94, 0x57, 0x83, 0x05,
+ 0x82, 0x09, 0x34, 0xC0, 0x03, 0x98, 0x02, 0x85, 0x40, 0xB5, 0x18, 0x44, 0x06, 0x08, 0x9F, 0xB7, 0x6E, 0x7C, 0xBF, 0xB7, 0xEE, 0x7C, 0xDF, 0xB7, 0x6E, 0x7D, 0xFF, 0xB7, 0xEE, 0x7D,
+ 0x04, 0xC0, 0x00, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x20, 0xB7, 0x8C, 0x46, 0x80, 0xB7, 0x2D, 0x46, 0x20, 0xB7, 0x2D, 0x48, 0x00, 0xC4, 0x00, 0x2A, 0x00, 0x75, 0x0F, 0xC0, 0xFE, 0x28,
+ 0x20, 0xB5, 0x8C, 0x48, 0x00, 0xC0, 0x42, 0x91, 0x01, 0xC0, 0x06, 0x0A, 0x10, 0xC0, 0x2C, 0x0A, 0x80, 0xB5, 0x8C, 0x48, 0x01, 0xC0, 0x00, 0x91, 0x03, 0xC0, 0x42, 0x74, 0x01, 0xC0,
+ 0x94, 0x90, 0x20, 0xB7, 0x8C, 0x41, 0x80, 0xB7, 0x2D, 0x45, 0x00, 0xC1, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x84, 0x91, 0x20, 0xB7, 0x0C, 0x57, 0x3B, 0xC0, 0x7A, 0x0A, 0x04, 0xC0,
+ 0x04, 0x0A, 0x80, 0xB5, 0x2D, 0x40, 0x80, 0xB5, 0xAD, 0x40, 0x80, 0xB7, 0x8C, 0x48, 0xFF, 0xCF, 0x78, 0x0A, 0x1C, 0xC0, 0x3E, 0x75, 0x00, 0xC0, 0x32, 0x91, 0x20, 0xB7, 0x0C, 0x57,
+ 0x80, 0xB7, 0xAD, 0x40, 0x08, 0x3A, 0x80, 0xB5, 0xAD, 0x40, 0xB4, 0xFF, 0x62, 0x9A, 0x8A, 0x0D, 0xB4, 0xFF, 0xA7, 0x98, 0x82, 0x0D, 0xB4, 0xFF, 0xA4, 0x98, 0x54, 0xC0, 0x46, 0x99,
+ 0x80, 0xB7, 0x8C, 0x41, 0x20, 0xB7, 0x0C, 0x45, 0x20, 0xB7, 0x94, 0x47, 0x02, 0x85, 0x09, 0xC2, 0xBE, 0x0D, 0x04, 0xC1, 0xBC, 0x0D, 0x08, 0xF2, 0x03, 0xA1, 0x40, 0xB5, 0xBD, 0x46,
+ 0x71, 0xD3, 0x18, 0x0E, 0x91, 0xD3, 0x90, 0x0C, 0x08, 0xF2, 0x03, 0xA1, 0xB0, 0xC0, 0x42, 0x85, 0x40, 0xB5, 0x3D, 0x40, 0x91, 0xD3, 0x18, 0x0E, 0xB1, 0xD3, 0x90, 0x0C, 0xA0, 0xB7,
+ 0x8C, 0x46, 0x88, 0xC0, 0x42, 0x85, 0x08, 0xF2, 0x03, 0xA1, 0x04, 0xC0, 0x42, 0x85, 0x40, 0xB5, 0x3D, 0x40, 0x0A, 0xC0, 0x40, 0x85, 0x40, 0xB5, 0x5D, 0x40, 0x7F, 0x85, 0x08, 0xF2,
+ 0x2F, 0xA1, 0xB4, 0xFF, 0x97, 0x9A, 0xF1, 0xC1, 0x02, 0x0A, 0xF0, 0xC0, 0x00, 0x0A, 0x08, 0xF2, 0x39, 0xA2, 0x20, 0xB7, 0x8C, 0x48, 0x01, 0xC0, 0x06, 0x0A, 0x24, 0x0A, 0x48, 0x70,
+ 0x00, 0xC0, 0x02, 0x91, 0x86, 0x0D, 0x82, 0x09, 0x02, 0x0D, 0x06, 0x09, 0xB4, 0xFF, 0xBC, 0x9A, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x05, 0xA6,
+ 0x20, 0xB7, 0x0C, 0x4A, 0x40, 0xB7, 0x84, 0x58, 0x84, 0x08, 0xBC, 0x28, 0x73, 0xD1, 0x11, 0x69, 0x2D, 0x9E, 0x30, 0xC0, 0x4D, 0xAA, 0x40, 0x2A, 0x00, 0x75, 0x54, 0x9D, 0x00, 0xC0,
+ 0x22, 0x92, 0x54, 0xC0, 0xE4, 0x99, 0x80, 0xB7, 0x0C, 0x4A, 0x04, 0x0A, 0x3C, 0x2A, 0x73, 0xD1, 0x41, 0x69, 0x53, 0x9D, 0x50, 0xC2, 0x85, 0xA8, 0xC0, 0x28, 0x40, 0x74, 0xFF, 0xFF,
+ 0x64, 0x92, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x20, 0x84, 0x80, 0xB7, 0x0C, 0x4A, 0xA0, 0xB7, 0x8C, 0x58, 0x73, 0xD1, 0x41, 0x69,
+ 0x40, 0xE3, 0x23, 0x81, 0x87, 0x06, 0x5F, 0xB5, 0x64, 0x7F, 0xF4, 0xFF, 0xCD, 0x9B, 0x40, 0xB7, 0x8C, 0x43, 0x71, 0xC0, 0xCE, 0x9C, 0x10, 0xDA, 0xAD, 0xA8, 0x5F, 0xB7, 0x64, 0x7F,
+ 0x40, 0xD8, 0xC1, 0xA0, 0x10, 0xDA, 0x25, 0xAA, 0x00, 0xD8, 0x45, 0xA2, 0x10, 0xDA, 0xA9, 0xA8, 0x40, 0xF0, 0xDD, 0xA0, 0x10, 0xF2, 0x29, 0xAA, 0x00, 0xF0, 0x59, 0xA2, 0x10, 0xD2,
+ 0xA1, 0xA8, 0x58, 0x74, 0x00, 0xC0, 0xF4, 0x91, 0x10, 0xF2, 0x2D, 0xAA, 0x50, 0xD2, 0xB1, 0xA8, 0xF0, 0xCF, 0x01, 0x2A, 0x42, 0x32, 0x00, 0xF0, 0x45, 0xA2, 0x10, 0xF2, 0xB1, 0xA8,
+ 0x00, 0xC0, 0xE0, 0x92, 0xA3, 0xCB, 0xBA, 0x08, 0xBA, 0xC8, 0x8C, 0x08, 0x10, 0xF3, 0x23, 0x8A, 0x43, 0x62, 0x00, 0xC2, 0x0F, 0x5A, 0x04, 0x1A, 0x3C, 0x2A, 0x73, 0xD1, 0x41, 0x69,
+ 0x20, 0xE3, 0xA3, 0x80, 0x80, 0xB7, 0xCD, 0x40, 0x00, 0xF0, 0x45, 0xA2, 0x20, 0xB7, 0x4D, 0x41, 0x00, 0xF0, 0xC9, 0xA0, 0x10, 0xD2, 0x25, 0xAA, 0x10, 0xC0, 0x02, 0x75, 0x06, 0x85,
+ 0x00, 0xC0, 0x64, 0x90, 0x0A, 0x85, 0x00, 0xD0, 0x43, 0xA1, 0x20, 0xB7, 0x14, 0x4B, 0x00, 0xF0, 0xC5, 0xA8, 0x02, 0x85, 0x4B, 0x9E, 0x00, 0xD0, 0x41, 0xAA, 0x00, 0xF0, 0x5F, 0xA1,
+ 0x40, 0xF0, 0x47, 0xA1, 0x40, 0xF0, 0x4B, 0xA1, 0x40, 0xD8, 0x47, 0xA1, 0xC2, 0x70, 0x40, 0x3A, 0x00, 0xD0, 0x41, 0xA2, 0x00, 0xC0, 0x02, 0x91, 0x40, 0xF0, 0x5D, 0xAA, 0x04, 0xC0,
+ 0x00, 0x3A, 0x40, 0xF0, 0x5D, 0xA2, 0x20, 0xB7, 0x8C, 0x4B, 0x00, 0xF0, 0x45, 0xAA, 0x48, 0x70, 0x00, 0xC0, 0x02, 0x91, 0x40, 0xF0, 0x5D, 0xAA, 0x01, 0xC0, 0x08, 0x3A, 0x40, 0xF0,
+ 0x5D, 0xA2, 0x00, 0xF0, 0x49, 0xAA, 0x00, 0xCC, 0x00, 0x7D, 0x00, 0xC0, 0x04, 0x91, 0x40, 0xF0, 0x5D, 0xAA, 0x40, 0xC0, 0x00, 0x3A, 0x40, 0xF0, 0x5D, 0xA2, 0x00, 0xF0, 0xC9, 0xA8,
+ 0x03, 0x02, 0x01, 0xC0, 0x3C, 0x2A, 0x01, 0xC0, 0x04, 0x75, 0x00, 0xC0, 0x84, 0x93, 0x00, 0xD0, 0x41, 0xAA, 0x08, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0xC2, 0x92, 0x40, 0xF0, 0x5D, 0xAA,
+ 0x40, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0xE2, 0x91, 0x40, 0xF0, 0x5D, 0xAA, 0x04, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x24, 0x91, 0x40, 0xF0, 0x5D, 0xAA, 0x04, 0xC0, 0x00, 0x2A,
+ 0x00, 0x75, 0x01, 0xC0, 0x44, 0x90, 0x01, 0xC0, 0xBC, 0x28, 0x01, 0xC0, 0x42, 0x74, 0x01, 0xC0, 0x44, 0x90, 0x00, 0xD0, 0x41, 0xAA, 0x08, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x82, 0x93,
+ 0x40, 0xF0, 0x5D, 0xAA, 0x40, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0xA2, 0x92, 0x40, 0xF0, 0x5D, 0xAA, 0x04, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0xE4, 0x91, 0x40, 0xF0, 0x5D, 0xAA,
+ 0x04, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x02, 0x91, 0x40, 0xF0, 0x5D, 0xAA, 0x20, 0xC0, 0x00, 0x3A, 0x40, 0xF0, 0x5D, 0xA2, 0x71, 0xC0, 0xCE, 0x9C, 0x5F, 0xB5, 0x64, 0x7F,
+ 0xB4, 0xFF, 0xAC, 0x9B, 0x14, 0xC0, 0xCE, 0x9A, 0x80, 0xB7, 0x0C, 0x57, 0x5F, 0xB7, 0x64, 0x7F, 0x20, 0xB7, 0x94, 0x46, 0x08, 0xF2, 0x85, 0xA8, 0xCC, 0x9D, 0x82, 0x09, 0x20, 0xB5,
+ 0x4D, 0x44, 0x5F, 0xB5, 0x64, 0x7F, 0x34, 0xC0, 0xF2, 0x9B, 0x5F, 0xB7, 0x64, 0x7F, 0x00, 0xD0, 0x41, 0xAA, 0x12, 0xF0, 0xC4, 0x2A, 0x00, 0xC0, 0x22, 0x91, 0xCC, 0x9D, 0xD4, 0xFF,
+ 0x54, 0x99, 0x14, 0xC0, 0xFC, 0x99, 0x02, 0xC0, 0x40, 0x90, 0x40, 0xF0, 0x5D, 0xAA, 0x10, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x02, 0x91, 0x40, 0xF0, 0x5D, 0xAA, 0x08, 0xC0, 0x00, 0x3A,
+ 0x40, 0xF0, 0x5D, 0xA2, 0xA3, 0xCB, 0xBA, 0x08, 0xBA, 0xC8, 0x8C, 0x08, 0x10, 0xF3, 0x23, 0x8A, 0x43, 0x62, 0x00, 0xC2, 0x0F, 0x5A, 0x04, 0x1A, 0x3C, 0x2A, 0x73, 0xD1, 0x41, 0x69,
+ 0x00, 0xD8, 0xD6, 0xA8, 0x10, 0xF3, 0x23, 0x80, 0x08, 0xDA, 0x95, 0xA8, 0xBC, 0x2C, 0x4C, 0x9E, 0xBC, 0x28, 0x02, 0x71, 0x00, 0xC0, 0xC2, 0x92, 0xCC, 0x9D, 0x01, 0xC1, 0x82, 0x09,
+ 0x5F, 0xB5, 0x64, 0x7F, 0x14, 0xC0, 0xF7, 0x9A, 0x69, 0x9E, 0x71, 0xC0, 0xCD, 0x9C, 0x5F, 0xB7, 0x64, 0x7F, 0x40, 0xF0, 0x5D, 0xAA, 0x41, 0xC0, 0x00, 0x3A, 0x40, 0xF0, 0x5D, 0xA2,
+ 0x71, 0xC0, 0xCD, 0x9C, 0xCC, 0x9D, 0x01, 0xC2, 0x82, 0x09, 0x5F, 0xB5, 0x64, 0x7F, 0x14, 0xC0, 0xE3, 0x9A, 0x5F, 0xB7, 0x64, 0x7F, 0x80, 0xB7, 0x0C, 0x4A, 0x00, 0xF0, 0xC5, 0xA8,
+ 0x04, 0x0A, 0x3C, 0x2A, 0x80, 0xB5, 0x0C, 0x4A, 0x20, 0xB5, 0x0C, 0x4B, 0x20, 0xB5, 0x8C, 0x4B, 0x9F, 0xB7, 0xEE, 0x7E, 0xBF, 0xB7, 0x6E, 0x7F, 0x60, 0x8C, 0x22, 0x9C, 0x05, 0xA6,
+ 0x20, 0xB7, 0x0C, 0x4A, 0x20, 0xB7, 0x94, 0x58, 0x87, 0x06, 0x73, 0xD1, 0x11, 0x69, 0x50, 0xD2, 0x31, 0xAA, 0x10, 0xF2, 0xAB, 0x80, 0x08, 0xF2, 0x25, 0xA2, 0xF4, 0xFF, 0x7B, 0x9A,
+ 0x40, 0xB7, 0x8C, 0x43, 0x71, 0xC0, 0xCE, 0x9C, 0x10, 0xD2, 0xA5, 0xA8, 0x10, 0xC0, 0x44, 0x74, 0x22, 0x85, 0x00, 0xC0, 0x64, 0x90, 0x12, 0x85, 0x08, 0xD2, 0x23, 0xA1, 0x08, 0xD2,
+ 0x21, 0xAA, 0x40, 0x3A, 0x08, 0xD2, 0x21, 0xA2, 0x10, 0xDA, 0xA5, 0xA8, 0x08, 0xDA, 0xA5, 0xA0, 0x10, 0xDA, 0xAA, 0xA8, 0x48, 0xF2, 0xBE, 0xA0, 0x10, 0xF2, 0x2D, 0xAA, 0x50, 0xD2,
+ 0xB1, 0xA8, 0xF0, 0xCF, 0x01, 0x2A, 0x42, 0x32, 0x08, 0xF2, 0x25, 0xA2, 0x10, 0xF2, 0xA9, 0xA8, 0x08, 0xF2, 0xA9, 0xA0, 0x50, 0xDA, 0x25, 0xAA, 0x48, 0xDA, 0x29, 0xA2, 0x50, 0xDA,
+ 0xA1, 0xA8, 0x48, 0xDA, 0xAD, 0xA0, 0x10, 0xF2, 0x35, 0xAA, 0x08, 0xF2, 0x39, 0xA2, 0x10, 0xF2, 0xB9, 0xA8, 0x08, 0xF2, 0xBD, 0xA0, 0x10, 0xF2, 0x3D, 0xAA, 0x08, 0xF2, 0x31, 0xA2,
+ 0x50, 0xF2, 0xA1, 0xA8, 0x48, 0xF2, 0xB1, 0xA0, 0x50, 0xF2, 0x25, 0xAA, 0x48, 0xF2, 0x25, 0xA2, 0x50, 0xF2, 0xA9, 0xA8, 0x48, 0xF2, 0xA9, 0xA0, 0x50, 0xF2, 0xAE, 0xA8, 0x48, 0xF2,
+ 0xAE, 0xA0, 0x10, 0xD2, 0x39, 0xAA, 0x91, 0xD0, 0xD0, 0x08, 0x0C, 0x2A, 0x80, 0xB5, 0x29, 0x40, 0x20, 0xB7, 0x14, 0x4B, 0x08, 0xF2, 0x25, 0xAA, 0x49, 0x9E, 0x48, 0x70, 0x00, 0xC0,
+ 0x02, 0x91, 0x48, 0xF2, 0x3D, 0xAA, 0x04, 0xC0, 0x00, 0x3A, 0x48, 0xF2, 0x3D, 0xA2, 0x71, 0xC0, 0xCE, 0x9C, 0xB4, 0xFF, 0xC2, 0x9A, 0x20, 0xB7, 0x0C, 0x57, 0x20, 0xB7, 0x94, 0x46,
+ 0x80, 0xB7, 0xAD, 0x40, 0xAB, 0x9E, 0x01, 0xC8, 0x82, 0x09, 0x80, 0xB5, 0x4D, 0x44, 0x14, 0xC0, 0x4D, 0x9A, 0x08, 0xF2, 0xA5, 0xA8, 0x80, 0xB7, 0x0C, 0x4A, 0x20, 0xB5, 0x0C, 0x4B,
+ 0x04, 0x0A, 0x3C, 0x2A, 0x80, 0xB5, 0x0C, 0x4A, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x5D, 0x9E, 0x9D, 0x9E, 0x0E, 0xC0, 0xFC, 0x2A,
+ 0x14, 0xC0, 0x5A, 0x99, 0x08, 0xC0, 0x84, 0x1A, 0x46, 0x75, 0xA6, 0xD2, 0x0C, 0x59, 0x40, 0x85, 0x5A, 0xE0, 0x44, 0x80, 0x00, 0xC0, 0x40, 0x92, 0x00, 0xC0, 0x00, 0x91, 0x00, 0xC0,
+ 0x60, 0x91, 0x00, 0xC0, 0x20, 0x91, 0x00, 0xC0, 0x40, 0x90, 0x8B, 0x05, 0xF4, 0xFF, 0x03, 0x9A, 0x00, 0xC0, 0xA0, 0x90, 0x8B, 0x05, 0xF4, 0xFF, 0x4F, 0x9B, 0x9F, 0xB7, 0x6E, 0x7F,
+ 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x80, 0xB7, 0x08, 0x45, 0x1C, 0xC0, 0x3E, 0x7D, 0x5B, 0x9E, 0x00, 0xC0, 0x02, 0x91, 0x09, 0xC8, 0xC2, 0x0D, 0xFA, 0xC1, 0xA0, 0x0D,
+ 0x3C, 0xC0, 0x80, 0x91, 0x9B, 0x9E, 0xC1, 0xFF, 0x60, 0x92, 0x0D, 0xA6, 0x80, 0xB7, 0x8C, 0x49, 0x00, 0x75, 0x5D, 0x9E, 0x00, 0xC0, 0x22, 0x91, 0x34, 0xC0, 0xAE, 0x9B, 0x80, 0xB7,
+ 0x8C, 0x49, 0x00, 0x75, 0xFF, 0xFF, 0x64, 0x93, 0x01, 0xC9, 0x80, 0x9C, 0x88, 0xF2, 0x29, 0xA2, 0xA0, 0xB5, 0x8C, 0x49, 0xAB, 0x9E, 0x86, 0x09, 0x34, 0xC0, 0xAE, 0x9A, 0x02, 0x85,
+ 0x73, 0xC0, 0xCE, 0x9C, 0x48, 0xF2, 0x3D, 0xAA, 0x03, 0xC0, 0x00, 0x3A, 0x48, 0xF2, 0x3D, 0xA2, 0x73, 0xC0, 0xCE, 0x9C, 0x48, 0xF2, 0x3D, 0xAA, 0x04, 0xC0, 0x00, 0x2A, 0x00, 0x75,
+ 0x00, 0xC0, 0x22, 0x92, 0x20, 0xB7, 0x94, 0x46, 0x20, 0xB7, 0x4D, 0x40, 0xFD, 0xCF, 0xFE, 0x28, 0x03, 0x02, 0x03, 0xC0, 0x00, 0x3A, 0x80, 0xB5, 0x4D, 0x40, 0x40, 0xB7, 0x4D, 0x40,
+ 0x20, 0xB5, 0x4D, 0x40, 0xC0, 0xB7, 0x0C, 0x45, 0x02, 0x85, 0x08, 0xF2, 0x57, 0xA1, 0x08, 0xD2, 0x21, 0xAA, 0x12, 0xF0, 0xC2, 0x2A, 0x00, 0xC0, 0xE2, 0x90, 0xAB, 0x9E, 0xF4, 0xFF,
+ 0xAB, 0x9B, 0x02, 0xC0, 0x60, 0x92, 0x48, 0xF2, 0x3D, 0xAA, 0x04, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0xA2, 0x93, 0x80, 0xB7, 0x0C, 0x47, 0x12, 0xD2, 0xC0, 0x08, 0x42, 0x85,
+ 0x40, 0xB5, 0x5D, 0x40, 0x92, 0xD2, 0xC0, 0x08, 0x51, 0xD2, 0xC0, 0x08, 0x40, 0xB5, 0x3D, 0x40, 0x40, 0xB5, 0x5D, 0x40, 0x12, 0xD3, 0xC0, 0x08, 0xD1, 0xD2, 0xC0, 0x08, 0x40, 0xB5,
+ 0x3D, 0x40, 0x0C, 0xC0, 0x40, 0x0A, 0x40, 0xB5, 0x5D, 0x40, 0x08, 0xF2, 0x03, 0xA1, 0x48, 0xF2, 0x3D, 0xAA, 0x04, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x42, 0x92, 0x80, 0xB7,
+ 0x8C, 0x47, 0x2C, 0xC0, 0x60, 0x0A, 0x29, 0xF2, 0x86, 0xA2, 0x29, 0xF2, 0x86, 0xA2, 0x29, 0xF2, 0x86, 0xA2, 0x29, 0xF2, 0x86, 0xA2, 0x29, 0xF2, 0x8E, 0xA2, 0x08, 0xF2, 0x82, 0xA2,
+ 0x14, 0xC0, 0x68, 0x98, 0x08, 0xD2, 0x21, 0xAA, 0x08, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x82, 0x90, 0x48, 0xF2, 0xD6, 0xA2, 0x20, 0xB7, 0x94, 0x47, 0x20, 0xB7, 0x8C, 0x46, 0x80, 0xB7,
+ 0xAD, 0x45, 0x40, 0x2A, 0x00, 0x75, 0xFF, 0xFF, 0x82, 0x93, 0x71, 0xD2, 0x10, 0x0E, 0x08, 0xF2, 0x81, 0xA8, 0x02, 0x85, 0x73, 0xC0, 0xCE, 0x9C, 0x48, 0xF2, 0x3D, 0xAA, 0x05, 0xC0,
+ 0x00, 0x3A, 0x48, 0xF2, 0x3D, 0xA2, 0x73, 0xC0, 0xCE, 0x9C, 0x06, 0x08, 0x9F, 0xB7, 0xEE, 0x7E, 0xBF, 0xB7, 0x6E, 0x7F, 0xDF, 0xB7, 0xEE, 0x7F, 0x60, 0x8C, 0x22, 0x9C, 0x39, 0xF8,
+ 0x05, 0xA2, 0x20, 0xB7, 0x8C, 0x58, 0x89, 0x9E, 0x03, 0x01, 0x52, 0xC0, 0xA0, 0x0C, 0x08, 0xD0, 0x41, 0xAA, 0x40, 0x2A, 0x00, 0x75, 0x04, 0xC0, 0xE0, 0x08, 0x00, 0xC0, 0xC2, 0x90,
+ 0x06, 0x08, 0xF8, 0xF9, 0x1D, 0xAA, 0x22, 0x9C, 0x4C, 0x9E, 0x48, 0x70, 0x04, 0xC0, 0x60, 0x09, 0xFF, 0xFF, 0x14, 0x92, 0x80, 0xB7, 0x0C, 0x49, 0x02, 0x75, 0x00, 0xC0, 0x84, 0x91,
+ 0x80, 0xB7, 0x0C, 0x57, 0x20, 0xB7, 0x94, 0x46, 0x08, 0xF2, 0x81, 0xA8, 0x20, 0xB5, 0x4D, 0x44, 0x14, 0xC0, 0x74, 0x98, 0x02, 0x08, 0xF8, 0xF9, 0x1D, 0xAA, 0x22, 0x9C, 0x20, 0xB7,
+ 0x8C, 0x46, 0x02, 0x85, 0x40, 0xB5, 0x3D, 0x4D, 0x80, 0xB7, 0xAD, 0x4D, 0x00, 0x75, 0x40, 0xB3, 0xA2, 0x48, 0x80, 0xB7, 0x0C, 0x4C, 0x80, 0xB5, 0xAD, 0x4C, 0x22, 0x9C, 0x20, 0xB7,
+ 0x8C, 0x46, 0x02, 0x85, 0x40, 0xB5, 0xBD, 0x4E, 0x80, 0xB7, 0x2D, 0x4F, 0x00, 0x75, 0x40, 0xB3, 0xA2, 0x48, 0x80, 0xB7, 0x8C, 0x4C, 0x80, 0xB5, 0x2D, 0x4E, 0x22, 0x9C, 0x80, 0xB7,
+ 0x8C, 0x4F, 0x10, 0xCB, 0x81, 0x9C, 0x20, 0xB7, 0x8C, 0x4E, 0x40, 0x74, 0x00, 0xC0, 0xC2, 0x91, 0x80, 0xB7, 0x8C, 0x4E, 0x04, 0x1A, 0x80, 0xB5, 0x8C, 0x4E, 0x20, 0xB7, 0x8C, 0x4E,
+ 0x40, 0x74, 0x00, 0xC0, 0x84, 0x90, 0x06, 0x08, 0x22, 0x9C, 0x80, 0xB7, 0x0C, 0x4F, 0x00, 0x75, 0x00, 0xC0, 0xA2, 0x91, 0x80, 0xB7, 0x0C, 0x4F, 0x04, 0x1A, 0x80, 0xB5, 0x0C, 0x4F,
+ 0x20, 0xB7, 0x0C, 0x4F, 0x40, 0x74, 0x12, 0x08, 0x40, 0xB3, 0xA2, 0x48, 0x02, 0x08, 0x22, 0x9C, 0x02, 0x85, 0x73, 0xC0, 0xCE, 0x9C, 0x10, 0xF0, 0xE1, 0xA1, 0x73, 0xC0, 0xCE, 0x9C,
+ 0x22, 0x9C, 0x39, 0xF8, 0x05, 0xA2, 0x80, 0xB7, 0x8C, 0x41, 0x02, 0x85, 0x08, 0xF2, 0x03, 0xA1, 0x04, 0x85, 0x40, 0xB5, 0x1C, 0x49, 0x80, 0xB7, 0x8C, 0x4F, 0x10, 0xCB, 0x81, 0x9C,
+ 0x60, 0xB7, 0x14, 0x58, 0x60, 0xB7, 0x0C, 0x4E, 0xF4, 0xFF, 0xE6, 0x9B, 0x20, 0xB7, 0x8C, 0x44, 0x20, 0xC0, 0xA0, 0x08, 0x80, 0xB7, 0x2D, 0x40, 0x01, 0xC0, 0x04, 0x3A, 0x80, 0xB5,
+ 0x2D, 0x40, 0xF8, 0xF9, 0x1D, 0xAA, 0x22, 0x9C, 0x20, 0xB7, 0x8C, 0x41, 0x06, 0x85, 0x40, 0xB5, 0x3D, 0x40, 0x04, 0x8D, 0x40, 0xB5, 0x1C, 0x4F, 0x80, 0xB7, 0x2D, 0x45, 0x00, 0xC4,
+ 0x00, 0x2A, 0x00, 0x75, 0x40, 0xB5, 0x1C, 0x49, 0x40, 0xB3, 0xA4, 0x48, 0x80, 0xB7, 0x8C, 0x44, 0x20, 0xC0, 0x20, 0x0A, 0x08, 0xF2, 0x81, 0xA8, 0x08, 0xF2, 0x81, 0xA0, 0x22, 0x9C,
+ 0x20, 0xB7, 0x14, 0x48, 0x5A, 0x9E, 0x20, 0xB7, 0x8C, 0x46, 0x80, 0xB7, 0x2D, 0x45, 0x0A, 0x75, 0xFF, 0xFF, 0xB4, 0x93, 0x48, 0xF0, 0x45, 0xAA, 0x00, 0xCF, 0x01, 0x2A, 0x80, 0xB5,
+ 0x4D, 0x45, 0x20, 0xB7, 0x14, 0x48, 0x48, 0xF0, 0x49, 0xAA, 0x00, 0xCF, 0x01, 0x2A, 0x80, 0xB5, 0xCD, 0x45, 0x48, 0xF0, 0xC5, 0xA8, 0x0E, 0xC0, 0xFC, 0x28, 0x20, 0xB5, 0x4D, 0x46,
+ 0x48, 0xF0, 0x4D, 0xAA, 0x80, 0xB5, 0xCD, 0x47, 0x08, 0xF0, 0xC9, 0xA8, 0x20, 0xB5, 0x4D, 0x41, 0x40, 0xC0, 0x80, 0x0C, 0x08, 0xF0, 0x5D, 0xAA, 0x80, 0xB5, 0x4D, 0x40, 0x22, 0x9C,
+ 0x80, 0xB7, 0x8C, 0x47, 0x02, 0x09, 0x08, 0xC0, 0x70, 0x0A, 0x08, 0xF2, 0x81, 0xA8, 0x40, 0xC0, 0x80, 0x28, 0x40, 0x74, 0xFF, 0xFF, 0x64, 0x93, 0x80, 0xB7, 0x8C, 0x47, 0x08, 0x39,
+ 0x82, 0x0C, 0xC8, 0xF2, 0x09, 0xA1, 0x08, 0xC0, 0x70, 0x0A, 0x08, 0xF2, 0x81, 0xA8, 0x80, 0xC1, 0x40, 0x7C, 0x22, 0xD0, 0x80, 0x44, 0xFF, 0xFF, 0x44, 0x93, 0x84, 0x0C, 0x42, 0x76,
+ 0xFF, 0xFF, 0xD4, 0x92, 0x22, 0x9C, 0x1D, 0xA6, 0x80, 0xB7, 0x8C, 0x47, 0xC8, 0xF2, 0x11, 0xA9, 0xC8, 0xF2, 0x8E, 0xA8, 0x24, 0xD1, 0xC1, 0x5A, 0x01, 0xC0, 0xB0, 0x2C, 0xA2, 0xD0,
+ 0xC9, 0x5E, 0x80, 0xC1, 0x14, 0x5F, 0x31, 0xD2, 0xC8, 0x0B, 0x06, 0x0A, 0x85, 0x00, 0xFE, 0xCF, 0xFC, 0x28, 0xB0, 0x58, 0x80, 0xC2, 0xB0, 0x5E, 0x11, 0xD0, 0x5C, 0x09, 0x00, 0xC2,
+ 0x88, 0x52, 0x1A, 0x13, 0x08, 0xF2, 0x61, 0xAA, 0x71, 0x9E, 0xFF, 0xC0, 0x7E, 0x2A, 0x68, 0x12, 0x02, 0x71, 0x00, 0xC0, 0xD6, 0x90, 0x34, 0xC0, 0xDE, 0x99, 0xFF, 0xFF, 0xA0, 0x92,
+ 0x80, 0xB7, 0x8C, 0x47, 0xA9, 0x9E, 0xD2, 0x16, 0x51, 0xD2, 0xC0, 0x0A, 0x09, 0x03, 0x08, 0xF2, 0x21, 0xAA, 0x69, 0x9E, 0xFF, 0xC0, 0x7E, 0x2A, 0x18, 0x12, 0x71, 0x9E, 0x02, 0x71,
+ 0x00, 0xC0, 0xD6, 0x90, 0x34, 0xC0, 0xC9, 0x99, 0xFF, 0xFF, 0x80, 0x92, 0x71, 0xD2, 0xE8, 0x08, 0x80, 0xB7, 0x2D, 0x40, 0x40, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0xFF, 0xFF, 0x64, 0x93,
+ 0x9F, 0xB7, 0x6E, 0x7E, 0xBF, 0xB7, 0xEE, 0x7E, 0xDF, 0xB7, 0x6E, 0x7F, 0xFF, 0xB7, 0xEE, 0x7F, 0x02, 0xC0, 0x00, 0x8C, 0x22, 0x9C, 0x0D, 0xA6, 0x87, 0x06, 0x87, 0x02, 0xB4, 0xFF,
+ 0x65, 0x98, 0xF4, 0xFF, 0x87, 0x9B, 0x96, 0x0D, 0xF4, 0xFF, 0xA5, 0x9B, 0xC0, 0xB7, 0x8C, 0x43, 0x71, 0xC1, 0xCE, 0x9C, 0x20, 0xB7, 0x0C, 0x59, 0x80, 0xB7, 0x8C, 0x47, 0x60, 0xB9,
+ 0x20, 0x40, 0xA0, 0xB5, 0xAD, 0x40, 0xA0, 0xB5, 0xB5, 0x41, 0x52, 0xD2, 0xC8, 0x08, 0x29, 0xF0, 0x25, 0xAA, 0x80, 0xB5, 0x4D, 0x40, 0xFF, 0xFF, 0x81, 0x93, 0xF4, 0xFF, 0x6C, 0x9B,
+ 0x71, 0xC1, 0xCE, 0x9C, 0x9F, 0xB7, 0xEE, 0x7E, 0xBF, 0xB7, 0x6E, 0x7F, 0xDF, 0xB7, 0xEE, 0x7F, 0x60, 0x8C, 0x22, 0x9C, 0x0D, 0xA6, 0x5E, 0x9E, 0x85, 0x06, 0x87, 0x02, 0xF4, 0xFF,
+ 0x5C, 0x9B, 0x12, 0xD0, 0xD8, 0x0D, 0xF4, 0xFF, 0x79, 0x9B, 0x01, 0xC0, 0x86, 0x0C, 0xAC, 0x0C, 0x80, 0xB7, 0x8C, 0x47, 0x51, 0xD2, 0xC8, 0x08, 0x20, 0xB5, 0x35, 0x40, 0x02, 0x85,
+ 0x40, 0xB5, 0x3D, 0x40, 0x80, 0xC2, 0x90, 0x5A, 0xA2, 0xD2, 0x44, 0x5E, 0x12, 0xD0, 0xD6, 0x38, 0xFF, 0xCF, 0x7C, 0x0A, 0xA2, 0x9E, 0x94, 0x34, 0x20, 0xB5, 0x35, 0x40, 0x84, 0x1E,
+ 0x7F, 0x77, 0x00, 0xC0, 0x42, 0x91, 0x20, 0xC8, 0x87, 0x9C, 0x29, 0xF2, 0x45, 0xAA, 0x80, 0xB5, 0x2D, 0x40, 0xFF, 0xFF, 0x81, 0x93, 0x9E, 0x0C, 0x80, 0xB7, 0x8C, 0x47, 0x08, 0xC0,
+ 0x50, 0x0A, 0x08, 0xF2, 0x82, 0xA0, 0xF4, 0xFF, 0x2B, 0x9B, 0x9F, 0xB7, 0xEE, 0x7E, 0xBF, 0xB7, 0x6E, 0x7F, 0xDF, 0xB7, 0xEE, 0x7F, 0x60, 0x8C, 0x22, 0x9C, 0x87, 0x04, 0x80, 0xB7,
+ 0x49, 0x40, 0x10, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0xC2, 0x93, 0x20, 0xB7, 0x8C, 0x41, 0x80, 0xB7, 0x2D, 0x45, 0x01, 0xC0, 0x08, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x24, 0x91, 0x09, 0xC8,
+ 0xC2, 0x0D, 0x52, 0xC8, 0x80, 0x0D, 0x4B, 0x9E, 0x28, 0xC0, 0x60, 0x90, 0x80, 0xB7, 0x8C, 0x49, 0x00, 0x75, 0x09, 0xC8, 0xC2, 0x0D, 0x70, 0xC8, 0xF0, 0x0D, 0xFF, 0xFF, 0xC4, 0x92,
+ 0x83, 0x05, 0x7B, 0xC0, 0xC0, 0x93, 0x09, 0xC8, 0xC2, 0x0D, 0xB6, 0xC6, 0xD0, 0x0D, 0x4B, 0x9E, 0x27, 0xC0, 0x00, 0x92, 0x05, 0xA6, 0x20, 0xB7, 0x08, 0x45, 0x87, 0x06, 0x6C, 0x9E,
+ 0x01, 0xC2, 0x00, 0x2A, 0x00, 0x75, 0x84, 0x08, 0x20, 0xB5, 0x08, 0x45, 0x00, 0xC0, 0x42, 0x91, 0x6C, 0x9E, 0x01, 0xC0, 0x5C, 0x7F, 0xFF, 0xCD, 0x7E, 0x2A, 0xA5, 0x9E, 0x35, 0xB3,
+ 0x42, 0x48, 0x09, 0xC2, 0x06, 0x0A, 0x02, 0xC1, 0x38, 0x0A, 0x69, 0x9E, 0x48, 0x78, 0x00, 0xC0, 0x82, 0x92, 0xFE, 0xCE, 0x49, 0x0A, 0x48, 0x78, 0x00, 0xC0, 0x02, 0x91, 0x6B, 0x9E,
+ 0x9A, 0x0D, 0x14, 0xC0, 0x75, 0x9B, 0x00, 0xC0, 0xC0, 0x90, 0x6B, 0x9E, 0x96, 0x0D, 0x14, 0xC0, 0x6F, 0x9B, 0xF9, 0x2E, 0x00, 0xC0, 0x00, 0x91, 0x60, 0xB7, 0x14, 0x58, 0x60, 0xB7,
+ 0x0C, 0x4E, 0xF4, 0xFF, 0x54, 0x9A, 0x11, 0xD0, 0x52, 0x2E, 0x00, 0x75, 0x00, 0xC0, 0x82, 0x90, 0x14, 0xC0, 0xF0, 0x98, 0x11, 0xD1, 0x50, 0x2E, 0x00, 0x75, 0x00, 0xC0, 0xA2, 0x90,
+ 0x8B, 0x05, 0x14, 0xC0, 0x8A, 0x99, 0x6C, 0x9E, 0x01, 0xC0, 0x10, 0x2A, 0x00, 0x75, 0x05, 0xC0, 0x62, 0x90, 0xA0, 0xB7, 0x8C, 0x49, 0x40, 0x75, 0x00, 0xC0, 0x64, 0x90, 0x00, 0x9F,
+ 0x80, 0xB7, 0x0C, 0x45, 0x88, 0xF2, 0x8A, 0xA8, 0x48, 0xF2, 0xBD, 0xA8, 0x02, 0xC0, 0x80, 0x28, 0x40, 0x74, 0x08, 0xDA, 0xBE, 0xA0, 0x00, 0xC0, 0xA2, 0x90, 0x8B, 0x05, 0x14, 0xC0,
+ 0xA6, 0x9A, 0x01, 0xC9, 0x80, 0x9C, 0x88, 0xF2, 0x2D, 0xA2, 0x48, 0xF2, 0xBD, 0xA8, 0x01, 0xC2, 0x80, 0x38, 0x48, 0xF2, 0xBD, 0xA0, 0x08, 0xD2, 0x21, 0xAA, 0x08, 0x2A, 0x00, 0x75,
+ 0x00, 0xC0, 0x04, 0x91, 0x08, 0xD2, 0x21, 0xAA, 0x04, 0x2A, 0x00, 0x75, 0x03, 0xC0, 0xE2, 0x92, 0x48, 0xF2, 0x3D, 0xAA, 0x08, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x03, 0xC0, 0x04, 0x92,
+ 0x40, 0xB7, 0x9C, 0x49, 0x40, 0xB7, 0x84, 0x58, 0xA3, 0xCB, 0x3A, 0x0A, 0xBA, 0xC8, 0x0C, 0x0A, 0x10, 0xE0, 0xA5, 0x88, 0x99, 0x60, 0x8F, 0x58, 0x84, 0x08, 0xBC, 0x28, 0x73, 0xD1,
+ 0x11, 0x69, 0x2D, 0x9E, 0x38, 0xC0, 0x4D, 0xAA, 0x40, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0xA2, 0x92, 0x58, 0xF0, 0x5D, 0xAA, 0x04, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0xC4, 0x91,
+ 0x18, 0xD0, 0x41, 0xAA, 0x10, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x04, 0x91, 0x18, 0xD0, 0x41, 0xAA, 0x00, 0xE0, 0x20, 0x2A, 0x01, 0xC0, 0x22, 0x93, 0x48, 0xF2, 0x3D, 0xAA, 0x08, 0xC0,
+ 0x00, 0x3A, 0x48, 0xF2, 0x3D, 0xA2, 0x48, 0xF2, 0xBD, 0xA8, 0x90, 0x28, 0x40, 0x74, 0x0A, 0x85, 0x00, 0xC0, 0x62, 0x90, 0x06, 0x85, 0x4F, 0x9D, 0x40, 0xC0, 0x92, 0x0D, 0x94, 0xFF,
+ 0x05, 0x9B, 0x08, 0xDA, 0x35, 0xAA, 0x3C, 0x2A, 0x02, 0x75, 0x01, 0xC0, 0xA4, 0x91, 0x48, 0xF2, 0x3D, 0xAA, 0x10, 0x2A, 0x00, 0x75, 0x01, 0xC0, 0xE4, 0x90, 0x48, 0xF2, 0x3D, 0xAA,
+ 0x40, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x01, 0xC0, 0x02, 0x90, 0x08, 0xD2, 0x21, 0xAA, 0x08, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x42, 0x93, 0xAB, 0x9E, 0x34, 0xC0, 0xEF, 0x98, 0x48, 0xF2,
+ 0x3D, 0xAA, 0x01, 0xC8, 0x00, 0x3A, 0x48, 0xF2, 0x3D, 0xA2, 0x00, 0xC0, 0xE0, 0x91, 0x20, 0xB7, 0x8C, 0x46, 0x80, 0xB5, 0x2D, 0x4E, 0x48, 0xF2, 0x3D, 0xAA, 0x11, 0xC0, 0x00, 0x3A,
+ 0x48, 0xF2, 0x3D, 0xA2, 0xAB, 0x9E, 0x94, 0xFF, 0xF9, 0x9A, 0x01, 0xC0, 0x54, 0x7F, 0x01, 0xC0, 0x82, 0x90, 0xA0, 0xB7, 0x8C, 0x49, 0x40, 0x75, 0x00, 0xC0, 0x64, 0x90, 0x00, 0x9F,
+ 0x80, 0xB7, 0x8C, 0x46, 0x20, 0xB7, 0x94, 0x45, 0x02, 0x85, 0xC8, 0xF2, 0x13, 0xA1, 0x20, 0xB7, 0xCD, 0x42, 0x40, 0xB7, 0x1C, 0x50, 0x48, 0xF2, 0x3D, 0xAA, 0x10, 0xE2, 0xA3, 0x80,
+ 0x02, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x20, 0xB5, 0x0C, 0x50, 0x00, 0xC0, 0xA2, 0x90, 0x8B, 0x05, 0x14, 0xC0, 0xF8, 0x99, 0xAB, 0x9E, 0x94, 0xFF, 0xD3, 0x9A, 0x80, 0xB7, 0x08, 0x45,
+ 0x04, 0x1A, 0x80, 0xB5, 0x08, 0x45, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x39, 0xF8, 0x05, 0xA2, 0x83, 0xB7, 0x08, 0x6C, 0x1C, 0xC0, 0x3E, 0x7D,
+ 0x00, 0xC0, 0x84, 0x90, 0xF4, 0xFF, 0xD3, 0x99, 0x06, 0x08, 0xF8, 0xF9, 0x1D, 0xAA, 0x22, 0x9C, 0x05, 0xA6, 0xA0, 0xB7, 0x8C, 0x7A, 0x01, 0xC9, 0x80, 0x9C, 0x88, 0xF2, 0x25, 0xA2,
+ 0x20, 0xB7, 0x8C, 0x47, 0x0A, 0xC0, 0xB0, 0x08, 0x20, 0xB7, 0x35, 0x40, 0x48, 0xDA, 0x2D, 0xAA, 0xA2, 0xD0, 0xC1, 0x5C, 0x00, 0xC2, 0x40, 0x5A, 0x00, 0xC2, 0x41, 0x5A, 0x48, 0x70,
+ 0x00, 0xC0, 0x02, 0x91, 0x48, 0xF2, 0x3D, 0xAA, 0x01, 0xC4, 0x00, 0x3A, 0x48, 0xF2, 0x3D, 0xA2, 0x48, 0xDA, 0xA5, 0xA0, 0x48, 0xF2, 0x3D, 0xAA, 0x20, 0x2A, 0x00, 0x75, 0x00, 0xC0,
+ 0x04, 0x92, 0x48, 0xDA, 0x29, 0xAA, 0x00, 0xC2, 0x40, 0x5A, 0x00, 0xC2, 0x41, 0x5A, 0x48, 0x70, 0x00, 0xC0, 0xE4, 0x90, 0x48, 0xF2, 0x3D, 0xAA, 0x10, 0x3A, 0x48, 0xF2, 0x3D, 0xA2,
+ 0x40, 0xB7, 0x9C, 0x7A, 0x20, 0xB7, 0x94, 0x58, 0xA3, 0xCB, 0xBA, 0x08, 0xBA, 0xC8, 0x8C, 0x08, 0x10, 0xF2, 0x2B, 0x88, 0x43, 0x62, 0x00, 0xC2, 0x0F, 0x5A, 0x04, 0x0A, 0x3C, 0x2A,
+ 0x74, 0xD1, 0x41, 0x69, 0x02, 0x85, 0x20, 0xB7, 0x8C, 0x46, 0x20, 0xF0, 0xA3, 0x82, 0x86, 0x0D, 0x40, 0xB5, 0xBD, 0x4C, 0x94, 0xFF, 0x87, 0x98, 0x94, 0xFF, 0x9C, 0x98, 0x94, 0xFF,
+ 0x7B, 0x98, 0x08, 0xF2, 0x29, 0xAA, 0x01, 0xC0, 0x3C, 0x2A, 0x01, 0xC0, 0x08, 0x75, 0x00, 0xC0, 0x24, 0x92, 0x08, 0xF2, 0x3D, 0xAA, 0x0C, 0x2A, 0x02, 0x75, 0x00, 0xC0, 0x64, 0x91,
+ 0x09, 0xC8, 0xC2, 0x0D, 0xCA, 0xC5, 0x80, 0x0D, 0x8B, 0x01, 0x14, 0xC0, 0x5E, 0x9B, 0x01, 0xC0, 0xE0, 0x90, 0x08, 0xD2, 0x21, 0xAA, 0x08, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x82, 0x93,
+ 0x08, 0xF2, 0x29, 0xAA, 0x01, 0xC0, 0x3C, 0x2A, 0x01, 0xC0, 0x04, 0x75, 0x00, 0xC0, 0x84, 0x92, 0x10, 0xD2, 0x21, 0xAA, 0x40, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x22, 0x91, 0x50, 0xF2,
+ 0x3D, 0xAA, 0x04, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0xE2, 0x90, 0xAB, 0x9E, 0x34, 0xC0, 0x9E, 0x99, 0x00, 0xC0, 0xE0, 0x90, 0x83, 0xB7, 0x08, 0x6C, 0x04, 0x1A, 0x83, 0xB5,
+ 0x08, 0x6C, 0x10, 0xD2, 0x21, 0xAA, 0x40, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x24, 0x91, 0x09, 0xC8, 0xC2, 0x0D, 0xDA, 0xC4, 0xE0, 0x0D, 0x8B, 0x01, 0x14, 0xC0, 0x2A, 0x9B, 0x9F, 0xB7,
+ 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x39, 0xF8, 0x05, 0xA2, 0x20, 0x84, 0x40, 0xB7, 0x8C, 0x46, 0x85, 0x00, 0x80, 0xB7, 0xAD, 0x45, 0x40, 0x2A, 0x00, 0x75,
+ 0xFF, 0xFF, 0x82, 0x93, 0x80, 0xB7, 0x8C, 0x47, 0x71, 0xD2, 0xC0, 0x08, 0x20, 0xB7, 0x35, 0x40, 0xA2, 0x9E, 0x85, 0x00, 0x80, 0xB7, 0xAD, 0x45, 0x40, 0x2A, 0x00, 0x75, 0xFF, 0xFF,
+ 0x82, 0x93, 0x71, 0xD2, 0x20, 0x0E, 0x08, 0xF2, 0x82, 0xA8, 0x85, 0x00, 0x80, 0xB7, 0xAD, 0x45, 0x40, 0x2A, 0x00, 0x75, 0xFF, 0xFF, 0x82, 0x93, 0x71, 0xD2, 0x20, 0x0E, 0x08, 0xF2,
+ 0x81, 0xA8, 0x85, 0x00, 0x80, 0xB7, 0xAD, 0x45, 0x40, 0x2A, 0x00, 0x75, 0xFF, 0xFF, 0x82, 0x93, 0x71, 0xD2, 0x20, 0x0E, 0x08, 0xF2, 0x03, 0xA9, 0x01, 0xC2, 0x40, 0x76, 0x01, 0xC0,
+ 0x02, 0x90, 0x00, 0xC0, 0x92, 0x91, 0x01, 0xC0, 0x44, 0x76, 0x04, 0xC0, 0x62, 0x93, 0x01, 0xC0, 0x60, 0x76, 0x01, 0xC0, 0x02, 0x90, 0x05, 0xC0, 0x20, 0x92, 0x01, 0xC8, 0x40, 0x76,
+ 0x01, 0xC0, 0xE2, 0x90, 0x00, 0xC0, 0x12, 0x91, 0x01, 0xC4, 0x40, 0x76, 0x02, 0xC0, 0x02, 0x91, 0x05, 0xC0, 0xA0, 0x90, 0x01, 0xD0, 0x40, 0x76, 0x01, 0xC0, 0xA2, 0x93, 0x04, 0xC0,
+ 0xE0, 0x93, 0x80, 0xB7, 0x8C, 0x49, 0x00, 0x75, 0x03, 0xC0, 0xA4, 0x92, 0xCF, 0x9D, 0x94, 0xFF, 0x89, 0x98, 0x04, 0xC0, 0xA0, 0x92, 0xCF, 0x9D, 0x94, 0xFF, 0x09, 0x99, 0x20, 0xB7,
+ 0x8C, 0x46, 0x80, 0xB7, 0xAD, 0x45, 0x40, 0x2A, 0x00, 0x75, 0xFF, 0xFF, 0x82, 0x93, 0x04, 0xC0, 0x40, 0x90, 0x58, 0xF0, 0x5D, 0xAA, 0x20, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0,
+ 0x42, 0x92, 0x18, 0xD8, 0x55, 0xAA, 0x3C, 0x2A, 0x04, 0x75, 0x00, 0xC0, 0xE4, 0x90, 0xCF, 0x9D, 0x34, 0xC0, 0x40, 0x99, 0x03, 0xC0, 0xC0, 0x92, 0xCF, 0x9D, 0x34, 0xC0, 0x00, 0x98,
+ 0x03, 0xC0, 0x20, 0x92, 0x85, 0x00, 0x80, 0xB7, 0xAD, 0x45, 0x40, 0x2A, 0x00, 0x75, 0xFF, 0xFF, 0x82, 0x93, 0x71, 0xD2, 0x20, 0x0E, 0x03, 0xC0, 0x80, 0x90, 0xCF, 0x9D, 0xF4, 0xFF,
+ 0x7A, 0x99, 0x03, 0xC0, 0x20, 0x90, 0x40, 0xB7, 0x8C, 0x58, 0xA3, 0xCB, 0xBA, 0x0C, 0xBA, 0xC8, 0x8C, 0x0C, 0x49, 0x9E, 0x10, 0xF2, 0x25, 0x88, 0x43, 0x62, 0x58, 0xF0, 0xDD, 0xA8,
+ 0x00, 0xC2, 0x0F, 0x5A, 0x04, 0x1A, 0x3C, 0x2A, 0x74, 0xD1, 0x41, 0x69, 0x84, 0x28, 0x40, 0x74, 0x10, 0xF2, 0x25, 0x82, 0x00, 0xC0, 0xC4, 0x92, 0x48, 0xF2, 0x1D, 0xAA, 0x08, 0xC0,
+ 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0xE2, 0x91, 0x58, 0xF0, 0x5D, 0xAA, 0x40, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x02, 0x91, 0x58, 0xF0, 0x5D, 0xAA, 0x20, 0xC0, 0x00, 0x3A,
+ 0x58, 0xF0, 0x5D, 0xA2, 0x80, 0xB7, 0x8C, 0x49, 0x00, 0x75, 0x09, 0xC8, 0xC2, 0x0D, 0xEE, 0xC3, 0x90, 0x0D, 0x00, 0xC0, 0x64, 0x91, 0xCF, 0x9D, 0xD4, 0xFF, 0xD1, 0x9A, 0x01, 0xC0,
+ 0xE0, 0x90, 0x09, 0xC8, 0xC2, 0x0D, 0x40, 0xC1, 0xB0, 0x0D, 0x4F, 0x9D, 0x14, 0xC0, 0x4F, 0x9A, 0x00, 0xC0, 0xC0, 0x93, 0xCF, 0x9D, 0x86, 0x09, 0x5F, 0xB5, 0x7C, 0x7F, 0x14, 0xC0,
+ 0x84, 0x99, 0x5F, 0xB7, 0x7C, 0x7F, 0x58, 0xD8, 0xC6, 0xA9, 0x58, 0xD8, 0xCD, 0xA9, 0x94, 0xFF, 0x12, 0x9A, 0x20, 0xB7, 0x8C, 0x46, 0x80, 0xB7, 0xAD, 0x45, 0x40, 0x2A, 0x00, 0x75,
+ 0xFF, 0xFF, 0x82, 0x93, 0x80, 0xB7, 0x8C, 0x47, 0x08, 0xC0, 0x60, 0x0A, 0x08, 0xF2, 0x81, 0xA8, 0xF8, 0xF9, 0x19, 0xAA, 0x22, 0x9C, 0x05, 0xA6, 0x20, 0x84, 0x80, 0xB7, 0x0C, 0x4A,
+ 0x11, 0xD0, 0xC2, 0x08, 0x31, 0xD0, 0x9E, 0x2A, 0x3C, 0x2A, 0x48, 0x71, 0x01, 0xC0, 0x42, 0x92, 0x73, 0xD1, 0x51, 0x69, 0x40, 0xB7, 0x84, 0x58, 0x2E, 0x9E, 0x38, 0xC0, 0x41, 0xAA,
+ 0x40, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0xA2, 0x93, 0x40, 0xF0, 0x5D, 0xAA, 0x02, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0xC2, 0x92, 0x22, 0x85, 0x5F, 0xB5, 0x78, 0x7C, 0x40, 0xF0,
+ 0xDD, 0xA8, 0x32, 0xE0, 0x80, 0x8D, 0x00, 0xD8, 0x45, 0xAA, 0x0C, 0xC0, 0x16, 0x85, 0x5F, 0xB5, 0xF8, 0x7C, 0x82, 0x09, 0x3F, 0xB5, 0xEC, 0x7F, 0x9F, 0xB5, 0xEA, 0x7E, 0x54, 0xFF,
+ 0x23, 0x9B, 0x20, 0xB7, 0x0C, 0x4A, 0x11, 0xD0, 0x52, 0x0A, 0x31, 0xD0, 0xCE, 0x2A, 0xBC, 0x28, 0x42, 0x71, 0xFE, 0xFF, 0x44, 0x92, 0x9F, 0xB7, 0xEE, 0x7E, 0xBF, 0xB7, 0x6E, 0x7F,
+ 0x60, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x40, 0x84, 0x5D, 0x9E, 0x02, 0x85, 0x73, 0xC0, 0xCE, 0x9C, 0x20, 0xB7, 0x8C, 0x46, 0x08, 0xC0, 0x80, 0x08, 0x80, 0xB7, 0x2D, 0x40, 0xAB, 0x9E,
+ 0x41, 0x2A, 0x08, 0x3A, 0x80, 0xB5, 0x2D, 0x40, 0xF4, 0xFF, 0xAD, 0x9B, 0x20, 0xB7, 0x14, 0x45, 0x42, 0x85, 0x5F, 0xB5, 0x78, 0x78, 0x0C, 0xC0, 0x1E, 0x85, 0x5F, 0xB5, 0xF8, 0x78,
+ 0x52, 0xE0, 0x80, 0x8D, 0x80, 0xB7, 0x4D, 0x49, 0x20, 0xB7, 0x8C, 0x50, 0x86, 0x09, 0xBF, 0xB5, 0x6C, 0x7F, 0x9F, 0xB5, 0x6A, 0x7F, 0x3F, 0xB5, 0xEC, 0x7E, 0x54, 0xFF, 0xE8, 0x9A,
+ 0x00, 0xC0, 0x00, 0x90, 0x9F, 0xB7, 0x6E, 0x7E, 0xBF, 0xB7, 0xEE, 0x7E, 0x02, 0xC0, 0x00, 0x8C, 0x22, 0x9C, 0x20, 0xB7, 0x8C, 0x47, 0x80, 0xB7, 0xAD, 0x4D, 0x81, 0xC0, 0x00, 0x3A,
+ 0x80, 0xB5, 0xAD, 0x4D, 0x22, 0x9C, 0x80, 0xB7, 0x0C, 0x43, 0x59, 0x9E, 0x08, 0x75, 0x26, 0xD2, 0x0C, 0x59, 0x40, 0x85, 0x5A, 0xE0, 0x44, 0x80, 0x02, 0xC0, 0x80, 0x91, 0x00, 0xC0,
+ 0x40, 0x91, 0x01, 0xC0, 0xC0, 0x90, 0x02, 0xC0, 0xC0, 0x90, 0x02, 0xC0, 0x80, 0x90, 0x01, 0xC0, 0x60, 0x93, 0x11, 0xD0, 0x12, 0x1A, 0x0A, 0x75, 0x26, 0xD2, 0x0C, 0x59, 0x40, 0x85,
+ 0x5A, 0xE0, 0x44, 0x80, 0x00, 0xC0, 0x80, 0x92, 0x00, 0xC0, 0xE0, 0x91, 0x01, 0xC0, 0x20, 0x92, 0x01, 0xC0, 0xE0, 0x91, 0x00, 0xC0, 0xC0, 0x90, 0x00, 0xC0, 0xE0, 0x90, 0x01, 0xC0,
+ 0x20, 0x91, 0x12, 0x85, 0x01, 0xC0, 0xE0, 0x90, 0x06, 0x85, 0x01, 0xC0, 0x80, 0x90, 0x01, 0xC0, 0x20, 0x90, 0x11, 0xD0, 0x12, 0x1A, 0x0A, 0x75, 0x26, 0xD2, 0x0C, 0x59, 0x40, 0x85,
+ 0x5A, 0xE0, 0x44, 0x80, 0x00, 0xC0, 0x20, 0x92, 0x00, 0xC0, 0xA0, 0x92, 0x00, 0xC0, 0x60, 0x92, 0x00, 0xC0, 0x20, 0x92, 0x00, 0xC0, 0xC0, 0x90, 0x00, 0xC0, 0x00, 0x92, 0x00, 0xC0,
+ 0x60, 0x91, 0x12, 0x85, 0x00, 0xC0, 0x20, 0x91, 0x00, 0xC0, 0xC0, 0x90, 0x4E, 0x74, 0x06, 0x85, 0x00, 0xC0, 0x62, 0x90, 0x0A, 0x85, 0x40, 0xB5, 0x1C, 0x43, 0x00, 0xB7, 0x0C, 0x43,
+ 0x22, 0x9C, 0x05, 0xA6, 0x80, 0xB7, 0x0C, 0x43, 0x20, 0xB7, 0x94, 0x41, 0x5D, 0x9E, 0x80, 0xB5, 0x0C, 0x51, 0x20, 0xB7, 0x4D, 0x41, 0x9D, 0x9E, 0x4A, 0x75, 0xA0, 0x58, 0x9A, 0x30,
+ 0x20, 0xB5, 0x4D, 0x41, 0x00, 0xC0, 0xC4, 0x93, 0x80, 0xB7, 0x8C, 0x7A, 0xA0, 0xB5, 0x94, 0x50, 0x48, 0xF2, 0x9D, 0xA8, 0x02, 0xC0, 0x80, 0x38, 0x48, 0xF2, 0x9D, 0xA0, 0x02, 0xC0,
+ 0x82, 0x0D, 0x74, 0xFF, 0xEB, 0x99, 0x00, 0xC1, 0xBE, 0x0D, 0x74, 0xFF, 0xF1, 0x99, 0x80, 0xB7, 0x8C, 0x46, 0x0A, 0x85, 0x43, 0xB5, 0x18, 0x6C, 0x02, 0x85, 0xC8, 0xF2, 0x07, 0xA1,
+ 0x00, 0xC0, 0x80, 0x92, 0x4C, 0x75, 0x00, 0xC0, 0x24, 0x92, 0x80, 0xB7, 0x8C, 0x50, 0x00, 0x75, 0x20, 0xB7, 0x8C, 0x49, 0x00, 0xC0, 0x04, 0x91, 0x80, 0xB7, 0xAD, 0x47, 0x02, 0xC0,
+ 0x00, 0x3A, 0x80, 0xB5, 0xAD, 0x47, 0xF4, 0xFF, 0x61, 0x9B, 0xAB, 0x9E, 0xF4, 0xFF, 0x67, 0x9B, 0x80, 0xB7, 0x0C, 0x43, 0x08, 0x75, 0x00, 0xC0, 0xA4, 0x92, 0x80, 0xB7, 0x8C, 0x49,
+ 0x00, 0x75, 0x00, 0xC0, 0xA2, 0x91, 0x08, 0xD2, 0x01, 0xAA, 0x10, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0xE2, 0x90, 0x9E, 0x0D, 0xF4, 0xFF, 0x54, 0x9B, 0x00, 0xC0, 0xA0, 0x90, 0xA2, 0x0D,
+ 0xF4, 0xFF, 0x4F, 0x9B, 0x80, 0xB7, 0x0C, 0x43, 0x04, 0x75, 0x00, 0xC0, 0x24, 0x93, 0xC0, 0xC1, 0x40, 0x7F, 0x00, 0xC0, 0x42, 0x92, 0x20, 0xB7, 0x8C, 0x49, 0x40, 0x74, 0x00, 0xC0,
+ 0xE4, 0x90, 0x20, 0xB7, 0x8C, 0x7A, 0x40, 0x74, 0x00, 0xC0, 0x02, 0x91, 0x80, 0xB7, 0xAD, 0x47, 0x02, 0xC0, 0x00, 0x3A, 0x80, 0xB5, 0xAD, 0x47, 0x8B, 0x05, 0xF4, 0xFF, 0xF6, 0x9A,
+ 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x20, 0xB7, 0x8C, 0x46, 0x08, 0xC0, 0x80, 0x08, 0x80, 0xB7, 0x2D, 0x40, 0x41, 0x2A, 0x20, 0x3A, 0x80, 0xB5,
+ 0x2D, 0x40, 0x22, 0x9C, 0x80, 0xB7, 0x8C, 0x46, 0x20, 0xB7, 0x8C, 0x51, 0x08, 0xC0, 0x20, 0x0A, 0x08, 0xF2, 0x81, 0xA0, 0xFF, 0xFF, 0xA0, 0x91, 0x05, 0xA6, 0x50, 0xF0, 0x7D, 0xAA,
+ 0xB9, 0x9D, 0x52, 0xD0, 0x40, 0x28, 0xA0, 0xB7, 0x8C, 0x43, 0x71, 0xC1, 0xCD, 0x9C, 0x60, 0xB7, 0x84, 0x66, 0x60, 0xB7, 0x1C, 0x67, 0xC8, 0x9D, 0xE7, 0x9D, 0x18, 0xC0, 0x49, 0xAA,
+ 0x68, 0x9D, 0x10, 0xF0, 0xE6, 0xA8, 0x0E, 0xC0, 0x7C, 0x2A, 0x00, 0xC2, 0x08, 0x5A, 0x20, 0xE2, 0x85, 0xA8, 0x4C, 0x9E, 0x48, 0x70, 0x6C, 0x9D, 0x02, 0xC0, 0x42, 0x91, 0x08, 0xF0,
+ 0x61, 0xAA, 0x49, 0x9E, 0x48, 0x70, 0x02, 0x09, 0x82, 0x0C, 0x12, 0xB4, 0x42, 0x44, 0x01, 0xD0, 0x22, 0x09, 0x00, 0xC0, 0x62, 0x92, 0x84, 0x0C, 0x46, 0x76, 0x00, 0xC0, 0xF2, 0x91,
+ 0xA2, 0xD0, 0x08, 0x5E, 0x10, 0xF0, 0xE5, 0xA8, 0x30, 0xE2, 0x05, 0xAA, 0x48, 0x70, 0xFF, 0xFF, 0xA4, 0x92, 0x29, 0x9E, 0x06, 0x09, 0x30, 0xC0, 0xCE, 0xA0, 0x80, 0x74, 0x01, 0xC0,
+ 0x44, 0x91, 0x44, 0x9D, 0x3E, 0x9E, 0x40, 0x74, 0x38, 0xC0, 0x41, 0xAA, 0x02, 0x85, 0x01, 0xE0, 0x22, 0x85, 0xF2, 0xD3, 0xCE, 0x28, 0x30, 0xC0, 0xCD, 0xA8, 0x84, 0x0C, 0x8C, 0x2C,
+ 0x4A, 0x9E, 0x44, 0x70, 0x01, 0xD0, 0x92, 0x0C, 0x01, 0xD0, 0x96, 0x2C, 0x10, 0xF0, 0x65, 0xAA, 0x20, 0xB7, 0x8C, 0x46, 0xA2, 0xD0, 0x08, 0x5D, 0xF0, 0xCF, 0x01, 0x2A, 0xA2, 0x00,
+ 0x08, 0xC0, 0xD0, 0x08, 0x80, 0xB5, 0x2D, 0x40, 0x00, 0xD0, 0xC2, 0xA0, 0x10, 0xF0, 0x66, 0xA9, 0x06, 0x0C, 0x30, 0xE0, 0x46, 0xA1, 0x20, 0xB7, 0x8C, 0x51, 0x18, 0xD0, 0x61, 0xAA,
+ 0xCE, 0xCF, 0xFD, 0x28, 0x00, 0xC2, 0x20, 0x5A, 0x30, 0xC0, 0x00, 0x2A, 0x98, 0x30, 0x20, 0xB5, 0x8C, 0x51, 0x20, 0xB7, 0x94, 0x51, 0x18, 0xD0, 0x65, 0xAA, 0x00, 0xC2, 0x28, 0x5A,
+ 0xC0, 0xC0, 0x00, 0x2A, 0x49, 0x9D, 0x80, 0xB7, 0x8C, 0x46, 0x3E, 0xCF, 0xFD, 0x2C, 0x01, 0xC3, 0x94, 0x34, 0x20, 0xB5, 0x94, 0x51, 0x20, 0xB7, 0x8C, 0x51, 0x00, 0x76, 0x08, 0xC0,
+ 0x20, 0x0A, 0x08, 0xF2, 0x81, 0xA0, 0x00, 0xC0, 0x82, 0x90, 0xF4, 0xFF, 0x5C, 0x9B, 0x71, 0xC1, 0xCD, 0x9C, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C,
+ 0x05, 0xA6, 0x5D, 0x9E, 0x82, 0x0D, 0x54, 0xFF, 0x07, 0x9B, 0x48, 0xF2, 0xB9, 0xA9, 0x82, 0x0D, 0x02, 0x0D, 0x02, 0x09, 0x54, 0xFF, 0xEF, 0x9A, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7,
+ 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x5D, 0x9E, 0x82, 0x0D, 0x54, 0xFF, 0xF5, 0x9A, 0x48, 0xF2, 0xB5, 0xA9, 0x82, 0x0D, 0x02, 0x0D, 0x02, 0x09, 0x54, 0xFF, 0xDD, 0x9A,
+ 0x83, 0xB7, 0x08, 0x6C, 0x06, 0x08, 0x04, 0x1A, 0x83, 0xB5, 0x08, 0x6C, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x80, 0xB7, 0x0C, 0x52, 0x20, 0xB7,
+ 0x8C, 0x52, 0x04, 0x0A, 0x7C, 0x2A, 0x02, 0x71, 0x5A, 0x9E, 0x00, 0xC0, 0x64, 0x90, 0x00, 0x9F, 0x20, 0xB7, 0x94, 0x43, 0x72, 0xC0, 0xCD, 0x9C, 0x40, 0xB7, 0x84, 0x67, 0x80, 0xB7,
+ 0x0C, 0x52, 0x20, 0xB7, 0x0C, 0x52, 0x26, 0xD2, 0x0C, 0x59, 0x2D, 0x9E, 0x10, 0x87, 0x30, 0xE0, 0x4D, 0xA1, 0xA6, 0xD0, 0x0C, 0x59, 0x2D, 0x9E, 0x30, 0xE0, 0xCD, 0xA1, 0x08, 0xD0,
+ 0x65, 0xAA, 0x04, 0x0A, 0x08, 0xD0, 0x65, 0xA2, 0x20, 0xB7, 0x0C, 0x52, 0x84, 0x08, 0xFC, 0x28, 0x20, 0xB5, 0x0C, 0x52, 0x72, 0xC0, 0xCD, 0x9C, 0x22, 0x9C, 0x0D, 0xA6, 0x20, 0xB7,
+ 0x8C, 0x52, 0x80, 0xB7, 0x0C, 0x52, 0x48, 0x70, 0x02, 0xC0, 0x42, 0x91, 0xC0, 0xB7, 0x8C, 0x67, 0x80, 0xB7, 0x8C, 0x52, 0x14, 0xD0, 0x68, 0x09, 0x26, 0xD2, 0x0C, 0x59, 0x2D, 0x9E,
+ 0x47, 0x9D, 0x30, 0xE0, 0xCD, 0xAA, 0x60, 0xE0, 0xA6, 0xAA, 0x20, 0xB7, 0x8C, 0x43, 0x71, 0xC0, 0xCD, 0x9C, 0x04, 0x0A, 0x7C, 0x2A, 0x80, 0xB5, 0x8C, 0x52, 0x71, 0xC0, 0xCD, 0x9C,
+ 0x40, 0x77, 0x00, 0xC0, 0xA2, 0x91, 0xAB, 0x9E, 0x0B, 0x06, 0x62, 0x9C, 0x1C, 0xC0, 0x3E, 0x7C, 0x00, 0xC0, 0xC4, 0x90, 0x8B, 0x05, 0x8B, 0x01, 0xF4, 0xFF, 0xA6, 0x9B, 0xA0, 0xB7,
+ 0x94, 0x43, 0x72, 0xC1, 0xCD, 0x9C, 0x08, 0xD2, 0x25, 0xAA, 0x04, 0x1A, 0x08, 0xD2, 0x25, 0xA2, 0x08, 0xD2, 0xA5, 0xA8, 0x1C, 0xC0, 0x7E, 0x7C, 0x00, 0xC0, 0x84, 0x91, 0x48, 0xF2,
+ 0x3D, 0xAA, 0x01, 0xC1, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0xA2, 0x90, 0xAB, 0x9E, 0x74, 0xFF, 0x81, 0x9A, 0x72, 0xC1, 0xCD, 0x9C, 0x20, 0xB7, 0x8C, 0x52, 0x80, 0xB7, 0x0C, 0x52,
+ 0x48, 0x70, 0xFD, 0xFF, 0x84, 0x93, 0x9F, 0xB7, 0xEE, 0x7E, 0xBF, 0xB7, 0x6E, 0x7F, 0xDF, 0xB7, 0xEE, 0x7F, 0x60, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x5D, 0x9E, 0x82, 0x0D, 0x54, 0xFF,
+ 0x57, 0x9A, 0x80, 0xB7, 0x8C, 0x44, 0x20, 0xB7, 0x0C, 0x69, 0x01, 0xC0, 0x8E, 0x0C, 0x06, 0xC0, 0x98, 0x0C, 0x34, 0xC0, 0x10, 0x0A, 0xFE, 0xCF, 0xFC, 0x28, 0xE9, 0xF3, 0x9D, 0xA0,
+ 0x08, 0xF2, 0x82, 0xA0, 0x48, 0xF2, 0xB5, 0xA9, 0x82, 0x0D, 0x06, 0x0D, 0x06, 0x09, 0x54, 0xFF, 0x2F, 0x9A, 0x06, 0x08, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C,
+ 0x22, 0x9C, 0x05, 0xA6, 0x87, 0x06, 0x82, 0x0D, 0x54, 0xFF, 0x34, 0x9A, 0x80, 0xB7, 0x8C, 0x44, 0x20, 0xB7, 0x0C, 0x69, 0x01, 0xC0, 0x86, 0x0C, 0x06, 0xC0, 0x98, 0x0C, 0x34, 0xC0,
+ 0x10, 0x0A, 0xFE, 0xCF, 0xFC, 0x28, 0xE9, 0xF3, 0x9D, 0xA0, 0x08, 0xF2, 0x82, 0xA0, 0x50, 0xF2, 0xB9, 0xA9, 0x82, 0x0D, 0x06, 0x0D, 0x06, 0x09, 0x54, 0xFF, 0x0C, 0x9A, 0xA0, 0xB7,
+ 0x8C, 0x43, 0x71, 0xC1, 0xCD, 0x9C, 0x8B, 0x05, 0x14, 0xC0, 0x94, 0x98, 0x71, 0xC1, 0xCD, 0x9C, 0x06, 0x08, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C,
+ 0x1D, 0xA6, 0x49, 0xC0, 0x82, 0x85, 0x00, 0xC2, 0x80, 0x85, 0x20, 0xB7, 0x8C, 0x47, 0x02, 0x0C, 0x06, 0x85, 0x82, 0x0A, 0x5B, 0x9E, 0x49, 0xC0, 0x02, 0x87, 0x00, 0xC2, 0x10, 0x87,
+ 0x48, 0xF0, 0x7D, 0xAA, 0xEF, 0x9D, 0xD4, 0x9D, 0x48, 0xF0, 0xFE, 0xA8, 0x0C, 0xC0, 0xE0, 0x08, 0x40, 0xB7, 0x35, 0x40, 0x48, 0xF0, 0x7D, 0xA9, 0x00, 0xC2, 0x05, 0x5A, 0x04, 0x2A,
+ 0x00, 0x75, 0x80, 0xB7, 0x0C, 0x69, 0xF9, 0x5C, 0x84, 0x4C, 0x84, 0x2C, 0xFE, 0xC0, 0x70, 0x2D, 0x08, 0xF2, 0x06, 0xA0, 0x30, 0xE0, 0xC9, 0xA8, 0x01, 0xE0, 0x22, 0x85, 0x20, 0xE2,
+ 0xAB, 0x88, 0x50, 0xE0, 0xCA, 0xA9, 0x80, 0xC0, 0x48, 0x74, 0x20, 0x0D, 0x09, 0x00, 0x02, 0xC0, 0x02, 0x90, 0x01, 0x01, 0x31, 0xD0, 0x00, 0x0B, 0x88, 0xC0, 0xC2, 0x0E, 0x74, 0xD1,
+ 0x80, 0x09, 0x7F, 0x9D, 0x80, 0xC0, 0x50, 0x74, 0x11, 0xD0, 0x02, 0x0E, 0x04, 0xB3, 0x24, 0x48, 0xA0, 0x9E, 0x02, 0x72, 0x00, 0xC0, 0xA6, 0x92, 0x08, 0xF0, 0x47, 0xA9, 0x6D, 0x9D,
+ 0x80, 0xC0, 0x05, 0x5A, 0x30, 0xC0, 0x4D, 0xA2, 0x08, 0xF0, 0xC5, 0xA8, 0x3D, 0x9E, 0xA6, 0xD0, 0x08, 0x59, 0x30, 0xE0, 0xCE, 0xA1, 0x08, 0xF0, 0x45, 0xAA, 0x04, 0x0A, 0x08, 0xF0,
+ 0x45, 0xA2, 0x54, 0x9E, 0x76, 0xCF, 0x41, 0x0A, 0x50, 0xC0, 0x00, 0x75, 0x84, 0x0A, 0x8B, 0x05, 0x23, 0xB3, 0x46, 0x48, 0x10, 0xC0, 0x7E, 0x75, 0x07, 0x05, 0x00, 0xC0, 0xB2, 0x91,
+ 0x5C, 0x9E, 0x70, 0xE2, 0x85, 0xA8, 0xD8, 0x9D, 0x80, 0xC0, 0x48, 0x74, 0x60, 0xE0, 0xCA, 0xA9, 0x20, 0x0D, 0xFE, 0xFF, 0x84, 0x91, 0x08, 0xF0, 0x65, 0xAA, 0x09, 0xC8, 0xC2, 0x0D,
+ 0xF0, 0xC5, 0xE0, 0x0D, 0x80, 0xB5, 0x2C, 0x40, 0xF4, 0xFF, 0xAF, 0x9A, 0x9F, 0xB7, 0x6E, 0x7E, 0xBF, 0xB7, 0xEE, 0x7E, 0xDF, 0xB7, 0x6E, 0x7F, 0xFF, 0xB7, 0xEE, 0x7F, 0x02, 0xC0,
+ 0x00, 0x8C, 0x22, 0x9C, 0x1D, 0xA6, 0xA0, 0xB7, 0x14, 0x69, 0x5D, 0x9E, 0x08, 0xF2, 0x25, 0xAA, 0x10, 0xF2, 0xA1, 0xA8, 0x48, 0x70, 0x6C, 0x9E, 0x00, 0xC0, 0x62, 0x91, 0x09, 0xC8,
+ 0xC2, 0x0D, 0xFA, 0xC5, 0x90, 0x0D, 0x8B, 0x01, 0xF4, 0xFF, 0x91, 0x9A, 0x04, 0xC0, 0x80, 0x93, 0x08, 0xF2, 0x05, 0xAA, 0x00, 0x75, 0x04, 0xC0, 0x22, 0x91, 0x82, 0x0B, 0x20, 0xB7,
+ 0x8C, 0x48, 0x01, 0xC0, 0x12, 0x0A, 0x10, 0xC0, 0x00, 0x0A, 0x48, 0x70, 0x00, 0xC0, 0xB2, 0x90, 0xAB, 0x9E, 0x54, 0xFF, 0xD5, 0x9B, 0x08, 0xF2, 0xA9, 0xA9, 0xA2, 0x0D, 0x00, 0xC6,
+ 0x80, 0x39, 0x74, 0xFF, 0x45, 0x99, 0x40, 0xC0, 0x82, 0x0D, 0x08, 0xF2, 0xBD, 0xA9, 0x74, 0xFF, 0x3F, 0x99, 0x82, 0x09, 0x10, 0xF2, 0x25, 0xAA, 0xC8, 0x70, 0x02, 0xC0, 0x28, 0x93,
+ 0x6E, 0x9E, 0x00, 0xB7, 0x94, 0x46, 0x32, 0xD0, 0x60, 0x0B, 0x71, 0x9E, 0x10, 0xC0, 0x65, 0xAA, 0x12, 0xD0, 0xB2, 0x0A, 0x08, 0x75, 0x80, 0xC1, 0x08, 0x58, 0x01, 0xC0, 0xC4, 0x91,
+ 0x84, 0x0B, 0xC4, 0x75, 0x01, 0xC0, 0x44, 0x91, 0x82, 0x0C, 0x49, 0x9E, 0x11, 0xD0, 0x32, 0x1A, 0x48, 0x70, 0x01, 0xC0, 0x68, 0x90, 0x49, 0xC0, 0x82, 0x87, 0x60, 0xC1, 0x80, 0x87,
+ 0x40, 0xB7, 0x84, 0x68, 0x01, 0x05, 0xA3, 0x9E, 0xA6, 0xD0, 0x08, 0x5D, 0x11, 0xD0, 0x12, 0x0D, 0x50, 0xF0, 0x49, 0xAA, 0x00, 0x75, 0xFF, 0xFF, 0xA2, 0x93, 0xDC, 0x9D, 0x60, 0xB7,
+ 0x1C, 0x68, 0x70, 0xC0, 0x29, 0xAA, 0x91, 0x9E, 0x46, 0x72, 0x30, 0xE0, 0xCD, 0xA8, 0x3D, 0x9E, 0x26, 0xD2, 0x04, 0x59, 0x30, 0xE0, 0xCD, 0xA0, 0xFF, 0xFF, 0x26, 0x91, 0x41, 0x9E,
+ 0x80, 0xB7, 0x2D, 0x45, 0x00, 0x75, 0xFF, 0xFF, 0xA2, 0x93, 0x71, 0x9E, 0x73, 0xD1, 0x60, 0x09, 0x10, 0xC0, 0x65, 0xAA, 0x47, 0x9D, 0x10, 0xE0, 0x86, 0xA8, 0x00, 0xC2, 0x04, 0x5A,
+ 0x49, 0xC0, 0x00, 0x0A, 0x40, 0xC1, 0x00, 0x0A, 0x08, 0xF2, 0x82, 0xA0, 0x08, 0xF2, 0xC5, 0xA8, 0x6B, 0x9E, 0xC2, 0x70, 0xFD, 0xFF, 0x06, 0x92, 0x40, 0xC0, 0x92, 0x0D, 0x82, 0x09,
+ 0x74, 0xFF, 0xDD, 0x98, 0xA2, 0x0D, 0x08, 0xF2, 0xA9, 0xA9, 0x74, 0xFF, 0xD8, 0x98, 0x40, 0xC0, 0x82, 0x0D, 0x08, 0xF2, 0xBD, 0xA9, 0x74, 0xFF, 0xD2, 0x98, 0x20, 0xB7, 0x94, 0x47,
+ 0x20, 0xB7, 0x8C, 0x46, 0x80, 0xB7, 0xAD, 0x45, 0x40, 0x2A, 0x00, 0x75, 0xFF, 0xFF, 0x82, 0x93, 0x71, 0xD2, 0x10, 0x0E, 0x08, 0xF2, 0x81, 0xA8, 0x9F, 0xB7, 0x6E, 0x7E, 0xBF, 0xB7,
+ 0xEE, 0x7E, 0xDF, 0xB7, 0x6E, 0x7F, 0xFF, 0xB7, 0xEE, 0x7F, 0x02, 0xC0, 0x00, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x5D, 0x9E, 0x82, 0x0D, 0x54, 0xFF, 0xC5, 0x98, 0x80, 0xB7, 0x8C, 0x44,
+ 0x20, 0xB7, 0x8C, 0x69, 0x01, 0xC0, 0x8E, 0x0C, 0xE0, 0x0C, 0x34, 0xC0, 0x10, 0x0A, 0xFE, 0xCF, 0xFC, 0x28, 0xE9, 0xF3, 0x9D, 0xA0, 0x08, 0xF2, 0x82, 0xA0, 0x48, 0xF2, 0xB5, 0xA9,
+ 0x82, 0x0D, 0x06, 0x0D, 0x02, 0x09, 0x54, 0xFF, 0x9E, 0x98, 0x83, 0xB7, 0x08, 0x6C, 0x06, 0x08, 0x04, 0x1A, 0x83, 0xB5, 0x08, 0x6C, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F,
+ 0x40, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x5D, 0x9E, 0x82, 0x0D, 0x54, 0xFF, 0x9E, 0x98, 0x80, 0xB7, 0x8C, 0x44, 0x20, 0xB7, 0x8C, 0x69, 0x01, 0xC0, 0x86, 0x0C, 0xE0, 0x0C, 0x34, 0xC0,
+ 0x10, 0x0A, 0xFE, 0xCF, 0xFC, 0x28, 0xE9, 0xF3, 0x9D, 0xA0, 0x08, 0xF2, 0x82, 0xA0, 0x48, 0xF2, 0xB9, 0xA9, 0x82, 0x0D, 0x06, 0x0D, 0x02, 0x09, 0x54, 0xFF, 0x77, 0x98, 0x9F, 0xB7,
+ 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x87, 0x06, 0x50, 0xF2, 0x3D, 0xAA, 0x10, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0xE4, 0x92, 0x50, 0xF2, 0x3D, 0xAA,
+ 0x40, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x02, 0x92, 0x20, 0xB7, 0x94, 0x69, 0x50, 0xDA, 0x25, 0xAA, 0x80, 0xB5, 0x4D, 0x41, 0x10, 0xF2, 0xBD, 0xA8, 0x20, 0xB5, 0xCD, 0x40,
+ 0x10, 0xF2, 0x25, 0xAA, 0x80, 0xB5, 0x4D, 0x40, 0xA0, 0xB7, 0x0C, 0x6A, 0x60, 0xB7, 0x0C, 0x56, 0xAB, 0x9E, 0x2A, 0x0D, 0x94, 0xC0, 0x8C, 0x9A, 0x60, 0xB7, 0x0C, 0x55, 0xB2, 0xD0,
+ 0xD0, 0x19, 0x2A, 0x0D, 0x94, 0xC0, 0x85, 0x9A, 0x09, 0xC8, 0xC2, 0x0D, 0x56, 0xC6, 0x80, 0x0D, 0x6B, 0x9E, 0xF4, 0xFF, 0x6F, 0x99, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F,
+ 0x40, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x5D, 0x9E, 0x20, 0xB7, 0x8C, 0x48, 0x01, 0xC0, 0x0A, 0x0A, 0x0E, 0xC0, 0x78, 0x0A, 0x48, 0x70, 0x00, 0xC0, 0x72, 0x91, 0x48, 0xF2, 0x3D, 0xAA,
+ 0x04, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x82, 0x90, 0x54, 0xFF, 0xAD, 0x9A, 0x08, 0xF2, 0xA9, 0xA9, 0xA2, 0x0D, 0x00, 0xC6, 0x80, 0x39, 0x74, 0xFF, 0x1D, 0x98, 0x40, 0xC0,
+ 0x82, 0x0D, 0x48, 0xF2, 0xA1, 0xA9, 0x74, 0xFF, 0x17, 0x98, 0x40, 0xC0, 0xA2, 0x0D, 0x08, 0xDA, 0xB9, 0xA9, 0x74, 0xFF, 0x11, 0x98, 0x40, 0xC0, 0x92, 0x0D, 0x82, 0x09, 0x74, 0xFF,
+ 0x0C, 0x98, 0xA2, 0x0D, 0x08, 0xF2, 0xA9, 0xA9, 0x74, 0xFF, 0x07, 0x98, 0x40, 0xC0, 0x82, 0x0D, 0x08, 0xF2, 0xBD, 0xA9, 0x74, 0xFF, 0x01, 0x98, 0x20, 0xB7, 0x8C, 0x46, 0x80, 0xB7,
+ 0xAD, 0x45, 0x40, 0x2A, 0x00, 0x75, 0xFF, 0xFF, 0x82, 0x93, 0x80, 0xB7, 0x8C, 0x47, 0x08, 0xC0, 0x60, 0x0A, 0x08, 0xF2, 0x81, 0xA8, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F,
+ 0x40, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0xA0, 0xB7, 0x94, 0x69, 0x5D, 0x9E, 0x08, 0xF2, 0x25, 0xAA, 0x10, 0xF2, 0xA1, 0xA8, 0x48, 0x70, 0x00, 0xC0, 0x42, 0x92, 0xF4, 0xFF, 0x50, 0x9B,
+ 0x60, 0xB7, 0x14, 0x56, 0xD1, 0xD0, 0xD8, 0x0D, 0x2A, 0x0D, 0x94, 0xC0, 0x19, 0x9A, 0x60, 0xB7, 0x14, 0x55, 0x31, 0xD0, 0xD8, 0x0D, 0x2A, 0x0D, 0x94, 0xC0, 0x12, 0x9A, 0x10, 0xF2,
+ 0x25, 0xAA, 0x48, 0xF2, 0x21, 0xA2, 0x10, 0xDA, 0xB1, 0xA8, 0x08, 0xDA, 0xB9, 0xA0, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x1D, 0xA6, 0x20, 0x84,
+ 0x5E, 0x9E, 0x95, 0x9E, 0x91, 0xD0, 0xE0, 0x0B, 0x08, 0xD2, 0x61, 0xAA, 0xA2, 0xD2, 0x9C, 0x5E, 0x22, 0x0F, 0x83, 0x07, 0x06, 0x75, 0x7F, 0xB5, 0x6C, 0x7F, 0x5F, 0xB5, 0xF4, 0x7F,
+ 0x00, 0xC0, 0xC4, 0x93, 0x48, 0xDA, 0xC9, 0xA9, 0x8B, 0x05, 0x84, 0x59, 0xB4, 0xC0, 0xD7, 0x98, 0x48, 0xDA, 0xC9, 0xA9, 0x04, 0x58, 0x87, 0x62, 0x8B, 0x05, 0xB4, 0xC0, 0x1D, 0x99,
+ 0x48, 0xDA, 0xC9, 0xA9, 0x8B, 0x05, 0x04, 0x58, 0xD0, 0x02, 0xB4, 0xC0, 0xC9, 0x98, 0x13, 0xD0, 0x52, 0x09, 0x04, 0x28, 0x10, 0xF2, 0xA1, 0x88, 0x20, 0x0F, 0x80, 0xC2, 0x9C, 0x5A,
+ 0x08, 0xD2, 0x61, 0xAA, 0x02, 0x75, 0x14, 0xD3, 0x04, 0x5F, 0x94, 0xD2, 0x84, 0x5A, 0x00, 0x75, 0x82, 0x0D, 0x11, 0xD2, 0x50, 0x0A, 0x54, 0xB3, 0x24, 0x44, 0x89, 0x02, 0x34, 0xFF,
+ 0x96, 0x9B, 0x3F, 0xB7, 0xEC, 0x7F, 0x80, 0xB7, 0x8C, 0x44, 0x2E, 0xC0, 0x82, 0x68, 0x5F, 0xB7, 0x6C, 0x7F, 0x80, 0xC3, 0x88, 0x5D, 0x87, 0x04, 0x21, 0xC0, 0x84, 0x3C, 0x34, 0xC0,
+ 0x10, 0x0A, 0x94, 0x00, 0x20, 0xC0, 0xC0, 0x08, 0xE9, 0xF3, 0x9D, 0xA0, 0x08, 0xF2, 0x82, 0xA0, 0x08, 0xF2, 0x53, 0xA9, 0xC0, 0x0A, 0x11, 0xD0, 0xF2, 0x1D, 0x20, 0xE3, 0xA3, 0x80,
+ 0x04, 0x1F, 0x0D, 0x05, 0x06, 0x09, 0x34, 0xFF, 0xE3, 0x9B, 0x9F, 0xB7, 0xEE, 0x7D, 0xBF, 0xB7, 0x6E, 0x7E, 0xDF, 0xB7, 0xEE, 0x7E, 0xFF, 0xB7, 0x6E, 0x7F, 0x02, 0xC0, 0x20, 0x8C,
+ 0x22, 0x9C, 0x2E, 0xC0, 0x82, 0x69, 0x3E, 0x9D, 0x10, 0x5D, 0x20, 0xC0, 0x80, 0x09, 0x01, 0xC2, 0x36, 0x81, 0x20, 0xE2, 0x2D, 0x81, 0x90, 0xD0, 0xDE, 0xA8, 0xD0, 0xD0, 0x5D, 0xA8,
+ 0x50, 0xD8, 0x5D, 0xAA, 0x50, 0xD8, 0xC9, 0xA8, 0xC8, 0x5C, 0x11, 0xC0, 0x80, 0x2C, 0x0E, 0xC0, 0x70, 0x28, 0x3E, 0xC0, 0x40, 0x2A, 0x38, 0x58, 0x00, 0xC2, 0x10, 0x5A, 0x08, 0x30,
+ 0x4C, 0x9E, 0x3E, 0xC0, 0xC0, 0x28, 0x91, 0x58, 0x02, 0x30, 0x08, 0x30, 0x22, 0x9C, 0x1D, 0xA6, 0x02, 0xC0, 0x60, 0x84, 0x5E, 0x9E, 0x06, 0x87, 0x02, 0x09, 0x82, 0x0F, 0x91, 0xD0,
+ 0xE0, 0x08, 0x80, 0xB7, 0x29, 0x40, 0x5F, 0xB5, 0x64, 0x7C, 0x5F, 0xB5, 0xEC, 0x7C, 0x04, 0x09, 0x5F, 0xB5, 0x6C, 0x7D, 0x06, 0x75, 0x02, 0x0A, 0x9F, 0xB5, 0xEC, 0x7D, 0x00, 0xC0,
+ 0x02, 0x91, 0x80, 0xB7, 0x29, 0x40, 0x24, 0xD2, 0x88, 0x5A, 0x00, 0xC0, 0x60, 0x90, 0xA2, 0x0E, 0x80, 0xB7, 0x8C, 0x49, 0x40, 0xB7, 0x9C, 0x4A, 0x00, 0x75, 0x5F, 0xB5, 0x7C, 0x7E,
+ 0x00, 0xC0, 0x04, 0x91, 0x80, 0xB7, 0x08, 0x44, 0x1C, 0xC0, 0x3E, 0x7D, 0x00, 0xC0, 0xA2, 0x90, 0x02, 0x08, 0x0C, 0xC0, 0x20, 0x93, 0xB3, 0x9E, 0xC0, 0xB5, 0x8C, 0x49, 0x86, 0x09,
+ 0xD4, 0xFF, 0x6B, 0x9B, 0x48, 0xDA, 0xC9, 0xAA, 0xAB, 0x9E, 0x02, 0xC0, 0xB6, 0x09, 0xB4, 0xC0, 0x22, 0x98, 0x40, 0x58, 0x28, 0xD0, 0x41, 0x59, 0xAB, 0x9E, 0x02, 0xC0, 0xB6, 0x09,
+ 0x5F, 0xB5, 0xE4, 0x79, 0xB4, 0xC0, 0x65, 0x98, 0x00, 0xE0, 0x40, 0x58, 0x7F, 0xB7, 0xE4, 0x79, 0xAB, 0x9E, 0x02, 0x0A, 0x02, 0xD0, 0x42, 0x0A, 0x01, 0xC3, 0xB0, 0x83, 0x6C, 0x9D,
+ 0x7F, 0xB5, 0xE4, 0x79, 0xB4, 0xC0, 0x09, 0x98, 0x5F, 0xB7, 0xFC, 0x79, 0x48, 0xDA, 0xCA, 0xA9, 0x4F, 0x9D, 0x1F, 0xB5, 0x6C, 0x7A, 0xB4, 0xC0, 0x4D, 0x98, 0x00, 0x74, 0x5F, 0xB7,
+ 0x64, 0x7A, 0x02, 0x0A, 0x02, 0xD0, 0x42, 0x0A, 0x7F, 0xB7, 0xE4, 0x79, 0x01, 0xC3, 0x20, 0x83, 0x5F, 0xB5, 0x64, 0x7A, 0x48, 0xDA, 0xCE, 0xA8, 0x11, 0xF0, 0x32, 0x8E, 0x48, 0xDA,
+ 0xC9, 0xA8, 0x01, 0xC0, 0x45, 0x62, 0x4A, 0x9E, 0x00, 0xE0, 0x18, 0x12, 0x23, 0x61, 0xCD, 0x9D, 0x82, 0x0D, 0x5F, 0xB5, 0x6C, 0x7B, 0x32, 0xB3, 0x84, 0x50, 0x5F, 0xB5, 0xE4, 0x7A,
+ 0x34, 0xFF, 0xC3, 0x9A, 0x5F, 0xB7, 0x7C, 0x7A, 0x3F, 0xB7, 0x6C, 0x7E, 0xB3, 0x9E, 0xC7, 0x9D, 0x02, 0x0D, 0x02, 0x09, 0x83, 0x01, 0xF4, 0xFF, 0xE5, 0x9A, 0x5F, 0xB7, 0x64, 0x7A,
+ 0x08, 0xF2, 0xC9, 0xA9, 0x5F, 0xB5, 0xE4, 0x7B, 0xFE, 0xC9, 0xFD, 0x29, 0xA2, 0x0D, 0x00, 0xC4, 0x80, 0x39, 0x54, 0xFF, 0x9A, 0x9A, 0xB2, 0x0D, 0x08, 0xF2, 0xD9, 0xA9, 0x54, 0xFF,
+ 0x95, 0x9A, 0xC2, 0x0D, 0x08, 0xF2, 0xDD, 0xA9, 0x54, 0xFF, 0x90, 0x9A, 0x02, 0xC0, 0xA2, 0x0D, 0x48, 0xF2, 0xC5, 0xA9, 0x54, 0xFF, 0x8A, 0x9A, 0x02, 0xC0, 0xB2, 0x0D, 0x48, 0xF2,
+ 0xC9, 0xA9, 0x54, 0xFF, 0x84, 0x9A, 0x48, 0xF2, 0xCD, 0xA9, 0x02, 0xC0, 0xF2, 0x0D, 0xB0, 0x39, 0x54, 0xFF, 0x7D, 0x9A, 0x04, 0xC0, 0x82, 0x0D, 0x48, 0xF2, 0xD1, 0xA9, 0x54, 0xFF,
+ 0x77, 0x9A, 0x40, 0xC0, 0x82, 0x0D, 0x6B, 0x9E, 0x54, 0xFF, 0x72, 0x9A, 0x01, 0xC0, 0xA0, 0x3F, 0x91, 0xD0, 0x60, 0x0A, 0x08, 0xD2, 0x81, 0xA8, 0x42, 0x74, 0x00, 0xC0, 0xB2, 0x91,
+ 0x3F, 0xB7, 0xEC, 0x7D, 0x8A, 0x87, 0x7F, 0xB5, 0x64, 0x7C, 0x01, 0xC0, 0xC0, 0x3F, 0x01, 0xC0, 0xC0, 0x38, 0x3F, 0xB5, 0xEC, 0x7D, 0x48, 0xDA, 0x4D, 0xAA, 0x02, 0x09, 0x88, 0x70,
+ 0x5F, 0xB5, 0x6C, 0x79, 0x06, 0xC0, 0x88, 0x93, 0x5F, 0xB7, 0x6C, 0x79, 0x79, 0x9E, 0x01, 0xC0, 0x90, 0x38, 0x0E, 0xC0, 0xFE, 0x28, 0x00, 0xC1, 0x20, 0x5A, 0x80, 0x74, 0xF0, 0xCF,
+ 0x00, 0x2A, 0x20, 0xD0, 0x98, 0x33, 0x00, 0xC0, 0xE2, 0x91, 0x3F, 0xB7, 0xEC, 0x7D, 0x11, 0xD0, 0x22, 0x1A, 0x00, 0xC2, 0x20, 0x5A, 0xF0, 0xCF, 0x00, 0x2A, 0x0E, 0xC0, 0xFE, 0x28,
+ 0x98, 0x30, 0x3F, 0xB5, 0xEC, 0x7D, 0x5F, 0xB7, 0xFC, 0x79, 0x3F, 0xB7, 0x6C, 0x79, 0x86, 0x0E, 0x75, 0x73, 0x5F, 0xB7, 0x7C, 0x7C, 0x82, 0x0B, 0x01, 0xC3, 0x94, 0x00, 0x3F, 0xB5,
+ 0xEC, 0x7E, 0x05, 0xC0, 0x92, 0x90, 0x5F, 0xB7, 0xE4, 0x79, 0x3F, 0xB7, 0xEC, 0x7A, 0xDE, 0x9D, 0x11, 0xF0, 0x22, 0x8E, 0x5F, 0xB7, 0x7C, 0x7A, 0x07, 0x71, 0x83, 0x02, 0x25, 0xB3,
+ 0x24, 0x4C, 0x82, 0x0D, 0x34, 0xFF, 0x2B, 0x9A, 0x3F, 0xB7, 0xEC, 0x7B, 0x5F, 0xB7, 0x6C, 0x7B, 0x9F, 0xB7, 0xEC, 0x7C, 0x44, 0x70, 0x3F, 0xB7, 0x6C, 0x7D, 0x04, 0x4A, 0x9F, 0xB5,
+ 0xEC, 0x7C, 0x84, 0x48, 0x3F, 0xB5, 0x6C, 0x7D, 0x00, 0xC0, 0x68, 0x92, 0x5F, 0xB7, 0x6C, 0x7E, 0xB3, 0x9E, 0xA1, 0x9E, 0x9F, 0xB7, 0xEC, 0x7B, 0x03, 0x05, 0xA9, 0x9E, 0x85, 0x01,
+ 0x09, 0x01, 0xF4, 0xFF, 0x3B, 0x9A, 0x3F, 0xB7, 0xEC, 0x7B, 0x9A, 0x00, 0x3F, 0xB5, 0xEC, 0x7B, 0x5F, 0xB7, 0x7C, 0x7A, 0x02, 0x0F, 0xB5, 0x73, 0x84, 0x0E, 0xBF, 0xB5, 0x74, 0x7F,
+ 0x03, 0xC0, 0x28, 0x90, 0x48, 0xDA, 0x49, 0xAA, 0xC8, 0x71, 0x02, 0xC0, 0x88, 0x93, 0x5F, 0xB7, 0x64, 0x7E, 0xA6, 0xD3, 0x08, 0x59, 0x20, 0xF0, 0xA5, 0x80, 0x9F, 0xB7, 0xEC, 0x7D,
+ 0x3F, 0xB7, 0x74, 0x79, 0xF1, 0xD3, 0xFE, 0x28, 0xF0, 0xCF, 0x01, 0x2A, 0x42, 0x32, 0x9F, 0xB5, 0xEC, 0x7D, 0x7C, 0x9E, 0x40, 0x76, 0xF0, 0xCF, 0x01, 0x2A, 0x20, 0xD0, 0xC2, 0x33,
+ 0x00, 0xC0, 0x82, 0x92, 0x5F, 0xB7, 0xEC, 0x7D, 0x60, 0xC0, 0xA2, 0x0D, 0x85, 0x01, 0x54, 0xFF, 0xCA, 0x99, 0x60, 0xC0, 0xB2, 0x0D, 0x10, 0xF2, 0xA1, 0xA9, 0x54, 0xFF, 0xC4, 0x99,
+ 0x60, 0xC0, 0xF2, 0x0D, 0x82, 0x09, 0x54, 0xFF, 0xBF, 0x99, 0x3F, 0xB7, 0x74, 0x7E, 0x5F, 0xB7, 0x6C, 0x7D, 0x0D, 0x05, 0x83, 0x05, 0x85, 0x01, 0xF4, 0xFF, 0x60, 0x9A, 0x81, 0x02,
+ 0x40, 0xC0, 0xA2, 0x0D, 0x7B, 0x9E, 0x54, 0xFF, 0xB0, 0x99, 0x40, 0xC0, 0xB2, 0x0D, 0x8B, 0x01, 0x54, 0xFF, 0xAB, 0x99, 0x40, 0xC0, 0xF2, 0x0D, 0x82, 0x09, 0x54, 0xFF, 0xA6, 0x99,
+ 0x42, 0xC0, 0xB2, 0x0D, 0x01, 0xC0, 0x86, 0x09, 0x54, 0xFF, 0xA0, 0x99, 0x31, 0xF2, 0xA5, 0xA2, 0x5F, 0xB7, 0x7C, 0x7A, 0x04, 0x0F, 0xB5, 0x73, 0xFF, 0xCF, 0xEE, 0x2F, 0x84, 0x0B,
+ 0x00, 0xC0, 0xE8, 0x90, 0x48, 0xDA, 0x49, 0xAA, 0xC8, 0x71, 0xFD, 0xFF, 0xC6, 0x91, 0x3F, 0xB7, 0x74, 0x7F, 0x5F, 0xB7, 0xFC, 0x79, 0x83, 0x06, 0x75, 0x73, 0xFB, 0xFF, 0x14, 0x90,
+ 0x5F, 0xB7, 0xE4, 0x7E, 0x48, 0xDA, 0x4D, 0xAA, 0x44, 0x9D, 0x5F, 0xB5, 0x64, 0x79, 0x48, 0x70, 0xFF, 0xCF, 0xDE, 0x2F, 0xF9, 0xFF, 0x06, 0x91, 0x40, 0xC0, 0x92, 0x0D, 0x82, 0x09,
+ 0x54, 0xFF, 0x77, 0x99, 0x40, 0xC0, 0x92, 0x0D, 0x86, 0x09, 0x54, 0xFF, 0x72, 0x99, 0x02, 0xC0, 0xF2, 0x0D, 0x82, 0x09, 0x54, 0xFF, 0x6D, 0x99, 0x06, 0x08, 0x9F, 0xB7, 0xEE, 0x7A,
+ 0xBF, 0xB7, 0x6E, 0x7B, 0xDF, 0xB7, 0xEE, 0x7B, 0xFF, 0xB7, 0x6E, 0x7C, 0x04, 0xC0, 0x60, 0x8C, 0x22, 0x9C, 0x1D, 0xA6, 0x40, 0x84, 0x60, 0xB7, 0x0C, 0x5A, 0x00, 0xB7, 0x8C, 0x59,
+ 0x02, 0x85, 0x60, 0xB7, 0x9C, 0x6A, 0x60, 0xB9, 0x78, 0x40, 0x01, 0x02, 0x29, 0xF2, 0x07, 0xA1, 0xFF, 0xFF, 0xC1, 0x93, 0x10, 0xD0, 0x61, 0xAA, 0x73, 0xD0, 0x48, 0x29, 0x30, 0xE0,
+ 0xCD, 0xA8, 0x08, 0xF0, 0xE9, 0xA0, 0x10, 0xD0, 0x61, 0xAA, 0x40, 0xB7, 0x84, 0x59, 0x0E, 0xC0, 0x00, 0x2A, 0x26, 0xD2, 0x0D, 0x59, 0x3F, 0xC0, 0x7E, 0x0C, 0x00, 0xCC, 0x00, 0x0C,
+ 0x30, 0xE0, 0xCD, 0xA8, 0x11, 0xD0, 0x38, 0x0D, 0x40, 0xB7, 0x14, 0x6D, 0x60, 0xB9, 0x18, 0x40, 0x08, 0xF0, 0xED, 0xA0, 0x31, 0xF0, 0x45, 0xAA, 0x08, 0xD8, 0xC2, 0xA8, 0x2D, 0x9E,
+ 0x26, 0xD2, 0x08, 0x59, 0x38, 0xE0, 0xCD, 0xA8, 0x4C, 0x9E, 0xFE, 0xC3, 0x7C, 0x2A, 0x98, 0x30, 0xC1, 0xA0, 0x29, 0xF0, 0x45, 0xAA, 0x40, 0x9E, 0x40, 0x22, 0x98, 0x30, 0xC1, 0xA0,
+ 0xFF, 0xFF, 0x81, 0x91, 0x40, 0xB7, 0x84, 0x5A, 0x20, 0xB7, 0x94, 0x6E, 0x9C, 0x0D, 0x60, 0xB9, 0x08, 0x40, 0x31, 0xF0, 0xA5, 0xA8, 0x10, 0xD0, 0x61, 0xAA, 0x2D, 0x9E, 0xA6, 0xD0,
+ 0x08, 0x59, 0x90, 0x0D, 0x02, 0xC0, 0x70, 0x2A, 0x00, 0xC2, 0x09, 0x5A, 0x30, 0xE0, 0x4D, 0xA2, 0xFF, 0xFF, 0x41, 0x92, 0x00, 0xB7, 0x0C, 0x5A, 0x80, 0xB7, 0x2C, 0x41, 0x60, 0xB7,
+ 0x1C, 0x6B, 0x26, 0xD2, 0x08, 0x59, 0x30, 0xE0, 0xCD, 0xA8, 0x80, 0xC0, 0x05, 0x5B, 0x82, 0x71, 0x03, 0xC0, 0x48, 0x91, 0x81, 0x9E, 0xE0, 0xB7, 0x0C, 0x6C, 0x83, 0x07, 0x10, 0xF2,
+ 0x69, 0xAA, 0x60, 0xB7, 0x9C, 0x6B, 0x00, 0xC2, 0x08, 0x5A, 0x30, 0xD0, 0x68, 0x01, 0x30, 0xC0, 0x4E, 0xAB, 0x26, 0xD3, 0x08, 0x5D, 0x60, 0xB7, 0x9C, 0x5A, 0xC7, 0x9D, 0x70, 0xE0,
+ 0xA9, 0xAA, 0x30, 0xE0, 0x4D, 0xAA, 0x80, 0xC2, 0xC0, 0x59, 0x02, 0xC0, 0x80, 0x39, 0xCF, 0x9D, 0x62, 0xC0, 0xC0, 0x0D, 0xB8, 0x31, 0x5F, 0xB5, 0x7C, 0x7E, 0x54, 0xFF, 0xD4, 0x98,
+ 0x82, 0x0E, 0xA8, 0xD2, 0x08, 0x59, 0x40, 0x9D, 0x70, 0xE0, 0x05, 0xAA, 0x69, 0x9E, 0x48, 0x70, 0x5F, 0xB7, 0x7C, 0x7E, 0x11, 0xD0, 0xE2, 0x0A, 0x01, 0xC0, 0x68, 0x91, 0xC0, 0xB7,
+ 0x8C, 0x6C, 0x28, 0xD3, 0x8C, 0x5D, 0xDB, 0x9D, 0x30, 0xD0, 0x55, 0x05, 0x43, 0x9D, 0x60, 0xC0, 0x05, 0xAA, 0x71, 0x9E, 0x20, 0xE3, 0xB1, 0x83, 0x18, 0x02, 0x88, 0x5D, 0x60, 0xB7,
+ 0x9C, 0x59, 0x26, 0xD2, 0x08, 0x59, 0x30, 0xE0, 0xCD, 0xA9, 0x70, 0xC0, 0x80, 0x0D, 0x5F, 0xB5, 0xE4, 0x7E, 0x7F, 0xB5, 0xE4, 0x7F, 0x54, 0xFF, 0xA9, 0x98, 0x84, 0x0E, 0x5F, 0xB7,
+ 0xE4, 0x7E, 0x40, 0x9D, 0x70, 0xE0, 0x05, 0xAA, 0x69, 0x9E, 0x48, 0x70, 0x7F, 0xB7, 0xE4, 0x7F, 0xFE, 0xFF, 0xC6, 0x93, 0x20, 0xB7, 0x14, 0x5A, 0x80, 0xB7, 0x4D, 0x41, 0x60, 0xB7,
+ 0x1C, 0x6B, 0x26, 0xD2, 0x08, 0x59, 0x30, 0xE0, 0xCD, 0xA8, 0x0B, 0x03, 0x82, 0x71, 0xFC, 0xFF, 0xC6, 0x93, 0x9F, 0xB7, 0x6E, 0x7D, 0xBF, 0xB7, 0xEE, 0x7D, 0xDF, 0xB7, 0x6E, 0x7E,
+ 0xFF, 0xB7, 0xEE, 0x7E, 0x02, 0xC0, 0x40, 0x8C, 0x22, 0x9C, 0x1D, 0xA6, 0x40, 0x84, 0x20, 0xB7, 0x8C, 0x59, 0x02, 0x85, 0x00, 0xB7, 0x14, 0x5A, 0x60, 0xB9, 0x78, 0x40, 0x03, 0x02,
+ 0x29, 0xF2, 0x07, 0xA1, 0xFF, 0xFF, 0xC1, 0x93, 0x90, 0xF0, 0x7D, 0xAA, 0x72, 0xD1, 0xBC, 0x0C, 0x00, 0xC2, 0x39, 0x5A, 0x1C, 0x2A, 0x80, 0xB5, 0x4C, 0x40, 0x80, 0xB7, 0x49, 0x40,
+ 0x38, 0x2A, 0x00, 0xC2, 0x05, 0x5A, 0x80, 0xB5, 0xCC, 0x40, 0x20, 0xB7, 0x49, 0x40, 0x3F, 0xC0, 0xFE, 0x09, 0x00, 0xCC, 0x80, 0x09, 0x40, 0xB7, 0x84, 0x59, 0x06, 0xC0, 0xC0, 0x28,
+ 0x91, 0x58, 0x20, 0xB5, 0x4C, 0x41, 0x80, 0xB7, 0x4B, 0x40, 0x11, 0xD0, 0x38, 0x0D, 0x40, 0xB7, 0x94, 0x6D, 0x60, 0xB9, 0x08, 0x40, 0x38, 0xC0, 0x00, 0x2A, 0x00, 0xC2, 0x1D, 0x5A,
+ 0x80, 0xB5, 0xCC, 0x41, 0x31, 0xD8, 0x45, 0xAA, 0x08, 0xD8, 0xC2, 0xA8, 0x2D, 0x9E, 0x26, 0xD2, 0x08, 0x59, 0x38, 0xE0, 0xCD, 0xA8, 0x4C, 0x9E, 0xFE, 0xC3, 0x7C, 0x2A, 0x98, 0x30,
+ 0xC1, 0xA0, 0x29, 0xF0, 0x45, 0xAA, 0x46, 0x22, 0x98, 0x30, 0xC1, 0xA0, 0xFF, 0xFF, 0xA1, 0x91, 0x3F, 0xC0, 0xFE, 0x09, 0x00, 0xCC, 0x80, 0x09, 0x40, 0xB7, 0x84, 0x59, 0x91, 0xD0,
+ 0x30, 0x0D, 0x40, 0xB7, 0x14, 0x6E, 0x60, 0xB9, 0x68, 0x40, 0x31, 0xD8, 0x45, 0xAA, 0x08, 0xD8, 0xC2, 0xA8, 0x2D, 0x9E, 0x26, 0xD2, 0x08, 0x59, 0x38, 0xE0, 0xCD, 0xA8, 0x4C, 0x9E,
+ 0xFE, 0xC3, 0x7C, 0x2A, 0x98, 0x30, 0xC1, 0xA0, 0x29, 0xF0, 0x45, 0xAA, 0x46, 0x22, 0x98, 0x30, 0xC1, 0xA0, 0xFF, 0xFF, 0xA1, 0x91, 0x40, 0xB7, 0x84, 0x5A, 0x40, 0xB7, 0x8C, 0x6E,
+ 0x92, 0xD0, 0xB6, 0x0C, 0x60, 0xB9, 0x18, 0x40, 0x29, 0xF0, 0xC5, 0xA8, 0x80, 0xB7, 0x49, 0x40, 0x2D, 0x9E, 0xA6, 0xD0, 0x08, 0x59, 0x90, 0x0C, 0x02, 0xC0, 0x70, 0x2A, 0x00, 0xC2,
+ 0x09, 0x5A, 0x30, 0xE0, 0x4D, 0xA2, 0xFF, 0xFF, 0x41, 0x92, 0x20, 0xB7, 0x0C, 0x5A, 0x80, 0xB7, 0x2D, 0x40, 0x60, 0xB7, 0x1C, 0x6B, 0x26, 0xD2, 0x08, 0x59, 0x30, 0xE0, 0xCD, 0xA8,
+ 0x02, 0x0F, 0x74, 0x9E, 0x02, 0x71, 0x03, 0xC0, 0x68, 0x91, 0x20, 0xB7, 0x14, 0x5A, 0xE0, 0xB7, 0x0C, 0x6C, 0x83, 0x07, 0x10, 0xF2, 0x61, 0xAA, 0x6E, 0x9D, 0x00, 0xC2, 0x08, 0x5A,
+ 0x01, 0xC3, 0x30, 0x81, 0x60, 0xB7, 0x9C, 0x6B, 0x30, 0xC0, 0x4D, 0xAB, 0x26, 0xD3, 0x08, 0x59, 0x60, 0xB7, 0x9C, 0x5A, 0xC7, 0x9D, 0x70, 0xE0, 0xA9, 0xAA, 0x30, 0xE0, 0x4D, 0xAA,
+ 0x80, 0xC2, 0xC0, 0x59, 0x02, 0xC0, 0x80, 0x39, 0xCF, 0x9D, 0x42, 0xC0, 0xC0, 0x0D, 0xB8, 0x31, 0x5F, 0xB5, 0x7C, 0x7E, 0x34, 0xFF, 0xC9, 0x9B, 0x82, 0x0E, 0xA8, 0xD2, 0x08, 0x59,
+ 0x44, 0x9D, 0x70, 0xE0, 0x25, 0xAA, 0x69, 0x9E, 0x48, 0x70, 0x11, 0xD0, 0xE2, 0x0E, 0x5F, 0xB7, 0x7C, 0x7E, 0x01, 0xC0, 0x48, 0x91, 0xC0, 0xB7, 0x94, 0x6C, 0x28, 0xD3, 0x8C, 0x59,
+ 0x5B, 0x9D, 0x30, 0xD0, 0x55, 0x05, 0xC7, 0x9D, 0x60, 0xC0, 0x29, 0xAA, 0x20, 0xE3, 0xB1, 0x83, 0x68, 0x02, 0x88, 0x5D, 0x60, 0xB7, 0x9C, 0x59, 0x26, 0xD2, 0x08, 0x59, 0x30, 0xE0,
+ 0xCD, 0xA9, 0x50, 0xC0, 0x80, 0x0D, 0x5F, 0xB5, 0xE4, 0x7E, 0x7F, 0xB5, 0xE4, 0x7F, 0x34, 0xFF, 0x9F, 0x9B, 0x84, 0x0E, 0x5F, 0xB7, 0xE4, 0x7E, 0x44, 0x9D, 0x70, 0xE0, 0x25, 0xAA,
+ 0x69, 0x9E, 0x48, 0x70, 0x7F, 0xB7, 0xE4, 0x7F, 0xFE, 0xFF, 0xE6, 0x93, 0x20, 0xB7, 0x14, 0x5A, 0x80, 0xB7, 0x4D, 0x40, 0x60, 0xB7, 0x1C, 0x6B, 0x26, 0xD2, 0x08, 0x59, 0x30, 0xE0,
+ 0xCD, 0xA8, 0xAE, 0x9E, 0x42, 0x71, 0xFC, 0xFF, 0xC6, 0x93, 0x9F, 0xB7, 0x6E, 0x7D, 0xBF, 0xB7, 0xEE, 0x7D, 0xDF, 0xB7, 0x6E, 0x7E, 0xFF, 0xB7, 0xEE, 0x7E, 0x02, 0xC0, 0x40, 0x8C,
+ 0x22, 0x9C, 0x05, 0xA6, 0x0E, 0xC0, 0xFC, 0x29, 0xC2, 0x74, 0x0E, 0x85, 0x53, 0x9D, 0x57, 0x9D, 0x02, 0xD0, 0x46, 0x1A, 0x02, 0xD0, 0xD4, 0x1A, 0x80, 0xC2, 0xC0, 0x5A, 0x40, 0xC0,
+ 0xF2, 0x0D, 0x00, 0xC2, 0xC0, 0x59, 0x34, 0xFF, 0x67, 0x9B, 0x42, 0xC0, 0xB2, 0x0D, 0x8B, 0x01, 0x34, 0xFF, 0x62, 0x9B, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C,
+ 0x22, 0x9C, 0x0E, 0xC0, 0xFC, 0x2D, 0xC2, 0x76, 0x8E, 0x09, 0x02, 0xD0, 0xB6, 0x19, 0x60, 0xC0, 0xF2, 0x0D, 0xC0, 0x59, 0x3A, 0xFF, 0x20, 0x92, 0x0D, 0xA6, 0x5E, 0x9E, 0x82, 0x08,
+ 0xC8, 0xD2, 0xDD, 0xAA, 0x20, 0x5D, 0xC8, 0xD2, 0xCE, 0xAA, 0x48, 0xDA, 0x5D, 0xAA, 0x0E, 0xC0, 0xF0, 0x2A, 0x80, 0xC2, 0xB8, 0x5A, 0x02, 0xC0, 0xC0, 0x2E, 0x80, 0xC2, 0x91, 0x5E,
+ 0x46, 0x77, 0x3E, 0xC0, 0x40, 0x2A, 0x00, 0xC2, 0x10, 0x5A, 0xD8, 0x32, 0x54, 0x9E, 0x51, 0xB3, 0x24, 0x48, 0x80, 0xC0, 0x40, 0x59, 0x28, 0x31, 0x71, 0xD1, 0x66, 0x0A, 0x08, 0xD2,
+ 0x82, 0xA8, 0x48, 0xDA, 0xC9, 0xA8, 0xA2, 0xD0, 0x05, 0x5E, 0x3E, 0xC0, 0xC0, 0x28, 0x91, 0x58, 0xD2, 0x32, 0x11, 0xD0, 0xC2, 0x28, 0x84, 0x48, 0x80, 0xC0, 0x4C, 0x5A, 0x11, 0xD0,
+ 0x92, 0x2C, 0x26, 0x31, 0x28, 0x31, 0x84, 0x48, 0x80, 0xC0, 0xC8, 0x59, 0x40, 0xC0, 0xA2, 0x0D, 0xA6, 0x31, 0x34, 0xFF, 0x16, 0x9B, 0x40, 0xC0, 0xB2, 0x0D, 0x8B, 0x01, 0x34, 0xFF,
+ 0x11, 0x9B, 0x02, 0x85, 0x46, 0x77, 0xA6, 0xD2, 0x8C, 0x5D, 0xC0, 0x85, 0x5A, 0xE0, 0x46, 0x80, 0x00, 0xC0, 0x80, 0x92, 0x00, 0xC0, 0x20, 0x91, 0x00, 0xC0, 0xA0, 0x91, 0x00, 0xC0,
+ 0xC0, 0x91, 0x00, 0xC0, 0x40, 0x90, 0x06, 0x85, 0xB3, 0x9E, 0x4F, 0x9D, 0xF4, 0xFF, 0x83, 0x9B, 0x00, 0xC0, 0xA0, 0x90, 0xB3, 0x9E, 0xF4, 0xFF, 0x74, 0x9A, 0x88, 0xF2, 0xD9, 0xA9,
+ 0x40, 0xC0, 0xD2, 0x0D, 0x0F, 0xC0, 0xFE, 0x29, 0x34, 0xFF, 0xEE, 0x9A, 0x9F, 0xB7, 0xEE, 0x7E, 0xBF, 0xB7, 0x6E, 0x7F, 0xDF, 0xB7, 0xEE, 0x7F, 0x60, 0x8C, 0x22, 0x9C, 0x0D, 0xA6,
+ 0x5E, 0x9E, 0x08, 0xD2, 0xC2, 0xAA, 0x02, 0x09, 0x20, 0x5D, 0x08, 0xF2, 0x41, 0xAA, 0x8C, 0x2E, 0x46, 0x77, 0x08, 0xDA, 0xC5, 0xAA, 0x00, 0xC2, 0x99, 0x58, 0x52, 0xB3, 0x24, 0x48,
+ 0x08, 0xD2, 0x45, 0xAA, 0x3E, 0xC0, 0xC0, 0x2A, 0x80, 0xC2, 0xB0, 0x5A, 0xF0, 0xC3, 0x80, 0x28, 0xD2, 0x32, 0xF1, 0xD0, 0xCE, 0x28, 0xD2, 0x32, 0x51, 0x9E, 0x00, 0xC1, 0x40, 0x5A,
+ 0x42, 0x31, 0x60, 0xC0, 0xA2, 0x0D, 0xA6, 0x31, 0x34, 0xFF, 0xC1, 0x9A, 0x60, 0xC0, 0xB2, 0x0D, 0x8B, 0x01, 0x34, 0xFF, 0xBC, 0x9A, 0x02, 0x85, 0x46, 0x77, 0xA6, 0xD2, 0x8C, 0x5D,
+ 0xC0, 0x85, 0x5A, 0xE0, 0x46, 0x80, 0x00, 0xC0, 0x60, 0x92, 0x00, 0xC0, 0x20, 0x91, 0x00, 0xC0, 0x80, 0x91, 0x00, 0xC0, 0xA0, 0x91, 0x00, 0xC0, 0x40, 0x90, 0x06, 0x85, 0xCF, 0x9D,
+ 0xF4, 0xFF, 0x4D, 0x9B, 0x00, 0xC0, 0xA0, 0x90, 0xB3, 0x9E, 0xF4, 0xFF, 0x43, 0x99, 0x08, 0xD2, 0xCD, 0xA9, 0x0E, 0xC0, 0xF0, 0x29, 0x60, 0xC0, 0xD2, 0x0D, 0xA0, 0x59, 0x34, 0xFF,
+ 0x99, 0x9A, 0x9F, 0xB7, 0xEE, 0x7E, 0xBF, 0xB7, 0x6E, 0x7F, 0xDF, 0xB7, 0xEE, 0x7F, 0x60, 0x8C, 0x22, 0x9C, 0x71, 0xD1, 0x3A, 0x0E, 0x04, 0xC0, 0xF0, 0x0D, 0x10, 0xD0, 0xE2, 0xA8,
+ 0x08, 0xD2, 0x01, 0xA8, 0xD1, 0xD3, 0x10, 0x2E, 0x31, 0xD0, 0x98, 0x2C, 0x8C, 0x2C, 0x02, 0xC0, 0x7C, 0x28, 0x20, 0x58, 0x08, 0x30, 0x4C, 0x9E, 0x02, 0x30, 0x08, 0x30, 0x22, 0x9C,
+ 0x39, 0xF8, 0x85, 0xA2, 0xD0, 0xD0, 0xED, 0xA8, 0x9A, 0x9E, 0x10, 0xD0, 0x41, 0xAA, 0x02, 0xC0, 0xC0, 0x28, 0x91, 0x58, 0x0E, 0xC0, 0x70, 0x2A, 0x42, 0x32, 0x10, 0xD0, 0x41, 0xA2,
+ 0xD0, 0xD0, 0xFD, 0xA8, 0x10, 0xD8, 0x45, 0xAA, 0x3F, 0xC0, 0x7E, 0x08, 0x00, 0xCC, 0x00, 0x08, 0x0E, 0xC0, 0xF0, 0x28, 0xC0, 0xCF, 0x3C, 0x2A, 0x88, 0x58, 0x42, 0x32, 0x10, 0xD8,
+ 0x45, 0xA2, 0xFF, 0xCF, 0x42, 0x0A, 0xFE, 0xC3, 0x7C, 0x0A, 0x50, 0xD8, 0xFD, 0xA8, 0x5B, 0x9E, 0xA0, 0x9E, 0x10, 0xF0, 0xC2, 0xA8, 0x3E, 0xC0, 0xC0, 0x28, 0xA8, 0x58, 0x8D, 0x9E,
+ 0x90, 0x24, 0x9A, 0x34, 0x10, 0xF0, 0xC2, 0xA0, 0x50, 0xD8, 0x69, 0xAA, 0x10, 0xD0, 0xC5, 0xA8, 0x11, 0xD0, 0x28, 0x0D, 0x3E, 0xC0, 0x40, 0x2A, 0x0C, 0xC0, 0x80, 0x28, 0x00, 0xC2,
+ 0x11, 0x5A, 0x98, 0x30, 0x10, 0xD0, 0xC5, 0xA0, 0x90, 0xF0, 0x79, 0xAA, 0x10, 0xD0, 0xCD, 0xA8, 0x72, 0xD1, 0xBC, 0x0C, 0xC0, 0xCC, 0x00, 0x2A, 0x8C, 0x28, 0x00, 0xC2, 0x21, 0x5A,
+ 0x98, 0x30, 0x10, 0xD0, 0xCD, 0xA0, 0x20, 0xB7, 0x49, 0x40, 0x10, 0xD0, 0x41, 0xAA, 0xC1, 0xCF, 0x02, 0x0C, 0xFE, 0xC3, 0x7C, 0x0C, 0x06, 0xC0, 0xC0, 0x28, 0x0E, 0xC0, 0x0C, 0x2A,
+ 0x89, 0x58, 0x42, 0x32, 0x10, 0xD0, 0x41, 0xA2, 0x20, 0xB7, 0x4B, 0x40, 0x60, 0xB9, 0x18, 0x40, 0x7C, 0x2A, 0x38, 0xC0, 0x80, 0x28, 0x89, 0x58, 0x42, 0x32, 0x10, 0xD0, 0x41, 0xA2,
+ 0x08, 0xD8, 0xC1, 0xA8, 0x08, 0xD8, 0x61, 0xAA, 0x00, 0xCC, 0x80, 0x28, 0xFE, 0xC3, 0x7C, 0x2A, 0x98, 0x30, 0x08, 0xD8, 0xC1, 0xA0, 0x29, 0xF0, 0x65, 0xAA, 0x08, 0xF0, 0xC2, 0xA8,
+ 0x40, 0x22, 0xA5, 0x9E, 0x90, 0x24, 0x9A, 0x34, 0x29, 0xF0, 0xC6, 0xA0, 0xFF, 0xFF, 0x61, 0x91, 0x91, 0xD0, 0x36, 0x0D, 0x12, 0xD0, 0xAE, 0x0C, 0x60, 0xB9, 0x08, 0x40, 0x80, 0xB7,
+ 0x49, 0x40, 0x29, 0xD0, 0xD1, 0xA8, 0x0C, 0xC0, 0x0C, 0x2A, 0x02, 0xC0, 0xF0, 0x28, 0x42, 0x32, 0x31, 0xD0, 0x31, 0xA2, 0xFF, 0xFF, 0xA1, 0x92, 0xF8, 0xF9, 0x9D, 0xAA, 0x22, 0x9C,
+ 0x1D, 0xA6, 0x06, 0xC0, 0x02, 0x69, 0x5F, 0x9E, 0x24, 0xD1, 0x89, 0x5A, 0x82, 0x0D, 0x07, 0x03, 0x00, 0xC1, 0x1C, 0x5F, 0x14, 0xFF, 0xEB, 0x99, 0xA0, 0xB7, 0x8C, 0x44, 0x34, 0xC0,
+ 0xA0, 0x0A, 0x08, 0xF2, 0xA1, 0xA8, 0x80, 0xE0, 0xC1, 0x58, 0xCA, 0xCF, 0xE1, 0x0A, 0x00, 0xC0, 0x02, 0x91, 0x01, 0xC0, 0xB6, 0x0D, 0x10, 0xCB, 0xB0, 0x0D, 0xB4, 0xFF, 0x0F, 0x99,
+ 0x69, 0x9E, 0x34, 0xC0, 0x90, 0x0A, 0xE9, 0xF3, 0x3D, 0xA3, 0x0B, 0x02, 0x41, 0xC0, 0x84, 0x38, 0x08, 0xF2, 0x81, 0xA0, 0x74, 0x9E, 0x8B, 0x05, 0xF8, 0x01, 0x14, 0xFF, 0x79, 0x9A,
+ 0x9F, 0xB7, 0x6E, 0x7E, 0xBF, 0xB7, 0xEE, 0x7E, 0xDF, 0xB7, 0x6E, 0x7F, 0xFF, 0xB7, 0xEE, 0x7F, 0x02, 0xC0, 0x00, 0x8C, 0x22, 0x9C, 0x1D, 0xA6, 0x02, 0xC0, 0x20, 0x84, 0x07, 0x02,
+ 0xA5, 0x9E, 0x55, 0x9E, 0x6B, 0x9E, 0x9F, 0xB5, 0x6C, 0x7B, 0x91, 0xD1, 0xC0, 0x08, 0x3F, 0xB5, 0xEC, 0x7B, 0x82, 0x08, 0x3F, 0xB5, 0xEC, 0x7D, 0x7F, 0xB5, 0x74, 0x7C, 0x02, 0x0D,
+ 0x5F, 0xB5, 0xEC, 0x7C, 0x06, 0x09, 0x3F, 0xB5, 0x74, 0x7D, 0x0C, 0xC0, 0x00, 0x0A, 0x9F, 0xB5, 0xEC, 0x7E, 0xF4, 0xFF, 0xAC, 0x9B, 0x82, 0x0D, 0x14, 0xFF, 0x9E, 0x99, 0xFE, 0xC9,
+ 0xFD, 0x2A, 0xA2, 0x0D, 0x8B, 0x01, 0x00, 0xC4, 0x80, 0x39, 0x34, 0xFF, 0x85, 0x99, 0x8B, 0x05, 0xF4, 0xFF, 0xF3, 0x9A, 0x01, 0x03, 0x40, 0xC0, 0x82, 0x0D, 0x8D, 0x01, 0x34, 0xFF,
+ 0x7C, 0x99, 0x60, 0xC0, 0x82, 0x0D, 0x8D, 0x01, 0x34, 0xFF, 0x77, 0x99, 0x5F, 0xB7, 0x6C, 0x7D, 0x9F, 0xB7, 0xEC, 0x7C, 0x5F, 0xB7, 0x7C, 0x7D, 0x29, 0x61, 0x82, 0x0B, 0xF5, 0x71,
+ 0x5F, 0xB5, 0x6C, 0x7E, 0x04, 0xC0, 0xA8, 0x91, 0x1F, 0xB7, 0xF4, 0x7C, 0x3F, 0xB7, 0xEC, 0x7E, 0x02, 0x0F, 0x11, 0xD0, 0x72, 0x09, 0x80, 0x73, 0x5F, 0xB5, 0x6C, 0x7F, 0x83, 0x02,
+ 0x03, 0xC0, 0x08, 0x93, 0xE0, 0xB7, 0x94, 0x44, 0x34, 0xC0, 0xA0, 0x0F, 0x3F, 0xB7, 0xEC, 0x7D, 0x5F, 0xB7, 0x6C, 0x7E, 0xFC, 0xCF, 0x63, 0x0C, 0x11, 0xD0, 0x12, 0x2A, 0x84, 0x08,
+ 0x3F, 0xB5, 0xEC, 0x7D, 0x44, 0x70, 0x00, 0xC2, 0x88, 0x58, 0x01, 0xC2, 0x02, 0x81, 0x20, 0xE2, 0xA9, 0x80, 0xA0, 0xB7, 0x55, 0x40, 0x00, 0xC0, 0x28, 0x93, 0x3F, 0xB7, 0xEC, 0x7D,
+ 0x11, 0xD0, 0x12, 0x2A, 0x00, 0xC2, 0x88, 0x58, 0x01, 0xC2, 0x02, 0x81, 0x20, 0xE2, 0xA9, 0x80, 0x1F, 0xB7, 0x74, 0x7C, 0x60, 0xB7, 0x4D, 0x40, 0x3F, 0xB7, 0xF4, 0x7D, 0x06, 0x09,
+ 0x81, 0x05, 0x03, 0x05, 0xF4, 0xFF, 0x4A, 0x9B, 0x00, 0xC0, 0x20, 0x92, 0x82, 0x0D, 0x14, 0xFF, 0x3A, 0x99, 0x10, 0xF2, 0x61, 0xAA, 0x00, 0xE2, 0x41, 0x5A, 0x00, 0xC0, 0x02, 0x91,
+ 0x01, 0xC0, 0xB6, 0x0D, 0x10, 0xCB, 0xB0, 0x0D, 0xB4, 0xFF, 0x64, 0x98, 0x8B, 0x05, 0xF4, 0xFF, 0x8B, 0x9A, 0x0D, 0x02, 0x01, 0x03, 0x0C, 0x71, 0x00, 0xC0, 0x82, 0x91, 0x40, 0xC0,
+ 0x92, 0x0D, 0x82, 0x09, 0x34, 0xFF, 0x10, 0x99, 0x40, 0xC0, 0x82, 0x0D, 0x8D, 0x01, 0x34, 0xFF, 0x0B, 0x99, 0xC0, 0x75, 0x00, 0xC0, 0x62, 0x92, 0xAB, 0x9E, 0x73, 0x9E, 0x12, 0xD0,
+ 0x72, 0x19, 0xF4, 0xFF, 0x1E, 0x9A, 0x73, 0x9E, 0xBA, 0x9E, 0x8B, 0x05, 0xF4, 0xFF, 0xAE, 0x99, 0x8B, 0x05, 0x8B, 0x01, 0xF4, 0xFF, 0x7F, 0x9A, 0x00, 0xC0, 0x60, 0x91, 0x73, 0x9E,
+ 0x8B, 0x05, 0x02, 0x0D, 0xF4, 0xFF, 0xA3, 0x99, 0x8B, 0x05, 0x8B, 0x01, 0xF4, 0xFF, 0x74, 0x9A, 0x5F, 0xB7, 0xFC, 0x7C, 0x04, 0x0F, 0xB5, 0x73, 0xD0, 0x0A, 0xFC, 0xFF, 0x06, 0x92,
+ 0x3F, 0xB7, 0x6C, 0x7F, 0x5F, 0xB7, 0x6C, 0x7D, 0x83, 0x03, 0xC4, 0x71, 0xFB, 0xFF, 0xE6, 0x92, 0x40, 0xC0, 0x92, 0x0D, 0x82, 0x09, 0x34, 0xFF, 0xDA, 0x98, 0x40, 0xC0, 0x92, 0x0D,
+ 0x86, 0x09, 0x34, 0xFF, 0xD5, 0x98, 0x06, 0x08, 0x9F, 0xB7, 0xEE, 0x7B, 0xBF, 0xB7, 0x6E, 0x7C, 0xDF, 0xB7, 0xEE, 0x7C, 0xFF, 0xB7, 0x6E, 0x7D, 0x04, 0xC0, 0x20, 0x8C, 0x22, 0x9C,
+ 0x1D, 0xA6, 0x20, 0x84, 0x80, 0xB7, 0x8C, 0x49, 0x00, 0x75, 0x5E, 0x9E, 0x00, 0xC0, 0x04, 0x91, 0x80, 0xB7, 0x08, 0x44, 0x1C, 0xC0, 0x3E, 0x7D, 0x00, 0xC0, 0xA2, 0x90, 0x02, 0x08,
+ 0x03, 0xC0, 0xA0, 0x90, 0x52, 0x85, 0x08, 0xD2, 0x43, 0xA1, 0xC0, 0xB5, 0x8C, 0x49, 0x01, 0xC9, 0x80, 0x9C, 0x88, 0xF2, 0x49, 0xA2, 0xB3, 0x9E, 0x86, 0x09, 0xB4, 0xFF, 0x19, 0x99,
+ 0x82, 0x0D, 0x14, 0xFF, 0xB9, 0x98, 0x80, 0xB7, 0x8C, 0x4A, 0x48, 0xDA, 0xCD, 0xAB, 0x48, 0xDA, 0x4A, 0xAB, 0x9F, 0xB5, 0x6C, 0x7F, 0xA4, 0xD3, 0x90, 0x5A, 0x22, 0xD3, 0x90, 0x5E,
+ 0x08, 0xF2, 0xD2, 0xAB, 0x84, 0x1E, 0xA2, 0xD2, 0xB0, 0x5D, 0x84, 0x1A, 0x82, 0x0D, 0xBA, 0x31, 0x34, 0xFF, 0x92, 0x98, 0xA2, 0xD2, 0xB0, 0x5D, 0x92, 0x0D, 0xBA, 0x31, 0x34, 0xFF,
+ 0x8C, 0x98, 0xB2, 0x0D, 0x08, 0xF2, 0xD9, 0xA9, 0x34, 0xFF, 0x87, 0x98, 0xC2, 0x0D, 0x08, 0xF2, 0xDD, 0xA9, 0x34, 0xFF, 0x82, 0x98, 0x48, 0xF2, 0xCD, 0xA9, 0x02, 0xC0, 0xF2, 0x0D,
+ 0xED, 0x29, 0x34, 0xFF, 0x7B, 0x98, 0x02, 0xC0, 0xA2, 0x0D, 0x48, 0xF2, 0xC5, 0xA9, 0x34, 0xFF, 0x75, 0x98, 0x02, 0xC0, 0xB2, 0x0D, 0x48, 0xF2, 0xC9, 0xA9, 0x34, 0xFF, 0x6F, 0x98,
+ 0x02, 0xC0, 0xC2, 0x0D, 0x82, 0x09, 0x34, 0xFF, 0x6A, 0x98, 0x48, 0xF2, 0xD1, 0xA9, 0xC0, 0x74, 0x00, 0xC0, 0xC2, 0x90, 0x04, 0xC0, 0x82, 0x0D, 0x34, 0xFF, 0x61, 0x98, 0x08, 0xF2,
+ 0x4A, 0xA9, 0x9F, 0xB7, 0x6C, 0x7F, 0x72, 0x9E, 0xB9, 0x9E, 0x8F, 0x05, 0x89, 0x01, 0xF4, 0xFF, 0xAB, 0x9A, 0x0E, 0xC0, 0x7C, 0x28, 0x9F, 0xB7, 0xEE, 0x7D, 0xBF, 0xB7, 0x6E, 0x7E,
+ 0xDF, 0xB7, 0xEE, 0x7E, 0xFF, 0xB7, 0x6E, 0x7F, 0x02, 0xC0, 0x20, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x80, 0xB7, 0x8C, 0x49, 0x00, 0x75, 0x5D, 0x9E, 0x00, 0xC0, 0x44, 0x92, 0xA0, 0xB5,
+ 0x8C, 0x49, 0x01, 0xC9, 0x80, 0x9C, 0xAB, 0x9E, 0x88, 0xF2, 0x29, 0xA2, 0x86, 0x09, 0xB4, 0xFF, 0xA7, 0x98, 0xAB, 0x9E, 0x34, 0xFF, 0x20, 0x99, 0x06, 0x08, 0x00, 0xC0, 0x60, 0x90,
+ 0x02, 0x08, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x60, 0xB7, 0x14, 0x56, 0xA0, 0xB7, 0x8C, 0x55, 0x02, 0x85, 0x91, 0xD0, 0x3C, 0x0E,
+ 0x88, 0xD2, 0xBD, 0xA8, 0x08, 0xD2, 0x03, 0xA1, 0x91, 0xD0, 0x3E, 0x0E, 0x46, 0x74, 0x08, 0xD2, 0x03, 0xA1, 0x00, 0xC0, 0xA2, 0x90, 0xAA, 0x09, 0x54, 0xC0, 0x49, 0x9A, 0x88, 0xD2,
+ 0x31, 0xAA, 0x04, 0x75, 0x01, 0xC0, 0x44, 0x92, 0x08, 0xD2, 0x29, 0xAA, 0x00, 0x75, 0x01, 0xC0, 0x22, 0x91, 0x88, 0xD2, 0x35, 0xAA, 0x00, 0x75, 0x00, 0xC0, 0x84, 0x90, 0x14, 0xC0,
+ 0xA8, 0x9B, 0x88, 0xD2, 0x3D, 0xAA, 0x06, 0x75, 0x01, 0xC0, 0x64, 0x90, 0x88, 0xD2, 0x39, 0xAA, 0x00, 0x75, 0x82, 0x0C, 0x01, 0xD0, 0x92, 0x0C, 0x06, 0x75, 0x4C, 0x9E, 0x82, 0x08,
+ 0x01, 0xD0, 0x92, 0x08, 0x00, 0xE0, 0x42, 0x32, 0x00, 0xC0, 0x02, 0x91, 0x88, 0xD2, 0xB6, 0xA9, 0x34, 0xC0, 0x47, 0x98, 0x00, 0xC0, 0xC0, 0x91, 0x88, 0xD2, 0xB6, 0xA9, 0x34, 0xC0,
+ 0x99, 0x98, 0x00, 0xC0, 0x00, 0x91, 0x14, 0xC0, 0x62, 0x9A, 0x00, 0xC0, 0x80, 0x90, 0x34, 0xC0, 0xF9, 0x99, 0x14, 0xC0, 0x8A, 0x98, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F,
+ 0x40, 0x8C, 0x22, 0x9C, 0x20, 0xB7, 0x94, 0x55, 0xA2, 0xD1, 0x05, 0x5E, 0x11, 0xD0, 0xB2, 0x2C, 0x04, 0x2A, 0x20, 0xB5, 0x49, 0x43, 0x80, 0xB5, 0xC9, 0x42, 0xA2, 0xD1, 0x8D, 0x5C,
+ 0xA2, 0xD1, 0x11, 0x5E, 0x84, 0x28, 0x20, 0xB5, 0x49, 0x42, 0x04, 0x2A, 0x80, 0xB5, 0xC9, 0x41, 0xA2, 0xD1, 0x95, 0x5C, 0xA2, 0xD1, 0x19, 0x5E, 0x84, 0x28, 0x20, 0xB5, 0x49, 0x41,
+ 0x04, 0x2A, 0x80, 0xB5, 0xC9, 0x40, 0xA2, 0xD1, 0x9D, 0x5C, 0xA2, 0xD1, 0x21, 0x5E, 0x84, 0x28, 0x20, 0xB5, 0x49, 0x40, 0x04, 0x2A, 0x80, 0xB5, 0xC9, 0x46, 0xA2, 0xD1, 0xA5, 0x5C,
+ 0xA2, 0xD1, 0x2D, 0x5E, 0x8C, 0x28, 0x20, 0xB5, 0x49, 0x46, 0x04, 0x2A, 0x80, 0xB5, 0xC9, 0x45, 0xA2, 0xD1, 0xB1, 0x5C, 0xA2, 0xD1, 0x35, 0x5E, 0x84, 0x28, 0x20, 0xB5, 0x49, 0x45,
+ 0x04, 0x2A, 0x80, 0xB5, 0xC9, 0x44, 0xA2, 0xD1, 0xB9, 0x5C, 0xA2, 0xD1, 0x3D, 0x5E, 0x84, 0x28, 0x20, 0xB5, 0x49, 0x44, 0x04, 0x2A, 0x80, 0xB5, 0xC9, 0x43, 0xA2, 0xD1, 0xC1, 0x5C,
+ 0xA2, 0xD1, 0x4D, 0x5E, 0x9C, 0x28, 0x20, 0xB5, 0x49, 0x49, 0x04, 0x2A, 0x80, 0xB5, 0xC9, 0x48, 0xA2, 0xD1, 0xD1, 0x5C, 0xA2, 0xD1, 0x55, 0x5E, 0x84, 0x28, 0x20, 0xB5, 0x49, 0x48,
+ 0x04, 0x2A, 0x80, 0xB5, 0xC9, 0x47, 0xA2, 0xD1, 0xD9, 0x5C, 0xA2, 0xD1, 0x61, 0x5E, 0x8C, 0x28, 0x20, 0xB5, 0x49, 0x47, 0x04, 0x2A, 0x80, 0xB5, 0xC9, 0x49, 0xA2, 0xD1, 0xE5, 0x5C,
+ 0xA2, 0xD1, 0x09, 0x5E, 0x8C, 0x28, 0x20, 0xB5, 0x49, 0x4A, 0x04, 0x2A, 0x80, 0xB5, 0xC9, 0x4A, 0xA2, 0xD1, 0xED, 0x5C, 0xA2, 0xD1, 0x79, 0x5E, 0x60, 0xB5, 0xC9, 0x4C, 0xC1, 0x59,
+ 0x60, 0xB5, 0x49, 0x4D, 0xF5, 0x5D, 0x84, 0x2D, 0x60, 0xB5, 0x51, 0x4C, 0x8C, 0x28, 0x20, 0xB5, 0x49, 0x4B, 0x80, 0xB5, 0xC9, 0x4B, 0x22, 0x9C, 0x8D, 0xA6, 0x40, 0x84, 0x40, 0xB7,
+ 0x0C, 0x56, 0x88, 0xD0, 0xDE, 0xA8, 0xF1, 0xD3, 0x1E, 0x2E, 0x08, 0x75, 0x82, 0x08, 0x01, 0xD0, 0x92, 0x18, 0x08, 0xD0, 0xD9, 0xAA, 0x02, 0x0A, 0x9F, 0xB5, 0x6C, 0x7E, 0x7F, 0x0A,
+ 0x42, 0x42, 0xA9, 0x9D, 0x49, 0x9D, 0x40, 0xB7, 0x94, 0x55, 0x01, 0xC3, 0x94, 0x24, 0x1E, 0x9D, 0x82, 0x0B, 0xFF, 0xB5, 0x6C, 0x7F, 0x05, 0x07, 0x48, 0x75, 0x84, 0x28, 0x01, 0xC3,
+ 0x96, 0x30, 0x90, 0xD0, 0xD9, 0xA0, 0x00, 0xC0, 0x84, 0x90, 0x00, 0xD0, 0xDD, 0xAA, 0x90, 0xD2, 0x5D, 0xAA, 0x04, 0x75, 0x00, 0xC0, 0x24, 0x93, 0x11, 0xD0, 0x12, 0x1A, 0x0E, 0xC0,
+ 0x7C, 0x2A, 0x02, 0x75, 0x00, 0xC0, 0x52, 0x92, 0xF1, 0xD3, 0x1E, 0x2A, 0x02, 0x75, 0x82, 0x0A, 0x00, 0xC0, 0x44, 0x91, 0x91, 0xF0, 0x24, 0x86, 0x08, 0xD2, 0x81, 0xA8, 0x42, 0x74,
+ 0x00, 0xC0, 0x64, 0x90, 0x8E, 0x0A, 0x00, 0xD0, 0xD9, 0xA2, 0x40, 0x75, 0x02, 0x0A, 0x01, 0xD0, 0x42, 0x0A, 0x46, 0x75, 0x82, 0x08, 0x01, 0xD0, 0x92, 0x08, 0x00, 0xE0, 0x42, 0x32,
+ 0x10, 0xD2, 0xDA, 0xA8, 0x82, 0x08, 0x01, 0xD0, 0x92, 0x08, 0x42, 0x76, 0x3F, 0xB5, 0xEC, 0x7E, 0x00, 0xC0, 0x04, 0x92, 0x60, 0xB7, 0x04, 0x72, 0x80, 0xD0, 0x5B, 0xA9, 0x80, 0xB7,
+ 0x8C, 0x72, 0x3D, 0x9E, 0x47, 0x9D, 0x30, 0xC0, 0x4D, 0xAB, 0x40, 0xC0, 0xA6, 0xAA, 0x00, 0xC0, 0x80, 0x90, 0x02, 0x0B, 0x82, 0x0E, 0x90, 0xD2, 0x59, 0xAA, 0x04, 0x75, 0x01, 0xC0,
+ 0xA4, 0x92, 0x40, 0xB7, 0x1C, 0x73, 0x00, 0xD0, 0xCA, 0xA8, 0x60, 0xB7, 0x84, 0x73, 0xCB, 0x9D, 0x20, 0xC0, 0x29, 0xAA, 0xEC, 0x9D, 0x20, 0xB7, 0x8C, 0x71, 0x30, 0xC0, 0xAA, 0xA8,
+ 0x04, 0x1A, 0x26, 0xD2, 0x04, 0x59, 0x90, 0xD2, 0x5D, 0xAA, 0x4B, 0x9D, 0x10, 0xC8, 0xC5, 0xA8, 0x06, 0x75, 0x4C, 0x9E, 0x43, 0x62, 0x9F, 0xB5, 0x6C, 0x7F, 0x00, 0xC0, 0x04, 0x93,
+ 0x80, 0xD0, 0x4B, 0xA9, 0x01, 0xC3, 0x45, 0x62, 0x00, 0xC2, 0x21, 0x5A, 0x0E, 0xC0, 0x7C, 0x2A, 0x10, 0xE3, 0xA1, 0x88, 0x9F, 0xB5, 0x6C, 0x7E, 0x84, 0x18, 0xF1, 0xD3, 0x9E, 0x2B,
+ 0x27, 0xBA, 0x00, 0x40, 0x3F, 0x75, 0x02, 0x85, 0x72, 0xB3, 0x7A, 0x44, 0x5F, 0x9D, 0x60, 0xB7, 0x04, 0x55, 0x00, 0xD0, 0x59, 0xA9, 0x00, 0xD0, 0x42, 0xA9, 0x91, 0xE0, 0xAC, 0x86,
+ 0x00, 0xD0, 0xC5, 0xA9, 0x80, 0xB7, 0x29, 0x40, 0x91, 0xE0, 0xAE, 0x86, 0x00, 0xD0, 0xCA, 0xA9, 0x20, 0xB7, 0x31, 0x40, 0x30, 0x5D, 0x2E, 0x9D, 0x00, 0xD0, 0x4E, 0xA8, 0xCC, 0x5C,
+ 0x1A, 0x9D, 0x00, 0xD0, 0xDD, 0xA8, 0x40, 0x59, 0x94, 0x5D, 0x08, 0x5C, 0x00, 0xC2, 0x68, 0x5A, 0x01, 0xC2, 0x00, 0x3A, 0xB4, 0x58, 0x01, 0xC3, 0x44, 0x32, 0x44, 0x32, 0x42, 0x32,
+ 0x01, 0xC3, 0x46, 0x32, 0x59, 0x9E, 0x42, 0x9E, 0x5A, 0x9D, 0x3D, 0x9E, 0x40, 0xD0, 0x55, 0xA8, 0xA8, 0x59, 0x46, 0x32, 0x42, 0x32, 0x44, 0x32, 0x00, 0xC3, 0x84, 0x58, 0x42, 0x32,
+ 0x01, 0xC3, 0x44, 0x32, 0x02, 0x85, 0x02, 0x74, 0x00, 0xF0, 0x61, 0xA2, 0x00, 0xF0, 0x67, 0xA1, 0x00, 0xC0, 0xC4, 0x90, 0x40, 0xD0, 0x5D, 0xAA, 0x00, 0xC0, 0x80, 0x90, 0x80, 0xD0,
+ 0x41, 0xAA, 0x00, 0xC2, 0x60, 0x5A, 0x00, 0xF0, 0x65, 0xA2, 0x02, 0x85, 0x40, 0xD0, 0xC1, 0xA8, 0x18, 0xF0, 0x73, 0xA1, 0x80, 0xD0, 0x49, 0xAA, 0x80, 0xD0, 0xD2, 0xA8, 0x50, 0x74,
+ 0x80, 0xD0, 0x55, 0xA9, 0x80, 0xD0, 0xCD, 0xA8, 0x82, 0x09, 0x09, 0xD0, 0xB2, 0x09, 0x00, 0xD0, 0x4E, 0xA9, 0x00, 0xC2, 0x58, 0x5A, 0xD0, 0x5C, 0xD4, 0x58, 0x42, 0x32, 0x49, 0x9E,
+ 0x40, 0xD0, 0xC6, 0xA9, 0x48, 0x59, 0x20, 0x5D, 0x42, 0x32, 0x44, 0x32, 0x5F, 0xB7, 0xEC, 0x7E, 0x26, 0x35, 0x90, 0x59, 0x6E, 0xA1, 0x00, 0xC1, 0xC4, 0x58, 0x42, 0x32, 0x69, 0xA2,
+ 0x40, 0xD0, 0xCD, 0xA8, 0x65, 0xAA, 0xC0, 0xD0, 0xCA, 0xA8, 0x40, 0xD0, 0x51, 0xA9, 0x80, 0xD0, 0x46, 0xA9, 0x40, 0xD0, 0xD6, 0xA9, 0xD4, 0x5C, 0x1A, 0x9D, 0x40, 0xD0, 0x5A, 0xA8,
+ 0xBC, 0x58, 0x42, 0x32, 0x20, 0x5D, 0x51, 0x9E, 0x00, 0xD0, 0x51, 0xA8, 0x34, 0x59, 0x98, 0x5D, 0x14, 0x5C, 0x08, 0x58, 0x01, 0xC3, 0x44, 0x32, 0x44, 0x32, 0x42, 0x32, 0x5A, 0x9E,
+ 0x0A, 0x9D, 0x00, 0xD0, 0xD5, 0xA8, 0x44, 0x32, 0x01, 0xC3, 0x44, 0x32, 0xB8, 0x31, 0x40, 0xD0, 0x45, 0xAA, 0xB0, 0x31, 0xB2, 0x31, 0x67, 0x9D, 0x82, 0x0F, 0x42, 0x75, 0x00, 0xC2,
+ 0x40, 0x5A, 0xB8, 0x31, 0xE5, 0xA1, 0x00, 0xC0, 0xE4, 0x90, 0x90, 0xD2, 0x5D, 0xAA, 0x04, 0x75, 0x00, 0xC0, 0x64, 0x90, 0x86, 0x0F, 0x90, 0xD2, 0x59, 0xA8, 0x20, 0xB7, 0x2D, 0x42,
+ 0xA2, 0xD3, 0x40, 0x5E, 0xF2, 0xD3, 0x0E, 0x28, 0x06, 0x76, 0x98, 0x30, 0x18, 0xF0, 0xF1, 0xA0, 0x02, 0xD0, 0x06, 0x2A, 0x12, 0xD0, 0x98, 0x30, 0x02, 0x85, 0x18, 0xF0, 0xF1, 0xA0,
+ 0x04, 0x76, 0x82, 0x0A, 0x18, 0xF0, 0x77, 0xA1, 0x00, 0xC0, 0x02, 0x91, 0x00, 0xD0, 0x4D, 0xAA, 0x00, 0x75, 0x82, 0x0A, 0x02, 0xD0, 0xD2, 0x0A, 0xC0, 0xD0, 0xCE, 0xA9, 0x00, 0xD0,
+ 0xDA, 0xA8, 0xA2, 0xD2, 0x40, 0x5E, 0x00, 0xD0, 0x5D, 0xA9, 0x00, 0xC3, 0xBC, 0x58, 0x42, 0x32, 0x94, 0x5C, 0x49, 0x9E, 0xC0, 0x76, 0x0C, 0x59, 0x42, 0x32, 0x44, 0x32, 0x40, 0xD0,
+ 0x4D, 0xA9, 0x80, 0xC2, 0xB8, 0x58, 0x89, 0x9E, 0x02, 0x0D, 0x01, 0xD0, 0x22, 0x0D, 0x40, 0xD0, 0xC5, 0xA8, 0x89, 0x01, 0x00, 0xC6, 0x80, 0x39, 0x00, 0xC4, 0x00, 0x3A, 0x34, 0xB3,
+ 0x22, 0x44, 0x06, 0x76, 0x34, 0x5D, 0x22, 0x35, 0x20, 0x59, 0x93, 0x9E, 0x00, 0xD0, 0xCA, 0xA8, 0xA0, 0x58, 0x42, 0x32, 0x18, 0xF0, 0x79, 0xA2, 0x89, 0x00, 0x26, 0x35, 0x8C, 0x5C,
+ 0x22, 0x35, 0x18, 0xF0, 0x76, 0xA1, 0x02, 0xD0, 0x06, 0x2A, 0x12, 0xD0, 0x98, 0x30, 0x18, 0xF0, 0xF9, 0xA0, 0x3F, 0xB7, 0x68, 0x78, 0x27, 0xBA, 0x00, 0x40, 0x00, 0xC2, 0x20, 0x5A,
+ 0x09, 0xBA, 0x00, 0x40, 0x42, 0x32, 0x18, 0xF0, 0x7D, 0xA2, 0x9F, 0xB7, 0x6C, 0x7F, 0x58, 0xF0, 0x61, 0xA2, 0x80, 0xD0, 0xD2, 0xA8, 0x80, 0xD0, 0x49, 0xAA, 0x80, 0xD0, 0xCD, 0xA8,
+ 0x94, 0x5C, 0x1A, 0x9D, 0x80, 0xD0, 0x55, 0xA9, 0x00, 0xC2, 0x1C, 0x5A, 0x98, 0x58, 0x42, 0x32, 0x0C, 0x59, 0x01, 0xC3, 0x44, 0x32, 0x44, 0x32, 0x5F, 0xB7, 0xEC, 0x7E, 0x00, 0xC1,
+ 0x88, 0x58, 0x42, 0x32, 0x58, 0xF0, 0x65, 0xA2, 0xBF, 0xB7, 0xEE, 0x7D, 0xDF, 0xB7, 0x6E, 0x7E, 0xFF, 0xB7, 0xEE, 0x7E, 0x02, 0xC0, 0x20, 0x8C, 0x22, 0x9C, 0x0D, 0xA6, 0xE2, 0x0D,
+ 0x14, 0xFF, 0x00, 0x98, 0x02, 0x74, 0x00, 0xC0, 0x04, 0x91, 0xE2, 0x0D, 0xF4, 0xFE, 0xF4, 0x9B, 0xA2, 0x0D, 0xF4, 0xFE, 0xF1, 0x9B, 0x60, 0xB7, 0x14, 0x5B, 0xA0, 0xB7, 0x14, 0x56,
+ 0x34, 0xC0, 0xBB, 0x98, 0x40, 0xB7, 0x04, 0x5D, 0xC0, 0xB7, 0x8C, 0x55, 0x90, 0xD2, 0x3D, 0xA0, 0x90, 0xD2, 0x3F, 0xA9, 0x6D, 0x9E, 0x08, 0xD2, 0x4D, 0xAA, 0x2D, 0x9E, 0xB6, 0x9E,
+ 0x30, 0xC0, 0xCD, 0xA8, 0x00, 0x75, 0x90, 0xD2, 0xBD, 0xA0, 0x00, 0xC0, 0xA2, 0x90, 0xA2, 0x0D, 0xF4, 0xFE, 0xD4, 0x9B, 0x34, 0xC0, 0xDE, 0x98, 0x90, 0xD2, 0x3D, 0xAA, 0x08, 0x75,
+ 0x07, 0xC0, 0xA2, 0x91, 0x86, 0x0D, 0xF4, 0xFE, 0xCA, 0x9B, 0x08, 0xD2, 0x49, 0xAA, 0x00, 0x75, 0x00, 0xC0, 0xA2, 0x90, 0x86, 0x0D, 0xF4, 0xFE, 0xC2, 0x9B, 0x08, 0xD2, 0x51, 0xAA,
+ 0x00, 0x75, 0x00, 0xC0, 0xA2, 0x90, 0x86, 0x0D, 0xF4, 0xFE, 0xBA, 0x9B, 0x90, 0xD2, 0x3D, 0xAA, 0x04, 0x75, 0x00, 0xC0, 0x04, 0x91, 0x60, 0xB7, 0x94, 0x5B, 0x34, 0xC0, 0x81, 0x98,
+ 0x10, 0xD2, 0x29, 0xA0, 0x34, 0xC0, 0x39, 0x99, 0x08, 0xD2, 0x41, 0xAA, 0x02, 0x75, 0x00, 0xC0, 0xA4, 0x90, 0x8A, 0x0D, 0xF4, 0xFE, 0xA5, 0x9B, 0x90, 0xD2, 0x3D, 0xAA, 0x04, 0x1A,
+ 0x0E, 0xC0, 0x7C, 0x2A, 0x02, 0x75, 0x04, 0xC0, 0x72, 0x91, 0x48, 0xD2, 0x4D, 0xAA, 0x02, 0x75, 0x00, 0xC0, 0x44, 0x91, 0x60, 0xB7, 0x14, 0x5C, 0x34, 0xC0, 0x64, 0x98, 0x90, 0xD2,
+ 0x35, 0xA0, 0x00, 0xC0, 0xA0, 0x90, 0x02, 0x85, 0x90, 0xD2, 0x37, 0xA1, 0x88, 0xD2, 0x3D, 0xAA, 0x02, 0x75, 0x01, 0xC0, 0x84, 0x90, 0x34, 0xC0, 0x79, 0x99, 0x08, 0xD2, 0x39, 0xAA,
+ 0x08, 0x75, 0x00, 0xC0, 0x44, 0x91, 0x34, 0xC0, 0xA4, 0x99, 0x9A, 0x0D, 0xF4, 0xFE, 0x7C, 0x9B, 0x9A, 0x0D, 0xF4, 0xFE, 0x79, 0x9B, 0x08, 0xD2, 0x39, 0xAA, 0x06, 0x75, 0x00, 0xC0,
+ 0x42, 0x91, 0x08, 0xF2, 0x25, 0xAA, 0xFF, 0xCF, 0x7C, 0x2A, 0x61, 0xC0, 0x08, 0x75, 0x00, 0xC0, 0xA4, 0x92, 0x82, 0x0D, 0x8A, 0x09, 0x34, 0xC0, 0x9F, 0x9A, 0x00, 0xC0, 0xE0, 0x91,
+ 0x86, 0x0D, 0xF4, 0xFE, 0x63, 0x9B, 0x00, 0x74, 0x02, 0x0A, 0x01, 0xD0, 0x42, 0x0A, 0x86, 0x0D, 0x82, 0x09, 0x08, 0xD2, 0x39, 0xA2, 0x34, 0xC0, 0x90, 0x9A, 0x8A, 0x0D, 0x86, 0x09,
+ 0x34, 0xC0, 0x8C, 0x9A, 0x8A, 0x0D, 0xF4, 0xFE, 0x52, 0x9B, 0xC8, 0xD2, 0x39, 0xA0, 0x8A, 0x0D, 0xF4, 0xFE, 0x4D, 0x9B, 0x50, 0xD2, 0x51, 0xAA, 0x00, 0x75, 0xC8, 0xD2, 0x31, 0xA0,
+ 0x00, 0xC0, 0x82, 0x90, 0x34, 0xC0, 0x8E, 0x99, 0x34, 0xC0, 0x1E, 0x9A, 0x60, 0xB7, 0x94, 0x5C, 0x34, 0xC0, 0x0E, 0x98, 0x88, 0xD2, 0x3D, 0xAA, 0x02, 0x75, 0x08, 0xD2, 0x31, 0xA0,
+ 0x00, 0xC0, 0xC4, 0x90, 0x08, 0xD2, 0x35, 0xA0, 0x00, 0xC0, 0xA0, 0x90, 0x02, 0x85, 0x08, 0xD2, 0x37, 0xA1, 0x86, 0x0D, 0xF4, 0xFE, 0x2D, 0x9B, 0x48, 0xD2, 0x25, 0xAA, 0x10, 0x75,
+ 0x91, 0xD0, 0xD8, 0x08, 0x00, 0xB5, 0x29, 0x40, 0x00, 0xC0, 0xB4, 0x91, 0x90, 0xD2, 0xCD, 0xA8, 0x40, 0x74, 0x02, 0x0A, 0x02, 0xD0, 0x42, 0x1A, 0x08, 0x2A, 0x08, 0xD2, 0x2D, 0xA2,
+ 0x01, 0xC0, 0x20, 0x93, 0x02, 0x85, 0x08, 0xD2, 0x2F, 0xA1, 0x01, 0xC0, 0x80, 0x92, 0xA0, 0xB7, 0x8C, 0x5C, 0x96, 0x0D, 0x86, 0x09, 0x34, 0xC0, 0x45, 0x9A, 0x34, 0xC0, 0x06, 0x9A,
+ 0xAB, 0x9E, 0x14, 0xC0, 0xD9, 0x9B, 0xAB, 0x9E, 0x10, 0xD2, 0x31, 0xA0, 0x14, 0xC0, 0xD4, 0x9B, 0x10, 0xD2, 0x35, 0xA0, 0x86, 0x0D, 0xF4, 0xFE, 0xFF, 0x9A, 0x08, 0xD2, 0x49, 0xAA,
+ 0x91, 0xD0, 0xD8, 0x0C, 0x00, 0x75, 0x00, 0xB5, 0x29, 0x40, 0x00, 0xC0, 0xE2, 0x90, 0xD0, 0xD2, 0x25, 0xAA, 0x00, 0x75, 0x00, 0xC0, 0x24, 0x92, 0x90, 0xD2, 0xBD, 0xA8, 0x46, 0x74,
+ 0x00, 0xC0, 0x42, 0x91, 0x40, 0x74, 0x00, 0xC0, 0x24, 0x91, 0x48, 0xD2, 0x51, 0xAA, 0x00, 0x75, 0x00, 0xC0, 0x82, 0x90, 0x34, 0xC0, 0x2C, 0x99, 0x9F, 0xB7, 0xEE, 0x7E, 0xBF, 0xB7,
+ 0x6E, 0x7F, 0xDF, 0xB7, 0xEE, 0x7F, 0x60, 0x8C, 0x22, 0x9C, 0x0D, 0xA6, 0xE2, 0x0D, 0xF4, 0xFE, 0xDC, 0x9A, 0x02, 0x74, 0x02, 0x0B, 0x00, 0xC0, 0x04, 0x91, 0xE2, 0x0D, 0xF4, 0xFE,
+ 0xCF, 0x9A, 0xA2, 0x0D, 0xF4, 0xFE, 0xCC, 0x9A, 0x60, 0xB7, 0x94, 0x5D, 0x14, 0xC0, 0x98, 0x9B, 0x20, 0xB7, 0x0C, 0x56, 0x40, 0xB7, 0x04, 0x5E, 0x00, 0xB5, 0xA9, 0x4C, 0x40, 0xB7,
+ 0xB9, 0x4C, 0x2D, 0x9E, 0x30, 0xC0, 0x4D, 0xAA, 0xF2, 0xF3, 0xCE, 0x28, 0x83, 0x02, 0x80, 0xB5, 0xA9, 0x4C, 0x00, 0xC0, 0xC4, 0x90, 0xF4, 0xFF, 0xB8, 0x9A, 0x04, 0xC0, 0x20, 0x91,
+ 0x44, 0x76, 0x00, 0xC0, 0x04, 0x93, 0x60, 0xB7, 0x14, 0x5B, 0x14, 0xC0, 0x7B, 0x9B, 0x40, 0xB7, 0x04, 0x5D, 0x88, 0xD2, 0x3D, 0xA0, 0x88, 0xD2, 0x3F, 0xA9, 0x2D, 0x9E, 0x30, 0xC0,
+ 0xCD, 0xA8, 0xF1, 0xD3, 0x1E, 0x2A, 0x08, 0x75, 0x88, 0xD2, 0xBD, 0xA0, 0x03, 0xC0, 0x42, 0x92, 0x00, 0xC0, 0x00, 0x93, 0x46, 0x76, 0x00, 0xC0, 0xA4, 0x92, 0x8E, 0x0D, 0xF4, 0xFE,
+ 0x93, 0x9A, 0x40, 0xB7, 0x1C, 0x6F, 0x40, 0xB7, 0x84, 0x6F, 0xF1, 0xD3, 0x0E, 0x2B, 0x47, 0x9D, 0x48, 0x9D, 0x10, 0xC2, 0x45, 0xAA, 0x20, 0xC2, 0xC5, 0xA8, 0x88, 0xD2, 0x3D, 0xA2,
+ 0xC8, 0xD2, 0xA1, 0xA0, 0xA0, 0xB7, 0x94, 0x55, 0x10, 0xD2, 0x2D, 0xAA, 0x00, 0x75, 0x00, 0xC0, 0xA2, 0x90, 0xA2, 0x0D, 0xF4, 0xFE, 0x79, 0x9A, 0x14, 0xC0, 0x83, 0x9B, 0x86, 0x0D,
+ 0xF4, 0xFE, 0x74, 0x9A, 0x86, 0x0D, 0xF4, 0xFE, 0x71, 0x9A, 0xC8, 0xD2, 0x25, 0xAA, 0x06, 0x75, 0x01, 0xC0, 0xE4, 0x90, 0x50, 0xD2, 0xA2, 0xA8, 0x40, 0x76, 0x82, 0x08, 0x02, 0xD0,
+ 0x92, 0x08, 0x86, 0x75, 0x02, 0x0A, 0x0A, 0xD0, 0x42, 0x0A, 0x48, 0x78, 0x00, 0xC0, 0x42, 0x91, 0x60, 0xB7, 0x14, 0x70, 0x14, 0xC0, 0x2B, 0x9B, 0x88, 0xD2, 0x29, 0xA0, 0x00, 0xC0,
+ 0xE0, 0x90, 0x40, 0x76, 0x00, 0xC0, 0x84, 0x90, 0x88, 0xD2, 0xAA, 0xA0, 0x11, 0xD0, 0x68, 0x1A, 0x06, 0x75, 0x00, 0xC0, 0x12, 0x91, 0x60, 0xB7, 0x94, 0x5B, 0x14, 0xC0, 0x19, 0x9B,
+ 0x08, 0xD2, 0x29, 0xA0, 0xC8, 0xD2, 0x25, 0xAA, 0x04, 0x75, 0x00, 0xC0, 0x24, 0x93, 0x88, 0xD2, 0x3D, 0xAA, 0x00, 0x75, 0x82, 0x0C, 0x01, 0xD0, 0x92, 0x0C, 0x06, 0x75, 0x4C, 0x9E,
+ 0x82, 0x08, 0x01, 0xD0, 0x92, 0x08, 0x00, 0xE0, 0x42, 0x32, 0x00, 0xC0, 0xE2, 0x90, 0x82, 0x0D, 0x14, 0xC0, 0x0F, 0x98, 0x00, 0xC0, 0xA0, 0x90, 0x82, 0x0D, 0x14, 0xC0, 0x62, 0x98,
+ 0x9F, 0xB7, 0xEE, 0x7E, 0xBF, 0xB7, 0x6E, 0x7F, 0xDF, 0xB7, 0xEE, 0x7F, 0x60, 0x8C, 0x22, 0x9C, 0x0D, 0xA6, 0xA0, 0xB7, 0x14, 0x56, 0xD0, 0xD2, 0x25, 0xAA, 0x06, 0x75, 0x82, 0x08,
+ 0x01, 0xD0, 0x92, 0x08, 0x1C, 0xC0, 0xFE, 0x7E, 0x02, 0x0A, 0x02, 0xD0, 0x42, 0x0A, 0x48, 0x78, 0x00, 0xC0, 0x82, 0x91, 0xD0, 0xD2, 0x21, 0xAA, 0xE2, 0x0D, 0x90, 0xD2, 0x3D, 0xA2,
+ 0xF4, 0xFE, 0x0B, 0x9A, 0xA2, 0x0D, 0xF4, 0xFE, 0x08, 0x9A, 0xC0, 0xB7, 0x8C, 0x55, 0x14, 0xC0, 0x90, 0x9B, 0x08, 0xD2, 0x41, 0xAA, 0x00, 0x75, 0x00, 0xC0, 0xA2, 0x90, 0x8A, 0x0D,
+ 0xF4, 0xFE, 0xFC, 0x99, 0xD0, 0xD2, 0x25, 0xAA, 0x04, 0x75, 0x00, 0xC0, 0xC4, 0x90, 0x8E, 0x0D, 0x82, 0x09, 0x34, 0xC0, 0x2A, 0x99, 0xA0, 0xB7, 0x8C, 0x5C, 0x96, 0x0D, 0x86, 0x09,
+ 0x34, 0xC0, 0x24, 0x99, 0x34, 0xC0, 0xE5, 0x98, 0xAB, 0x9E, 0x14, 0xC0, 0xB8, 0x9A, 0xAB, 0x9E, 0x10, 0xD2, 0x31, 0xA0, 0x14, 0xC0, 0xB3, 0x9A, 0x10, 0xD2, 0x35, 0xA0, 0x86, 0x0D,
+ 0xF4, 0xFE, 0xDE, 0x99, 0x48, 0xD2, 0x51, 0xAA, 0x91, 0xD0, 0xD8, 0x0C, 0x00, 0x75, 0x00, 0xB5, 0x29, 0x40, 0x00, 0xC0, 0x82, 0x90, 0x34, 0xC0, 0x1D, 0x98, 0x9F, 0xB7, 0xEE, 0x7E,
+ 0xBF, 0xB7, 0x6E, 0x7F, 0xDF, 0xB7, 0xEE, 0x7F, 0x60, 0x8C, 0x22, 0x9C, 0x0D, 0xA6, 0x20, 0xB7, 0x14, 0x56, 0x80, 0xB7, 0xC9, 0x4C, 0x06, 0x75, 0x82, 0x08, 0x01, 0xD0, 0x92, 0x08,
+ 0x1C, 0xC0, 0xFE, 0x7E, 0x02, 0x0A, 0x02, 0xD0, 0x42, 0x0A, 0x48, 0x78, 0x83, 0x06, 0x00, 0xC0, 0x82, 0x91, 0xD0, 0xD2, 0x21, 0xAA, 0xE2, 0x0D, 0x90, 0xD2, 0x3D, 0xA2, 0xF4, 0xFE,
+ 0xB2, 0x99, 0xA2, 0x0D, 0xF4, 0xFE, 0xAF, 0x99, 0x14, 0xC0, 0x39, 0x9B, 0x20, 0xB7, 0x8C, 0x55, 0x80, 0xB7, 0x29, 0x40, 0x00, 0x75, 0x03, 0x03, 0x00, 0xC0, 0xA2, 0x90, 0x8A, 0x0D,
+ 0xF4, 0xFE, 0xA2, 0x99, 0x90, 0xD2, 0x3D, 0xAA, 0x04, 0x75, 0x00, 0xC0, 0xA4, 0x91, 0xD0, 0xD2, 0x25, 0xAA, 0x04, 0x75, 0x00, 0xC0, 0x04, 0x91, 0x60, 0xB7, 0x94, 0x5B, 0x14, 0xC0,
+ 0x64, 0x9A, 0x10, 0xD2, 0x29, 0xA0, 0xD0, 0xD2, 0x25, 0xAA, 0x06, 0x75, 0x00, 0xC0, 0xA4, 0x92, 0x90, 0xD2, 0x3D, 0xAA, 0x02, 0x75, 0x00, 0xC0, 0x04, 0x92, 0x86, 0x0D, 0xF4, 0xFE,
+ 0x85, 0x99, 0x1C, 0xC0, 0x3E, 0x7C, 0x90, 0xD2, 0x2D, 0xA0, 0x00, 0xC0, 0xE4, 0x90, 0x86, 0x0D, 0xF4, 0xFE, 0x7C, 0x99, 0x90, 0xD2, 0x31, 0xA0, 0x48, 0xD2, 0x4D, 0xAA, 0x00, 0x75,
+ 0x00, 0xC0, 0x42, 0x91, 0x60, 0xB7, 0x14, 0x5C, 0x14, 0xC0, 0x41, 0x9A, 0x90, 0xD2, 0x35, 0xA0, 0x00, 0xC0, 0x80, 0x90, 0x90, 0xD2, 0x35, 0xA2, 0x08, 0xD2, 0x59, 0xAA, 0x02, 0x75,
+ 0x00, 0xC0, 0x04, 0x91, 0x60, 0xB7, 0x14, 0x71, 0x14, 0xC0, 0x32, 0x9A, 0x90, 0xD2, 0x39, 0xA0, 0xD0, 0xD2, 0x25, 0xAA, 0x04, 0x75, 0x00, 0xC0, 0xE4, 0x92, 0x90, 0xD2, 0x3D, 0xAA,
+ 0x04, 0x75, 0x00, 0xC0, 0x44, 0x92, 0x91, 0xD0, 0x54, 0x0E, 0x02, 0x85, 0x86, 0x0D, 0x08, 0xD2, 0x03, 0xA1, 0xF4, 0xFE, 0x4E, 0x99, 0x86, 0x0D, 0x82, 0x09, 0x34, 0xC0, 0x81, 0x98,
+ 0x8A, 0x0D, 0x86, 0x09, 0x34, 0xC0, 0x7D, 0x98, 0xD0, 0xD2, 0x25, 0xAA, 0x04, 0x75, 0x00, 0xC0, 0xE4, 0x93, 0x90, 0xD2, 0x3D, 0xAA, 0x02, 0x75, 0x00, 0xC0, 0x44, 0x93, 0x86, 0x0D,
+ 0xF4, 0xFE, 0x39, 0x99, 0x91, 0xD0, 0x54, 0x0E, 0x86, 0x0D, 0x08, 0xD2, 0x01, 0xA0, 0xF4, 0xFE, 0x32, 0x99, 0x1C, 0xC0, 0x3E, 0x7C, 0x00, 0xC0, 0x02, 0x91, 0x9A, 0x0D, 0xF4, 0xFE,
+ 0x2B, 0x99, 0x9A, 0x0D, 0xF4, 0xFE, 0x28, 0x99, 0x8A, 0x0D, 0x86, 0x09, 0x34, 0xC0, 0x5B, 0x98, 0xD0, 0xD2, 0x25, 0xAA, 0x06, 0x75, 0x01, 0xC0, 0x44, 0x92, 0x14, 0xC0, 0x10, 0x9B,
+ 0x10, 0xD2, 0x39, 0xAA, 0x08, 0x75, 0x01, 0xC0, 0x44, 0x90, 0x90, 0xD2, 0x3D, 0xAA, 0x02, 0x75, 0x00, 0xC0, 0xA4, 0x93, 0x14, 0xC0, 0x36, 0x9B, 0x60, 0xB7, 0x94, 0x70, 0x14, 0xC0,
+ 0xDD, 0x99, 0x91, 0xD0, 0xDA, 0x0E, 0x9A, 0x0D, 0x08, 0xD2, 0x21, 0xA0, 0xF4, 0xFE, 0x06, 0x99, 0x9A, 0x0D, 0xF4, 0xFE, 0x03, 0x99, 0x08, 0xD2, 0x21, 0xAA, 0x00, 0x75, 0x00, 0xC0,
+ 0x04, 0x91, 0x9A, 0x0D, 0xF4, 0xFE, 0xFB, 0x98, 0x9A, 0x0D, 0xF4, 0xFE, 0xF8, 0x98, 0x90, 0xD2, 0x3D, 0xAA, 0x04, 0x75, 0x00, 0xC0, 0xC4, 0x90, 0x92, 0x0D, 0x8A, 0x09, 0x34, 0xC0,
+ 0x26, 0x98, 0xD0, 0xD2, 0x25, 0xAA, 0x04, 0x75, 0x0A, 0x85, 0x02, 0xE0, 0x22, 0x85, 0xCF, 0x9D, 0xF4, 0xFE, 0xE6, 0x98, 0xD0, 0xD2, 0x25, 0xAA, 0x91, 0xD0, 0xD6, 0x0C, 0x06, 0x75,
+ 0x00, 0xB5, 0x29, 0x40, 0x00, 0xC0, 0x84, 0x91, 0x90, 0xD2, 0x3D, 0xAA, 0x02, 0x75, 0x00, 0xC0, 0xE4, 0x90, 0x90, 0xD2, 0x2D, 0xAA, 0x00, 0x75, 0x00, 0xC0, 0xA0, 0x90, 0xD0, 0xD2,
+ 0x25, 0xAA, 0x04, 0x75, 0x8A, 0x0D, 0x00, 0xC0, 0x62, 0x90, 0x8E, 0x0D, 0xF4, 0xFE, 0xCA, 0x98, 0xD0, 0xD2, 0x3D, 0xA0, 0x8E, 0x0D, 0xF4, 0xFE, 0xC5, 0x98, 0xD0, 0xD2, 0x25, 0xAA,
+ 0x04, 0x75, 0xD0, 0xD2, 0x35, 0xA0, 0x00, 0xC0, 0xA4, 0x92, 0x8A, 0x0D, 0xF4, 0xFE, 0xBB, 0x98, 0x91, 0xD0, 0x54, 0x0E, 0x08, 0xD2, 0x81, 0xA8, 0x91, 0xD0, 0x50, 0x0E, 0x42, 0x74,
+ 0x08, 0xD2, 0x01, 0xA0, 0x00, 0xC0, 0xE2, 0x92, 0x90, 0xD2, 0x3D, 0xAA, 0x04, 0x75, 0x00, 0xC0, 0x00, 0x92, 0x06, 0x75, 0x00, 0xC0, 0xC4, 0x92, 0x10, 0xD2, 0x39, 0xAA, 0x06, 0x75,
+ 0x00, 0xC0, 0x42, 0x91, 0x10, 0xF2, 0x25, 0xAA, 0xFF, 0xCF, 0x7C, 0x2A, 0x61, 0xC0, 0x08, 0x75, 0x00, 0xC0, 0x24, 0x91, 0x8A, 0x0D, 0xF4, 0xFE, 0x98, 0x98, 0x91, 0xD0, 0x52, 0x0E,
+ 0x08, 0xD2, 0x01, 0xA0, 0x48, 0xD2, 0x51, 0xAA, 0x00, 0x75, 0x00, 0xC0, 0x82, 0x90, 0x14, 0xC0, 0xD7, 0x9A, 0x14, 0xC0, 0x67, 0x9B, 0x60, 0xB7, 0x94, 0x5C, 0x14, 0xC0, 0x57, 0x99,
+ 0x10, 0xD2, 0x31, 0xA0, 0x86, 0x0D, 0xF4, 0xFE, 0x82, 0x98, 0x50, 0xD2, 0x25, 0xAA, 0x91, 0xD0, 0xD8, 0x0C, 0x10, 0x75, 0x00, 0xB5, 0x29, 0x40, 0x00, 0xC0, 0xB4, 0x91, 0x88, 0xD2,
+ 0xCD, 0xA8, 0x40, 0x74, 0x02, 0x0A, 0x02, 0xD0, 0x42, 0x1A, 0x08, 0x2A, 0x10, 0xD2, 0x2D, 0xA2, 0x00, 0xC0, 0xA0, 0x90, 0x02, 0x85, 0x10, 0xD2, 0x2F, 0xA1, 0x9F, 0xB7, 0xEE, 0x7E,
+ 0xBF, 0xB7, 0x6E, 0x7F, 0xDF, 0xB7, 0xEE, 0x7F, 0x60, 0x8C, 0x22, 0x9C, 0x0D, 0xA6, 0xA0, 0xB7, 0x0C, 0x56, 0x02, 0x0F, 0xC8, 0xD2, 0x2A, 0xA3, 0xF4, 0xFE, 0x66, 0x98, 0x20, 0xB7,
+ 0x8C, 0x55, 0x80, 0xB7, 0x29, 0x42, 0x00, 0x75, 0x03, 0x03, 0x00, 0xC0, 0x42, 0x91, 0x86, 0x0D, 0xF4, 0xFE, 0x50, 0x98, 0x8A, 0x0D, 0xF4, 0xFE, 0x4D, 0x98, 0x00, 0xC0, 0xA0, 0x90,
+ 0x8A, 0x0D, 0xF4, 0xFE, 0x48, 0x98, 0x88, 0xD2, 0x45, 0xAA, 0x00, 0x75, 0x00, 0xC0, 0xA2, 0x90, 0x86, 0x0D, 0xF4, 0xFE, 0x40, 0x98, 0x86, 0x0D, 0xF4, 0xFE, 0x3D, 0x98, 0x02, 0x74,
+ 0x00, 0xC0, 0xC4, 0x90, 0x88, 0xD2, 0x3D, 0xA0, 0x00, 0xC0, 0xA0, 0x92, 0x88, 0xD2, 0x49, 0xAA, 0x00, 0x75, 0x00, 0xC0, 0xC4, 0x90, 0x88, 0xD2, 0x3D, 0xA2, 0x00, 0xC0, 0x80, 0x91,
+ 0x86, 0x0D, 0xF4, 0xFE, 0x2A, 0x98, 0x02, 0x74, 0x0A, 0x85, 0x00, 0xC0, 0x64, 0x90, 0x02, 0x85, 0x88, 0xD2, 0x3F, 0xA1, 0x88, 0xD2, 0x3D, 0xAA, 0x04, 0x75, 0x00, 0xC0, 0x04, 0x92,
+ 0x60, 0xB7, 0x94, 0x5B, 0x14, 0xC0, 0xEA, 0x98, 0xF1, 0xD3, 0x0E, 0x2A, 0x2C, 0x75, 0x08, 0xD2, 0x29, 0xA0, 0x00, 0xC0, 0xA4, 0x90, 0x0E, 0x85, 0x88, 0xD2, 0x3F, 0xA1, 0x88, 0xD2,
+ 0x3D, 0xAA, 0x00, 0x75, 0x82, 0x0C, 0x01, 0xD0, 0x92, 0x0C, 0x06, 0x75, 0x82, 0x08, 0x01, 0xD0, 0x92, 0x08, 0x8A, 0x9E, 0x00, 0xE0, 0x94, 0x36, 0x00, 0xC0, 0xA2, 0x90, 0x9E, 0x0D,
+ 0xD4, 0xFE, 0xFE, 0x9B, 0x14, 0xC0, 0x88, 0x99, 0x48, 0xD2, 0x4D, 0xAA, 0x00, 0x75, 0x00, 0xC0, 0xE2, 0x91, 0x88, 0xD2, 0x51, 0xAA, 0x00, 0x75, 0x00, 0xC0, 0x42, 0x91, 0x60, 0xB7,
+ 0x14, 0x5C, 0x14, 0xC0, 0xBE, 0x98, 0x88, 0xD2, 0x35, 0xA0, 0x00, 0xC0, 0xA0, 0x90, 0x02, 0x85, 0x88, 0xD2, 0x37, 0xA1, 0x88, 0xD2, 0x3D, 0xAA, 0x02, 0x75, 0x00, 0xC0, 0x52, 0x91,
+ 0x48, 0xD2, 0x5D, 0xAA, 0x00, 0x75, 0x00, 0xC0, 0xA2, 0x90, 0x8A, 0x0D, 0xD4, 0xFE, 0xDA, 0x9B, 0x40, 0x77, 0x02, 0xC0, 0xE4, 0x93, 0x88, 0xD2, 0x3D, 0xAA, 0x02, 0x75, 0x00, 0xC0,
+ 0xA4, 0x91, 0x14, 0xC0, 0xC3, 0x99, 0x08, 0xD2, 0x39, 0xAA, 0x08, 0x75, 0x00, 0xC0, 0x44, 0x92, 0x14, 0xC0, 0xEE, 0x99, 0x00, 0xC0, 0xC0, 0x91, 0x04, 0x75, 0x00, 0xC0, 0x64, 0x91,
+ 0x86, 0x0D, 0xD4, 0xFE, 0xC1, 0x9B, 0x00, 0x74, 0x02, 0x0A, 0x01, 0xD0, 0x42, 0x0A, 0x08, 0xD2, 0x39, 0xA2, 0x88, 0xD2, 0x3D, 0xAA, 0x02, 0x75, 0x00, 0xC0, 0xA4, 0x91, 0x08, 0xD2,
+ 0x39, 0xAA, 0x08, 0x75, 0x00, 0xC0, 0x04, 0x91, 0x9A, 0x0D, 0xD4, 0xFE, 0xAE, 0x9B, 0x9A, 0x0D, 0xD4, 0xFE, 0xAB, 0x9B, 0x08, 0xF2, 0x25, 0xAA, 0xFF, 0xCF, 0x7C, 0x2A, 0x61, 0xC0,
+ 0x08, 0x75, 0x00, 0xC0, 0xE2, 0x90, 0x08, 0xD2, 0x39, 0xAA, 0x06, 0x75, 0x00, 0xC0, 0xC4, 0x90, 0x82, 0x0D, 0x8A, 0x09, 0x14, 0xC0, 0xD1, 0x9A, 0x88, 0xD2, 0x3D, 0xAA, 0x04, 0x75,
+ 0x00, 0xC0, 0xC4, 0x90, 0x86, 0x0D, 0x82, 0x09, 0x14, 0xC0, 0xC8, 0x9A, 0x8A, 0x0D, 0x86, 0x09, 0x14, 0xC0, 0xC4, 0x9A, 0x8A, 0x0D, 0xD4, 0xFE, 0x8A, 0x9B, 0xC8, 0xD2, 0x39, 0xA0,
+ 0x8A, 0x0D, 0xD4, 0xFE, 0x85, 0x9B, 0x48, 0xD2, 0x51, 0xAA, 0x00, 0x75, 0xC8, 0xD2, 0x31, 0xA0, 0x00, 0xC0, 0x82, 0x90, 0x14, 0xC0, 0xC6, 0x99, 0x14, 0xC0, 0x56, 0x9A, 0x88, 0xD2,
+ 0xBD, 0xA8, 0x42, 0x74, 0x02, 0x0A, 0x64, 0xB3, 0x32, 0x48, 0x00, 0x75, 0x00, 0xC0, 0xA4, 0x93, 0xA0, 0xB7, 0x94, 0x5C, 0x8B, 0x05, 0x14, 0xC0, 0x3C, 0x98, 0x88, 0xD2, 0x3D, 0xAA,
+ 0x00, 0x75, 0x82, 0x0C, 0x01, 0xD0, 0x92, 0x0C, 0x06, 0x75, 0x4C, 0x9E, 0x82, 0x08, 0x01, 0xD0, 0x92, 0x08, 0x00, 0xE0, 0x42, 0x32, 0x08, 0xD2, 0x31, 0xA0, 0x00, 0xC0, 0xE2, 0x90,
+ 0x8B, 0x05, 0x14, 0xC0, 0x28, 0x98, 0x08, 0xD2, 0x35, 0xA0, 0x86, 0x0D, 0xD4, 0xFE, 0x53, 0x9B, 0x88, 0xD2, 0xBD, 0xA8, 0x91, 0xD0, 0x58, 0x0A, 0x08, 0xD2, 0x01, 0xA0, 0x44, 0x74,
+ 0x0A, 0x85, 0x08, 0xD2, 0x2F, 0xA1, 0x00, 0xC0, 0x82, 0x91, 0x48, 0xD2, 0x25, 0xAA, 0x10, 0x75, 0x00, 0xC0, 0xF4, 0x90, 0x88, 0xD2, 0x4D, 0xAA, 0x00, 0x75, 0x00, 0xC0, 0xA4, 0x90,
+ 0x02, 0x85, 0x08, 0xD2, 0x2F, 0xA1, 0x9F, 0xB7, 0xEE, 0x7E, 0xBF, 0xB7, 0x6E, 0x7F, 0xDF, 0xB7, 0xEE, 0x7F, 0x60, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x20, 0x84, 0x82, 0x0A, 0x82, 0x08,
+ 0x87, 0x06, 0xDA, 0x9D, 0x00, 0xF0, 0x43, 0xA9, 0x10, 0xF2, 0x23, 0x88, 0xA3, 0x9E, 0x5F, 0xB5, 0x64, 0x7F, 0x00, 0xC2, 0xB0, 0x52, 0xD4, 0xFE, 0x21, 0x9B, 0x5F, 0xB7, 0x64, 0x7F,
+ 0x00, 0xF0, 0x45, 0xAA, 0xD0, 0x32, 0x48, 0x71, 0x00, 0xF0, 0xC1, 0xA8, 0x00, 0xC0, 0x82, 0x91, 0x20, 0xF0, 0x49, 0xAA, 0x48, 0x70, 0x00, 0xC0, 0xE4, 0x90, 0x00, 0xF0, 0x45, 0xAA,
+ 0x48, 0x71, 0xFF, 0xFF, 0x04, 0x93, 0x00, 0xF0, 0x41, 0xAA, 0x48, 0x70, 0x00, 0xC0, 0xC2, 0x90, 0x1C, 0xC0, 0x3E, 0x75, 0xFE, 0xFF, 0x44, 0x93, 0x10, 0xE1, 0x23, 0x8A, 0x26, 0xD0,
+ 0x0B, 0x59, 0x7D, 0x58, 0x10, 0xE2, 0x21, 0x80, 0x07, 0x58, 0x9F, 0xB7, 0xEE, 0x7E, 0xBF, 0xB7, 0x6E, 0x7F, 0x60, 0x8C, 0x22, 0x9C, 0x0D, 0xA6, 0x02, 0xC0, 0x40, 0x84, 0x20, 0xB7,
+ 0x8C, 0x55, 0x80, 0xB7, 0xA9, 0x40, 0x02, 0x0F, 0x00, 0x75, 0x02, 0x0B, 0x83, 0x02, 0x00, 0xC0, 0x62, 0x93, 0x08, 0xD2, 0x29, 0xAA, 0x00, 0x75, 0x00, 0xC0, 0xE2, 0x90, 0x08, 0xD2,
+ 0x35, 0xAA, 0x00, 0x75, 0x00, 0xC0, 0x22, 0x91, 0x8A, 0x0D, 0xD4, 0xFE, 0xDC, 0x9A, 0xF2, 0xD3, 0x0E, 0x2B, 0x00, 0xC0, 0x40, 0x91, 0x86, 0x0D, 0xD4, 0xFE, 0xD5, 0x9A, 0x86, 0x0D,
+ 0xD4, 0xFE, 0xD2, 0x9A, 0xF1, 0xD3, 0x0E, 0x2B, 0x08, 0xD2, 0x3D, 0xAA, 0x00, 0x75, 0x02, 0xC0, 0xC2, 0x91, 0x86, 0x0D, 0xD4, 0xFE, 0xC8, 0x9A, 0x1C, 0xC0, 0x3E, 0x7C, 0x02, 0xC0,
+ 0xE2, 0x90, 0x08, 0xD2, 0x29, 0xAA, 0x00, 0x75, 0x00, 0xC0, 0x02, 0x92, 0x08, 0xD2, 0x35, 0xAA, 0x00, 0x75, 0x00, 0xC0, 0x64, 0x91, 0x08, 0xD2, 0x25, 0xAA, 0xB1, 0x9E, 0x00, 0x75,
+ 0x8A, 0x0E, 0x02, 0xD0, 0x94, 0x0E, 0x00, 0xC0, 0x00, 0x91, 0x08, 0xD2, 0x25, 0xAA, 0x00, 0x75, 0x86, 0x0E, 0x02, 0xD0, 0xE2, 0x0E, 0x6C, 0x9E, 0x82, 0x0A, 0x48, 0x71, 0x01, 0xC0,
+ 0x28, 0x91, 0xD2, 0xF0, 0x00, 0x8D, 0x91, 0xF0, 0x00, 0x8D, 0xCA, 0x0D, 0xD4, 0xFE, 0x9F, 0x9A, 0x29, 0xF2, 0x45, 0xA0, 0xCA, 0x0D, 0xD4, 0xFE, 0x9A, 0x9A, 0xA8, 0xD2, 0x08, 0x59,
+ 0x2D, 0x9E, 0x53, 0xE0, 0x00, 0x8D, 0xBA, 0x0D, 0x30, 0xE0, 0x4D, 0xA0, 0xD4, 0xFE, 0x90, 0x9A, 0x31, 0xDA, 0x45, 0xA0, 0xBA, 0x0D, 0xD4, 0xFE, 0x8B, 0x9A, 0xA8, 0xD2, 0x04, 0x59,
+ 0x6C, 0x9E, 0x2D, 0x9E, 0x84, 0x0A, 0x48, 0x71, 0xB3, 0xE0, 0x00, 0x8D, 0x30, 0xC8, 0x4D, 0xA0, 0xFE, 0xFF, 0xE6, 0x93, 0x9F, 0xB7, 0xEE, 0x7B, 0xBF, 0xB7, 0x6E, 0x7C, 0xDF, 0xB7,
+ 0xEE, 0x7C, 0x04, 0xC0, 0x20, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x96, 0x0D, 0xD4, 0xFE, 0x72, 0x9A, 0x20, 0xB7, 0x94, 0x55, 0x20, 0xB7, 0x0C, 0x56, 0x80, 0xB7, 0x49, 0x47, 0x00, 0xB5,
+ 0x29, 0x44, 0x02, 0x75, 0x83, 0x02, 0x83, 0x06, 0x00, 0xC0, 0x02, 0x91, 0x48, 0xD2, 0xA2, 0xA9, 0x50, 0xD2, 0xB9, 0xA9, 0x14, 0xC0, 0x2F, 0x98, 0x48, 0xD2, 0x21, 0xAA, 0x10, 0x75,
+ 0x00, 0xC0, 0x32, 0x91, 0x86, 0x0D, 0xD4, 0xFE, 0x57, 0x9A, 0x48, 0xD2, 0x2D, 0xA0, 0x00, 0xC0, 0xA0, 0x90, 0x02, 0x85, 0x48, 0xD2, 0x2F, 0xA1, 0x50, 0xD2, 0x39, 0xAA, 0x02, 0x75,
+ 0x02, 0x85, 0x48, 0xD2, 0x2B, 0xA1, 0x00, 0xC0, 0x44, 0x92, 0x86, 0x0D, 0xD4, 0xFE, 0x45, 0x9A, 0x1C, 0xC0, 0x3E, 0x7C, 0x48, 0xD2, 0xA1, 0xA8, 0x02, 0x0A, 0x01, 0xD0, 0x42, 0x0A,
+ 0x48, 0xD2, 0x29, 0xA0, 0xC8, 0xD2, 0x2D, 0xA2, 0x48, 0xD2, 0xA5, 0xA0, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x20, 0xB7, 0x0C, 0x56, 0xF1, 0xD3,
+ 0x3E, 0x2E, 0x0E, 0xE0, 0xFC, 0x29, 0x02, 0x85, 0x80, 0xB5, 0xA9, 0x44, 0x40, 0xB5, 0xB9, 0x4D, 0x00, 0xC0, 0xC2, 0x90, 0xC4, 0x74, 0x00, 0xC0, 0x22, 0x92, 0x22, 0x9C, 0x10, 0x75,
+ 0x40, 0xB3, 0xB4, 0x48, 0x40, 0xB7, 0x1C, 0x75, 0x4B, 0x9D, 0x20, 0xC2, 0x05, 0xAA, 0x06, 0x85, 0x40, 0xB5, 0xB9, 0x4D, 0x80, 0xB5, 0xA9, 0x44, 0x22, 0x9C, 0x06, 0x85, 0x40, 0xB5,
+ 0xB9, 0x4D, 0x22, 0x9C, 0x05, 0xA6, 0x20, 0xB7, 0x0C, 0x56, 0x80, 0xB7, 0xA9, 0x4B, 0x02, 0x75, 0x83, 0x02, 0x00, 0xC0, 0x04, 0x91, 0x60, 0xB7, 0x14, 0x5F, 0x20, 0xB7, 0x8C, 0x5F,
+ 0x00, 0xC0, 0xC0, 0x90, 0x60, 0xB7, 0x14, 0x61, 0x20, 0xB7, 0x8C, 0x61, 0x48, 0xD2, 0x25, 0xAA, 0x18, 0x75, 0x00, 0xC0, 0x14, 0x91, 0xF4, 0xFF, 0xC5, 0x9A, 0x40, 0xB7, 0x04, 0x60,
+ 0x00, 0xC0, 0xE0, 0x90, 0x8B, 0x9E, 0xF4, 0xFF, 0xBE, 0x9A, 0x40, 0xB7, 0x84, 0x60, 0x08, 0xD2, 0x39, 0xA0, 0x08, 0xD2, 0x3B, 0xA9, 0x2D, 0x9E, 0x30, 0xC0, 0x4D, 0xAA, 0x08, 0xD2,
+ 0x39, 0xA2, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0xA0, 0xB7, 0x0C, 0x56, 0x48, 0xD2, 0x25, 0xAA, 0x18, 0x75, 0x00, 0xC0, 0x54, 0x91,
+ 0x60, 0xB7, 0x14, 0x61, 0xF4, 0xFF, 0xA1, 0x9A, 0x40, 0xB7, 0x04, 0x62, 0x00, 0xC0, 0x00, 0x91, 0x60, 0xB7, 0x94, 0x61, 0xF4, 0xFF, 0x99, 0x9A, 0x40, 0xB7, 0x84, 0x62, 0x08, 0xD2,
+ 0x3D, 0xA0, 0x08, 0xD2, 0x3F, 0xA9, 0x2D, 0x9E, 0x30, 0xC0, 0x4D, 0xAA, 0x08, 0xD2, 0x3D, 0xA2, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x05, 0xA6,
+ 0x20, 0xB7, 0x8C, 0x55, 0xA0, 0xB7, 0x0C, 0x56, 0x80, 0xB7, 0x29, 0x46, 0xAD, 0x9E, 0x02, 0x85, 0x48, 0xD2, 0x33, 0xA1, 0x04, 0x75, 0x06, 0x85, 0xC8, 0xD2, 0x2B, 0xA1, 0x00, 0xC0,
+ 0x04, 0x91, 0x48, 0xD2, 0x33, 0xA1, 0x14, 0xC0, 0x5F, 0x98, 0x02, 0xC0, 0xE0, 0x92, 0x80, 0xB7, 0x29, 0x46, 0x02, 0x75, 0x82, 0x0C, 0x01, 0xD0, 0x92, 0x0C, 0x06, 0x75, 0x4C, 0x9E,
+ 0x82, 0x08, 0x01, 0xD0, 0x92, 0x08, 0x00, 0xE0, 0x42, 0x32, 0x02, 0xC0, 0x02, 0x91, 0x86, 0x0D, 0xD4, 0xFE, 0x8F, 0x99, 0xF1, 0xF3, 0x0E, 0x2A, 0x48, 0xD2, 0x31, 0xA0, 0x01, 0xC0,
+ 0xA2, 0x93, 0x0E, 0x85, 0x48, 0xD2, 0x33, 0xA1, 0x8A, 0x0D, 0xD4, 0xFE, 0x83, 0x99, 0x48, 0xD2, 0x35, 0xA0, 0x48, 0xD2, 0x35, 0xAA, 0x04, 0x75, 0x00, 0xC0, 0xA2, 0x92, 0x00, 0xC0,
+ 0xFA, 0x90, 0x02, 0x75, 0x00, 0xC0, 0x22, 0x91, 0x00, 0xC0, 0x40, 0x93, 0x06, 0x75, 0x00, 0xC0, 0x42, 0x92, 0x00, 0xC0, 0xA0, 0x92, 0x8A, 0x0D, 0xD4, 0xFE, 0x6D, 0x99, 0x48, 0xD2,
+ 0x3D, 0xA0, 0x00, 0xC0, 0xC0, 0x91, 0x8A, 0x0D, 0xD4, 0xFE, 0x66, 0x99, 0x88, 0xD2, 0x21, 0xA0, 0x00, 0xC0, 0xE0, 0x90, 0x86, 0x0D, 0xD4, 0xFE, 0x5F, 0x99, 0x48, 0xD2, 0x39, 0xA0,
+ 0x10, 0xF2, 0x2D, 0xAA, 0x0F, 0xC0, 0xFE, 0x08, 0xF0, 0xCF, 0x80, 0x08, 0x42, 0x22, 0x60, 0xC0, 0x00, 0x75, 0x00, 0xC0, 0x02, 0x91, 0x14, 0xC0, 0x0C, 0x98, 0x00, 0xC0, 0x80, 0x90,
+ 0x48, 0xD2, 0x35, 0xA2, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x39, 0xF8, 0x05, 0xA2, 0x8E, 0x0D, 0xD4, 0xFE, 0x41, 0x99, 0xF2, 0xD3, 0x8E, 0x28,
+ 0x4E, 0x76, 0x00, 0xC0, 0x84, 0x91, 0x96, 0x0D, 0xD4, 0xFE, 0x39, 0x99, 0x80, 0xB7, 0x0C, 0x56, 0x88, 0xD2, 0x05, 0xA0, 0xF8, 0xF9, 0x1D, 0xAA, 0x22, 0x9C, 0x20, 0xB7, 0x0C, 0x56,
+ 0x80, 0xB7, 0xA9, 0x44, 0x4A, 0x9E, 0x28, 0x02, 0x04, 0x0A, 0x80, 0xB5, 0xA9, 0x48, 0xF8, 0xF9, 0x1D, 0xAA, 0x22, 0x9C, 0x05, 0xA6, 0x80, 0xB7, 0x8C, 0x55, 0x48, 0xD2, 0x95, 0xA8,
+ 0x40, 0x74, 0x00, 0xC0, 0x42, 0x92, 0x86, 0x0D, 0xD4, 0xFE, 0x1B, 0x99, 0xA0, 0xB7, 0x0C, 0x56, 0x1C, 0xC0, 0x3E, 0x7C, 0x08, 0xD2, 0x21, 0xA0, 0x00, 0xC0, 0xE2, 0x90, 0x8A, 0x0D,
+ 0xD4, 0xFE, 0x10, 0x99, 0x08, 0xD2, 0x25, 0xA0, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x20, 0xB7, 0x8C, 0x55, 0x80, 0xB7, 0xA9, 0x49,
+ 0x00, 0x75, 0xA0, 0xB7, 0x0C, 0x56, 0x01, 0xC0, 0x22, 0x90, 0x48, 0xD2, 0x25, 0xAA, 0x10, 0x75, 0x00, 0xC0, 0x92, 0x93, 0x60, 0xB7, 0x94, 0x74, 0xF4, 0xFF, 0xC5, 0x99, 0x40, 0xB7,
+ 0x84, 0x5E, 0x08, 0xD2, 0x2D, 0xA0, 0x08, 0xD2, 0x2F, 0xA9, 0x2D, 0x9E, 0x30, 0xC0, 0xCD, 0xA8, 0xF1, 0xD3, 0x1E, 0x2A, 0x06, 0x75, 0x08, 0xD2, 0xAD, 0xA0, 0x00, 0xC0, 0xC4, 0x92,
+ 0x9A, 0x0D, 0x8A, 0x09, 0x14, 0xC0, 0x18, 0x98, 0x00, 0xC0, 0x00, 0x92, 0x80, 0xB7, 0xA9, 0x49, 0x00, 0x75, 0x02, 0x85, 0x00, 0xC0, 0x02, 0x91, 0x48, 0xD2, 0x25, 0xAA, 0x10, 0x75,
+ 0x00, 0xC0, 0x74, 0x90, 0x0A, 0x85, 0x08, 0xD2, 0x2F, 0xA1, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x5C, 0x9E, 0xF2, 0xD3, 0xCE, 0x2A,
+ 0x96, 0x0D, 0xF1, 0xD3, 0xBE, 0x2A, 0xD4, 0xFE, 0xC8, 0x98, 0x3C, 0x28, 0x00, 0x74, 0x06, 0x0D, 0x54, 0x9E, 0x60, 0xB7, 0x0C, 0x56, 0x01, 0xD0, 0x42, 0x1A, 0x00, 0x75, 0x54, 0x9E,
+ 0x91, 0xD0, 0x3C, 0x09, 0x08, 0xD0, 0xC2, 0xA8, 0x00, 0xC2, 0x94, 0x50, 0x8B, 0x9E, 0x96, 0x34, 0x08, 0xD0, 0xC2, 0xA0, 0x00, 0xC0, 0xA2, 0x91, 0x8A, 0x0D, 0xD4, 0xFE, 0x6F, 0x98,
+ 0xAB, 0x9E, 0x14, 0xC0, 0x1D, 0x98, 0x86, 0x0D, 0xD4, 0xFE, 0x69, 0x98, 0x00, 0xC0, 0x40, 0x92, 0x91, 0xD0, 0x3E, 0x0A, 0x08, 0xD2, 0x81, 0xA8, 0xD4, 0x54, 0x4A, 0x9E, 0x86, 0x0D,
+ 0x94, 0x30, 0x08, 0xD2, 0x81, 0xA0, 0xD4, 0xFE, 0x95, 0x98, 0x60, 0xB7, 0x14, 0x74, 0xF4, 0xFF, 0x61, 0x99, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C,
+ 0x40, 0xB7, 0x8C, 0x55, 0x88, 0xD0, 0x51, 0xAA, 0x20, 0xB7, 0x94, 0x47, 0x40, 0xB7, 0x9C, 0x56, 0x24, 0xD2, 0x0C, 0x59, 0x08, 0x3D, 0x40, 0xB5, 0xD5, 0x41, 0xCB, 0x9D, 0x88, 0x5D,
+ 0x3E, 0xC0, 0xF0, 0x2D, 0x20, 0xE0, 0xEA, 0xA9, 0x40, 0xC0, 0xE0, 0x0C, 0x60, 0xB5, 0x55, 0x40, 0xC8, 0xD0, 0x45, 0xAA, 0xC8, 0xD0, 0xC9, 0xA8, 0x04, 0x1A, 0x24, 0xD2, 0x4C, 0x59,
+ 0x84, 0x18, 0xB0, 0x58, 0x8B, 0x9E, 0xD0, 0x1C, 0x26, 0x35, 0x40, 0xB5, 0x55, 0x40, 0xC8, 0xD0, 0x45, 0xAA, 0xC8, 0xD0, 0xC9, 0xA8, 0x43, 0x62, 0x02, 0xC0, 0x80, 0x0C, 0x0A, 0x0D,
+ 0x04, 0x1A, 0x80, 0xB5, 0x4D, 0x40, 0xBC, 0xCF, 0xF1, 0x0C, 0x40, 0xB5, 0x55, 0x40, 0x49, 0x9E, 0x61, 0xB9, 0xF0, 0x7F, 0x00, 0xC0, 0x01, 0x90, 0x40, 0xB7, 0x35, 0x40, 0x11, 0xD0,
+ 0x28, 0x2E, 0x00, 0x75, 0xFF, 0xFF, 0xE2, 0x92, 0x22, 0x9C, 0x00, 0xE0, 0x80, 0x09, 0x5C, 0x9E, 0x40, 0xB3, 0xA2, 0x48, 0x02, 0x85, 0x10, 0xD0, 0xB2, 0x19, 0x29, 0xF2, 0x07, 0xA1,
+ 0xFF, 0xFF, 0xC1, 0x93, 0x22, 0x9C, 0x11, 0xF0, 0x20, 0x0E, 0x59, 0x9E, 0x40, 0xB3, 0xA2, 0x48, 0x10, 0xD0, 0xC2, 0x19, 0x29, 0xF0, 0x65, 0xAA, 0x29, 0xF0, 0x25, 0xA2, 0xFF, 0xFF,
+ 0x81, 0x93, 0x22, 0x9C, 0x1D, 0xA6, 0x0E, 0xC0, 0x60, 0x84, 0x20, 0xB7, 0x8C, 0x55, 0x80, 0xB7, 0x29, 0x41, 0x02, 0x85, 0x00, 0x75, 0x82, 0x0E, 0x83, 0x03, 0x00, 0xC0, 0xE2, 0x90,
+ 0x88, 0xD2, 0x7D, 0xAA, 0x00, 0x75, 0x00, 0xC0, 0xA4, 0x93, 0x88, 0xD2, 0xFA, 0xA8, 0x40, 0x76, 0x82, 0x08, 0x01, 0xD0, 0x92, 0x08, 0x46, 0x76, 0x02, 0x0A, 0x01, 0xD0, 0x42, 0x0A,
+ 0x00, 0xE0, 0x98, 0x30, 0x00, 0xC0, 0xC4, 0x93, 0x11, 0xD0, 0x12, 0x1E, 0x02, 0x75, 0x01, 0xC0, 0x52, 0x90, 0x20, 0xB7, 0x0C, 0x56, 0x80, 0xB7, 0x29, 0x4E, 0x13, 0xD1, 0x4E, 0x09,
+ 0x00, 0xC0, 0x40, 0x93, 0x88, 0xD2, 0x79, 0xAA, 0x00, 0x75, 0x82, 0x0C, 0x01, 0xD0, 0x92, 0x0C, 0x06, 0x75, 0x4A, 0x9E, 0x82, 0x08, 0x01, 0xD0, 0x92, 0x08, 0x00, 0xE0, 0x22, 0x31,
+ 0x00, 0xC0, 0xA2, 0x90, 0x3A, 0x85, 0x00, 0xC0, 0x00, 0x91, 0x80, 0xB7, 0x0C, 0x56, 0xC8, 0xD2, 0x95, 0xA8, 0x73, 0xD0, 0x16, 0x09, 0x52, 0xD0, 0xD9, 0x6D, 0xD1, 0xF3, 0x80, 0x8C,
+ 0x4F, 0x9D, 0xA9, 0x9E, 0x96, 0x05, 0x14, 0xC0, 0x75, 0x9A, 0x40, 0xB7, 0x0C, 0x56, 0x91, 0xD0, 0x22, 0x0A, 0x08, 0xD2, 0x81, 0xA9, 0x52, 0xD0, 0xD8, 0x09, 0x84, 0x09, 0x14, 0xC0,
+ 0x6A, 0x9A, 0x20, 0xB7, 0x0C, 0x56, 0x91, 0xD0, 0x10, 0x0A, 0x08, 0xD2, 0x81, 0xA9, 0xB2, 0xD0, 0xD0, 0x09, 0xBC, 0x09, 0x14, 0xC0, 0x5F, 0x9A, 0x08, 0xD2, 0x69, 0xAA, 0xAF, 0x9E,
+ 0x00, 0x75, 0x8E, 0x0E, 0x00, 0xC0, 0xE2, 0x90, 0x88, 0xD2, 0xFD, 0xA8, 0x40, 0x74, 0x00, 0xC0, 0x44, 0x91, 0x20, 0xB7, 0x14, 0x56, 0x80, 0xB7, 0x49, 0x4F, 0xD3, 0xD0, 0x4E, 0x09,
+ 0x01, 0xC0, 0x60, 0x91, 0x88, 0xD2, 0xFA, 0xA8, 0x11, 0xD0, 0x12, 0x1E, 0x0E, 0xC0, 0x7C, 0x2A, 0x02, 0x75, 0x00, 0xC0, 0xB2, 0x90, 0x44, 0x74, 0x00, 0xC0, 0x22, 0x92, 0x46, 0x74,
+ 0x00, 0xC0, 0xC4, 0x92, 0x40, 0xB7, 0x0C, 0x56, 0x88, 0xD0, 0x4D, 0xAA, 0x00, 0x75, 0x00, 0xC0, 0xE4, 0x91, 0xF1, 0xD3, 0x1E, 0x2E, 0x02, 0x75, 0x00, 0xC0, 0x44, 0x91, 0x60, 0xB7,
+ 0x1C, 0x56, 0xD8, 0xD0, 0x7D, 0xAA, 0xF3, 0xD0, 0x46, 0x09, 0x00, 0xC0, 0x00, 0x91, 0x20, 0xB7, 0x0C, 0x56, 0x80, 0xB7, 0xA9, 0x4F, 0x33, 0xD1, 0x46, 0x09, 0x52, 0xD0, 0xD9, 0x6D,
+ 0x4F, 0x9D, 0xF6, 0x05, 0x14, 0xC0, 0x1C, 0x9A, 0x08, 0xD2, 0x69, 0xAA, 0x02, 0x85, 0x00, 0x75, 0x84, 0x0E, 0x01, 0xC0, 0xA2, 0x93, 0x88, 0xD2, 0xFE, 0xA8, 0x40, 0x76, 0x01, 0xC0,
+ 0x02, 0x93, 0x40, 0xB7, 0x0C, 0x56, 0x08, 0xD0, 0xD9, 0xA8, 0x48, 0x74, 0x00, 0xC0, 0x84, 0x90, 0x08, 0xD0, 0xDD, 0xA8, 0x88, 0xD2, 0x79, 0xAA, 0x04, 0x1A, 0x0E, 0xC0, 0x7C, 0x2A,
+ 0x02, 0x75, 0x01, 0xC0, 0xF2, 0x90, 0x46, 0x76, 0x00, 0xC0, 0x24, 0x92, 0x46, 0x74, 0x20, 0xB7, 0x0C, 0x56, 0x91, 0xD0, 0x16, 0x0A, 0x08, 0xD2, 0x01, 0xAA, 0xA1, 0xD0, 0xCE, 0x09,
+ 0x00, 0xC0, 0x02, 0x93, 0xF1, 0xD0, 0xCE, 0x09, 0x00, 0xC0, 0x80, 0x92, 0x44, 0x76, 0x00, 0xC0, 0x44, 0x92, 0x40, 0xB7, 0x0C, 0x56, 0x91, 0xD0, 0x24, 0x0A, 0x08, 0xD2, 0x81, 0xA8,
+ 0x40, 0x74, 0x91, 0xD0, 0x26, 0x0A, 0x08, 0xD2, 0x01, 0xAA, 0x42, 0xD0, 0xC6, 0x09, 0x41, 0xD0, 0xCE, 0x09, 0x39, 0x9D, 0x52, 0xD0, 0xD9, 0x6D, 0x4F, 0x9D, 0xF6, 0x05, 0x14, 0xC0,
+ 0xD4, 0x99, 0x02, 0x85, 0x60, 0xB7, 0x1C, 0x56, 0x5F, 0xB5, 0x7A, 0x42, 0x5F, 0xB5, 0xFA, 0x42, 0x5F, 0xB5, 0x7A, 0x43, 0x58, 0xD0, 0x65, 0xAA, 0xF1, 0xD3, 0xCE, 0x28, 0x48, 0x74,
+ 0x84, 0x0E, 0x00, 0xC0, 0x72, 0x91, 0x2E, 0x85, 0x5F, 0xB5, 0x7A, 0x43, 0x32, 0x85, 0x5F, 0xB5, 0xFA, 0x42, 0x36, 0x85, 0x01, 0xC0, 0x20, 0x90, 0x14, 0x1A, 0x0E, 0xC0, 0x7C, 0x2A,
+ 0x0E, 0x75, 0x00, 0xC0, 0xD2, 0x91, 0x02, 0xC0, 0x2A, 0x85, 0x5F, 0xB5, 0x7A, 0x43, 0x02, 0xC0, 0x2E, 0x85, 0x5F, 0xB5, 0xFA, 0x42, 0x02, 0xC0, 0x32, 0x85, 0x00, 0xC0, 0xE0, 0x91,
+ 0x58, 0x74, 0x00, 0xC0, 0xD4, 0x91, 0x02, 0xC0, 0x1E, 0x85, 0x5F, 0xB5, 0x7A, 0x43, 0x02, 0xC0, 0x22, 0x85, 0x5F, 0xB5, 0xFA, 0x42, 0x02, 0xC0, 0x26, 0x85, 0x5F, 0xB5, 0x7A, 0x42,
+ 0x6D, 0x9E, 0x11, 0xD0, 0x56, 0x0A, 0x48, 0x71, 0xA6, 0x9E, 0x00, 0xC0, 0x68, 0x92, 0x53, 0xD0, 0x59, 0x69, 0xF1, 0xF3, 0x00, 0x8D, 0x20, 0xF3, 0xAF, 0x80, 0x29, 0xDA, 0xC5, 0xA9,
+ 0x8B, 0x05, 0x14, 0xC0, 0x87, 0x99, 0x71, 0x9E, 0x84, 0x0A, 0x42, 0x71, 0xD0, 0x0E, 0xFF, 0xFF, 0xE6, 0x92, 0x88, 0xD2, 0x79, 0xAA, 0x00, 0x75, 0x82, 0x0C, 0x01, 0xD0, 0x92, 0x0C,
+ 0x06, 0x75, 0x4A, 0x9E, 0x82, 0x08, 0x01, 0xD0, 0x92, 0x08, 0x00, 0xE0, 0x22, 0x31, 0x00, 0xC0, 0x02, 0x91, 0x80, 0xB7, 0x0C, 0x56, 0x08, 0xD2, 0x17, 0xA9, 0x00, 0xC0, 0xC0, 0x90,
+ 0x60, 0xB7, 0x1C, 0x56, 0x18, 0xD0, 0x73, 0xA9, 0x20, 0xB7, 0x0C, 0x56, 0x80, 0xB7, 0x29, 0x44, 0x10, 0x75, 0x60, 0xB7, 0x21, 0x42, 0x00, 0xC0, 0x12, 0x91, 0x40, 0xB7, 0x84, 0x63,
+ 0x80, 0xB7, 0x0C, 0x64, 0x00, 0xC0, 0xC0, 0x90, 0x40, 0xB7, 0x84, 0x64, 0x80, 0xB7, 0x0C, 0x65, 0x64, 0x9D, 0x2D, 0x9E, 0x40, 0xC0, 0xA5, 0xAA, 0x30, 0xC0, 0x4F, 0xA9, 0x52, 0xD0,
+ 0xE9, 0x6D, 0x4F, 0x9D, 0x12, 0xD0, 0xE2, 0x0E, 0xF6, 0x05, 0x14, 0xC0, 0x47, 0x99, 0x52, 0xD0, 0xD9, 0x6D, 0x8B, 0x01, 0xF6, 0x05, 0x14, 0xC0, 0x41, 0x99, 0x40, 0xB7, 0x0C, 0x56,
+ 0x91, 0xD0, 0x28, 0x0A, 0x08, 0xD2, 0x81, 0xA8, 0x40, 0x74, 0x84, 0x0E, 0x00, 0xC0, 0x04, 0x91, 0x02, 0xC0, 0x1A, 0x85, 0x02, 0xC0, 0x8E, 0x0A, 0x00, 0xC0, 0x80, 0x90, 0x22, 0x85,
+ 0x96, 0x0A, 0x52, 0xD0, 0xD9, 0x6D, 0x4F, 0x9D, 0x84, 0x0E, 0xF6, 0x05, 0x14, 0xC0, 0x28, 0x99, 0x52, 0xD0, 0xD9, 0x6D, 0x7F, 0x9E, 0x7E, 0x9E, 0x82, 0x0E, 0x02, 0x0F, 0x8B, 0x01,
+ 0xF6, 0x05, 0x14, 0xC0, 0x1E, 0x99, 0x11, 0xF0, 0xD6, 0x2C, 0x00, 0xC0, 0x42, 0x91, 0x13, 0xD0, 0x58, 0x0D, 0x10, 0xF2, 0x23, 0x88, 0x00, 0xC2, 0x40, 0x5A, 0x24, 0xD2, 0xC1, 0x5A,
+ 0x33, 0xD0, 0x70, 0x09, 0x6E, 0x9D, 0x82, 0x0D, 0x30, 0xE0, 0xCE, 0xA2, 0xB4, 0xFE, 0x0C, 0x98, 0x08, 0xF2, 0xC1, 0xA9, 0x40, 0xB7, 0x04, 0x53, 0x13, 0xD0, 0x78, 0x09, 0x71, 0x9E,
+ 0x57, 0x9D, 0x18, 0xE2, 0xA6, 0xA9, 0x84, 0x59, 0x10, 0xE2, 0xA7, 0x83, 0x80, 0xC2, 0x08, 0x5D, 0x00, 0xC3, 0x00, 0x0D, 0xB4, 0xFE, 0xE6, 0x98, 0x6A, 0x9E, 0x08, 0xDA, 0xA1, 0xA8,
+ 0x50, 0x0B, 0x71, 0xD3, 0x78, 0x0A, 0x88, 0x71, 0xA2, 0x00, 0xC0, 0x58, 0xA4, 0xD0, 0xC1, 0x5A, 0x50, 0x0F, 0xFE, 0xFF, 0xB4, 0x91, 0x82, 0x0D, 0x94, 0xFE, 0xE8, 0x9B, 0x3F, 0xB7,
+ 0x74, 0x63, 0x9F, 0xB7, 0xEC, 0x65, 0x40, 0xB7, 0x94, 0x47, 0x49, 0x9E, 0x00, 0xC2, 0x2C, 0x5A, 0x98, 0x31, 0xB1, 0xD3, 0xA8, 0x0C, 0x60, 0xB5, 0x2D, 0x40, 0x3F, 0xB7, 0x74, 0x68,
+ 0x9F, 0xB7, 0xEC, 0x6A, 0xD1, 0xD3, 0xA0, 0x0C, 0x4A, 0x9E, 0x00, 0xC2, 0x2C, 0x5A, 0xA8, 0x31, 0x60, 0xB5, 0x2D, 0x40, 0x3F, 0xB7, 0x74, 0x6D, 0x9F, 0xB7, 0xEC, 0x6F, 0x49, 0x9E,
+ 0x00, 0xC2, 0x2C, 0x5A, 0x98, 0x31, 0xD1, 0xD3, 0xA8, 0x0C, 0x51, 0xD2, 0x78, 0x0E, 0x12, 0xD2, 0xF0, 0x0C, 0x60, 0xB5, 0x2D, 0x40, 0x08, 0xF2, 0x81, 0xA8, 0x40, 0xB7, 0x4D, 0x40,
+ 0xF1, 0xD3, 0x20, 0x0E, 0xAC, 0x58, 0xA2, 0x31, 0xF1, 0xD2, 0xF8, 0x0C, 0xB2, 0xD2, 0xF0, 0x0C, 0x08, 0xF2, 0x81, 0xA1, 0x80, 0xB7, 0x2D, 0x40, 0x40, 0xB7, 0x4D, 0x40, 0xF1, 0xD3,
+ 0xA8, 0x0C, 0x00, 0xC2, 0x2C, 0x5A, 0xA8, 0x31, 0x91, 0xD3, 0x78, 0x0E, 0x60, 0xB5, 0x2D, 0x40, 0x08, 0xF2, 0x82, 0xA8, 0x51, 0xD3, 0xF0, 0x0C, 0x80, 0xB7, 0x2D, 0x40, 0xAC, 0x5C,
+ 0x4A, 0x9E, 0x10, 0xC0, 0x00, 0x0D, 0xC4, 0x31, 0x10, 0xF0, 0xC1, 0xA1, 0x9F, 0xB7, 0x6C, 0x66, 0x5F, 0xB7, 0xEC, 0x63, 0x3F, 0xB7, 0x74, 0x6B, 0x3F, 0xB7, 0xEC, 0x68, 0x00, 0xC2,
+ 0x0C, 0x5A, 0xA8, 0x31, 0xA4, 0x5C, 0x4C, 0x9E, 0x98, 0x58, 0xB2, 0x31, 0xB8, 0x31, 0x11, 0xD2, 0x78, 0x0E, 0x3F, 0xB7, 0x74, 0x70, 0x08, 0xF2, 0x01, 0xA9, 0x71, 0xD2, 0x70, 0x0E,
+ 0x3F, 0xB7, 0xEC, 0x6D, 0xBC, 0x5C, 0x1E, 0x9D, 0x08, 0xF2, 0x82, 0xA8, 0xB0, 0x58, 0xB2, 0x31, 0xB1, 0xD2, 0xF8, 0x0C, 0x11, 0xD3, 0x70, 0x0E, 0x01, 0xC3, 0xB6, 0x31, 0x48, 0x59,
+ 0xB4, 0x31, 0x40, 0xB7, 0x2D, 0x40, 0x08, 0xF2, 0x81, 0xA8, 0xD4, 0x5C, 0x4C, 0x9E, 0xB8, 0x31, 0xB1, 0xD3, 0x70, 0x0E, 0x02, 0xC0, 0x30, 0x0D, 0x52, 0xD3, 0xF8, 0x0C, 0x60, 0x59,
+ 0xB4, 0x31, 0xEC, 0x58, 0xB2, 0x31, 0x31, 0xF0, 0xC5, 0xA1, 0x08, 0xF2, 0x81, 0xA8, 0x80, 0xB7, 0x4D, 0x40, 0x8C, 0x58, 0xC2, 0x31, 0x10, 0xF0, 0xC1, 0xA1, 0x9F, 0xB7, 0xEC, 0x66,
+ 0x5F, 0xB7, 0x6C, 0x64, 0x3F, 0xB7, 0x6C, 0x69, 0x3F, 0xB7, 0xF4, 0x6B, 0x00, 0xC2, 0x08, 0x5A, 0xA8, 0x31, 0x9F, 0xB7, 0x6C, 0x6E, 0x90, 0x58, 0xB2, 0x31, 0x98, 0x5C, 0x1E, 0x9D,
+ 0x3F, 0xB7, 0xEC, 0x70, 0x01, 0xC3, 0xB6, 0x31, 0x00, 0xC2, 0x20, 0x5A, 0xB8, 0x31, 0xA8, 0x58, 0xB2, 0x31, 0x31, 0xD2, 0x70, 0x0E, 0x71, 0xD2, 0xF8, 0x0C, 0x08, 0xF2, 0x82, 0xA8,
+ 0xD1, 0xD2, 0x70, 0x0E, 0x40, 0xB7, 0x2D, 0x40, 0x08, 0xF2, 0x81, 0xA8, 0xB0, 0x5C, 0x4C, 0x9E, 0xB8, 0x31, 0x11, 0xD3, 0x78, 0x0E, 0x30, 0x0D, 0x38, 0x59, 0xB4, 0x31, 0xC0, 0x58,
+ 0xB2, 0x31, 0x08, 0xF2, 0x82, 0xA8, 0x71, 0xD3, 0xF0, 0x0C, 0xB1, 0xD3, 0x78, 0x0E, 0x40, 0xB7, 0x2D, 0x40, 0xC8, 0x5C, 0x1E, 0x9D, 0x08, 0xF2, 0x81, 0xA8, 0x50, 0x59, 0x01, 0xC3,
+ 0xB6, 0x31, 0xB4, 0x31, 0xD8, 0x58, 0xB2, 0x31, 0x10, 0xF0, 0xC1, 0xA1, 0x9F, 0xB7, 0xEE, 0x6E, 0xBF, 0xB7, 0x6E, 0x6F, 0xDF, 0xB7, 0xEE, 0x6F, 0xFF, 0xB7, 0x6E, 0x70, 0x10, 0xC0,
+ 0x60, 0x8C, 0x22, 0x9C, 0x40, 0xB7, 0x04, 0x63, 0xC0, 0x59, 0xA6, 0xD1, 0x39, 0x59, 0x2D, 0x9E, 0x30, 0xC8, 0xCD, 0xA8, 0x30, 0xE0, 0xCE, 0xA8, 0x10, 0xF0, 0xE1, 0xA0, 0x4C, 0x9E,
+ 0xA2, 0xD0, 0xE5, 0x5C, 0xF1, 0x5C, 0x8C, 0x2C, 0x10, 0xF0, 0xF2, 0xA0, 0x1F, 0xC0, 0x7C, 0x2A, 0x00, 0xC2, 0x41, 0x5A, 0x10, 0xF0, 0x65, 0xA2, 0x9C, 0x28, 0x10, 0xF0, 0xED, 0xA0,
+ 0x22, 0x9C, 0x98, 0x9E, 0x02, 0x08, 0x02, 0x09, 0x00, 0xC0, 0x40, 0x91, 0x98, 0x9E, 0x02, 0x08, 0x10, 0xD0, 0x30, 0x45, 0x14, 0xCC, 0xC0, 0x72, 0x14, 0xC0, 0x00, 0x72, 0xC0, 0x72,
+ 0x80, 0xC1, 0x09, 0x5D, 0x09, 0xE0, 0x04, 0x72, 0x12, 0xF0, 0x04, 0x5D, 0x00, 0xC0, 0x54, 0x92, 0xC4, 0x72, 0x04, 0xD0, 0x04, 0x08, 0x24, 0xD0, 0xB4, 0x15, 0xC0, 0x72, 0x04, 0xD0,
+ 0x02, 0x08, 0x24, 0xD0, 0xB0, 0x15, 0x00, 0xE0, 0x24, 0x31, 0x81, 0x11, 0x30, 0xB3, 0x2A, 0x44, 0x22, 0x9C, 0xC0, 0x72, 0x86, 0x08, 0xFF, 0xFF, 0xA6, 0x93, 0x02, 0xC4, 0xC0, 0x72,
+ 0x65, 0xD0, 0x9E, 0x2C, 0x65, 0xD0, 0x9E, 0x3C, 0x02, 0xC8, 0x00, 0x72, 0x65, 0xD0, 0x2E, 0x2D, 0x65, 0xD0, 0x2E, 0x3D, 0x00, 0xE0, 0x14, 0x15, 0x53, 0x9E, 0x1A, 0xD0, 0x08, 0x54,
+ 0x1A, 0xD0, 0xAC, 0x50, 0xC0, 0x72, 0x14, 0xD0, 0x02, 0x00, 0x24, 0xD0, 0xB0, 0x15, 0x80, 0xE0, 0x85, 0x58, 0x05, 0x5C, 0xFF, 0xFF, 0x04, 0x93, 0x00, 0xE0, 0x24, 0x31, 0x81, 0x11,
+ 0x30, 0xB3, 0x2A, 0x44, 0x22, 0x9C, 0x64, 0x9E, 0x09, 0xC8, 0x42, 0x0E, 0x97, 0xB0, 0x66, 0x27, 0xA4, 0x9E, 0x58, 0x9E, 0x22, 0x9C, 0x40, 0xB7, 0x16, 0x5B, 0x01, 0xC0, 0x88, 0x9C,
+ 0xC0, 0x76, 0x01, 0xC0, 0x00, 0x28, 0x20, 0x58, 0xB0, 0x41, 0x32, 0xB3, 0x44, 0x48, 0x11, 0xF0, 0x20, 0x0C, 0x40, 0xB3, 0xA2, 0x48, 0x10, 0xF8, 0x42, 0xA9, 0x86, 0x70, 0xFF, 0xFF,
+ 0x24, 0x93, 0x84, 0x7A, 0x22, 0x9C, 0x21, 0xC0, 0xC0, 0x7E, 0x00, 0xB7, 0x0E, 0x40, 0x00, 0xB3, 0x24, 0x4A, 0x22, 0x9C, 0x01, 0xC0, 0xC2, 0x7C, 0x00, 0xC0, 0xE2, 0x90, 0x71, 0xC0,
+ 0x8C, 0x9C, 0x70, 0xD0, 0x80, 0x45, 0xB0, 0x31, 0x8D, 0xA4, 0x39, 0xF8, 0x85, 0xA1, 0xEC, 0x9F, 0xF8, 0xF9, 0x1D, 0xA8, 0x60, 0x8C, 0x22, 0x9C, 0x02, 0xC0, 0x88, 0x9C, 0x01, 0xC0,
+ 0x80, 0x9C, 0x01, 0xC0, 0x04, 0x2C, 0x20, 0x5C, 0x70, 0xC0, 0x00, 0x28, 0x48, 0x58, 0x22, 0x9C, 0x05, 0xA6, 0x09, 0xC8, 0x42, 0x0E, 0x97, 0xB0, 0xC6, 0x37, 0x81, 0x02, 0x40, 0xB7,
+ 0x0E, 0x5B, 0x20, 0xB5, 0x8C, 0x53, 0x80, 0x74, 0x00, 0xC0, 0xE2, 0x93, 0xB1, 0xD0, 0xD8, 0x09, 0xAD, 0x9E, 0x82, 0x0D, 0x09, 0xC8, 0x42, 0x0E, 0x97, 0xB0, 0x06, 0x32, 0x09, 0xC8,
+ 0x42, 0x0E, 0x97, 0xB0, 0x06, 0x3F, 0x11, 0xC0, 0x80, 0x0A, 0xB1, 0xD0, 0xD8, 0x09, 0x21, 0xC9, 0xC5, 0x9C, 0x82, 0x0D, 0x09, 0xC8, 0x42, 0x0E, 0x97, 0xB0, 0x06, 0x32, 0x09, 0xC8,
+ 0x42, 0x0E, 0x97, 0xB0, 0x06, 0x3F, 0xA0, 0xB5, 0x0E, 0x40, 0xF8, 0xF9, 0x9D, 0xAA, 0xF8, 0xF9, 0x1D, 0xAA, 0x22, 0x9C, 0x00, 0x78, 0x21, 0xD0, 0xDA, 0x46, 0x40, 0xB3, 0xA2, 0x48,
+ 0x60, 0xB7, 0xBC, 0x42, 0x49, 0xC0, 0x82, 0x0D, 0x08, 0xC0, 0x80, 0x0D, 0x21, 0xC0, 0x40, 0x7F, 0xC1, 0xCF, 0x80, 0x2E, 0x80, 0xC2, 0xB9, 0x5E, 0x22, 0xD0, 0xD0, 0x0E, 0xBA, 0x05,
+ 0x82, 0x09, 0x39, 0xF8, 0xE5, 0xA1, 0x83, 0x9E, 0x32, 0xF0, 0xB0, 0x8C, 0x39, 0xF8, 0xE5, 0xA1, 0x60, 0xB9, 0x78, 0x40, 0x09, 0xC8, 0x42, 0x0D, 0xEA, 0xCB, 0x50, 0x0D, 0x52, 0x9E,
+ 0x39, 0xF8, 0x65, 0xA1, 0xFF, 0xFF, 0xC1, 0x93, 0x09, 0xC8, 0x42, 0x0D, 0x08, 0xCC, 0x60, 0x0D, 0x98, 0xF1, 0x66, 0xA1, 0x22, 0x9C, 0x00, 0xB7, 0x35, 0x40, 0x60, 0xB7, 0xBF, 0x43,
+ 0x02, 0xC0, 0x00, 0x72, 0x2E, 0x0D, 0x30, 0xB3, 0xA2, 0x50, 0x06, 0x0D, 0x02, 0x87, 0x74, 0xC0, 0xCE, 0x9C, 0xF3, 0x9C, 0x00, 0xB7, 0x35, 0x40, 0x02, 0xC4, 0x00, 0x72, 0x44, 0x55,
+ 0x04, 0x44, 0x00, 0xB5, 0x35, 0x40, 0xF0, 0x9C, 0x74, 0xC0, 0xCE, 0x9C, 0x2A, 0x0D, 0x88, 0x5C, 0x84, 0x0C, 0x1B, 0x9C, 0x33, 0x9D, 0x13, 0xE0, 0x80, 0x84, 0x39, 0xF8, 0x05, 0xA2,
+ 0x51, 0xC0, 0x84, 0x9C, 0x09, 0xC8, 0x42, 0x0A, 0x1E, 0xCC, 0x70, 0x0A, 0x08, 0x70, 0x06, 0xC0, 0xC2, 0x92, 0x9C, 0x0D, 0x01, 0x81, 0x00, 0xE0, 0x07, 0x00, 0xFE, 0xCF, 0xE2, 0x2D,
+ 0x07, 0x04, 0x32, 0xB3, 0x6A, 0x48, 0x09, 0xC8, 0xC2, 0x0C, 0x48, 0xCC, 0xD0, 0x0C, 0x33, 0xE0, 0xA0, 0x85, 0x01, 0xC8, 0x80, 0x29, 0x01, 0xC0, 0x8A, 0x08, 0x96, 0x00, 0x18, 0xF8,
+ 0xC1, 0xA0, 0x71, 0xF1, 0x20, 0x84, 0xF8, 0xC9, 0x7D, 0xA4, 0x82, 0x08, 0x82, 0x0C, 0x39, 0xF8, 0xE5, 0xA0, 0x39, 0xF8, 0xE5, 0xA0, 0x08, 0xCA, 0x1F, 0xA4, 0x85, 0x80, 0x03, 0xC0,
+ 0x00, 0x90, 0xEF, 0x9C, 0x95, 0xE0, 0xC0, 0x84, 0x02, 0x9C, 0x10, 0xC0, 0x82, 0x9C, 0x1F, 0xB7, 0x4E, 0x79, 0xFF, 0x9C, 0x00, 0xB5, 0xEE, 0x40, 0x72, 0xE1, 0x00, 0x84, 0x01, 0xC0,
+ 0x88, 0x9C, 0x40, 0xB9, 0x00, 0x40, 0x10, 0xC8, 0x1F, 0xA4, 0xF0, 0x9C, 0x54, 0xE0, 0x00, 0x85, 0x81, 0x80, 0xE0, 0xC8, 0xDD, 0xA4, 0x01, 0xC0, 0x8E, 0x9C, 0x02, 0x0D, 0x02, 0xC0,
+ 0x8B, 0x9C, 0x01, 0xC0, 0x87, 0x9C, 0x20, 0xB9, 0x00, 0x40, 0x00, 0xC8, 0x45, 0xA5, 0x81, 0x01, 0x0D, 0xC0, 0x82, 0x29, 0x52, 0xC0, 0x87, 0x9C, 0x01, 0xC0, 0x84, 0x39, 0x60, 0xB5,
+ 0x6F, 0x40, 0x06, 0xC0, 0x60, 0x84, 0x71, 0xC0, 0x8A, 0x9C, 0x02, 0xC0, 0x8A, 0x9C, 0x81, 0x01, 0x05, 0xCA, 0x80, 0x29, 0x01, 0xCF, 0x00, 0x2D, 0x71, 0x5D, 0x17, 0xD0, 0x28, 0x29,
+ 0xFE, 0xEF, 0x6C, 0x29, 0x01, 0xC0, 0x84, 0x39, 0x20, 0xB7, 0x16, 0x40, 0x02, 0xC0, 0xE2, 0x90, 0x02, 0xC0, 0x80, 0x70, 0x84, 0x7C, 0x82, 0x9E, 0x60, 0xB7, 0xBD, 0x40, 0x86, 0x0D,
+ 0x71, 0xC0, 0x8C, 0x9C, 0x2E, 0xD0, 0x68, 0x55, 0x17, 0xD0, 0x88, 0x29, 0x02, 0xE0, 0x22, 0x76, 0xB0, 0x31, 0x40, 0x0D, 0x22, 0xD1, 0x08, 0x5C, 0x1B, 0xB4, 0x7A, 0x4A, 0x40, 0x08,
+ 0x00, 0xE0, 0x26, 0xA8, 0xAF, 0x9D, 0xF4, 0xFF, 0xA4, 0x9B, 0xEF, 0x9C, 0x71, 0xC0, 0x8E, 0x9C, 0x70, 0xD0, 0xA0, 0x31, 0x00, 0xB7, 0x6F, 0x40, 0x03, 0x80, 0x71, 0xC8, 0x8B, 0x9C,
+ 0x06, 0x9C, 0xFC, 0xDF, 0xFE, 0x7C, 0xFE, 0xFF, 0x44, 0x90, 0x01, 0xC4, 0x00, 0x7C, 0xFD, 0xFF, 0xC4, 0x93, 0x24, 0xF0, 0x84, 0x58, 0x32, 0xE1, 0x10, 0x84, 0x53, 0xE0, 0x10, 0x84,
+ 0x10, 0xC8, 0x07, 0xAD, 0xE8, 0x9D, 0x24, 0xF0, 0x84, 0x58, 0x05, 0xC0, 0x02, 0x28, 0xF8, 0xC8, 0x9D, 0xAC, 0x30, 0xC0, 0x8B, 0x9C, 0x30, 0xC0, 0x8D, 0x9C, 0x10, 0xC8, 0x1F, 0xAC,
+ 0xFB, 0xFF, 0xC0, 0x93, 0x71, 0xC0, 0x8E, 0x9C, 0x03, 0xE0, 0x70, 0x28, 0x17, 0xD0, 0xA8, 0x29, 0xFE, 0xCF, 0x6C, 0x29, 0xB4, 0x31, 0x12, 0x09, 0x24, 0xD0, 0x49, 0x59, 0x04, 0xC0,
+ 0x22, 0x08, 0xFE, 0xFF, 0x44, 0x90, 0x80, 0xC1, 0x24, 0x5D, 0xF9, 0xCF, 0x80, 0x2D, 0x29, 0x5D, 0xB4, 0x05, 0x31, 0xD8, 0xE6, 0xA8, 0x10, 0xD8, 0x62, 0xA9, 0x00, 0xC8, 0x40, 0x7E,
+ 0x12, 0xB3, 0x42, 0x48, 0x40, 0x5D, 0x94, 0x04, 0x80, 0xC0, 0x59, 0x5D, 0x0C, 0x2D, 0x22, 0xD1, 0x08, 0x5C, 0xFD, 0xFF, 0x60, 0x91, 0x39, 0xF8, 0x25, 0xAA, 0x33, 0xE0, 0x10, 0x8C,
+ 0x45, 0x9D, 0x22, 0x9C, 0x00, 0x00, 0x09, 0xC8, 0xC2, 0x87, 0x60, 0xB0, 0x20, 0x0C, 0x09, 0xC8, 0xC2, 0x87, 0x60, 0xB0, 0x60, 0x0A, 0xF4, 0xFF, 0xA0, 0x92, 0x09, 0xC8, 0xC2, 0x87,
+ 0x60, 0xB0, 0xC0, 0x09,
+};
+
+
+static const unsigned char aui81163_SSData[] = {
+ 0xD0, 0xC4, 0x90, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD0, 0x2F, 0x80, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x25, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x04, 0x00, 0x04, 0x80, 0x04, 0x80, 0x04, 0x80, 0x04, 0x00, 0x05, 0x80, 0x04, 0x00, 0x06, 0x80, 0x04, 0x00, 0x07, 0x80, 0x04,
+ 0x00, 0x08, 0x80, 0x04, 0x00, 0x10, 0x80, 0x04, 0x09, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB8, 0x73, 0x88, 0x82, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x17, 0x01, 0x07, 0x00, 0xD7, 0x01, 0x0F, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xEF, 0xD8, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD0, 0xC4, 0x90, 0x80, 0xB0, 0x00, 0x90, 0x80, 0xD0, 0x02, 0x90, 0x80, 0xF4, 0x70, 0x88, 0x82, 0xB0, 0x70, 0x88, 0x82, 0xCC, 0x70, 0x88, 0x82,
+ 0x1C, 0x71, 0x88, 0x82, 0x64, 0x64, 0x88, 0x82, 0xF4, 0x62, 0x88, 0x82, 0xF8, 0x62, 0x88, 0x82, 0x6C, 0x64, 0x88, 0x82, 0xEC, 0x69, 0x88, 0x82, 0xDC, 0x6D, 0x88, 0x82, 0x1C, 0x6E,
+ 0x88, 0x82, 0x2C, 0x6E, 0x88, 0x82, 0x3C, 0x6E, 0x88, 0x82, 0x68, 0x6E, 0x88, 0x82, 0x24, 0x6F, 0x88, 0x82, 0x48, 0x6F, 0x88, 0x82, 0x64, 0x6F, 0x88, 0x82, 0x6C, 0x6F, 0x88, 0x82,
+ 0x88, 0x6F, 0x88, 0x82, 0x80, 0x71, 0x88, 0x82, 0x84, 0x71, 0x88, 0x82, 0xB0, 0x71, 0x88, 0x82, 0xDC, 0x71, 0x88, 0x82, 0xE4, 0x71, 0x88, 0x82, 0xEC, 0x71, 0x88, 0x82, 0x10, 0x72,
+ 0x88, 0x82, 0x34, 0x72, 0x88, 0x82, 0x38, 0x72, 0x88, 0x82, 0x5C, 0x72, 0x88, 0x82, 0xA8, 0x73, 0x88, 0x82, 0xAC, 0x73, 0x88, 0x82, 0xB0, 0x73, 0x88, 0x82, 0xB4, 0x73, 0x88, 0x82,
+ 0x38, 0x64, 0x88, 0x82, 0x3C, 0x64, 0x88, 0x82, 0x00, 0x6A, 0x88, 0x82, 0x10, 0x6A, 0x88, 0x82, 0x14, 0x6A, 0x88, 0x82, 0x6C, 0x6B, 0x88, 0x82, 0x1C, 0x6B, 0x88, 0x82, 0x14, 0x6B,
+ 0x88, 0x82, 0xAC, 0x6C, 0x88, 0x82, 0xE0, 0x6C, 0x88, 0x82, 0x0C, 0x6D, 0x88, 0x82, 0x28, 0x6D, 0x88, 0x82, 0x44, 0x6D, 0x88, 0x82, 0x60, 0x6D, 0x88, 0x82, 0x7C, 0x6D, 0x88, 0x82,
+ 0x98, 0x6D, 0x88, 0x82, 0xAA, 0x6D, 0x88, 0x82, 0xB0, 0x6D, 0x88, 0x82, 0xCC, 0x6D, 0x88, 0x82, 0x8C, 0x6F, 0x88, 0x82, 0x94, 0x6F, 0x88, 0x82, 0x9C, 0x6F, 0x88, 0x82, 0x28, 0x70,
+ 0x88, 0x82, 0x44, 0x70, 0x88, 0x82, 0x68, 0x70, 0x88, 0x82, 0x78, 0x70, 0x88, 0x82, 0x7C, 0x70, 0x88, 0x82, 0x80, 0x70, 0x88, 0x82, 0x98, 0x70, 0x88, 0x82, 0x28, 0x71, 0x88, 0x82,
+ 0x64, 0x71, 0x88, 0x82, 0x3C, 0x72, 0x88, 0x82, 0x00, 0x00, 0x00, 0x00, 0xD8, 0x7D, 0x88, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5C, 0x64, 0x88, 0x82, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x64, 0x88, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x01, 0x00, 0xCD, 0xCD, 0xCD, 0xCD, 0x07, 0x00, 0x00, 0x00,
+ 0xEF, 0xBE, 0xAD, 0xDE, 0xEF, 0xBE, 0xAD, 0xDE, 0xEF, 0xBE, 0xAD, 0xDE, 0xEF, 0xBE, 0xAD, 0xDE, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00,
+ 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x02, 0x03, 0x00, 0x01, 0x02, 0x03, 0x00, 0x01, 0x02, 0x03, 0x00, 0x01, 0x02, 0x03, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00,
+ 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x02, 0x03, 0x0D, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x09, 0x00,
+ 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x0E, 0x00, 0x0B, 0x00, 0x0A, 0x00, 0x0A, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, 0x0D, 0x00, 0x02, 0x00, 0x07, 0x00,
+ 0x01, 0x00, 0x04, 0x00, 0x03, 0x00, 0x06, 0x00, 0x09, 0x00, 0x0C, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x04, 0x00,
+ 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
+ 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x03, 0x00,
+ 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00,
+ 0x07, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x75, 0x00,
+ 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
+ 0x79, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x7A, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x7B, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x00, 0x07, 0x00,
+ 0x00, 0x00, 0x7D, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0xFF, 0x00,
+ 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00,
+ 0x01, 0x02, 0x00, 0x03, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00,
+ 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x02, 0x03, 0x00, 0x00, 0x00, 0x01, 0x01, 0x02, 0x02, 0x03, 0x03, 0x00, 0x01, 0x00, 0x01, 0x02, 0x03, 0x02, 0x03, 0x02, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x04, 0x00,
+ 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00,
+ 0x08, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0xFE, 0x01, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xFE, 0x03, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0xFE, 0x07,
+ 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0xFE, 0x0F, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0xFE, 0x1F, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0xFE, 0x3F, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00,
+ 0xFE, 0x7F, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
+ 0x03, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0x00, 0x55, 0x00, 0x40, 0x00, 0x33, 0x00,
+ 0x2B, 0x00, 0x25, 0x00, 0x20, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x01, 0x01, 0x02, 0x03, 0x03, 0x04, 0x04, 0x05, 0x05, 0x05, 0x05, 0x06, 0x06, 0x07, 0x07, 0x07, 0x07, 0x07,
+ 0x07, 0x08, 0x08, 0x08, 0x08, 0xFF, 0xFF, 0x00, 0x01, 0x01, 0x02, 0x01, 0x03, 0x01, 0x02, 0x03, 0x04, 0x01, 0x05, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x01, 0x03, 0x05, 0x07, 0xFF,
+ 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
+ 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00,
+ 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00,
+ 0x00, 0x02, 0x03, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
+ 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xFF, 0x00,
+ 0x00, 0x00, 0x01, 0x00, 0x02, 0x03, 0x04, 0x00, 0x00, 0x00, 0x00, 0x03, 0x02, 0x01, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
+ 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00,
+ 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00,
+ 0x01, 0x00, 0x02, 0x03, 0x00, 0x03, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10, 0x11, 0x12,
+ 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1B, 0x1D, 0x1F, 0x00, 0x00, 0x5B, 0x06, 0x5B, 0x00, 0x13, 0x04, 0x6E, 0x00, 0x14, 0x06, 0x82, 0x00, 0x12, 0x06, 0x94, 0x00, 0x14, 0x06,
+ 0xA8, 0x00, 0x4D, 0x06, 0xF5, 0x00, 0xF1, 0x09, 0xE6, 0x02, 0x0C, 0x09, 0xF2, 0x03, 0x6F, 0x06, 0x61, 0x04, 0xF6, 0x08, 0x57, 0x05, 0xD6, 0x09, 0x2D, 0x07, 0x22, 0x08, 0x4F, 0x07,
+ 0x08, 0x02, 0x57, 0x07, 0x16, 0x04, 0x6D, 0x07, 0x5D, 0x06, 0xCA, 0x07, 0x04, 0x02, 0xCE, 0x07, 0x03, 0x22, 0xD1, 0x07, 0x05, 0x22, 0xD6, 0x07, 0x05, 0x22, 0xDB, 0x07, 0x2B, 0x08,
+ 0x06, 0x08, 0x25, 0x08, 0x2B, 0x08, 0x23, 0x08, 0x4E, 0x08, 0x2B, 0x08, 0x79, 0x08, 0x0B, 0x02, 0x84, 0x08, 0x0D, 0x04, 0x91, 0x08, 0x0B, 0x02, 0x9C, 0x08, 0x0B, 0x22, 0xA7, 0x08,
+ 0x42, 0x04, 0xE9, 0x08, 0x4F, 0x08, 0x38, 0x09, 0x51, 0x08, 0x89, 0x09, 0x46, 0x08, 0xCF, 0x09, 0x4D, 0x08, 0x1C, 0x0A, 0x44, 0x08, 0x60, 0x0A, 0x4E, 0x08, 0xAE, 0x0A, 0x4F, 0x08,
+ 0xFD, 0x0A, 0x5C, 0x08, 0x59, 0x0B, 0xAE, 0x09, 0x07, 0x0D, 0x40, 0x09, 0x47, 0x0E, 0x50, 0x2A, 0x97, 0x0E, 0x16, 0x06, 0xAD, 0x0E, 0x07, 0x02, 0xB4, 0x0E, 0x14, 0x04, 0xC8, 0x0E,
+ 0x16, 0x06, 0xDE, 0x0E, 0x08, 0x04, 0xE6, 0x0E, 0x18, 0x06, 0xFE, 0x0E, 0x97, 0x08, 0x95, 0x0F, 0x9D, 0x08, 0x32, 0x10, 0x22, 0x08, 0x54, 0x10, 0x20, 0x08, 0x74, 0x10, 0x22, 0x08,
+ 0x96, 0x10, 0x22, 0x08, 0xB8, 0x10, 0x22, 0x08, 0xDA, 0x10, 0x22, 0x08, 0xFC, 0x10, 0x20, 0x08, 0x1C, 0x11, 0x22, 0x08, 0x3E, 0x11, 0x59, 0x08, 0x97, 0x11, 0x55, 0x08, 0xEC, 0x11,
+ 0x34, 0x08, 0x20, 0x12, 0x60, 0x08, 0x80, 0x12, 0x62, 0x08, 0xE2, 0x12, 0x62, 0x08, 0x44, 0x13, 0x65, 0x08, 0xA9, 0x13, 0x5F, 0x08, 0x08, 0x14, 0x06, 0x28, 0x0E, 0x14, 0x06, 0x28,
+ 0x14, 0x14, 0x20, 0x08, 0x34, 0x14, 0x20, 0x08, 0x54, 0x14, 0x10, 0x06, 0x64, 0x14, 0x10, 0x06, 0x74, 0x14, 0x06, 0x28, 0x7A, 0x14, 0x20, 0x08, 0x9A, 0x14, 0x5F, 0x08, 0xF9, 0x14,
+ 0x58, 0x08, 0x51, 0x15, 0x5A, 0x08, 0xAB, 0x15, 0x50, 0x06, 0xFB, 0x15, 0xB0, 0x08, 0xAB, 0x16, 0xB4, 0x08, 0x5F, 0x17, 0xAD, 0x08, 0x0C, 0x18, 0xB7, 0x08, 0xC3, 0x18, 0xB3, 0x08,
+ 0x76, 0x19, 0xB2, 0x08, 0x28, 0x1A, 0xAD, 0x06, 0xD5, 0x1A, 0xF4, 0x09, 0x0A, 0x07, 0x2E, 0x00, 0x09, 0x06, 0x2D, 0x00, 0x25, 0x07, 0x2E, 0x00, 0x24, 0x06, 0x2D, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x7E, 0x88, 0x82, 0x2C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0xF0, 0x7D, 0x88, 0x82,
+ 0xF0, 0x7D, 0x88, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x7F, 0x88, 0x82, 0x2C, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0xA0, 0x7E, 0x88, 0x82, 0xA0, 0x7E, 0x88, 0x82,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x58, 0x7F, 0x88, 0x82, 0x2A, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD8, 0x7D, 0x88, 0x82, 0xD8, 0x7D, 0x88, 0x82, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x01, 0x00, 0x00, 0x78, 0x7F, 0x88, 0x82, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x98, 0x7F, 0x88, 0x82, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x80, 0x00, 0x00, 0x90, 0x80,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB8, 0x7F, 0x88, 0x82, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD0, 0xC4, 0x90, 0x80, 0xD0, 0xC4,
+ 0x90, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD8, 0x7F, 0x88, 0x82, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xC4, 0x90, 0x80,
+ 0xC0, 0xC4, 0x90, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x7F, 0x88, 0x82, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xC4,
+ 0x90, 0x80, 0xB0, 0xC4, 0x90, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0x7F, 0x00,
+ 0x00, 0x00, 0x00, 0xB0, 0x00, 0x00, 0x00, 0xB0,
+};
+
+/*
+static const FW_PATCHLIST a1163_SSPatch[] =
+{
+ { VLD_SETUP_WDT , 0x62e8 },
+ { MC_SETUP_WDT , 0x62ec },
+ { FW_ACTIVITY_WDT , 0x62f0 },
+ { TIMER_DIV , 0x62fc },
+};
+*/
+
+const FIRMWARE sFirmware1163_SS = {
+ "BUILD_DEVA_FW1.00.10.1163_1163_SS",
+ "13_10_2010",
+ 25204, /* TextSize bytes */
+ 7568, /* DataSize bytes */
+ 0x00006280, /* DataOffset bytes */
+ aui81163_SSText,
+ aui81163_SSData,
+};
+
+
+static const unsigned char aui81163_FSText[] = {
+ 0x01, 0xC0, 0x40, 0x90, 0xFE, 0x93, 0x09, 0xC8, 0x42, 0x0E, 0x00, 0xC0, 0x00, 0x0E, 0x29, 0xC8, 0x22, 0x84, 0x48, 0xC7, 0x20, 0x84, 0x29, 0xC8, 0x22, 0x86, 0x90, 0xC5, 0x00, 0x86,
+ 0x83, 0x9E, 0x43, 0x9E, 0x09, 0xC8, 0x42, 0x0D, 0x1A, 0xCB, 0x60, 0x0D, 0x09, 0xC8, 0x42, 0x09, 0x1C, 0xCB, 0x20, 0x09, 0x09, 0xC8, 0x42, 0x0E, 0x0A, 0xC0, 0x40, 0x0E, 0x09, 0xC8,
+ 0xC2, 0x87, 0x0E, 0xC0, 0xD0, 0x87, 0x18, 0x9C, 0x02, 0x08, 0x02, 0x0C, 0x82, 0x0D, 0x82, 0x09, 0x02, 0x0D, 0x02, 0x09, 0x82, 0x0C, 0x82, 0x08, 0xFE, 0xFF, 0x20, 0x93, 0x38, 0xC8,
+ 0x01, 0xA4, 0x09, 0xC8, 0xC2, 0x0D, 0x1A, 0xCB, 0xA0, 0x0D, 0x09, 0xC8, 0x42, 0x0E, 0x80, 0xB0, 0x46, 0x0B, 0x7F, 0xB7, 0x74, 0x7E, 0x82, 0x08, 0x8D, 0xA4, 0xF3, 0x9F, 0xFF, 0xFF,
+ 0xE0, 0x93, 0x13, 0x9D, 0x81, 0x80, 0x39, 0xF8, 0x05, 0xA2, 0x07, 0x07, 0x07, 0x03, 0x85, 0x06, 0x97, 0x9E, 0x83, 0x03, 0x0F, 0x06, 0xA0, 0x0F, 0x8D, 0x05, 0x8D, 0x01, 0x8F, 0x00,
+ 0x62, 0x9C, 0xFF, 0xFF, 0x40, 0x93, 0x0B, 0x06, 0xA0, 0x0E, 0x62, 0x9C, 0xFF, 0xFF, 0xA0, 0x93, 0x8D, 0x05, 0x8D, 0x01, 0x00, 0xB7, 0x8C, 0x54, 0x80, 0xB7, 0x14, 0x54, 0x01, 0x9C,
+ 0x05, 0xA6, 0x87, 0x06, 0x0B, 0x06, 0xA0, 0x0E, 0x62, 0x9C, 0xFF, 0xFF, 0xA0, 0x93, 0xF8, 0xF9, 0x9D, 0xAA, 0xF8, 0xF9, 0x1D, 0xAA, 0x22, 0x9C, 0x22, 0x9C, 0x0E, 0xC0, 0xFC, 0x29,
+ 0x40, 0xB7, 0x8C, 0x43, 0x71, 0xC0, 0xCE, 0x9C, 0x49, 0xC0, 0x82, 0x08, 0xFC, 0xC2, 0xC0, 0x08, 0x10, 0xD0, 0x61, 0xAA, 0x0C, 0x0A, 0x00, 0xE2, 0x09, 0x5A, 0x20, 0xB7, 0xB5, 0x43,
+ 0x01, 0xC0, 0x82, 0x90, 0x40, 0xB7, 0x04, 0x42, 0x8A, 0x9E, 0x82, 0x87, 0x10, 0xD0, 0xC2, 0x19, 0x31, 0xF0, 0xE5, 0xA8, 0xA6, 0xD0, 0x08, 0x5D, 0x2D, 0x9E, 0x30, 0xE0, 0xCD, 0xA0,
+ 0x50, 0xD8, 0x49, 0xAA, 0x84, 0x0C, 0x49, 0x9E, 0x00, 0xC2, 0x40, 0x5A, 0x00, 0xC2, 0x41, 0x5A, 0x48, 0x70, 0xE0, 0x9D, 0x10, 0xB3, 0x46, 0x48, 0x81, 0x04, 0x10, 0xF0, 0x59, 0xAA,
+ 0x49, 0x9E, 0x48, 0x70, 0xFF, 0xFF, 0x82, 0x93, 0xFF, 0xFF, 0xC1, 0x90, 0x49, 0xC0, 0x82, 0x08, 0xFC, 0xC2, 0xC0, 0x08, 0x20, 0xB5, 0xB5, 0x43, 0x71, 0xC0, 0xCE, 0x9C, 0xB0, 0x08,
+ 0x80, 0xB7, 0x2D, 0x40, 0xC0, 0x74, 0x04, 0x0A, 0x80, 0xB5, 0x2D, 0x40, 0x40, 0xB3, 0xA2, 0x48, 0x80, 0xB7, 0x8C, 0x46, 0x00, 0xC4, 0x02, 0x85, 0x08, 0xF2, 0x0B, 0xA1, 0x22, 0x9C,
+ 0x1D, 0xA6, 0x20, 0x84, 0xF4, 0xFF, 0xB0, 0x9B, 0x0A, 0x85, 0x37, 0xC1, 0x8B, 0x9C, 0x80, 0xB7, 0x8C, 0x46, 0x04, 0x8D, 0x48, 0xF2, 0x1F, 0xA1, 0x54, 0xC0, 0x49, 0x9A, 0x49, 0xC0,
+ 0x82, 0x08, 0xFC, 0xC2, 0xC0, 0x08, 0x80, 0xB7, 0x2D, 0x45, 0x00, 0xC4, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x02, 0x91, 0x06, 0xC0, 0x06, 0x85, 0x0C, 0xC0, 0x0A, 0x0A, 0x00, 0xC0,
+ 0xA0, 0x90, 0x10, 0xC0, 0x1A, 0x85, 0x76, 0x0A, 0x49, 0xC0, 0x82, 0x0C, 0xFC, 0xC2, 0xC0, 0x0C, 0x49, 0xC0, 0x02, 0x0D, 0x00, 0xC2, 0x00, 0x0D, 0x80, 0xB5, 0x4B, 0x45, 0x40, 0xB5,
+ 0x5B, 0x48, 0x26, 0xD2, 0x08, 0x59, 0x40, 0xC0, 0x02, 0x87, 0x10, 0xF0, 0x25, 0x80, 0x40, 0xB5, 0xC3, 0x45, 0x80, 0xB5, 0xCB, 0x48, 0x20, 0xB7, 0xCB, 0x48, 0x5B, 0xCA, 0x16, 0x0A,
+ 0x5A, 0xCA, 0x14, 0x0A, 0x40, 0xB7, 0xCB, 0x45, 0x80, 0xB5, 0x4D, 0x42, 0xC0, 0x58, 0xA6, 0xD0, 0x41, 0x59, 0x20, 0xB7, 0x4D, 0x45, 0x40, 0x59, 0x10, 0xF2, 0x2D, 0x80, 0x26, 0xD1,
+ 0x41, 0x59, 0x20, 0xE2, 0x2D, 0x81, 0xB5, 0x58, 0x12, 0xD0, 0x12, 0x2B, 0x80, 0xB5, 0x8C, 0x42, 0x40, 0xB5, 0x14, 0x42, 0x0A, 0x85, 0x37, 0xC0, 0x89, 0x9C, 0x82, 0x0F, 0xC0, 0xB7,
+ 0x8C, 0x46, 0x8A, 0x0B, 0x94, 0xC0, 0xD2, 0x9B, 0x71, 0xC9, 0x80, 0x9C, 0x11, 0xF0, 0xC4, 0x2A, 0x00, 0xC0, 0x24, 0x92, 0x80, 0x77, 0x02, 0xC0, 0x42, 0x91, 0x74, 0xC0, 0x4B, 0x99,
+ 0x1C, 0xC0, 0x3E, 0x7C, 0x00, 0xC0, 0x04, 0x91, 0x71, 0xC1, 0x80, 0x9C, 0x08, 0x2A, 0x00, 0x75, 0x01, 0xC0, 0xC2, 0x93, 0x49, 0xC0, 0x82, 0x0E, 0xFC, 0xC2, 0xC0, 0x0E, 0x50, 0xF2,
+ 0xA5, 0xA8, 0x50, 0xF2, 0x2D, 0xAA, 0x48, 0x70, 0x01, 0xC0, 0x82, 0x91, 0x50, 0xF2, 0x25, 0xAA, 0x40, 0xB7, 0x9C, 0x42, 0x00, 0xC2, 0x08, 0x5A, 0x10, 0xE3, 0xA1, 0x81, 0x08, 0xD0,
+ 0xE1, 0xA8, 0x08, 0xD0, 0x65, 0xAA, 0xF6, 0xCF, 0xFD, 0x28, 0x00, 0x75, 0x8C, 0x08, 0x80, 0xC0, 0x89, 0x5A, 0x00, 0xC0, 0xA2, 0x90, 0xA3, 0x9E, 0x74, 0xC0, 0x3A, 0x98, 0x50, 0xF2,
+ 0x27, 0xA9, 0x90, 0xDA, 0x21, 0xAA, 0x10, 0xE3, 0xA3, 0x80, 0x00, 0xC2, 0x40, 0x5A, 0x00, 0xC2, 0x41, 0x5A, 0x48, 0x70, 0x7C, 0x9E, 0x14, 0xB3, 0x26, 0x44, 0x89, 0x00, 0x50, 0xF2,
+ 0xA5, 0xA0, 0xFD, 0xFF, 0xC0, 0x92, 0x40, 0x75, 0xFD, 0xFF, 0x62, 0x92, 0x71, 0xC1, 0x80, 0x9C, 0xFD, 0xFF, 0xE0, 0x91, 0x80, 0x77, 0xFD, 0xFF, 0x84, 0x91, 0x74, 0xC0, 0x00, 0x99,
+ 0x1C, 0xC0, 0x3E, 0x7C, 0xFD, 0xFF, 0xC4, 0x90, 0x12, 0x85, 0x5F, 0xB5, 0x7C, 0x7F, 0x04, 0x8D, 0x48, 0xF2, 0x5F, 0xA1, 0x71, 0xC9, 0x80, 0x9C, 0x08, 0x2A, 0x00, 0x75, 0x00, 0xC0,
+ 0x04, 0x92, 0x27, 0xC9, 0x8F, 0x9C, 0x9F, 0xB7, 0x6C, 0x7F, 0x04, 0x1A, 0x9F, 0xB5, 0x6C, 0x7F, 0x3F, 0xB7, 0x6C, 0x7F, 0x40, 0x74, 0xFF, 0xFF, 0x04, 0x93, 0x17, 0xC9, 0x8F, 0x9C,
+ 0x48, 0xF2, 0xDD, 0xA3, 0xFC, 0xFF, 0x00, 0x91, 0x9F, 0xB7, 0xEE, 0x7D, 0xBF, 0xB7, 0x6E, 0x7E, 0xDF, 0xB7, 0xEE, 0x7E, 0xFF, 0xB7, 0x6E, 0x7F, 0x02, 0xC0, 0x20, 0x8C, 0x22, 0x9C,
+ 0x1D, 0xA6, 0x80, 0xB7, 0x8C, 0x65, 0x12, 0xD0, 0x48, 0x0B, 0x20, 0xB7, 0x0C, 0x46, 0x87, 0x07, 0x07, 0xC0, 0xC2, 0x0B, 0x01, 0xC0, 0xC2, 0x0E, 0x09, 0x03, 0x31, 0xD0, 0x98, 0x0A,
+ 0xCA, 0x7B, 0x00, 0xC0, 0x62, 0x92, 0x08, 0xF2, 0x21, 0xAA, 0x05, 0xC0, 0x04, 0x7D, 0x00, 0xC0, 0xA2, 0x91, 0xFD, 0xCF, 0x76, 0x2A, 0x08, 0xF2, 0x21, 0xA2, 0x0A, 0x85, 0x08, 0xF2,
+ 0x43, 0xA1, 0x10, 0xF2, 0xC2, 0xA9, 0x14, 0xC0, 0x6A, 0x9A, 0x6C, 0x9E, 0x20, 0x0F, 0x20, 0x0B, 0x7D, 0x4A, 0x00, 0xE0, 0xF8, 0x23, 0x02, 0xC0, 0x80, 0x0A, 0x80, 0xC2, 0x84, 0x5E,
+ 0xFF, 0xFF, 0x44, 0x90, 0x9F, 0xB7, 0x6E, 0x7E, 0xBF, 0xB7, 0xEE, 0x7E, 0xDF, 0xB7, 0x6E, 0x7F, 0xFF, 0xB7, 0xEE, 0x7F, 0x02, 0xC0, 0x00, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x5D, 0x9E,
+ 0x51, 0xD0, 0x58, 0x0A, 0xA1, 0x9E, 0x86, 0x0D, 0xE4, 0x55, 0x07, 0xC0, 0xC0, 0x2D, 0x14, 0xC0, 0x1C, 0x9A, 0xAB, 0x9E, 0x14, 0xC0, 0x08, 0x98, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7,
+ 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x0D, 0xA6, 0x80, 0xB7, 0x0C, 0x46, 0xA6, 0xD1, 0x14, 0x5D, 0x10, 0xF3, 0x21, 0x81, 0x40, 0xB7, 0x04, 0x66, 0xB5, 0x9E, 0x30, 0xF2, 0xA5, 0xAA,
+ 0xA6, 0xD1, 0x0C, 0x5D, 0x2D, 0x9E, 0x01, 0xC0, 0xA0, 0x3A, 0x10, 0xF2, 0xA1, 0xA2, 0x30, 0xE0, 0xCE, 0xA9, 0x14, 0xC0, 0x11, 0x9A, 0x02, 0x85, 0xFF, 0xCF, 0xE8, 0x2A, 0x10, 0xF2,
+ 0xA1, 0xA2, 0xFF, 0xCF, 0xDE, 0x2A, 0x10, 0xF2, 0xA1, 0xA2, 0x31, 0xD0, 0x68, 0x0A, 0x08, 0xF2, 0x03, 0xA1, 0x9F, 0xB7, 0xEE, 0x7E, 0xBF, 0xB7, 0x6E, 0x7F, 0xDF, 0xB7, 0xEE, 0x7F,
+ 0x60, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x5D, 0x9E, 0x0E, 0xC0, 0x7C, 0x2D, 0x0E, 0xC0, 0x7C, 0x29, 0x14, 0xC0, 0x3B, 0x98, 0xAB, 0x9E, 0x14, 0xC0, 0x08, 0x98, 0x9F, 0xB7, 0x6E, 0x7F,
+ 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x5D, 0x9E, 0x40, 0xB7, 0x9C, 0x65, 0xA8, 0xD2, 0x0C, 0x59, 0x2D, 0x9E, 0x20, 0xE0, 0x6D, 0xAA, 0x02, 0x75, 0xA3, 0xB5,
+ 0x08, 0x5C, 0x00, 0xC0, 0xE4, 0x90, 0x10, 0x85, 0x20, 0xE0, 0xEE, 0xA9, 0x14, 0xC0, 0xDC, 0x99, 0xAB, 0x9E, 0x14, 0xC0, 0xC9, 0x98, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F,
+ 0x40, 0x8C, 0x22, 0x9C, 0x80, 0xB7, 0x8C, 0x43, 0x71, 0xC1, 0xCC, 0x9C, 0x20, 0xB7, 0x94, 0x46, 0x20, 0xB7, 0x4D, 0x40, 0xB0, 0x5D, 0x00, 0xC1, 0x80, 0x2D, 0x5A, 0x9E, 0xFE, 0xCE,
+ 0xFD, 0x28, 0x94, 0x30, 0x20, 0xB5, 0x4D, 0x40, 0x71, 0xC1, 0xCC, 0x9C, 0x22, 0x9C, 0x0D, 0xA6, 0x5E, 0x9E, 0x80, 0xB7, 0x8C, 0x65, 0x24, 0xD3, 0x8C, 0x59, 0x55, 0x9E, 0x59, 0x9E,
+ 0x06, 0x85, 0x40, 0xE0, 0x27, 0xA1, 0x13, 0xD0, 0x48, 0x09, 0x9E, 0x9E, 0xC7, 0x9D, 0x95, 0x9E, 0x10, 0xE0, 0xEA, 0xA9, 0x0E, 0xC0, 0xFC, 0x2A, 0x0E, 0xC0, 0xFC, 0x2E, 0x14, 0xC0,
+ 0xA3, 0x99, 0x40, 0x75, 0x82, 0x0D, 0x01, 0xD0, 0xB2, 0x0D, 0xF4, 0xFF, 0xD0, 0x9B, 0x20, 0xB7, 0x0C, 0x46, 0x26, 0xD3, 0x14, 0x59, 0x01, 0xC2, 0x22, 0x81, 0x71, 0xF0, 0x20, 0x84,
+ 0x1E, 0x87, 0x0A, 0xF2, 0x00, 0xA1, 0x31, 0xF0, 0x20, 0x84, 0x2A, 0x9E, 0x05, 0xC8, 0x82, 0x0C, 0x42, 0xA3, 0x08, 0xF2, 0x82, 0xA2, 0x20, 0xF0, 0xC6, 0xA0, 0x05, 0xC8, 0x92, 0x0C,
+ 0x00, 0xF0, 0xC2, 0xA0, 0x9F, 0xB7, 0xEE, 0x7E, 0xBF, 0xB7, 0x6E, 0x7F, 0xDF, 0xB7, 0xEE, 0x7F, 0x60, 0x8C, 0x22, 0x9C, 0x1D, 0xA6, 0x80, 0xB7, 0x8C, 0x65, 0x5F, 0x9E, 0x9D, 0x9E,
+ 0x55, 0x9E, 0x06, 0x85, 0x08, 0xF2, 0x03, 0xA1, 0x08, 0xF2, 0x86, 0xA9, 0x96, 0x9E, 0x4E, 0x9E, 0x14, 0xC0, 0x6D, 0x99, 0x82, 0x0D, 0xF4, 0xFF, 0x9D, 0x9B, 0x11, 0xC0, 0x82, 0x08,
+ 0x84, 0x08, 0x80, 0xB7, 0x0C, 0x46, 0x80, 0xC2, 0xD0, 0x5E, 0x6A, 0x9E, 0x42, 0x85, 0x80, 0xC2, 0xA8, 0x5A, 0x08, 0xF2, 0x1B, 0xA1, 0x08, 0xF2, 0x01, 0xA3, 0x08, 0xF2, 0x89, 0xA0,
+ 0xAA, 0x30, 0x72, 0x9E, 0x34, 0xC0, 0x42, 0x85, 0x94, 0x30, 0x08, 0xF2, 0x91, 0xA0, 0x08, 0xF2, 0x17, 0xA1, 0x8F, 0x00, 0x01, 0xC2, 0x88, 0x38, 0x08, 0xF2, 0x85, 0xA0, 0x01, 0xC0,
+ 0x84, 0x38, 0x08, 0xF2, 0x85, 0xA0, 0x9F, 0xB7, 0x6E, 0x7E, 0xBF, 0xB7, 0xEE, 0x7E, 0xDF, 0xB7, 0x6E, 0x7F, 0xFF, 0xB7, 0xEE, 0x7F, 0x02, 0xC0, 0x00, 0x8C, 0x22, 0x9C, 0x05, 0xA6,
+ 0x80, 0xB7, 0x8C, 0x65, 0x06, 0x85, 0x87, 0x06, 0x08, 0xF2, 0x03, 0xA1, 0x08, 0xF2, 0x86, 0xA9, 0x87, 0x02, 0x14, 0xC0, 0x30, 0x99, 0x82, 0x0D, 0xF4, 0xFF, 0x60, 0x9B, 0x80, 0xB7,
+ 0x0C, 0x46, 0x21, 0xC0, 0x82, 0x08, 0x84, 0x08, 0x42, 0x85, 0x08, 0xF2, 0x1B, 0xA1, 0x08, 0xF2, 0x81, 0xA2, 0x08, 0xF2, 0x89, 0xA0, 0x69, 0x9E, 0x34, 0xC0, 0x42, 0x85, 0x08, 0xF2,
+ 0x17, 0xA1, 0x01, 0xC2, 0x80, 0x38, 0x08, 0xF2, 0x85, 0xA0, 0x01, 0xC0, 0x84, 0x38, 0x08, 0xF2, 0x85, 0xA0, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C,
+ 0x40, 0xB7, 0x84, 0x65, 0xA6, 0xD1, 0x0C, 0x5D, 0x2E, 0x9E, 0x38, 0xE0, 0x41, 0xA8, 0x11, 0xD0, 0x04, 0x1A, 0x02, 0x75, 0x40, 0xB3, 0xB2, 0x48, 0x02, 0x85, 0x00, 0xF0, 0x43, 0xA1,
+ 0x22, 0x9C, 0x0D, 0xA6, 0x80, 0xB7, 0x8C, 0x65, 0x5E, 0x9E, 0x06, 0x85, 0x08, 0xF2, 0x03, 0xA1, 0x08, 0xF2, 0x86, 0xA9, 0x87, 0x02, 0x85, 0x06, 0x14, 0xC0, 0xF1, 0x98, 0x86, 0x0D,
+ 0xF4, 0xFF, 0x21, 0x9B, 0x80, 0xB7, 0x0C, 0x46, 0xA1, 0xC0, 0x82, 0x08, 0x1E, 0x85, 0x08, 0xF2, 0x1B, 0xA1, 0x08, 0xF2, 0x81, 0xA2, 0x08, 0xF2, 0x89, 0xA0, 0x08, 0xF2, 0x96, 0xA2,
+ 0x8D, 0x00, 0x81, 0xC2, 0x80, 0x38, 0x08, 0xF2, 0x85, 0xA0, 0x01, 0xC0, 0x84, 0x38, 0x08, 0xF2, 0x85, 0xA0, 0x9F, 0xB7, 0xEE, 0x7E, 0xBF, 0xB7, 0x6E, 0x7F, 0xDF, 0xB7, 0xEE, 0x7F,
+ 0x60, 0x8C, 0x22, 0x9C, 0x0D, 0xA6, 0x07, 0x03, 0x07, 0x07, 0x82, 0x0E, 0x82, 0x0A, 0x54, 0x9E, 0x71, 0xC1, 0xCD, 0x9C, 0x20, 0x75, 0x00, 0xC0, 0x44, 0x91, 0x54, 0xC0, 0x81, 0x9B,
+ 0x13, 0xF0, 0x00, 0x09, 0x00, 0xC0, 0x22, 0x93, 0x00, 0xC0, 0x60, 0x92, 0x00, 0x75, 0x00, 0xC0, 0xA4, 0x90, 0x0A, 0x85, 0x00, 0xC0, 0xA0, 0x91, 0x2A, 0x75, 0x00, 0xC0, 0x24, 0x91,
+ 0x80, 0xB7, 0x8C, 0x46, 0x0E, 0x85, 0x08, 0xF2, 0x8A, 0xAA, 0x00, 0xC0, 0x60, 0x90, 0x0E, 0x85, 0xCF, 0x9D, 0x6B, 0x9E, 0x74, 0xC0, 0xFE, 0x9B, 0x71, 0xC1, 0xCD, 0x9C, 0x0D, 0x00,
+ 0x0D, 0x04, 0x9F, 0xB7, 0xEE, 0x7E, 0xBF, 0xB7, 0x6E, 0x7F, 0xDF, 0xB7, 0xEE, 0x7F, 0x60, 0x8C, 0x22, 0x9C, 0x0D, 0xA6, 0xA0, 0xB7, 0x8C, 0x43, 0x07, 0x03, 0x07, 0x07, 0x71, 0xC1,
+ 0xCD, 0x9C, 0xA8, 0x76, 0x00, 0xC0, 0x84, 0x90, 0x14, 0xC0, 0x53, 0x98, 0x71, 0xC1, 0xCD, 0x9C, 0x0D, 0x00, 0x0D, 0x04, 0x9F, 0xB7, 0xEE, 0x7E, 0xBF, 0xB7, 0x6E, 0x7F, 0xDF, 0xB7,
+ 0xEE, 0x7F, 0x60, 0x8C, 0x22, 0x9C, 0x0D, 0xA6, 0x34, 0xC1, 0x74, 0x9B, 0x11, 0xC0, 0x82, 0x0D, 0x34, 0xC1, 0x58, 0x9B, 0x09, 0xC8, 0x42, 0x0A, 0xDA, 0xC0, 0x70, 0x0A, 0x09, 0xC8,
+ 0xC2, 0x08, 0xCE, 0xC0, 0xB0, 0x08, 0x20, 0xB7, 0x94, 0x41, 0x80, 0xB5, 0x2C, 0x4C, 0x20, 0xB5, 0xAC, 0x4C, 0x20, 0xB5, 0x2C, 0x4A, 0x20, 0xB5, 0x2C, 0x42, 0x20, 0xB5, 0x2C, 0x4B,
+ 0x80, 0xB7, 0x4D, 0x45, 0x20, 0xB7, 0x8C, 0x43, 0x00, 0xC4, 0x00, 0x2A, 0x00, 0x75, 0x51, 0xD0, 0x10, 0x3B, 0x00, 0xC0, 0xA2, 0x90, 0xF9, 0x28, 0x20, 0xB5, 0x8C, 0x43, 0x00, 0xC3,
+ 0x40, 0x5A, 0x00, 0xC2, 0xC1, 0x5A, 0x8B, 0x00, 0xFE, 0xCF, 0xFC, 0x28, 0x83, 0x02, 0x82, 0x0E, 0x8B, 0x01, 0x8B, 0x05, 0x79, 0x2B, 0x34, 0xC1, 0xC5, 0x9B, 0x02, 0x0A, 0x71, 0xC1,
+ 0xCC, 0x9C, 0x4C, 0x32, 0x71, 0xC1, 0xCC, 0x9C, 0x9F, 0xB7, 0xEE, 0x7E, 0xBF, 0xB7, 0x6E, 0x7F, 0xDF, 0xB7, 0xEE, 0x7F, 0x60, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0xA0, 0xB7, 0x94, 0x46,
+ 0x10, 0xF2, 0xA9, 0xA8, 0x80, 0xB7, 0x0C, 0x44, 0x00, 0xE0, 0x98, 0x22, 0x00, 0xC0, 0x22, 0x93, 0x0B, 0x02, 0x07, 0xE0, 0x40, 0x2A, 0x10, 0xF2, 0xAD, 0xA2, 0x00, 0xC0, 0xA2, 0x90,
+ 0xA3, 0x9E, 0xF4, 0xFF, 0xB6, 0x99, 0x09, 0xC2, 0x3E, 0x0A, 0x04, 0xC1, 0x3C, 0x0A, 0x00, 0xE0, 0x58, 0x22, 0xFF, 0xFF, 0x02, 0x91, 0xA3, 0x9E, 0x74, 0xC0, 0x7D, 0x98, 0xFF, 0xFF,
+ 0x60, 0x90, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x20, 0xB7, 0x14, 0x44, 0x80, 0xB7, 0x8C, 0x46, 0x96, 0x34, 0x20, 0xB5, 0x14, 0x44, 0x08, 0xF2,
+ 0x96, 0xA0, 0x22, 0x9C, 0x20, 0xB7, 0x14, 0x44, 0x80, 0xB7, 0x8C, 0x46, 0xFD, 0x4D, 0x96, 0x24, 0x20, 0xB5, 0x14, 0x44, 0x08, 0xF2, 0x96, 0xA0, 0x22, 0x9C, 0x02, 0x85, 0x10, 0xF0,
+ 0x63, 0xA1, 0x22, 0x9C, 0x20, 0xB7, 0x8C, 0x43, 0x10, 0xF0, 0x61, 0xAA, 0x00, 0x75, 0xFF, 0xFF, 0xA2, 0x93, 0x03, 0x02, 0x71, 0xC1, 0xCC, 0x9C, 0x10, 0xF0, 0xE1, 0xA8, 0x84, 0x18,
+ 0x10, 0xF0, 0xE1, 0xA0, 0x71, 0xC1, 0xCC, 0x9C, 0x02, 0x08, 0x22, 0x9C, 0x80, 0xB7, 0x8C, 0x43, 0x71, 0xC1, 0xCC, 0x9C, 0x10, 0xF0, 0xE1, 0xA8, 0x84, 0x08, 0x10, 0xF0, 0xE1, 0xA0,
+ 0x71, 0xC1, 0xCC, 0x9C, 0x02, 0x08, 0x22, 0x9C, 0x1C, 0xC0, 0xFE, 0x7C, 0x8C, 0x5D, 0xA0, 0x2D, 0x5B, 0x9E, 0x82, 0x08, 0x01, 0xD0, 0x92, 0x08, 0x80, 0xB7, 0x8C, 0x47, 0x20, 0x59,
+ 0x30, 0xC0, 0x00, 0x29, 0x0F, 0xC0, 0x7E, 0x2D, 0x88, 0x58, 0x14, 0x31, 0xA6, 0x30, 0x84, 0x38, 0x08, 0xF2, 0x99, 0xA0, 0xF9, 0x28, 0x08, 0xF2, 0x99, 0xA0, 0x08, 0xF2, 0x1E, 0xA1,
+ 0x22, 0x9C, 0x20, 0xB7, 0x8C, 0x47, 0x80, 0xB7, 0xAD, 0x4B, 0x00, 0x75, 0xFF, 0xFF, 0xB6, 0x93, 0x22, 0x9C, 0x20, 0xB7, 0x94, 0x47, 0xA0, 0x5D, 0x59, 0x9E, 0x80, 0xB7, 0x4D, 0x43,
+ 0x4A, 0x9E, 0x30, 0xC0, 0x80, 0x28, 0xCE, 0xCF, 0x7D, 0x2A, 0x42, 0x32, 0x80, 0xB5, 0x4D, 0x43, 0x08, 0xF0, 0x59, 0xAA, 0x59, 0x9E, 0x30, 0xC0, 0x00, 0x2A, 0x02, 0x71, 0xFF, 0xFF,
+ 0x44, 0x93, 0x22, 0x9C, 0x05, 0xA6, 0xA0, 0xB7, 0x8C, 0x47, 0x12, 0x85, 0xC8, 0xF2, 0x27, 0xA1, 0xF4, 0xFF, 0xDB, 0x9B, 0x88, 0xF2, 0x3D, 0xAA, 0xC8, 0xF2, 0xA1, 0xA8, 0x9F, 0xB7,
+ 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0xA0, 0xB7, 0x8C, 0x47, 0xC8, 0xF2, 0xA6, 0xA1, 0xF4, 0xFF, 0xCA, 0x9B, 0x88, 0xF2, 0x3D, 0xAA, 0xC8, 0xF2,
+ 0x21, 0xA8, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x8C, 0x5D, 0x0E, 0xC0, 0xE0, 0x2D, 0x84, 0x3D, 0xFF, 0xFF, 0x60, 0x91, 0x8C, 0x5D, 0x0E, 0xC0,
+ 0xE0, 0x2D, 0xFF, 0xFF, 0xC0, 0x90, 0x9A, 0x0D, 0xFF, 0xFF, 0x60, 0x90, 0x05, 0xA6, 0x80, 0xB7, 0x8C, 0x49, 0x00, 0x75, 0x82, 0x0A, 0x00, 0xC0, 0x22, 0x91, 0x94, 0xC0, 0x43, 0x98,
+ 0x80, 0xB7, 0x8C, 0x49, 0x00, 0x75, 0xFF, 0xFF, 0x64, 0x93, 0x60, 0xB7, 0x8C, 0x43, 0x71, 0xC0, 0xCF, 0x9C, 0x40, 0xB7, 0x8C, 0x46, 0x20, 0xB7, 0x94, 0x47, 0xAA, 0x9E, 0xFF, 0xCF,
+ 0x3E, 0x2D, 0x85, 0x00, 0x80, 0xB7, 0xAD, 0x45, 0x40, 0x2A, 0x00, 0x75, 0xFF, 0xFF, 0x82, 0x93, 0x71, 0xD2, 0x10, 0x0E, 0x08, 0xF2, 0x81, 0xA8, 0x08, 0xF0, 0xC2, 0xA8, 0x55, 0x9E,
+ 0x01, 0xC0, 0xC0, 0x3A, 0x7F, 0x0A, 0x4A, 0x42, 0xA2, 0x9E, 0x94, 0x24, 0x4C, 0x9E, 0xCA, 0x30, 0x08, 0xF0, 0xC1, 0xA0, 0x08, 0xF0, 0xC1, 0xAA, 0x20, 0xB7, 0x8C, 0x47, 0x08, 0xF0,
+ 0xC2, 0xA0, 0x08, 0xF0, 0xC2, 0xA0, 0x10, 0xC0, 0x82, 0x0C, 0x20, 0xB5, 0x35, 0x40, 0x71, 0xC0, 0xCF, 0x9C, 0x06, 0x08, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C,
+ 0x22, 0x9C, 0x20, 0x84, 0x20, 0xB7, 0x94, 0x43, 0x72, 0xC0, 0xCD, 0x9C, 0x20, 0xB7, 0x8C, 0x46, 0x60, 0xB7, 0x2D, 0x40, 0x40, 0xB7, 0x8C, 0x47, 0xFF, 0xCF, 0xFA, 0x29, 0x07, 0x02,
+ 0x01, 0xC0, 0x04, 0x3A, 0x80, 0xB5, 0x2D, 0x40, 0x60, 0xB7, 0x35, 0x40, 0x60, 0xB5, 0x2D, 0x40, 0xC8, 0xF0, 0xCD, 0xA9, 0x81, 0xC0, 0x82, 0x0D, 0x59, 0x9E, 0x32, 0x32, 0xC8, 0xF0,
+ 0x4D, 0xA2, 0xC8, 0xF0, 0xDD, 0xA8, 0x12, 0xD2, 0x20, 0x09, 0x3F, 0xB5, 0x6C, 0x7F, 0x10, 0xF0, 0x41, 0xAA, 0x02, 0xC0, 0x82, 0x09, 0x9F, 0xB5, 0xEC, 0x7F, 0xC8, 0xF0, 0xC9, 0xA1,
+ 0x9F, 0xB7, 0x6C, 0x7F, 0xC8, 0xF0, 0x5D, 0xA2, 0x3F, 0xB7, 0xEC, 0x7F, 0x10, 0xF0, 0xC1, 0xA0, 0xC8, 0xF0, 0xCD, 0xA9, 0x5C, 0x9E, 0x7D, 0x4A, 0xB8, 0x21, 0xC8, 0xF0, 0xCD, 0xA1,
+ 0x72, 0xC0, 0xCD, 0x9C, 0x20, 0x8C, 0x22, 0x9C, 0x10, 0xF0, 0xE9, 0xA8, 0x20, 0xB7, 0x94, 0x46, 0x80, 0xB7, 0x4D, 0x45, 0x0C, 0x75, 0xFF, 0xFF, 0xB4, 0x93, 0x80, 0xB7, 0x0C, 0x48,
+ 0x02, 0x85, 0x48, 0xF2, 0x0B, 0xA1, 0x48, 0xF2, 0x0F, 0xA1, 0x48, 0xF2, 0x13, 0xA1, 0x48, 0xF2, 0x1F, 0xA1, 0xFF, 0xCF, 0xC2, 0x28, 0x01, 0xC0, 0x84, 0x38, 0xFE, 0xC9, 0xFD, 0x28,
+ 0x00, 0xC4, 0x80, 0x38, 0x08, 0xF2, 0x89, 0xA0, 0x10, 0xF0, 0xFD, 0xA8, 0xFE, 0xCC, 0xFD, 0x28, 0x00, 0xC1, 0x80, 0x38, 0x40, 0xC0, 0x00, 0x0A, 0x08, 0xF2, 0x81, 0xA0, 0xC0, 0xCF,
+ 0x01, 0x0A, 0x60, 0xC0, 0x00, 0x0A, 0x08, 0xF2, 0x81, 0xA0, 0x0E, 0xC0, 0x68, 0x85, 0x20, 0xB7, 0x8C, 0x46, 0x80, 0xB7, 0x2D, 0x45, 0x0C, 0x75, 0xFF, 0xFF, 0xA6, 0x93, 0x20, 0xB7,
+ 0x0C, 0x48, 0x60, 0xB9, 0x28, 0x40, 0x40, 0xC0, 0xA0, 0x08, 0x40, 0xB5, 0x3D, 0x40, 0x11, 0xF0, 0x22, 0x84, 0x00, 0xC2, 0x40, 0x5A, 0x26, 0xD2, 0x41, 0x59, 0xFF, 0xFF, 0x01, 0x93,
+ 0x20, 0xB7, 0x8C, 0x46, 0x80, 0xB7, 0x2D, 0x45, 0x06, 0x75, 0xFF, 0xFF, 0xB4, 0x93, 0x82, 0x08, 0x20, 0xB7, 0x14, 0x48, 0x40, 0xC0, 0xA0, 0x0C, 0x20, 0xB5, 0x4D, 0x40, 0x50, 0xF0,
+ 0x7D, 0xAA, 0x08, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0xC2, 0x90, 0x10, 0xC0, 0x82, 0x08, 0x00, 0xC0, 0x60, 0x90, 0x86, 0x08, 0x20, 0xB5, 0x4D, 0x40, 0x20, 0xB7, 0x94, 0x43, 0x72, 0xC0,
+ 0xCD, 0x9C, 0x20, 0xB7, 0x0C, 0x48, 0x02, 0x85, 0x40, 0xC0, 0x90, 0x08, 0x40, 0xB5, 0x3D, 0x40, 0x08, 0x85, 0x40, 0xB5, 0x3D, 0x40, 0x40, 0xB7, 0x8C, 0x46, 0x85, 0x00, 0x80, 0xB7,
+ 0x2D, 0x41, 0x01, 0xC0, 0x30, 0x2A, 0x01, 0xC0, 0x18, 0x75, 0xFF, 0xFF, 0x44, 0x93, 0x08, 0xF0, 0x4D, 0xA2, 0x50, 0xF0, 0x7D, 0xAA, 0x09, 0xC0, 0x00, 0x3A, 0x50, 0xF0, 0x7D, 0xA2,
+ 0x72, 0xC0, 0xCD, 0x9C, 0x4C, 0xC0, 0xE0, 0x91, 0x40, 0xB7, 0x04, 0x48, 0x3A, 0x9D, 0x99, 0x9E, 0x20, 0xB7, 0x8C, 0x46, 0x80, 0xB7, 0x2D, 0x45, 0x00, 0x75, 0xFF, 0xFF, 0xA2, 0x93,
+ 0x2D, 0x9E, 0x20, 0xE0, 0xEE, 0xA0, 0x22, 0x9C, 0x02, 0x0A, 0xA2, 0x0C, 0x81, 0xB4, 0x00, 0xC0, 0x01, 0xB2, 0x20, 0x44, 0x22, 0x9C, 0x39, 0xF8, 0x05, 0xA2, 0x00, 0xC0, 0x80, 0x90,
+ 0x74, 0xC0, 0x24, 0x9B, 0x83, 0xB7, 0x08, 0x60, 0x1C, 0xC0, 0x3E, 0x7D, 0xFF, 0xFF, 0x44, 0x93, 0xF8, 0xF9, 0x1D, 0xAA, 0x22, 0x9C, 0x39, 0xF8, 0x05, 0xA2, 0x02, 0xC0, 0x40, 0x84,
+ 0x3A, 0x9D, 0x18, 0xD0, 0x45, 0xAA, 0x1C, 0xC0, 0x3E, 0x7D, 0x05, 0xC0, 0x64, 0x92, 0x60, 0xB7, 0x84, 0x57, 0xA3, 0xCB, 0x3A, 0x0A, 0xBA, 0xC8, 0x0C, 0x0A, 0x10, 0xE0, 0xA7, 0x88,
+ 0x99, 0x60, 0x8F, 0x58, 0x84, 0x18, 0xBC, 0x28, 0x74, 0xD1, 0x11, 0x69, 0x30, 0xC0, 0x41, 0xAA, 0x40, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x82, 0x92, 0x58, 0xF0, 0x5D, 0xAA, 0x01, 0xC1,
+ 0x00, 0x3A, 0x58, 0xF0, 0x5D, 0xA2, 0x58, 0xF0, 0xDD, 0xA8, 0x01, 0xC0, 0xC0, 0x38, 0x58, 0xF0, 0xDD, 0xA0, 0x82, 0x0D, 0x4F, 0x9D, 0x74, 0xC0, 0xBE, 0x9A, 0x04, 0xC0, 0x60, 0x92,
+ 0x58, 0xF0, 0xDD, 0xA8, 0x58, 0xF0, 0x5D, 0xA9, 0x00, 0xE2, 0x00, 0x29, 0xB9, 0x58, 0x11, 0xD0, 0x92, 0x29, 0x02, 0xC0, 0xE4, 0x92, 0x40, 0xB7, 0x94, 0x41, 0x50, 0xF0, 0x49, 0xAA,
+ 0x80, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x8E, 0x0C, 0x00, 0xC0, 0x22, 0x91, 0x80, 0xB7, 0x0C, 0x50, 0x40, 0xB5, 0x0C, 0x50, 0x84, 0x0C, 0x9F, 0xB5, 0xEC, 0x7B, 0x50, 0xF0, 0x49, 0xAA,
+ 0x00, 0xC4, 0x00, 0x2A, 0x00, 0x75, 0x01, 0xC0, 0x62, 0x90, 0x98, 0xF0, 0x41, 0xAA, 0x98, 0xF0, 0xC5, 0xA8, 0x98, 0xF0, 0xCA, 0xA8, 0x98, 0xF0, 0x4D, 0xA9, 0x9F, 0xB5, 0x6C, 0x7C,
+ 0x3F, 0xB5, 0xEC, 0x7C, 0x3F, 0xB5, 0x74, 0x7D, 0x5F, 0xB5, 0xEC, 0x7D, 0x50, 0xF0, 0x49, 0xAA, 0x00, 0xC8, 0x00, 0x2A, 0x00, 0x75, 0xA2, 0x0C, 0x00, 0xC0, 0x62, 0x91, 0x98, 0xF0,
+ 0x51, 0xAA, 0x98, 0xF0, 0xD5, 0xA8, 0x88, 0x0C, 0x9F, 0xB5, 0x6C, 0x7E, 0x3F, 0xB5, 0xEC, 0x7E, 0xA2, 0xD0, 0x08, 0x5E, 0xD2, 0xE0, 0x80, 0x8D, 0x0C, 0xC0, 0x02, 0x87, 0x5F, 0xB5,
+ 0xE0, 0x68, 0x9F, 0xB5, 0x68, 0x68, 0x58, 0xF0, 0x5D, 0xAA, 0x18, 0xD8, 0xC5, 0xA8, 0x18, 0xD8, 0xDE, 0xA8, 0x5F, 0xB5, 0x7C, 0x7F, 0x9F, 0xB5, 0x6C, 0x7B, 0x3F, 0xB5, 0xEA, 0x74,
+ 0x3F, 0xB5, 0x72, 0x75, 0xD4, 0xFF, 0x11, 0x9A, 0x5F, 0xB7, 0x7C, 0x7F, 0x18, 0xD0, 0x41, 0xAA, 0x02, 0x87, 0x0E, 0xC0, 0x3C, 0x2A, 0x18, 0xD0, 0x41, 0xA2, 0x40, 0xB5, 0x84, 0x49,
+ 0x18, 0xD0, 0x41, 0xAA, 0x10, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0xC4, 0x91, 0x18, 0xD0, 0x41, 0xAA, 0x20, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x04, 0x91, 0x18, 0xD0, 0x41, 0xAA, 0x04, 0x2A,
+ 0x00, 0x75, 0x00, 0xC0, 0x02, 0x93, 0x20, 0xB7, 0x94, 0x47, 0x20, 0xB7, 0x8C, 0x46, 0x80, 0xB7, 0xAD, 0x45, 0x40, 0x2A, 0x00, 0x75, 0xFF, 0xFF, 0x82, 0x93, 0x71, 0xD2, 0x10, 0x0E,
+ 0x08, 0xF2, 0x81, 0xA8, 0x00, 0xC0, 0x00, 0x91, 0x58, 0xF0, 0x5D, 0xAA, 0x01, 0xC1, 0x00, 0x3A, 0x58, 0xF0, 0x5D, 0xA2, 0xF8, 0xF9, 0x05, 0xAA, 0x22, 0x9C, 0x39, 0xF8, 0x05, 0xA2,
+ 0x20, 0x84, 0x9F, 0xB7, 0x6C, 0x7F, 0x0C, 0xC0, 0x0A, 0x85, 0xF0, 0xCF, 0x01, 0x2A, 0x10, 0x3A, 0x9F, 0xB5, 0x6C, 0x7F, 0x5F, 0xB5, 0xF8, 0x7C, 0x10, 0xD8, 0x65, 0xAA, 0x32, 0xE0,
+ 0x80, 0x8D, 0x86, 0x09, 0x9F, 0xB5, 0xEA, 0x7E, 0xD4, 0xFF, 0xC4, 0x99, 0xF8, 0xF9, 0x19, 0xAA, 0x22, 0x9C, 0x39, 0xF8, 0x85, 0xA2, 0x02, 0x0A, 0x87, 0x02, 0x0A, 0x71, 0x01, 0xC0,
+ 0x68, 0x93, 0xA0, 0xB7, 0x94, 0x46, 0x40, 0xB7, 0x1C, 0x48, 0x5A, 0x9E, 0x82, 0x08, 0x44, 0x70, 0x11, 0xD0, 0xC2, 0x09, 0x01, 0xC0, 0x88, 0x91, 0xC3, 0x9D, 0x5E, 0x9D, 0x28, 0xD2,
+ 0xA0, 0x59, 0xCB, 0x9D, 0x02, 0x87, 0x4B, 0x9D, 0xC7, 0x9D, 0x40, 0xC0, 0x20, 0x0C, 0x40, 0xC0, 0x60, 0x0D, 0x42, 0xC0, 0x40, 0x09, 0x50, 0xC0, 0x80, 0x0C, 0x11, 0xD0, 0x12, 0x08,
+ 0x58, 0xF0, 0x69, 0xAA, 0x06, 0x75, 0xFF, 0xFF, 0xB4, 0x93, 0x01, 0xC0, 0x84, 0x38, 0x01, 0xC0, 0x96, 0x30, 0x20, 0xB5, 0x4C, 0x40, 0x12, 0xF0, 0x40, 0xA1, 0x02, 0xC0, 0x82, 0x08,
+ 0x08, 0xF0, 0xC1, 0xA0, 0x40, 0xB5, 0x45, 0x40, 0x81, 0x00, 0x5C, 0x9E, 0x48, 0x70, 0xFF, 0xFF, 0x06, 0x91, 0x07, 0x02, 0x0A, 0x71, 0xFE, 0xFF, 0xA6, 0x91, 0x20, 0xB7, 0x14, 0x48,
+ 0x20, 0xB7, 0x8C, 0x46, 0x80, 0xB7, 0x2D, 0x45, 0x02, 0x75, 0xFF, 0xFF, 0xB4, 0x93, 0x02, 0x85, 0x40, 0xC0, 0x90, 0x0C, 0x40, 0xB5, 0x5D, 0x40, 0x86, 0x08, 0x80, 0xB7, 0x0C, 0x48,
+ 0x40, 0xC0, 0x10, 0x0A, 0x08, 0xF2, 0x81, 0xA0, 0xF8, 0xF9, 0x9D, 0xAA, 0x22, 0x9C, 0x05, 0xA6, 0x5D, 0x9E, 0x82, 0x0D, 0xD4, 0xFF, 0x1D, 0x9B, 0x20, 0xB7, 0x8C, 0x44, 0x20, 0xB7,
+ 0x12, 0x55, 0x34, 0xC0, 0x90, 0x08, 0xE9, 0xF1, 0xBE, 0xA0, 0x48, 0xDA, 0x21, 0xAA, 0x01, 0xC0, 0x04, 0x3A, 0x80, 0xB5, 0x2D, 0x40, 0x08, 0xD2, 0x21, 0xA9, 0x82, 0x0D, 0x06, 0x0D,
+ 0x08, 0xF2, 0xB9, 0xA9, 0x0E, 0xC0, 0x7C, 0x29, 0x05, 0x59, 0x04, 0x49, 0x04, 0x29, 0xD4, 0xFF, 0xF1, 0x9A, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C,
+ 0x5A, 0x9E, 0x00, 0xC1, 0x11, 0x5A, 0x04, 0x1A, 0x3F, 0x75, 0x08, 0xC0, 0x06, 0x85, 0x00, 0xC0, 0x22, 0x92, 0x20, 0xB7, 0x94, 0x47, 0x40, 0xB5, 0xDD, 0x4C, 0x11, 0xD0, 0xC2, 0x18,
+ 0x80, 0xB7, 0xCD, 0x4B, 0x00, 0x75, 0xFF, 0xFF, 0xB6, 0x93, 0x03, 0x02, 0x3F, 0x75, 0xFF, 0xFF, 0xA4, 0x92, 0x31, 0xF0, 0x2E, 0x2A, 0x40, 0xB3, 0xA2, 0x48, 0x20, 0xB7, 0x8C, 0x47,
+ 0x00, 0xC2, 0x0C, 0x5A, 0x04, 0x3A, 0x80, 0xB5, 0xAD, 0x4C, 0x80, 0xB7, 0xAD, 0x4B, 0x00, 0x75, 0xFF, 0xFF, 0xB6, 0x93, 0x22, 0x9C, 0x1D, 0xA6, 0x60, 0x84, 0x3E, 0x9D, 0x20, 0xB7,
+ 0x90, 0x44, 0x7F, 0x87, 0x5F, 0xB5, 0x64, 0x7D, 0x82, 0x0A, 0x82, 0x0F, 0x02, 0x0F, 0x0E, 0xC0, 0x7E, 0x85, 0x40, 0xB5, 0x98, 0x44, 0x3F, 0xB5, 0xF4, 0x7D, 0x01, 0xC9, 0x80, 0x9C,
+ 0x98, 0xF0, 0x71, 0xA2, 0x06, 0x85, 0x40, 0xB5, 0x18, 0x44, 0x18, 0xD0, 0x61, 0xAA, 0x08, 0x2A, 0x00, 0x75, 0xE0, 0xB7, 0x8C, 0x56, 0x03, 0xC0, 0xA2, 0x90, 0x60, 0xB7, 0x0C, 0x4D,
+ 0xBB, 0x9E, 0x7F, 0xB5, 0x7C, 0x7F, 0x34, 0xC0, 0x7A, 0x9B, 0x7F, 0xB7, 0x7C, 0x7F, 0x58, 0xF0, 0x7D, 0xAA, 0x04, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0xE2, 0x90, 0xEF, 0x9D,
+ 0xF4, 0xFF, 0x5E, 0x99, 0x7F, 0xB7, 0x7C, 0x7F, 0x20, 0xB7, 0x94, 0x57, 0xA3, 0xCB, 0xBA, 0x08, 0xBA, 0xC8, 0x8C, 0x08, 0x10, 0xF2, 0x3B, 0x88, 0x43, 0x62, 0x00, 0xC2, 0x0F, 0x5A,
+ 0x04, 0x1A, 0x3C, 0x2A, 0x73, 0xD1, 0x41, 0x69, 0x20, 0xE2, 0xAB, 0x80, 0x18, 0xD8, 0xF5, 0xA8, 0x80, 0xB7, 0xCB, 0x42, 0xBC, 0x28, 0x3C, 0x2A, 0x48, 0x70, 0x00, 0xC0, 0xC2, 0x92,
+ 0xEF, 0x9D, 0x01, 0xC1, 0x82, 0x09, 0x7F, 0xB5, 0x7C, 0x7F, 0x54, 0xC0, 0x2F, 0x98, 0x8B, 0x00, 0x71, 0xC0, 0xCD, 0x9C, 0x7F, 0xB7, 0x7C, 0x7F, 0x58, 0xF0, 0x7D, 0xAA, 0x41, 0xC0,
+ 0x00, 0x3A, 0x58, 0xF0, 0x7D, 0xA2, 0x71, 0xC0, 0xCD, 0x9C, 0xEF, 0x9D, 0x01, 0xC2, 0x82, 0x09, 0x7F, 0xB5, 0x7C, 0x7F, 0x54, 0xC0, 0x1B, 0x98, 0x80, 0xB7, 0x8C, 0x47, 0x0E, 0x85,
+ 0x08, 0xF2, 0x0F, 0xA1, 0x20, 0xB7, 0x8C, 0x48, 0x01, 0xC0, 0x12, 0x0A, 0x10, 0xC0, 0x04, 0x0A, 0x48, 0x70, 0x7F, 0xB7, 0x7C, 0x7F, 0x00, 0xC0, 0x72, 0x91, 0x80, 0xB7, 0x0C, 0x56,
+ 0x08, 0xF2, 0x85, 0xA8, 0x20, 0xB7, 0x94, 0x46, 0xC0, 0x38, 0x20, 0xB5, 0x4D, 0x44, 0x18, 0xD0, 0x61, 0xAA, 0x04, 0x2A, 0x00, 0x75, 0x40, 0xB7, 0x84, 0x4A, 0x00, 0xC0, 0xC2, 0x90,
+ 0x60, 0xB7, 0x8C, 0x4D, 0x00, 0xC0, 0x80, 0x90, 0x60, 0xB7, 0x0C, 0x4D, 0xBB, 0x9E, 0x5F, 0xB5, 0xE4, 0x7E, 0x7F, 0xB5, 0x7C, 0x7F, 0x34, 0xC0, 0x09, 0x9B, 0x7F, 0xB7, 0x74, 0x7F,
+ 0xF4, 0xFF, 0x17, 0x9B, 0x7F, 0xB7, 0x7C, 0x7F, 0x18, 0xD0, 0x61, 0xAA, 0x08, 0x2A, 0x00, 0x75, 0x5F, 0xB7, 0xE4, 0x7E, 0x00, 0xC0, 0x22, 0x92, 0x80, 0xB7, 0x88, 0x44, 0x1C, 0xC0,
+ 0x3C, 0x75, 0x00, 0xC0, 0x64, 0x91, 0x20, 0xB7, 0x8C, 0x4A, 0x80, 0xB7, 0x2D, 0x40, 0x01, 0xD2, 0x00, 0x75, 0x00, 0xC0, 0x62, 0x90, 0x00, 0x9F, 0x18, 0xD8, 0x75, 0xAA, 0x3C, 0x2A,
+ 0x08, 0x75, 0x00, 0xC0, 0x44, 0x91, 0x80, 0xB7, 0x8C, 0x47, 0xB9, 0xC0, 0xC2, 0x08, 0x60, 0xC0, 0x50, 0x0A, 0x08, 0xF2, 0x81, 0xA0, 0x21, 0xF0, 0x45, 0xAB, 0x0D, 0x02, 0x01, 0xCF,
+ 0x00, 0x2A, 0x01, 0xD0, 0x00, 0x75, 0x02, 0xC0, 0xE2, 0x90, 0x01, 0xC0, 0x72, 0x90, 0x01, 0xC8, 0x00, 0x75, 0x07, 0xC0, 0x82, 0x90, 0x00, 0xC0, 0x72, 0x91, 0x00, 0x75, 0xFF, 0xFF,
+ 0xC2, 0x91, 0x01, 0xC2, 0x00, 0x75, 0x02, 0xC0, 0xA2, 0x91, 0xFF, 0xFF, 0x00, 0x91, 0x01, 0xCC, 0x00, 0x75, 0x11, 0xC0, 0x02, 0x92, 0x00, 0xC0, 0x12, 0x91, 0x01, 0xCA, 0x00, 0x75,
+ 0x03, 0xC0, 0x42, 0x91, 0xFE, 0xFF, 0x80, 0x93, 0x01, 0xCE, 0x00, 0x75, 0x07, 0xC0, 0x82, 0x91, 0xFE, 0xFF, 0xC0, 0x92, 0x01, 0xD6, 0x00, 0x75, 0x0A, 0xC0, 0x42, 0x92, 0x00, 0xC0,
+ 0x92, 0x91, 0x01, 0xD2, 0x00, 0x75, 0x0C, 0xC0, 0x02, 0x92, 0x01, 0xD4, 0x00, 0x75, 0x03, 0xC0, 0xC2, 0x93, 0xFE, 0xFF, 0xC0, 0x90, 0x01, 0xDA, 0x00, 0x75, 0x05, 0xC0, 0x22, 0x91,
+ 0x00, 0xC0, 0x12, 0x91, 0x01, 0xD8, 0x00, 0x75, 0x03, 0xC0, 0x42, 0x92, 0xFD, 0xFF, 0x40, 0x93, 0x01, 0xDE, 0x00, 0x75, 0x07, 0xC0, 0xA2, 0x91, 0xFD, 0xFF, 0x80, 0x92, 0x0D, 0x02,
+ 0x01, 0xC0, 0x40, 0x2A, 0x00, 0x75, 0xFD, 0xFF, 0xC2, 0x91, 0x58, 0xF0, 0x7D, 0xAA, 0x01, 0xC0, 0x08, 0x2A, 0x00, 0x75, 0xFD, 0xFF, 0xE4, 0x90, 0xFE, 0xCF, 0x7C, 0x2B, 0x00, 0xC3,
+ 0x08, 0x5A, 0x01, 0xC3, 0x20, 0x83, 0xFC, 0xFF, 0xE0, 0x93, 0xB3, 0x9E, 0x01, 0xC0, 0xBE, 0x2D, 0x84, 0x1D, 0xFF, 0x76, 0xFC, 0xFF, 0x02, 0x93, 0x40, 0xB7, 0x94, 0x46, 0xB7, 0xCF,
+ 0x7E, 0x0C, 0x00, 0xCF, 0x00, 0x0C, 0x00, 0xF0, 0x43, 0xA9, 0x11, 0xD0, 0xB2, 0x1D, 0x10, 0xF2, 0x29, 0x80, 0x00, 0xC2, 0x00, 0x75, 0x31, 0xE0, 0xA0, 0x86, 0x00, 0xF0, 0x45, 0xA9,
+ 0x00, 0xC0, 0x12, 0x91, 0x85, 0x04, 0x80, 0xB7, 0x4D, 0x45, 0x00, 0x75, 0xFF, 0xFF, 0xA2, 0x93, 0x9B, 0x9E, 0x99, 0x9D, 0xFF, 0x76, 0x41, 0xA1, 0xFF, 0xFF, 0x04, 0x91, 0xFB, 0xFF,
+ 0xC0, 0x92, 0x00, 0xC3, 0x41, 0x5A, 0xF2, 0xD3, 0xCE, 0x2A, 0x00, 0xC3, 0x11, 0x5B, 0xFE, 0xC0, 0x7C, 0x2B, 0x7A, 0x85, 0x7E, 0x77, 0x57, 0x9D, 0x55, 0xB3, 0x26, 0x48, 0xCC, 0x9D,
+ 0xAA, 0x9E, 0x8D, 0x01, 0x5F, 0xB5, 0x7C, 0x7E, 0x5F, 0xB5, 0xE4, 0x7E, 0x7F, 0xB5, 0x7C, 0x7F, 0x34, 0xC0, 0x4A, 0x9B, 0x5F, 0xB7, 0xE4, 0x7E, 0x5F, 0xB7, 0x7C, 0x7E, 0xA9, 0x9E,
+ 0x7F, 0xB7, 0x7C, 0x7F, 0x80, 0xC2, 0x08, 0x5A, 0x00, 0xE0, 0xD2, 0x16, 0x6A, 0x03, 0x01, 0xC3, 0x20, 0x83, 0xFF, 0xFF, 0x64, 0x90, 0xFA, 0xFF, 0x80, 0x91, 0x24, 0xD3, 0x90, 0x5A,
+ 0x18, 0xD0, 0x61, 0xAA, 0x82, 0x0D, 0x01, 0xCF, 0x00, 0x2B, 0x5F, 0xB5, 0xE4, 0x7E, 0x7F, 0xB5, 0x7C, 0x7F, 0x0E, 0xC0, 0x7C, 0x2A, 0x00, 0xC2, 0x05, 0x5A, 0x04, 0x4A, 0x11, 0xD0,
+ 0xC2, 0x2A, 0xD4, 0xFF, 0x46, 0x99, 0x01, 0xD4, 0x80, 0x75, 0x5F, 0xB7, 0xE4, 0x7E, 0x7F, 0xB7, 0x7C, 0x7F, 0x00, 0xC0, 0x44, 0x91, 0x6B, 0x9E, 0x82, 0x0D, 0x02, 0x0D, 0x0B, 0x01,
+ 0xD4, 0xFF, 0x68, 0x99, 0x05, 0xC0, 0x40, 0x90, 0x6B, 0x9E, 0x86, 0x0F, 0x82, 0x0D, 0x02, 0x0D, 0x0B, 0x01, 0x5F, 0xB5, 0xE4, 0x7E, 0x7F, 0xB5, 0x7C, 0x7F, 0xD4, 0xFF, 0x5B, 0x99,
+ 0x04, 0xC0, 0xA0, 0x92, 0x00, 0xC3, 0x10, 0x5A, 0x18, 0xF0, 0x79, 0xA2, 0x00, 0xD8, 0xC1, 0xA8, 0x58, 0xD8, 0xE1, 0xA0, 0xF6, 0xFF, 0x20, 0x92, 0x58, 0xF0, 0xFD, 0xA8, 0x00, 0xC1,
+ 0x90, 0x38, 0x58, 0xF0, 0xFD, 0xA0, 0x58, 0xF0, 0x7D, 0xAA, 0x08, 0xC0, 0x00, 0x3A, 0x58, 0xF0, 0x7D, 0xA2, 0xA0, 0xB7, 0x8C, 0x46, 0x06, 0xC0, 0x7E, 0x85, 0x48, 0xF2, 0xA2, 0xAA,
+ 0x48, 0xF2, 0x23, 0xA1, 0x00, 0xF0, 0xC2, 0xA9, 0x00, 0xF0, 0xC5, 0xA9, 0x20, 0x87, 0x5F, 0xB5, 0xE4, 0x7E, 0x7F, 0xB5, 0x7C, 0x7F, 0xF4, 0xFF, 0x88, 0x99, 0x48, 0xF2, 0xA2, 0xA2,
+ 0x03, 0xC0, 0x00, 0x91, 0x21, 0xF0, 0x45, 0xAA, 0x18, 0xF0, 0x71, 0xA2, 0x00, 0xD8, 0xC1, 0xA8, 0x58, 0xD8, 0xE9, 0xA0, 0x20, 0xD8, 0x49, 0xAA, 0x58, 0xD8, 0x6D, 0xA2, 0x10, 0x87,
+ 0x21, 0xF0, 0x45, 0xAA, 0xEF, 0x9D, 0x02, 0x85, 0x18, 0xF0, 0x79, 0xA2, 0x00, 0xF0, 0xC1, 0xA8, 0x01, 0xC8, 0x82, 0x09, 0x58, 0xF0, 0x73, 0xA1, 0x18, 0xF0, 0xFD, 0xA0, 0x7F, 0xB5,
+ 0x7C, 0x7F, 0x34, 0xC0, 0x8F, 0x9A, 0x7F, 0xB7, 0x7C, 0x7F, 0x0D, 0xC0, 0x60, 0x91, 0x20, 0xB7, 0x14, 0x55, 0x00, 0xF0, 0xC9, 0xA8, 0x00, 0xF0, 0xC2, 0xA9, 0x00, 0xF0, 0xC5, 0xA9,
+ 0x20, 0xB5, 0x4D, 0x40, 0x00, 0xF0, 0x4D, 0xAA, 0x80, 0xB5, 0xCD, 0x40, 0x00, 0xF0, 0xD1, 0xA8, 0x20, 0xB5, 0x4D, 0x41, 0x00, 0xF0, 0x55, 0xAA, 0x5F, 0xB5, 0xE4, 0x7E, 0x7F, 0xB5,
+ 0x7C, 0x7F, 0x80, 0xB5, 0x0C, 0x53, 0xB4, 0xC0, 0x23, 0x98, 0x5F, 0xB7, 0xE4, 0x7E, 0xFF, 0xC0, 0x7E, 0x2B, 0x82, 0x75, 0x7F, 0xB7, 0x7C, 0x7F, 0x02, 0xC0, 0x00, 0x87, 0x00, 0xC0,
+ 0x02, 0x92, 0x06, 0x0F, 0x86, 0x0D, 0x5F, 0xB5, 0xE4, 0x7E, 0xD4, 0xFF, 0xDC, 0x9A, 0x94, 0xC0, 0xBB, 0x9B, 0x5F, 0xB7, 0xE4, 0x7E, 0x7F, 0xB7, 0x7C, 0x7F, 0x00, 0xC0, 0x60, 0x90,
+ 0x02, 0x0F, 0x80, 0xB7, 0x8C, 0x55, 0x88, 0xD2, 0x9D, 0xA8, 0x48, 0x74, 0xF4, 0xFF, 0xC2, 0x91, 0x5F, 0xB5, 0xE4, 0x7E, 0x7F, 0xB5, 0x7C, 0x7F, 0xF4, 0xC0, 0x11, 0x9A, 0x5F, 0xB7,
+ 0xE4, 0x7E, 0x7F, 0xB7, 0x7C, 0x7F, 0xF4, 0xFF, 0x40, 0x90, 0x18, 0xD0, 0x61, 0xAA, 0x08, 0x2A, 0x00, 0x75, 0x01, 0xC0, 0xA2, 0x93, 0x00, 0xF0, 0x43, 0xA9, 0x8A, 0x0D, 0x5F, 0xB5,
+ 0x7C, 0x7D, 0x00, 0xF0, 0xC6, 0xAA, 0x02, 0x85, 0x43, 0xB5, 0x98, 0x60, 0x5F, 0xB5, 0xE4, 0x7E, 0x7F, 0xB5, 0x7C, 0x7F, 0xD4, 0xFF, 0x7A, 0x98, 0x12, 0xD0, 0xE2, 0x29, 0xA0, 0xB7,
+ 0x8C, 0x43, 0x71, 0xC1, 0xCD, 0x9C, 0x82, 0x09, 0x0B, 0x05, 0x06, 0x09, 0xD4, 0xFF, 0x7C, 0x9A, 0x5F, 0xB7, 0xE4, 0x7E, 0x00, 0xF0, 0x49, 0xAB, 0x8A, 0x0D, 0x02, 0x0D, 0x02, 0x09,
+ 0x00, 0xC3, 0x90, 0x59, 0xD4, 0xFF, 0x94, 0x98, 0xD4, 0xFF, 0x8A, 0x9A, 0x8E, 0x0D, 0xD4, 0xFF, 0x8F, 0x9A, 0xD4, 0xFF, 0xF0, 0x9B, 0x86, 0x0D, 0xD4, 0xFF, 0x8A, 0x9A, 0x80, 0xB7,
+ 0x8C, 0x46, 0x0A, 0x85, 0x08, 0xF2, 0x0F, 0xA1, 0x71, 0xC1, 0xCD, 0x9C, 0x5F, 0xB7, 0xE4, 0x7E, 0x7F, 0xB7, 0x7C, 0x7F, 0x30, 0x87, 0xF1, 0xFF, 0xC0, 0x93, 0x00, 0xF0, 0x41, 0xAA,
+ 0x18, 0xF0, 0x7D, 0xA2, 0x00, 0xF0, 0xC5, 0xA8, 0x58, 0xF0, 0xF5, 0xA0, 0x00, 0xF0, 0x49, 0xAA, 0x58, 0xF0, 0x79, 0xA2, 0x00, 0xD8, 0xDD, 0xA8, 0x58, 0xD8, 0xED, 0xA0, 0x00, 0xD8,
+ 0x59, 0xAA, 0x58, 0xD8, 0x69, 0xA2, 0x00, 0xF0, 0xD1, 0xA8, 0x58, 0xF0, 0xE5, 0xA0, 0x00, 0xF0, 0xD6, 0xA8, 0xD8, 0xD0, 0x71, 0xAA, 0x58, 0xF0, 0xEA, 0xA0, 0x5F, 0xB7, 0xEC, 0x7D,
+ 0x00, 0xF0, 0xD9, 0xA8, 0x30, 0x2A, 0x70, 0x87, 0x88, 0x70, 0x58, 0xF0, 0xED, 0xA0, 0x80, 0xB5, 0x88, 0x44, 0x00, 0xC0, 0xA2, 0x91, 0x02, 0x85, 0x73, 0xC0, 0xCE, 0x9C, 0x58, 0xF0,
+ 0x7D, 0xAA, 0x10, 0xC0, 0x00, 0x3A, 0x58, 0xF0, 0x7D, 0xA2, 0x73, 0xC0, 0xCE, 0x9C, 0x18, 0xD8, 0x75, 0xAA, 0x3C, 0x2A, 0x08, 0x75, 0x02, 0xC0, 0x44, 0x91, 0x18, 0xF0, 0x7D, 0xAA,
+ 0x0C, 0x2A, 0x04, 0x75, 0x02, 0xC0, 0x84, 0x90, 0x58, 0xF0, 0x7D, 0xAA, 0x04, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0xE4, 0x90, 0x58, 0xD8, 0x6D, 0xAA, 0x00, 0x75, 0x00, 0xC0,
+ 0xA2, 0x91, 0xEF, 0x9D, 0x5F, 0xB5, 0xE4, 0x7E, 0x7F, 0xB5, 0x7C, 0x7F, 0x54, 0xC0, 0x61, 0x9A, 0x7F, 0xB7, 0x7C, 0x7F, 0x5F, 0xB7, 0xE4, 0x7E, 0x58, 0xD8, 0xEE, 0xA8, 0xA2, 0xF0,
+ 0xC0, 0x5C, 0x01, 0xC0, 0xE2, 0x90, 0x98, 0xD0, 0x71, 0xAA, 0x49, 0xC0, 0x82, 0x87, 0xB8, 0xC2, 0xC0, 0x87, 0xE1, 0x58, 0x04, 0x0A, 0x00, 0xC2, 0x15, 0x5A, 0x04, 0x0A, 0x33, 0xD0,
+ 0x42, 0x61, 0x68, 0x9D, 0xF1, 0xD3, 0x1E, 0x2E, 0x00, 0xC2, 0x15, 0x5A, 0x10, 0xF3, 0x21, 0x80, 0x00, 0xC2, 0x08, 0x5A, 0x20, 0xE2, 0x85, 0xA8, 0x00, 0xF0, 0xE1, 0xA0, 0x02, 0x85,
+ 0x73, 0xC0, 0xCE, 0x9C, 0x58, 0xF0, 0x7D, 0xAA, 0x80, 0xC0, 0x00, 0x3A, 0x58, 0xF0, 0x7D, 0xA2, 0x73, 0xC0, 0xCE, 0x9C, 0x58, 0xF0, 0x7D, 0xAA, 0xED, 0xFF, 0xC0, 0x92, 0xC0, 0x77,
+ 0x00, 0xC0, 0x22, 0x91, 0x82, 0x0D, 0x7F, 0xB5, 0x7C, 0x7F, 0xB4, 0xFF, 0xBC, 0x9B, 0x7F, 0xB7, 0x7C, 0x7F, 0x18, 0xD0, 0xE1, 0xA8, 0x18, 0xD0, 0x61, 0xAA, 0x08, 0x2A, 0x00, 0x75,
+ 0x04, 0xC0, 0x82, 0x90, 0x80, 0xB7, 0x0C, 0x56, 0x20, 0xB7, 0x94, 0x46, 0x08, 0xF2, 0x85, 0xA8, 0x20, 0xB5, 0x4D, 0x44, 0x58, 0xF0, 0x7D, 0xAA, 0x04, 0x2A, 0x00, 0x75, 0x01, 0xC0,
+ 0xC4, 0x90, 0x58, 0xF0, 0x7D, 0xAA, 0x40, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0xE2, 0x93, 0x40, 0xB7, 0x84, 0x57, 0xA3, 0xCB, 0x3A, 0x0A, 0xBA, 0xC8, 0x0C, 0x0A, 0x10, 0xE0,
+ 0xB5, 0x88, 0x99, 0x60, 0x8F, 0x58, 0x84, 0x18, 0xBC, 0x28, 0x74, 0xD1, 0x91, 0x69, 0x20, 0xC0, 0x61, 0xAA, 0x1C, 0xC0, 0x3E, 0x7D, 0x00, 0xC0, 0x64, 0x91, 0xEF, 0x9D, 0x01, 0xC0,
+ 0x86, 0x09, 0x7F, 0xB5, 0x7C, 0x7F, 0x34, 0xC0, 0x34, 0x99, 0x7F, 0xB7, 0x7C, 0x7F, 0x20, 0xB7, 0x8C, 0x48, 0x01, 0xC0, 0x12, 0x0A, 0x10, 0xC0, 0x00, 0x0A, 0x48, 0x70, 0x00, 0xC0,
+ 0xD2, 0x93, 0x58, 0xF0, 0x7D, 0xAA, 0x10, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x24, 0x91, 0x58, 0xF0, 0x7D, 0xAA, 0x04, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x02, 0x92,
+ 0x98, 0xD0, 0x71, 0xAA, 0x06, 0x75, 0x00, 0xC0, 0x74, 0x91, 0xEF, 0x9D, 0x01, 0xC0, 0xC2, 0x09, 0x7F, 0xB5, 0x7C, 0x7F, 0x34, 0xC0, 0x0F, 0x99, 0x7F, 0xB7, 0x7C, 0x7F, 0x80, 0x77,
+ 0x00, 0xC0, 0x44, 0x91, 0x7F, 0xB7, 0x74, 0x7D, 0x7F, 0xB5, 0x7C, 0x7F, 0xF4, 0xFF, 0x58, 0x98, 0x7F, 0xB7, 0x7C, 0x7F, 0x8A, 0x0D, 0x7F, 0xB5, 0x7C, 0x7F, 0xD4, 0xFF, 0x7B, 0x99,
+ 0x01, 0xC9, 0x80, 0x9C, 0x7F, 0xB7, 0x7C, 0x7F, 0x98, 0xF0, 0x61, 0xA2, 0x06, 0x85, 0x20, 0xB7, 0x94, 0x47, 0x43, 0xB5, 0x18, 0x60, 0x58, 0xF0, 0xFD, 0xA8, 0x60, 0xB5, 0x9C, 0x77,
+ 0x80, 0xB7, 0x4D, 0x40, 0x80, 0xC0, 0x84, 0x5A, 0x01, 0xC0, 0x84, 0x2A, 0xFF, 0xCF, 0x7A, 0x2A, 0xCA, 0x30, 0x84, 0x38, 0x20, 0xB5, 0x4D, 0x40, 0x01, 0xC9, 0x80, 0x9C, 0x98, 0xF0,
+ 0x75, 0xA2, 0xBB, 0x9E, 0x82, 0x09, 0x14, 0xC0, 0xF6, 0x9B, 0x02, 0x85, 0x40, 0xB5, 0x18, 0x44, 0x06, 0x08, 0x9F, 0xB7, 0xEE, 0x7C, 0xBF, 0xB7, 0x6E, 0x7D, 0xDF, 0xB7, 0xEE, 0x7D,
+ 0xFF, 0xB7, 0x6E, 0x7E, 0x02, 0xC0, 0x60, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x20, 0xB7, 0x8C, 0x46, 0x80, 0xB7, 0x2D, 0x46, 0x20, 0xB7, 0x2D, 0x48, 0x00, 0xC4, 0x00, 0x2A, 0x00, 0x75,
+ 0x0F, 0xC0, 0xFE, 0x28, 0x20, 0xB5, 0x8C, 0x48, 0x00, 0xC0, 0x42, 0x91, 0x01, 0xC0, 0x06, 0x0A, 0x10, 0xC0, 0x2C, 0x0A, 0x80, 0xB5, 0x8C, 0x48, 0x01, 0xC0, 0x00, 0x91, 0x03, 0xC0,
+ 0x42, 0x74, 0x01, 0xC0, 0x94, 0x90, 0x20, 0xB7, 0x8C, 0x41, 0x80, 0xB7, 0x2D, 0x45, 0x00, 0xC1, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x84, 0x91, 0x20, 0xB7, 0x0C, 0x56, 0x3B, 0xC0,
+ 0x7A, 0x0A, 0x04, 0xC0, 0x04, 0x0A, 0x80, 0xB5, 0x2D, 0x40, 0x80, 0xB5, 0xAD, 0x40, 0x80, 0xB7, 0x8C, 0x48, 0xFF, 0xCF, 0x78, 0x0A, 0x1C, 0xC0, 0x3E, 0x75, 0x00, 0xC0, 0x32, 0x91,
+ 0x20, 0xB7, 0x0C, 0x56, 0x80, 0xB7, 0xAD, 0x40, 0x08, 0x3A, 0x80, 0xB5, 0xAD, 0x40, 0xD4, 0xFF, 0x40, 0x98, 0x8A, 0x0D, 0xB4, 0xFF, 0x85, 0x9A, 0x82, 0x0D, 0xB4, 0xFF, 0x82, 0x9A,
+ 0x54, 0xC0, 0x98, 0x98, 0x80, 0xB7, 0x8C, 0x41, 0x20, 0xB7, 0x0C, 0x45, 0x20, 0xB7, 0x94, 0x47, 0x02, 0x85, 0x09, 0xC2, 0xBE, 0x0D, 0x04, 0xC1, 0xBC, 0x0D, 0x08, 0xF2, 0x03, 0xA1,
+ 0x40, 0xB5, 0xBD, 0x46, 0x71, 0xD3, 0x18, 0x0E, 0x91, 0xD3, 0x90, 0x0C, 0x08, 0xF2, 0x03, 0xA1, 0xB0, 0xC0, 0x42, 0x85, 0x40, 0xB5, 0x3D, 0x40, 0x91, 0xD3, 0x18, 0x0E, 0xB1, 0xD3,
+ 0x90, 0x0C, 0xA0, 0xB7, 0x8C, 0x46, 0x88, 0xC0, 0x42, 0x85, 0x08, 0xF2, 0x03, 0xA1, 0x04, 0xC0, 0x42, 0x85, 0x40, 0xB5, 0x3D, 0x40, 0x0A, 0xC0, 0x40, 0x85, 0x40, 0xB5, 0x5D, 0x40,
+ 0x7F, 0x85, 0x08, 0xF2, 0x2F, 0xA1, 0xD4, 0xFF, 0x75, 0x98, 0xF1, 0xC1, 0x02, 0x0A, 0xF0, 0xC0, 0x00, 0x0A, 0x08, 0xF2, 0x39, 0xA2, 0x20, 0xB7, 0x8C, 0x48, 0x01, 0xC0, 0x06, 0x0A,
+ 0x24, 0x0A, 0x48, 0x70, 0x00, 0xC0, 0x02, 0x91, 0x86, 0x0D, 0x82, 0x09, 0x02, 0x0D, 0x06, 0x09, 0xD4, 0xFF, 0x9A, 0x98, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C,
+ 0x22, 0x9C, 0x05, 0xA6, 0x20, 0xB7, 0x0C, 0x4A, 0x40, 0xB7, 0x84, 0x57, 0x84, 0x08, 0xBC, 0x28, 0x73, 0xD1, 0x11, 0x69, 0x2D, 0x9E, 0x30, 0xC0, 0x4D, 0xAA, 0x40, 0x2A, 0x00, 0x75,
+ 0x54, 0x9D, 0x00, 0xC0, 0x22, 0x92, 0x54, 0xC0, 0x36, 0x99, 0x80, 0xB7, 0x0C, 0x4A, 0x04, 0x0A, 0x3C, 0x2A, 0x73, 0xD1, 0x41, 0x69, 0x53, 0x9D, 0x50, 0xC2, 0x85, 0xA8, 0xC0, 0x28,
+ 0x40, 0x74, 0xFF, 0xFF, 0x64, 0x92, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x20, 0x84, 0x80, 0xB7, 0x0C, 0x4A, 0xA0, 0xB7, 0x8C, 0x57,
+ 0x73, 0xD1, 0x41, 0x69, 0x40, 0xE3, 0x23, 0x81, 0x87, 0x06, 0x5F, 0xB5, 0x64, 0x7F, 0xF4, 0xFF, 0xCD, 0x9B, 0x40, 0xB7, 0x8C, 0x43, 0x71, 0xC0, 0xCE, 0x9C, 0x10, 0xDA, 0xAD, 0xA8,
+ 0x5F, 0xB7, 0x64, 0x7F, 0x40, 0xD8, 0xC1, 0xA0, 0x10, 0xDA, 0x25, 0xAA, 0x00, 0xD8, 0x45, 0xA2, 0x10, 0xDA, 0xA9, 0xA8, 0x40, 0xF0, 0xDD, 0xA0, 0x10, 0xF2, 0x29, 0xAA, 0x00, 0xF0,
+ 0x59, 0xA2, 0x10, 0xD2, 0xA1, 0xA8, 0x58, 0x74, 0x00, 0xC0, 0xF4, 0x91, 0x10, 0xF2, 0x2D, 0xAA, 0x50, 0xD2, 0xB1, 0xA8, 0xF0, 0xCF, 0x01, 0x2A, 0x42, 0x32, 0x00, 0xF0, 0x45, 0xA2,
+ 0x10, 0xF2, 0xB1, 0xA8, 0x00, 0xC0, 0xE0, 0x92, 0xA3, 0xCB, 0xBA, 0x08, 0xBA, 0xC8, 0x8C, 0x08, 0x10, 0xF3, 0x23, 0x8A, 0x43, 0x62, 0x00, 0xC2, 0x0F, 0x5A, 0x04, 0x1A, 0x3C, 0x2A,
+ 0x73, 0xD1, 0x41, 0x69, 0x20, 0xE3, 0xA3, 0x80, 0x80, 0xB7, 0xCD, 0x40, 0x00, 0xF0, 0x45, 0xA2, 0x20, 0xB7, 0x4D, 0x41, 0x00, 0xF0, 0xC9, 0xA0, 0x10, 0xD2, 0x25, 0xAA, 0x10, 0xC0,
+ 0x02, 0x75, 0x06, 0x85, 0x00, 0xC0, 0x64, 0x90, 0x0A, 0x85, 0x00, 0xD0, 0x43, 0xA1, 0x20, 0xB7, 0x14, 0x4B, 0x00, 0xF0, 0xC5, 0xA8, 0x02, 0x85, 0x4B, 0x9E, 0x00, 0xD0, 0x41, 0xAA,
+ 0x00, 0xF0, 0x5F, 0xA1, 0x40, 0xF0, 0x47, 0xA1, 0x40, 0xF0, 0x4B, 0xA1, 0x40, 0xD8, 0x47, 0xA1, 0xC2, 0x70, 0x40, 0x3A, 0x00, 0xD0, 0x41, 0xA2, 0x00, 0xC0, 0x02, 0x91, 0x40, 0xF0,
+ 0x5D, 0xAA, 0x04, 0xC0, 0x00, 0x3A, 0x40, 0xF0, 0x5D, 0xA2, 0x20, 0xB7, 0x8C, 0x4B, 0x00, 0xF0, 0x45, 0xAA, 0x48, 0x70, 0x00, 0xC0, 0x02, 0x91, 0x40, 0xF0, 0x5D, 0xAA, 0x01, 0xC0,
+ 0x08, 0x3A, 0x40, 0xF0, 0x5D, 0xA2, 0x00, 0xF0, 0x49, 0xAA, 0x00, 0xCC, 0x00, 0x7D, 0x00, 0xC0, 0x04, 0x91, 0x40, 0xF0, 0x5D, 0xAA, 0x40, 0xC0, 0x00, 0x3A, 0x40, 0xF0, 0x5D, 0xA2,
+ 0x00, 0xD8, 0x55, 0xAA, 0x3C, 0x2A, 0x02, 0x75, 0x01, 0xC0, 0x44, 0x90, 0x00, 0xD0, 0x41, 0xAA, 0x08, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x82, 0x93, 0x40, 0xF0, 0x5D, 0xAA, 0x40, 0xC0,
+ 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0xA2, 0x92, 0x40, 0xF0, 0x5D, 0xAA, 0x04, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0xE4, 0x91, 0x40, 0xF0, 0x5D, 0xAA, 0x04, 0xC0, 0x00, 0x2A, 0x00, 0x75,
+ 0x00, 0xC0, 0x02, 0x91, 0x40, 0xF0, 0x5D, 0xAA, 0x20, 0xC0, 0x00, 0x3A, 0x40, 0xF0, 0x5D, 0xA2, 0x71, 0xC0, 0xCE, 0x9C, 0x5F, 0xB5, 0x64, 0x7F, 0xD4, 0xFF, 0x42, 0x99, 0x14, 0xC0,
+ 0xE4, 0x9A, 0x80, 0xB7, 0x0C, 0x56, 0x5F, 0xB7, 0x64, 0x7F, 0x20, 0xB7, 0x94, 0x46, 0x08, 0xF2, 0x85, 0xA8, 0xCC, 0x9D, 0x82, 0x09, 0x20, 0xB5, 0x4D, 0x44, 0x5F, 0xB5, 0x64, 0x7F,
+ 0x34, 0xC0, 0x67, 0x9B, 0x5F, 0xB7, 0x64, 0x7F, 0x00, 0xD0, 0x41, 0xAA, 0x12, 0xF0, 0xC4, 0x2A, 0x00, 0xC0, 0x22, 0x91, 0xCC, 0x9D, 0xD4, 0xFF, 0xBA, 0x9A, 0x14, 0xC0, 0x12, 0x9A,
+ 0x02, 0xC0, 0x40, 0x90, 0x40, 0xF0, 0x5D, 0xAA, 0x10, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x02, 0x91, 0x40, 0xF0, 0x5D, 0xAA, 0x08, 0xC0, 0x00, 0x3A, 0x40, 0xF0, 0x5D, 0xA2, 0xA3, 0xCB,
+ 0xBA, 0x08, 0xBA, 0xC8, 0x8C, 0x08, 0x10, 0xF3, 0x23, 0x8A, 0x43, 0x62, 0x00, 0xC2, 0x0F, 0x5A, 0x04, 0x1A, 0x3C, 0x2A, 0x73, 0xD1, 0x41, 0x69, 0x00, 0xD8, 0xD6, 0xA8, 0x10, 0xF3,
+ 0x23, 0x80, 0x08, 0xDA, 0x95, 0xA8, 0xBC, 0x2C, 0x4C, 0x9E, 0xBC, 0x28, 0x02, 0x71, 0x00, 0xC0, 0xC2, 0x92, 0xCC, 0x9D, 0x01, 0xC1, 0x82, 0x09, 0x5F, 0xB5, 0x64, 0x7F, 0x14, 0xC0,
+ 0x0D, 0x9B, 0x69, 0x9E, 0x71, 0xC0, 0xCD, 0x9C, 0x5F, 0xB7, 0x64, 0x7F, 0x40, 0xF0, 0x5D, 0xAA, 0x41, 0xC0, 0x00, 0x3A, 0x40, 0xF0, 0x5D, 0xA2, 0x71, 0xC0, 0xCD, 0x9C, 0xCC, 0x9D,
+ 0x01, 0xC2, 0x82, 0x09, 0x5F, 0xB5, 0x64, 0x7F, 0x14, 0xC0, 0xF9, 0x9A, 0x5F, 0xB7, 0x64, 0x7F, 0x80, 0xB7, 0x0C, 0x4A, 0x00, 0xF0, 0xC5, 0xA8, 0x04, 0x0A, 0x3C, 0x2A, 0x80, 0xB5,
+ 0x0C, 0x4A, 0x20, 0xB5, 0x0C, 0x4B, 0x20, 0xB5, 0x8C, 0x4B, 0x9F, 0xB7, 0xEE, 0x7E, 0xBF, 0xB7, 0x6E, 0x7F, 0x60, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x20, 0xB7, 0x0C, 0x4A, 0x20, 0xB7,
+ 0x94, 0x57, 0x87, 0x06, 0x73, 0xD1, 0x11, 0x69, 0x50, 0xD2, 0x31, 0xAA, 0x10, 0xF2, 0xAB, 0x80, 0x08, 0xF2, 0x25, 0xA2, 0xF4, 0xFF, 0x9E, 0x9A, 0x40, 0xB7, 0x8C, 0x43, 0x71, 0xC0,
+ 0xCE, 0x9C, 0x10, 0xD2, 0xA5, 0xA8, 0x10, 0xC0, 0x44, 0x74, 0x22, 0x85, 0x00, 0xC0, 0x64, 0x90, 0x12, 0x85, 0x08, 0xD2, 0x23, 0xA1, 0x08, 0xD2, 0x21, 0xAA, 0x40, 0x3A, 0x08, 0xD2,
+ 0x21, 0xA2, 0x10, 0xDA, 0xA5, 0xA8, 0x08, 0xDA, 0xA5, 0xA0, 0x10, 0xDA, 0xAA, 0xA8, 0x48, 0xF2, 0xBE, 0xA0, 0x10, 0xF2, 0x2D, 0xAA, 0x50, 0xD2, 0xB1, 0xA8, 0xF0, 0xCF, 0x01, 0x2A,
+ 0x42, 0x32, 0x08, 0xF2, 0x25, 0xA2, 0x10, 0xF2, 0xA9, 0xA8, 0x08, 0xF2, 0xA9, 0xA0, 0x50, 0xDA, 0x25, 0xAA, 0x48, 0xDA, 0x29, 0xA2, 0x50, 0xDA, 0xA1, 0xA8, 0x48, 0xDA, 0xAD, 0xA0,
+ 0x10, 0xF2, 0x35, 0xAA, 0x08, 0xF2, 0x39, 0xA2, 0x10, 0xF2, 0xB9, 0xA8, 0x08, 0xF2, 0xBD, 0xA0, 0x10, 0xF2, 0x3D, 0xAA, 0x08, 0xF2, 0x31, 0xA2, 0x50, 0xF2, 0xA1, 0xA8, 0x48, 0xF2,
+ 0xB1, 0xA0, 0x50, 0xF2, 0x25, 0xAA, 0x48, 0xF2, 0x25, 0xA2, 0x50, 0xF2, 0xA9, 0xA8, 0x48, 0xF2, 0xA9, 0xA0, 0x50, 0xF2, 0xAE, 0xA8, 0x48, 0xF2, 0xAE, 0xA0, 0x10, 0xD2, 0x39, 0xAA,
+ 0x91, 0xD0, 0xD0, 0x08, 0x0C, 0x2A, 0x80, 0xB5, 0x29, 0x40, 0x20, 0xB7, 0x14, 0x4B, 0x08, 0xF2, 0x25, 0xAA, 0x49, 0x9E, 0x48, 0x70, 0x00, 0xC0, 0x02, 0x91, 0x48, 0xF2, 0x3D, 0xAA,
+ 0x04, 0xC0, 0x00, 0x3A, 0x48, 0xF2, 0x3D, 0xA2, 0x71, 0xC0, 0xCE, 0x9C, 0xD4, 0xFF, 0x58, 0x98, 0x20, 0xB7, 0x0C, 0x56, 0x20, 0xB7, 0x94, 0x46, 0x80, 0xB7, 0xAD, 0x40, 0xAB, 0x9E,
+ 0x01, 0xC8, 0x82, 0x09, 0x80, 0xB5, 0x4D, 0x44, 0x14, 0xC0, 0x63, 0x9A, 0x08, 0xF2, 0xA5, 0xA8, 0x80, 0xB7, 0x0C, 0x4A, 0x20, 0xB5, 0x0C, 0x4B, 0x04, 0x0A, 0x3C, 0x2A, 0x80, 0xB5,
+ 0x0C, 0x4A, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x5D, 0x9E, 0x9D, 0x9E, 0x0E, 0xC0, 0xFC, 0x2A, 0x14, 0xC0, 0x70, 0x99, 0x08, 0xC0,
+ 0x84, 0x1A, 0x46, 0x75, 0xA6, 0xD2, 0x0C, 0x59, 0x40, 0x85, 0x5A, 0xE0, 0x44, 0x80, 0x00, 0xC0, 0x40, 0x92, 0x00, 0xC0, 0x00, 0x91, 0x00, 0xC0, 0x60, 0x91, 0x00, 0xC0, 0x20, 0x91,
+ 0x00, 0xC0, 0x40, 0x90, 0x8B, 0x05, 0xF4, 0xFF, 0x26, 0x9A, 0x00, 0xC0, 0xA0, 0x90, 0x8B, 0x05, 0xF4, 0xFF, 0x4F, 0x9B, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C,
+ 0x22, 0x9C, 0x80, 0xB7, 0x08, 0x45, 0x1C, 0xC0, 0x3E, 0x7D, 0x5B, 0x9E, 0x00, 0xC0, 0x02, 0x91, 0x09, 0xC8, 0xC2, 0x0D, 0xD2, 0xC1, 0xF0, 0x0D, 0x38, 0xC0, 0x20, 0x90, 0x9B, 0x9E,
+ 0xCC, 0xFF, 0x20, 0x93, 0x0D, 0xA6, 0x80, 0xB7, 0x8C, 0x49, 0x00, 0x75, 0x5D, 0x9E, 0x00, 0xC0, 0x22, 0x91, 0x34, 0xC0, 0x23, 0x9B, 0x80, 0xB7, 0x8C, 0x49, 0x00, 0x75, 0xFF, 0xFF,
+ 0x64, 0x93, 0x01, 0xC9, 0x80, 0x9C, 0x88, 0xF2, 0x29, 0xA2, 0xA0, 0xB5, 0x8C, 0x49, 0xAB, 0x9E, 0x86, 0x09, 0x34, 0xC0, 0x23, 0x9A, 0x02, 0x85, 0x73, 0xC0, 0xCE, 0x9C, 0x48, 0xF2,
+ 0x3D, 0xAA, 0x03, 0xC0, 0x00, 0x3A, 0x48, 0xF2, 0x3D, 0xA2, 0x73, 0xC0, 0xCE, 0x9C, 0x48, 0xF2, 0x3D, 0xAA, 0x04, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x22, 0x92, 0x20, 0xB7,
+ 0x94, 0x46, 0x20, 0xB7, 0x4D, 0x40, 0xFD, 0xCF, 0xFE, 0x28, 0x03, 0x02, 0x03, 0xC0, 0x00, 0x3A, 0x80, 0xB5, 0x4D, 0x40, 0x40, 0xB7, 0x4D, 0x40, 0x20, 0xB5, 0x4D, 0x40, 0xC0, 0xB7,
+ 0x0C, 0x45, 0x02, 0x85, 0x08, 0xF2, 0x57, 0xA1, 0x08, 0xD2, 0x21, 0xAA, 0x12, 0xF0, 0xC2, 0x2A, 0x00, 0xC0, 0xE2, 0x90, 0xAB, 0x9E, 0xF4, 0xFF, 0xAB, 0x9B, 0x02, 0xC0, 0x60, 0x92,
+ 0x48, 0xF2, 0x3D, 0xAA, 0x04, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0xA2, 0x93, 0x80, 0xB7, 0x0C, 0x47, 0x12, 0xD2, 0xC0, 0x08, 0x42, 0x85, 0x40, 0xB5, 0x5D, 0x40, 0x92, 0xD2,
+ 0xC0, 0x08, 0x51, 0xD2, 0xC0, 0x08, 0x40, 0xB5, 0x3D, 0x40, 0x40, 0xB5, 0x5D, 0x40, 0x12, 0xD3, 0xC0, 0x08, 0xD1, 0xD2, 0xC0, 0x08, 0x40, 0xB5, 0x3D, 0x40, 0x0C, 0xC0, 0x40, 0x0A,
+ 0x40, 0xB5, 0x5D, 0x40, 0x08, 0xF2, 0x03, 0xA1, 0x48, 0xF2, 0x3D, 0xAA, 0x04, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x42, 0x92, 0x80, 0xB7, 0x8C, 0x47, 0x2C, 0xC0, 0x60, 0x0A,
+ 0x29, 0xF2, 0x86, 0xA2, 0x29, 0xF2, 0x86, 0xA2, 0x29, 0xF2, 0x86, 0xA2, 0x29, 0xF2, 0x86, 0xA2, 0x29, 0xF2, 0x8E, 0xA2, 0x08, 0xF2, 0x82, 0xA2, 0x14, 0xC0, 0x7E, 0x98, 0x08, 0xD2,
+ 0x21, 0xAA, 0x08, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x82, 0x90, 0x48, 0xF2, 0xD6, 0xA2, 0x20, 0xB7, 0x94, 0x47, 0x20, 0xB7, 0x8C, 0x46, 0x80, 0xB7, 0xAD, 0x45, 0x40, 0x2A, 0x00, 0x75,
+ 0xFF, 0xFF, 0x82, 0x93, 0x71, 0xD2, 0x10, 0x0E, 0x08, 0xF2, 0x81, 0xA8, 0x02, 0x85, 0x73, 0xC0, 0xCE, 0x9C, 0x48, 0xF2, 0x3D, 0xAA, 0x05, 0xC0, 0x00, 0x3A, 0x48, 0xF2, 0x3D, 0xA2,
+ 0x73, 0xC0, 0xCE, 0x9C, 0x06, 0x08, 0x9F, 0xB7, 0xEE, 0x7E, 0xBF, 0xB7, 0x6E, 0x7F, 0xDF, 0xB7, 0xEE, 0x7F, 0x60, 0x8C, 0x22, 0x9C, 0x39, 0xF8, 0x05, 0xA2, 0x20, 0xB7, 0x8C, 0x57,
+ 0x89, 0x9E, 0x03, 0x01, 0x52, 0xC0, 0xA0, 0x0C, 0x08, 0xD0, 0x41, 0xAA, 0x52, 0xF0, 0x40, 0x29, 0x04, 0xC0, 0xE0, 0x08, 0x00, 0xC0, 0xC4, 0x93, 0x4C, 0x9E, 0x48, 0x70, 0x04, 0xC0,
+ 0x60, 0x09, 0xFF, 0xFF, 0x94, 0x92, 0x80, 0xB7, 0x8C, 0x77, 0x00, 0x75, 0x00, 0xC0, 0xE2, 0x92, 0x48, 0xF2, 0x1D, 0xAA, 0x11, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x02, 0x92,
+ 0x80, 0xB7, 0x8C, 0x46, 0x06, 0x08, 0x0E, 0xC0, 0x50, 0x0A, 0x08, 0xF2, 0x02, 0xA1, 0xF8, 0xF9, 0x1D, 0xAA, 0x22, 0x9C, 0x06, 0x08, 0xF8, 0xF9, 0x1D, 0xAA, 0x22, 0x9C, 0x80, 0xB7,
+ 0x0C, 0x49, 0x02, 0x75, 0x00, 0xC0, 0x84, 0x91, 0x80, 0xB7, 0x0C, 0x56, 0x20, 0xB7, 0x94, 0x46, 0x08, 0xF2, 0x81, 0xA8, 0x20, 0xB5, 0x4D, 0x44, 0x14, 0xC0, 0x74, 0x98, 0x02, 0x08,
+ 0xF8, 0xF9, 0x1D, 0xAA, 0x22, 0x9C, 0x20, 0xB7, 0x8C, 0x46, 0x02, 0x85, 0x40, 0xB5, 0x3D, 0x4D, 0x80, 0xB7, 0xAD, 0x4D, 0x00, 0x75, 0x40, 0xB3, 0xA2, 0x48, 0x80, 0xB7, 0x0C, 0x4C,
+ 0x80, 0xB5, 0xAD, 0x4C, 0x22, 0x9C, 0x20, 0xB7, 0x8C, 0x46, 0x02, 0x85, 0x40, 0xB5, 0xBD, 0x4E, 0x80, 0xB7, 0x2D, 0x4F, 0x00, 0x75, 0x40, 0xB3, 0xA2, 0x48, 0x80, 0xB7, 0x8C, 0x4C,
+ 0x80, 0xB5, 0x2D, 0x4E, 0x22, 0x9C, 0x80, 0xB7, 0x8C, 0x4F, 0x10, 0xCB, 0x81, 0x9C, 0x20, 0xB7, 0x8C, 0x4E, 0x40, 0x74, 0x00, 0xC0, 0xC2, 0x91, 0x80, 0xB7, 0x8C, 0x4E, 0x04, 0x1A,
+ 0x80, 0xB5, 0x8C, 0x4E, 0x20, 0xB7, 0x8C, 0x4E, 0x40, 0x74, 0x00, 0xC0, 0x84, 0x90, 0x06, 0x08, 0x22, 0x9C, 0x80, 0xB7, 0x0C, 0x4F, 0x00, 0x75, 0x00, 0xC0, 0xA2, 0x91, 0x80, 0xB7,
+ 0x0C, 0x4F, 0x04, 0x1A, 0x80, 0xB5, 0x0C, 0x4F, 0x20, 0xB7, 0x0C, 0x4F, 0x40, 0x74, 0x12, 0x08, 0x40, 0xB3, 0xA2, 0x48, 0x02, 0x08, 0x22, 0x9C, 0x02, 0x85, 0x73, 0xC0, 0xCE, 0x9C,
+ 0x10, 0xF0, 0xE1, 0xA1, 0x73, 0xC0, 0xCE, 0x9C, 0x22, 0x9C, 0x39, 0xF8, 0x05, 0xA2, 0x80, 0xB7, 0x8C, 0x41, 0x02, 0x85, 0x08, 0xF2, 0x03, 0xA1, 0x04, 0x85, 0x40, 0xB5, 0x1C, 0x49,
+ 0x80, 0xB7, 0x8C, 0x4F, 0x10, 0xCB, 0x81, 0x9C, 0x60, 0xB7, 0x14, 0x57, 0x60, 0xB7, 0x0C, 0x4E, 0xF4, 0xFF, 0xE6, 0x9B, 0x20, 0xB7, 0x8C, 0x44, 0x20, 0xC0, 0xA0, 0x08, 0x80, 0xB7,
+ 0x2D, 0x40, 0x01, 0xC0, 0x04, 0x3A, 0x80, 0xB5, 0x2D, 0x40, 0xF8, 0xF9, 0x1D, 0xAA, 0x22, 0x9C, 0x20, 0xB7, 0x8C, 0x41, 0x06, 0x85, 0x40, 0xB5, 0x3D, 0x40, 0x04, 0x8D, 0x40, 0xB5,
+ 0x1C, 0x4F, 0x80, 0xB7, 0x2D, 0x45, 0x00, 0xC4, 0x00, 0x2A, 0x00, 0x75, 0x40, 0xB5, 0x1C, 0x49, 0x40, 0xB3, 0xA4, 0x48, 0x80, 0xB7, 0x8C, 0x44, 0x20, 0xC0, 0x20, 0x0A, 0x08, 0xF2,
+ 0x81, 0xA8, 0x08, 0xF2, 0x81, 0xA0, 0x22, 0x9C, 0x20, 0xB7, 0x14, 0x48, 0x5A, 0x9E, 0x20, 0xB7, 0x8C, 0x46, 0x80, 0xB7, 0x2D, 0x45, 0x0A, 0x75, 0xFF, 0xFF, 0xB4, 0x93, 0x48, 0xF0,
+ 0x45, 0xAA, 0x00, 0xCF, 0x01, 0x2A, 0x80, 0xB5, 0x4D, 0x45, 0x20, 0xB7, 0x14, 0x48, 0x48, 0xF0, 0x49, 0xAA, 0x00, 0xCF, 0x01, 0x2A, 0x80, 0xB5, 0xCD, 0x45, 0x48, 0xF0, 0xC5, 0xA8,
+ 0x0E, 0xC0, 0xFC, 0x28, 0x20, 0xB5, 0x4D, 0x46, 0x48, 0xF0, 0x4D, 0xAA, 0x80, 0xB5, 0xCD, 0x47, 0x08, 0xF0, 0xC9, 0xA8, 0x20, 0xB5, 0x4D, 0x41, 0x40, 0xC0, 0x80, 0x0C, 0x08, 0xF0,
+ 0x5D, 0xAA, 0x80, 0xB5, 0x4D, 0x40, 0x22, 0x9C, 0x80, 0xB7, 0x8C, 0x47, 0x02, 0x09, 0x08, 0xC0, 0x70, 0x0A, 0x08, 0xF2, 0x81, 0xA8, 0x40, 0xC0, 0x80, 0x28, 0x40, 0x74, 0xFF, 0xFF,
+ 0x64, 0x93, 0x80, 0xB7, 0x8C, 0x47, 0x08, 0x39, 0x82, 0x0C, 0xC8, 0xF2, 0x09, 0xA1, 0x08, 0xC0, 0x70, 0x0A, 0x08, 0xF2, 0x81, 0xA8, 0x80, 0xC1, 0x40, 0x7C, 0x22, 0xD0, 0x80, 0x44,
+ 0xFF, 0xFF, 0x44, 0x93, 0x84, 0x0C, 0x42, 0x76, 0xFF, 0xFF, 0xD4, 0x92, 0x22, 0x9C, 0x1D, 0xA6, 0x80, 0xB7, 0x8C, 0x47, 0xC8, 0xF2, 0x11, 0xA9, 0xC8, 0xF2, 0x8E, 0xA8, 0x24, 0xD1,
+ 0xC1, 0x5A, 0x01, 0xC0, 0xB0, 0x2C, 0xA2, 0xD0, 0xC9, 0x5E, 0x80, 0xC1, 0x14, 0x5F, 0x31, 0xD2, 0xC8, 0x0B, 0x06, 0x0A, 0x85, 0x00, 0xFE, 0xCF, 0xFC, 0x28, 0xB0, 0x58, 0x80, 0xC2,
+ 0xB0, 0x5E, 0x11, 0xD0, 0x5C, 0x09, 0x00, 0xC2, 0x88, 0x52, 0x1A, 0x13, 0x08, 0xF2, 0x61, 0xAA, 0x71, 0x9E, 0xFF, 0xC0, 0x7E, 0x2A, 0x68, 0x12, 0x02, 0x71, 0x00, 0xC0, 0xD6, 0x90,
+ 0x34, 0xC0, 0x3D, 0x99, 0xFF, 0xFF, 0xA0, 0x92, 0x80, 0xB7, 0x8C, 0x47, 0xA9, 0x9E, 0xD2, 0x16, 0x51, 0xD2, 0xC0, 0x0A, 0x09, 0x03, 0x08, 0xF2, 0x21, 0xAA, 0x69, 0x9E, 0xFF, 0xC0,
+ 0x7E, 0x2A, 0x18, 0x12, 0x71, 0x9E, 0x02, 0x71, 0x00, 0xC0, 0xD6, 0x90, 0x34, 0xC0, 0x28, 0x99, 0xFF, 0xFF, 0x80, 0x92, 0x71, 0xD2, 0xE8, 0x08, 0x80, 0xB7, 0x2D, 0x40, 0x40, 0xC0,
+ 0x00, 0x2A, 0x00, 0x75, 0xFF, 0xFF, 0x64, 0x93, 0x9F, 0xB7, 0x6E, 0x7E, 0xBF, 0xB7, 0xEE, 0x7E, 0xDF, 0xB7, 0x6E, 0x7F, 0xFF, 0xB7, 0xEE, 0x7F, 0x02, 0xC0, 0x00, 0x8C, 0x22, 0x9C,
+ 0x0D, 0xA6, 0x87, 0x06, 0x87, 0x02, 0xB4, 0xFF, 0xE5, 0x99, 0xF4, 0xFF, 0x87, 0x9B, 0x96, 0x0D, 0xF4, 0xFF, 0xA5, 0x9B, 0xC0, 0xB7, 0x8C, 0x43, 0x71, 0xC1, 0xCE, 0x9C, 0x20, 0xB7,
+ 0x0C, 0x58, 0x80, 0xB7, 0x8C, 0x47, 0x60, 0xB9, 0x20, 0x40, 0xA0, 0xB5, 0xAD, 0x40, 0xA0, 0xB5, 0xB5, 0x41, 0x52, 0xD2, 0xC8, 0x08, 0x29, 0xF0, 0x25, 0xAA, 0x80, 0xB5, 0x4D, 0x40,
+ 0xFF, 0xFF, 0x81, 0x93, 0xF4, 0xFF, 0x6C, 0x9B, 0x71, 0xC1, 0xCE, 0x9C, 0x9F, 0xB7, 0xEE, 0x7E, 0xBF, 0xB7, 0x6E, 0x7F, 0xDF, 0xB7, 0xEE, 0x7F, 0x60, 0x8C, 0x22, 0x9C, 0x0D, 0xA6,
+ 0x5E, 0x9E, 0x85, 0x06, 0x87, 0x02, 0xF4, 0xFF, 0x5C, 0x9B, 0x12, 0xD0, 0xD8, 0x0D, 0xF4, 0xFF, 0x79, 0x9B, 0x01, 0xC0, 0x86, 0x0C, 0xAC, 0x0C, 0x80, 0xB7, 0x8C, 0x47, 0x51, 0xD2,
+ 0xC8, 0x08, 0x20, 0xB5, 0x35, 0x40, 0x02, 0x85, 0x40, 0xB5, 0x3D, 0x40, 0x80, 0xC2, 0x90, 0x5A, 0xA2, 0xD2, 0x44, 0x5E, 0x12, 0xD0, 0xD6, 0x38, 0xFF, 0xCF, 0x7C, 0x0A, 0xA2, 0x9E,
+ 0x94, 0x34, 0x20, 0xB5, 0x35, 0x40, 0x84, 0x1E, 0x7F, 0x77, 0x00, 0xC0, 0x42, 0x91, 0x20, 0xC8, 0x87, 0x9C, 0x29, 0xF2, 0x45, 0xAA, 0x80, 0xB5, 0x2D, 0x40, 0xFF, 0xFF, 0x81, 0x93,
+ 0x9E, 0x0C, 0x80, 0xB7, 0x8C, 0x47, 0x08, 0xC0, 0x50, 0x0A, 0x08, 0xF2, 0x82, 0xA0, 0xF4, 0xFF, 0x2B, 0x9B, 0x9F, 0xB7, 0xEE, 0x7E, 0xBF, 0xB7, 0x6E, 0x7F, 0xDF, 0xB7, 0xEE, 0x7F,
+ 0x60, 0x8C, 0x22, 0x9C, 0x87, 0x04, 0x80, 0xB7, 0x49, 0x40, 0x10, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0xC2, 0x93, 0x20, 0xB7, 0x8C, 0x41, 0x80, 0xB7, 0x2D, 0x45, 0x01, 0xC0, 0x08, 0x2A,
+ 0x00, 0x75, 0x00, 0xC0, 0x24, 0x91, 0x09, 0xC8, 0xC2, 0x0D, 0x0C, 0xC7, 0xD0, 0x0D, 0x4B, 0x9E, 0x23, 0xC0, 0x40, 0x90, 0x80, 0xB7, 0x8C, 0x49, 0x00, 0x75, 0x09, 0xC8, 0xC2, 0x0D,
+ 0x38, 0xC7, 0xD0, 0x0D, 0xFF, 0xFF, 0xC4, 0x92, 0x83, 0x05, 0x64, 0xC0, 0xE0, 0x90, 0x09, 0xC8, 0xC2, 0x0D, 0x72, 0xC5, 0xA0, 0x0D, 0x4B, 0x9E, 0x22, 0xC0, 0xE0, 0x91, 0x05, 0xA6,
+ 0x20, 0xB7, 0x08, 0x45, 0x87, 0x06, 0x6C, 0x9E, 0x01, 0xC2, 0x00, 0x2A, 0x00, 0x75, 0x84, 0x08, 0x20, 0xB5, 0x08, 0x45, 0x00, 0xC0, 0x42, 0x91, 0x6C, 0x9E, 0x01, 0xC0, 0x5C, 0x7F,
+ 0xFF, 0xCD, 0x7E, 0x2A, 0xA5, 0x9E, 0x35, 0xB3, 0x42, 0x48, 0x09, 0xC2, 0x06, 0x0A, 0x02, 0xC1, 0x38, 0x0A, 0x69, 0x9E, 0x48, 0x78, 0x00, 0xC0, 0x82, 0x92, 0xFE, 0xCE, 0x49, 0x0A,
+ 0x48, 0x78, 0x00, 0xC0, 0x02, 0x91, 0x6B, 0x9E, 0x9A, 0x0D, 0x14, 0xC0, 0xD4, 0x9A, 0x00, 0xC0, 0xC0, 0x90, 0x6B, 0x9E, 0x96, 0x0D, 0x14, 0xC0, 0xCE, 0x9A, 0xF9, 0x2E, 0x00, 0xC0,
+ 0x00, 0x91, 0x60, 0xB7, 0x14, 0x57, 0x60, 0xB7, 0x0C, 0x4E, 0xF4, 0xFF, 0x54, 0x9A, 0x11, 0xD0, 0x52, 0x2E, 0x00, 0x75, 0x00, 0xC0, 0x82, 0x90, 0x14, 0xC0, 0xA1, 0x98, 0x11, 0xD1,
+ 0x50, 0x2E, 0x00, 0x75, 0x00, 0xC0, 0xA2, 0x90, 0x8B, 0x05, 0x14, 0xC0, 0x1B, 0x99, 0x6C, 0x9E, 0x01, 0xC0, 0x10, 0x2A, 0x00, 0x75, 0x02, 0xC0, 0xC2, 0x91, 0xA0, 0xB7, 0x8C, 0x49,
+ 0x40, 0x75, 0x00, 0xC0, 0x64, 0x90, 0x00, 0x9F, 0x80, 0xB7, 0x0C, 0x45, 0x88, 0xF2, 0x8A, 0xA8, 0x48, 0xF2, 0xBD, 0xA8, 0x02, 0xC0, 0x80, 0x28, 0x40, 0x74, 0x08, 0xDA, 0xBE, 0xA0,
+ 0x00, 0xC0, 0xA2, 0x90, 0x8B, 0x05, 0x14, 0xC0, 0x05, 0x9A, 0x01, 0xC9, 0x80, 0x9C, 0x88, 0xF2, 0x2D, 0xA2, 0x48, 0xF2, 0xBD, 0xA8, 0x01, 0xC2, 0x80, 0x38, 0x48, 0xF2, 0xBD, 0xA0,
+ 0x08, 0xD2, 0x21, 0xAA, 0x08, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x04, 0x91, 0x08, 0xD2, 0x21, 0xAA, 0x04, 0x2A, 0x00, 0x75, 0x01, 0xC0, 0x42, 0x90, 0x48, 0xF2, 0x3D, 0xAA, 0x00, 0xE0,
+ 0x10, 0x2A, 0x00, 0xC0, 0xE2, 0x91, 0x48, 0xF2, 0x3D, 0xAA, 0x08, 0xC0, 0x00, 0x3A, 0x48, 0xF2, 0x3D, 0xA2, 0x40, 0xC0, 0x92, 0x0D, 0x86, 0x09, 0xB4, 0xFF, 0xB8, 0x98, 0x00, 0xC0,
+ 0xE0, 0x91, 0x20, 0xB7, 0x8C, 0x46, 0x80, 0xB5, 0x2D, 0x4E, 0x48, 0xF2, 0x3D, 0xAA, 0x11, 0xC0, 0x00, 0x3A, 0x48, 0xF2, 0x3D, 0xA2, 0xAB, 0x9E, 0xB4, 0xFF, 0xCE, 0x98, 0x01, 0xC0,
+ 0x54, 0x7F, 0x01, 0xC0, 0x42, 0x91, 0xA0, 0xB7, 0x8C, 0x49, 0x40, 0x75, 0x00, 0xC0, 0x64, 0x90, 0x00, 0x9F, 0x80, 0xB7, 0x8C, 0x46, 0x20, 0xB7, 0x94, 0x45, 0x02, 0x85, 0xC8, 0xF2,
+ 0x13, 0xA1, 0x40, 0xB7, 0x1C, 0x50, 0x80, 0xB7, 0xCD, 0x42, 0x01, 0xC3, 0x20, 0x81, 0x40, 0xB5, 0x1C, 0x50, 0x20, 0xB7, 0xCD, 0x49, 0x48, 0xF2, 0x3D, 0xAA, 0x10, 0xE2, 0xA3, 0x80,
+ 0x02, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x20, 0xB5, 0x0C, 0x50, 0x00, 0xC0, 0xA2, 0x90, 0x8B, 0x05, 0x14, 0xC0, 0xA6, 0x99, 0xAB, 0x9E, 0xB4, 0xFF, 0xA2, 0x98, 0x80, 0xB7, 0x08, 0x45,
+ 0x04, 0x1A, 0x80, 0xB5, 0x08, 0x45, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x39, 0xF8, 0x05, 0xA2, 0x83, 0xB7, 0x08, 0x60, 0x1C, 0xC0, 0x3E, 0x7D,
+ 0x00, 0xC0, 0x84, 0x90, 0xF4, 0xFF, 0x22, 0x9A, 0x06, 0x08, 0xF8, 0xF9, 0x1D, 0xAA, 0x22, 0x9C, 0x05, 0xA6, 0xA0, 0xB7, 0x8C, 0x77, 0x01, 0xC9, 0x80, 0x9C, 0x88, 0xF2, 0x25, 0xA2,
+ 0x20, 0xB7, 0x8C, 0x47, 0x0A, 0xC0, 0xB0, 0x08, 0x20, 0xB7, 0x35, 0x40, 0x48, 0xDA, 0x2D, 0xAA, 0xA2, 0xD0, 0xC1, 0x5C, 0x00, 0xC2, 0x40, 0x5A, 0x00, 0xC2, 0x41, 0x5A, 0x48, 0x70,
+ 0x00, 0xC0, 0x02, 0x91, 0x48, 0xF2, 0x3D, 0xAA, 0x01, 0xC4, 0x00, 0x3A, 0x48, 0xF2, 0x3D, 0xA2, 0x48, 0xDA, 0xA5, 0xA0, 0x48, 0xF2, 0x3D, 0xAA, 0x20, 0x2A, 0x00, 0x75, 0x00, 0xC0,
+ 0x04, 0x92, 0x48, 0xDA, 0x29, 0xAA, 0x00, 0xC2, 0x40, 0x5A, 0x00, 0xC2, 0x41, 0x5A, 0x48, 0x70, 0x00, 0xC0, 0xE4, 0x90, 0x48, 0xF2, 0x3D, 0xAA, 0x10, 0x3A, 0x48, 0xF2, 0x3D, 0xA2,
+ 0x40, 0xB7, 0x9C, 0x77, 0x20, 0xB7, 0x94, 0x57, 0xA3, 0xCB, 0xBA, 0x08, 0xBA, 0xC8, 0x8C, 0x08, 0x10, 0xF2, 0x2B, 0x88, 0x43, 0x62, 0x00, 0xC2, 0x0F, 0x5A, 0x04, 0x0A, 0x3C, 0x2A,
+ 0x74, 0xD1, 0x41, 0x69, 0x02, 0x85, 0x20, 0xB7, 0x8C, 0x46, 0x20, 0xF0, 0xA3, 0x82, 0x86, 0x0D, 0x40, 0xB5, 0xBD, 0x4C, 0x94, 0xFF, 0xC1, 0x9A, 0x94, 0xFF, 0xD6, 0x9A, 0x94, 0xFF,
+ 0xB5, 0x9A, 0x08, 0xF2, 0x29, 0xAA, 0x01, 0xC0, 0x3C, 0x2A, 0x01, 0xC0, 0x08, 0x75, 0x00, 0xC0, 0x24, 0x92, 0x08, 0xF2, 0x3D, 0xAA, 0x0C, 0x2A, 0x02, 0x75, 0x00, 0xC0, 0x64, 0x91,
+ 0x09, 0xC8, 0xC2, 0x0D, 0x26, 0xC5, 0xC0, 0x0D, 0x8B, 0x01, 0x14, 0xC0, 0x0C, 0x9B, 0x00, 0xC0, 0xE0, 0x90, 0x83, 0xB7, 0x08, 0x60, 0x04, 0x1A, 0x83, 0xB5, 0x08, 0x60, 0x10, 0xD2,
+ 0x21, 0xAA, 0x40, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x24, 0x91, 0x09, 0xC8, 0xC2, 0x0D, 0x4C, 0xC4, 0xC0, 0x0D, 0x8B, 0x01, 0x14, 0xC0, 0xF8, 0x9A, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7,
+ 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x40, 0xB7, 0x8C, 0x46, 0x85, 0x00, 0x80, 0xB7, 0xAD, 0x45, 0x40, 0x2A, 0x00, 0x75, 0xFF, 0xFF, 0x82, 0x93, 0x80, 0xB7, 0x8C, 0x47,
+ 0x71, 0xD2, 0xC0, 0x08, 0x20, 0xB7, 0x35, 0x40, 0xA1, 0x9E, 0x85, 0x00, 0x80, 0xB7, 0xAD, 0x45, 0x40, 0x2A, 0x00, 0x75, 0xFF, 0xFF, 0x82, 0x93, 0x71, 0xD2, 0x10, 0x0E, 0x08, 0xF2,
+ 0x02, 0xA9, 0x85, 0x00, 0x80, 0xB7, 0xAD, 0x45, 0x40, 0x2A, 0x00, 0x75, 0xFF, 0xFF, 0x82, 0x93, 0x71, 0xD2, 0x10, 0x0E, 0x08, 0xF2, 0x81, 0xA8, 0x85, 0x00, 0x80, 0xB7, 0xAD, 0x45,
+ 0x40, 0x2A, 0x00, 0x75, 0xFF, 0xFF, 0x82, 0x93, 0x71, 0xD2, 0x10, 0x0E, 0x08, 0xF2, 0x81, 0xAA, 0x01, 0xC0, 0xA0, 0x76, 0x01, 0xC0, 0x42, 0x91, 0x00, 0xC0, 0x92, 0x91, 0x01, 0xC0,
+ 0x82, 0x76, 0x01, 0xC0, 0x22, 0x92, 0x01, 0xC0, 0x84, 0x76, 0x03, 0xC0, 0x02, 0x91, 0x03, 0xC0, 0xC0, 0x93, 0x01, 0xC4, 0x80, 0x76, 0x02, 0xC0, 0x62, 0x91, 0x00, 0xC0, 0x12, 0x91,
+ 0x01, 0xC2, 0x80, 0x76, 0x00, 0xC0, 0x42, 0x91, 0x03, 0xC0, 0x40, 0x92, 0x01, 0xD0, 0x80, 0x76, 0x01, 0xC0, 0x42, 0x93, 0x03, 0xC0, 0x80, 0x91, 0x80, 0xB7, 0x8C, 0x49, 0x00, 0x75,
+ 0x02, 0xC0, 0xC4, 0x90, 0xAB, 0x9E, 0x94, 0xFF, 0x7A, 0x9A, 0x03, 0xC0, 0x40, 0x90, 0xAB, 0x9E, 0x94, 0xFF, 0xFA, 0x9A, 0x20, 0xB7, 0x8C, 0x46, 0x80, 0xB7, 0xAD, 0x45, 0x40, 0x2A,
+ 0x00, 0x75, 0xFF, 0xFF, 0x82, 0x93, 0x02, 0xC0, 0xE0, 0x91, 0x08, 0xF2, 0xA9, 0xA9, 0xFE, 0xC9, 0xFD, 0x29, 0xA2, 0x0D, 0x00, 0xC2, 0x80, 0x39, 0x94, 0xFF, 0x6E, 0x9B, 0x20, 0xB7,
+ 0x8C, 0x46, 0x80, 0xB7, 0xAD, 0x45, 0x40, 0x2A, 0x00, 0x75, 0xFF, 0xFF, 0x82, 0x93, 0x80, 0xB7, 0x8C, 0x47, 0x08, 0xC0, 0x60, 0x0A, 0x08, 0xF2, 0x82, 0xA8, 0x48, 0xF2, 0xBD, 0xA8,
+ 0x01, 0xC0, 0xA0, 0x38, 0x48, 0xF2, 0xBD, 0xA0, 0x01, 0xC0, 0xC0, 0x92, 0xAB, 0x9E, 0xF4, 0xFF, 0xEE, 0x99, 0x01, 0xC0, 0x20, 0x92, 0x80, 0xB7, 0x8C, 0x49, 0x00, 0x75, 0x09, 0xC8,
+ 0xC2, 0x0D, 0x6E, 0xC3, 0x80, 0x0D, 0x00, 0xC0, 0x64, 0x91, 0xAB, 0x9E, 0xD4, 0xFF, 0x5B, 0x9B, 0x01, 0xC0, 0x60, 0x90, 0x09, 0xC8, 0xC2, 0x0D, 0x26, 0xC1, 0x80, 0x0D, 0x8B, 0x01,
+ 0x14, 0xC0, 0x4E, 0x9A, 0x00, 0xC0, 0x40, 0x93, 0xAB, 0x9E, 0x86, 0x09, 0x14, 0xC0, 0x85, 0x99, 0x48, 0xDA, 0xA6, 0xA9, 0x48, 0xDA, 0xAD, 0xA9, 0xB4, 0xFF, 0x36, 0x98, 0x20, 0xB7,
+ 0x8C, 0x46, 0x80, 0xB7, 0xAD, 0x45, 0x40, 0x2A, 0x00, 0x75, 0xFF, 0xFF, 0x82, 0x93, 0x80, 0xB7, 0x8C, 0x47, 0x08, 0xC0, 0x60, 0x0A, 0x08, 0xF2, 0x81, 0xA8, 0x9F, 0xB7, 0x6E, 0x7F,
+ 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x20, 0x84, 0x80, 0xB7, 0x0C, 0x4A, 0x11, 0xD0, 0xC2, 0x08, 0x31, 0xD0, 0x9E, 0x2A, 0x3C, 0x2A, 0x48, 0x71, 0x01, 0xC0,
+ 0x42, 0x92, 0x73, 0xD1, 0x51, 0x69, 0x40, 0xB7, 0x84, 0x57, 0x2E, 0x9E, 0x38, 0xC0, 0x41, 0xAA, 0x40, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0xA2, 0x93, 0x40, 0xF0, 0x5D, 0xAA, 0x02, 0xC0,
+ 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0xC2, 0x92, 0x22, 0x85, 0x5F, 0xB5, 0x78, 0x7C, 0x40, 0xF0, 0xDD, 0xA8, 0x32, 0xE0, 0x80, 0x8D, 0x00, 0xD8, 0x45, 0xAA, 0x0C, 0xC0, 0x16, 0x85,
+ 0x5F, 0xB5, 0xF8, 0x7C, 0x82, 0x09, 0x3F, 0xB5, 0xEC, 0x7F, 0x9F, 0xB5, 0xEA, 0x7E, 0x74, 0xFF, 0xAF, 0x99, 0x20, 0xB7, 0x0C, 0x4A, 0x11, 0xD0, 0x52, 0x0A, 0x31, 0xD0, 0xCE, 0x2A,
+ 0xBC, 0x28, 0x42, 0x71, 0xFE, 0xFF, 0x44, 0x92, 0x9F, 0xB7, 0xEE, 0x7E, 0xBF, 0xB7, 0x6E, 0x7F, 0x60, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x40, 0x84, 0x5D, 0x9E, 0x02, 0x85, 0x73, 0xC0,
+ 0xCE, 0x9C, 0x20, 0xB7, 0x8C, 0x46, 0x08, 0xC0, 0x80, 0x08, 0x80, 0xB7, 0x2D, 0x40, 0xAB, 0x9E, 0x41, 0x2A, 0x08, 0x3A, 0x80, 0xB5, 0x2D, 0x40, 0xF4, 0xFF, 0xAD, 0x9B, 0x20, 0xB7,
+ 0x14, 0x45, 0x42, 0x85, 0x5F, 0xB5, 0x78, 0x78, 0x0C, 0xC0, 0x1E, 0x85, 0x5F, 0xB5, 0xF8, 0x78, 0x52, 0xE0, 0x80, 0x8D, 0x80, 0xB7, 0x4D, 0x49, 0x20, 0xB7, 0x8C, 0x50, 0x86, 0x09,
+ 0xBF, 0xB5, 0x6C, 0x7F, 0x9F, 0xB5, 0x6A, 0x7F, 0x3F, 0xB5, 0xEC, 0x7E, 0x74, 0xFF, 0x74, 0x99, 0x00, 0xC0, 0x00, 0x90, 0x9F, 0xB7, 0x6E, 0x7E, 0xBF, 0xB7, 0xEE, 0x7E, 0x02, 0xC0,
+ 0x00, 0x8C, 0x22, 0x9C, 0x20, 0xB7, 0x8C, 0x47, 0x80, 0xB7, 0xAD, 0x4D, 0x81, 0xC0, 0x00, 0x3A, 0x80, 0xB5, 0xAD, 0x4D, 0x22, 0x9C, 0x80, 0xB7, 0x0C, 0x43, 0x59, 0x9E, 0x08, 0x75,
+ 0x26, 0xD2, 0x0C, 0x59, 0x40, 0x85, 0x5A, 0xE0, 0x44, 0x80, 0x02, 0xC0, 0x80, 0x91, 0x00, 0xC0, 0x40, 0x91, 0x01, 0xC0, 0xC0, 0x90, 0x02, 0xC0, 0xC0, 0x90, 0x02, 0xC0, 0x80, 0x90,
+ 0x01, 0xC0, 0x60, 0x93, 0x11, 0xD0, 0x12, 0x1A, 0x0A, 0x75, 0x26, 0xD2, 0x0C, 0x59, 0x40, 0x85, 0x5A, 0xE0, 0x44, 0x80, 0x00, 0xC0, 0x80, 0x92, 0x00, 0xC0, 0xE0, 0x91, 0x01, 0xC0,
+ 0x20, 0x92, 0x01, 0xC0, 0xE0, 0x91, 0x00, 0xC0, 0xC0, 0x90, 0x00, 0xC0, 0xE0, 0x90, 0x01, 0xC0, 0x20, 0x91, 0x12, 0x85, 0x01, 0xC0, 0xE0, 0x90, 0x06, 0x85, 0x01, 0xC0, 0x80, 0x90,
+ 0x01, 0xC0, 0x20, 0x90, 0x11, 0xD0, 0x12, 0x1A, 0x0A, 0x75, 0x26, 0xD2, 0x0C, 0x59, 0x40, 0x85, 0x5A, 0xE0, 0x44, 0x80, 0x00, 0xC0, 0x20, 0x92, 0x00, 0xC0, 0xA0, 0x92, 0x00, 0xC0,
+ 0x60, 0x92, 0x00, 0xC0, 0x20, 0x92, 0x00, 0xC0, 0xC0, 0x90, 0x00, 0xC0, 0x00, 0x92, 0x00, 0xC0, 0x60, 0x91, 0x12, 0x85, 0x00, 0xC0, 0x20, 0x91, 0x00, 0xC0, 0xC0, 0x90, 0x4E, 0x74,
+ 0x06, 0x85, 0x00, 0xC0, 0x62, 0x90, 0x0A, 0x85, 0x40, 0xB5, 0x1C, 0x43, 0x00, 0xB7, 0x0C, 0x43, 0x22, 0x9C, 0x05, 0xA6, 0x80, 0xB7, 0x0C, 0x43, 0x20, 0xB7, 0x94, 0x41, 0x5D, 0x9E,
+ 0x80, 0xB5, 0x0C, 0x51, 0x20, 0xB7, 0x4D, 0x41, 0x9D, 0x9E, 0x4A, 0x75, 0xA0, 0x58, 0x9A, 0x30, 0x20, 0xB5, 0x4D, 0x41, 0x00, 0xC0, 0xC4, 0x93, 0x80, 0xB7, 0x8C, 0x77, 0xA0, 0xB5,
+ 0x94, 0x50, 0x48, 0xF2, 0x9D, 0xA8, 0x02, 0xC0, 0x80, 0x38, 0x48, 0xF2, 0x9D, 0xA0, 0x02, 0xC0, 0x82, 0x0D, 0x94, 0xFF, 0x77, 0x98, 0x00, 0xC1, 0xBE, 0x0D, 0x94, 0xFF, 0x7D, 0x98,
+ 0x80, 0xB7, 0x8C, 0x46, 0x0A, 0x85, 0x43, 0xB5, 0x18, 0x60, 0x02, 0x85, 0xC8, 0xF2, 0x07, 0xA1, 0x00, 0xC0, 0x80, 0x92, 0x4C, 0x75, 0x00, 0xC0, 0x24, 0x92, 0x80, 0xB7, 0x8C, 0x50,
+ 0x00, 0x75, 0x20, 0xB7, 0x8C, 0x49, 0x00, 0xC0, 0x04, 0x91, 0x80, 0xB7, 0xAD, 0x47, 0x02, 0xC0, 0x00, 0x3A, 0x80, 0xB5, 0xAD, 0x47, 0xF4, 0xFF, 0x61, 0x9B, 0xAB, 0x9E, 0xF4, 0xFF,
+ 0x67, 0x9B, 0x80, 0xB7, 0x0C, 0x43, 0x08, 0x75, 0x00, 0xC0, 0xA4, 0x92, 0x80, 0xB7, 0x8C, 0x49, 0x00, 0x75, 0x00, 0xC0, 0xA2, 0x91, 0x08, 0xD2, 0x01, 0xAA, 0x10, 0x2A, 0x00, 0x75,
+ 0x00, 0xC0, 0xE2, 0x90, 0x9E, 0x0D, 0xF4, 0xFF, 0x54, 0x9B, 0x00, 0xC0, 0xA0, 0x90, 0xA2, 0x0D, 0xF4, 0xFF, 0x4F, 0x9B, 0x80, 0xB7, 0x0C, 0x43, 0x04, 0x75, 0x00, 0xC0, 0x24, 0x93,
+ 0xC0, 0xC1, 0x40, 0x7F, 0x00, 0xC0, 0x42, 0x92, 0x20, 0xB7, 0x8C, 0x49, 0x40, 0x74, 0x00, 0xC0, 0xE4, 0x90, 0x20, 0xB7, 0x8C, 0x77, 0x40, 0x74, 0x00, 0xC0, 0x02, 0x91, 0x80, 0xB7,
+ 0xAD, 0x47, 0x02, 0xC0, 0x00, 0x3A, 0x80, 0xB5, 0xAD, 0x47, 0x8B, 0x05, 0xF4, 0xFF, 0xF6, 0x9A, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x20, 0xB7,
+ 0x8C, 0x46, 0x08, 0xC0, 0x80, 0x08, 0x80, 0xB7, 0x2D, 0x40, 0x41, 0x2A, 0x20, 0x3A, 0x80, 0xB5, 0x2D, 0x40, 0x22, 0x9C, 0x80, 0xB7, 0x8C, 0x46, 0x20, 0xB7, 0x8C, 0x51, 0x08, 0xC0,
+ 0x20, 0x0A, 0x08, 0xF2, 0x81, 0xA0, 0xFF, 0xFF, 0xA0, 0x91, 0x05, 0xA6, 0x50, 0xF0, 0x7D, 0xAA, 0xB9, 0x9D, 0x52, 0xD0, 0x40, 0x28, 0xA0, 0xB7, 0x8C, 0x43, 0x71, 0xC1, 0xCD, 0x9C,
+ 0x60, 0xB7, 0x84, 0x66, 0x60, 0xB7, 0x1C, 0x67, 0xC8, 0x9D, 0xE7, 0x9D, 0x18, 0xC0, 0x49, 0xAA, 0x68, 0x9D, 0x10, 0xF0, 0xE6, 0xA8, 0x0E, 0xC0, 0x7C, 0x2A, 0x00, 0xC2, 0x08, 0x5A,
+ 0x20, 0xE2, 0x85, 0xA8, 0x4C, 0x9E, 0x48, 0x70, 0x6C, 0x9D, 0x02, 0xC0, 0x42, 0x91, 0x08, 0xF0, 0x61, 0xAA, 0x49, 0x9E, 0x48, 0x70, 0x02, 0x09, 0x82, 0x0C, 0x12, 0xB4, 0x42, 0x44,
+ 0x01, 0xD0, 0x22, 0x09, 0x00, 0xC0, 0x62, 0x92, 0x84, 0x0C, 0x46, 0x76, 0x00, 0xC0, 0xF2, 0x91, 0xA2, 0xD0, 0x08, 0x5E, 0x10, 0xF0, 0xE5, 0xA8, 0x30, 0xE2, 0x05, 0xAA, 0x48, 0x70,
+ 0xFF, 0xFF, 0xA4, 0x92, 0x29, 0x9E, 0x06, 0x09, 0x30, 0xC0, 0xCE, 0xA0, 0x80, 0x74, 0x01, 0xC0, 0x44, 0x91, 0x44, 0x9D, 0x3E, 0x9E, 0x40, 0x74, 0x38, 0xC0, 0x41, 0xAA, 0x02, 0x85,
+ 0x01, 0xE0, 0x22, 0x85, 0xF2, 0xD3, 0xCE, 0x28, 0x30, 0xC0, 0xCD, 0xA8, 0x84, 0x0C, 0x8C, 0x2C, 0x4A, 0x9E, 0x44, 0x70, 0x01, 0xD0, 0x92, 0x0C, 0x01, 0xD0, 0x96, 0x2C, 0x10, 0xF0,
+ 0x65, 0xAA, 0x20, 0xB7, 0x8C, 0x46, 0xA2, 0xD0, 0x08, 0x5D, 0xF0, 0xCF, 0x01, 0x2A, 0xA2, 0x00, 0x08, 0xC0, 0xD0, 0x08, 0x80, 0xB5, 0x2D, 0x40, 0x00, 0xD0, 0xC2, 0xA0, 0x10, 0xF0,
+ 0x66, 0xA9, 0x06, 0x0C, 0x30, 0xE0, 0x46, 0xA1, 0x20, 0xB7, 0x8C, 0x51, 0x18, 0xD0, 0x61, 0xAA, 0xCE, 0xCF, 0xFD, 0x28, 0x00, 0xC2, 0x20, 0x5A, 0x30, 0xC0, 0x00, 0x2A, 0x98, 0x30,
+ 0x20, 0xB5, 0x8C, 0x51, 0x20, 0xB7, 0x94, 0x51, 0x18, 0xD0, 0x65, 0xAA, 0x00, 0xC2, 0x28, 0x5A, 0xC0, 0xC0, 0x00, 0x2A, 0x49, 0x9D, 0x80, 0xB7, 0x8C, 0x46, 0x3E, 0xCF, 0xFD, 0x2C,
+ 0x01, 0xC3, 0x94, 0x34, 0x20, 0xB5, 0x94, 0x51, 0x20, 0xB7, 0x8C, 0x51, 0x00, 0x76, 0x08, 0xC0, 0x20, 0x0A, 0x08, 0xF2, 0x81, 0xA0, 0x00, 0xC0, 0x82, 0x90, 0xF4, 0xFF, 0x5C, 0x9B,
+ 0x71, 0xC1, 0xCD, 0x9C, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x5D, 0x9E, 0x82, 0x0D, 0x74, 0xFF, 0x93, 0x99, 0x48, 0xF2, 0xB9, 0xA9,
+ 0x82, 0x0D, 0x02, 0x0D, 0x02, 0x09, 0x74, 0xFF, 0x7B, 0x99, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x5D, 0x9E, 0x82, 0x0D, 0x74, 0xFF,
+ 0x81, 0x99, 0x48, 0xF2, 0xB5, 0xA9, 0x82, 0x0D, 0x02, 0x0D, 0x02, 0x09, 0x74, 0xFF, 0x69, 0x99, 0x83, 0xB7, 0x08, 0x60, 0x06, 0x08, 0x04, 0x1A, 0x83, 0xB5, 0x08, 0x60, 0x9F, 0xB7,
+ 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x80, 0xB7, 0x0C, 0x52, 0x20, 0xB7, 0x8C, 0x52, 0x04, 0x0A, 0x7C, 0x2A, 0x02, 0x71, 0x5A, 0x9E, 0x00, 0xC0, 0x64, 0x90,
+ 0x00, 0x9F, 0x20, 0xB7, 0x94, 0x43, 0x72, 0xC0, 0xCD, 0x9C, 0x40, 0xB7, 0x84, 0x67, 0x80, 0xB7, 0x0C, 0x52, 0x20, 0xB7, 0x0C, 0x52, 0x26, 0xD2, 0x0C, 0x59, 0x2D, 0x9E, 0x10, 0x87,
+ 0x30, 0xE0, 0x4D, 0xA1, 0xA6, 0xD0, 0x0C, 0x59, 0x2D, 0x9E, 0x30, 0xE0, 0xCD, 0xA1, 0x08, 0xD0, 0x65, 0xAA, 0x04, 0x0A, 0x08, 0xD0, 0x65, 0xA2, 0x20, 0xB7, 0x0C, 0x52, 0x84, 0x08,
+ 0xFC, 0x28, 0x20, 0xB5, 0x0C, 0x52, 0x72, 0xC0, 0xCD, 0x9C, 0x22, 0x9C, 0x0D, 0xA6, 0x20, 0xB7, 0x8C, 0x52, 0x80, 0xB7, 0x0C, 0x52, 0x48, 0x70, 0x02, 0xC0, 0x42, 0x91, 0xC0, 0xB7,
+ 0x8C, 0x67, 0x80, 0xB7, 0x8C, 0x52, 0x14, 0xD0, 0x68, 0x09, 0x26, 0xD2, 0x0C, 0x59, 0x2D, 0x9E, 0x47, 0x9D, 0x30, 0xE0, 0xCD, 0xAA, 0x60, 0xE0, 0xA6, 0xAA, 0x20, 0xB7, 0x8C, 0x43,
+ 0x71, 0xC0, 0xCD, 0x9C, 0x04, 0x0A, 0x7C, 0x2A, 0x80, 0xB5, 0x8C, 0x52, 0x71, 0xC0, 0xCD, 0x9C, 0x40, 0x77, 0x00, 0xC0, 0xA2, 0x91, 0xAB, 0x9E, 0x0B, 0x06, 0x62, 0x9C, 0x1C, 0xC0,
+ 0x3E, 0x7C, 0x00, 0xC0, 0xC4, 0x90, 0x8B, 0x05, 0x8B, 0x01, 0xF4, 0xFF, 0xA6, 0x9B, 0xA0, 0xB7, 0x94, 0x43, 0x72, 0xC1, 0xCD, 0x9C, 0x08, 0xD2, 0x25, 0xAA, 0x04, 0x1A, 0x08, 0xD2,
+ 0x25, 0xA2, 0x08, 0xD2, 0xA5, 0xA8, 0x1C, 0xC0, 0x7E, 0x7C, 0x00, 0xC0, 0x84, 0x91, 0x48, 0xF2, 0x3D, 0xAA, 0x01, 0xC1, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0xA2, 0x90, 0xAB, 0x9E,
+ 0x94, 0xFF, 0xA2, 0x98, 0x72, 0xC1, 0xCD, 0x9C, 0x20, 0xB7, 0x8C, 0x52, 0x80, 0xB7, 0x0C, 0x52, 0x48, 0x70, 0xFD, 0xFF, 0x84, 0x93, 0x9F, 0xB7, 0xEE, 0x7E, 0xBF, 0xB7, 0x6E, 0x7F,
+ 0xDF, 0xB7, 0xEE, 0x7F, 0x60, 0x8C, 0x22, 0x9C, 0x1D, 0xA6, 0x20, 0x84, 0x5E, 0x9E, 0x95, 0x9E, 0x91, 0xD0, 0xE0, 0x0B, 0x08, 0xD2, 0x61, 0xAA, 0xA2, 0xD2, 0x9C, 0x5E, 0x22, 0x0F,
+ 0x83, 0x07, 0x06, 0x75, 0x7F, 0xB5, 0x6C, 0x7F, 0x5F, 0xB5, 0xF4, 0x7F, 0x00, 0xC0, 0xC4, 0x93, 0x48, 0xDA, 0xC9, 0xA9, 0x8B, 0x05, 0x84, 0x59, 0xB4, 0xC0, 0x28, 0x99, 0x48, 0xDA,
+ 0xC9, 0xA9, 0x04, 0x58, 0x87, 0x62, 0x8B, 0x05, 0xB4, 0xC0, 0x6E, 0x99, 0x48, 0xDA, 0xC9, 0xA9, 0x8B, 0x05, 0x04, 0x58, 0xD0, 0x02, 0xB4, 0xC0, 0x1A, 0x99, 0x13, 0xD0, 0x52, 0x09,
+ 0x04, 0x28, 0x10, 0xF2, 0xA1, 0x88, 0x20, 0x0F, 0x80, 0xC2, 0x9C, 0x5A, 0x08, 0xD2, 0x61, 0xAA, 0x02, 0x75, 0x14, 0xD3, 0x04, 0x5F, 0x94, 0xD2, 0x84, 0x5A, 0x00, 0x75, 0x82, 0x0D,
+ 0x11, 0xD2, 0x50, 0x0A, 0x54, 0xB3, 0x24, 0x44, 0x89, 0x02, 0x74, 0xFF, 0xA9, 0x98, 0x3F, 0xB7, 0xEC, 0x7F, 0x80, 0xB7, 0x8C, 0x44, 0x2E, 0xC0, 0x82, 0x68, 0x5F, 0xB7, 0x6C, 0x7F,
+ 0x80, 0xC3, 0x88, 0x5D, 0x87, 0x04, 0x21, 0xC0, 0x84, 0x3C, 0x34, 0xC0, 0x10, 0x0A, 0x94, 0x00, 0x20, 0xC0, 0xC0, 0x08, 0xE9, 0xF3, 0x9D, 0xA0, 0x08, 0xF2, 0x82, 0xA0, 0x08, 0xF2,
+ 0x53, 0xA9, 0xC0, 0x0A, 0x11, 0xD0, 0xF2, 0x1D, 0x20, 0xE3, 0xA3, 0x80, 0x04, 0x1F, 0x0D, 0x05, 0x06, 0x09, 0x74, 0xFF, 0xF6, 0x98, 0x9F, 0xB7, 0xEE, 0x7D, 0xBF, 0xB7, 0x6E, 0x7E,
+ 0xDF, 0xB7, 0xEE, 0x7E, 0xFF, 0xB7, 0x6E, 0x7F, 0x02, 0xC0, 0x20, 0x8C, 0x22, 0x9C, 0x2E, 0xC0, 0x82, 0x69, 0x3E, 0x9D, 0x10, 0x5D, 0x20, 0xC0, 0x80, 0x09, 0x01, 0xC2, 0x36, 0x81,
+ 0x20, 0xE2, 0x2D, 0x81, 0x90, 0xD0, 0xDE, 0xA8, 0xD0, 0xD0, 0x5D, 0xA8, 0x50, 0xD8, 0x5D, 0xAA, 0x50, 0xD8, 0xC9, 0xA8, 0xC8, 0x5C, 0x11, 0xC0, 0x80, 0x2C, 0x0E, 0xC0, 0x70, 0x28,
+ 0x3E, 0xC0, 0x40, 0x2A, 0x38, 0x58, 0x00, 0xC2, 0x10, 0x5A, 0x08, 0x30, 0x4C, 0x9E, 0x3E, 0xC0, 0xC0, 0x28, 0x91, 0x58, 0x02, 0x30, 0x08, 0x30, 0x22, 0x9C, 0x1D, 0xA6, 0x02, 0xC0,
+ 0x60, 0x84, 0x5E, 0x9E, 0x06, 0x87, 0x02, 0x09, 0x82, 0x0F, 0x91, 0xD0, 0xE0, 0x08, 0x80, 0xB7, 0x29, 0x40, 0x5F, 0xB5, 0x64, 0x7C, 0x5F, 0xB5, 0xEC, 0x7C, 0x04, 0x09, 0x5F, 0xB5,
+ 0x6C, 0x7D, 0x06, 0x75, 0x02, 0x0A, 0x9F, 0xB5, 0xEC, 0x7D, 0x00, 0xC0, 0x02, 0x91, 0x80, 0xB7, 0x29, 0x40, 0x24, 0xD2, 0x88, 0x5A, 0x00, 0xC0, 0x60, 0x90, 0xA2, 0x0E, 0x80, 0xB7,
+ 0x8C, 0x49, 0x40, 0xB7, 0x9C, 0x4A, 0x00, 0x75, 0x5F, 0xB5, 0x7C, 0x7E, 0x00, 0xC0, 0x04, 0x91, 0x80, 0xB7, 0x08, 0x44, 0x1C, 0xC0, 0x3E, 0x7D, 0x00, 0xC0, 0xA2, 0x90, 0x02, 0x08,
+ 0x0C, 0xC0, 0x20, 0x93, 0xB3, 0x9E, 0xC0, 0xB5, 0x8C, 0x49, 0x86, 0x09, 0xF4, 0xFF, 0xF2, 0x99, 0x48, 0xDA, 0xC9, 0xAA, 0xAB, 0x9E, 0x02, 0xC0, 0xB6, 0x09, 0xB4, 0xC0, 0x73, 0x98,
+ 0x40, 0x58, 0x28, 0xD0, 0x41, 0x59, 0xAB, 0x9E, 0x02, 0xC0, 0xB6, 0x09, 0x5F, 0xB5, 0xE4, 0x79, 0xB4, 0xC0, 0xB6, 0x98, 0x00, 0xE0, 0x40, 0x58, 0x7F, 0xB7, 0xE4, 0x79, 0xAB, 0x9E,
+ 0x02, 0x0A, 0x02, 0xD0, 0x42, 0x0A, 0x01, 0xC3, 0xB0, 0x83, 0x6C, 0x9D, 0x7F, 0xB5, 0xE4, 0x79, 0xB4, 0xC0, 0x5A, 0x98, 0x5F, 0xB7, 0xFC, 0x79, 0x48, 0xDA, 0xCA, 0xA9, 0x4F, 0x9D,
+ 0x1F, 0xB5, 0x6C, 0x7A, 0xB4, 0xC0, 0x9E, 0x98, 0x00, 0x74, 0x5F, 0xB7, 0x64, 0x7A, 0x02, 0x0A, 0x02, 0xD0, 0x42, 0x0A, 0x7F, 0xB7, 0xE4, 0x79, 0x01, 0xC3, 0x20, 0x83, 0x5F, 0xB5,
+ 0x64, 0x7A, 0x48, 0xDA, 0xCE, 0xA8, 0x11, 0xF0, 0x32, 0x8E, 0x48, 0xDA, 0xC9, 0xA8, 0x01, 0xC0, 0x45, 0x62, 0x4A, 0x9E, 0x00, 0xE0, 0x18, 0x12, 0x23, 0x61, 0xCD, 0x9D, 0x82, 0x0D,
+ 0x5F, 0xB5, 0x6C, 0x7B, 0x32, 0xB3, 0x84, 0x50, 0x5F, 0xB5, 0xE4, 0x7A, 0x54, 0xFF, 0xD6, 0x9B, 0x5F, 0xB7, 0x7C, 0x7A, 0x3F, 0xB7, 0x6C, 0x7E, 0xB3, 0x9E, 0xC7, 0x9D, 0x02, 0x0D,
+ 0x02, 0x09, 0x83, 0x01, 0xF4, 0xFF, 0xE5, 0x9A, 0x5F, 0xB7, 0x64, 0x7A, 0x08, 0xF2, 0xC9, 0xA9, 0x5F, 0xB5, 0xE4, 0x7B, 0xFE, 0xC9, 0xFD, 0x29, 0xA2, 0x0D, 0x00, 0xC4, 0x80, 0x39,
+ 0x74, 0xFF, 0x42, 0x9B, 0xB2, 0x0D, 0x08, 0xF2, 0xD9, 0xA9, 0x74, 0xFF, 0x3D, 0x9B, 0xC2, 0x0D, 0x08, 0xF2, 0xDD, 0xA9, 0x74, 0xFF, 0x38, 0x9B, 0x02, 0xC0, 0xA2, 0x0D, 0x48, 0xF2,
+ 0xC5, 0xA9, 0x74, 0xFF, 0x32, 0x9B, 0x02, 0xC0, 0xB2, 0x0D, 0x48, 0xF2, 0xC9, 0xA9, 0x74, 0xFF, 0x2C, 0x9B, 0x48, 0xF2, 0xCD, 0xA9, 0x02, 0xC0, 0xF2, 0x0D, 0xB0, 0x39, 0x74, 0xFF,
+ 0x25, 0x9B, 0x04, 0xC0, 0x82, 0x0D, 0x48, 0xF2, 0xD1, 0xA9, 0x74, 0xFF, 0x1F, 0x9B, 0x40, 0xC0, 0x82, 0x0D, 0x6B, 0x9E, 0x74, 0xFF, 0x1A, 0x9B, 0x01, 0xC0, 0xA0, 0x3F, 0x91, 0xD0,
+ 0x60, 0x0A, 0x08, 0xD2, 0x81, 0xA8, 0x42, 0x74, 0x00, 0xC0, 0xB2, 0x91, 0x3F, 0xB7, 0xEC, 0x7D, 0x8A, 0x87, 0x7F, 0xB5, 0x64, 0x7C, 0x01, 0xC0, 0xC0, 0x3F, 0x01, 0xC0, 0xC0, 0x38,
+ 0x3F, 0xB5, 0xEC, 0x7D, 0x48, 0xDA, 0x4D, 0xAA, 0x02, 0x09, 0x88, 0x70, 0x5F, 0xB5, 0x6C, 0x79, 0x06, 0xC0, 0x88, 0x93, 0x5F, 0xB7, 0x6C, 0x79, 0x79, 0x9E, 0x01, 0xC0, 0x90, 0x38,
+ 0x0E, 0xC0, 0xFE, 0x28, 0x00, 0xC1, 0x20, 0x5A, 0x80, 0x74, 0xF0, 0xCF, 0x00, 0x2A, 0x20, 0xD0, 0x98, 0x33, 0x00, 0xC0, 0xE2, 0x91, 0x3F, 0xB7, 0xEC, 0x7D, 0x11, 0xD0, 0x22, 0x1A,
+ 0x00, 0xC2, 0x20, 0x5A, 0xF0, 0xCF, 0x00, 0x2A, 0x0E, 0xC0, 0xFE, 0x28, 0x98, 0x30, 0x3F, 0xB5, 0xEC, 0x7D, 0x5F, 0xB7, 0xFC, 0x79, 0x3F, 0xB7, 0x6C, 0x79, 0x86, 0x0E, 0x75, 0x73,
+ 0x5F, 0xB7, 0x7C, 0x7C, 0x82, 0x0B, 0x01, 0xC3, 0x94, 0x00, 0x3F, 0xB5, 0xEC, 0x7E, 0x05, 0xC0, 0x92, 0x90, 0x5F, 0xB7, 0xE4, 0x79, 0x3F, 0xB7, 0xEC, 0x7A, 0xDE, 0x9D, 0x11, 0xF0,
+ 0x22, 0x8E, 0x5F, 0xB7, 0x7C, 0x7A, 0x07, 0x71, 0x83, 0x02, 0x25, 0xB3, 0x24, 0x4C, 0x82, 0x0D, 0x54, 0xFF, 0x3E, 0x9B, 0x3F, 0xB7, 0xEC, 0x7B, 0x5F, 0xB7, 0x6C, 0x7B, 0x9F, 0xB7,
+ 0xEC, 0x7C, 0x44, 0x70, 0x3F, 0xB7, 0x6C, 0x7D, 0x04, 0x4A, 0x9F, 0xB5, 0xEC, 0x7C, 0x84, 0x48, 0x3F, 0xB5, 0x6C, 0x7D, 0x00, 0xC0, 0x68, 0x92, 0x5F, 0xB7, 0x6C, 0x7E, 0xB3, 0x9E,
+ 0xA1, 0x9E, 0x9F, 0xB7, 0xEC, 0x7B, 0x03, 0x05, 0xA9, 0x9E, 0x85, 0x01, 0x09, 0x01, 0xF4, 0xFF, 0x3B, 0x9A, 0x3F, 0xB7, 0xEC, 0x7B, 0x9A, 0x00, 0x3F, 0xB5, 0xEC, 0x7B, 0x5F, 0xB7,
+ 0x7C, 0x7A, 0x02, 0x0F, 0xB5, 0x73, 0x84, 0x0E, 0xBF, 0xB5, 0x74, 0x7F, 0x03, 0xC0, 0x28, 0x90, 0x48, 0xDA, 0x49, 0xAA, 0xC8, 0x71, 0x02, 0xC0, 0x88, 0x93, 0x5F, 0xB7, 0x64, 0x7E,
+ 0xA6, 0xD3, 0x08, 0x59, 0x20, 0xF0, 0xA5, 0x80, 0x9F, 0xB7, 0xEC, 0x7D, 0x3F, 0xB7, 0x74, 0x79, 0xF1, 0xD3, 0xFE, 0x28, 0xF0, 0xCF, 0x01, 0x2A, 0x42, 0x32, 0x9F, 0xB5, 0xEC, 0x7D,
+ 0x7C, 0x9E, 0x40, 0x76, 0xF0, 0xCF, 0x01, 0x2A, 0x20, 0xD0, 0xC2, 0x33, 0x00, 0xC0, 0x82, 0x92, 0x5F, 0xB7, 0xEC, 0x7D, 0x60, 0xC0, 0xA2, 0x0D, 0x85, 0x01, 0x74, 0xFF, 0x72, 0x9A,
+ 0x60, 0xC0, 0xB2, 0x0D, 0x10, 0xF2, 0xA1, 0xA9, 0x74, 0xFF, 0x6C, 0x9A, 0x60, 0xC0, 0xF2, 0x0D, 0x82, 0x09, 0x74, 0xFF, 0x67, 0x9A, 0x3F, 0xB7, 0x74, 0x7E, 0x5F, 0xB7, 0x6C, 0x7D,
+ 0x0D, 0x05, 0x83, 0x05, 0x85, 0x01, 0xF4, 0xFF, 0x60, 0x9A, 0x81, 0x02, 0x40, 0xC0, 0xA2, 0x0D, 0x7B, 0x9E, 0x74, 0xFF, 0x58, 0x9A, 0x40, 0xC0, 0xB2, 0x0D, 0x8B, 0x01, 0x74, 0xFF,
+ 0x53, 0x9A, 0x40, 0xC0, 0xF2, 0x0D, 0x82, 0x09, 0x74, 0xFF, 0x4E, 0x9A, 0x42, 0xC0, 0xB2, 0x0D, 0x01, 0xC0, 0x86, 0x09, 0x74, 0xFF, 0x48, 0x9A, 0x31, 0xF2, 0xA5, 0xA2, 0x5F, 0xB7,
+ 0x7C, 0x7A, 0x04, 0x0F, 0xB5, 0x73, 0xFF, 0xCF, 0xEE, 0x2F, 0x84, 0x0B, 0x00, 0xC0, 0xE8, 0x90, 0x48, 0xDA, 0x49, 0xAA, 0xC8, 0x71, 0xFD, 0xFF, 0xC6, 0x91, 0x3F, 0xB7, 0x74, 0x7F,
+ 0x5F, 0xB7, 0xFC, 0x79, 0x83, 0x06, 0x75, 0x73, 0xFB, 0xFF, 0x14, 0x90, 0x5F, 0xB7, 0xE4, 0x7E, 0x48, 0xDA, 0x4D, 0xAA, 0x44, 0x9D, 0x5F, 0xB5, 0x64, 0x79, 0x48, 0x70, 0xFF, 0xCF,
+ 0xDE, 0x2F, 0xF9, 0xFF, 0x06, 0x91, 0x40, 0xC0, 0x92, 0x0D, 0x82, 0x09, 0x74, 0xFF, 0x1F, 0x9A, 0x40, 0xC0, 0x92, 0x0D, 0x86, 0x09, 0x74, 0xFF, 0x1A, 0x9A, 0x02, 0xC0, 0xF2, 0x0D,
+ 0x82, 0x09, 0x74, 0xFF, 0x15, 0x9A, 0x06, 0x08, 0x9F, 0xB7, 0xEE, 0x7A, 0xBF, 0xB7, 0x6E, 0x7B, 0xDF, 0xB7, 0xEE, 0x7B, 0xFF, 0xB7, 0x6E, 0x7C, 0x04, 0xC0, 0x60, 0x8C, 0x22, 0x9C,
+ 0x1D, 0xA6, 0x40, 0x84, 0x60, 0xB7, 0x0C, 0x59, 0x00, 0xB7, 0x8C, 0x58, 0x02, 0x85, 0x60, 0xB7, 0x1C, 0x68, 0x60, 0xB9, 0x78, 0x40, 0x01, 0x02, 0x29, 0xF2, 0x07, 0xA1, 0xFF, 0xFF,
+ 0xC1, 0x93, 0x10, 0xD0, 0x61, 0xAA, 0x73, 0xD0, 0x48, 0x29, 0x30, 0xE0, 0xCD, 0xA8, 0x08, 0xF0, 0xE9, 0xA0, 0x10, 0xD0, 0x61, 0xAA, 0x40, 0xB7, 0x84, 0x58, 0x0E, 0xC0, 0x00, 0x2A,
+ 0x26, 0xD2, 0x0D, 0x59, 0x3F, 0xC0, 0x7E, 0x0C, 0x00, 0xCC, 0x00, 0x0C, 0x30, 0xE0, 0xCD, 0xA8, 0x11, 0xD0, 0x38, 0x0D, 0x40, 0xB7, 0x94, 0x6A, 0x60, 0xB9, 0x18, 0x40, 0x08, 0xF0,
+ 0xED, 0xA0, 0x31, 0xF0, 0x45, 0xAA, 0x08, 0xD8, 0xC2, 0xA8, 0x2D, 0x9E, 0x26, 0xD2, 0x08, 0x59, 0x38, 0xE0, 0xCD, 0xA8, 0x4C, 0x9E, 0xFE, 0xC3, 0x7C, 0x2A, 0x98, 0x30, 0xC1, 0xA0,
+ 0x29, 0xF0, 0x45, 0xAA, 0x40, 0x9E, 0x40, 0x22, 0x98, 0x30, 0xC1, 0xA0, 0xFF, 0xFF, 0x81, 0x91, 0x40, 0xB7, 0x84, 0x59, 0x20, 0xB7, 0x14, 0x6C, 0x9C, 0x0D, 0x60, 0xB9, 0x08, 0x40,
+ 0x31, 0xF0, 0xA5, 0xA8, 0x10, 0xD0, 0x61, 0xAA, 0x2D, 0x9E, 0xA6, 0xD0, 0x08, 0x59, 0x90, 0x0D, 0x02, 0xC0, 0x70, 0x2A, 0x00, 0xC2, 0x09, 0x5A, 0x30, 0xE0, 0x4D, 0xA2, 0xFF, 0xFF,
+ 0x41, 0x92, 0x00, 0xB7, 0x0C, 0x59, 0x80, 0xB7, 0x2C, 0x41, 0x60, 0xB7, 0x9C, 0x68, 0x26, 0xD2, 0x08, 0x59, 0x30, 0xE0, 0xCD, 0xA8, 0x80, 0xC0, 0x05, 0x5B, 0x82, 0x71, 0x03, 0xC0,
+ 0x48, 0x91, 0x81, 0x9E, 0xE0, 0xB7, 0x8C, 0x69, 0x83, 0x07, 0x10, 0xF2, 0x69, 0xAA, 0x60, 0xB7, 0x1C, 0x69, 0x00, 0xC2, 0x08, 0x5A, 0x30, 0xD0, 0x68, 0x01, 0x30, 0xC0, 0x4E, 0xAB,
+ 0x26, 0xD3, 0x08, 0x5D, 0x60, 0xB7, 0x9C, 0x59, 0xC7, 0x9D, 0x70, 0xE0, 0xA9, 0xAA, 0x30, 0xE0, 0x4D, 0xAA, 0x80, 0xC2, 0xC0, 0x59, 0x02, 0xC0, 0x80, 0x39, 0xCF, 0x9D, 0x62, 0xC0,
+ 0xC0, 0x0D, 0xB8, 0x31, 0x5F, 0xB5, 0x7C, 0x7E, 0x74, 0xFF, 0x7C, 0x99, 0x82, 0x0E, 0xA8, 0xD2, 0x08, 0x59, 0x40, 0x9D, 0x70, 0xE0, 0x05, 0xAA, 0x69, 0x9E, 0x48, 0x70, 0x5F, 0xB7,
+ 0x7C, 0x7E, 0x11, 0xD0, 0xE2, 0x0A, 0x01, 0xC0, 0x68, 0x91, 0xC0, 0xB7, 0x0C, 0x6A, 0x28, 0xD3, 0x8C, 0x5D, 0xDB, 0x9D, 0x30, 0xD0, 0x55, 0x05, 0x43, 0x9D, 0x60, 0xC0, 0x05, 0xAA,
+ 0x71, 0x9E, 0x20, 0xE3, 0xB1, 0x83, 0x18, 0x02, 0x88, 0x5D, 0x60, 0xB7, 0x9C, 0x58, 0x26, 0xD2, 0x08, 0x59, 0x30, 0xE0, 0xCD, 0xA9, 0x70, 0xC0, 0x80, 0x0D, 0x5F, 0xB5, 0xE4, 0x7E,
+ 0x7F, 0xB5, 0xE4, 0x7F, 0x74, 0xFF, 0x51, 0x99, 0x84, 0x0E, 0x5F, 0xB7, 0xE4, 0x7E, 0x40, 0x9D, 0x70, 0xE0, 0x05, 0xAA, 0x69, 0x9E, 0x48, 0x70, 0x7F, 0xB7, 0xE4, 0x7F, 0xFE, 0xFF,
+ 0xC6, 0x93, 0x20, 0xB7, 0x14, 0x59, 0x80, 0xB7, 0x4D, 0x41, 0x60, 0xB7, 0x9C, 0x68, 0x26, 0xD2, 0x08, 0x59, 0x30, 0xE0, 0xCD, 0xA8, 0x0B, 0x03, 0x82, 0x71, 0xFC, 0xFF, 0xC6, 0x93,
+ 0x9F, 0xB7, 0x6E, 0x7D, 0xBF, 0xB7, 0xEE, 0x7D, 0xDF, 0xB7, 0x6E, 0x7E, 0xFF, 0xB7, 0xEE, 0x7E, 0x02, 0xC0, 0x40, 0x8C, 0x22, 0x9C, 0x1D, 0xA6, 0x40, 0x84, 0x20, 0xB7, 0x8C, 0x58,
+ 0x02, 0x85, 0x00, 0xB7, 0x14, 0x59, 0x60, 0xB9, 0x78, 0x40, 0x03, 0x02, 0x29, 0xF2, 0x07, 0xA1, 0xFF, 0xFF, 0xC1, 0x93, 0x90, 0xF0, 0x7D, 0xAA, 0x72, 0xD1, 0xBC, 0x0C, 0x00, 0xC2,
+ 0x39, 0x5A, 0x1C, 0x2A, 0x80, 0xB5, 0x4C, 0x40, 0x80, 0xB7, 0x49, 0x40, 0x38, 0x2A, 0x00, 0xC2, 0x05, 0x5A, 0x80, 0xB5, 0xCC, 0x40, 0x20, 0xB7, 0x49, 0x40, 0x3F, 0xC0, 0xFE, 0x09,
+ 0x00, 0xCC, 0x80, 0x09, 0x40, 0xB7, 0x84, 0x58, 0x06, 0xC0, 0xC0, 0x28, 0x91, 0x58, 0x20, 0xB5, 0x4C, 0x41, 0x80, 0xB7, 0x4B, 0x40, 0x11, 0xD0, 0x38, 0x0D, 0x40, 0xB7, 0x14, 0x6B,
+ 0x60, 0xB9, 0x08, 0x40, 0x38, 0xC0, 0x00, 0x2A, 0x00, 0xC2, 0x1D, 0x5A, 0x80, 0xB5, 0xCC, 0x41, 0x31, 0xD8, 0x45, 0xAA, 0x08, 0xD8, 0xC2, 0xA8, 0x2D, 0x9E, 0x26, 0xD2, 0x08, 0x59,
+ 0x38, 0xE0, 0xCD, 0xA8, 0x4C, 0x9E, 0xFE, 0xC3, 0x7C, 0x2A, 0x98, 0x30, 0xC1, 0xA0, 0x29, 0xF0, 0x45, 0xAA, 0x46, 0x22, 0x98, 0x30, 0xC1, 0xA0, 0xFF, 0xFF, 0xA1, 0x91, 0x3F, 0xC0,
+ 0xFE, 0x09, 0x00, 0xCC, 0x80, 0x09, 0x40, 0xB7, 0x84, 0x58, 0x91, 0xD0, 0x30, 0x0D, 0x40, 0xB7, 0x94, 0x6B, 0x60, 0xB9, 0x68, 0x40, 0x31, 0xD8, 0x45, 0xAA, 0x08, 0xD8, 0xC2, 0xA8,
+ 0x2D, 0x9E, 0x26, 0xD2, 0x08, 0x59, 0x38, 0xE0, 0xCD, 0xA8, 0x4C, 0x9E, 0xFE, 0xC3, 0x7C, 0x2A, 0x98, 0x30, 0xC1, 0xA0, 0x29, 0xF0, 0x45, 0xAA, 0x46, 0x22, 0x98, 0x30, 0xC1, 0xA0,
+ 0xFF, 0xFF, 0xA1, 0x91, 0x40, 0xB7, 0x84, 0x59, 0x40, 0xB7, 0x0C, 0x6C, 0x92, 0xD0, 0xB6, 0x0C, 0x60, 0xB9, 0x18, 0x40, 0x29, 0xF0, 0xC5, 0xA8, 0x80, 0xB7, 0x49, 0x40, 0x2D, 0x9E,
+ 0xA6, 0xD0, 0x08, 0x59, 0x90, 0x0C, 0x02, 0xC0, 0x70, 0x2A, 0x00, 0xC2, 0x09, 0x5A, 0x30, 0xE0, 0x4D, 0xA2, 0xFF, 0xFF, 0x41, 0x92, 0x20, 0xB7, 0x0C, 0x59, 0x80, 0xB7, 0x2D, 0x40,
+ 0x60, 0xB7, 0x9C, 0x68, 0x26, 0xD2, 0x08, 0x59, 0x30, 0xE0, 0xCD, 0xA8, 0x02, 0x0F, 0x74, 0x9E, 0x02, 0x71, 0x03, 0xC0, 0x68, 0x91, 0x20, 0xB7, 0x14, 0x59, 0xE0, 0xB7, 0x8C, 0x69,
+ 0x83, 0x07, 0x10, 0xF2, 0x61, 0xAA, 0x6E, 0x9D, 0x00, 0xC2, 0x08, 0x5A, 0x01, 0xC3, 0x30, 0x81, 0x60, 0xB7, 0x1C, 0x69, 0x30, 0xC0, 0x4D, 0xAB, 0x26, 0xD3, 0x08, 0x59, 0x60, 0xB7,
+ 0x9C, 0x59, 0xC7, 0x9D, 0x70, 0xE0, 0xA9, 0xAA, 0x30, 0xE0, 0x4D, 0xAA, 0x80, 0xC2, 0xC0, 0x59, 0x02, 0xC0, 0x80, 0x39, 0xCF, 0x9D, 0x42, 0xC0, 0xC0, 0x0D, 0xB8, 0x31, 0x5F, 0xB5,
+ 0x7C, 0x7E, 0x74, 0xFF, 0x71, 0x98, 0x82, 0x0E, 0xA8, 0xD2, 0x08, 0x59, 0x44, 0x9D, 0x70, 0xE0, 0x25, 0xAA, 0x69, 0x9E, 0x48, 0x70, 0x11, 0xD0, 0xE2, 0x0E, 0x5F, 0xB7, 0x7C, 0x7E,
+ 0x01, 0xC0, 0x48, 0x91, 0xC0, 0xB7, 0x14, 0x6A, 0x28, 0xD3, 0x8C, 0x59, 0x5B, 0x9D, 0x30, 0xD0, 0x55, 0x05, 0xC7, 0x9D, 0x60, 0xC0, 0x29, 0xAA, 0x20, 0xE3, 0xB1, 0x83, 0x68, 0x02,
+ 0x88, 0x5D, 0x60, 0xB7, 0x9C, 0x58, 0x26, 0xD2, 0x08, 0x59, 0x30, 0xE0, 0xCD, 0xA9, 0x50, 0xC0, 0x80, 0x0D, 0x5F, 0xB5, 0xE4, 0x7E, 0x7F, 0xB5, 0xE4, 0x7F, 0x74, 0xFF, 0x47, 0x98,
+ 0x84, 0x0E, 0x5F, 0xB7, 0xE4, 0x7E, 0x44, 0x9D, 0x70, 0xE0, 0x25, 0xAA, 0x69, 0x9E, 0x48, 0x70, 0x7F, 0xB7, 0xE4, 0x7F, 0xFE, 0xFF, 0xE6, 0x93, 0x20, 0xB7, 0x14, 0x59, 0x80, 0xB7,
+ 0x4D, 0x40, 0x60, 0xB7, 0x9C, 0x68, 0x26, 0xD2, 0x08, 0x59, 0x30, 0xE0, 0xCD, 0xA8, 0xAE, 0x9E, 0x42, 0x71, 0xFC, 0xFF, 0xC6, 0x93, 0x9F, 0xB7, 0x6E, 0x7D, 0xBF, 0xB7, 0xEE, 0x7D,
+ 0xDF, 0xB7, 0x6E, 0x7E, 0xFF, 0xB7, 0xEE, 0x7E, 0x02, 0xC0, 0x40, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x0E, 0xC0, 0xFC, 0x29, 0xC2, 0x74, 0x0E, 0x85, 0x53, 0x9D, 0x57, 0x9D, 0x02, 0xD0,
+ 0x46, 0x1A, 0x02, 0xD0, 0xD4, 0x1A, 0x80, 0xC2, 0xC0, 0x5A, 0x40, 0xC0, 0xF2, 0x0D, 0x00, 0xC2, 0xC0, 0x59, 0x74, 0xFF, 0x0F, 0x98, 0x42, 0xC0, 0xB2, 0x0D, 0x8B, 0x01, 0x74, 0xFF,
+ 0x0A, 0x98, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x0E, 0xC0, 0xFC, 0x2D, 0xC2, 0x76, 0x8E, 0x09, 0x02, 0xD0, 0xB6, 0x19, 0x60, 0xC0, 0xF2, 0x0D,
+ 0xC0, 0x59, 0x5F, 0xFF, 0x20, 0x93, 0x0D, 0xA6, 0x5E, 0x9E, 0x82, 0x08, 0xC8, 0xD2, 0xDD, 0xAA, 0x20, 0x5D, 0xC8, 0xD2, 0xCE, 0xAA, 0x48, 0xDA, 0x5D, 0xAA, 0x0E, 0xC0, 0xF0, 0x2A,
+ 0x80, 0xC2, 0xB8, 0x5A, 0x02, 0xC0, 0xC0, 0x2E, 0x80, 0xC2, 0x91, 0x5E, 0x46, 0x77, 0x3E, 0xC0, 0x40, 0x2A, 0x00, 0xC2, 0x10, 0x5A, 0xD8, 0x32, 0x54, 0x9E, 0x51, 0xB3, 0x24, 0x48,
+ 0x80, 0xC0, 0x40, 0x59, 0x28, 0x31, 0x71, 0xD1, 0x66, 0x0A, 0x08, 0xD2, 0x82, 0xA8, 0x48, 0xDA, 0xC9, 0xA8, 0xA2, 0xD0, 0x05, 0x5E, 0x3E, 0xC0, 0xC0, 0x28, 0x91, 0x58, 0xD2, 0x32,
+ 0x11, 0xD0, 0xC2, 0x28, 0x84, 0x48, 0x80, 0xC0, 0x4C, 0x5A, 0x11, 0xD0, 0x92, 0x2C, 0x26, 0x31, 0x28, 0x31, 0x84, 0x48, 0x80, 0xC0, 0xC8, 0x59, 0x40, 0xC0, 0xA2, 0x0D, 0xA6, 0x31,
+ 0x54, 0xFF, 0xBE, 0x9B, 0x40, 0xC0, 0xB2, 0x0D, 0x8B, 0x01, 0x54, 0xFF, 0xB9, 0x9B, 0x02, 0x85, 0x46, 0x77, 0xA6, 0xD2, 0x8C, 0x5D, 0xC0, 0x85, 0x5A, 0xE0, 0x46, 0x80, 0x00, 0xC0,
+ 0x80, 0x92, 0x00, 0xC0, 0x20, 0x91, 0x00, 0xC0, 0xA0, 0x91, 0x00, 0xC0, 0xC0, 0x91, 0x00, 0xC0, 0x40, 0x90, 0x06, 0x85, 0xB3, 0x9E, 0x4F, 0x9D, 0xF4, 0xFF, 0x83, 0x9B, 0x00, 0xC0,
+ 0xA0, 0x90, 0xB3, 0x9E, 0xF4, 0xFF, 0x74, 0x9A, 0x88, 0xF2, 0xD9, 0xA9, 0x40, 0xC0, 0xD2, 0x0D, 0x0F, 0xC0, 0xFE, 0x29, 0x54, 0xFF, 0x96, 0x9B, 0x9F, 0xB7, 0xEE, 0x7E, 0xBF, 0xB7,
+ 0x6E, 0x7F, 0xDF, 0xB7, 0xEE, 0x7F, 0x60, 0x8C, 0x22, 0x9C, 0x0D, 0xA6, 0x5E, 0x9E, 0x08, 0xD2, 0xC2, 0xAA, 0x02, 0x09, 0x20, 0x5D, 0x08, 0xF2, 0x41, 0xAA, 0x8C, 0x2E, 0x46, 0x77,
+ 0x08, 0xDA, 0xC5, 0xAA, 0x00, 0xC2, 0x99, 0x58, 0x52, 0xB3, 0x24, 0x48, 0x08, 0xD2, 0x45, 0xAA, 0x3E, 0xC0, 0xC0, 0x2A, 0x80, 0xC2, 0xB0, 0x5A, 0xF0, 0xC3, 0x80, 0x28, 0xD2, 0x32,
+ 0xF1, 0xD0, 0xCE, 0x28, 0xD2, 0x32, 0x51, 0x9E, 0x00, 0xC1, 0x40, 0x5A, 0x42, 0x31, 0x60, 0xC0, 0xA2, 0x0D, 0xA6, 0x31, 0x54, 0xFF, 0x69, 0x9B, 0x60, 0xC0, 0xB2, 0x0D, 0x8B, 0x01,
+ 0x54, 0xFF, 0x64, 0x9B, 0x02, 0x85, 0x46, 0x77, 0xA6, 0xD2, 0x8C, 0x5D, 0xC0, 0x85, 0x5A, 0xE0, 0x46, 0x80, 0x00, 0xC0, 0x60, 0x92, 0x00, 0xC0, 0x20, 0x91, 0x00, 0xC0, 0x80, 0x91,
+ 0x00, 0xC0, 0xA0, 0x91, 0x00, 0xC0, 0x40, 0x90, 0x06, 0x85, 0xCF, 0x9D, 0xF4, 0xFF, 0x4D, 0x9B, 0x00, 0xC0, 0xA0, 0x90, 0xB3, 0x9E, 0xF4, 0xFF, 0x43, 0x99, 0x08, 0xD2, 0xCD, 0xA9,
+ 0x0E, 0xC0, 0xF0, 0x29, 0x60, 0xC0, 0xD2, 0x0D, 0xA0, 0x59, 0x54, 0xFF, 0x41, 0x9B, 0x9F, 0xB7, 0xEE, 0x7E, 0xBF, 0xB7, 0x6E, 0x7F, 0xDF, 0xB7, 0xEE, 0x7F, 0x60, 0x8C, 0x22, 0x9C,
+ 0x71, 0xD1, 0x3A, 0x0E, 0x04, 0xC0, 0xF0, 0x0D, 0x10, 0xD0, 0xE2, 0xA8, 0x08, 0xD2, 0x01, 0xA8, 0xD1, 0xD3, 0x10, 0x2E, 0x31, 0xD0, 0x98, 0x2C, 0x8C, 0x2C, 0x02, 0xC0, 0x7C, 0x28,
+ 0x20, 0x58, 0x08, 0x30, 0x4C, 0x9E, 0x02, 0x30, 0x08, 0x30, 0x22, 0x9C, 0x39, 0xF8, 0x85, 0xA2, 0xD0, 0xD0, 0xED, 0xA8, 0x9A, 0x9E, 0x10, 0xD0, 0x41, 0xAA, 0x02, 0xC0, 0xC0, 0x28,
+ 0x91, 0x58, 0x0E, 0xC0, 0x70, 0x2A, 0x42, 0x32, 0x10, 0xD0, 0x41, 0xA2, 0xD0, 0xD0, 0xFD, 0xA8, 0x10, 0xD8, 0x45, 0xAA, 0x3F, 0xC0, 0x7E, 0x08, 0x00, 0xCC, 0x00, 0x08, 0x0E, 0xC0,
+ 0xF0, 0x28, 0xC0, 0xCF, 0x3C, 0x2A, 0x88, 0x58, 0x42, 0x32, 0x10, 0xD8, 0x45, 0xA2, 0xFF, 0xCF, 0x42, 0x0A, 0xFE, 0xC3, 0x7C, 0x0A, 0x50, 0xD8, 0xFD, 0xA8, 0x5B, 0x9E, 0xA0, 0x9E,
+ 0x10, 0xF0, 0xC2, 0xA8, 0x3E, 0xC0, 0xC0, 0x28, 0xA8, 0x58, 0x8D, 0x9E, 0x90, 0x24, 0x9A, 0x34, 0x10, 0xF0, 0xC2, 0xA0, 0x50, 0xD8, 0x69, 0xAA, 0x10, 0xD0, 0xC5, 0xA8, 0x11, 0xD0,
+ 0x28, 0x0D, 0x3E, 0xC0, 0x40, 0x2A, 0x0C, 0xC0, 0x80, 0x28, 0x00, 0xC2, 0x11, 0x5A, 0x98, 0x30, 0x10, 0xD0, 0xC5, 0xA0, 0x90, 0xF0, 0x79, 0xAA, 0x10, 0xD0, 0xCD, 0xA8, 0x72, 0xD1,
+ 0xBC, 0x0C, 0xC0, 0xCC, 0x00, 0x2A, 0x8C, 0x28, 0x00, 0xC2, 0x21, 0x5A, 0x98, 0x30, 0x10, 0xD0, 0xCD, 0xA0, 0x20, 0xB7, 0x49, 0x40, 0x10, 0xD0, 0x41, 0xAA, 0xC1, 0xCF, 0x02, 0x0C,
+ 0xFE, 0xC3, 0x7C, 0x0C, 0x06, 0xC0, 0xC0, 0x28, 0x0E, 0xC0, 0x0C, 0x2A, 0x89, 0x58, 0x42, 0x32, 0x10, 0xD0, 0x41, 0xA2, 0x20, 0xB7, 0x4B, 0x40, 0x60, 0xB9, 0x18, 0x40, 0x7C, 0x2A,
+ 0x38, 0xC0, 0x80, 0x28, 0x89, 0x58, 0x42, 0x32, 0x10, 0xD0, 0x41, 0xA2, 0x08, 0xD8, 0xC1, 0xA8, 0x08, 0xD8, 0x61, 0xAA, 0x00, 0xCC, 0x80, 0x28, 0xFE, 0xC3, 0x7C, 0x2A, 0x98, 0x30,
+ 0x08, 0xD8, 0xC1, 0xA0, 0x29, 0xF0, 0x65, 0xAA, 0x08, 0xF0, 0xC2, 0xA8, 0x40, 0x22, 0xA5, 0x9E, 0x90, 0x24, 0x9A, 0x34, 0x29, 0xF0, 0xC6, 0xA0, 0xFF, 0xFF, 0x61, 0x91, 0x91, 0xD0,
+ 0x36, 0x0D, 0x12, 0xD0, 0xAE, 0x0C, 0x60, 0xB9, 0x08, 0x40, 0x80, 0xB7, 0x49, 0x40, 0x29, 0xD0, 0xD1, 0xA8, 0x0C, 0xC0, 0x0C, 0x2A, 0x02, 0xC0, 0xF0, 0x28, 0x42, 0x32, 0x31, 0xD0,
+ 0x31, 0xA2, 0xFF, 0xFF, 0xA1, 0x92, 0xF8, 0xF9, 0x9D, 0xAA, 0x22, 0x9C, 0x1D, 0xA6, 0x06, 0xC0, 0x02, 0x69, 0x5F, 0x9E, 0x24, 0xD1, 0x89, 0x5A, 0x82, 0x0D, 0x07, 0x03, 0x00, 0xC1,
+ 0x1C, 0x5F, 0x34, 0xFF, 0xFE, 0x9A, 0xA0, 0xB7, 0x8C, 0x44, 0x34, 0xC0, 0xA0, 0x0A, 0x08, 0xF2, 0xA1, 0xA8, 0x80, 0xE0, 0xC1, 0x58, 0xCA, 0xCF, 0xE1, 0x0A, 0x00, 0xC0, 0x02, 0x91,
+ 0x01, 0xC0, 0xB6, 0x0D, 0x10, 0xCB, 0xB0, 0x0D, 0xB4, 0xFF, 0x96, 0x9B, 0x69, 0x9E, 0x34, 0xC0, 0x90, 0x0A, 0xE9, 0xF3, 0x3D, 0xA3, 0x0B, 0x02, 0x41, 0xC0, 0x84, 0x38, 0x08, 0xF2,
+ 0x81, 0xA0, 0x74, 0x9E, 0x8B, 0x05, 0xF8, 0x01, 0x34, 0xFF, 0x8C, 0x9B, 0x9F, 0xB7, 0x6E, 0x7E, 0xBF, 0xB7, 0xEE, 0x7E, 0xDF, 0xB7, 0x6E, 0x7F, 0xFF, 0xB7, 0xEE, 0x7F, 0x02, 0xC0,
+ 0x00, 0x8C, 0x22, 0x9C, 0x1D, 0xA6, 0x02, 0xC0, 0x20, 0x84, 0x07, 0x02, 0xA5, 0x9E, 0x55, 0x9E, 0x6B, 0x9E, 0x9F, 0xB5, 0x6C, 0x7B, 0x91, 0xD1, 0xC0, 0x08, 0x3F, 0xB5, 0xEC, 0x7B,
+ 0x82, 0x08, 0x3F, 0xB5, 0xEC, 0x7D, 0x7F, 0xB5, 0x74, 0x7C, 0x02, 0x0D, 0x5F, 0xB5, 0xEC, 0x7C, 0x06, 0x09, 0x3F, 0xB5, 0x74, 0x7D, 0x0C, 0xC0, 0x00, 0x0A, 0x9F, 0xB5, 0xEC, 0x7E,
+ 0xF4, 0xFF, 0xAC, 0x9B, 0x82, 0x0D, 0x34, 0xFF, 0xB1, 0x9A, 0xFE, 0xC9, 0xFD, 0x2A, 0xA2, 0x0D, 0x8B, 0x01, 0x00, 0xC4, 0x80, 0x39, 0x54, 0xFF, 0x2D, 0x9A, 0x8B, 0x05, 0xF4, 0xFF,
+ 0xF3, 0x9A, 0x01, 0x03, 0x40, 0xC0, 0x82, 0x0D, 0x8D, 0x01, 0x54, 0xFF, 0x24, 0x9A, 0x60, 0xC0, 0x82, 0x0D, 0x8D, 0x01, 0x54, 0xFF, 0x1F, 0x9A, 0x5F, 0xB7, 0x6C, 0x7D, 0x9F, 0xB7,
+ 0xEC, 0x7C, 0x5F, 0xB7, 0x7C, 0x7D, 0x29, 0x61, 0x82, 0x0B, 0xF5, 0x71, 0x5F, 0xB5, 0x6C, 0x7E, 0x04, 0xC0, 0xA8, 0x91, 0x1F, 0xB7, 0xF4, 0x7C, 0x3F, 0xB7, 0xEC, 0x7E, 0x02, 0x0F,
+ 0x11, 0xD0, 0x72, 0x09, 0x80, 0x73, 0x5F, 0xB5, 0x6C, 0x7F, 0x83, 0x02, 0x03, 0xC0, 0x08, 0x93, 0xE0, 0xB7, 0x94, 0x44, 0x34, 0xC0, 0xA0, 0x0F, 0x3F, 0xB7, 0xEC, 0x7D, 0x5F, 0xB7,
+ 0x6C, 0x7E, 0xFC, 0xCF, 0x63, 0x0C, 0x11, 0xD0, 0x12, 0x2A, 0x84, 0x08, 0x3F, 0xB5, 0xEC, 0x7D, 0x44, 0x70, 0x00, 0xC2, 0x88, 0x58, 0x01, 0xC2, 0x02, 0x81, 0x20, 0xE2, 0xA9, 0x80,
+ 0xA0, 0xB7, 0x55, 0x40, 0x00, 0xC0, 0x28, 0x93, 0x3F, 0xB7, 0xEC, 0x7D, 0x11, 0xD0, 0x12, 0x2A, 0x00, 0xC2, 0x88, 0x58, 0x01, 0xC2, 0x02, 0x81, 0x20, 0xE2, 0xA9, 0x80, 0x1F, 0xB7,
+ 0x74, 0x7C, 0x60, 0xB7, 0x4D, 0x40, 0x3F, 0xB7, 0xF4, 0x7D, 0x06, 0x09, 0x81, 0x05, 0x03, 0x05, 0xF4, 0xFF, 0x4A, 0x9B, 0x00, 0xC0, 0x20, 0x92, 0x82, 0x0D, 0x34, 0xFF, 0x4D, 0x9A,
+ 0x10, 0xF2, 0x61, 0xAA, 0x00, 0xE2, 0x41, 0x5A, 0x00, 0xC0, 0x02, 0x91, 0x01, 0xC0, 0xB6, 0x0D, 0x10, 0xCB, 0xB0, 0x0D, 0xB4, 0xFF, 0xEB, 0x9A, 0x8B, 0x05, 0xF4, 0xFF, 0x8B, 0x9A,
+ 0x0D, 0x02, 0x01, 0x03, 0x0C, 0x71, 0x00, 0xC0, 0x82, 0x91, 0x40, 0xC0, 0x92, 0x0D, 0x82, 0x09, 0x54, 0xFF, 0xB8, 0x99, 0x40, 0xC0, 0x82, 0x0D, 0x8D, 0x01, 0x54, 0xFF, 0xB3, 0x99,
+ 0xC0, 0x75, 0x00, 0xC0, 0x62, 0x92, 0xAB, 0x9E, 0x73, 0x9E, 0x12, 0xD0, 0x72, 0x19, 0xF4, 0xFF, 0x1E, 0x9A, 0x73, 0x9E, 0xBA, 0x9E, 0x8B, 0x05, 0xF4, 0xFF, 0xAE, 0x99, 0x8B, 0x05,
+ 0x8B, 0x01, 0xF4, 0xFF, 0x7F, 0x9A, 0x00, 0xC0, 0x60, 0x91, 0x73, 0x9E, 0x8B, 0x05, 0x02, 0x0D, 0xF4, 0xFF, 0xA3, 0x99, 0x8B, 0x05, 0x8B, 0x01, 0xF4, 0xFF, 0x74, 0x9A, 0x5F, 0xB7,
+ 0xFC, 0x7C, 0x04, 0x0F, 0xB5, 0x73, 0xD0, 0x0A, 0xFC, 0xFF, 0x06, 0x92, 0x3F, 0xB7, 0x6C, 0x7F, 0x5F, 0xB7, 0x6C, 0x7D, 0x83, 0x03, 0xC4, 0x71, 0xFB, 0xFF, 0xE6, 0x92, 0x40, 0xC0,
+ 0x92, 0x0D, 0x82, 0x09, 0x54, 0xFF, 0x82, 0x99, 0x40, 0xC0, 0x92, 0x0D, 0x86, 0x09, 0x54, 0xFF, 0x7D, 0x99, 0x06, 0x08, 0x9F, 0xB7, 0xEE, 0x7B, 0xBF, 0xB7, 0x6E, 0x7C, 0xDF, 0xB7,
+ 0xEE, 0x7C, 0xFF, 0xB7, 0x6E, 0x7D, 0x04, 0xC0, 0x20, 0x8C, 0x22, 0x9C, 0x1D, 0xA6, 0x20, 0x84, 0x80, 0xB7, 0x8C, 0x49, 0x00, 0x75, 0x5E, 0x9E, 0x00, 0xC0, 0x04, 0x91, 0xA0, 0xB7,
+ 0x10, 0x44, 0x1C, 0xC0, 0x7E, 0x7F, 0x00, 0xC0, 0xA2, 0x90, 0x02, 0x08, 0x04, 0xC0, 0xC0, 0x92, 0x52, 0x85, 0x08, 0xD2, 0x43, 0xA1, 0xC0, 0xB5, 0x8C, 0x49, 0x01, 0xC9, 0x80, 0x9C,
+ 0x88, 0xF2, 0x49, 0xA2, 0xB3, 0x9E, 0x86, 0x09, 0xB4, 0xFF, 0xA0, 0x9B, 0x40, 0xB7, 0x84, 0x57, 0xA3, 0xCB, 0xBA, 0x08, 0xBA, 0xC8, 0x8C, 0x08, 0x01, 0xC0, 0x64, 0x12, 0x43, 0x62,
+ 0x00, 0xC2, 0x0F, 0x5A, 0x04, 0x1A, 0x3C, 0x2A, 0x73, 0xD1, 0x41, 0x69, 0x2D, 0x9E, 0x30, 0xC0, 0xCD, 0xA8, 0x1C, 0xC0, 0x7E, 0x7C, 0x00, 0xC0, 0xA2, 0x93, 0xA0, 0xB7, 0x8C, 0x43,
+ 0x71, 0xC1, 0xCD, 0x9C, 0xF1, 0xD3, 0xDC, 0x2D, 0x40, 0xC0, 0x92, 0x0D, 0x84, 0x39, 0x54, 0xFF, 0x32, 0x99, 0x20, 0xB7, 0x94, 0x46, 0x49, 0x9E, 0x80, 0xB7, 0x2D, 0x41, 0x01, 0xC0,
+ 0x08, 0x2A, 0x00, 0x75, 0xFF, 0xFF, 0x62, 0x93, 0x01, 0xC0, 0x8A, 0x08, 0x20, 0xB5, 0xCD, 0x41, 0x71, 0xC1, 0xCD, 0x9C, 0x82, 0x0D, 0x34, 0xFF, 0x9B, 0x99, 0x80, 0xB7, 0x8C, 0x4A,
+ 0x48, 0xDA, 0xCD, 0xAB, 0x48, 0xDA, 0x4A, 0xAB, 0x9F, 0xB5, 0x6C, 0x7F, 0xA4, 0xD3, 0x90, 0x5A, 0x22, 0xD3, 0x90, 0x5E, 0x08, 0xF2, 0xD2, 0xAB, 0x84, 0x1E, 0xA2, 0xD2, 0xB0, 0x5D,
+ 0x84, 0x1A, 0x82, 0x0D, 0xBA, 0x31, 0x54, 0xFF, 0x09, 0x99, 0xA2, 0xD2, 0xB0, 0x5D, 0x92, 0x0D, 0xBA, 0x31, 0x54, 0xFF, 0x03, 0x99, 0xB2, 0x0D, 0x08, 0xF2, 0xD9, 0xA9, 0x54, 0xFF,
+ 0xFE, 0x98, 0xC2, 0x0D, 0x08, 0xF2, 0xDD, 0xA9, 0x54, 0xFF, 0xF9, 0x98, 0x48, 0xF2, 0xCD, 0xA9, 0x02, 0xC0, 0xF2, 0x0D, 0xED, 0x29, 0x54, 0xFF, 0xF2, 0x98, 0x02, 0xC0, 0xA2, 0x0D,
+ 0x48, 0xF2, 0xC5, 0xA9, 0x54, 0xFF, 0xEC, 0x98, 0x02, 0xC0, 0xB2, 0x0D, 0x48, 0xF2, 0xC9, 0xA9, 0x54, 0xFF, 0xE6, 0x98, 0x02, 0xC0, 0xC2, 0x0D, 0x82, 0x09, 0x54, 0xFF, 0xE1, 0x98,
+ 0x48, 0xF2, 0xD1, 0xA9, 0xC0, 0x74, 0x00, 0xC0, 0xC2, 0x90, 0x04, 0xC0, 0x82, 0x0D, 0x54, 0xFF, 0xD8, 0x98, 0x08, 0xF2, 0x4A, 0xA9, 0x9F, 0xB7, 0x6C, 0x7F, 0x72, 0x9E, 0xB9, 0x9E,
+ 0x8F, 0x05, 0x89, 0x01, 0xF4, 0xFF, 0x7A, 0x9A, 0x0E, 0xC0, 0x7C, 0x28, 0x9F, 0xB7, 0xEE, 0x7D, 0xBF, 0xB7, 0x6E, 0x7E, 0xDF, 0xB7, 0xEE, 0x7E, 0xFF, 0xB7, 0x6E, 0x7F, 0x02, 0xC0,
+ 0x20, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x80, 0xB7, 0x8C, 0x49, 0x00, 0x75, 0x87, 0x06, 0x12, 0xD0, 0x00, 0x40, 0x01, 0xC0, 0xE4, 0x93, 0xA0, 0xB5, 0x94, 0x49, 0x01, 0xC9, 0x80, 0x9C,
+ 0x90, 0xF2, 0x29, 0xA2, 0x8B, 0x05, 0x86, 0x09, 0xB4, 0xFF, 0xFB, 0x9A, 0x40, 0xB7, 0x84, 0x57, 0xA3, 0xCB, 0xBA, 0x08, 0xBA, 0xC8, 0x8C, 0x08, 0x10, 0xD0, 0x55, 0x16, 0x43, 0x62,
+ 0x00, 0xC2, 0x0F, 0x5A, 0x04, 0x1A, 0x3C, 0x2A, 0x73, 0xD1, 0x41, 0x69, 0x2D, 0x9E, 0x30, 0xC0, 0xCD, 0xA8, 0x1C, 0xC0, 0x7E, 0x7C, 0x00, 0xC0, 0x62, 0x93, 0xA0, 0xB7, 0x8C, 0x43,
+ 0x71, 0xC1, 0xCD, 0x9C, 0x40, 0xC0, 0x92, 0x0D, 0x86, 0x09, 0x54, 0xFF, 0x8F, 0x98, 0x20, 0xB7, 0x94, 0x46, 0x49, 0x9E, 0x80, 0xB7, 0x2D, 0x41, 0x01, 0xC0, 0x08, 0x2A, 0x00, 0x75,
+ 0xFF, 0xFF, 0x62, 0x93, 0x01, 0xC0, 0x8A, 0x08, 0x20, 0xB5, 0xCD, 0x41, 0x71, 0xC1, 0xCD, 0x9C, 0x8B, 0x05, 0x54, 0xFF, 0x66, 0x99, 0x06, 0x08, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7,
+ 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x60, 0xB7, 0x94, 0x55, 0xA0, 0xB7, 0x8C, 0x5D, 0x02, 0x85, 0x91, 0xD0, 0x3C, 0x0E, 0x88, 0xD2, 0xBD, 0xA8, 0x08, 0xD2, 0x03, 0xA1,
+ 0x91, 0xD0, 0x3E, 0x0E, 0x46, 0x74, 0x08, 0xD2, 0x03, 0xA1, 0x00, 0xC0, 0xA2, 0x90, 0xAA, 0x09, 0x54, 0xC0, 0x49, 0x9A, 0x88, 0xD2, 0x31, 0xAA, 0x04, 0x75, 0x01, 0xC0, 0x44, 0x92,
+ 0x08, 0xD2, 0x29, 0xAA, 0x00, 0x75, 0x01, 0xC0, 0x22, 0x91, 0x88, 0xD2, 0x35, 0xAA, 0x00, 0x75, 0x00, 0xC0, 0x84, 0x90, 0x14, 0xC0, 0xA8, 0x9B, 0x88, 0xD2, 0x3D, 0xAA, 0x06, 0x75,
+ 0x01, 0xC0, 0x64, 0x90, 0x88, 0xD2, 0x39, 0xAA, 0x00, 0x75, 0x82, 0x0C, 0x01, 0xD0, 0x92, 0x0C, 0x06, 0x75, 0x4C, 0x9E, 0x82, 0x08, 0x01, 0xD0, 0x92, 0x08, 0x00, 0xE0, 0x42, 0x32,
+ 0x00, 0xC0, 0x02, 0x91, 0x88, 0xD2, 0xB6, 0xA9, 0x34, 0xC0, 0x47, 0x98, 0x00, 0xC0, 0xC0, 0x91, 0x88, 0xD2, 0xB6, 0xA9, 0x34, 0xC0, 0x99, 0x98, 0x00, 0xC0, 0x00, 0x91, 0x14, 0xC0,
+ 0x62, 0x9A, 0x00, 0xC0, 0x80, 0x90, 0x34, 0xC0, 0xF9, 0x99, 0x14, 0xC0, 0x8A, 0x98, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x20, 0xB7, 0x94, 0x5D,
+ 0xA2, 0xD1, 0x05, 0x5E, 0x11, 0xD0, 0xB2, 0x2C, 0x04, 0x2A, 0x20, 0xB5, 0x49, 0x43, 0x80, 0xB5, 0xC9, 0x42, 0xA2, 0xD1, 0x8D, 0x5C, 0xA2, 0xD1, 0x11, 0x5E, 0x84, 0x28, 0x20, 0xB5,
+ 0x49, 0x42, 0x04, 0x2A, 0x80, 0xB5, 0xC9, 0x41, 0xA2, 0xD1, 0x95, 0x5C, 0xA2, 0xD1, 0x19, 0x5E, 0x84, 0x28, 0x20, 0xB5, 0x49, 0x41, 0x04, 0x2A, 0x80, 0xB5, 0xC9, 0x40, 0xA2, 0xD1,
+ 0x9D, 0x5C, 0xA2, 0xD1, 0x21, 0x5E, 0x84, 0x28, 0x20, 0xB5, 0x49, 0x40, 0x04, 0x2A, 0x80, 0xB5, 0xC9, 0x46, 0xA2, 0xD1, 0xA5, 0x5C, 0xA2, 0xD1, 0x2D, 0x5E, 0x8C, 0x28, 0x20, 0xB5,
+ 0x49, 0x46, 0x04, 0x2A, 0x80, 0xB5, 0xC9, 0x45, 0xA2, 0xD1, 0xB1, 0x5C, 0xA2, 0xD1, 0x35, 0x5E, 0x84, 0x28, 0x20, 0xB5, 0x49, 0x45, 0x04, 0x2A, 0x80, 0xB5, 0xC9, 0x44, 0xA2, 0xD1,
+ 0xB9, 0x5C, 0xA2, 0xD1, 0x3D, 0x5E, 0x84, 0x28, 0x20, 0xB5, 0x49, 0x44, 0x04, 0x2A, 0x80, 0xB5, 0xC9, 0x43, 0xA2, 0xD1, 0xC1, 0x5C, 0xA2, 0xD1, 0x4D, 0x5E, 0x9C, 0x28, 0x20, 0xB5,
+ 0x49, 0x49, 0x04, 0x2A, 0x80, 0xB5, 0xC9, 0x48, 0xA2, 0xD1, 0xD1, 0x5C, 0xA2, 0xD1, 0x55, 0x5E, 0x84, 0x28, 0x20, 0xB5, 0x49, 0x48, 0x04, 0x2A, 0x80, 0xB5, 0xC9, 0x47, 0xA2, 0xD1,
+ 0xD9, 0x5C, 0xA2, 0xD1, 0x61, 0x5E, 0x8C, 0x28, 0x20, 0xB5, 0x49, 0x47, 0x04, 0x2A, 0x80, 0xB5, 0xC9, 0x49, 0xA2, 0xD1, 0xE5, 0x5C, 0xA2, 0xD1, 0x09, 0x5E, 0x8C, 0x28, 0x20, 0xB5,
+ 0x49, 0x4A, 0x04, 0x2A, 0x80, 0xB5, 0xC9, 0x4A, 0xA2, 0xD1, 0xED, 0x5C, 0xA2, 0xD1, 0x79, 0x5E, 0x60, 0xB5, 0xC9, 0x4C, 0xC1, 0x59, 0x60, 0xB5, 0x49, 0x4D, 0xF5, 0x5D, 0x84, 0x2D,
+ 0x60, 0xB5, 0x51, 0x4C, 0x8C, 0x28, 0x20, 0xB5, 0x49, 0x4B, 0x80, 0xB5, 0xC9, 0x4B, 0x22, 0x9C, 0x8D, 0xA6, 0x40, 0x84, 0x40, 0xB7, 0x8C, 0x55, 0x88, 0xD0, 0xDE, 0xA8, 0xF1, 0xD3,
+ 0x1E, 0x2E, 0x08, 0x75, 0x82, 0x08, 0x01, 0xD0, 0x92, 0x18, 0x08, 0xD0, 0xD9, 0xAA, 0x02, 0x0A, 0x9F, 0xB5, 0x6C, 0x7E, 0x7F, 0x0A, 0x42, 0x42, 0xA9, 0x9D, 0x49, 0x9D, 0x40, 0xB7,
+ 0x94, 0x5D, 0x01, 0xC3, 0x94, 0x24, 0x1E, 0x9D, 0x82, 0x0B, 0xFF, 0xB5, 0x6C, 0x7F, 0x05, 0x07, 0x48, 0x75, 0x84, 0x28, 0x01, 0xC3, 0x96, 0x30, 0x90, 0xD0, 0xD9, 0xA0, 0x00, 0xC0,
+ 0x84, 0x90, 0x00, 0xD0, 0xDD, 0xAA, 0x90, 0xD2, 0x5D, 0xAA, 0x04, 0x75, 0x00, 0xC0, 0x24, 0x93, 0x11, 0xD0, 0x12, 0x1A, 0x0E, 0xC0, 0x7C, 0x2A, 0x02, 0x75, 0x00, 0xC0, 0x52, 0x92,
+ 0xF1, 0xD3, 0x1E, 0x2A, 0x02, 0x75, 0x82, 0x0A, 0x00, 0xC0, 0x44, 0x91, 0x91, 0xF0, 0x24, 0x86, 0x08, 0xD2, 0x81, 0xA8, 0x42, 0x74, 0x00, 0xC0, 0x64, 0x90, 0x8E, 0x0A, 0x00, 0xD0,
+ 0xD9, 0xA2, 0x40, 0x75, 0x02, 0x0A, 0x01, 0xD0, 0x42, 0x0A, 0x46, 0x75, 0x82, 0x08, 0x01, 0xD0, 0x92, 0x08, 0x00, 0xE0, 0x42, 0x32, 0x10, 0xD2, 0xDA, 0xA8, 0x82, 0x08, 0x01, 0xD0,
+ 0x92, 0x08, 0x42, 0x76, 0x3F, 0xB5, 0xEC, 0x7E, 0x00, 0xC0, 0x04, 0x92, 0x60, 0xB7, 0x84, 0x6F, 0x80, 0xD0, 0x5B, 0xA9, 0x80, 0xB7, 0x0C, 0x70, 0x3D, 0x9E, 0x47, 0x9D, 0x30, 0xC0,
+ 0x4D, 0xAB, 0x40, 0xC0, 0xA6, 0xAA, 0x00, 0xC0, 0x80, 0x90, 0x02, 0x0B, 0x82, 0x0E, 0x90, 0xD2, 0x59, 0xAA, 0x04, 0x75, 0x01, 0xC0, 0xA4, 0x92, 0x40, 0xB7, 0x9C, 0x70, 0x00, 0xD0,
+ 0xCA, 0xA8, 0x60, 0xB7, 0x04, 0x71, 0xCB, 0x9D, 0x20, 0xC0, 0x29, 0xAA, 0xEC, 0x9D, 0x20, 0xB7, 0x0C, 0x6F, 0x30, 0xC0, 0xAA, 0xA8, 0x04, 0x1A, 0x26, 0xD2, 0x04, 0x59, 0x90, 0xD2,
+ 0x5D, 0xAA, 0x4B, 0x9D, 0x10, 0xC8, 0xC5, 0xA8, 0x06, 0x75, 0x4C, 0x9E, 0x43, 0x62, 0x9F, 0xB5, 0x6C, 0x7F, 0x00, 0xC0, 0x04, 0x93, 0x80, 0xD0, 0x4B, 0xA9, 0x01, 0xC3, 0x45, 0x62,
+ 0x00, 0xC2, 0x21, 0x5A, 0x0E, 0xC0, 0x7C, 0x2A, 0x10, 0xE3, 0xA1, 0x88, 0x9F, 0xB5, 0x6C, 0x7E, 0x84, 0x18, 0xF1, 0xD3, 0x9E, 0x2B, 0x27, 0xBA, 0x00, 0x40, 0x3F, 0x75, 0x02, 0x85,
+ 0x72, 0xB3, 0x7A, 0x44, 0x5F, 0x9D, 0x60, 0xB7, 0x04, 0x5E, 0x00, 0xD0, 0x59, 0xA9, 0x00, 0xD0, 0x42, 0xA9, 0x91, 0xE0, 0xAC, 0x86, 0x00, 0xD0, 0xC5, 0xA9, 0x80, 0xB7, 0x29, 0x40,
+ 0x91, 0xE0, 0xAE, 0x86, 0x00, 0xD0, 0xCA, 0xA9, 0x20, 0xB7, 0x31, 0x40, 0x30, 0x5D, 0x2E, 0x9D, 0x00, 0xD0, 0x4E, 0xA8, 0xCC, 0x5C, 0x1A, 0x9D, 0x00, 0xD0, 0xDD, 0xA8, 0x40, 0x59,
+ 0x94, 0x5D, 0x08, 0x5C, 0x00, 0xC2, 0x68, 0x5A, 0x01, 0xC2, 0x00, 0x3A, 0xB4, 0x58, 0x01, 0xC3, 0x44, 0x32, 0x44, 0x32, 0x42, 0x32, 0x01, 0xC3, 0x46, 0x32, 0x59, 0x9E, 0x42, 0x9E,
+ 0x5A, 0x9D, 0x3D, 0x9E, 0x40, 0xD0, 0x55, 0xA8, 0xA8, 0x59, 0x46, 0x32, 0x42, 0x32, 0x44, 0x32, 0x00, 0xC3, 0x84, 0x58, 0x42, 0x32, 0x01, 0xC3, 0x44, 0x32, 0x02, 0x85, 0x02, 0x74,
+ 0x00, 0xF0, 0x61, 0xA2, 0x00, 0xF0, 0x67, 0xA1, 0x00, 0xC0, 0xC4, 0x90, 0x40, 0xD0, 0x5D, 0xAA, 0x00, 0xC0, 0x80, 0x90, 0x80, 0xD0, 0x41, 0xAA, 0x00, 0xC2, 0x60, 0x5A, 0x00, 0xF0,
+ 0x65, 0xA2, 0x02, 0x85, 0x40, 0xD0, 0xC1, 0xA8, 0x18, 0xF0, 0x73, 0xA1, 0x80, 0xD0, 0x49, 0xAA, 0x80, 0xD0, 0xD2, 0xA8, 0x50, 0x74, 0x80, 0xD0, 0x55, 0xA9, 0x80, 0xD0, 0xCD, 0xA8,
+ 0x82, 0x09, 0x09, 0xD0, 0xB2, 0x09, 0x00, 0xD0, 0x4E, 0xA9, 0x00, 0xC2, 0x58, 0x5A, 0xD0, 0x5C, 0xD4, 0x58, 0x42, 0x32, 0x49, 0x9E, 0x40, 0xD0, 0xC6, 0xA9, 0x48, 0x59, 0x20, 0x5D,
+ 0x42, 0x32, 0x44, 0x32, 0x5F, 0xB7, 0xEC, 0x7E, 0x26, 0x35, 0x90, 0x59, 0x6E, 0xA1, 0x00, 0xC1, 0xC4, 0x58, 0x42, 0x32, 0x69, 0xA2, 0x40, 0xD0, 0xCD, 0xA8, 0x65, 0xAA, 0xC0, 0xD0,
+ 0xCA, 0xA8, 0x40, 0xD0, 0x51, 0xA9, 0x80, 0xD0, 0x46, 0xA9, 0x40, 0xD0, 0xD6, 0xA9, 0xD4, 0x5C, 0x1A, 0x9D, 0x40, 0xD0, 0x5A, 0xA8, 0xBC, 0x58, 0x42, 0x32, 0x20, 0x5D, 0x51, 0x9E,
+ 0x00, 0xD0, 0x51, 0xA8, 0x34, 0x59, 0x98, 0x5D, 0x14, 0x5C, 0x08, 0x58, 0x01, 0xC3, 0x44, 0x32, 0x44, 0x32, 0x42, 0x32, 0x5A, 0x9E, 0x0A, 0x9D, 0x00, 0xD0, 0xD5, 0xA8, 0x44, 0x32,
+ 0x01, 0xC3, 0x44, 0x32, 0xB8, 0x31, 0x40, 0xD0, 0x45, 0xAA, 0xB0, 0x31, 0xB2, 0x31, 0x67, 0x9D, 0x82, 0x0F, 0x42, 0x75, 0x00, 0xC2, 0x40, 0x5A, 0xB8, 0x31, 0xE5, 0xA1, 0x00, 0xC0,
+ 0xE4, 0x90, 0x90, 0xD2, 0x5D, 0xAA, 0x04, 0x75, 0x00, 0xC0, 0x64, 0x90, 0x86, 0x0F, 0x90, 0xD2, 0x59, 0xA8, 0x20, 0xB7, 0x2D, 0x42, 0xA2, 0xD3, 0x40, 0x5E, 0xF2, 0xD3, 0x0E, 0x28,
+ 0x06, 0x76, 0x98, 0x30, 0x18, 0xF0, 0xF1, 0xA0, 0x02, 0xD0, 0x06, 0x2A, 0x12, 0xD0, 0x98, 0x30, 0x02, 0x85, 0x18, 0xF0, 0xF1, 0xA0, 0x04, 0x76, 0x82, 0x0A, 0x18, 0xF0, 0x77, 0xA1,
+ 0x00, 0xC0, 0x02, 0x91, 0x00, 0xD0, 0x4D, 0xAA, 0x00, 0x75, 0x82, 0x0A, 0x02, 0xD0, 0xD2, 0x0A, 0xC0, 0xD0, 0xCE, 0xA9, 0x00, 0xD0, 0xDA, 0xA8, 0xA2, 0xD2, 0x40, 0x5E, 0x00, 0xD0,
+ 0x5D, 0xA9, 0x00, 0xC3, 0xBC, 0x58, 0x42, 0x32, 0x94, 0x5C, 0x49, 0x9E, 0xC0, 0x76, 0x0C, 0x59, 0x42, 0x32, 0x44, 0x32, 0x40, 0xD0, 0x4D, 0xA9, 0x80, 0xC2, 0xB8, 0x58, 0x89, 0x9E,
+ 0x02, 0x0D, 0x01, 0xD0, 0x22, 0x0D, 0x40, 0xD0, 0xC5, 0xA8, 0x89, 0x01, 0x00, 0xC6, 0x80, 0x39, 0x00, 0xC4, 0x00, 0x3A, 0x34, 0xB3, 0x22, 0x44, 0x06, 0x76, 0x34, 0x5D, 0x22, 0x35,
+ 0x20, 0x59, 0x93, 0x9E, 0x00, 0xD0, 0xCA, 0xA8, 0xA0, 0x58, 0x42, 0x32, 0x18, 0xF0, 0x79, 0xA2, 0x89, 0x00, 0x26, 0x35, 0x8C, 0x5C, 0x22, 0x35, 0x18, 0xF0, 0x76, 0xA1, 0x02, 0xD0,
+ 0x06, 0x2A, 0x12, 0xD0, 0x98, 0x30, 0x18, 0xF0, 0xF9, 0xA0, 0x3F, 0xB7, 0x68, 0x78, 0x27, 0xBA, 0x00, 0x40, 0x00, 0xC2, 0x20, 0x5A, 0x09, 0xBA, 0x00, 0x40, 0x42, 0x32, 0x18, 0xF0,
+ 0x7D, 0xA2, 0x9F, 0xB7, 0x6C, 0x7F, 0x58, 0xF0, 0x61, 0xA2, 0x80, 0xD0, 0xD2, 0xA8, 0x80, 0xD0, 0x49, 0xAA, 0x80, 0xD0, 0xCD, 0xA8, 0x94, 0x5C, 0x1A, 0x9D, 0x80, 0xD0, 0x55, 0xA9,
+ 0x00, 0xC2, 0x1C, 0x5A, 0x98, 0x58, 0x42, 0x32, 0x0C, 0x59, 0x01, 0xC3, 0x44, 0x32, 0x44, 0x32, 0x5F, 0xB7, 0xEC, 0x7E, 0x00, 0xC1, 0x88, 0x58, 0x42, 0x32, 0x58, 0xF0, 0x65, 0xA2,
+ 0xBF, 0xB7, 0xEE, 0x7D, 0xDF, 0xB7, 0x6E, 0x7E, 0xFF, 0xB7, 0xEE, 0x7E, 0x02, 0xC0, 0x20, 0x8C, 0x22, 0x9C, 0x0D, 0xA6, 0xE2, 0x0D, 0x34, 0xFF, 0xB4, 0x98, 0x02, 0x74, 0x00, 0xC0,
+ 0x04, 0x91, 0xE2, 0x0D, 0x34, 0xFF, 0xA8, 0x98, 0xA2, 0x0D, 0x34, 0xFF, 0xA5, 0x98, 0x60, 0xB7, 0x14, 0x5A, 0xA0, 0xB7, 0x94, 0x55, 0x34, 0xC0, 0xBB, 0x98, 0x40, 0xB7, 0x04, 0x5C,
+ 0xC0, 0xB7, 0x8C, 0x5D, 0x90, 0xD2, 0x3D, 0xA0, 0x90, 0xD2, 0x3F, 0xA9, 0x6D, 0x9E, 0x08, 0xD2, 0x4D, 0xAA, 0x2D, 0x9E, 0xB6, 0x9E, 0x30, 0xC0, 0xCD, 0xA8, 0x00, 0x75, 0x90, 0xD2,
+ 0xBD, 0xA0, 0x00, 0xC0, 0xA2, 0x90, 0xA2, 0x0D, 0x34, 0xFF, 0x88, 0x98, 0x34, 0xC0, 0xDE, 0x98, 0x90, 0xD2, 0x3D, 0xAA, 0x08, 0x75, 0x07, 0xC0, 0xA2, 0x91, 0x86, 0x0D, 0x34, 0xFF,
+ 0x7E, 0x98, 0x08, 0xD2, 0x49, 0xAA, 0x00, 0x75, 0x00, 0xC0, 0xA2, 0x90, 0x86, 0x0D, 0x34, 0xFF, 0x76, 0x98, 0x08, 0xD2, 0x51, 0xAA, 0x00, 0x75, 0x00, 0xC0, 0xA2, 0x90, 0x86, 0x0D,
+ 0x34, 0xFF, 0x6E, 0x98, 0x90, 0xD2, 0x3D, 0xAA, 0x04, 0x75, 0x00, 0xC0, 0x04, 0x91, 0x60, 0xB7, 0x94, 0x5A, 0x34, 0xC0, 0x81, 0x98, 0x10, 0xD2, 0x29, 0xA0, 0x34, 0xC0, 0x39, 0x99,
+ 0x08, 0xD2, 0x41, 0xAA, 0x02, 0x75, 0x00, 0xC0, 0xA4, 0x90, 0x8A, 0x0D, 0x34, 0xFF, 0x59, 0x98, 0x90, 0xD2, 0x3D, 0xAA, 0x04, 0x1A, 0x0E, 0xC0, 0x7C, 0x2A, 0x02, 0x75, 0x04, 0xC0,
+ 0x72, 0x91, 0x48, 0xD2, 0x4D, 0xAA, 0x02, 0x75, 0x00, 0xC0, 0x44, 0x91, 0x60, 0xB7, 0x14, 0x5B, 0x34, 0xC0, 0x64, 0x98, 0x90, 0xD2, 0x35, 0xA0, 0x00, 0xC0, 0xA0, 0x90, 0x02, 0x85,
+ 0x90, 0xD2, 0x37, 0xA1, 0x88, 0xD2, 0x3D, 0xAA, 0x02, 0x75, 0x01, 0xC0, 0x84, 0x90, 0x34, 0xC0, 0x79, 0x99, 0x08, 0xD2, 0x39, 0xAA, 0x08, 0x75, 0x00, 0xC0, 0x44, 0x91, 0x34, 0xC0,
+ 0xA4, 0x99, 0x9A, 0x0D, 0x34, 0xFF, 0x30, 0x98, 0x9A, 0x0D, 0x34, 0xFF, 0x2D, 0x98, 0x08, 0xD2, 0x39, 0xAA, 0x06, 0x75, 0x00, 0xC0, 0x42, 0x91, 0x08, 0xF2, 0x25, 0xAA, 0xFF, 0xCF,
+ 0x7C, 0x2A, 0x61, 0xC0, 0x08, 0x75, 0x00, 0xC0, 0xA4, 0x92, 0x82, 0x0D, 0x8A, 0x09, 0x34, 0xC0, 0x9F, 0x9A, 0x00, 0xC0, 0xE0, 0x91, 0x86, 0x0D, 0x34, 0xFF, 0x17, 0x98, 0x00, 0x74,
+ 0x02, 0x0A, 0x01, 0xD0, 0x42, 0x0A, 0x86, 0x0D, 0x82, 0x09, 0x08, 0xD2, 0x39, 0xA2, 0x34, 0xC0, 0x90, 0x9A, 0x8A, 0x0D, 0x86, 0x09, 0x34, 0xC0, 0x8C, 0x9A, 0x8A, 0x0D, 0x34, 0xFF,
+ 0x06, 0x98, 0xC8, 0xD2, 0x39, 0xA0, 0x8A, 0x0D, 0x34, 0xFF, 0x01, 0x98, 0x50, 0xD2, 0x51, 0xAA, 0x00, 0x75, 0xC8, 0xD2, 0x31, 0xA0, 0x00, 0xC0, 0x82, 0x90, 0x34, 0xC0, 0x8E, 0x99,
+ 0x34, 0xC0, 0x1E, 0x9A, 0x60, 0xB7, 0x94, 0x5B, 0x34, 0xC0, 0x0E, 0x98, 0x88, 0xD2, 0x3D, 0xAA, 0x02, 0x75, 0x08, 0xD2, 0x31, 0xA0, 0x00, 0xC0, 0xC4, 0x90, 0x08, 0xD2, 0x35, 0xA0,
+ 0x00, 0xC0, 0xA0, 0x90, 0x02, 0x85, 0x08, 0xD2, 0x37, 0xA1, 0x86, 0x0D, 0x14, 0xFF, 0xE1, 0x9B, 0x48, 0xD2, 0x25, 0xAA, 0x10, 0x75, 0x91, 0xD0, 0xD8, 0x08, 0x00, 0xB5, 0x29, 0x40,
+ 0x00, 0xC0, 0xB4, 0x91, 0x90, 0xD2, 0xCD, 0xA8, 0x40, 0x74, 0x02, 0x0A, 0x02, 0xD0, 0x42, 0x1A, 0x08, 0x2A, 0x08, 0xD2, 0x2D, 0xA2, 0x01, 0xC0, 0x20, 0x93, 0x02, 0x85, 0x08, 0xD2,
+ 0x2F, 0xA1, 0x01, 0xC0, 0x80, 0x92, 0xA0, 0xB7, 0x8C, 0x5B, 0x96, 0x0D, 0x86, 0x09, 0x34, 0xC0, 0x45, 0x9A, 0x34, 0xC0, 0x06, 0x9A, 0xAB, 0x9E, 0x14, 0xC0, 0xD9, 0x9B, 0xAB, 0x9E,
+ 0x10, 0xD2, 0x31, 0xA0, 0x14, 0xC0, 0xD4, 0x9B, 0x10, 0xD2, 0x35, 0xA0, 0x86, 0x0D, 0x14, 0xFF, 0xB3, 0x9B, 0x08, 0xD2, 0x49, 0xAA, 0x91, 0xD0, 0xD8, 0x0C, 0x00, 0x75, 0x00, 0xB5,
+ 0x29, 0x40, 0x00, 0xC0, 0xE2, 0x90, 0xD0, 0xD2, 0x25, 0xAA, 0x00, 0x75, 0x00, 0xC0, 0x24, 0x92, 0x90, 0xD2, 0xBD, 0xA8, 0x46, 0x74, 0x00, 0xC0, 0x42, 0x91, 0x40, 0x74, 0x00, 0xC0,
+ 0x24, 0x91, 0x48, 0xD2, 0x51, 0xAA, 0x00, 0x75, 0x00, 0xC0, 0x82, 0x90, 0x34, 0xC0, 0x2C, 0x99, 0x9F, 0xB7, 0xEE, 0x7E, 0xBF, 0xB7, 0x6E, 0x7F, 0xDF, 0xB7, 0xEE, 0x7F, 0x60, 0x8C,
+ 0x22, 0x9C, 0x0D, 0xA6, 0xE2, 0x0D, 0x14, 0xFF, 0x90, 0x9B, 0x02, 0x74, 0x02, 0x0B, 0x00, 0xC0, 0x04, 0x91, 0xE2, 0x0D, 0x14, 0xFF, 0x83, 0x9B, 0xA2, 0x0D, 0x14, 0xFF, 0x80, 0x9B,
+ 0x60, 0xB7, 0x94, 0x5C, 0x14, 0xC0, 0x98, 0x9B, 0x20, 0xB7, 0x8C, 0x55, 0x40, 0xB7, 0x04, 0x5D, 0x00, 0xB5, 0xA9, 0x4C, 0x40, 0xB7, 0xB9, 0x4C, 0x2D, 0x9E, 0x30, 0xC0, 0x4D, 0xAA,
+ 0xF2, 0xF3, 0xCE, 0x28, 0x83, 0x02, 0x80, 0xB5, 0xA9, 0x4C, 0x00, 0xC0, 0xC4, 0x90, 0xF4, 0xFF, 0xB8, 0x9A, 0x04, 0xC0, 0x20, 0x91, 0x44, 0x76, 0x00, 0xC0, 0x04, 0x93, 0x60, 0xB7,
+ 0x14, 0x5A, 0x14, 0xC0, 0x7B, 0x9B, 0x40, 0xB7, 0x04, 0x5C, 0x88, 0xD2, 0x3D, 0xA0, 0x88, 0xD2, 0x3F, 0xA9, 0x2D, 0x9E, 0x30, 0xC0, 0xCD, 0xA8, 0xF1, 0xD3, 0x1E, 0x2A, 0x08, 0x75,
+ 0x88, 0xD2, 0xBD, 0xA0, 0x03, 0xC0, 0x42, 0x92, 0x00, 0xC0, 0x00, 0x93, 0x46, 0x76, 0x00, 0xC0, 0xA4, 0x92, 0x8E, 0x0D, 0x14, 0xFF, 0x47, 0x9B, 0x40, 0xB7, 0x9C, 0x6C, 0x40, 0xB7,
+ 0x04, 0x6D, 0xF1, 0xD3, 0x0E, 0x2B, 0x47, 0x9D, 0x48, 0x9D, 0x10, 0xC2, 0x45, 0xAA, 0x20, 0xC2, 0xC5, 0xA8, 0x88, 0xD2, 0x3D, 0xA2, 0xC8, 0xD2, 0xA1, 0xA0, 0xA0, 0xB7, 0x94, 0x5D,
+ 0x10, 0xD2, 0x2D, 0xAA, 0x00, 0x75, 0x00, 0xC0, 0xA2, 0x90, 0xA2, 0x0D, 0x14, 0xFF, 0x2D, 0x9B, 0x14, 0xC0, 0x83, 0x9B, 0x86, 0x0D, 0x14, 0xFF, 0x28, 0x9B, 0x86, 0x0D, 0x14, 0xFF,
+ 0x25, 0x9B, 0xC8, 0xD2, 0x25, 0xAA, 0x06, 0x75, 0x01, 0xC0, 0xE4, 0x90, 0x50, 0xD2, 0xA2, 0xA8, 0x40, 0x76, 0x82, 0x08, 0x02, 0xD0, 0x92, 0x08, 0x86, 0x75, 0x02, 0x0A, 0x0A, 0xD0,
+ 0x42, 0x0A, 0x48, 0x78, 0x00, 0xC0, 0x42, 0x91, 0x60, 0xB7, 0x94, 0x6D, 0x14, 0xC0, 0x2B, 0x9B, 0x88, 0xD2, 0x29, 0xA0, 0x00, 0xC0, 0xE0, 0x90, 0x40, 0x76, 0x00, 0xC0, 0x84, 0x90,
+ 0x88, 0xD2, 0xAA, 0xA0, 0x11, 0xD0, 0x68, 0x1A, 0x06, 0x75, 0x00, 0xC0, 0x12, 0x91, 0x60, 0xB7, 0x94, 0x5A, 0x14, 0xC0, 0x19, 0x9B, 0x08, 0xD2, 0x29, 0xA0, 0xC8, 0xD2, 0x25, 0xAA,
+ 0x04, 0x75, 0x00, 0xC0, 0x24, 0x93, 0x88, 0xD2, 0x3D, 0xAA, 0x00, 0x75, 0x82, 0x0C, 0x01, 0xD0, 0x92, 0x0C, 0x06, 0x75, 0x4C, 0x9E, 0x82, 0x08, 0x01, 0xD0, 0x92, 0x08, 0x00, 0xE0,
+ 0x42, 0x32, 0x00, 0xC0, 0xE2, 0x90, 0x82, 0x0D, 0x14, 0xC0, 0x0F, 0x98, 0x00, 0xC0, 0xA0, 0x90, 0x82, 0x0D, 0x14, 0xC0, 0x62, 0x98, 0x9F, 0xB7, 0xEE, 0x7E, 0xBF, 0xB7, 0x6E, 0x7F,
+ 0xDF, 0xB7, 0xEE, 0x7F, 0x60, 0x8C, 0x22, 0x9C, 0x0D, 0xA6, 0xA0, 0xB7, 0x94, 0x55, 0xD0, 0xD2, 0x25, 0xAA, 0x06, 0x75, 0x82, 0x08, 0x01, 0xD0, 0x92, 0x08, 0x1C, 0xC0, 0xFE, 0x7E,
+ 0x02, 0x0A, 0x02, 0xD0, 0x42, 0x0A, 0x48, 0x78, 0x00, 0xC0, 0x82, 0x91, 0xD0, 0xD2, 0x21, 0xAA, 0xE2, 0x0D, 0x90, 0xD2, 0x3D, 0xA2, 0x14, 0xFF, 0xBF, 0x9A, 0xA2, 0x0D, 0x14, 0xFF,
+ 0xBC, 0x9A, 0xC0, 0xB7, 0x8C, 0x5D, 0x14, 0xC0, 0x90, 0x9B, 0x08, 0xD2, 0x41, 0xAA, 0x00, 0x75, 0x00, 0xC0, 0xA2, 0x90, 0x8A, 0x0D, 0x14, 0xFF, 0xB0, 0x9A, 0xD0, 0xD2, 0x25, 0xAA,
+ 0x04, 0x75, 0x00, 0xC0, 0xC4, 0x90, 0x8E, 0x0D, 0x82, 0x09, 0x34, 0xC0, 0x2A, 0x99, 0xA0, 0xB7, 0x8C, 0x5B, 0x96, 0x0D, 0x86, 0x09, 0x34, 0xC0, 0x24, 0x99, 0x34, 0xC0, 0xE5, 0x98,
+ 0xAB, 0x9E, 0x14, 0xC0, 0xB8, 0x9A, 0xAB, 0x9E, 0x10, 0xD2, 0x31, 0xA0, 0x14, 0xC0, 0xB3, 0x9A, 0x10, 0xD2, 0x35, 0xA0, 0x86, 0x0D, 0x14, 0xFF, 0x92, 0x9A, 0x48, 0xD2, 0x51, 0xAA,
+ 0x91, 0xD0, 0xD8, 0x0C, 0x00, 0x75, 0x00, 0xB5, 0x29, 0x40, 0x00, 0xC0, 0x82, 0x90, 0x34, 0xC0, 0x1D, 0x98, 0x9F, 0xB7, 0xEE, 0x7E, 0xBF, 0xB7, 0x6E, 0x7F, 0xDF, 0xB7, 0xEE, 0x7F,
+ 0x60, 0x8C, 0x22, 0x9C, 0x0D, 0xA6, 0x20, 0xB7, 0x94, 0x55, 0x80, 0xB7, 0xC9, 0x4C, 0x06, 0x75, 0x82, 0x08, 0x01, 0xD0, 0x92, 0x08, 0x1C, 0xC0, 0xFE, 0x7E, 0x02, 0x0A, 0x02, 0xD0,
+ 0x42, 0x0A, 0x48, 0x78, 0x83, 0x06, 0x00, 0xC0, 0x82, 0x91, 0xD0, 0xD2, 0x21, 0xAA, 0xE2, 0x0D, 0x90, 0xD2, 0x3D, 0xA2, 0x14, 0xFF, 0x66, 0x9A, 0xA2, 0x0D, 0x14, 0xFF, 0x63, 0x9A,
+ 0x14, 0xC0, 0x39, 0x9B, 0x20, 0xB7, 0x8C, 0x5D, 0x80, 0xB7, 0x29, 0x40, 0x00, 0x75, 0x03, 0x03, 0x00, 0xC0, 0xA2, 0x90, 0x8A, 0x0D, 0x14, 0xFF, 0x56, 0x9A, 0x90, 0xD2, 0x3D, 0xAA,
+ 0x04, 0x75, 0x00, 0xC0, 0xA4, 0x91, 0xD0, 0xD2, 0x25, 0xAA, 0x04, 0x75, 0x00, 0xC0, 0x04, 0x91, 0x60, 0xB7, 0x94, 0x5A, 0x14, 0xC0, 0x64, 0x9A, 0x10, 0xD2, 0x29, 0xA0, 0xD0, 0xD2,
+ 0x25, 0xAA, 0x06, 0x75, 0x00, 0xC0, 0xA4, 0x92, 0x90, 0xD2, 0x3D, 0xAA, 0x02, 0x75, 0x00, 0xC0, 0x04, 0x92, 0x86, 0x0D, 0x14, 0xFF, 0x39, 0x9A, 0x1C, 0xC0, 0x3E, 0x7C, 0x90, 0xD2,
+ 0x2D, 0xA0, 0x00, 0xC0, 0xE4, 0x90, 0x86, 0x0D, 0x14, 0xFF, 0x30, 0x9A, 0x90, 0xD2, 0x31, 0xA0, 0x48, 0xD2, 0x4D, 0xAA, 0x00, 0x75, 0x00, 0xC0, 0x42, 0x91, 0x60, 0xB7, 0x14, 0x5B,
+ 0x14, 0xC0, 0x41, 0x9A, 0x90, 0xD2, 0x35, 0xA0, 0x00, 0xC0, 0x80, 0x90, 0x90, 0xD2, 0x35, 0xA2, 0x08, 0xD2, 0x59, 0xAA, 0x02, 0x75, 0x00, 0xC0, 0x04, 0x91, 0x60, 0xB7, 0x94, 0x6E,
+ 0x14, 0xC0, 0x32, 0x9A, 0x90, 0xD2, 0x39, 0xA0, 0xD0, 0xD2, 0x25, 0xAA, 0x04, 0x75, 0x00, 0xC0, 0xE4, 0x92, 0x90, 0xD2, 0x3D, 0xAA, 0x04, 0x75, 0x00, 0xC0, 0x44, 0x92, 0x91, 0xD0,
+ 0x54, 0x0E, 0x02, 0x85, 0x86, 0x0D, 0x08, 0xD2, 0x03, 0xA1, 0x14, 0xFF, 0x02, 0x9A, 0x86, 0x0D, 0x82, 0x09, 0x34, 0xC0, 0x81, 0x98, 0x8A, 0x0D, 0x86, 0x09, 0x34, 0xC0, 0x7D, 0x98,
+ 0xD0, 0xD2, 0x25, 0xAA, 0x04, 0x75, 0x00, 0xC0, 0xE4, 0x93, 0x90, 0xD2, 0x3D, 0xAA, 0x02, 0x75, 0x00, 0xC0, 0x44, 0x93, 0x86, 0x0D, 0x14, 0xFF, 0xED, 0x99, 0x91, 0xD0, 0x54, 0x0E,
+ 0x86, 0x0D, 0x08, 0xD2, 0x01, 0xA0, 0x14, 0xFF, 0xE6, 0x99, 0x1C, 0xC0, 0x3E, 0x7C, 0x00, 0xC0, 0x02, 0x91, 0x9A, 0x0D, 0x14, 0xFF, 0xDF, 0x99, 0x9A, 0x0D, 0x14, 0xFF, 0xDC, 0x99,
+ 0x8A, 0x0D, 0x86, 0x09, 0x34, 0xC0, 0x5B, 0x98, 0xD0, 0xD2, 0x25, 0xAA, 0x06, 0x75, 0x01, 0xC0, 0x44, 0x92, 0x14, 0xC0, 0x10, 0x9B, 0x10, 0xD2, 0x39, 0xAA, 0x08, 0x75, 0x01, 0xC0,
+ 0x44, 0x90, 0x90, 0xD2, 0x3D, 0xAA, 0x02, 0x75, 0x00, 0xC0, 0xA4, 0x93, 0x14, 0xC0, 0x36, 0x9B, 0x60, 0xB7, 0x14, 0x6E, 0x14, 0xC0, 0xDD, 0x99, 0x91, 0xD0, 0xDA, 0x0E, 0x9A, 0x0D,
+ 0x08, 0xD2, 0x21, 0xA0, 0x14, 0xFF, 0xBA, 0x99, 0x9A, 0x0D, 0x14, 0xFF, 0xB7, 0x99, 0x08, 0xD2, 0x21, 0xAA, 0x00, 0x75, 0x00, 0xC0, 0x04, 0x91, 0x9A, 0x0D, 0x14, 0xFF, 0xAF, 0x99,
+ 0x9A, 0x0D, 0x14, 0xFF, 0xAC, 0x99, 0x90, 0xD2, 0x3D, 0xAA, 0x04, 0x75, 0x00, 0xC0, 0xC4, 0x90, 0x92, 0x0D, 0x8A, 0x09, 0x34, 0xC0, 0x26, 0x98, 0xD0, 0xD2, 0x25, 0xAA, 0x04, 0x75,
+ 0x0A, 0x85, 0x02, 0xE0, 0x22, 0x85, 0xCF, 0x9D, 0x14, 0xFF, 0x9A, 0x99, 0xD0, 0xD2, 0x25, 0xAA, 0x91, 0xD0, 0xD6, 0x0C, 0x06, 0x75, 0x00, 0xB5, 0x29, 0x40, 0x00, 0xC0, 0x84, 0x91,
+ 0x90, 0xD2, 0x3D, 0xAA, 0x02, 0x75, 0x00, 0xC0, 0xE4, 0x90, 0x90, 0xD2, 0x2D, 0xAA, 0x00, 0x75, 0x00, 0xC0, 0xA0, 0x90, 0xD0, 0xD2, 0x25, 0xAA, 0x04, 0x75, 0x8A, 0x0D, 0x00, 0xC0,
+ 0x62, 0x90, 0x8E, 0x0D, 0x14, 0xFF, 0x7E, 0x99, 0xD0, 0xD2, 0x3D, 0xA0, 0x8E, 0x0D, 0x14, 0xFF, 0x79, 0x99, 0xD0, 0xD2, 0x25, 0xAA, 0x04, 0x75, 0xD0, 0xD2, 0x35, 0xA0, 0x00, 0xC0,
+ 0xA4, 0x92, 0x8A, 0x0D, 0x14, 0xFF, 0x6F, 0x99, 0x91, 0xD0, 0x54, 0x0E, 0x08, 0xD2, 0x81, 0xA8, 0x91, 0xD0, 0x50, 0x0E, 0x42, 0x74, 0x08, 0xD2, 0x01, 0xA0, 0x00, 0xC0, 0xE2, 0x92,
+ 0x90, 0xD2, 0x3D, 0xAA, 0x04, 0x75, 0x00, 0xC0, 0x00, 0x92, 0x06, 0x75, 0x00, 0xC0, 0xC4, 0x92, 0x10, 0xD2, 0x39, 0xAA, 0x06, 0x75, 0x00, 0xC0, 0x42, 0x91, 0x10, 0xF2, 0x25, 0xAA,
+ 0xFF, 0xCF, 0x7C, 0x2A, 0x61, 0xC0, 0x08, 0x75, 0x00, 0xC0, 0x24, 0x91, 0x8A, 0x0D, 0x14, 0xFF, 0x4C, 0x99, 0x91, 0xD0, 0x52, 0x0E, 0x08, 0xD2, 0x01, 0xA0, 0x48, 0xD2, 0x51, 0xAA,
+ 0x00, 0x75, 0x00, 0xC0, 0x82, 0x90, 0x14, 0xC0, 0xD7, 0x9A, 0x14, 0xC0, 0x67, 0x9B, 0x60, 0xB7, 0x94, 0x5B, 0x14, 0xC0, 0x57, 0x99, 0x10, 0xD2, 0x31, 0xA0, 0x86, 0x0D, 0x14, 0xFF,
+ 0x36, 0x99, 0x50, 0xD2, 0x25, 0xAA, 0x91, 0xD0, 0xD8, 0x0C, 0x10, 0x75, 0x00, 0xB5, 0x29, 0x40, 0x00, 0xC0, 0xB4, 0x91, 0x88, 0xD2, 0xCD, 0xA8, 0x40, 0x74, 0x02, 0x0A, 0x02, 0xD0,
+ 0x42, 0x1A, 0x08, 0x2A, 0x10, 0xD2, 0x2D, 0xA2, 0x00, 0xC0, 0xA0, 0x90, 0x02, 0x85, 0x10, 0xD2, 0x2F, 0xA1, 0x9F, 0xB7, 0xEE, 0x7E, 0xBF, 0xB7, 0x6E, 0x7F, 0xDF, 0xB7, 0xEE, 0x7F,
+ 0x60, 0x8C, 0x22, 0x9C, 0x0D, 0xA6, 0xA0, 0xB7, 0x8C, 0x55, 0x02, 0x0F, 0xC8, 0xD2, 0x2A, 0xA3, 0x14, 0xFF, 0x1A, 0x99, 0x20, 0xB7, 0x8C, 0x5D, 0x80, 0xB7, 0x29, 0x42, 0x00, 0x75,
+ 0x03, 0x03, 0x00, 0xC0, 0x42, 0x91, 0x86, 0x0D, 0x14, 0xFF, 0x04, 0x99, 0x8A, 0x0D, 0x14, 0xFF, 0x01, 0x99, 0x00, 0xC0, 0xA0, 0x90, 0x8A, 0x0D, 0x14, 0xFF, 0xFC, 0x98, 0x88, 0xD2,
+ 0x45, 0xAA, 0x00, 0x75, 0x00, 0xC0, 0xA2, 0x90, 0x86, 0x0D, 0x14, 0xFF, 0xF4, 0x98, 0x86, 0x0D, 0x14, 0xFF, 0xF1, 0x98, 0x02, 0x74, 0x00, 0xC0, 0xC4, 0x90, 0x88, 0xD2, 0x3D, 0xA0,
+ 0x00, 0xC0, 0xA0, 0x92, 0x88, 0xD2, 0x49, 0xAA, 0x00, 0x75, 0x00, 0xC0, 0xC4, 0x90, 0x88, 0xD2, 0x3D, 0xA2, 0x00, 0xC0, 0x80, 0x91, 0x86, 0x0D, 0x14, 0xFF, 0xDE, 0x98, 0x02, 0x74,
+ 0x0A, 0x85, 0x00, 0xC0, 0x64, 0x90, 0x02, 0x85, 0x88, 0xD2, 0x3F, 0xA1, 0x88, 0xD2, 0x3D, 0xAA, 0x04, 0x75, 0x00, 0xC0, 0x04, 0x92, 0x60, 0xB7, 0x94, 0x5A, 0x14, 0xC0, 0xEA, 0x98,
+ 0xF1, 0xD3, 0x0E, 0x2A, 0x2C, 0x75, 0x08, 0xD2, 0x29, 0xA0, 0x00, 0xC0, 0xA4, 0x90, 0x0E, 0x85, 0x88, 0xD2, 0x3F, 0xA1, 0x88, 0xD2, 0x3D, 0xAA, 0x00, 0x75, 0x82, 0x0C, 0x01, 0xD0,
+ 0x92, 0x0C, 0x06, 0x75, 0x82, 0x08, 0x01, 0xD0, 0x92, 0x08, 0x8A, 0x9E, 0x00, 0xE0, 0x94, 0x36, 0x00, 0xC0, 0xA2, 0x90, 0x9E, 0x0D, 0x14, 0xFF, 0xB2, 0x98, 0x14, 0xC0, 0x88, 0x99,
+ 0x48, 0xD2, 0x4D, 0xAA, 0x00, 0x75, 0x00, 0xC0, 0xE2, 0x91, 0x88, 0xD2, 0x51, 0xAA, 0x00, 0x75, 0x00, 0xC0, 0x42, 0x91, 0x60, 0xB7, 0x14, 0x5B, 0x14, 0xC0, 0xBE, 0x98, 0x88, 0xD2,
+ 0x35, 0xA0, 0x00, 0xC0, 0xA0, 0x90, 0x02, 0x85, 0x88, 0xD2, 0x37, 0xA1, 0x88, 0xD2, 0x3D, 0xAA, 0x02, 0x75, 0x00, 0xC0, 0x52, 0x91, 0x48, 0xD2, 0x5D, 0xAA, 0x00, 0x75, 0x00, 0xC0,
+ 0xA2, 0x90, 0x8A, 0x0D, 0x14, 0xFF, 0x8E, 0x98, 0x40, 0x77, 0x02, 0xC0, 0xE4, 0x93, 0x88, 0xD2, 0x3D, 0xAA, 0x02, 0x75, 0x00, 0xC0, 0xA4, 0x91, 0x14, 0xC0, 0xC3, 0x99, 0x08, 0xD2,
+ 0x39, 0xAA, 0x08, 0x75, 0x00, 0xC0, 0x44, 0x92, 0x14, 0xC0, 0xEE, 0x99, 0x00, 0xC0, 0xC0, 0x91, 0x04, 0x75, 0x00, 0xC0, 0x64, 0x91, 0x86, 0x0D, 0x14, 0xFF, 0x75, 0x98, 0x00, 0x74,
+ 0x02, 0x0A, 0x01, 0xD0, 0x42, 0x0A, 0x08, 0xD2, 0x39, 0xA2, 0x88, 0xD2, 0x3D, 0xAA, 0x02, 0x75, 0x00, 0xC0, 0xA4, 0x91, 0x08, 0xD2, 0x39, 0xAA, 0x08, 0x75, 0x00, 0xC0, 0x04, 0x91,
+ 0x9A, 0x0D, 0x14, 0xFF, 0x62, 0x98, 0x9A, 0x0D, 0x14, 0xFF, 0x5F, 0x98, 0x08, 0xF2, 0x25, 0xAA, 0xFF, 0xCF, 0x7C, 0x2A, 0x61, 0xC0, 0x08, 0x75, 0x00, 0xC0, 0xE2, 0x90, 0x08, 0xD2,
+ 0x39, 0xAA, 0x06, 0x75, 0x00, 0xC0, 0xC4, 0x90, 0x82, 0x0D, 0x8A, 0x09, 0x14, 0xC0, 0xD1, 0x9A, 0x88, 0xD2, 0x3D, 0xAA, 0x04, 0x75, 0x00, 0xC0, 0xC4, 0x90, 0x86, 0x0D, 0x82, 0x09,
+ 0x14, 0xC0, 0xC8, 0x9A, 0x8A, 0x0D, 0x86, 0x09, 0x14, 0xC0, 0xC4, 0x9A, 0x8A, 0x0D, 0x14, 0xFF, 0x3E, 0x98, 0xC8, 0xD2, 0x39, 0xA0, 0x8A, 0x0D, 0x14, 0xFF, 0x39, 0x98, 0x48, 0xD2,
+ 0x51, 0xAA, 0x00, 0x75, 0xC8, 0xD2, 0x31, 0xA0, 0x00, 0xC0, 0x82, 0x90, 0x14, 0xC0, 0xC6, 0x99, 0x14, 0xC0, 0x56, 0x9A, 0x88, 0xD2, 0xBD, 0xA8, 0x42, 0x74, 0x02, 0x0A, 0x64, 0xB3,
+ 0x32, 0x48, 0x00, 0x75, 0x00, 0xC0, 0xA4, 0x93, 0xA0, 0xB7, 0x94, 0x5B, 0x8B, 0x05, 0x14, 0xC0, 0x3C, 0x98, 0x88, 0xD2, 0x3D, 0xAA, 0x00, 0x75, 0x82, 0x0C, 0x01, 0xD0, 0x92, 0x0C,
+ 0x06, 0x75, 0x4C, 0x9E, 0x82, 0x08, 0x01, 0xD0, 0x92, 0x08, 0x00, 0xE0, 0x42, 0x32, 0x08, 0xD2, 0x31, 0xA0, 0x00, 0xC0, 0xE2, 0x90, 0x8B, 0x05, 0x14, 0xC0, 0x28, 0x98, 0x08, 0xD2,
+ 0x35, 0xA0, 0x86, 0x0D, 0x14, 0xFF, 0x07, 0x98, 0x88, 0xD2, 0xBD, 0xA8, 0x91, 0xD0, 0x58, 0x0A, 0x08, 0xD2, 0x01, 0xA0, 0x44, 0x74, 0x0A, 0x85, 0x08, 0xD2, 0x2F, 0xA1, 0x00, 0xC0,
+ 0x82, 0x91, 0x48, 0xD2, 0x25, 0xAA, 0x10, 0x75, 0x00, 0xC0, 0xF4, 0x90, 0x88, 0xD2, 0x4D, 0xAA, 0x00, 0x75, 0x00, 0xC0, 0xA4, 0x90, 0x02, 0x85, 0x08, 0xD2, 0x2F, 0xA1, 0x9F, 0xB7,
+ 0xEE, 0x7E, 0xBF, 0xB7, 0x6E, 0x7F, 0xDF, 0xB7, 0xEE, 0x7F, 0x60, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x20, 0x84, 0x82, 0x0A, 0x82, 0x08, 0x87, 0x06, 0xDA, 0x9D, 0x00, 0xF0, 0x43, 0xA9,
+ 0x10, 0xF2, 0x23, 0x88, 0xA3, 0x9E, 0x5F, 0xB5, 0x64, 0x7F, 0x00, 0xC2, 0xB0, 0x52, 0xF4, 0xFE, 0xD5, 0x9B, 0x5F, 0xB7, 0x64, 0x7F, 0x00, 0xF0, 0x45, 0xAA, 0xD0, 0x32, 0x48, 0x71,
+ 0x00, 0xF0, 0xC1, 0xA8, 0x00, 0xC0, 0x82, 0x91, 0x20, 0xF0, 0x49, 0xAA, 0x48, 0x70, 0x00, 0xC0, 0xE4, 0x90, 0x00, 0xF0, 0x45, 0xAA, 0x48, 0x71, 0xFF, 0xFF, 0x04, 0x93, 0x00, 0xF0,
+ 0x41, 0xAA, 0x48, 0x70, 0x00, 0xC0, 0xC2, 0x90, 0x1C, 0xC0, 0x3E, 0x75, 0xFE, 0xFF, 0x44, 0x93, 0x10, 0xE1, 0x23, 0x8A, 0x26, 0xD0, 0x0B, 0x59, 0x7D, 0x58, 0x10, 0xE2, 0x21, 0x80,
+ 0x07, 0x58, 0x9F, 0xB7, 0xEE, 0x7E, 0xBF, 0xB7, 0x6E, 0x7F, 0x60, 0x8C, 0x22, 0x9C, 0x0D, 0xA6, 0x02, 0xC0, 0x40, 0x84, 0x20, 0xB7, 0x8C, 0x5D, 0x80, 0xB7, 0xA9, 0x40, 0x02, 0x0F,
+ 0x00, 0x75, 0x02, 0x0B, 0x83, 0x02, 0x00, 0xC0, 0x62, 0x93, 0x08, 0xD2, 0x29, 0xAA, 0x00, 0x75, 0x00, 0xC0, 0xE2, 0x90, 0x08, 0xD2, 0x35, 0xAA, 0x00, 0x75, 0x00, 0xC0, 0x22, 0x91,
+ 0x8A, 0x0D, 0xF4, 0xFE, 0x90, 0x9B, 0xF2, 0xD3, 0x0E, 0x2B, 0x00, 0xC0, 0x40, 0x91, 0x86, 0x0D, 0xF4, 0xFE, 0x89, 0x9B, 0x86, 0x0D, 0xF4, 0xFE, 0x86, 0x9B, 0xF1, 0xD3, 0x0E, 0x2B,
+ 0x08, 0xD2, 0x3D, 0xAA, 0x00, 0x75, 0x02, 0xC0, 0xC2, 0x91, 0x86, 0x0D, 0xF4, 0xFE, 0x7C, 0x9B, 0x1C, 0xC0, 0x3E, 0x7C, 0x02, 0xC0, 0xE2, 0x90, 0x08, 0xD2, 0x29, 0xAA, 0x00, 0x75,
+ 0x00, 0xC0, 0x02, 0x92, 0x08, 0xD2, 0x35, 0xAA, 0x00, 0x75, 0x00, 0xC0, 0x64, 0x91, 0x08, 0xD2, 0x25, 0xAA, 0xB1, 0x9E, 0x00, 0x75, 0x8A, 0x0E, 0x02, 0xD0, 0x94, 0x0E, 0x00, 0xC0,
+ 0x00, 0x91, 0x08, 0xD2, 0x25, 0xAA, 0x00, 0x75, 0x86, 0x0E, 0x02, 0xD0, 0xE2, 0x0E, 0x6C, 0x9E, 0x82, 0x0A, 0x48, 0x71, 0x01, 0xC0, 0x28, 0x91, 0xD2, 0xF0, 0x00, 0x8D, 0x91, 0xF0,
+ 0x00, 0x8D, 0xCA, 0x0D, 0xF4, 0xFE, 0x53, 0x9B, 0x29, 0xF2, 0x45, 0xA0, 0xCA, 0x0D, 0xF4, 0xFE, 0x4E, 0x9B, 0xA8, 0xD2, 0x08, 0x59, 0x2D, 0x9E, 0x53, 0xE0, 0x00, 0x8D, 0xBA, 0x0D,
+ 0x30, 0xE0, 0x4D, 0xA0, 0xF4, 0xFE, 0x44, 0x9B, 0x31, 0xDA, 0x45, 0xA0, 0xBA, 0x0D, 0xF4, 0xFE, 0x3F, 0x9B, 0xA8, 0xD2, 0x04, 0x59, 0x6C, 0x9E, 0x2D, 0x9E, 0x84, 0x0A, 0x48, 0x71,
+ 0xB3, 0xE0, 0x00, 0x8D, 0x30, 0xC8, 0x4D, 0xA0, 0xFE, 0xFF, 0xE6, 0x93, 0x9F, 0xB7, 0xEE, 0x7B, 0xBF, 0xB7, 0x6E, 0x7C, 0xDF, 0xB7, 0xEE, 0x7C, 0x04, 0xC0, 0x20, 0x8C, 0x22, 0x9C,
+ 0x05, 0xA6, 0x96, 0x0D, 0xF4, 0xFE, 0x26, 0x9B, 0x20, 0xB7, 0x94, 0x5D, 0x20, 0xB7, 0x8C, 0x55, 0x80, 0xB7, 0x49, 0x47, 0x00, 0xB5, 0x29, 0x44, 0x02, 0x75, 0x83, 0x02, 0x83, 0x06,
+ 0x00, 0xC0, 0x02, 0x91, 0x48, 0xD2, 0xA2, 0xA9, 0x50, 0xD2, 0xB9, 0xA9, 0x14, 0xC0, 0x2F, 0x98, 0x48, 0xD2, 0x21, 0xAA, 0x10, 0x75, 0x00, 0xC0, 0x32, 0x91, 0x86, 0x0D, 0xF4, 0xFE,
+ 0x0B, 0x9B, 0x48, 0xD2, 0x2D, 0xA0, 0x00, 0xC0, 0xA0, 0x90, 0x02, 0x85, 0x48, 0xD2, 0x2F, 0xA1, 0x50, 0xD2, 0x39, 0xAA, 0x02, 0x75, 0x02, 0x85, 0x48, 0xD2, 0x2B, 0xA1, 0x00, 0xC0,
+ 0x44, 0x92, 0x86, 0x0D, 0xF4, 0xFE, 0xF9, 0x9A, 0x1C, 0xC0, 0x3E, 0x7C, 0x48, 0xD2, 0xA1, 0xA8, 0x02, 0x0A, 0x01, 0xD0, 0x42, 0x0A, 0x48, 0xD2, 0x29, 0xA0, 0xC8, 0xD2, 0x2D, 0xA2,
+ 0x48, 0xD2, 0xA5, 0xA0, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x20, 0xB7, 0x8C, 0x55, 0xF1, 0xD3, 0x3E, 0x2E, 0x0E, 0xE0, 0xFC, 0x29, 0x02, 0x85,
+ 0x80, 0xB5, 0xA9, 0x44, 0x40, 0xB5, 0xB9, 0x4D, 0x00, 0xC0, 0xC2, 0x90, 0xC4, 0x74, 0x00, 0xC0, 0x22, 0x92, 0x22, 0x9C, 0x10, 0x75, 0x40, 0xB3, 0xB4, 0x48, 0x40, 0xB7, 0x9C, 0x72,
+ 0x4B, 0x9D, 0x20, 0xC2, 0x05, 0xAA, 0x06, 0x85, 0x40, 0xB5, 0xB9, 0x4D, 0x80, 0xB5, 0xA9, 0x44, 0x22, 0x9C, 0x06, 0x85, 0x40, 0xB5, 0xB9, 0x4D, 0x22, 0x9C, 0x05, 0xA6, 0x20, 0xB7,
+ 0x8C, 0x55, 0x80, 0xB7, 0xA9, 0x4B, 0x02, 0x75, 0x83, 0x02, 0x00, 0xC0, 0x04, 0x91, 0x60, 0xB7, 0x14, 0x5F, 0x20, 0xB7, 0x8C, 0x5F, 0x00, 0xC0, 0xC0, 0x90, 0x60, 0xB7, 0x14, 0x61,
+ 0x20, 0xB7, 0x8C, 0x61, 0x48, 0xD2, 0x25, 0xAA, 0x18, 0x75, 0x00, 0xC0, 0x14, 0x91, 0xF4, 0xFF, 0xC5, 0x9A, 0x40, 0xB7, 0x04, 0x60, 0x00, 0xC0, 0xE0, 0x90, 0x8B, 0x9E, 0xF4, 0xFF,
+ 0xBE, 0x9A, 0x40, 0xB7, 0x84, 0x60, 0x08, 0xD2, 0x39, 0xA0, 0x08, 0xD2, 0x3B, 0xA9, 0x2D, 0x9E, 0x30, 0xC0, 0x4D, 0xAA, 0x08, 0xD2, 0x39, 0xA2, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7,
+ 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0xA0, 0xB7, 0x8C, 0x55, 0x48, 0xD2, 0x25, 0xAA, 0x18, 0x75, 0x00, 0xC0, 0x54, 0x91, 0x60, 0xB7, 0x14, 0x61, 0xF4, 0xFF, 0xA1, 0x9A,
+ 0x40, 0xB7, 0x04, 0x62, 0x00, 0xC0, 0x00, 0x91, 0x60, 0xB7, 0x94, 0x61, 0xF4, 0xFF, 0x99, 0x9A, 0x40, 0xB7, 0x84, 0x62, 0x08, 0xD2, 0x3D, 0xA0, 0x08, 0xD2, 0x3F, 0xA9, 0x2D, 0x9E,
+ 0x30, 0xC0, 0x4D, 0xAA, 0x08, 0xD2, 0x3D, 0xA2, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x20, 0xB7, 0x8C, 0x5D, 0xA0, 0xB7, 0x8C, 0x55,
+ 0x80, 0xB7, 0x29, 0x46, 0xAD, 0x9E, 0x02, 0x85, 0x48, 0xD2, 0x33, 0xA1, 0x04, 0x75, 0x06, 0x85, 0xC8, 0xD2, 0x2B, 0xA1, 0x00, 0xC0, 0x04, 0x91, 0x48, 0xD2, 0x33, 0xA1, 0x14, 0xC0,
+ 0x5F, 0x98, 0x02, 0xC0, 0xE0, 0x92, 0x80, 0xB7, 0x29, 0x46, 0x02, 0x75, 0x82, 0x0C, 0x01, 0xD0, 0x92, 0x0C, 0x06, 0x75, 0x4C, 0x9E, 0x82, 0x08, 0x01, 0xD0, 0x92, 0x08, 0x00, 0xE0,
+ 0x42, 0x32, 0x02, 0xC0, 0x02, 0x91, 0x86, 0x0D, 0xF4, 0xFE, 0x43, 0x9A, 0xF1, 0xF3, 0x0E, 0x2A, 0x48, 0xD2, 0x31, 0xA0, 0x01, 0xC0, 0xA2, 0x93, 0x0E, 0x85, 0x48, 0xD2, 0x33, 0xA1,
+ 0x8A, 0x0D, 0xF4, 0xFE, 0x37, 0x9A, 0x48, 0xD2, 0x35, 0xA0, 0x48, 0xD2, 0x35, 0xAA, 0x04, 0x75, 0x00, 0xC0, 0xA2, 0x92, 0x00, 0xC0, 0xFA, 0x90, 0x02, 0x75, 0x00, 0xC0, 0x22, 0x91,
+ 0x00, 0xC0, 0x40, 0x93, 0x06, 0x75, 0x00, 0xC0, 0x42, 0x92, 0x00, 0xC0, 0xA0, 0x92, 0x8A, 0x0D, 0xF4, 0xFE, 0x21, 0x9A, 0x48, 0xD2, 0x3D, 0xA0, 0x00, 0xC0, 0xC0, 0x91, 0x8A, 0x0D,
+ 0xF4, 0xFE, 0x1A, 0x9A, 0x88, 0xD2, 0x21, 0xA0, 0x00, 0xC0, 0xE0, 0x90, 0x86, 0x0D, 0xF4, 0xFE, 0x13, 0x9A, 0x48, 0xD2, 0x39, 0xA0, 0x10, 0xF2, 0x2D, 0xAA, 0x0F, 0xC0, 0xFE, 0x08,
+ 0xF0, 0xCF, 0x80, 0x08, 0x42, 0x22, 0x60, 0xC0, 0x00, 0x75, 0x00, 0xC0, 0x02, 0x91, 0x14, 0xC0, 0x0C, 0x98, 0x00, 0xC0, 0x80, 0x90, 0x48, 0xD2, 0x35, 0xA2, 0x9F, 0xB7, 0x6E, 0x7F,
+ 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x39, 0xF8, 0x05, 0xA2, 0x8E, 0x0D, 0xF4, 0xFE, 0xF5, 0x99, 0xF2, 0xD3, 0x8E, 0x28, 0x4E, 0x76, 0x00, 0xC0, 0x84, 0x91, 0x96, 0x0D,
+ 0xF4, 0xFE, 0xED, 0x99, 0x80, 0xB7, 0x8C, 0x55, 0x88, 0xD2, 0x05, 0xA0, 0xF8, 0xF9, 0x1D, 0xAA, 0x22, 0x9C, 0x20, 0xB7, 0x8C, 0x55, 0x80, 0xB7, 0xA9, 0x44, 0x4A, 0x9E, 0x28, 0x02,
+ 0x04, 0x0A, 0x80, 0xB5, 0xA9, 0x48, 0xF8, 0xF9, 0x1D, 0xAA, 0x22, 0x9C, 0x05, 0xA6, 0x80, 0xB7, 0x8C, 0x5D, 0x48, 0xD2, 0x95, 0xA8, 0x40, 0x74, 0x00, 0xC0, 0x42, 0x92, 0x86, 0x0D,
+ 0xF4, 0xFE, 0xCF, 0x99, 0xA0, 0xB7, 0x8C, 0x55, 0x1C, 0xC0, 0x3E, 0x7C, 0x08, 0xD2, 0x21, 0xA0, 0x00, 0xC0, 0xE2, 0x90, 0x8A, 0x0D, 0xF4, 0xFE, 0xC4, 0x99, 0x08, 0xD2, 0x25, 0xA0,
+ 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x20, 0xB7, 0x8C, 0x5D, 0x80, 0xB7, 0xA9, 0x49, 0x00, 0x75, 0xA0, 0xB7, 0x8C, 0x55, 0x01, 0xC0,
+ 0x22, 0x90, 0x48, 0xD2, 0x25, 0xAA, 0x10, 0x75, 0x00, 0xC0, 0x92, 0x93, 0x60, 0xB7, 0x14, 0x72, 0xF4, 0xFF, 0xC5, 0x99, 0x40, 0xB7, 0x84, 0x5E, 0x08, 0xD2, 0x2D, 0xA0, 0x08, 0xD2,
+ 0x2F, 0xA9, 0x2D, 0x9E, 0x30, 0xC0, 0xCD, 0xA8, 0xF1, 0xD3, 0x1E, 0x2A, 0x06, 0x75, 0x08, 0xD2, 0xAD, 0xA0, 0x00, 0xC0, 0xC4, 0x92, 0x9A, 0x0D, 0x8A, 0x09, 0x14, 0xC0, 0x18, 0x98,
+ 0x00, 0xC0, 0x00, 0x92, 0x80, 0xB7, 0xA9, 0x49, 0x00, 0x75, 0x02, 0x85, 0x00, 0xC0, 0x02, 0x91, 0x48, 0xD2, 0x25, 0xAA, 0x10, 0x75, 0x00, 0xC0, 0x74, 0x90, 0x0A, 0x85, 0x08, 0xD2,
+ 0x2F, 0xA1, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x5C, 0x9E, 0xF2, 0xD3, 0xCE, 0x2A, 0x96, 0x0D, 0xF1, 0xD3, 0xBE, 0x2A, 0xF4, 0xFE,
+ 0x7C, 0x99, 0x3C, 0x28, 0x00, 0x74, 0x06, 0x0D, 0x54, 0x9E, 0x60, 0xB7, 0x8C, 0x55, 0x01, 0xD0, 0x42, 0x1A, 0x00, 0x75, 0x54, 0x9E, 0x91, 0xD0, 0x3C, 0x09, 0x08, 0xD0, 0xC2, 0xA8,
+ 0x00, 0xC2, 0x94, 0x50, 0x8B, 0x9E, 0x96, 0x34, 0x08, 0xD0, 0xC2, 0xA0, 0x00, 0xC0, 0xA2, 0x91, 0x8A, 0x0D, 0xF4, 0xFE, 0x23, 0x99, 0xAB, 0x9E, 0x14, 0xC0, 0x1D, 0x98, 0x86, 0x0D,
+ 0xF4, 0xFE, 0x1D, 0x99, 0x00, 0xC0, 0x40, 0x92, 0x91, 0xD0, 0x3E, 0x0A, 0x08, 0xD2, 0x81, 0xA8, 0xD4, 0x54, 0x4A, 0x9E, 0x86, 0x0D, 0x94, 0x30, 0x08, 0xD2, 0x81, 0xA0, 0xF4, 0xFE,
+ 0x49, 0x99, 0x60, 0xB7, 0x94, 0x71, 0xF4, 0xFF, 0x61, 0x99, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x40, 0xB7, 0x8C, 0x5D, 0x88, 0xD0, 0x51, 0xAA,
+ 0x20, 0xB7, 0x94, 0x47, 0x40, 0xB7, 0x1C, 0x55, 0x24, 0xD2, 0x0C, 0x59, 0x08, 0x3D, 0x40, 0xB5, 0xD5, 0x41, 0xCB, 0x9D, 0x88, 0x5D, 0x3E, 0xC0, 0xF0, 0x2D, 0x20, 0xE0, 0xEA, 0xA9,
+ 0x40, 0xC0, 0xE0, 0x0C, 0x60, 0xB5, 0x55, 0x40, 0xC8, 0xD0, 0x45, 0xAA, 0xC8, 0xD0, 0xC9, 0xA8, 0x04, 0x1A, 0x24, 0xD2, 0x4C, 0x59, 0x84, 0x18, 0xB0, 0x58, 0x8B, 0x9E, 0xD0, 0x1C,
+ 0x26, 0x35, 0x40, 0xB5, 0x55, 0x40, 0xC8, 0xD0, 0x45, 0xAA, 0xC8, 0xD0, 0xC9, 0xA8, 0x43, 0x62, 0x02, 0xC0, 0x80, 0x0C, 0x0A, 0x0D, 0x04, 0x1A, 0x80, 0xB5, 0x4D, 0x40, 0xBC, 0xCF,
+ 0xF1, 0x0C, 0x40, 0xB5, 0x55, 0x40, 0x49, 0x9E, 0x61, 0xB9, 0xF0, 0x7F, 0x00, 0xC0, 0x01, 0x90, 0x40, 0xB7, 0x35, 0x40, 0x11, 0xD0, 0x28, 0x2E, 0x00, 0x75, 0xFF, 0xFF, 0xE2, 0x92,
+ 0x22, 0x9C, 0x00, 0xE0, 0x80, 0x09, 0x5C, 0x9E, 0x40, 0xB3, 0xA2, 0x48, 0x02, 0x85, 0x10, 0xD0, 0xB2, 0x19, 0x29, 0xF2, 0x07, 0xA1, 0xFF, 0xFF, 0xC1, 0x93, 0x22, 0x9C, 0x1D, 0xA6,
+ 0x0E, 0xC0, 0x60, 0x84, 0x20, 0xB7, 0x8C, 0x5D, 0x80, 0xB7, 0x29, 0x41, 0x02, 0x85, 0x00, 0x75, 0x82, 0x0E, 0x83, 0x03, 0x00, 0xC0, 0xE2, 0x90, 0x88, 0xD2, 0x7D, 0xAA, 0x00, 0x75,
+ 0x00, 0xC0, 0xA4, 0x93, 0x88, 0xD2, 0xFA, 0xA8, 0x40, 0x76, 0x82, 0x08, 0x01, 0xD0, 0x92, 0x08, 0x46, 0x76, 0x02, 0x0A, 0x01, 0xD0, 0x42, 0x0A, 0x00, 0xE0, 0x98, 0x30, 0x00, 0xC0,
+ 0xC4, 0x93, 0x11, 0xD0, 0x12, 0x1E, 0x02, 0x75, 0x01, 0xC0, 0x52, 0x90, 0x20, 0xB7, 0x8C, 0x55, 0x80, 0xB7, 0x29, 0x4E, 0x13, 0xD1, 0x4E, 0x09, 0x00, 0xC0, 0x40, 0x93, 0x88, 0xD2,
+ 0x79, 0xAA, 0x00, 0x75, 0x82, 0x0C, 0x01, 0xD0, 0x92, 0x0C, 0x06, 0x75, 0x4A, 0x9E, 0x82, 0x08, 0x01, 0xD0, 0x92, 0x08, 0x00, 0xE0, 0x22, 0x31, 0x00, 0xC0, 0xA2, 0x90, 0x3A, 0x85,
+ 0x00, 0xC0, 0x00, 0x91, 0x80, 0xB7, 0x8C, 0x55, 0xC8, 0xD2, 0x95, 0xA8, 0x73, 0xD0, 0x16, 0x09, 0x52, 0xD0, 0xD9, 0x6D, 0xD1, 0xF3, 0x80, 0x8C, 0x4F, 0x9D, 0xA9, 0x9E, 0x96, 0x05,
+ 0x14, 0xC0, 0x75, 0x9A, 0x40, 0xB7, 0x8C, 0x55, 0x91, 0xD0, 0x22, 0x0A, 0x08, 0xD2, 0x81, 0xA9, 0x52, 0xD0, 0xD8, 0x09, 0x84, 0x09, 0x14, 0xC0, 0x6A, 0x9A, 0x20, 0xB7, 0x8C, 0x55,
+ 0x91, 0xD0, 0x10, 0x0A, 0x08, 0xD2, 0x81, 0xA9, 0xB2, 0xD0, 0xD0, 0x09, 0xBC, 0x09, 0x14, 0xC0, 0x5F, 0x9A, 0x08, 0xD2, 0x69, 0xAA, 0xAF, 0x9E, 0x00, 0x75, 0x8E, 0x0E, 0x00, 0xC0,
+ 0xE2, 0x90, 0x88, 0xD2, 0xFD, 0xA8, 0x40, 0x74, 0x00, 0xC0, 0x44, 0x91, 0x20, 0xB7, 0x94, 0x55, 0x80, 0xB7, 0x49, 0x4F, 0xD3, 0xD0, 0x4E, 0x09, 0x01, 0xC0, 0x60, 0x91, 0x88, 0xD2,
+ 0xFA, 0xA8, 0x11, 0xD0, 0x12, 0x1E, 0x0E, 0xC0, 0x7C, 0x2A, 0x02, 0x75, 0x00, 0xC0, 0xB2, 0x90, 0x44, 0x74, 0x00, 0xC0, 0x22, 0x92, 0x46, 0x74, 0x00, 0xC0, 0xC4, 0x92, 0x40, 0xB7,
+ 0x8C, 0x55, 0x88, 0xD0, 0x4D, 0xAA, 0x00, 0x75, 0x00, 0xC0, 0xE4, 0x91, 0xF1, 0xD3, 0x1E, 0x2E, 0x02, 0x75, 0x00, 0xC0, 0x44, 0x91, 0x60, 0xB7, 0x9C, 0x55, 0xD8, 0xD0, 0x7D, 0xAA,
+ 0xF3, 0xD0, 0x46, 0x09, 0x00, 0xC0, 0x00, 0x91, 0x20, 0xB7, 0x8C, 0x55, 0x80, 0xB7, 0xA9, 0x4F, 0x33, 0xD1, 0x46, 0x09, 0x52, 0xD0, 0xD9, 0x6D, 0x4F, 0x9D, 0xF6, 0x05, 0x14, 0xC0,
+ 0x1C, 0x9A, 0x08, 0xD2, 0x69, 0xAA, 0x02, 0x85, 0x00, 0x75, 0x84, 0x0E, 0x01, 0xC0, 0xA2, 0x93, 0x88, 0xD2, 0xFE, 0xA8, 0x40, 0x76, 0x01, 0xC0, 0x02, 0x93, 0x40, 0xB7, 0x8C, 0x55,
+ 0x08, 0xD0, 0xD9, 0xA8, 0x48, 0x74, 0x00, 0xC0, 0x84, 0x90, 0x08, 0xD0, 0xDD, 0xA8, 0x88, 0xD2, 0x79, 0xAA, 0x04, 0x1A, 0x0E, 0xC0, 0x7C, 0x2A, 0x02, 0x75, 0x01, 0xC0, 0xF2, 0x90,
+ 0x46, 0x76, 0x00, 0xC0, 0x24, 0x92, 0x46, 0x74, 0x20, 0xB7, 0x8C, 0x55, 0x91, 0xD0, 0x16, 0x0A, 0x08, 0xD2, 0x01, 0xAA, 0xA1, 0xD0, 0xCE, 0x09, 0x00, 0xC0, 0x02, 0x93, 0xF1, 0xD0,
+ 0xCE, 0x09, 0x00, 0xC0, 0x80, 0x92, 0x44, 0x76, 0x00, 0xC0, 0x44, 0x92, 0x40, 0xB7, 0x8C, 0x55, 0x91, 0xD0, 0x24, 0x0A, 0x08, 0xD2, 0x81, 0xA8, 0x40, 0x74, 0x91, 0xD0, 0x26, 0x0A,
+ 0x08, 0xD2, 0x01, 0xAA, 0x42, 0xD0, 0xC6, 0x09, 0x41, 0xD0, 0xCE, 0x09, 0x39, 0x9D, 0x52, 0xD0, 0xD9, 0x6D, 0x4F, 0x9D, 0xF6, 0x05, 0x14, 0xC0, 0xD4, 0x99, 0x02, 0x85, 0x60, 0xB7,
+ 0x9C, 0x55, 0x5F, 0xB5, 0x7A, 0x42, 0x5F, 0xB5, 0xFA, 0x42, 0x5F, 0xB5, 0x7A, 0x43, 0x58, 0xD0, 0x65, 0xAA, 0xF1, 0xD3, 0xCE, 0x28, 0x48, 0x74, 0x84, 0x0E, 0x00, 0xC0, 0x72, 0x91,
+ 0x2E, 0x85, 0x5F, 0xB5, 0x7A, 0x43, 0x32, 0x85, 0x5F, 0xB5, 0xFA, 0x42, 0x36, 0x85, 0x01, 0xC0, 0x20, 0x90, 0x14, 0x1A, 0x0E, 0xC0, 0x7C, 0x2A, 0x0E, 0x75, 0x00, 0xC0, 0xD2, 0x91,
+ 0x02, 0xC0, 0x2A, 0x85, 0x5F, 0xB5, 0x7A, 0x43, 0x02, 0xC0, 0x2E, 0x85, 0x5F, 0xB5, 0xFA, 0x42, 0x02, 0xC0, 0x32, 0x85, 0x00, 0xC0, 0xE0, 0x91, 0x58, 0x74, 0x00, 0xC0, 0xD4, 0x91,
+ 0x02, 0xC0, 0x1E, 0x85, 0x5F, 0xB5, 0x7A, 0x43, 0x02, 0xC0, 0x22, 0x85, 0x5F, 0xB5, 0xFA, 0x42, 0x02, 0xC0, 0x26, 0x85, 0x5F, 0xB5, 0x7A, 0x42, 0x6D, 0x9E, 0x11, 0xD0, 0x56, 0x0A,
+ 0x48, 0x71, 0xA6, 0x9E, 0x00, 0xC0, 0x68, 0x92, 0x53, 0xD0, 0x59, 0x69, 0xF1, 0xF3, 0x00, 0x8D, 0x20, 0xF3, 0xAF, 0x80, 0x29, 0xDA, 0xC5, 0xA9, 0x8B, 0x05, 0x14, 0xC0, 0x87, 0x99,
+ 0x71, 0x9E, 0x84, 0x0A, 0x42, 0x71, 0xD0, 0x0E, 0xFF, 0xFF, 0xE6, 0x92, 0x88, 0xD2, 0x79, 0xAA, 0x00, 0x75, 0x82, 0x0C, 0x01, 0xD0, 0x92, 0x0C, 0x06, 0x75, 0x4A, 0x9E, 0x82, 0x08,
+ 0x01, 0xD0, 0x92, 0x08, 0x00, 0xE0, 0x22, 0x31, 0x00, 0xC0, 0x02, 0x91, 0x80, 0xB7, 0x8C, 0x55, 0x08, 0xD2, 0x17, 0xA9, 0x00, 0xC0, 0xC0, 0x90, 0x60, 0xB7, 0x9C, 0x55, 0x18, 0xD0,
+ 0x73, 0xA9, 0x20, 0xB7, 0x8C, 0x55, 0x80, 0xB7, 0x29, 0x44, 0x10, 0x75, 0x60, 0xB7, 0x21, 0x42, 0x00, 0xC0, 0x12, 0x91, 0x40, 0xB7, 0x84, 0x63, 0x80, 0xB7, 0x0C, 0x64, 0x00, 0xC0,
+ 0xC0, 0x90, 0x40, 0xB7, 0x84, 0x64, 0x80, 0xB7, 0x0C, 0x65, 0x64, 0x9D, 0x2D, 0x9E, 0x40, 0xC0, 0xA5, 0xAA, 0x30, 0xC0, 0x4F, 0xA9, 0x52, 0xD0, 0xE9, 0x6D, 0x4F, 0x9D, 0x12, 0xD0,
+ 0xE2, 0x0E, 0xF6, 0x05, 0x14, 0xC0, 0x47, 0x99, 0x52, 0xD0, 0xD9, 0x6D, 0x8B, 0x01, 0xF6, 0x05, 0x14, 0xC0, 0x41, 0x99, 0x40, 0xB7, 0x8C, 0x55, 0x91, 0xD0, 0x28, 0x0A, 0x08, 0xD2,
+ 0x81, 0xA8, 0x40, 0x74, 0x84, 0x0E, 0x00, 0xC0, 0x04, 0x91, 0x02, 0xC0, 0x1A, 0x85, 0x02, 0xC0, 0x8E, 0x0A, 0x00, 0xC0, 0x80, 0x90, 0x22, 0x85, 0x96, 0x0A, 0x52, 0xD0, 0xD9, 0x6D,
+ 0x4F, 0x9D, 0x84, 0x0E, 0xF6, 0x05, 0x14, 0xC0, 0x28, 0x99, 0x52, 0xD0, 0xD9, 0x6D, 0x7F, 0x9E, 0x7E, 0x9E, 0x82, 0x0E, 0x02, 0x0F, 0x8B, 0x01, 0xF6, 0x05, 0x14, 0xC0, 0x1E, 0x99,
+ 0x11, 0xF0, 0xD6, 0x2C, 0x00, 0xC0, 0x42, 0x91, 0x13, 0xD0, 0x58, 0x0D, 0x10, 0xF2, 0x23, 0x88, 0x00, 0xC2, 0x40, 0x5A, 0x24, 0xD2, 0xC1, 0x5A, 0x33, 0xD0, 0x70, 0x09, 0x6E, 0x9D,
+ 0x82, 0x0D, 0x30, 0xE0, 0xCE, 0xA2, 0xD4, 0xFE, 0xCE, 0x98, 0x08, 0xF2, 0xC1, 0xA9, 0x40, 0xB7, 0x04, 0x53, 0x13, 0xD0, 0x78, 0x09, 0x71, 0x9E, 0x57, 0x9D, 0x18, 0xE2, 0xA6, 0xA9,
+ 0x84, 0x59, 0x10, 0xE2, 0xA7, 0x83, 0x80, 0xC2, 0x08, 0x5D, 0x00, 0xC3, 0x00, 0x0D, 0xD4, 0xFE, 0xA8, 0x99, 0x6A, 0x9E, 0x08, 0xDA, 0xA1, 0xA8, 0x50, 0x0B, 0x71, 0xD3, 0x78, 0x0A,
+ 0x88, 0x71, 0xA2, 0x00, 0xC0, 0x58, 0xA4, 0xD0, 0xC1, 0x5A, 0x50, 0x0F, 0xFE, 0xFF, 0xB4, 0x91, 0x82, 0x0D, 0xD4, 0xFE, 0xAA, 0x98, 0x3F, 0xB7, 0x74, 0x63, 0x9F, 0xB7, 0xEC, 0x65,
+ 0x40, 0xB7, 0x94, 0x47, 0x49, 0x9E, 0x00, 0xC2, 0x2C, 0x5A, 0x98, 0x31, 0xB1, 0xD3, 0xA8, 0x0C, 0x60, 0xB5, 0x2D, 0x40, 0x3F, 0xB7, 0x74, 0x68, 0x9F, 0xB7, 0xEC, 0x6A, 0xD1, 0xD3,
+ 0xA0, 0x0C, 0x4A, 0x9E, 0x00, 0xC2, 0x2C, 0x5A, 0xA8, 0x31, 0x60, 0xB5, 0x2D, 0x40, 0x3F, 0xB7, 0x74, 0x6D, 0x9F, 0xB7, 0xEC, 0x6F, 0x49, 0x9E, 0x00, 0xC2, 0x2C, 0x5A, 0x98, 0x31,
+ 0xD1, 0xD3, 0xA8, 0x0C, 0x51, 0xD2, 0x78, 0x0E, 0x12, 0xD2, 0xF0, 0x0C, 0x60, 0xB5, 0x2D, 0x40, 0x08, 0xF2, 0x81, 0xA8, 0x40, 0xB7, 0x4D, 0x40, 0xF1, 0xD3, 0x20, 0x0E, 0xAC, 0x58,
+ 0xA2, 0x31, 0xF1, 0xD2, 0xF8, 0x0C, 0xB2, 0xD2, 0xF0, 0x0C, 0x08, 0xF2, 0x81, 0xA1, 0x80, 0xB7, 0x2D, 0x40, 0x40, 0xB7, 0x4D, 0x40, 0xF1, 0xD3, 0xA8, 0x0C, 0x00, 0xC2, 0x2C, 0x5A,
+ 0xA8, 0x31, 0x91, 0xD3, 0x78, 0x0E, 0x60, 0xB5, 0x2D, 0x40, 0x08, 0xF2, 0x82, 0xA8, 0x51, 0xD3, 0xF0, 0x0C, 0x80, 0xB7, 0x2D, 0x40, 0xAC, 0x5C, 0x4A, 0x9E, 0x10, 0xC0, 0x00, 0x0D,
+ 0xC4, 0x31, 0x10, 0xF0, 0xC1, 0xA1, 0x9F, 0xB7, 0x6C, 0x66, 0x5F, 0xB7, 0xEC, 0x63, 0x3F, 0xB7, 0x74, 0x6B, 0x3F, 0xB7, 0xEC, 0x68, 0x00, 0xC2, 0x0C, 0x5A, 0xA8, 0x31, 0xA4, 0x5C,
+ 0x4C, 0x9E, 0x98, 0x58, 0xB2, 0x31, 0xB8, 0x31, 0x11, 0xD2, 0x78, 0x0E, 0x3F, 0xB7, 0x74, 0x70, 0x08, 0xF2, 0x01, 0xA9, 0x71, 0xD2, 0x70, 0x0E, 0x3F, 0xB7, 0xEC, 0x6D, 0xBC, 0x5C,
+ 0x1E, 0x9D, 0x08, 0xF2, 0x82, 0xA8, 0xB0, 0x58, 0xB2, 0x31, 0xB1, 0xD2, 0xF8, 0x0C, 0x11, 0xD3, 0x70, 0x0E, 0x01, 0xC3, 0xB6, 0x31, 0x48, 0x59, 0xB4, 0x31, 0x40, 0xB7, 0x2D, 0x40,
+ 0x08, 0xF2, 0x81, 0xA8, 0xD4, 0x5C, 0x4C, 0x9E, 0xB8, 0x31, 0xB1, 0xD3, 0x70, 0x0E, 0x02, 0xC0, 0x30, 0x0D, 0x52, 0xD3, 0xF8, 0x0C, 0x60, 0x59, 0xB4, 0x31, 0xEC, 0x58, 0xB2, 0x31,
+ 0x31, 0xF0, 0xC5, 0xA1, 0x08, 0xF2, 0x81, 0xA8, 0x80, 0xB7, 0x4D, 0x40, 0x8C, 0x58, 0xC2, 0x31, 0x10, 0xF0, 0xC1, 0xA1, 0x9F, 0xB7, 0xEC, 0x66, 0x5F, 0xB7, 0x6C, 0x64, 0x3F, 0xB7,
+ 0x6C, 0x69, 0x3F, 0xB7, 0xF4, 0x6B, 0x00, 0xC2, 0x08, 0x5A, 0xA8, 0x31, 0x9F, 0xB7, 0x6C, 0x6E, 0x90, 0x58, 0xB2, 0x31, 0x98, 0x5C, 0x1E, 0x9D, 0x3F, 0xB7, 0xEC, 0x70, 0x01, 0xC3,
+ 0xB6, 0x31, 0x00, 0xC2, 0x20, 0x5A, 0xB8, 0x31, 0xA8, 0x58, 0xB2, 0x31, 0x31, 0xD2, 0x70, 0x0E, 0x71, 0xD2, 0xF8, 0x0C, 0x08, 0xF2, 0x82, 0xA8, 0xD1, 0xD2, 0x70, 0x0E, 0x40, 0xB7,
+ 0x2D, 0x40, 0x08, 0xF2, 0x81, 0xA8, 0xB0, 0x5C, 0x4C, 0x9E, 0xB8, 0x31, 0x11, 0xD3, 0x78, 0x0E, 0x30, 0x0D, 0x38, 0x59, 0xB4, 0x31, 0xC0, 0x58, 0xB2, 0x31, 0x08, 0xF2, 0x82, 0xA8,
+ 0x71, 0xD3, 0xF0, 0x0C, 0xB1, 0xD3, 0x78, 0x0E, 0x40, 0xB7, 0x2D, 0x40, 0xC8, 0x5C, 0x1E, 0x9D, 0x08, 0xF2, 0x81, 0xA8, 0x50, 0x59, 0x01, 0xC3, 0xB6, 0x31, 0xB4, 0x31, 0xD8, 0x58,
+ 0xB2, 0x31, 0x10, 0xF0, 0xC1, 0xA1, 0x9F, 0xB7, 0xEE, 0x6E, 0xBF, 0xB7, 0x6E, 0x6F, 0xDF, 0xB7, 0xEE, 0x6F, 0xFF, 0xB7, 0x6E, 0x70, 0x10, 0xC0, 0x60, 0x8C, 0x22, 0x9C, 0x40, 0xB7,
+ 0x04, 0x63, 0xC0, 0x59, 0xA6, 0xD1, 0x39, 0x59, 0x2D, 0x9E, 0x30, 0xC8, 0xCD, 0xA8, 0x30, 0xE0, 0xCE, 0xA8, 0x10, 0xF0, 0xE1, 0xA0, 0x4C, 0x9E, 0xA2, 0xD0, 0xE5, 0x5C, 0xF1, 0x5C,
+ 0x8C, 0x2C, 0x10, 0xF0, 0xF2, 0xA0, 0x1F, 0xC0, 0x7C, 0x2A, 0x00, 0xC2, 0x41, 0x5A, 0x10, 0xF0, 0x65, 0xA2, 0x9C, 0x28, 0x10, 0xF0, 0xED, 0xA0, 0x22, 0x9C, 0x98, 0x9E, 0x02, 0x08,
+ 0x02, 0x09, 0x00, 0xC0, 0x40, 0x91, 0x98, 0x9E, 0x02, 0x08, 0x10, 0xD0, 0x30, 0x45, 0x14, 0xCC, 0xC0, 0x72, 0x14, 0xC0, 0x00, 0x72, 0xC0, 0x72, 0x80, 0xC1, 0x09, 0x5D, 0x09, 0xE0,
+ 0x04, 0x72, 0x12, 0xF0, 0x04, 0x5D, 0x00, 0xC0, 0x54, 0x92, 0xC4, 0x72, 0x04, 0xD0, 0x04, 0x08, 0x24, 0xD0, 0xB4, 0x15, 0xC0, 0x72, 0x04, 0xD0, 0x02, 0x08, 0x24, 0xD0, 0xB0, 0x15,
+ 0x00, 0xE0, 0x24, 0x31, 0x81, 0x11, 0x30, 0xB3, 0x2A, 0x44, 0x22, 0x9C, 0xC0, 0x72, 0x86, 0x08, 0xFF, 0xFF, 0xA6, 0x93, 0x02, 0xC4, 0xC0, 0x72, 0x65, 0xD0, 0x9E, 0x2C, 0x65, 0xD0,
+ 0x9E, 0x3C, 0x02, 0xC8, 0x00, 0x72, 0x65, 0xD0, 0x2E, 0x2D, 0x65, 0xD0, 0x2E, 0x3D, 0x00, 0xE0, 0x14, 0x15, 0x53, 0x9E, 0x1A, 0xD0, 0x08, 0x54, 0x1A, 0xD0, 0xAC, 0x50, 0xC0, 0x72,
+ 0x14, 0xD0, 0x02, 0x00, 0x24, 0xD0, 0xB0, 0x15, 0x80, 0xE0, 0x85, 0x58, 0x05, 0x5C, 0xFF, 0xFF, 0x04, 0x93, 0x00, 0xE0, 0x24, 0x31, 0x81, 0x11, 0x30, 0xB3, 0x2A, 0x44, 0x22, 0x9C,
+ 0x64, 0x9E, 0x09, 0xC8, 0x42, 0x0E, 0x95, 0xB0, 0x26, 0x0F, 0xA4, 0x9E, 0x58, 0x9E, 0x22, 0x9C, 0x40, 0xB7, 0x96, 0x59, 0x01, 0xC0, 0x88, 0x9C, 0xC0, 0x76, 0x01, 0xC0, 0x00, 0x28,
+ 0x20, 0x58, 0xB0, 0x41, 0x32, 0xB3, 0x44, 0x48, 0x11, 0xF0, 0x20, 0x0C, 0x40, 0xB3, 0xA2, 0x48, 0x10, 0xF8, 0x42, 0xA9, 0x86, 0x70, 0xFF, 0xFF, 0x24, 0x93, 0x84, 0x7A, 0x22, 0x9C,
+ 0x21, 0xC0, 0xC0, 0x7E, 0x00, 0xB7, 0x0E, 0x40, 0x00, 0xB3, 0x24, 0x4A, 0x22, 0x9C, 0x01, 0xC0, 0xC2, 0x7C, 0x00, 0xC0, 0xE2, 0x90, 0x71, 0xC0, 0x8C, 0x9C, 0x70, 0xD0, 0x80, 0x45,
+ 0xB0, 0x31, 0x8D, 0xA4, 0x39, 0xF8, 0x85, 0xA1, 0xEC, 0x9F, 0xF8, 0xF9, 0x1D, 0xA8, 0x60, 0x8C, 0x22, 0x9C, 0x02, 0xC0, 0x88, 0x9C, 0x01, 0xC0, 0x80, 0x9C, 0x01, 0xC0, 0x04, 0x2C,
+ 0x20, 0x5C, 0x70, 0xC0, 0x00, 0x28, 0x48, 0x58, 0x22, 0x9C, 0x05, 0xA6, 0x09, 0xC8, 0x42, 0x0E, 0x95, 0xB0, 0x86, 0x1F, 0x81, 0x02, 0x40, 0xB7, 0x8E, 0x59, 0x20, 0xB5, 0x8C, 0x53,
+ 0x80, 0x74, 0x00, 0xC0, 0xE2, 0x93, 0xB1, 0xD0, 0xD8, 0x09, 0xAD, 0x9E, 0x82, 0x0D, 0x09, 0xC8, 0x42, 0x0E, 0x95, 0xB0, 0xC6, 0x19, 0x09, 0xC8, 0x42, 0x0E, 0x95, 0xB0, 0xC6, 0x26,
+ 0x11, 0xC0, 0x80, 0x0A, 0xB1, 0xD0, 0xD8, 0x09, 0x21, 0xC9, 0xC5, 0x9C, 0x82, 0x0D, 0x09, 0xC8, 0x42, 0x0E, 0x95, 0xB0, 0xC6, 0x19, 0x09, 0xC8, 0x42, 0x0E, 0x95, 0xB0, 0xC6, 0x26,
+ 0xA0, 0xB5, 0x0E, 0x40, 0xF8, 0xF9, 0x9D, 0xAA, 0xF8, 0xF9, 0x1D, 0xAA, 0x22, 0x9C, 0x00, 0x78, 0x21, 0xD0, 0xDA, 0x46, 0x40, 0xB3, 0xA2, 0x48, 0x60, 0xB7, 0xBC, 0x42, 0x49, 0xC0,
+ 0x82, 0x0D, 0x08, 0xC0, 0x80, 0x0D, 0x21, 0xC0, 0x40, 0x7F, 0xC1, 0xCF, 0x80, 0x2E, 0x80, 0xC2, 0xB9, 0x5E, 0x22, 0xD0, 0xD0, 0x0E, 0xBA, 0x05, 0x82, 0x09, 0x39, 0xF8, 0xE5, 0xA1,
+ 0x83, 0x9E, 0x32, 0xF0, 0xB0, 0x8C, 0x39, 0xF8, 0xE5, 0xA1, 0x60, 0xB9, 0x78, 0x40, 0x09, 0xC8, 0x42, 0x0D, 0xBA, 0xCA, 0x30, 0x0D, 0x52, 0x9E, 0x39, 0xF8, 0x65, 0xA1, 0xFF, 0xFF,
+ 0xC1, 0x93, 0x09, 0xC8, 0x42, 0x0D, 0xD8, 0xCA, 0x40, 0x0D, 0x98, 0xF1, 0x66, 0xA1, 0x22, 0x9C, 0x00, 0xB7, 0x35, 0x40, 0x60, 0xB7, 0xBF, 0x43, 0x02, 0xC0, 0x00, 0x72, 0x2E, 0x0D,
+ 0x30, 0xB3, 0xA2, 0x50, 0x06, 0x0D, 0x02, 0x87, 0x74, 0xC0, 0xCE, 0x9C, 0xF3, 0x9C, 0x00, 0xB7, 0x35, 0x40, 0x02, 0xC4, 0x00, 0x72, 0x44, 0x55, 0x04, 0x44, 0x00, 0xB5, 0x35, 0x40,
+ 0xF0, 0x9C, 0x74, 0xC0, 0xCE, 0x9C, 0x2A, 0x0D, 0x88, 0x5C, 0x84, 0x0C, 0x1B, 0x9C, 0x33, 0x9D, 0x13, 0xE0, 0x80, 0x84, 0x39, 0xF8, 0x05, 0xA2, 0x51, 0xC0, 0x84, 0x9C, 0x09, 0xC8,
+ 0x42, 0x0A, 0xEE, 0xCA, 0x50, 0x0A, 0x08, 0x70, 0x06, 0xC0, 0xC2, 0x92, 0x9C, 0x0D, 0x01, 0x81, 0x00, 0xE0, 0x07, 0x00, 0xFE, 0xCF, 0xE2, 0x2D, 0x07, 0x04, 0x32, 0xB3, 0x6A, 0x48,
+ 0x09, 0xC8, 0xC2, 0x0C, 0x18, 0xCB, 0xB0, 0x0C, 0x33, 0xE0, 0xA0, 0x85, 0x01, 0xC8, 0x80, 0x29, 0x01, 0xC0, 0x8A, 0x08, 0x96, 0x00, 0x18, 0xF8, 0xC1, 0xA0, 0x71, 0xF1, 0x20, 0x84,
+ 0xF8, 0xC9, 0x7D, 0xA4, 0x82, 0x08, 0x82, 0x0C, 0x39, 0xF8, 0xE5, 0xA0, 0x39, 0xF8, 0xE5, 0xA0, 0x08, 0xCA, 0x1F, 0xA4, 0x85, 0x80, 0x03, 0xC0, 0x00, 0x90, 0xEF, 0x9C, 0x95, 0xE0,
+ 0xC0, 0x84, 0x02, 0x9C, 0x10, 0xC0, 0x82, 0x9C, 0x1F, 0xB7, 0x4E, 0x79, 0xFF, 0x9C, 0x00, 0xB5, 0xEE, 0x40, 0x72, 0xE1, 0x00, 0x84, 0x01, 0xC0, 0x88, 0x9C, 0x40, 0xB9, 0x00, 0x40,
+ 0x10, 0xC8, 0x1F, 0xA4, 0xF0, 0x9C, 0x54, 0xE0, 0x00, 0x85, 0x81, 0x80, 0xE0, 0xC8, 0xDD, 0xA4, 0x01, 0xC0, 0x8E, 0x9C, 0x02, 0x0D, 0x02, 0xC0, 0x8B, 0x9C, 0x01, 0xC0, 0x87, 0x9C,
+ 0x20, 0xB9, 0x00, 0x40, 0x00, 0xC8, 0x45, 0xA5, 0x81, 0x01, 0x0D, 0xC0, 0x82, 0x29, 0x52, 0xC0, 0x87, 0x9C, 0x01, 0xC0, 0x84, 0x39, 0x60, 0xB5, 0x6F, 0x40, 0x06, 0xC0, 0x60, 0x84,
+ 0x71, 0xC0, 0x8A, 0x9C, 0x02, 0xC0, 0x8A, 0x9C, 0x81, 0x01, 0x05, 0xCA, 0x80, 0x29, 0x01, 0xCF, 0x00, 0x2D, 0x71, 0x5D, 0x17, 0xD0, 0x28, 0x29, 0xFE, 0xEF, 0x6C, 0x29, 0x01, 0xC0,
+ 0x84, 0x39, 0x20, 0xB7, 0x16, 0x40, 0x02, 0xC0, 0xE2, 0x90, 0x02, 0xC0, 0x80, 0x70, 0x84, 0x7C, 0x82, 0x9E, 0x60, 0xB7, 0xBD, 0x40, 0x86, 0x0D, 0x71, 0xC0, 0x8C, 0x9C, 0x2E, 0xD0,
+ 0x68, 0x55, 0x17, 0xD0, 0x88, 0x29, 0x02, 0xE0, 0x22, 0x76, 0xB0, 0x31, 0x40, 0x0D, 0x22, 0xD1, 0x08, 0x5C, 0x1B, 0xB4, 0x7A, 0x4A, 0x40, 0x08, 0x00, 0xE0, 0x26, 0xA8, 0xAF, 0x9D,
+ 0xF4, 0xFF, 0xA4, 0x9B, 0xEF, 0x9C, 0x71, 0xC0, 0x8E, 0x9C, 0x70, 0xD0, 0xA0, 0x31, 0x00, 0xB7, 0x6F, 0x40, 0x03, 0x80, 0x71, 0xC8, 0x8B, 0x9C, 0x06, 0x9C, 0xFC, 0xDF, 0xFE, 0x7C,
+ 0xFE, 0xFF, 0x44, 0x90, 0x01, 0xC4, 0x00, 0x7C, 0xFD, 0xFF, 0xC4, 0x93, 0x24, 0xF0, 0x84, 0x58, 0x32, 0xE1, 0x10, 0x84, 0x53, 0xE0, 0x10, 0x84, 0x10, 0xC8, 0x07, 0xAD, 0xE8, 0x9D,
+ 0x24, 0xF0, 0x84, 0x58, 0x05, 0xC0, 0x02, 0x28, 0xF8, 0xC8, 0x9D, 0xAC, 0x30, 0xC0, 0x8B, 0x9C, 0x30, 0xC0, 0x8D, 0x9C, 0x10, 0xC8, 0x1F, 0xAC, 0xFB, 0xFF, 0xC0, 0x93, 0x71, 0xC0,
+ 0x8E, 0x9C, 0x03, 0xE0, 0x70, 0x28, 0x17, 0xD0, 0xA8, 0x29, 0xFE, 0xCF, 0x6C, 0x29, 0xB4, 0x31, 0x12, 0x09, 0x24, 0xD0, 0x49, 0x59, 0x04, 0xC0, 0x22, 0x08, 0xFE, 0xFF, 0x44, 0x90,
+ 0x80, 0xC1, 0x24, 0x5D, 0xF9, 0xCF, 0x80, 0x2D, 0x29, 0x5D, 0xB4, 0x05, 0x31, 0xD8, 0xE6, 0xA8, 0x10, 0xD8, 0x62, 0xA9, 0x00, 0xC8, 0x40, 0x7E, 0x12, 0xB3, 0x42, 0x48, 0x40, 0x5D,
+ 0x94, 0x04, 0x80, 0xC0, 0x59, 0x5D, 0x0C, 0x2D, 0x22, 0xD1, 0x08, 0x5C, 0xFD, 0xFF, 0x60, 0x91, 0x39, 0xF8, 0x25, 0xAA, 0x33, 0xE0, 0x10, 0x8C, 0x45, 0x9D, 0x22, 0x9C, 0x00, 0x00,
+ 0x09, 0xC8, 0xC2, 0x87, 0x60, 0xB0, 0x20, 0x0C, 0x09, 0xC8, 0xC2, 0x87, 0x60, 0xB0, 0x60, 0x0A, 0xF4, 0xFF, 0xA0, 0x92, 0x09, 0xC8, 0xC2, 0x87, 0x60, 0xB0, 0xC0, 0x09,
+};
+
+
+static const unsigned char aui81163_FSData[] = {
+ 0xC8, 0xB1, 0x90, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD0, 0x2F, 0x80, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x25, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x04, 0x00, 0x04, 0x80, 0x04, 0x80, 0x04, 0x80, 0x04, 0x00, 0x05, 0x80, 0x04, 0x00, 0x06, 0x80, 0x04, 0x00, 0x07, 0x80, 0x04,
+ 0x00, 0x08, 0x80, 0x04, 0x00, 0x10, 0x80, 0x04, 0x09, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x68, 0x88, 0x82, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x17, 0x01, 0x07, 0x00, 0xD7, 0x01, 0x0F, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xEF, 0xD8, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC8, 0xB1, 0x90, 0x80, 0xB0, 0x00, 0x90, 0x80, 0xD0, 0x02, 0x90, 0x80, 0x8C, 0x65, 0x88, 0x82, 0x3C, 0x65, 0x88, 0x82, 0xCC, 0x5A, 0x88, 0x82,
+ 0x74, 0x59, 0x88, 0x82, 0x78, 0x59, 0x88, 0x82, 0xD4, 0x5A, 0x88, 0x82, 0x54, 0x60, 0x88, 0x82, 0x4C, 0x62, 0x88, 0x82, 0x8C, 0x62, 0x88, 0x82, 0x9C, 0x62, 0x88, 0x82, 0xAC, 0x62,
+ 0x88, 0x82, 0xD8, 0x62, 0x88, 0x82, 0x94, 0x63, 0x88, 0x82, 0xB8, 0x63, 0x88, 0x82, 0xD4, 0x63, 0x88, 0x82, 0xDC, 0x63, 0x88, 0x82, 0xF8, 0x63, 0x88, 0x82, 0x20, 0x65, 0x88, 0x82,
+ 0x64, 0x65, 0x88, 0x82, 0xF0, 0x65, 0x88, 0x82, 0xF4, 0x65, 0x88, 0x82, 0x20, 0x66, 0x88, 0x82, 0x4C, 0x66, 0x88, 0x82, 0x54, 0x66, 0x88, 0x82, 0x5C, 0x66, 0x88, 0x82, 0x80, 0x66,
+ 0x88, 0x82, 0xA4, 0x66, 0x88, 0x82, 0xA8, 0x66, 0x88, 0x82, 0xCC, 0x66, 0x88, 0x82, 0x18, 0x68, 0x88, 0x82, 0x1C, 0x68, 0x88, 0x82, 0x20, 0x68, 0x88, 0x82, 0x24, 0x68, 0x88, 0x82,
+ 0xA0, 0x5A, 0x88, 0x82, 0xA4, 0x5A, 0x88, 0x82, 0x68, 0x60, 0x88, 0x82, 0x78, 0x60, 0x88, 0x82, 0x7C, 0x60, 0x88, 0x82, 0x7C, 0x61, 0x88, 0x82, 0x98, 0x61, 0x88, 0x82, 0xB4, 0x61,
+ 0x88, 0x82, 0xD0, 0x61, 0x88, 0x82, 0xEC, 0x61, 0x88, 0x82, 0x08, 0x62, 0x88, 0x82, 0x1A, 0x62, 0x88, 0x82, 0x20, 0x62, 0x88, 0x82, 0x3C, 0x62, 0x88, 0x82, 0xFC, 0x63, 0x88, 0x82,
+ 0x04, 0x64, 0x88, 0x82, 0x0C, 0x64, 0x88, 0x82, 0x98, 0x64, 0x88, 0x82, 0xB4, 0x64, 0x88, 0x82, 0xD8, 0x64, 0x88, 0x82, 0xE8, 0x64, 0x88, 0x82, 0xEC, 0x64, 0x88, 0x82, 0xF0, 0x64,
+ 0x88, 0x82, 0x08, 0x65, 0x88, 0x82, 0x98, 0x65, 0x88, 0x82, 0xD4, 0x65, 0x88, 0x82, 0xAC, 0x66, 0x88, 0x82, 0x48, 0x72, 0x88, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xC4, 0x5A, 0x88, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC8, 0x5A, 0x88, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x01, 0x00, 0xCD, 0xCD,
+ 0xCD, 0xCD, 0x07, 0x00, 0x00, 0x00, 0xEF, 0xBE, 0xAD, 0xDE, 0xEF, 0xBE, 0xAD, 0xDE, 0xEF, 0xBE, 0xAD, 0xDE, 0xEF, 0xBE, 0xAD, 0xDE, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00,
+ 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
+ 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x02, 0x03, 0x00, 0x01, 0x02, 0x03, 0x00, 0x01,
+ 0x02, 0x03, 0x00, 0x01, 0x02, 0x03, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
+ 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0x03, 0x0D, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x0E, 0x00, 0x0B, 0x00, 0x0A, 0x00, 0x0A, 0x00, 0x0F, 0x00,
+ 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, 0x0D, 0x00, 0x02, 0x00, 0x07, 0x00, 0x01, 0x00, 0x04, 0x00, 0x03, 0x00, 0x06, 0x00, 0x09, 0x00, 0x0C, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00,
+ 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00,
+ 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00,
+ 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
+ 0x70, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, 0x07, 0x00,
+ 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00,
+ 0x07, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x7A, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x7B, 0x00,
+ 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x7D, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
+ 0x7F, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x06, 0x00,
+ 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
+ 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x03, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
+ 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x02, 0x03, 0x00, 0x00, 0x00, 0x01, 0x01, 0x02, 0x02, 0x03, 0x03,
+ 0x00, 0x01, 0x00, 0x01, 0x02, 0x03, 0x02, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00,
+ 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
+ 0x3E, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0xFE, 0x01, 0x00, 0x00, 0x0A, 0x00,
+ 0x00, 0x00, 0xFE, 0x03, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0xFE, 0x07, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0xFE, 0x0F, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0xFE, 0x1F, 0x00, 0x00,
+ 0x0E, 0x00, 0x00, 0x00, 0xFE, 0x3F, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0xFE, 0x7F, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x01, 0x00,
+ 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0xFF, 0x00,
+ 0x00, 0x00, 0x00, 0x01, 0x80, 0x00, 0x55, 0x00, 0x40, 0x00, 0x33, 0x00, 0x2B, 0x00, 0x25, 0x00, 0x20, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x01, 0x01, 0x02, 0x03, 0x03, 0x04,
+ 0x04, 0x05, 0x05, 0x05, 0x05, 0x06, 0x06, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x08, 0x08, 0x08, 0x08, 0xFF, 0xFF, 0x00, 0x01, 0x01, 0x02, 0x01, 0x03, 0x01, 0x02, 0x03, 0x04, 0x01,
+ 0x05, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x01, 0x03, 0x05, 0x07, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
+ 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00,
+ 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
+ 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x02, 0x03, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00,
+ 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00,
+ 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x03, 0x04, 0x00, 0x00, 0x00, 0x00, 0x03, 0x02, 0x01, 0x04, 0x00, 0x00, 0x00,
+ 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
+ 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x03, 0x00, 0x03, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06,
+ 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1B, 0x1D, 0x1F, 0x00, 0x00, 0x5B, 0x06, 0x5B, 0x00, 0x13, 0x04,
+ 0x6E, 0x00, 0x14, 0x06, 0x82, 0x00, 0x12, 0x06, 0x94, 0x00, 0x14, 0x06, 0xA8, 0x00, 0x4D, 0x06, 0xF5, 0x00, 0xF1, 0x09, 0xE6, 0x02, 0x0C, 0x09, 0xF2, 0x03, 0x6F, 0x06, 0x61, 0x04,
+ 0xF6, 0x08, 0x57, 0x05, 0xD6, 0x09, 0x2D, 0x07, 0x22, 0x08, 0x4F, 0x07, 0x08, 0x02, 0x57, 0x07, 0x16, 0x04, 0x6D, 0x07, 0x5D, 0x06, 0xCA, 0x07, 0x04, 0x02, 0xCE, 0x07, 0x03, 0x22,
+ 0xD1, 0x07, 0x05, 0x22, 0xD6, 0x07, 0x05, 0x22, 0xDB, 0x07, 0x2B, 0x08, 0x06, 0x08, 0x25, 0x08, 0x2B, 0x08, 0x23, 0x08, 0x4E, 0x08, 0x2B, 0x08, 0x79, 0x08, 0x0B, 0x02, 0x84, 0x08,
+ 0x0D, 0x04, 0x91, 0x08, 0x0B, 0x02, 0x9C, 0x08, 0x0B, 0x22, 0xA7, 0x08, 0x42, 0x04, 0xE9, 0x08, 0x4F, 0x08, 0x38, 0x09, 0x51, 0x08, 0x89, 0x09, 0x46, 0x08, 0xCF, 0x09, 0x4D, 0x08,
+ 0x1C, 0x0A, 0x44, 0x08, 0x60, 0x0A, 0x4E, 0x08, 0xAE, 0x0A, 0x4F, 0x08, 0xFD, 0x0A, 0x5C, 0x08, 0x59, 0x0B, 0xAE, 0x09, 0x07, 0x0D, 0x40, 0x09, 0x47, 0x0E, 0x50, 0x2A, 0x97, 0x0E,
+ 0x16, 0x06, 0xAD, 0x0E, 0x07, 0x02, 0xB4, 0x0E, 0x14, 0x04, 0xC8, 0x0E, 0x16, 0x06, 0xDE, 0x0E, 0x08, 0x04, 0xE6, 0x0E, 0x18, 0x06, 0xFE, 0x0E, 0x97, 0x08, 0x95, 0x0F, 0x9D, 0x08,
+ 0x32, 0x10, 0x22, 0x08, 0x54, 0x10, 0x20, 0x08, 0x74, 0x10, 0x22, 0x08, 0x96, 0x10, 0x22, 0x08, 0xB8, 0x10, 0x22, 0x08, 0xDA, 0x10, 0x22, 0x08, 0xFC, 0x10, 0x20, 0x08, 0x1C, 0x11,
+ 0x22, 0x08, 0x3E, 0x11, 0x59, 0x08, 0x97, 0x11, 0x55, 0x08, 0xEC, 0x11, 0x34, 0x08, 0x20, 0x12, 0x60, 0x08, 0x80, 0x12, 0x62, 0x08, 0xE2, 0x12, 0x62, 0x08, 0x44, 0x13, 0x65, 0x08,
+ 0xA9, 0x13, 0x5F, 0x08, 0x08, 0x14, 0x06, 0x28, 0x0E, 0x14, 0x06, 0x28, 0x14, 0x14, 0x20, 0x08, 0x34, 0x14, 0x20, 0x08, 0x54, 0x14, 0x10, 0x06, 0x64, 0x14, 0x10, 0x06, 0x74, 0x14,
+ 0x06, 0x28, 0x7A, 0x14, 0x20, 0x08, 0x9A, 0x14, 0x5F, 0x08, 0xF9, 0x14, 0x58, 0x08, 0x51, 0x15, 0x5A, 0x08, 0xAB, 0x15, 0x50, 0x06, 0xFB, 0x15, 0xB0, 0x08, 0xAB, 0x16, 0xB4, 0x08,
+ 0x5F, 0x17, 0xAD, 0x08, 0x0C, 0x18, 0xB7, 0x08, 0xC3, 0x18, 0xB3, 0x08, 0x76, 0x19, 0xB2, 0x08, 0x28, 0x1A, 0xAD, 0x06, 0xD5, 0x1A, 0xF4, 0x09, 0x0A, 0x07, 0x2E, 0x00, 0x09, 0x06,
+ 0x2D, 0x00, 0x25, 0x07, 0x2E, 0x00, 0x24, 0x06, 0x2D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x72, 0x88, 0x82, 0x2C, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x60, 0x72, 0x88, 0x82, 0x60, 0x72, 0x88, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA8, 0x73, 0x88, 0x82, 0x2C, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,
+ 0x90, 0x00, 0x00, 0x00, 0x10, 0x73, 0x88, 0x82, 0x10, 0x73, 0x88, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC8, 0x73, 0x88, 0x82, 0x2A, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x48, 0x72, 0x88, 0x82, 0x48, 0x72, 0x88, 0x82, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0xE8, 0x73, 0x88, 0x82, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x74, 0x88, 0x82, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x80, 0x00, 0x00, 0x90, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x74, 0x88, 0x82, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC8, 0xB1, 0x90, 0x80, 0xC8, 0xB1, 0x90, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x74, 0x88, 0x82, 0x12, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB8, 0xB1, 0x90, 0x80, 0xB8, 0xB1, 0x90, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x68, 0x74, 0x88, 0x82, 0x12, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA8, 0xB1, 0x90, 0x80, 0xA8, 0xB1, 0x90, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x1A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0xB0, 0x00, 0x00, 0x00, 0xB0,
+};
+
+/*
+static const FW_PATCHLIST a1163_FSPatch[] =
+{
+ { VLD_SETUP_WDT , 0x5968 },
+ { MC_SETUP_WDT , 0x596c },
+ { FW_ACTIVITY_WDT , 0x5970 },
+ { TIMER_DIV , 0x597c },
+};
+*/
+
+const FIRMWARE sFirmware1163_FS = {
+ "BUILD_DEVA_FW1.00.10.1163_1163_FS",
+ "13_10_2010",
+ 22768, /* TextSize bytes */
+ 7040, /* DataSize bytes */
+ 0x00005900, /* DataOffset bytes */
+ aui81163_FSText,
+ aui81163_FSData
+};
+
diff --git a/fw/thread3_bin.c b/fw/thread3_bin.c
new file mode 100644
index 0000000..921f44d
--- /dev/null
+++ b/fw/thread3_bin.c
@@ -0,0 +1,618 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+
+/******************************************************************************
+
+ Version : BUILD_DXVA_FW1.00.10.1042
+ Date : 30_09_2009
+ Code : 12588 bytes 12.293 Kb
+ Data : 4064 bytes 3.969 Kb
+ Total : 16672 bytes 16.281 Kb
+
+******************************************************************************/
+typedef struct {
+ const char* psVersion;
+ const char* psBuildDate;
+ unsigned int uiTextSize;
+ unsigned int uiDataSize;
+ unsigned int DataOffset;
+ const unsigned char* pui8Text;
+ const unsigned char* pui8Data;
+} FIRMWARE;
+
+static const unsigned char aui8Text[] = {
+ 0x01, 0xC0, 0x40, 0x90, 0xFE, 0x93, 0x09, 0xC8, 0x42, 0x0E, 0x00, 0xC0, 0x00, 0x0E, 0x29, 0xC8, 0x22, 0x84, 0x12, 0xC4, 0x20, 0x84, 0x29, 0xC8, 0x22, 0x86, 0x14, 0xC3, 0x00, 0x86,
+ 0x83, 0x9E, 0x43, 0x9E, 0x09, 0xC8, 0x42, 0x0D, 0x22, 0xC6, 0x40, 0x0D, 0x09, 0xC8, 0x42, 0x09, 0x24, 0xC6, 0x00, 0x09, 0x09, 0xC8, 0x42, 0x0E, 0x0A, 0xC0, 0x40, 0x0E, 0x09, 0xC8,
+ 0xC2, 0x87, 0x0E, 0xC0, 0xD0, 0x87, 0x18, 0x9C, 0x02, 0x08, 0x02, 0x0C, 0x82, 0x0D, 0x82, 0x09, 0x02, 0x0D, 0x02, 0x09, 0x82, 0x0C, 0x82, 0x08, 0xFE, 0xFF, 0x20, 0x93, 0x38, 0xC8,
+ 0x01, 0xA4, 0x09, 0xC8, 0xC2, 0x0D, 0x22, 0xC6, 0x80, 0x0D, 0x09, 0xC8, 0x42, 0x0E, 0x80, 0xB0, 0x46, 0x0B, 0x7F, 0xB7, 0x74, 0x7E, 0x82, 0x08, 0x8D, 0xA4, 0xF3, 0x9F, 0xFF, 0xFF,
+ 0xE0, 0x93, 0x13, 0x9D, 0x81, 0x80, 0x39, 0xF8, 0x05, 0xA2, 0x07, 0x07, 0x07, 0x03, 0x85, 0x06, 0x97, 0x9E, 0x83, 0x03, 0x0F, 0x06, 0xA0, 0x0F, 0x8D, 0x05, 0x8D, 0x01, 0x8F, 0x00,
+ 0x62, 0x9C, 0xFF, 0xFF, 0x40, 0x93, 0x0B, 0x06, 0xA0, 0x0E, 0x62, 0x9C, 0xFF, 0xFF, 0xA0, 0x93, 0x8D, 0x05, 0x8D, 0x01, 0x00, 0xB7, 0x0C, 0x54, 0x80, 0xB7, 0x94, 0x53, 0x01, 0x9C,
+ 0x05, 0xA6, 0x87, 0x06, 0x0B, 0x06, 0xA0, 0x0E, 0x62, 0x9C, 0xFF, 0xFF, 0xA0, 0x93, 0xF8, 0xF9, 0x9D, 0xAA, 0xF8, 0xF9, 0x1D, 0xAA, 0x22, 0x9C, 0x22, 0x9C, 0x0E, 0xC0, 0xFC, 0x29,
+ 0x40, 0xB7, 0x8C, 0x43, 0x71, 0xC0, 0xCE, 0x9C, 0x49, 0xC0, 0x82, 0x08, 0xFC, 0xC2, 0xC0, 0x08, 0x10, 0xD0, 0x61, 0xAA, 0x0C, 0x0A, 0x00, 0xE2, 0x09, 0x5A, 0x20, 0xB7, 0xB5, 0x43,
+ 0x01, 0xC0, 0x82, 0x90, 0x40, 0xB7, 0x04, 0x42, 0x8A, 0x9E, 0x82, 0x87, 0x10, 0xD0, 0xC2, 0x19, 0x31, 0xF0, 0xE5, 0xA8, 0xA6, 0xD0, 0x08, 0x5D, 0x2D, 0x9E, 0x30, 0xE0, 0xCD, 0xA0,
+ 0x50, 0xD8, 0x49, 0xAA, 0x84, 0x0C, 0x49, 0x9E, 0x00, 0xC2, 0x40, 0x5A, 0x00, 0xC2, 0x41, 0x5A, 0x48, 0x70, 0xE0, 0x9D, 0x10, 0xB3, 0x46, 0x48, 0x81, 0x04, 0x10, 0xF0, 0x59, 0xAA,
+ 0x49, 0x9E, 0x48, 0x70, 0xFF, 0xFF, 0x82, 0x93, 0xFF, 0xFF, 0xC1, 0x90, 0x49, 0xC0, 0x82, 0x08, 0xFC, 0xC2, 0xC0, 0x08, 0x20, 0xB5, 0xB5, 0x43, 0x71, 0xC0, 0xCE, 0x9C, 0xB0, 0x08,
+ 0x80, 0xB7, 0x2D, 0x40, 0xC0, 0x74, 0x04, 0x0A, 0x80, 0xB5, 0x2D, 0x40, 0x40, 0xB3, 0xA2, 0x48, 0x80, 0xB7, 0x8C, 0x46, 0x00, 0xC4, 0x02, 0x85, 0x08, 0xF2, 0x0B, 0xA1, 0x22, 0x9C,
+ 0x1D, 0xA6, 0x20, 0x84, 0xF4, 0xFF, 0xB0, 0x9B, 0x0A, 0x85, 0x37, 0xC1, 0x8B, 0x9C, 0x80, 0xB7, 0x8C, 0x46, 0x04, 0x8D, 0x48, 0xF2, 0x1F, 0xA1, 0x54, 0xC0, 0xFE, 0x99, 0x20, 0xB7,
+ 0x8C, 0x49, 0x01, 0xC0, 0x06, 0x0A, 0x10, 0xC0, 0x2C, 0x0A, 0x48, 0x70, 0x00, 0xC0, 0x44, 0x91, 0x58, 0xC0, 0x02, 0x85, 0x04, 0xC0, 0x5E, 0x87, 0x06, 0xC0, 0x32, 0x0A, 0x00, 0xC0,
+ 0x00, 0x91, 0x40, 0xC0, 0x02, 0x85, 0x08, 0xC0, 0x06, 0x87, 0x0A, 0xC0, 0x0A, 0x0A, 0x49, 0xC0, 0x82, 0x08, 0xFC, 0xC2, 0xC0, 0x08, 0x49, 0xC0, 0x02, 0x0D, 0x00, 0xC2, 0x00, 0x0D,
+ 0x80, 0xB5, 0x2B, 0x45, 0x00, 0xC2, 0x08, 0x5A, 0x10, 0xF3, 0x21, 0x80, 0x40, 0xB5, 0x23, 0x48, 0x40, 0xB5, 0xBB, 0x45, 0x80, 0xB5, 0xAB, 0x48, 0x20, 0xB7, 0xB3, 0x48, 0x5B, 0xCA,
+ 0x16, 0x0A, 0x5A, 0xCA, 0x14, 0x0A, 0x40, 0xB7, 0xAB, 0x45, 0xC0, 0x5C, 0xA6, 0xD0, 0x41, 0x5D, 0x80, 0xB5, 0x2D, 0x42, 0x40, 0x59, 0x10, 0xF2, 0x2D, 0x80, 0x26, 0xD1, 0x41, 0x59,
+ 0x20, 0xB7, 0x35, 0x45, 0x20, 0xE2, 0x2D, 0x81, 0x80, 0xB5, 0x8C, 0x42, 0x40, 0xB5, 0x14, 0x42, 0xB5, 0x5C, 0x12, 0xD0, 0x12, 0x2F, 0x0A, 0x85, 0x37, 0xC0, 0x89, 0x9C, 0x82, 0x0F,
+ 0xC0, 0xB7, 0x8C, 0x46, 0x8A, 0x0B, 0x94, 0xC0, 0xF7, 0x9A, 0x71, 0xC9, 0x80, 0x9C, 0x11, 0xF0, 0xC4, 0x2A, 0x00, 0xC0, 0x24, 0x92, 0x80, 0x77, 0x02, 0xC0, 0x42, 0x91, 0x74, 0xC0,
+ 0xDC, 0x98, 0x1C, 0xC0, 0x3E, 0x7C, 0x00, 0xC0, 0x04, 0x91, 0x71, 0xC1, 0x80, 0x9C, 0x08, 0x2A, 0x00, 0x75, 0x01, 0xC0, 0xC2, 0x93, 0x49, 0xC0, 0x82, 0x0E, 0xFC, 0xC2, 0xC0, 0x0E,
+ 0x50, 0xF2, 0xA5, 0xA8, 0x50, 0xF2, 0x2D, 0xAA, 0x48, 0x70, 0x01, 0xC0, 0x82, 0x91, 0x50, 0xF2, 0x25, 0xAA, 0x40, 0xB7, 0x9C, 0x42, 0x00, 0xC2, 0x08, 0x5A, 0x10, 0xE3, 0xA1, 0x81,
+ 0x08, 0xD0, 0xE1, 0xA8, 0x08, 0xD0, 0x65, 0xAA, 0xF6, 0xCF, 0xFD, 0x28, 0x00, 0x75, 0x8C, 0x08, 0x80, 0xC0, 0x89, 0x5A, 0x00, 0xC0, 0xA2, 0x90, 0xA3, 0x9E, 0x54, 0xC0, 0xB4, 0x9B,
+ 0x50, 0xF2, 0x27, 0xA9, 0x90, 0xDA, 0x21, 0xAA, 0x10, 0xE3, 0xA3, 0x80, 0x00, 0xC2, 0x40, 0x5A, 0x00, 0xC2, 0x41, 0x5A, 0x48, 0x70, 0x7C, 0x9E, 0x14, 0xB3, 0x26, 0x44, 0x89, 0x00,
+ 0x50, 0xF2, 0xA5, 0xA0, 0xFD, 0xFF, 0xC0, 0x92, 0x40, 0x75, 0xFD, 0xFF, 0x62, 0x92, 0x71, 0xC1, 0x80, 0x9C, 0xFD, 0xFF, 0xE0, 0x91, 0x80, 0x77, 0xFD, 0xFF, 0x84, 0x91, 0x74, 0xC0,
+ 0x91, 0x98, 0x1C, 0xC0, 0x3E, 0x7C, 0xFD, 0xFF, 0xC4, 0x90, 0x12, 0x85, 0x5F, 0xB5, 0x7C, 0x7F, 0x04, 0x8D, 0x48, 0xF2, 0x5F, 0xA1, 0x71, 0xC9, 0x80, 0x9C, 0x08, 0x2A, 0x00, 0x75,
+ 0x00, 0xC0, 0x04, 0x92, 0x27, 0xC9, 0x8F, 0x9C, 0x9F, 0xB7, 0x6C, 0x7F, 0x04, 0x1A, 0x9F, 0xB5, 0x6C, 0x7F, 0x3F, 0xB7, 0x6C, 0x7F, 0x40, 0x74, 0xFF, 0xFF, 0x04, 0x93, 0x17, 0xC9,
+ 0x8F, 0x9C, 0x48, 0xF2, 0xDD, 0xA3, 0xFC, 0xFF, 0x00, 0x91, 0x9F, 0xB7, 0xEE, 0x7D, 0xBF, 0xB7, 0x6E, 0x7E, 0xDF, 0xB7, 0xEE, 0x7E, 0xFF, 0xB7, 0x6E, 0x7F, 0x02, 0xC0, 0x20, 0x8C,
+ 0x22, 0x9C, 0x1D, 0xA6, 0x80, 0xB7, 0x0C, 0x56, 0x12, 0xD0, 0x48, 0x0B, 0x20, 0xB7, 0x0C, 0x46, 0x87, 0x07, 0x07, 0xC0, 0xC2, 0x0B, 0x01, 0xC0, 0xC2, 0x0E, 0x09, 0x03, 0x31, 0xD0,
+ 0x98, 0x0A, 0xCA, 0x7B, 0x00, 0xC0, 0x62, 0x92, 0x08, 0xF2, 0x21, 0xAA, 0x05, 0xC0, 0x04, 0x7D, 0x00, 0xC0, 0xA2, 0x91, 0xFD, 0xCF, 0x76, 0x2A, 0x08, 0xF2, 0x21, 0xA2, 0x0A, 0x85,
+ 0x08, 0xF2, 0x43, 0xA1, 0x10, 0xF2, 0xC2, 0xA9, 0x14, 0xC0, 0xE4, 0x99, 0x6C, 0x9E, 0x20, 0x0F, 0x20, 0x0B, 0x7D, 0x4A, 0x00, 0xE0, 0xF8, 0x23, 0x02, 0xC0, 0x80, 0x0A, 0x80, 0xC2,
+ 0x84, 0x5E, 0xFF, 0xFF, 0x44, 0x90, 0x9F, 0xB7, 0x6E, 0x7E, 0xBF, 0xB7, 0xEE, 0x7E, 0xDF, 0xB7, 0x6E, 0x7F, 0xFF, 0xB7, 0xEE, 0x7F, 0x02, 0xC0, 0x00, 0x8C, 0x22, 0x9C, 0x05, 0xA6,
+ 0x5D, 0x9E, 0x51, 0xD0, 0x58, 0x0A, 0xA1, 0x9E, 0x86, 0x0D, 0xE4, 0x55, 0x07, 0xC0, 0xC0, 0x2D, 0x14, 0xC0, 0x96, 0x99, 0xAB, 0x9E, 0x14, 0xC0, 0x08, 0x98, 0x9F, 0xB7, 0x6E, 0x7F,
+ 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x0D, 0xA6, 0x80, 0xB7, 0x0C, 0x46, 0xA6, 0xD1, 0x14, 0x5D, 0x10, 0xF3, 0x21, 0x81, 0x40, 0xB7, 0x84, 0x56, 0xB5, 0x9E, 0x30, 0xF2,
+ 0xA5, 0xAA, 0xA6, 0xD1, 0x0C, 0x5D, 0x2D, 0x9E, 0x01, 0xC0, 0xA0, 0x3A, 0x10, 0xF2, 0xA1, 0xA2, 0x30, 0xE0, 0xCE, 0xA9, 0x14, 0xC0, 0x8B, 0x99, 0x02, 0x85, 0xFF, 0xCF, 0xE8, 0x2A,
+ 0x10, 0xF2, 0xA1, 0xA2, 0xFF, 0xCF, 0xDE, 0x2A, 0x10, 0xF2, 0xA1, 0xA2, 0x31, 0xD0, 0x68, 0x0A, 0x08, 0xF2, 0x03, 0xA1, 0x9F, 0xB7, 0xEE, 0x7E, 0xBF, 0xB7, 0x6E, 0x7F, 0xDF, 0xB7,
+ 0xEE, 0x7F, 0x60, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x5D, 0x9E, 0x0E, 0xC0, 0x7C, 0x2D, 0x0E, 0xC0, 0x7C, 0x29, 0x14, 0xC0, 0x3B, 0x98, 0xAB, 0x9E, 0x14, 0xC0, 0x08, 0x98, 0x9F, 0xB7,
+ 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x5D, 0x9E, 0x40, 0xB7, 0x1C, 0x56, 0xA8, 0xD2, 0x0C, 0x59, 0x2D, 0x9E, 0x20, 0xE0, 0x6D, 0xAA, 0x02, 0x75,
+ 0xA1, 0xB5, 0x08, 0x7C, 0x00, 0xC0, 0xE4, 0x90, 0x10, 0x85, 0x20, 0xE0, 0xEE, 0xA9, 0x14, 0xC0, 0x56, 0x99, 0xAB, 0x9E, 0x14, 0xC0, 0x5B, 0x98, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7,
+ 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x80, 0xB7, 0x8C, 0x43, 0x71, 0xC1, 0xCC, 0x9C, 0x20, 0xB7, 0x94, 0x46, 0x20, 0xB7, 0x4D, 0x40, 0xB0, 0x5D, 0x00, 0xC1, 0x80, 0x2D, 0x5A, 0x9E,
+ 0xFE, 0xCE, 0xFD, 0x28, 0x94, 0x30, 0x20, 0xB5, 0x4D, 0x40, 0x71, 0xC1, 0xCC, 0x9C, 0x22, 0x9C, 0x0D, 0xA6, 0x5E, 0x9E, 0x80, 0xB7, 0x0C, 0x56, 0x24, 0xD3, 0x8C, 0x59, 0x55, 0x9E,
+ 0x59, 0x9E, 0x06, 0x85, 0x40, 0xE0, 0x27, 0xA1, 0x13, 0xD0, 0x48, 0x09, 0x9E, 0x9E, 0xC7, 0x9D, 0x95, 0x9E, 0x10, 0xE0, 0xEA, 0xA9, 0x0E, 0xC0, 0xFC, 0x2A, 0x0E, 0xC0, 0xFC, 0x2E,
+ 0x14, 0xC0, 0x1D, 0x99, 0x40, 0x75, 0x82, 0x0D, 0x01, 0xD0, 0xB2, 0x0D, 0xF4, 0xFF, 0xD0, 0x9B, 0x20, 0xB7, 0x0C, 0x46, 0x26, 0xD3, 0x14, 0x59, 0x01, 0xC2, 0x22, 0x81, 0x71, 0xF0,
+ 0x20, 0x84, 0x1E, 0x87, 0x0A, 0xF2, 0x00, 0xA1, 0x31, 0xF0, 0x20, 0x84, 0x2A, 0x9E, 0x05, 0xC8, 0x82, 0x0C, 0x42, 0xA3, 0x08, 0xF2, 0x82, 0xA2, 0x20, 0xF0, 0xC6, 0xA0, 0x05, 0xC8,
+ 0x92, 0x0C, 0x00, 0xF0, 0xC2, 0xA0, 0x9F, 0xB7, 0xEE, 0x7E, 0xBF, 0xB7, 0x6E, 0x7F, 0xDF, 0xB7, 0xEE, 0x7F, 0x60, 0x8C, 0x22, 0x9C, 0x40, 0xB7, 0x04, 0x56, 0xA6, 0xD1, 0x0C, 0x5D,
+ 0x2E, 0x9E, 0x38, 0xE0, 0x41, 0xA8, 0x11, 0xD0, 0x04, 0x1A, 0x02, 0x75, 0x40, 0xB3, 0xB2, 0x48, 0x02, 0x85, 0x00, 0xF0, 0x43, 0xA1, 0x22, 0x9C, 0x05, 0xA6, 0x20, 0x84, 0x87, 0x02,
+ 0x87, 0x06, 0x02, 0x87, 0x54, 0x9E, 0x74, 0xC0, 0xCE, 0x9C, 0x00, 0x75, 0x00, 0xC0, 0x24, 0x91, 0xEF, 0xCE, 0x3A, 0x87, 0xEE, 0xCE, 0x38, 0x87, 0x06, 0x85, 0x01, 0xC0, 0x40, 0x91,
+ 0x20, 0x75, 0x31, 0xD0, 0x00, 0x41, 0x01, 0xC0, 0xA2, 0x90, 0x2A, 0x75, 0x01, 0xC0, 0x24, 0x90, 0x20, 0xB7, 0x94, 0x46, 0x40, 0xB7, 0x45, 0x41, 0x50, 0x9D, 0x01, 0xC1, 0x00, 0x2A,
+ 0x00, 0x75, 0x00, 0xC0, 0xE2, 0x92, 0x01, 0xC1, 0x82, 0x08, 0x20, 0xB5, 0xCD, 0x41, 0x80, 0xB7, 0x0C, 0x4C, 0x20, 0xB7, 0x94, 0x41, 0x04, 0x0A, 0x80, 0xB5, 0x0C, 0x4C, 0x20, 0xB7,
+ 0x0C, 0x4C, 0x80, 0xB7, 0x4D, 0x41, 0x48, 0x70, 0x00, 0xC0, 0xC6, 0x91, 0x0E, 0x85, 0x00, 0xC0, 0x60, 0x90, 0x0A, 0x85, 0xCF, 0x9D, 0x4C, 0x9D, 0x5F, 0xB5, 0x64, 0x7F, 0x74, 0xC0,
+ 0x8A, 0x9B, 0x5F, 0xB7, 0x64, 0x7F, 0x74, 0xC0, 0xCE, 0x9C, 0x0B, 0x00, 0x0B, 0x04, 0x9F, 0xB7, 0xEE, 0x7E, 0xBF, 0xB7, 0x6E, 0x7F, 0x60, 0x8C, 0x22, 0x9C, 0x0D, 0xA6, 0xA0, 0xB7,
+ 0x8C, 0x43, 0x07, 0x03, 0x07, 0x07, 0x71, 0xC1, 0xCD, 0x9C, 0xA8, 0x76, 0x00, 0xC0, 0x84, 0x90, 0x14, 0xC0, 0x51, 0x98, 0x71, 0xC1, 0xCD, 0x9C, 0x0D, 0x00, 0x0D, 0x04, 0x9F, 0xB7,
+ 0xEE, 0x7E, 0xBF, 0xB7, 0x6E, 0x7F, 0xDF, 0xB7, 0xEE, 0x7F, 0x60, 0x8C, 0x22, 0x9C, 0x0D, 0xA6, 0xB4, 0xC0, 0x15, 0x98, 0x11, 0xC0, 0x82, 0x0D, 0x94, 0xC0, 0xF9, 0x9B, 0x09, 0xC8,
+ 0x42, 0x0A, 0xBA, 0xC0, 0x40, 0x0A, 0x09, 0xC8, 0xC2, 0x08, 0xA8, 0xC0, 0x80, 0x08, 0x20, 0xB7, 0x94, 0x41, 0x80, 0xB5, 0x2C, 0x4C, 0x20, 0xB5, 0xAC, 0x4C, 0x20, 0xB5, 0x2C, 0x4A,
+ 0x20, 0xB5, 0x2C, 0x42, 0x80, 0xB7, 0x4D, 0x45, 0x20, 0xB7, 0x8C, 0x43, 0x00, 0xC4, 0x00, 0x2A, 0x00, 0x75, 0x51, 0xD0, 0x10, 0x3B, 0x00, 0xC0, 0xA2, 0x90, 0xF9, 0x28, 0x20, 0xB5,
+ 0x8C, 0x43, 0x00, 0xC3, 0x40, 0x5A, 0x00, 0xC2, 0xC1, 0x5A, 0x8B, 0x00, 0xFE, 0xCF, 0xFC, 0x28, 0x83, 0x02, 0x82, 0x0E, 0x8B, 0x01, 0x8B, 0x05, 0x79, 0x2B, 0xB4, 0xC0, 0x68, 0x98,
+ 0x02, 0x0A, 0x71, 0xC1, 0xCC, 0x9C, 0x4C, 0x32, 0x71, 0xC1, 0xCC, 0x9C, 0x9F, 0xB7, 0xEE, 0x7E, 0xBF, 0xB7, 0x6E, 0x7F, 0xDF, 0xB7, 0xEE, 0x7F, 0x60, 0x8C, 0x22, 0x9C, 0x05, 0xA6,
+ 0xA0, 0xB7, 0x94, 0x46, 0x10, 0xF2, 0xA9, 0xA8, 0x80, 0xB7, 0x0C, 0x44, 0x00, 0xE0, 0x98, 0x22, 0x00, 0xC0, 0x22, 0x93, 0x0B, 0x02, 0x07, 0xE0, 0x40, 0x2A, 0x10, 0xF2, 0xAD, 0xA2,
+ 0x00, 0xC0, 0xA2, 0x90, 0xA3, 0x9E, 0xF4, 0xFF, 0x3C, 0x9A, 0x09, 0xC2, 0x3E, 0x0A, 0x04, 0xC1, 0x3C, 0x0A, 0x00, 0xE0, 0x58, 0x22, 0xFF, 0xFF, 0x02, 0x91, 0xA3, 0x9E, 0x54, 0xC0,
+ 0xFE, 0x9A, 0xFF, 0xFF, 0x60, 0x90, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x20, 0xB7, 0x14, 0x44, 0x80, 0xB7, 0x8C, 0x46, 0x96, 0x34, 0x20, 0xB5,
+ 0x14, 0x44, 0x08, 0xF2, 0x96, 0xA0, 0x22, 0x9C, 0x20, 0xB7, 0x14, 0x44, 0x80, 0xB7, 0x8C, 0x46, 0xFD, 0x4D, 0x96, 0x24, 0x20, 0xB5, 0x14, 0x44, 0x08, 0xF2, 0x96, 0xA0, 0x22, 0x9C,
+ 0x02, 0x85, 0x10, 0xF0, 0x63, 0xA1, 0x22, 0x9C, 0x20, 0xB7, 0x8C, 0x43, 0x10, 0xF0, 0x61, 0xAA, 0x00, 0x75, 0xFF, 0xFF, 0xA2, 0x93, 0x03, 0x02, 0x71, 0xC1, 0xCC, 0x9C, 0x10, 0xF0,
+ 0xE1, 0xA8, 0x84, 0x18, 0x10, 0xF0, 0xE1, 0xA0, 0x71, 0xC1, 0xCC, 0x9C, 0x02, 0x08, 0x22, 0x9C, 0x80, 0xB7, 0x8C, 0x43, 0x71, 0xC1, 0xCC, 0x9C, 0x10, 0xF0, 0xE1, 0xA8, 0x84, 0x08,
+ 0x10, 0xF0, 0xE1, 0xA0, 0x71, 0xC1, 0xCC, 0x9C, 0x02, 0x08, 0x22, 0x9C, 0x1C, 0xC0, 0xFE, 0x7C, 0x8C, 0x5D, 0xA0, 0x2D, 0x5B, 0x9E, 0x82, 0x08, 0x01, 0xD0, 0x92, 0x08, 0x80, 0xB7,
+ 0x8C, 0x47, 0x20, 0x59, 0x30, 0xC0, 0x00, 0x29, 0x0F, 0xC0, 0x7E, 0x2D, 0x88, 0x58, 0x14, 0x31, 0xA6, 0x30, 0x84, 0x38, 0x08, 0xF2, 0x99, 0xA0, 0xF9, 0x28, 0x08, 0xF2, 0x99, 0xA0,
+ 0x08, 0xF2, 0x1E, 0xA1, 0x22, 0x9C, 0x20, 0xB7, 0x8C, 0x47, 0x80, 0xB7, 0xAD, 0x4B, 0x00, 0x75, 0xFF, 0xFF, 0xB6, 0x93, 0x22, 0x9C, 0x20, 0xB7, 0x94, 0x47, 0xA0, 0x5D, 0x59, 0x9E,
+ 0x80, 0xB7, 0x4D, 0x43, 0x4A, 0x9E, 0x30, 0xC0, 0x80, 0x28, 0xCE, 0xCF, 0x7D, 0x2A, 0x42, 0x32, 0x80, 0xB5, 0x4D, 0x43, 0x08, 0xF0, 0x59, 0xAA, 0x59, 0x9E, 0x30, 0xC0, 0x00, 0x2A,
+ 0x02, 0x71, 0xFF, 0xFF, 0x44, 0x93, 0x22, 0x9C, 0x05, 0xA6, 0xA0, 0xB7, 0x8C, 0x47, 0x12, 0x85, 0xC8, 0xF2, 0x27, 0xA1, 0xF4, 0xFF, 0xDB, 0x9B, 0x88, 0xF2, 0x3D, 0xAA, 0xC8, 0xF2,
+ 0xA1, 0xA8, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x87, 0x06, 0x10, 0xF2, 0xAD, 0xAA, 0x02, 0xC0, 0xA2, 0x0D, 0x82, 0x09, 0x14, 0xC0,
+ 0xA8, 0x99, 0x02, 0xC0, 0xB2, 0x0D, 0x82, 0x09, 0x14, 0xC0, 0xA3, 0x99, 0x02, 0xC0, 0xC2, 0x0D, 0x82, 0x09, 0x14, 0xC0, 0x9E, 0x99, 0x8B, 0x01, 0xFF, 0xCF, 0xC2, 0x29, 0x01, 0xC0,
+ 0x84, 0x39, 0xFE, 0xC9, 0xFD, 0x29, 0xA2, 0x0D, 0x00, 0xC4, 0x80, 0x39, 0x14, 0xC0, 0x92, 0x99, 0x00, 0xC1, 0xA2, 0x0A, 0x40, 0xC0, 0x82, 0x0D, 0x8B, 0x01, 0x14, 0xC0, 0x8B, 0x99,
+ 0x60, 0xC0, 0x82, 0x0D, 0x8B, 0x01, 0x14, 0xC0, 0x86, 0x99, 0x40, 0xC0, 0xA2, 0x0D, 0x82, 0x09, 0x14, 0xC0, 0x81, 0x99, 0x40, 0xC0, 0xA2, 0x0D, 0x86, 0x09, 0x14, 0xC0, 0x7C, 0x99,
+ 0x40, 0xC0, 0xA2, 0x0D, 0x8A, 0x09, 0x14, 0xC0, 0x77, 0x99, 0xA0, 0xB7, 0x8C, 0x43, 0x71, 0xC1, 0xCD, 0x9C, 0x40, 0xC0, 0x92, 0x0D, 0x82, 0x09, 0x14, 0xC0, 0x6E, 0x99, 0x40, 0xC0,
+ 0x92, 0x0D, 0x8A, 0x09, 0x14, 0xC0, 0x69, 0x99, 0x20, 0xB7, 0x94, 0x46, 0x49, 0x9E, 0x80, 0xB7, 0x2D, 0x41, 0x01, 0xC0, 0x30, 0x2A, 0x01, 0xC0, 0x18, 0x75, 0xFF, 0xFF, 0x44, 0x93,
+ 0x80, 0xB5, 0xCD, 0x41, 0x90, 0xF2, 0x29, 0xAA, 0x81, 0xC0, 0x00, 0x3A, 0x90, 0xF2, 0x29, 0xA2, 0x71, 0xC1, 0xCD, 0x9C, 0x02, 0xC0, 0xA2, 0x0D, 0x50, 0xF2, 0xB9, 0xA9, 0x14, 0xC0,
+ 0x4E, 0x99, 0x02, 0xC0, 0xB2, 0x0D, 0x50, 0xF2, 0xBD, 0xA9, 0x14, 0xC0, 0x48, 0x99, 0x02, 0xC0, 0xC2, 0x0D, 0x50, 0xF2, 0xB9, 0xA9, 0x14, 0xC0, 0x42, 0x99, 0x9F, 0xB7, 0x6E, 0x7F,
+ 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x82, 0xB7, 0x88, 0x40, 0x1C, 0xC0, 0x3E, 0x7D, 0xA0, 0xB7, 0x94, 0x54, 0x82, 0x0A, 0x00, 0xC0, 0x42, 0x91, 0x74, 0xC0,
+ 0x95, 0x9B, 0x82, 0xB7, 0x88, 0x40, 0x1C, 0xC0, 0x3E, 0x7D, 0xFF, 0xFF, 0x44, 0x93, 0x60, 0xB7, 0x94, 0x43, 0x72, 0xC0, 0xCF, 0x9C, 0x40, 0xB7, 0x8C, 0x46, 0x40, 0xB7, 0x94, 0x47,
+ 0x20, 0xB7, 0x8C, 0x4C, 0x8B, 0x01, 0xFF, 0xCF, 0xBE, 0x29, 0x91, 0x9E, 0x80, 0xB7, 0xCD, 0x45, 0x40, 0x2A, 0x00, 0x75, 0xFF, 0xFF, 0x82, 0x93, 0x71, 0xD2, 0x20, 0x0E, 0x08, 0xF2,
+ 0x82, 0xA8, 0x84, 0x18, 0xA6, 0xD0, 0x08, 0x59, 0xCB, 0x9D, 0x50, 0xE0, 0x49, 0xAA, 0x49, 0x9E, 0x48, 0x70, 0x00, 0xC0, 0x62, 0x90, 0x00, 0x9F, 0x08, 0xF0, 0xC2, 0xA8, 0x87, 0x02,
+ 0x01, 0xC0, 0xC0, 0x3A, 0x7F, 0x0A, 0x4A, 0x42, 0xA2, 0x9E, 0x94, 0x24, 0x4C, 0x9E, 0xCA, 0x30, 0x08, 0xF0, 0xC1, 0xA0, 0x08, 0xF0, 0xC1, 0xAA, 0x20, 0xB7, 0x8C, 0x47, 0x08, 0xF0,
+ 0xC2, 0xA0, 0x08, 0xF0, 0xC2, 0xA0, 0x10, 0xC0, 0x82, 0x0C, 0x20, 0xB5, 0x35, 0x40, 0x72, 0xC0, 0xCF, 0x9C, 0x06, 0x08, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C,
+ 0x22, 0x9C, 0x20, 0x84, 0x20, 0xB7, 0x94, 0x43, 0x72, 0xC0, 0xCD, 0x9C, 0x20, 0xB7, 0x8C, 0x46, 0x60, 0xB7, 0x2D, 0x40, 0x40, 0xB7, 0x8C, 0x47, 0xFF, 0xCF, 0xFA, 0x29, 0x07, 0x02,
+ 0x01, 0xC0, 0x04, 0x3A, 0x80, 0xB5, 0x2D, 0x40, 0x60, 0xB7, 0x35, 0x40, 0x60, 0xB5, 0x2D, 0x40, 0xC8, 0xF0, 0xCD, 0xA9, 0x81, 0xC0, 0x82, 0x0D, 0x59, 0x9E, 0x32, 0x32, 0xC8, 0xF0,
+ 0x4D, 0xA2, 0xC8, 0xF0, 0xDD, 0xA8, 0x12, 0xD2, 0x20, 0x09, 0x3F, 0xB5, 0x6C, 0x7F, 0x10, 0xF0, 0x41, 0xAA, 0x02, 0xC0, 0x82, 0x09, 0x9F, 0xB5, 0xEC, 0x7F, 0xC8, 0xF0, 0xC9, 0xA1,
+ 0x9F, 0xB7, 0x6C, 0x7F, 0xC8, 0xF0, 0x5D, 0xA2, 0x3F, 0xB7, 0xEC, 0x7F, 0x10, 0xF0, 0xC1, 0xA0, 0xC8, 0xF0, 0xCD, 0xA9, 0x5C, 0x9E, 0x7D, 0x4A, 0xB8, 0x21, 0xC8, 0xF0, 0xCD, 0xA1,
+ 0x72, 0xC0, 0xCD, 0x9C, 0x20, 0x8C, 0x22, 0x9C, 0x5A, 0x9E, 0x20, 0xB7, 0x94, 0x46, 0x08, 0xF0, 0xCD, 0xA8, 0x80, 0xB7, 0x4D, 0x45, 0x0A, 0x75, 0xFF, 0xFF, 0xB4, 0x93, 0x80, 0xB7,
+ 0x0C, 0x48, 0x02, 0x85, 0x48, 0xF2, 0x0B, 0xA1, 0x48, 0xF2, 0x0F, 0xA1, 0x48, 0xF2, 0x13, 0xA1, 0xFF, 0xCF, 0xC2, 0x28, 0x01, 0xC0, 0x84, 0x38, 0xFE, 0xC9, 0xFD, 0x28, 0x00, 0xC4,
+ 0x80, 0x38, 0x08, 0xF2, 0x89, 0xA0, 0x48, 0xF0, 0xD5, 0xA8, 0xFE, 0xCC, 0xFD, 0x28, 0x00, 0xC1, 0x80, 0x38, 0x40, 0xC0, 0x00, 0x0A, 0x08, 0xF2, 0x81, 0xA0, 0xC0, 0xCF, 0x01, 0x0A,
+ 0x60, 0xC0, 0x00, 0x0A, 0x08, 0xF2, 0x81, 0xA0, 0x0E, 0xC0, 0x68, 0x85, 0x20, 0xB7, 0x8C, 0x46, 0x80, 0xB7, 0x2D, 0x45, 0x0C, 0x75, 0xFF, 0xFF, 0xA6, 0x93, 0x20, 0xB7, 0x0C, 0x48,
+ 0x60, 0xB9, 0x28, 0x40, 0x40, 0xC0, 0xA0, 0x08, 0x40, 0xB5, 0x3D, 0x40, 0x11, 0xF0, 0x22, 0x84, 0x00, 0xC2, 0x40, 0x5A, 0x26, 0xD2, 0x41, 0x59, 0xFF, 0xFF, 0x01, 0x93, 0x20, 0xB7,
+ 0x8C, 0x46, 0x80, 0xB7, 0x2D, 0x45, 0x06, 0x75, 0xFF, 0xFF, 0xB4, 0x93, 0x82, 0x08, 0x20, 0xB7, 0x14, 0x48, 0x40, 0xC0, 0xA0, 0x0C, 0x20, 0xB5, 0x4D, 0x40, 0x88, 0xF0, 0x49, 0xAA,
+ 0x08, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0xC2, 0x90, 0x10, 0xC0, 0x82, 0x08, 0x00, 0xC0, 0x60, 0x90, 0x86, 0x08, 0x20, 0xB5, 0x4D, 0x40, 0x20, 0xB7, 0x94, 0x43, 0x72, 0xC0, 0xCD, 0x9C,
+ 0x20, 0xB7, 0x0C, 0x48, 0x02, 0x85, 0x40, 0xC0, 0x90, 0x08, 0x40, 0xB5, 0x3D, 0x40, 0x08, 0x85, 0x40, 0xB5, 0x3D, 0x40, 0x80, 0xB7, 0x8C, 0x46, 0x08, 0xF2, 0x89, 0xA8, 0x01, 0xC0,
+ 0xB0, 0x28, 0x01, 0xC0, 0x58, 0x74, 0xFF, 0xFF, 0x44, 0x93, 0x80, 0xB7, 0x8C, 0x46, 0x08, 0xF2, 0x8D, 0xA0, 0x88, 0xF0, 0xC9, 0xA8, 0x09, 0xC0, 0x80, 0x38, 0x88, 0xF0, 0xC9, 0xA0,
+ 0x72, 0xC0, 0xCD, 0x9C, 0x89, 0x00, 0x80, 0xB7, 0x2D, 0x45, 0x08, 0x75, 0xFF, 0xFF, 0xB4, 0x93, 0x20, 0xB7, 0x14, 0x48, 0x48, 0xF0, 0x59, 0xAA, 0x80, 0xB5, 0x4D, 0x45, 0x48, 0xF0,
+ 0xDD, 0xA8, 0x20, 0xB5, 0xCD, 0x45, 0x48, 0xF0, 0x59, 0xAA, 0x80, 0xB5, 0x4D, 0x46, 0x08, 0xF0, 0xCD, 0xA8, 0x20, 0xB5, 0x4D, 0x41, 0x40, 0xC0, 0x80, 0x0C, 0x48, 0xF0, 0x55, 0xAA,
+ 0x80, 0xB5, 0x4D, 0x40, 0x22, 0x9C, 0x40, 0xB7, 0x04, 0x48, 0x3A, 0x9D, 0x99, 0x9E, 0x20, 0xB7, 0x8C, 0x46, 0x80, 0xB7, 0x2D, 0x45, 0x00, 0x75, 0xFF, 0xFF, 0xA2, 0x93, 0x2D, 0x9E,
+ 0x20, 0xE0, 0xEE, 0xA0, 0x22, 0x9C, 0x02, 0x0A, 0xA2, 0x0C, 0x81, 0xB4, 0x00, 0xC0, 0x01, 0xB2, 0x20, 0x44, 0x22, 0x9C, 0x20, 0xB7, 0x8C, 0x41, 0x80, 0xB7, 0x2D, 0x45, 0x20, 0x2A,
+ 0x00, 0x75, 0x40, 0xB3, 0xA4, 0x48, 0x80, 0xB7, 0x2D, 0x45, 0x00, 0xC4, 0x00, 0x2A, 0x00, 0x75, 0x40, 0xB3, 0xA4, 0x48, 0x82, 0x08, 0x20, 0xC3, 0x8D, 0x9C, 0x08, 0xC0, 0xD4, 0x38,
+ 0x80, 0xB7, 0x8C, 0x44, 0x01, 0xC0, 0x84, 0x38, 0x20, 0xC0, 0x20, 0x0A, 0x08, 0xF2, 0x81, 0xA0, 0x22, 0x9C, 0x20, 0xB7, 0x8C, 0x41, 0x80, 0xB7, 0x2D, 0x45, 0x20, 0x2A, 0x00, 0x75,
+ 0x40, 0xB3, 0xA4, 0x48, 0x20, 0xB7, 0x2D, 0x45, 0x00, 0xE4, 0x80, 0x28, 0x40, 0xB3, 0xA4, 0x48, 0x80, 0xB7, 0x8C, 0x44, 0x20, 0xC0, 0x20, 0x0A, 0x08, 0xF2, 0x81, 0xA0, 0x22, 0x9C,
+ 0x39, 0xF8, 0x05, 0xA2, 0x00, 0xC0, 0x80, 0x90, 0x74, 0xC0, 0x19, 0x9A, 0x82, 0xB7, 0x08, 0x40, 0x1C, 0xC0, 0x3E, 0x7D, 0xFF, 0xFF, 0x44, 0x93, 0xF8, 0xF9, 0x1D, 0xAA, 0x22, 0x9C,
+ 0x80, 0xB7, 0x8C, 0x47, 0x06, 0x85, 0x40, 0xB5, 0x18, 0x44, 0x08, 0xC0, 0x70, 0x0A, 0x08, 0xF2, 0x81, 0xA8, 0x40, 0xC0, 0x80, 0x28, 0x40, 0x74, 0x02, 0x09, 0x00, 0xC0, 0xA2, 0x92,
+ 0x20, 0xB7, 0x94, 0x46, 0x09, 0xC2, 0x06, 0x0D, 0x00, 0xC1, 0x38, 0x0D, 0x20, 0xB7, 0x4D, 0x41, 0x53, 0x9E, 0x46, 0x78, 0x40, 0xB3, 0xA4, 0x48, 0x08, 0xF2, 0x81, 0xA8, 0x40, 0xC0,
+ 0x80, 0x28, 0x40, 0x74, 0xFF, 0xFF, 0xA4, 0x92, 0x80, 0xB7, 0x8C, 0x47, 0x09, 0xC2, 0x06, 0x0D, 0x00, 0xC1, 0x38, 0x0D, 0x20, 0xB7, 0x94, 0x46, 0x08, 0x39, 0xC8, 0xF2, 0x09, 0xA1,
+ 0x08, 0xC0, 0x70, 0x0A, 0x08, 0xF2, 0x81, 0xA8, 0x80, 0xC1, 0x40, 0x7C, 0x00, 0xC0, 0xE2, 0x91, 0x20, 0xC0, 0x80, 0x28, 0x40, 0x74, 0x40, 0xB3, 0xA4, 0x48, 0x20, 0xB7, 0x4D, 0x41,
+ 0x52, 0x9E, 0x44, 0x78, 0x40, 0xB3, 0xA4, 0x48, 0xFF, 0xFF, 0xE0, 0x91, 0x02, 0x85, 0x40, 0xB5, 0x18, 0x44, 0x22, 0x9C, 0x20, 0xB7, 0x94, 0x47, 0x02, 0x0C, 0x20, 0xB7, 0x4D, 0x4E,
+ 0x8C, 0x5D, 0x06, 0x72, 0x80, 0xB7, 0xCD, 0x4D, 0x03, 0x01, 0xFE, 0xCF, 0x7C, 0x29, 0x80, 0xC0, 0xC1, 0x59, 0x30, 0x59, 0xB0, 0x59, 0x01, 0xC0, 0x30, 0x2A, 0x00, 0xC2, 0xC9, 0x58,
+ 0x98, 0x08, 0x06, 0x0A, 0x00, 0xC2, 0x84, 0x50, 0x00, 0xC0, 0x16, 0x92, 0x32, 0xD2, 0x18, 0x0D, 0x30, 0xD0, 0x22, 0x11, 0x10, 0xF0, 0x41, 0xAA, 0x5A, 0x9E, 0xFF, 0xC0, 0x7E, 0x2A,
+ 0x10, 0xF3, 0x21, 0x88, 0x04, 0x71, 0xFF, 0xFF, 0x18, 0x93, 0x06, 0x72, 0x00, 0xC0, 0xF6, 0x91, 0x51, 0xD2, 0x10, 0x0D, 0x30, 0xD0, 0x32, 0x11, 0x08, 0xF0, 0x41, 0xAA, 0xFF, 0xC0,
+ 0x7E, 0x2A, 0x20, 0xE3, 0x21, 0x88, 0x06, 0x72, 0xFF, 0xFF, 0x38, 0x93, 0x71, 0xD2, 0x98, 0x0C, 0x80, 0xB7, 0x2D, 0x40, 0x40, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0xFF, 0xFF, 0x24, 0x93,
+ 0x22, 0x9C, 0x0D, 0xA6, 0x5E, 0x9E, 0x9D, 0x9E, 0xF4, 0xFF, 0x66, 0x9B, 0xC0, 0xB7, 0x94, 0x43, 0x72, 0xC1, 0xCE, 0x9C, 0xA0, 0xB7, 0x8C, 0x54, 0xD2, 0x0D, 0x08, 0xF2, 0xA6, 0xA2,
+ 0x08, 0xF2, 0x2D, 0xA3, 0xF4, 0xFF, 0xAE, 0x9B, 0x80, 0xB7, 0x8C, 0x47, 0xA9, 0x9E, 0x60, 0xB9, 0x20, 0x40, 0x51, 0xD2, 0xC8, 0x08, 0x31, 0xF0, 0x25, 0xAA, 0x80, 0xB5, 0x2D, 0x40,
+ 0xFF, 0xFF, 0x81, 0x93, 0xF4, 0xFF, 0x59, 0x9B, 0x72, 0xC1, 0xCE, 0x9C, 0x9F, 0xB7, 0xEE, 0x7E, 0xBF, 0xB7, 0x6E, 0x7F, 0xDF, 0xB7, 0xEE, 0x7F, 0x60, 0x8C, 0x22, 0x9C, 0x39, 0xF8,
+ 0x05, 0xA2, 0xD2, 0x0D, 0xF4, 0xFF, 0x90, 0x9B, 0x01, 0xC0, 0x06, 0x85, 0x2C, 0x85, 0x02, 0x87, 0x80, 0xB7, 0x8C, 0x47, 0x08, 0xC0, 0x50, 0x0A, 0x08, 0xF2, 0x03, 0xA1, 0x0A, 0xF2,
+ 0x00, 0xA1, 0x01, 0xC0, 0x06, 0x87, 0x00, 0xC5, 0x4C, 0x87, 0x0A, 0xF2, 0x00, 0xA1, 0x06, 0x85, 0x08, 0xF2, 0x03, 0xA1, 0x18, 0x85, 0x08, 0xF2, 0x03, 0xA1, 0xF8, 0xF9, 0x1D, 0xAA,
+ 0x22, 0x9C, 0x39, 0xF8, 0x05, 0xA2, 0x02, 0xC0, 0x40, 0x84, 0x3A, 0x9D, 0x18, 0xD0, 0x45, 0xAA, 0x1C, 0xC0, 0x3E, 0x7D, 0x05, 0xC0, 0x84, 0x93, 0x20, 0xB7, 0x8C, 0x55, 0xCD, 0xCC,
+ 0xB2, 0x0C, 0xCC, 0xCC, 0xB4, 0x0C, 0x4A, 0x9E, 0x10, 0xF2, 0x23, 0x88, 0x45, 0x62, 0x00, 0xC2, 0x13, 0x5A, 0x04, 0x1A, 0x1C, 0x2A, 0x54, 0xD1, 0x41, 0x69, 0x10, 0xE2, 0xA3, 0x82,
+ 0x80, 0xB7, 0x29, 0x41, 0x1C, 0xC0, 0x3E, 0x7D, 0x00, 0xC0, 0x82, 0x93, 0x98, 0xF0, 0x49, 0xAA, 0x01, 0xC1, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x62, 0x90, 0x00, 0x9F, 0x98, 0xF0,
+ 0x49, 0xAA, 0x01, 0xC1, 0x00, 0x3A, 0x98, 0xF0, 0x49, 0xA2, 0x98, 0xF0, 0xC9, 0xA8, 0x01, 0xC0, 0xC0, 0x38, 0x98, 0xF0, 0xC9, 0xA0, 0x82, 0x0D, 0x4F, 0x9D, 0x74, 0xC0, 0xCF, 0x98,
+ 0x04, 0xC0, 0x00, 0x92, 0x98, 0xF0, 0xC9, 0xA8, 0x98, 0xF0, 0x49, 0xA9, 0x00, 0xE2, 0x00, 0x29, 0xB9, 0x58, 0x11, 0xD0, 0x92, 0x29, 0x02, 0xC0, 0xC4, 0x92, 0x40, 0xB7, 0x94, 0x41,
+ 0x50, 0xF0, 0x49, 0xAA, 0x80, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x92, 0x0C, 0x00, 0xC0, 0x22, 0x91, 0x80, 0xB7, 0x8C, 0x4E, 0x40, 0xB5, 0x8C, 0x4E, 0x84, 0x0C, 0x9F, 0xB5, 0xEC, 0x7B,
+ 0x50, 0xF0, 0x49, 0xAA, 0x00, 0xC4, 0x00, 0x2A, 0x00, 0x75, 0x01, 0xC0, 0x62, 0x90, 0x18, 0xF0, 0x51, 0xAA, 0x18, 0xF0, 0xD5, 0xA8, 0x18, 0xF0, 0xDA, 0xA8, 0x18, 0xF0, 0x5D, 0xA9,
+ 0x9F, 0xB5, 0x6C, 0x7C, 0x3F, 0xB5, 0xEC, 0x7C, 0x3F, 0xB5, 0x74, 0x7D, 0x5F, 0xB5, 0xEC, 0x7D, 0x50, 0xF0, 0x49, 0xAA, 0x00, 0xC8, 0x00, 0x2A, 0x00, 0x75, 0xA6, 0x0C, 0x00, 0xC0,
+ 0x62, 0x91, 0x58, 0xF0, 0x41, 0xAA, 0x58, 0xF0, 0xC5, 0xA8, 0x88, 0x0C, 0x9F, 0xB5, 0x6C, 0x7E, 0x3F, 0xB5, 0xEC, 0x7E, 0xA2, 0xD0, 0x08, 0x5E, 0xD2, 0xE0, 0x80, 0x8D, 0x0C, 0xC0,
+ 0x02, 0x87, 0x5F, 0xB5, 0xE0, 0x68, 0x9F, 0xB5, 0x68, 0x68, 0x98, 0xF0, 0x49, 0xAA, 0xC9, 0xA8, 0x98, 0xD8, 0xD2, 0xA8, 0x5F, 0xB5, 0x7C, 0x7F, 0x9F, 0xB5, 0x6C, 0x7B, 0x3F, 0xB5,
+ 0xEC, 0x7A, 0x3F, 0xB5, 0xF2, 0x74, 0xD4, 0xFF, 0x02, 0x99, 0x5F, 0xB7, 0x7C, 0x7F, 0x18, 0xD0, 0x41, 0xAA, 0x04, 0x75, 0x00, 0xC0, 0x64, 0x91, 0x98, 0xF0, 0x49, 0xAA, 0x21, 0xC4,
+ 0x00, 0x7D, 0x00, 0xC0, 0xC4, 0x92, 0x00, 0x9F, 0x00, 0xC0, 0x60, 0x92, 0x06, 0x75, 0x00, 0xC0, 0x04, 0x92, 0x20, 0xB7, 0x8C, 0x46, 0x80, 0xB7, 0xAD, 0x45, 0x40, 0x2A, 0x00, 0x75,
+ 0xFF, 0xFF, 0x82, 0x93, 0x80, 0xB7, 0x8C, 0x47, 0x08, 0xC0, 0x60, 0x0A, 0x08, 0xF2, 0x81, 0xA8, 0x02, 0x87, 0x1A, 0xD0, 0x48, 0xA1, 0x42, 0xB5, 0x80, 0x40, 0x7F, 0x85, 0x40, 0xB5,
+ 0x1C, 0x4B, 0x00, 0xC0, 0x00, 0x91, 0x98, 0xF0, 0x49, 0xAA, 0x01, 0xC1, 0x00, 0x3A, 0x98, 0xF0, 0x49, 0xA2, 0xF8, 0xF9, 0x05, 0xAA, 0x22, 0x9C, 0x39, 0xF8, 0x05, 0xA2, 0x20, 0x84,
+ 0x22, 0x85, 0x5F, 0xB5, 0x78, 0x7C, 0x0C, 0xC0, 0x0A, 0x85, 0x5F, 0xB5, 0xF8, 0x7C, 0x10, 0xF0, 0x65, 0xAA, 0x32, 0xE0, 0x80, 0x8D, 0x86, 0x09, 0x9F, 0xB5, 0xEC, 0x7F, 0xD4, 0xFF,
+ 0xBB, 0x98, 0xF8, 0xF9, 0x19, 0xAA, 0x22, 0x9C, 0x40, 0xC0, 0x92, 0x0D, 0x8A, 0x09, 0xEF, 0xFF, 0xE0, 0x91, 0x39, 0xF8, 0x85, 0xA2, 0x02, 0x0A, 0x87, 0x02, 0x0A, 0x71, 0x01, 0xC0,
+ 0x68, 0x93, 0xA0, 0xB7, 0x94, 0x46, 0x40, 0xB7, 0x1C, 0x48, 0x5A, 0x9E, 0x82, 0x08, 0x44, 0x70, 0x11, 0xD0, 0xC2, 0x09, 0x01, 0xC0, 0x88, 0x91, 0xC3, 0x9D, 0x5E, 0x9D, 0x28, 0xD2,
+ 0xA0, 0x59, 0xCB, 0x9D, 0x02, 0x87, 0x4B, 0x9D, 0xC7, 0x9D, 0x40, 0xC0, 0x20, 0x0C, 0x40, 0xC0, 0x60, 0x0D, 0x42, 0xC0, 0x40, 0x09, 0x50, 0xC0, 0x80, 0x0C, 0x11, 0xD0, 0x12, 0x08,
+ 0x58, 0xF0, 0x69, 0xAA, 0x06, 0x75, 0xFF, 0xFF, 0xB4, 0x93, 0x01, 0xC0, 0x84, 0x38, 0x01, 0xC0, 0x96, 0x30, 0x20, 0xB5, 0x4C, 0x40, 0x12, 0xF0, 0x40, 0xA1, 0x02, 0xC0, 0x82, 0x08,
+ 0x08, 0xF0, 0xC1, 0xA0, 0x40, 0xB5, 0x45, 0x40, 0x81, 0x00, 0x5C, 0x9E, 0x48, 0x70, 0xFF, 0xFF, 0x06, 0x91, 0x07, 0x02, 0x0A, 0x71, 0xFE, 0xFF, 0xA6, 0x91, 0x20, 0xB7, 0x14, 0x48,
+ 0x20, 0xB7, 0x8C, 0x46, 0x80, 0xB7, 0x2D, 0x45, 0x02, 0x75, 0xFF, 0xFF, 0xB4, 0x93, 0x02, 0x85, 0x40, 0xC0, 0x90, 0x0C, 0x40, 0xB5, 0x5D, 0x40, 0x86, 0x08, 0x80, 0xB7, 0x0C, 0x48,
+ 0x40, 0xC0, 0x10, 0x0A, 0x08, 0xF2, 0x81, 0xA0, 0xF8, 0xF9, 0x9D, 0xAA, 0x22, 0x9C, 0x05, 0xA6, 0x5D, 0x9E, 0x82, 0x0D, 0xD4, 0xFF, 0x10, 0x9A, 0x20, 0xB7, 0x94, 0x44, 0x20, 0xB7,
+ 0x0A, 0x57, 0x34, 0xC0, 0x90, 0x0C, 0xF1, 0xF1, 0xBD, 0xA0, 0x88, 0xDA, 0x35, 0xAA, 0x00, 0xC2, 0x09, 0x5A, 0x01, 0xC0, 0x04, 0x3A, 0x80, 0xB5, 0x4D, 0x40, 0x08, 0xD2, 0xA1, 0xA8,
+ 0x44, 0x74, 0x48, 0xF2, 0xB1, 0xA9, 0x02, 0x09, 0x02, 0xD0, 0x22, 0x09, 0x82, 0x0D, 0x06, 0x0D, 0xD4, 0xFF, 0xE3, 0x99, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C,
+ 0x22, 0x9C, 0x5A, 0x9E, 0x00, 0xC1, 0x11, 0x5A, 0x04, 0x1A, 0x3F, 0x75, 0x08, 0xC0, 0x06, 0x85, 0x00, 0xC0, 0x22, 0x92, 0x20, 0xB7, 0x94, 0x47, 0x40, 0xB5, 0xDD, 0x4C, 0x11, 0xD0,
+ 0xC2, 0x18, 0x80, 0xB7, 0xCD, 0x4B, 0x00, 0x75, 0xFF, 0xFF, 0xB6, 0x93, 0x03, 0x02, 0x3F, 0x75, 0xFF, 0xFF, 0xA4, 0x92, 0x31, 0xF0, 0x2E, 0x2A, 0x40, 0xB3, 0xA2, 0x48, 0x20, 0xB7,
+ 0x8C, 0x47, 0x00, 0xC2, 0x0C, 0x5A, 0x04, 0x3A, 0x80, 0xB5, 0xAD, 0x4C, 0x80, 0xB7, 0xAD, 0x4B, 0x00, 0x75, 0xFF, 0xFF, 0xB6, 0x93, 0x22, 0x9C, 0x1D, 0xA6, 0x20, 0x84, 0x20, 0xB7,
+ 0x88, 0x44, 0x7F, 0x87, 0x5F, 0xB5, 0x64, 0x7F, 0x82, 0x0F, 0x0E, 0xC0, 0x7E, 0x85, 0x40, 0xB5, 0x98, 0x44, 0x07, 0x07, 0x3F, 0xB5, 0xEC, 0x7F, 0x01, 0xD9, 0x84, 0x9C, 0x50, 0xF2,
+ 0x41, 0xA2, 0x10, 0xD2, 0x41, 0xAA, 0x02, 0x75, 0xE0, 0xB7, 0x8C, 0x4B, 0x00, 0xC0, 0xC4, 0x90, 0x80, 0xB7, 0x0C, 0x49, 0x00, 0xC0, 0x80, 0x90, 0x80, 0xB7, 0x8C, 0x48, 0xA3, 0x9E,
+ 0xF4, 0xFF, 0x3A, 0x99, 0x8D, 0x05, 0xF4, 0xFF, 0x8C, 0x9B, 0x10, 0xD2, 0x41, 0xAA, 0x02, 0x75, 0x02, 0xC0, 0xE2, 0x90, 0x10, 0xDA, 0x5D, 0xAA, 0x3C, 0x2A, 0x04, 0x1A, 0x02, 0x75,
+ 0x00, 0xC0, 0x92, 0x91, 0x90, 0xF2, 0x49, 0xAA, 0x04, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0xA2, 0x90, 0x8D, 0x05, 0xF4, 0xFF, 0x28, 0x98, 0x20, 0xB7, 0x94, 0x55, 0xCD, 0xCC,
+ 0xB2, 0x08, 0xCC, 0xCC, 0xB4, 0x08, 0x10, 0xD0, 0x62, 0x16, 0x43, 0x62, 0x00, 0xC2, 0x13, 0x5A, 0x04, 0x1A, 0x1C, 0x2A, 0x53, 0xD1, 0x41, 0x69, 0x20, 0xE2, 0xAB, 0x80, 0x10, 0xDA,
+ 0xDD, 0xA8, 0x80, 0xB7, 0xCB, 0x43, 0xBC, 0x28, 0x3C, 0x2A, 0x48, 0x70, 0x00, 0xC0, 0x42, 0x92, 0x8D, 0x05, 0x01, 0xC1, 0x82, 0x09, 0xF4, 0xFF, 0xCB, 0x99, 0x02, 0x85, 0x73, 0xC0,
+ 0xCE, 0x9C, 0x90, 0xF2, 0x49, 0xAA, 0x41, 0xC0, 0x00, 0x3A, 0x90, 0xF2, 0x49, 0xA2, 0x73, 0xC0, 0xCE, 0x9C, 0x8D, 0x05, 0x01, 0xC2, 0x82, 0x09, 0xF4, 0xFF, 0xBB, 0x99, 0x80, 0xB7,
+ 0x8C, 0x47, 0x0E, 0x85, 0x08, 0xF2, 0x0F, 0xA1, 0x10, 0xDA, 0x5D, 0xAA, 0x3C, 0x2A, 0x08, 0x75, 0x00, 0xC0, 0x44, 0x91, 0x80, 0xB7, 0x8C, 0x47, 0xB9, 0xC0, 0xC2, 0x08, 0x60, 0xC0,
+ 0x50, 0x0A, 0x08, 0xF2, 0x81, 0xA0, 0x29, 0xF2, 0x65, 0xAB, 0x0D, 0x02, 0x01, 0xCF, 0x00, 0x2A, 0x01, 0xCE, 0x00, 0x75, 0x09, 0xC0, 0xC2, 0x90, 0x00, 0xC0, 0x72, 0x93, 0x01, 0xC4,
+ 0x00, 0x75, 0x04, 0xC0, 0x82, 0x93, 0x00, 0xC0, 0x72, 0x91, 0x00, 0x75, 0xFF, 0xFF, 0xC2, 0x91, 0x01, 0xC2, 0x00, 0x75, 0x02, 0xC0, 0x82, 0x90, 0xFF, 0xFF, 0x00, 0x91, 0x01, 0xC8,
+ 0x00, 0x75, 0x06, 0xC0, 0x82, 0x91, 0x01, 0xCC, 0x00, 0x75, 0x0A, 0xC0, 0x42, 0x90, 0xFE, 0xFF, 0xC0, 0x93, 0x01, 0xD4, 0x00, 0x75, 0x04, 0xC0, 0x82, 0x93, 0x00, 0xC0, 0x92, 0x91,
+ 0x01, 0xD0, 0x00, 0x75, 0x00, 0xC0, 0x42, 0x93, 0x01, 0xD2, 0x00, 0x75, 0x07, 0xC0, 0xA2, 0x92, 0xFE, 0xFF, 0xC0, 0x91, 0x01, 0xD8, 0x00, 0x75, 0x04, 0xC0, 0x82, 0x91, 0x00, 0xC0,
+ 0x12, 0x91, 0x01, 0xD6, 0x00, 0x75, 0x05, 0xC0, 0xA2, 0x92, 0xFE, 0xFF, 0x40, 0x90, 0x01, 0xDA, 0x00, 0x75, 0x04, 0xC0, 0x82, 0x93, 0xFD, 0xFF, 0x80, 0x93, 0x0D, 0x02, 0x01, 0xC0,
+ 0x40, 0x2A, 0x00, 0x75, 0xFD, 0xFF, 0xC2, 0x92, 0x90, 0xF2, 0x49, 0xAA, 0x08, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0xFD, 0xFF, 0xE4, 0x91, 0xFE, 0xCF, 0x7C, 0x2B, 0x00, 0xC3, 0x08, 0x5A,
+ 0xF8, 0x03, 0xFD, 0xFF, 0x00, 0x91, 0x8D, 0x02, 0xFF, 0xC0, 0x40, 0x2B, 0x09, 0xC0, 0x80, 0x75, 0x01, 0xC0, 0xBE, 0x2A, 0x00, 0xC0, 0xE4, 0x93, 0x10, 0xDA, 0x5D, 0xAA, 0x3C, 0x2A,
+ 0x04, 0x75, 0x00, 0xC0, 0x24, 0x93, 0x10, 0xD2, 0x41, 0xAA, 0x02, 0x75, 0x00, 0xC0, 0x84, 0x92, 0x20, 0xB7, 0x8C, 0x49, 0x01, 0xC0, 0x0A, 0x0A, 0x08, 0x0A, 0x48, 0x70, 0x00, 0xC0,
+ 0x92, 0x91, 0x90, 0xF2, 0x49, 0xAA, 0x04, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0xA2, 0x90, 0x8D, 0x05, 0xD4, 0xFF, 0x9A, 0x9A, 0x84, 0x1A, 0x7F, 0x75, 0xFB, 0xFF, 0xC2, 0x93,
+ 0x60, 0xB7, 0x8C, 0x46, 0xB7, 0xCF, 0xFE, 0x0D, 0x00, 0xCF, 0x80, 0x0D, 0x08, 0xF2, 0x63, 0xA9, 0x12, 0xD0, 0xD2, 0x18, 0x10, 0xF2, 0x2F, 0x80, 0x00, 0xC2, 0x00, 0x75, 0x08, 0xF2,
+ 0x66, 0xA9, 0x31, 0xD0, 0x70, 0x09, 0x00, 0xC0, 0x12, 0x91, 0x87, 0x00, 0x80, 0xB7, 0x2D, 0x45, 0x00, 0x75, 0xFF, 0xFF, 0xA2, 0x93, 0x08, 0xF2, 0x61, 0xAA, 0x4D, 0x9E, 0x7F, 0x75,
+ 0x85, 0x03, 0x08, 0xF2, 0x02, 0xA1, 0xFF, 0xFF, 0xA4, 0x90, 0xFA, 0xFF, 0x20, 0x93, 0x8D, 0x02, 0x01, 0xC0, 0xBE, 0x2A, 0xA4, 0xD2, 0x88, 0x59, 0xF4, 0xFF, 0xB6, 0x98, 0x84, 0x1A,
+ 0x7F, 0x75, 0xFA, 0xFF, 0xC2, 0x91, 0x80, 0xB7, 0x8C, 0x47, 0x10, 0xC8, 0x87, 0x9C, 0x51, 0xD2, 0xC8, 0x08, 0x29, 0xF2, 0x65, 0xAA, 0x80, 0xB5, 0x2D, 0x40, 0xFF, 0xFF, 0x81, 0x93,
+ 0xFA, 0xFF, 0x00, 0x90, 0x10, 0xD2, 0x41, 0xAA, 0x04, 0x75, 0x82, 0x0E, 0x02, 0xD0, 0xD2, 0x0E, 0x82, 0x0D, 0x00, 0xC3, 0x90, 0x5A, 0x01, 0xCF, 0x00, 0x2B, 0xD4, 0xFF, 0x78, 0x98,
+ 0x01, 0xD4, 0x80, 0x75, 0x52, 0xB3, 0x22, 0x48, 0x00, 0xC0, 0x82, 0x90, 0x6A, 0x9E, 0x86, 0x0F, 0x82, 0x0D, 0x8B, 0x01, 0x02, 0x0D, 0xD4, 0xFF, 0x9B, 0x98, 0xF9, 0xFF, 0x80, 0x90,
+ 0x00, 0xC3, 0x10, 0x5A, 0x50, 0xF2, 0x51, 0xA2, 0x08, 0xDA, 0xE1, 0xA8, 0x90, 0xDA, 0xD5, 0xA0, 0xF5, 0xFF, 0xE0, 0x91, 0x08, 0xF2, 0xE2, 0xA9, 0x08, 0xF2, 0xE5, 0xA9, 0xA0, 0x0B,
+ 0xF4, 0xFF, 0xED, 0x99, 0xF8, 0xFF, 0x20, 0x92, 0x08, 0xF2, 0x63, 0xA9, 0x8A, 0x0D, 0x5F, 0xB5, 0x7C, 0x7F, 0x08, 0xF2, 0xE6, 0xAA, 0x02, 0x85, 0x42, 0xB5, 0x18, 0x41, 0xD4, 0xFF,
+ 0x4A, 0x98, 0x12, 0xD0, 0xE2, 0x29, 0xA0, 0xB7, 0x8C, 0x43, 0x71, 0xC1, 0xCD, 0x9C, 0x82, 0x09, 0x0B, 0x05, 0x06, 0x09, 0xD4, 0xFF, 0xC6, 0x99, 0x08, 0xF2, 0x69, 0xAB, 0x8A, 0x0D,
+ 0x02, 0x0D, 0x02, 0x09, 0x00, 0xC3, 0x90, 0x59, 0xD4, 0xFF, 0x66, 0x98, 0xD4, 0xFF, 0xD6, 0x99, 0x8E, 0x0D, 0xD4, 0xFF, 0xDB, 0x99, 0xD4, 0xFF, 0xC0, 0x9B, 0x86, 0x0D, 0xD4, 0xFF,
+ 0xD6, 0x99, 0x80, 0xB7, 0x8C, 0x46, 0x0A, 0x85, 0x08, 0xF2, 0x0F, 0xA1, 0x71, 0xC1, 0xCD, 0x9C, 0xB0, 0x0B, 0xF6, 0xFF, 0xA0, 0x93, 0x29, 0xF2, 0x65, 0xAA, 0x50, 0xF2, 0x59, 0xA2,
+ 0x29, 0xF2, 0xE5, 0xA8, 0x50, 0xF2, 0xDD, 0xA0, 0x29, 0xF2, 0x65, 0xAA, 0xD1, 0xD0, 0xE8, 0x0C, 0x50, 0xF2, 0x55, 0xA2, 0x80, 0xB7, 0x29, 0x40, 0x3F, 0xB7, 0xEC, 0x7F, 0x30, 0x2A,
+ 0x48, 0x70, 0x80, 0xB5, 0x88, 0x44, 0x00, 0xC0, 0xA2, 0x91, 0x02, 0x85, 0x73, 0xC0, 0xCE, 0x9C, 0x90, 0xF2, 0x49, 0xAA, 0x10, 0xC0, 0x00, 0x3A, 0x90, 0xF2, 0x49, 0xA2, 0x73, 0xC0,
+ 0xCE, 0x9C, 0x29, 0xF2, 0x65, 0xAA, 0x10, 0xDA, 0xDD, 0xA8, 0x90, 0xF2, 0x41, 0xA2, 0x29, 0xF2, 0xE6, 0xA8, 0xBC, 0x28, 0x48, 0x74, 0x90, 0xF2, 0xC6, 0xA0, 0xF5, 0xFF, 0x84, 0x91,
+ 0x90, 0xF2, 0x49, 0xAA, 0x20, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0xF5, 0xFF, 0xA2, 0x90, 0x8D, 0x05, 0x54, 0xC0, 0x71, 0x99, 0xF5, 0xFF, 0x00, 0x90, 0xC0, 0x77, 0x00, 0xC0, 0xA2, 0x90,
+ 0x82, 0x0D, 0xB4, 0xFF, 0xDF, 0x9B, 0x10, 0xD2, 0x41, 0xAA, 0x04, 0x75, 0x03, 0xC0, 0xA4, 0x90, 0x90, 0xF2, 0x49, 0xAA, 0x04, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x04, 0x92, 0x90, 0xF2,
+ 0x49, 0xAA, 0x40, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x22, 0x91, 0x8D, 0x05, 0x01, 0xC4, 0x82, 0x09, 0xF4, 0xFF, 0x29, 0x98, 0x01, 0xC0, 0x20, 0x92, 0x40, 0xB7, 0x8C, 0x49,
+ 0x01, 0xC0, 0x0A, 0x0A, 0x08, 0x0A, 0x88, 0x70, 0x01, 0xC0, 0x86, 0x08, 0x10, 0xC0, 0xAC, 0x08, 0x82, 0x0C, 0x0A, 0xD0, 0x92, 0x0C, 0x82, 0x70, 0x49, 0x9E, 0x02, 0x0A, 0x02, 0xD0,
+ 0x42, 0x0A, 0x48, 0x78, 0x00, 0xC0, 0x82, 0x93, 0x90, 0xF2, 0x49, 0xAA, 0x10, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x24, 0x91, 0x90, 0xF2, 0x49, 0xAA, 0x04, 0xC0, 0x00, 0x2A,
+ 0x00, 0x75, 0x00, 0xC0, 0xC2, 0x91, 0x90, 0xDA, 0x51, 0xAA, 0x0E, 0xC0, 0x7C, 0x2A, 0x06, 0x75, 0x00, 0xC0, 0xF4, 0x90, 0x8D, 0x05, 0x01, 0xC0, 0xC2, 0x09, 0xD4, 0xFF, 0xF8, 0x9B,
+ 0x7F, 0xB7, 0x74, 0x7F, 0xF4, 0xFF, 0xA7, 0x99, 0x8A, 0x0D, 0xD4, 0xFF, 0x3A, 0x99, 0x01, 0xD9, 0x84, 0x9C, 0x10, 0xF2, 0x51, 0xA2, 0x06, 0x85, 0x20, 0xB7, 0x94, 0x47, 0x42, 0xB5,
+ 0x18, 0x40, 0x90, 0xF2, 0x49, 0xAA, 0xC0, 0xB5, 0x94, 0x5F, 0x20, 0xB7, 0x4D, 0x40, 0x00, 0xC2, 0x04, 0x5A, 0x01, 0xC0, 0x04, 0x2A, 0xFF, 0xCF, 0xFA, 0x28, 0x98, 0x30, 0x84, 0x38,
+ 0x20, 0xB5, 0x4D, 0x40, 0x01, 0xD9, 0x84, 0x9C, 0x50, 0xF2, 0x45, 0xA2, 0xD4, 0xFF, 0x26, 0x9B, 0x06, 0x08, 0x9F, 0xB7, 0xEE, 0x7D, 0xBF, 0xB7, 0x6E, 0x7E, 0xDF, 0xB7, 0xEE, 0x7E,
+ 0xFF, 0xB7, 0x6E, 0x7F, 0x02, 0xC0, 0x20, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x20, 0xB7, 0x8C, 0x46, 0x80, 0xB7, 0x2D, 0x46, 0x20, 0xB7, 0x2D, 0x48, 0x00, 0xC4, 0x00, 0x2A, 0x00, 0x75,
+ 0x0F, 0xC0, 0xFE, 0x28, 0x20, 0xB5, 0x8C, 0x49, 0x00, 0xC0, 0x42, 0x91, 0x01, 0xC0, 0x06, 0x0A, 0x10, 0xC0, 0x2C, 0x0A, 0x80, 0xB5, 0x8C, 0x49, 0x01, 0xC0, 0xE0, 0x90, 0x03, 0xC0,
+ 0x42, 0x74, 0x01, 0xC0, 0x74, 0x90, 0x20, 0xB7, 0x8C, 0x41, 0x80, 0xB7, 0x2D, 0x45, 0x00, 0xC1, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x84, 0x91, 0x20, 0xB7, 0x0C, 0x55, 0x3B, 0xC0,
+ 0x7A, 0x0A, 0x04, 0xC0, 0x04, 0x0A, 0x80, 0xB5, 0x2D, 0x40, 0x80, 0xB5, 0xAD, 0x40, 0x80, 0xB7, 0x8C, 0x49, 0xFF, 0xCF, 0x78, 0x0A, 0x06, 0x75, 0x00, 0xC0, 0x32, 0x91, 0x20, 0xB7,
+ 0x0C, 0x55, 0x80, 0xB7, 0xAD, 0x40, 0x08, 0x3A, 0x80, 0xB5, 0xAD, 0x40, 0xD4, 0xFF, 0x09, 0x98, 0x8A, 0x0D, 0xB4, 0xFF, 0xD2, 0x9A, 0x82, 0x0D, 0xB4, 0xFF, 0xCF, 0x9A, 0x54, 0xC0,
+ 0x09, 0x98, 0x80, 0xB7, 0x8C, 0x41, 0x20, 0xB7, 0x0C, 0x45, 0x20, 0xB7, 0x94, 0x47, 0x02, 0x85, 0x09, 0xC2, 0xBE, 0x0D, 0x04, 0xC1, 0xBC, 0x0D, 0x08, 0xF2, 0x03, 0xA1, 0x40, 0xB5,
+ 0xBD, 0x46, 0x71, 0xD3, 0x18, 0x0E, 0x91, 0xD3, 0x90, 0x0C, 0x08, 0xF2, 0x03, 0xA1, 0xB0, 0xC0, 0x42, 0x85, 0x40, 0xB5, 0x3D, 0x40, 0x91, 0xD3, 0x18, 0x0E, 0xB1, 0xD3, 0x90, 0x0C,
+ 0xA0, 0xB7, 0x8C, 0x46, 0x88, 0xC0, 0x42, 0x85, 0x08, 0xF2, 0x03, 0xA1, 0x04, 0xC0, 0x42, 0x85, 0x40, 0xB5, 0x3D, 0x40, 0x0A, 0xC0, 0x40, 0x85, 0x40, 0xB5, 0x5D, 0x40, 0x7F, 0x85,
+ 0x08, 0xF2, 0x2F, 0xA1, 0xD4, 0xFF, 0x3C, 0x98, 0xF1, 0xC1, 0x02, 0x0A, 0xF0, 0xC0, 0x00, 0x0A, 0x08, 0xF2, 0x39, 0xA2, 0x20, 0xB7, 0x8C, 0x49, 0x01, 0xC0, 0x06, 0x0A, 0x24, 0x0A,
+ 0x48, 0x70, 0x00, 0xC0, 0x02, 0x91, 0x86, 0x0D, 0x82, 0x09, 0x02, 0x0D, 0x06, 0x09, 0xD4, 0xFF, 0x61, 0x98, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C,
+ 0x05, 0xA6, 0x80, 0xB7, 0x8C, 0x4A, 0x20, 0xB7, 0x94, 0x55, 0x04, 0x0A, 0x1C, 0x2A, 0x53, 0xD1, 0x41, 0x69, 0x10, 0xE2, 0xAB, 0x80, 0x80, 0xB7, 0x29, 0x41, 0x1C, 0xC0, 0x3E, 0x7D,
+ 0x4D, 0x9E, 0x00, 0xC0, 0x42, 0x92, 0x54, 0xC0, 0xA7, 0x98, 0x80, 0xB7, 0x8C, 0x4A, 0x04, 0x0A, 0x1C, 0x2A, 0x53, 0xD1, 0x41, 0x69, 0x10, 0xE3, 0xA3, 0x80, 0x80, 0xB7, 0x29, 0x41,
+ 0x1C, 0xC0, 0x3E, 0x7D, 0xFF, 0xFF, 0x44, 0x92, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x20, 0x84, 0x80, 0xB7, 0x8C, 0x4A, 0xA0, 0xB7,
+ 0x94, 0x55, 0x53, 0xD1, 0x41, 0x69, 0x5D, 0x9E, 0x40, 0xE3, 0x2B, 0x81, 0x5F, 0xB5, 0x64, 0x7F, 0xF4, 0xFF, 0xCB, 0x9B, 0x40, 0xB7, 0x94, 0x43, 0x72, 0xC0, 0xCE, 0x9C, 0x82, 0x85,
+ 0x5F, 0xB7, 0x64, 0x7F, 0x06, 0x85, 0x80, 0xF0, 0xCB, 0xA1, 0x00, 0xD0, 0x4B, 0xA1, 0x08, 0xF2, 0x2D, 0xA9, 0x00, 0xF0, 0x45, 0xA1, 0x08, 0xF2, 0x25, 0xAA, 0x80, 0xF0, 0x4D, 0xA2,
+ 0x08, 0xF2, 0xA9, 0xA8, 0x40, 0xF0, 0xD1, 0xA0, 0x08, 0xDA, 0x25, 0xAA, 0xFE, 0xC0, 0x7C, 0x2A, 0x80, 0xD8, 0x55, 0xA2, 0x08, 0xF2, 0xB1, 0xA8, 0x00, 0xF0, 0xC9, 0xA0, 0x08, 0xF2,
+ 0x35, 0xAA, 0x00, 0xF0, 0x4D, 0xA2, 0x48, 0xDA, 0xB5, 0xA8, 0x80, 0xD8, 0xD1, 0xA0, 0x08, 0xF2, 0xBE, 0xA8, 0x80, 0xF0, 0xCA, 0xA0, 0x80, 0xF0, 0x49, 0xAA, 0x80, 0xC0, 0x00, 0x2A,
+ 0x00, 0x75, 0x20, 0xB7, 0x14, 0x4D, 0x02, 0x0A, 0x01, 0xD0, 0x42, 0x1A, 0x4B, 0x9E, 0xFF, 0x08, 0x98, 0x40, 0x04, 0x2A, 0x88, 0x28, 0x42, 0x32, 0x00, 0xD0, 0x41, 0xA2, 0x48, 0xDA,
+ 0xB1, 0xA8, 0x6D, 0x9E, 0xC4, 0x70, 0x40, 0xF0, 0xD7, 0xA1, 0x40, 0xF0, 0xDB, 0xA1, 0x40, 0xF0, 0xDF, 0xA1, 0x80, 0xD8, 0xDF, 0xA1, 0x80, 0xD8, 0xD9, 0xA0, 0x00, 0xC0, 0x02, 0x91,
+ 0x80, 0xF0, 0x49, 0xAA, 0x04, 0xC0, 0x00, 0x3A, 0x80, 0xF0, 0x49, 0xA2, 0x20, 0xB7, 0x8C, 0x4D, 0x00, 0xF0, 0x45, 0xAA, 0x48, 0x70, 0x00, 0xC0, 0x02, 0x91, 0x80, 0xF0, 0x49, 0xAA,
+ 0x08, 0xC0, 0x00, 0x3A, 0x80, 0xF0, 0x49, 0xA2, 0x00, 0xF0, 0x4D, 0xAA, 0x00, 0xCC, 0x00, 0x7D, 0x00, 0xC0, 0x04, 0x91, 0x80, 0xF0, 0x49, 0xAA, 0x40, 0xC0, 0x00, 0x3A, 0x80, 0xF0,
+ 0x49, 0xA2, 0x00, 0xD0, 0x41, 0xAA, 0x04, 0x75, 0x00, 0xC0, 0x84, 0x93, 0x80, 0xF0, 0x49, 0xAA, 0x40, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0xA2, 0x92, 0x80, 0xF0, 0x49, 0xAA,
+ 0x04, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0xE4, 0x91, 0x80, 0xF0, 0x49, 0xAA, 0x04, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x02, 0x91, 0x80, 0xF0, 0x49, 0xAA, 0x20, 0xC0, 0x00, 0x3A,
+ 0x80, 0xF0, 0x49, 0xA2, 0x00, 0xD0, 0x41, 0xAA, 0x04, 0x75, 0x00, 0xC0, 0xA4, 0x92, 0x00, 0xD8, 0x5D, 0xAA, 0x3C, 0x2A, 0x08, 0x75, 0x00, 0xC0, 0xE4, 0x91, 0x80, 0xF0, 0x49, 0xAA,
+ 0x04, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x02, 0x91, 0x80, 0xF0, 0x49, 0xAA, 0x20, 0xC0, 0x00, 0x3A, 0x80, 0xF0, 0x49, 0xA2, 0x72, 0xC0, 0xCE, 0x9C, 0x5F, 0xB5, 0x64, 0x7F,
+ 0xD4, 0xFF, 0xBB, 0x99, 0x80, 0xB7, 0x0C, 0x55, 0x5F, 0xB7, 0x64, 0x7F, 0x20, 0xB7, 0x94, 0x46, 0x08, 0xF2, 0x85, 0xA8, 0xCC, 0x9D, 0x82, 0x09, 0x20, 0xB5, 0x4D, 0x44, 0x5F, 0xB5,
+ 0x64, 0x7F, 0x34, 0xC0, 0xE5, 0x9A, 0x5F, 0xB7, 0x64, 0x7F, 0x00, 0xD0, 0x41, 0xAA, 0x04, 0x75, 0x00, 0xC0, 0x24, 0x91, 0xCC, 0x9D, 0xF4, 0xFF, 0x14, 0x98, 0x14, 0xC0, 0xD6, 0x99,
+ 0x02, 0xC0, 0x40, 0x90, 0x80, 0xF0, 0x49, 0xAA, 0x10, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x02, 0x91, 0x80, 0xF0, 0x49, 0xAA, 0x01, 0xC0, 0x08, 0x3A, 0x80, 0xF0, 0x49, 0xA2, 0xCD, 0xCC,
+ 0xB2, 0x08, 0xCC, 0xCC, 0xB4, 0x08, 0x10, 0xF3, 0x23, 0x8A, 0x43, 0x62, 0x00, 0xC2, 0x13, 0x5A, 0x04, 0x1A, 0x1C, 0x2A, 0x53, 0xD1, 0x41, 0x69, 0x00, 0xD8, 0xDE, 0xA8, 0x10, 0xF3,
+ 0x23, 0x80, 0x08, 0xDA, 0x9D, 0xA8, 0xBC, 0x2C, 0x4C, 0x9E, 0xBC, 0x28, 0x02, 0x71, 0x00, 0xC0, 0xC2, 0x92, 0xCC, 0x9D, 0x01, 0xC1, 0x82, 0x09, 0x5F, 0xB5, 0x64, 0x7F, 0xD4, 0xFF,
+ 0x08, 0x9A, 0x02, 0x85, 0x73, 0xC0, 0xCE, 0x9C, 0x5F, 0xB7, 0x64, 0x7F, 0x80, 0xF0, 0x49, 0xAA, 0x41, 0xC0, 0x00, 0x3A, 0x80, 0xF0, 0x49, 0xA2, 0x73, 0xC0, 0xCE, 0x9C, 0xCC, 0x9D,
+ 0x01, 0xC2, 0x82, 0x09, 0x5F, 0xB5, 0x64, 0x7F, 0xD4, 0xFF, 0xF4, 0x99, 0x5F, 0xB7, 0x64, 0x7F, 0x80, 0xB7, 0x8C, 0x4A, 0x00, 0xF0, 0xC5, 0xA8, 0x04, 0x0A, 0x1C, 0x2A, 0x80, 0xB5,
+ 0x8C, 0x4A, 0x20, 0xB5, 0x0C, 0x4D, 0x20, 0xB5, 0x8C, 0x4D, 0x9F, 0xB7, 0xEE, 0x7E, 0xBF, 0xB7, 0x6E, 0x7F, 0x60, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x20, 0xB7, 0x8C, 0x4A, 0x20, 0xB7,
+ 0x94, 0x55, 0x5D, 0x9E, 0x53, 0xD1, 0x11, 0x69, 0x08, 0xF2, 0x25, 0xAA, 0x20, 0xF2, 0xAB, 0x80, 0x10, 0xF2, 0x25, 0xA2, 0xF4, 0xFF, 0x9D, 0x9A, 0x60, 0xB7, 0x8C, 0x43, 0x71, 0xC0,
+ 0xCF, 0x9C, 0x06, 0x85, 0x10, 0xD2, 0x2B, 0xA1, 0x0E, 0x85, 0x10, 0xD2, 0x23, 0xA1, 0x08, 0xF2, 0x29, 0xAA, 0x10, 0xF2, 0x29, 0xA2, 0x08, 0xF2, 0xAD, 0xA8, 0x40, 0xB7, 0x14, 0x4D,
+ 0x10, 0xF2, 0xA6, 0xA8, 0x90, 0xF2, 0xAD, 0xA0, 0x08, 0xDA, 0x25, 0xA9, 0x01, 0xC0, 0x06, 0x0A, 0x82, 0x72, 0x10, 0xF2, 0x2D, 0xA2, 0x90, 0xF2, 0x29, 0xA1, 0x00, 0xC0, 0x02, 0x91,
+ 0x90, 0xF2, 0x29, 0xAA, 0x04, 0xC0, 0x00, 0x3A, 0x90, 0xF2, 0x29, 0xA2, 0x71, 0xC0, 0xCF, 0x9C, 0xD4, 0xFF, 0x0E, 0x99, 0x20, 0xB7, 0x0C, 0x55, 0x20, 0xB7, 0x94, 0x46, 0x80, 0xB7,
+ 0xAD, 0x40, 0x8B, 0x05, 0x01, 0xC8, 0x82, 0x09, 0x80, 0xB5, 0x4D, 0x44, 0xD4, 0xFF, 0x98, 0x99, 0x10, 0xF2, 0xA5, 0xA8, 0x80, 0xB7, 0x8C, 0x4A, 0x20, 0xB5, 0x0C, 0x4D, 0x04, 0x0A,
+ 0x1C, 0x2A, 0x80, 0xB5, 0x8C, 0x4A, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x80, 0xB7, 0x8C, 0x41, 0x02, 0x87, 0x0A, 0xF2, 0x00, 0xA1, 0x08, 0xF2,
+ 0x89, 0xA8, 0x9A, 0x9E, 0xF1, 0xD3, 0x3E, 0x2D, 0x40, 0x74, 0x06, 0x85, 0x40, 0xB5, 0x1C, 0x4A, 0x00, 0xC0, 0x22, 0x92, 0x80, 0xB7, 0x8C, 0x46, 0x01, 0xC0, 0x86, 0x0C, 0x9C, 0x0C,
+ 0xF1, 0xD3, 0xC0, 0x08, 0x40, 0xB5, 0x3D, 0x40, 0x0E, 0xC0, 0x50, 0x0A, 0x08, 0xF2, 0x82, 0xA0, 0x40, 0xB5, 0x04, 0x4C, 0x10, 0xC0, 0x82, 0x74, 0x00, 0xC0, 0xE2, 0x90, 0x10, 0xC0,
+ 0x84, 0x74, 0x00, 0xC0, 0xC2, 0x90, 0x22, 0x9C, 0x85, 0x05, 0xF2, 0xFF, 0x40, 0x92, 0x85, 0x05, 0xFB, 0xFF, 0x80, 0x93, 0x05, 0xA6, 0x20, 0x84, 0x82, 0xB7, 0x88, 0x40, 0xCD, 0xCC,
+ 0xB2, 0x0C, 0xCC, 0xCC, 0xB4, 0x0C, 0x5D, 0x9E, 0x20, 0xB7, 0x8C, 0x55, 0x1C, 0xC0, 0x3E, 0x7D, 0x4C, 0x9E, 0xD2, 0x10, 0x99, 0x60, 0xA4, 0xD0, 0x93, 0x5A, 0x00, 0xC0, 0x42, 0x91,
+ 0x34, 0xC0, 0xCA, 0x9A, 0x82, 0xB7, 0x88, 0x40, 0x1C, 0xC0, 0x3E, 0x7D, 0xFF, 0xFF, 0x44, 0x93, 0x01, 0xD9, 0x84, 0x9C, 0x08, 0xF2, 0x39, 0xA2, 0xA0, 0xB5, 0x14, 0x4B, 0xAB, 0x9E,
+ 0x86, 0x09, 0x34, 0xC0, 0xD7, 0x99, 0x06, 0x85, 0x42, 0xB5, 0x98, 0x40, 0x02, 0x85, 0x73, 0xC0, 0xCE, 0x9C, 0x88, 0xF2, 0x29, 0xAA, 0x03, 0xC0, 0x00, 0x3A, 0x88, 0xF2, 0x29, 0xA2,
+ 0x73, 0xC0, 0xCE, 0x9C, 0x88, 0xF2, 0x29, 0xAA, 0x04, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x22, 0x92, 0x20, 0xB7, 0x94, 0x46, 0x20, 0xB7, 0x4D, 0x40, 0xFD, 0xCF, 0xFE, 0x28,
+ 0x03, 0x02, 0x03, 0xC0, 0x00, 0x3A, 0x80, 0xB5, 0x4D, 0x40, 0x40, 0xB7, 0x4D, 0x40, 0x20, 0xB5, 0x4D, 0x40, 0xA0, 0xB7, 0x14, 0x45, 0x02, 0x87, 0x12, 0xF2, 0x34, 0xA1, 0x08, 0xD2,
+ 0x21, 0xAA, 0x02, 0x75, 0x00, 0xC0, 0xC4, 0x92, 0x80, 0xB7, 0x08, 0x45, 0x1C, 0xC0, 0x3E, 0x7D, 0x00, 0xC0, 0x62, 0x91, 0x09, 0xC8, 0xC2, 0x0D, 0x16, 0xC2, 0xE0, 0x0D, 0x8B, 0x01,
+ 0x34, 0xC0, 0x4C, 0x9A, 0x02, 0xC0, 0x60, 0x93, 0xAB, 0x9E, 0xD4, 0xFF, 0xD0, 0x9A, 0x02, 0xC0, 0xC0, 0x92, 0x88, 0xF2, 0x29, 0xAA, 0x04, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0,
+ 0xA2, 0x93, 0x80, 0xB7, 0x0C, 0x47, 0x12, 0xD2, 0xC0, 0x08, 0x42, 0x85, 0x40, 0xB5, 0x5D, 0x40, 0x92, 0xD2, 0xC0, 0x08, 0x51, 0xD2, 0xC0, 0x08, 0x40, 0xB5, 0x3D, 0x40, 0x40, 0xB5,
+ 0x5D, 0x40, 0x12, 0xD3, 0xC0, 0x08, 0xD1, 0xD2, 0xC0, 0x08, 0x40, 0xB5, 0x3D, 0x40, 0x0C, 0xC0, 0x40, 0x0A, 0x40, 0xB5, 0x5D, 0x40, 0x08, 0xF2, 0x03, 0xA1, 0x88, 0xF2, 0x29, 0xAA,
+ 0x04, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x42, 0x92, 0x80, 0xB7, 0x8C, 0x47, 0x2C, 0xC0, 0x60, 0x0A, 0x2B, 0xF2, 0x04, 0xA1, 0x2B, 0xF2, 0x04, 0xA1, 0x2B, 0xF2, 0x04, 0xA1,
+ 0x2B, 0xF2, 0x04, 0xA1, 0x2B, 0xF2, 0x0C, 0xA1, 0x0A, 0xF2, 0x00, 0xA1, 0x5F, 0xB5, 0x64, 0x7F, 0x14, 0xC0, 0x73, 0x98, 0x08, 0xD2, 0x21, 0xAA, 0x04, 0x75, 0x5F, 0xB7, 0x64, 0x7F,
+ 0x00, 0xC0, 0x84, 0x90, 0x52, 0xF2, 0x34, 0xA1, 0x20, 0xB7, 0x94, 0x47, 0x20, 0xB7, 0x8C, 0x46, 0x80, 0xB7, 0xAD, 0x45, 0x40, 0x2A, 0x00, 0x75, 0xFF, 0xFF, 0x82, 0x93, 0x71, 0xD2,
+ 0x10, 0x0E, 0x08, 0xF2, 0x81, 0xA8, 0x02, 0x85, 0x73, 0xC0, 0xCE, 0x9C, 0x88, 0xF2, 0x29, 0xAA, 0x05, 0xC0, 0x00, 0x3A, 0x88, 0xF2, 0x29, 0xA2, 0x73, 0xC0, 0xCE, 0x9C, 0x06, 0x08,
+ 0x9F, 0xB7, 0xEE, 0x7E, 0xBF, 0xB7, 0x6E, 0x7F, 0x60, 0x8C, 0x22, 0x9C, 0x20, 0xB7, 0x94, 0x55, 0x82, 0x08, 0x80, 0xB7, 0x49, 0x41, 0xF2, 0xF3, 0x4E, 0x29, 0x00, 0xC0, 0x82, 0x90,
+ 0x06, 0x08, 0x22, 0x9C, 0x84, 0x08, 0x4E, 0x74, 0x04, 0xC0, 0xC0, 0x0C, 0xFF, 0xFF, 0x94, 0x92, 0x60, 0xB7, 0x0C, 0x4A, 0xC2, 0x74, 0x00, 0xC0, 0x84, 0x92, 0x20, 0xB7, 0x0C, 0x55,
+ 0x80, 0xB7, 0x8C, 0x46, 0x20, 0xB7, 0x35, 0x40, 0x40, 0xB7, 0x8C, 0x41, 0x48, 0xF2, 0x82, 0xA0, 0x08, 0xF0, 0xC1, 0xA1, 0x40, 0xB5, 0x14, 0x4A, 0x0E, 0xC0, 0x50, 0x0A, 0x08, 0xF2,
+ 0x02, 0xA1, 0x02, 0x08, 0x22, 0x9C, 0x20, 0xB7, 0x94, 0x46, 0x20, 0xB7, 0x8C, 0x41, 0x02, 0x85, 0x33, 0xC0, 0x52, 0x0A, 0x32, 0xC0, 0x50, 0x0A, 0x40, 0xB5, 0x5D, 0x4D, 0x80, 0xB5,
+ 0xCD, 0x4D, 0x80, 0xB7, 0x2D, 0x45, 0x20, 0x2A, 0x00, 0x75, 0x02, 0x0A, 0x00, 0xC0, 0xC4, 0x90, 0x01, 0xC0, 0x06, 0x0A, 0x10, 0xC0, 0x00, 0x0A, 0xFC, 0xCF, 0x3D, 0x2A, 0x5C, 0x3A,
+ 0x80, 0xB5, 0xCD, 0x4C, 0x22, 0x9C, 0x20, 0xB7, 0x94, 0x46, 0x20, 0xB7, 0x8C, 0x41, 0x02, 0x85, 0x01, 0xC2, 0x22, 0x0A, 0x00, 0xC2, 0x20, 0x0A, 0x40, 0xB5, 0xDD, 0x4E, 0x80, 0xB5,
+ 0x4D, 0x4F, 0x80, 0xB7, 0x2D, 0x45, 0x20, 0x2A, 0x00, 0x75, 0x02, 0x0A, 0x00, 0xC0, 0xC4, 0x90, 0x01, 0xC0, 0x06, 0x0A, 0x10, 0xC0, 0x00, 0x0A, 0xF0, 0xCF, 0x3D, 0x2A, 0x0C, 0xC0,
+ 0x5C, 0x3A, 0x80, 0xB5, 0x4D, 0x4E, 0x22, 0x9C, 0x02, 0x85, 0x40, 0xB5, 0x1C, 0x4C, 0x22, 0x9C, 0x0D, 0xA6, 0x20, 0xB7, 0x08, 0x45, 0x87, 0x06, 0x6C, 0x9E, 0x01, 0xC2, 0x00, 0x2A,
+ 0x00, 0x75, 0x84, 0x08, 0x20, 0xB5, 0x08, 0x45, 0x00, 0xC0, 0x42, 0x91, 0x6C, 0x9E, 0x01, 0xC0, 0x5C, 0x7F, 0xFF, 0xCD, 0x7E, 0x2A, 0xA5, 0x9E, 0x35, 0xB3, 0x42, 0x48, 0x09, 0xC2,
+ 0x06, 0x0A, 0x02, 0xC1, 0x38, 0x0A, 0x69, 0x9E, 0x48, 0x78, 0x00, 0xC0, 0x42, 0x92, 0xFE, 0xCE, 0x49, 0x0A, 0x48, 0x78, 0x00, 0xC0, 0x02, 0x91, 0x6B, 0x9E, 0x96, 0x0D, 0x14, 0xC0,
+ 0xE1, 0x9B, 0x00, 0xC0, 0xC0, 0x90, 0x6B, 0x9E, 0x92, 0x0D, 0x14, 0xC0, 0xDB, 0x9B, 0xF9, 0x2E, 0x11, 0xD0, 0x52, 0x2E, 0x00, 0x75, 0x00, 0xC0, 0x82, 0x90, 0x14, 0xC0, 0x0E, 0x99,
+ 0x11, 0xD1, 0x50, 0x2E, 0x00, 0x75, 0x00, 0xC0, 0xA2, 0x90, 0x8B, 0x05, 0x14, 0xC0, 0x93, 0x99, 0x6C, 0x9E, 0x01, 0xC0, 0x10, 0x2A, 0x00, 0x75, 0x8B, 0x04, 0x01, 0xC0, 0xA8, 0x2C,
+ 0x06, 0xC0, 0xA2, 0x90, 0x80, 0xB7, 0x0C, 0x4B, 0xC0, 0xB7, 0x8C, 0x55, 0x53, 0xD1, 0x41, 0x69, 0x10, 0xF3, 0xA5, 0x80, 0x3F, 0x75, 0x00, 0xC0, 0x64, 0x90, 0x00, 0x9F, 0x20, 0xB7,
+ 0x8C, 0x41, 0x80, 0xB7, 0x8C, 0x46, 0x20, 0xB7, 0x35, 0x41, 0x40, 0xB7, 0x0C, 0x45, 0x0E, 0xC0, 0x60, 0x0A, 0x08, 0xF2, 0x82, 0xA0, 0x88, 0xF0, 0xC9, 0xA8, 0x88, 0xF2, 0x29, 0xAA,
+ 0x02, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x88, 0xDA, 0xB1, 0xA0, 0x00, 0xC0, 0xA2, 0x90, 0x8B, 0x05, 0x14, 0xC0, 0x05, 0x9B, 0x01, 0xD9, 0x84, 0x9C, 0x08, 0xF2, 0x3D, 0xA2, 0x08, 0xD2,
+ 0xA1, 0xA8, 0x46, 0x74, 0x04, 0xC0, 0x02, 0x90, 0x80, 0xB7, 0x0C, 0x4B, 0x04, 0x0A, 0x1C, 0x2A, 0x53, 0xD1, 0x41, 0x69, 0x10, 0xE3, 0xA5, 0x80, 0x80, 0xB7, 0x29, 0x41, 0x1C, 0xC0,
+ 0x3E, 0x7D, 0x00, 0xC0, 0x04, 0x91, 0x88, 0xF2, 0x29, 0xAA, 0x01, 0xC0, 0x0C, 0x7D, 0x01, 0xC0, 0x02, 0x90, 0x80, 0xB7, 0x2D, 0x49, 0x04, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0,
+ 0x02, 0x91, 0x88, 0xF2, 0x29, 0xAA, 0x01, 0xC0, 0x0C, 0x7D, 0x00, 0xC0, 0x62, 0x92, 0x80, 0xB7, 0x29, 0x41, 0x1C, 0xC0, 0x3E, 0x7D, 0x02, 0xC0, 0x02, 0x90, 0x80, 0xB7, 0x29, 0x40,
+ 0x06, 0x75, 0x01, 0xC0, 0x64, 0x93, 0x88, 0xF2, 0x29, 0xAA, 0x01, 0xC0, 0x0C, 0x7D, 0x01, 0xC0, 0xA4, 0x92, 0x80, 0xB7, 0x29, 0x41, 0x88, 0xF2, 0xA9, 0xA8, 0x01, 0xC0, 0x88, 0x38,
+ 0x88, 0xF2, 0xA9, 0xA0, 0xAB, 0x9E, 0xD4, 0xFF, 0x9F, 0x98, 0x88, 0xF2, 0x29, 0xAA, 0x10, 0x2A, 0x00, 0x75, 0x01, 0xC0, 0xE4, 0x92, 0x88, 0xF2, 0x29, 0xAA, 0x40, 0xC0, 0x00, 0x2A,
+ 0x00, 0x75, 0x01, 0xC0, 0x02, 0x92, 0x08, 0xD2, 0x21, 0xAA, 0x04, 0x75, 0x01, 0xC0, 0x64, 0x91, 0x08, 0xDA, 0x3D, 0xAA, 0x3C, 0x2A, 0x04, 0x75, 0x00, 0xC0, 0xE4, 0x90, 0xAB, 0x9E,
+ 0x34, 0xC0, 0x4C, 0x9B, 0x00, 0xC0, 0xA0, 0x90, 0xAB, 0x9E, 0x34, 0xC0, 0x82, 0x99, 0x88, 0xF2, 0x29, 0xAA, 0x01, 0xC8, 0x00, 0x3A, 0x88, 0xF2, 0x29, 0xA2, 0x00, 0xC0, 0xA0, 0x92,
+ 0x88, 0xF2, 0x29, 0xAA, 0x01, 0xE0, 0x18, 0x2A, 0x00, 0xC0, 0xE4, 0x91, 0x20, 0xB7, 0x8C, 0x46, 0x80, 0xB5, 0x2D, 0x4E, 0x88, 0xF2, 0x29, 0xAA, 0x11, 0xC0, 0x00, 0x3A, 0x88, 0xF2,
+ 0x29, 0xA2, 0xAB, 0x9E, 0xB4, 0xFF, 0x80, 0x9B, 0x88, 0xF2, 0x29, 0xAA, 0x01, 0xC2, 0x00, 0x3A, 0x88, 0xF2, 0x29, 0xA2, 0x08, 0xD2, 0x21, 0xAA, 0x02, 0x75, 0x8B, 0x04, 0x01, 0xC0,
+ 0xA8, 0x2C, 0x00, 0xC0, 0x04, 0x92, 0x20, 0xB7, 0x8C, 0x46, 0x80, 0xB7, 0xAD, 0x45, 0x40, 0x2A, 0x00, 0x75, 0xFF, 0xFF, 0x82, 0x93, 0x80, 0xB7, 0x8C, 0x47, 0x08, 0xC0, 0x60, 0x0A,
+ 0x08, 0xF2, 0x81, 0xA8, 0x40, 0x76, 0x01, 0xC0, 0x42, 0x91, 0x80, 0xB7, 0x0C, 0x4B, 0x20, 0xB7, 0x8C, 0x55, 0x53, 0xD1, 0x41, 0x69, 0x10, 0xF2, 0xA3, 0x80, 0x3F, 0x75, 0x00, 0xC0,
+ 0x64, 0x90, 0x00, 0x9F, 0x80, 0xB7, 0x8C, 0x46, 0x20, 0xB7, 0x94, 0x45, 0x02, 0x85, 0xC8, 0xF2, 0x13, 0xA1, 0x20, 0xB7, 0xCD, 0x42, 0x40, 0xB7, 0x9C, 0x4E, 0x88, 0xF2, 0x29, 0xAA,
+ 0x10, 0xE2, 0xA3, 0x80, 0x02, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x20, 0xB5, 0x8C, 0x4E, 0x00, 0xC0, 0xA2, 0x90, 0x8B, 0x05, 0x14, 0xC0, 0x40, 0x9A, 0xAB, 0x9E, 0xB4, 0xFF, 0x39, 0x9B,
+ 0x80, 0xB7, 0x08, 0x45, 0x04, 0x1A, 0x80, 0xB5, 0x08, 0x45, 0x9F, 0xB7, 0xEE, 0x7E, 0xBF, 0xB7, 0x6E, 0x7F, 0xDF, 0xB7, 0xEE, 0x7F, 0x60, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0xA0, 0xB7,
+ 0x8C, 0x5F, 0x01, 0xD9, 0x84, 0x9C, 0x08, 0xF2, 0x35, 0xA2, 0x20, 0xB7, 0x8C, 0x47, 0x0A, 0xC0, 0xB0, 0x08, 0x20, 0xB7, 0x35, 0x40, 0x88, 0xDA, 0x39, 0xAA, 0xA2, 0xD0, 0xC1, 0x5C,
+ 0x00, 0xC2, 0x40, 0x5A, 0x00, 0xC2, 0x41, 0x5A, 0x48, 0x70, 0x00, 0xC0, 0x02, 0x91, 0x88, 0xF2, 0x29, 0xAA, 0x01, 0xC4, 0x00, 0x3A, 0x88, 0xF2, 0x29, 0xA2, 0x88, 0xDA, 0xBD, 0xA0,
+ 0x88, 0xF2, 0x29, 0xAA, 0x20, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x04, 0x93, 0x88, 0xDA, 0x31, 0xAA, 0x00, 0xC2, 0x40, 0x5A, 0x00, 0xC2, 0x41, 0x5A, 0x48, 0x70, 0x00, 0xC0, 0xE4, 0x91,
+ 0x88, 0xF2, 0x29, 0xAA, 0x01, 0xC0, 0x10, 0x3A, 0x88, 0xF2, 0x29, 0xA2, 0x88, 0xF2, 0xA9, 0xA8, 0x90, 0x38, 0x88, 0xF2, 0xA9, 0xA0, 0xB4, 0xFF, 0xD0, 0x9A, 0xF4, 0xFF, 0x80, 0x9A,
+ 0xB4, 0xFF, 0x19, 0x9A, 0x80, 0xB7, 0x08, 0x44, 0xF1, 0xF3, 0xCE, 0x28, 0x02, 0xC0, 0x64, 0x90, 0x80, 0xB7, 0x8C, 0x46, 0x86, 0x0D, 0xC8, 0xF2, 0x85, 0xA0, 0x94, 0xFF, 0xDD, 0x9B,
+ 0x94, 0xFF, 0xF2, 0x9B, 0x94, 0xFF, 0xD1, 0x9B, 0x08, 0xF2, 0x2D, 0xAA, 0x01, 0xC0, 0x3C, 0x2A, 0x01, 0xC0, 0x08, 0x75, 0x01, 0xC0, 0x64, 0x91, 0x40, 0xB7, 0x9C, 0x5F, 0x20, 0xB7,
+ 0x94, 0x55, 0xCD, 0xCC, 0xB2, 0x08, 0xCC, 0xCC, 0xB4, 0x08, 0x10, 0xF2, 0x2B, 0x88, 0x43, 0x62, 0x00, 0xC2, 0x13, 0x5A, 0x04, 0x0A, 0x1C, 0x2A, 0x53, 0xD1, 0x41, 0x69, 0x10, 0xE2,
+ 0xAB, 0x80, 0x80, 0xB7, 0x29, 0x41, 0x1C, 0xC0, 0x3E, 0x7D, 0x00, 0xC0, 0x22, 0x91, 0x80, 0xB7, 0x2D, 0x49, 0x04, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x62, 0x91, 0x09, 0xC8,
+ 0xC2, 0x0D, 0xEE, 0xC4, 0xD0, 0x0D, 0x8B, 0x01, 0x14, 0xC0, 0xB4, 0x9B, 0x00, 0xC0, 0xE0, 0x90, 0x82, 0xB7, 0x08, 0x40, 0x04, 0x1A, 0x82, 0xB5, 0x08, 0x40, 0x9F, 0xB7, 0x6E, 0x7F,
+ 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x39, 0xF8, 0x05, 0xA2, 0x20, 0x84, 0x40, 0xB7, 0x94, 0x46, 0x60, 0xB7, 0x8C, 0x47, 0x40, 0xB7, 0x84, 0x54, 0x60, 0xB7, 0x94, 0x55,
+ 0x51, 0x9E, 0x80, 0xB7, 0xAD, 0x45, 0x40, 0x2A, 0x00, 0x75, 0xFF, 0xFF, 0x82, 0x93, 0x71, 0xD2, 0x30, 0x0A, 0x08, 0xF2, 0x82, 0xA8, 0x00, 0xF0, 0xC1, 0xA8, 0x4C, 0x9E, 0x02, 0x71,
+ 0x00, 0xC0, 0x62, 0x90, 0x00, 0x9F, 0x51, 0x9E, 0x80, 0xB7, 0xAD, 0x45, 0x40, 0x2A, 0x00, 0x75, 0xFF, 0xFF, 0x82, 0x93, 0x71, 0xD2, 0x30, 0x0A, 0x08, 0xF2, 0x01, 0xA9, 0x51, 0x9E,
+ 0x80, 0xB7, 0xAD, 0x45, 0x40, 0x2A, 0x00, 0x75, 0xFF, 0xFF, 0x82, 0x93, 0x71, 0xD2, 0x30, 0x0A, 0x08, 0xF2, 0x82, 0xA8, 0x51, 0x9E, 0x80, 0xB7, 0xAD, 0x45, 0x40, 0x2A, 0x00, 0x75,
+ 0xFF, 0xFF, 0x82, 0x93, 0x71, 0xD2, 0x30, 0x0A, 0x08, 0xF2, 0x03, 0xA9, 0x10, 0xE2, 0xAF, 0x88, 0xCD, 0xCC, 0x32, 0x0A, 0xCC, 0xCC, 0x34, 0x0A, 0x99, 0x60, 0x01, 0xC4, 0x80, 0x74,
+ 0x93, 0x58, 0x84, 0x18, 0x9C, 0x28, 0x04, 0xC0, 0xE2, 0x90, 0x00, 0xC0, 0x92, 0x91, 0x01, 0xC0, 0xA0, 0x74, 0x00, 0xC0, 0xA2, 0x93, 0x01, 0xC2, 0x80, 0x74, 0x00, 0xC0, 0xC2, 0x91,
+ 0x05, 0xC0, 0x00, 0x92, 0x01, 0xC8, 0x80, 0x74, 0x01, 0xC0, 0xE2, 0x92, 0x01, 0xD0, 0x80, 0x74, 0x03, 0xC0, 0x82, 0x90, 0x05, 0xC0, 0xC0, 0x90, 0x82, 0xB7, 0x88, 0x40, 0x1C, 0xC0,
+ 0x3E, 0x7D, 0x04, 0xC0, 0xE4, 0x92, 0xCF, 0x9D, 0x94, 0xFF, 0xD0, 0x9B, 0x04, 0xC0, 0x80, 0x93, 0xCF, 0x9D, 0x5F, 0xB5, 0x64, 0x7F, 0xB4, 0xFF, 0x5F, 0x98, 0x20, 0xB7, 0x8C, 0x46,
+ 0x5F, 0xB7, 0x64, 0x7F, 0x80, 0xB7, 0xAD, 0x45, 0x40, 0x2A, 0x00, 0x75, 0xFF, 0xFF, 0x82, 0x93, 0x80, 0xB7, 0x8C, 0x47, 0x08, 0xC0, 0x60, 0x0A, 0x08, 0xF2, 0x82, 0xA8, 0x20, 0xB7,
+ 0x8C, 0x4C, 0x84, 0x18, 0xA6, 0xD0, 0x08, 0x59, 0x2D, 0x9E, 0x30, 0xE0, 0x4D, 0xAA, 0x49, 0x9E, 0x48, 0x70, 0x03, 0xC0, 0x62, 0x93, 0x00, 0x9F, 0x03, 0xC0, 0x00, 0x93, 0x98, 0xF0,
+ 0x49, 0xAA, 0x20, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x42, 0x92, 0x18, 0xD8, 0x5D, 0xAA, 0x3C, 0x2A, 0x04, 0x75, 0x00, 0xC0, 0xE4, 0x90, 0xCF, 0x9D, 0x34, 0xC0, 0xBF, 0x99,
+ 0x03, 0xC0, 0xC0, 0x90, 0xCF, 0x9D, 0x34, 0xC0, 0x69, 0x98, 0x03, 0xC0, 0x20, 0x90, 0x20, 0xB7, 0x8C, 0x4C, 0x85, 0x04, 0x80, 0xB7, 0xCD, 0x45, 0x40, 0x2A, 0x00, 0x75, 0xFF, 0xFF,
+ 0x82, 0x93, 0x71, 0xD2, 0x30, 0x0A, 0x08, 0xF2, 0x82, 0xA8, 0x84, 0x18, 0xA6, 0xD0, 0x08, 0x59, 0x2D, 0x9E, 0x30, 0xE0, 0x4D, 0xAA, 0x49, 0x9E, 0x48, 0x70, 0x02, 0xC0, 0x42, 0x91,
+ 0x00, 0x9F, 0x02, 0xC0, 0xE0, 0x90, 0x82, 0xB7, 0x88, 0x40, 0x1C, 0xC0, 0x3E, 0x7D, 0x09, 0xC8, 0xC2, 0x0D, 0x7E, 0xC5, 0xD0, 0x0D, 0x01, 0xC0, 0xE4, 0x92, 0xCF, 0x9D, 0x34, 0xC0,
+ 0x00, 0x99, 0x01, 0xC0, 0x00, 0x93, 0x98, 0xF0, 0x49, 0xAA, 0x04, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x24, 0x93, 0x54, 0xD1, 0x11, 0x69, 0x10, 0xF0, 0x27, 0x82, 0x88, 0xF2, 0x89, 0xA8,
+ 0x01, 0xC0, 0x4C, 0x7C, 0x00, 0xC0, 0xE2, 0x91, 0x98, 0xF0, 0x49, 0xAA, 0x40, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0x02, 0x91, 0x98, 0xF0, 0x49, 0xAA, 0x20, 0xC0, 0x00, 0x3A,
+ 0x98, 0xF0, 0x49, 0xA2, 0x82, 0xB7, 0x88, 0x40, 0x1C, 0xC0, 0x3E, 0x7D, 0x09, 0xC8, 0xC2, 0x0D, 0x4A, 0xC3, 0xA0, 0x0D, 0x00, 0xC0, 0x64, 0x91, 0xCF, 0x9D, 0xF4, 0xFF, 0x01, 0x98,
+ 0x00, 0xC0, 0x80, 0x91, 0x09, 0xC8, 0xC2, 0x0D, 0x1A, 0xC1, 0x90, 0x0D, 0x4F, 0x9D, 0x14, 0xC0, 0xA3, 0x9A, 0x00, 0xC0, 0x60, 0x90, 0x00, 0x9F, 0xF8, 0xF9, 0x19, 0xAA, 0x22, 0x9C,
+ 0x80, 0xB7, 0x8C, 0x4A, 0x11, 0xD0, 0xC2, 0x08, 0x12, 0xD0, 0x9E, 0x28, 0x49, 0x9E, 0x1C, 0x2A, 0x48, 0x70, 0x02, 0x87, 0x01, 0xC0, 0x62, 0x92, 0x20, 0xB7, 0x8C, 0x55, 0x53, 0xD1,
+ 0x11, 0x6D, 0x10, 0xE2, 0x23, 0x81, 0x08, 0xD0, 0x49, 0xAA, 0x1C, 0xC0, 0x3E, 0x7D, 0x8A, 0x9E, 0x01, 0xC0, 0xC2, 0x90, 0x08, 0xD0, 0x41, 0xAA, 0x06, 0x75, 0x04, 0x87, 0x00, 0xC0,
+ 0xE4, 0x90, 0x10, 0xF0, 0x61, 0xAA, 0x04, 0x0A, 0x10, 0xF0, 0x61, 0xA2, 0x11, 0xD0, 0x12, 0x0E, 0x20, 0xB7, 0x8C, 0x4A, 0x12, 0xD0, 0xCE, 0x28, 0x4C, 0x9E, 0x9C, 0x28, 0x02, 0x71,
+ 0x00, 0xC0, 0x02, 0x92, 0x53, 0xD1, 0x11, 0x6D, 0x10, 0xE2, 0xAD, 0x80, 0x80, 0xB7, 0x29, 0x41, 0x1C, 0xC0, 0x3E, 0x7D, 0x00, 0xC0, 0xC2, 0x90, 0x80, 0xB7, 0x29, 0x40, 0xFF, 0xFF,
+ 0x00, 0x90, 0x40, 0x9D, 0x22, 0x9C, 0x05, 0xA6, 0x60, 0x84, 0x80, 0xB7, 0x8C, 0x4A, 0x02, 0x87, 0x11, 0xD0, 0xC2, 0x08, 0x11, 0xD0, 0x9E, 0x2A, 0x1C, 0x2A, 0x48, 0x71, 0x02, 0x09,
+ 0x02, 0xC0, 0x82, 0x90, 0x80, 0xB7, 0x8C, 0x55, 0x53, 0xD1, 0x51, 0x69, 0x80, 0x74, 0x20, 0xE3, 0xA1, 0x80, 0x00, 0xC0, 0x62, 0x91, 0x80, 0xB7, 0x49, 0x41, 0x1C, 0xC0, 0x3E, 0x7D,
+ 0x11, 0xE0, 0xA2, 0x86, 0x21, 0xB3, 0x22, 0x50, 0x99, 0x9D, 0x80, 0xB7, 0x49, 0x41, 0x1C, 0xC0, 0x3E, 0x7D, 0x01, 0xC0, 0x42, 0x90, 0x80, 0xB7, 0x4D, 0x49, 0x02, 0xC0, 0x00, 0x2A,
+ 0x00, 0x75, 0x00, 0xC0, 0x62, 0x93, 0x32, 0x85, 0x5F, 0xB5, 0x78, 0x74, 0x20, 0xB7, 0x4D, 0x49, 0x72, 0xE0, 0x80, 0x8D, 0x80, 0xB7, 0x4D, 0x41, 0x0C, 0xC0, 0x16, 0x85, 0x5F, 0xB5,
+ 0xF8, 0x74, 0x82, 0x09, 0x5F, 0xB5, 0x64, 0x7F, 0x3F, 0xB5, 0x6C, 0x7E, 0x9F, 0xB5, 0xEC, 0x7D, 0x74, 0xFF, 0xAD, 0x9A, 0x5F, 0xB7, 0x64, 0x7F, 0x06, 0x09, 0x20, 0xB7, 0x8C, 0x4A,
+ 0x11, 0xD0, 0x52, 0x0A, 0x11, 0xD0, 0xCE, 0x2A, 0x9C, 0x28, 0x42, 0x71, 0xFE, 0xFF, 0x04, 0x90, 0x40, 0x9D, 0x9F, 0xB7, 0xEE, 0x7D, 0xBF, 0xB7, 0x6E, 0x7E, 0x02, 0xC0, 0x20, 0x8C,
+ 0x22, 0x9C, 0x05, 0xA6, 0x40, 0x84, 0x5D, 0x9E, 0x02, 0x85, 0x73, 0xC0, 0xCE, 0x9C, 0x20, 0xB7, 0x8C, 0x46, 0x08, 0xC0, 0x80, 0x08, 0x80, 0xB7, 0x2D, 0x40, 0xAB, 0x9E, 0x41, 0x2A,
+ 0x08, 0x3A, 0x80, 0xB5, 0x2D, 0x40, 0xF4, 0xFF, 0x97, 0x9B, 0x20, 0xB7, 0x0A, 0x5C, 0x52, 0xE0, 0x80, 0x8D, 0x20, 0xB7, 0x14, 0x45, 0x42, 0x85, 0x5F, 0xB5, 0x78, 0x78, 0x0C, 0xC0,
+ 0x1E, 0x85, 0x5F, 0xB5, 0xF8, 0x78, 0x1F, 0xB5, 0x6A, 0x7D, 0x3F, 0xB5, 0xEA, 0x7D, 0x80, 0xB7, 0x4D, 0x49, 0x20, 0xB7, 0x0C, 0x4F, 0x86, 0x09, 0xBF, 0xB5, 0xEC, 0x7F, 0x9F, 0xB5,
+ 0xEA, 0x7C, 0x3F, 0xB5, 0x6C, 0x7F, 0x74, 0xFF, 0x67, 0x9A, 0x00, 0xC0, 0x00, 0x90, 0x9F, 0xB7, 0x6E, 0x7E, 0xBF, 0xB7, 0xEE, 0x7E, 0x02, 0xC0, 0x00, 0x8C, 0x22, 0x9C, 0x20, 0xB7,
+ 0x8C, 0x47, 0x80, 0xB7, 0xAD, 0x4D, 0x81, 0xC0, 0x00, 0x3A, 0x80, 0xB5, 0xAD, 0x4D, 0x22, 0x9C, 0x80, 0xB7, 0x0C, 0x43, 0x59, 0x9E, 0x08, 0x75, 0x26, 0xD2, 0x0C, 0x59, 0x40, 0x85,
+ 0x5A, 0xE0, 0x44, 0x80, 0x02, 0xC0, 0x00, 0x91, 0x00, 0xC0, 0x40, 0x91, 0x01, 0xC0, 0x80, 0x90, 0x02, 0xC0, 0x40, 0x90, 0x02, 0xC0, 0x00, 0x90, 0x01, 0xC0, 0xE0, 0x92, 0x4A, 0x74,
+ 0xA6, 0xD0, 0x0C, 0x59, 0x40, 0x85, 0x5A, 0xE0, 0x44, 0x80, 0x00, 0xC0, 0x80, 0x92, 0x00, 0xC0, 0xE0, 0x91, 0x01, 0xC0, 0xE0, 0x91, 0x01, 0xC0, 0xA0, 0x91, 0x00, 0xC0, 0xC0, 0x90,
+ 0x00, 0xC0, 0xE0, 0x90, 0x01, 0xC0, 0xE0, 0x90, 0x12, 0x85, 0x01, 0xC0, 0xA0, 0x90, 0x06, 0x85, 0x01, 0xC0, 0x40, 0x90, 0x00, 0xC0, 0xE0, 0x93, 0x4A, 0x74, 0xA6, 0xD0, 0x0C, 0x59,
+ 0x40, 0x85, 0x5A, 0xE0, 0x44, 0x80, 0x00, 0xC0, 0x20, 0x92, 0x00, 0xC0, 0xA0, 0x92, 0x00, 0xC0, 0x60, 0x92, 0x00, 0xC0, 0x20, 0x92, 0x00, 0xC0, 0xC0, 0x90, 0x00, 0xC0, 0x00, 0x92,
+ 0x00, 0xC0, 0x60, 0x91, 0x12, 0x85, 0x00, 0xC0, 0x20, 0x91, 0x00, 0xC0, 0xC0, 0x90, 0x4C, 0x74, 0x06, 0x85, 0x00, 0xC0, 0x62, 0x90, 0x0A, 0x85, 0x40, 0xB5, 0x1C, 0x43, 0x00, 0xB7,
+ 0x0C, 0x43, 0x22, 0x9C, 0x0D, 0xA6, 0x20, 0x84, 0x80, 0xB7, 0x0C, 0x43, 0x87, 0x06, 0x48, 0x77, 0x07, 0x03, 0x80, 0xB5, 0x8C, 0x4F, 0x01, 0xC0, 0x04, 0x91, 0x32, 0xE0, 0x80, 0x8D,
+ 0xA0, 0xB7, 0x8C, 0x5F, 0x02, 0x0F, 0xDF, 0xB5, 0x74, 0x7F, 0xC0, 0xB5, 0x0C, 0x4F, 0xF4, 0xFF, 0xBE, 0x9A, 0x00, 0xB5, 0x0C, 0x4E, 0x88, 0xF2, 0x29, 0xAA, 0x02, 0xC0, 0x00, 0x3A,
+ 0x88, 0xF2, 0x29, 0xA2, 0x02, 0xC0, 0x82, 0x0D, 0x94, 0xFF, 0xE7, 0x98, 0x00, 0xC1, 0xBE, 0x0D, 0x94, 0xFF, 0xED, 0x98, 0x80, 0xB7, 0x8C, 0x46, 0x0A, 0x85, 0x42, 0xB5, 0x18, 0x40,
+ 0xC8, 0xF2, 0x06, 0xA3, 0xD4, 0xFF, 0xCA, 0x9B, 0x00, 0xC0, 0x40, 0x93, 0x4A, 0x77, 0x00, 0xC0, 0xE4, 0x92, 0x80, 0xB7, 0x0C, 0x4B, 0x20, 0xB7, 0x14, 0x4F, 0x20, 0xB7, 0x8C, 0x55,
+ 0x53, 0xD1, 0x41, 0x69, 0x40, 0x76, 0x10, 0xE2, 0xA3, 0x80, 0x00, 0xC0, 0x04, 0x91, 0x80, 0xB7, 0x2D, 0x49, 0x02, 0xC0, 0x00, 0x3A, 0x80, 0xB5, 0x2D, 0x49, 0xF4, 0xFF, 0x5C, 0x9B,
+ 0x8B, 0x05, 0xF4, 0xFF, 0x62, 0x9B, 0x80, 0xB7, 0x0C, 0x43, 0x08, 0x75, 0x00, 0xC0, 0x64, 0x93, 0x80, 0xB7, 0x0C, 0x4B, 0x3F, 0x75, 0x00, 0xC0, 0x62, 0x92, 0x40, 0xB7, 0x84, 0x55,
+ 0x53, 0xD1, 0x41, 0x69, 0x2D, 0x9E, 0x30, 0xC0, 0x4D, 0xAA, 0x06, 0x75, 0x00, 0xC0, 0x24, 0x91, 0x9A, 0x0D, 0xF4, 0xFF, 0x4B, 0x9B, 0xD4, 0xFF, 0x94, 0x9B, 0x00, 0xC0, 0xA0, 0x90,
+ 0x9E, 0x0D, 0xF4, 0xFF, 0x44, 0x9B, 0x80, 0xB7, 0x0C, 0x43, 0x04, 0x75, 0x00, 0xC0, 0xC4, 0x93, 0xC0, 0xC1, 0x80, 0x7D, 0x00, 0xC0, 0xE2, 0x92, 0x80, 0xB7, 0x0C, 0x4B, 0x3F, 0x75,
+ 0x00, 0xC0, 0x42, 0x91, 0x20, 0xB7, 0x8C, 0x55, 0x53, 0xD1, 0x41, 0x69, 0x10, 0xE2, 0xA3, 0x80, 0x00, 0xC0, 0x80, 0x90, 0x20, 0xB7, 0x8C, 0x5F, 0x80, 0xB7, 0x2D, 0x49, 0x02, 0xC0,
+ 0x00, 0x3A, 0x80, 0xB5, 0x2D, 0x49, 0xB3, 0x9E, 0xF4, 0xFF, 0xE0, 0x9A, 0x9F, 0xB7, 0x6E, 0x7E, 0xBF, 0xB7, 0xEE, 0x7E, 0xDF, 0xB7, 0x6E, 0x7F, 0x02, 0xC0, 0x00, 0x8C, 0x22, 0x9C,
+ 0x80, 0xB7, 0x8C, 0x46, 0x08, 0xC0, 0x00, 0x0A, 0x08, 0xF2, 0x81, 0xA8, 0xC1, 0x28, 0xA0, 0x38, 0x08, 0xF2, 0x81, 0xA0, 0x20, 0xB7, 0x8C, 0x50, 0x84, 0x08, 0x20, 0xB5, 0x8C, 0x50,
+ 0x22, 0x9C, 0x20, 0xB7, 0x94, 0x46, 0x02, 0x85, 0x71, 0xD2, 0x18, 0x0E, 0x91, 0xD2, 0x90, 0x0C, 0x08, 0xF2, 0x03, 0xA1, 0x40, 0xB5, 0x3D, 0x40, 0x80, 0xB7, 0x0C, 0x50, 0x08, 0xC0,
+ 0xA0, 0x0C, 0x4E, 0xCE, 0x71, 0x2A, 0x40, 0xCE, 0x00, 0x3A, 0x80, 0xB5, 0x0C, 0x50, 0x80, 0xB5, 0x4D, 0x40, 0xFE, 0xFF, 0x20, 0x93, 0x39, 0xF8, 0x05, 0xA2, 0x9A, 0x9E, 0x40, 0xB7,
+ 0x84, 0x57, 0x26, 0xD1, 0x08, 0x5D, 0x90, 0xF0, 0x6D, 0xAA, 0x4F, 0x9D, 0x48, 0x9D, 0x28, 0xE0, 0xE5, 0xA8, 0x60, 0xB7, 0x1C, 0x57, 0x0C, 0x2A, 0x00, 0x75, 0xA6, 0xD0, 0x08, 0x59,
+ 0x10, 0xF0, 0xE5, 0xA8, 0x30, 0xE0, 0x4D, 0xAA, 0x3E, 0x9E, 0x02, 0x0C, 0x02, 0xD0, 0x02, 0x0C, 0x02, 0x71, 0x2D, 0x9E, 0x02, 0xC0, 0x42, 0x91, 0x00, 0xF0, 0x61, 0xAA, 0x48, 0x70,
+ 0x02, 0x09, 0x82, 0x0C, 0x13, 0xB4, 0x22, 0x46, 0x01, 0xD0, 0x22, 0x09, 0x00, 0xC0, 0x82, 0x92, 0x84, 0x0C, 0x46, 0x76, 0x00, 0xC0, 0x12, 0x92, 0xA8, 0xD0, 0x08, 0x5D, 0x10, 0xF0,
+ 0xE5, 0xA8, 0x30, 0xE0, 0x41, 0xAA, 0x48, 0x70, 0xFF, 0xFF, 0xA4, 0x92, 0x26, 0xD1, 0x08, 0x5D, 0x06, 0x09, 0x30, 0xE0, 0xCE, 0xA0, 0x80, 0x74, 0x01, 0xC0, 0x44, 0x91, 0x26, 0xD1,
+ 0x08, 0x5D, 0x80, 0x76, 0x38, 0xE0, 0xCE, 0xA8, 0x12, 0x87, 0x02, 0xE0, 0x28, 0x8F, 0x4B, 0x9D, 0x29, 0x9E, 0x84, 0x0C, 0x30, 0xE0, 0x4D, 0xAA, 0x8C, 0x2C, 0x49, 0x9E, 0x02, 0x71,
+ 0x01, 0xD0, 0x92, 0x0C, 0x01, 0xD0, 0x96, 0x2C, 0x20, 0xB7, 0x8C, 0x46, 0x90, 0xF0, 0x6D, 0xAA, 0xA8, 0xD0, 0x08, 0x5D, 0x10, 0xE2, 0xA3, 0x82, 0x61, 0x2A, 0x08, 0xC0, 0xD0, 0x08,
+ 0x80, 0xB5, 0x2D, 0x40, 0x08, 0xF0, 0xC2, 0xA0, 0x10, 0xF0, 0x65, 0xAA, 0x06, 0x0C, 0x30, 0xE0, 0x41, 0xA2, 0x61, 0xA9, 0x80, 0xB7, 0x0C, 0x50, 0xE6, 0xA8, 0x20, 0xB7, 0x8C, 0x46,
+ 0x20, 0x59, 0x30, 0xC0, 0x00, 0x29, 0x0E, 0xCF, 0x7D, 0x2A, 0xA8, 0x5C, 0xC0, 0xC0, 0x80, 0x2C, 0x44, 0x32, 0x4A, 0x9E, 0x00, 0x76, 0x08, 0xC0, 0xA0, 0x08, 0x44, 0x32, 0x80, 0xB5,
+ 0x0C, 0x50, 0x80, 0xB5, 0x2D, 0x40, 0x00, 0xC0, 0x82, 0x90, 0xF4, 0xFF, 0x56, 0x9B, 0xF8, 0xF9, 0x1D, 0xAA, 0x22, 0x9C, 0x05, 0xA6, 0x5D, 0x9E, 0x82, 0x0D, 0x74, 0xFF, 0x73, 0x9A,
+ 0x88, 0xF2, 0xA5, 0xA9, 0x82, 0x0D, 0x02, 0x0D, 0x02, 0x09, 0x74, 0xFF, 0x5B, 0x9A, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x5D, 0x9E,
+ 0x82, 0x0D, 0x74, 0xFF, 0x61, 0x9A, 0x88, 0xF2, 0xA1, 0xA9, 0x82, 0x0D, 0x02, 0x0D, 0x02, 0x09, 0x74, 0xFF, 0x49, 0x9A, 0x82, 0xB7, 0x08, 0x40, 0x06, 0x08, 0x04, 0x1A, 0x82, 0xB5,
+ 0x08, 0x40, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x80, 0xB7, 0x0C, 0x52, 0x20, 0xB7, 0x8C, 0x52, 0x04, 0x0A, 0x1C, 0x2A, 0x02, 0x71, 0x5A, 0x9E,
+ 0x00, 0xC0, 0x64, 0x90, 0x00, 0x9F, 0x20, 0xB7, 0x94, 0x43, 0x72, 0xC0, 0xCD, 0x9C, 0x40, 0xB7, 0x04, 0x58, 0x80, 0xB7, 0x0C, 0x52, 0x20, 0xB7, 0x0C, 0x52, 0x26, 0xD2, 0x0C, 0x59,
+ 0x2D, 0x9E, 0x10, 0x87, 0x30, 0xE0, 0x4D, 0xA1, 0xA6, 0xD0, 0x0C, 0x59, 0x2D, 0x9E, 0x30, 0xE0, 0xCD, 0xA1, 0x08, 0xD0, 0x65, 0xAA, 0x04, 0x0A, 0x08, 0xD0, 0x65, 0xA2, 0x20, 0xB7,
+ 0x0C, 0x52, 0x84, 0x08, 0x9C, 0x28, 0x20, 0xB5, 0x0C, 0x52, 0x72, 0xC0, 0xCD, 0x9C, 0x80, 0xB7, 0x0C, 0x51, 0x04, 0x0A, 0x80, 0xB5, 0x0C, 0x51, 0x22, 0x9C, 0x0D, 0xA6, 0x20, 0xB7,
+ 0x8C, 0x52, 0x80, 0xB7, 0x0C, 0x52, 0x48, 0x70, 0x02, 0xC0, 0xE2, 0x91, 0xC0, 0xB7, 0x0C, 0x58, 0x80, 0xB7, 0x8C, 0x52, 0x14, 0xD0, 0x68, 0x09, 0x26, 0xD2, 0x0C, 0x59, 0x2D, 0x9E,
+ 0x47, 0x9D, 0x30, 0xE0, 0xCD, 0xAA, 0x60, 0xE0, 0xA6, 0xAA, 0x20, 0xB7, 0x8C, 0x43, 0x71, 0xC0, 0xCD, 0x9C, 0x04, 0x0A, 0x1C, 0x2A, 0x80, 0xB5, 0x8C, 0x52, 0x71, 0xC0, 0xCD, 0x9C,
+ 0x80, 0xB7, 0x8C, 0x51, 0x40, 0x77, 0x04, 0x0A, 0x80, 0xB5, 0x8C, 0x51, 0x00, 0xC0, 0xA2, 0x91, 0xAB, 0x9E, 0x0B, 0x06, 0x62, 0x9C, 0x1C, 0xC0, 0x3E, 0x7C, 0x00, 0xC0, 0xC4, 0x90,
+ 0x8B, 0x05, 0x8B, 0x01, 0xF4, 0xFF, 0x9C, 0x9B, 0xA0, 0xB7, 0x94, 0x43, 0x72, 0xC1, 0xCD, 0x9C, 0x08, 0xD2, 0x25, 0xAA, 0x04, 0x1A, 0x08, 0xD2, 0x25, 0xA2, 0x08, 0xD2, 0xA5, 0xA8,
+ 0x1C, 0xC0, 0x7E, 0x7C, 0x00, 0xC0, 0x84, 0x91, 0x88, 0xF2, 0x29, 0xAA, 0x01, 0xC1, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0xA2, 0x90, 0xAB, 0x9E, 0x94, 0xFF, 0x7B, 0x9A, 0x72, 0xC1,
+ 0xCD, 0x9C, 0x20, 0xB7, 0x8C, 0x52, 0x80, 0xB7, 0x0C, 0x52, 0x48, 0x70, 0xFD, 0xFF, 0xE4, 0x92, 0x9F, 0xB7, 0xEE, 0x7E, 0xBF, 0xB7, 0x6E, 0x7F, 0xDF, 0xB7, 0xEE, 0x7F, 0x60, 0x8C,
+ 0x22, 0x9C, 0x05, 0xA6, 0x5D, 0x9E, 0x82, 0x0D, 0x74, 0xFF, 0xB9, 0x99, 0x80, 0xB7, 0x8C, 0x44, 0x20, 0xB7, 0x8C, 0x59, 0x01, 0xC0, 0x8E, 0x0C, 0x06, 0xC0, 0x98, 0x0C, 0x34, 0xC0,
+ 0x10, 0x0A, 0xFE, 0xCF, 0xFC, 0x28, 0xE9, 0xF3, 0x9D, 0xA0, 0x08, 0xF2, 0x82, 0xA0, 0x88, 0xF2, 0xA1, 0xA9, 0x82, 0x0D, 0x06, 0x0D, 0x06, 0x09, 0x74, 0xFF, 0x91, 0x99, 0x06, 0x08,
+ 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x87, 0x06, 0x82, 0x0D, 0x74, 0xFF, 0x96, 0x99, 0x80, 0xB7, 0x8C, 0x44, 0x20, 0xB7, 0x8C, 0x59,
+ 0x01, 0xC0, 0x86, 0x0C, 0x06, 0xC0, 0x98, 0x0C, 0x34, 0xC0, 0x10, 0x0A, 0xFE, 0xCF, 0xFC, 0x28, 0xE9, 0xF3, 0x9D, 0xA0, 0x08, 0xF2, 0x82, 0xA0, 0x90, 0xF2, 0xA5, 0xA9, 0x82, 0x0D,
+ 0x06, 0x0D, 0x06, 0x09, 0x74, 0xFF, 0x6E, 0x99, 0xA0, 0xB7, 0x8C, 0x43, 0x71, 0xC1, 0xCD, 0x9C, 0x8B, 0x05, 0x14, 0xC0, 0x94, 0x98, 0x71, 0xC1, 0xCD, 0x9C, 0x06, 0x08, 0x9F, 0xB7,
+ 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x1D, 0xA6, 0x49, 0xC0, 0x82, 0x85, 0x00, 0xC2, 0x80, 0x85, 0x20, 0xB7, 0x8C, 0x47, 0x02, 0x0C, 0x06, 0x85, 0x82, 0x0A,
+ 0x5B, 0x9E, 0x49, 0xC0, 0x02, 0x87, 0x00, 0xC2, 0x10, 0x87, 0x88, 0xF0, 0x69, 0xAA, 0xEF, 0x9D, 0xD4, 0x9D, 0x88, 0xF0, 0xEA, 0xA8, 0x0C, 0xC0, 0xE0, 0x08, 0x40, 0xB7, 0x35, 0x40,
+ 0x88, 0xF0, 0x69, 0xA9, 0x00, 0xC2, 0x05, 0x5A, 0x04, 0x2A, 0x00, 0x75, 0x80, 0xB7, 0x8C, 0x59, 0xF9, 0x5C, 0x84, 0x4C, 0x84, 0x2C, 0xFE, 0xC0, 0x70, 0x2D, 0x08, 0xF2, 0x06, 0xA0,
+ 0x30, 0xE0, 0xC9, 0xA8, 0x01, 0xE0, 0x22, 0x85, 0x20, 0xE2, 0xAB, 0x88, 0x50, 0xE0, 0xCA, 0xA9, 0x80, 0xC0, 0x48, 0x74, 0x20, 0x0D, 0x09, 0x00, 0x02, 0xC0, 0x02, 0x90, 0x01, 0x01,
+ 0x31, 0xD0, 0x00, 0x0B, 0x88, 0xC0, 0xC2, 0x0E, 0x74, 0xD1, 0x80, 0x09, 0x7F, 0x9D, 0x80, 0xC0, 0x50, 0x74, 0x11, 0xD0, 0x02, 0x0E, 0x04, 0xB3, 0x24, 0x48, 0xA0, 0x9E, 0x02, 0x72,
+ 0x00, 0xC0, 0xA6, 0x92, 0x08, 0xF0, 0x47, 0xA9, 0x6D, 0x9D, 0x80, 0xC0, 0x05, 0x5A, 0x30, 0xC0, 0x4D, 0xA2, 0x08, 0xF0, 0xC5, 0xA8, 0x3D, 0x9E, 0xA6, 0xD0, 0x08, 0x59, 0x30, 0xE0,
+ 0xCE, 0xA1, 0x08, 0xF0, 0x45, 0xAA, 0x04, 0x0A, 0x08, 0xF0, 0x45, 0xA2, 0x54, 0x9E, 0x76, 0xCF, 0x41, 0x0A, 0x50, 0xC0, 0x00, 0x75, 0x84, 0x0A, 0x8B, 0x05, 0x23, 0xB3, 0x46, 0x48,
+ 0x10, 0xC0, 0x7E, 0x75, 0x07, 0x05, 0x00, 0xC0, 0xB2, 0x91, 0x5C, 0x9E, 0x70, 0xE2, 0x85, 0xA8, 0xD8, 0x9D, 0x80, 0xC0, 0x48, 0x74, 0x60, 0xE0, 0xCA, 0xA9, 0x20, 0x0D, 0xFE, 0xFF,
+ 0x84, 0x91, 0x08, 0xF0, 0x65, 0xAA, 0x09, 0xC8, 0xC2, 0x0D, 0x18, 0xC5, 0xD0, 0x0D, 0x80, 0xB5, 0x2C, 0x40, 0xF4, 0xFF, 0xA5, 0x9A, 0x9F, 0xB7, 0x6E, 0x7E, 0xBF, 0xB7, 0xEE, 0x7E,
+ 0xDF, 0xB7, 0x6E, 0x7F, 0xFF, 0xB7, 0xEE, 0x7F, 0x02, 0xC0, 0x00, 0x8C, 0x22, 0x9C, 0x1D, 0xA6, 0x20, 0xB7, 0x94, 0x59, 0x5D, 0x9E, 0x08, 0xF2, 0x25, 0xAA, 0x20, 0xB7, 0x4D, 0x40,
+ 0x48, 0x70, 0x83, 0x06, 0x00, 0xC0, 0x62, 0x91, 0x09, 0xC8, 0xC2, 0x0D, 0x22, 0xC5, 0x80, 0x0D, 0x8B, 0x01, 0xF4, 0xFF, 0x87, 0x9A, 0x05, 0xC0, 0x40, 0x90, 0x10, 0xF2, 0x25, 0xAA,
+ 0x00, 0x75, 0x04, 0xC0, 0xE2, 0x91, 0x82, 0x0B, 0x20, 0xB7, 0x8C, 0x49, 0x01, 0xC0, 0x0A, 0x0A, 0x08, 0x0A, 0x48, 0x70, 0x00, 0xC0, 0x92, 0x91, 0x88, 0xF2, 0x29, 0xAA, 0x04, 0xC0,
+ 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0xA2, 0x90, 0xAB, 0x9E, 0x74, 0xFF, 0x8C, 0x9A, 0x08, 0xF2, 0xAD, 0xA9, 0xA2, 0x0D, 0x00, 0xC6, 0x80, 0x39, 0x94, 0xFF, 0x34, 0x98, 0x40, 0xC0,
+ 0x82, 0x0D, 0x48, 0xF2, 0xB5, 0xA9, 0x94, 0xFF, 0x2E, 0x98, 0x82, 0x09, 0x10, 0xF2, 0x25, 0xAA, 0xC8, 0x70, 0x02, 0xC0, 0x28, 0x93, 0x6E, 0x9E, 0x00, 0xB7, 0x94, 0x46, 0x32, 0xD0,
+ 0x60, 0x0B, 0x71, 0x9E, 0x10, 0xC0, 0x65, 0xAA, 0x12, 0xD0, 0xB2, 0x0A, 0x08, 0x75, 0x80, 0xC1, 0x08, 0x58, 0x01, 0xC0, 0xC4, 0x91, 0x84, 0x0B, 0xC4, 0x75, 0x01, 0xC0, 0x44, 0x91,
+ 0x82, 0x0C, 0x49, 0x9E, 0x11, 0xD0, 0x32, 0x1A, 0x48, 0x70, 0x01, 0xC0, 0x68, 0x90, 0x49, 0xC0, 0x82, 0x87, 0x60, 0xC1, 0x80, 0x87, 0x40, 0xB7, 0x04, 0x59, 0x01, 0x05, 0xA3, 0x9E,
+ 0xA6, 0xD0, 0x08, 0x5D, 0x11, 0xD0, 0x12, 0x0D, 0x50, 0xF0, 0x49, 0xAA, 0x00, 0x75, 0xFF, 0xFF, 0xA2, 0x93, 0xDC, 0x9D, 0x60, 0xB7, 0x9C, 0x58, 0x70, 0xC0, 0x29, 0xAA, 0x91, 0x9E,
+ 0x46, 0x72, 0x30, 0xE0, 0xCD, 0xA8, 0x3D, 0x9E, 0x26, 0xD2, 0x04, 0x59, 0x30, 0xE0, 0xCD, 0xA0, 0xFF, 0xFF, 0x26, 0x91, 0x41, 0x9E, 0x80, 0xB7, 0x2D, 0x45, 0x00, 0x75, 0xFF, 0xFF,
+ 0xA2, 0x93, 0x71, 0x9E, 0x73, 0xD1, 0x60, 0x09, 0x10, 0xC0, 0x65, 0xAA, 0x47, 0x9D, 0x10, 0xE0, 0x86, 0xA8, 0x00, 0xC2, 0x04, 0x5A, 0x49, 0xC0, 0x00, 0x0A, 0x40, 0xC1, 0x00, 0x0A,
+ 0x08, 0xF2, 0x82, 0xA0, 0x08, 0xF2, 0xC5, 0xA8, 0x6B, 0x9E, 0xC2, 0x70, 0xFD, 0xFF, 0x06, 0x92, 0x40, 0xC0, 0x92, 0x0D, 0x82, 0x09, 0x74, 0xFF, 0xCC, 0x9B, 0xA2, 0x0D, 0x08, 0xF2,
+ 0xAD, 0xA9, 0x74, 0xFF, 0xC7, 0x9B, 0x40, 0xC0, 0x82, 0x0D, 0x48, 0xF2, 0xB5, 0xA9, 0x74, 0xFF, 0xC1, 0x9B, 0x20, 0xB7, 0x94, 0x47, 0x20, 0xB7, 0x8C, 0x46, 0x80, 0xB7, 0xAD, 0x45,
+ 0x40, 0x2A, 0x00, 0x75, 0xFF, 0xFF, 0x82, 0x93, 0x71, 0xD2, 0x10, 0x0E, 0x08, 0xF2, 0x81, 0xA8, 0x9F, 0xB7, 0x6E, 0x7E, 0xBF, 0xB7, 0xEE, 0x7E, 0xDF, 0xB7, 0x6E, 0x7F, 0xFF, 0xB7,
+ 0xEE, 0x7F, 0x02, 0xC0, 0x00, 0x8C, 0x22, 0x9C, 0x39, 0xF8, 0x05, 0xA2, 0x20, 0x84, 0x82, 0xB7, 0x88, 0x40, 0x1C, 0xC0, 0x3E, 0x7D, 0x3A, 0x9D, 0x01, 0xC0, 0x84, 0x90, 0x06, 0x87,
+ 0x42, 0xB5, 0x80, 0x40, 0x01, 0xD9, 0x84, 0x9C, 0xCF, 0x9D, 0x18, 0xF0, 0x59, 0xA2, 0x86, 0x09, 0x5F, 0xB5, 0x7C, 0x7F, 0xF4, 0xFF, 0x13, 0x99, 0x80, 0xB7, 0x8C, 0x55, 0x5F, 0xB7,
+ 0x7C, 0x7F, 0xCD, 0xCC, 0xB2, 0x08, 0xCC, 0xCC, 0xB4, 0x08, 0x10, 0xF3, 0x21, 0x88, 0xCF, 0x9D, 0x43, 0x62, 0x00, 0xC2, 0x13, 0x5A, 0x80, 0xB5, 0x0C, 0x4B, 0x94, 0xFF, 0x77, 0x99,
+ 0x06, 0x08, 0x00, 0xC0, 0x60, 0x90, 0x02, 0x08, 0xF8, 0xF9, 0x19, 0xAA, 0x22, 0x9C, 0x05, 0xA6, 0x5D, 0x9E, 0x82, 0x0D, 0x54, 0xFF, 0xF1, 0x9B, 0x80, 0xB7, 0x8C, 0x44, 0x20, 0xB7,
+ 0x0C, 0x5A, 0x01, 0xC0, 0x8E, 0x0C, 0x8C, 0x0C, 0x34, 0xC0, 0x10, 0x0A, 0xFE, 0xCF, 0xFC, 0x28, 0xE9, 0xF3, 0x9D, 0xA0, 0x08, 0xF2, 0x82, 0xA0, 0x88, 0xF2, 0xA1, 0xA9, 0x82, 0x0D,
+ 0x06, 0x0D, 0x06, 0x09, 0x54, 0xFF, 0xCA, 0x9B, 0x06, 0x08, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x05, 0xA6, 0x87, 0x06, 0x82, 0x0D, 0x54, 0xFF,
+ 0xCF, 0x9B, 0x80, 0xB7, 0x8C, 0x44, 0x20, 0xB7, 0x0C, 0x5A, 0x01, 0xC0, 0x86, 0x0C, 0x8C, 0x0C, 0x34, 0xC0, 0x10, 0x0A, 0xFE, 0xCF, 0xFC, 0x28, 0xE9, 0xF3, 0x9D, 0xA0, 0x08, 0xF2,
+ 0x82, 0xA0, 0x90, 0xF2, 0xA5, 0xA9, 0x82, 0x0D, 0x06, 0x0D, 0x06, 0x09, 0x54, 0xFF, 0xA8, 0x9B, 0xA0, 0xB7, 0x8C, 0x43, 0x71, 0xC1, 0xCD, 0x9C, 0x8B, 0x05, 0x14, 0xC0, 0x1F, 0x98,
+ 0x71, 0xC1, 0xCD, 0x9C, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7, 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x5B, 0x9E, 0x20, 0xB7, 0x14, 0x5A, 0x88, 0xD8, 0x7D, 0xAA, 0x80, 0xB5, 0x4D, 0x41,
+ 0x48, 0xF0, 0xF5, 0xA8, 0x20, 0xB5, 0xCD, 0x40, 0x08, 0xF0, 0x65, 0xAA, 0x09, 0xC8, 0xC2, 0x0D, 0x8A, 0xC5, 0xD0, 0x0D, 0x80, 0xB5, 0x4D, 0x40, 0xEA, 0xFF, 0x20, 0x91, 0x05, 0xA6,
+ 0x20, 0xB7, 0x14, 0x5A, 0x5D, 0x9E, 0x08, 0xF2, 0x25, 0xAA, 0x20, 0xB7, 0x4D, 0x40, 0x48, 0x70, 0x83, 0x06, 0x00, 0xC0, 0x62, 0x91, 0x09, 0xC8, 0xC2, 0x0D, 0x92, 0xC5, 0xF0, 0x0D,
+ 0x8B, 0x01, 0xF4, 0xFF, 0x36, 0x99, 0x02, 0xC0, 0xA0, 0x90, 0x20, 0xB7, 0x8C, 0x49, 0x01, 0xC0, 0x0A, 0x0A, 0x08, 0x0A, 0x48, 0x70, 0x00, 0xC0, 0x92, 0x91, 0x88, 0xF2, 0x29, 0xAA,
+ 0x04, 0xC0, 0x00, 0x2A, 0x00, 0x75, 0x00, 0xC0, 0xA2, 0x90, 0xAB, 0x9E, 0x74, 0xFF, 0x41, 0x99, 0x08, 0xF2, 0xAD, 0xA9, 0xA2, 0x0D, 0x00, 0xC6, 0x80, 0x39, 0x74, 0xFF, 0xE9, 0x9A,
+ 0x40, 0xC0, 0x82, 0x0D, 0x10, 0xF2, 0xA5, 0xA9, 0x74, 0xFF, 0xE3, 0x9A, 0x40, 0xC0, 0xA2, 0x0D, 0x10, 0xF2, 0xA9, 0xA9, 0x74, 0xFF, 0xDD, 0x9A, 0x40, 0xC0, 0x92, 0x0D, 0x82, 0x09,
+ 0x74, 0xFF, 0xD8, 0x9A, 0xA2, 0x0D, 0x08, 0xF2, 0xAD, 0xA9, 0x74, 0xFF, 0xD3, 0x9A, 0x40, 0xC0, 0x82, 0x0D, 0x48, 0xF2, 0xB5, 0xA9, 0x74, 0xFF, 0xCD, 0x9A, 0x20, 0xB7, 0x8C, 0x46,
+ 0x80, 0xB7, 0xAD, 0x45, 0x40, 0x2A, 0x00, 0x75, 0xFF, 0xFF, 0x82, 0x93, 0x80, 0xB7, 0x8C, 0x47, 0x08, 0xC0, 0x60, 0x0A, 0x08, 0xF2, 0x81, 0xA8, 0x9F, 0xB7, 0x6E, 0x7F, 0xBF, 0xB7,
+ 0xEE, 0x7F, 0x40, 0x8C, 0x22, 0x9C, 0x40, 0xB7, 0x96, 0x4D, 0x01, 0xC0, 0x88, 0x9C, 0xC0, 0x76, 0x01, 0xC0, 0x00, 0x28, 0x20, 0x58, 0xB0, 0x41, 0x32, 0xB3, 0x44, 0x48, 0x11, 0xF0,
+ 0x20, 0x0C, 0x40, 0xB3, 0xA2, 0x48, 0x10, 0xF8, 0x42, 0xA9, 0x86, 0x70, 0xFF, 0xFF, 0x24, 0x93, 0x84, 0x7A, 0x22, 0x9C, 0x21, 0xC0, 0xC0, 0x7E, 0x00, 0xB7, 0x0E, 0x40, 0x00, 0xB3,
+ 0x24, 0x4A, 0x22, 0x9C, 0x01, 0xC0, 0xC2, 0x7C, 0x00, 0xC0, 0xE2, 0x90, 0x71, 0xC0, 0x8C, 0x9C, 0x70, 0xD0, 0x80, 0x45, 0xB0, 0x31, 0x8D, 0xA4, 0x39, 0xF8, 0x85, 0xA1, 0xEC, 0x9F,
+ 0xF8, 0xF9, 0x1D, 0xA8, 0x60, 0x8C, 0x22, 0x9C, 0x02, 0xC0, 0x88, 0x9C, 0x01, 0xC0, 0x80, 0x9C, 0x01, 0xC0, 0x04, 0x2C, 0x20, 0x5C, 0x70, 0xC0, 0x00, 0x28, 0x48, 0x58, 0x22, 0x9C,
+ 0x05, 0xA6, 0x09, 0xC8, 0x42, 0x0E, 0x8B, 0xB0, 0x46, 0x23, 0x81, 0x02, 0x40, 0xB7, 0x8E, 0x4D, 0x20, 0xB5, 0x0C, 0x53, 0x80, 0x74, 0x00, 0xC0, 0xE2, 0x93, 0xB1, 0xD0, 0xD8, 0x09,
+ 0xAD, 0x9E, 0x82, 0x0D, 0x09, 0xC8, 0x42, 0x0E, 0x8B, 0xB0, 0x86, 0x1D, 0x09, 0xC8, 0x42, 0x0E, 0x8B, 0xB0, 0x86, 0x2A, 0x11, 0xC0, 0x80, 0x0A, 0xB1, 0xD0, 0xD8, 0x09, 0x21, 0xC9,
+ 0xC5, 0x9C, 0x82, 0x0D, 0x09, 0xC8, 0x42, 0x0E, 0x8B, 0xB0, 0x86, 0x1D, 0x09, 0xC8, 0x42, 0x0E, 0x8B, 0xB0, 0x86, 0x2A, 0xA0, 0xB5, 0x0E, 0x40, 0xF8, 0xF9, 0x9D, 0xAA, 0xF8, 0xF9,
+ 0x1D, 0xAA, 0x22, 0x9C, 0x00, 0x78, 0x21, 0xD0, 0xDA, 0x46, 0x40, 0xB3, 0xA2, 0x48, 0x60, 0xB7, 0xBC, 0x42, 0x49, 0xC0, 0x82, 0x0D, 0x08, 0xC0, 0x80, 0x0D, 0x21, 0xC0, 0x40, 0x7F,
+ 0xC1, 0xCF, 0x80, 0x2E, 0x80, 0xC2, 0xB9, 0x5E, 0x22, 0xD0, 0xD0, 0x0E, 0xBA, 0x05, 0x82, 0x09, 0x39, 0xF8, 0xE5, 0xA1, 0x83, 0x9E, 0x32, 0xF0, 0xB0, 0x8C, 0x39, 0xF8, 0xE5, 0xA1,
+ 0x60, 0xB9, 0x78, 0x40, 0x09, 0xC8, 0x42, 0x0D, 0xC2, 0xC5, 0x10, 0x0D, 0x52, 0x9E, 0x39, 0xF8, 0x65, 0xA1, 0xFF, 0xFF, 0xC1, 0x93, 0x09, 0xC8, 0x42, 0x0D, 0xE0, 0xC5, 0x20, 0x0D,
+ 0x98, 0xF1, 0x66, 0xA1, 0x22, 0x9C, 0x00, 0xB7, 0x35, 0x40, 0x60, 0xB7, 0xBF, 0x43, 0x02, 0xC0, 0x00, 0x72, 0x2E, 0x0D, 0x30, 0xB3, 0xA2, 0x50, 0x06, 0x0D, 0x02, 0x87, 0x74, 0xC0,
+ 0xCE, 0x9C, 0xF3, 0x9C, 0x00, 0xB7, 0x35, 0x40, 0x02, 0xC4, 0x00, 0x72, 0x44, 0x55, 0x04, 0x44, 0x00, 0xB5, 0x35, 0x40, 0xF0, 0x9C, 0x74, 0xC0, 0xCE, 0x9C, 0x2A, 0x0D, 0x88, 0x5C,
+ 0x84, 0x0C, 0x1B, 0x9C, 0x33, 0x9D, 0x13, 0xE0, 0x80, 0x84, 0x39, 0xF8, 0x05, 0xA2, 0x51, 0xC0, 0x84, 0x9C, 0x09, 0xC8, 0x42, 0x0A, 0xF6, 0xC5, 0x30, 0x0A, 0x08, 0x70, 0x06, 0xC0,
+ 0xC2, 0x92, 0x9C, 0x0D, 0x01, 0x81, 0x00, 0xE0, 0x07, 0x00, 0xFE, 0xCF, 0xE2, 0x2D, 0x07, 0x04, 0x32, 0xB3, 0x6A, 0x48, 0x09, 0xC8, 0xC2, 0x0C, 0x20, 0xC6, 0x90, 0x0C, 0x33, 0xE0,
+ 0xA0, 0x85, 0x01, 0xC8, 0x80, 0x29, 0x01, 0xC0, 0x8A, 0x08, 0x96, 0x00, 0x18, 0xF8, 0xC1, 0xA0, 0x71, 0xF1, 0x20, 0x84, 0xF8, 0xC9, 0x7D, 0xA4, 0x82, 0x08, 0x82, 0x0C, 0x39, 0xF8,
+ 0xE5, 0xA0, 0x39, 0xF8, 0xE5, 0xA0, 0x08, 0xCA, 0x1F, 0xA4, 0x85, 0x80, 0x03, 0xC0, 0x00, 0x90, 0xEF, 0x9C, 0x95, 0xE0, 0xC0, 0x84, 0x02, 0x9C, 0x10, 0xC0, 0x82, 0x9C, 0x1F, 0xB7,
+ 0x4E, 0x79, 0xFF, 0x9C, 0x00, 0xB5, 0xEE, 0x40, 0x72, 0xE1, 0x00, 0x84, 0x01, 0xC0, 0x88, 0x9C, 0x40, 0xB9, 0x00, 0x40, 0x10, 0xC8, 0x1F, 0xA4, 0xF0, 0x9C, 0x54, 0xE0, 0x00, 0x85,
+ 0x81, 0x80, 0xE0, 0xC8, 0xDD, 0xA4, 0x01, 0xC0, 0x8E, 0x9C, 0x02, 0x0D, 0x02, 0xC0, 0x8B, 0x9C, 0x01, 0xC0, 0x87, 0x9C, 0x20, 0xB9, 0x00, 0x40, 0x00, 0xC8, 0x45, 0xA5, 0x81, 0x01,
+ 0x0D, 0xC0, 0x82, 0x29, 0x52, 0xC0, 0x87, 0x9C, 0x01, 0xC0, 0x84, 0x39, 0x60, 0xB5, 0x6F, 0x40, 0x06, 0xC0, 0x60, 0x84, 0x71, 0xC0, 0x8A, 0x9C, 0x02, 0xC0, 0x8A, 0x9C, 0x81, 0x01,
+ 0x05, 0xCA, 0x80, 0x29, 0x01, 0xCF, 0x00, 0x2D, 0x71, 0x5D, 0x17, 0xD0, 0x28, 0x29, 0xFE, 0xEF, 0x6C, 0x29, 0x01, 0xC0, 0x84, 0x39, 0x20, 0xB7, 0x16, 0x40, 0x02, 0xC0, 0xE2, 0x90,
+ 0x02, 0xC0, 0x80, 0x70, 0x84, 0x7C, 0x82, 0x9E, 0x60, 0xB7, 0xBD, 0x40, 0x86, 0x0D, 0x71, 0xC0, 0x8C, 0x9C, 0x2E, 0xD0, 0x68, 0x55, 0x17, 0xD0, 0x88, 0x29, 0x02, 0xE0, 0x22, 0x76,
+ 0xB0, 0x31, 0x40, 0x0D, 0x22, 0xD1, 0x08, 0x5C, 0x1B, 0xB4, 0x7A, 0x4A, 0x40, 0x08, 0x00, 0xE0, 0x26, 0xA8, 0xAF, 0x9D, 0xF4, 0xFF, 0xA4, 0x9B, 0xEF, 0x9C, 0x71, 0xC0, 0x8E, 0x9C,
+ 0x70, 0xD0, 0xA0, 0x31, 0x00, 0xB7, 0x6F, 0x40, 0x03, 0x80, 0x71, 0xC8, 0x8B, 0x9C, 0x06, 0x9C, 0xFC, 0xDF, 0xFE, 0x7C, 0xFE, 0xFF, 0x44, 0x90, 0x01, 0xC4, 0x00, 0x7C, 0xFD, 0xFF,
+ 0xC4, 0x93, 0x24, 0xF0, 0x84, 0x58, 0x32, 0xE1, 0x10, 0x84, 0x53, 0xE0, 0x10, 0x84, 0x10, 0xC8, 0x07, 0xAD, 0xE8, 0x9D, 0x24, 0xF0, 0x84, 0x58, 0x05, 0xC0, 0x02, 0x28, 0xF8, 0xC8,
+ 0x9D, 0xAC, 0x30, 0xC0, 0x8B, 0x9C, 0x30, 0xC0, 0x8D, 0x9C, 0x10, 0xC8, 0x1F, 0xAC, 0xFB, 0xFF, 0xC0, 0x93, 0x71, 0xC0, 0x8E, 0x9C, 0x03, 0xE0, 0x70, 0x28, 0x17, 0xD0, 0xA8, 0x29,
+ 0xFE, 0xCF, 0x6C, 0x29, 0xB4, 0x31, 0x12, 0x09, 0x24, 0xD0, 0x49, 0x59, 0x04, 0xC0, 0x22, 0x08, 0xFE, 0xFF, 0x44, 0x90, 0x80, 0xC1, 0x24, 0x5D, 0xF9, 0xCF, 0x80, 0x2D, 0x29, 0x5D,
+ 0xB4, 0x05, 0x31, 0xD8, 0xE6, 0xA8, 0x10, 0xD8, 0x62, 0xA9, 0x00, 0xC8, 0x40, 0x7E, 0x12, 0xB3, 0x42, 0x48, 0x40, 0x5D, 0x94, 0x04, 0x80, 0xC0, 0x59, 0x5D, 0x0C, 0x2D, 0x22, 0xD1,
+ 0x08, 0x5C, 0xFD, 0xFF, 0x60, 0x91, 0x39, 0xF8, 0x25, 0xAA, 0x33, 0xE0, 0x10, 0x8C, 0x45, 0x9D, 0x22, 0x9C, 0x00, 0x00, 0x09, 0xC8, 0xC2, 0x87, 0x60, 0xB0, 0x20, 0x0C, 0x09, 0xC8,
+ 0xC2, 0x87, 0x60, 0xB0, 0x60, 0x0A, 0xF4, 0xFF, 0xA0, 0x92, 0x09, 0xC8, 0xC2, 0x87, 0x60, 0xB0, 0xC0, 0x09,
+};
+
+
+static const unsigned char aui8Data[] = {
+ 0x40, 0x62, 0x90, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD0, 0x2F, 0x80, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x25, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x04, 0x00, 0x04, 0x80, 0x04, 0x80, 0x04, 0x80, 0x04, 0x00, 0x05, 0x80, 0x04, 0x00, 0x06, 0x80, 0x04, 0x00, 0x07, 0x80, 0x04,
+ 0x00, 0x08, 0x80, 0x04, 0x00, 0x10, 0x80, 0x04, 0xF0, 0xD8, 0xFF, 0xFF, 0x40, 0x2B, 0xFE, 0xFF, 0x09, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xE8, 0x36, 0x88, 0x82, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x40, 0x62, 0x90, 0x80, 0xB0, 0x00, 0x90, 0x80, 0xD0, 0x02, 0x90, 0x80, 0x54, 0x32, 0x88, 0x82, 0x4C, 0x32, 0x88, 0x82, 0x68, 0x32, 0x88, 0x82, 0x20, 0x32, 0x88, 0x82,
+ 0x24, 0x32, 0x88, 0x82, 0xE8, 0x34, 0x88, 0x82, 0xF8, 0x34, 0x88, 0x82, 0x00, 0x35, 0x88, 0x82, 0x98, 0x35, 0x88, 0x82, 0x48, 0x35, 0x88, 0x82, 0x40, 0x35, 0x88, 0x82, 0xD8, 0x36,
+ 0x88, 0x82, 0x00, 0x00, 0x00, 0x00, 0xE8, 0x3E, 0x88, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x32, 0x88, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x48, 0x32, 0x88, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x00,
+ 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x01, 0x00, 0xCD, 0xCD, 0xCD, 0xCD, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xEF, 0xBE, 0xAD, 0xDE, 0xEF, 0xBE, 0xAD, 0xDE, 0xEF, 0xBE, 0xAD, 0xDE, 0xEF, 0xBE, 0xAD, 0xDE, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x98, 0x3F, 0x88, 0x82, 0x2C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x00,
+ 0x00, 0x00, 0x00, 0x3F, 0x88, 0x82, 0x00, 0x3F, 0x88, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x40, 0x88, 0x82, 0x2C, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0xB0, 0x3F,
+ 0x88, 0x82, 0xB0, 0x3F, 0x88, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x68, 0x40, 0x88, 0x82, 0x2A, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE8, 0x3E, 0x88, 0x82, 0xE8, 0x3E,
+ 0x88, 0x82, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x88, 0x40, 0x88, 0x82, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA8, 0x40, 0x88, 0x82, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x90, 0x80, 0x00, 0x00, 0x90, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC8, 0x40, 0x88, 0x82, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x40, 0x62, 0x90, 0x80, 0x40, 0x62, 0x90, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE8, 0x40, 0x88, 0x82, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x30, 0x62, 0x90, 0x80, 0x30, 0x62, 0x90, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x41, 0x88, 0x82, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x20, 0x62, 0x90, 0x80, 0x20, 0x62, 0x90, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xF0, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0xB0, 0x00, 0x00, 0x00, 0xB0,
+};
+
+const FIRMWARE sSliceSwitchingFirmware = {
+ "BUILD_DXVA_FW1.00.10.1042",
+ "30_09_2009",
+ 12588, /* TextSize bytes */
+ 4064, /* DataSize bytes */
+ 0x00003140, /* DataOffset bytes */
+ aui8Text,
+ aui8Data,
+};
+
diff --git a/fw/topaz_bin.c b/fw/topaz_bin.c
new file mode 100644
index 0000000..d9eca07
--- /dev/null
+++ b/fw/topaz_bin.c
@@ -0,0 +1,254 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+
+
+/*
+ * Authors:
+ * Zeng Li <zeng.li@intel.com>
+ *
+ */
+
+#include <stdio.h>
+
+#include "H263Firmware_bin.h"
+#include "H263FirmwareCBR_bin.h"
+#include "H263FirmwareVBR_bin.h"
+#include "H264Firmware_bin.h"
+#include "H264FirmwareCBR_bin.h"
+#include "H264FirmwareVBR_bin.h"
+#include "H264FirmwareVCM_bin.h"
+#include "MPG4Firmware_bin.h"
+#include "MPG4FirmwareCBR_bin.h"
+#include "MPG4FirmwareVBR_bin.h"
+
+#define FW_VER 146 /* DDKv146 release */
+#define FW_FILE_NAME "topaz_fw.bin"
+
+struct topaz_fw_info_item_s {
+ unsigned short ver;
+ unsigned short codec;
+
+ unsigned int text_size;
+ unsigned int data_size;
+ unsigned int data_location;
+};
+typedef struct topaz_fw_info_item_s topaz_fw_info_item_t;
+
+enum topaz_fw_codec_e {
+ FW_JPEG = 0,
+ FW_H264_NO_RC,
+ FW_H264_VBR,
+ FW_H264_CBR,
+ FW_H264_VCM,
+ FW_H263_NO_RC,
+ FW_H263_VBR,
+ FW_H263_CBR,
+ FW_MPEG4_NO_RC,
+ FW_MPEG4_VBR,
+ FW_MPEG4_CBR,
+ FW_NUM
+};
+typedef enum topaz_fw_codec_e topaz_fw_codec_t;
+
+struct fw_table_s {
+ topaz_fw_codec_t index;
+ topaz_fw_info_item_t header;
+ unsigned long *fw_text;
+ unsigned long *fw_data;
+};
+typedef struct fw_table_s fw_table_t;
+
+int main()
+{
+ FILE *fp = NULL;
+ topaz_fw_codec_t iter = FW_H264_NO_RC;
+ unsigned int size = 0;
+ unsigned int i;
+
+ fw_table_t topaz_fw_table[] = {
+ /* index header
+ * { ver, codec, text_size, data_size, date_location }
+ * fw_text fw_data */
+ { 0, {0, 0, 0, 0, 0} },
+ {
+ FW_H264_NO_RC,
+ {
+ FW_VER,
+ FW_H264_NO_RC,
+ ui32H264_MTXTOPAZFWTextSize,
+ ui32H264_MTXTOPAZFWDataSize,
+ ui32H264_MTXTOPAZFWDataLocation
+ },
+ aui32H264_MTXTOPAZFWText, aui32H264_MTXTOPAZFWData
+ },
+
+ {
+ FW_H264_VBR,
+ {
+ FW_VER,
+ FW_H264_VBR,
+ ui32H264VBR_MTXTOPAZFWTextSize,
+ ui32H264VBR_MTXTOPAZFWDataSize,
+ ui32H264VBR_MTXTOPAZFWDataLocation
+ },
+ aui32H264VBR_MTXTOPAZFWText, aui32H264VBR_MTXTOPAZFWData
+ },
+
+ {
+ FW_H264_CBR,
+ {
+ FW_VER,
+ FW_H264_CBR,
+ ui32H264CBR_MTXTOPAZFWTextSize,
+ ui32H264CBR_MTXTOPAZFWDataSize,
+ ui32H264CBR_MTXTOPAZFWDataLocation
+ },
+ aui32H264CBR_MTXTOPAZFWText,
+ aui32H264CBR_MTXTOPAZFWData
+ },
+
+ {
+ FW_H264_VCM,
+ {
+ FW_VER,
+ FW_H264_VCM,
+ ui32H264VCM_MTXTOPAZFWTextSize,
+ ui32H264VCM_MTXTOPAZFWDataSize,
+ ui32H264VCM_MTXTOPAZFWDataLocation
+ },
+ aui32H264VCM_MTXTOPAZFWText,
+ aui32H264VCM_MTXTOPAZFWData
+ },
+
+ {
+ FW_H263_NO_RC,
+ {
+ FW_VER,
+ FW_H263_NO_RC,
+ ui32H263_MTXTOPAZFWTextSize,
+ ui32H263_MTXTOPAZFWDataSize,
+ ui32H263_MTXTOPAZFWDataLocation
+ },
+ aui32H263_MTXTOPAZFWText,
+ aui32H263_MTXTOPAZFWData
+ },
+
+ {
+ FW_H263_VBR,
+ {
+ FW_VER,
+ FW_H263_VBR,
+ ui32H263VBR_MTXTOPAZFWTextSize,
+ ui32H263VBR_MTXTOPAZFWDataSize,
+ ui32H263VBR_MTXTOPAZFWDataLocation
+ },
+ aui32H263VBR_MTXTOPAZFWText,
+ aui32H263VBR_MTXTOPAZFWData
+ },
+
+ {
+ FW_H263_CBR,
+ {
+ FW_VER,
+ FW_H263_CBR,
+ ui32H263CBR_MTXTOPAZFWTextSize,
+ ui32H263CBR_MTXTOPAZFWDataSize,
+ ui32H263CBR_MTXTOPAZFWDataLocation
+ },
+ aui32H263CBR_MTXTOPAZFWText,
+ aui32H263CBR_MTXTOPAZFWData
+ },
+
+ {
+ FW_MPEG4_NO_RC,
+ {
+ FW_VER,
+ FW_MPEG4_NO_RC,
+ ui32MPG4_MTXTOPAZFWTextSize,
+ ui32MPG4_MTXTOPAZFWDataSize,
+ ui32MPG4_MTXTOPAZFWDataLocation
+ },
+ aui32MPG4_MTXTOPAZFWText,
+ aui32MPG4_MTXTOPAZFWData
+ },
+
+ {
+ FW_MPEG4_VBR,
+ {
+ FW_VER,
+ FW_MPEG4_VBR,
+ ui32MPG4VBR_MTXTOPAZFWTextSize,
+ ui32MPG4VBR_MTXTOPAZFWDataSize,
+ ui32MPG4VBR_MTXTOPAZFWDataLocation
+ },
+ aui32MPG4VBR_MTXTOPAZFWText,
+ aui32MPG4VBR_MTXTOPAZFWData
+ },
+
+ {
+ FW_MPEG4_CBR,
+ {
+ FW_VER,
+ FW_MPEG4_CBR,
+ ui32MPG4CBR_MTXTOPAZFWTextSize,
+ ui32MPG4CBR_MTXTOPAZFWDataSize,
+ ui32MPG4CBR_MTXTOPAZFWDataLocation
+ },
+ aui32MPG4CBR_MTXTOPAZFWText,
+ aui32MPG4CBR_MTXTOPAZFWData
+ }
+ };
+
+ /* open file */
+ fp = fopen(FW_FILE_NAME, "w");
+
+ if (NULL == fp)
+ return -1;
+ /* write fw table into the file */
+ while (iter < FW_NUM) {
+ /* record the size use bytes */
+ topaz_fw_table[iter].header.data_size *= 4;
+ topaz_fw_table[iter].header.text_size *= 4;
+
+ /* write header */
+ fwrite(&(topaz_fw_table[iter].header), sizeof(topaz_fw_table[iter].header), 1, fp);
+
+ /* write text */
+ size = topaz_fw_table[iter].header.text_size;
+ fwrite(topaz_fw_table[iter].fw_text, 1, size, fp);
+
+ /* write data */
+ size = topaz_fw_table[iter].header.data_size;
+ fwrite(topaz_fw_table[iter].fw_data, 1, size, fp);
+
+ ++iter;
+ }
+
+ /* close file */
+ fclose(fp);
+
+ return 0;
+}
diff --git a/fw/topazsc_bin.c b/fw/topazsc_bin.c
new file mode 100644
index 0000000..a16e172
--- /dev/null
+++ b/fw/topazsc_bin.c
@@ -0,0 +1,203 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+
+
+/*
+ * Authors:
+ * Elaine Wang <elaine.wang@intel.com>
+ *
+ */
+
+#include <stdio.h>
+
+#include "JPEGMasterFirmware_bin.h"
+#include "JPEGSlaveFirmware_bin.h"
+
+#include "H263MasterFirmware_bin.h"
+#include "H263MasterFirmwareCBR_bin.h"
+#include "H263MasterFirmwareVBR_bin.h"
+#include "H264MasterFirmware_bin.h"
+#include "H264MasterFirmwareCBR_bin.h"
+#include "H264MasterFirmwareVCM_bin.h"
+#include "H264MasterFirmwareVBR_bin.h"
+#include "MPG4MasterFirmware_bin.h"
+#include "MPG4MasterFirmwareCBR_bin.h"
+#include "MPG4MasterFirmwareVBR_bin.h"
+
+#include "H263SlaveFirmware_bin.h"
+#include "H263SlaveFirmwareCBR_bin.h"
+#include "H263SlaveFirmwareVBR_bin.h"
+#include "H264SlaveFirmware_bin.h"
+#include "H264SlaveFirmwareCBR_bin.h"
+#include "H264SlaveFirmwareVBR_bin.h"
+#include "H264SlaveFirmwareVCM_bin.h"
+#include "MPG4SlaveFirmware_bin.h"
+#include "MPG4SlaveFirmwareCBR_bin.h"
+#include "MPG4SlaveFirmwareVBR_bin.h"
+
+
+#define FW_VER 0x5D
+#define FW_FILE_NAME "topazsc_fw.bin"
+
+#define FW_MASTER_INFO(codec,prefix) \
+ { FW_MASTER_##codec,\
+ { FW_VER,\
+ FW_MASTER_##codec,\
+ ui32##prefix##_MasterMTXTOPAZFWTextSize,\
+ ui32##prefix##_MasterMTXTOPAZFWDataSize,\
+ ui32##prefix##_MasterMTXTOPAZFWDataOrigin\
+ },\
+ aui32##prefix##_MasterMTXTOPAZFWText, aui32##prefix##_MasterMTXTOPAZFWData \
+ }
+
+#define FW_SLAVE_INFO(codec,prefix) \
+ { FW_SLAVE_##codec,\
+ { FW_VER,\
+ FW_SLAVE_##codec,\
+ ui32##prefix##_SlaveMTXTOPAZFWTextSize,\
+ ui32##prefix##_SlaveMTXTOPAZFWDataSize,\
+ ui32##prefix##_SlaveMTXTOPAZFWDataOrigin\
+ },\
+ aui32##prefix##_SlaveMTXTOPAZFWText, aui32##prefix##_SlaveMTXTOPAZFWData \
+ }
+
+
+
+struct topaz_fw_info_item_s {
+ unsigned short ver;
+ unsigned short codec;
+
+ unsigned int text_size;
+ unsigned int data_size;
+ unsigned int data_location;
+};
+typedef struct topaz_fw_info_item_s topaz_fw_info_item_t;
+
+enum topaz_fw_codec_e {
+ FW_MASTER_JPEG = 0,
+ FW_SLAVE_JPEG,
+ FW_MASTER_H264_NO_RC,
+ FW_SLAVE_H264_NO_RC,
+ FW_MASTER_H264_VBR,
+ FW_SLAVE_H264_VBR,
+ FW_MASTER_H264_CBR,
+ FW_SLAVE_H264_CBR,
+ FW_MASTER_H263_NO_RC,
+ FW_SLAVE_H263_NO_RC,
+ FW_MASTER_H263_VBR,
+ FW_SLAVE_H263_VBR,
+ FW_MASTER_H263_CBR,
+ FW_SLAVE_H263_CBR,
+ FW_MASTER_MPEG4_NO_RC,
+ FW_SLAVE_MPEG4_NO_RC,
+ FW_MASTER_MPEG4_VBR,
+ FW_SLAVE_MPEG4_VBR,
+ FW_MASTER_MPEG4_CBR,
+ FW_SLAVE_MPEG4_CBR,
+ FW_MASTER_H264_VCM,
+ FW_SLAVE_H264_VCM,
+ FW_NUM
+};
+typedef enum topaz_fw_codec_e topaz_fw_codec_t;
+
+struct fw_table_s {
+ topaz_fw_codec_t index;
+ topaz_fw_info_item_t header;
+ unsigned long *fw_text;
+ unsigned long *fw_data;
+};
+typedef struct fw_table_s fw_table_t;
+
+int main()
+{
+ FILE *fp = NULL;
+ topaz_fw_codec_t iter = FW_MASTER_JPEG;
+ unsigned int size = 0;
+ unsigned int i;
+
+ fw_table_t topaz_fw_table[] = {
+ /* index header
+ * { ver, codec, text_size, data_size, date_location }
+ * fw_text fw_data */
+ FW_MASTER_INFO(JPEG, JPEG),
+ FW_SLAVE_INFO(JPEG, JPEG),
+
+ FW_MASTER_INFO(H264_NO_RC, H264),
+ FW_SLAVE_INFO(H264_NO_RC, H264),
+ FW_MASTER_INFO(H264_VBR, H264VBR),
+ FW_SLAVE_INFO(H264_VBR, H264VBR),
+ FW_MASTER_INFO(H264_CBR, H264CBR),
+ FW_SLAVE_INFO(H264_CBR, H264CBR),
+
+ FW_MASTER_INFO(H263_NO_RC, H263),
+ FW_SLAVE_INFO(H263_NO_RC, H263),
+ FW_MASTER_INFO(H263_VBR, H263VBR),
+ FW_SLAVE_INFO(H263_VBR, H263VBR),
+ FW_MASTER_INFO(H263_CBR, H263CBR),
+ FW_SLAVE_INFO(H263_CBR, H263CBR),
+
+ FW_MASTER_INFO(MPEG4_NO_RC, MPG4),
+ FW_SLAVE_INFO(MPEG4_NO_RC, MPG4),
+ FW_MASTER_INFO(MPEG4_VBR, MPG4VBR),
+ FW_SLAVE_INFO(MPEG4_VBR, MPG4VBR),
+ FW_MASTER_INFO(MPEG4_CBR, MPG4CBR),
+ FW_SLAVE_INFO(MPEG4_CBR, MPG4CBR),
+
+ FW_MASTER_INFO(H264_VCM, H264VCM),
+ FW_SLAVE_INFO(H264_VCM, H264VCM),
+ };
+
+ /* open file */
+ fp = fopen(FW_FILE_NAME, "w");
+
+ if (NULL == fp)
+ return -1;
+
+ /* write fw table into the file */
+ while (iter < FW_NUM) {
+ /* record the size use bytes */
+ topaz_fw_table[iter].header.data_size *= 4;
+ topaz_fw_table[iter].header.text_size *= 4;
+
+ /* write header */
+ fwrite(&(topaz_fw_table[iter].header), sizeof(topaz_fw_table[iter].header), 1, fp);
+
+ /* write text */
+ size = topaz_fw_table[iter].header.text_size;
+ fwrite(topaz_fw_table[iter].fw_text, 1, size, fp);
+
+ /* write data */
+ size = topaz_fw_table[iter].header.data_size;
+ fwrite(topaz_fw_table[iter].fw_data, 1, size, fp);
+
+ ++iter;
+ }
+
+ /* close file */
+ fclose(fp);
+
+ return 0;
+}
diff --git a/psb-video.spec b/psb-video.spec
new file mode 100644
index 0000000..ad57c08
--- /dev/null
+++ b/psb-video.spec
@@ -0,0 +1,83 @@
+#
+# Do not Edit! Generated by:
+# spectacle version 0.16
+#
+# >> macros
+%define drimoduledir %{_libdir}/dri
+%define fwdir /lib/firmware
+# << macros
+
+Name: psb-video
+Summary: mrst/mfld gfx video drivers for X11
+Version: 5.3.0.0035
+Release: 1
+Group: System/Libraries
+License: Intel Proprietary
+URL: http://freedesktop.org/wiki/Software/vaapi
+Source0: %{name}-%{version}.tar.bz2
+NoSource: 0
+AutoReqProv: no
+Requires: xorg-x11-server-Xorg
+Requires(post): /sbin/ldconfig
+Requires(postun): /sbin/ldconfig
+BuildRequires: pkgconfig(xv)
+BuildRequires: pkgconfig(xrandr)
+BuildRequires: pkgconfig(xrender)
+BuildRequires: pkgconfig(xorg-server)
+BuildRequires: pkgconfig(libdrm)
+BuildRequires: pkgconfig(x11)
+BuildRequires: pkgconfig(xext)
+BuildRequires: pkgconfig(xextproto)
+BuildRequires: pkgconfig(xproto)
+BuildRequires: pkgconfig(libwsbm)
+BuildRequires: pkgconfig(libva)
+BuildRequires: kernel-staging-drivers-headers
+BuildRequires: libmemrar-devel
+BuildRequires: pvr-bin-UMG pvr-bin-UMG-compatlibs
+BuildRequires: libtool
+Requires: pvr-bin-UMG pvr-bin-UMG-compatlibs
+
+%description
+mrst/mfld video x11 drivers
+
+
+%prep
+%setup -q
+
+# >> setup
+# << setup
+
+%build
+# >> build pre
+unset LD_AS_NEEDED
+# << build pre
+
+./autogen.sh
+make %{?jobs:-j%jobs}
+
+# >> build post
+# << build post
+%install
+rm -rf %{buildroot}
+# >> install pre
+# << install pre
+%make_install
+
+# >> install post
+# << install post
+
+
+
+%post -p /sbin/ldconfig
+
+%postun -p /sbin/ldconfig
+
+
+
+
+%files
+%defattr(-,root,root,-)
+# >> files
+%{drimoduledir}/pvr_drv_video.so
+%{fwdir}/*.bin
+# << files
diff --git a/src/Android.mk b/src/Android.mk
new file mode 100644
index 0000000..dc4af02
--- /dev/null
+++ b/src/Android.mk
@@ -0,0 +1,112 @@
+# Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+#
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sub license, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice (including the
+# next paragraph) shall be included in all copies or substantial portions
+# of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+# IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+# ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+
+ifeq ($(ENABLE_IMG_GRAPHICS),true)
+LOCAL_PATH:= $(call my-dir)
+
+include $(CLEAR_VARS)
+
+PSBVIDEO_LOG_ENABLE := true
+
+LOCAL_SRC_FILES := \
+ lnc_H263ES.c \
+ lnc_H264ES.c \
+ lnc_MPEG4ES.c \
+ lnc_cmdbuf.c \
+ lnc_hostcode.c \
+ lnc_hostheader.c \
+ lnc_ospm.c \
+ object_heap.c \
+ psb_H264.c \
+ psb_MPEG2.c \
+ psb_MPEG2MC.c \
+ psb_MPEG4.c \
+ psb_VC1.c \
+ psb_buffer.c \
+ psb_buffer_dm.c \
+ psb_cmdbuf.c \
+ psb_deblock.c \
+ psb_drv_video.c \
+ psb_output.c \
+ psb_texstreaming.c \
+ psb_texture.c \
+ android/psb_output_android.c \
+ android/psb_android_glue.cpp \
+ psb_surface.c \
+ psb_overlay.c \
+ psb_ws_driver.c \
+ vc1_idx.c \
+ vc1_vlc.c \
+ pnw_H263ES.c \
+ pnw_H264.c \
+ pnw_H264ES.c \
+ pnw_MPEG2.c \
+ pnw_MPEG4.c \
+ pnw_MPEG4ES.c \
+ pnw_VC1.c \
+ pnw_cmdbuf.c \
+ pnw_hostcode.c \
+ pnw_hostheader.c \
+ pnw_hostjpeg.c \
+ pnw_jpeg.c \
+ powervr_iep_lite/csc/csc2.c \
+ powervr_iep_lite/csc/csc2_data.c \
+ powervr_iep_lite/fixedpointmaths/fixedpointmaths.c \
+ powervr_iep_lite/iep_lite/iep_lite_api.c \
+ powervr_iep_lite/iep_lite/iep_lite_hardware.c \
+ powervr_iep_lite/iep_lite/iep_lite_utils.c
+
+LOCAL_CFLAGS := -DLINUX -DANDROID -g -Wall -Wno-unused
+
+LOCAL_C_INCLUDES := \
+ $(TOPDIR)hardware/intel/include \
+ $(TOPDIR)hardware/intel/include/eurasia/pvr2d \
+ $(TARGET_OUT_HEADERS)/libva \
+ $(TOPDIR)hardware/intel/include/drm \
+ $(TARGET_OUT_HEADERS)/libttm \
+ $(TARGET_OUT_HEADERS)/libmemrar \
+ $(TARGET_OUT_HEADERS)/libwsbm \
+ $(TARGET_OUT_HEADERS)/libpsb_drm\
+ $(TARGET_OUT_HEADERS)/opengles \
+ $(LOCAL_PATH)/hwdefs \
+ $(LOCAL_PATH)/powervr_iep_lite/include \
+ $(LOCAL_PATH)/powervr_iep_lite/include/win32 \
+ $(LOCAL_PATH)/powervr_iep_lite/csc \
+ $(LOCAL_PATH)/powervr_iep_lite/iep_lite \
+ $(LOCAL_PATH)/powervr_iep_lite/fixedpointmaths
+
+LOCAL_MODULE_TAGS := eng
+LOCAL_MODULE := pvr_drv_video
+
+LOCAL_SHARED_LIBRARIES := libdl libdrm libwsbm libmemrar libpvr2d libcutils \
+ libui libutils libbinder libsurfaceflinger_client
+
+ifeq ($(strip $(PSBVIDEO_LOG_ENABLE)),true)
+LOCAL_CFLAGS += -DPSBVIDEO_LOG_ENABLE
+LOCAL_SHARED_LIBRARIES += liblog
+endif
+
+include $(BUILD_SHARED_LIBRARY)
+endif
+
diff --git a/src/Makefile.am b/src/Makefile.am
new file mode 100644
index 0000000..dda4392
--- /dev/null
+++ b/src/Makefile.am
@@ -0,0 +1,59 @@
+# Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+#
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sub license, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice (including the
+# next paragraph) shall be included in all copies or substantial portions
+# of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+# IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+# ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+
+pvr_drv_video_la_LTLIBRARIES = pvr_drv_video.la
+pvr_drv_video_ladir = /usr/lib/dri
+pvr_drv_video_la_LDFLAGS = -lwsbm -pthread -module -avoid-version -Wl,--no-undefined
+pvr_drv_video_la_LIBADD = -ldrm -lX11 -lXrandr -lva-x11 -lXv -lm -lXext /usr/lib/libmemrar.a -lpvr2d
+AM_CFLAGS = -DDEBUG -DLINUX -I$(top_srcdir)/src/hwdefs $(DRM_CFLAGS) \
+ -I$(top_srcdir)/src/powervr_iep_lite/include \
+ -I$(top_srcdir)/src/powervr_iep_lite/include/win32 \
+ -I$(top_srcdir)/src/powervr_iep_lite/iep_lite \
+ -I$(top_srcdir)/src/powervr_iep_lite/fixedpointmaths \
+ -I$(top_srcdir)/src/powervr_iep_lite/csc
+
+
+pvr_drv_video_la_SOURCES = psb_drv_video.c object_heap.c psb_buffer.c psb_buffer_dm.c psb_cmdbuf.c psb_surface.c \
+ psb_MPEG2.c psb_MPEG2MC.c psb_MPEG4.c psb_VC1.c psb_H264.c \
+ vc1_vlc.c vc1_idx.c psb_deblock.c \
+ lnc_H263ES.c lnc_H264ES.c lnc_MPEG4ES.c lnc_cmdbuf.c \
+ lnc_hostcode.c lnc_hostheader.c lnc_ospm.c psb_ws_driver.c \
+ pnw_hostheader.c pnw_hostcode.c \
+ pnw_cmdbuf.c pnw_H264ES.c pnw_H263ES.c pnw_MPEG4ES.c \
+ pnw_H264.c pnw_MPEG2.c pnw_MPEG4.c pnw_hostjpeg.c pnw_jpeg.c pnw_VC1.c\
+ psb_output.c psb_overlay.c psb_texture.c psb_texstreaming.c\
+ x11/psb_x11.c x11/psb_coverlay.c x11/psb_xrandr.c x11/psb_xvva.c x11/psb_ctexture.c
+# vc1_ap_i.c vc1_ap_p.c vc1_ap_utils.c vc1_bitplane.c \
+# vc1_shiftreg.c vc1_spmp.c vc1_utils.c
+
+
+CFLAGS = -O1 -Wall -ffloat-store -fvisibility=hidden
+
+symbol_info: pvr_drv_video.la
+ objdump -T .libs/pvr_drv_video.so | grep UND | sort -k 5 > Linker_dependencies.txt
+ objdump -T .libs/pvr_drv_video.so | grep -v UND | sort -k 5 > Linker_exports.txt
+
+#install-exec-am:
+# -rm -f $(pvr_drv_video_ladir)/psb_drv_video.so
+# -$(LN_S) $(pvr_drv_video_ladir)/pvr_drv_video.so $(pvr_drv_video_ladir)/psb_drv_video.so
diff --git a/src/android/psb_android_glue.cpp b/src/android/psb_android_glue.cpp
new file mode 100644
index 0000000..981747e
--- /dev/null
+++ b/src/android/psb_android_glue.cpp
@@ -0,0 +1,184 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ * Zhaohan Ren <zhaohan.ren@intel.com>
+ * Jiang Fei <jiang.fei@intel.com>
+ * Binglin Chen <binglin.chen@intel.com>
+ *
+ */
+
+
+#include <binder/IPCThreadState.h>
+#include <binder/ProcessState.h>
+#include <binder/IServiceManager.h>
+#include <surfaceflinger/Surface.h>
+#include <surfaceflinger/ISurface.h>
+#include <surfaceflinger/SurfaceComposerClient.h>
+#include <binder/MemoryHeapBase.h>
+#include "psb_android_glue.h"
+#include "psb_texstreaming.h"
+#include <cutils/log.h>
+
+using namespace android;
+
+sp<ISurface> isurface;
+ISurface::BufferHeap mBufferHeap;
+
+unsigned char* psb_android_registerBuffers(void** android_isurface, int pid, int width, int height)
+{
+ sp<MemoryHeapBase> heap;
+ int framesize = width * height * 2;
+
+ heap = new MemoryHeapBase(framesize);
+ if (heap->heapID() < 0) {
+ printf("Error creating frame buffer heap");
+ return 0;
+ }
+
+ mBufferHeap = ISurface::BufferHeap(width, height, width, height, PIXEL_FORMAT_RGB_565, heap);
+
+ isurface = static_cast<ISurface*>(*android_isurface);
+
+ isurface->registerBuffers(mBufferHeap);
+
+ return static_cast<uint8_t*>(mBufferHeap.heap->base());
+}
+
+void psb_android_postBuffer(int offset)
+{
+ if (isurface.get())
+ isurface->postBuffer(offset);
+}
+
+//called in DestroySurfaces
+void psb_android_clearHeap()
+{
+ if (isurface.get()) {
+ isurface->unregisterBuffers();
+ mBufferHeap.heap.clear();
+ }
+}
+
+int psb_android_register_isurface(void** android_isurface, int bcd_id, int srcw, int srch)
+{
+ if (isurface != *android_isurface) {
+ isurface = static_cast<ISurface*>(*android_isurface);
+ if (isurface.get()) {
+ isurface->createTextureStreamSource();
+ LOGD("In psb_android_register_isurface: buffer_device_id is %d.\n", bcd_id);
+ isurface->setTextureStreamID(bcd_id);
+ return 0;
+ } else {
+ return -1;
+ }
+ }
+ return 0;
+}
+
+void psb_android_texture_streaming_set_crop(short srcx,
+ short srcy,
+ unsigned short srcw,
+ unsigned short srch)
+{
+ static short saved_srcx, saved_srcy, saved_srcw, saved_srch;
+ if (isurface.get() &&
+ ((saved_srcx != srcx) || (saved_srcy != srcy) || (saved_srcw != srcw) || (saved_srch != srch))) {
+ isurface->setTextureStreamClipRect(srcx, srcy, srcw, srch);
+ /*
+ Resolve issue - Green line in the bottom of display while video is played
+ This issue is caused by the buffer size larger than video size and texture linear filtering.
+ The pixels of last line will computed from the pixels out of video picture
+ */
+ if ((srch & 0x1f) == 0)
+ isurface->setTextureStreamDim(srcw, srch);
+ else
+ isurface->setTextureStreamDim(srcw, srch - 1);
+ saved_srcx = srcx;
+ saved_srcy = srcy;
+ saved_srcw = srcw;
+ saved_srch = srch;
+ }
+}
+
+void psb_android_texture_streaming_set_blend(short destx,
+ short desty,
+ unsigned short destw,
+ unsigned short desth,
+ unsigned int background_color,
+ unsigned int blend_color,
+ unsigned short blend_mode)
+{
+ static unsigned short saved_destx, saved_desty, saved_destw, saved_desth;
+ static unsigned int saved_background_color, saved_blend_color;
+ static int saved_blend_mode = -1;
+ unsigned short bg_red, bg_green, bg_blue, bg_alpha;
+ unsigned short blend_red, blend_green, blend_blue, blend_alpha;
+
+ if (saved_background_color != background_color) {
+ bg_alpha = (background_color & 0xff000000) >> 24;
+ bg_red = (background_color & 0xff0000) >> 16;
+ bg_green = (background_color & 0xff00) >> 8;
+ bg_blue = background_color & 0xff;
+ saved_background_color = background_color;
+ }
+
+ if (saved_blend_color != blend_color) {
+ blend_alpha = (blend_color & 0xff000000) >> 24;
+ blend_red = (blend_color & 0xff0000) >> 16;
+ blend_green = (blend_color & 0xff00) >> 8;
+ blend_blue = blend_color & 0xff;
+ saved_blend_color = blend_color;
+ }
+
+ if (isurface.get()) {
+ if ((saved_destx != destx) || (saved_desty != desty) || (saved_destw != destw) || (saved_desth != desth)) {
+ isurface->setTextureStreamPosRect(destx, desty, destw, desth);
+ saved_destx = destx;
+ saved_desty = desty;
+ saved_destw = destw;
+ saved_desth = desth;
+ }
+ if (saved_background_color != background_color)
+ isurface->setTextureStreamBorderColor(bg_red, bg_green, bg_blue, bg_alpha);
+ if (saved_blend_color != blend_color)
+ isurface->setTextureStreamVideoColor(blend_red, blend_green, blend_blue, blend_alpha);
+ if (saved_blend_mode != blend_mode) {
+ isurface->setTextureStreamBlendMode(blend_mode);
+ saved_blend_mode = blend_mode;
+ }
+ }
+}
+
+void psb_android_texture_streaming_display(int buffer_index)
+{
+ if (isurface.get())
+ isurface->displayTextureStreamBuffer(buffer_index);
+}
+
+void psb_android_texture_streaming_destroy()
+{
+ if (isurface.get())
+ isurface->destroyTextureStreamSource();
+}
+
diff --git a/src/android/psb_android_glue.h b/src/android/psb_android_glue.h
new file mode 100644
index 0000000..ff8e151
--- /dev/null
+++ b/src/android/psb_android_glue.h
@@ -0,0 +1,61 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ * Zhaohan Ren <zhaohan.ren@intel.com>
+ *
+ */
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+ unsigned char* psb_android_registerBuffers(void** surface, int pid, int width, int height);
+
+ void psb_android_postBuffer(int offset);
+
+ void psb_android_clearHeap();
+
+ void psb_android_texture_streaming_display(int buffer_index);
+
+ void psb_android_texture_streaming_set_crop(short srcx,
+ short srcy,
+ unsigned short srcw,
+ unsigned short srch);
+
+ void psb_android_texture_streaming_set_blend(short destx,
+ short desty,
+ unsigned short destw,
+ unsigned short desth,
+ unsigned int border_color,
+ unsigned int blend_color,
+ unsigned short blend_mode);
+
+ void psb_android_texture_streaming_destroy();
+
+ int psb_android_register_isurface(void** surface, int bcd_id, int srcw, int srch);
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/src/android/psb_output_android.c b/src/android/psb_output_android.c
new file mode 100644
index 0000000..1a6466f
--- /dev/null
+++ b/src/android/psb_output_android.c
@@ -0,0 +1,378 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ * Zhaohan Ren <zhaohan.ren@intel.com>
+ * Shengquan Yuan <shengquan.yuan@intel.com>
+ * Jiang Fei <jiang.fei@intel.com>
+ * Binglin Chen <binglin.chen@intel.com>
+ *
+ */
+
+#include <va/va_backend.h>
+#include "psb_output.h"
+#include "psb_surface.h"
+#include "psb_buffer.h"
+#include "psb_overlay.h"
+#include "psb_texture.h"
+#include <stdio.h>
+#include <string.h>
+#include <stdarg.h>
+#include <cutils/log.h>
+#include "psb_android_glue.h"
+#include "psb_texstreaming.h"
+#include <wsbm/wsbm_manager.h>
+
+#define INIT_DRIVER_DATA psb_driver_data_p driver_data = (psb_driver_data_p) ctx->pDriverData;
+#define INIT_OUTPUT_PRIV psb_android_output_p output = (psb_android_output_p)(((psb_driver_data_p)ctx->pDriverData)->ws_priv)
+
+#define SURFACE(id) ((object_surface_p) object_heap_lookup( &driver_data->surface_heap, id ))
+#define BUFFER(id) ((object_buffer_p) object_heap_lookup( &driver_data->buffer_heap, id ))
+#define IMAGE(id) ((object_image_p) object_heap_lookup( &driver_data->image_heap, id ))
+#define SUBPIC(id) ((object_subpic_p) object_heap_lookup( &driver_data->subpic_heap, id ))
+#define CONTEXT(id) ((object_context_p) object_heap_lookup( &driver_data->context_heap, id ))
+
+
+typedef struct _psb_android_output_s {
+ /* information of output display */
+ unsigned short screen_width;
+ unsigned short screen_height;
+
+ /* for memory heap base used by putsurface */
+ unsigned char* heap_addr;
+} psb_android_output_s, *psb_android_output_p;
+
+
+void *psb_android_output_init(VADriverContextP ctx)
+{
+ INIT_DRIVER_DATA;
+ char put_surface[1024];
+ struct drm_psb_register_rw_arg regs;
+ psb_android_output_p output = calloc(1, sizeof(psb_android_output_s));
+
+ struct fb_var_screeninfo vinfo = {0};
+ int fbfd = -1;
+ int ret;
+
+ if (output == NULL) {
+ psb__error_message("Can't malloc memory\n");
+ return VA_STATUS_ERROR_ALLOCATION_FAILED;
+ }
+
+ /* Guess the screen size */
+ output->screen_width = 800;
+ output->screen_height = 480;
+
+ // Open the frame buffer for reading
+ fbfd = open("/dev/graphics/fb0", O_RDONLY);
+ if (fbfd) {
+ if (ioctl(fbfd, FBIOGET_VSCREENINFO, &vinfo))
+ psb__information_message("Error reading screen information.\n");
+ }
+ close(fbfd);
+ output->screen_width = vinfo.xres;
+ output->screen_height = vinfo.yres;
+
+ /* TS by default */
+ driver_data->output_method = PSB_PUTSURFACE_TEXSTREAMING;
+ driver_data->color_key = 0x0; /*black*/
+
+ /* Init CTEXTURE for vaPutSurfaceBuf */
+ driver_data->ctexture = 1;
+
+ if (psb_parse_config("PSB_VIDEO_COVERLAY", &put_surface[0]) == 0) {
+ psb__information_message("Putsurface use client overlay\n");
+ driver_data->output_method = PSB_PUTSURFACE_FORCE_COVERLAY;
+ }
+
+
+ if (getenv("PSB_VIDEO_COVERLAY")) {
+ psb__information_message("Putsurface use client overlay\n");
+ driver_data->output_method = PSB_PUTSURFACE_FORCE_COVERLAY;
+ }
+ /*Alway init coverlay for MDFLD*/
+ if (IS_MFLD(driver_data))
+ driver_data->coverlay = 1;
+ /*set PIPEB(HDMI)source format as RGBA*/
+ memset(&regs, 0, sizeof(regs));
+ regs.subpicture_enable_mask = REGRWBITS_DSPBCNTR;
+ drmCommandWriteRead(driver_data->drm_fd, DRM_PSB_REGISTER_RW, &regs, sizeof(regs));
+
+ return output;
+}
+
+VAStatus psb_android_output_deinit(VADriverContextP ctx)
+{
+ INIT_OUTPUT_PRIV;
+ //psb_android_output_p output = GET_OUTPUT_DATA(ctx);
+
+ return VA_STATUS_SUCCESS;
+}
+
+static VAStatus psb_putsurface_ctexture(
+ VADriverContextP ctx,
+ VASurfaceID surface,
+ unsigned char* data,
+ short srcx,
+ short srcy,
+ unsigned short srcw,
+ unsigned short srch,
+ short destx,
+ short desty,
+ unsigned short destw,
+ unsigned short desth,
+ unsigned int flags /* de-interlacing flags */
+)
+{
+ INIT_DRIVER_DATA;
+ INIT_OUTPUT_PRIV;
+ object_surface_p obj_surface = SURFACE(surface);
+ int offset = 0;
+ psb_surface_p psb_surface;
+
+ obj_surface = SURFACE(surface);
+ psb_surface = obj_surface->psb_surface;
+
+// psb_surface->buf.drm_buf;
+// psb_surface->buf.pl_flags;
+
+#if 0
+ printf("pl_flags %x\n", psb_surface->buf.pl_flags);
+
+ printf("FIXME: not sure how Android app handle rotation?\n"
+ "need to revise width & height here?\n");
+
+ printf("FIXME: need to prepare a rotation/RAR surface here?\n");
+
+ printf("FIXME: camera preview surface is different, all is \n"
+ "just one buffer, so a pre_add is needed\n");
+ psb__error_message("srcx %d, srcy %d, srcw %d, srch %d, destx %d, desty %d, destw %d,\n"
+ "desth %d, width %d height %d, stride %d drm_buf %x\n",
+ srcx, srcy, srcw, srch, destx, desty, destw, desth, obj_surface->width,
+ obj_surface->height, psb_surface->stride, psb_surface->buf.drm_buf);
+#endif
+ psb_putsurface_textureblit(ctx, data, surface, srcx, srcy, srcw, srch, destx, desty, destw, desth,
+ obj_surface->width, obj_surface->height,
+ psb_surface->stride, psb_surface->buf.drm_buf,
+ psb_surface->buf.pl_flags);
+
+ psb_android_postBuffer(offset);
+ return VA_STATUS_SUCCESS;
+}
+
+
+VAStatus psb_putsurface_coverlay(
+ VADriverContextP ctx,
+ VASurfaceID surface,
+ short srcx,
+ short srcy,
+ unsigned short srcw,
+ unsigned short srch,
+ short destx, /* screen cooridination */
+ short desty,
+ unsigned short destw,
+ unsigned short desth,
+ unsigned int flags /* de-interlacing flags */
+)
+{
+ INIT_OUTPUT_PRIV;
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+
+ /* USE_FIT_SCR_SIZE */
+ /* calculate fit screen size of frame */
+ unsigned short _scr_x = output->screen_width;
+ unsigned short _scr_y = output->screen_height;
+ float _slope_xy = (float)srch / srcw;
+ unsigned short _destw = (short)(_scr_y / _slope_xy);
+ unsigned short _desth = (short)(_scr_x * _slope_xy);
+ short _pos_x, _pos_y;
+
+ if (_destw <= _scr_x) {
+ _desth = _scr_y;
+ _pos_x = (_scr_x - _destw) >> 1;
+ _pos_y = 0;
+ } else {
+ _destw = _scr_x;
+ _pos_x = 0;
+ _pos_y = (_scr_y - _desth) >> 1;
+ }
+ destx += _pos_x;
+ desty += _pos_y;
+ destw = _destw;
+ desth = _desth;
+
+ /* display by overlay */
+ vaStatus = psb_putsurface_overlay(
+ ctx, surface, srcx, srcy, srcw, srch,
+ destx, desty, destw, desth, /* screen coordinate */
+ flags, OVERLAY_A, PIPEA);
+
+ return vaStatus;
+}
+
+VAStatus psb_PutSurfaceBuf(
+ VADriverContextP ctx,
+ VASurfaceID surface,
+ unsigned char* data,
+ int* data_len,
+ short srcx,
+ short srcy,
+ unsigned short srcw,
+ unsigned short srch,
+ short destx,
+ short desty,
+ unsigned short destw,
+ unsigned short desth,
+ VARectangle *cliprects, /* client supplied clip list */
+ unsigned int number_cliprects, /* number of clip rects in the clip list */
+ unsigned int flags /* de-interlacing flags */
+)
+{
+ INIT_DRIVER_DATA;
+ INIT_OUTPUT_PRIV;
+ object_surface_p obj_surface = SURFACE(surface);
+ int offset = 0;
+ psb_surface_p psb_surface;
+
+ obj_surface = SURFACE(surface);
+ psb_surface = obj_surface->psb_surface;
+
+ psb_putsurface_textureblit(ctx, data, surface, srcx, srcy, srcw, srch, destx, desty, destw, desth,
+ obj_surface->width, obj_surface->height,
+ psb_surface->stride, psb_surface->buf.drm_buf,
+ psb_surface->buf.pl_flags);
+
+ return VA_STATUS_SUCCESS;
+}
+
+VAStatus psb_PutSurface(
+ VADriverContextP ctx,
+ VASurfaceID surface,
+ void *android_isurface,
+ short srcx,
+ short srcy,
+ unsigned short srcw,
+ unsigned short srch,
+ short destx,
+ short desty,
+ unsigned short destw,
+ unsigned short desth,
+ VARectangle *cliprects, /* client supplied clip list */
+ unsigned int number_cliprects, /* number of clip rects in the clip list */
+ unsigned int flags /* de-interlacing flags */
+)
+{
+ INIT_DRIVER_DATA;
+ INIT_OUTPUT_PRIV;
+ object_surface_p obj_surface;
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+
+ obj_surface = SURFACE(surface);
+ if (NULL == obj_surface) {
+ vaStatus = VA_STATUS_ERROR_INVALID_SURFACE;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ if (driver_data->dummy_putsurface) {
+ LOGD("vaPutSurface: dummy mode, return directly\n");
+ return VA_STATUS_SUCCESS;
+ }
+
+ if (driver_data->render_device == VA_RENDER_DEVICE_EXTERNAL) {
+ /*Use overlay to render external HDMI display*/
+ vaStatus = psb_putsurface_overlay(ctx, surface,
+ srcx, srcy, srcw, srch,
+ driver_data->render_rect.x, driver_data->render_rect.y,
+ driver_data->render_rect.width, driver_data->render_rect.height,
+ flags, OVERLAY_A, PIPEB);
+ } else if ((driver_data->render_mode & VA_RENDER_MODE_LOCAL_OVERLAY) ||
+ (driver_data->output_method == PSB_PUTSURFACE_FORCE_COVERLAY) ||
+ (driver_data->output_method == PSB_PUTSURFACE_COVERLAY)) {
+ LOGD("In psb_PutSurface, use overlay to display video.\n");
+ LOGD("srcx is %d, srcy is %d, srcw is %d, srch is %d, destx is %d, desty is %d, destw is %d, desth is %d.\n", \
+ srcx, srcy, srcw, srch, destx, desty, destw, desth);
+ /*Use overlay to render local display*/
+ if (destw > output->screen_width)
+ destw = output->screen_width;
+ if (desth > output->screen_height)
+ desth = output->screen_height;
+ vaStatus = psb_putsurface_overlay(ctx, surface,
+ srcx, srcy, srcw, srch,
+ destx, desty, destw, desth,
+ flags, OVERLAY_A, PIPEA);
+ /*Use overlay to render external HDMI display*/
+ if (driver_data->render_device & VA_RENDER_DEVICE_EXTERNAL) {
+ vaStatus = psb_putsurface_overlay(ctx, surface,
+ srcx, srcy, srcw, srch,
+ driver_data->render_rect.x, driver_data->render_rect.y,
+ driver_data->render_rect.width, driver_data->render_rect.height,
+ flags, OVERLAY_C, PIPEB);
+ }
+ } else {
+ LOGD("In psb_PutSurface, use texture streaming to display video.\n");
+ LOGD("In psb_PutSurface, call psb_android_register_isurface to create texture streaming source, srcw is %d, srch is %d.\n", srcw, srch);
+ if (psb_android_register_isurface(android_isurface, driver_data->bcd_id, srcw, srch)) {
+ LOGE("In psb_PutSurface, android_isurface is not a valid isurface object.\n");
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+ /*blend/positioning setting can be called by app directly, or enable VA_ENABLE_BLEND flag to let driver call*/
+ if (flags & VA_ENABLE_BLEND)
+ psb_android_texture_streaming_set_blend(destx, desty, destw, desth,
+ driver_data->clear_color,
+ driver_data->blend_color,
+ driver_data->blend_mode);
+ /*cropping can be also used for dynamic resolution change feature, only high to low resolution*/
+ /*by default, srcw and srch is set to video width and height*/
+ if ((0 == srcw) || (0 == srch)) {
+ srcw = obj_surface->width;
+ srch = obj_surface->height_origin;
+ }
+ psb_android_texture_streaming_set_crop(srcx, srcy, srcw, srch);
+
+ BC_Video_ioctl_package ioctl_package;
+ psb_surface_p psb_surface;
+ psb_surface = obj_surface->psb_surface;
+ ioctl_package.ioctl_cmd = BC_Video_ioctl_get_buffer_index;
+ ioctl_package.device_id = driver_data->bcd_id;
+ ioctl_package.inputparam = (int)(wsbmKBufHandle(wsbmKBuf(psb_surface->buf.drm_buf)));
+
+ if (drmCommandWriteRead(driver_data->drm_fd, driver_data->bcd_ioctrl_num, &ioctl_package, sizeof(ioctl_package)) != 0) {
+ psb__error_message("Failed to get buffer index from buffer class video driver (errno=%d).\n", errno);
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+ LOGD("buffer handle is %d and buffer index is %d.\n", ioctl_package.inputparam, ioctl_package.outputparam);
+ psb_android_texture_streaming_display(ioctl_package.outputparam);
+
+ /*Use overlay to render external HDMI display*/
+ if (driver_data->render_device & VA_RENDER_DEVICE_EXTERNAL) {
+ vaStatus = psb_putsurface_overlay(ctx, surface,
+ srcx, srcy, srcw, srch,
+ driver_data->render_rect.x, driver_data->render_rect.y,
+ driver_data->render_rect.width, driver_data->render_rect.height,
+ flags, OVERLAY_A, PIPEB);
+ }
+ }
+
+ return vaStatus;
+}
diff --git a/src/ci_va.h b/src/ci_va.h
new file mode 100644
index 0000000..af3b3ca
--- /dev/null
+++ b/src/ci_va.h
@@ -0,0 +1,102 @@
+/* Most of the codes are copied from V4L2 sample capture.c, see
+ * Video for Linux Two API Specification
+ * http://v4l2spec.bytesex.org/spec-single/v4l2.html#CAPTURE-EXAMPLE
+ */
+
+/* for buffer sharing between CI and VA */
+
+#ifndef _CI_VA_H
+#define _CI_VA_H
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <fcntl.h> /* low-level i/o */
+#include <unistd.h>
+#include <errno.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <sys/ioctl.h>
+
+struct ci_frame_info {
+ unsigned long frame_id; /* in */
+ unsigned int width; /* out */
+ unsigned int height; /* out */
+ unsigned int stride; /* out */
+ unsigned int fourcc; /* out */
+ unsigned int offset; /* out */
+};
+
+#define ISP_IOCTL_GET_FRAME_INFO _IOWR('V', 192 + 5, struct ci_frame_info)
+
+
+static int
+open_device(char *dev_name)
+{
+ struct stat st;
+ int fd;
+
+ if (-1 == stat(dev_name, &st)) {
+ fprintf(stderr, "Cannot identify '%s': %d, %s\n",
+ dev_name, errno, strerror(errno));
+ return -1;
+ }
+
+ if (!S_ISCHR(st.st_mode)) {
+ fprintf(stderr, "%s is no device\n", dev_name);
+ return -1;
+ }
+
+ fd = open(dev_name, O_RDWR /* required */ | O_NONBLOCK, 0);
+
+ if (-1 == fd) {
+ fprintf(stderr, "Cannot open '%s': %d, %s\n",
+ dev_name, errno, strerror(errno));
+ return -1;
+ }
+
+ return fd;
+}
+
+
+static int
+close_device(int fd)
+{
+ if (-1 == close(fd)) {
+ fprintf(stderr, "close device failed\n");
+ return -1;
+ }
+
+ return 0;
+}
+
+static int
+xioctl(int fd, int request, void *arg)
+{
+ int r;
+
+ do
+ r = ioctl(fd, request, arg);
+ while (-1 == r && EINTR == errno);
+
+ return r;
+}
+
+static int
+ci_get_frame_info(int fd, struct ci_frame_info *frame_info)
+{
+ if (-1 == xioctl(fd, ISP_IOCTL_GET_FRAME_INFO, frame_info)) {
+ if (EINVAL == errno) {
+ fprintf(stderr, "Camear IOCTL ISP_IOCTL_GET_FRAME_INFO failed\n");
+ return -1;
+ } else {
+ fprintf(stderr, "Camear IOCTL ISP_IOCTL_GET_FRAME_INFO failed\n");
+ return -1;
+ }
+ }
+ return 0;
+}
+
+
+#endif
+
diff --git a/src/hwdefs/dma_api.h b/src/hwdefs/dma_api.h
new file mode 100644
index 0000000..8bb0535
--- /dev/null
+++ b/src/hwdefs/dma_api.h
@@ -0,0 +1,764 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+
+/*!
+******************************************************************************
+ @file : dma_api.h
+
+ @brief
+
+ @date 02/11/2005
+
+ \n<b>Description:</b>\n
+ This file contains header file for the MTX DMAC API.
+
+ The MTX DMAC API can operate synchronously or asynchronously.
+
+ In synchronous case, the API uses an internal callback function
+ to detect state transitions and the SEMA API to block whilst
+ waiting for the transfer to complete.
+
+ In the asynchronous case, the caller is responsible for
+ detecting and handling the state transitions and synchronising
+ with other processes/processing.
+
+ \n<b>Platform:</b>\n
+ MSVDX/MTX
+
+******************************************************************************/
+/*
+******************************************************************************
+ Modifications :-
+
+ $Log: dma_api.h $
+
+ --- Revision Logs Removed ---
+
+ --- Revision Logs Removed ---
+
+ --- Revision Logs Removed ---
+
+ --- Revision Logs Removed ---
+
+ --- Revision Logs Removed ---
+
+ --- Revision Logs Removed ---
+
+ --- Revision Logs Removed ---
+
+ --- Revision Logs Removed ---
+
+ --- Revision Logs Removed ---
+
+ --- Revision Logs Removed ---
+
+ --- Revision Logs Removed ---
+
+ --- Revision Logs Removed ---
+
+ --- Revision Logs Removed ---
+
+ --- Revision Logs Removed ---
+
+ --- Revision Logs Removed ---
+
+ --- Revision Logs Removed ---
+
+ --- Revision Logs Removed ---
+
+ --- Revision Logs Removed ---
+
+ --- Revision Logs Removed ---
+
+ --- Revision Logs Removed ---
+
+ --- Revision Logs Removed ---
+
+ --- Revision Logs Removed ---
+
+ --- Revision Logs Removed ---
+
+
+*****************************************************************************/
+
+
+#if !defined (__DMA_API_H__)
+#define __DMA_API_H__
+
+#include <img_types.h>
+#include "msvdx_dmac_regs_io2.h"
+#include "msvdx_dmac_linked_list.h"
+
+#if (__cplusplus)
+extern "C" {
+#endif
+
+ /*!
+ ******************************************************************************
+ This type defines the DMAC status
+ ******************************************************************************/
+ typedef enum {
+ DMA_STATUS_IDLE, //!< The DMAC is idle.
+ DMA_STATUS_BUSY, //!< The DMAC is busy - a DMA is in progress.
+ DMA_STATUS_COMPLETE, /*!< The DMAC operation has completed - return by
+ DMA_GetStatus()once before the DMAC returns
+ to #DMA_STATUS_IDLE. */
+ DMA_STATUS_TIMEOUT, /*!< The DMAC operation has timed-out - return by
+ DMA_GetStatus()once before the DMAC returns
+ to #DMA_STATUS_IDLE. */
+
+ }
+ DMA_eStatus;
+
+ /*!
+ ******************************************************************************
+ This type defines the DMA channel Ids
+ ******************************************************************************/
+ typedef enum {
+ DMA_CHANNEL_MTX = 0x0, //!< DMA channel for MTX
+ DMA_CHANNEL_RESERVED, //!< DMA channel 1 is reserved for VEC use
+ DMA_CHANNEL_SR1, //!< DMA channel for 1st shift register
+ DMA_CHANNEL_SR2, //!< DMA channel for 2nd shift register
+ DMA_CHANNEL_SR3, //!< DMA channel for 3rd shift register
+ DMA_CHANNEL_SR4, //!< DMA channel for 4th shift register
+
+ } DMA_eChannelId;
+
+ /*!
+ ******************************************************************************
+ Used with DMA_SyncAction() and DMA_AsyncAction() to indicate whether
+ the peripheral is the mtx or not.
+ ******************************************************************************/
+ enum {
+ DMA_PERIPH_IS_NOT_MTX = 0, //!< The peripheral is not the mtx.
+ DMA_PERIPH_IS_MTX = 1, //!< The peripheral is the mtx.
+ };
+
+ /*!
+ ******************************************************************************
+ This type defines the byte swap settings.
+ ******************************************************************************/
+ typedef enum {
+ DMA_BSWAP_NO_SWAP = 0x0, //!< No byte swapping will be performed.
+ DMA_BSWAP_REVERSE = 0x1, //!< Byte order will be reversed.
+
+ } DMA_eBSwap;
+
+ /*!
+ ******************************************************************************
+ This type defines the peripheral width settings
+ ******************************************************************************/
+ typedef enum {
+ DMA_PWIDTH_32_BIT = 0x0, //!< Peripheral width 32-bit.
+ DMA_PWIDTH_16_BIT = 0x1, //!< Peripheral width 16-bit.
+ DMA_PWIDTH_8_BIT = 0x2, //!< Peripheral width 8-bit.
+
+ } DMA_ePW;
+
+ /*!
+ ******************************************************************************
+ This type defines the direction of the DMA transfer
+ ******************************************************************************/
+ typedef enum {
+ DMA_DIR_MEM_TO_PERIPH = 0x0, //!< Data from memory to peripheral.
+ DMA_DIR_PERIPH_TO_MEM = 0x1, //!< Data from peripheral to memory.
+
+ } DMA_eDir;
+
+ /*!
+ ******************************************************************************
+ This type defines whether the peripheral address is to be incremented
+ ******************************************************************************/
+ typedef enum {
+ DMA_PERIPH_INCR_ON = 0x1, //!< Peripheral address will be incremented
+ DMA_PERIPH_INCR_OFF = 0x0, //!< Peripheral address will not be incremented
+
+ } DMA_ePeriphIncr;
+
+ /*!
+ ******************************************************************************
+ This type defines how much the peripheral address is incremented by
+ ******************************************************************************/
+ typedef enum {
+ DMA_PERIPH_INCR_1 = 0x2, //!< Increment peripheral address by 1
+ DMA_PERIPH_INCR_2 = 0x1, //!< Increment peripheral address by 2
+ DMA_PERIPH_INCR_4 = 0x0, //!< Increment peripheral address by 4
+
+ } DMA_ePeriphIncrSize;
+
+ /*!
+ ******************************************************************************
+ This type defines whether the 2d mode is enabled or disabled
+ ******************************************************************************/
+ typedef enum {
+ DMA_MODE_2D_ON = 0x1, //!< the 2d mode will be used
+ DMA_MODE_2D_OFF = 0x0, //!< the 2d mode will not be used
+
+ } DMA_eMode2D;
+
+ /*!
+ ******************************************************************************
+
+ @Function DMA_LL_SET_WD0
+
+ @Description
+
+ Set word 0 in a dmac linked list entry.
+
+ @Input pList : pointer to start of linked list entry
+
+ @Input BSWAP : big/little endian byte swap (see DMA_eBSwap).
+
+ @Input DIR : transfer direction (see DMA_eDir).
+
+ @Input PW : peripheral width (see DMA_ePW).
+
+ @Return nothing
+
+ ******************************************************************************/
+#define DMA_LL_SET_WD0(pList, BSWAP, DIR, PW) \
+ do{ \
+ MEMIO_WRITE_FIELD(pList, DMAC_LL_BSWAP, BSWAP); \
+ MEMIO_WRITE_FIELD(pList, DMAC_LL_DIR, DIR); \
+ MEMIO_WRITE_FIELD(pList, DMAC_LL_PW, PW); \
+ }while(0)
+
+
+ /*!
+ ******************************************************************************
+
+ @Function DMA_LL_SET_WD1
+
+ @Description
+
+ Set word 1 in a dmac linked list entry.
+
+ @Input pList : pointer to start of linked list entry
+
+ @Input INCR : whether to increment the peripeheral address (see DMA_ePeriphIncr)
+
+ @Input PI : how much to increment the peripheral address by (see DMA_ePeriphIncrSize)
+
+ @Input LEN : length of transfer in peripheral width units
+
+ @Return nothing
+
+ ******************************************************************************/
+#define DMA_LL_SET_WD1(pList, INCR, PI, LEN) \
+ do { \
+ MEMIO_WRITE_FIELD(pList, DMAC_LL_PI, PI); \
+ MEMIO_WRITE_FIELD(pList, DMAC_LL_INCR, INCR); \
+ MEMIO_WRITE_FIELD(pList, DMAC_LL_LEN, LEN); \
+ }while(0)
+
+ /*!
+ ******************************************************************************
+
+ @Function DMA_LL_SET_WD2
+
+ @Description
+
+ Set word 2 in a dmac linked list entry.
+
+ @Input pList : pointer to start of linked list entry
+
+ @Input PERI_ADDR : the perihperal address to transfer to/from
+
+ @Return nothing
+
+ ******************************************************************************/
+#define DMA_LL_SET_WD2(pList, PERI_ADDR) \
+ do { \
+ MEMIO_WRITE_FIELD(pList, DMAC_LL_ADDR, PERI_ADDR); \
+ }while(0)
+
+ /*!
+ ******************************************************************************
+
+ @Function DMA_LL_SET_WD3
+
+ @Description
+
+ Set word 3 in a dmac linked list entry.
+
+ @Input pList : pointer to start of linked list entry
+
+ @Input ACC_DEL : access delay (see DMA_eAccDel)
+
+ @Input BURST : burst size (see DMA_eBurst)
+
+ @Return nothing
+
+ ******************************************************************************/
+#define DMA_LL_SET_WD3(pList, ACC_DEL, BURST , EXTSA ) \
+ do { \
+ MEMIO_WRITE_FIELD(pList, DMAC_LL_ACC_DEL, ACC_DEL); \
+ MEMIO_WRITE_FIELD(pList, DMAC_LL_BURST, BURST); \
+ MEMIO_WRITE_FIELD(pList, DMAC_LL_EXT_SA, EXTSA); \
+ }while(0)
+
+ /*!
+ ******************************************************************************
+
+ @Function DMA_LL_SET_WD4
+
+ @Description
+
+ Set word 4 in a dmac linked list entry.
+
+ @Input pList : pointer to start of linked list entry
+
+ @Input MODE_2D : enable/disable 2d mode (see DMA_eMode2D)
+
+ @Input REP_COUNT : repeat count (the number of rows transferred)
+
+ @Return nothing
+
+ ******************************************************************************/
+#define DMA_LL_SET_WD4(pList, MODE_2D, REP_COUNT) \
+ do { \
+ MEMIO_WRITE_FIELD(pList, DMAC_LL_MODE_2D, MODE_2D); \
+ MEMIO_WRITE_FIELD(pList, DMAC_LL_REP_COUNT, REP_COUNT); \
+ } while(0)
+
+ /*!
+ ******************************************************************************
+
+ @Function DMA_LL_SET_WD5
+
+ @Description
+
+ Set word 5 in a dmac linked list entry.
+
+ @Input pList : pointer to start of linked list entry
+
+ @Input LINE_ADD_OFF : number of bytes from the end of one row to the start of the next row
+ (only applicable when using 2D transfer mode)
+
+ @Input ROW_LENGTH : number of bytes per row
+ (only applicable when using 2D transfer mode)
+
+ @Return nothing
+
+ ******************************************************************************/
+#define DMA_LL_SET_WD5(pList, LINE_ADD_OFF, ROW_LENGTH) \
+ do{ \
+ MEMIO_WRITE_FIELD(pList, DMAC_LL_LINE_ADD_OFF, LINE_ADD_OFF); \
+ MEMIO_WRITE_FIELD(pList, DMAC_LL_ROW_LENGTH, ROW_LENGTH); \
+ }while(0)
+
+ /*!
+ ******************************************************************************
+
+ @Function DMA_LL_SET_WD6
+
+ @Description
+
+ Set word 6 in a dmac linked list entry.
+
+ @Input pList : pointer to start of linked list entry
+
+ @Input SA : the host memory address to transfer to/from
+
+ @Return nothing
+
+ ******************************************************************************/
+#define DMA_LL_SET_WD6(pList, SA) \
+ do{ \
+ MEMIO_WRITE_FIELD(pList, DMAC_LL_SA, SA); \
+ }while(0)
+
+ /*!
+ ******************************************************************************
+
+ @Function DMA_LL_SET_WD7
+
+ @Description
+
+ Set word 7 in a dmac linked list entry.
+
+ @Input pList: pointer to start of linked list entry
+
+ @Input LISTPTR: pointer to next linked list entry
+
+ If the linked list entry is in MTX memory (eListLocation == DMA_LIST_IS_IN_MTX_MEM) then
+ LISTPTR is a pointer to the start of the next linked list entry. If the linked list entry
+ is in HOST memory (eListLocation == DMA_LIST_IS_IN_SYS_MEM) then LISTPTR is a pointer to the
+ start of the next linked list entry, but right shifted by 4 bits (i.e. ptr >> 4). If this
+ is the last entry in the linked list sequence then LISTPTR must be set to NULL.
+
+ @Return nothing
+
+ ******************************************************************************/
+#define DMA_LL_SET_WD7(pList, LISTPTR) \
+ do { \
+ MEMIO_WRITE_FIELD(pList, DMAC_LL_LISTPTR, LISTPTR); \
+ MEMIO_WRITE_FIELD(pList, DMAC_LL_LIST_FIN, (LISTPTR) ? 0 : 1); \
+ }while(0)
+
+
+ /*!
+ ******************************************************************************
+
+ @Function DMA_VALUE_COUNT
+
+ @Description
+
+ This MACRO is used to aid the generation of the ui32Count member of the DMA_sParams
+ structure required by DMA_SyncAction() and DMA_AsyncAction(). If this is not suitable
+ for a given application then the programmer is free to fill in the fields in any way they
+ see fit.
+
+ @Input BSWAP : Big/little endian byte swap (see DMA_eBSwap).
+
+ @Input PW : The width of the peripheral DMA register (see DMA_ePW).
+
+ @Input DIR : The direction of the transfer (see DMA_eDir).
+
+ @Input PERIPH_INCR : How much to increment the peripheral address by (see DMA_ePeriphIncr).
+
+ @Input COUNT : The length of the transfer in transfer units.
+
+ @Return img_uint32 : The value of the generated word.
+
+ ******************************************************************************/
+#define DMA_VALUE_COUNT(BSWAP,PW,DIR,PERIPH_INCR,COUNT) \
+ \
+ (((BSWAP) & DMAC_DMAC_COUNT_BSWAP_LSBMASK) << DMAC_DMAC_COUNT_BSWAP_SHIFT) | \
+ (((PW) & DMAC_DMAC_COUNT_PW_LSBMASK) << DMAC_DMAC_COUNT_PW_SHIFT) | \
+ (((DIR) & DMAC_DMAC_COUNT_DIR_LSBMASK) << DMAC_DMAC_COUNT_DIR_SHIFT) | \
+ (((PERIPH_INCR) & DMAC_DMAC_COUNT_PI_LSBMASK) << DMAC_DMAC_COUNT_PI_SHIFT) | \
+ (((COUNT) & DMAC_DMAC_COUNT_CNT_LSBMASK) << DMAC_DMAC_COUNT_CNT_SHIFT)
+
+ /*!
+ ******************************************************************************
+ This type defines the access delay settings.
+ ******************************************************************************/
+ typedef enum {
+ DMA_ACC_DEL_0 = 0x0, //!< Access delay zero clock cycles
+ DMA_ACC_DEL_256 = 0x1, //!< Access delay 256 clock cycles
+ DMA_ACC_DEL_512 = 0x2, //!< Access delay 512 clock cycles
+ DMA_ACC_DEL_768 = 0x3, //!< Access delay 768 clock cycles
+ DMA_ACC_DEL_1024 = 0x4, //!< Access delay 1024 clock cycles
+ DMA_ACC_DEL_1280 = 0x5, //!< Access delay 1280 clock cycles
+ DMA_ACC_DEL_1536 = 0x6, //!< Access delay 1536 clock cycles
+ DMA_ACC_DEL_1792 = 0x7, //!< Access delay 1792 clock cycles
+
+ } DMA_eAccDel;
+
+ /*!
+ ******************************************************************************
+ This type defines whether the peripheral address is static or auto-incremented.
+ ******************************************************************************/
+ typedef enum {
+ DMA_INCR_OFF = 0, //!< Static peripheral address.
+ DMA_INCR_ON = 1 //!< Incrementing peripheral address.
+
+ } DMA_eIncr;
+
+ /*!
+ ******************************************************************************
+ This type defines the burst size setting.
+ ******************************************************************************/
+ typedef enum {
+ DMA_BURST_0 = 0x0, //!< burst size of 0
+ DMA_BURST_1 = 0x1, //!< burst size of 1
+ DMA_BURST_2 = 0x2, //!< burst size of 2
+ DMA_BURST_3 = 0x3, //!< burst size of 3
+ DMA_BURST_4 = 0x4, //!< burst size of 4
+ DMA_BURST_5 = 0x5, //!< burst size of 5
+ DMA_BURST_6 = 0x6, //!< burst size of 6
+ DMA_BURST_7 = 0x7, //!< burst size of 7
+
+ } DMA_eBurst;
+
+ /*!
+ ******************************************************************************
+
+ @Function DMA_VALUE_PERIPH_PARAM
+
+ @Description
+
+ This MACRO is used to aid the generation of the ui32PeripheralParam member of the
+ DMA_sParams structure required by DMA_SyncAction() and DMA_AsyncAction(). If this is
+ not suitable for a given application then the programmer is free to fill in the fields in
+ any way they see fit.
+
+ @Input ACC_DEL: The access delay (see DMA_eAccDel).
+
+ @Input INCR: Whether the peripheral address is incremented (see DMA_eIncr).
+
+ @Input BURST: The burst size. This should correspond to the amount of data that the
+ peripheral will either be able to supply or accept from its FIFO (see DMA_eBurst).
+
+ @Return img_uint32: The value of the generated word.
+
+ ******************************************************************************/
+#define DMA_VALUE_PERIPH_PARAM(ACC_DEL,INCR,BURST) \
+ \
+ (((ACC_DEL) & DMAC_DMAC_PERIPH_ACC_DEL_LSBMASK) << DMAC_DMAC_PERIPH_ACC_DEL_SHIFT) | \
+ (((INCR) & DMAC_DMAC_PERIPH_INCR_LSBMASK) << DMAC_DMAC_PERIPH_INCR_SHIFT) | \
+ (((BURST) & DMAC_DMAC_PERIPH_BURST_LSBMASK) << DMAC_DMAC_PERIPH_BURST_SHIFT)
+
+
+
+ /*!
+ ******************************************************************************
+ Used to describe the location of the linked list structure
+ ******************************************************************************/
+ typedef enum {
+ DMA_LIST_IS_IN_MTX_MEM,
+ DMA_LIST_IS_IN_SYS_MEM,
+ } DMA_LIST_LOCATION;
+
+ /*!
+ ******************************************************************************
+ DMAC linked list structure
+ ******************************************************************************/
+ typedef struct {
+ IMG_UINT32 ui32Word_0; //!< Word 0 of the linked list (see DMA_LL_SET_WD0).
+ IMG_UINT32 ui32Word_1; //!< Word 1 of the linked list (see DMA_LL_SET_WD1).
+ IMG_UINT32 ui32Word_2; //!< Word 2 of the linked list (see DMA_LL_SET_WD2).
+ IMG_UINT32 ui32Word_3; //!< Word 3 of the linked list (see DMA_LL_SET_WD3).
+ IMG_UINT32 ui32Word_4; //!< Word 4 of the linked list (see DMA_LL_SET_WD4).
+ IMG_UINT32 ui32Word_5; //!< Word 5 of the linked list (see DMA_LL_SET_WD5).
+ IMG_UINT32 ui32Word_6; //!< Word 6 of the linked list (see DMA_LL_SET_WD6).
+ IMG_UINT32 ui32Word_7; //!< Word 7 of the linked list (see DMA_LL_SET_WD7).
+
+ } DMA_sLinkedList;
+
+ /*!
+ ******************************************************************************
+ DMAC Parameter structure
+ ******************************************************************************/
+ typedef struct {
+ IMG_UINT32 ui32PerHold; //!< peripheral hold register (see PER_HOLD register in TRM)
+ DMA_LIST_LOCATION eListLocation; //!< is the linked list in mtx memory or system memory
+ DMA_sLinkedList * psDmaLinkedList; //!< pointer to first element in the linked list
+ IMG_UINT32 ui32Ext_sa;
+ } DMA_sParams;
+
+ /*!
+ ******************************************************************************
+
+ @Function DMA_Initialise
+
+ @Description
+
+ This function initialises the DMAC. Only has effect on the first call, second
+ and subsequent calls are ignored.
+
+ @Input eChannel : The channel to initialise.
+
+ @Return None.
+
+ ******************************************************************************/
+ extern IMG_VOID DMA_Initialise(DMA_eChannelId eChannel);
+
+ /*!
+ ******************************************************************************
+
+ @Function DMA_Reset
+
+ @Description
+
+ This function resets the DMAC, cancels any pending DMAC operation and
+ return the DMAC to the idle state - #DMA_STATUS_IDLE.
+
+ @Input eChannel : The channel to reset.
+
+ @Return None.
+
+ ******************************************************************************/
+ extern IMG_VOID DMA_Reset(DMA_eChannelId eChannel);
+
+ /*!
+ ******************************************************************************
+
+ @Function DMA_SyncAction
+
+ @Description
+
+ This function is used to initiate a synchronous (blocking) DMAC tranfer.
+
+ An internal callback function is registered using DMA_RegisterStatusCallback()
+ to detect and act upon status transitions.
+
+ The DMAC driver also uses the SEMA API, SEMA_ID_B to block whilst waiting
+ for the DMAC transfer to complete. The callback function will set the
+ semaphore when the
+
+ NOTE: The DMAC must be in the idle state - #DMA_STATUS_IDLE - when the
+ transfer is initiated.
+
+ @Input eChannel : The channel to use.
+
+ @Input psParams : A pointer to a #DMA_sParams structure set with the
+ required DMAC setup.
+
+ @Input bMtx : If true then the peripheral address specifies an
+ offset in MTX memory
+
+ @Return DMA_eStatus : The completion status - #DMA_STATUS_COMPLETE or
+ #DMA_STATUS_TIMEOUT.
+
+ ******************************************************************************/
+ extern DMA_eStatus DMA_SyncAction(
+ DMA_eChannelId eChannel,
+ DMA_sParams * psParams,
+ IMG_BOOL bMtx
+ );
+
+ /*!
+ ******************************************************************************
+
+ @Function DMA_AsyncAction
+
+ @Description
+
+ This function is used to initiate an asynchronous (non-blocking) DMAC tranfer.
+
+ NOTE: The DMAC must be in the idle state - #DMA_STATUS_IDLE - when the
+ transfer is initiated.
+
+ @Input eChannel : The channel to use.
+
+ @Input psDmacLinkedList : A pointer to a #DMA_sLinkedList structure set with the
+ required DMAC setup.
+
+ @Input bPeriphIsMtx : If true then the peripheral address specifies an
+ offset in MTX memory.
+
+ NOTE: If eListLocation is DMA_LIST_IS_IN_SYS_MEM and bPeriphIsMtx is IMG_TRUE the linked list can only contain a single entry.
+
+ NOTE: If eListLocation is DMA_LIST_IS_IN_MTX_MEM then bPeriphIsMtx applies to all entries in the linked list (i.e.
+ they all use the mtx as the peripheral, or none of them use the mtx as the peripheral).
+
+ @Return None.
+
+ ******************************************************************************/
+ extern IMG_VOID DMA_AsyncAction(
+ DMA_eChannelId eChannel,
+ DMA_sParams * psParams,
+ IMG_BOOL bPeriphIsMtx
+ );
+
+ /*!
+ ******************************************************************************
+
+ @Function DMA_WaitForTransfer
+
+ @Description
+
+ This function waits for the current transfer to complete or timeout.
+
+ @Input eChannel : The channel to wait use.
+
+ @Return DMA_eStatus : DMA_STATUS_COMPLETE when transfer has completed or DMA_STATUS_IDLE
+ if there wasn't an active transfer in progress to wait for.
+
+ ******************************************************************************/
+ extern DMA_eStatus DMA_WaitForTransfer(DMA_eChannelId eChannel);
+
+ /*!
+ ******************************************************************************
+
+ @Function DMA_GetStatus
+
+ @Description
+
+ This function returns the status of the DMAC.
+
+ @Input eChannel : The channel to get the status of.
+
+ @Return DMA_eStatus : The status of the DMAC.
+
+ ******************************************************************************/
+ extern DMA_eStatus DMA_GetStatus(DMA_eChannelId eChannel);
+
+ /*!
+ ******************************************************************************
+
+ @Function DMA_pfnStatusCallback
+
+ @Description
+
+ This is the prototype for a status callback functions.
+
+ @Input eChannel : The channel that the status change is being reported on.
+
+ @Input DMA_eStatus : The "new" state of the DMAC.
+
+ @Return None.
+
+ ******************************************************************************/
+ typedef IMG_VOID(*DMA_pfnStatusCallback)(
+ DMA_eChannelId eChannel,
+ DMA_eStatus eStatus
+ );
+
+
+ /*!
+ ******************************************************************************
+
+ @Function DMA_RegisterStatusCallback
+
+ @Description
+
+ This function is used to register a status callback function. The caller
+ provides the address of a function that will be called when a change in the
+ status occurs - see #DMA_eStatus.
+
+ NOTE: This can happen asynchronously (at interrupt level) on a
+ #DMA_STATUS_COMPLETE or #DMA_STATUS_TIMEOUT - or synchronously when
+ DMA_Action() is called and the state changes to #DMA_STATUS_BUSY or
+ when DMA_GetStatus() or DMA_Reset() are called and the state returns to
+ #DMA_STATUS_IDLE.
+
+ NOTE: Only one callback function can be registered with the API. The
+ callback function is persistent and is not removed by subsequent calls
+ to DMA_Initialise() or DMA_Reset().
+
+ NOTE: The function asserts if a callback function has already been set.
+
+ @Input eChannel : The channel that the status change is being reported on.
+
+ @Input pfnStatusCallback : A pointer to a status callback function.
+
+ @Return None.
+
+ ******************************************************************************/
+ extern IMG_VOID DMA_RegisterStatusCallback(
+ DMA_eChannelId eChannel,
+ DMA_pfnStatusCallback pfnStatusCallback
+ );
+
+
+#if (__cplusplus)
+}
+#endif
+
+#endif /* __DMA_API_H__ */
diff --git a/src/hwdefs/dxva_cmdseq_msg.h b/src/hwdefs/dxva_cmdseq_msg.h
new file mode 100644
index 0000000..ad7f36d
--- /dev/null
+++ b/src/hwdefs/dxva_cmdseq_msg.h
@@ -0,0 +1,618 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+
+/******************************************************************************
+
+ @File dxva_cmdseq_msg.h
+
+ @Title Debug driver
+
+ @Platform </b>\n
+
+ @Description </b>\n This file contains the VA_CMDSEQ_MSG_H Definitions.
+
+******************************************************************************/
+#if !defined (__VA_CMDSEQ_MSG_H__)
+#define __VA_CMDSEQ_MSG_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+ /* Deblock parameters */
+ typedef struct {
+ uint32_t handle; /* struct ttm_buffer_object * of REGIO */
+ uint32_t buffer_size;
+ uint32_t ctxid;
+
+ uint32_t *pPicparams;
+ void *regio_kmap; /* virtual of regio */
+ uint32_t pad[3];
+ } DEBLOCKPARAMS;
+
+ /* Host BE OPP parameters */
+ typedef struct {
+ uint32_t handle; /* struct ttm_buffer_object * of REGIO */
+ uint32_t buffer_stride;
+ uint32_t buffer_size;
+ uint32_t picture_width_mb;
+ uint32_t size_mb;
+ } FRAME_INFO_PARAMS;
+
+ typedef struct {
+ union {
+ struct {
+uint32_t msg_size :
+ 8;
+uint32_t msg_type :
+ 8;
+uint32_t msg_fence :
+ 16;
+ } bits;
+ uint32_t value;
+ } header;
+ union {
+ struct {
+uint32_t flags :
+ 16;
+uint32_t slice_type :
+ 8;
+uint32_t padding :
+ 8;
+ } bits;
+ uint32_t value;
+ } flags;
+ uint32_t operating_mode;
+ union {
+ struct {
+uint32_t context :
+ 8;
+uint32_t mmu_ptd :
+ 24;
+ } bits;
+ uint32_t value;
+ } mmu_context;
+ union {
+ struct {
+uint32_t frame_height_mb :
+ 16;
+uint32_t pic_width_mb :
+ 16;
+ } bits;
+ uint32_t value;
+ } pic_size;
+ uint32_t address_a0;
+ uint32_t address_a1;
+ uint32_t mb_param_address;
+ uint32_t ext_stride_a;
+ uint32_t address_b0;
+ uint32_t address_b1;
+ uint32_t rotation_flags;
+ } FW_VA_DEBLOCK_MSG;
+
+ /* OOLD message */
+ typedef struct {
+ uint32_t pad[5];
+ uint32_t SOURCE_LUMA_BUFFER_ADDRESS;
+ uint32_t SOURCE_CHROMA_BUFFER_ADDRESS;
+ uint32_t SOURCE_MB_PARAM_ADDRESS;
+ uint32_t TARGET_LUMA_BUFFER_ADDRESS;
+ uint32_t TARGET_CHROMA_BUFFER_ADDRESS;
+ } FW_VA_OOLD_MSG;
+
+
+
+#define FW_VA_RENDER_SIZE (32)
+
+// FW_VA_RENDER MSG_SIZE
+#define FW_VA_RENDER_MSG_SIZE_ALIGNMENT (1)
+#define FW_VA_RENDER_MSG_SIZE_TYPE IMG_UINT8
+#define FW_VA_RENDER_MSG_SIZE_MASK (0xFF)
+#define FW_VA_RENDER_MSG_SIZE_LSBMASK (0xFF)
+#define FW_VA_RENDER_MSG_SIZE_OFFSET (0x0000)
+#define FW_VA_RENDER_MSG_SIZE_SHIFT (0)
+
+// FW_VA_RENDER ID
+#define FW_VA_RENDER_ID_ALIGNMENT (1)
+#define FW_VA_RENDER_ID_TYPE IMG_UINT8
+#define FW_VA_RENDER_ID_MASK (0xFF)
+#define FW_VA_RENDER_ID_LSBMASK (0xFF)
+#define FW_VA_RENDER_ID_OFFSET (0x0001)
+#define FW_VA_RENDER_ID_SHIFT (0)
+
+// FW_VA_RENDER BUFFER_SIZE
+#define FW_VA_RENDER_BUFFER_SIZE_ALIGNMENT (2)
+#define FW_VA_RENDER_BUFFER_SIZE_TYPE IMG_UINT16
+#define FW_VA_RENDER_BUFFER_SIZE_MASK (0x0FFF)
+#define FW_VA_RENDER_BUFFER_SIZE_LSBMASK (0x0FFF)
+#define FW_VA_RENDER_BUFFER_SIZE_OFFSET (0x0002)
+#define FW_VA_RENDER_BUFFER_SIZE_SHIFT (0)
+
+// FW_VA_RENDER MMUPTD
+#define FW_VA_RENDER_MMUPTD_ALIGNMENT (4)
+#define FW_VA_RENDER_MMUPTD_TYPE IMG_UINT32
+#define FW_VA_RENDER_MMUPTD_MASK (0xFFFFFFFF)
+#define FW_VA_RENDER_MMUPTD_LSBMASK (0xFFFFFFFF)
+#define FW_VA_RENDER_MMUPTD_OFFSET (0x0004)
+#define FW_VA_RENDER_MMUPTD_SHIFT (0)
+
+// FW_VA_RENDER LLDMA_ADDRESS
+#define FW_VA_RENDER_LLDMA_ADDRESS_ALIGNMENT (4)
+#define FW_VA_RENDER_LLDMA_ADDRESS_TYPE IMG_UINT32
+#define FW_VA_RENDER_LLDMA_ADDRESS_MASK (0xFFFFFFFF)
+#define FW_VA_RENDER_LLDMA_ADDRESS_LSBMASK (0xFFFFFFFF)
+#define FW_VA_RENDER_LLDMA_ADDRESS_OFFSET (0x0008)
+#define FW_VA_RENDER_LLDMA_ADDRESS_SHIFT (0)
+
+// FW_VA_RENDER CONTEXT
+#define FW_VA_RENDER_CONTEXT_ALIGNMENT (4)
+#define FW_VA_RENDER_CONTEXT_TYPE IMG_UINT32
+#define FW_VA_RENDER_CONTEXT_MASK (0xFFFFFFFF)
+#define FW_VA_RENDER_CONTEXT_LSBMASK (0xFFFFFFFF)
+#define FW_VA_RENDER_CONTEXT_OFFSET (0x000C)
+#define FW_VA_RENDER_CONTEXT_SHIFT (0)
+
+// FW_VA_RENDER FENCE_VALUE
+#define FW_VA_RENDER_FENCE_VALUE_ALIGNMENT (4)
+#define FW_VA_RENDER_FENCE_VALUE_TYPE IMG_UINT32
+#define FW_VA_RENDER_FENCE_VALUE_MASK (0xFFFFFFFF)
+#define FW_VA_RENDER_FENCE_VALUE_LSBMASK (0xFFFFFFFF)
+#define FW_VA_RENDER_FENCE_VALUE_OFFSET (0x0010)
+#define FW_VA_RENDER_FENCE_VALUE_SHIFT (0)
+
+// FW_VA_RENDER OPERATING_MODE
+#define FW_VA_RENDER_OPERATING_MODE_ALIGNMENT (4)
+#define FW_VA_RENDER_OPERATING_MODE_TYPE IMG_UINT32
+#define FW_VA_RENDER_OPERATING_MODE_MASK (0xFFFFFFFF)
+#define FW_VA_RENDER_OPERATING_MODE_LSBMASK (0xFFFFFFFF)
+#define FW_VA_RENDER_OPERATING_MODE_OFFSET (0x0014)
+#define FW_VA_RENDER_OPERATING_MODE_SHIFT (0)
+
+// FW_VA_RENDER FIRST_MB_IN_SLICE
+#define FW_VA_RENDER_FIRST_MB_IN_SLICE_ALIGNMENT (2)
+#define FW_VA_RENDER_FIRST_MB_IN_SLICE_TYPE IMG_UINT16
+#define FW_VA_RENDER_FIRST_MB_IN_SLICE_MASK (0xFFFF)
+#define FW_VA_RENDER_FIRST_MB_IN_SLICE_LSBMASK (0xFFFF)
+#define FW_VA_RENDER_FIRST_MB_IN_SLICE_OFFSET (0x0018)
+#define FW_VA_RENDER_FIRST_MB_IN_SLICE_SHIFT (0)
+
+// FW_VA_RENDER LAST_MB_IN_FRAME
+#define FW_VA_RENDER_LAST_MB_IN_FRAME_ALIGNMENT (2)
+#define FW_VA_RENDER_LAST_MB_IN_FRAME_TYPE IMG_UINT16
+#define FW_VA_RENDER_LAST_MB_IN_FRAME_MASK (0xFFFF)
+#define FW_VA_RENDER_LAST_MB_IN_FRAME_LSBMASK (0xFFFF)
+#define FW_VA_RENDER_LAST_MB_IN_FRAME_OFFSET (0x001A)
+#define FW_VA_RENDER_LAST_MB_IN_FRAME_SHIFT (0)
+
+// FW_VA_RENDER FLAGS
+#define FW_VA_RENDER_FLAGS_ALIGNMENT (4)
+#define FW_VA_RENDER_FLAGS_TYPE IMG_UINT32
+#define FW_VA_RENDER_FLAGS_MASK (0xFFFFFFFF)
+#define FW_VA_RENDER_FLAGS_LSBMASK (0xFFFFFFFF)
+#define FW_VA_RENDER_FLAGS_OFFSET (0x001C)
+#define FW_VA_RENDER_FLAGS_SHIFT (0)
+
+#define FW_DEVA_DECODE_SIZE (20)
+
+// FW_DEVA_DECODE MSG_ID
+#define FW_DEVA_DECODE_MSG_ID_ALIGNMENT (2)
+#define FW_DEVA_DECODE_MSG_ID_TYPE IMG_UINT16
+#define FW_DEVA_DECODE_MSG_ID_MASK (0xFFFF)
+#define FW_DEVA_DECODE_MSG_ID_LSBMASK (0xFFFF)
+#define FW_DEVA_DECODE_MSG_ID_OFFSET (0x0002)
+#define FW_DEVA_DECODE_MSG_ID_SHIFT (0)
+
+// FW_DEVA_DECODE ID
+#define FW_DEVA_DECODE_ID_ALIGNMENT (1)
+#define FW_DEVA_DECODE_ID_TYPE IMG_UINT8
+#define FW_DEVA_DECODE_ID_MASK (0xFF)
+#define FW_DEVA_DECODE_ID_LSBMASK (0xFF)
+#define FW_DEVA_DECODE_ID_OFFSET (0x0001)
+#define FW_DEVA_DECODE_ID_SHIFT (0)
+
+// FW_DEVA_DECODE MSG_SIZE
+#define FW_DEVA_DECODE_MSG_SIZE_ALIGNMENT (1)
+#define FW_DEVA_DECODE_MSG_SIZE_TYPE IMG_UINT8
+#define FW_DEVA_DECODE_MSG_SIZE_MASK (0xFF)
+#define FW_DEVA_DECODE_MSG_SIZE_LSBMASK (0xFF)
+#define FW_DEVA_DECODE_MSG_SIZE_OFFSET (0x0000)
+#define FW_DEVA_DECODE_MSG_SIZE_SHIFT (0)
+
+// FW_DEVA_DECODE FLAGS
+#define FW_DEVA_DECODE_FLAGS_ALIGNMENT (2)
+#define FW_DEVA_DECODE_FLAGS_TYPE IMG_UINT16
+#define FW_DEVA_DECODE_FLAGS_MASK (0xFFFF)
+#define FW_DEVA_DECODE_FLAGS_LSBMASK (0xFFFF)
+#define FW_DEVA_DECODE_FLAGS_OFFSET (0x0004)
+#define FW_DEVA_DECODE_FLAGS_SHIFT (0)
+
+// FW_DEVA_DECODE BUFFER_SIZE
+#define FW_DEVA_DECODE_BUFFER_SIZE_ALIGNMENT (2)
+#define FW_DEVA_DECODE_BUFFER_SIZE_TYPE IMG_UINT16
+#define FW_DEVA_DECODE_BUFFER_SIZE_MASK (0xFFFF)
+#define FW_DEVA_DECODE_BUFFER_SIZE_LSBMASK (0xFFFF)
+#define FW_DEVA_DECODE_BUFFER_SIZE_OFFSET (0x0006)
+#define FW_DEVA_DECODE_BUFFER_SIZE_SHIFT (0)
+
+// FW_DEVA_DECODE LLDMA_ADDRESS
+#define FW_DEVA_DECODE_LLDMA_ADDRESS_ALIGNMENT (4)
+#define FW_DEVA_DECODE_LLDMA_ADDRESS_TYPE IMG_UINT32
+#define FW_DEVA_DECODE_LLDMA_ADDRESS_MASK (0xFFFFFFFF)
+#define FW_DEVA_DECODE_LLDMA_ADDRESS_LSBMASK (0xFFFFFFFF)
+#define FW_DEVA_DECODE_LLDMA_ADDRESS_OFFSET (0x0008)
+#define FW_DEVA_DECODE_LLDMA_ADDRESS_SHIFT (0)
+
+// FW_DEVA_DECODE MMUPTD
+#define FW_DEVA_DECODE_MMUPTD_ALIGNMENT (4)
+#define FW_DEVA_DECODE_MMUPTD_TYPE IMG_UINT32
+#define FW_DEVA_DECODE_MMUPTD_MASK (0xFFFFFF00)
+#define FW_DEVA_DECODE_MMUPTD_LSBMASK (0x00FFFFFF)
+#define FW_DEVA_DECODE_MMUPTD_OFFSET (0x000C)
+#define FW_DEVA_DECODE_MMUPTD_SHIFT (8)
+
+// FW_DEVA_DECODE CONTEXT
+#define FW_DEVA_DECODE_CONTEXT_ALIGNMENT (1)
+#define FW_DEVA_DECODE_CONTEXT_TYPE IMG_UINT8
+#define FW_DEVA_DECODE_CONTEXT_MASK (0xFF)
+#define FW_DEVA_DECODE_CONTEXT_LSBMASK (0xFF)
+#define FW_DEVA_DECODE_CONTEXT_OFFSET (0x000C)
+
+#define FW_VA_DEBLOCK_SIZE (16 + 32) /* 32 bytes for DEBLOCKPARAMS */
+#define FW_DEVA_DEBLOCK_SIZE (48)
+
+#define FW_DEVA_DECODE_CONTEXT_SHIFT (0)
+
+// FW_DEVA_DECODE OPERATING_MODE
+#define FW_DEVA_DECODE_OPERATING_MODE_ALIGNMENT (4)
+#define FW_DEVA_DECODE_OPERATING_MODE_TYPE IMG_UINT32
+#define FW_DEVA_DECODE_OPERATING_MODE_MASK (0xFFFFFFFF)
+#define FW_DEVA_DECODE_OPERATING_MODE_LSBMASK (0xFFFFFFFF)
+#define FW_DEVA_DECODE_OPERATING_MODE_OFFSET (0x0010)
+#define FW_DEVA_DECODE_OPERATING_MODE_SHIFT (0)
+
+// FW_VA_DEBLOCK MSG_SIZE
+#define FW_VA_DEBLOCK_MSG_SIZE_ALIGNMENT (1)
+#define FW_VA_DEBLOCK_MSG_SIZE_TYPE IMG_UINT8
+#define FW_VA_DEBLOCK_MSG_SIZE_MASK (0xFF)
+#define FW_VA_DEBLOCK_MSG_SIZE_LSBMASK (0xFF)
+#define FW_VA_DEBLOCK_MSG_SIZE_OFFSET (0x0000)
+#define FW_VA_DEBLOCK_MSG_SIZE_SHIFT (0)
+
+// FW_VA_DEBLOCK ID
+#define FW_VA_DEBLOCK_ID_ALIGNMENT (1)
+#define FW_VA_DEBLOCK_ID_TYPE IMG_UINT8
+#define FW_VA_DEBLOCK_ID_MASK (0xFF)
+#define FW_VA_DEBLOCK_ID_LSBMASK (0xFF)
+#define FW_VA_DEBLOCK_ID_OFFSET (0x0001)
+#define FW_VA_DEBLOCK_ID_SHIFT (0)
+
+// FW_VA_DEBLOCK FLAGS
+#define FW_VA_DEBLOCK_FLAGS_ALIGNMENT (2)
+#define FW_VA_DEBLOCK_FLAGS_TYPE IMG_UINT16
+#define FW_VA_DEBLOCK_FLAGS_MASK (0xFFFF)
+#define FW_VA_DEBLOCK_FLAGS_LSBMASK (0xFFFF)
+#define FW_VA_DEBLOCK_FLAGS_OFFSET (0x0002)
+#define FW_VA_DEBLOCK_FLAGS_SHIFT (0)
+
+// FW_VA_DEBLOCK CONTEXT
+#define FW_VA_DEBLOCK_CONTEXT_ALIGNMENT (4)
+#define FW_VA_DEBLOCK_CONTEXT_TYPE IMG_UINT32
+#define FW_VA_DEBLOCK_CONTEXT_MASK (0xFFFFFFFF)
+#define FW_VA_DEBLOCK_CONTEXT_LSBMASK (0xFFFFFFFF)
+#define FW_VA_DEBLOCK_CONTEXT_OFFSET (0x0004)
+#define FW_VA_DEBLOCK_CONTEXT_SHIFT (0)
+
+// FW_VA_DEBLOCK FENCE_VALUE
+#define FW_VA_DEBLOCK_FENCE_VALUE_ALIGNMENT (4)
+#define FW_VA_DEBLOCK_FENCE_VALUE_TYPE IMG_UINT32
+#define FW_VA_DEBLOCK_FENCE_VALUE_MASK (0xFFFFFFFF)
+#define FW_VA_DEBLOCK_FENCE_VALUE_LSBMASK (0xFFFFFFFF)
+#define FW_VA_DEBLOCK_FENCE_VALUE_OFFSET (0x0008)
+#define FW_VA_DEBLOCK_FENCE_VALUE_SHIFT (0)
+
+// FW_VA_DEBLOCK MMUPTD
+#define FW_VA_DEBLOCK_MMUPTD_ALIGNMENT (4)
+#define FW_VA_DEBLOCK_MMUPTD_TYPE IMG_UINT32
+#define FW_VA_DEBLOCK_MMUPTD_MASK (0xFFFFFFFF)
+#define FW_VA_DEBLOCK_MMUPTD_LSBMASK (0xFFFFFFFF)
+#define FW_VA_DEBLOCK_MMUPTD_OFFSET (0x000C)
+#define FW_VA_DEBLOCK_MMUPTD_SHIFT (0)
+
+#define FW_VA_OOLD_SIZE (40)
+
+// FW_VA_OOLD MSG_SIZE
+#define FW_VA_OOLD_MSG_SIZE_ALIGNMENT (1)
+#define FW_VA_OOLD_MSG_SIZE_TYPE IMG_UINT8
+#define FW_VA_OOLD_MSG_SIZE_MASK (0xFF)
+#define FW_VA_OOLD_MSG_SIZE_LSBMASK (0xFF)
+#define FW_VA_OOLD_MSG_SIZE_OFFSET (0x0000)
+#define FW_VA_OOLD_MSG_SIZE_SHIFT (0)
+
+// FW_VA_OOLD ID
+#define FW_VA_OOLD_ID_ALIGNMENT (1)
+#define FW_VA_OOLD_ID_TYPE IMG_UINT8
+#define FW_VA_OOLD_ID_MASK (0xFF)
+#define FW_VA_OOLD_ID_LSBMASK (0xFF)
+#define FW_VA_OOLD_ID_OFFSET (0x0001)
+#define FW_VA_OOLD_ID_SHIFT (0)
+
+// FW_VA_OOLD SLICE_FIELD_TYPE
+#define FW_VA_OOLD_SLICE_FIELD_TYPE_ALIGNMENT (1)
+#define FW_VA_OOLD_SLICE_FIELD_TYPE_TYPE IMG_UINT8
+#define FW_VA_OOLD_SLICE_FIELD_TYPE_MASK (0x03)
+#define FW_VA_OOLD_SLICE_FIELD_TYPE_LSBMASK (0x03)
+#define FW_VA_OOLD_SLICE_FIELD_TYPE_OFFSET (0x0002)
+#define FW_VA_OOLD_SLICE_FIELD_TYPE_SHIFT (0)
+
+// FW_VA_OOLD MMUPTD
+#define FW_VA_OOLD_MMUPTD_ALIGNMENT (4)
+#define FW_VA_OOLD_MMUPTD_TYPE IMG_UINT32
+#define FW_VA_OOLD_MMUPTD_MASK (0xFFFFFFFF)
+#define FW_VA_OOLD_MMUPTD_LSBMASK (0xFFFFFFFF)
+#define FW_VA_OOLD_MMUPTD_OFFSET (0x0004)
+#define FW_VA_OOLD_MMUPTD_SHIFT (0)
+
+// FW_VA_OOLD FENCE_VALUE
+#define FW_VA_OOLD_FENCE_VALUE_ALIGNMENT (4)
+#define FW_VA_OOLD_FENCE_VALUE_TYPE IMG_UINT32
+#define FW_VA_OOLD_FENCE_VALUE_MASK (0xFFFFFFFF)
+#define FW_VA_OOLD_FENCE_VALUE_LSBMASK (0xFFFFFFFF)
+#define FW_VA_OOLD_FENCE_VALUE_OFFSET (0x0008)
+#define FW_VA_OOLD_FENCE_VALUE_SHIFT (0)
+
+// FW_VA_OOLD OPERATING_MODE
+#define FW_VA_OOLD_OPERATING_MODE_ALIGNMENT (4)
+#define FW_VA_OOLD_OPERATING_MODE_TYPE IMG_UINT32
+#define FW_VA_OOLD_OPERATING_MODE_MASK (0xFFFFFFFF)
+#define FW_VA_OOLD_OPERATING_MODE_LSBMASK (0xFFFFFFFF)
+#define FW_VA_OOLD_OPERATING_MODE_OFFSET (0x000C)
+#define FW_VA_OOLD_OPERATING_MODE_SHIFT (0)
+
+// FW_VA_OOLD FRAME_HEIGHT_MBS
+#define FW_VA_OOLD_FRAME_HEIGHT_MBS_ALIGNMENT (2)
+#define FW_VA_OOLD_FRAME_HEIGHT_MBS_TYPE IMG_UINT16
+#define FW_VA_OOLD_FRAME_HEIGHT_MBS_MASK (0xFFFF)
+#define FW_VA_OOLD_FRAME_HEIGHT_MBS_LSBMASK (0xFFFF)
+#define FW_VA_OOLD_FRAME_HEIGHT_MBS_OFFSET (0x0010)
+#define FW_VA_OOLD_FRAME_HEIGHT_MBS_SHIFT (0)
+
+// FW_VA_OOLD PIC_WIDTH_MBS
+#define FW_VA_OOLD_PIC_WIDTH_MBS_ALIGNMENT (2)
+#define FW_VA_OOLD_PIC_WIDTH_MBS_TYPE IMG_UINT16
+#define FW_VA_OOLD_PIC_WIDTH_MBS_MASK (0xFFFF)
+#define FW_VA_OOLD_PIC_WIDTH_MBS_LSBMASK (0xFFFF)
+#define FW_VA_OOLD_PIC_WIDTH_MBS_OFFSET (0x0012)
+#define FW_VA_OOLD_PIC_WIDTH_MBS_SHIFT (0)
+
+// FW_VA_OOLD SOURCE_LUMA_BUFFER_ADDRESS
+#define FW_VA_OOLD_SOURCE_LUMA_BUFFER_ADDRESS_ALIGNMENT (4)
+#define FW_VA_OOLD_SOURCE_LUMA_BUFFER_ADDRESS_TYPE IMG_UINT32
+#define FW_VA_OOLD_SOURCE_LUMA_BUFFER_ADDRESS_MASK (0xFFFFFFFF)
+#define FW_VA_OOLD_SOURCE_LUMA_BUFFER_ADDRESS_LSBMASK (0xFFFFFFFF)
+#define FW_VA_OOLD_SOURCE_LUMA_BUFFER_ADDRESS_OFFSET (0x0014)
+#define FW_VA_OOLD_SOURCE_LUMA_BUFFER_ADDRESS_SHIFT (0)
+
+// FW_VA_OOLD SOURCE_CHROMA_BUFFER_ADDRESS
+#define FW_VA_OOLD_SOURCE_CHROMA_BUFFER_ADDRESS_ALIGNMENT (4)
+#define FW_VA_OOLD_SOURCE_CHROMA_BUFFER_ADDRESS_TYPE IMG_UINT32
+#define FW_VA_OOLD_SOURCE_CHROMA_BUFFER_ADDRESS_MASK (0xFFFFFFFF)
+#define FW_VA_OOLD_SOURCE_CHROMA_BUFFER_ADDRESS_LSBMASK (0xFFFFFFFF)
+#define FW_VA_OOLD_SOURCE_CHROMA_BUFFER_ADDRESS_OFFSET (0x0018)
+#define FW_VA_OOLD_SOURCE_CHROMA_BUFFER_ADDRESS_SHIFT (0)
+
+// FW_VA_OOLD SOURCE_MB_PARAM_ADDRESS
+#define FW_VA_OOLD_SOURCE_MB_PARAM_ADDRESS_ALIGNMENT (4)
+#define FW_VA_OOLD_SOURCE_MB_PARAM_ADDRESS_TYPE IMG_UINT32
+#define FW_VA_OOLD_SOURCE_MB_PARAM_ADDRESS_MASK (0xFFFFFFFF)
+#define FW_VA_OOLD_SOURCE_MB_PARAM_ADDRESS_LSBMASK (0xFFFFFFFF)
+#define FW_VA_OOLD_SOURCE_MB_PARAM_ADDRESS_OFFSET (0x001C)
+#define FW_VA_OOLD_SOURCE_MB_PARAM_ADDRESS_SHIFT (0)
+
+// FW_VA_OOLD TARGET_LUMA_BUFFER_ADDRESS
+#define FW_VA_OOLD_TARGET_LUMA_BUFFER_ADDRESS_ALIGNMENT (4)
+#define FW_VA_OOLD_TARGET_LUMA_BUFFER_ADDRESS_TYPE IMG_UINT32
+#define FW_VA_OOLD_TARGET_LUMA_BUFFER_ADDRESS_MASK (0xFFFFFFFF)
+#define FW_VA_OOLD_TARGET_LUMA_BUFFER_ADDRESS_LSBMASK (0xFFFFFFFF)
+#define FW_VA_OOLD_TARGET_LUMA_BUFFER_ADDRESS_OFFSET (0x0020)
+#define FW_VA_OOLD_TARGET_LUMA_BUFFER_ADDRESS_SHIFT (0)
+
+// FW_VA_OOLD TARGET_CHROMA_BUFFER_ADDRESS
+#define FW_VA_OOLD_TARGET_CHROMA_BUFFER_ADDRESS_ALIGNMENT (4)
+#define FW_VA_OOLD_TARGET_CHROMA_BUFFER_ADDRESS_TYPE IMG_UINT32
+#define FW_VA_OOLD_TARGET_CHROMA_BUFFER_ADDRESS_MASK (0xFFFFFFFF)
+#define FW_VA_OOLD_TARGET_CHROMA_BUFFER_ADDRESS_LSBMASK (0xFFFFFFFF)
+#define FW_VA_OOLD_TARGET_CHROMA_BUFFER_ADDRESS_OFFSET (0x0024)
+#define FW_VA_OOLD_TARGET_CHROMA_BUFFER_ADDRESS_SHIFT (0)
+
+#define FW_VA_CMD_COMPLETED_SIZE (12)
+
+// FW_VA_CMD_COMPLETED MSG_SIZE
+#define FW_VA_CMD_COMPLETED_MSG_SIZE_ALIGNMENT (1)
+#define FW_VA_CMD_COMPLETED_MSG_SIZE_TYPE IMG_UINT8
+#define FW_VA_CMD_COMPLETED_MSG_SIZE_MASK (0xFF)
+#define FW_VA_CMD_COMPLETED_MSG_SIZE_LSBMASK (0xFF)
+#define FW_VA_CMD_COMPLETED_MSG_SIZE_OFFSET (0x0000)
+#define FW_VA_CMD_COMPLETED_MSG_SIZE_SHIFT (0)
+
+// FW_VA_CMD_COMPLETED ID
+#define FW_VA_CMD_COMPLETED_ID_ALIGNMENT (1)
+#define FW_VA_CMD_COMPLETED_ID_TYPE IMG_UINT8
+#define FW_VA_CMD_COMPLETED_ID_MASK (0xFF)
+#define FW_VA_CMD_COMPLETED_ID_LSBMASK (0xFF)
+#define FW_VA_CMD_COMPLETED_ID_OFFSET (0x0001)
+#define FW_VA_CMD_COMPLETED_ID_SHIFT (0)
+
+// FW_VA_CMD_COMPLETED FENCE_VALUE
+#define FW_VA_CMD_COMPLETED_FENCE_VALUE_ALIGNMENT (4)
+#define FW_VA_CMD_COMPLETED_FENCE_VALUE_TYPE IMG_UINT32
+#define FW_VA_CMD_COMPLETED_FENCE_VALUE_MASK (0xFFFFFFFF)
+#define FW_VA_CMD_COMPLETED_FENCE_VALUE_LSBMASK (0xFFFFFFFF)
+#define FW_VA_CMD_COMPLETED_FENCE_VALUE_OFFSET (0x0004)
+#define FW_VA_CMD_COMPLETED_FENCE_VALUE_SHIFT (0)
+
+// FW_VA_CMD_COMPLETED FLAGS
+#define FW_VA_CMD_COMPLETED_FLAGS_ALIGNMENT (4)
+#define FW_VA_CMD_COMPLETED_FLAGS_TYPE IMG_UINT32
+#define FW_VA_CMD_COMPLETED_FLAGS_MASK (0xFFFFFFFF)
+#define FW_VA_CMD_COMPLETED_FLAGS_LSBMASK (0xFFFFFFFF)
+#define FW_VA_CMD_COMPLETED_FLAGS_OFFSET (0x0008)
+#define FW_VA_CMD_COMPLETED_FLAGS_SHIFT (0)
+
+#define FW_VA_CMD_FAILED_SIZE (12)
+
+// FW_VA_CMD_FAILED MSG_SIZE
+#define FW_VA_CMD_FAILED_MSG_SIZE_ALIGNMENT (1)
+#define FW_VA_CMD_FAILED_MSG_SIZE_TYPE IMG_UINT8
+#define FW_VA_CMD_FAILED_MSG_SIZE_MASK (0xFF)
+#define FW_VA_CMD_FAILED_MSG_SIZE_LSBMASK (0xFF)
+#define FW_VA_CMD_FAILED_MSG_SIZE_OFFSET (0x0000)
+#define FW_VA_CMD_FAILED_MSG_SIZE_SHIFT (0)
+
+// FW_VA_CMD_FAILED ID
+#define FW_VA_CMD_FAILED_ID_ALIGNMENT (1)
+#define FW_VA_CMD_FAILED_ID_TYPE IMG_UINT8
+#define FW_VA_CMD_FAILED_ID_MASK (0xFF)
+#define FW_VA_CMD_FAILED_ID_LSBMASK (0xFF)
+#define FW_VA_CMD_FAILED_ID_OFFSET (0x0001)
+#define FW_VA_CMD_FAILED_ID_SHIFT (0)
+
+// FW_VA_CMD_FAILED FLAGS
+#define FW_VA_CMD_FAILED_FLAGS_ALIGNMENT (2)
+#define FW_VA_CMD_FAILED_FLAGS_TYPE IMG_UINT16
+#define FW_VA_CMD_FAILED_FLAGS_MASK (0xFFFF)
+#define FW_VA_CMD_FAILED_FLAGS_LSBMASK (0xFFFF)
+#define FW_VA_CMD_FAILED_FLAGS_OFFSET (0x0002)
+#define FW_VA_CMD_FAILED_FLAGS_SHIFT (0)
+
+// FW_VA_CMD_FAILED FENCE_VALUE
+#define FW_VA_CMD_FAILED_FENCE_VALUE_ALIGNMENT (4)
+#define FW_VA_CMD_FAILED_FENCE_VALUE_TYPE IMG_UINT32
+#define FW_VA_CMD_FAILED_FENCE_VALUE_MASK (0xFFFFFFFF)
+#define FW_VA_CMD_FAILED_FENCE_VALUE_LSBMASK (0xFFFFFFFF)
+#define FW_VA_CMD_FAILED_FENCE_VALUE_OFFSET (0x0004)
+#define FW_VA_CMD_FAILED_FENCE_VALUE_SHIFT (0)
+
+// FW_VA_CMD_FAILED IRQSTATUS
+#define FW_VA_CMD_FAILED_IRQSTATUS_ALIGNMENT (4)
+#define FW_VA_CMD_FAILED_IRQSTATUS_TYPE IMG_UINT32
+#define FW_VA_CMD_FAILED_IRQSTATUS_MASK (0xFFFFFFFF)
+#define FW_VA_CMD_FAILED_IRQSTATUS_LSBMASK (0xFFFFFFFF)
+#define FW_VA_CMD_FAILED_IRQSTATUS_OFFSET (0x0008)
+#define FW_VA_CMD_FAILED_IRQSTATUS_SHIFT (0)
+
+#define FW_VA_DEBLOCK_REQUIRED_SIZE (8)
+
+// FW_VA_DEBLOCK_REQUIRED MSG_SIZE
+#define FW_VA_DEBLOCK_REQUIRED_MSG_SIZE_ALIGNMENT (1)
+#define FW_VA_DEBLOCK_REQUIRED_MSG_SIZE_TYPE IMG_UINT8
+#define FW_VA_DEBLOCK_REQUIRED_MSG_SIZE_MASK (0xFF)
+#define FW_VA_DEBLOCK_REQUIRED_MSG_SIZE_LSBMASK (0xFF)
+#define FW_VA_DEBLOCK_REQUIRED_MSG_SIZE_OFFSET (0x0000)
+#define FW_VA_DEBLOCK_REQUIRED_MSG_SIZE_SHIFT (0)
+
+// FW_VA_DEBLOCK_REQUIRED ID
+#define FW_VA_DEBLOCK_REQUIRED_ID_ALIGNMENT (1)
+#define FW_VA_DEBLOCK_REQUIRED_ID_TYPE IMG_UINT8
+#define FW_VA_DEBLOCK_REQUIRED_ID_MASK (0xFF)
+#define FW_VA_DEBLOCK_REQUIRED_ID_LSBMASK (0xFF)
+#define FW_VA_DEBLOCK_REQUIRED_ID_OFFSET (0x0001)
+#define FW_VA_DEBLOCK_REQUIRED_ID_SHIFT (0)
+
+// FW_VA_DEBLOCK_REQUIRED CONTEXT
+#define FW_VA_DEBLOCK_REQUIRED_CONTEXT_ALIGNMENT (4)
+#define FW_VA_DEBLOCK_REQUIRED_CONTEXT_TYPE IMG_UINT32
+#define FW_VA_DEBLOCK_REQUIRED_CONTEXT_MASK (0xFFFFFFFF)
+#define FW_VA_DEBLOCK_REQUIRED_CONTEXT_LSBMASK (0xFFFFFFFF)
+#define FW_VA_DEBLOCK_REQUIRED_CONTEXT_OFFSET (0x0004)
+#define FW_VA_DEBLOCK_REQUIRED_CONTEXT_SHIFT (0)
+
+#define FW_VA_HW_PANIC_SIZE (12)
+
+// FW_VA_HW_PANIC FLAGS
+#define FW_VA_HW_PANIC_FLAGS_ALIGNMENT (2)
+#define FW_VA_HW_PANIC_FLAGS_TYPE IMG_UINT16
+#define FW_VA_HW_PANIC_FLAGS_MASK (0xFFFF)
+#define FW_VA_HW_PANIC_FLAGS_LSBMASK (0xFFFF)
+#define FW_VA_HW_PANIC_FLAGS_OFFSET (0x0002)
+#define FW_VA_HW_PANIC_FLAGS_SHIFT (0)
+
+// FW_VA_HW_PANIC MSG_SIZE
+#define FW_VA_HW_PANIC_MSG_SIZE_ALIGNMENT (1)
+#define FW_VA_HW_PANIC_MSG_SIZE_TYPE IMG_UINT8
+#define FW_VA_HW_PANIC_MSG_SIZE_MASK (0xFF)
+#define FW_VA_HW_PANIC_MSG_SIZE_LSBMASK (0xFF)
+#define FW_VA_HW_PANIC_MSG_SIZE_OFFSET (0x0000)
+#define FW_VA_HW_PANIC_MSG_SIZE_SHIFT (0)
+
+// FW_VA_HW_PANIC ID
+#define FW_VA_HW_PANIC_ID_ALIGNMENT (1)
+#define FW_VA_HW_PANIC_ID_TYPE IMG_UINT8
+#define FW_VA_HW_PANIC_ID_MASK (0xFF)
+#define FW_VA_HW_PANIC_ID_LSBMASK (0xFF)
+#define FW_VA_HW_PANIC_ID_OFFSET (0x0001)
+#define FW_VA_HW_PANIC_ID_SHIFT (0)
+
+// FW_VA_HW_PANIC FENCE_VALUE
+#define FW_VA_HW_PANIC_FENCE_VALUE_ALIGNMENT (4)
+#define FW_VA_HW_PANIC_FENCE_VALUE_TYPE IMG_UINT32
+#define FW_VA_HW_PANIC_FENCE_VALUE_MASK (0xFFFFFFFF)
+#define FW_VA_HW_PANIC_FENCE_VALUE_LSBMASK (0xFFFFFFFF)
+#define FW_VA_HW_PANIC_FENCE_VALUE_OFFSET (0x0004)
+#define FW_VA_HW_PANIC_FENCE_VALUE_SHIFT (0)
+
+// FW_VA_HW_PANIC IRQSTATUS
+#define FW_VA_HW_PANIC_IRQSTATUS_ALIGNMENT (4)
+#define FW_VA_HW_PANIC_IRQSTATUS_TYPE IMG_UINT32
+#define FW_VA_HW_PANIC_IRQSTATUS_MASK (0xFFFFFFFF)
+#define FW_VA_HW_PANIC_IRQSTATUS_LSBMASK (0xFFFFFFFF)
+#define FW_VA_HW_PANIC_IRQSTATUS_OFFSET (0x0008)
+#define FW_VA_HW_PANIC_IRQSTATUS_SHIFT (0)
+
+#define FW_VA_HOST_BE_OPP_SIZE 16
+
+// FW_VA_HOST_BE_OPP CONTEXT
+#define FW_VA_HOST_BE_OPP_CONTEXT_ALIGNMENT (4)
+#define FW_VA_HOST_BE_OPP_CONTEXT_TYPE IMG_UINT32
+#define FW_VA_HOST_BE_OPP_CONTEXT_MASK (0xFFFFFFFF)
+#define FW_VA_HOST_BE_OPP_CONTEXT_LSBMASK (0xFFFFFFFF)
+#define FW_VA_HOST_BE_OPP_CONTEXT_OFFSET (0x0004)
+#define FW_VA_HOST_BE_OPP_CONTEXT_SHIFT (0)
+
+// FW_VA_HOST_BE_OPP FLAGS
+#define FW_VA_HOST_BE_OPP_FLAGS_ALIGNMENT (2)
+#define FW_VA_HOST_BE_OPP_FLAGS_TYPE IMG_UINT16
+#define FW_VA_HOST_BE_OPP_FLAGS_MASK (0xFFFF)
+#define FW_VA_HOST_BE_OPP_FLAGS_LSBMASK (0xFFFF)
+#define FW_VA_HOST_BE_OPP_FLAGS_OFFSET (0x0002)
+#define FW_VA_HOST_BE_OPP_FLAGS_SHIFT (0)
+
+#define FW_VA_FRAME_INFO_SIZE 24 /* 20 bytes for FRAME_INFO_PARAMS */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __VA_CMDSEQ_MSG_H__ */
diff --git a/src/hwdefs/dxva_fw_ctrl.h b/src/hwdefs/dxva_fw_ctrl.h
new file mode 100644
index 0000000..66c40da
--- /dev/null
+++ b/src/hwdefs/dxva_fw_ctrl.h
@@ -0,0 +1,145 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+
+/******************************************************************************
+
+ @File dxva_fw_ctrl.h
+
+ @Title va Firmware Control Allocation Commands
+
+ @Platform
+
+ @Description Defined commands that may be placed int the Control Allocation
+
+******************************************************************************/
+#ifndef _VA_FW_CTRL_H_
+#define _VA_FW_CTRL_H_
+
+
+#define CMD_MASK (0xF0000000)
+
+/* No Operation */
+#define CMD_NOP (0x00000000)
+
+/* Register Value Pair Block */
+#define CMD_REGVALPAIR_WRITE (0x10000000)
+#define CMD_REGVALPAIR_COUNT_MASK (0x000FFFFF)
+#define CMD_REGVALPAIR_COUNT_SHIFT (0)
+
+#define CMD_REGVALPAIR_FLAG_MB_LAYER (0x00100000)
+#define CMD_REGVALPAIR_FLAG_HL_LAYER (0x00200000)
+#define CMD_REGVALPAIR_FLAG_PRELOAD (0x00400000)
+#define CMD_REGVALPAIR_FLAG_VC1PATCH (0x00800000)
+
+#define CMD_REGVALPAIR_FORCE_MASK (0x08000000)
+
+/* Rendec Write Block */
+#define CMD_RENDEC_WRITE (0x20000000)
+#define CMD_RENDEC_BLOCK (0x50000000)
+#define CMD_RENDEC_COUNT_MASK (0x000FFFFF)
+#define CMD_RENDEC_COUNT_SHIFT (0)
+
+/* Rendec Block */
+#define CMD_RENDEC_BLOCK_FLAG_VC1_CMD_PATCH (0x01000000)
+#define CMD_RENDEC_BLOCK_FLAG_VC1_BE_PATCH (0x02000000)
+#define CMD_RENDEC_BLOCK_FLAG_VC1_SP_PATCH (0x04000000)
+#define CMD_RENDEC_BLOCK_FLAG_VC1_IC_PATCH (0x08000000)
+
+/* Command Allocation temination Commands */
+#define CMD_COMPLETION (0x60000000)
+
+/* Use this to notify mxt of the context */
+#define CMD_HEADER (0x70000000)
+#define CMD_HEADER_CONTEXT_MASK (0x0fffffff)
+
+#define CMD_CONDITIONAL_SKIP (0x80000000)
+
+#define CMD_HEADER_VC1 (0x90000000)
+
+#define CMD_PARSE_HEADER (0xF0000000)
+#define CMD_PARSE_HEADER_NEWSLICE (0x00000001)
+
+
+typedef struct _RENDER_BUFFER_HEADER_VC1_TAG {
+ IMG_UINT32 ui32Cmd;
+ IMG_UINT32 ui32RangeMappingBase[2]; /* Store flags in bottom bits of [0] */
+ IMG_UINT32 ui32SliceParams;
+ union {
+ struct _LLDMA_VC1_ {
+ IMG_UINT32 ui32PreloadSave;
+ IMG_UINT32 ui32PreloadRestore;
+ } LLDMA_VC1;
+ } ui32LLDMAPointers;
+
+} RENDER_BUFFER_HEADER_VC1;
+
+typedef struct _RENDER_BUFFER_HEADER_TAG {
+ IMG_UINT32 ui32Cmd;
+ IMG_UINT32 ui32Reserved; /* used as ui32SliceParams in MPEG4 */
+ union {
+ struct _LLDMA_MPEG4_ {
+ IMG_UINT32 ui32FEStatesSave;
+ IMG_UINT32 ui32FEStatesRestore;
+ } LLDMA_MPEG4;
+
+ struct _LLDMA_H264_ {
+ IMG_UINT32 ui32PreloadSave;
+ IMG_UINT32 ui32PreloadRestore;
+
+ } LLDMA_H264;
+ } ui32LLDMAPointers;
+
+} RENDER_BUFFER_HEADER;
+
+typedef struct _PARSE_HEADER_CMD_TAG {
+ IMG_UINT32 ui32Cmd;
+ IMG_UINT32 ui32SeqHdrData;
+ IMG_UINT32 ui32PicDimensions;
+ IMG_UINT32 ui32BitplaneAddr[3];
+ IMG_UINT32 ui32VLCTableAddr;
+ IMG_UINT32 ui32ICParamData[2];
+} PARSE_HEADER_CMD;
+
+/* Linked list DMA Command */
+#define CMD_LLDMA (0xA0000000)
+#define CMD_SLLDMA (0xC0000000) /* Syncronose LLDMA */
+typedef struct {
+ IMG_UINT32 ui32CmdAndDevLinAddr;
+} LLDMA_CMD;
+
+/* Shift Register Setup Command */
+#define CMD_SR_SETUP (0xB0000000)
+#define CMD_ENABLE_RBDU_EXTRACTION (0x00000001)
+typedef struct {
+ IMG_UINT32 ui32Cmd;
+ IMG_UINT32 ui32BitstreamOffsetBits;
+ IMG_UINT32 ui32BitstreamSizeBytes;
+} SR_SETUP_CMD;
+
+/* Next Segment Command */
+#define CMD_NEXT_SEG (0xD0000000) /* Also Syncronose */
+
+#endif
diff --git a/src/hwdefs/dxva_fw_flags.h b/src/hwdefs/dxva_fw_flags.h
new file mode 100644
index 0000000..0773ce0
--- /dev/null
+++ b/src/hwdefs/dxva_fw_flags.h
@@ -0,0 +1,57 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+
+/******************************************************************************
+
+ @File dxva_fw_flags.h
+
+ @Title Dxva Firmware Message Flags
+
+ @Platform
+
+ @Description
+
+******************************************************************************/
+#ifndef _VA_FW_FLAGS_H_
+#define _VA_FW_FLAGS_H_
+
+/* Flags */
+
+#define FW_VA_RENDER_IS_FIRST_SLICE 0x00000001
+#define FW_VA_RENDER_IS_H264_MBAFF 0x00000002
+#define FW_VA_RENDER_IS_LAST_SLICE 0x00000004
+#define FW_VA_RENDER_IS_TWO_PASS_DEBLOCK 0x00000008
+
+#define REPORT_STATUS 0x00000010
+
+#define FW_VA_RENDER_IS_VLD_NOT_MC 0x00000800
+
+#define FW_ERROR_DETECTION_AND_RECOVERY 0x00000100
+#define FW_VA_RENDER_NO_RESPONCE_MSG 0x00002000 /* Cause no responce message to be sent, and no interupt generation on successfull completion */
+#define FW_VA_RENDER_HOST_INT 0x00004000
+#define FW_VA_RENDER_VC1_BITPLANE_PRESENT 0x00008000
+
+#endif /*_VA_FW_FLAGS_H_*/
diff --git a/src/hwdefs/dxva_msg.h b/src/hwdefs/dxva_msg.h
new file mode 100644
index 0000000..2769e14
--- /dev/null
+++ b/src/hwdefs/dxva_msg.h
@@ -0,0 +1,102 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+
+/******************************************************************************
+
+@File dxva_msg.h
+
+@Title va Firmware Message Flags
+
+@Platform Independent
+
+@Description </b>\n This file contains the header file information for the VA
+ specific MTX/Host messages
+
+******************************************************************************/
+#if !defined (__VA_MSG_H__)
+#define __VA_MSG_H__
+
+#if (__cplusplus)
+extern "C" {
+#endif
+
+ /* These come from fwrk_api.h */
+ /* #include <fwrk_api.h> */
+#define FWRK_MSGID_START_PSR_HOSTMTX_MSG (0x80) //!< Start of parser specific Host->MTX messages.
+#define FWRK_MSGID_START_PSR_MTXHOST_MSG (0xC0) //!< Start of parser specific MTX->Host messages.
+#define FWRK_MSGID_START_USER_DEFINED_MSG (0xF0) //!< Start of parser user defined messages.
+#define FWRK_MSGID_PADDING ( 0 )
+
+#define FWRK_MSGID_HOST_EMULATED (0x40)
+
+
+ /*!
+ ******************************************************************************
+ This type defines the framework specified message ids
+
+ The messages are packed memory based structures accessed using the mem_io.h
+ macros. The control values for these are generated from a file called
+ dxva_cmdseq_msg.def using the "regdef" tool.
+
+ ******************************************************************************/
+ enum {
+ /*! Sent by the VA driver on the host to the mtx firmware.
+ */
+ VA_MSGID_INIT = FWRK_MSGID_START_PSR_HOSTMTX_MSG,
+ VA_MSGID_RENDER,
+ VA_MSGID_DEBLOCK,
+ VA_MSGID_OOLD,
+
+ /* Test Messages */
+ VA_MSGID_TEST1,
+ DAVA_MSGID_HOST_BE_OPP,
+
+ /*! Sent by the mtx firmware to itself.
+ */
+ VA_MSGID_RENDER_MC_INTERRUPT,
+
+ VA_MSGID_DEBLOCK_MFLD = FWRK_MSGID_HOST_EMULATED,
+ VA_MSGID_OOLD_MFLD,
+
+ /*! Sent by the VA firmware on the MTX to the host.
+ */
+ VA_MSGID_CMD_COMPLETED = FWRK_MSGID_START_PSR_MTXHOST_MSG,
+ VA_MSGID_CMD_COMPLETED_BATCH,
+ VA_MSGID_DEBLOCK_REQUIRED,
+ VA_MSGID_TEST_RESPONCE,
+ VA_MSGID_ACK,
+
+ VA_MSGID_CMD_FAILED,
+ VA_MSGID_CMD_UNSUPPORTED,
+ VA_MSGID_CMD_HW_PANIC,
+ VA_MSGID_FRAME_INFO = FWRK_MSGID_START_USER_DEFINED_MSG,
+ };
+
+#if (__cplusplus)
+}
+#endif
+
+#endif
diff --git a/src/hwdefs/fwrk_msg_mem_io.h b/src/hwdefs/fwrk_msg_mem_io.h
new file mode 100644
index 0000000..3d51a40
--- /dev/null
+++ b/src/hwdefs/fwrk_msg_mem_io.h
@@ -0,0 +1,306 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+
+/*!
+******************************************************************************
+@file : ../firmware/msvdx/mtxlib/include/fwrk_msg_mem_io.h
+
+@brief
+
+@Author <Autogenerated>
+
+<b>Description:</b>\n
+ This file contains the FWRK_MSG_MEM_IO_H Definitions.
+
+<b>Platform:</b>\n
+ ?
+
+@Version
+ 1.0
+
+******************************************************************************/
+
+#if !defined (__FWRK_MSG_MEM_IO_H__)
+#define __FWRK_MSG_MEM_IO_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+#define FWRK_GENMSG_SIZE (2)
+
+// FWRK_GENMSG SIZE
+#define FWRK_GENMSG_SIZE_ALIGNMENT (1)
+#define FWRK_GENMSG_SIZE_TYPE IMG_UINT8
+#define FWRK_GENMSG_SIZE_MASK (0xFF)
+#define FWRK_GENMSG_SIZE_LSBMASK (0xFF)
+#define FWRK_GENMSG_SIZE_OFFSET (0x0000)
+#define FWRK_GENMSG_SIZE_SHIFT (0)
+
+// FWRK_GENMSG ID
+#define FWRK_GENMSG_ID_ALIGNMENT (1)
+#define FWRK_GENMSG_ID_TYPE IMG_UINT8
+#define FWRK_GENMSG_ID_MASK (0xFF)
+#define FWRK_GENMSG_ID_LSBMASK (0xFF)
+#define FWRK_GENMSG_ID_OFFSET (0x0001)
+#define FWRK_GENMSG_ID_SHIFT (0)
+
+#define FWRK_PADMSG_SIZE (2)
+
+// FWRK_PADMSG SIZE
+#define FWRK_PADMSG_SIZE_ALIGNMENT (1)
+#define FWRK_PADMSG_SIZE_TYPE IMG_UINT8
+#define FWRK_PADMSG_SIZE_MASK (0xFF)
+#define FWRK_PADMSG_SIZE_LSBMASK (0xFF)
+#define FWRK_PADMSG_SIZE_OFFSET (0x0000)
+#define FWRK_PADMSG_SIZE_SHIFT (0)
+
+// FWRK_PADMSG ID
+#define FWRK_PADMSG_ID_ALIGNMENT (1)
+#define FWRK_PADMSG_ID_TYPE IMG_UINT8
+#define FWRK_PADMSG_ID_MASK (0xFF)
+#define FWRK_PADMSG_ID_LSBMASK (0xFF)
+#define FWRK_PADMSG_ID_OFFSET (0x0001)
+#define FWRK_PADMSG_ID_SHIFT (0)
+
+#define FWRK_RSTMSG_SIZE (2)
+
+// FWRK_RSTMSG SIZE
+#define FWRK_RSTMSG_SIZE_ALIGNMENT (1)
+#define FWRK_RSTMSG_SIZE_TYPE IMG_UINT8
+#define FWRK_RSTMSG_SIZE_MASK (0xFF)
+#define FWRK_RSTMSG_SIZE_LSBMASK (0xFF)
+#define FWRK_RSTMSG_SIZE_OFFSET (0x0000)
+#define FWRK_RSTMSG_SIZE_SHIFT (0)
+
+// FWRK_RSTMSG ID
+#define FWRK_RSTMSG_ID_ALIGNMENT (1)
+#define FWRK_RSTMSG_ID_TYPE IMG_UINT8
+#define FWRK_RSTMSG_ID_MASK (0xFF)
+#define FWRK_RSTMSG_ID_LSBMASK (0xFF)
+#define FWRK_RSTMSG_ID_OFFSET (0x0001)
+#define FWRK_RSTMSG_ID_SHIFT (0)
+
+#define FWRK_SRQMSG_SIZE (2)
+
+// FWRK_SRQMSG SIZE
+#define FWRK_SRQMSG_SIZE_ALIGNMENT (1)
+#define FWRK_SRQMSG_SIZE_TYPE IMG_UINT8
+#define FWRK_SRQMSG_SIZE_MASK (0xFF)
+#define FWRK_SRQMSG_SIZE_LSBMASK (0xFF)
+#define FWRK_SRQMSG_SIZE_OFFSET (0x0000)
+#define FWRK_SRQMSG_SIZE_SHIFT (0)
+
+// FWRK_SRQMSG ID
+#define FWRK_SRQMSG_ID_ALIGNMENT (1)
+#define FWRK_SRQMSG_ID_TYPE IMG_UINT8
+#define FWRK_SRQMSG_ID_MASK (0xFF)
+#define FWRK_SRQMSG_ID_LSBMASK (0xFF)
+#define FWRK_SRQMSG_ID_OFFSET (0x0001)
+#define FWRK_SRQMSG_ID_SHIFT (0)
+
+#define FWRK_STAMSG_SIZE (3)
+
+// FWRK_STAMSG SIZE
+#define FWRK_STAMSG_SIZE_ALIGNMENT (1)
+#define FWRK_STAMSG_SIZE_TYPE IMG_UINT8
+#define FWRK_STAMSG_SIZE_MASK (0xFF)
+#define FWRK_STAMSG_SIZE_LSBMASK (0xFF)
+#define FWRK_STAMSG_SIZE_OFFSET (0x0000)
+#define FWRK_STAMSG_SIZE_SHIFT (0)
+
+// FWRK_STAMSG ID
+#define FWRK_STAMSG_ID_ALIGNMENT (1)
+#define FWRK_STAMSG_ID_TYPE IMG_UINT8
+#define FWRK_STAMSG_ID_MASK (0xFF)
+#define FWRK_STAMSG_ID_LSBMASK (0xFF)
+#define FWRK_STAMSG_ID_OFFSET (0x0001)
+#define FWRK_STAMSG_ID_SHIFT (0)
+
+// FWRK_STAMSG IDLE
+#define FWRK_STAMSG_IDLE_ALIGNMENT (1)
+#define FWRK_STAMSG_IDLE_TYPE IMG_UINT8
+#define FWRK_STAMSG_IDLE_MASK (0x01)
+#define FWRK_STAMSG_IDLE_LSBMASK (0x01)
+#define FWRK_STAMSG_IDLE_OFFSET (0x0002)
+#define FWRK_STAMSG_IDLE_SHIFT (0)
+
+// FWRK_STAMSG QUEUED_EVENTS
+#define FWRK_STAMSG_QUEUED_EVENTS_ALIGNMENT (1)
+#define FWRK_STAMSG_QUEUED_EVENTS_TYPE IMG_UINT8
+#define FWRK_STAMSG_QUEUED_EVENTS_MASK (0x02)
+#define FWRK_STAMSG_QUEUED_EVENTS_LSBMASK (0x01)
+#define FWRK_STAMSG_QUEUED_EVENTS_OFFSET (0x0002)
+#define FWRK_STAMSG_QUEUED_EVENTS_SHIFT (1)
+
+#define FWRK_SPRMSG_SIZE (3)
+
+// FWRK_SPRMSG SIZE
+#define FWRK_SPRMSG_SIZE_ALIGNMENT (1)
+#define FWRK_SPRMSG_SIZE_TYPE IMG_UINT8
+#define FWRK_SPRMSG_SIZE_MASK (0xFF)
+#define FWRK_SPRMSG_SIZE_LSBMASK (0xFF)
+#define FWRK_SPRMSG_SIZE_OFFSET (0x0000)
+#define FWRK_SPRMSG_SIZE_SHIFT (0)
+
+// FWRK_SPRMSG ID
+#define FWRK_SPRMSG_ID_ALIGNMENT (1)
+#define FWRK_SPRMSG_ID_TYPE IMG_UINT8
+#define FWRK_SPRMSG_ID_MASK (0xFF)
+#define FWRK_SPRMSG_ID_LSBMASK (0xFF)
+#define FWRK_SPRMSG_ID_OFFSET (0x0001)
+#define FWRK_SPRMSG_ID_SHIFT (0)
+
+// FWRK_SPRMSG PROF
+#define FWRK_SPRMSG_PROF_ALIGNMENT (1)
+#define FWRK_SPRMSG_PROF_TYPE IMG_UINT8
+#define FWRK_SPRMSG_PROF_MASK (0xFF)
+#define FWRK_SPRMSG_PROF_LSBMASK (0xFF)
+#define FWRK_SPRMSG_PROF_OFFSET (0x0002)
+#define FWRK_SPRMSG_PROF_SHIFT (0)
+
+#define FWRK_PRRMSG_SIZE (3)
+
+// FWRK_PRRMSG SIZE
+#define FWRK_PRRMSG_SIZE_ALIGNMENT (1)
+#define FWRK_PRRMSG_SIZE_TYPE IMG_UINT8
+#define FWRK_PRRMSG_SIZE_MASK (0xFF)
+#define FWRK_PRRMSG_SIZE_LSBMASK (0xFF)
+#define FWRK_PRRMSG_SIZE_OFFSET (0x0000)
+#define FWRK_PRRMSG_SIZE_SHIFT (0)
+
+// FWRK_PRRMSG ID
+#define FWRK_PRRMSG_ID_ALIGNMENT (1)
+#define FWRK_PRRMSG_ID_TYPE IMG_UINT8
+#define FWRK_PRRMSG_ID_MASK (0xFF)
+#define FWRK_PRRMSG_ID_LSBMASK (0xFF)
+#define FWRK_PRRMSG_ID_OFFSET (0x0001)
+#define FWRK_PRRMSG_ID_SHIFT (0)
+
+// FWRK_PRRMSG SUPPORTED
+#define FWRK_PRRMSG_SUPPORTED_ALIGNMENT (1)
+#define FWRK_PRRMSG_SUPPORTED_TYPE IMG_UINT8
+#define FWRK_PRRMSG_SUPPORTED_MASK (0x01)
+#define FWRK_PRRMSG_SUPPORTED_LSBMASK (0x01)
+#define FWRK_PRRMSG_SUPPORTED_OFFSET (0x0002)
+#define FWRK_PRRMSG_SUPPORTED_SHIFT (0)
+
+#define FWRK_ERRMSG_SIZE (3)
+
+// FWRK_ERRMSG SIZE
+#define FWRK_ERRMSG_SIZE_ALIGNMENT (1)
+#define FWRK_ERRMSG_SIZE_TYPE IMG_UINT8
+#define FWRK_ERRMSG_SIZE_MASK (0xFF)
+#define FWRK_ERRMSG_SIZE_LSBMASK (0xFF)
+#define FWRK_ERRMSG_SIZE_OFFSET (0x0000)
+#define FWRK_ERRMSG_SIZE_SHIFT (0)
+
+// FWRK_ERRMSG ID
+#define FWRK_ERRMSG_ID_ALIGNMENT (1)
+#define FWRK_ERRMSG_ID_TYPE IMG_UINT8
+#define FWRK_ERRMSG_ID_MASK (0xFF)
+#define FWRK_ERRMSG_ID_LSBMASK (0xFF)
+#define FWRK_ERRMSG_ID_OFFSET (0x0001)
+#define FWRK_ERRMSG_ID_SHIFT (0)
+
+// FWRK_ERRMSG ERROR
+#define FWRK_ERRMSG_ERROR_ALIGNMENT (1)
+#define FWRK_ERRMSG_ERROR_TYPE IMG_UINT8
+#define FWRK_ERRMSG_ERROR_MASK (0xFF)
+#define FWRK_ERRMSG_ERROR_LSBMASK (0xFF)
+#define FWRK_ERRMSG_ERROR_OFFSET (0x0002)
+#define FWRK_ERRMSG_ERROR_SHIFT (0)
+
+#define FWRK_GBEMSG_SIZE (2)
+
+// FWRK_GBEMSG SIZE
+#define FWRK_GBEMSG_SIZE_ALIGNMENT (1)
+#define FWRK_GBEMSG_SIZE_TYPE IMG_UINT8
+#define FWRK_GBEMSG_SIZE_MASK (0xFF)
+#define FWRK_GBEMSG_SIZE_LSBMASK (0xFF)
+#define FWRK_GBEMSG_SIZE_OFFSET (0x0000)
+#define FWRK_GBEMSG_SIZE_SHIFT (0)
+
+// FWRK_GBEMSG ID
+#define FWRK_GBEMSG_ID_ALIGNMENT (1)
+#define FWRK_GBEMSG_ID_TYPE IMG_UINT8
+#define FWRK_GBEMSG_ID_MASK (0xFF)
+#define FWRK_GBEMSG_ID_LSBMASK (0xFF)
+#define FWRK_GBEMSG_ID_OFFSET (0x0001)
+#define FWRK_GBEMSG_ID_SHIFT (0)
+
+#define FWRK_BENMSG_SIZE (8)
+
+// FWRK_BENMSG SIZE
+#define FWRK_BENMSG_SIZE_ALIGNMENT (1)
+#define FWRK_BENMSG_SIZE_TYPE IMG_UINT8
+#define FWRK_BENMSG_SIZE_MASK (0xFF)
+#define FWRK_BENMSG_SIZE_LSBMASK (0xFF)
+#define FWRK_BENMSG_SIZE_OFFSET (0x0000)
+#define FWRK_BENMSG_SIZE_SHIFT (0)
+
+// FWRK_BENMSG ID
+#define FWRK_BENMSG_ID_ALIGNMENT (1)
+#define FWRK_BENMSG_ID_TYPE IMG_UINT8
+#define FWRK_BENMSG_ID_MASK (0xFF)
+#define FWRK_BENMSG_ID_LSBMASK (0xFF)
+#define FWRK_BENMSG_ID_OFFSET (0x0001)
+#define FWRK_BENMSG_ID_SHIFT (0)
+
+// FWRK_BENMSG ERRNUM
+#define FWRK_BENMSG_ERRNUM_ALIGNMENT (4)
+#define FWRK_BENMSG_ERRNUM_TYPE IMG_UINT32
+#define FWRK_BENMSG_ERRNUM_MASK (0xFFFFFFFF)
+#define FWRK_BENMSG_ERRNUM_LSBMASK (0xFFFFFFFF)
+#define FWRK_BENMSG_ERRNUM_OFFSET (0x0004)
+#define FWRK_BENMSG_ERRNUM_SHIFT (0)
+
+#define FWRK_EXTMSG_SIZE (2)
+
+// FWRK_EXTMSG SIZE
+#define FWRK_EXTMSG_SIZE_ALIGNMENT (1)
+#define FWRK_EXTMSG_SIZE_TYPE IMG_UINT8
+#define FWRK_EXTMSG_SIZE_MASK (0xFF)
+#define FWRK_EXTMSG_SIZE_LSBMASK (0xFF)
+#define FWRK_EXTMSG_SIZE_OFFSET (0x0000)
+#define FWRK_EXTMSG_SIZE_SHIFT (0)
+
+// FWRK_EXTMSG ID
+#define FWRK_EXTMSG_ID_ALIGNMENT (1)
+#define FWRK_EXTMSG_ID_TYPE IMG_UINT8
+#define FWRK_EXTMSG_ID_MASK (0xFF)
+#define FWRK_EXTMSG_ID_LSBMASK (0xFF)
+#define FWRK_EXTMSG_ID_OFFSET (0x0001)
+#define FWRK_EXTMSG_ID_SHIFT (0)
+
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __FWRK_MSG_MEM_IO_H__ */
diff --git a/src/hwdefs/h264_macroblock_mem_io.h b/src/hwdefs/h264_macroblock_mem_io.h
new file mode 100644
index 0000000..3d6c294
--- /dev/null
+++ b/src/hwdefs/h264_macroblock_mem_io.h
@@ -0,0 +1,502 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_SIZE (4128)
+
+// MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT REFERING_TO_BOTTOM
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_REFERING_TO_BOTTOM_ALIGNMENT (1)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_REFERING_TO_BOTTOM_TYPE uint8_t
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_REFERING_TO_BOTTOM_MASK (0x40)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_REFERING_TO_BOTTOM_LSBMASK (0x01)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_REFERING_TO_BOTTOM_OFFSET (0x0023)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_REFERING_TO_BOTTOM_SHIFT (6)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_REFERING_TO_BOTTOM_STRIDE (4)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_REFERING_TO_BOTTOM_NO_ENTRIES (14)
+
+// MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT DPB_IDX_COL
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_DPB_IDX_COL_ALIGNMENT (1)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_DPB_IDX_COL_TYPE uint8_t
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_DPB_IDX_COL_MASK (0x3C)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_DPB_IDX_COL_LSBMASK (0x0F)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_DPB_IDX_COL_OFFSET (0x0023)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_DPB_IDX_COL_SHIFT (2)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_DPB_IDX_COL_STRIDE (4)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_DPB_IDX_COL_NO_ENTRIES (14)
+
+// MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT COMP_Y_COL
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_COMP_Y_COL_ALIGNMENT (4)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_COMP_Y_COL_TYPE uint32_t
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_COMP_Y_COL_MASK (0x03FFC000)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_COMP_Y_COL_LSBMASK (0x00000FFF)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_COMP_Y_COL_OFFSET (0x0020)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_COMP_Y_COL_SHIFT (14)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_COMP_Y_COL_STRIDE (4)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_COMP_Y_COL_NO_ENTRIES (14)
+
+// MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT COMP_X_COL
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_COMP_X_COL_ALIGNMENT (2)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_COMP_X_COL_TYPE uint16_t
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_COMP_X_COL_MASK (0x3FFF)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_COMP_X_COL_LSBMASK (0x3FFF)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_COMP_X_COL_OFFSET (0x0020)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_COMP_X_COL_SHIFT (0)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_COMP_X_COL_STRIDE (4)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_COMP_X_COL_NO_ENTRIES (14)
+
+// MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT REFERING_TO_BOTTOM_ABOVE
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_REFERING_TO_BOTTOM_ABOVE_ALIGNMENT (1)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_REFERING_TO_BOTTOM_ABOVE_TYPE uint8_t
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_REFERING_TO_BOTTOM_ABOVE_MASK (0x40)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_REFERING_TO_BOTTOM_ABOVE_LSBMASK (0x01)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_REFERING_TO_BOTTOM_ABOVE_OFFSET (0x0003)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_REFERING_TO_BOTTOM_ABOVE_SHIFT (6)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_REFERING_TO_BOTTOM_ABOVE_STRIDE (4)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_REFERING_TO_BOTTOM_ABOVE_NO_ENTRIES (4)
+
+// MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT DPB_IDX_ABOVE
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_DPB_IDX_ABOVE_ALIGNMENT (1)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_DPB_IDX_ABOVE_TYPE uint8_t
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_DPB_IDX_ABOVE_MASK (0x3C)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_DPB_IDX_ABOVE_LSBMASK (0x0F)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_DPB_IDX_ABOVE_OFFSET (0x0003)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_DPB_IDX_ABOVE_SHIFT (2)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_DPB_IDX_ABOVE_STRIDE (4)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_DPB_IDX_ABOVE_NO_ENTRIES (4)
+
+// MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT COMP_Y_ABOVE
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_COMP_Y_ABOVE_ALIGNMENT (4)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_COMP_Y_ABOVE_TYPE uint32_t
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_COMP_Y_ABOVE_MASK (0x03FFC000)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_COMP_Y_ABOVE_LSBMASK (0x00000FFF)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_COMP_Y_ABOVE_OFFSET (0x0000)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_COMP_Y_ABOVE_SHIFT (14)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_COMP_Y_ABOVE_STRIDE (4)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_COMP_Y_ABOVE_NO_ENTRIES (4)
+
+// MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT COMP_X_ABOVE
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_COMP_X_ABOVE_ALIGNMENT (2)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_COMP_X_ABOVE_TYPE uint16_t
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_COMP_X_ABOVE_MASK (0x3FFF)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_COMP_X_ABOVE_LSBMASK (0x3FFF)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_COMP_X_ABOVE_OFFSET (0x0000)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_COMP_X_ABOVE_SHIFT (0)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_COMP_X_ABOVE_STRIDE (4)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_COMP_X_ABOVE_NO_ENTRIES (4)
+
+// MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT ASO_BLOCK3_PREDICTION_SIZE
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_ASO_BLOCK3_PREDICTION_SIZE_ALIGNMENT (2)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_ASO_BLOCK3_PREDICTION_SIZE_TYPE uint16_t
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_ASO_BLOCK3_PREDICTION_SIZE_MASK (0x0380)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_ASO_BLOCK3_PREDICTION_SIZE_LSBMASK (0x0007)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_ASO_BLOCK3_PREDICTION_SIZE_OFFSET (0x005E)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_ASO_BLOCK3_PREDICTION_SIZE_SHIFT (7)
+
+// MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT ASO_BLOCK2_PREDICTION_SIZE
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_ASO_BLOCK2_PREDICTION_SIZE_ALIGNMENT (1)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_ASO_BLOCK2_PREDICTION_SIZE_TYPE uint8_t
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_ASO_BLOCK2_PREDICTION_SIZE_MASK (0x70)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_ASO_BLOCK2_PREDICTION_SIZE_LSBMASK (0x07)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_ASO_BLOCK2_PREDICTION_SIZE_OFFSET (0x005E)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_ASO_BLOCK2_PREDICTION_SIZE_SHIFT (4)
+
+// MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT ASO_BLOCK1_PREDICTION_SIZE
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_ASO_BLOCK1_PREDICTION_SIZE_ALIGNMENT (1)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_ASO_BLOCK1_PREDICTION_SIZE_TYPE uint8_t
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_ASO_BLOCK1_PREDICTION_SIZE_MASK (0x0E)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_ASO_BLOCK1_PREDICTION_SIZE_LSBMASK (0x07)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_ASO_BLOCK1_PREDICTION_SIZE_OFFSET (0x005E)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_ASO_BLOCK1_PREDICTION_SIZE_SHIFT (1)
+
+// MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT ASO_BLOCK0_PREDICTION_SIZE
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_ASO_BLOCK0_PREDICTION_SIZE_ALIGNMENT (4)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_ASO_BLOCK0_PREDICTION_SIZE_TYPE uint32_t
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_ASO_BLOCK0_PREDICTION_SIZE_MASK (0x0001C000)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_ASO_BLOCK0_PREDICTION_SIZE_LSBMASK (0x00000007)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_ASO_BLOCK0_PREDICTION_SIZE_OFFSET (0x005C)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_ASO_BLOCK0_PREDICTION_SIZE_SHIFT (14)
+
+// MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT COPY_DISABLE_DEBLOCK_FILTER_IDC
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_COPY_DISABLE_DEBLOCK_FILTER_IDC_ALIGNMENT (1)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_COPY_DISABLE_DEBLOCK_FILTER_IDC_TYPE uint8_t
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_COPY_DISABLE_DEBLOCK_FILTER_IDC_MASK (0x30)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_COPY_DISABLE_DEBLOCK_FILTER_IDC_LSBMASK (0x03)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_COPY_DISABLE_DEBLOCK_FILTER_IDC_OFFSET (0x005D)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_COPY_DISABLE_DEBLOCK_FILTER_IDC_SHIFT (4)
+
+// MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT COPY_H264_BE_SLICE0_ALPHA_CO_OFFSET_DIV2
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_COPY_H264_BE_SLICE0_ALPHA_CO_OFFSET_DIV2_ALIGNMENT (1)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_COPY_H264_BE_SLICE0_ALPHA_CO_OFFSET_DIV2_TYPE uint8_t
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_COPY_H264_BE_SLICE0_ALPHA_CO_OFFSET_DIV2_MASK (0x0F)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_COPY_H264_BE_SLICE0_ALPHA_CO_OFFSET_DIV2_LSBMASK (0x0F)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_COPY_H264_BE_SLICE0_ALPHA_CO_OFFSET_DIV2_OFFSET (0x005D)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_COPY_H264_BE_SLICE0_ALPHA_CO_OFFSET_DIV2_SHIFT (0)
+
+// MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT COPY_H264_BE_SLICE0_BETA_OFFSET_DIV2
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_COPY_H264_BE_SLICE0_BETA_OFFSET_DIV2_ALIGNMENT (1)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_COPY_H264_BE_SLICE0_BETA_OFFSET_DIV2_TYPE uint8_t
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_COPY_H264_BE_SLICE0_BETA_OFFSET_DIV2_MASK (0xF0)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_COPY_H264_BE_SLICE0_BETA_OFFSET_DIV2_LSBMASK (0x0F)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_COPY_H264_BE_SLICE0_BETA_OFFSET_DIV2_OFFSET (0x005C)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_COPY_H264_BE_SLICE0_BETA_OFFSET_DIV2_SHIFT (4)
+
+// MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT COPY_H264_BE_SLICE0_FIELD_TYPE
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_COPY_H264_BE_SLICE0_FIELD_TYPE_ALIGNMENT (1)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_COPY_H264_BE_SLICE0_FIELD_TYPE_TYPE uint8_t
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_COPY_H264_BE_SLICE0_FIELD_TYPE_MASK (0x0C)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_COPY_H264_BE_SLICE0_FIELD_TYPE_LSBMASK (0x03)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_COPY_H264_BE_SLICE0_FIELD_TYPE_OFFSET (0x005C)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_COPY_H264_BE_SLICE0_FIELD_TYPE_SHIFT (2)
+
+// MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT COPY_H264_BE_SLICE0_CODE_TYPE
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_COPY_H264_BE_SLICE0_CODE_TYPE_ALIGNMENT (1)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_COPY_H264_BE_SLICE0_CODE_TYPE_TYPE uint8_t
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_COPY_H264_BE_SLICE0_CODE_TYPE_MASK (0x03)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_COPY_H264_BE_SLICE0_CODE_TYPE_LSBMASK (0x03)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_COPY_H264_BE_SLICE0_CODE_TYPE_OFFSET (0x005C)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_COPY_H264_BE_SLICE0_CODE_TYPE_SHIFT (0)
+
+// MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT MB_AVAILABLE_TOP_FLAG
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_MB_AVAILABLE_TOP_FLAG_ALIGNMENT (1)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_MB_AVAILABLE_TOP_FLAG_TYPE uint8_t
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_MB_AVAILABLE_TOP_FLAG_MASK (0x02)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_MB_AVAILABLE_TOP_FLAG_LSBMASK (0x01)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_MB_AVAILABLE_TOP_FLAG_OFFSET (0x005B)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_MB_AVAILABLE_TOP_FLAG_SHIFT (1)
+
+// MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT MB_AVAILABLE_LEFT_FLAG
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_MB_AVAILABLE_LEFT_FLAG_ALIGNMENT (1)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_MB_AVAILABLE_LEFT_FLAG_TYPE uint8_t
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_MB_AVAILABLE_LEFT_FLAG_MASK (0x01)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_MB_AVAILABLE_LEFT_FLAG_LSBMASK (0x01)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_MB_AVAILABLE_LEFT_FLAG_OFFSET (0x005B)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_MB_AVAILABLE_LEFT_FLAG_SHIFT (0)
+
+// MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT ASO_MB_TRANSFORM_ZERO
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_ASO_MB_TRANSFORM_ZERO_ALIGNMENT (4)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_ASO_MB_TRANSFORM_ZERO_TYPE uint32_t
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_ASO_MB_TRANSFORM_ZERO_MASK (0x00FFFFFF)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_ASO_MB_TRANSFORM_ZERO_LSBMASK (0x00FFFFFF)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_ASO_MB_TRANSFORM_ZERO_OFFSET (0x0058)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_ASO_MB_TRANSFORM_ZERO_SHIFT (0)
+
+// MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT QP_CR_INTRA
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_QP_CR_INTRA_ALIGNMENT (1)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_QP_CR_INTRA_TYPE uint8_t
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_QP_CR_INTRA_MASK (0xFC)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_QP_CR_INTRA_LSBMASK (0x3F)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_QP_CR_INTRA_OFFSET (0x101F)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_QP_CR_INTRA_SHIFT (2)
+
+// MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT QP_CB_INTRA
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_QP_CB_INTRA_ALIGNMENT (2)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_QP_CB_INTRA_TYPE uint16_t
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_QP_CB_INTRA_MASK (0x03F0)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_QP_CB_INTRA_LSBMASK (0x003F)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_QP_CB_INTRA_OFFSET (0x101E)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_QP_CB_INTRA_SHIFT (4)
+
+// MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT INTRA_PRED_2
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_INTRA_PRED_2_ALIGNMENT (1)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_INTRA_PRED_2_TYPE uint8_t
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_INTRA_PRED_2_MASK (0x0F)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_INTRA_PRED_2_LSBMASK (0x0F)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_INTRA_PRED_2_OFFSET (0x101E)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_INTRA_PRED_2_SHIFT (0)
+
+// MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT INTRA_PRED_0
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_INTRA_PRED_0_ALIGNMENT (1)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_INTRA_PRED_0_TYPE uint8_t
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_INTRA_PRED_0_MASK (0xF0)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_INTRA_PRED_0_LSBMASK (0x0F)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_INTRA_PRED_0_OFFSET (0x101D)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_INTRA_PRED_0_SHIFT (4)
+
+// MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT INTRA_PRED_1
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_INTRA_PRED_1_ALIGNMENT (1)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_INTRA_PRED_1_TYPE uint8_t
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_INTRA_PRED_1_MASK (0x0F)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_INTRA_PRED_1_LSBMASK (0x0F)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_INTRA_PRED_1_OFFSET (0x101D)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_INTRA_PRED_1_SHIFT (0)
+
+// MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT INTRA_PRED_3
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_INTRA_PRED_3_ALIGNMENT (1)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_INTRA_PRED_3_TYPE uint8_t
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_INTRA_PRED_3_MASK (0xF0)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_INTRA_PRED_3_LSBMASK (0x0F)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_INTRA_PRED_3_OFFSET (0x101C)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_INTRA_PRED_3_SHIFT (4)
+
+// MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT INTRA_4X4_OR_8X8_2
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_INTRA_4X4_OR_8X8_2_ALIGNMENT (1)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_INTRA_4X4_OR_8X8_2_TYPE uint8_t
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_INTRA_4X4_OR_8X8_2_MASK (0x08)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_INTRA_4X4_OR_8X8_2_LSBMASK (0x01)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_INTRA_4X4_OR_8X8_2_OFFSET (0x101C)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_INTRA_4X4_OR_8X8_2_SHIFT (3)
+
+// MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT INTRA_4X4_OR_8X8_0
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_INTRA_4X4_OR_8X8_0_ALIGNMENT (1)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_INTRA_4X4_OR_8X8_0_TYPE uint8_t
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_INTRA_4X4_OR_8X8_0_MASK (0x04)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_INTRA_4X4_OR_8X8_0_LSBMASK (0x01)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_INTRA_4X4_OR_8X8_0_OFFSET (0x101C)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_INTRA_4X4_OR_8X8_0_SHIFT (2)
+
+// MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT INTRA_4X4_OR_8X8_1
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_INTRA_4X4_OR_8X8_1_ALIGNMENT (1)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_INTRA_4X4_OR_8X8_1_TYPE uint8_t
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_INTRA_4X4_OR_8X8_1_MASK (0x02)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_INTRA_4X4_OR_8X8_1_LSBMASK (0x01)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_INTRA_4X4_OR_8X8_1_OFFSET (0x101C)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_INTRA_4X4_OR_8X8_1_SHIFT (1)
+
+// MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT INTRA_4X4_OR_8X8_3
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_INTRA_4X4_OR_8X8_3_ALIGNMENT (1)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_INTRA_4X4_OR_8X8_3_TYPE uint8_t
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_INTRA_4X4_OR_8X8_3_MASK (0x01)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_INTRA_4X4_OR_8X8_3_LSBMASK (0x01)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_INTRA_4X4_OR_8X8_3_OFFSET (0x101C)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_INTRA_4X4_OR_8X8_3_SHIFT (0)
+
+// MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT QP_CR
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_QP_CR_ALIGNMENT (1)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_QP_CR_TYPE uint8_t
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_QP_CR_MASK (0xFC)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_QP_CR_LSBMASK (0x3F)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_QP_CR_OFFSET (0x001F)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_QP_CR_SHIFT (2)
+
+// MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT QP_CB
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_QP_CB_ALIGNMENT (2)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_QP_CB_TYPE uint16_t
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_QP_CB_MASK (0x03F0)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_QP_CB_LSBMASK (0x003F)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_QP_CB_OFFSET (0x001E)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_QP_CB_SHIFT (4)
+
+// MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT RESERVED_H3
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_RESERVED_H3_ALIGNMENT (1)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_RESERVED_H3_TYPE uint8_t
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_RESERVED_H3_MASK (0x0F)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_RESERVED_H3_LSBMASK (0x0F)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_RESERVED_H3_OFFSET (0x001E)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_RESERVED_H3_SHIFT (0)
+
+// MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT COL_PIC_ZERO_FLAG
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_COL_PIC_ZERO_FLAG_ALIGNMENT (2)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_COL_PIC_ZERO_FLAG_TYPE uint16_t
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_COL_PIC_ZERO_FLAG_MASK (0xFFFF)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_COL_PIC_ZERO_FLAG_LSBMASK (0xFFFF)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_COL_PIC_ZERO_FLAG_OFFSET (0x001C)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_COL_PIC_ZERO_FLAG_SHIFT (0)
+
+// MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT MB_FIELD_FLAG
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_MB_FIELD_FLAG_ALIGNMENT (1)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_MB_FIELD_FLAG_TYPE uint8_t
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_MB_FIELD_FLAG_MASK (0x40)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_MB_FIELD_FLAG_LSBMASK (0x01)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_MB_FIELD_FLAG_OFFSET (0x001B)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_MB_FIELD_FLAG_SHIFT (6)
+
+// MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT MBTYPE
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_MBTYPE_ALIGNMENT (1)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_MBTYPE_TYPE uint8_t
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_MBTYPE_MASK (0x30)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_MBTYPE_LSBMASK (0x03)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_MBTYPE_OFFSET (0x001B)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_MBTYPE_SHIFT (4)
+
+// MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT REF_IDX_L0_2
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_REF_IDX_L0_2_ALIGNMENT (2)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_REF_IDX_L0_2_TYPE uint16_t
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_REF_IDX_L0_2_MASK (0x0F80)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_REF_IDX_L0_2_LSBMASK (0x001F)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_REF_IDX_L0_2_OFFSET (0x001A)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_REF_IDX_L0_2_SHIFT (7)
+
+// MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT REF_IDX_L1_2
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_REF_IDX_L1_2_ALIGNMENT (1)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_REF_IDX_L1_2_TYPE uint8_t
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_REF_IDX_L1_2_MASK (0x7C)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_REF_IDX_L1_2_LSBMASK (0x1F)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_REF_IDX_L1_2_OFFSET (0x001A)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_REF_IDX_L1_2_SHIFT (2)
+
+// MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT REF_IDX_L0_3
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_REF_IDX_L0_3_ALIGNMENT (4)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_REF_IDX_L0_3_TYPE uint32_t
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_REF_IDX_L0_3_MASK (0x0003E000)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_REF_IDX_L0_3_LSBMASK (0x0000001F)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_REF_IDX_L0_3_OFFSET (0x0018)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_REF_IDX_L0_3_SHIFT (13)
+
+// MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT REF_IDX_L1_3
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_REF_IDX_L1_3_ALIGNMENT (1)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_REF_IDX_L1_3_TYPE uint8_t
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_REF_IDX_L1_3_MASK (0x1F)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_REF_IDX_L1_3_LSBMASK (0x1F)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_REF_IDX_L1_3_OFFSET (0x0019)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_REF_IDX_L1_3_SHIFT (0)
+
+// MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT REF_IDX_L0_VALID
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_REF_IDX_L0_VALID_ALIGNMENT (1)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_REF_IDX_L0_VALID_TYPE uint8_t
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_REF_IDX_L0_VALID_MASK (0xF0)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_REF_IDX_L0_VALID_LSBMASK (0x0F)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_REF_IDX_L0_VALID_OFFSET (0x0018)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_REF_IDX_L0_VALID_SHIFT (4)
+
+// MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT REF_IDX_L1_VALID
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_REF_IDX_L1_VALID_ALIGNMENT (1)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_REF_IDX_L1_VALID_TYPE uint8_t
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_REF_IDX_L1_VALID_MASK (0x0F)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_REF_IDX_L1_VALID_LSBMASK (0x0F)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_REF_IDX_L1_VALID_OFFSET (0x0018)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_REF_IDX_L1_VALID_SHIFT (0)
+
+// MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT MB_ERROR_FLAG
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_MB_ERROR_FLAG_ALIGNMENT (1)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_MB_ERROR_FLAG_TYPE uint8_t
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_MB_ERROR_FLAG_MASK (0x80)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_MB_ERROR_FLAG_LSBMASK (0x01)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_MB_ERROR_FLAG_OFFSET (0x0017)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_MB_ERROR_FLAG_SHIFT (7)
+
+// MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT TRANSFORM_SIZE_8X8
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_TRANSFORM_SIZE_8X8_ALIGNMENT (1)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_TRANSFORM_SIZE_8X8_TYPE uint8_t
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_TRANSFORM_SIZE_8X8_MASK (0x40)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_TRANSFORM_SIZE_8X8_LSBMASK (0x01)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_TRANSFORM_SIZE_8X8_OFFSET (0x0017)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_TRANSFORM_SIZE_8X8_SHIFT (6)
+
+// MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT REF_IDX_L0_0
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_REF_IDX_L0_0_ALIGNMENT (1)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_REF_IDX_L0_0_TYPE uint8_t
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_REF_IDX_L0_0_MASK (0x3E)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_REF_IDX_L0_0_LSBMASK (0x1F)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_REF_IDX_L0_0_OFFSET (0x0017)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_REF_IDX_L0_0_SHIFT (1)
+
+// MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT REF_IDX_L1_0
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_REF_IDX_L1_0_ALIGNMENT (2)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_REF_IDX_L1_0_TYPE uint16_t
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_REF_IDX_L1_0_MASK (0x01F0)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_REF_IDX_L1_0_LSBMASK (0x001F)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_REF_IDX_L1_0_OFFSET (0x0016)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_REF_IDX_L1_0_SHIFT (4)
+
+// MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT REF_IDX_L0_1
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_REF_IDX_L0_1_ALIGNMENT (4)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_REF_IDX_L0_1_TYPE uint32_t
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_REF_IDX_L0_1_MASK (0x000F8000)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_REF_IDX_L0_1_LSBMASK (0x0000001F)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_REF_IDX_L0_1_OFFSET (0x0014)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_REF_IDX_L0_1_SHIFT (15)
+
+// MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT REF_IDX_L1_1
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_REF_IDX_L1_1_ALIGNMENT (1)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_REF_IDX_L1_1_TYPE uint8_t
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_REF_IDX_L1_1_MASK (0x7C)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_REF_IDX_L1_1_LSBMASK (0x1F)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_REF_IDX_L1_1_OFFSET (0x0015)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_REF_IDX_L1_1_SHIFT (2)
+
+// MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT QP
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_QP_ALIGNMENT (2)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_QP_TYPE uint16_t
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_QP_MASK (0x03F0)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_QP_LSBMASK (0x003F)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_QP_OFFSET (0x0014)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_QP_SHIFT (4)
+
+// MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT CBP
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_CBP_ALIGNMENT (1)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_CBP_TYPE uint8_t
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_CBP_MASK (0x0F)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_CBP_LSBMASK (0x0F)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_CBP_OFFSET (0x0014)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_CBP_SHIFT (0)
+
+// MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT MB_DECODED
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_MB_DECODED_ALIGNMENT (1)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_MB_DECODED_TYPE uint8_t
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_MB_DECODED_MASK (0x20)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_MB_DECODED_LSBMASK (0x01)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_MB_DECODED_OFFSET (0x0013)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_MB_DECODED_SHIFT (5)
+
+// MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT PICTURE_NO
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_PICTURE_NO_ALIGNMENT (1)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_PICTURE_NO_TYPE uint8_t
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_PICTURE_NO_MASK (0x1E)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_PICTURE_NO_LSBMASK (0x0F)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_PICTURE_NO_OFFSET (0x0013)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_PICTURE_NO_SHIFT (1)
+
+// MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT SLICE_NO
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_SLICE_NO_ALIGNMENT (4)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_SLICE_NO_TYPE uint32_t
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_SLICE_NO_MASK (0x01FFF000)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_SLICE_NO_LSBMASK (0x00001FFF)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_SLICE_NO_OFFSET (0x0010)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_SLICE_NO_SHIFT (12)
+
+// MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT ABOVE_MV_SIZE_2
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_ABOVE_MV_SIZE_2_ALIGNMENT (1)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_ABOVE_MV_SIZE_2_TYPE uint8_t
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_ABOVE_MV_SIZE_2_MASK (0x0E)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_ABOVE_MV_SIZE_2_LSBMASK (0x07)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_ABOVE_MV_SIZE_2_OFFSET (0x0011)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_ABOVE_MV_SIZE_2_SHIFT (1)
+
+// MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT ABOVE_MV_SIZE_0
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_ABOVE_MV_SIZE_0_ALIGNMENT (2)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_ABOVE_MV_SIZE_0_TYPE uint16_t
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_ABOVE_MV_SIZE_0_MASK (0x01C0)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_ABOVE_MV_SIZE_0_LSBMASK (0x0007)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_ABOVE_MV_SIZE_0_OFFSET (0x0010)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_ABOVE_MV_SIZE_0_SHIFT (6)
+
+// MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT ABOVE_MV_SIZE_1
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_ABOVE_MV_SIZE_1_ALIGNMENT (1)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_ABOVE_MV_SIZE_1_TYPE uint8_t
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_ABOVE_MV_SIZE_1_MASK (0x38)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_ABOVE_MV_SIZE_1_LSBMASK (0x07)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_ABOVE_MV_SIZE_1_OFFSET (0x0010)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_ABOVE_MV_SIZE_1_SHIFT (3)
+
+// MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT ABOVE_MV_SIZE_3
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_ABOVE_MV_SIZE_3_ALIGNMENT (1)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_ABOVE_MV_SIZE_3_TYPE uint8_t
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_ABOVE_MV_SIZE_3_MASK (0x07)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_ABOVE_MV_SIZE_3_LSBMASK (0x07)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_ABOVE_MV_SIZE_3_OFFSET (0x0010)
+#define MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_ABOVE_MV_SIZE_3_SHIFT (0)
+
+#define MSVDX_VEC_CR_VEC_CONTROL_ENTDEC_ENABLE_BE_MASK (0x00000100)
+#define MSVDX_VEC_CR_VEC_CONTROL_ENTDEC_ENABLE_BE_SHIFT (8)
diff --git a/src/hwdefs/img_defs.h b/src/hwdefs/img_defs.h
new file mode 100644
index 0000000..9238808
--- /dev/null
+++ b/src/hwdefs/img_defs.h
@@ -0,0 +1,219 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+
+/*!****************************************************************************
+@File img_defs.h
+
+@Title Common header containing type definitions for portability
+
+@Author Imagination Technologies
+
+@date August 2001
+
+@Platform cross platform / environment
+
+@Description Contains variable and structure definitions. Any platform
+ specific types should be defined in this file.
+
+@DoxygenVer
+
+******************************************************************************/
+
+/******************************************************************************
+Modifications :-
+
+$Log: img_defs.h $
+*****************************************************************************/
+#if !defined (__IMG_DEFS_H__)
+#define __IMG_DEFS_H__
+
+#include "img_types.h"
+
+/*!
+ *****************************************************************************
+ * These types should be changed on a per-platform basis to retain
+ * the indicated number of bits per type. e.g.: A DP_INT_16 should be
+ * always reflect a signed 16 bit value.
+ *****************************************************************************/
+
+typedef enum img_tag_TriStateSwitch {
+ IMG_ON = 0x00,
+ IMG_OFF,
+ IMG_IGNORE
+
+} img_TriStateSwitch, * img_pTriStateSwitch;
+
+#define IMG_SUCCESS 0
+#define IMG_FAILED -1
+
+#define IMG_NULL 0
+#define IMG_NO_REG 1
+
+#if defined (NO_INLINE_FUNCS)
+#define INLINE
+#define FORCE_INLINE
+#else
+#if defined(_UITRON_)
+#define INLINE
+#define FORCE_INLINE static
+#define INLINE_IS_PRAGMA
+#else
+#if defined (__cplusplus)
+#define INLINE inline
+#define FORCE_INLINE inline
+#else
+#define INLINE __inline
+#if defined(UNDER_CE) || defined(UNDER_XP) || defined(UNDER_VISTA)
+#define FORCE_INLINE __forceinline
+#else
+#define FORCE_INLINE static __inline
+#endif
+#endif
+#endif
+#endif
+
+/* Use this in any file, or use attributes under GCC - see below */
+#ifndef PVR_UNREFERENCED_PARAMETER
+#define PVR_UNREFERENCED_PARAMETER(param) (param) = (param)
+#endif
+
+/* The best way to supress unused parameter warnings using GCC is to use a
+ * variable attribute. Place the unref__ between the type and name of an
+ * unused parameter in a function parameter list, eg `int unref__ var'. This
+ * should only be used in GCC build environments, for example, in files that
+ * compile only on Linux. Other files should use UNREFERENCED_PARAMETER */
+#ifdef __GNUC__
+#define unref__ __attribute__ ((unused))
+#else
+#define unref__
+#endif
+
+#if defined(UNDER_CE)
+
+/* This may need to be _stdcall */
+#define IMG_CALLCONV
+#define IMG_INTERNAL
+#define IMG_RESTRICT
+
+#define IMG_EXPORT
+#define IMG_IMPORT IMG_EXPORT
+
+#ifdef DEBUG
+#define IMG_ABORT() TerminateProcess(GetCurrentProcess(), 0)
+#else
+#define IMG_ABORT() for(;;);
+#endif
+#else
+#if defined(_WIN32)
+
+#define IMG_CALLCONV __stdcall
+#define IMG_INTERNAL
+#define IMG_EXPORT __declspec(dllexport)
+#define IMG_RESTRICT __restrict
+
+
+/* IMG_IMPORT is defined as IMG_EXPORT so that headers and implementations match.
+ * Some compilers require the header to be declared IMPORT, while the implementation is declared EXPORT
+ */
+#define IMG_IMPORT IMG_EXPORT
+#if defined( UNDER_VISTA ) && !defined(USE_CODE)
+#ifndef _INC_STDLIB
+void __cdecl abort(void);
+#endif
+__forceinline void __declspec(noreturn) img_abort(void)
+{
+ for (;;) abort();
+}
+#define IMG_ABORT() img_abort()
+#endif
+#else
+#if defined (__SYMBIAN32__)
+
+#if defined (__GNUC__)
+#define IMG_IMPORT
+#define IMG_EXPORT __declspec(dllexport)
+#define IMG_RESTRICT __restrict__
+#define NONSHARABLE_CLASS(x) class x
+#else
+#if defined (__CC_ARM)
+#define IMG_IMPORT __declspec(dllimport)
+#define IMG_EXPORT __declspec(dllexport)
+#pragma warning("Please make sure that you've enabled the --restrict mode t")
+/* The ARMCC compiler currently requires that you've enabled the --restrict mode
+ to permit the use of this keyword */
+# define IMG_RESTRICT /*restrict*/
+#endif
+#endif
+
+#define IMG_CALLCONV
+#define IMG_INTERNAL
+#define IMG_EXTERNAL
+
+#else
+#if defined(__linux__)
+
+#define IMG_CALLCONV
+#define IMG_INTERNAL __attribute__ ((visibility ("hidden")))
+#define IMG_EXPORT
+#define IMG_IMPORT
+#define IMG_RESTRICT __restrict__
+
+#else
+#if defined(_UITRON_)
+#define IMG_CALLCONV
+#define IMG_INTERNAL
+#define IMG_EXPORT
+#define IMG_RESTRICT
+
+#define __cdecl
+
+/* IMG_IMPORT is defined as IMG_EXPORT so that headers and implementations match.
+* Some compilers require the header to be declared IMPORT, while the implementation is declared EXPORT
+*/
+#define IMG_IMPORT IMG_EXPORT
+#ifndef USE_CODE
+void SysAbort(char const *pMessage);
+#define IMG_ABORT() SysAbort("ImgAbort")
+#endif
+#else
+#error("define an OS")
+#endif
+#endif
+#endif
+#endif
+#endif
+
+// Use default definition if not overridden
+#ifndef IMG_ABORT
+#define IMG_ABORT() abort()
+#endif
+
+
+#endif /* #if !defined (__IMG_DEFS_H__) */
+/*****************************************************************************
+ End of file (IMG_DEFS.H)
+*****************************************************************************/
+
diff --git a/src/hwdefs/img_types.h b/src/hwdefs/img_types.h
new file mode 100644
index 0000000..9153c2a
--- /dev/null
+++ b/src/hwdefs/img_types.h
@@ -0,0 +1,195 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+
+/******************************************************************************
+* Name : img_types.h
+* Title : Global types for use by IMG APIs
+* Author(s) : Imagination Technologies
+* Created : 1st August 2003
+*
+* Description : Defines type aliases for use by IMG APIs
+*
+* Platform : Generic
+*
+* Modifications:-
+* $Log: img_types.h $
+******************************************************************************/
+
+#ifndef __IMG_TYPES_H__
+#define __IMG_TYPES_H__
+
+#include "img_defs.h"
+
+typedef unsigned int IMG_UINT, *IMG_PUINT;
+typedef signed int IMG_INT, *IMG_PINT;
+
+typedef unsigned char IMG_UINT8, *IMG_PUINT8;
+typedef unsigned char IMG_BYTE, *IMG_PBYTE;
+typedef signed char IMG_INT8, *IMG_PINT8;
+typedef char IMG_CHAR, *IMG_PCHAR;
+
+typedef unsigned short IMG_UINT16, *IMG_PUINT16;
+typedef signed short IMG_INT16, *IMG_PINT16;
+typedef unsigned long IMG_UINT32, *IMG_PUINT32;
+typedef signed long IMG_INT32, *IMG_PINT32;
+typedef unsigned long long IMG_UINT64, *IMG_PUINT64;
+typedef signed long long IMG_INT64, *IMG_PINT64;
+
+#if defined(_WIN32)
+
+typedef unsigned __int64 IMG_UINT64, *IMG_PUINT64;
+typedef __int64 IMG_INT64, *IMG_PINT64;
+
+#else
+#if defined(LINUX) || defined (__SYMBIAN32__) || defined(_UITRON_)
+
+#else
+
+#error("define an OS")
+
+#endif
+#endif
+
+#if !(defined(LINUX) && defined (__KERNEL__))
+/* Linux kernel mode does not use floating point */
+typedef float IMG_FLOAT, *IMG_PFLOAT;
+typedef double IMG_DOUBLE, *IMG_PDOUBLE;
+#endif
+
+typedef enum tag_img_bool {
+ IMG_FALSE = 0,
+ IMG_TRUE = 1,
+ IMG_FORCE_ALIGN = 0x7FFFFFFF
+} IMG_BOOL, *IMG_PBOOL;
+
+typedef void IMG_VOID, *IMG_PVOID;
+
+typedef IMG_INT32 IMG_RESULT;
+
+typedef IMG_UINT32 IMG_UINTPTR_T;
+
+typedef IMG_PVOID IMG_HANDLE;
+
+typedef void** IMG_HVOID, * IMG_PHVOID;
+
+typedef IMG_UINT32 IMG_SIZE_T;
+
+#define IMG_NULL 0
+
+
+/*
+ * Address types.
+ * All types used to refer to a block of memory are wrapped in structures
+ * to enforce some type degree of type safety, i.e. a IMG_DEV_VIRTADDR cannot
+ * be assigned to a variable of type IMG_DEV_PHYSADDR because they are not the
+ * same thing.
+ *
+ * There is an assumption that the system contains at most one non-cpu mmu,
+ * and a memory block is only mapped by the MMU once.
+ *
+ * Different devices could have offset views of the physical address space.
+ *
+ */
+
+
+/*
+ *
+ * +------------+ +------------+ +------------+ +------------+
+ * | CPU | | DEV | | DEV | | DEV |
+ * +------------+ +------------+ +------------+ +------------+
+ * | | | |
+ * | PVOID |IMG_DEV_VIRTADDR |IMG_DEV_VIRTADDR |
+ * | \-------------------/ |
+ * | | |
+ * +------------+ +------------+ |
+ * | MMU | | MMU | |
+ * +------------+ +------------+ |
+ * | | |
+ * | | |
+ * | | |
+ * +--------+ +---------+ +--------+
+ * | Offset | | (Offset)| | Offset |
+ * +--------+ +---------+ +--------+
+ * | | IMG_DEV_PHYADDR |
+ * | | |
+ * | | IMG_DEV_PHYADDR |
+ * +---------------------------------------------------------------------+
+ * | System Address bus |
+ * +---------------------------------------------------------------------+
+ *
+ */
+
+typedef IMG_PVOID IMG_CPU_VIRTADDR;
+
+/* cpu physical address */
+typedef struct {
+ IMG_UINT32 uiAddr;
+} IMG_CPU_PHYADDR;
+
+/* device virtual address */
+typedef struct {
+ IMG_UINT32 uiAddr;
+} IMG_DEV_VIRTADDR;
+
+/* device physical address */
+typedef struct {
+ IMG_UINT32 uiAddr;
+} IMG_DEV_PHYADDR;
+
+/* system physical address */
+typedef struct {
+ IMG_UINT32 uiAddr;
+} IMG_SYS_PHYADDR;
+
+/*
+ system physical structure.
+ specifies contiguous and non-contiguous system physical addresses
+*/
+typedef struct _SYSTEM_ADDR_ {
+ /* if zero this is contiguous */
+ IMG_UINT32 ui32PageCount;
+ union {
+ /*
+ contiguous address:
+ basic system address
+ */
+ IMG_SYS_PHYADDR sContig;
+
+ /*
+ non-contiguous address:
+ multiple system page addresses representing system pages
+ of which a single allocation is composed
+ Note: if non-contiguous allocations don't always start at a
+ page boundary then a page offset word is also required.
+ */
+ IMG_SYS_PHYADDR asNonContig[1];
+ } u;
+} SYSTEM_ADDR;
+
+#endif /* __IMG_TYPES_H__ */
+/******************************************************************************
+ End of file (img_types.h)
+******************************************************************************/
diff --git a/src/hwdefs/lldma_defs.h b/src/hwdefs/lldma_defs.h
new file mode 100644
index 0000000..960d5d8
--- /dev/null
+++ b/src/hwdefs/lldma_defs.h
@@ -0,0 +1,50 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+
+#ifndef _LLDMA_DEFS_H_
+#define _LLDMA_DEFS_H_
+
+typedef enum {
+ LLDMA_TYPE_VLC_TABLE ,
+ LLDMA_TYPE_BITSTREAM ,
+ LLDMA_TYPE_RESIDUAL ,
+ LLDMA_TYPE_RENDER_BUFF_MC,
+ LLDMA_TYPE_RENDER_BUFF_VLD,
+
+ LLDMA_TYPE_MPEG4_FESTATE_SAVE,
+ LLDMA_TYPE_MPEG4_FESTATE_RESTORE,
+
+ LLDMA_TYPE_H264_PRELOAD_SAVE,
+ LLDMA_TYPE_H264_PRELOAD_RESTORE,
+
+ LLDMA_TYPE_VC1_PRELOAD_SAVE,
+ LLDMA_TYPE_VC1_PRELOAD_RESTORE,
+
+ LLDMA_TYPE_MEM_SET,
+
+} LLDMA_TYPE;
+
+#endif /* _LLDMA_DEFS_H_ */
diff --git a/src/hwdefs/mem_io.h b/src/hwdefs/mem_io.h
new file mode 100644
index 0000000..41583d2
--- /dev/null
+++ b/src/hwdefs/mem_io.h
@@ -0,0 +1,421 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+
+/*!
+******************************************************************************
+ @file : mem_io.h
+
+ @brief Memory structure access macros.
+
+ @date 12/09/05
+
+ <b>Description:</b>\n
+
+ This file contains a set of memory access macros for accessing packed memory
+ structures.
+
+ <b>Platform:</b>\n
+ Platform Independent
+
+ @Version 1.0
+
+******************************************************************************/
+
+/*
+******************************************************************************
+ Modifications :-
+
+ $Log: mem_io.h $
+
+ --- Revision Logs Removed ---
+
+ --- Revision Logs Removed ---
+
+ --- Revision Logs Removed ---
+
+ --- Revision Logs Removed ---
+
+ --- Revision Logs Removed ---
+
+ --- Revision Logs Removed ---
+
+ --- Revision Logs Removed ---
+
+ --- Revision Logs Removed ---
+
+ --- Revision Logs Removed ---
+
+ --- Revision Logs Removed ---
+
+
+*****************************************************************************/
+
+#if !defined (__MEM_IO_H__)
+#define __MEM_IO_H__
+
+#if (__cplusplus)
+extern "C" {
+#endif
+
+#include "img_types.h"
+
+#ifdef DOXYGEN_WILL_SEE_THIS
+ /*!
+ ******************************************************************************
+
+ @Function MEMIO_READ_FIELD
+
+ @Description
+
+ This macro is used to extract a field from a packed memory based structure.
+
+ @Input vpMem: A pointer to the memory structure.
+
+ @Input field: The name of the field to be extracted.
+
+ @Return IMG_UINT32: The value of the field - right aligned.
+
+ ******************************************************************************/
+ IMG_UINT32 MEMIO_READ_FIELD(IMG_VOID * vpMem, field);
+
+ /*!
+ ******************************************************************************
+
+ @Function MEMIO_READ_TABLE_FIELD
+
+ @Description
+
+ This macro is used to extract the value of a field in a table in a packed
+ memory based structure.
+
+ @Input vpMem: A pointer to the memory structure.
+
+ @Input field: The name of the field to be extracted.
+
+ @Input ui32TabIndex: The table index of the field to be extracted.
+
+ @Return IMG_UINT32: The value of the field - right aligned.
+
+ ******************************************************************************/
+ IMG_UINT32 MEMIO_READ_TABLE_FIELD(IMG_VOID * vpMem, field, IMG_UINT32 ui32TabIndex);
+
+ /*!
+ ******************************************************************************
+
+ @Function MEMIO_READ_REPEATED_FIELD
+
+ @Description
+
+ This macro is used to extract the value of a repeated field in a packed
+ memory based structure.
+
+ @Input vpMem: A pointer to the memory structure.
+
+ @Input field: The name of the field to be extracted.
+
+ @Input ui32RepIndex: The repeat index of the field to be extracted.
+
+ @Return IMG_UINT32: The value of the field - right aligned.
+
+ ******************************************************************************/
+ IMG_UINT32 MEMIO_READ_REPEATED_FIELD(IMG_VOID * vpMem, field, IMG_UINT32 ui32RepIndex);
+
+ /*!
+ ******************************************************************************
+
+ @Function MEMIO_READ_TABLE_REPEATED_FIELD
+
+ @Description
+
+ This macro is used to extract the value of a repeated field in a table
+ in a packed memory based structure.
+
+ @Input vpMem: A pointer to the memory structure.
+
+ @Input field: The name of the field to be extracted.
+
+ @Input ui32TabIndex: The table index of the field to be extracted.
+
+ @Input ui32RepIndex: The repeat index of the field to be extracted.
+
+ @Return IMG_UINT32: The value of the field - right aligned.
+
+ ******************************************************************************/
+ IMG_UINT32 MEMIO_READ_TABLE_REPEATED_FIELD(IMG_VOID * vpMem, field, IMG_UINT32 ui32TabIndex, IMG_UINT32 ui32RepIndex);
+
+ /*!
+ ******************************************************************************
+
+ @Function MEMIO_WRITE_FIELD
+
+ @Description
+
+ This macro is used to update the value of a field in a packed memory based
+ structure.
+
+ @Input vpMem: A pointer to the memory structure.
+
+ @Input field: The name of the field to be updated.
+
+ @Input ui32Value: The value to be writtem to the field - right aligned.
+
+ @Return None.
+
+ ******************************************************************************/
+ IMG_VOID MEMIO_WRITE_FIELD(IMG_VOID * vpMem, field, IMG_UINT32 ui32Value);
+
+ /*!
+ ******************************************************************************
+
+ @Function MEMIO_WRITE_TABLE_FIELD
+
+ @Description
+
+ This macro is used to update the field in a table in a packed memory
+ based structure.
+
+ @Input vpMem: A pointer to the memory structure.
+
+ @Input field: The name of the field to be updated.
+
+ @Input ui32TabIndex: The table index of the field to be updated.
+
+ @Input ui32Value: The value to be writtem to the field - right aligned.
+
+ @Return None.
+
+ ******************************************************************************/
+ IMG_VOID MEMIO_WRITE_TABLE_FIELD(IMG_VOID * vpMem, field, IMG_UINT32 ui32TabIndex, IMG_UINT32 ui32Value);
+
+ /*!
+ ******************************************************************************
+
+ @Function MEMIO_WRITE_REPEATED_FIELD
+
+ @Description
+
+ This macro is used to update a repeated field in a packed memory
+ based structure.
+
+ @Input vpMem: A pointer to the memory structure.
+
+ @Input field: The name of the field to be updated.
+
+ @Input ui32RepIndex: The repeat index of the field to be updated.
+
+ @Input ui32Value: The value to be writtem to the field - right aligned.
+
+ @Return None.
+
+ ******************************************************************************/
+ IMG_VOID MEMIO_WRITE_REPEATED_FIELD(IMG_VOID * vpMem, field, IMG_UINT32 ui32RepIndex, IMG_UINT32 ui32Value);
+
+
+ /*!
+ ******************************************************************************
+
+ @Function MEMIO_WRITE_TABLE_REPEATED_FIELD
+
+ @Description
+
+ This macro is used to update a repeated field in a table in a packed memory
+ based structure.
+
+ @Input vpMem: A pointer to the memory structure.
+
+ @Input field: The name of the field to be updated.
+
+ @Input ui32TabIndex: The table index of the field to be updated.
+
+ @Input ui32RepIndex: The repeat index of the field to be updated.
+
+ @Input ui32Value: The value to be writtem to the field - right aligned.
+
+ @Return None.
+
+ ******************************************************************************/
+ IMG_VOID MEMIO_WRITE_TABLE_REPEATED_FIELD(IMG_VOID * vpMem, field, IMG_UINT32 ui32TabIndex, IMG_UINT32 ui32RepIndex, IMG_UINT32 ui32Value);
+
+#else
+
+#if WIN32
+#define MEMIO_CHECK_ALIGNMENT(vpMem)
+
+#else
+#define MEMIO_CHECK_ALIGNMENT(vpMem) \
+ IMG_ASSERT(((IMG_UINT32)vpMem & 0x3) == 0)
+#endif
+
+ /*!
+ ******************************************************************************
+
+ @Function MEMIO_READ_FIELD
+
+ ******************************************************************************/
+
+
+#if defined __RELEASE_DEBUG__
+
+#define MEMIO_READ_FIELD(vpMem, field) \
+ ( MEMIO_CHECK_ALIGNMENT(vpMem), \
+ ((IMG_UINT32)(((*((field##_TYPE *)(((IMG_UINT32)vpMem) + field##_OFFSET))) & field##_MASK) >> field##_SHIFT)) )
+
+#else
+
+#if 1
+#define MEMIO_READ_FIELD(vpMem, field) \
+ ((IMG_UINT32)(((*((field##_TYPE *)(((IMG_UINT32)vpMem) + field##_OFFSET))) & field##_MASK) >> field##_SHIFT))
+
+#else
+
+#define MEMIO_READ_FIELD(vpMem, field) \
+ ((IMG_UINT32)(((*((field##_TYPE *)(((IMG_UINT32)vpMem) + field##_OFFSET))) >> field##_SHIFT) & field##_LSBMASK) )
+
+#endif
+
+#endif
+
+
+
+ /*!
+ ******************************************************************************
+
+ @Function MEMIO_READ_TABLE_FIELD
+
+ ******************************************************************************/
+#if defined __RELEASE_DEBUG__
+
+#define MEMIO_READ_TABLE_FIELD(vpMem, field, ui32TabIndex) \
+ ( MEMIO_CHECK_ALIGNMENT(vpMem), IMG_ASSERT((ui32TabIndex < field##_NO_ENTRIES) || (field##_NO_ENTRIES == 0)), \
+ ((IMG_UINT32)(((*((field##_TYPE *)(((IMG_UINT32)vpMem) + field##_OFFSET + (field##_STRIDE * ui32TabIndex)))) & field##_MASK) >> field##_SHIFT)) ) \
+
+#else
+
+#define MEMIO_READ_TABLE_FIELD(vpMem, field, ui32TabIndex) \
+ ((IMG_UINT32)(((*((field##_TYPE *)(((IMG_UINT32)vpMem) + field##_OFFSET + (field##_STRIDE * ui32TabIndex)))) & field##_MASK) >> field##_SHIFT)) \
+
+#endif
+
+
+ /*!
+ ******************************************************************************
+
+ @Function MEMIO_READ_REPEATED_FIELD
+
+ ******************************************************************************/
+#if defined __RELEASE_DEBUG__
+
+#define MEMIO_READ_REPEATED_FIELD(vpMem, field, ui32RepIndex) \
+ ( MEMIO_CHECK_ALIGNMENT(vpMem), IMG_ASSERT(ui32RepIndex < field##_NO_REPS), \
+ ((IMG_UINT32)(((*((field##_TYPE *)(((IMG_UINT32)vpMem) + field##_OFFSET))) & (field##_MASK >> (ui32RepIndex * field##_SIZE))) >> (field##_SHIFT - (ui32RepIndex * field##_SIZE)))) ) \
+
+#else
+
+#define MEMIO_READ_REPEATED_FIELD(vpMem, field, ui32RepIndex) \
+ ( (IMG_UINT32)(((*((field##_TYPE *)(((IMG_UINT32)vpMem) + field##_OFFSET))) & (field##_MASK >> (ui32RepIndex * field##_SIZE))) >> (field##_SHIFT - (ui32RepIndex * field##_SIZE))) ) \
+
+#endif
+ /*!
+ ******************************************************************************
+
+ @Function MEMIO_READ_TABLE_REPEATED_FIELD
+
+ ******************************************************************************/
+#if defined __RELEASE_DEBUG__
+
+#define MEMIO_READ_TABLE_REPEATED_FIELD(vpMem, field, ui32TabIndex, ui32RepIndex) \
+ ( MEMIO_CHECK_ALIGNMENT(vpMem), IMG_ASSERT((ui32TabIndex < field##_NO_ENTRIES) || (field##_NO_ENTRIES == 0)), IMG_ASSERT(ui32RepIndex < field##_NO_REPS), \
+ ((IMG_UINT32)(((*((field##_TYPE *)(((IMG_UINT32)vpMem) + field##_OFFSET + (field##_STRIDE * ui32TabIndex)))) & (field##_MASK >> (ui32RepIndex * field##_SIZE))) >> (field##_SHIFT - (ui32RepIndex * field##_SIZE)))) ) \
+
+#else
+
+#define MEMIO_READ_TABLE_REPEATED_FIELD(vpMem, field, ui32TabIndex, ui32RepIndex) \
+ ((IMG_UINT32)(((*((field##_TYPE *)(((IMG_UINT32)vpMem) + field##_OFFSET + (field##_STRIDE * ui32TabIndex)))) & (field##_MASK >> (ui32RepIndex * field##_SIZE))) >> (field##_SHIFT - (ui32RepIndex * field##_SIZE)))) \
+
+#endif
+
+ /*!
+ ******************************************************************************
+
+ @Function MEMIO_WRITE_FIELD
+
+ ******************************************************************************/
+#define MEMIO_WRITE_FIELD(vpMem, field, ui32Value) \
+ MEMIO_CHECK_ALIGNMENT(vpMem); \
+ (*((field##_TYPE *)(((IMG_UINT32)vpMem) + field##_OFFSET))) = \
+ ((*((field##_TYPE *)(((IMG_UINT32)vpMem) + field##_OFFSET))) & (field##_TYPE)~field##_MASK) | \
+ (field##_TYPE)(( (IMG_UINT32) (ui32Value) << field##_SHIFT) & field##_MASK);
+
+#define MEMIO_WRITE_FIELD_LITE(vpMem, field, ui32Value) \
+ MEMIO_CHECK_ALIGNMENT(vpMem); \
+ (*((field##_TYPE *)(((IMG_UINT32)vpMem) + field##_OFFSET))) = \
+ ((*((field##_TYPE *)(((IMG_UINT32)vpMem) + field##_OFFSET))) | \
+ (field##_TYPE) (( (IMG_UINT32) (ui32Value) << field##_SHIFT)) );
+
+ /*!
+ ******************************************************************************
+
+ @Function MEMIO_WRITE_TABLE_FIELD
+ ******************************************************************************/
+#define MEMIO_WRITE_TABLE_FIELD(vpMem, field, ui32TabIndex, ui32Value) \
+ MEMIO_CHECK_ALIGNMENT(vpMem); IMG_ASSERT(((ui32TabIndex) < field##_NO_ENTRIES) || (field##_NO_ENTRIES == 0)); \
+ (*((field##_TYPE *)(((IMG_UINT32)vpMem) + field##_OFFSET + (field##_STRIDE * (ui32TabIndex))))) = \
+ ((*((field##_TYPE *)(((IMG_UINT32)vpMem) + field##_OFFSET + (field##_STRIDE * (ui32TabIndex))))) & (field##_TYPE)~field##_MASK) | \
+ (field##_TYPE)(( (IMG_UINT32) (ui32Value) << field##_SHIFT) & field##_MASK);
+
+ /*!
+ ******************************************************************************
+
+ @Function MEMIO_WRITE_REPEATED_FIELD
+
+ ******************************************************************************/
+#define MEMIO_WRITE_REPEATED_FIELD(vpMem, field, ui32RepIndex, ui32Value) \
+ MEMIO_CHECK_ALIGNMENT(vpMem); IMG_ASSERT((ui32RepIndex) < field##_NO_REPS); \
+ (*((field##_TYPE *)(((IMG_UINT32)vpMem) + field##_OFFSET))) = \
+ ((*((field##_TYPE *)(((IMG_UINT32)vpMem) + field##_OFFSET))) & (field##_TYPE)~(field##_MASK >> ((ui32RepIndex) * field##_SIZE)) | \
+ (field##_TYPE)(( (IMG_UINT32) (ui32Value) << (field##_SHIFT - ((ui32RepIndex) * field##_SIZE))) & (field##_MASK >> ((ui32RepIndex) * field##_SIZE))));
+
+ /*!
+ ******************************************************************************
+
+ @Function MEMIO_WRITE_TABLE_REPEATED_FIELD
+
+ ******************************************************************************/
+#define MEMIO_WRITE_TABLE_REPEATED_FIELD(vpMem, field, ui32TabIndex, ui32RepIndex, ui32Value) \
+ MEMIO_CHECK_ALIGNMENT(vpMem); IMG_ASSERT(((ui32TabIndex) < field##_NO_ENTRIES) || (field##_NO_ENTRIES == 0)); IMG_ASSERT((ui32RepIndex) < field##_NO_REPS); \
+ (*((field##_TYPE *)(((IMG_UINT32)vpMem) + field##_OFFSET + (field##_STRIDE * (ui32TabIndex))))) = \
+ ((*((field##_TYPE *)(((IMG_UINT32)vpMem) + field##_OFFSET + (field##_STRIDE * (ui32TabIndex))))) & (field##_TYPE)~(field##_MASK >> ((ui32RepIndex) * field##_SIZE))) | \
+ (field##_TYPE)(( (IMG_UINT32) (ui32Value) << (field##_SHIFT - ((ui32RepIndex) * field##_SIZE))) & (field##_MASK >> ((ui32RepIndex) * field##_SIZE)));
+
+#endif
+
+
+#if (__cplusplus)
+}
+#endif
+
+#endif
+
diff --git a/src/hwdefs/msvdx_cmds_io2.h b/src/hwdefs/msvdx_cmds_io2.h
new file mode 100644
index 0000000..e24cfc7
--- /dev/null
+++ b/src/hwdefs/msvdx_cmds_io2.h
@@ -0,0 +1,1269 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+
+/*!
+******************************************************************************
+@file : /work/sim/msvdx/register_includes/msvdx_cmds_io2.h
+
+@brief
+
+@Author <Autogenerated>
+
+<b>Description:</b>\n
+ This file contains the MSVDX_CMDS_IO2_H Defintions.
+
+<b>Platform:</b>\n
+ ?
+
+@Version
+ 1.0
+
+******************************************************************************/
+
+#if !defined (__MSVDX_CMDS_IO2_H__)
+#define __MSVDX_CMDS_IO2_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+#define MSVDX_CMDS_REFERENCE_PICTURE_BASE_ADDRESSES_OFFSET (0x0100)
+#define MSVDX_CMDS_REFERENCE_PICTURE_BASE_ADDRESSES_STRIDE (4)
+#define MSVDX_CMDS_REFERENCE_PICTURE_BASE_ADDRESSES_NO_ENTRIES (32)
+
+// MSVDX_CMDS REFERENCE_PICTURE_BASE_ADDRESSES REF_BASE_ADDR
+#define MSVDX_CMDS_REFERENCE_PICTURE_BASE_ADDRESSES_REF_BASE_ADDR_MASK (0xFFFFF000)
+#define MSVDX_CMDS_REFERENCE_PICTURE_BASE_ADDRESSES_REF_BASE_ADDR_LSBMASK (0x000FFFFF)
+#define MSVDX_CMDS_REFERENCE_PICTURE_BASE_ADDRESSES_REF_BASE_ADDR_SHIFT (12)
+
+#define MSVDX_CMDS_H264_WEIGHTED_FACTORS_A_OFFSET (0x0200)
+#define MSVDX_CMDS_H264_WEIGHTED_FACTORS_A_STRIDE (4)
+#define MSVDX_CMDS_H264_WEIGHTED_FACTORS_A_NO_ENTRIES (32)
+
+// MSVDX_CMDS H264_WEIGHTED_FACTORS_A CR_WEIGHT_A
+#define MSVDX_CMDS_H264_WEIGHTED_FACTORS_A_CR_WEIGHT_A_MASK (0x07FC0000)
+#define MSVDX_CMDS_H264_WEIGHTED_FACTORS_A_CR_WEIGHT_A_LSBMASK (0x000001FF)
+#define MSVDX_CMDS_H264_WEIGHTED_FACTORS_A_CR_WEIGHT_A_SHIFT (18)
+
+// MSVDX_CMDS H264_WEIGHTED_FACTORS_A CB_WEIGHT_A
+#define MSVDX_CMDS_H264_WEIGHTED_FACTORS_A_CB_WEIGHT_A_MASK (0x0003FE00)
+#define MSVDX_CMDS_H264_WEIGHTED_FACTORS_A_CB_WEIGHT_A_LSBMASK (0x000001FF)
+#define MSVDX_CMDS_H264_WEIGHTED_FACTORS_A_CB_WEIGHT_A_SHIFT (9)
+
+// MSVDX_CMDS H264_WEIGHTED_FACTORS_A Y_WEIGHT_A
+#define MSVDX_CMDS_H264_WEIGHTED_FACTORS_A_Y_WEIGHT_A_MASK (0x000001FF)
+#define MSVDX_CMDS_H264_WEIGHTED_FACTORS_A_Y_WEIGHT_A_LSBMASK (0x000001FF)
+#define MSVDX_CMDS_H264_WEIGHTED_FACTORS_A_Y_WEIGHT_A_SHIFT (0)
+
+#define MSVDX_CMDS_H264_WEIGHTED_OFFSET_A_OFFSET (0x0280)
+#define MSVDX_CMDS_H264_WEIGHTED_OFFSET_A_STRIDE (4)
+#define MSVDX_CMDS_H264_WEIGHTED_OFFSET_A_NO_ENTRIES (32)
+
+// MSVDX_CMDS H264_WEIGHTED_OFFSET_A CR_OFFSET_A
+#define MSVDX_CMDS_H264_WEIGHTED_OFFSET_A_CR_OFFSET_A_MASK (0x00FF0000)
+#define MSVDX_CMDS_H264_WEIGHTED_OFFSET_A_CR_OFFSET_A_LSBMASK (0x000000FF)
+#define MSVDX_CMDS_H264_WEIGHTED_OFFSET_A_CR_OFFSET_A_SHIFT (16)
+
+// MSVDX_CMDS H264_WEIGHTED_OFFSET_A CB_OFFSET_A
+#define MSVDX_CMDS_H264_WEIGHTED_OFFSET_A_CB_OFFSET_A_MASK (0x0000FF00)
+#define MSVDX_CMDS_H264_WEIGHTED_OFFSET_A_CB_OFFSET_A_LSBMASK (0x000000FF)
+#define MSVDX_CMDS_H264_WEIGHTED_OFFSET_A_CB_OFFSET_A_SHIFT (8)
+
+// MSVDX_CMDS H264_WEIGHTED_OFFSET_A Y_OFFSET_A
+#define MSVDX_CMDS_H264_WEIGHTED_OFFSET_A_Y_OFFSET_A_MASK (0x000000FF)
+#define MSVDX_CMDS_H264_WEIGHTED_OFFSET_A_Y_OFFSET_A_LSBMASK (0x000000FF)
+#define MSVDX_CMDS_H264_WEIGHTED_OFFSET_A_Y_OFFSET_A_SHIFT (0)
+
+#define MSVDX_CMDS_H264_WEIGHTED_FACTORS_B_OFFSET (0x0300)
+#define MSVDX_CMDS_H264_WEIGHTED_FACTORS_B_STRIDE (4)
+#define MSVDX_CMDS_H264_WEIGHTED_FACTORS_B_NO_ENTRIES (32)
+
+// MSVDX_CMDS H264_WEIGHTED_FACTORS_B CR_WEIGHT_B
+#define MSVDX_CMDS_H264_WEIGHTED_FACTORS_B_CR_WEIGHT_B_MASK (0x07FC0000)
+#define MSVDX_CMDS_H264_WEIGHTED_FACTORS_B_CR_WEIGHT_B_LSBMASK (0x000001FF)
+#define MSVDX_CMDS_H264_WEIGHTED_FACTORS_B_CR_WEIGHT_B_SHIFT (18)
+
+// MSVDX_CMDS H264_WEIGHTED_FACTORS_B CB_WEIGHT_B
+#define MSVDX_CMDS_H264_WEIGHTED_FACTORS_B_CB_WEIGHT_B_MASK (0x0003FE00)
+#define MSVDX_CMDS_H264_WEIGHTED_FACTORS_B_CB_WEIGHT_B_LSBMASK (0x000001FF)
+#define MSVDX_CMDS_H264_WEIGHTED_FACTORS_B_CB_WEIGHT_B_SHIFT (9)
+
+// MSVDX_CMDS H264_WEIGHTED_FACTORS_B Y_WEIGHT_B
+#define MSVDX_CMDS_H264_WEIGHTED_FACTORS_B_Y_WEIGHT_B_MASK (0x000001FF)
+#define MSVDX_CMDS_H264_WEIGHTED_FACTORS_B_Y_WEIGHT_B_LSBMASK (0x000001FF)
+#define MSVDX_CMDS_H264_WEIGHTED_FACTORS_B_Y_WEIGHT_B_SHIFT (0)
+
+#define MSVDX_CMDS_H264_WEIGHTED_OFFSET_B_OFFSET (0x0380)
+#define MSVDX_CMDS_H264_WEIGHTED_OFFSET_B_STRIDE (4)
+#define MSVDX_CMDS_H264_WEIGHTED_OFFSET_B_NO_ENTRIES (32)
+
+// MSVDX_CMDS H264_WEIGHTED_OFFSET_B CR_OFFSET_B
+#define MSVDX_CMDS_H264_WEIGHTED_OFFSET_B_CR_OFFSET_B_MASK (0x00FF0000)
+#define MSVDX_CMDS_H264_WEIGHTED_OFFSET_B_CR_OFFSET_B_LSBMASK (0x000000FF)
+#define MSVDX_CMDS_H264_WEIGHTED_OFFSET_B_CR_OFFSET_B_SHIFT (16)
+
+// MSVDX_CMDS H264_WEIGHTED_OFFSET_B CB_OFFSET_B
+#define MSVDX_CMDS_H264_WEIGHTED_OFFSET_B_CB_OFFSET_B_MASK (0x0000FF00)
+#define MSVDX_CMDS_H264_WEIGHTED_OFFSET_B_CB_OFFSET_B_LSBMASK (0x000000FF)
+#define MSVDX_CMDS_H264_WEIGHTED_OFFSET_B_CB_OFFSET_B_SHIFT (8)
+
+// MSVDX_CMDS H264_WEIGHTED_OFFSET_B Y_OFFSET_B
+#define MSVDX_CMDS_H264_WEIGHTED_OFFSET_B_Y_OFFSET_B_MASK (0x000000FF)
+#define MSVDX_CMDS_H264_WEIGHTED_OFFSET_B_Y_OFFSET_B_LSBMASK (0x000000FF)
+#define MSVDX_CMDS_H264_WEIGHTED_OFFSET_B_Y_OFFSET_B_SHIFT (0)
+
+#define MSVDX_CMDS_INTRA_BLOCK_PREDICTION_OFFSET (0x041C)
+#define MSVDX_CMDS_INTRA_BLOCK_PREDICTION_STRIDE (4)
+#define MSVDX_CMDS_INTRA_BLOCK_PREDICTION_NO_ENTRIES (5)
+
+// MSVDX_CMDS INTRA_BLOCK_PREDICTION INTRA_PRED_BLOCK_SIZE
+#define MSVDX_CMDS_INTRA_BLOCK_PREDICTION_INTRA_PRED_BLOCK_SIZE_MASK (0x00070000)
+#define MSVDX_CMDS_INTRA_BLOCK_PREDICTION_INTRA_PRED_BLOCK_SIZE_LSBMASK (0x00000007)
+#define MSVDX_CMDS_INTRA_BLOCK_PREDICTION_INTRA_PRED_BLOCK_SIZE_SHIFT (16)
+
+// MSVDX_CMDS INTRA_BLOCK_PREDICTION INTRA_PRED_MODE3
+#define MSVDX_CMDS_INTRA_BLOCK_PREDICTION_INTRA_PRED_MODE3_MASK (0x0000F000)
+#define MSVDX_CMDS_INTRA_BLOCK_PREDICTION_INTRA_PRED_MODE3_LSBMASK (0x0000000F)
+#define MSVDX_CMDS_INTRA_BLOCK_PREDICTION_INTRA_PRED_MODE3_SHIFT (12)
+
+// MSVDX_CMDS INTRA_BLOCK_PREDICTION INTRA_PRED_MODE2
+#define MSVDX_CMDS_INTRA_BLOCK_PREDICTION_INTRA_PRED_MODE2_MASK (0x00000F00)
+#define MSVDX_CMDS_INTRA_BLOCK_PREDICTION_INTRA_PRED_MODE2_LSBMASK (0x0000000F)
+#define MSVDX_CMDS_INTRA_BLOCK_PREDICTION_INTRA_PRED_MODE2_SHIFT (8)
+
+// MSVDX_CMDS INTRA_BLOCK_PREDICTION INTRA_PRED_MODE1
+#define MSVDX_CMDS_INTRA_BLOCK_PREDICTION_INTRA_PRED_MODE1_MASK (0x000000F0)
+#define MSVDX_CMDS_INTRA_BLOCK_PREDICTION_INTRA_PRED_MODE1_LSBMASK (0x0000000F)
+#define MSVDX_CMDS_INTRA_BLOCK_PREDICTION_INTRA_PRED_MODE1_SHIFT (4)
+
+// MSVDX_CMDS INTRA_BLOCK_PREDICTION INTRA_PRED_MODE0
+#define MSVDX_CMDS_INTRA_BLOCK_PREDICTION_INTRA_PRED_MODE0_MASK (0x0000000F)
+#define MSVDX_CMDS_INTRA_BLOCK_PREDICTION_INTRA_PRED_MODE0_LSBMASK (0x0000000F)
+#define MSVDX_CMDS_INTRA_BLOCK_PREDICTION_INTRA_PRED_MODE0_SHIFT (0)
+
+#define MSVDX_CMDS_INTER_BLOCK_PREDICTION_OFFSET (0x0430)
+#define MSVDX_CMDS_INTER_BLOCK_PREDICTION_STRIDE (4)
+#define MSVDX_CMDS_INTER_BLOCK_PREDICTION_NO_ENTRIES (4)
+
+// MSVDX_CMDS INTER_BLOCK_PREDICTION WEIGHT_INDEX_B
+#define MSVDX_CMDS_INTER_BLOCK_PREDICTION_WEIGHT_INDEX_B_MASK (0x3E000000)
+#define MSVDX_CMDS_INTER_BLOCK_PREDICTION_WEIGHT_INDEX_B_LSBMASK (0x0000001F)
+#define MSVDX_CMDS_INTER_BLOCK_PREDICTION_WEIGHT_INDEX_B_SHIFT (25)
+
+// MSVDX_CMDS INTER_BLOCK_PREDICTION WEIGHT_INDEX_A
+#define MSVDX_CMDS_INTER_BLOCK_PREDICTION_WEIGHT_INDEX_A_MASK (0x01F00000)
+#define MSVDX_CMDS_INTER_BLOCK_PREDICTION_WEIGHT_INDEX_A_LSBMASK (0x0000001F)
+#define MSVDX_CMDS_INTER_BLOCK_PREDICTION_WEIGHT_INDEX_A_SHIFT (20)
+
+// MSVDX_CMDS INTER_BLOCK_PREDICTION INTER_PRED_BLOCK_SIZE
+#define MSVDX_CMDS_INTER_BLOCK_PREDICTION_INTER_PRED_BLOCK_SIZE_MASK (0x00070000)
+#define MSVDX_CMDS_INTER_BLOCK_PREDICTION_INTER_PRED_BLOCK_SIZE_LSBMASK (0x00000007)
+#define MSVDX_CMDS_INTER_BLOCK_PREDICTION_INTER_PRED_BLOCK_SIZE_SHIFT (16)
+
+// MSVDX_CMDS INTER_BLOCK_PREDICTION REF_B_INTERLACED
+#define MSVDX_CMDS_INTER_BLOCK_PREDICTION_REF_B_INTERLACED_MASK (0x00004000)
+#define MSVDX_CMDS_INTER_BLOCK_PREDICTION_REF_B_INTERLACED_LSBMASK (0x00000001)
+#define MSVDX_CMDS_INTER_BLOCK_PREDICTION_REF_B_INTERLACED_SHIFT (14)
+
+// MSVDX_CMDS INTER_BLOCK_PREDICTION REF_INDEX_B_VALID
+#define MSVDX_CMDS_INTER_BLOCK_PREDICTION_REF_INDEX_B_VALID_MASK (0x00002000)
+#define MSVDX_CMDS_INTER_BLOCK_PREDICTION_REF_INDEX_B_VALID_LSBMASK (0x00000001)
+#define MSVDX_CMDS_INTER_BLOCK_PREDICTION_REF_INDEX_B_VALID_SHIFT (13)
+
+// MSVDX_CMDS INTER_BLOCK_PREDICTION REF_INDEX_FIELD_B
+#define MSVDX_CMDS_INTER_BLOCK_PREDICTION_REF_INDEX_FIELD_B_MASK (0x00001000)
+#define MSVDX_CMDS_INTER_BLOCK_PREDICTION_REF_INDEX_FIELD_B_LSBMASK (0x00000001)
+#define MSVDX_CMDS_INTER_BLOCK_PREDICTION_REF_INDEX_FIELD_B_SHIFT (12)
+
+// MSVDX_CMDS INTER_BLOCK_PREDICTION REF_INDEX_B
+#define MSVDX_CMDS_INTER_BLOCK_PREDICTION_REF_INDEX_B_MASK (0x00000F00)
+#define MSVDX_CMDS_INTER_BLOCK_PREDICTION_REF_INDEX_B_LSBMASK (0x0000000F)
+#define MSVDX_CMDS_INTER_BLOCK_PREDICTION_REF_INDEX_B_SHIFT (8)
+
+// MSVDX_CMDS INTER_BLOCK_PREDICTION REF_A_INTERLACED
+#define MSVDX_CMDS_INTER_BLOCK_PREDICTION_REF_A_INTERLACED_MASK (0x00000040)
+#define MSVDX_CMDS_INTER_BLOCK_PREDICTION_REF_A_INTERLACED_LSBMASK (0x00000001)
+#define MSVDX_CMDS_INTER_BLOCK_PREDICTION_REF_A_INTERLACED_SHIFT (6)
+
+// MSVDX_CMDS INTER_BLOCK_PREDICTION REF_INDEX_A_VALID
+#define MSVDX_CMDS_INTER_BLOCK_PREDICTION_REF_INDEX_A_VALID_MASK (0x00000020)
+#define MSVDX_CMDS_INTER_BLOCK_PREDICTION_REF_INDEX_A_VALID_LSBMASK (0x00000001)
+#define MSVDX_CMDS_INTER_BLOCK_PREDICTION_REF_INDEX_A_VALID_SHIFT (5)
+
+// MSVDX_CMDS INTER_BLOCK_PREDICTION REF_INDEX_FIELD_A
+#define MSVDX_CMDS_INTER_BLOCK_PREDICTION_REF_INDEX_FIELD_A_MASK (0x00000010)
+#define MSVDX_CMDS_INTER_BLOCK_PREDICTION_REF_INDEX_FIELD_A_LSBMASK (0x00000001)
+#define MSVDX_CMDS_INTER_BLOCK_PREDICTION_REF_INDEX_FIELD_A_SHIFT (4)
+
+// MSVDX_CMDS INTER_BLOCK_PREDICTION REF_INDEX_A
+#define MSVDX_CMDS_INTER_BLOCK_PREDICTION_REF_INDEX_A_MASK (0x0000000F)
+#define MSVDX_CMDS_INTER_BLOCK_PREDICTION_REF_INDEX_A_LSBMASK (0x0000000F)
+#define MSVDX_CMDS_INTER_BLOCK_PREDICTION_REF_INDEX_A_SHIFT (0)
+
+#define MSVDX_CMDS_MOTION_VECTOR_OFFSET (0x0500)
+#define MSVDX_CMDS_MOTION_VECTOR_STRIDE (4)
+#define MSVDX_CMDS_MOTION_VECTOR_NO_ENTRIES (32)
+
+// MSVDX_CMDS MOTION_VECTOR MV_Y
+#define MSVDX_CMDS_MOTION_VECTOR_MV_Y_MASK (0x03FFC000)
+#define MSVDX_CMDS_MOTION_VECTOR_MV_Y_LSBMASK (0x00000FFF)
+#define MSVDX_CMDS_MOTION_VECTOR_MV_Y_SHIFT (14)
+
+// MSVDX_CMDS MOTION_VECTOR MV_X
+#define MSVDX_CMDS_MOTION_VECTOR_MV_X_MASK (0x00003FFF)
+#define MSVDX_CMDS_MOTION_VECTOR_MV_X_LSBMASK (0x00003FFF)
+#define MSVDX_CMDS_MOTION_VECTOR_MV_X_SHIFT (0)
+
+#define MSVDX_CMDS_INTRA_BLOCK_PREDICTION_ABOVE1_OFFSET (0x061C)
+#define MSVDX_CMDS_INTRA_BLOCK_PREDICTION_ABOVE1_STRIDE (4)
+#define MSVDX_CMDS_INTRA_BLOCK_PREDICTION_ABOVE1_NO_ENTRIES (5)
+
+// MSVDX_CMDS INTRA_BLOCK_PREDICTION_ABOVE1 INTRA_PRED_BLOCK_SIZE_ABOVE1
+#define MSVDX_CMDS_INTRA_BLOCK_PREDICTION_ABOVE1_INTRA_PRED_BLOCK_SIZE_ABOVE1_MASK (0x00070000)
+#define MSVDX_CMDS_INTRA_BLOCK_PREDICTION_ABOVE1_INTRA_PRED_BLOCK_SIZE_ABOVE1_LSBMASK (0x00000007)
+#define MSVDX_CMDS_INTRA_BLOCK_PREDICTION_ABOVE1_INTRA_PRED_BLOCK_SIZE_ABOVE1_SHIFT (16)
+
+// MSVDX_CMDS INTRA_BLOCK_PREDICTION_ABOVE1 INTRA_PRED_MODE3_ABOVE1
+#define MSVDX_CMDS_INTRA_BLOCK_PREDICTION_ABOVE1_INTRA_PRED_MODE3_ABOVE1_MASK (0x0000F000)
+#define MSVDX_CMDS_INTRA_BLOCK_PREDICTION_ABOVE1_INTRA_PRED_MODE3_ABOVE1_LSBMASK (0x0000000F)
+#define MSVDX_CMDS_INTRA_BLOCK_PREDICTION_ABOVE1_INTRA_PRED_MODE3_ABOVE1_SHIFT (12)
+
+// MSVDX_CMDS INTRA_BLOCK_PREDICTION_ABOVE1 INTRA_PRED_MODE2_ABOVE1
+#define MSVDX_CMDS_INTRA_BLOCK_PREDICTION_ABOVE1_INTRA_PRED_MODE2_ABOVE1_MASK (0x00000F00)
+#define MSVDX_CMDS_INTRA_BLOCK_PREDICTION_ABOVE1_INTRA_PRED_MODE2_ABOVE1_LSBMASK (0x0000000F)
+#define MSVDX_CMDS_INTRA_BLOCK_PREDICTION_ABOVE1_INTRA_PRED_MODE2_ABOVE1_SHIFT (8)
+
+// MSVDX_CMDS INTRA_BLOCK_PREDICTION_ABOVE1 INTRA_PRED_MODE1_ABOVE1
+#define MSVDX_CMDS_INTRA_BLOCK_PREDICTION_ABOVE1_INTRA_PRED_MODE1_ABOVE1_MASK (0x000000F0)
+#define MSVDX_CMDS_INTRA_BLOCK_PREDICTION_ABOVE1_INTRA_PRED_MODE1_ABOVE1_LSBMASK (0x0000000F)
+#define MSVDX_CMDS_INTRA_BLOCK_PREDICTION_ABOVE1_INTRA_PRED_MODE1_ABOVE1_SHIFT (4)
+
+// MSVDX_CMDS INTRA_BLOCK_PREDICTION_ABOVE1 INTRA_PRED_MODE0_ABOVE1
+#define MSVDX_CMDS_INTRA_BLOCK_PREDICTION_ABOVE1_INTRA_PRED_MODE0_ABOVE1_MASK (0x0000000F)
+#define MSVDX_CMDS_INTRA_BLOCK_PREDICTION_ABOVE1_INTRA_PRED_MODE0_ABOVE1_LSBMASK (0x0000000F)
+#define MSVDX_CMDS_INTRA_BLOCK_PREDICTION_ABOVE1_INTRA_PRED_MODE0_ABOVE1_SHIFT (0)
+
+#define MSVDX_CMDS_INTER_BLOCK_PREDICTION_ABOVE1_OFFSET (0x0630)
+#define MSVDX_CMDS_INTER_BLOCK_PREDICTION_ABOVE1_STRIDE (4)
+#define MSVDX_CMDS_INTER_BLOCK_PREDICTION_ABOVE1_NO_ENTRIES (4)
+
+// MSVDX_CMDS INTER_BLOCK_PREDICTION_ABOVE1 INTER_PRED_BLOCK_SIZE_ABOVE1
+#define MSVDX_CMDS_INTER_BLOCK_PREDICTION_ABOVE1_INTER_PRED_BLOCK_SIZE_ABOVE1_MASK (0x00070000)
+#define MSVDX_CMDS_INTER_BLOCK_PREDICTION_ABOVE1_INTER_PRED_BLOCK_SIZE_ABOVE1_LSBMASK (0x00000007)
+#define MSVDX_CMDS_INTER_BLOCK_PREDICTION_ABOVE1_INTER_PRED_BLOCK_SIZE_ABOVE1_SHIFT (16)
+
+// MSVDX_CMDS INTER_BLOCK_PREDICTION_ABOVE1 REF_INDEX_B_VALID_ABOVE1
+#define MSVDX_CMDS_INTER_BLOCK_PREDICTION_ABOVE1_REF_INDEX_B_VALID_ABOVE1_MASK (0x00002000)
+#define MSVDX_CMDS_INTER_BLOCK_PREDICTION_ABOVE1_REF_INDEX_B_VALID_ABOVE1_LSBMASK (0x00000001)
+#define MSVDX_CMDS_INTER_BLOCK_PREDICTION_ABOVE1_REF_INDEX_B_VALID_ABOVE1_SHIFT (13)
+
+// MSVDX_CMDS INTER_BLOCK_PREDICTION_ABOVE1 REF_INDEX_FIELD_B_ABOVE1
+#define MSVDX_CMDS_INTER_BLOCK_PREDICTION_ABOVE1_REF_INDEX_FIELD_B_ABOVE1_MASK (0x00001000)
+#define MSVDX_CMDS_INTER_BLOCK_PREDICTION_ABOVE1_REF_INDEX_FIELD_B_ABOVE1_LSBMASK (0x00000001)
+#define MSVDX_CMDS_INTER_BLOCK_PREDICTION_ABOVE1_REF_INDEX_FIELD_B_ABOVE1_SHIFT (12)
+
+// MSVDX_CMDS INTER_BLOCK_PREDICTION_ABOVE1 REF_INDEX_B_ABOVE1
+#define MSVDX_CMDS_INTER_BLOCK_PREDICTION_ABOVE1_REF_INDEX_B_ABOVE1_MASK (0x00000F00)
+#define MSVDX_CMDS_INTER_BLOCK_PREDICTION_ABOVE1_REF_INDEX_B_ABOVE1_LSBMASK (0x0000000F)
+#define MSVDX_CMDS_INTER_BLOCK_PREDICTION_ABOVE1_REF_INDEX_B_ABOVE1_SHIFT (8)
+
+// MSVDX_CMDS INTER_BLOCK_PREDICTION_ABOVE1 REF_INDEX_A_VALID_ABOVE1
+#define MSVDX_CMDS_INTER_BLOCK_PREDICTION_ABOVE1_REF_INDEX_A_VALID_ABOVE1_MASK (0x00000020)
+#define MSVDX_CMDS_INTER_BLOCK_PREDICTION_ABOVE1_REF_INDEX_A_VALID_ABOVE1_LSBMASK (0x00000001)
+#define MSVDX_CMDS_INTER_BLOCK_PREDICTION_ABOVE1_REF_INDEX_A_VALID_ABOVE1_SHIFT (5)
+
+// MSVDX_CMDS INTER_BLOCK_PREDICTION_ABOVE1 REF_INDEX_FIELD_A_ABOVE1
+#define MSVDX_CMDS_INTER_BLOCK_PREDICTION_ABOVE1_REF_INDEX_FIELD_A_ABOVE1_MASK (0x00000010)
+#define MSVDX_CMDS_INTER_BLOCK_PREDICTION_ABOVE1_REF_INDEX_FIELD_A_ABOVE1_LSBMASK (0x00000001)
+#define MSVDX_CMDS_INTER_BLOCK_PREDICTION_ABOVE1_REF_INDEX_FIELD_A_ABOVE1_SHIFT (4)
+
+// MSVDX_CMDS INTER_BLOCK_PREDICTION_ABOVE1 REF_INDEX_A_ABOVE1
+#define MSVDX_CMDS_INTER_BLOCK_PREDICTION_ABOVE1_REF_INDEX_A_ABOVE1_MASK (0x0000000F)
+#define MSVDX_CMDS_INTER_BLOCK_PREDICTION_ABOVE1_REF_INDEX_A_ABOVE1_LSBMASK (0x0000000F)
+#define MSVDX_CMDS_INTER_BLOCK_PREDICTION_ABOVE1_REF_INDEX_A_ABOVE1_SHIFT (0)
+
+#define MSVDX_CMDS_MOTION_VECTOR_ABOVE1_OFFSET (0x0700)
+#define MSVDX_CMDS_MOTION_VECTOR_ABOVE1_STRIDE (4)
+#define MSVDX_CMDS_MOTION_VECTOR_ABOVE1_NO_ENTRIES (32)
+
+// MSVDX_CMDS MOTION_VECTOR_ABOVE1 MV_Y_ABOVE1
+#define MSVDX_CMDS_MOTION_VECTOR_ABOVE1_MV_Y_ABOVE1_MASK (0x03FFC000)
+#define MSVDX_CMDS_MOTION_VECTOR_ABOVE1_MV_Y_ABOVE1_LSBMASK (0x00000FFF)
+#define MSVDX_CMDS_MOTION_VECTOR_ABOVE1_MV_Y_ABOVE1_SHIFT (14)
+
+// MSVDX_CMDS MOTION_VECTOR_ABOVE1 MV_X_ABOVE1
+#define MSVDX_CMDS_MOTION_VECTOR_ABOVE1_MV_X_ABOVE1_MASK (0x00003FFF)
+#define MSVDX_CMDS_MOTION_VECTOR_ABOVE1_MV_X_ABOVE1_LSBMASK (0x00003FFF)
+#define MSVDX_CMDS_MOTION_VECTOR_ABOVE1_MV_X_ABOVE1_SHIFT (0)
+
+#define MSVDX_CMDS_INTRA_BLOCK_PREDICTION_ABOVE2_OFFSET (0x081C)
+#define MSVDX_CMDS_INTRA_BLOCK_PREDICTION_ABOVE2_STRIDE (4)
+#define MSVDX_CMDS_INTRA_BLOCK_PREDICTION_ABOVE2_NO_ENTRIES (5)
+
+// MSVDX_CMDS INTRA_BLOCK_PREDICTION_ABOVE2 INTRA_PRED_BLOCK_SIZE_ABOVE2
+#define MSVDX_CMDS_INTRA_BLOCK_PREDICTION_ABOVE2_INTRA_PRED_BLOCK_SIZE_ABOVE2_MASK (0x00070000)
+#define MSVDX_CMDS_INTRA_BLOCK_PREDICTION_ABOVE2_INTRA_PRED_BLOCK_SIZE_ABOVE2_LSBMASK (0x00000007)
+#define MSVDX_CMDS_INTRA_BLOCK_PREDICTION_ABOVE2_INTRA_PRED_BLOCK_SIZE_ABOVE2_SHIFT (16)
+
+// MSVDX_CMDS INTRA_BLOCK_PREDICTION_ABOVE2 INTRA_PRED_MODE3_ABOVE2
+#define MSVDX_CMDS_INTRA_BLOCK_PREDICTION_ABOVE2_INTRA_PRED_MODE3_ABOVE2_MASK (0x0000F000)
+#define MSVDX_CMDS_INTRA_BLOCK_PREDICTION_ABOVE2_INTRA_PRED_MODE3_ABOVE2_LSBMASK (0x0000000F)
+#define MSVDX_CMDS_INTRA_BLOCK_PREDICTION_ABOVE2_INTRA_PRED_MODE3_ABOVE2_SHIFT (12)
+
+// MSVDX_CMDS INTRA_BLOCK_PREDICTION_ABOVE2 INTRA_PRED_MODE2_ABOVE2
+#define MSVDX_CMDS_INTRA_BLOCK_PREDICTION_ABOVE2_INTRA_PRED_MODE2_ABOVE2_MASK (0x00000F00)
+#define MSVDX_CMDS_INTRA_BLOCK_PREDICTION_ABOVE2_INTRA_PRED_MODE2_ABOVE2_LSBMASK (0x0000000F)
+#define MSVDX_CMDS_INTRA_BLOCK_PREDICTION_ABOVE2_INTRA_PRED_MODE2_ABOVE2_SHIFT (8)
+
+// MSVDX_CMDS INTRA_BLOCK_PREDICTION_ABOVE2 INTRA_PRED_MODE1_ABOVE2
+#define MSVDX_CMDS_INTRA_BLOCK_PREDICTION_ABOVE2_INTRA_PRED_MODE1_ABOVE2_MASK (0x000000F0)
+#define MSVDX_CMDS_INTRA_BLOCK_PREDICTION_ABOVE2_INTRA_PRED_MODE1_ABOVE2_LSBMASK (0x0000000F)
+#define MSVDX_CMDS_INTRA_BLOCK_PREDICTION_ABOVE2_INTRA_PRED_MODE1_ABOVE2_SHIFT (4)
+
+// MSVDX_CMDS INTRA_BLOCK_PREDICTION_ABOVE2 INTRA_PRED_MODE0_ABOVE2
+#define MSVDX_CMDS_INTRA_BLOCK_PREDICTION_ABOVE2_INTRA_PRED_MODE0_ABOVE2_MASK (0x0000000F)
+#define MSVDX_CMDS_INTRA_BLOCK_PREDICTION_ABOVE2_INTRA_PRED_MODE0_ABOVE2_LSBMASK (0x0000000F)
+#define MSVDX_CMDS_INTRA_BLOCK_PREDICTION_ABOVE2_INTRA_PRED_MODE0_ABOVE2_SHIFT (0)
+
+#define MSVDX_CMDS_INTER_BLOCK_PREDICTION_ABOVE2_OFFSET (0x0830)
+#define MSVDX_CMDS_INTER_BLOCK_PREDICTION_ABOVE2_STRIDE (4)
+#define MSVDX_CMDS_INTER_BLOCK_PREDICTION_ABOVE2_NO_ENTRIES (4)
+
+// MSVDX_CMDS INTER_BLOCK_PREDICTION_ABOVE2 INTER_PRED_BLOCK_SIZE_ABOVE2
+#define MSVDX_CMDS_INTER_BLOCK_PREDICTION_ABOVE2_INTER_PRED_BLOCK_SIZE_ABOVE2_MASK (0x00070000)
+#define MSVDX_CMDS_INTER_BLOCK_PREDICTION_ABOVE2_INTER_PRED_BLOCK_SIZE_ABOVE2_LSBMASK (0x00000007)
+#define MSVDX_CMDS_INTER_BLOCK_PREDICTION_ABOVE2_INTER_PRED_BLOCK_SIZE_ABOVE2_SHIFT (16)
+
+// MSVDX_CMDS INTER_BLOCK_PREDICTION_ABOVE2 REF_INDEX_B_VALID_ABOVE2
+#define MSVDX_CMDS_INTER_BLOCK_PREDICTION_ABOVE2_REF_INDEX_B_VALID_ABOVE2_MASK (0x00002000)
+#define MSVDX_CMDS_INTER_BLOCK_PREDICTION_ABOVE2_REF_INDEX_B_VALID_ABOVE2_LSBMASK (0x00000001)
+#define MSVDX_CMDS_INTER_BLOCK_PREDICTION_ABOVE2_REF_INDEX_B_VALID_ABOVE2_SHIFT (13)
+
+// MSVDX_CMDS INTER_BLOCK_PREDICTION_ABOVE2 REF_INDEX_FIELD_B_ABOVE2
+#define MSVDX_CMDS_INTER_BLOCK_PREDICTION_ABOVE2_REF_INDEX_FIELD_B_ABOVE2_MASK (0x00001000)
+#define MSVDX_CMDS_INTER_BLOCK_PREDICTION_ABOVE2_REF_INDEX_FIELD_B_ABOVE2_LSBMASK (0x00000001)
+#define MSVDX_CMDS_INTER_BLOCK_PREDICTION_ABOVE2_REF_INDEX_FIELD_B_ABOVE2_SHIFT (12)
+
+// MSVDX_CMDS INTER_BLOCK_PREDICTION_ABOVE2 REF_INDEX_B_ABOVE2
+#define MSVDX_CMDS_INTER_BLOCK_PREDICTION_ABOVE2_REF_INDEX_B_ABOVE2_MASK (0x00000F00)
+#define MSVDX_CMDS_INTER_BLOCK_PREDICTION_ABOVE2_REF_INDEX_B_ABOVE2_LSBMASK (0x0000000F)
+#define MSVDX_CMDS_INTER_BLOCK_PREDICTION_ABOVE2_REF_INDEX_B_ABOVE2_SHIFT (8)
+
+// MSVDX_CMDS INTER_BLOCK_PREDICTION_ABOVE2 REF_INDEX_A_VALID_ABOVE2
+#define MSVDX_CMDS_INTER_BLOCK_PREDICTION_ABOVE2_REF_INDEX_A_VALID_ABOVE2_MASK (0x00000020)
+#define MSVDX_CMDS_INTER_BLOCK_PREDICTION_ABOVE2_REF_INDEX_A_VALID_ABOVE2_LSBMASK (0x00000001)
+#define MSVDX_CMDS_INTER_BLOCK_PREDICTION_ABOVE2_REF_INDEX_A_VALID_ABOVE2_SHIFT (5)
+
+// MSVDX_CMDS INTER_BLOCK_PREDICTION_ABOVE2 REF_INDEX_FIELD_A_ABOVE2
+#define MSVDX_CMDS_INTER_BLOCK_PREDICTION_ABOVE2_REF_INDEX_FIELD_A_ABOVE2_MASK (0x00000010)
+#define MSVDX_CMDS_INTER_BLOCK_PREDICTION_ABOVE2_REF_INDEX_FIELD_A_ABOVE2_LSBMASK (0x00000001)
+#define MSVDX_CMDS_INTER_BLOCK_PREDICTION_ABOVE2_REF_INDEX_FIELD_A_ABOVE2_SHIFT (4)
+
+// MSVDX_CMDS INTER_BLOCK_PREDICTION_ABOVE2 REF_INDEX_A_ABOVE2
+#define MSVDX_CMDS_INTER_BLOCK_PREDICTION_ABOVE2_REF_INDEX_A_ABOVE2_MASK (0x0000000F)
+#define MSVDX_CMDS_INTER_BLOCK_PREDICTION_ABOVE2_REF_INDEX_A_ABOVE2_LSBMASK (0x0000000F)
+#define MSVDX_CMDS_INTER_BLOCK_PREDICTION_ABOVE2_REF_INDEX_A_ABOVE2_SHIFT (0)
+
+#define MSVDX_CMDS_MOTION_VECTOR_ABOVE2_OFFSET (0x0900)
+#define MSVDX_CMDS_MOTION_VECTOR_ABOVE2_STRIDE (4)
+#define MSVDX_CMDS_MOTION_VECTOR_ABOVE2_NO_ENTRIES (32)
+
+// MSVDX_CMDS MOTION_VECTOR_ABOVE2 MV_Y_ABOVE2
+#define MSVDX_CMDS_MOTION_VECTOR_ABOVE2_MV_Y_ABOVE2_MASK (0x03FFC000)
+#define MSVDX_CMDS_MOTION_VECTOR_ABOVE2_MV_Y_ABOVE2_LSBMASK (0x00000FFF)
+#define MSVDX_CMDS_MOTION_VECTOR_ABOVE2_MV_Y_ABOVE2_SHIFT (14)
+
+// MSVDX_CMDS MOTION_VECTOR_ABOVE2 MV_X_ABOVE2
+#define MSVDX_CMDS_MOTION_VECTOR_ABOVE2_MV_X_ABOVE2_MASK (0x00003FFF)
+#define MSVDX_CMDS_MOTION_VECTOR_ABOVE2_MV_X_ABOVE2_LSBMASK (0x00003FFF)
+#define MSVDX_CMDS_MOTION_VECTOR_ABOVE2_MV_X_ABOVE2_SHIFT (0)
+
+#define MSVDX_CMDS_DISPLAY_PICTURE_SIZE_OFFSET (0x0000)
+
+// MSVDX_CMDS DISPLAY_PICTURE_SIZE DISPLAY_PICTURE_HEIGHT
+#define MSVDX_CMDS_DISPLAY_PICTURE_SIZE_DISPLAY_PICTURE_HEIGHT_MASK (0x00FFF000)
+#define MSVDX_CMDS_DISPLAY_PICTURE_SIZE_DISPLAY_PICTURE_HEIGHT_LSBMASK (0x00000FFF)
+#define MSVDX_CMDS_DISPLAY_PICTURE_SIZE_DISPLAY_PICTURE_HEIGHT_SHIFT (12)
+
+// MSVDX_CMDS DISPLAY_PICTURE_SIZE DISPLAY_PICTURE_WIDTH
+#define MSVDX_CMDS_DISPLAY_PICTURE_SIZE_DISPLAY_PICTURE_WIDTH_MASK (0x00000FFF)
+#define MSVDX_CMDS_DISPLAY_PICTURE_SIZE_DISPLAY_PICTURE_WIDTH_LSBMASK (0x00000FFF)
+#define MSVDX_CMDS_DISPLAY_PICTURE_SIZE_DISPLAY_PICTURE_WIDTH_SHIFT (0)
+
+#define MSVDX_CMDS_CODED_PICTURE_SIZE_OFFSET (0x0004)
+
+// MSVDX_CMDS CODED_PICTURE_SIZE CODED_PICTURE_HEIGHT
+#define MSVDX_CMDS_CODED_PICTURE_SIZE_CODED_PICTURE_HEIGHT_MASK (0x00FFF000)
+#define MSVDX_CMDS_CODED_PICTURE_SIZE_CODED_PICTURE_HEIGHT_LSBMASK (0x00000FFF)
+#define MSVDX_CMDS_CODED_PICTURE_SIZE_CODED_PICTURE_HEIGHT_SHIFT (12)
+
+// MSVDX_CMDS CODED_PICTURE_SIZE CODED_PICTURE_WIDTH
+#define MSVDX_CMDS_CODED_PICTURE_SIZE_CODED_PICTURE_WIDTH_MASK (0x00000FFF)
+#define MSVDX_CMDS_CODED_PICTURE_SIZE_CODED_PICTURE_WIDTH_LSBMASK (0x00000FFF)
+#define MSVDX_CMDS_CODED_PICTURE_SIZE_CODED_PICTURE_WIDTH_SHIFT (0)
+
+#define MSVDX_CMDS_OPERATING_MODE_OFFSET (0x0008)
+
+// MSVDX_CMDS OPERATING_MODE CHROMA_INTERLEAVED
+#define MSVDX_CMDS_OPERATING_MODE_CHROMA_INTERLEAVED_MASK (0x08000000)
+#define MSVDX_CMDS_OPERATING_MODE_CHROMA_INTERLEAVED_LSBMASK (0x00000001)
+#define MSVDX_CMDS_OPERATING_MODE_CHROMA_INTERLEAVED_SHIFT (27)
+
+// MSVDX_CMDS OPERATING_MODE ROW_STRIDE
+#define MSVDX_CMDS_OPERATING_MODE_ROW_STRIDE_MASK (0x07000000)
+#define MSVDX_CMDS_OPERATING_MODE_ROW_STRIDE_LSBMASK (0x00000007)
+#define MSVDX_CMDS_OPERATING_MODE_ROW_STRIDE_SHIFT (24)
+
+// MSVDX_CMDS OPERATING_MODE CODEC_PROFILE
+#define MSVDX_CMDS_OPERATING_MODE_CODEC_PROFILE_MASK (0x00300000)
+#define MSVDX_CMDS_OPERATING_MODE_CODEC_PROFILE_LSBMASK (0x00000003)
+#define MSVDX_CMDS_OPERATING_MODE_CODEC_PROFILE_SHIFT (20)
+
+// MSVDX_CMDS OPERATING_MODE CODEC_MODE
+#define MSVDX_CMDS_OPERATING_MODE_CODEC_MODE_MASK (0x00070000)
+#define MSVDX_CMDS_OPERATING_MODE_CODEC_MODE_LSBMASK (0x00000007)
+#define MSVDX_CMDS_OPERATING_MODE_CODEC_MODE_SHIFT (16)
+
+// MSVDX_CMDS OPERATING_MODE ASYNC_MODE
+#define MSVDX_CMDS_OPERATING_MODE_ASYNC_MODE_MASK (0x00006000)
+#define MSVDX_CMDS_OPERATING_MODE_ASYNC_MODE_LSBMASK (0x00000003)
+#define MSVDX_CMDS_OPERATING_MODE_ASYNC_MODE_SHIFT (13)
+
+// MSVDX_CMDS OPERATING_MODE CHROMA_FORMAT
+#define MSVDX_CMDS_OPERATING_MODE_CHROMA_FORMAT_MASK (0x00001000)
+#define MSVDX_CMDS_OPERATING_MODE_CHROMA_FORMAT_LSBMASK (0x00000001)
+#define MSVDX_CMDS_OPERATING_MODE_CHROMA_FORMAT_SHIFT (12)
+
+// MSVDX_CMDS OPERATING_MODE INTERLACED
+#define MSVDX_CMDS_OPERATING_MODE_INTERLACED_MASK (0x00000800)
+#define MSVDX_CMDS_OPERATING_MODE_INTERLACED_LSBMASK (0x00000001)
+#define MSVDX_CMDS_OPERATING_MODE_INTERLACED_SHIFT (11)
+
+// MSVDX_CMDS OPERATING_MODE OVERLAP
+#define MSVDX_CMDS_OPERATING_MODE_OVERLAP_MASK (0x00000400)
+#define MSVDX_CMDS_OPERATING_MODE_OVERLAP_LSBMASK (0x00000001)
+#define MSVDX_CMDS_OPERATING_MODE_OVERLAP_SHIFT (10)
+
+// MSVDX_CMDS OPERATING_MODE PIC_CONDOVER
+#define MSVDX_CMDS_OPERATING_MODE_PIC_CONDOVER_MASK (0x00000300)
+#define MSVDX_CMDS_OPERATING_MODE_PIC_CONDOVER_LSBMASK (0x00000003)
+#define MSVDX_CMDS_OPERATING_MODE_PIC_CONDOVER_SHIFT (8)
+
+// MSVDX_CMDS OPERATING_MODE PIC_QUANT
+#define MSVDX_CMDS_OPERATING_MODE_PIC_QUANT_MASK (0x0000001F)
+#define MSVDX_CMDS_OPERATING_MODE_PIC_QUANT_LSBMASK (0x0000001F)
+#define MSVDX_CMDS_OPERATING_MODE_PIC_QUANT_SHIFT (0)
+
+#define MSVDX_CMDS_LUMA_RECONSTRUCTED_PICTURE_BASE_ADDRESSES_OFFSET (0x000C)
+
+// MSVDX_CMDS LUMA_RECONSTRUCTED_PICTURE_BASE_ADDRESSES LUMA_RECON_BASE_ADDR
+#define MSVDX_CMDS_LUMA_RECONSTRUCTED_PICTURE_BASE_ADDRESSES_LUMA_RECON_BASE_ADDR_MASK (0xFFFFF000)
+#define MSVDX_CMDS_LUMA_RECONSTRUCTED_PICTURE_BASE_ADDRESSES_LUMA_RECON_BASE_ADDR_LSBMASK (0x000FFFFF)
+#define MSVDX_CMDS_LUMA_RECONSTRUCTED_PICTURE_BASE_ADDRESSES_LUMA_RECON_BASE_ADDR_SHIFT (12)
+
+#define MSVDX_CMDS_CHROMA_RECONSTRUCTED_PICTURE_BASE_ADDRESSES_OFFSET (0x0010)
+
+// MSVDX_CMDS CHROMA_RECONSTRUCTED_PICTURE_BASE_ADDRESSES CHROMA_RECON_BASE_ADDR
+#define MSVDX_CMDS_CHROMA_RECONSTRUCTED_PICTURE_BASE_ADDRESSES_CHROMA_RECON_BASE_ADDR_MASK (0xFFFFF000)
+#define MSVDX_CMDS_CHROMA_RECONSTRUCTED_PICTURE_BASE_ADDRESSES_CHROMA_RECON_BASE_ADDR_LSBMASK (0x000FFFFF)
+#define MSVDX_CMDS_CHROMA_RECONSTRUCTED_PICTURE_BASE_ADDRESSES_CHROMA_RECON_BASE_ADDR_SHIFT (12)
+
+#define MSVDX_CMDS_AUX_MSB_BUFFER_BASE_ADDRESSES_OFFSET (0x0014)
+
+// MSVDX_CMDS AUX_MSB_BUFFER_BASE_ADDRESSES AUX_MSB_BUFFER_BASE_ADDR
+#define MSVDX_CMDS_AUX_MSB_BUFFER_BASE_ADDRESSES_AUX_MSB_BUFFER_BASE_ADDR_MASK (0xFFFFF000)
+#define MSVDX_CMDS_AUX_MSB_BUFFER_BASE_ADDRESSES_AUX_MSB_BUFFER_BASE_ADDR_LSBMASK (0x000FFFFF)
+#define MSVDX_CMDS_AUX_MSB_BUFFER_BASE_ADDRESSES_AUX_MSB_BUFFER_BASE_ADDR_SHIFT (12)
+
+#define MSVDX_CMDS_INTRA_BUFFER_BASE_ADDRESS_OFFSET (0x0018)
+
+// MSVDX_CMDS INTRA_BUFFER_BASE_ADDRESS INTRA_BASE_ADDR
+#define MSVDX_CMDS_INTRA_BUFFER_BASE_ADDRESS_INTRA_BASE_ADDR_MASK (0xFFFFFF00)
+#define MSVDX_CMDS_INTRA_BUFFER_BASE_ADDRESS_INTRA_BASE_ADDR_LSBMASK (0x00FFFFFF)
+#define MSVDX_CMDS_INTRA_BUFFER_BASE_ADDRESS_INTRA_BASE_ADDR_SHIFT (8)
+
+#define MSVDX_CMDS_MC_CACHE_CONFIGURATION_OFFSET (0x001C)
+
+// MSVDX_CMDS MC_CACHE_CONFIGURATION CONFIG_REF_OFFSET
+#define MSVDX_CMDS_MC_CACHE_CONFIGURATION_CONFIG_REF_OFFSET_MASK (0x00FFF000)
+#define MSVDX_CMDS_MC_CACHE_CONFIGURATION_CONFIG_REF_OFFSET_LSBMASK (0x00000FFF)
+#define MSVDX_CMDS_MC_CACHE_CONFIGURATION_CONFIG_REF_OFFSET_SHIFT (12)
+
+// MSVDX_CMDS MC_CACHE_CONFIGURATION CONFIG_ROW_OFFSET
+#define MSVDX_CMDS_MC_CACHE_CONFIGURATION_CONFIG_ROW_OFFSET_MASK (0x00000FFF)
+#define MSVDX_CMDS_MC_CACHE_CONFIGURATION_CONFIG_ROW_OFFSET_LSBMASK (0x00000FFF)
+#define MSVDX_CMDS_MC_CACHE_CONFIGURATION_CONFIG_ROW_OFFSET_SHIFT (0)
+
+#define MSVDX_CMDS_VC1_INTENSITY_COMPENSATION_PARAMETER_OFFSET (0x0020)
+
+// MSVDX_CMDS VC1_INTENSITY_COMPENSATION_PARAMETER VC1_LUMSHIFT2
+#define MSVDX_CMDS_VC1_INTENSITY_COMPENSATION_PARAMETER_VC1_LUMSHIFT2_MASK (0x00FC0000)
+#define MSVDX_CMDS_VC1_INTENSITY_COMPENSATION_PARAMETER_VC1_LUMSHIFT2_LSBMASK (0x0000003F)
+#define MSVDX_CMDS_VC1_INTENSITY_COMPENSATION_PARAMETER_VC1_LUMSHIFT2_SHIFT (18)
+
+// MSVDX_CMDS VC1_INTENSITY_COMPENSATION_PARAMETER VC1_LUMSCALE2
+#define MSVDX_CMDS_VC1_INTENSITY_COMPENSATION_PARAMETER_VC1_LUMSCALE2_MASK (0x0003F000)
+#define MSVDX_CMDS_VC1_INTENSITY_COMPENSATION_PARAMETER_VC1_LUMSCALE2_LSBMASK (0x0000003F)
+#define MSVDX_CMDS_VC1_INTENSITY_COMPENSATION_PARAMETER_VC1_LUMSCALE2_SHIFT (12)
+
+// MSVDX_CMDS VC1_INTENSITY_COMPENSATION_PARAMETER VC1_LUMSHIFT1
+#define MSVDX_CMDS_VC1_INTENSITY_COMPENSATION_PARAMETER_VC1_LUMSHIFT1_MASK (0x00000FC0)
+#define MSVDX_CMDS_VC1_INTENSITY_COMPENSATION_PARAMETER_VC1_LUMSHIFT1_LSBMASK (0x0000003F)
+#define MSVDX_CMDS_VC1_INTENSITY_COMPENSATION_PARAMETER_VC1_LUMSHIFT1_SHIFT (6)
+
+// MSVDX_CMDS VC1_INTENSITY_COMPENSATION_PARAMETER VC1_LUMSCALE1
+#define MSVDX_CMDS_VC1_INTENSITY_COMPENSATION_PARAMETER_VC1_LUMSCALE1_MASK (0x0000003F)
+#define MSVDX_CMDS_VC1_INTENSITY_COMPENSATION_PARAMETER_VC1_LUMSCALE1_LSBMASK (0x0000003F)
+#define MSVDX_CMDS_VC1_INTENSITY_COMPENSATION_PARAMETER_VC1_LUMSCALE1_SHIFT (0)
+
+#define MSVDX_CMDS_VC1_INTENSITY_COMPENSATION_BACKWARD_OFFSET (0x0034)
+
+// MSVDX_CMDS VC1_INTENSITY_COMPENSATION_BACKWARD VC1_LUMSHIFT_PREV
+#define MSVDX_CMDS_VC1_INTENSITY_COMPENSATION_BACKWARD_VC1_LUMSHIFT_PREV_MASK (0x00FC0000)
+#define MSVDX_CMDS_VC1_INTENSITY_COMPENSATION_BACKWARD_VC1_LUMSHIFT_PREV_LSBMASK (0x0000003F)
+#define MSVDX_CMDS_VC1_INTENSITY_COMPENSATION_BACKWARD_VC1_LUMSHIFT_PREV_SHIFT (18)
+
+// MSVDX_CMDS VC1_INTENSITY_COMPENSATION_BACKWARD VC1_LUMSCALE_PREV
+#define MSVDX_CMDS_VC1_INTENSITY_COMPENSATION_BACKWARD_VC1_LUMSCALE_PREV_MASK (0x0003F000)
+#define MSVDX_CMDS_VC1_INTENSITY_COMPENSATION_BACKWARD_VC1_LUMSCALE_PREV_LSBMASK (0x0000003F)
+#define MSVDX_CMDS_VC1_INTENSITY_COMPENSATION_BACKWARD_VC1_LUMSCALE_PREV_SHIFT (12)
+
+// MSVDX_CMDS VC1_INTENSITY_COMPENSATION_BACKWARD VC1_LUMSHIFT_BACK
+#define MSVDX_CMDS_VC1_INTENSITY_COMPENSATION_BACKWARD_VC1_LUMSHIFT_BACK_MASK (0x00000FC0)
+#define MSVDX_CMDS_VC1_INTENSITY_COMPENSATION_BACKWARD_VC1_LUMSHIFT_BACK_LSBMASK (0x0000003F)
+#define MSVDX_CMDS_VC1_INTENSITY_COMPENSATION_BACKWARD_VC1_LUMSHIFT_BACK_SHIFT (6)
+
+// MSVDX_CMDS VC1_INTENSITY_COMPENSATION_BACKWARD VC1_LUMSCALE_BACK
+#define MSVDX_CMDS_VC1_INTENSITY_COMPENSATION_BACKWARD_VC1_LUMSCALE_BACK_MASK (0x0000003F)
+#define MSVDX_CMDS_VC1_INTENSITY_COMPENSATION_BACKWARD_VC1_LUMSCALE_BACK_LSBMASK (0x0000003F)
+#define MSVDX_CMDS_VC1_INTENSITY_COMPENSATION_BACKWARD_VC1_LUMSCALE_BACK_SHIFT (0)
+
+#define MSVDX_CMDS_H264_WEIGHTED_FACTOR_DENOMINATOR_OFFSET (0x0024)
+
+// MSVDX_CMDS H264_WEIGHTED_FACTOR_DENOMINATOR C_LOG2_WEIGHT_DENOM
+#define MSVDX_CMDS_H264_WEIGHTED_FACTOR_DENOMINATOR_C_LOG2_WEIGHT_DENOM_MASK (0x00000070)
+#define MSVDX_CMDS_H264_WEIGHTED_FACTOR_DENOMINATOR_C_LOG2_WEIGHT_DENOM_LSBMASK (0x00000007)
+#define MSVDX_CMDS_H264_WEIGHTED_FACTOR_DENOMINATOR_C_LOG2_WEIGHT_DENOM_SHIFT (4)
+
+// MSVDX_CMDS H264_WEIGHTED_FACTOR_DENOMINATOR Y_LOG2_WEIGHT_DENOM
+#define MSVDX_CMDS_H264_WEIGHTED_FACTOR_DENOMINATOR_Y_LOG2_WEIGHT_DENOM_MASK (0x00000007)
+#define MSVDX_CMDS_H264_WEIGHTED_FACTOR_DENOMINATOR_Y_LOG2_WEIGHT_DENOM_LSBMASK (0x00000007)
+#define MSVDX_CMDS_H264_WEIGHTED_FACTOR_DENOMINATOR_Y_LOG2_WEIGHT_DENOM_SHIFT (0)
+
+#define MSVDX_CMDS_VC1_LUMA_RANGE_MAPPING_BASE_ADDRESS_OFFSET (0x0028)
+
+// MSVDX_CMDS VC1_LUMA_RANGE_MAPPING_BASE_ADDRESS LUMA_RANGE_BASE_ADDR
+#define MSVDX_CMDS_VC1_LUMA_RANGE_MAPPING_BASE_ADDRESS_LUMA_RANGE_BASE_ADDR_MASK (0xFFFFF000)
+#define MSVDX_CMDS_VC1_LUMA_RANGE_MAPPING_BASE_ADDRESS_LUMA_RANGE_BASE_ADDR_LSBMASK (0x000FFFFF)
+#define MSVDX_CMDS_VC1_LUMA_RANGE_MAPPING_BASE_ADDRESS_LUMA_RANGE_BASE_ADDR_SHIFT (12)
+
+#define MSVDX_CMDS_VC1_CHROMA_RANGE_MAPPING_BASE_ADDRESS_OFFSET (0x002C)
+
+// MSVDX_CMDS VC1_CHROMA_RANGE_MAPPING_BASE_ADDRESS CHROMA_RANGE_BASE_ADDR
+#define MSVDX_CMDS_VC1_CHROMA_RANGE_MAPPING_BASE_ADDRESS_CHROMA_RANGE_BASE_ADDR_MASK (0xFFFFF000)
+#define MSVDX_CMDS_VC1_CHROMA_RANGE_MAPPING_BASE_ADDRESS_CHROMA_RANGE_BASE_ADDR_LSBMASK (0x000FFFFF)
+#define MSVDX_CMDS_VC1_CHROMA_RANGE_MAPPING_BASE_ADDRESS_CHROMA_RANGE_BASE_ADDR_SHIFT (12)
+
+#define MSVDX_CMDS_VC1_RANGE_MAPPING_FLAGS_OFFSET (0x0030)
+
+// MSVDX_CMDS VC1_RANGE_MAPPING_FLAGS CHROMA_RANGE_MAP_FLAG
+#define MSVDX_CMDS_VC1_RANGE_MAPPING_FLAGS_CHROMA_RANGE_MAP_FLAG_MASK (0x00000080)
+#define MSVDX_CMDS_VC1_RANGE_MAPPING_FLAGS_CHROMA_RANGE_MAP_FLAG_LSBMASK (0x00000001)
+#define MSVDX_CMDS_VC1_RANGE_MAPPING_FLAGS_CHROMA_RANGE_MAP_FLAG_SHIFT (7)
+
+// MSVDX_CMDS VC1_RANGE_MAPPING_FLAGS CHROMA_RANGE_MAP
+#define MSVDX_CMDS_VC1_RANGE_MAPPING_FLAGS_CHROMA_RANGE_MAP_MASK (0x00000070)
+#define MSVDX_CMDS_VC1_RANGE_MAPPING_FLAGS_CHROMA_RANGE_MAP_LSBMASK (0x00000007)
+#define MSVDX_CMDS_VC1_RANGE_MAPPING_FLAGS_CHROMA_RANGE_MAP_SHIFT (4)
+
+// MSVDX_CMDS VC1_RANGE_MAPPING_FLAGS LUMA_RANGE_MAP_FLAG
+#define MSVDX_CMDS_VC1_RANGE_MAPPING_FLAGS_LUMA_RANGE_MAP_FLAG_MASK (0x00000008)
+#define MSVDX_CMDS_VC1_RANGE_MAPPING_FLAGS_LUMA_RANGE_MAP_FLAG_LSBMASK (0x00000001)
+#define MSVDX_CMDS_VC1_RANGE_MAPPING_FLAGS_LUMA_RANGE_MAP_FLAG_SHIFT (3)
+
+// MSVDX_CMDS VC1_RANGE_MAPPING_FLAGS LUMA_RANGE_MAP
+#define MSVDX_CMDS_VC1_RANGE_MAPPING_FLAGS_LUMA_RANGE_MAP_MASK (0x00000007)
+#define MSVDX_CMDS_VC1_RANGE_MAPPING_FLAGS_LUMA_RANGE_MAP_LSBMASK (0x00000007)
+#define MSVDX_CMDS_VC1_RANGE_MAPPING_FLAGS_LUMA_RANGE_MAP_SHIFT (0)
+
+#define MSVDX_CMDS_SLICE_PARAMS_OFFSET (0x0400)
+
+// MSVDX_CMDS SLICE_PARAMS VC1_PREV_INT_COMP
+#define MSVDX_CMDS_SLICE_PARAMS_VC1_PREV_INT_COMP_MASK (0x0C000000)
+#define MSVDX_CMDS_SLICE_PARAMS_VC1_PREV_INT_COMP_LSBMASK (0x00000003)
+#define MSVDX_CMDS_SLICE_PARAMS_VC1_PREV_INT_COMP_SHIFT (26)
+
+// MSVDX_CMDS SLICE_PARAMS VC1_BACK_INT_COMP
+#define MSVDX_CMDS_SLICE_PARAMS_VC1_BACK_INT_COMP_MASK (0x03000000)
+#define MSVDX_CMDS_SLICE_PARAMS_VC1_BACK_INT_COMP_LSBMASK (0x00000003)
+#define MSVDX_CMDS_SLICE_PARAMS_VC1_BACK_INT_COMP_SHIFT (24)
+
+// MSVDX_CMDS SLICE_PARAMS CONSTRAINED_INTRA_PRED
+#define MSVDX_CMDS_SLICE_PARAMS_CONSTRAINED_INTRA_PRED_MASK (0x00800000)
+#define MSVDX_CMDS_SLICE_PARAMS_CONSTRAINED_INTRA_PRED_LSBMASK (0x00000001)
+#define MSVDX_CMDS_SLICE_PARAMS_CONSTRAINED_INTRA_PRED_SHIFT (23)
+
+// MSVDX_CMDS SLICE_PARAMS RND_CTL_BIT
+#define MSVDX_CMDS_SLICE_PARAMS_RND_CTL_BIT_MASK (0x00400000)
+#define MSVDX_CMDS_SLICE_PARAMS_RND_CTL_BIT_LSBMASK (0x00000001)
+#define MSVDX_CMDS_SLICE_PARAMS_RND_CTL_BIT_SHIFT (22)
+
+// MSVDX_CMDS SLICE_PARAMS MODE_CONFIG
+#define MSVDX_CMDS_SLICE_PARAMS_MODE_CONFIG_MASK (0x003E0000)
+#define MSVDX_CMDS_SLICE_PARAMS_MODE_CONFIG_LSBMASK (0x0000001F)
+#define MSVDX_CMDS_SLICE_PARAMS_MODE_CONFIG_SHIFT (17)
+
+// MSVDX_CMDS SLICE_PARAMS SUBPEL_FILTER_MODE
+#define MSVDX_CMDS_SLICE_PARAMS_SUBPEL_FILTER_MODE_MASK (0x00010000)
+#define MSVDX_CMDS_SLICE_PARAMS_SUBPEL_FILTER_MODE_LSBMASK (0x00000001)
+#define MSVDX_CMDS_SLICE_PARAMS_SUBPEL_FILTER_MODE_SHIFT (16)
+
+// MSVDX_CMDS SLICE_PARAMS VC1_FASTUVMC
+#define MSVDX_CMDS_SLICE_PARAMS_VC1_FASTUVMC_MASK (0x00008000)
+#define MSVDX_CMDS_SLICE_PARAMS_VC1_FASTUVMC_LSBMASK (0x00000001)
+#define MSVDX_CMDS_SLICE_PARAMS_VC1_FASTUVMC_SHIFT (15)
+
+// MSVDX_CMDS SLICE_PARAMS LOOPFILTER
+#define MSVDX_CMDS_SLICE_PARAMS_LOOPFILTER_MASK (0x00004000)
+#define MSVDX_CMDS_SLICE_PARAMS_LOOPFILTER_LSBMASK (0x00000001)
+#define MSVDX_CMDS_SLICE_PARAMS_LOOPFILTER_SHIFT (14)
+
+// MSVDX_CMDS SLICE_PARAMS DISABLE_DEBLOCK_FILTER_IDC
+#define MSVDX_CMDS_SLICE_PARAMS_DISABLE_DEBLOCK_FILTER_IDC_MASK (0x00003000)
+#define MSVDX_CMDS_SLICE_PARAMS_DISABLE_DEBLOCK_FILTER_IDC_LSBMASK (0x00000003)
+#define MSVDX_CMDS_SLICE_PARAMS_DISABLE_DEBLOCK_FILTER_IDC_SHIFT (12)
+
+// MSVDX_CMDS SLICE_PARAMS SLICE_ALPHA_CO_OFFSET_DIV2
+#define MSVDX_CMDS_SLICE_PARAMS_SLICE_ALPHA_CO_OFFSET_DIV2_MASK (0x00000F00)
+#define MSVDX_CMDS_SLICE_PARAMS_SLICE_ALPHA_CO_OFFSET_DIV2_LSBMASK (0x0000000F)
+#define MSVDX_CMDS_SLICE_PARAMS_SLICE_ALPHA_CO_OFFSET_DIV2_SHIFT (8)
+
+// MSVDX_CMDS SLICE_PARAMS SLICE_BETA_OFFSET_DIV2
+#define MSVDX_CMDS_SLICE_PARAMS_SLICE_BETA_OFFSET_DIV2_MASK (0x000000F0)
+#define MSVDX_CMDS_SLICE_PARAMS_SLICE_BETA_OFFSET_DIV2_LSBMASK (0x0000000F)
+#define MSVDX_CMDS_SLICE_PARAMS_SLICE_BETA_OFFSET_DIV2_SHIFT (4)
+
+// MSVDX_CMDS SLICE_PARAMS SLICE_FIELD_TYPE
+#define MSVDX_CMDS_SLICE_PARAMS_SLICE_FIELD_TYPE_MASK (0x0000000C)
+#define MSVDX_CMDS_SLICE_PARAMS_SLICE_FIELD_TYPE_LSBMASK (0x00000003)
+#define MSVDX_CMDS_SLICE_PARAMS_SLICE_FIELD_TYPE_SHIFT (2)
+
+// MSVDX_CMDS SLICE_PARAMS SLICE_CODE_TYPE
+#define MSVDX_CMDS_SLICE_PARAMS_SLICE_CODE_TYPE_MASK (0x00000003)
+#define MSVDX_CMDS_SLICE_PARAMS_SLICE_CODE_TYPE_LSBMASK (0x00000003)
+#define MSVDX_CMDS_SLICE_PARAMS_SLICE_CODE_TYPE_SHIFT (0)
+
+#define MSVDX_CMDS_END_SLICE_PICTURE_OFFSET (0x0404)
+
+// MSVDX_CMDS END_SLICE_PICTURE FLUSH_VDEB
+#define MSVDX_CMDS_END_SLICE_PICTURE_FLUSH_VDEB_MASK (0x00000002)
+#define MSVDX_CMDS_END_SLICE_PICTURE_FLUSH_VDEB_LSBMASK (0x00000001)
+#define MSVDX_CMDS_END_SLICE_PICTURE_FLUSH_VDEB_SHIFT (1)
+
+// MSVDX_CMDS END_SLICE_PICTURE PICTURE_END
+#define MSVDX_CMDS_END_SLICE_PICTURE_PICTURE_END_MASK (0x00000001)
+#define MSVDX_CMDS_END_SLICE_PICTURE_PICTURE_END_LSBMASK (0x00000001)
+#define MSVDX_CMDS_END_SLICE_PICTURE_PICTURE_END_SHIFT (0)
+
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_OFFSET (0x0408)
+
+// MSVDX_CMDS MACROBLOCK_NUMBER MB_LEFT2_INTER
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_MB_LEFT2_INTER_MASK (0x40000000)
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_MB_LEFT2_INTER_LSBMASK (0x00000001)
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_MB_LEFT2_INTER_SHIFT (30)
+
+// MSVDX_CMDS MACROBLOCK_NUMBER MB_LEFT1_INTER
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_MB_LEFT1_INTER_MASK (0x20000000)
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_MB_LEFT1_INTER_LSBMASK (0x00000001)
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_MB_LEFT1_INTER_SHIFT (29)
+
+// MSVDX_CMDS MACROBLOCK_NUMBER MB_ABOVE_RIGHT_INTER
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_MB_ABOVE_RIGHT_INTER_MASK (0x10000000)
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_MB_ABOVE_RIGHT_INTER_LSBMASK (0x00000001)
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_MB_ABOVE_RIGHT_INTER_SHIFT (28)
+
+// MSVDX_CMDS MACROBLOCK_NUMBER MB_ABOVE_INTER
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_MB_ABOVE_INTER_MASK (0x08000000)
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_MB_ABOVE_INTER_LSBMASK (0x00000001)
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_MB_ABOVE_INTER_SHIFT (27)
+
+// MSVDX_CMDS MACROBLOCK_NUMBER MB_ABOVE_LEFT_INTER
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_MB_ABOVE_LEFT_INTER_MASK (0x04000000)
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_MB_ABOVE_LEFT_INTER_LSBMASK (0x00000001)
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_MB_ABOVE_LEFT_INTER_SHIFT (26)
+
+// MSVDX_CMDS MACROBLOCK_NUMBER MB_ABOVE_RIGHT
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_MB_ABOVE_RIGHT_MASK (0x02000000)
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_MB_ABOVE_RIGHT_LSBMASK (0x00000001)
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_MB_ABOVE_RIGHT_SHIFT (25)
+
+// MSVDX_CMDS MACROBLOCK_NUMBER MB_ABOVE_LEFT
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_MB_ABOVE_LEFT_MASK (0x01000000)
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_MB_ABOVE_LEFT_LSBMASK (0x00000001)
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_MB_ABOVE_LEFT_SHIFT (24)
+
+// MSVDX_CMDS MACROBLOCK_NUMBER MB_ERROR_FLAG
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_MB_ERROR_FLAG_MASK (0x00400000)
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_MB_ERROR_FLAG_LSBMASK (0x00000001)
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_MB_ERROR_FLAG_SHIFT (22)
+
+// MSVDX_CMDS MACROBLOCK_NUMBER MB_OVERFLAG
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_MB_OVERFLAG_MASK (0x00200000)
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_MB_OVERFLAG_LSBMASK (0x00000001)
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_MB_OVERFLAG_SHIFT (21)
+
+// MSVDX_CMDS MACROBLOCK_NUMBER MB_FIELD_CODE
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_MB_FIELD_CODE_MASK (0x00100000)
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_MB_FIELD_CODE_LSBMASK (0x00000001)
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_MB_FIELD_CODE_SHIFT (20)
+
+// MSVDX_CMDS MACROBLOCK_NUMBER MB_SLICE_TOP
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_MB_SLICE_TOP_MASK (0x00080000)
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_MB_SLICE_TOP_LSBMASK (0x00000001)
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_MB_SLICE_TOP_SHIFT (19)
+
+// MSVDX_CMDS MACROBLOCK_NUMBER MB_SLICE_LHS
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_MB_SLICE_LHS_MASK (0x00040000)
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_MB_SLICE_LHS_LSBMASK (0x00000001)
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_MB_SLICE_LHS_SHIFT (18)
+
+// MSVDX_CMDS MACROBLOCK_NUMBER MB_CODE_TYPE
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_MB_CODE_TYPE_MASK (0x00030000)
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_MB_CODE_TYPE_LSBMASK (0x00000003)
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_MB_CODE_TYPE_SHIFT (16)
+
+// MSVDX_CMDS MACROBLOCK_NUMBER MB_NO_Y
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_MB_NO_Y_MASK (0x0000FF00)
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_MB_NO_Y_LSBMASK (0x000000FF)
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_MB_NO_Y_SHIFT (8)
+
+// MSVDX_CMDS MACROBLOCK_NUMBER MB_NO_X
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_MB_NO_X_MASK (0x000000FF)
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_MB_NO_X_LSBMASK (0x000000FF)
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_MB_NO_X_SHIFT (0)
+
+#define MSVDX_CMDS_MACROBLOCK_H264_QUANT_OFFSET (0x040C)
+
+// MSVDX_CMDS MACROBLOCK_H264_QUANT TRANSFORM_SIZE_8X8_FLAG
+#define MSVDX_CMDS_MACROBLOCK_H264_QUANT_TRANSFORM_SIZE_8X8_FLAG_MASK (0x01000000)
+#define MSVDX_CMDS_MACROBLOCK_H264_QUANT_TRANSFORM_SIZE_8X8_FLAG_LSBMASK (0x00000001)
+#define MSVDX_CMDS_MACROBLOCK_H264_QUANT_TRANSFORM_SIZE_8X8_FLAG_SHIFT (24)
+
+// MSVDX_CMDS MACROBLOCK_H264_QUANT MB_QUANT_CHROMA_CR
+#define MSVDX_CMDS_MACROBLOCK_H264_QUANT_MB_QUANT_CHROMA_CR_MASK (0x003F0000)
+#define MSVDX_CMDS_MACROBLOCK_H264_QUANT_MB_QUANT_CHROMA_CR_LSBMASK (0x0000003F)
+#define MSVDX_CMDS_MACROBLOCK_H264_QUANT_MB_QUANT_CHROMA_CR_SHIFT (16)
+
+// MSVDX_CMDS MACROBLOCK_H264_QUANT MB_QUANT_CHROMA_CB
+#define MSVDX_CMDS_MACROBLOCK_H264_QUANT_MB_QUANT_CHROMA_CB_MASK (0x00003F00)
+#define MSVDX_CMDS_MACROBLOCK_H264_QUANT_MB_QUANT_CHROMA_CB_LSBMASK (0x0000003F)
+#define MSVDX_CMDS_MACROBLOCK_H264_QUANT_MB_QUANT_CHROMA_CB_SHIFT (8)
+
+// MSVDX_CMDS MACROBLOCK_H264_QUANT MB_QUANT_LUMA
+#define MSVDX_CMDS_MACROBLOCK_H264_QUANT_MB_QUANT_LUMA_MASK (0x0000003F)
+#define MSVDX_CMDS_MACROBLOCK_H264_QUANT_MB_QUANT_LUMA_LSBMASK (0x0000003F)
+#define MSVDX_CMDS_MACROBLOCK_H264_QUANT_MB_QUANT_LUMA_SHIFT (0)
+
+#define MSVDX_CMDS_MACROBLOCK_BLOCK_TRANSFORM_SIZE_OFFSET (0x0410)
+
+// MSVDX_CMDS MACROBLOCK_BLOCK_TRANSFORM_SIZE VC1_FIELDTX
+#define MSVDX_CMDS_MACROBLOCK_BLOCK_TRANSFORM_SIZE_VC1_FIELDTX_MASK (0x00001000)
+#define MSVDX_CMDS_MACROBLOCK_BLOCK_TRANSFORM_SIZE_VC1_FIELDTX_LSBMASK (0x00000001)
+#define MSVDX_CMDS_MACROBLOCK_BLOCK_TRANSFORM_SIZE_VC1_FIELDTX_SHIFT (12)
+
+// MSVDX_CMDS MACROBLOCK_BLOCK_TRANSFORM_SIZE MB_BLOCK_TRANSFORM_SIZE
+#define MSVDX_CMDS_MACROBLOCK_BLOCK_TRANSFORM_SIZE_MB_BLOCK_TRANSFORM_SIZE_MASK (0x00000FFF)
+#define MSVDX_CMDS_MACROBLOCK_BLOCK_TRANSFORM_SIZE_MB_BLOCK_TRANSFORM_SIZE_LSBMASK (0x00000FFF)
+#define MSVDX_CMDS_MACROBLOCK_BLOCK_TRANSFORM_SIZE_MB_BLOCK_TRANSFORM_SIZE_SHIFT (0)
+
+#define MSVDX_CMDS_MACROBLOCK_BLOCK_TRANSFORM_ZERO_OFFSET (0x0414)
+
+// MSVDX_CMDS MACROBLOCK_BLOCK_TRANSFORM_ZERO MB_BLOCK_TRANSFORM_ZERO
+#define MSVDX_CMDS_MACROBLOCK_BLOCK_TRANSFORM_ZERO_MB_BLOCK_TRANSFORM_ZERO_MASK (0x00FFFFFF)
+#define MSVDX_CMDS_MACROBLOCK_BLOCK_TRANSFORM_ZERO_MB_BLOCK_TRANSFORM_ZERO_LSBMASK (0x00FFFFFF)
+#define MSVDX_CMDS_MACROBLOCK_BLOCK_TRANSFORM_ZERO_MB_BLOCK_TRANSFORM_ZERO_SHIFT (0)
+
+#define MSVDX_CMDS_MACROBLOCK_RESIDUAL_FORMAT_OFFSET (0x0418)
+
+// MSVDX_CMDS MACROBLOCK_RESIDUAL_FORMAT REVERSE_FLAG_ORDER
+#define MSVDX_CMDS_MACROBLOCK_RESIDUAL_FORMAT_REVERSE_FLAG_ORDER_MASK (0x00008000)
+#define MSVDX_CMDS_MACROBLOCK_RESIDUAL_FORMAT_REVERSE_FLAG_ORDER_LSBMASK (0x00000001)
+#define MSVDX_CMDS_MACROBLOCK_RESIDUAL_FORMAT_REVERSE_FLAG_ORDER_SHIFT (15)
+
+// MSVDX_CMDS MACROBLOCK_RESIDUAL_FORMAT VA_ADD_128
+#define MSVDX_CMDS_MACROBLOCK_RESIDUAL_FORMAT_VA_ADD_128_MASK (0x00004000)
+#define MSVDX_CMDS_MACROBLOCK_RESIDUAL_FORMAT_VA_ADD_128_LSBMASK (0x00000001)
+#define MSVDX_CMDS_MACROBLOCK_RESIDUAL_FORMAT_VA_ADD_128_SHIFT (14)
+
+// MSVDX_CMDS MACROBLOCK_RESIDUAL_FORMAT VA_DATA_FORMAT
+#define MSVDX_CMDS_MACROBLOCK_RESIDUAL_FORMAT_VA_DATA_FORMAT_MASK (0x00003000)
+#define MSVDX_CMDS_MACROBLOCK_RESIDUAL_FORMAT_VA_DATA_FORMAT_LSBMASK (0x00000003)
+#define MSVDX_CMDS_MACROBLOCK_RESIDUAL_FORMAT_VA_DATA_FORMAT_SHIFT (12)
+
+// MSVDX_CMDS MACROBLOCK_RESIDUAL_FORMAT RESIDUAL_FIELD_CODED
+#define MSVDX_CMDS_MACROBLOCK_RESIDUAL_FORMAT_RESIDUAL_FIELD_CODED_MASK (0x00000100)
+#define MSVDX_CMDS_MACROBLOCK_RESIDUAL_FORMAT_RESIDUAL_FIELD_CODED_LSBMASK (0x00000001)
+#define MSVDX_CMDS_MACROBLOCK_RESIDUAL_FORMAT_RESIDUAL_FIELD_CODED_SHIFT (8)
+
+// MSVDX_CMDS MACROBLOCK_RESIDUAL_FORMAT CR_FROM_VEC
+#define MSVDX_CMDS_MACROBLOCK_RESIDUAL_FORMAT_CR_FROM_VEC_MASK (0x00000020)
+#define MSVDX_CMDS_MACROBLOCK_RESIDUAL_FORMAT_CR_FROM_VEC_LSBMASK (0x00000001)
+#define MSVDX_CMDS_MACROBLOCK_RESIDUAL_FORMAT_CR_FROM_VEC_SHIFT (5)
+
+// MSVDX_CMDS MACROBLOCK_RESIDUAL_FORMAT CB_FROM_VEC
+#define MSVDX_CMDS_MACROBLOCK_RESIDUAL_FORMAT_CB_FROM_VEC_MASK (0x00000010)
+#define MSVDX_CMDS_MACROBLOCK_RESIDUAL_FORMAT_CB_FROM_VEC_LSBMASK (0x00000001)
+#define MSVDX_CMDS_MACROBLOCK_RESIDUAL_FORMAT_CB_FROM_VEC_SHIFT (4)
+
+// MSVDX_CMDS MACROBLOCK_RESIDUAL_FORMAT Y3_FROM_VEC
+#define MSVDX_CMDS_MACROBLOCK_RESIDUAL_FORMAT_Y3_FROM_VEC_MASK (0x00000008)
+#define MSVDX_CMDS_MACROBLOCK_RESIDUAL_FORMAT_Y3_FROM_VEC_LSBMASK (0x00000001)
+#define MSVDX_CMDS_MACROBLOCK_RESIDUAL_FORMAT_Y3_FROM_VEC_SHIFT (3)
+
+// MSVDX_CMDS MACROBLOCK_RESIDUAL_FORMAT Y2_FROM_VEC
+#define MSVDX_CMDS_MACROBLOCK_RESIDUAL_FORMAT_Y2_FROM_VEC_MASK (0x00000004)
+#define MSVDX_CMDS_MACROBLOCK_RESIDUAL_FORMAT_Y2_FROM_VEC_LSBMASK (0x00000001)
+#define MSVDX_CMDS_MACROBLOCK_RESIDUAL_FORMAT_Y2_FROM_VEC_SHIFT (2)
+
+// MSVDX_CMDS MACROBLOCK_RESIDUAL_FORMAT Y1_FROM_VEC
+#define MSVDX_CMDS_MACROBLOCK_RESIDUAL_FORMAT_Y1_FROM_VEC_MASK (0x00000002)
+#define MSVDX_CMDS_MACROBLOCK_RESIDUAL_FORMAT_Y1_FROM_VEC_LSBMASK (0x00000001)
+#define MSVDX_CMDS_MACROBLOCK_RESIDUAL_FORMAT_Y1_FROM_VEC_SHIFT (1)
+
+// MSVDX_CMDS MACROBLOCK_RESIDUAL_FORMAT Y0_FROM_VEC
+#define MSVDX_CMDS_MACROBLOCK_RESIDUAL_FORMAT_Y0_FROM_VEC_MASK (0x00000001)
+#define MSVDX_CMDS_MACROBLOCK_RESIDUAL_FORMAT_Y0_FROM_VEC_LSBMASK (0x00000001)
+#define MSVDX_CMDS_MACROBLOCK_RESIDUAL_FORMAT_Y0_FROM_VEC_SHIFT (0)
+
+#define MSVDX_CMDS_H264_IMPLICIT_WEIGHT_AVERAGE_OFFSET (0x0440)
+
+// MSVDX_CMDS H264_IMPLICIT_WEIGHT_AVERAGE IMPLICIT_W1
+#define MSVDX_CMDS_H264_IMPLICIT_WEIGHT_AVERAGE_IMPLICIT_W1_MASK (0x0003FE00)
+#define MSVDX_CMDS_H264_IMPLICIT_WEIGHT_AVERAGE_IMPLICIT_W1_LSBMASK (0x000001FF)
+#define MSVDX_CMDS_H264_IMPLICIT_WEIGHT_AVERAGE_IMPLICIT_W1_SHIFT (9)
+
+// MSVDX_CMDS H264_IMPLICIT_WEIGHT_AVERAGE IMPLICIT_W0
+#define MSVDX_CMDS_H264_IMPLICIT_WEIGHT_AVERAGE_IMPLICIT_W0_MASK (0x000001FF)
+#define MSVDX_CMDS_H264_IMPLICIT_WEIGHT_AVERAGE_IMPLICIT_W0_LSBMASK (0x000001FF)
+#define MSVDX_CMDS_H264_IMPLICIT_WEIGHT_AVERAGE_IMPLICIT_W0_SHIFT (0)
+
+#define MSVDX_CMDS_VC1_INLOOP_LUMA_BOUNDARY_OFFSET (0x0450)
+
+// MSVDX_CMDS VC1_INLOOP_LUMA_BOUNDARY INLOOP_Y3_BOUNDARY
+#define MSVDX_CMDS_VC1_INLOOP_LUMA_BOUNDARY_INLOOP_Y3_BOUNDARY_MASK (0xFF000000)
+#define MSVDX_CMDS_VC1_INLOOP_LUMA_BOUNDARY_INLOOP_Y3_BOUNDARY_LSBMASK (0x000000FF)
+#define MSVDX_CMDS_VC1_INLOOP_LUMA_BOUNDARY_INLOOP_Y3_BOUNDARY_SHIFT (24)
+
+// MSVDX_CMDS VC1_INLOOP_LUMA_BOUNDARY INLOOP_Y2_BOUNDARY
+#define MSVDX_CMDS_VC1_INLOOP_LUMA_BOUNDARY_INLOOP_Y2_BOUNDARY_MASK (0x00FF0000)
+#define MSVDX_CMDS_VC1_INLOOP_LUMA_BOUNDARY_INLOOP_Y2_BOUNDARY_LSBMASK (0x000000FF)
+#define MSVDX_CMDS_VC1_INLOOP_LUMA_BOUNDARY_INLOOP_Y2_BOUNDARY_SHIFT (16)
+
+// MSVDX_CMDS VC1_INLOOP_LUMA_BOUNDARY INLOOP_Y1_BOUNDARY
+#define MSVDX_CMDS_VC1_INLOOP_LUMA_BOUNDARY_INLOOP_Y1_BOUNDARY_MASK (0x0000FF00)
+#define MSVDX_CMDS_VC1_INLOOP_LUMA_BOUNDARY_INLOOP_Y1_BOUNDARY_LSBMASK (0x000000FF)
+#define MSVDX_CMDS_VC1_INLOOP_LUMA_BOUNDARY_INLOOP_Y1_BOUNDARY_SHIFT (8)
+
+// MSVDX_CMDS VC1_INLOOP_LUMA_BOUNDARY INLOOP_Y0_BOUNDARY
+#define MSVDX_CMDS_VC1_INLOOP_LUMA_BOUNDARY_INLOOP_Y0_BOUNDARY_MASK (0x000000FF)
+#define MSVDX_CMDS_VC1_INLOOP_LUMA_BOUNDARY_INLOOP_Y0_BOUNDARY_LSBMASK (0x000000FF)
+#define MSVDX_CMDS_VC1_INLOOP_LUMA_BOUNDARY_INLOOP_Y0_BOUNDARY_SHIFT (0)
+
+#define MSVDX_CMDS_VC1_INLOOP_CHROMA_BOUNDARY_OFFSET (0x0454)
+
+// MSVDX_CMDS VC1_INLOOP_CHROMA_BOUNDARY INLOOP_CR_BOUNDARY
+#define MSVDX_CMDS_VC1_INLOOP_CHROMA_BOUNDARY_INLOOP_CR_BOUNDARY_MASK (0x0000FF00)
+#define MSVDX_CMDS_VC1_INLOOP_CHROMA_BOUNDARY_INLOOP_CR_BOUNDARY_LSBMASK (0x000000FF)
+#define MSVDX_CMDS_VC1_INLOOP_CHROMA_BOUNDARY_INLOOP_CR_BOUNDARY_SHIFT (8)
+
+// MSVDX_CMDS VC1_INLOOP_CHROMA_BOUNDARY INLOOP_CB_BOUNDARY
+#define MSVDX_CMDS_VC1_INLOOP_CHROMA_BOUNDARY_INLOOP_CB_BOUNDARY_MASK (0x000000FF)
+#define MSVDX_CMDS_VC1_INLOOP_CHROMA_BOUNDARY_INLOOP_CB_BOUNDARY_LSBMASK (0x000000FF)
+#define MSVDX_CMDS_VC1_INLOOP_CHROMA_BOUNDARY_INLOOP_CB_BOUNDARY_SHIFT (0)
+
+#define MSVDX_CMDS_JPEG_BLOCK_OFFSET (0x0480)
+
+// MSVDX_CMDS JPEG_BLOCK FRAME_INDEX
+#define MSVDX_CMDS_JPEG_BLOCK_FRAME_INDEX_MASK (0x0F000000)
+#define MSVDX_CMDS_JPEG_BLOCK_FRAME_INDEX_LSBMASK (0x0000000F)
+#define MSVDX_CMDS_JPEG_BLOCK_FRAME_INDEX_SHIFT (24)
+
+// MSVDX_CMDS JPEG_BLOCK BLOCK_Y_OFFSET
+#define MSVDX_CMDS_JPEG_BLOCK_BLOCK_Y_OFFSET_MASK (0x00FFF000)
+#define MSVDX_CMDS_JPEG_BLOCK_BLOCK_Y_OFFSET_LSBMASK (0x00000FFF)
+#define MSVDX_CMDS_JPEG_BLOCK_BLOCK_Y_OFFSET_SHIFT (12)
+
+// MSVDX_CMDS JPEG_BLOCK BLOCK_X_OFFSET
+#define MSVDX_CMDS_JPEG_BLOCK_BLOCK_X_OFFSET_MASK (0x00000FFF)
+#define MSVDX_CMDS_JPEG_BLOCK_BLOCK_X_OFFSET_LSBMASK (0x00000FFF)
+#define MSVDX_CMDS_JPEG_BLOCK_BLOCK_X_OFFSET_SHIFT (0)
+
+#define MSVDX_CMDS_SLICE_PARAMS_ABOVE1_OFFSET (0x0600)
+
+// MSVDX_CMDS SLICE_PARAMS_ABOVE1 RND_CTL_BIT_ABOVE1
+#define MSVDX_CMDS_SLICE_PARAMS_ABOVE1_RND_CTL_BIT_ABOVE1_MASK (0x00400000)
+#define MSVDX_CMDS_SLICE_PARAMS_ABOVE1_RND_CTL_BIT_ABOVE1_LSBMASK (0x00000001)
+#define MSVDX_CMDS_SLICE_PARAMS_ABOVE1_RND_CTL_BIT_ABOVE1_SHIFT (22)
+
+// MSVDX_CMDS SLICE_PARAMS_ABOVE1 MODE_CONFIG_ABOVE1
+#define MSVDX_CMDS_SLICE_PARAMS_ABOVE1_MODE_CONFIG_ABOVE1_MASK (0x003E0000)
+#define MSVDX_CMDS_SLICE_PARAMS_ABOVE1_MODE_CONFIG_ABOVE1_LSBMASK (0x0000001F)
+#define MSVDX_CMDS_SLICE_PARAMS_ABOVE1_MODE_CONFIG_ABOVE1_SHIFT (17)
+
+// MSVDX_CMDS SLICE_PARAMS_ABOVE1 SUBPEL_FILTER_MODE_ABOVE1
+#define MSVDX_CMDS_SLICE_PARAMS_ABOVE1_SUBPEL_FILTER_MODE_ABOVE1_MASK (0x00010000)
+#define MSVDX_CMDS_SLICE_PARAMS_ABOVE1_SUBPEL_FILTER_MODE_ABOVE1_LSBMASK (0x00000001)
+#define MSVDX_CMDS_SLICE_PARAMS_ABOVE1_SUBPEL_FILTER_MODE_ABOVE1_SHIFT (16)
+
+// MSVDX_CMDS SLICE_PARAMS_ABOVE1 VC1_FASTUVMC_ABOVE1
+#define MSVDX_CMDS_SLICE_PARAMS_ABOVE1_VC1_FASTUVMC_ABOVE1_MASK (0x00008000)
+#define MSVDX_CMDS_SLICE_PARAMS_ABOVE1_VC1_FASTUVMC_ABOVE1_LSBMASK (0x00000001)
+#define MSVDX_CMDS_SLICE_PARAMS_ABOVE1_VC1_FASTUVMC_ABOVE1_SHIFT (15)
+
+// MSVDX_CMDS SLICE_PARAMS_ABOVE1 LOOPFILTER_ABOVE1
+#define MSVDX_CMDS_SLICE_PARAMS_ABOVE1_LOOPFILTER_ABOVE1_MASK (0x00004000)
+#define MSVDX_CMDS_SLICE_PARAMS_ABOVE1_LOOPFILTER_ABOVE1_LSBMASK (0x00000001)
+#define MSVDX_CMDS_SLICE_PARAMS_ABOVE1_LOOPFILTER_ABOVE1_SHIFT (14)
+
+// MSVDX_CMDS SLICE_PARAMS_ABOVE1 DISABLE_DEBLOCK_FILTER_IDC_ABOVE1
+#define MSVDX_CMDS_SLICE_PARAMS_ABOVE1_DISABLE_DEBLOCK_FILTER_IDC_ABOVE1_MASK (0x00003000)
+#define MSVDX_CMDS_SLICE_PARAMS_ABOVE1_DISABLE_DEBLOCK_FILTER_IDC_ABOVE1_LSBMASK (0x00000003)
+#define MSVDX_CMDS_SLICE_PARAMS_ABOVE1_DISABLE_DEBLOCK_FILTER_IDC_ABOVE1_SHIFT (12)
+
+// MSVDX_CMDS SLICE_PARAMS_ABOVE1 SLICE_ALPHA_CO_OFFSET_DIV2_ABOVE1
+#define MSVDX_CMDS_SLICE_PARAMS_ABOVE1_SLICE_ALPHA_CO_OFFSET_DIV2_ABOVE1_MASK (0x00000F00)
+#define MSVDX_CMDS_SLICE_PARAMS_ABOVE1_SLICE_ALPHA_CO_OFFSET_DIV2_ABOVE1_LSBMASK (0x0000000F)
+#define MSVDX_CMDS_SLICE_PARAMS_ABOVE1_SLICE_ALPHA_CO_OFFSET_DIV2_ABOVE1_SHIFT (8)
+
+// MSVDX_CMDS SLICE_PARAMS_ABOVE1 SLICE_BETA_OFFSET_DIV2_ABOVE1
+#define MSVDX_CMDS_SLICE_PARAMS_ABOVE1_SLICE_BETA_OFFSET_DIV2_ABOVE1_MASK (0x000000F0)
+#define MSVDX_CMDS_SLICE_PARAMS_ABOVE1_SLICE_BETA_OFFSET_DIV2_ABOVE1_LSBMASK (0x0000000F)
+#define MSVDX_CMDS_SLICE_PARAMS_ABOVE1_SLICE_BETA_OFFSET_DIV2_ABOVE1_SHIFT (4)
+
+// MSVDX_CMDS SLICE_PARAMS_ABOVE1 SLICE_FIELD_TYPE_ABOVE1
+#define MSVDX_CMDS_SLICE_PARAMS_ABOVE1_SLICE_FIELD_TYPE_ABOVE1_MASK (0x0000000C)
+#define MSVDX_CMDS_SLICE_PARAMS_ABOVE1_SLICE_FIELD_TYPE_ABOVE1_LSBMASK (0x00000003)
+#define MSVDX_CMDS_SLICE_PARAMS_ABOVE1_SLICE_FIELD_TYPE_ABOVE1_SHIFT (2)
+
+// MSVDX_CMDS SLICE_PARAMS_ABOVE1 SLICE_CODE_TYPE_ABOVE1
+#define MSVDX_CMDS_SLICE_PARAMS_ABOVE1_SLICE_CODE_TYPE_ABOVE1_MASK (0x00000003)
+#define MSVDX_CMDS_SLICE_PARAMS_ABOVE1_SLICE_CODE_TYPE_ABOVE1_LSBMASK (0x00000003)
+#define MSVDX_CMDS_SLICE_PARAMS_ABOVE1_SLICE_CODE_TYPE_ABOVE1_SHIFT (0)
+
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_ABOVE1_OFFSET (0x0608)
+
+// MSVDX_CMDS MACROBLOCK_NUMBER_ABOVE1 MB_ERROR_FLAG_ABOVE1
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_ABOVE1_MB_ERROR_FLAG_ABOVE1_MASK (0x00400000)
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_ABOVE1_MB_ERROR_FLAG_ABOVE1_LSBMASK (0x00000001)
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_ABOVE1_MB_ERROR_FLAG_ABOVE1_SHIFT (22)
+
+// MSVDX_CMDS MACROBLOCK_NUMBER_ABOVE1 MB_OVERFLAG_ABOVE1
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_ABOVE1_MB_OVERFLAG_ABOVE1_MASK (0x00200000)
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_ABOVE1_MB_OVERFLAG_ABOVE1_LSBMASK (0x00000001)
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_ABOVE1_MB_OVERFLAG_ABOVE1_SHIFT (21)
+
+// MSVDX_CMDS MACROBLOCK_NUMBER_ABOVE1 MB_FIELD_CODE_ABOVE1
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_ABOVE1_MB_FIELD_CODE_ABOVE1_MASK (0x00100000)
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_ABOVE1_MB_FIELD_CODE_ABOVE1_LSBMASK (0x00000001)
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_ABOVE1_MB_FIELD_CODE_ABOVE1_SHIFT (20)
+
+// MSVDX_CMDS MACROBLOCK_NUMBER_ABOVE1 MB_SLICE_TOP_ABOVE1
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_ABOVE1_MB_SLICE_TOP_ABOVE1_MASK (0x00080000)
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_ABOVE1_MB_SLICE_TOP_ABOVE1_LSBMASK (0x00000001)
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_ABOVE1_MB_SLICE_TOP_ABOVE1_SHIFT (19)
+
+// MSVDX_CMDS MACROBLOCK_NUMBER_ABOVE1 MB_SLICE_LHS_ABOVE1
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_ABOVE1_MB_SLICE_LHS_ABOVE1_MASK (0x00040000)
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_ABOVE1_MB_SLICE_LHS_ABOVE1_LSBMASK (0x00000001)
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_ABOVE1_MB_SLICE_LHS_ABOVE1_SHIFT (18)
+
+// MSVDX_CMDS MACROBLOCK_NUMBER_ABOVE1 MB_CODE_TYPE_ABOVE1
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_ABOVE1_MB_CODE_TYPE_ABOVE1_MASK (0x00030000)
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_ABOVE1_MB_CODE_TYPE_ABOVE1_LSBMASK (0x00000003)
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_ABOVE1_MB_CODE_TYPE_ABOVE1_SHIFT (16)
+
+// MSVDX_CMDS MACROBLOCK_NUMBER_ABOVE1 MB_NO_Y_ABOVE1
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_ABOVE1_MB_NO_Y_ABOVE1_MASK (0x0000FF00)
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_ABOVE1_MB_NO_Y_ABOVE1_LSBMASK (0x000000FF)
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_ABOVE1_MB_NO_Y_ABOVE1_SHIFT (8)
+
+// MSVDX_CMDS MACROBLOCK_NUMBER_ABOVE1 MB_NO_X_ABOVE1
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_ABOVE1_MB_NO_X_ABOVE1_MASK (0x000000FF)
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_ABOVE1_MB_NO_X_ABOVE1_LSBMASK (0x000000FF)
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_ABOVE1_MB_NO_X_ABOVE1_SHIFT (0)
+
+#define MSVDX_CMDS_MACROBLOCK_H264_QUANT_ABOVE1_OFFSET (0x060C)
+
+// MSVDX_CMDS MACROBLOCK_H264_QUANT_ABOVE1 TRANSFORM_SIZE_8X8_FLAG_ABOVE1
+#define MSVDX_CMDS_MACROBLOCK_H264_QUANT_ABOVE1_TRANSFORM_SIZE_8X8_FLAG_ABOVE1_MASK (0x01000000)
+#define MSVDX_CMDS_MACROBLOCK_H264_QUANT_ABOVE1_TRANSFORM_SIZE_8X8_FLAG_ABOVE1_LSBMASK (0x00000001)
+#define MSVDX_CMDS_MACROBLOCK_H264_QUANT_ABOVE1_TRANSFORM_SIZE_8X8_FLAG_ABOVE1_SHIFT (24)
+
+// MSVDX_CMDS MACROBLOCK_H264_QUANT_ABOVE1 MB_QUANT_CHROMA_CR_ABOVE1
+#define MSVDX_CMDS_MACROBLOCK_H264_QUANT_ABOVE1_MB_QUANT_CHROMA_CR_ABOVE1_MASK (0x003F0000)
+#define MSVDX_CMDS_MACROBLOCK_H264_QUANT_ABOVE1_MB_QUANT_CHROMA_CR_ABOVE1_LSBMASK (0x0000003F)
+#define MSVDX_CMDS_MACROBLOCK_H264_QUANT_ABOVE1_MB_QUANT_CHROMA_CR_ABOVE1_SHIFT (16)
+
+// MSVDX_CMDS MACROBLOCK_H264_QUANT_ABOVE1 MB_QUANT_CHROMA_CB_ABOVE1
+#define MSVDX_CMDS_MACROBLOCK_H264_QUANT_ABOVE1_MB_QUANT_CHROMA_CB_ABOVE1_MASK (0x00003F00)
+#define MSVDX_CMDS_MACROBLOCK_H264_QUANT_ABOVE1_MB_QUANT_CHROMA_CB_ABOVE1_LSBMASK (0x0000003F)
+#define MSVDX_CMDS_MACROBLOCK_H264_QUANT_ABOVE1_MB_QUANT_CHROMA_CB_ABOVE1_SHIFT (8)
+
+// MSVDX_CMDS MACROBLOCK_H264_QUANT_ABOVE1 MB_QUANT_LUMA_ABOVE1
+#define MSVDX_CMDS_MACROBLOCK_H264_QUANT_ABOVE1_MB_QUANT_LUMA_ABOVE1_MASK (0x0000003F)
+#define MSVDX_CMDS_MACROBLOCK_H264_QUANT_ABOVE1_MB_QUANT_LUMA_ABOVE1_LSBMASK (0x0000003F)
+#define MSVDX_CMDS_MACROBLOCK_H264_QUANT_ABOVE1_MB_QUANT_LUMA_ABOVE1_SHIFT (0)
+
+#define MSVDX_CMDS_MACROBLOCK_BLOCK_TRANSFORM_SIZE_ABOVE1_OFFSET (0x0610)
+
+// MSVDX_CMDS MACROBLOCK_BLOCK_TRANSFORM_SIZE_ABOVE1 MB_BLOCK_TRANSFORM_SIZE_ABOVE1
+#define MSVDX_CMDS_MACROBLOCK_BLOCK_TRANSFORM_SIZE_ABOVE1_MB_BLOCK_TRANSFORM_SIZE_ABOVE1_MASK (0x00000FFF)
+#define MSVDX_CMDS_MACROBLOCK_BLOCK_TRANSFORM_SIZE_ABOVE1_MB_BLOCK_TRANSFORM_SIZE_ABOVE1_LSBMASK (0x00000FFF)
+#define MSVDX_CMDS_MACROBLOCK_BLOCK_TRANSFORM_SIZE_ABOVE1_MB_BLOCK_TRANSFORM_SIZE_ABOVE1_SHIFT (0)
+
+#define MSVDX_CMDS_MACROBLOCK_BLOCK_TRANSFORM_ZERO_ABOVE1_OFFSET (0x0614)
+
+// MSVDX_CMDS MACROBLOCK_BLOCK_TRANSFORM_ZERO_ABOVE1 MB_BLOCK_TRANSFORM_ZERO_ABOVE1
+#define MSVDX_CMDS_MACROBLOCK_BLOCK_TRANSFORM_ZERO_ABOVE1_MB_BLOCK_TRANSFORM_ZERO_ABOVE1_MASK (0x00FFFFFF)
+#define MSVDX_CMDS_MACROBLOCK_BLOCK_TRANSFORM_ZERO_ABOVE1_MB_BLOCK_TRANSFORM_ZERO_ABOVE1_LSBMASK (0x00FFFFFF)
+#define MSVDX_CMDS_MACROBLOCK_BLOCK_TRANSFORM_ZERO_ABOVE1_MB_BLOCK_TRANSFORM_ZERO_ABOVE1_SHIFT (0)
+
+#define MSVDX_CMDS_VC1_INLOOP_LUMA_BOUNDARY_ABOVE1_OFFSET (0x0650)
+
+// MSVDX_CMDS VC1_INLOOP_LUMA_BOUNDARY_ABOVE1 INLOOP_Y3_BOUNDARY_ABOVE1
+#define MSVDX_CMDS_VC1_INLOOP_LUMA_BOUNDARY_ABOVE1_INLOOP_Y3_BOUNDARY_ABOVE1_MASK (0xFF000000)
+#define MSVDX_CMDS_VC1_INLOOP_LUMA_BOUNDARY_ABOVE1_INLOOP_Y3_BOUNDARY_ABOVE1_LSBMASK (0x000000FF)
+#define MSVDX_CMDS_VC1_INLOOP_LUMA_BOUNDARY_ABOVE1_INLOOP_Y3_BOUNDARY_ABOVE1_SHIFT (24)
+
+// MSVDX_CMDS VC1_INLOOP_LUMA_BOUNDARY_ABOVE1 INLOOP_Y2_BOUNDARY_ABOVE1
+#define MSVDX_CMDS_VC1_INLOOP_LUMA_BOUNDARY_ABOVE1_INLOOP_Y2_BOUNDARY_ABOVE1_MASK (0x00FF0000)
+#define MSVDX_CMDS_VC1_INLOOP_LUMA_BOUNDARY_ABOVE1_INLOOP_Y2_BOUNDARY_ABOVE1_LSBMASK (0x000000FF)
+#define MSVDX_CMDS_VC1_INLOOP_LUMA_BOUNDARY_ABOVE1_INLOOP_Y2_BOUNDARY_ABOVE1_SHIFT (16)
+
+// MSVDX_CMDS VC1_INLOOP_LUMA_BOUNDARY_ABOVE1 INLOOP_Y1_BOUNDARY_ABOVE1
+#define MSVDX_CMDS_VC1_INLOOP_LUMA_BOUNDARY_ABOVE1_INLOOP_Y1_BOUNDARY_ABOVE1_MASK (0x0000FF00)
+#define MSVDX_CMDS_VC1_INLOOP_LUMA_BOUNDARY_ABOVE1_INLOOP_Y1_BOUNDARY_ABOVE1_LSBMASK (0x000000FF)
+#define MSVDX_CMDS_VC1_INLOOP_LUMA_BOUNDARY_ABOVE1_INLOOP_Y1_BOUNDARY_ABOVE1_SHIFT (8)
+
+// MSVDX_CMDS VC1_INLOOP_LUMA_BOUNDARY_ABOVE1 INLOOP_Y0_BOUNDARY_ABOVE1
+#define MSVDX_CMDS_VC1_INLOOP_LUMA_BOUNDARY_ABOVE1_INLOOP_Y0_BOUNDARY_ABOVE1_MASK (0x000000FF)
+#define MSVDX_CMDS_VC1_INLOOP_LUMA_BOUNDARY_ABOVE1_INLOOP_Y0_BOUNDARY_ABOVE1_LSBMASK (0x000000FF)
+#define MSVDX_CMDS_VC1_INLOOP_LUMA_BOUNDARY_ABOVE1_INLOOP_Y0_BOUNDARY_ABOVE1_SHIFT (0)
+
+#define MSVDX_CMDS_VC1_INLOOP_CHROMA_BOUNDARY_ABOVE1_OFFSET (0x0654)
+
+// MSVDX_CMDS VC1_INLOOP_CHROMA_BOUNDARY_ABOVE1 INLOOP_CR_BOUNDARY_ABOVE1
+#define MSVDX_CMDS_VC1_INLOOP_CHROMA_BOUNDARY_ABOVE1_INLOOP_CR_BOUNDARY_ABOVE1_MASK (0x0000FF00)
+#define MSVDX_CMDS_VC1_INLOOP_CHROMA_BOUNDARY_ABOVE1_INLOOP_CR_BOUNDARY_ABOVE1_LSBMASK (0x000000FF)
+#define MSVDX_CMDS_VC1_INLOOP_CHROMA_BOUNDARY_ABOVE1_INLOOP_CR_BOUNDARY_ABOVE1_SHIFT (8)
+
+// MSVDX_CMDS VC1_INLOOP_CHROMA_BOUNDARY_ABOVE1 INLOOP_CB_BOUNDARY_ABOVE1
+#define MSVDX_CMDS_VC1_INLOOP_CHROMA_BOUNDARY_ABOVE1_INLOOP_CB_BOUNDARY_ABOVE1_MASK (0x000000FF)
+#define MSVDX_CMDS_VC1_INLOOP_CHROMA_BOUNDARY_ABOVE1_INLOOP_CB_BOUNDARY_ABOVE1_LSBMASK (0x000000FF)
+#define MSVDX_CMDS_VC1_INLOOP_CHROMA_BOUNDARY_ABOVE1_INLOOP_CB_BOUNDARY_ABOVE1_SHIFT (0)
+
+#define MSVDX_CMDS_SLICE_PARAMS_ABOVE2_OFFSET (0x0800)
+
+// MSVDX_CMDS SLICE_PARAMS_ABOVE2 RND_CTL_BIT_ABOVE2
+#define MSVDX_CMDS_SLICE_PARAMS_ABOVE2_RND_CTL_BIT_ABOVE2_MASK (0x00400000)
+#define MSVDX_CMDS_SLICE_PARAMS_ABOVE2_RND_CTL_BIT_ABOVE2_LSBMASK (0x00000001)
+#define MSVDX_CMDS_SLICE_PARAMS_ABOVE2_RND_CTL_BIT_ABOVE2_SHIFT (22)
+
+// MSVDX_CMDS SLICE_PARAMS_ABOVE2 MODE_CONFIG_ABOVE2
+#define MSVDX_CMDS_SLICE_PARAMS_ABOVE2_MODE_CONFIG_ABOVE2_MASK (0x003E0000)
+#define MSVDX_CMDS_SLICE_PARAMS_ABOVE2_MODE_CONFIG_ABOVE2_LSBMASK (0x0000001F)
+#define MSVDX_CMDS_SLICE_PARAMS_ABOVE2_MODE_CONFIG_ABOVE2_SHIFT (17)
+
+// MSVDX_CMDS SLICE_PARAMS_ABOVE2 SUBPEL_FILTER_MODE_ABOVE2
+#define MSVDX_CMDS_SLICE_PARAMS_ABOVE2_SUBPEL_FILTER_MODE_ABOVE2_MASK (0x00010000)
+#define MSVDX_CMDS_SLICE_PARAMS_ABOVE2_SUBPEL_FILTER_MODE_ABOVE2_LSBMASK (0x00000001)
+#define MSVDX_CMDS_SLICE_PARAMS_ABOVE2_SUBPEL_FILTER_MODE_ABOVE2_SHIFT (16)
+
+// MSVDX_CMDS SLICE_PARAMS_ABOVE2 VC1_FASTUVMC_ABOVE2
+#define MSVDX_CMDS_SLICE_PARAMS_ABOVE2_VC1_FASTUVMC_ABOVE2_MASK (0x00008000)
+#define MSVDX_CMDS_SLICE_PARAMS_ABOVE2_VC1_FASTUVMC_ABOVE2_LSBMASK (0x00000001)
+#define MSVDX_CMDS_SLICE_PARAMS_ABOVE2_VC1_FASTUVMC_ABOVE2_SHIFT (15)
+
+// MSVDX_CMDS SLICE_PARAMS_ABOVE2 LOOPFILTER_ABOVE2
+#define MSVDX_CMDS_SLICE_PARAMS_ABOVE2_LOOPFILTER_ABOVE2_MASK (0x00004000)
+#define MSVDX_CMDS_SLICE_PARAMS_ABOVE2_LOOPFILTER_ABOVE2_LSBMASK (0x00000001)
+#define MSVDX_CMDS_SLICE_PARAMS_ABOVE2_LOOPFILTER_ABOVE2_SHIFT (14)
+
+// MSVDX_CMDS SLICE_PARAMS_ABOVE2 DISABLE_DEBLOCK_FILTER_IDC_ABOVE2
+#define MSVDX_CMDS_SLICE_PARAMS_ABOVE2_DISABLE_DEBLOCK_FILTER_IDC_ABOVE2_MASK (0x00003000)
+#define MSVDX_CMDS_SLICE_PARAMS_ABOVE2_DISABLE_DEBLOCK_FILTER_IDC_ABOVE2_LSBMASK (0x00000003)
+#define MSVDX_CMDS_SLICE_PARAMS_ABOVE2_DISABLE_DEBLOCK_FILTER_IDC_ABOVE2_SHIFT (12)
+
+// MSVDX_CMDS SLICE_PARAMS_ABOVE2 SLICE_ALPHA_CO_OFFSET_DIV2_ABOVE2
+#define MSVDX_CMDS_SLICE_PARAMS_ABOVE2_SLICE_ALPHA_CO_OFFSET_DIV2_ABOVE2_MASK (0x00000F00)
+#define MSVDX_CMDS_SLICE_PARAMS_ABOVE2_SLICE_ALPHA_CO_OFFSET_DIV2_ABOVE2_LSBMASK (0x0000000F)
+#define MSVDX_CMDS_SLICE_PARAMS_ABOVE2_SLICE_ALPHA_CO_OFFSET_DIV2_ABOVE2_SHIFT (8)
+
+// MSVDX_CMDS SLICE_PARAMS_ABOVE2 SLICE_BETA_OFFSET_DIV2_ABOVE2
+#define MSVDX_CMDS_SLICE_PARAMS_ABOVE2_SLICE_BETA_OFFSET_DIV2_ABOVE2_MASK (0x000000F0)
+#define MSVDX_CMDS_SLICE_PARAMS_ABOVE2_SLICE_BETA_OFFSET_DIV2_ABOVE2_LSBMASK (0x0000000F)
+#define MSVDX_CMDS_SLICE_PARAMS_ABOVE2_SLICE_BETA_OFFSET_DIV2_ABOVE2_SHIFT (4)
+
+// MSVDX_CMDS SLICE_PARAMS_ABOVE2 SLICE_FIELD_TYPE_ABOVE2
+#define MSVDX_CMDS_SLICE_PARAMS_ABOVE2_SLICE_FIELD_TYPE_ABOVE2_MASK (0x0000000C)
+#define MSVDX_CMDS_SLICE_PARAMS_ABOVE2_SLICE_FIELD_TYPE_ABOVE2_LSBMASK (0x00000003)
+#define MSVDX_CMDS_SLICE_PARAMS_ABOVE2_SLICE_FIELD_TYPE_ABOVE2_SHIFT (2)
+
+// MSVDX_CMDS SLICE_PARAMS_ABOVE2 SLICE_CODE_TYPE_ABOVE2
+#define MSVDX_CMDS_SLICE_PARAMS_ABOVE2_SLICE_CODE_TYPE_ABOVE2_MASK (0x00000003)
+#define MSVDX_CMDS_SLICE_PARAMS_ABOVE2_SLICE_CODE_TYPE_ABOVE2_LSBMASK (0x00000003)
+#define MSVDX_CMDS_SLICE_PARAMS_ABOVE2_SLICE_CODE_TYPE_ABOVE2_SHIFT (0)
+
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_ABOVE2_OFFSET (0x0808)
+
+// MSVDX_CMDS MACROBLOCK_NUMBER_ABOVE2 MB_ERROR_FLAG_ABOVE2
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_ABOVE2_MB_ERROR_FLAG_ABOVE2_MASK (0x00400000)
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_ABOVE2_MB_ERROR_FLAG_ABOVE2_LSBMASK (0x00000001)
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_ABOVE2_MB_ERROR_FLAG_ABOVE2_SHIFT (22)
+
+// MSVDX_CMDS MACROBLOCK_NUMBER_ABOVE2 MB_OVERFLAG_ABOVE2
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_ABOVE2_MB_OVERFLAG_ABOVE2_MASK (0x00200000)
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_ABOVE2_MB_OVERFLAG_ABOVE2_LSBMASK (0x00000001)
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_ABOVE2_MB_OVERFLAG_ABOVE2_SHIFT (21)
+
+// MSVDX_CMDS MACROBLOCK_NUMBER_ABOVE2 MB_FIELD_CODE_ABOVE2
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_ABOVE2_MB_FIELD_CODE_ABOVE2_MASK (0x00100000)
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_ABOVE2_MB_FIELD_CODE_ABOVE2_LSBMASK (0x00000001)
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_ABOVE2_MB_FIELD_CODE_ABOVE2_SHIFT (20)
+
+// MSVDX_CMDS MACROBLOCK_NUMBER_ABOVE2 MB_SLICE_TOP_ABOVE2
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_ABOVE2_MB_SLICE_TOP_ABOVE2_MASK (0x00080000)
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_ABOVE2_MB_SLICE_TOP_ABOVE2_LSBMASK (0x00000001)
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_ABOVE2_MB_SLICE_TOP_ABOVE2_SHIFT (19)
+
+// MSVDX_CMDS MACROBLOCK_NUMBER_ABOVE2 MB_SLICE_LHS_ABOVE2
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_ABOVE2_MB_SLICE_LHS_ABOVE2_MASK (0x00040000)
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_ABOVE2_MB_SLICE_LHS_ABOVE2_LSBMASK (0x00000001)
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_ABOVE2_MB_SLICE_LHS_ABOVE2_SHIFT (18)
+
+// MSVDX_CMDS MACROBLOCK_NUMBER_ABOVE2 MB_CODE_TYPE_ABOVE2
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_ABOVE2_MB_CODE_TYPE_ABOVE2_MASK (0x00030000)
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_ABOVE2_MB_CODE_TYPE_ABOVE2_LSBMASK (0x00000003)
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_ABOVE2_MB_CODE_TYPE_ABOVE2_SHIFT (16)
+
+// MSVDX_CMDS MACROBLOCK_NUMBER_ABOVE2 MB_NO_Y_ABOVE2
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_ABOVE2_MB_NO_Y_ABOVE2_MASK (0x0000FF00)
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_ABOVE2_MB_NO_Y_ABOVE2_LSBMASK (0x000000FF)
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_ABOVE2_MB_NO_Y_ABOVE2_SHIFT (8)
+
+// MSVDX_CMDS MACROBLOCK_NUMBER_ABOVE2 MB_NO_X_ABOVE2
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_ABOVE2_MB_NO_X_ABOVE2_MASK (0x000000FF)
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_ABOVE2_MB_NO_X_ABOVE2_LSBMASK (0x000000FF)
+#define MSVDX_CMDS_MACROBLOCK_NUMBER_ABOVE2_MB_NO_X_ABOVE2_SHIFT (0)
+
+#define MSVDX_CMDS_MACROBLOCK_H264_QUANT_ABOVE2_OFFSET (0x080C)
+
+// MSVDX_CMDS MACROBLOCK_H264_QUANT_ABOVE2 TRANSFORM_SIZE_8X8_FLAG_ABOVE2
+#define MSVDX_CMDS_MACROBLOCK_H264_QUANT_ABOVE2_TRANSFORM_SIZE_8X8_FLAG_ABOVE2_MASK (0x01000000)
+#define MSVDX_CMDS_MACROBLOCK_H264_QUANT_ABOVE2_TRANSFORM_SIZE_8X8_FLAG_ABOVE2_LSBMASK (0x00000001)
+#define MSVDX_CMDS_MACROBLOCK_H264_QUANT_ABOVE2_TRANSFORM_SIZE_8X8_FLAG_ABOVE2_SHIFT (24)
+
+// MSVDX_CMDS MACROBLOCK_H264_QUANT_ABOVE2 MB_QUANT_CHROMA_CR_ABOVE2
+#define MSVDX_CMDS_MACROBLOCK_H264_QUANT_ABOVE2_MB_QUANT_CHROMA_CR_ABOVE2_MASK (0x003F0000)
+#define MSVDX_CMDS_MACROBLOCK_H264_QUANT_ABOVE2_MB_QUANT_CHROMA_CR_ABOVE2_LSBMASK (0x0000003F)
+#define MSVDX_CMDS_MACROBLOCK_H264_QUANT_ABOVE2_MB_QUANT_CHROMA_CR_ABOVE2_SHIFT (16)
+
+// MSVDX_CMDS MACROBLOCK_H264_QUANT_ABOVE2 MB_QUANT_CHROMA_CB_ABOVE2
+#define MSVDX_CMDS_MACROBLOCK_H264_QUANT_ABOVE2_MB_QUANT_CHROMA_CB_ABOVE2_MASK (0x00003F00)
+#define MSVDX_CMDS_MACROBLOCK_H264_QUANT_ABOVE2_MB_QUANT_CHROMA_CB_ABOVE2_LSBMASK (0x0000003F)
+#define MSVDX_CMDS_MACROBLOCK_H264_QUANT_ABOVE2_MB_QUANT_CHROMA_CB_ABOVE2_SHIFT (8)
+
+// MSVDX_CMDS MACROBLOCK_H264_QUANT_ABOVE2 MB_QUANT_LUMA_ABOVE2
+#define MSVDX_CMDS_MACROBLOCK_H264_QUANT_ABOVE2_MB_QUANT_LUMA_ABOVE2_MASK (0x0000003F)
+#define MSVDX_CMDS_MACROBLOCK_H264_QUANT_ABOVE2_MB_QUANT_LUMA_ABOVE2_LSBMASK (0x0000003F)
+#define MSVDX_CMDS_MACROBLOCK_H264_QUANT_ABOVE2_MB_QUANT_LUMA_ABOVE2_SHIFT (0)
+
+#define MSVDX_CMDS_MACROBLOCK_BLOCK_TRANSFORM_SIZE_ABOVE2_OFFSET (0x0810)
+
+// MSVDX_CMDS MACROBLOCK_BLOCK_TRANSFORM_SIZE_ABOVE2 MB_BLOCK_TRANSFORM_SIZE_ABOVE2
+#define MSVDX_CMDS_MACROBLOCK_BLOCK_TRANSFORM_SIZE_ABOVE2_MB_BLOCK_TRANSFORM_SIZE_ABOVE2_MASK (0x00000FFF)
+#define MSVDX_CMDS_MACROBLOCK_BLOCK_TRANSFORM_SIZE_ABOVE2_MB_BLOCK_TRANSFORM_SIZE_ABOVE2_LSBMASK (0x00000FFF)
+#define MSVDX_CMDS_MACROBLOCK_BLOCK_TRANSFORM_SIZE_ABOVE2_MB_BLOCK_TRANSFORM_SIZE_ABOVE2_SHIFT (0)
+
+#define MSVDX_CMDS_MACROBLOCK_BLOCK_TRANSFORM_ZERO_ABOVE2_OFFSET (0x0814)
+
+// MSVDX_CMDS MACROBLOCK_BLOCK_TRANSFORM_ZERO_ABOVE2 MB_BLOCK_TRANSFORM_ZERO_ABOVE2
+#define MSVDX_CMDS_MACROBLOCK_BLOCK_TRANSFORM_ZERO_ABOVE2_MB_BLOCK_TRANSFORM_ZERO_ABOVE2_MASK (0x00FFFFFF)
+#define MSVDX_CMDS_MACROBLOCK_BLOCK_TRANSFORM_ZERO_ABOVE2_MB_BLOCK_TRANSFORM_ZERO_ABOVE2_LSBMASK (0x00FFFFFF)
+#define MSVDX_CMDS_MACROBLOCK_BLOCK_TRANSFORM_ZERO_ABOVE2_MB_BLOCK_TRANSFORM_ZERO_ABOVE2_SHIFT (0)
+
+#define MSVDX_CMDS_VC1_INLOOP_CHROMA_BOUNDARY_ABOVE2_OFFSET (0x0854)
+
+// MSVDX_CMDS VC1_INLOOP_CHROMA_BOUNDARY_ABOVE2 INLOOP_CR_BOUNDARY_ABOVE2
+#define MSVDX_CMDS_VC1_INLOOP_CHROMA_BOUNDARY_ABOVE2_INLOOP_CR_BOUNDARY_ABOVE2_MASK (0x0000FF00)
+#define MSVDX_CMDS_VC1_INLOOP_CHROMA_BOUNDARY_ABOVE2_INLOOP_CR_BOUNDARY_ABOVE2_LSBMASK (0x000000FF)
+#define MSVDX_CMDS_VC1_INLOOP_CHROMA_BOUNDARY_ABOVE2_INLOOP_CR_BOUNDARY_ABOVE2_SHIFT (8)
+
+// MSVDX_CMDS VC1_INLOOP_CHROMA_BOUNDARY_ABOVE2 INLOOP_CB_BOUNDARY_ABOVE2
+#define MSVDX_CMDS_VC1_INLOOP_CHROMA_BOUNDARY_ABOVE2_INLOOP_CB_BOUNDARY_ABOVE2_MASK (0x000000FF)
+#define MSVDX_CMDS_VC1_INLOOP_CHROMA_BOUNDARY_ABOVE2_INLOOP_CB_BOUNDARY_ABOVE2_LSBMASK (0x000000FF)
+#define MSVDX_CMDS_VC1_INLOOP_CHROMA_BOUNDARY_ABOVE2_INLOOP_CB_BOUNDARY_ABOVE2_SHIFT (0)
+
+#define MSVDX_CMDS_ALTERNATIVE_OUTPUT_PICTURE_ROTATION_OFFSET (0x003C)
+
+// MSVDX_CMDS, ALTERNATIVE_OUTPUT_PICTURE_ROTATION, ROTATION_ROW_STRIDE
+#define MSVDX_CMDS_ALTERNATIVE_OUTPUT_PICTURE_ROTATION_ROTATION_ROW_STRIDE_MASK (0x00000070)
+#define MSVDX_CMDS_ALTERNATIVE_OUTPUT_PICTURE_ROTATION_ROTATION_ROW_STRIDE_LSBMASK (0x00000007)
+#define MSVDX_CMDS_ALTERNATIVE_OUTPUT_PICTURE_ROTATION_ROTATION_ROW_STRIDE_SHIFT (4)
+
+// MSVDX_CMDS, ALTERNATIVE_OUTPUT_PICTURE_ROTATION, ALT_PICTURE_ENABLE
+#define MSVDX_CMDS_ALTERNATIVE_OUTPUT_PICTURE_ROTATION_ALT_PICTURE_ENABLE_MASK (0x00000008)
+#define MSVDX_CMDS_ALTERNATIVE_OUTPUT_PICTURE_ROTATION_ALT_PICTURE_ENABLE_LSBMASK (0x00000001)
+#define MSVDX_CMDS_ALTERNATIVE_OUTPUT_PICTURE_ROTATION_ALT_PICTURE_ENABLE_SHIFT (3)
+
+// MSVDX_CMDS, ALTERNATIVE_OUTPUT_PICTURE_ROTATION, RECON_WRITE_DISABLE
+#define MSVDX_CMDS_ALTERNATIVE_OUTPUT_PICTURE_ROTATION_RECON_WRITE_DISABLE_MASK (0x00000004)
+#define MSVDX_CMDS_ALTERNATIVE_OUTPUT_PICTURE_ROTATION_RECON_WRITE_DISABLE_LSBMASK (0x00000001)
+#define MSVDX_CMDS_ALTERNATIVE_OUTPUT_PICTURE_ROTATION_RECON_WRITE_DISABLE_SHIFT (2)
+
+// MSVDX_CMDS, ALTERNATIVE_OUTPUT_PICTURE_ROTATION, ROTATION_MODE
+#define MSVDX_CMDS_ALTERNATIVE_OUTPUT_PICTURE_ROTATION_ROTATION_MODE_MASK (0x00000003)
+#define MSVDX_CMDS_ALTERNATIVE_OUTPUT_PICTURE_ROTATION_ROTATION_MODE_LSBMASK (0x00000003)
+#define MSVDX_CMDS_ALTERNATIVE_OUTPUT_PICTURE_ROTATION_ROTATION_MODE_SHIFT (0)
+
+#define MSVDX_CMDS_EXTENDED_ROW_STRIDE_OFFSET (0x0040)
+
+// MSVDX_CMDS, EXTENDED_ROW_STRIDE, RPR_ROW_STRIDE
+#define MSVDX_CMDS_EXTENDED_ROW_STRIDE_RPR_ROW_STRIDE_MASK (0xFFC00000)
+#define MSVDX_CMDS_EXTENDED_ROW_STRIDE_RPR_ROW_STRIDE_LSBMASK (0x000003FF)
+#define MSVDX_CMDS_EXTENDED_ROW_STRIDE_RPR_ROW_STRIDE_SHIFT (22)
+
+// MSVDX_CMDS, EXTENDED_ROW_STRIDE, EXT_ROW_STRIDE
+#define MSVDX_CMDS_EXTENDED_ROW_STRIDE_EXT_ROW_STRIDE_MASK (0x0000FFC0)
+#define MSVDX_CMDS_EXTENDED_ROW_STRIDE_EXT_ROW_STRIDE_LSBMASK (0x000003FF)
+#define MSVDX_CMDS_EXTENDED_ROW_STRIDE_EXT_ROW_STRIDE_SHIFT (6)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __MSVDX_CMDS_IO2_H__ */
diff --git a/src/hwdefs/msvdx_core_regs_io2.h b/src/hwdefs/msvdx_core_regs_io2.h
new file mode 100644
index 0000000..a9b39bd
--- /dev/null
+++ b/src/hwdefs/msvdx_core_regs_io2.h
@@ -0,0 +1,747 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+
+/*!
+******************************************************************************
+@file : /work/sim/msvdx/register_includes/msvdx_core_regs_io2.h
+
+@brief
+
+@Author <Autogenerated>
+
+<b>Description:</b>\n
+ This file contains the MSVDX_CORE_REGS_IO2_H Defintions.
+
+<b>Platform:</b>\n
+ ?
+
+@Version
+ 1.0
+
+******************************************************************************/
+
+#if !defined (__MSVDX_CORE_REGS_IO2_H__)
+#define __MSVDX_CORE_REGS_IO2_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+#define MSVDX_CORE_CR_MMU_DIR_LIST_BASE_OFFSET (0x0094)
+#define MSVDX_CORE_CR_MMU_DIR_LIST_BASE_STRIDE (4)
+#define MSVDX_CORE_CR_MMU_DIR_LIST_BASE_NO_ENTRIES (4)
+
+// MSVDX_CORE CR_MMU_DIR_LIST_BASE CR_MMU_DIR_LIST_BASE_ADDR
+#define MSVDX_CORE_CR_MMU_DIR_LIST_BASE_CR_MMU_DIR_LIST_BASE_ADDR_MASK (0xFFFFF000)
+#define MSVDX_CORE_CR_MMU_DIR_LIST_BASE_CR_MMU_DIR_LIST_BASE_ADDR_LSBMASK (0x000FFFFF)
+#define MSVDX_CORE_CR_MMU_DIR_LIST_BASE_CR_MMU_DIR_LIST_BASE_ADDR_SHIFT (12)
+
+#define MSVDX_CORE_CR_MMU_TILE_OFFSET (0x00D4)
+#define MSVDX_CORE_CR_MMU_TILE_STRIDE (4)
+#define MSVDX_CORE_CR_MMU_TILE_NO_ENTRIES (4)
+
+// MSVDX_CORE CR_MMU_TILE CR_TILE_MIN_ADDR
+#define MSVDX_CORE_CR_MMU_TILE_CR_TILE_MIN_ADDR_MASK (0x00000FFF)
+#define MSVDX_CORE_CR_MMU_TILE_CR_TILE_MIN_ADDR_LSBMASK (0x00000FFF)
+#define MSVDX_CORE_CR_MMU_TILE_CR_TILE_MIN_ADDR_SHIFT (0)
+
+// MSVDX_CORE CR_MMU_TILE CR_TILE_MAX_ADDR
+#define MSVDX_CORE_CR_MMU_TILE_CR_TILE_MAX_ADDR_MASK (0x00FFF000)
+#define MSVDX_CORE_CR_MMU_TILE_CR_TILE_MAX_ADDR_LSBMASK (0x00000FFF)
+#define MSVDX_CORE_CR_MMU_TILE_CR_TILE_MAX_ADDR_SHIFT (12)
+
+// MSVDX_CORE CR_MMU_TILE CR_TILE_CFG
+#define MSVDX_CORE_CR_MMU_TILE_CR_TILE_CFG_MASK (0x0F000000)
+#define MSVDX_CORE_CR_MMU_TILE_CR_TILE_CFG_LSBMASK (0x0000000F)
+#define MSVDX_CORE_CR_MMU_TILE_CR_TILE_CFG_SHIFT (24)
+
+#define MSVDX_CORE_CR_MSVDX_CONTROL_OFFSET (0x0000)
+
+// MSVDX_CORE CR_MSVDX_CONTROL CR_ENDIAN
+#define MSVDX_CORE_CR_MSVDX_CONTROL_CR_ENDIAN_MASK (0x00000001)
+#define MSVDX_CORE_CR_MSVDX_CONTROL_CR_ENDIAN_LSBMASK (0x00000001)
+#define MSVDX_CORE_CR_MSVDX_CONTROL_CR_ENDIAN_SHIFT (0)
+
+// MSVDX_CORE CR_MSVDX_CONTROL CR_MSVDX_SOFT_RESET
+#define MSVDX_CORE_CR_MSVDX_CONTROL_CR_MSVDX_SOFT_RESET_MASK (0x00000100)
+#define MSVDX_CORE_CR_MSVDX_CONTROL_CR_MSVDX_SOFT_RESET_LSBMASK (0x00000001)
+#define MSVDX_CORE_CR_MSVDX_CONTROL_CR_MSVDX_SOFT_RESET_SHIFT (8)
+
+// MSVDX_CORE CR_MSVDX_CONTROL DMAC_CH0_SELECT
+#define MSVDX_CORE_CR_MSVDX_CONTROL_DMAC_CH0_SELECT_MASK (0x00001000)
+#define MSVDX_CORE_CR_MSVDX_CONTROL_DMAC_CH0_SELECT_LSBMASK (0x00000001)
+#define MSVDX_CORE_CR_MSVDX_CONTROL_DMAC_CH0_SELECT_SHIFT (12)
+
+// MSVDX_CORE CR_MSVDX_CONTROL CR_MSVDX_FE_SOFT_RESET
+#define MSVDX_CORE_CR_MSVDX_CONTROL_CR_MSVDX_FE_SOFT_RESET_MASK (0x00010000)
+#define MSVDX_CORE_CR_MSVDX_CONTROL_CR_MSVDX_FE_SOFT_RESET_LSBMASK (0x00000001)
+#define MSVDX_CORE_CR_MSVDX_CONTROL_CR_MSVDX_FE_SOFT_RESET_SHIFT (16)
+
+// MSVDX_CORE CR_MSVDX_CONTROL CR_MSVDX_BE_SOFT_RESET
+#define MSVDX_CORE_CR_MSVDX_CONTROL_CR_MSVDX_BE_SOFT_RESET_MASK (0x00100000)
+#define MSVDX_CORE_CR_MSVDX_CONTROL_CR_MSVDX_BE_SOFT_RESET_LSBMASK (0x00000001)
+#define MSVDX_CORE_CR_MSVDX_CONTROL_CR_MSVDX_BE_SOFT_RESET_SHIFT (20)
+
+// MSVDX_CORE CR_MSVDX_CONTROL CR_MSVDX_VDMC_VDEB_SOFT_RESET
+#define MSVDX_CORE_CR_MSVDX_CONTROL_CR_MSVDX_VDMC_VDEB_SOFT_RESET_MASK (0x00200000)
+#define MSVDX_CORE_CR_MSVDX_CONTROL_CR_MSVDX_VDMC_VDEB_SOFT_RESET_LSBMASK (0x00000001)
+#define MSVDX_CORE_CR_MSVDX_CONTROL_CR_MSVDX_VDMC_VDEB_SOFT_RESET_SHIFT (21)
+
+// MSVDX_CORE CR_MSVDX_CONTROL CR_MSVDX_VEC_MEMIF_SOFT_RESET
+#define MSVDX_CORE_CR_MSVDX_CONTROL_CR_MSVDX_VEC_MEMIF_SOFT_RESET_MASK (0x01000000)
+#define MSVDX_CORE_CR_MSVDX_CONTROL_CR_MSVDX_VEC_MEMIF_SOFT_RESET_LSBMASK (0x00000001)
+#define MSVDX_CORE_CR_MSVDX_CONTROL_CR_MSVDX_VEC_MEMIF_SOFT_RESET_SHIFT (24)
+
+// MSVDX_CORE CR_MSVDX_CONTROL CR_MSVDX_VEC_RENDEC_DEC_SOFT_RESET
+#define MSVDX_CORE_CR_MSVDX_CONTROL_CR_MSVDX_VEC_RENDEC_DEC_SOFT_RESET_MASK (0x10000000)
+#define MSVDX_CORE_CR_MSVDX_CONTROL_CR_MSVDX_VEC_RENDEC_DEC_SOFT_RESET_LSBMASK (0x00000001)
+#define MSVDX_CORE_CR_MSVDX_CONTROL_CR_MSVDX_VEC_RENDEC_DEC_SOFT_RESET_SHIFT (28)
+
+#define MSVDX_CORE_CR_MSVDX_INTERNAL_OFFSET (0x0004)
+
+// MSVDX_CORE CR_MSVDX_INTERNAL CR_MPEG4_DP_SUPPORTED
+#define MSVDX_CORE_CR_MSVDX_INTERNAL_CR_MPEG4_DP_SUPPORTED_MASK (0x40000000)
+#define MSVDX_CORE_CR_MSVDX_INTERNAL_CR_MPEG4_DP_SUPPORTED_LSBMASK (0x00000001)
+#define MSVDX_CORE_CR_MSVDX_INTERNAL_CR_MPEG4_DP_SUPPORTED_SHIFT (30)
+
+// MSVDX_CORE CR_MSVDX_INTERNAL CR_JPEG_SUPPORTED
+#define MSVDX_CORE_CR_MSVDX_INTERNAL_CR_JPEG_SUPPORTED_MASK (0x20000000)
+#define MSVDX_CORE_CR_MSVDX_INTERNAL_CR_JPEG_SUPPORTED_LSBMASK (0x00000001)
+#define MSVDX_CORE_CR_MSVDX_INTERNAL_CR_JPEG_SUPPORTED_SHIFT (29)
+
+// MSVDX_CORE CR_MSVDX_INTERNAL CR_WMV_SUPPORTED
+#define MSVDX_CORE_CR_MSVDX_INTERNAL_CR_WMV_SUPPORTED_MASK (0x10000000)
+#define MSVDX_CORE_CR_MSVDX_INTERNAL_CR_WMV_SUPPORTED_LSBMASK (0x00000001)
+#define MSVDX_CORE_CR_MSVDX_INTERNAL_CR_WMV_SUPPORTED_SHIFT (28)
+
+// MSVDX_CORE CR_MSVDX_INTERNAL CR_VC1_SUPPORTED
+#define MSVDX_CORE_CR_MSVDX_INTERNAL_CR_VC1_SUPPORTED_MASK (0x08000000)
+#define MSVDX_CORE_CR_MSVDX_INTERNAL_CR_VC1_SUPPORTED_LSBMASK (0x00000001)
+#define MSVDX_CORE_CR_MSVDX_INTERNAL_CR_VC1_SUPPORTED_SHIFT (27)
+
+// MSVDX_CORE CR_MSVDX_INTERNAL CR_H264_SUPPORTED
+#define MSVDX_CORE_CR_MSVDX_INTERNAL_CR_H264_SUPPORTED_MASK (0x04000000)
+#define MSVDX_CORE_CR_MSVDX_INTERNAL_CR_H264_SUPPORTED_LSBMASK (0x00000001)
+#define MSVDX_CORE_CR_MSVDX_INTERNAL_CR_H264_SUPPORTED_SHIFT (26)
+
+// MSVDX_CORE CR_MSVDX_INTERNAL CR_MPEG4_SUPPORTED
+#define MSVDX_CORE_CR_MSVDX_INTERNAL_CR_MPEG4_SUPPORTED_MASK (0x02000000)
+#define MSVDX_CORE_CR_MSVDX_INTERNAL_CR_MPEG4_SUPPORTED_LSBMASK (0x00000001)
+#define MSVDX_CORE_CR_MSVDX_INTERNAL_CR_MPEG4_SUPPORTED_SHIFT (25)
+
+// MSVDX_CORE CR_MSVDX_INTERNAL CR_MPEG2_SUPPORTED
+#define MSVDX_CORE_CR_MSVDX_INTERNAL_CR_MPEG2_SUPPORTED_MASK (0x01000000)
+#define MSVDX_CORE_CR_MSVDX_INTERNAL_CR_MPEG2_SUPPORTED_LSBMASK (0x00000001)
+#define MSVDX_CORE_CR_MSVDX_INTERNAL_CR_MPEG2_SUPPORTED_SHIFT (24)
+
+// MSVDX_CORE CR_MSVDX_INTERNAL CR_MSVDX_INTERNAL
+#define MSVDX_CORE_CR_MSVDX_INTERNAL_CR_MSVDX_INTERNAL_MASK (0x00FFFFFF)
+#define MSVDX_CORE_CR_MSVDX_INTERNAL_CR_MSVDX_INTERNAL_LSBMASK (0x00FFFFFF)
+#define MSVDX_CORE_CR_MSVDX_INTERNAL_CR_MSVDX_INTERNAL_SHIFT (0)
+
+#define MSVDX_CORE_CR_MSVDX_INTERRUPT_STATUS_OFFSET (0x0008)
+
+// MSVDX_CORE CR_MSVDX_INTERRUPT_STATUS CR_VEC_END_OF_SLICE
+#define MSVDX_CORE_CR_MSVDX_INTERRUPT_STATUS_CR_VEC_END_OF_SLICE_MASK (0x00000001)
+#define MSVDX_CORE_CR_MSVDX_INTERRUPT_STATUS_CR_VEC_END_OF_SLICE_LSBMASK (0x00000001)
+#define MSVDX_CORE_CR_MSVDX_INTERRUPT_STATUS_CR_VEC_END_OF_SLICE_SHIFT (0)
+
+// MSVDX_CORE CR_MSVDX_INTERRUPT_STATUS CR_VEC_ERROR_DETECTED_SR
+#define MSVDX_CORE_CR_MSVDX_INTERRUPT_STATUS_CR_VEC_ERROR_DETECTED_SR_MASK (0x00000002)
+#define MSVDX_CORE_CR_MSVDX_INTERRUPT_STATUS_CR_VEC_ERROR_DETECTED_SR_LSBMASK (0x00000001)
+#define MSVDX_CORE_CR_MSVDX_INTERRUPT_STATUS_CR_VEC_ERROR_DETECTED_SR_SHIFT (1)
+
+// MSVDX_CORE CR_MSVDX_INTERRUPT_STATUS CR_VEC_ERROR_DETECTED_ENTDEC
+#define MSVDX_CORE_CR_MSVDX_INTERRUPT_STATUS_CR_VEC_ERROR_DETECTED_ENTDEC_MASK (0x00000004)
+#define MSVDX_CORE_CR_MSVDX_INTERRUPT_STATUS_CR_VEC_ERROR_DETECTED_ENTDEC_LSBMASK (0x00000001)
+#define MSVDX_CORE_CR_MSVDX_INTERRUPT_STATUS_CR_VEC_ERROR_DETECTED_ENTDEC_SHIFT (2)
+
+// MSVDX_CORE CR_MSVDX_INTERRUPT_STATUS CR_VEC_RENDEC_ERROR
+#define MSVDX_CORE_CR_MSVDX_INTERRUPT_STATUS_CR_VEC_RENDEC_ERROR_MASK (0x00000008)
+#define MSVDX_CORE_CR_MSVDX_INTERRUPT_STATUS_CR_VEC_RENDEC_ERROR_LSBMASK (0x00000001)
+#define MSVDX_CORE_CR_MSVDX_INTERRUPT_STATUS_CR_VEC_RENDEC_ERROR_SHIFT (3)
+
+// MSVDX_CORE CR_MSVDX_INTERRUPT_STATUS CR_VEC_RENDEC_OVERFLOW
+#define MSVDX_CORE_CR_MSVDX_INTERRUPT_STATUS_CR_VEC_RENDEC_OVERFLOW_MASK (0x00000010)
+#define MSVDX_CORE_CR_MSVDX_INTERRUPT_STATUS_CR_VEC_RENDEC_OVERFLOW_LSBMASK (0x00000001)
+#define MSVDX_CORE_CR_MSVDX_INTERRUPT_STATUS_CR_VEC_RENDEC_OVERFLOW_SHIFT (4)
+
+// MSVDX_CORE CR_MSVDX_INTERRUPT_STATUS CR_VEC_RENDEC_UNDERFLOW
+#define MSVDX_CORE_CR_MSVDX_INTERRUPT_STATUS_CR_VEC_RENDEC_UNDERFLOW_MASK (0x00000020)
+#define MSVDX_CORE_CR_MSVDX_INTERRUPT_STATUS_CR_VEC_RENDEC_UNDERFLOW_LSBMASK (0x00000001)
+#define MSVDX_CORE_CR_MSVDX_INTERRUPT_STATUS_CR_VEC_RENDEC_UNDERFLOW_SHIFT (5)
+
+// MSVDX_CORE CR_MSVDX_INTERRUPT_STATUS CR_VEC_RENDEC_MTXBLOCK
+#define MSVDX_CORE_CR_MSVDX_INTERRUPT_STATUS_CR_VEC_RENDEC_MTXBLOCK_MASK (0x00000040)
+#define MSVDX_CORE_CR_MSVDX_INTERRUPT_STATUS_CR_VEC_RENDEC_MTXBLOCK_LSBMASK (0x00000001)
+#define MSVDX_CORE_CR_MSVDX_INTERRUPT_STATUS_CR_VEC_RENDEC_MTXBLOCK_SHIFT (6)
+
+// MSVDX_CORE CR_MSVDX_INTERRUPT_STATUS CR_VEC_RENDEC_END_OF_SLICE
+#define MSVDX_CORE_CR_MSVDX_INTERRUPT_STATUS_CR_VEC_RENDEC_END_OF_SLICE_MASK (0x00000080)
+#define MSVDX_CORE_CR_MSVDX_INTERRUPT_STATUS_CR_VEC_RENDEC_END_OF_SLICE_LSBMASK (0x00000001)
+#define MSVDX_CORE_CR_MSVDX_INTERRUPT_STATUS_CR_VEC_RENDEC_END_OF_SLICE_SHIFT (7)
+
+// MSVDX_CORE CR_MSVDX_INTERRUPT_STATUS CR_MMU_FAULT_IRQ
+#define MSVDX_CORE_CR_MSVDX_INTERRUPT_STATUS_CR_MMU_FAULT_IRQ_MASK (0x00000F00)
+#define MSVDX_CORE_CR_MSVDX_INTERRUPT_STATUS_CR_MMU_FAULT_IRQ_LSBMASK (0x0000000F)
+#define MSVDX_CORE_CR_MSVDX_INTERRUPT_STATUS_CR_MMU_FAULT_IRQ_SHIFT (8)
+
+// MSVDX_CORE CR_MSVDX_INTERRUPT_STATUS CR_FE_WDT_CM0
+#define MSVDX_CORE_CR_MSVDX_INTERRUPT_STATUS_CR_FE_WDT_CM0_MASK (0x00001000)
+#define MSVDX_CORE_CR_MSVDX_INTERRUPT_STATUS_CR_FE_WDT_CM0_LSBMASK (0x00000001)
+#define MSVDX_CORE_CR_MSVDX_INTERRUPT_STATUS_CR_FE_WDT_CM0_SHIFT (12)
+
+// MSVDX_CORE CR_MSVDX_INTERRUPT_STATUS CR_FE_WDT_CM1
+#define MSVDX_CORE_CR_MSVDX_INTERRUPT_STATUS_CR_FE_WDT_CM1_MASK (0x00002000)
+#define MSVDX_CORE_CR_MSVDX_INTERRUPT_STATUS_CR_FE_WDT_CM1_LSBMASK (0x00000001)
+#define MSVDX_CORE_CR_MSVDX_INTERRUPT_STATUS_CR_FE_WDT_CM1_SHIFT (13)
+
+// MSVDX_CORE CR_MSVDX_INTERRUPT_STATUS CR_MTX_IRQ
+#define MSVDX_CORE_CR_MSVDX_INTERRUPT_STATUS_CR_MTX_IRQ_MASK (0x00004000)
+#define MSVDX_CORE_CR_MSVDX_INTERRUPT_STATUS_CR_MTX_IRQ_LSBMASK (0x00000001)
+#define MSVDX_CORE_CR_MSVDX_INTERRUPT_STATUS_CR_MTX_IRQ_SHIFT (14)
+
+// MSVDX_CORE CR_MSVDX_INTERRUPT_STATUS CR_MTX_GPIO_IRQ
+#define MSVDX_CORE_CR_MSVDX_INTERRUPT_STATUS_CR_MTX_GPIO_IRQ_MASK (0x00008000)
+#define MSVDX_CORE_CR_MSVDX_INTERRUPT_STATUS_CR_MTX_GPIO_IRQ_LSBMASK (0x00000001)
+#define MSVDX_CORE_CR_MSVDX_INTERRUPT_STATUS_CR_MTX_GPIO_IRQ_SHIFT (15)
+
+// MSVDX_CORE CR_MSVDX_INTERRUPT_STATUS CR_VDMC_IRQ
+#define MSVDX_CORE_CR_MSVDX_INTERRUPT_STATUS_CR_VDMC_IRQ_MASK (0x00010000)
+#define MSVDX_CORE_CR_MSVDX_INTERRUPT_STATUS_CR_VDMC_IRQ_LSBMASK (0x00000001)
+#define MSVDX_CORE_CR_MSVDX_INTERRUPT_STATUS_CR_VDMC_IRQ_SHIFT (16)
+
+// MSVDX_CORE CR_MSVDX_INTERRUPT_STATUS CR_VDEB_PICTURE_DONE_IRQ
+#define MSVDX_CORE_CR_MSVDX_INTERRUPT_STATUS_CR_VDEB_PICTURE_DONE_IRQ_MASK (0x00020000)
+#define MSVDX_CORE_CR_MSVDX_INTERRUPT_STATUS_CR_VDEB_PICTURE_DONE_IRQ_LSBMASK (0x00000001)
+#define MSVDX_CORE_CR_MSVDX_INTERRUPT_STATUS_CR_VDEB_PICTURE_DONE_IRQ_SHIFT (17)
+
+// MSVDX_CORE CR_MSVDX_INTERRUPT_STATUS CR_VDEB_SLICE_DONE_IRQ
+#define MSVDX_CORE_CR_MSVDX_INTERRUPT_STATUS_CR_VDEB_SLICE_DONE_IRQ_MASK (0x00040000)
+#define MSVDX_CORE_CR_MSVDX_INTERRUPT_STATUS_CR_VDEB_SLICE_DONE_IRQ_LSBMASK (0x00000001)
+#define MSVDX_CORE_CR_MSVDX_INTERRUPT_STATUS_CR_VDEB_SLICE_DONE_IRQ_SHIFT (18)
+
+// MSVDX_CORE CR_MSVDX_INTERRUPT_STATUS CR_VDEB_FLUSH_DONE_IRQ
+#define MSVDX_CORE_CR_MSVDX_INTERRUPT_STATUS_CR_VDEB_FLUSH_DONE_IRQ_MASK (0x00080000)
+#define MSVDX_CORE_CR_MSVDX_INTERRUPT_STATUS_CR_VDEB_FLUSH_DONE_IRQ_LSBMASK (0x00000001)
+#define MSVDX_CORE_CR_MSVDX_INTERRUPT_STATUS_CR_VDEB_FLUSH_DONE_IRQ_SHIFT (19)
+
+// MSVDX_CORE CR_MSVDX_INTERRUPT_STATUS CR_DMAC_IRQ
+#define MSVDX_CORE_CR_MSVDX_INTERRUPT_STATUS_CR_DMAC_IRQ_MASK (0x00700000)
+#define MSVDX_CORE_CR_MSVDX_INTERRUPT_STATUS_CR_DMAC_IRQ_LSBMASK (0x00000007)
+#define MSVDX_CORE_CR_MSVDX_INTERRUPT_STATUS_CR_DMAC_IRQ_SHIFT (20)
+
+// MSVDX_CORE CR_MSVDX_INTERRUPT_STATUS CR_VDEB_FAULT_IRQ
+#define MSVDX_CORE_CR_MSVDX_INTERRUPT_STATUS_CR_VDEB_FAULT_IRQ_MASK (0x00800000)
+#define MSVDX_CORE_CR_MSVDX_INTERRUPT_STATUS_CR_VDEB_FAULT_IRQ_LSBMASK (0x00000001)
+#define MSVDX_CORE_CR_MSVDX_INTERRUPT_STATUS_CR_VDEB_FAULT_IRQ_SHIFT (23)
+
+// MSVDX_CORE CR_MSVDX_INTERRUPT_STATUS CR_SYS_COMMAND_TIMEOUT_IRQ
+#define MSVDX_CORE_CR_MSVDX_INTERRUPT_STATUS_CR_SYS_COMMAND_TIMEOUT_IRQ_MASK (0x01000000)
+#define MSVDX_CORE_CR_MSVDX_INTERRUPT_STATUS_CR_SYS_COMMAND_TIMEOUT_IRQ_LSBMASK (0x00000001)
+#define MSVDX_CORE_CR_MSVDX_INTERRUPT_STATUS_CR_SYS_COMMAND_TIMEOUT_IRQ_SHIFT (24)
+
+// MSVDX_CORE CR_MSVDX_INTERRUPT_STATUS CR_SYS_READ_TIMEOUT_IRQ
+#define MSVDX_CORE_CR_MSVDX_INTERRUPT_STATUS_CR_SYS_READ_TIMEOUT_IRQ_MASK (0x02000000)
+#define MSVDX_CORE_CR_MSVDX_INTERRUPT_STATUS_CR_SYS_READ_TIMEOUT_IRQ_LSBMASK (0x00000001)
+#define MSVDX_CORE_CR_MSVDX_INTERRUPT_STATUS_CR_SYS_READ_TIMEOUT_IRQ_SHIFT (25)
+
+// MSVDX_CORE CR_MSVDX_INTERRUPT_STATUS CR_MTX_COMMAND_TIMEOUT_IRQ
+#define MSVDX_CORE_CR_MSVDX_INTERRUPT_STATUS_CR_MTX_COMMAND_TIMEOUT_IRQ_MASK (0x04000000)
+#define MSVDX_CORE_CR_MSVDX_INTERRUPT_STATUS_CR_MTX_COMMAND_TIMEOUT_IRQ_LSBMASK (0x00000001)
+#define MSVDX_CORE_CR_MSVDX_INTERRUPT_STATUS_CR_MTX_COMMAND_TIMEOUT_IRQ_SHIFT (26)
+
+// MSVDX_CORE CR_MSVDX_INTERRUPT_STATUS CR_MTX_READ_TIMEOUT_IRQ
+#define MSVDX_CORE_CR_MSVDX_INTERRUPT_STATUS_CR_MTX_READ_TIMEOUT_IRQ_MASK (0x08000000)
+#define MSVDX_CORE_CR_MSVDX_INTERRUPT_STATUS_CR_MTX_READ_TIMEOUT_IRQ_LSBMASK (0x00000001)
+#define MSVDX_CORE_CR_MSVDX_INTERRUPT_STATUS_CR_MTX_READ_TIMEOUT_IRQ_SHIFT (27)
+
+// MSVDX_CORE CR_MSVDX_INTERRUPT_STATUS CR_SYS_WDT
+#define MSVDX_CORE_CR_MSVDX_INTERRUPT_STATUS_CR_SYS_WDT_MASK (0x10000000)
+#define MSVDX_CORE_CR_MSVDX_INTERRUPT_STATUS_CR_SYS_WDT_LSBMASK (0x00000001)
+#define MSVDX_CORE_CR_MSVDX_INTERRUPT_STATUS_CR_SYS_WDT_SHIFT (28)
+
+// MSVDX_CORE CR_MSVDX_INTERRUPT_STATUS CR_BE_WDT_CM0
+#define MSVDX_CORE_CR_MSVDX_INTERRUPT_STATUS_CR_BE_WDT_CM0_MASK (0x20000000)
+#define MSVDX_CORE_CR_MSVDX_INTERRUPT_STATUS_CR_BE_WDT_CM0_LSBMASK (0x00000001)
+#define MSVDX_CORE_CR_MSVDX_INTERRUPT_STATUS_CR_BE_WDT_CM0_SHIFT (29)
+
+// MSVDX_CORE CR_MSVDX_INTERRUPT_STATUS CR_BE_WDT_CM1
+#define MSVDX_CORE_CR_MSVDX_INTERRUPT_STATUS_CR_BE_WDT_CM1_MASK (0x40000000)
+#define MSVDX_CORE_CR_MSVDX_INTERRUPT_STATUS_CR_BE_WDT_CM1_LSBMASK (0x00000001)
+#define MSVDX_CORE_CR_MSVDX_INTERRUPT_STATUS_CR_BE_WDT_CM1_SHIFT (30)
+
+// MSVDX_CORE CR_MSVDX_INTERRUPT_STATUS CR_VEC_RENDEC_SLICE_SKIPPED
+#define MSVDX_CORE_CR_MSVDX_INTERRUPT_STATUS_CR_VEC_RENDEC_SLICE_SKIPPED_MASK (0x80000000)
+#define MSVDX_CORE_CR_MSVDX_INTERRUPT_STATUS_CR_VEC_RENDEC_SLICE_SKIPPED_LSBMASK (0x00000001)
+#define MSVDX_CORE_CR_MSVDX_INTERRUPT_STATUS_CR_VEC_RENDEC_SLICE_SKIPPED_SHIFT (31)
+
+#define MSVDX_CORE_CR_MSVDX_INTERRUPT_CLEAR_OFFSET (0x000C)
+
+// MSVDX_CORE CR_MSVDX_INTERRUPT_CLEAR CR_IRQ_CLEAR
+#define MSVDX_CORE_CR_MSVDX_INTERRUPT_CLEAR_CR_IRQ_CLEAR_MASK (0xFFFFFFFF)
+#define MSVDX_CORE_CR_MSVDX_INTERRUPT_CLEAR_CR_IRQ_CLEAR_LSBMASK (0xFFFFFFFF)
+#define MSVDX_CORE_CR_MSVDX_INTERRUPT_CLEAR_CR_IRQ_CLEAR_SHIFT (0)
+
+#define MSVDX_CORE_CR_MSVDX_HOST_INTERRUPT_ENABLE_OFFSET (0x0010)
+
+// MSVDX_CORE CR_MSVDX_HOST_INTERRUPT_ENABLE CR_HOST_IRQ_ENABLE
+#define MSVDX_CORE_CR_MSVDX_HOST_INTERRUPT_ENABLE_CR_HOST_IRQ_ENABLE_MASK (0xFFFFFFFF)
+#define MSVDX_CORE_CR_MSVDX_HOST_INTERRUPT_ENABLE_CR_HOST_IRQ_ENABLE_LSBMASK (0xFFFFFFFF)
+#define MSVDX_CORE_CR_MSVDX_HOST_INTERRUPT_ENABLE_CR_HOST_IRQ_ENABLE_SHIFT (0)
+
+#define MSVDX_CORE_CR_MSVDX_MTX_INTERRUPT1_ENABLE_OFFSET (0x0014)
+
+// MSVDX_CORE CR_MSVDX_MTX_INTERRUPT1_ENABLE CR_MTX_IRQ1_ENABLE
+#define MSVDX_CORE_CR_MSVDX_MTX_INTERRUPT1_ENABLE_CR_MTX_IRQ1_ENABLE_MASK (0xFFFFFFFF)
+#define MSVDX_CORE_CR_MSVDX_MTX_INTERRUPT1_ENABLE_CR_MTX_IRQ1_ENABLE_LSBMASK (0xFFFFFFFF)
+#define MSVDX_CORE_CR_MSVDX_MTX_INTERRUPT1_ENABLE_CR_MTX_IRQ1_ENABLE_SHIFT (0)
+
+#define MSVDX_CORE_CR_MSVDX_MTX_INTERRUPT2_ENABLE_OFFSET (0x0018)
+
+// MSVDX_CORE CR_MSVDX_MTX_INTERRUPT2_ENABLE CR_MTX_IRQ2_ENABLE
+#define MSVDX_CORE_CR_MSVDX_MTX_INTERRUPT2_ENABLE_CR_MTX_IRQ2_ENABLE_MASK (0xFFFFFFFF)
+#define MSVDX_CORE_CR_MSVDX_MTX_INTERRUPT2_ENABLE_CR_MTX_IRQ2_ENABLE_LSBMASK (0xFFFFFFFF)
+#define MSVDX_CORE_CR_MSVDX_MTX_INTERRUPT2_ENABLE_CR_MTX_IRQ2_ENABLE_SHIFT (0)
+
+#define MSVDX_CORE_CR_MSVDX_RSVD0_OFFSET (0x001C)
+
+// MSVDX_CORE CR_MSVDX_RSVD0 CR_RSVD0
+#define MSVDX_CORE_CR_MSVDX_RSVD0_CR_RSVD0_MASK (0xFFFFFFFF)
+#define MSVDX_CORE_CR_MSVDX_RSVD0_CR_RSVD0_LSBMASK (0xFFFFFFFF)
+#define MSVDX_CORE_CR_MSVDX_RSVD0_CR_RSVD0_SHIFT (0)
+
+#define MSVDX_CORE_CR_MSVDX_MAN_CLK_ENABLE_OFFSET (0x0020)
+
+// MSVDX_CORE CR_MSVDX_MAN_CLK_ENABLE CR_CORE_MAN_CLK_ENABLE
+#define MSVDX_CORE_CR_MSVDX_MAN_CLK_ENABLE_CR_CORE_MAN_CLK_ENABLE_MASK (0x00000001)
+#define MSVDX_CORE_CR_MSVDX_MAN_CLK_ENABLE_CR_CORE_MAN_CLK_ENABLE_LSBMASK (0x00000001)
+#define MSVDX_CORE_CR_MSVDX_MAN_CLK_ENABLE_CR_CORE_MAN_CLK_ENABLE_SHIFT (0)
+
+// MSVDX_CORE CR_MSVDX_MAN_CLK_ENABLE CR_VDEB_PROCESS_MAN_CLK_ENABLE
+#define MSVDX_CORE_CR_MSVDX_MAN_CLK_ENABLE_CR_VDEB_PROCESS_MAN_CLK_ENABLE_MASK (0x00000002)
+#define MSVDX_CORE_CR_MSVDX_MAN_CLK_ENABLE_CR_VDEB_PROCESS_MAN_CLK_ENABLE_LSBMASK (0x00000001)
+#define MSVDX_CORE_CR_MSVDX_MAN_CLK_ENABLE_CR_VDEB_PROCESS_MAN_CLK_ENABLE_SHIFT (1)
+
+// MSVDX_CORE CR_MSVDX_MAN_CLK_ENABLE CR_VDEB_ACCESS_MAN_CLK_ENABLE
+#define MSVDX_CORE_CR_MSVDX_MAN_CLK_ENABLE_CR_VDEB_ACCESS_MAN_CLK_ENABLE_MASK (0x00000004)
+#define MSVDX_CORE_CR_MSVDX_MAN_CLK_ENABLE_CR_VDEB_ACCESS_MAN_CLK_ENABLE_LSBMASK (0x00000001)
+#define MSVDX_CORE_CR_MSVDX_MAN_CLK_ENABLE_CR_VDEB_ACCESS_MAN_CLK_ENABLE_SHIFT (2)
+
+// MSVDX_CORE CR_MSVDX_MAN_CLK_ENABLE CR_VDMC_MAN_CLK_ENABLE
+#define MSVDX_CORE_CR_MSVDX_MAN_CLK_ENABLE_CR_VDMC_MAN_CLK_ENABLE_MASK (0x00000008)
+#define MSVDX_CORE_CR_MSVDX_MAN_CLK_ENABLE_CR_VDMC_MAN_CLK_ENABLE_LSBMASK (0x00000001)
+#define MSVDX_CORE_CR_MSVDX_MAN_CLK_ENABLE_CR_VDMC_MAN_CLK_ENABLE_SHIFT (3)
+
+// MSVDX_CORE CR_MSVDX_MAN_CLK_ENABLE CR_VEC_ENTDEC_MAN_CLK_ENABLE
+#define MSVDX_CORE_CR_MSVDX_MAN_CLK_ENABLE_CR_VEC_ENTDEC_MAN_CLK_ENABLE_MASK (0x00000010)
+#define MSVDX_CORE_CR_MSVDX_MAN_CLK_ENABLE_CR_VEC_ENTDEC_MAN_CLK_ENABLE_LSBMASK (0x00000001)
+#define MSVDX_CORE_CR_MSVDX_MAN_CLK_ENABLE_CR_VEC_ENTDEC_MAN_CLK_ENABLE_SHIFT (4)
+
+// MSVDX_CORE CR_MSVDX_MAN_CLK_ENABLE CR_VEC_ITRANS_MAN_CLK_ENABLE
+#define MSVDX_CORE_CR_MSVDX_MAN_CLK_ENABLE_CR_VEC_ITRANS_MAN_CLK_ENABLE_MASK (0x00000020)
+#define MSVDX_CORE_CR_MSVDX_MAN_CLK_ENABLE_CR_VEC_ITRANS_MAN_CLK_ENABLE_LSBMASK (0x00000001)
+#define MSVDX_CORE_CR_MSVDX_MAN_CLK_ENABLE_CR_VEC_ITRANS_MAN_CLK_ENABLE_SHIFT (5)
+
+// MSVDX_CORE CR_MSVDX_MAN_CLK_ENABLE CR_MTX_MAN_CLK_ENABLE
+#define MSVDX_CORE_CR_MSVDX_MAN_CLK_ENABLE_CR_MTX_MAN_CLK_ENABLE_MASK (0x00000040)
+#define MSVDX_CORE_CR_MSVDX_MAN_CLK_ENABLE_CR_MTX_MAN_CLK_ENABLE_LSBMASK (0x00000001)
+#define MSVDX_CORE_CR_MSVDX_MAN_CLK_ENABLE_CR_MTX_MAN_CLK_ENABLE_SHIFT (6)
+
+#define MSVDX_CORE_CR_MSVDX_RTM_OFFSET (0x0024)
+
+// MSVDX_CORE CR_MSVDX_RTM CR_RTM_B_BUS
+#define MSVDX_CORE_CR_MSVDX_RTM_CR_RTM_B_BUS_MASK (0xFF000000)
+#define MSVDX_CORE_CR_MSVDX_RTM_CR_RTM_B_BUS_LSBMASK (0x000000FF)
+#define MSVDX_CORE_CR_MSVDX_RTM_CR_RTM_B_BUS_SHIFT (24)
+
+// MSVDX_CORE CR_MSVDX_RTM CR_RTM_A_BUS
+#define MSVDX_CORE_CR_MSVDX_RTM_CR_RTM_A_BUS_MASK (0x00FF0000)
+#define MSVDX_CORE_CR_MSVDX_RTM_CR_RTM_A_BUS_LSBMASK (0x000000FF)
+#define MSVDX_CORE_CR_MSVDX_RTM_CR_RTM_A_BUS_SHIFT (16)
+
+// MSVDX_CORE CR_MSVDX_RTM CR_RTM_SELECT_B_MODULE
+#define MSVDX_CORE_CR_MSVDX_RTM_CR_RTM_SELECT_B_MODULE_MASK (0x00000300)
+#define MSVDX_CORE_CR_MSVDX_RTM_CR_RTM_SELECT_B_MODULE_LSBMASK (0x00000003)
+#define MSVDX_CORE_CR_MSVDX_RTM_CR_RTM_SELECT_B_MODULE_SHIFT (8)
+
+// MSVDX_CORE CR_MSVDX_RTM CR_RTM_SELECT_A_MODULE
+#define MSVDX_CORE_CR_MSVDX_RTM_CR_RTM_SELECT_A_MODULE_MASK (0x000000C0)
+#define MSVDX_CORE_CR_MSVDX_RTM_CR_RTM_SELECT_A_MODULE_LSBMASK (0x00000003)
+#define MSVDX_CORE_CR_MSVDX_RTM_CR_RTM_SELECT_A_MODULE_SHIFT (6)
+
+// MSVDX_CORE CR_MSVDX_RTM CR_RTM_SELECT_B
+#define MSVDX_CORE_CR_MSVDX_RTM_CR_RTM_SELECT_B_MASK (0x00000038)
+#define MSVDX_CORE_CR_MSVDX_RTM_CR_RTM_SELECT_B_LSBMASK (0x00000007)
+#define MSVDX_CORE_CR_MSVDX_RTM_CR_RTM_SELECT_B_SHIFT (3)
+
+// MSVDX_CORE CR_MSVDX_RTM CR_RTM_SELECT_A
+#define MSVDX_CORE_CR_MSVDX_RTM_CR_RTM_SELECT_A_MASK (0x00000007)
+#define MSVDX_CORE_CR_MSVDX_RTM_CR_RTM_SELECT_A_LSBMASK (0x00000007)
+#define MSVDX_CORE_CR_MSVDX_RTM_CR_RTM_SELECT_A_SHIFT (0)
+
+#define MSVDX_CORE_CR_MSVDX_COMMAND_SPACE_OFFSET (0x0028)
+
+// MSVDX_CORE CR_MSVDX_COMMAND_SPACE CR_MSVDX_CMD_BUFFER_SPACE
+#define MSVDX_CORE_CR_MSVDX_COMMAND_SPACE_CR_MSVDX_CMD_BUFFER_SPACE_MASK (0xFFFFFFFF)
+#define MSVDX_CORE_CR_MSVDX_COMMAND_SPACE_CR_MSVDX_CMD_BUFFER_SPACE_LSBMASK (0xFFFFFFFF)
+#define MSVDX_CORE_CR_MSVDX_COMMAND_SPACE_CR_MSVDX_CMD_BUFFER_SPACE_SHIFT (0)
+
+#define MSVDX_CORE_CR_MSVDX_RENDEC_SPACE_OFFSET (0x002C)
+
+// MSVDX_CORE CR_MSVDX_RENDEC_SPACE CR_MSVDX_RENDEC_WRITE_SPACE
+#define MSVDX_CORE_CR_MSVDX_RENDEC_SPACE_CR_MSVDX_RENDEC_WRITE_SPACE_MASK (0x00000001)
+#define MSVDX_CORE_CR_MSVDX_RENDEC_SPACE_CR_MSVDX_RENDEC_WRITE_SPACE_LSBMASK (0x00000001)
+#define MSVDX_CORE_CR_MSVDX_RENDEC_SPACE_CR_MSVDX_RENDEC_WRITE_SPACE_SHIFT (0)
+
+// MSVDX_CORE CR_MSVDX_RENDEC_SPACE CR_MSVDX_RENDEC_READ_AVAILABLE
+#define MSVDX_CORE_CR_MSVDX_RENDEC_SPACE_CR_MSVDX_RENDEC_READ_AVAILABLE_MASK (0x00000010)
+#define MSVDX_CORE_CR_MSVDX_RENDEC_SPACE_CR_MSVDX_RENDEC_READ_AVAILABLE_LSBMASK (0x00000001)
+#define MSVDX_CORE_CR_MSVDX_RENDEC_SPACE_CR_MSVDX_RENDEC_READ_AVAILABLE_SHIFT (4)
+
+#define MSVDX_CORE_CR_MSVDX_CORE_ID_OFFSET (0x0030)
+
+// MSVDX_CORE CR_MSVDX_CORE_ID CR_CR_MSVDX_CORE_CONFIG
+#define MSVDX_CORE_CR_MSVDX_CORE_ID_CR_CR_MSVDX_CORE_CONFIG_MASK (0x0000FFFF)
+#define MSVDX_CORE_CR_MSVDX_CORE_ID_CR_CR_MSVDX_CORE_CONFIG_LSBMASK (0x0000FFFF)
+#define MSVDX_CORE_CR_MSVDX_CORE_ID_CR_CR_MSVDX_CORE_CONFIG_SHIFT (0)
+
+// MSVDX_CORE CR_MSVDX_CORE_ID CR_CORE_ID
+#define MSVDX_CORE_CR_MSVDX_CORE_ID_CR_CORE_ID_MASK (0x00FF0000)
+#define MSVDX_CORE_CR_MSVDX_CORE_ID_CR_CORE_ID_LSBMASK (0x000000FF)
+#define MSVDX_CORE_CR_MSVDX_CORE_ID_CR_CORE_ID_SHIFT (16)
+
+// MSVDX_CORE CR_MSVDX_CORE_ID CR_GROUP_ID
+#define MSVDX_CORE_CR_MSVDX_CORE_ID_CR_GROUP_ID_MASK (0xFF000000)
+#define MSVDX_CORE_CR_MSVDX_CORE_ID_CR_GROUP_ID_LSBMASK (0x000000FF)
+#define MSVDX_CORE_CR_MSVDX_CORE_ID_CR_GROUP_ID_SHIFT (24)
+
+#define MSVDX_CORE_CR_MSVDX_CORE_REV_OFFSET (0x0040)
+
+// MSVDX_CORE CR_MSVDX_CORE_REV CR_MSVDX_MAINT_REV
+#define MSVDX_CORE_CR_MSVDX_CORE_REV_CR_MSVDX_MAINT_REV_MASK (0x000000FF)
+#define MSVDX_CORE_CR_MSVDX_CORE_REV_CR_MSVDX_MAINT_REV_LSBMASK (0x000000FF)
+#define MSVDX_CORE_CR_MSVDX_CORE_REV_CR_MSVDX_MAINT_REV_SHIFT (0)
+
+// MSVDX_CORE CR_MSVDX_CORE_REV CR_MSVDX_MINOR_REV
+#define MSVDX_CORE_CR_MSVDX_CORE_REV_CR_MSVDX_MINOR_REV_MASK (0x0000FF00)
+#define MSVDX_CORE_CR_MSVDX_CORE_REV_CR_MSVDX_MINOR_REV_LSBMASK (0x000000FF)
+#define MSVDX_CORE_CR_MSVDX_CORE_REV_CR_MSVDX_MINOR_REV_SHIFT (8)
+
+// MSVDX_CORE CR_MSVDX_CORE_REV CR_MSVDX_MAJOR_REV
+#define MSVDX_CORE_CR_MSVDX_CORE_REV_CR_MSVDX_MAJOR_REV_MASK (0x00FF0000)
+#define MSVDX_CORE_CR_MSVDX_CORE_REV_CR_MSVDX_MAJOR_REV_LSBMASK (0x000000FF)
+#define MSVDX_CORE_CR_MSVDX_CORE_REV_CR_MSVDX_MAJOR_REV_SHIFT (16)
+
+// MSVDX_CORE CR_MSVDX_CORE_REV CR_MSVDX_DESIGNER
+#define MSVDX_CORE_CR_MSVDX_CORE_REV_CR_MSVDX_DESIGNER_MASK (0xFF000000)
+#define MSVDX_CORE_CR_MSVDX_CORE_REV_CR_MSVDX_DESIGNER_LSBMASK (0x000000FF)
+#define MSVDX_CORE_CR_MSVDX_CORE_REV_CR_MSVDX_DESIGNER_SHIFT (24)
+
+#define MSVDX_CORE_CR_MSVDX_CORE_DES1_OFFSET (0x0050)
+
+// MSVDX_CORE CR_MSVDX_CORE_DES1 CR_MSVDX_DESIGNER1
+#define MSVDX_CORE_CR_MSVDX_CORE_DES1_CR_MSVDX_DESIGNER1_MASK (0xFFFFFFFF)
+#define MSVDX_CORE_CR_MSVDX_CORE_DES1_CR_MSVDX_DESIGNER1_LSBMASK (0xFFFFFFFF)
+#define MSVDX_CORE_CR_MSVDX_CORE_DES1_CR_MSVDX_DESIGNER1_SHIFT (0)
+
+#define MSVDX_CORE_CR_MSVDX_CORE_DES2_OFFSET (0x0060)
+
+// MSVDX_CORE CR_MSVDX_CORE_DES2 CR_MSVDX_DESIGNER2
+#define MSVDX_CORE_CR_MSVDX_CORE_DES2_CR_MSVDX_DESIGNER2_MASK (0xFFFFFFFF)
+#define MSVDX_CORE_CR_MSVDX_CORE_DES2_CR_MSVDX_DESIGNER2_LSBMASK (0xFFFFFFFF)
+#define MSVDX_CORE_CR_MSVDX_CORE_DES2_CR_MSVDX_DESIGNER2_SHIFT (0)
+
+#define MSVDX_CORE_CR_FE_MSVDX_WDT_CONTROL_OFFSET (0x0064)
+
+// MSVDX_CORE CR_FE_MSVDX_WDT_CONTROL FE_WDT_ENABLE
+#define MSVDX_CORE_CR_FE_MSVDX_WDT_CONTROL_FE_WDT_ENABLE_MASK (0x00010000)
+#define MSVDX_CORE_CR_FE_MSVDX_WDT_CONTROL_FE_WDT_ENABLE_LSBMASK (0x00000001)
+#define MSVDX_CORE_CR_FE_MSVDX_WDT_CONTROL_FE_WDT_ENABLE_SHIFT (16)
+
+// MSVDX_CORE CR_FE_MSVDX_WDT_CONTROL FE_WDT_ACTION1
+#define MSVDX_CORE_CR_FE_MSVDX_WDT_CONTROL_FE_WDT_ACTION1_MASK (0x00003000)
+#define MSVDX_CORE_CR_FE_MSVDX_WDT_CONTROL_FE_WDT_ACTION1_LSBMASK (0x00000003)
+#define MSVDX_CORE_CR_FE_MSVDX_WDT_CONTROL_FE_WDT_ACTION1_SHIFT (12)
+
+// MSVDX_CORE CR_FE_MSVDX_WDT_CONTROL FE_WDT_ACTION0
+#define MSVDX_CORE_CR_FE_MSVDX_WDT_CONTROL_FE_WDT_ACTION0_MASK (0x00000100)
+#define MSVDX_CORE_CR_FE_MSVDX_WDT_CONTROL_FE_WDT_ACTION0_LSBMASK (0x00000001)
+#define MSVDX_CORE_CR_FE_MSVDX_WDT_CONTROL_FE_WDT_ACTION0_SHIFT (8)
+
+// MSVDX_CORE CR_FE_MSVDX_WDT_CONTROL FE_WDT_CLEAR_SELECT
+#define MSVDX_CORE_CR_FE_MSVDX_WDT_CONTROL_FE_WDT_CLEAR_SELECT_MASK (0x00000030)
+#define MSVDX_CORE_CR_FE_MSVDX_WDT_CONTROL_FE_WDT_CLEAR_SELECT_LSBMASK (0x00000003)
+#define MSVDX_CORE_CR_FE_MSVDX_WDT_CONTROL_FE_WDT_CLEAR_SELECT_SHIFT (4)
+
+// MSVDX_CORE CR_FE_MSVDX_WDT_CONTROL FE_WDT_CLKDIV_SELECT
+#define MSVDX_CORE_CR_FE_MSVDX_WDT_CONTROL_FE_WDT_CLKDIV_SELECT_MASK (0x00000007)
+#define MSVDX_CORE_CR_FE_MSVDX_WDT_CONTROL_FE_WDT_CLKDIV_SELECT_LSBMASK (0x00000007)
+#define MSVDX_CORE_CR_FE_MSVDX_WDT_CONTROL_FE_WDT_CLKDIV_SELECT_SHIFT (0)
+
+#define MSVDX_CORE_CR_FE_MSVDX_WDTIMER_OFFSET (0x0068)
+
+// MSVDX_CORE CR_FE_MSVDX_WDTIMER FE_WDT_COUNTER
+#define MSVDX_CORE_CR_FE_MSVDX_WDTIMER_FE_WDT_COUNTER_MASK (0x0000FFFF)
+#define MSVDX_CORE_CR_FE_MSVDX_WDTIMER_FE_WDT_COUNTER_LSBMASK (0x0000FFFF)
+#define MSVDX_CORE_CR_FE_MSVDX_WDTIMER_FE_WDT_COUNTER_SHIFT (0)
+
+#define MSVDX_CORE_CR_FE_MSVDX_WDT_COMPAREMATCH_OFFSET (0x006C)
+
+// MSVDX_CORE CR_FE_MSVDX_WDT_COMPAREMATCH FE_WDT_CM1
+#define MSVDX_CORE_CR_FE_MSVDX_WDT_COMPAREMATCH_FE_WDT_CM1_MASK (0xFFFF0000)
+#define MSVDX_CORE_CR_FE_MSVDX_WDT_COMPAREMATCH_FE_WDT_CM1_LSBMASK (0x0000FFFF)
+#define MSVDX_CORE_CR_FE_MSVDX_WDT_COMPAREMATCH_FE_WDT_CM1_SHIFT (16)
+
+// MSVDX_CORE CR_FE_MSVDX_WDT_COMPAREMATCH FE_WDT_CM0
+#define MSVDX_CORE_CR_FE_MSVDX_WDT_COMPAREMATCH_FE_WDT_CM0_MASK (0x0000FFFF)
+#define MSVDX_CORE_CR_FE_MSVDX_WDT_COMPAREMATCH_FE_WDT_CM0_LSBMASK (0x0000FFFF)
+#define MSVDX_CORE_CR_FE_MSVDX_WDT_COMPAREMATCH_FE_WDT_CM0_SHIFT (0)
+
+#define MSVDX_CORE_CR_BE_MSVDX_WDT_CONTROL_OFFSET (0x0070)
+
+// MSVDX_CORE CR_BE_MSVDX_WDT_CONTROL BE_WDT_ENABLE
+#define MSVDX_CORE_CR_BE_MSVDX_WDT_CONTROL_BE_WDT_ENABLE_MASK (0x00010000)
+#define MSVDX_CORE_CR_BE_MSVDX_WDT_CONTROL_BE_WDT_ENABLE_LSBMASK (0x00000001)
+#define MSVDX_CORE_CR_BE_MSVDX_WDT_CONTROL_BE_WDT_ENABLE_SHIFT (16)
+
+// MSVDX_CORE CR_BE_MSVDX_WDT_CONTROL BE_WDT_ACTION1
+#define MSVDX_CORE_CR_BE_MSVDX_WDT_CONTROL_BE_WDT_ACTION1_MASK (0x00003000)
+#define MSVDX_CORE_CR_BE_MSVDX_WDT_CONTROL_BE_WDT_ACTION1_LSBMASK (0x00000003)
+#define MSVDX_CORE_CR_BE_MSVDX_WDT_CONTROL_BE_WDT_ACTION1_SHIFT (12)
+
+// MSVDX_CORE CR_BE_MSVDX_WDT_CONTROL BE_WDT_ACTION0
+#define MSVDX_CORE_CR_BE_MSVDX_WDT_CONTROL_BE_WDT_ACTION0_MASK (0x00000100)
+#define MSVDX_CORE_CR_BE_MSVDX_WDT_CONTROL_BE_WDT_ACTION0_LSBMASK (0x00000001)
+#define MSVDX_CORE_CR_BE_MSVDX_WDT_CONTROL_BE_WDT_ACTION0_SHIFT (8)
+
+// MSVDX_CORE CR_BE_MSVDX_WDT_CONTROL BE_WDT_CLEAR_SELECT
+#define MSVDX_CORE_CR_BE_MSVDX_WDT_CONTROL_BE_WDT_CLEAR_SELECT_MASK (0x000000F0)
+#define MSVDX_CORE_CR_BE_MSVDX_WDT_CONTROL_BE_WDT_CLEAR_SELECT_LSBMASK (0x0000000F)
+#define MSVDX_CORE_CR_BE_MSVDX_WDT_CONTROL_BE_WDT_CLEAR_SELECT_SHIFT (4)
+
+// MSVDX_CORE CR_BE_MSVDX_WDT_CONTROL BE_WDT_CLKDIV_SELECT
+#define MSVDX_CORE_CR_BE_MSVDX_WDT_CONTROL_BE_WDT_CLKDIV_SELECT_MASK (0x00000007)
+#define MSVDX_CORE_CR_BE_MSVDX_WDT_CONTROL_BE_WDT_CLKDIV_SELECT_LSBMASK (0x00000007)
+#define MSVDX_CORE_CR_BE_MSVDX_WDT_CONTROL_BE_WDT_CLKDIV_SELECT_SHIFT (0)
+
+#define MSVDX_CORE_CR_BE_MSVDX_WDTIMER_OFFSET (0x0074)
+
+// MSVDX_CORE CR_BE_MSVDX_WDTIMER BE_WDT_COUNTER
+#define MSVDX_CORE_CR_BE_MSVDX_WDTIMER_BE_WDT_COUNTER_MASK (0x0000FFFF)
+#define MSVDX_CORE_CR_BE_MSVDX_WDTIMER_BE_WDT_COUNTER_LSBMASK (0x0000FFFF)
+#define MSVDX_CORE_CR_BE_MSVDX_WDTIMER_BE_WDT_COUNTER_SHIFT (0)
+
+#define MSVDX_CORE_CR_BE_MSVDX_WDT_COMPAREMATCH_OFFSET (0x0078)
+
+// MSVDX_CORE CR_BE_MSVDX_WDT_COMPAREMATCH BE_WDT_CM1
+#define MSVDX_CORE_CR_BE_MSVDX_WDT_COMPAREMATCH_BE_WDT_CM1_MASK (0xFFFF0000)
+#define MSVDX_CORE_CR_BE_MSVDX_WDT_COMPAREMATCH_BE_WDT_CM1_LSBMASK (0x0000FFFF)
+#define MSVDX_CORE_CR_BE_MSVDX_WDT_COMPAREMATCH_BE_WDT_CM1_SHIFT (16)
+
+// MSVDX_CORE CR_BE_MSVDX_WDT_COMPAREMATCH BE_WDT_CM0
+#define MSVDX_CORE_CR_BE_MSVDX_WDT_COMPAREMATCH_BE_WDT_CM0_MASK (0x0000FFFF)
+#define MSVDX_CORE_CR_BE_MSVDX_WDT_COMPAREMATCH_BE_WDT_CM0_LSBMASK (0x0000FFFF)
+#define MSVDX_CORE_CR_BE_MSVDX_WDT_COMPAREMATCH_BE_WDT_CM0_SHIFT (0)
+
+#define MSVDX_CORE_CR_MMU_CONTROL0_OFFSET (0x0080)
+
+// MSVDX_CORE CR_MMU_CONTROL0 CR_MMU_INVALDC
+#define MSVDX_CORE_CR_MMU_CONTROL0_CR_MMU_INVALDC_MASK (0x00000008)
+#define MSVDX_CORE_CR_MMU_CONTROL0_CR_MMU_INVALDC_LSBMASK (0x00000001)
+#define MSVDX_CORE_CR_MMU_CONTROL0_CR_MMU_INVALDC_SHIFT (3)
+
+// MSVDX_CORE CR_MMU_CONTROL0 CR_MMU_FLUSH
+#define MSVDX_CORE_CR_MMU_CONTROL0_CR_MMU_FLUSH_MASK (0x00000004)
+#define MSVDX_CORE_CR_MMU_CONTROL0_CR_MMU_FLUSH_LSBMASK (0x00000001)
+#define MSVDX_CORE_CR_MMU_CONTROL0_CR_MMU_FLUSH_SHIFT (2)
+
+// MSVDX_CORE CR_MMU_CONTROL0 CR_MMU_PAUSE
+#define MSVDX_CORE_CR_MMU_CONTROL0_CR_MMU_PAUSE_MASK (0x00000002)
+#define MSVDX_CORE_CR_MMU_CONTROL0_CR_MMU_PAUSE_LSBMASK (0x00000001)
+#define MSVDX_CORE_CR_MMU_CONTROL0_CR_MMU_PAUSE_SHIFT (1)
+
+// MSVDX_CORE CR_MMU_CONTROL0 CR_MMU_NOREORDER
+#define MSVDX_CORE_CR_MMU_CONTROL0_CR_MMU_NOREORDER_MASK (0x00000001)
+#define MSVDX_CORE_CR_MMU_CONTROL0_CR_MMU_NOREORDER_LSBMASK (0x00000001)
+#define MSVDX_CORE_CR_MMU_CONTROL0_CR_MMU_NOREORDER_SHIFT (0)
+
+// MSVDX_CORE CR_MMU_CONTROL0 CR_FLOWRATE_DMAC
+#define MSVDX_CORE_CR_MMU_CONTROL0_CR_FLOWRATE_DMAC_MASK (0x00000700)
+#define MSVDX_CORE_CR_MMU_CONTROL0_CR_FLOWRATE_DMAC_LSBMASK (0x00000007)
+#define MSVDX_CORE_CR_MMU_CONTROL0_CR_FLOWRATE_DMAC_SHIFT (8)
+
+// MSVDX_CORE CR_MMU_CONTROL0 CR_FLOWRATE_VEC
+#define MSVDX_CORE_CR_MMU_CONTROL0_CR_FLOWRATE_VEC_MASK (0x00003800)
+#define MSVDX_CORE_CR_MMU_CONTROL0_CR_FLOWRATE_VEC_LSBMASK (0x00000007)
+#define MSVDX_CORE_CR_MMU_CONTROL0_CR_FLOWRATE_VEC_SHIFT (11)
+
+// MSVDX_CORE CR_MMU_CONTROL0 CR_FLOWRATE_VDMC
+#define MSVDX_CORE_CR_MMU_CONTROL0_CR_FLOWRATE_VDMC_MASK (0x0001C000)
+#define MSVDX_CORE_CR_MMU_CONTROL0_CR_FLOWRATE_VDMC_LSBMASK (0x00000007)
+#define MSVDX_CORE_CR_MMU_CONTROL0_CR_FLOWRATE_VDMC_SHIFT (14)
+
+// MSVDX_CORE CR_MMU_CONTROL0 CR_FLOWRATE_VDEB
+#define MSVDX_CORE_CR_MMU_CONTROL0_CR_FLOWRATE_VDEB_MASK (0x000E0000)
+#define MSVDX_CORE_CR_MMU_CONTROL0_CR_FLOWRATE_VDEB_LSBMASK (0x00000007)
+#define MSVDX_CORE_CR_MMU_CONTROL0_CR_FLOWRATE_VDEB_SHIFT (17)
+
+// MSVDX_CORE CR_MMU_CONTROL0 CR_MMU_BYPASS_DMAC
+#define MSVDX_CORE_CR_MMU_CONTROL0_CR_MMU_BYPASS_DMAC_MASK (0x01000000)
+#define MSVDX_CORE_CR_MMU_CONTROL0_CR_MMU_BYPASS_DMAC_LSBMASK (0x00000001)
+#define MSVDX_CORE_CR_MMU_CONTROL0_CR_MMU_BYPASS_DMAC_SHIFT (24)
+
+// MSVDX_CORE CR_MMU_CONTROL0 CR_MMU_BYPASS_VEC
+#define MSVDX_CORE_CR_MMU_CONTROL0_CR_MMU_BYPASS_VEC_MASK (0x02000000)
+#define MSVDX_CORE_CR_MMU_CONTROL0_CR_MMU_BYPASS_VEC_LSBMASK (0x00000001)
+#define MSVDX_CORE_CR_MMU_CONTROL0_CR_MMU_BYPASS_VEC_SHIFT (25)
+
+// MSVDX_CORE CR_MMU_CONTROL0 CR_MMU_BYPASS_VDMC
+#define MSVDX_CORE_CR_MMU_CONTROL0_CR_MMU_BYPASS_VDMC_MASK (0x04000000)
+#define MSVDX_CORE_CR_MMU_CONTROL0_CR_MMU_BYPASS_VDMC_LSBMASK (0x00000001)
+#define MSVDX_CORE_CR_MMU_CONTROL0_CR_MMU_BYPASS_VDMC_SHIFT (26)
+
+// MSVDX_CORE CR_MMU_CONTROL0 CR_MMU_BYPASS_VDEB
+#define MSVDX_CORE_CR_MMU_CONTROL0_CR_MMU_BYPASS_VDEB_MASK (0x08000000)
+#define MSVDX_CORE_CR_MMU_CONTROL0_CR_MMU_BYPASS_VDEB_LSBMASK (0x00000001)
+#define MSVDX_CORE_CR_MMU_CONTROL0_CR_MMU_BYPASS_VDEB_SHIFT (27)
+
+#define MSVDX_CORE_CR_MMU_CONTROL1_OFFSET (0x0084)
+
+// MSVDX_CORE CR_MMU_CONTROL1 CR_MMU_TTE_THRESHOLD
+#define MSVDX_CORE_CR_MMU_CONTROL1_CR_MMU_TTE_THRESHOLD_MASK (0x00000FFF)
+#define MSVDX_CORE_CR_MMU_CONTROL1_CR_MMU_TTE_THRESHOLD_LSBMASK (0x00000FFF)
+#define MSVDX_CORE_CR_MMU_CONTROL1_CR_MMU_TTE_THRESHOLD_SHIFT (0)
+
+// MSVDX_CORE CR_MMU_CONTROL1 CR_MMU_ADT_TTE
+#define MSVDX_CORE_CR_MMU_CONTROL1_CR_MMU_ADT_TTE_MASK (0x000FF000)
+#define MSVDX_CORE_CR_MMU_CONTROL1_CR_MMU_ADT_TTE_LSBMASK (0x000000FF)
+#define MSVDX_CORE_CR_MMU_CONTROL1_CR_MMU_ADT_TTE_SHIFT (12)
+
+// MSVDX_CORE CR_MMU_CONTROL1 CR_MMU_BEST_COUNT
+#define MSVDX_CORE_CR_MMU_CONTROL1_CR_MMU_BEST_COUNT_MASK (0x0FF00000)
+#define MSVDX_CORE_CR_MMU_CONTROL1_CR_MMU_BEST_COUNT_LSBMASK (0x000000FF)
+#define MSVDX_CORE_CR_MMU_CONTROL1_CR_MMU_BEST_COUNT_SHIFT (20)
+
+// MSVDX_CORE CR_MMU_CONTROL1 CR_MMU_PAGE_SIZE
+#define MSVDX_CORE_CR_MMU_CONTROL1_CR_MMU_PAGE_SIZE_MASK (0xF0000000)
+#define MSVDX_CORE_CR_MMU_CONTROL1_CR_MMU_PAGE_SIZE_LSBMASK (0x0000000F)
+#define MSVDX_CORE_CR_MMU_CONTROL1_CR_MMU_PAGE_SIZE_SHIFT (28)
+
+#define MSVDX_CORE_CR_MMU_BANK_INDEX_OFFSET (0x0088)
+
+// MSVDX_CORE CR_MMU_BANK_INDEX CR_MMU_BANK_SELECT
+#define MSVDX_CORE_CR_MMU_BANK_INDEX_CR_MMU_BANK_SELECT_MASK (0x00000002)
+#define MSVDX_CORE_CR_MMU_BANK_INDEX_CR_MMU_BANK_SELECT_LSBMASK (0x00000001)
+#define MSVDX_CORE_CR_MMU_BANK_INDEX_CR_MMU_BANK_SELECT_SHIFT (1)
+#define MSVDX_CORE_CR_MMU_BANK_INDEX_CR_MMU_BANK_SELECT_NO_REPS (2)
+#define MSVDX_CORE_CR_MMU_BANK_INDEX_CR_MMU_BANK_SELECT_SIZE (1)
+
+// MSVDX_CORE CR_MMU_BANK_INDEX CR_MMU_BANK_N_INDEX_M
+#define MSVDX_CORE_CR_MMU_BANK_INDEX_CR_MMU_BANK_N_INDEX_M_MASK (0x0000C000)
+#define MSVDX_CORE_CR_MMU_BANK_INDEX_CR_MMU_BANK_N_INDEX_M_LSBMASK (0x00000003)
+#define MSVDX_CORE_CR_MMU_BANK_INDEX_CR_MMU_BANK_N_INDEX_M_SHIFT (14)
+#define MSVDX_CORE_CR_MMU_BANK_INDEX_CR_MMU_BANK_N_INDEX_M_NO_REPS (4)
+#define MSVDX_CORE_CR_MMU_BANK_INDEX_CR_MMU_BANK_N_INDEX_M_SIZE (2)
+
+#define MSVDX_CORE_CR_MMU_STATUS_OFFSET (0x008C)
+
+// MSVDX_CORE CR_MMU_STATUS CR_MMU_FAULT_ADDR
+#define MSVDX_CORE_CR_MMU_STATUS_CR_MMU_FAULT_ADDR_MASK (0xFFFFF000)
+#define MSVDX_CORE_CR_MMU_STATUS_CR_MMU_FAULT_ADDR_LSBMASK (0x000FFFFF)
+#define MSVDX_CORE_CR_MMU_STATUS_CR_MMU_FAULT_ADDR_SHIFT (12)
+
+// MSVDX_CORE CR_MMU_STATUS CR_MMU_PF_N_RW
+#define MSVDX_CORE_CR_MMU_STATUS_CR_MMU_PF_N_RW_MASK (0x00000001)
+#define MSVDX_CORE_CR_MMU_STATUS_CR_MMU_PF_N_RW_LSBMASK (0x00000001)
+#define MSVDX_CORE_CR_MMU_STATUS_CR_MMU_PF_N_RW_SHIFT (0)
+
+#define MSVDX_CORE_CR_MMU_MEM_REQ_OFFSET (0x00D0)
+
+// MSVDX_CORE CR_MMU_MEM_REQ CR_MEM_REQ_STAT_READS
+#define MSVDX_CORE_CR_MMU_MEM_REQ_CR_MEM_REQ_STAT_READS_MASK (0x000000FF)
+#define MSVDX_CORE_CR_MMU_MEM_REQ_CR_MEM_REQ_STAT_READS_LSBMASK (0x000000FF)
+#define MSVDX_CORE_CR_MMU_MEM_REQ_CR_MEM_REQ_STAT_READS_SHIFT (0)
+
+#define MSVDX_CORE_CR_MTX_DEBUG_OFFSET (0x00F0)
+
+// MSVDX_CORE CR_MTX_DEBUG CR_MTX_LAST_RAM_BANK_SIZE
+#define MSVDX_CORE_CR_MTX_DEBUG_CR_MTX_LAST_RAM_BANK_SIZE_MASK (0x0F000000)
+#define MSVDX_CORE_CR_MTX_DEBUG_CR_MTX_LAST_RAM_BANK_SIZE_LSBMASK (0x0000000F)
+#define MSVDX_CORE_CR_MTX_DEBUG_CR_MTX_LAST_RAM_BANK_SIZE_SHIFT (24)
+
+// MSVDX_CORE CR_MTX_DEBUG CR_MTX_RAM_BANK_SIZE
+#define MSVDX_CORE_CR_MTX_DEBUG_CR_MTX_RAM_BANK_SIZE_MASK (0x000F0000)
+#define MSVDX_CORE_CR_MTX_DEBUG_CR_MTX_RAM_BANK_SIZE_LSBMASK (0x0000000F)
+#define MSVDX_CORE_CR_MTX_DEBUG_CR_MTX_RAM_BANK_SIZE_SHIFT (16)
+
+// MSVDX_CORE CR_MTX_DEBUG CR_MTX_RAM_BANKS
+#define MSVDX_CORE_CR_MTX_DEBUG_CR_MTX_RAM_BANKS_MASK (0x00000F00)
+#define MSVDX_CORE_CR_MTX_DEBUG_CR_MTX_RAM_BANKS_LSBMASK (0x0000000F)
+#define MSVDX_CORE_CR_MTX_DEBUG_CR_MTX_RAM_BANKS_SHIFT (8)
+
+// MSVDX_CORE CR_MTX_DEBUG CR_MTX_DBG_GPIO_OUT
+#define MSVDX_CORE_CR_MTX_DEBUG_CR_MTX_DBG_GPIO_OUT_MASK (0x00000018)
+#define MSVDX_CORE_CR_MTX_DEBUG_CR_MTX_DBG_GPIO_OUT_LSBMASK (0x00000003)
+#define MSVDX_CORE_CR_MTX_DEBUG_CR_MTX_DBG_GPIO_OUT_SHIFT (3)
+
+// MSVDX_CORE CR_MTX_DEBUG CR_MTX_DBG_IS_SLAVE
+#define MSVDX_CORE_CR_MTX_DEBUG_CR_MTX_DBG_IS_SLAVE_MASK (0x00000004)
+#define MSVDX_CORE_CR_MTX_DEBUG_CR_MTX_DBG_IS_SLAVE_LSBMASK (0x00000001)
+#define MSVDX_CORE_CR_MTX_DEBUG_CR_MTX_DBG_IS_SLAVE_SHIFT (2)
+
+// MSVDX_CORE CR_MTX_DEBUG CR_MTX_DBG_GPIO_IN
+#define MSVDX_CORE_CR_MTX_DEBUG_CR_MTX_DBG_GPIO_IN_MASK (0x00000003)
+#define MSVDX_CORE_CR_MTX_DEBUG_CR_MTX_DBG_GPIO_IN_LSBMASK (0x00000003)
+#define MSVDX_CORE_CR_MTX_DEBUG_CR_MTX_DBG_GPIO_IN_SHIFT (0)
+
+#define MSVDX_CORE_CR_SYS_MSVDX_WDT_CONTROL_OFFSET (0x00F4)
+
+// MSVDX_CORE CR_SYS_MSVDX_WDT_CONTROL SYS_WDT_ENABLE
+#define MSVDX_CORE_CR_SYS_MSVDX_WDT_CONTROL_SYS_WDT_ENABLE_MASK (0x00010000)
+#define MSVDX_CORE_CR_SYS_MSVDX_WDT_CONTROL_SYS_WDT_ENABLE_LSBMASK (0x00000001)
+#define MSVDX_CORE_CR_SYS_MSVDX_WDT_CONTROL_SYS_WDT_ENABLE_SHIFT (16)
+
+// MSVDX_CORE CR_SYS_MSVDX_WDT_CONTROL SYS_WDT_CLKDIV_SELECT
+#define MSVDX_CORE_CR_SYS_MSVDX_WDT_CONTROL_SYS_WDT_CLKDIV_SELECT_MASK (0x00000007)
+#define MSVDX_CORE_CR_SYS_MSVDX_WDT_CONTROL_SYS_WDT_CLKDIV_SELECT_LSBMASK (0x00000007)
+#define MSVDX_CORE_CR_SYS_MSVDX_WDT_CONTROL_SYS_WDT_CLKDIV_SELECT_SHIFT (0)
+
+#define MSVDX_CORE_CR_SYS_MSVDX_WDTIMER_OFFSET (0x00F8)
+
+// MSVDX_CORE CR_SYS_MSVDX_WDTIMER SYS_WDT_COUNTER
+#define MSVDX_CORE_CR_SYS_MSVDX_WDTIMER_SYS_WDT_COUNTER_MASK (0x0000FFFF)
+#define MSVDX_CORE_CR_SYS_MSVDX_WDTIMER_SYS_WDT_COUNTER_LSBMASK (0x0000FFFF)
+#define MSVDX_CORE_CR_SYS_MSVDX_WDTIMER_SYS_WDT_COUNTER_SHIFT (0)
+
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __MSVDX_CORE_REGS_IO2_H__ */
diff --git a/src/hwdefs/msvdx_defs.h b/src/hwdefs/msvdx_defs.h
new file mode 100644
index 0000000..3820b06
--- /dev/null
+++ b/src/hwdefs/msvdx_defs.h
@@ -0,0 +1,78 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+
+/*!****************************************************************************
+@File msvdx_defs.h
+
+@Title System Description Header
+
+@Author Imagination Technologies
+
+@date 20 Decemner 2006
+
+@Platform generic
+
+@Description This header provides hardware-specific declarations and macros
+
+@DoxygenVer
+
+******************************************************************************/
+
+/******************************************************************************
+Modifications :-
+
+$Log: msvdx_defs.h $
+*/
+
+#ifndef _MSVDX_DEFS_H_
+#define _MSVDX_DEFS_H_
+
+#define MSVDX_REG_SIZE 0x4000
+
+/* MSVDX Register base definitions */
+#define REG_MSVDX_MTX_OFFSET 0x00000000
+#define REG_MSVDX_VDMC_OFFSET 0x00000400
+#define REG_MSVDX_VDEB_OFFSET 0x00000480
+#define REG_MSVDX_DMAC_OFFSET 0x00000500
+#define REG_MSVDX_SYS_OFFSET 0x00000600
+#define REG_MSVDX_VEC_IQRAM_OFFSET 0x00000700
+#define REG_MSVDX_VEC_OFFSET 0x00000800
+#define REG_MSVDX_CMD_OFFSET 0x00001000
+#define REG_MSVDX_VEC_RAM_OFFSET 0x00002000
+#define REG_MSVDX_VEC_VLC_OFFSET 0x00003000
+
+#define REG_MSVDX_MTX_SIZE 0x00000400
+#define REG_MSVDX_VDMC_SIZE 0x00000080
+#define REG_MSVDX_VDEB_SIZE 0x00000080
+#define REG_MSVDX_DMAC_SIZE 0x00000100
+#define REG_MSVDX_SYS_SIZE 0x00000100
+#define REG_MSVDX_VEC_IQRAM_SIZE 0x00000100
+#define REG_MSVDX_VEC_SIZE 0x00000800
+#define REG_MSVDX_CMD_SIZE 0x00001000
+#define REG_MSVDX_VEC_RAM_SIZE 0x00001000
+#define REG_MSVDX_VEC_VLC_SIZE 0x00002000
+
+#endif /* _MSVDX_DEFS_H_ */
diff --git a/src/hwdefs/msvdx_dmac_linked_list.h b/src/hwdefs/msvdx_dmac_linked_list.h
new file mode 100644
index 0000000..2a6a881
--- /dev/null
+++ b/src/hwdefs/msvdx_dmac_linked_list.h
@@ -0,0 +1,262 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+
+/*!
+******************************************************************************
+@file : /work/sim/msvdx/register_includes/msvdx_dmac_linked_list.h
+
+@brief
+
+@Author <Autogenerated>
+
+<b>Description:</b>\n
+ This file contains the MSVDX_DMAC_LINKED_LIST_H Definitions.
+
+<b>Platform:</b>\n
+ ?
+
+@Version
+ 1.0
+
+******************************************************************************/
+
+#if !defined (__MSVDX_DMAC_LINKED_LIST_H__)
+#define __MSVDX_DMAC_LINKED_LIST_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+#define DMAC_LL_SIZE (32)
+
+// DMAC_LL RESERVED_01
+#define DMAC_LL_RESERVED_01_ALIGNMENT (4)
+#define DMAC_LL_RESERVED_01_TYPE IMG_UINT32
+#define DMAC_LL_RESERVED_01_MASK (0x0FFFFFFF)
+#define DMAC_LL_RESERVED_01_LSBMASK (0x0FFFFFFF)
+#define DMAC_LL_RESERVED_01_OFFSET (0x0000)
+#define DMAC_LL_RESERVED_01_SHIFT (0)
+
+// DMAC_LL PW
+#define DMAC_LL_PW_ALIGNMENT (1)
+#define DMAC_LL_PW_TYPE IMG_UINT8
+#define DMAC_LL_PW_MASK (0x30)
+#define DMAC_LL_PW_LSBMASK (0x03)
+#define DMAC_LL_PW_OFFSET (0x0003)
+#define DMAC_LL_PW_SHIFT (4)
+
+// DMAC_LL DIR
+#define DMAC_LL_DIR_ALIGNMENT (1)
+#define DMAC_LL_DIR_TYPE IMG_UINT8
+#define DMAC_LL_DIR_MASK (0x40)
+#define DMAC_LL_DIR_LSBMASK (0x01)
+#define DMAC_LL_DIR_OFFSET (0x0003)
+#define DMAC_LL_DIR_SHIFT (6)
+
+// DMAC_LL BSWAP
+#define DMAC_LL_BSWAP_ALIGNMENT (1)
+#define DMAC_LL_BSWAP_TYPE IMG_UINT8
+#define DMAC_LL_BSWAP_MASK (0x80)
+#define DMAC_LL_BSWAP_LSBMASK (0x01)
+#define DMAC_LL_BSWAP_OFFSET (0x0003)
+#define DMAC_LL_BSWAP_SHIFT (7)
+
+// DMAC_LL LEN
+#define DMAC_LL_LEN_ALIGNMENT (2)
+#define DMAC_LL_LEN_TYPE IMG_UINT16
+#define DMAC_LL_LEN_MASK (0xFFFF)
+#define DMAC_LL_LEN_LSBMASK (0xFFFF)
+#define DMAC_LL_LEN_OFFSET (0x0004)
+#define DMAC_LL_LEN_SHIFT (0)
+
+// DMAC_LL INCR
+#define DMAC_LL_INCR_ALIGNMENT (1)
+#define DMAC_LL_INCR_TYPE IMG_UINT8
+#define DMAC_LL_INCR_MASK (0x01)
+#define DMAC_LL_INCR_LSBMASK (0x01)
+#define DMAC_LL_INCR_OFFSET (0x0006)
+#define DMAC_LL_INCR_SHIFT (0)
+
+// DMAC_LL PI
+#define DMAC_LL_PI_ALIGNMENT (1)
+#define DMAC_LL_PI_TYPE IMG_UINT8
+#define DMAC_LL_PI_MASK (0x06)
+#define DMAC_LL_PI_LSBMASK (0x03)
+#define DMAC_LL_PI_OFFSET (0x0006)
+#define DMAC_LL_PI_SHIFT (1)
+
+// DMAC_LL RESERVED_02
+#define DMAC_LL_RESERVED_02_ALIGNMENT (2)
+#define DMAC_LL_RESERVED_02_TYPE IMG_UINT16
+#define DMAC_LL_RESERVED_02_MASK (0x3FF8)
+#define DMAC_LL_RESERVED_02_LSBMASK (0x07FF)
+#define DMAC_LL_RESERVED_02_OFFSET (0x0006)
+#define DMAC_LL_RESERVED_02_SHIFT (3)
+
+// DMAC_LL LIST_INT
+#define DMAC_LL_LIST_INT_ALIGNMENT (1)
+#define DMAC_LL_LIST_INT_TYPE IMG_UINT8
+#define DMAC_LL_LIST_INT_MASK (0x40)
+#define DMAC_LL_LIST_INT_LSBMASK (0x01)
+#define DMAC_LL_LIST_INT_OFFSET (0x0007)
+#define DMAC_LL_LIST_INT_SHIFT (6)
+
+// DMAC_LL LIST_FIN
+#define DMAC_LL_LIST_FIN_ALIGNMENT (1)
+#define DMAC_LL_LIST_FIN_TYPE IMG_UINT8
+#define DMAC_LL_LIST_FIN_MASK (0x80)
+#define DMAC_LL_LIST_FIN_LSBMASK (0x01)
+#define DMAC_LL_LIST_FIN_OFFSET (0x0007)
+#define DMAC_LL_LIST_FIN_SHIFT (7)
+
+// DMAC_LL ADDR
+#define DMAC_LL_ADDR_ALIGNMENT (4)
+#define DMAC_LL_ADDR_TYPE IMG_UINT32
+#define DMAC_LL_ADDR_MASK (0xFFFFFFFF)
+#define DMAC_LL_ADDR_LSBMASK (0xFFFFFFFF)
+#define DMAC_LL_ADDR_OFFSET (0x0008)
+#define DMAC_LL_ADDR_SHIFT (0)
+
+// DMAC_LL EXT_SA
+#define DMAC_LL_EXT_SA_ALIGNMENT (1)
+#define DMAC_LL_EXT_SA_TYPE IMG_UINT8
+#define DMAC_LL_EXT_SA_MASK (0x0F)
+#define DMAC_LL_EXT_SA_LSBMASK (0x0F)
+#define DMAC_LL_EXT_SA_OFFSET (0x000C)
+#define DMAC_LL_EXT_SA_SHIFT (0)
+
+// DMAC_LL RESERVED_04
+#define DMAC_LL_RESERVED_04_ALIGNMENT (4)
+#define DMAC_LL_RESERVED_04_TYPE IMG_UINT32
+#define DMAC_LL_RESERVED_04_MASK (0x03FFFFF0)
+#define DMAC_LL_RESERVED_04_LSBMASK (0x003FFFFF)
+#define DMAC_LL_RESERVED_04_OFFSET (0x000C)
+#define DMAC_LL_RESERVED_04_SHIFT (4)
+
+// DMAC_LL BURST
+#define DMAC_LL_BURST_ALIGNMENT (1)
+#define DMAC_LL_BURST_TYPE IMG_UINT8
+#define DMAC_LL_BURST_MASK (0x1C)
+#define DMAC_LL_BURST_LSBMASK (0x07)
+#define DMAC_LL_BURST_OFFSET (0x000F)
+#define DMAC_LL_BURST_SHIFT (2)
+
+// DMAC_LL ACC_DEL
+#define DMAC_LL_ACC_DEL_ALIGNMENT (1)
+#define DMAC_LL_ACC_DEL_TYPE IMG_UINT8
+#define DMAC_LL_ACC_DEL_MASK (0xE0)
+#define DMAC_LL_ACC_DEL_LSBMASK (0x07)
+#define DMAC_LL_ACC_DEL_OFFSET (0x000F)
+#define DMAC_LL_ACC_DEL_SHIFT (5)
+
+// DMAC_LL REP_COUNT
+#define DMAC_LL_REP_COUNT_ALIGNMENT (2)
+#define DMAC_LL_REP_COUNT_TYPE IMG_UINT16
+#define DMAC_LL_REP_COUNT_MASK (0x07FF)
+#define DMAC_LL_REP_COUNT_LSBMASK (0x07FF)
+#define DMAC_LL_REP_COUNT_OFFSET (0x0010)
+#define DMAC_LL_REP_COUNT_SHIFT (0)
+
+// DMAC_LL RESERVED_05
+#define DMAC_LL_RESERVED_05_ALIGNMENT (1)
+#define DMAC_LL_RESERVED_05_TYPE IMG_UINT8
+#define DMAC_LL_RESERVED_05_MASK (0xF8)
+#define DMAC_LL_RESERVED_05_LSBMASK (0x1F)
+#define DMAC_LL_RESERVED_05_OFFSET (0x0011)
+#define DMAC_LL_RESERVED_05_SHIFT (3)
+
+// DMAC_LL MODE_2D
+#define DMAC_LL_MODE_2D_ALIGNMENT (1)
+#define DMAC_LL_MODE_2D_TYPE IMG_UINT8
+#define DMAC_LL_MODE_2D_MASK (0x01)
+#define DMAC_LL_MODE_2D_LSBMASK (0x01)
+#define DMAC_LL_MODE_2D_OFFSET (0x0012)
+#define DMAC_LL_MODE_2D_SHIFT (0)
+
+// DMAC_LL RESERVED_06
+#define DMAC_LL_RESERVED_06_ALIGNMENT (2)
+#define DMAC_LL_RESERVED_06_TYPE IMG_UINT16
+#define DMAC_LL_RESERVED_06_MASK (0xFFFE)
+#define DMAC_LL_RESERVED_06_LSBMASK (0x7FFF)
+#define DMAC_LL_RESERVED_06_OFFSET (0x0012)
+#define DMAC_LL_RESERVED_06_SHIFT (1)
+
+// DMAC_LL ROW_LENGTH
+#define DMAC_LL_ROW_LENGTH_ALIGNMENT (2)
+#define DMAC_LL_ROW_LENGTH_TYPE IMG_UINT16
+#define DMAC_LL_ROW_LENGTH_MASK (0x03FF)
+#define DMAC_LL_ROW_LENGTH_LSBMASK (0x03FF)
+#define DMAC_LL_ROW_LENGTH_OFFSET (0x0014)
+#define DMAC_LL_ROW_LENGTH_SHIFT (0)
+
+// DMAC_LL RESERVED_07
+#define DMAC_LL_RESERVED_07_ALIGNMENT (1)
+#define DMAC_LL_RESERVED_07_TYPE IMG_UINT8
+#define DMAC_LL_RESERVED_07_MASK (0xFC)
+#define DMAC_LL_RESERVED_07_LSBMASK (0x3F)
+#define DMAC_LL_RESERVED_07_OFFSET (0x0015)
+#define DMAC_LL_RESERVED_07_SHIFT (2)
+
+// DMAC_LL LINE_ADD_OFF
+#define DMAC_LL_LINE_ADD_OFF_ALIGNMENT (2)
+#define DMAC_LL_LINE_ADD_OFF_TYPE IMG_UINT16
+#define DMAC_LL_LINE_ADD_OFF_MASK (0x03FF)
+#define DMAC_LL_LINE_ADD_OFF_LSBMASK (0x03FF)
+#define DMAC_LL_LINE_ADD_OFF_OFFSET (0x0016)
+#define DMAC_LL_LINE_ADD_OFF_SHIFT (0)
+
+// DMAC_LL RESERVED_08
+#define DMAC_LL_RESERVED_08_ALIGNMENT (1)
+#define DMAC_LL_RESERVED_08_TYPE IMG_UINT8
+#define DMAC_LL_RESERVED_08_MASK (0xFC)
+#define DMAC_LL_RESERVED_08_LSBMASK (0x3F)
+#define DMAC_LL_RESERVED_08_OFFSET (0x0017)
+#define DMAC_LL_RESERVED_08_SHIFT (2)
+
+// DMAC_LL SA
+#define DMAC_LL_SA_ALIGNMENT (4)
+#define DMAC_LL_SA_TYPE IMG_UINT32
+#define DMAC_LL_SA_MASK (0xFFFFFFFF)
+#define DMAC_LL_SA_LSBMASK (0xFFFFFFFF)
+#define DMAC_LL_SA_OFFSET (0x0018)
+#define DMAC_LL_SA_SHIFT (0)
+
+// DMAC_LL LISTPTR
+#define DMAC_LL_LISTPTR_ALIGNMENT (4)
+#define DMAC_LL_LISTPTR_TYPE IMG_UINT32
+#define DMAC_LL_LISTPTR_MASK (0xFFFFFFFF)
+#define DMAC_LL_LISTPTR_LSBMASK (0xFFFFFFFF)
+#define DMAC_LL_LISTPTR_OFFSET (0x001C)
+#define DMAC_LL_LISTPTR_SHIFT (0)
+
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __MSVDX_DMAC_LINKED_LIST_H__ */
diff --git a/src/hwdefs/msvdx_dmac_regs_io2.h b/src/hwdefs/msvdx_dmac_regs_io2.h
new file mode 100644
index 0000000..fbdefc3
--- /dev/null
+++ b/src/hwdefs/msvdx_dmac_regs_io2.h
@@ -0,0 +1,220 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+
+/*!
+******************************************************************************
+@file : /work/sim/msvdx/register_includes/msvdx_dmac_regs_io2.h
+
+@brief
+
+@Author <Autogenerated>
+
+<b>Description:</b>\n
+ This file contains the MSVDX_DMAC_REGS_IO2_H Defintions.
+
+<b>Platform:</b>\n
+ ?
+
+@Version
+ 1.0
+
+******************************************************************************/
+
+#if !defined (__MSVDX_DMAC_REGS_IO2_H__)
+#define __MSVDX_DMAC_REGS_IO2_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+#define DMAC_DMAC_SETUP_OFFSET (0x0000)
+#define DMAC_DMAC_SETUP_STRIDE (32)
+#define DMAC_DMAC_SETUP_NO_ENTRIES (4)
+
+// DMAC DMAC_SETUP START_ADDRESS
+#define DMAC_DMAC_SETUP_START_ADDRESS_MASK (0xFFFFFFFF)
+#define DMAC_DMAC_SETUP_START_ADDRESS_LSBMASK (0xFFFFFFFF)
+#define DMAC_DMAC_SETUP_START_ADDRESS_SHIFT (0)
+
+#define DMAC_DMAC_COUNT_OFFSET (0x0004)
+#define DMAC_DMAC_COUNT_STRIDE (32)
+#define DMAC_DMAC_COUNT_NO_ENTRIES (4)
+
+// DMAC DMAC_COUNT LIST_IEN
+#define DMAC_DMAC_COUNT_LIST_IEN_MASK (0x80000000)
+#define DMAC_DMAC_COUNT_LIST_IEN_LSBMASK (0x00000001)
+#define DMAC_DMAC_COUNT_LIST_IEN_SHIFT (31)
+
+// DMAC DMAC_COUNT BSWAP
+#define DMAC_DMAC_COUNT_BSWAP_MASK (0x40000000)
+#define DMAC_DMAC_COUNT_BSWAP_LSBMASK (0x00000001)
+#define DMAC_DMAC_COUNT_BSWAP_SHIFT (30)
+
+// DMAC DMAC_COUNT TRANSFER_IEN
+#define DMAC_DMAC_COUNT_TRANSFER_IEN_MASK (0x20000000)
+#define DMAC_DMAC_COUNT_TRANSFER_IEN_LSBMASK (0x00000001)
+#define DMAC_DMAC_COUNT_TRANSFER_IEN_SHIFT (29)
+
+// DMAC DMAC_COUNT PW
+#define DMAC_DMAC_COUNT_PW_MASK (0x18000000)
+#define DMAC_DMAC_COUNT_PW_LSBMASK (0x00000003)
+#define DMAC_DMAC_COUNT_PW_SHIFT (27)
+
+// DMAC DMAC_COUNT DIR
+#define DMAC_DMAC_COUNT_DIR_MASK (0x04000000)
+#define DMAC_DMAC_COUNT_DIR_LSBMASK (0x00000001)
+#define DMAC_DMAC_COUNT_DIR_SHIFT (26)
+
+// DMAC DMAC_COUNT PI
+#define DMAC_DMAC_COUNT_PI_MASK (0x03000000)
+#define DMAC_DMAC_COUNT_PI_LSBMASK (0x00000003)
+#define DMAC_DMAC_COUNT_PI_SHIFT (24)
+
+// DMAC DMAC_COUNT LIST_FIN_CTL
+#define DMAC_DMAC_COUNT_LIST_FIN_CTL_MASK (0x00400000)
+#define DMAC_DMAC_COUNT_LIST_FIN_CTL_LSBMASK (0x00000001)
+#define DMAC_DMAC_COUNT_LIST_FIN_CTL_SHIFT (22)
+
+// DMAC DMAC_COUNT DREQ
+#define DMAC_DMAC_COUNT_DREQ_MASK (0x00100000)
+#define DMAC_DMAC_COUNT_DREQ_LSBMASK (0x00000001)
+#define DMAC_DMAC_COUNT_DREQ_SHIFT (20)
+
+// DMAC DMAC_COUNT SRST
+#define DMAC_DMAC_COUNT_SRST_MASK (0x00080000)
+#define DMAC_DMAC_COUNT_SRST_LSBMASK (0x00000001)
+#define DMAC_DMAC_COUNT_SRST_SHIFT (19)
+
+// DMAC DMAC_COUNT LIST_EN
+#define DMAC_DMAC_COUNT_LIST_EN_MASK (0x00040000)
+#define DMAC_DMAC_COUNT_LIST_EN_LSBMASK (0x00000001)
+#define DMAC_DMAC_COUNT_LIST_EN_SHIFT (18)
+
+// DMAC DMAC_COUNT ENABLE_2D_MODE
+#define DMAC_DMAC_COUNT_ENABLE_2D_MODE_MASK (0x00020000)
+#define DMAC_DMAC_COUNT_ENABLE_2D_MODE_LSBMASK (0x00000001)
+#define DMAC_DMAC_COUNT_ENABLE_2D_MODE_SHIFT (17)
+
+// DMAC DMAC_COUNT EN
+#define DMAC_DMAC_COUNT_EN_MASK (0x00010000)
+#define DMAC_DMAC_COUNT_EN_LSBMASK (0x00000001)
+#define DMAC_DMAC_COUNT_EN_SHIFT (16)
+
+// DMAC DMAC_COUNT CNT
+#define DMAC_DMAC_COUNT_CNT_MASK (0x0000FFFF)
+#define DMAC_DMAC_COUNT_CNT_LSBMASK (0x0000FFFF)
+#define DMAC_DMAC_COUNT_CNT_SHIFT (0)
+
+#define DMAC_DMAC_PERIPH_OFFSET (0x0008)
+#define DMAC_DMAC_PERIPH_STRIDE (32)
+#define DMAC_DMAC_PERIPH_NO_ENTRIES (4)
+
+// DMAC DMAC_PERIPH ACC_DEL
+#define DMAC_DMAC_PERIPH_ACC_DEL_MASK (0xE0000000)
+#define DMAC_DMAC_PERIPH_ACC_DEL_LSBMASK (0x00000007)
+#define DMAC_DMAC_PERIPH_ACC_DEL_SHIFT (29)
+
+// DMAC DMAC_PERIPH INCR
+#define DMAC_DMAC_PERIPH_INCR_MASK (0x08000000)
+#define DMAC_DMAC_PERIPH_INCR_LSBMASK (0x00000001)
+#define DMAC_DMAC_PERIPH_INCR_SHIFT (27)
+
+// DMAC DMAC_PERIPH BURST
+#define DMAC_DMAC_PERIPH_BURST_MASK (0x07000000)
+#define DMAC_DMAC_PERIPH_BURST_LSBMASK (0x00000007)
+#define DMAC_DMAC_PERIPH_BURST_SHIFT (24)
+
+// DMAC DMAC_PERIPH EXT_SA
+#define DMAC_DMAC_PERIPH_EXT_SA_MASK (0x0000000F)
+#define DMAC_DMAC_PERIPH_EXT_SA_LSBMASK (0x0000000F)
+#define DMAC_DMAC_PERIPH_EXT_SA_SHIFT (0)
+
+#define DMAC_DMAC_IRQ_STAT_OFFSET (0x000C)
+#define DMAC_DMAC_IRQ_STAT_STRIDE (32)
+#define DMAC_DMAC_IRQ_STAT_NO_ENTRIES (4)
+
+// DMAC DMAC_IRQ_STAT LIST_FIN
+#define DMAC_DMAC_IRQ_STAT_LIST_FIN_MASK (0x00200000)
+#define DMAC_DMAC_IRQ_STAT_LIST_FIN_LSBMASK (0x00000001)
+#define DMAC_DMAC_IRQ_STAT_LIST_FIN_SHIFT (21)
+
+// DMAC DMAC_IRQ_STAT LIST_INT
+#define DMAC_DMAC_IRQ_STAT_LIST_INT_MASK (0x00100000)
+#define DMAC_DMAC_IRQ_STAT_LIST_INT_LSBMASK (0x00000001)
+#define DMAC_DMAC_IRQ_STAT_LIST_INT_SHIFT (20)
+
+// DMAC DMAC_IRQ_STAT TRANSFER_FIN
+#define DMAC_DMAC_IRQ_STAT_TRANSFER_FIN_MASK (0x00020000)
+#define DMAC_DMAC_IRQ_STAT_TRANSFER_FIN_LSBMASK (0x00000001)
+#define DMAC_DMAC_IRQ_STAT_TRANSFER_FIN_SHIFT (17)
+
+#define DMAC_DMAC_2D_MODE_OFFSET (0x0010)
+#define DMAC_DMAC_2D_MODE_STRIDE (32)
+#define DMAC_DMAC_2D_MODE_NO_ENTRIES (4)
+
+// DMAC DMAC_2D_MODE REP_COUNT
+#define DMAC_DMAC_2D_MODE_REP_COUNT_MASK (0x7FF00000)
+#define DMAC_DMAC_2D_MODE_REP_COUNT_LSBMASK (0x000007FF)
+#define DMAC_DMAC_2D_MODE_REP_COUNT_SHIFT (20)
+
+// DMAC DMAC_2D_MODE LINE_ADDR_OFFSET
+#define DMAC_DMAC_2D_MODE_LINE_ADDR_OFFSET_MASK (0x000FFC00)
+#define DMAC_DMAC_2D_MODE_LINE_ADDR_OFFSET_LSBMASK (0x000003FF)
+#define DMAC_DMAC_2D_MODE_LINE_ADDR_OFFSET_SHIFT (10)
+
+// DMAC DMAC_2D_MODE ROW_LENGTH
+#define DMAC_DMAC_2D_MODE_ROW_LENGTH_MASK (0x000003FF)
+#define DMAC_DMAC_2D_MODE_ROW_LENGTH_LSBMASK (0x000003FF)
+#define DMAC_DMAC_2D_MODE_ROW_LENGTH_SHIFT (0)
+
+#define DMAC_DMAC_PERIPHERAL_ADDR_OFFSET (0x0014)
+#define DMAC_DMAC_PERIPHERAL_ADDR_STRIDE (32)
+#define DMAC_DMAC_PERIPHERAL_ADDR_NO_ENTRIES (4)
+
+// DMAC DMAC_PERIPHERAL_ADDR ADDR
+#define DMAC_DMAC_PERIPHERAL_ADDR_ADDR_MASK (0x007FFFFF)
+#define DMAC_DMAC_PERIPHERAL_ADDR_ADDR_LSBMASK (0x007FFFFF)
+#define DMAC_DMAC_PERIPHERAL_ADDR_ADDR_SHIFT (0)
+
+#define DMAC_DMAC_PER_HOLD_OFFSET (0x0018)
+#define DMAC_DMAC_PER_HOLD_STRIDE (32)
+#define DMAC_DMAC_PER_HOLD_NO_ENTRIES (4)
+
+// DMAC DMAC_PER_HOLD PER_HOLD
+#define DMAC_DMAC_PER_HOLD_PER_HOLD_MASK (0x0000007F)
+#define DMAC_DMAC_PER_HOLD_PER_HOLD_LSBMASK (0x0000007F)
+#define DMAC_DMAC_PER_HOLD_PER_HOLD_SHIFT (0)
+
+#define DMAC_DMAC_SOFT_RESET_OFFSET (0x0080)
+
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __MSVDX_DMAC_REGS_IO2_H__ */
diff --git a/src/hwdefs/msvdx_mtx_reg_io2.h b/src/hwdefs/msvdx_mtx_reg_io2.h
new file mode 100644
index 0000000..d75d8e5
--- /dev/null
+++ b/src/hwdefs/msvdx_mtx_reg_io2.h
@@ -0,0 +1,296 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+
+/******************************************************************************
+
+ @File msvdx_mtx_reg_io2.h
+
+ @Title MSVDX MMU defines
+
+ @Platform </b>\n
+
+ @Description </b>\n This file contains the MSVDX_MTX_REG_IO2_H Defintions.
+
+******************************************************************************/
+#if !defined (__MSVDX_MTX_REG_IO2_H__)
+#define __MSVDX_MTX_REG_IO2_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+#define MTX_CORE_CR_MTX_ENABLE_OFFSET (0x0000)
+
+// MTX_CORE CR_MTX_ENABLE MTX_MAJ_REV
+#define MTX_CORE_CR_MTX_ENABLE_MTX_MAJ_REV_MASK (0xFF000000)
+#define MTX_CORE_CR_MTX_ENABLE_MTX_MAJ_REV_LSBMASK (0x000000FF)
+#define MTX_CORE_CR_MTX_ENABLE_MTX_MAJ_REV_SHIFT (24)
+
+// MTX_CORE CR_MTX_ENABLE MTX_MIN_REV
+#define MTX_CORE_CR_MTX_ENABLE_MTX_MIN_REV_MASK (0x00FF0000)
+#define MTX_CORE_CR_MTX_ENABLE_MTX_MIN_REV_LSBMASK (0x000000FF)
+#define MTX_CORE_CR_MTX_ENABLE_MTX_MIN_REV_SHIFT (16)
+
+// MTX_CORE CR_MTX_ENABLE MTX_TCAPS
+#define MTX_CORE_CR_MTX_ENABLE_MTX_TCAPS_MASK (0x0000F000)
+#define MTX_CORE_CR_MTX_ENABLE_MTX_TCAPS_LSBMASK (0x0000000F)
+#define MTX_CORE_CR_MTX_ENABLE_MTX_TCAPS_SHIFT (12)
+
+// MTX_CORE CR_MTX_ENABLE MTX_ARCH
+#define MTX_CORE_CR_MTX_ENABLE_MTX_ARCH_MASK (0x00000800)
+#define MTX_CORE_CR_MTX_ENABLE_MTX_ARCH_LSBMASK (0x00000001)
+#define MTX_CORE_CR_MTX_ENABLE_MTX_ARCH_SHIFT (11)
+
+// MTX_CORE CR_MTX_ENABLE MTX_STEP_REC
+#define MTX_CORE_CR_MTX_ENABLE_MTX_STEP_REC_MASK (0x000000F0)
+#define MTX_CORE_CR_MTX_ENABLE_MTX_STEP_REC_LSBMASK (0x0000000F)
+#define MTX_CORE_CR_MTX_ENABLE_MTX_STEP_REC_SHIFT (4)
+
+// MTX_CORE CR_MTX_ENABLE MTX_TSTOPPED
+#define MTX_CORE_CR_MTX_ENABLE_MTX_TSTOPPED_MASK (0x00000004)
+#define MTX_CORE_CR_MTX_ENABLE_MTX_TSTOPPED_LSBMASK (0x00000001)
+#define MTX_CORE_CR_MTX_ENABLE_MTX_TSTOPPED_SHIFT (2)
+
+// MTX_CORE CR_MTX_ENABLE MTX_TOFF
+#define MTX_CORE_CR_MTX_ENABLE_MTX_TOFF_MASK (0x00000002)
+#define MTX_CORE_CR_MTX_ENABLE_MTX_TOFF_LSBMASK (0x00000001)
+#define MTX_CORE_CR_MTX_ENABLE_MTX_TOFF_SHIFT (1)
+
+// MTX_CORE CR_MTX_ENABLE MTX_ENABLE
+#define MTX_CORE_CR_MTX_ENABLE_MTX_ENABLE_MASK (0x00000001)
+#define MTX_CORE_CR_MTX_ENABLE_MTX_ENABLE_LSBMASK (0x00000001)
+#define MTX_CORE_CR_MTX_ENABLE_MTX_ENABLE_SHIFT (0)
+
+#define MTX_CORE_CR_MTX_STATUS_OFFSET (0x0008)
+
+// MTX_CORE CR_MTX_STATUS MTX_HREASON
+#define MTX_CORE_CR_MTX_STATUS_MTX_HREASON_MASK (0x000C0000)
+#define MTX_CORE_CR_MTX_STATUS_MTX_HREASON_LSBMASK (0x00000003)
+#define MTX_CORE_CR_MTX_STATUS_MTX_HREASON_SHIFT (18)
+
+// MTX_CORE CR_MTX_STATUS MTX_LSM_STEP
+#define MTX_CORE_CR_MTX_STATUS_MTX_LSM_STEP_MASK (0x00000700)
+#define MTX_CORE_CR_MTX_STATUS_MTX_LSM_STEP_LSBMASK (0x00000007)
+#define MTX_CORE_CR_MTX_STATUS_MTX_LSM_STEP_SHIFT (8)
+
+// MTX_CORE CR_MTX_STATUS MTX_CF_Z
+#define MTX_CORE_CR_MTX_STATUS_MTX_CF_Z_MASK (0x00000008)
+#define MTX_CORE_CR_MTX_STATUS_MTX_CF_Z_LSBMASK (0x00000001)
+#define MTX_CORE_CR_MTX_STATUS_MTX_CF_Z_SHIFT (3)
+
+// MTX_CORE CR_MTX_STATUS MTX_CF_N
+#define MTX_CORE_CR_MTX_STATUS_MTX_CF_N_MASK (0x00000004)
+#define MTX_CORE_CR_MTX_STATUS_MTX_CF_N_LSBMASK (0x00000001)
+#define MTX_CORE_CR_MTX_STATUS_MTX_CF_N_SHIFT (2)
+
+// MTX_CORE CR_MTX_STATUS MTX_CR_O
+#define MTX_CORE_CR_MTX_STATUS_MTX_CR_O_MASK (0x00000002)
+#define MTX_CORE_CR_MTX_STATUS_MTX_CR_O_LSBMASK (0x00000001)
+#define MTX_CORE_CR_MTX_STATUS_MTX_CR_O_SHIFT (1)
+
+// MTX_CORE CR_MTX_STATUS MTX_CF_C
+#define MTX_CORE_CR_MTX_STATUS_MTX_CF_C_MASK (0x00000001)
+#define MTX_CORE_CR_MTX_STATUS_MTX_CF_C_LSBMASK (0x00000001)
+#define MTX_CORE_CR_MTX_STATUS_MTX_CF_C_SHIFT (0)
+
+#define MTX_CORE_CR_MTX_KICK_OFFSET (0x0080)
+
+// MTX_CORE CR_MTX_KICK MTX_KICK
+#define MTX_CORE_CR_MTX_KICK_MTX_KICK_MASK (0x0000FFFF)
+#define MTX_CORE_CR_MTX_KICK_MTX_KICK_LSBMASK (0x0000FFFF)
+#define MTX_CORE_CR_MTX_KICK_MTX_KICK_SHIFT (0)
+
+#define MTX_CORE_CR_MTX_KICKI_OFFSET (0x0088)
+
+// MTX_CORE CR_MTX_KICKI MTX_KICKI
+#define MTX_CORE_CR_MTX_KICKI_MTX_KICKI_MASK (0x0000FFFF)
+#define MTX_CORE_CR_MTX_KICKI_MTX_KICKI_LSBMASK (0x0000FFFF)
+#define MTX_CORE_CR_MTX_KICKI_MTX_KICKI_SHIFT (0)
+
+#define MTX_CORE_CR_MTX_FAULT0_OFFSET (0x0090)
+
+// MTX_CORE CR_MTX_FAULT0 REQ_LD_REG
+#define MTX_CORE_CR_MTX_FAULT0_REQ_LD_REG_MASK (0xF8000000)
+#define MTX_CORE_CR_MTX_FAULT0_REQ_LD_REG_LSBMASK (0x0000001F)
+#define MTX_CORE_CR_MTX_FAULT0_REQ_LD_REG_SHIFT (27)
+
+// MTX_CORE CR_MTX_FAULT0 REQ_LD_DEST
+#define MTX_CORE_CR_MTX_FAULT0_REQ_LD_DEST_MASK (0x00FF0000)
+#define MTX_CORE_CR_MTX_FAULT0_REQ_LD_DEST_LSBMASK (0x000000FF)
+#define MTX_CORE_CR_MTX_FAULT0_REQ_LD_DEST_SHIFT (16)
+
+// MTX_CORE CR_MTX_FAULT0 REQ_STATE
+#define MTX_CORE_CR_MTX_FAULT0_REQ_STATE_MASK (0x00000C00)
+#define MTX_CORE_CR_MTX_FAULT0_REQ_STATE_LSBMASK (0x00000003)
+#define MTX_CORE_CR_MTX_FAULT0_REQ_STATE_SHIFT (10)
+
+// MTX_CORE CR_MTX_FAULT0 REQ_RN_W
+#define MTX_CORE_CR_MTX_FAULT0_REQ_RN_W_MASK (0x00000100)
+#define MTX_CORE_CR_MTX_FAULT0_REQ_RN_W_LSBMASK (0x00000001)
+#define MTX_CORE_CR_MTX_FAULT0_REQ_RN_W_SHIFT (8)
+
+// MTX_CORE CR_MTX_FAULT0 REQ_SB
+#define MTX_CORE_CR_MTX_FAULT0_REQ_SB_MASK (0x000000FF)
+#define MTX_CORE_CR_MTX_FAULT0_REQ_SB_LSBMASK (0x000000FF)
+#define MTX_CORE_CR_MTX_FAULT0_REQ_SB_SHIFT (0)
+
+#define MTX_CORE_CR_MTX_REGISTER_READ_WRITE_DATA_OFFSET (0x00F8)
+
+#define MTX_CORE_CR_MTX_REGISTER_READ_WRITE_REQUEST_OFFSET (0x00FC)
+
+// MTX_CORE CR_MTX_REGISTER_READ_WRITE_REQUEST MTX_DREADY
+#define MTX_CORE_CR_MTX_REGISTER_READ_WRITE_REQUEST_MTX_DREADY_MASK (0x80000000)
+#define MTX_CORE_CR_MTX_REGISTER_READ_WRITE_REQUEST_MTX_DREADY_LSBMASK (0x00000001)
+#define MTX_CORE_CR_MTX_REGISTER_READ_WRITE_REQUEST_MTX_DREADY_SHIFT (31)
+
+// MTX_CORE CR_MTX_REGISTER_READ_WRITE_REQUEST MTX_RNW
+#define MTX_CORE_CR_MTX_REGISTER_READ_WRITE_REQUEST_MTX_RNW_MASK (0x00010000)
+#define MTX_CORE_CR_MTX_REGISTER_READ_WRITE_REQUEST_MTX_RNW_LSBMASK (0x00000001)
+#define MTX_CORE_CR_MTX_REGISTER_READ_WRITE_REQUEST_MTX_RNW_SHIFT (16)
+
+// MTX_CORE CR_MTX_REGISTER_READ_WRITE_REQUEST MTX_RSPECIFIER
+#define MTX_CORE_CR_MTX_REGISTER_READ_WRITE_REQUEST_MTX_RSPECIFIER_MASK (0x00000070)
+#define MTX_CORE_CR_MTX_REGISTER_READ_WRITE_REQUEST_MTX_RSPECIFIER_LSBMASK (0x00000007)
+#define MTX_CORE_CR_MTX_REGISTER_READ_WRITE_REQUEST_MTX_RSPECIFIER_SHIFT (4)
+
+// MTX_CORE CR_MTX_REGISTER_READ_WRITE_REQUEST MTX_USPECIFIER
+#define MTX_CORE_CR_MTX_REGISTER_READ_WRITE_REQUEST_MTX_USPECIFIER_MASK (0x0000000F)
+#define MTX_CORE_CR_MTX_REGISTER_READ_WRITE_REQUEST_MTX_USPECIFIER_LSBMASK (0x0000000F)
+#define MTX_CORE_CR_MTX_REGISTER_READ_WRITE_REQUEST_MTX_USPECIFIER_SHIFT (0)
+
+#define MTX_CORE_CR_MTX_RAM_ACCESS_DATA_EXCHANGE_OFFSET (0x0100)
+
+#define MTX_CORE_CR_MTX_RAM_ACCESS_DATA_TRANSFER_OFFSET (0x0104)
+
+#define MTX_CORE_CR_MTX_RAM_ACCESS_CONTROL_OFFSET (0x0108)
+
+// MTX_CORE CR_MTX_RAM_ACCESS_CONTROL MTX_MCMID
+#define MTX_CORE_CR_MTX_RAM_ACCESS_CONTROL_MTX_MCMID_MASK (0x0FF00000)
+#define MTX_CORE_CR_MTX_RAM_ACCESS_CONTROL_MTX_MCMID_LSBMASK (0x000000FF)
+#define MTX_CORE_CR_MTX_RAM_ACCESS_CONTROL_MTX_MCMID_SHIFT (20)
+
+// MTX_CORE CR_MTX_RAM_ACCESS_CONTROL MTX_MCM_ADDR
+#define MTX_CORE_CR_MTX_RAM_ACCESS_CONTROL_MTX_MCM_ADDR_MASK (0x000FFFFC)
+#define MTX_CORE_CR_MTX_RAM_ACCESS_CONTROL_MTX_MCM_ADDR_LSBMASK (0x0003FFFF)
+#define MTX_CORE_CR_MTX_RAM_ACCESS_CONTROL_MTX_MCM_ADDR_SHIFT (2)
+
+// MTX_CORE CR_MTX_RAM_ACCESS_CONTROL MTX_MCMAI
+#define MTX_CORE_CR_MTX_RAM_ACCESS_CONTROL_MTX_MCMAI_MASK (0x00000002)
+#define MTX_CORE_CR_MTX_RAM_ACCESS_CONTROL_MTX_MCMAI_LSBMASK (0x00000001)
+#define MTX_CORE_CR_MTX_RAM_ACCESS_CONTROL_MTX_MCMAI_SHIFT (1)
+
+// MTX_CORE CR_MTX_RAM_ACCESS_CONTROL MTX_MCMR
+#define MTX_CORE_CR_MTX_RAM_ACCESS_CONTROL_MTX_MCMR_MASK (0x00000001)
+#define MTX_CORE_CR_MTX_RAM_ACCESS_CONTROL_MTX_MCMR_LSBMASK (0x00000001)
+#define MTX_CORE_CR_MTX_RAM_ACCESS_CONTROL_MTX_MCMR_SHIFT (0)
+
+#define MTX_CORE_CR_MTX_RAM_ACCESS_STATUS_OFFSET (0x010C)
+
+// MTX_CORE CR_MTX_RAM_ACCESS_STATUS MTX_MTX_MCM_STAT
+#define MTX_CORE_CR_MTX_RAM_ACCESS_STATUS_MTX_MTX_MCM_STAT_MASK (0x00000001)
+#define MTX_CORE_CR_MTX_RAM_ACCESS_STATUS_MTX_MTX_MCM_STAT_LSBMASK (0x00000001)
+#define MTX_CORE_CR_MTX_RAM_ACCESS_STATUS_MTX_MTX_MCM_STAT_SHIFT (0)
+
+#define MTX_CORE_CR_MTX_SOFT_RESET_OFFSET (0x0200)
+
+// MTX_CORE CR_MTX_SOFT_RESET MTX_RESET
+#define MTX_CORE_CR_MTX_SOFT_RESET_MTX_RESET_MASK (0x00000001)
+#define MTX_CORE_CR_MTX_SOFT_RESET_MTX_RESET_LSBMASK (0x00000001)
+#define MTX_CORE_CR_MTX_SOFT_RESET_MTX_RESET_SHIFT (0)
+
+#define MTX_CORE_CR_MTX_SYSC_CDMAC_OFFSET (0x0340)
+
+// MTX_CORE CR_MTX_SYSC_CDMAC BURSTSIZE
+#define MTX_CORE_CR_MTX_SYSC_CDMAC_BURSTSIZE_MASK (0x07000000)
+#define MTX_CORE_CR_MTX_SYSC_CDMAC_BURSTSIZE_LSBMASK (0x00000007)
+#define MTX_CORE_CR_MTX_SYSC_CDMAC_BURSTSIZE_SHIFT (24)
+
+// MTX_CORE CR_MTX_SYSC_CDMAC RNW
+#define MTX_CORE_CR_MTX_SYSC_CDMAC_RNW_MASK (0x00020000)
+#define MTX_CORE_CR_MTX_SYSC_CDMAC_RNW_LSBMASK (0x00000001)
+#define MTX_CORE_CR_MTX_SYSC_CDMAC_RNW_SHIFT (17)
+
+// MTX_CORE CR_MTX_SYSC_CDMAC ENABLE
+#define MTX_CORE_CR_MTX_SYSC_CDMAC_ENABLE_MASK (0x00010000)
+#define MTX_CORE_CR_MTX_SYSC_CDMAC_ENABLE_LSBMASK (0x00000001)
+#define MTX_CORE_CR_MTX_SYSC_CDMAC_ENABLE_SHIFT (16)
+
+// MTX_CORE CR_MTX_SYSC_CDMAC LENGTH
+#define MTX_CORE_CR_MTX_SYSC_CDMAC_LENGTH_MASK (0x0000FFFF)
+#define MTX_CORE_CR_MTX_SYSC_CDMAC_LENGTH_LSBMASK (0x0000FFFF)
+#define MTX_CORE_CR_MTX_SYSC_CDMAC_LENGTH_SHIFT (0)
+
+#define MTX_CORE_CR_MTX_SYSC_CDMAA_OFFSET (0x0344)
+
+// MTX_CORE CR_MTX_SYSC_CDMAA CDMAA_ADDRESS
+#define MTX_CORE_CR_MTX_SYSC_CDMAA_CDMAA_ADDRESS_MASK (0x03FFFFFC)
+#define MTX_CORE_CR_MTX_SYSC_CDMAA_CDMAA_ADDRESS_LSBMASK (0x00FFFFFF)
+#define MTX_CORE_CR_MTX_SYSC_CDMAA_CDMAA_ADDRESS_SHIFT (2)
+
+#define MTX_CORE_CR_MTX_SYSC_CDMAS0_OFFSET (0x0348)
+
+// MTX_CORE CR_MTX_SYSC_CDMAS0 COUNT
+#define MTX_CORE_CR_MTX_SYSC_CDMAS0_COUNT_MASK (0xFFFF0000)
+#define MTX_CORE_CR_MTX_SYSC_CDMAS0_COUNT_LSBMASK (0x0000FFFF)
+#define MTX_CORE_CR_MTX_SYSC_CDMAS0_COUNT_SHIFT (16)
+
+// MTX_CORE CR_MTX_SYSC_CDMAS0 RAMNUMBER
+#define MTX_CORE_CR_MTX_SYSC_CDMAS0_RAMNUMBER_MASK (0x00000F00)
+#define MTX_CORE_CR_MTX_SYSC_CDMAS0_RAMNUMBER_LSBMASK (0x0000000F)
+#define MTX_CORE_CR_MTX_SYSC_CDMAS0_RAMNUMBER_SHIFT (8)
+
+// MTX_CORE CR_MTX_SYSC_CDMAS0 DMAREQUEST
+#define MTX_CORE_CR_MTX_SYSC_CDMAS0_DMAREQUEST_MASK (0x00000010)
+#define MTX_CORE_CR_MTX_SYSC_CDMAS0_DMAREQUEST_LSBMASK (0x00000001)
+#define MTX_CORE_CR_MTX_SYSC_CDMAS0_DMAREQUEST_SHIFT (4)
+
+// MTX_CORE CR_MTX_SYSC_CDMAS0 DONOTHING
+#define MTX_CORE_CR_MTX_SYSC_CDMAS0_DONOTHING_MASK (0x00000001)
+#define MTX_CORE_CR_MTX_SYSC_CDMAS0_DONOTHING_LSBMASK (0x00000001)
+#define MTX_CORE_CR_MTX_SYSC_CDMAS0_DONOTHING_SHIFT (0)
+
+#define MTX_CORE_CR_MTX_SYSC_CDMAS1_OFFSET (0x034C)
+
+// MTX_CORE CR_MTX_SYSC_CDMAS1 CDMAS1_ADDRESS
+#define MTX_CORE_CR_MTX_SYSC_CDMAS1_CDMAS1_ADDRESS_MASK (0x03FFFFFC)
+#define MTX_CORE_CR_MTX_SYSC_CDMAS1_CDMAS1_ADDRESS_LSBMASK (0x00FFFFFF)
+#define MTX_CORE_CR_MTX_SYSC_CDMAS1_CDMAS1_ADDRESS_SHIFT (2)
+
+#define MTX_CORE_CR_MTX_SYSC_CDMAT_OFFSET (0x0350)
+
+// MTX_CORE CR_MTX_SYSC_CDMAT TRANSFERDATA
+#define MTX_CORE_CR_MTX_SYSC_CDMAT_TRANSFERDATA_MASK (0xFFFFFFFF)
+#define MTX_CORE_CR_MTX_SYSC_CDMAT_TRANSFERDATA_LSBMASK (0xFFFFFFFF)
+#define MTX_CORE_CR_MTX_SYSC_CDMAT_TRANSFERDATA_SHIFT (0)
+
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __MSVDX_MTX_REG_IO2_H__ */
diff --git a/src/hwdefs/msvdx_offsets.h b/src/hwdefs/msvdx_offsets.h
new file mode 100644
index 0000000..e841e27
--- /dev/null
+++ b/src/hwdefs/msvdx_offsets.h
@@ -0,0 +1,71 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+
+/******************************************************************************
+
+ @File msvdx_offsets.h
+
+ @Title MSVDX Offsets
+
+ @Platform
+
+ @Description
+
+******************************************************************************/
+#ifndef _MSVDX_OFFSETS_H_
+#define _MSVDX_OFFSETS_H_
+
+#include "msvdx_defs.h"
+
+#define REG_MAC_OFFSET REG_MSVDX_DMAC_OFFSET
+#define REG_MSVDX_CMDS_OFFSET REG_MSVDX_CMD_OFFSET
+#define REG_MSVDX_VEC_MPEG2_OFFSET REG_MSVDX_VEC_OFFSET
+#define REG_MSVDX_VEC_MPEG4_OFFSET REG_MSVDX_VEC_OFFSET
+#define REG_MSVDX_VEC_H264_OFFSET REG_MSVDX_VEC_OFFSET
+#define REG_MSVDX_VEC_VC1_OFFSET REG_MSVDX_VEC_OFFSET
+#define REG_MSVDX_CORE_OFFSET REG_MSVDX_SYS_OFFSET
+#define REG_DMAC_OFFSET REG_MSVDX_DMAC_OFFSET
+
+#define RENDEC_REGISTER_OFFSET(__group__, __reg__ ) ( (__group__##_##__reg__##_OFFSET) + ( REG_##__group__##_OFFSET ) )
+
+/* Not the best place for this */
+#ifdef PLEASE_DONT_INCLUDE_REGISTER_BASE
+
+/* This macro is used by KM gpu sim code */
+
+#define REGISTER_OFFSET(__group__, __reg__ ) ( (__group__##_##__reg__##_OFFSET) )
+
+#else
+
+/* This is the macro used by UM Drivers - it included the Mtx memory offser to the msvdx redisters */
+
+// #define REGISTER_OFFSET(__group__, __reg__ ) ( (__group__##_##__reg__##_OFFSET) + ( REG_##__group__##_OFFSET ) )
+#define REGISTER_OFFSET(__group__, __reg__ ) ( (__group__##_##__reg__##_OFFSET) + ( REG_##__group__##_OFFSET ) + 0x04800000 )
+
+#endif
+
+
+#endif /*_MSVDX_OFFSETS_H_*/
diff --git a/src/hwdefs/msvdx_rendec_mtx_slice_cntrl_reg_io2.h b/src/hwdefs/msvdx_rendec_mtx_slice_cntrl_reg_io2.h
new file mode 100644
index 0000000..c2e1257
--- /dev/null
+++ b/src/hwdefs/msvdx_rendec_mtx_slice_cntrl_reg_io2.h
@@ -0,0 +1,108 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+
+/******************************************************************************
+
+ @File msvdx_rendec_mtx_slice_cntrl_reg_io2.h
+
+ @Title MSVDX Offsets
+
+ @Platform </b>\n
+
+ @Description </b>\n This file contains the
+ MSVDX_RENDEC_MTX_SLICE_CNTRL_REG_IO2_H Defintions.
+
+******************************************************************************/
+#if !defined (__MSVDX_RENDEC_MTX_SLICE_CNTRL_REG_IO2_H__)
+#define __MSVDX_RENDEC_MTX_SLICE_CNTRL_REG_IO2_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+#define RENDEC_SLICE_INFO_SL_HDR_CK_START_OFFSET (0x0000)
+
+// RENDEC_SLICE_INFO SL_HDR_CK_START SL_NUM_SYMBOLS_LESS1
+#define RENDEC_SLICE_INFO_SL_HDR_CK_START_SL_NUM_SYMBOLS_LESS1_MASK (0x07FF0000)
+#define RENDEC_SLICE_INFO_SL_HDR_CK_START_SL_NUM_SYMBOLS_LESS1_LSBMASK (0x000007FF)
+#define RENDEC_SLICE_INFO_SL_HDR_CK_START_SL_NUM_SYMBOLS_LESS1_SHIFT (16)
+
+// RENDEC_SLICE_INFO SL_HDR_CK_START SL_ROUTING_INFO
+#define RENDEC_SLICE_INFO_SL_HDR_CK_START_SL_ROUTING_INFO_MASK (0x00000018)
+#define RENDEC_SLICE_INFO_SL_HDR_CK_START_SL_ROUTING_INFO_LSBMASK (0x00000003)
+#define RENDEC_SLICE_INFO_SL_HDR_CK_START_SL_ROUTING_INFO_SHIFT (3)
+
+// RENDEC_SLICE_INFO SL_HDR_CK_START SL_ENCODING_METHOD
+#define RENDEC_SLICE_INFO_SL_HDR_CK_START_SL_ENCODING_METHOD_MASK (0x00000007)
+#define RENDEC_SLICE_INFO_SL_HDR_CK_START_SL_ENCODING_METHOD_LSBMASK (0x00000007)
+#define RENDEC_SLICE_INFO_SL_HDR_CK_START_SL_ENCODING_METHOD_SHIFT (0)
+
+#define RENDEC_SLICE_INFO_SL_HDR_CK_PARAMS_OFFSET (0x0004)
+
+// RENDEC_SLICE_INFO SL_HDR_CK_PARAMS SL_DATA
+#define RENDEC_SLICE_INFO_SL_HDR_CK_PARAMS_SL_DATA_MASK (0xFFFFFFFF)
+#define RENDEC_SLICE_INFO_SL_HDR_CK_PARAMS_SL_DATA_LSBMASK (0xFFFFFFFF)
+#define RENDEC_SLICE_INFO_SL_HDR_CK_PARAMS_SL_DATA_SHIFT (0)
+
+#define RENDEC_SLICE_INFO_CK_HDR_OFFSET (0x0008)
+
+// RENDEC_SLICE_INFO CK_HDR CK_NUM_SYMBOLS_LESS1
+#define RENDEC_SLICE_INFO_CK_HDR_CK_NUM_SYMBOLS_LESS1_MASK (0x07FF0000)
+#define RENDEC_SLICE_INFO_CK_HDR_CK_NUM_SYMBOLS_LESS1_LSBMASK (0x000007FF)
+#define RENDEC_SLICE_INFO_CK_HDR_CK_NUM_SYMBOLS_LESS1_SHIFT (16)
+
+// RENDEC_SLICE_INFO CK_HDR CK_START_ADDRESS
+#define RENDEC_SLICE_INFO_CK_HDR_CK_START_ADDRESS_MASK (0x0000FFF0)
+#define RENDEC_SLICE_INFO_CK_HDR_CK_START_ADDRESS_LSBMASK (0x00000FFF)
+#define RENDEC_SLICE_INFO_CK_HDR_CK_START_ADDRESS_SHIFT (4)
+
+// RENDEC_SLICE_INFO CK_HDR CK_ENCODING_METHOD
+#define RENDEC_SLICE_INFO_CK_HDR_CK_ENCODING_METHOD_MASK (0x00000007)
+#define RENDEC_SLICE_INFO_CK_HDR_CK_ENCODING_METHOD_LSBMASK (0x00000007)
+#define RENDEC_SLICE_INFO_CK_HDR_CK_ENCODING_METHOD_SHIFT (0)
+
+#define RENDEC_SLICE_INFO_SLICE_SEPARATOR_OFFSET (0x000C)
+
+// RENDEC_SLICE_INFO SLICE_SEPARATOR SL_SEP_SUFFIX
+#define RENDEC_SLICE_INFO_SLICE_SEPARATOR_SL_SEP_SUFFIX_MASK (0x00000007)
+#define RENDEC_SLICE_INFO_SLICE_SEPARATOR_SL_SEP_SUFFIX_LSBMASK (0x00000007)
+#define RENDEC_SLICE_INFO_SLICE_SEPARATOR_SL_SEP_SUFFIX_SHIFT (0)
+
+#define RENDEC_SLICE_INFO_CK_GENERIC_OFFSET (0x0010)
+
+// RENDEC_SLICE_INFO CK_GENERIC CK_HW_CODE
+#define RENDEC_SLICE_INFO_CK_GENERIC_CK_HW_CODE_MASK (0x0000FFFF)
+#define RENDEC_SLICE_INFO_CK_GENERIC_CK_HW_CODE_LSBMASK (0x0000FFFF)
+#define RENDEC_SLICE_INFO_CK_GENERIC_CK_HW_CODE_SHIFT (0)
+
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __MSVDX_RENDEC_MTX_SLICE_CNTRL_REG_IO2_H__ */
diff --git a/src/hwdefs/msvdx_rendec_vc1_reg_io2.h b/src/hwdefs/msvdx_rendec_vc1_reg_io2.h
new file mode 100644
index 0000000..288aae9
--- /dev/null
+++ b/src/hwdefs/msvdx_rendec_vc1_reg_io2.h
@@ -0,0 +1,259 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+
+/******************************************************************************
+
+ @File msvdx_rendec_vc1_reg_io2.h
+
+ @Title MSVDX Offsets
+
+ @Platform </b>\n
+
+ @Description </b>\n This file contains the MSVDX_RENDEC_VC1_REG_IO2_H
+ Defintions.
+
+******************************************************************************/
+#if !defined (__MSVDX_RENDEC_VC1_REG_IO2_H__)
+#define __MSVDX_RENDEC_VC1_REG_IO2_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+#define VC1_RENDEC_CMD_VC1GEN00_OFFSET (0x0000)
+
+// VC1_RENDEC_CMD VC1GEN00 ADDRESS
+#define VC1_RENDEC_CMD_VC1GEN00_ADDRESS_MASK (0x00FFFFFF)
+#define VC1_RENDEC_CMD_VC1GEN00_ADDRESS_LSBMASK (0x00FFFFFF)
+#define VC1_RENDEC_CMD_VC1GEN00_ADDRESS_SHIFT (0)
+
+#define VC1_RENDEC_CMD_VC1SEQUENCE00_OFFSET (0x0004)
+
+// VC1_RENDEC_CMD VC1SEQUENCE00 PICTURE_HEIGHT
+#define VC1_RENDEC_CMD_VC1SEQUENCE00_PICTURE_HEIGHT_MASK (0x00FFF000)
+#define VC1_RENDEC_CMD_VC1SEQUENCE00_PICTURE_HEIGHT_LSBMASK (0x00000FFF)
+#define VC1_RENDEC_CMD_VC1SEQUENCE00_PICTURE_HEIGHT_SHIFT (12)
+
+// VC1_RENDEC_CMD VC1SEQUENCE00 PICTURE_WIDTH
+#define VC1_RENDEC_CMD_VC1SEQUENCE00_PICTURE_WIDTH_MASK (0x00000FFF)
+#define VC1_RENDEC_CMD_VC1SEQUENCE00_PICTURE_WIDTH_LSBMASK (0x00000FFF)
+#define VC1_RENDEC_CMD_VC1SEQUENCE00_PICTURE_WIDTH_SHIFT (0)
+
+#define VC1_RENDEC_CMD_VC1SEQUENCE01_OFFSET (0x0008)
+
+// VC1_RENDEC_CMD VC1SEQUENCE01 CHROMA_INTERLEAVED
+#define VC1_RENDEC_CMD_VC1SEQUENCE01_CHROMA_INTERLEAVED_MASK (0x08000000)
+#define VC1_RENDEC_CMD_VC1SEQUENCE01_CHROMA_INTERLEAVED_LSBMASK (0x00000001)
+#define VC1_RENDEC_CMD_VC1SEQUENCE01_CHROMA_INTERLEAVED_SHIFT (27)
+
+// VC1_RENDEC_CMD VC1SEQUENCE01 ROW_STRIDE
+#define VC1_RENDEC_CMD_VC1SEQUENCE01_ROW_STRIDE_MASK (0x07000000)
+#define VC1_RENDEC_CMD_VC1SEQUENCE01_ROW_STRIDE_LSBMASK (0x00000007)
+#define VC1_RENDEC_CMD_VC1SEQUENCE01_ROW_STRIDE_SHIFT (24)
+
+// VC1_RENDEC_CMD VC1SEQUENCE01 CODEC_PROFILE
+#define VC1_RENDEC_CMD_VC1SEQUENCE01_CODEC_PROFILE_MASK (0x00300000)
+#define VC1_RENDEC_CMD_VC1SEQUENCE01_CODEC_PROFILE_LSBMASK (0x00000003)
+#define VC1_RENDEC_CMD_VC1SEQUENCE01_CODEC_PROFILE_SHIFT (20)
+
+// VC1_RENDEC_CMD VC1SEQUENCE01 CODEC_MODE
+#define VC1_RENDEC_CMD_VC1SEQUENCE01_CODEC_MODE_MASK (0x00070000)
+#define VC1_RENDEC_CMD_VC1SEQUENCE01_CODEC_MODE_LSBMASK (0x00000007)
+#define VC1_RENDEC_CMD_VC1SEQUENCE01_CODEC_MODE_SHIFT (16)
+
+// VC1_RENDEC_CMD VC1SEQUENCE01 ASYNC_MODE
+#define VC1_RENDEC_CMD_VC1SEQUENCE01_ASYNC_MODE_MASK (0x00006000)
+#define VC1_RENDEC_CMD_VC1SEQUENCE01_ASYNC_MODE_LSBMASK (0x00000003)
+#define VC1_RENDEC_CMD_VC1SEQUENCE01_ASYNC_MODE_SHIFT (13)
+
+// VC1_RENDEC_CMD VC1SEQUENCE01 CHROMA_FORMAT
+#define VC1_RENDEC_CMD_VC1SEQUENCE01_CHROMA_FORMAT_MASK (0x00001000)
+#define VC1_RENDEC_CMD_VC1SEQUENCE01_CHROMA_FORMAT_LSBMASK (0x00000001)
+#define VC1_RENDEC_CMD_VC1SEQUENCE01_CHROMA_FORMAT_SHIFT (12)
+
+// VC1_RENDEC_CMD VC1SEQUENCE01 INTERLACED
+#define VC1_RENDEC_CMD_VC1SEQUENCE01_INTERLACED_MASK (0x00000800)
+#define VC1_RENDEC_CMD_VC1SEQUENCE01_INTERLACED_LSBMASK (0x00000001)
+#define VC1_RENDEC_CMD_VC1SEQUENCE01_INTERLACED_SHIFT (11)
+
+// VC1_RENDEC_CMD VC1SEQUENCE01 VC1_OVERLAP
+#define VC1_RENDEC_CMD_VC1SEQUENCE01_VC1_OVERLAP_MASK (0x00000400)
+#define VC1_RENDEC_CMD_VC1SEQUENCE01_VC1_OVERLAP_LSBMASK (0x00000001)
+#define VC1_RENDEC_CMD_VC1SEQUENCE01_VC1_OVERLAP_SHIFT (10)
+
+// VC1_RENDEC_CMD VC1SEQUENCE01 PIC_CONDOVER
+#define VC1_RENDEC_CMD_VC1SEQUENCE01_PIC_CONDOVER_MASK (0x00000300)
+#define VC1_RENDEC_CMD_VC1SEQUENCE01_PIC_CONDOVER_LSBMASK (0x00000003)
+#define VC1_RENDEC_CMD_VC1SEQUENCE01_PIC_CONDOVER_SHIFT (8)
+
+// VC1_RENDEC_CMD VC1SEQUENCE01 SEQ01_RESERVED
+#define VC1_RENDEC_CMD_VC1SEQUENCE01_SEQ01_RESERVED_MASK (0x000000E0)
+#define VC1_RENDEC_CMD_VC1SEQUENCE01_SEQ01_RESERVED_LSBMASK (0x00000007)
+#define VC1_RENDEC_CMD_VC1SEQUENCE01_SEQ01_RESERVED_SHIFT (5)
+
+// VC1_RENDEC_CMD VC1SEQUENCE01 PIC_QUANT
+#define VC1_RENDEC_CMD_VC1SEQUENCE01_PIC_QUANT_MASK (0x0000001F)
+#define VC1_RENDEC_CMD_VC1SEQUENCE01_PIC_QUANT_LSBMASK (0x0000001F)
+#define VC1_RENDEC_CMD_VC1SEQUENCE01_PIC_QUANT_SHIFT (0)
+
+#define VC1_RENDEC_CMD_VC1SLICE00_OFFSET (0x000C)
+
+// VC1_RENDEC_CMD VC1SLICE00 CONFIG_REF_OFFSET
+#define VC1_RENDEC_CMD_VC1SLICE00_CONFIG_REF_OFFSET_MASK (0x00FFF000)
+#define VC1_RENDEC_CMD_VC1SLICE00_CONFIG_REF_OFFSET_LSBMASK (0x00000FFF)
+#define VC1_RENDEC_CMD_VC1SLICE00_CONFIG_REF_OFFSET_SHIFT (12)
+
+// VC1_RENDEC_CMD VC1SLICE00 CONFIG_ROW_OFFSET
+#define VC1_RENDEC_CMD_VC1SLICE00_CONFIG_ROW_OFFSET_MASK (0x00000FFF)
+#define VC1_RENDEC_CMD_VC1SLICE00_CONFIG_ROW_OFFSET_LSBMASK (0x00000FFF)
+#define VC1_RENDEC_CMD_VC1SLICE00_CONFIG_ROW_OFFSET_SHIFT (0)
+
+#define VC1_RENDEC_CMD_VC1SLICE01_OFFSET (0x0010)
+
+// VC1_RENDEC_CMD VC1SLICE01 VC1_LUMSHIFT2
+#define VC1_RENDEC_CMD_VC1SLICE01_VC1_LUMSHIFT2_MASK (0x00FC0000)
+#define VC1_RENDEC_CMD_VC1SLICE01_VC1_LUMSHIFT2_LSBMASK (0x0000003F)
+#define VC1_RENDEC_CMD_VC1SLICE01_VC1_LUMSHIFT2_SHIFT (18)
+
+// VC1_RENDEC_CMD VC1SLICE01 VC1_LUMSCALE2
+#define VC1_RENDEC_CMD_VC1SLICE01_VC1_LUMSCALE2_MASK (0x0003F000)
+#define VC1_RENDEC_CMD_VC1SLICE01_VC1_LUMSCALE2_LSBMASK (0x0000003F)
+#define VC1_RENDEC_CMD_VC1SLICE01_VC1_LUMSCALE2_SHIFT (12)
+
+// VC1_RENDEC_CMD VC1SLICE01 VC1_LUMSHIFT1
+#define VC1_RENDEC_CMD_VC1SLICE01_VC1_LUMSHIFT1_MASK (0x00000FC0)
+#define VC1_RENDEC_CMD_VC1SLICE01_VC1_LUMSHIFT1_LSBMASK (0x0000003F)
+#define VC1_RENDEC_CMD_VC1SLICE01_VC1_LUMSHIFT1_SHIFT (6)
+
+// VC1_RENDEC_CMD VC1SLICE01 VC1_LUMSCALE1
+#define VC1_RENDEC_CMD_VC1SLICE01_VC1_LUMSCALE1_MASK (0x0000003F)
+#define VC1_RENDEC_CMD_VC1SLICE01_VC1_LUMSCALE1_LSBMASK (0x0000003F)
+#define VC1_RENDEC_CMD_VC1SLICE01_VC1_LUMSCALE1_SHIFT (0)
+
+#define VC1_RENDEC_CMD_VC1SLICE02_OFFSET (0x0014)
+
+// VC1_RENDEC_CMD VC1SLICE02 VC1_PREV_INT_COMP
+#define VC1_RENDEC_CMD_VC1SLICE02_VC1_PREV_INT_COMP_MASK (0x0C000000)
+#define VC1_RENDEC_CMD_VC1SLICE02_VC1_PREV_INT_COMP_LSBMASK (0x00000003)
+#define VC1_RENDEC_CMD_VC1SLICE02_VC1_PREV_INT_COMP_SHIFT (26)
+
+// VC1_RENDEC_CMD VC1SLICE02 VC1_BACK_INT_COMP
+#define VC1_RENDEC_CMD_VC1SLICE02_VC1_BACK_INT_COMP_MASK (0x03000000)
+#define VC1_RENDEC_CMD_VC1SLICE02_VC1_BACK_INT_COMP_LSBMASK (0x00000003)
+#define VC1_RENDEC_CMD_VC1SLICE02_VC1_BACK_INT_COMP_SHIFT (24)
+
+// VC1_RENDEC_CMD VC1SLICE02 RND_CTRL_BIT
+#define VC1_RENDEC_CMD_VC1SLICE02_RND_CTRL_BIT_MASK (0x00400000)
+#define VC1_RENDEC_CMD_VC1SLICE02_RND_CTRL_BIT_LSBMASK (0x00000001)
+#define VC1_RENDEC_CMD_VC1SLICE02_RND_CTRL_BIT_SHIFT (22)
+
+// VC1_RENDEC_CMD VC1SLICE02 MODE_CONFIG
+#define VC1_RENDEC_CMD_VC1SLICE02_MODE_CONFIG_MASK (0x003E0000)
+#define VC1_RENDEC_CMD_VC1SLICE02_MODE_CONFIG_LSBMASK (0x0000001F)
+#define VC1_RENDEC_CMD_VC1SLICE02_MODE_CONFIG_SHIFT (17)
+
+// VC1_RENDEC_CMD VC1SLICE02 SUBPEL_FILTER_MODE
+#define VC1_RENDEC_CMD_VC1SLICE02_SUBPEL_FILTER_MODE_MASK (0x00010000)
+#define VC1_RENDEC_CMD_VC1SLICE02_SUBPEL_FILTER_MODE_LSBMASK (0x00000001)
+#define VC1_RENDEC_CMD_VC1SLICE02_SUBPEL_FILTER_MODE_SHIFT (16)
+
+// VC1_RENDEC_CMD VC1SLICE02 VC1_FASTUVMC
+#define VC1_RENDEC_CMD_VC1SLICE02_VC1_FASTUVMC_MASK (0x00008000)
+#define VC1_RENDEC_CMD_VC1SLICE02_VC1_FASTUVMC_LSBMASK (0x00000001)
+#define VC1_RENDEC_CMD_VC1SLICE02_VC1_FASTUVMC_SHIFT (15)
+
+// VC1_RENDEC_CMD VC1SLICE02 VC1_LOOPFILTER
+#define VC1_RENDEC_CMD_VC1SLICE02_VC1_LOOPFILTER_MASK (0x00004000)
+#define VC1_RENDEC_CMD_VC1SLICE02_VC1_LOOPFILTER_LSBMASK (0x00000001)
+#define VC1_RENDEC_CMD_VC1SLICE02_VC1_LOOPFILTER_SHIFT (14)
+
+// VC1_RENDEC_CMD VC1SLICE02 SLICE02_RESERVED
+#define VC1_RENDEC_CMD_VC1SLICE02_SLICE02_RESERVED_MASK (0x00003FF0)
+#define VC1_RENDEC_CMD_VC1SLICE02_SLICE02_RESERVED_LSBMASK (0x000003FF)
+#define VC1_RENDEC_CMD_VC1SLICE02_SLICE02_RESERVED_SHIFT (4)
+
+// VC1_RENDEC_CMD VC1SLICE02 SLICE_FIELD_TYPE
+#define VC1_RENDEC_CMD_VC1SLICE02_SLICE_FIELD_TYPE_MASK (0x0000000C)
+#define VC1_RENDEC_CMD_VC1SLICE02_SLICE_FIELD_TYPE_LSBMASK (0x00000003)
+#define VC1_RENDEC_CMD_VC1SLICE02_SLICE_FIELD_TYPE_SHIFT (2)
+
+// VC1_RENDEC_CMD VC1SLICE02 SLICE_CODE_TYPE
+#define VC1_RENDEC_CMD_VC1SLICE02_SLICE_CODE_TYPE_MASK (0x00000003)
+#define VC1_RENDEC_CMD_VC1SLICE02_SLICE_CODE_TYPE_LSBMASK (0x00000003)
+#define VC1_RENDEC_CMD_VC1SLICE02_SLICE_CODE_TYPE_SHIFT (0)
+
+#define VC1_RENDEC_CMD_VC1SLICE03_OFFSET (0x0018)
+
+// VC1_RENDEC_CMD VC1SLICE03 RANGE_MAPUV_FLAG
+#define VC1_RENDEC_CMD_VC1SLICE03_RANGE_MAPUV_FLAG_MASK (0x00000080)
+#define VC1_RENDEC_CMD_VC1SLICE03_RANGE_MAPUV_FLAG_LSBMASK (0x00000001)
+#define VC1_RENDEC_CMD_VC1SLICE03_RANGE_MAPUV_FLAG_SHIFT (7)
+
+// VC1_RENDEC_CMD VC1SLICE03 RANGE_MAPUV
+#define VC1_RENDEC_CMD_VC1SLICE03_RANGE_MAPUV_MASK (0x00000070)
+#define VC1_RENDEC_CMD_VC1SLICE03_RANGE_MAPUV_LSBMASK (0x00000007)
+#define VC1_RENDEC_CMD_VC1SLICE03_RANGE_MAPUV_SHIFT (4)
+
+// VC1_RENDEC_CMD VC1SLICE03 RANGE_MAPY_FLAG
+#define VC1_RENDEC_CMD_VC1SLICE03_RANGE_MAPY_FLAG_MASK (0x00000008)
+#define VC1_RENDEC_CMD_VC1SLICE03_RANGE_MAPY_FLAG_LSBMASK (0x00000001)
+#define VC1_RENDEC_CMD_VC1SLICE03_RANGE_MAPY_FLAG_SHIFT (3)
+
+// VC1_RENDEC_CMD VC1SLICE03 RANGE_MAPY
+#define VC1_RENDEC_CMD_VC1SLICE03_RANGE_MAPY_MASK (0x00000007)
+#define VC1_RENDEC_CMD_VC1SLICE03_RANGE_MAPY_LSBMASK (0x00000007)
+#define VC1_RENDEC_CMD_VC1SLICE03_RANGE_MAPY_SHIFT (0)
+
+#define VC1_RENDEC_CMD_VC1SLICE04_OFFSET (0x001C)
+
+// VC1_RENDEC_CMD VC1SLICE04 VC1_LUMSHIFT_PREV
+#define VC1_RENDEC_CMD_VC1SLICE04_VC1_LUMSHIFT_PREV_MASK (0x00FC0000)
+#define VC1_RENDEC_CMD_VC1SLICE04_VC1_LUMSHIFT_PREV_LSBMASK (0x0000003F)
+#define VC1_RENDEC_CMD_VC1SLICE04_VC1_LUMSHIFT_PREV_SHIFT (18)
+
+// VC1_RENDEC_CMD VC1SLICE04 VC1_LUMSCALE_PREV
+#define VC1_RENDEC_CMD_VC1SLICE04_VC1_LUMSCALE_PREV_MASK (0x0003F000)
+#define VC1_RENDEC_CMD_VC1SLICE04_VC1_LUMSCALE_PREV_LSBMASK (0x0000003F)
+#define VC1_RENDEC_CMD_VC1SLICE04_VC1_LUMSCALE_PREV_SHIFT (12)
+
+// VC1_RENDEC_CMD VC1SLICE04 VC1_LUMSHIFT_BACK
+#define VC1_RENDEC_CMD_VC1SLICE04_VC1_LUMSHIFT_BACK_MASK (0x00000FC0)
+#define VC1_RENDEC_CMD_VC1SLICE04_VC1_LUMSHIFT_BACK_LSBMASK (0x0000003F)
+#define VC1_RENDEC_CMD_VC1SLICE04_VC1_LUMSHIFT_BACK_SHIFT (6)
+
+// VC1_RENDEC_CMD VC1SLICE04 VC1_LUMSCALE_BACK
+#define VC1_RENDEC_CMD_VC1SLICE04_VC1_LUMSCALE_BACK_MASK (0x0000003F)
+#define VC1_RENDEC_CMD_VC1SLICE04_VC1_LUMSCALE_BACK_LSBMASK (0x0000003F)
+#define VC1_RENDEC_CMD_VC1SLICE04_VC1_LUMSCALE_BACK_SHIFT (0)
+
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __MSVDX_RENDEC_VC1_REG_IO2_H__ */
diff --git a/src/hwdefs/msvdx_vdmc_reg_io2.h b/src/hwdefs/msvdx_vdmc_reg_io2.h
new file mode 100644
index 0000000..7561f1f
--- /dev/null
+++ b/src/hwdefs/msvdx_vdmc_reg_io2.h
@@ -0,0 +1,450 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+
+/******************************************************************************
+
+ @File msvdx_vdmc_reg_io2.h
+
+ @Title MSVDX Offsets
+
+ @Platform </b>\n
+
+ @Description </b>\n This file contains the MSVDX_VDMC_REG_IO2_H Defintions.
+
+******************************************************************************/
+#if !defined (__MSVDX_VDMC_REG_IO2_H__)
+#define __MSVDX_VDMC_REG_IO2_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+#define MSVDX_VDMC_CR_VDMC_REFERENCE_CACHE_SIGNATURE_OFFSET (0x0000)
+
+// MSVDX_VDMC CR_VDMC_REFERENCE_CACHE_SIGNATURE CR_VDMC_REFCACHE_SIG
+#define MSVDX_VDMC_CR_VDMC_REFERENCE_CACHE_SIGNATURE_CR_VDMC_REFCACHE_SIG_MASK (0xFFFFFFFF)
+#define MSVDX_VDMC_CR_VDMC_REFERENCE_CACHE_SIGNATURE_CR_VDMC_REFCACHE_SIG_LSBMASK (0xFFFFFFFF)
+#define MSVDX_VDMC_CR_VDMC_REFERENCE_CACHE_SIGNATURE_CR_VDMC_REFCACHE_SIG_SHIFT (0)
+
+#define MSVDX_VDMC_CR_VDMC_REFERENCE_CACHE_EFFICIENCY_OFFSET (0x0004)
+
+// MSVDX_VDMC CR_VDMC_REFERENCE_CACHE_EFFICIENCY CR_VDMC_REFCACHE_EFFICIENCY
+#define MSVDX_VDMC_CR_VDMC_REFERENCE_CACHE_EFFICIENCY_CR_VDMC_REFCACHE_EFFICIENCY_MASK (0xFFFFFFFF)
+#define MSVDX_VDMC_CR_VDMC_REFERENCE_CACHE_EFFICIENCY_CR_VDMC_REFCACHE_EFFICIENCY_LSBMASK (0xFFFFFFFF)
+#define MSVDX_VDMC_CR_VDMC_REFERENCE_CACHE_EFFICIENCY_CR_VDMC_REFCACHE_EFFICIENCY_SHIFT (0)
+
+#define MSVDX_VDMC_CR_VDMC_2D_FILTER_PIPELINE_SIGNATURE_OFFSET (0x0008)
+
+// MSVDX_VDMC CR_VDMC_2D_FILTER_PIPELINE_SIGNATURE CR_VDMC_FILT_SIG
+#define MSVDX_VDMC_CR_VDMC_2D_FILTER_PIPELINE_SIGNATURE_CR_VDMC_FILT_SIG_MASK (0xFFFFFFFF)
+#define MSVDX_VDMC_CR_VDMC_2D_FILTER_PIPELINE_SIGNATURE_CR_VDMC_FILT_SIG_LSBMASK (0xFFFFFFFF)
+#define MSVDX_VDMC_CR_VDMC_2D_FILTER_PIPELINE_SIGNATURE_CR_VDMC_FILT_SIG_SHIFT (0)
+
+#define MSVDX_VDMC_CR_VDMC_PIXEL_RECONSTRUCTION_SIGNATURE_OFFSET (0x000C)
+
+// MSVDX_VDMC CR_VDMC_PIXEL_RECONSTRUCTION_SIGNATURE CR_VDMC_RECON_SIG
+#define MSVDX_VDMC_CR_VDMC_PIXEL_RECONSTRUCTION_SIGNATURE_CR_VDMC_RECON_SIG_MASK (0xFFFFFFFF)
+#define MSVDX_VDMC_CR_VDMC_PIXEL_RECONSTRUCTION_SIGNATURE_CR_VDMC_RECON_SIG_LSBMASK (0xFFFFFFFF)
+#define MSVDX_VDMC_CR_VDMC_PIXEL_RECONSTRUCTION_SIGNATURE_CR_VDMC_RECON_SIG_SHIFT (0)
+
+#define MSVDX_VDMC_CR_VDMC_ERROR_STATUS_OFFSET (0x0010)
+
+// MSVDX_VDMC CR_VDMC_ERROR_STATUS CR_VDMC_SLICE_REALIGNMENT
+#define MSVDX_VDMC_CR_VDMC_ERROR_STATUS_CR_VDMC_SLICE_REALIGNMENT_MASK (0x00010000)
+#define MSVDX_VDMC_CR_VDMC_ERROR_STATUS_CR_VDMC_SLICE_REALIGNMENT_LSBMASK (0x00000001)
+#define MSVDX_VDMC_CR_VDMC_ERROR_STATUS_CR_VDMC_SLICE_REALIGNMENT_SHIFT (16)
+
+// MSVDX_VDMC CR_VDMC_ERROR_STATUS CR_VDMC_SLICE_LATE_ERROR
+#define MSVDX_VDMC_CR_VDMC_ERROR_STATUS_CR_VDMC_SLICE_LATE_ERROR_MASK (0x00008000)
+#define MSVDX_VDMC_CR_VDMC_ERROR_STATUS_CR_VDMC_SLICE_LATE_ERROR_LSBMASK (0x00000001)
+#define MSVDX_VDMC_CR_VDMC_ERROR_STATUS_CR_VDMC_SLICE_LATE_ERROR_SHIFT (15)
+
+// MSVDX_VDMC CR_VDMC_ERROR_STATUS CR_VDMC_SLICE_EARLY_ERROR
+#define MSVDX_VDMC_CR_VDMC_ERROR_STATUS_CR_VDMC_SLICE_EARLY_ERROR_MASK (0x00004000)
+#define MSVDX_VDMC_CR_VDMC_ERROR_STATUS_CR_VDMC_SLICE_EARLY_ERROR_LSBMASK (0x00000001)
+#define MSVDX_VDMC_CR_VDMC_ERROR_STATUS_CR_VDMC_SLICE_EARLY_ERROR_SHIFT (14)
+
+// MSVDX_VDMC CR_VDMC_ERROR_STATUS CR_VDMC_MB_ALIGNMENT_ERROR
+#define MSVDX_VDMC_CR_VDMC_ERROR_STATUS_CR_VDMC_MB_ALIGNMENT_ERROR_MASK (0x00002000)
+#define MSVDX_VDMC_CR_VDMC_ERROR_STATUS_CR_VDMC_MB_ALIGNMENT_ERROR_LSBMASK (0x00000001)
+#define MSVDX_VDMC_CR_VDMC_ERROR_STATUS_CR_VDMC_MB_ALIGNMENT_ERROR_SHIFT (13)
+
+// MSVDX_VDMC CR_VDMC_ERROR_STATUS CR_VDMC_FILT_SYNC_ERROR
+#define MSVDX_VDMC_CR_VDMC_ERROR_STATUS_CR_VDMC_FILT_SYNC_ERROR_MASK (0x00001000)
+#define MSVDX_VDMC_CR_VDMC_ERROR_STATUS_CR_VDMC_FILT_SYNC_ERROR_LSBMASK (0x00000001)
+#define MSVDX_VDMC_CR_VDMC_ERROR_STATUS_CR_VDMC_FILT_SYNC_ERROR_SHIFT (12)
+
+// MSVDX_VDMC CR_VDMC_ERROR_STATUS CR_VDMC_READ_OVERFLOW
+#define MSVDX_VDMC_CR_VDMC_ERROR_STATUS_CR_VDMC_READ_OVERFLOW_MASK (0x00000800)
+#define MSVDX_VDMC_CR_VDMC_ERROR_STATUS_CR_VDMC_READ_OVERFLOW_LSBMASK (0x00000001)
+#define MSVDX_VDMC_CR_VDMC_ERROR_STATUS_CR_VDMC_READ_OVERFLOW_SHIFT (11)
+
+// MSVDX_VDMC CR_VDMC_ERROR_STATUS CR_VDMC_INTER_INTRA_ERROR
+#define MSVDX_VDMC_CR_VDMC_ERROR_STATUS_CR_VDMC_INTER_INTRA_ERROR_MASK (0x00000400)
+#define MSVDX_VDMC_CR_VDMC_ERROR_STATUS_CR_VDMC_INTER_INTRA_ERROR_LSBMASK (0x00000001)
+#define MSVDX_VDMC_CR_VDMC_ERROR_STATUS_CR_VDMC_INTER_INTRA_ERROR_SHIFT (10)
+
+// MSVDX_VDMC CR_VDMC_ERROR_STATUS CR_VDMC_MBNO_SMALL_ERROR
+#define MSVDX_VDMC_CR_VDMC_ERROR_STATUS_CR_VDMC_MBNO_SMALL_ERROR_MASK (0x00000200)
+#define MSVDX_VDMC_CR_VDMC_ERROR_STATUS_CR_VDMC_MBNO_SMALL_ERROR_LSBMASK (0x00000001)
+#define MSVDX_VDMC_CR_VDMC_ERROR_STATUS_CR_VDMC_MBNO_SMALL_ERROR_SHIFT (9)
+
+// MSVDX_VDMC CR_VDMC_ERROR_STATUS CR_VDMC_MBNO_LARGE_ERROR
+#define MSVDX_VDMC_CR_VDMC_ERROR_STATUS_CR_VDMC_MBNO_LARGE_ERROR_MASK (0x00000100)
+#define MSVDX_VDMC_CR_VDMC_ERROR_STATUS_CR_VDMC_MBNO_LARGE_ERROR_LSBMASK (0x00000001)
+#define MSVDX_VDMC_CR_VDMC_ERROR_STATUS_CR_VDMC_MBNO_LARGE_ERROR_SHIFT (8)
+
+// MSVDX_VDMC CR_VDMC_ERROR_STATUS CR_VDMC_INTRAMV_ERROR
+#define MSVDX_VDMC_CR_VDMC_ERROR_STATUS_CR_VDMC_INTRAMV_ERROR_MASK (0x00000080)
+#define MSVDX_VDMC_CR_VDMC_ERROR_STATUS_CR_VDMC_INTRAMV_ERROR_LSBMASK (0x00000001)
+#define MSVDX_VDMC_CR_VDMC_ERROR_STATUS_CR_VDMC_INTRAMV_ERROR_SHIFT (7)
+
+// MSVDX_VDMC CR_VDMC_ERROR_STATUS CR_VDMC_MVACC_ERROR
+#define MSVDX_VDMC_CR_VDMC_ERROR_STATUS_CR_VDMC_MVACC_ERROR_MASK (0x00000040)
+#define MSVDX_VDMC_CR_VDMC_ERROR_STATUS_CR_VDMC_MVACC_ERROR_LSBMASK (0x00000001)
+#define MSVDX_VDMC_CR_VDMC_ERROR_STATUS_CR_VDMC_MVACC_ERROR_SHIFT (6)
+
+// MSVDX_VDMC CR_VDMC_ERROR_STATUS CR_VDMC_MVSIZE_ERROR
+#define MSVDX_VDMC_CR_VDMC_ERROR_STATUS_CR_VDMC_MVSIZE_ERROR_MASK (0x00000020)
+#define MSVDX_VDMC_CR_VDMC_ERROR_STATUS_CR_VDMC_MVSIZE_ERROR_LSBMASK (0x00000001)
+#define MSVDX_VDMC_CR_VDMC_ERROR_STATUS_CR_VDMC_MVSIZE_ERROR_SHIFT (5)
+
+// MSVDX_VDMC CR_VDMC_ERROR_STATUS CR_VDMC_NOOFMV_FEW
+#define MSVDX_VDMC_CR_VDMC_ERROR_STATUS_CR_VDMC_NOOFMV_FEW_MASK (0x00000010)
+#define MSVDX_VDMC_CR_VDMC_ERROR_STATUS_CR_VDMC_NOOFMV_FEW_LSBMASK (0x00000001)
+#define MSVDX_VDMC_CR_VDMC_ERROR_STATUS_CR_VDMC_NOOFMV_FEW_SHIFT (4)
+
+// MSVDX_VDMC CR_VDMC_ERROR_STATUS CR_VDMC_NOOFMV_MANY
+#define MSVDX_VDMC_CR_VDMC_ERROR_STATUS_CR_VDMC_NOOFMV_MANY_MASK (0x00000008)
+#define MSVDX_VDMC_CR_VDMC_ERROR_STATUS_CR_VDMC_NOOFMV_MANY_LSBMASK (0x00000001)
+#define MSVDX_VDMC_CR_VDMC_ERROR_STATUS_CR_VDMC_NOOFMV_MANY_SHIFT (3)
+
+// MSVDX_VDMC CR_VDMC_ERROR_STATUS CR_VDMC_NOOFBLK_FEW
+#define MSVDX_VDMC_CR_VDMC_ERROR_STATUS_CR_VDMC_NOOFBLK_FEW_MASK (0x00000004)
+#define MSVDX_VDMC_CR_VDMC_ERROR_STATUS_CR_VDMC_NOOFBLK_FEW_LSBMASK (0x00000001)
+#define MSVDX_VDMC_CR_VDMC_ERROR_STATUS_CR_VDMC_NOOFBLK_FEW_SHIFT (2)
+
+// MSVDX_VDMC CR_VDMC_ERROR_STATUS CR_VDMC_NOOFBLK_MANY
+#define MSVDX_VDMC_CR_VDMC_ERROR_STATUS_CR_VDMC_NOOFBLK_MANY_MASK (0x00000002)
+#define MSVDX_VDMC_CR_VDMC_ERROR_STATUS_CR_VDMC_NOOFBLK_MANY_LSBMASK (0x00000001)
+#define MSVDX_VDMC_CR_VDMC_ERROR_STATUS_CR_VDMC_NOOFBLK_MANY_SHIFT (1)
+
+// MSVDX_VDMC CR_VDMC_ERROR_STATUS CR_VDMC_MBNO_PICTSIZE_MISMATCH
+#define MSVDX_VDMC_CR_VDMC_ERROR_STATUS_CR_VDMC_MBNO_PICTSIZE_MISMATCH_MASK (0x00000001)
+#define MSVDX_VDMC_CR_VDMC_ERROR_STATUS_CR_VDMC_MBNO_PICTSIZE_MISMATCH_LSBMASK (0x00000001)
+#define MSVDX_VDMC_CR_VDMC_ERROR_STATUS_CR_VDMC_MBNO_PICTSIZE_MISMATCH_SHIFT (0)
+
+#define MSVDX_VDMC_CR_VDMC_ENAB_INTERRUPT_OFFSET (0x0014)
+
+// MSVDX_VDMC CR_VDMC_ENAB_INTERRUPT CR_VDMC_ENAB_SLICE_REALIGNMENT
+#define MSVDX_VDMC_CR_VDMC_ENAB_INTERRUPT_CR_VDMC_ENAB_SLICE_REALIGNMENT_MASK (0x00010000)
+#define MSVDX_VDMC_CR_VDMC_ENAB_INTERRUPT_CR_VDMC_ENAB_SLICE_REALIGNMENT_LSBMASK (0x00000001)
+#define MSVDX_VDMC_CR_VDMC_ENAB_INTERRUPT_CR_VDMC_ENAB_SLICE_REALIGNMENT_SHIFT (16)
+
+// MSVDX_VDMC CR_VDMC_ENAB_INTERRUPT CR_VDMC_ENAB_SLICE_LATE_ERROR
+#define MSVDX_VDMC_CR_VDMC_ENAB_INTERRUPT_CR_VDMC_ENAB_SLICE_LATE_ERROR_MASK (0x00008000)
+#define MSVDX_VDMC_CR_VDMC_ENAB_INTERRUPT_CR_VDMC_ENAB_SLICE_LATE_ERROR_LSBMASK (0x00000001)
+#define MSVDX_VDMC_CR_VDMC_ENAB_INTERRUPT_CR_VDMC_ENAB_SLICE_LATE_ERROR_SHIFT (15)
+
+// MSVDX_VDMC CR_VDMC_ENAB_INTERRUPT CR_VDMC_ENAB_SLICE_EARLY_ERROR
+#define MSVDX_VDMC_CR_VDMC_ENAB_INTERRUPT_CR_VDMC_ENAB_SLICE_EARLY_ERROR_MASK (0x00004000)
+#define MSVDX_VDMC_CR_VDMC_ENAB_INTERRUPT_CR_VDMC_ENAB_SLICE_EARLY_ERROR_LSBMASK (0x00000001)
+#define MSVDX_VDMC_CR_VDMC_ENAB_INTERRUPT_CR_VDMC_ENAB_SLICE_EARLY_ERROR_SHIFT (14)
+
+// MSVDX_VDMC CR_VDMC_ENAB_INTERRUPT CR_VDMC_ENAB_MB_ALIGN_ERROR
+#define MSVDX_VDMC_CR_VDMC_ENAB_INTERRUPT_CR_VDMC_ENAB_MB_ALIGN_ERROR_MASK (0x00002000)
+#define MSVDX_VDMC_CR_VDMC_ENAB_INTERRUPT_CR_VDMC_ENAB_MB_ALIGN_ERROR_LSBMASK (0x00000001)
+#define MSVDX_VDMC_CR_VDMC_ENAB_INTERRUPT_CR_VDMC_ENAB_MB_ALIGN_ERROR_SHIFT (13)
+
+// MSVDX_VDMC CR_VDMC_ENAB_INTERRUPT CR_VDMC_ENAB_FILT_SYNC_ERROR
+#define MSVDX_VDMC_CR_VDMC_ENAB_INTERRUPT_CR_VDMC_ENAB_FILT_SYNC_ERROR_MASK (0x00001000)
+#define MSVDX_VDMC_CR_VDMC_ENAB_INTERRUPT_CR_VDMC_ENAB_FILT_SYNC_ERROR_LSBMASK (0x00000001)
+#define MSVDX_VDMC_CR_VDMC_ENAB_INTERRUPT_CR_VDMC_ENAB_FILT_SYNC_ERROR_SHIFT (12)
+
+// MSVDX_VDMC CR_VDMC_ENAB_INTERRUPT CR_VDMC_ENAB_READ_OVERFLOW
+#define MSVDX_VDMC_CR_VDMC_ENAB_INTERRUPT_CR_VDMC_ENAB_READ_OVERFLOW_MASK (0x00000800)
+#define MSVDX_VDMC_CR_VDMC_ENAB_INTERRUPT_CR_VDMC_ENAB_READ_OVERFLOW_LSBMASK (0x00000001)
+#define MSVDX_VDMC_CR_VDMC_ENAB_INTERRUPT_CR_VDMC_ENAB_READ_OVERFLOW_SHIFT (11)
+
+// MSVDX_VDMC CR_VDMC_ENAB_INTERRUPT CR_VDMC_ENAB_INTER_INTRA_ERROR
+#define MSVDX_VDMC_CR_VDMC_ENAB_INTERRUPT_CR_VDMC_ENAB_INTER_INTRA_ERROR_MASK (0x00000400)
+#define MSVDX_VDMC_CR_VDMC_ENAB_INTERRUPT_CR_VDMC_ENAB_INTER_INTRA_ERROR_LSBMASK (0x00000001)
+#define MSVDX_VDMC_CR_VDMC_ENAB_INTERRUPT_CR_VDMC_ENAB_INTER_INTRA_ERROR_SHIFT (10)
+
+// MSVDX_VDMC CR_VDMC_ENAB_INTERRUPT CR_VDMC_ENAB_MBNO_SMALL_ERROR
+#define MSVDX_VDMC_CR_VDMC_ENAB_INTERRUPT_CR_VDMC_ENAB_MBNO_SMALL_ERROR_MASK (0x00000200)
+#define MSVDX_VDMC_CR_VDMC_ENAB_INTERRUPT_CR_VDMC_ENAB_MBNO_SMALL_ERROR_LSBMASK (0x00000001)
+#define MSVDX_VDMC_CR_VDMC_ENAB_INTERRUPT_CR_VDMC_ENAB_MBNO_SMALL_ERROR_SHIFT (9)
+
+// MSVDX_VDMC CR_VDMC_ENAB_INTERRUPT CR_VDMC_ENAB_MBNO_LARGE_ERROR
+#define MSVDX_VDMC_CR_VDMC_ENAB_INTERRUPT_CR_VDMC_ENAB_MBNO_LARGE_ERROR_MASK (0x00000100)
+#define MSVDX_VDMC_CR_VDMC_ENAB_INTERRUPT_CR_VDMC_ENAB_MBNO_LARGE_ERROR_LSBMASK (0x00000001)
+#define MSVDX_VDMC_CR_VDMC_ENAB_INTERRUPT_CR_VDMC_ENAB_MBNO_LARGE_ERROR_SHIFT (8)
+
+// MSVDX_VDMC CR_VDMC_ENAB_INTERRUPT CR_VDMC_ENAB_INTRAMV_ERROR
+#define MSVDX_VDMC_CR_VDMC_ENAB_INTERRUPT_CR_VDMC_ENAB_INTRAMV_ERROR_MASK (0x00000080)
+#define MSVDX_VDMC_CR_VDMC_ENAB_INTERRUPT_CR_VDMC_ENAB_INTRAMV_ERROR_LSBMASK (0x00000001)
+#define MSVDX_VDMC_CR_VDMC_ENAB_INTERRUPT_CR_VDMC_ENAB_INTRAMV_ERROR_SHIFT (7)
+
+// MSVDX_VDMC CR_VDMC_ENAB_INTERRUPT CR_VDMC_ENAB_MVACC_ERROR
+#define MSVDX_VDMC_CR_VDMC_ENAB_INTERRUPT_CR_VDMC_ENAB_MVACC_ERROR_MASK (0x00000040)
+#define MSVDX_VDMC_CR_VDMC_ENAB_INTERRUPT_CR_VDMC_ENAB_MVACC_ERROR_LSBMASK (0x00000001)
+#define MSVDX_VDMC_CR_VDMC_ENAB_INTERRUPT_CR_VDMC_ENAB_MVACC_ERROR_SHIFT (6)
+
+// MSVDX_VDMC CR_VDMC_ENAB_INTERRUPT CR_VDMC_ENAB_MVSIZE_ERROR
+#define MSVDX_VDMC_CR_VDMC_ENAB_INTERRUPT_CR_VDMC_ENAB_MVSIZE_ERROR_MASK (0x00000020)
+#define MSVDX_VDMC_CR_VDMC_ENAB_INTERRUPT_CR_VDMC_ENAB_MVSIZE_ERROR_LSBMASK (0x00000001)
+#define MSVDX_VDMC_CR_VDMC_ENAB_INTERRUPT_CR_VDMC_ENAB_MVSIZE_ERROR_SHIFT (5)
+
+// MSVDX_VDMC CR_VDMC_ENAB_INTERRUPT CR_VDMC_ENAB_NOOFMV_FEW
+#define MSVDX_VDMC_CR_VDMC_ENAB_INTERRUPT_CR_VDMC_ENAB_NOOFMV_FEW_MASK (0x00000010)
+#define MSVDX_VDMC_CR_VDMC_ENAB_INTERRUPT_CR_VDMC_ENAB_NOOFMV_FEW_LSBMASK (0x00000001)
+#define MSVDX_VDMC_CR_VDMC_ENAB_INTERRUPT_CR_VDMC_ENAB_NOOFMV_FEW_SHIFT (4)
+
+// MSVDX_VDMC CR_VDMC_ENAB_INTERRUPT CR_VDMC_ENAB_NOOFMV_MANY
+#define MSVDX_VDMC_CR_VDMC_ENAB_INTERRUPT_CR_VDMC_ENAB_NOOFMV_MANY_MASK (0x00000008)
+#define MSVDX_VDMC_CR_VDMC_ENAB_INTERRUPT_CR_VDMC_ENAB_NOOFMV_MANY_LSBMASK (0x00000001)
+#define MSVDX_VDMC_CR_VDMC_ENAB_INTERRUPT_CR_VDMC_ENAB_NOOFMV_MANY_SHIFT (3)
+
+// MSVDX_VDMC CR_VDMC_ENAB_INTERRUPT CR_VDMC_EANB_NOOFBLK_FEW
+#define MSVDX_VDMC_CR_VDMC_ENAB_INTERRUPT_CR_VDMC_EANB_NOOFBLK_FEW_MASK (0x00000004)
+#define MSVDX_VDMC_CR_VDMC_ENAB_INTERRUPT_CR_VDMC_EANB_NOOFBLK_FEW_LSBMASK (0x00000001)
+#define MSVDX_VDMC_CR_VDMC_ENAB_INTERRUPT_CR_VDMC_EANB_NOOFBLK_FEW_SHIFT (2)
+
+// MSVDX_VDMC CR_VDMC_ENAB_INTERRUPT CR_VDMC_ENAB_NOOFBLK_MANY
+#define MSVDX_VDMC_CR_VDMC_ENAB_INTERRUPT_CR_VDMC_ENAB_NOOFBLK_MANY_MASK (0x00000002)
+#define MSVDX_VDMC_CR_VDMC_ENAB_INTERRUPT_CR_VDMC_ENAB_NOOFBLK_MANY_LSBMASK (0x00000001)
+#define MSVDX_VDMC_CR_VDMC_ENAB_INTERRUPT_CR_VDMC_ENAB_NOOFBLK_MANY_SHIFT (1)
+
+// MSVDX_VDMC CR_VDMC_ENAB_INTERRUPT CR_VDMC_ENAB_MBNO_PICTSIZE_MISMATCH
+#define MSVDX_VDMC_CR_VDMC_ENAB_INTERRUPT_CR_VDMC_ENAB_MBNO_PICTSIZE_MISMATCH_MASK (0x00000001)
+#define MSVDX_VDMC_CR_VDMC_ENAB_INTERRUPT_CR_VDMC_ENAB_MBNO_PICTSIZE_MISMATCH_LSBMASK (0x00000001)
+#define MSVDX_VDMC_CR_VDMC_ENAB_INTERRUPT_CR_VDMC_ENAB_MBNO_PICTSIZE_MISMATCH_SHIFT (0)
+
+#define MSVDX_VDMC_CR_VDMC_CLR_STATUS_OFFSET (0x0018)
+
+// MSVDX_VDMC CR_VDMC_CLR_STATUS CR_VDMC_CLR_SLICE_REALIGNMENT
+#define MSVDX_VDMC_CR_VDMC_CLR_STATUS_CR_VDMC_CLR_SLICE_REALIGNMENT_MASK (0x00010000)
+#define MSVDX_VDMC_CR_VDMC_CLR_STATUS_CR_VDMC_CLR_SLICE_REALIGNMENT_LSBMASK (0x00000001)
+#define MSVDX_VDMC_CR_VDMC_CLR_STATUS_CR_VDMC_CLR_SLICE_REALIGNMENT_SHIFT (16)
+
+// MSVDX_VDMC CR_VDMC_CLR_STATUS CR_VDMC_CLR_SLICE_LATE_ERROR
+#define MSVDX_VDMC_CR_VDMC_CLR_STATUS_CR_VDMC_CLR_SLICE_LATE_ERROR_MASK (0x00008000)
+#define MSVDX_VDMC_CR_VDMC_CLR_STATUS_CR_VDMC_CLR_SLICE_LATE_ERROR_LSBMASK (0x00000001)
+#define MSVDX_VDMC_CR_VDMC_CLR_STATUS_CR_VDMC_CLR_SLICE_LATE_ERROR_SHIFT (15)
+
+// MSVDX_VDMC CR_VDMC_CLR_STATUS CR_VDMC_CLR_SLICE_EARLY_ERROR
+#define MSVDX_VDMC_CR_VDMC_CLR_STATUS_CR_VDMC_CLR_SLICE_EARLY_ERROR_MASK (0x00004000)
+#define MSVDX_VDMC_CR_VDMC_CLR_STATUS_CR_VDMC_CLR_SLICE_EARLY_ERROR_LSBMASK (0x00000001)
+#define MSVDX_VDMC_CR_VDMC_CLR_STATUS_CR_VDMC_CLR_SLICE_EARLY_ERROR_SHIFT (14)
+
+// MSVDX_VDMC CR_VDMC_CLR_STATUS CR_VDMC_CLR_MB_ALIGN_ERROR
+#define MSVDX_VDMC_CR_VDMC_CLR_STATUS_CR_VDMC_CLR_MB_ALIGN_ERROR_MASK (0x00002000)
+#define MSVDX_VDMC_CR_VDMC_CLR_STATUS_CR_VDMC_CLR_MB_ALIGN_ERROR_LSBMASK (0x00000001)
+#define MSVDX_VDMC_CR_VDMC_CLR_STATUS_CR_VDMC_CLR_MB_ALIGN_ERROR_SHIFT (13)
+
+// MSVDX_VDMC CR_VDMC_CLR_STATUS CR_VDMC_CLR_FILT_SYNC_ERROR
+#define MSVDX_VDMC_CR_VDMC_CLR_STATUS_CR_VDMC_CLR_FILT_SYNC_ERROR_MASK (0x00001000)
+#define MSVDX_VDMC_CR_VDMC_CLR_STATUS_CR_VDMC_CLR_FILT_SYNC_ERROR_LSBMASK (0x00000001)
+#define MSVDX_VDMC_CR_VDMC_CLR_STATUS_CR_VDMC_CLR_FILT_SYNC_ERROR_SHIFT (12)
+
+// MSVDX_VDMC CR_VDMC_CLR_STATUS CR_VDMC_CLR_READ_OVERFLOW
+#define MSVDX_VDMC_CR_VDMC_CLR_STATUS_CR_VDMC_CLR_READ_OVERFLOW_MASK (0x00000800)
+#define MSVDX_VDMC_CR_VDMC_CLR_STATUS_CR_VDMC_CLR_READ_OVERFLOW_LSBMASK (0x00000001)
+#define MSVDX_VDMC_CR_VDMC_CLR_STATUS_CR_VDMC_CLR_READ_OVERFLOW_SHIFT (11)
+
+// MSVDX_VDMC CR_VDMC_CLR_STATUS CR_VDMC_CLR_INTER_INTRA_ERROR
+#define MSVDX_VDMC_CR_VDMC_CLR_STATUS_CR_VDMC_CLR_INTER_INTRA_ERROR_MASK (0x00000400)
+#define MSVDX_VDMC_CR_VDMC_CLR_STATUS_CR_VDMC_CLR_INTER_INTRA_ERROR_LSBMASK (0x00000001)
+#define MSVDX_VDMC_CR_VDMC_CLR_STATUS_CR_VDMC_CLR_INTER_INTRA_ERROR_SHIFT (10)
+
+// MSVDX_VDMC CR_VDMC_CLR_STATUS CR_VDMC_CLR_MBNO_SMALL_ERROR
+#define MSVDX_VDMC_CR_VDMC_CLR_STATUS_CR_VDMC_CLR_MBNO_SMALL_ERROR_MASK (0x00000200)
+#define MSVDX_VDMC_CR_VDMC_CLR_STATUS_CR_VDMC_CLR_MBNO_SMALL_ERROR_LSBMASK (0x00000001)
+#define MSVDX_VDMC_CR_VDMC_CLR_STATUS_CR_VDMC_CLR_MBNO_SMALL_ERROR_SHIFT (9)
+
+// MSVDX_VDMC CR_VDMC_CLR_STATUS CR_VDMC_CLR_MBNO_LARGE_ERROR
+#define MSVDX_VDMC_CR_VDMC_CLR_STATUS_CR_VDMC_CLR_MBNO_LARGE_ERROR_MASK (0x00000100)
+#define MSVDX_VDMC_CR_VDMC_CLR_STATUS_CR_VDMC_CLR_MBNO_LARGE_ERROR_LSBMASK (0x00000001)
+#define MSVDX_VDMC_CR_VDMC_CLR_STATUS_CR_VDMC_CLR_MBNO_LARGE_ERROR_SHIFT (8)
+
+// MSVDX_VDMC CR_VDMC_CLR_STATUS CR_VDMC_CLR_INTRAMV_ERROR
+#define MSVDX_VDMC_CR_VDMC_CLR_STATUS_CR_VDMC_CLR_INTRAMV_ERROR_MASK (0x00000080)
+#define MSVDX_VDMC_CR_VDMC_CLR_STATUS_CR_VDMC_CLR_INTRAMV_ERROR_LSBMASK (0x00000001)
+#define MSVDX_VDMC_CR_VDMC_CLR_STATUS_CR_VDMC_CLR_INTRAMV_ERROR_SHIFT (7)
+
+// MSVDX_VDMC CR_VDMC_CLR_STATUS CR_VDMC_CLR_MVACC_ERROR
+#define MSVDX_VDMC_CR_VDMC_CLR_STATUS_CR_VDMC_CLR_MVACC_ERROR_MASK (0x00000040)
+#define MSVDX_VDMC_CR_VDMC_CLR_STATUS_CR_VDMC_CLR_MVACC_ERROR_LSBMASK (0x00000001)
+#define MSVDX_VDMC_CR_VDMC_CLR_STATUS_CR_VDMC_CLR_MVACC_ERROR_SHIFT (6)
+
+// MSVDX_VDMC CR_VDMC_CLR_STATUS CR_VDMC_CLR_MVSIZE_ERROR
+#define MSVDX_VDMC_CR_VDMC_CLR_STATUS_CR_VDMC_CLR_MVSIZE_ERROR_MASK (0x00000020)
+#define MSVDX_VDMC_CR_VDMC_CLR_STATUS_CR_VDMC_CLR_MVSIZE_ERROR_LSBMASK (0x00000001)
+#define MSVDX_VDMC_CR_VDMC_CLR_STATUS_CR_VDMC_CLR_MVSIZE_ERROR_SHIFT (5)
+
+// MSVDX_VDMC CR_VDMC_CLR_STATUS CR_VDMC_CLR_NOOFMV_FEW
+#define MSVDX_VDMC_CR_VDMC_CLR_STATUS_CR_VDMC_CLR_NOOFMV_FEW_MASK (0x00000010)
+#define MSVDX_VDMC_CR_VDMC_CLR_STATUS_CR_VDMC_CLR_NOOFMV_FEW_LSBMASK (0x00000001)
+#define MSVDX_VDMC_CR_VDMC_CLR_STATUS_CR_VDMC_CLR_NOOFMV_FEW_SHIFT (4)
+
+// MSVDX_VDMC CR_VDMC_CLR_STATUS CR_VDMC_CLR_NOOFMV_MANY
+#define MSVDX_VDMC_CR_VDMC_CLR_STATUS_CR_VDMC_CLR_NOOFMV_MANY_MASK (0x00000008)
+#define MSVDX_VDMC_CR_VDMC_CLR_STATUS_CR_VDMC_CLR_NOOFMV_MANY_LSBMASK (0x00000001)
+#define MSVDX_VDMC_CR_VDMC_CLR_STATUS_CR_VDMC_CLR_NOOFMV_MANY_SHIFT (3)
+
+// MSVDX_VDMC CR_VDMC_CLR_STATUS CR_VDMC_CLR_NOOFBLK_FEW
+#define MSVDX_VDMC_CR_VDMC_CLR_STATUS_CR_VDMC_CLR_NOOFBLK_FEW_MASK (0x00000004)
+#define MSVDX_VDMC_CR_VDMC_CLR_STATUS_CR_VDMC_CLR_NOOFBLK_FEW_LSBMASK (0x00000001)
+#define MSVDX_VDMC_CR_VDMC_CLR_STATUS_CR_VDMC_CLR_NOOFBLK_FEW_SHIFT (2)
+
+// MSVDX_VDMC CR_VDMC_CLR_STATUS CR_VDMC_CLR_NOOFBLK_MANY
+#define MSVDX_VDMC_CR_VDMC_CLR_STATUS_CR_VDMC_CLR_NOOFBLK_MANY_MASK (0x00000002)
+#define MSVDX_VDMC_CR_VDMC_CLR_STATUS_CR_VDMC_CLR_NOOFBLK_MANY_LSBMASK (0x00000001)
+#define MSVDX_VDMC_CR_VDMC_CLR_STATUS_CR_VDMC_CLR_NOOFBLK_MANY_SHIFT (1)
+
+// MSVDX_VDMC CR_VDMC_CLR_STATUS CR_VDMC_CLR_MBNO_PICTSIZE_MISMATCH
+#define MSVDX_VDMC_CR_VDMC_CLR_STATUS_CR_VDMC_CLR_MBNO_PICTSIZE_MISMATCH_MASK (0x00000001)
+#define MSVDX_VDMC_CR_VDMC_CLR_STATUS_CR_VDMC_CLR_MBNO_PICTSIZE_MISMATCH_LSBMASK (0x00000001)
+#define MSVDX_VDMC_CR_VDMC_CLR_STATUS_CR_VDMC_CLR_MBNO_PICTSIZE_MISMATCH_SHIFT (0)
+
+#define MSVDX_VDMC_CR_VDMC_2D_FILTER_PIPELINE_DIRECT_INSERT_DATA_OFFSET (0x0020)
+
+// MSVDX_VDMC CR_VDMC_2D_FILTER_PIPELINE_DIRECT_INSERT_DATA CR_VDMC_FILT_DIRECT_DATA
+#define MSVDX_VDMC_CR_VDMC_2D_FILTER_PIPELINE_DIRECT_INSERT_DATA_CR_VDMC_FILT_DIRECT_DATA_MASK (0xFFFFFFFF)
+#define MSVDX_VDMC_CR_VDMC_2D_FILTER_PIPELINE_DIRECT_INSERT_DATA_CR_VDMC_FILT_DIRECT_DATA_LSBMASK (0xFFFFFFFF)
+#define MSVDX_VDMC_CR_VDMC_2D_FILTER_PIPELINE_DIRECT_INSERT_DATA_CR_VDMC_FILT_DIRECT_DATA_SHIFT (0)
+
+#define MSVDX_VDMC_CR_VDMC_2D_FILTER_PIPELINE_DIRECT_INSERT_CONTROL_OFFSET (0x0024)
+
+// MSVDX_VDMC CR_VDMC_2D_FILTER_PIPELINE_DIRECT_INSERT_CONTROL CR_VDMC_FILT_DIRECT_CONTROL
+#define MSVDX_VDMC_CR_VDMC_2D_FILTER_PIPELINE_DIRECT_INSERT_CONTROL_CR_VDMC_FILT_DIRECT_CONTROL_MASK (0xFFFFFFFF)
+#define MSVDX_VDMC_CR_VDMC_2D_FILTER_PIPELINE_DIRECT_INSERT_CONTROL_CR_VDMC_FILT_DIRECT_CONTROL_LSBMASK (0xFFFFFFFF)
+#define MSVDX_VDMC_CR_VDMC_2D_FILTER_PIPELINE_DIRECT_INSERT_CONTROL_CR_VDMC_FILT_DIRECT_CONTROL_SHIFT (0)
+
+#define MSVDX_VDMC_CR_VDMC_PIXEL_RECONSTRUCTION_DIRECT_INSERT_DATA_OFFSET (0x0028)
+
+// MSVDX_VDMC CR_VDMC_PIXEL_RECONSTRUCTION_DIRECT_INSERT_DATA CR_VDMC_RECON_DIRECT_DATA
+#define MSVDX_VDMC_CR_VDMC_PIXEL_RECONSTRUCTION_DIRECT_INSERT_DATA_CR_VDMC_RECON_DIRECT_DATA_MASK (0xFFFFFFFF)
+#define MSVDX_VDMC_CR_VDMC_PIXEL_RECONSTRUCTION_DIRECT_INSERT_DATA_CR_VDMC_RECON_DIRECT_DATA_LSBMASK (0xFFFFFFFF)
+#define MSVDX_VDMC_CR_VDMC_PIXEL_RECONSTRUCTION_DIRECT_INSERT_DATA_CR_VDMC_RECON_DIRECT_DATA_SHIFT (0)
+
+#define MSVDX_VDMC_CR_VDMC_PIXEL_RECONSTRUCTION_DIRECT_INSERT_CONTROL_OFFSET (0x002C)
+
+// MSVDX_VDMC CR_VDMC_PIXEL_RECONSTRUCTION_DIRECT_INSERT_CONTROL CR_VDMC_RECON_DIRECT_CONTROL
+#define MSVDX_VDMC_CR_VDMC_PIXEL_RECONSTRUCTION_DIRECT_INSERT_CONTROL_CR_VDMC_RECON_DIRECT_CONTROL_MASK (0x00007FFF)
+#define MSVDX_VDMC_CR_VDMC_PIXEL_RECONSTRUCTION_DIRECT_INSERT_CONTROL_CR_VDMC_RECON_DIRECT_CONTROL_LSBMASK (0x00007FFF)
+#define MSVDX_VDMC_CR_VDMC_PIXEL_RECONSTRUCTION_DIRECT_INSERT_CONTROL_CR_VDMC_RECON_DIRECT_CONTROL_SHIFT (0)
+
+#define MSVDX_VDMC_CR_VDMC_RESIDUAL_DIRECT_INSERT_DATA_OFFSET (0x0030)
+
+// MSVDX_VDMC CR_VDMC_RESIDUAL_DIRECT_INSERT_DATA CR_VDMC_RESIDUAL_DIRECT_DATA
+#define MSVDX_VDMC_CR_VDMC_RESIDUAL_DIRECT_INSERT_DATA_CR_VDMC_RESIDUAL_DIRECT_DATA_MASK (0xFFFFFFFF)
+#define MSVDX_VDMC_CR_VDMC_RESIDUAL_DIRECT_INSERT_DATA_CR_VDMC_RESIDUAL_DIRECT_DATA_LSBMASK (0xFFFFFFFF)
+#define MSVDX_VDMC_CR_VDMC_RESIDUAL_DIRECT_INSERT_DATA_CR_VDMC_RESIDUAL_DIRECT_DATA_SHIFT (0)
+
+#define MSVDX_VDMC_CR_VDMC_RESIDUAL_DIRECT_INSERT_CONTROL_OFFSET (0x0034)
+
+// MSVDX_VDMC CR_VDMC_RESIDUAL_DIRECT_INSERT_CONTROL CR_VDMC_RESIDUAL_DIRECT_CONTROL
+#define MSVDX_VDMC_CR_VDMC_RESIDUAL_DIRECT_INSERT_CONTROL_CR_VDMC_RESIDUAL_DIRECT_CONTROL_MASK (0x00000001)
+#define MSVDX_VDMC_CR_VDMC_RESIDUAL_DIRECT_INSERT_CONTROL_CR_VDMC_RESIDUAL_DIRECT_CONTROL_LSBMASK (0x00000001)
+#define MSVDX_VDMC_CR_VDMC_RESIDUAL_DIRECT_INSERT_CONTROL_CR_VDMC_RESIDUAL_DIRECT_CONTROL_SHIFT (0)
+
+// MSVDX_VDMC CR_VDMC_RESIDUAL_DIRECT_INSERT_CONTROL CR_VDMC_RESIDUAL_DISABLE_MB_CHECK
+#define MSVDX_VDMC_CR_VDMC_RESIDUAL_DIRECT_INSERT_CONTROL_CR_VDMC_RESIDUAL_DISABLE_MB_CHECK_MASK (0x00000002)
+#define MSVDX_VDMC_CR_VDMC_RESIDUAL_DIRECT_INSERT_CONTROL_CR_VDMC_RESIDUAL_DISABLE_MB_CHECK_LSBMASK (0x00000001)
+#define MSVDX_VDMC_CR_VDMC_RESIDUAL_DIRECT_INSERT_CONTROL_CR_VDMC_RESIDUAL_DISABLE_MB_CHECK_SHIFT (1)
+
+// MSVDX_VDMC CR_VDMC_RESIDUAL_DIRECT_INSERT_CONTROL CR_VDMC_ADD_128_INTRA_IN_INTER
+#define MSVDX_VDMC_CR_VDMC_RESIDUAL_DIRECT_INSERT_CONTROL_CR_VDMC_ADD_128_INTRA_IN_INTER_MASK (0x00000004)
+#define MSVDX_VDMC_CR_VDMC_RESIDUAL_DIRECT_INSERT_CONTROL_CR_VDMC_ADD_128_INTRA_IN_INTER_LSBMASK (0x00000001)
+#define MSVDX_VDMC_CR_VDMC_RESIDUAL_DIRECT_INSERT_CONTROL_CR_VDMC_ADD_128_INTRA_IN_INTER_SHIFT (2)
+
+// MSVDX_VDMC CR_VDMC_RESIDUAL_DIRECT_INSERT_CONTROL CR_VDMC_HD_SUPPORTED
+#define MSVDX_VDMC_CR_VDMC_RESIDUAL_DIRECT_INSERT_CONTROL_CR_VDMC_HD_SUPPORTED_MASK (0x80000000)
+#define MSVDX_VDMC_CR_VDMC_RESIDUAL_DIRECT_INSERT_CONTROL_CR_VDMC_HD_SUPPORTED_LSBMASK (0x00000001)
+#define MSVDX_VDMC_CR_VDMC_RESIDUAL_DIRECT_INSERT_CONTROL_CR_VDMC_HD_SUPPORTED_SHIFT (31)
+
+#define MSVDX_VDMC_CR_VDMC_LUMA_ERROR_BASE_ADDR_OFFSET (0x0040)
+
+// MSVDX_VDMC CR_VDMC_LUMA_ERROR_BASE_ADDR CR_VDMC_LUMA_ERROR_BASE
+#define MSVDX_VDMC_CR_VDMC_LUMA_ERROR_BASE_ADDR_CR_VDMC_LUMA_ERROR_BASE_MASK (0xFFFFF000)
+#define MSVDX_VDMC_CR_VDMC_LUMA_ERROR_BASE_ADDR_CR_VDMC_LUMA_ERROR_BASE_LSBMASK (0x000FFFFF)
+#define MSVDX_VDMC_CR_VDMC_LUMA_ERROR_BASE_ADDR_CR_VDMC_LUMA_ERROR_BASE_SHIFT (12)
+
+#define MSVDX_VDMC_CR_VDMC_CHROMA_ERROR_BASE_ADDR_OFFSET (0x0044)
+
+// MSVDX_VDMC CR_VDMC_CHROMA_ERROR_BASE_ADDR CR_VDMC_CHROMA_ERROR_BASE
+#define MSVDX_VDMC_CR_VDMC_CHROMA_ERROR_BASE_ADDR_CR_VDMC_CHROMA_ERROR_BASE_MASK (0xFFFFF000)
+#define MSVDX_VDMC_CR_VDMC_CHROMA_ERROR_BASE_ADDR_CR_VDMC_CHROMA_ERROR_BASE_LSBMASK (0x000FFFFF)
+#define MSVDX_VDMC_CR_VDMC_CHROMA_ERROR_BASE_ADDR_CR_VDMC_CHROMA_ERROR_BASE_SHIFT (12)
+
+#define MSVDX_VDMC_CR_VDMC_MACROBLOCK_NUMBER_OFFSET (0x0048)
+
+// MSVDX_VDMC CR_VDMC_MACROBLOCK_NUMBER CR_VDMC_MACROBLOCK_Y_OFFSET
+#define MSVDX_VDMC_CR_VDMC_MACROBLOCK_NUMBER_CR_VDMC_MACROBLOCK_Y_OFFSET_MASK (0x0000FF00)
+#define MSVDX_VDMC_CR_VDMC_MACROBLOCK_NUMBER_CR_VDMC_MACROBLOCK_Y_OFFSET_LSBMASK (0x000000FF)
+#define MSVDX_VDMC_CR_VDMC_MACROBLOCK_NUMBER_CR_VDMC_MACROBLOCK_Y_OFFSET_SHIFT (8)
+
+// MSVDX_VDMC CR_VDMC_MACROBLOCK_NUMBER CR_VDMC_MACROBLOCK_X_OFFSET
+#define MSVDX_VDMC_CR_VDMC_MACROBLOCK_NUMBER_CR_VDMC_MACROBLOCK_X_OFFSET_MASK (0x000000FF)
+#define MSVDX_VDMC_CR_VDMC_MACROBLOCK_NUMBER_CR_VDMC_MACROBLOCK_X_OFFSET_LSBMASK (0x000000FF)
+#define MSVDX_VDMC_CR_VDMC_MACROBLOCK_NUMBER_CR_VDMC_MACROBLOCK_X_OFFSET_SHIFT (0)
+
+#define MSVDX_VDMC_CR_VDMC_ERROR_FLUSH_CTRL_OFFSET (0x004C)
+
+// MSVDX_VDMC CR_VDMC_ERROR_FLUSH_CTRL CR_VDMC_ERROR_DETECTED_FLAG
+#define MSVDX_VDMC_CR_VDMC_ERROR_FLUSH_CTRL_CR_VDMC_ERROR_DETECTED_FLAG_MASK (0x00000001)
+#define MSVDX_VDMC_CR_VDMC_ERROR_FLUSH_CTRL_CR_VDMC_ERROR_DETECTED_FLAG_LSBMASK (0x00000001)
+#define MSVDX_VDMC_CR_VDMC_ERROR_FLUSH_CTRL_CR_VDMC_ERROR_DETECTED_FLAG_SHIFT (0)
+
+// MSVDX_VDMC CR_VDMC_ERROR_FLUSH_CTRL CR_VDMC_SLICE_FLUSH_FLAG
+#define MSVDX_VDMC_CR_VDMC_ERROR_FLUSH_CTRL_CR_VDMC_SLICE_FLUSH_FLAG_MASK (0x00000002)
+#define MSVDX_VDMC_CR_VDMC_ERROR_FLUSH_CTRL_CR_VDMC_SLICE_FLUSH_FLAG_LSBMASK (0x00000001)
+#define MSVDX_VDMC_CR_VDMC_ERROR_FLUSH_CTRL_CR_VDMC_SLICE_FLUSH_FLAG_SHIFT (1)
+
+#define MSVDX_VDMC_CR_VDMC_MCU_SIGNATURE_OFFSET (0x0050)
+
+// MSVDX_VDMC CR_VDMC_MCU_SIGNATURE CR_VDMC_MCU_SIG
+#define MSVDX_VDMC_CR_VDMC_MCU_SIGNATURE_CR_VDMC_MCU_SIG_MASK (0xFFFFFFFF)
+#define MSVDX_VDMC_CR_VDMC_MCU_SIGNATURE_CR_VDMC_MCU_SIG_LSBMASK (0xFFFFFFFF)
+#define MSVDX_VDMC_CR_VDMC_MCU_SIGNATURE_CR_VDMC_MCU_SIG_SHIFT (0)
+
+#define MSVDX_VDMC_CR_VDMC_RES_BUFFER_WRITES_OFFSET (0x0054)
+
+// MSVDX_VDMC CR_VDMC_RES_BUFFER_WRITES CR_VDMC_RES_WRITES
+#define MSVDX_VDMC_CR_VDMC_RES_BUFFER_WRITES_CR_VDMC_RES_WRITES_MASK (0xFFFFFFFF)
+#define MSVDX_VDMC_CR_VDMC_RES_BUFFER_WRITES_CR_VDMC_RES_WRITES_LSBMASK (0xFFFFFFFF)
+#define MSVDX_VDMC_CR_VDMC_RES_BUFFER_WRITES_CR_VDMC_RES_WRITES_SHIFT (0)
+
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __MSVDX_VDMC_REG_IO2_H__ */
diff --git a/src/hwdefs/msvdx_vec_h264_reg_io2.h b/src/hwdefs/msvdx_vec_h264_reg_io2.h
new file mode 100644
index 0000000..bab945a
--- /dev/null
+++ b/src/hwdefs/msvdx_vec_h264_reg_io2.h
@@ -0,0 +1,607 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+
+/******************************************************************************
+
+ @File msvdx_vec_h264_reg_io2.h
+
+ @Title MSVDX Offsets
+
+ @Platform </b>\n
+
+ @Description </b>\n This file contains the MSVDX_VEC_H264_REG_IO2_H Defintions.
+
+******************************************************************************/
+#if !defined (__MSVDX_VEC_H264_REG_IO2_H__)
+#define __MSVDX_VEC_H264_REG_IO2_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_BOT_FOC_OFFSET (0x025C)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_BOT_FOC_STRIDE (8)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_BOT_FOC_NO_ENTRIES (16)
+
+// MSVDX_VEC_H264 CR_VEC_H264_BE_BOT_FOC BOTTOMFIELDORDERCNT
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_BOT_FOC_BOTTOMFIELDORDERCNT_MASK (0x0001FFFF)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_BOT_FOC_BOTTOMFIELDORDERCNT_LSBMASK (0x0001FFFF)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_BOT_FOC_BOTTOMFIELDORDERCNT_SHIFT (0)
+
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_TOP_FOC_OFFSET (0x0258)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_TOP_FOC_STRIDE (8)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_TOP_FOC_NO_ENTRIES (16)
+
+// MSVDX_VEC_H264 CR_VEC_H264_BE_TOP_FOC TOPFIELDORDERCNT
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_TOP_FOC_TOPFIELDORDERCNT_MASK (0x0001FFFF)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_TOP_FOC_TOPFIELDORDERCNT_LSBMASK (0x0001FFFF)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_TOP_FOC_TOPFIELDORDERCNT_SHIFT (0)
+
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_LIST0_INVERSE_OFFSET (0x02FC)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_LIST0_INVERSE_STRIDE (4)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_LIST0_INVERSE_NO_ENTRIES (8)
+
+// MSVDX_VEC_H264 CR_VEC_H264_BE_LIST0_INVERSE REFPICLISTINVERSE0_3
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_LIST0_INVERSE_REFPICLISTINVERSE0_3_MASK (0x1F000000)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_LIST0_INVERSE_REFPICLISTINVERSE0_3_LSBMASK (0x0000001F)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_LIST0_INVERSE_REFPICLISTINVERSE0_3_SHIFT (24)
+
+// MSVDX_VEC_H264 CR_VEC_H264_BE_LIST0_INVERSE REFPICLISTINVERSE0_2
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_LIST0_INVERSE_REFPICLISTINVERSE0_2_MASK (0x001F0000)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_LIST0_INVERSE_REFPICLISTINVERSE0_2_LSBMASK (0x0000001F)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_LIST0_INVERSE_REFPICLISTINVERSE0_2_SHIFT (16)
+
+// MSVDX_VEC_H264 CR_VEC_H264_BE_LIST0_INVERSE REFPICLISTINVERSE0_1
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_LIST0_INVERSE_REFPICLISTINVERSE0_1_MASK (0x00001F00)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_LIST0_INVERSE_REFPICLISTINVERSE0_1_LSBMASK (0x0000001F)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_LIST0_INVERSE_REFPICLISTINVERSE0_1_SHIFT (8)
+
+// MSVDX_VEC_H264 CR_VEC_H264_BE_LIST0_INVERSE REFPICLISTINVERSE0_0
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_LIST0_INVERSE_REFPICLISTINVERSE0_0_MASK (0x0000001F)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_LIST0_INVERSE_REFPICLISTINVERSE0_0_LSBMASK (0x0000001F)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_LIST0_INVERSE_REFPICLISTINVERSE0_0_SHIFT (0)
+
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_LIST1_OFFSET (0x031C)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_LIST1_STRIDE (4)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_LIST1_NO_ENTRIES (8)
+
+// MSVDX_VEC_H264 CR_VEC_H264_BE_LIST1 BOTTOMFIELDFLAG1_3
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_LIST1_BOTTOMFIELDFLAG1_3_MASK (0x80000000)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_LIST1_BOTTOMFIELDFLAG1_3_LSBMASK (0x00000001)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_LIST1_BOTTOMFIELDFLAG1_3_SHIFT (31)
+
+// MSVDX_VEC_H264 CR_VEC_H264_BE_LIST1 REFPICLIST1_3
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_LIST1_REFPICLIST1_3_MASK (0x0F000000)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_LIST1_REFPICLIST1_3_LSBMASK (0x0000000F)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_LIST1_REFPICLIST1_3_SHIFT (24)
+
+// MSVDX_VEC_H264 CR_VEC_H264_BE_LIST1 BOTTOMFIELDFLAG1_2
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_LIST1_BOTTOMFIELDFLAG1_2_MASK (0x00800000)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_LIST1_BOTTOMFIELDFLAG1_2_LSBMASK (0x00000001)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_LIST1_BOTTOMFIELDFLAG1_2_SHIFT (23)
+
+// MSVDX_VEC_H264 CR_VEC_H264_BE_LIST1 REFPICLIST1_2
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_LIST1_REFPICLIST1_2_MASK (0x000F0000)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_LIST1_REFPICLIST1_2_LSBMASK (0x0000000F)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_LIST1_REFPICLIST1_2_SHIFT (16)
+
+// MSVDX_VEC_H264 CR_VEC_H264_BE_LIST1 BOTTOMFIELDFLAG1_1
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_LIST1_BOTTOMFIELDFLAG1_1_MASK (0x00008000)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_LIST1_BOTTOMFIELDFLAG1_1_LSBMASK (0x00000001)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_LIST1_BOTTOMFIELDFLAG1_1_SHIFT (15)
+
+// MSVDX_VEC_H264 CR_VEC_H264_BE_LIST1 REFPICLIST1_1
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_LIST1_REFPICLIST1_1_MASK (0x00000F00)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_LIST1_REFPICLIST1_1_LSBMASK (0x0000000F)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_LIST1_REFPICLIST1_1_SHIFT (8)
+
+// MSVDX_VEC_H264 CR_VEC_H264_BE_LIST1 BOTTOMFIELDFLAG1_0
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_LIST1_BOTTOMFIELDFLAG1_0_MASK (0x00000080)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_LIST1_BOTTOMFIELDFLAG1_0_LSBMASK (0x00000001)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_LIST1_BOTTOMFIELDFLAG1_0_SHIFT (7)
+
+// MSVDX_VEC_H264 CR_VEC_H264_BE_LIST1 REFPICLIST1_0
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_LIST1_REFPICLIST1_0_MASK (0x0000000F)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_LIST1_REFPICLIST1_0_LSBMASK (0x0000000F)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_LIST1_REFPICLIST1_0_SHIFT (0)
+
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_LIST0_OFFSET (0x033C)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_LIST0_STRIDE (4)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_LIST0_NO_ENTRIES (8)
+
+// MSVDX_VEC_H264 CR_VEC_H264_BE_LIST0 BOTTOMFIELDFLAG0_3
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_LIST0_BOTTOMFIELDFLAG0_3_MASK (0x80000000)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_LIST0_BOTTOMFIELDFLAG0_3_LSBMASK (0x00000001)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_LIST0_BOTTOMFIELDFLAG0_3_SHIFT (31)
+
+// MSVDX_VEC_H264 CR_VEC_H264_BE_LIST0 REFPICLIST0_3
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_LIST0_REFPICLIST0_3_MASK (0x0F000000)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_LIST0_REFPICLIST0_3_LSBMASK (0x0000000F)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_LIST0_REFPICLIST0_3_SHIFT (24)
+
+// MSVDX_VEC_H264 CR_VEC_H264_BE_LIST0 BOTTOMFIELDFLAG0_2
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_LIST0_BOTTOMFIELDFLAG0_2_MASK (0x00800000)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_LIST0_BOTTOMFIELDFLAG0_2_LSBMASK (0x00000001)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_LIST0_BOTTOMFIELDFLAG0_2_SHIFT (23)
+
+// MSVDX_VEC_H264 CR_VEC_H264_BE_LIST0 REFPICLIST0_2
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_LIST0_REFPICLIST0_2_MASK (0x000F0000)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_LIST0_REFPICLIST0_2_LSBMASK (0x0000000F)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_LIST0_REFPICLIST0_2_SHIFT (16)
+
+// MSVDX_VEC_H264 CR_VEC_H264_BE_LIST0 BOTTOMFIELDFLAG0_1
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_LIST0_BOTTOMFIELDFLAG0_1_MASK (0x00008000)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_LIST0_BOTTOMFIELDFLAG0_1_LSBMASK (0x00000001)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_LIST0_BOTTOMFIELDFLAG0_1_SHIFT (15)
+
+// MSVDX_VEC_H264 CR_VEC_H264_BE_LIST0 REFPICLIST0_1
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_LIST0_REFPICLIST0_1_MASK (0x00000F00)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_LIST0_REFPICLIST0_1_LSBMASK (0x0000000F)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_LIST0_REFPICLIST0_1_SHIFT (8)
+
+// MSVDX_VEC_H264 CR_VEC_H264_BE_LIST0 BOTTOMFIELDFLAG0_0
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_LIST0_BOTTOMFIELDFLAG0_0_MASK (0x00000080)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_LIST0_BOTTOMFIELDFLAG0_0_LSBMASK (0x00000001)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_LIST0_BOTTOMFIELDFLAG0_0_SHIFT (7)
+
+// MSVDX_VEC_H264 CR_VEC_H264_BE_LIST0 REFPICLIST0_0
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_LIST0_REFPICLIST0_0_MASK (0x0000000F)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_LIST0_REFPICLIST0_0_LSBMASK (0x0000000F)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_LIST0_REFPICLIST0_0_SHIFT (0)
+
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_SPS0_OFFSET (0x0200)
+
+// MSVDX_VEC_H264 CR_VEC_H264_FE_SPS0 H264_FE_SPS0_4BIT_SGM_FLAG
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_SPS0_H264_FE_SPS0_4BIT_SGM_FLAG_MASK (0x00004000)
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_SPS0_H264_FE_SPS0_4BIT_SGM_FLAG_LSBMASK (0x00000001)
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_SPS0_H264_FE_SPS0_4BIT_SGM_FLAG_SHIFT (14)
+
+// MSVDX_VEC_H264 CR_VEC_H264_FE_SPS0 MIN_LUMA_BIPRED_SIZE_8X8
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_SPS0_MIN_LUMA_BIPRED_SIZE_8X8_MASK (0x00000800)
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_SPS0_MIN_LUMA_BIPRED_SIZE_8X8_LSBMASK (0x00000001)
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_SPS0_MIN_LUMA_BIPRED_SIZE_8X8_SHIFT (11)
+
+// MSVDX_VEC_H264 CR_VEC_H264_FE_SPS0 DIRECT_8X8_INFERENCE_FLAG
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_SPS0_DIRECT_8X8_INFERENCE_FLAG_MASK (0x00000400)
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_SPS0_DIRECT_8X8_INFERENCE_FLAG_LSBMASK (0x00000001)
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_SPS0_DIRECT_8X8_INFERENCE_FLAG_SHIFT (10)
+
+// MSVDX_VEC_H264 CR_VEC_H264_FE_SPS0 CHROMA_FORMAT_IDC
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_SPS0_CHROMA_FORMAT_IDC_MASK (0x00000200)
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_SPS0_CHROMA_FORMAT_IDC_LSBMASK (0x00000001)
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_SPS0_CHROMA_FORMAT_IDC_SHIFT (9)
+
+// MSVDX_VEC_H264 CR_VEC_H264_FE_SPS0 FRAME_MBS_ONLY_FLAG
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_SPS0_FRAME_MBS_ONLY_FLAG_MASK (0x00000100)
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_SPS0_FRAME_MBS_ONLY_FLAG_LSBMASK (0x00000001)
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_SPS0_FRAME_MBS_ONLY_FLAG_SHIFT (8)
+
+// MSVDX_VEC_H264 CR_VEC_H264_FE_SPS0 H264_FE_SPS0_SPARE7
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_SPS0_H264_FE_SPS0_SPARE7_MASK (0x00000080)
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_SPS0_H264_FE_SPS0_SPARE7_LSBMASK (0x00000001)
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_SPS0_H264_FE_SPS0_SPARE7_SHIFT (7)
+
+// MSVDX_VEC_H264 CR_VEC_H264_FE_SPS0 PICWIDTHINMBSLESS1
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_SPS0_PICWIDTHINMBSLESS1_MASK (0x0000007F)
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_SPS0_PICWIDTHINMBSLESS1_LSBMASK (0x0000007F)
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_SPS0_PICWIDTHINMBSLESS1_SHIFT (0)
+
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_PPS0_OFFSET (0x0204)
+
+// MSVDX_VEC_H264 CR_VEC_H264_FE_PPS0 H264_FE_PPS0_SPARE31DOWNTO7
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_PPS0_H264_FE_PPS0_SPARE31DOWNTO7_MASK (0xFFFFFF80)
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_PPS0_H264_FE_PPS0_SPARE31DOWNTO7_LSBMASK (0x01FFFFFF)
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_PPS0_H264_FE_PPS0_SPARE31DOWNTO7_SHIFT (7)
+
+// MSVDX_VEC_H264 CR_VEC_H264_FE_PPS0 NUM_SLICE_GROUPS_MINUS1
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_PPS0_NUM_SLICE_GROUPS_MINUS1_MASK (0x00000070)
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_PPS0_NUM_SLICE_GROUPS_MINUS1_LSBMASK (0x00000007)
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_PPS0_NUM_SLICE_GROUPS_MINUS1_SHIFT (4)
+
+// MSVDX_VEC_H264 CR_VEC_H264_FE_PPS0 H264_FE_PPS0_SPARE3
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_PPS0_H264_FE_PPS0_SPARE3_MASK (0x00000008)
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_PPS0_H264_FE_PPS0_SPARE3_LSBMASK (0x00000001)
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_PPS0_H264_FE_PPS0_SPARE3_SHIFT (3)
+
+// MSVDX_VEC_H264 CR_VEC_H264_FE_PPS0 ENTROPY_CODING_MODE_FLAG
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_PPS0_ENTROPY_CODING_MODE_FLAG_MASK (0x00000004)
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_PPS0_ENTROPY_CODING_MODE_FLAG_LSBMASK (0x00000001)
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_PPS0_ENTROPY_CODING_MODE_FLAG_SHIFT (2)
+
+// MSVDX_VEC_H264 CR_VEC_H264_FE_PPS0 CONSTRAINED_INTRA_PRED_FLAG
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_PPS0_CONSTRAINED_INTRA_PRED_FLAG_MASK (0x00000002)
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_PPS0_CONSTRAINED_INTRA_PRED_FLAG_LSBMASK (0x00000001)
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_PPS0_CONSTRAINED_INTRA_PRED_FLAG_SHIFT (1)
+
+// MSVDX_VEC_H264 CR_VEC_H264_FE_PPS0 TRANSFORM_8X8_MODE_FLAG
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_PPS0_TRANSFORM_8X8_MODE_FLAG_MASK (0x00000001)
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_PPS0_TRANSFORM_8X8_MODE_FLAG_LSBMASK (0x00000001)
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_PPS0_TRANSFORM_8X8_MODE_FLAG_SHIFT (0)
+
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_CUR_PIC0_OFFSET (0x0208)
+
+// MSVDX_VEC_H264 CR_VEC_H264_FE_CUR_PIC0 H264_FE_CUR_PIC0_SPARE29
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_CUR_PIC0_H264_FE_CUR_PIC0_SPARE29_MASK (0x20000000)
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_CUR_PIC0_H264_FE_CUR_PIC0_SPARE29_LSBMASK (0x00000001)
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_CUR_PIC0_H264_FE_CUR_PIC0_SPARE29_SHIFT (29)
+
+// MSVDX_VEC_H264 CR_VEC_H264_FE_CUR_PIC0 PICSIZEINMBSLESS1
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_CUR_PIC0_PICSIZEINMBSLESS1_MASK (0x1FFF0000)
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_CUR_PIC0_PICSIZEINMBSLESS1_LSBMASK (0x00001FFF)
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_CUR_PIC0_PICSIZEINMBSLESS1_SHIFT (16)
+
+// MSVDX_VEC_H264 CR_VEC_H264_FE_CUR_PIC0 PICHEIGHTINMBSLESS1
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_CUR_PIC0_PICHEIGHTINMBSLESS1_MASK (0x00007F00)
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_CUR_PIC0_PICHEIGHTINMBSLESS1_LSBMASK (0x0000007F)
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_CUR_PIC0_PICHEIGHTINMBSLESS1_SHIFT (8)
+
+// MSVDX_VEC_H264 CR_VEC_H264_FE_CUR_PIC0 H264_FE_CUR_PIC0_SPARE7DOWNTO5
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_CUR_PIC0_H264_FE_CUR_PIC0_SPARE7DOWNTO5_MASK (0x000000E0)
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_CUR_PIC0_H264_FE_CUR_PIC0_SPARE7DOWNTO5_LSBMASK (0x00000007)
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_CUR_PIC0_H264_FE_CUR_PIC0_SPARE7DOWNTO5_SHIFT (5)
+
+// MSVDX_VEC_H264 CR_VEC_H264_FE_CUR_PIC0 H264_FE_CUR_PIC0_SPARE3
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_CUR_PIC0_H264_FE_CUR_PIC0_SPARE3_MASK (0x00000008)
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_CUR_PIC0_H264_FE_CUR_PIC0_SPARE3_LSBMASK (0x00000001)
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_CUR_PIC0_H264_FE_CUR_PIC0_SPARE3_SHIFT (3)
+
+// MSVDX_VEC_H264 CR_VEC_H264_FE_CUR_PIC0 MBAFFFRAMEFLAG
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_CUR_PIC0_MBAFFFRAMEFLAG_MASK (0x00000004)
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_CUR_PIC0_MBAFFFRAMEFLAG_LSBMASK (0x00000001)
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_CUR_PIC0_MBAFFFRAMEFLAG_SHIFT (2)
+
+// MSVDX_VEC_H264 CR_VEC_H264_FE_CUR_PIC0 FIELD_PIC_FLAG
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_CUR_PIC0_FIELD_PIC_FLAG_MASK (0x00000002)
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_CUR_PIC0_FIELD_PIC_FLAG_LSBMASK (0x00000001)
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_CUR_PIC0_FIELD_PIC_FLAG_SHIFT (1)
+
+// MSVDX_VEC_H264 CR_VEC_H264_FE_CUR_PIC0 BOTTOM_FIELD_FLAG
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_CUR_PIC0_BOTTOM_FIELD_FLAG_MASK (0x00000001)
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_CUR_PIC0_BOTTOM_FIELD_FLAG_LSBMASK (0x00000001)
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_CUR_PIC0_BOTTOM_FIELD_FLAG_SHIFT (0)
+
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_SLICE0_OFFSET (0x020C)
+
+// MSVDX_VEC_H264 CR_VEC_H264_FE_SLICE0 H264_FE_SLICE0_SPARE25DOWNTO18
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_SLICE0_H264_FE_SLICE0_SPARE25DOWNTO18_MASK (0x03FC0000)
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_SLICE0_H264_FE_SLICE0_SPARE25DOWNTO18_LSBMASK (0x000000FF)
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_SLICE0_H264_FE_SLICE0_SPARE25DOWNTO18_SHIFT (18)
+
+// MSVDX_VEC_H264 CR_VEC_H264_FE_SLICE0 SLICETYPE
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_SLICE0_SLICETYPE_MASK (0x00030000)
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_SLICE0_SLICETYPE_LSBMASK (0x00000003)
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_SLICE0_SLICETYPE_SHIFT (16)
+
+// MSVDX_VEC_H264 CR_VEC_H264_FE_SLICE0 CABAC_INIT_IDC
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_SLICE0_CABAC_INIT_IDC_MASK (0x0000C000)
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_SLICE0_CABAC_INIT_IDC_LSBMASK (0x00000003)
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_SLICE0_CABAC_INIT_IDC_SHIFT (14)
+
+// MSVDX_VEC_H264 CR_VEC_H264_FE_SLICE0 SLICECOUNT
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_SLICE0_SLICECOUNT_MASK (0x00003FFF)
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_SLICE0_SLICECOUNT_LSBMASK (0x00003FFF)
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_SLICE0_SLICECOUNT_SHIFT (0)
+
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_SLICE1_OFFSET (0x0210)
+
+// MSVDX_VEC_H264 CR_VEC_H264_FE_SLICE1 FIRST_MB_IN_SLICE_Y
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_SLICE1_FIRST_MB_IN_SLICE_Y_MASK (0x7F000000)
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_SLICE1_FIRST_MB_IN_SLICE_Y_LSBMASK (0x0000007F)
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_SLICE1_FIRST_MB_IN_SLICE_Y_SHIFT (24)
+
+// MSVDX_VEC_H264 CR_VEC_H264_FE_SLICE1 H264_FE_SLICE1_SPARE23
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_SLICE1_H264_FE_SLICE1_SPARE23_MASK (0x00800000)
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_SLICE1_H264_FE_SLICE1_SPARE23_LSBMASK (0x00000001)
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_SLICE1_H264_FE_SLICE1_SPARE23_SHIFT (23)
+
+// MSVDX_VEC_H264 CR_VEC_H264_FE_SLICE1 FIRST_MB_IN_SLICE_X
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_SLICE1_FIRST_MB_IN_SLICE_X_MASK (0x007F0000)
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_SLICE1_FIRST_MB_IN_SLICE_X_LSBMASK (0x0000007F)
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_SLICE1_FIRST_MB_IN_SLICE_X_SHIFT (16)
+
+// MSVDX_VEC_H264 CR_VEC_H264_FE_SLICE1 SLICEQPY
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_SLICE1_SLICEQPY_MASK (0x0000FC00)
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_SLICE1_SLICEQPY_LSBMASK (0x0000003F)
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_SLICE1_SLICEQPY_SHIFT (10)
+
+// MSVDX_VEC_H264 CR_VEC_H264_FE_SLICE1 NUM_REF_IDX_L1_ACTIVE_MINUS1
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_SLICE1_NUM_REF_IDX_L1_ACTIVE_MINUS1_MASK (0x000003E0)
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_SLICE1_NUM_REF_IDX_L1_ACTIVE_MINUS1_LSBMASK (0x0000001F)
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_SLICE1_NUM_REF_IDX_L1_ACTIVE_MINUS1_SHIFT (5)
+
+// MSVDX_VEC_H264 CR_VEC_H264_FE_SLICE1 NUM_REF_IDX_L0_ACTIVE_MINUS1
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_SLICE1_NUM_REF_IDX_L0_ACTIVE_MINUS1_MASK (0x0000001F)
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_SLICE1_NUM_REF_IDX_L0_ACTIVE_MINUS1_LSBMASK (0x0000001F)
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_SLICE1_NUM_REF_IDX_L0_ACTIVE_MINUS1_SHIFT (0)
+
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_BASE_ADDR_SGM_OFFSET (0x0214)
+
+// MSVDX_VEC_H264 CR_VEC_H264_FE_BASE_ADDR_SGM MAPUNITTOSLICEGROUPMAP
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_BASE_ADDR_SGM_MAPUNITTOSLICEGROUPMAP_MASK (0xFFFFF000)
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_BASE_ADDR_SGM_MAPUNITTOSLICEGROUPMAP_LSBMASK (0x000FFFFF)
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_BASE_ADDR_SGM_MAPUNITTOSLICEGROUPMAP_SHIFT (12)
+
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_SLICE2_OFFSET (0x0218)
+
+// MSVDX_VEC_H264 CR_VEC_H264_FE_SLICE2 H264_FE_SLICE2_SPARE31DOWNTO30
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_SLICE2_H264_FE_SLICE2_SPARE31DOWNTO30_MASK (0xC0000000)
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_SLICE2_H264_FE_SLICE2_SPARE31DOWNTO30_LSBMASK (0x00000003)
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_SLICE2_H264_FE_SLICE2_SPARE31DOWNTO30_SHIFT (30)
+
+// MSVDX_VEC_H264 CR_VEC_H264_FE_SLICE2 FIRST_MB_IN_SLICE
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_SLICE2_FIRST_MB_IN_SLICE_MASK (0x3FFF0000)
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_SLICE2_FIRST_MB_IN_SLICE_LSBMASK (0x00003FFF)
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_SLICE2_FIRST_MB_IN_SLICE_SHIFT (16)
+
+// MSVDX_VEC_H264 CR_VEC_H264_FE_SLICE2 H264_FE_SLICE2_SPARE15DOWNTO12
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_SLICE2_H264_FE_SLICE2_SPARE15DOWNTO12_MASK (0x0000F000)
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_SLICE2_H264_FE_SLICE2_SPARE15DOWNTO12_LSBMASK (0x0000000F)
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_SLICE2_H264_FE_SLICE2_SPARE15DOWNTO12_SHIFT (12)
+
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_SPARE0_OFFSET (0x021C)
+
+// MSVDX_VEC_H264 CR_VEC_H264_FE_SPARE0 H264_FE_SPARE0_SPARE31DOWNTO12
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_SPARE0_H264_FE_SPARE0_SPARE31DOWNTO12_MASK (0xFFFFF000)
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_SPARE0_H264_FE_SPARE0_SPARE31DOWNTO12_LSBMASK (0x000FFFFF)
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_SPARE0_H264_FE_SPARE0_SPARE31DOWNTO12_SHIFT (12)
+
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_SPARE1_OFFSET (0x0220)
+
+// MSVDX_VEC_H264 CR_VEC_H264_FE_SPARE1 H264_FE_SPARE1_SPARE31DOWNTO0
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_SPARE1_H264_FE_SPARE1_SPARE31DOWNTO0_MASK (0xFFFFFFFF)
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_SPARE1_H264_FE_SPARE1_SPARE31DOWNTO0_LSBMASK (0xFFFFFFFF)
+#define MSVDX_VEC_H264_CR_VEC_H264_FE_SPARE1_H264_FE_SPARE1_SPARE31DOWNTO0_SHIFT (0)
+
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_FOC0_OFFSET (0x0250)
+
+// MSVDX_VEC_H264 CR_VEC_H264_BE_FOC0 TOPFIELDORDERCNT_CURR
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_FOC0_TOPFIELDORDERCNT_CURR_MASK (0x0001FFFF)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_FOC0_TOPFIELDORDERCNT_CURR_LSBMASK (0x0001FFFF)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_FOC0_TOPFIELDORDERCNT_CURR_SHIFT (0)
+
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_FOC1_OFFSET (0x0254)
+
+// MSVDX_VEC_H264 CR_VEC_H264_BE_FOC1 BOTTOMFIELDORDERCNT_CURR
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_FOC1_BOTTOMFIELDORDERCNT_CURR_MASK (0x0001FFFF)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_FOC1_BOTTOMFIELDORDERCNT_CURR_LSBMASK (0x0001FFFF)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_FOC1_BOTTOMFIELDORDERCNT_CURR_SHIFT (0)
+
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_SPS0_OFFSET (0x02D8)
+
+// MSVDX_VEC_H264 CR_VEC_H264_BE_SPS0 H264_BE_SPS0_DEFAULT_MATRIX_FLAG
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_SPS0_H264_BE_SPS0_DEFAULT_MATRIX_FLAG_MASK (0x00040000)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_SPS0_H264_BE_SPS0_DEFAULT_MATRIX_FLAG_LSBMASK (0x00000001)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_SPS0_H264_BE_SPS0_DEFAULT_MATRIX_FLAG_SHIFT (18)
+
+// MSVDX_VEC_H264 CR_VEC_H264_BE_SPS0 H264_BE_SPS0_2PASS_FLAG
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_SPS0_H264_BE_SPS0_2PASS_FLAG_MASK (0x00010000)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_SPS0_H264_BE_SPS0_2PASS_FLAG_LSBMASK (0x00000001)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_SPS0_H264_BE_SPS0_2PASS_FLAG_SHIFT (16)
+
+// MSVDX_VEC_H264 CR_VEC_H264_BE_SPS0 BE_PROFILEIDC
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_SPS0_BE_PROFILEIDC_MASK (0x00003000)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_SPS0_BE_PROFILEIDC_LSBMASK (0x00000003)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_SPS0_BE_PROFILEIDC_SHIFT (12)
+
+// MSVDX_VEC_H264 CR_VEC_H264_BE_SPS0 BE_MIN_LUMA_BIPRED_SIZE_8X8
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_SPS0_BE_MIN_LUMA_BIPRED_SIZE_8X8_MASK (0x00000800)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_SPS0_BE_MIN_LUMA_BIPRED_SIZE_8X8_LSBMASK (0x00000001)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_SPS0_BE_MIN_LUMA_BIPRED_SIZE_8X8_SHIFT (11)
+
+// MSVDX_VEC_H264 CR_VEC_H264_BE_SPS0 BE_DIRECT_8X8_INFERENCE_FLAG
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_SPS0_BE_DIRECT_8X8_INFERENCE_FLAG_MASK (0x00000400)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_SPS0_BE_DIRECT_8X8_INFERENCE_FLAG_LSBMASK (0x00000001)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_SPS0_BE_DIRECT_8X8_INFERENCE_FLAG_SHIFT (10)
+
+// MSVDX_VEC_H264 CR_VEC_H264_BE_SPS0 BE_CHROMA_FORMAT_IDC
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_SPS0_BE_CHROMA_FORMAT_IDC_MASK (0x00000200)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_SPS0_BE_CHROMA_FORMAT_IDC_LSBMASK (0x00000001)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_SPS0_BE_CHROMA_FORMAT_IDC_SHIFT (9)
+
+// MSVDX_VEC_H264 CR_VEC_H264_BE_SPS0 BE_PICWIDTHINMBSLESS1
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_SPS0_BE_PICWIDTHINMBSLESS1_MASK (0x0000007F)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_SPS0_BE_PICWIDTHINMBSLESS1_LSBMASK (0x0000007F)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_SPS0_BE_PICWIDTHINMBSLESS1_SHIFT (0)
+
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_PPS0_OFFSET (0x02DC)
+
+// MSVDX_VEC_H264 CR_VEC_H264_BE_PPS0 BE_SECOND_CHROMA_QP_INDEX_OFFSET
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_PPS0_BE_SECOND_CHROMA_QP_INDEX_OFFSET_MASK (0x1F000000)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_PPS0_BE_SECOND_CHROMA_QP_INDEX_OFFSET_LSBMASK (0x0000001F)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_PPS0_BE_SECOND_CHROMA_QP_INDEX_OFFSET_SHIFT (24)
+
+// MSVDX_VEC_H264 CR_VEC_H264_BE_PPS0 BE_CHROMA_QP_INDEX_OFFSET
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_PPS0_BE_CHROMA_QP_INDEX_OFFSET_MASK (0x001F0000)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_PPS0_BE_CHROMA_QP_INDEX_OFFSET_LSBMASK (0x0000001F)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_PPS0_BE_CHROMA_QP_INDEX_OFFSET_SHIFT (16)
+
+// MSVDX_VEC_H264 CR_VEC_H264_BE_PPS0 BE_WEIGHTED_BIPRED_IDC
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_PPS0_BE_WEIGHTED_BIPRED_IDC_MASK (0x00000300)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_PPS0_BE_WEIGHTED_BIPRED_IDC_LSBMASK (0x00000003)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_PPS0_BE_WEIGHTED_BIPRED_IDC_SHIFT (8)
+
+// MSVDX_VEC_H264 CR_VEC_H264_BE_PPS0 BE_CONSTRAINED_INTRA_PREDICTION_FLAG
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_PPS0_BE_CONSTRAINED_INTRA_PREDICTION_FLAG_MASK (0x00000002)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_PPS0_BE_CONSTRAINED_INTRA_PREDICTION_FLAG_LSBMASK (0x00000001)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_PPS0_BE_CONSTRAINED_INTRA_PREDICTION_FLAG_SHIFT (1)
+
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_CUR_PIC0_OFFSET (0x02E0)
+
+// MSVDX_VEC_H264 CR_VEC_H264_BE_CUR_PIC0 BE_PICHEIGHTINMBSLESS1
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_CUR_PIC0_BE_PICHEIGHTINMBSLESS1_MASK (0x00007F00)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_CUR_PIC0_BE_PICHEIGHTINMBSLESS1_LSBMASK (0x0000007F)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_CUR_PIC0_BE_PICHEIGHTINMBSLESS1_SHIFT (8)
+
+// MSVDX_VEC_H264 CR_VEC_H264_BE_CUR_PIC0 BE_REFERENCE_FLAG
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_CUR_PIC0_BE_REFERENCE_FLAG_MASK (0x00000008)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_CUR_PIC0_BE_REFERENCE_FLAG_LSBMASK (0x00000001)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_CUR_PIC0_BE_REFERENCE_FLAG_SHIFT (3)
+
+// MSVDX_VEC_H264 CR_VEC_H264_BE_CUR_PIC0 BE_MBAFFFRAMEFLAG
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_CUR_PIC0_BE_MBAFFFRAMEFLAG_MASK (0x00000004)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_CUR_PIC0_BE_MBAFFFRAMEFLAG_LSBMASK (0x00000001)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_CUR_PIC0_BE_MBAFFFRAMEFLAG_SHIFT (2)
+
+// MSVDX_VEC_H264 CR_VEC_H264_BE_CUR_PIC0 BE_FIELD_PIC_FLAG
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_CUR_PIC0_BE_FIELD_PIC_FLAG_MASK (0x00000002)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_CUR_PIC0_BE_FIELD_PIC_FLAG_LSBMASK (0x00000001)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_CUR_PIC0_BE_FIELD_PIC_FLAG_SHIFT (1)
+
+// MSVDX_VEC_H264 CR_VEC_H264_BE_CUR_PIC0 BE_BOTTOM_FIELD_FLAG
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_CUR_PIC0_BE_BOTTOM_FIELD_FLAG_MASK (0x00000001)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_CUR_PIC0_BE_BOTTOM_FIELD_FLAG_LSBMASK (0x00000001)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_CUR_PIC0_BE_BOTTOM_FIELD_FLAG_SHIFT (0)
+
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_SLICE0_OFFSET (0x02E4)
+
+// MSVDX_VEC_H264 CR_VEC_H264_BE_SLICE0 BE_DIRECT_SPATIAL_MV_PRED_FLAG
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_SLICE0_BE_DIRECT_SPATIAL_MV_PRED_FLAG_MASK (0x80000000)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_SLICE0_BE_DIRECT_SPATIAL_MV_PRED_FLAG_LSBMASK (0x00000001)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_SLICE0_BE_DIRECT_SPATIAL_MV_PRED_FLAG_SHIFT (31)
+
+// MSVDX_VEC_H264 CR_VEC_H264_BE_SLICE0 H264_BE_SLICE0_SPARE30
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_SLICE0_H264_BE_SLICE0_SPARE30_MASK (0x40000000)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_SLICE0_H264_BE_SLICE0_SPARE30_LSBMASK (0x00000001)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_SLICE0_H264_BE_SLICE0_SPARE30_SHIFT (30)
+
+// MSVDX_VEC_H264 CR_VEC_H264_BE_SLICE0 H264_BE_SLICE0_DISABLE_DEBLOCK_FILTER_IDC
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_SLICE0_H264_BE_SLICE0_DISABLE_DEBLOCK_FILTER_IDC_MASK (0x30000000)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_SLICE0_H264_BE_SLICE0_DISABLE_DEBLOCK_FILTER_IDC_LSBMASK (0x00000003)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_SLICE0_H264_BE_SLICE0_DISABLE_DEBLOCK_FILTER_IDC_SHIFT (28)
+
+// MSVDX_VEC_H264 CR_VEC_H264_BE_SLICE0 H264_BE_SLICE0_ALPHA_CO_OFFSET_DIV2
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_SLICE0_H264_BE_SLICE0_ALPHA_CO_OFFSET_DIV2_MASK (0x0F000000)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_SLICE0_H264_BE_SLICE0_ALPHA_CO_OFFSET_DIV2_LSBMASK (0x0000000F)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_SLICE0_H264_BE_SLICE0_ALPHA_CO_OFFSET_DIV2_SHIFT (24)
+
+// MSVDX_VEC_H264 CR_VEC_H264_BE_SLICE0 H264_BE_SLICE0_BETA_OFFSET_DIV2
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_SLICE0_H264_BE_SLICE0_BETA_OFFSET_DIV2_MASK (0x00F00000)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_SLICE0_H264_BE_SLICE0_BETA_OFFSET_DIV2_LSBMASK (0x0000000F)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_SLICE0_H264_BE_SLICE0_BETA_OFFSET_DIV2_SHIFT (20)
+
+// MSVDX_VEC_H264 CR_VEC_H264_BE_SLICE0 H264_BE_SLICE0_FIELD_TYPE
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_SLICE0_H264_BE_SLICE0_FIELD_TYPE_MASK (0x000C0000)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_SLICE0_H264_BE_SLICE0_FIELD_TYPE_LSBMASK (0x00000003)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_SLICE0_H264_BE_SLICE0_FIELD_TYPE_SHIFT (18)
+
+// MSVDX_VEC_H264 CR_VEC_H264_BE_SLICE0 BE_SLICETYPE
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_SLICE0_BE_SLICETYPE_MASK (0x00030000)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_SLICE0_BE_SLICETYPE_LSBMASK (0x00000003)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_SLICE0_BE_SLICETYPE_SHIFT (16)
+
+// MSVDX_VEC_H264 CR_VEC_H264_BE_SLICE0 H264_BE_SLICE0_SPARE15DOWNTO14
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_SLICE0_H264_BE_SLICE0_SPARE15DOWNTO14_MASK (0x0000C000)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_SLICE0_H264_BE_SLICE0_SPARE15DOWNTO14_LSBMASK (0x00000003)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_SLICE0_H264_BE_SLICE0_SPARE15DOWNTO14_SHIFT (14)
+
+// MSVDX_VEC_H264 CR_VEC_H264_BE_SLICE0 BE_SLICECOUNT
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_SLICE0_BE_SLICECOUNT_MASK (0x00003FFF)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_SLICE0_BE_SLICECOUNT_LSBMASK (0x00003FFF)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_SLICE0_BE_SLICECOUNT_SHIFT (0)
+
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_SLICE1_OFFSET (0x02E8)
+
+// MSVDX_VEC_H264 CR_VEC_H264_BE_SLICE1 H264_BE_SLICE1_SPARE31
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_SLICE1_H264_BE_SLICE1_SPARE31_MASK (0x80000000)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_SLICE1_H264_BE_SLICE1_SPARE31_LSBMASK (0x00000001)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_SLICE1_H264_BE_SLICE1_SPARE31_SHIFT (31)
+
+// MSVDX_VEC_H264 CR_VEC_H264_BE_SLICE1 BE_FIRST_MB_IN_SLICE_Y
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_SLICE1_BE_FIRST_MB_IN_SLICE_Y_MASK (0x7F000000)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_SLICE1_BE_FIRST_MB_IN_SLICE_Y_LSBMASK (0x0000007F)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_SLICE1_BE_FIRST_MB_IN_SLICE_Y_SHIFT (24)
+
+// MSVDX_VEC_H264 CR_VEC_H264_BE_SLICE1 H264_BE_SLICE1_SPARE23
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_SLICE1_H264_BE_SLICE1_SPARE23_MASK (0x00800000)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_SLICE1_H264_BE_SLICE1_SPARE23_LSBMASK (0x00000001)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_SLICE1_H264_BE_SLICE1_SPARE23_SHIFT (23)
+
+// MSVDX_VEC_H264 CR_VEC_H264_BE_SLICE1 BE_FIRST_MB_IN_SLICE_X
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_SLICE1_BE_FIRST_MB_IN_SLICE_X_MASK (0x007F0000)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_SLICE1_BE_FIRST_MB_IN_SLICE_X_LSBMASK (0x0000007F)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_SLICE1_BE_FIRST_MB_IN_SLICE_X_SHIFT (16)
+
+// MSVDX_VEC_H264 CR_VEC_H264_BE_SLICE1 BE_SLICEQPY
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_SLICE1_BE_SLICEQPY_MASK (0x0000FC00)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_SLICE1_BE_SLICEQPY_LSBMASK (0x0000003F)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_SLICE1_BE_SLICEQPY_SHIFT (10)
+
+// MSVDX_VEC_H264 CR_VEC_H264_BE_SLICE1 BE_NUM_REF_IDX_L1_ACTIVE_MINUS1
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_SLICE1_BE_NUM_REF_IDX_L1_ACTIVE_MINUS1_MASK (0x000003E0)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_SLICE1_BE_NUM_REF_IDX_L1_ACTIVE_MINUS1_LSBMASK (0x0000001F)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_SLICE1_BE_NUM_REF_IDX_L1_ACTIVE_MINUS1_SHIFT (5)
+
+// MSVDX_VEC_H264 CR_VEC_H264_BE_SLICE1 BE_NUM_REF_IDX_L0_ACTIVE_MINUS1
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_SLICE1_BE_NUM_REF_IDX_L0_ACTIVE_MINUS1_MASK (0x0000001F)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_SLICE1_BE_NUM_REF_IDX_L0_ACTIVE_MINUS1_LSBMASK (0x0000001F)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_SLICE1_BE_NUM_REF_IDX_L0_ACTIVE_MINUS1_SHIFT (0)
+
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_BASE_ADDR_CUR_PIC_OFFSET (0x02EC)
+
+// MSVDX_VEC_H264 CR_VEC_H264_BE_BASE_ADDR_CUR_PIC CURRPIC_PARAMS_BASE_ADDRESS
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_BASE_ADDR_CUR_PIC_CURRPIC_PARAMS_BASE_ADDRESS_MASK (0xFFFFF000)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_BASE_ADDR_CUR_PIC_CURRPIC_PARAMS_BASE_ADDRESS_LSBMASK (0x000FFFFF)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_BASE_ADDR_CUR_PIC_CURRPIC_PARAMS_BASE_ADDRESS_SHIFT (12)
+
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_REF0_OFFSET (0x02F0)
+
+// MSVDX_VEC_H264 CR_VEC_H264_BE_REF0 BE_LONGTERMFRAMEFLAG
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_REF0_BE_LONGTERMFRAMEFLAG_MASK (0x0000FFFF)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_REF0_BE_LONGTERMFRAMEFLAG_LSBMASK (0x0000FFFF)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_REF0_BE_LONGTERMFRAMEFLAG_SHIFT (0)
+
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_COL_PIC0_OFFSET (0x02F4)
+
+// MSVDX_VEC_H264 CR_VEC_H264_BE_COL_PIC0 COL_NOTFRAMEFLAG
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_COL_PIC0_COL_NOTFRAMEFLAG_MASK (0x00000010)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_COL_PIC0_COL_NOTFRAMEFLAG_LSBMASK (0x00000001)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_COL_PIC0_COL_NOTFRAMEFLAG_SHIFT (4)
+
+// MSVDX_VEC_H264 CR_VEC_H264_BE_COL_PIC0 COL_MBAFFFRAMEFLAG
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_COL_PIC0_COL_MBAFFFRAMEFLAG_MASK (0x00000004)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_COL_PIC0_COL_MBAFFFRAMEFLAG_LSBMASK (0x00000001)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_COL_PIC0_COL_MBAFFFRAMEFLAG_SHIFT (2)
+
+// MSVDX_VEC_H264 CR_VEC_H264_BE_COL_PIC0 COL_BOTTOM_FIELD_FLAG
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_COL_PIC0_COL_BOTTOM_FIELD_FLAG_MASK (0x00000001)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_COL_PIC0_COL_BOTTOM_FIELD_FLAG_LSBMASK (0x00000001)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_COL_PIC0_COL_BOTTOM_FIELD_FLAG_SHIFT (0)
+
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_BASE_ADDR_COL_PIC_OFFSET (0x02F8)
+
+// MSVDX_VEC_H264 CR_VEC_H264_BE_BASE_ADDR_COL_PIC COL_PIC_PARAMS_BASE_ADDRESS
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_BASE_ADDR_COL_PIC_COL_PIC_PARAMS_BASE_ADDRESS_MASK (0xFFFFF000)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_BASE_ADDR_COL_PIC_COL_PIC_PARAMS_BASE_ADDRESS_LSBMASK (0x000FFFFF)
+#define MSVDX_VEC_H264_CR_VEC_H264_BE_BASE_ADDR_COL_PIC_COL_PIC_PARAMS_BASE_ADDRESS_SHIFT (12)
+
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __MSVDX_VEC_H264_REG_IO2_H__ */
diff --git a/src/hwdefs/msvdx_vec_mpeg2_reg_io2.h b/src/hwdefs/msvdx_vec_mpeg2_reg_io2.h
new file mode 100644
index 0000000..7a691df
--- /dev/null
+++ b/src/hwdefs/msvdx_vec_mpeg2_reg_io2.h
@@ -0,0 +1,270 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+
+/******************************************************************************
+
+ @File msvdx_vec_mpeg2_reg_io2.h
+
+ @Title MSVDX Offsets
+
+ @Platform </b>\n
+
+ @Description </b>\n This file contains the MSVDX_VEC_MPEG2_REG_IO2_H Defintions.
+
+******************************************************************************/
+#if !defined (__MSVDX_VEC_MPEG2_REG_IO2_H__)
+#define __MSVDX_VEC_MPEG2_REG_IO2_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_FE_PPS0_OFFSET (0x060C)
+
+// MSVDX_VEC_MPEG2 CR_VEC_MPEG2_FE_PPS0 FE_ALTERNATE_SCAN
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_FE_PPS0_FE_ALTERNATE_SCAN_MASK (0x00000200)
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_FE_PPS0_FE_ALTERNATE_SCAN_LSBMASK (0x00000001)
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_FE_PPS0_FE_ALTERNATE_SCAN_SHIFT (9)
+
+// MSVDX_VEC_MPEG2 CR_VEC_MPEG2_FE_PPS0 FE_Q_SCALE_TYPE
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_FE_PPS0_FE_Q_SCALE_TYPE_MASK (0x00000100)
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_FE_PPS0_FE_Q_SCALE_TYPE_LSBMASK (0x00000001)
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_FE_PPS0_FE_Q_SCALE_TYPE_SHIFT (8)
+
+// MSVDX_VEC_MPEG2 CR_VEC_MPEG2_FE_PPS0 FE_INTRA_DC_PRECISION
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_FE_PPS0_FE_INTRA_DC_PRECISION_MASK (0x000000C0)
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_FE_PPS0_FE_INTRA_DC_PRECISION_LSBMASK (0x00000003)
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_FE_PPS0_FE_INTRA_DC_PRECISION_SHIFT (6)
+
+// MSVDX_VEC_MPEG2 CR_VEC_MPEG2_FE_PPS0 FE_TOP_FIELD_FIRST
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_FE_PPS0_FE_TOP_FIELD_FIRST_MASK (0x00000020)
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_FE_PPS0_FE_TOP_FIELD_FIRST_LSBMASK (0x00000001)
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_FE_PPS0_FE_TOP_FIELD_FIRST_SHIFT (5)
+
+// MSVDX_VEC_MPEG2 CR_VEC_MPEG2_FE_PPS0 FE_CONCEALMENT_MOTION_VECTORS
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_FE_PPS0_FE_CONCEALMENT_MOTION_VECTORS_MASK (0x00000010)
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_FE_PPS0_FE_CONCEALMENT_MOTION_VECTORS_LSBMASK (0x00000001)
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_FE_PPS0_FE_CONCEALMENT_MOTION_VECTORS_SHIFT (4)
+
+// MSVDX_VEC_MPEG2 CR_VEC_MPEG2_FE_PPS0 FE_FRAME_PRED_FRAME_DCT
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_FE_PPS0_FE_FRAME_PRED_FRAME_DCT_MASK (0x00000008)
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_FE_PPS0_FE_FRAME_PRED_FRAME_DCT_LSBMASK (0x00000001)
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_FE_PPS0_FE_FRAME_PRED_FRAME_DCT_SHIFT (3)
+
+// MSVDX_VEC_MPEG2 CR_VEC_MPEG2_FE_PPS0 FE_PICTURE_STRUCTURE
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_FE_PPS0_FE_PICTURE_STRUCTURE_MASK (0x00000006)
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_FE_PPS0_FE_PICTURE_STRUCTURE_LSBMASK (0x00000003)
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_FE_PPS0_FE_PICTURE_STRUCTURE_SHIFT (1)
+
+// MSVDX_VEC_MPEG2 CR_VEC_MPEG2_FE_PPS0 FE_INTRA_VLC_FORMAT
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_FE_PPS0_FE_INTRA_VLC_FORMAT_MASK (0x00000001)
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_FE_PPS0_FE_INTRA_VLC_FORMAT_LSBMASK (0x00000001)
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_FE_PPS0_FE_INTRA_VLC_FORMAT_SHIFT (0)
+
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_FE_PPS1_OFFSET (0x0610)
+
+// MSVDX_VEC_MPEG2 CR_VEC_MPEG2_FE_PPS1 FE_PICTURE_CODING_TYPE
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_FE_PPS1_FE_PICTURE_CODING_TYPE_MASK (0x00070000)
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_FE_PPS1_FE_PICTURE_CODING_TYPE_LSBMASK (0x00000007)
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_FE_PPS1_FE_PICTURE_CODING_TYPE_SHIFT (16)
+
+// MSVDX_VEC_MPEG2 CR_VEC_MPEG2_FE_PPS1 FE_F_CODE00
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_FE_PPS1_FE_F_CODE00_MASK (0x0000F000)
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_FE_PPS1_FE_F_CODE00_LSBMASK (0x0000000F)
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_FE_PPS1_FE_F_CODE00_SHIFT (12)
+
+// MSVDX_VEC_MPEG2 CR_VEC_MPEG2_FE_PPS1 FE_F_CODE01
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_FE_PPS1_FE_F_CODE01_MASK (0x00000F00)
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_FE_PPS1_FE_F_CODE01_LSBMASK (0x0000000F)
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_FE_PPS1_FE_F_CODE01_SHIFT (8)
+
+// MSVDX_VEC_MPEG2 CR_VEC_MPEG2_FE_PPS1 FE_F_CODE10
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_FE_PPS1_FE_F_CODE10_MASK (0x000000F0)
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_FE_PPS1_FE_F_CODE10_LSBMASK (0x0000000F)
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_FE_PPS1_FE_F_CODE10_SHIFT (4)
+
+// MSVDX_VEC_MPEG2 CR_VEC_MPEG2_FE_PPS1 FE_F_CODE11
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_FE_PPS1_FE_F_CODE11_MASK (0x0000000F)
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_FE_PPS1_FE_F_CODE11_LSBMASK (0x0000000F)
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_FE_PPS1_FE_F_CODE11_SHIFT (0)
+
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_FE_SLICE_OFFSET (0x0614)
+
+// MSVDX_VEC_MPEG2 CR_VEC_MPEG2_FE_SLICE FE_LAST_IN_PICTURE
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_FE_SLICE_FE_LAST_IN_PICTURE_MASK (0x20000000)
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_FE_SLICE_FE_LAST_IN_PICTURE_LSBMASK (0x00000001)
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_FE_SLICE_FE_LAST_IN_PICTURE_SHIFT (29)
+
+// MSVDX_VEC_MPEG2 CR_VEC_MPEG2_FE_SLICE FE_FIRST_IN_ROW
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_FE_SLICE_FE_FIRST_IN_ROW_MASK (0x10000000)
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_FE_SLICE_FE_FIRST_IN_ROW_LSBMASK (0x00000001)
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_FE_SLICE_FE_FIRST_IN_ROW_SHIFT (28)
+
+// MSVDX_VEC_MPEG2 CR_VEC_MPEG2_FE_SLICE FE_SLICE_VERTICAL_POSITION_MINUS1
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_FE_SLICE_FE_SLICE_VERTICAL_POSITION_MINUS1_MASK (0x0FE00000)
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_FE_SLICE_FE_SLICE_VERTICAL_POSITION_MINUS1_LSBMASK (0x0000007F)
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_FE_SLICE_FE_SLICE_VERTICAL_POSITION_MINUS1_SHIFT (21)
+
+// MSVDX_VEC_MPEG2 CR_VEC_MPEG2_FE_SLICE FE_QUANTISER_SCALE_CODE
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_FE_SLICE_FE_QUANTISER_SCALE_CODE_MASK (0x001F0000)
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_FE_SLICE_FE_QUANTISER_SCALE_CODE_LSBMASK (0x0000001F)
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_FE_SLICE_FE_QUANTISER_SCALE_CODE_SHIFT (16)
+
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_BE_SPS0_OFFSET (0x0650)
+
+// MSVDX_VEC_MPEG2 CR_VEC_MPEG2_BE_SPS0 BE_HORIZONTAL_SIZE_MINUS1
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_BE_SPS0_BE_HORIZONTAL_SIZE_MINUS1_MASK (0x0000007F)
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_BE_SPS0_BE_HORIZONTAL_SIZE_MINUS1_LSBMASK (0x0000007F)
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_BE_SPS0_BE_HORIZONTAL_SIZE_MINUS1_SHIFT (0)
+
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_BE_SPS1_OFFSET (0x0654)
+
+// MSVDX_VEC_MPEG2 CR_VEC_MPEG2_BE_SPS1 BE_VERTICAL_SIZE_MINUS1
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_BE_SPS1_BE_VERTICAL_SIZE_MINUS1_MASK (0x0000007F)
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_BE_SPS1_BE_VERTICAL_SIZE_MINUS1_LSBMASK (0x0000007F)
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_BE_SPS1_BE_VERTICAL_SIZE_MINUS1_SHIFT (0)
+
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_BE_PPS0_OFFSET (0x0658)
+
+// MSVDX_VEC_MPEG2 CR_VEC_MPEG2_BE_PPS0 BE_FRAME_PRED_FRAME_DCT
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_BE_PPS0_BE_FRAME_PRED_FRAME_DCT_MASK (0x00000200)
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_BE_PPS0_BE_FRAME_PRED_FRAME_DCT_LSBMASK (0x00000001)
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_BE_PPS0_BE_FRAME_PRED_FRAME_DCT_SHIFT (9)
+
+// MSVDX_VEC_MPEG2 CR_VEC_MPEG2_BE_PPS0 BE_Q_SCALE_TYPE
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_BE_PPS0_BE_Q_SCALE_TYPE_MASK (0x00000100)
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_BE_PPS0_BE_Q_SCALE_TYPE_LSBMASK (0x00000001)
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_BE_PPS0_BE_Q_SCALE_TYPE_SHIFT (8)
+
+// MSVDX_VEC_MPEG2 CR_VEC_MPEG2_BE_PPS0 BE_INTRA_DC_PRECISION
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_BE_PPS0_BE_INTRA_DC_PRECISION_MASK (0x000000C0)
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_BE_PPS0_BE_INTRA_DC_PRECISION_LSBMASK (0x00000003)
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_BE_PPS0_BE_INTRA_DC_PRECISION_SHIFT (6)
+
+// MSVDX_VEC_MPEG2 CR_VEC_MPEG2_BE_PPS0 BE_FULL_PEL_BACKWARD
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_BE_PPS0_BE_FULL_PEL_BACKWARD_MASK (0x00000020)
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_BE_PPS0_BE_FULL_PEL_BACKWARD_LSBMASK (0x00000001)
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_BE_PPS0_BE_FULL_PEL_BACKWARD_SHIFT (5)
+
+// MSVDX_VEC_MPEG2 CR_VEC_MPEG2_BE_PPS0 BE_FULL_PEL_FORWARD
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_BE_PPS0_BE_FULL_PEL_FORWARD_MASK (0x00000010)
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_BE_PPS0_BE_FULL_PEL_FORWARD_LSBMASK (0x00000001)
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_BE_PPS0_BE_FULL_PEL_FORWARD_SHIFT (4)
+
+// MSVDX_VEC_MPEG2 CR_VEC_MPEG2_BE_PPS0 BE_ALTERNATE_SCAN
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_BE_PPS0_BE_ALTERNATE_SCAN_MASK (0x00000008)
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_BE_PPS0_BE_ALTERNATE_SCAN_LSBMASK (0x00000001)
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_BE_PPS0_BE_ALTERNATE_SCAN_SHIFT (3)
+
+// MSVDX_VEC_MPEG2 CR_VEC_MPEG2_BE_PPS0 BE_SPATIAL_TEMPORAL_WEIGHT_CODE_TABLE_INDEX
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_BE_PPS0_BE_SPATIAL_TEMPORAL_WEIGHT_CODE_TABLE_INDEX_MASK (0x00000006)
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_BE_PPS0_BE_SPATIAL_TEMPORAL_WEIGHT_CODE_TABLE_INDEX_LSBMASK (0x00000003)
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_BE_PPS0_BE_SPATIAL_TEMPORAL_WEIGHT_CODE_TABLE_INDEX_SHIFT (1)
+
+// MSVDX_VEC_MPEG2 CR_VEC_MPEG2_BE_PPS0 BE_SPATIAL_TEMPORAL_SCALABLE_FLAG
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_BE_PPS0_BE_SPATIAL_TEMPORAL_SCALABLE_FLAG_MASK (0x00000001)
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_BE_PPS0_BE_SPATIAL_TEMPORAL_SCALABLE_FLAG_LSBMASK (0x00000001)
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_BE_PPS0_BE_SPATIAL_TEMPORAL_SCALABLE_FLAG_SHIFT (0)
+
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_BE_PPS1_OFFSET (0x065C)
+
+// MSVDX_VEC_MPEG2 CR_VEC_MPEG2_BE_PPS1 BE_F_CODE00
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_BE_PPS1_BE_F_CODE00_MASK (0x0000F000)
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_BE_PPS1_BE_F_CODE00_LSBMASK (0x0000000F)
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_BE_PPS1_BE_F_CODE00_SHIFT (12)
+
+// MSVDX_VEC_MPEG2 CR_VEC_MPEG2_BE_PPS1 BE_F_CODE01
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_BE_PPS1_BE_F_CODE01_MASK (0x00000F00)
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_BE_PPS1_BE_F_CODE01_LSBMASK (0x0000000F)
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_BE_PPS1_BE_F_CODE01_SHIFT (8)
+
+// MSVDX_VEC_MPEG2 CR_VEC_MPEG2_BE_PPS1 BE_F_CODE10
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_BE_PPS1_BE_F_CODE10_MASK (0x000000F0)
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_BE_PPS1_BE_F_CODE10_LSBMASK (0x0000000F)
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_BE_PPS1_BE_F_CODE10_SHIFT (4)
+
+// MSVDX_VEC_MPEG2 CR_VEC_MPEG2_BE_PPS1 BE_F_CODE11
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_BE_PPS1_BE_F_CODE11_MASK (0x0000000F)
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_BE_PPS1_BE_F_CODE11_LSBMASK (0x0000000F)
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_BE_PPS1_BE_F_CODE11_SHIFT (0)
+
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_BE_PPS2_OFFSET (0x0660)
+
+// MSVDX_VEC_MPEG2 CR_VEC_MPEG2_BE_PPS2 BE_PICTURE_CODING_TYPE
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_BE_PPS2_BE_PICTURE_CODING_TYPE_MASK (0x00000070)
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_BE_PPS2_BE_PICTURE_CODING_TYPE_LSBMASK (0x00000007)
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_BE_PPS2_BE_PICTURE_CODING_TYPE_SHIFT (4)
+
+// MSVDX_VEC_MPEG2 CR_VEC_MPEG2_BE_PPS2 BE_TOP_FIELD_FIRST
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_BE_PPS2_BE_TOP_FIELD_FIRST_MASK (0x00000008)
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_BE_PPS2_BE_TOP_FIELD_FIRST_LSBMASK (0x00000001)
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_BE_PPS2_BE_TOP_FIELD_FIRST_SHIFT (3)
+
+// MSVDX_VEC_MPEG2 CR_VEC_MPEG2_BE_PPS2 BE_CONCEALMENT_MOTION_VECTORS
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_BE_PPS2_BE_CONCEALMENT_MOTION_VECTORS_MASK (0x00000004)
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_BE_PPS2_BE_CONCEALMENT_MOTION_VECTORS_LSBMASK (0x00000001)
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_BE_PPS2_BE_CONCEALMENT_MOTION_VECTORS_SHIFT (2)
+
+// MSVDX_VEC_MPEG2 CR_VEC_MPEG2_BE_PPS2 BE_PICTURE_STRUCTURE
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_BE_PPS2_BE_PICTURE_STRUCTURE_MASK (0x00000003)
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_BE_PPS2_BE_PICTURE_STRUCTURE_LSBMASK (0x00000003)
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_BE_PPS2_BE_PICTURE_STRUCTURE_SHIFT (0)
+
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_BE_SLICE_OFFSET (0x0664)
+
+// MSVDX_VEC_MPEG2 CR_VEC_MPEG2_BE_SLICE BE_IP_PAIR_FLAG
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_BE_SLICE_BE_IP_PAIR_FLAG_MASK (0x00008000)
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_BE_SLICE_BE_IP_PAIR_FLAG_LSBMASK (0x00000001)
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_BE_SLICE_BE_IP_PAIR_FLAG_SHIFT (15)
+
+// MSVDX_VEC_MPEG2 CR_VEC_MPEG2_BE_SLICE BE_SECOND_FIELD_FLAG
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_BE_SLICE_BE_SECOND_FIELD_FLAG_MASK (0x00004000)
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_BE_SLICE_BE_SECOND_FIELD_FLAG_LSBMASK (0x00000001)
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_BE_SLICE_BE_SECOND_FIELD_FLAG_SHIFT (14)
+
+// MSVDX_VEC_MPEG2 CR_VEC_MPEG2_BE_SLICE BE_FIRST_IN_ROW
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_BE_SLICE_BE_FIRST_IN_ROW_MASK (0x00002000)
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_BE_SLICE_BE_FIRST_IN_ROW_LSBMASK (0x00000001)
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_BE_SLICE_BE_FIRST_IN_ROW_SHIFT (13)
+
+// MSVDX_VEC_MPEG2 CR_VEC_MPEG2_BE_SLICE BE_SLICE_VERTICAL_POSITION_MINUS1
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_BE_SLICE_BE_SLICE_VERTICAL_POSITION_MINUS1_MASK (0x00000FE0)
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_BE_SLICE_BE_SLICE_VERTICAL_POSITION_MINUS1_LSBMASK (0x0000007F)
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_BE_SLICE_BE_SLICE_VERTICAL_POSITION_MINUS1_SHIFT (5)
+
+// MSVDX_VEC_MPEG2 CR_VEC_MPEG2_BE_SLICE BE_QUANTISER_SCALE_CODE
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_BE_SLICE_BE_QUANTISER_SCALE_CODE_MASK (0x0000001F)
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_BE_SLICE_BE_QUANTISER_SCALE_CODE_LSBMASK (0x0000001F)
+#define MSVDX_VEC_MPEG2_CR_VEC_MPEG2_BE_SLICE_BE_QUANTISER_SCALE_CODE_SHIFT (0)
+
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __MSVDX_VEC_MPEG2_REG_IO2_H__ */
diff --git a/src/hwdefs/msvdx_vec_mpeg4_reg_io2.h b/src/hwdefs/msvdx_vec_mpeg4_reg_io2.h
new file mode 100644
index 0000000..cbd4c56
--- /dev/null
+++ b/src/hwdefs/msvdx_vec_mpeg4_reg_io2.h
@@ -0,0 +1,382 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+
+/******************************************************************************
+
+ @File msvdx_vec_mpeg4_reg_io2.h
+
+ @Title MSVDX Offsets
+
+ @Platform </b>\n
+
+ @Description </b>\n This file contains the MSVDX_VEC_MPEG4_REG_IO2_H Defintions.
+
+******************************************************************************/
+#if !defined (__MSVDX_VEC_MPEG4_REG_IO2_H__)
+#define __MSVDX_VEC_MPEG4_REG_IO2_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_FE_SPS0_OFFSET (0x0600)
+
+// MSVDX_VEC_MPEG4 CR_VEC_MPEG4_FE_SPS0 FE_VOP_WIDTH_IN_MBS_LESS_1
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_FE_SPS0_FE_VOP_WIDTH_IN_MBS_LESS_1_MASK (0x0000007F)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_FE_SPS0_FE_VOP_WIDTH_IN_MBS_LESS_1_LSBMASK (0x0000007F)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_FE_SPS0_FE_VOP_WIDTH_IN_MBS_LESS_1_SHIFT (0)
+
+// MSVDX_VEC_MPEG4 CR_VEC_MPEG4_FE_SPS0 FE_SHORT_HEADER_FLAG
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_FE_SPS0_FE_SHORT_HEADER_FLAG_MASK (0x00000400)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_FE_SPS0_FE_SHORT_HEADER_FLAG_LSBMASK (0x00000001)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_FE_SPS0_FE_SHORT_HEADER_FLAG_SHIFT (10)
+
+// MSVDX_VEC_MPEG4 CR_VEC_MPEG4_FE_SPS0 FE_PROFILE
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_FE_SPS0_FE_PROFILE_MASK (0x00000300)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_FE_SPS0_FE_PROFILE_LSBMASK (0x00000003)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_FE_SPS0_FE_PROFILE_SHIFT (8)
+
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_FE_VOP_SPS0_OFFSET (0x0604)
+
+// MSVDX_VEC_MPEG4 CR_VEC_MPEG4_FE_VOP_SPS0 FE_VOP_HEIGHT_IN_MBS_LESS_1
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_FE_VOP_SPS0_FE_VOP_HEIGHT_IN_MBS_LESS_1_MASK (0x0000FE00)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_FE_VOP_SPS0_FE_VOP_HEIGHT_IN_MBS_LESS_1_LSBMASK (0x0000007F)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_FE_VOP_SPS0_FE_VOP_HEIGHT_IN_MBS_LESS_1_SHIFT (9)
+
+// MSVDX_VEC_MPEG4 CR_VEC_MPEG4_FE_VOP_SPS0 QUANT_PRECISION
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_FE_VOP_SPS0_QUANT_PRECISION_MASK (0x000001E0)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_FE_VOP_SPS0_QUANT_PRECISION_LSBMASK (0x0000000F)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_FE_VOP_SPS0_QUANT_PRECISION_SHIFT (5)
+
+// MSVDX_VEC_MPEG4 CR_VEC_MPEG4_FE_VOP_SPS0 FE_NO_OF_GMC_WARPING_POINTS
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_FE_VOP_SPS0_FE_NO_OF_GMC_WARPING_POINTS_MASK (0x00000010)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_FE_VOP_SPS0_FE_NO_OF_GMC_WARPING_POINTS_LSBMASK (0x00000001)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_FE_VOP_SPS0_FE_NO_OF_GMC_WARPING_POINTS_SHIFT (4)
+
+// MSVDX_VEC_MPEG4 CR_VEC_MPEG4_FE_VOP_SPS0 FE_GMC_ENABLE
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_FE_VOP_SPS0_FE_GMC_ENABLE_MASK (0x00000008)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_FE_VOP_SPS0_FE_GMC_ENABLE_LSBMASK (0x00000001)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_FE_VOP_SPS0_FE_GMC_ENABLE_SHIFT (3)
+
+// MSVDX_VEC_MPEG4 CR_VEC_MPEG4_FE_VOP_SPS0 REVERSIBLE_VLC
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_FE_VOP_SPS0_REVERSIBLE_VLC_MASK (0x00000004)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_FE_VOP_SPS0_REVERSIBLE_VLC_LSBMASK (0x00000001)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_FE_VOP_SPS0_REVERSIBLE_VLC_SHIFT (2)
+
+// MSVDX_VEC_MPEG4 CR_VEC_MPEG4_FE_VOP_SPS0 FE_DATA_PARTITIONED
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_FE_VOP_SPS0_FE_DATA_PARTITIONED_MASK (0x00000002)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_FE_VOP_SPS0_FE_DATA_PARTITIONED_LSBMASK (0x00000001)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_FE_VOP_SPS0_FE_DATA_PARTITIONED_SHIFT (1)
+
+// MSVDX_VEC_MPEG4 CR_VEC_MPEG4_FE_VOP_SPS0 FE_INTERLACED
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_FE_VOP_SPS0_FE_INTERLACED_MASK (0x00000001)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_FE_VOP_SPS0_FE_INTERLACED_LSBMASK (0x00000001)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_FE_VOP_SPS0_FE_INTERLACED_SHIFT (0)
+
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_FE_VOP_PPS0_OFFSET (0x0608)
+
+// MSVDX_VEC_MPEG4 CR_VEC_MPEG4_FE_VOP_PPS0 BACKWARD_REF_VOP_CODING_TYPE
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_FE_VOP_PPS0_BACKWARD_REF_VOP_CODING_TYPE_MASK (0x18000000)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_FE_VOP_PPS0_BACKWARD_REF_VOP_CODING_TYPE_LSBMASK (0x00000003)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_FE_VOP_PPS0_BACKWARD_REF_VOP_CODING_TYPE_SHIFT (27)
+
+// MSVDX_VEC_MPEG4 CR_VEC_MPEG4_FE_VOP_PPS0 FE_FCODE_BACKWARD
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_FE_VOP_PPS0_FE_FCODE_BACKWARD_MASK (0x07000000)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_FE_VOP_PPS0_FE_FCODE_BACKWARD_LSBMASK (0x00000007)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_FE_VOP_PPS0_FE_FCODE_BACKWARD_SHIFT (24)
+
+// MSVDX_VEC_MPEG4 CR_VEC_MPEG4_FE_VOP_PPS0 FE_FCODE_FORWARD
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_FE_VOP_PPS0_FE_FCODE_FORWARD_MASK (0x00E00000)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_FE_VOP_PPS0_FE_FCODE_FORWARD_LSBMASK (0x00000007)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_FE_VOP_PPS0_FE_FCODE_FORWARD_SHIFT (21)
+
+// MSVDX_VEC_MPEG4 CR_VEC_MPEG4_FE_VOP_PPS0 INTRA_DC_VLC_THR
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_FE_VOP_PPS0_INTRA_DC_VLC_THR_MASK (0x001C0000)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_FE_VOP_PPS0_INTRA_DC_VLC_THR_LSBMASK (0x00000007)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_FE_VOP_PPS0_INTRA_DC_VLC_THR_SHIFT (18)
+
+// MSVDX_VEC_MPEG4 CR_VEC_MPEG4_FE_VOP_PPS0 FE_VOP_CODING_TYPE
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_FE_VOP_PPS0_FE_VOP_CODING_TYPE_MASK (0x00030000)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_FE_VOP_PPS0_FE_VOP_CODING_TYPE_LSBMASK (0x00000003)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_FE_VOP_PPS0_FE_VOP_CODING_TYPE_SHIFT (16)
+
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_FE_PICSH_PPS0_OFFSET (0x060C)
+
+// MSVDX_VEC_MPEG4 CR_VEC_MPEG4_FE_PICSH_PPS0 NUM_MBS_IN_GOB
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_FE_PICSH_PPS0_NUM_MBS_IN_GOB_MASK (0x00007FC0)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_FE_PICSH_PPS0_NUM_MBS_IN_GOB_LSBMASK (0x000001FF)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_FE_PICSH_PPS0_NUM_MBS_IN_GOB_SHIFT (6)
+
+// MSVDX_VEC_MPEG4 CR_VEC_MPEG4_FE_PICSH_PPS0 NUM_GOBS_IN_VOP
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_FE_PICSH_PPS0_NUM_GOBS_IN_VOP_MASK (0x0000003E)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_FE_PICSH_PPS0_NUM_GOBS_IN_VOP_LSBMASK (0x0000001F)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_FE_PICSH_PPS0_NUM_GOBS_IN_VOP_SHIFT (1)
+
+// MSVDX_VEC_MPEG4 CR_VEC_MPEG4_FE_PICSH_PPS0 FE_PICSH_CODING_TYPE
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_FE_PICSH_PPS0_FE_PICSH_CODING_TYPE_MASK (0x00000001)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_FE_PICSH_PPS0_FE_PICSH_CODING_TYPE_LSBMASK (0x00000001)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_FE_PICSH_PPS0_FE_PICSH_CODING_TYPE_SHIFT (0)
+
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_FE_SLICE0_OFFSET (0x0610)
+
+// MSVDX_VEC_MPEG4 CR_VEC_MPEG4_FE_SLICE0 FE_VOP_QUANT
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_FE_SLICE0_FE_VOP_QUANT_MASK (0x007FC000)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_FE_SLICE0_FE_VOP_QUANT_LSBMASK (0x000001FF)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_FE_SLICE0_FE_VOP_QUANT_SHIFT (14)
+
+// MSVDX_VEC_MPEG4 CR_VEC_MPEG4_FE_SLICE0 FE_FIRST_MB_IN_SLICE_Y
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_FE_SLICE0_FE_FIRST_MB_IN_SLICE_Y_MASK (0x00003F80)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_FE_SLICE0_FE_FIRST_MB_IN_SLICE_Y_LSBMASK (0x0000007F)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_FE_SLICE0_FE_FIRST_MB_IN_SLICE_Y_SHIFT (7)
+
+// MSVDX_VEC_MPEG4 CR_VEC_MPEG4_FE_SLICE0 FE_FIRST_MB_IN_SLICE_X
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_FE_SLICE0_FE_FIRST_MB_IN_SLICE_X_MASK (0x0000007F)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_FE_SLICE0_FE_FIRST_MB_IN_SLICE_X_LSBMASK (0x0000007F)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_FE_SLICE0_FE_FIRST_MB_IN_SLICE_X_SHIFT (0)
+
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_FE_PARSER_VLR_BASE_ADDR_OFFSET (0x0614)
+
+// MSVDX_VEC_MPEG4 CR_VEC_MPEG4_FE_PARSER_VLR_BASE_ADDR FE_PARSER_VLR_BASE_ADDR
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_FE_PARSER_VLR_BASE_ADDR_FE_PARSER_VLR_BASE_ADDR_MASK (0x0FFC0000)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_FE_PARSER_VLR_BASE_ADDR_FE_PARSER_VLR_BASE_ADDR_LSBMASK (0x000003FF)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_FE_PARSER_VLR_BASE_ADDR_FE_PARSER_VLR_BASE_ADDR_SHIFT (18)
+
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_FE_DATAPARTITION0_BASE_ADDR_OFFSET (0x0618)
+
+// MSVDX_VEC_MPEG4 CR_VEC_MPEG4_FE_DATAPARTITION0_BASE_ADDR FE_DATAPARTITION0_BASE_ADDR
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_FE_DATAPARTITION0_BASE_ADDR_FE_DATAPARTITION0_BASE_ADDR_MASK (0xFFFFF000)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_FE_DATAPARTITION0_BASE_ADDR_FE_DATAPARTITION0_BASE_ADDR_LSBMASK (0x000FFFFF)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_FE_DATAPARTITION0_BASE_ADDR_FE_DATAPARTITION0_BASE_ADDR_SHIFT (12)
+
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_FE_DATAPARTITION1_BASE_ADDR_OFFSET (0x061C)
+
+// MSVDX_VEC_MPEG4 CR_VEC_MPEG4_FE_DATAPARTITION1_BASE_ADDR FE_DATAPARTITION1_BASE_ADDR
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_FE_DATAPARTITION1_BASE_ADDR_FE_DATAPARTITION1_BASE_ADDR_MASK (0xFFFFF000)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_FE_DATAPARTITION1_BASE_ADDR_FE_DATAPARTITION1_BASE_ADDR_LSBMASK (0x000FFFFF)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_FE_DATAPARTITION1_BASE_ADDR_FE_DATAPARTITION1_BASE_ADDR_SHIFT (12)
+
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_FE_DATAPARTITION_VLR_BASE_ADDR_OFFSET (0x0620)
+
+// MSVDX_VEC_MPEG4 CR_VEC_MPEG4_FE_DATAPARTITION_VLR_BASE_ADDR FE_DATAPARTITION_VLR_BASE_ADDR
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_FE_DATAPARTITION_VLR_BASE_ADDR_FE_DATAPARTITION_VLR_BASE_ADDR_MASK (0x00000FFF)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_FE_DATAPARTITION_VLR_BASE_ADDR_FE_DATAPARTITION_VLR_BASE_ADDR_LSBMASK (0x00000FFF)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_FE_DATAPARTITION_VLR_BASE_ADDR_FE_DATAPARTITION_VLR_BASE_ADDR_SHIFT (0)
+
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_SPS0_OFFSET (0x0650)
+
+// MSVDX_VEC_MPEG4 CR_VEC_MPEG4_BE_SPS0 BE_SHORT_HEADER_FLAG
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_SPS0_BE_SHORT_HEADER_FLAG_MASK (0x00000004)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_SPS0_BE_SHORT_HEADER_FLAG_LSBMASK (0x00000001)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_SPS0_BE_SHORT_HEADER_FLAG_SHIFT (2)
+
+// MSVDX_VEC_MPEG4 CR_VEC_MPEG4_BE_SPS0 BE_PROFILE
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_SPS0_BE_PROFILE_MASK (0x00000003)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_SPS0_BE_PROFILE_LSBMASK (0x00000003)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_SPS0_BE_PROFILE_SHIFT (0)
+
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_SPS1_OFFSET (0x0654)
+
+// MSVDX_VEC_MPEG4 CR_VEC_MPEG4_BE_SPS1 BE_VOP_WIDTH_IN_MBS_LESS_1
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_SPS1_BE_VOP_WIDTH_IN_MBS_LESS_1_MASK (0x00003F80)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_SPS1_BE_VOP_WIDTH_IN_MBS_LESS_1_LSBMASK (0x0000007F)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_SPS1_BE_VOP_WIDTH_IN_MBS_LESS_1_SHIFT (7)
+
+// MSVDX_VEC_MPEG4 CR_VEC_MPEG4_BE_SPS1 VOP_HEIGHT_IN_MBS_LESS_1
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_SPS1_VOP_HEIGHT_IN_MBS_LESS_1_MASK (0x0000007F)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_SPS1_VOP_HEIGHT_IN_MBS_LESS_1_LSBMASK (0x0000007F)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_SPS1_VOP_HEIGHT_IN_MBS_LESS_1_SHIFT (0)
+
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_VOP_SPS0_OFFSET (0x0658)
+
+// MSVDX_VEC_MPEG4 CR_VEC_MPEG4_BE_VOP_SPS0 QUANT_TYPE
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_VOP_SPS0_QUANT_TYPE_MASK (0x00000004)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_VOP_SPS0_QUANT_TYPE_LSBMASK (0x00000001)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_VOP_SPS0_QUANT_TYPE_SHIFT (2)
+
+// MSVDX_VEC_MPEG4 CR_VEC_MPEG4_BE_VOP_SPS0 OBMC_DISABLE
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_VOP_SPS0_OBMC_DISABLE_MASK (0x00000002)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_VOP_SPS0_OBMC_DISABLE_LSBMASK (0x00000001)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_VOP_SPS0_OBMC_DISABLE_SHIFT (1)
+
+// MSVDX_VEC_MPEG4 CR_VEC_MPEG4_BE_VOP_SPS0 QUARTER_SAMPLE
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_VOP_SPS0_QUARTER_SAMPLE_MASK (0x00000001)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_VOP_SPS0_QUARTER_SAMPLE_LSBMASK (0x00000001)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_VOP_SPS0_QUARTER_SAMPLE_SHIFT (0)
+
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_VOP_SPS1_OFFSET (0x065C)
+
+// MSVDX_VEC_MPEG4 CR_VEC_MPEG4_BE_VOP_SPS1 GMC_WARPING_ACCURACY
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_VOP_SPS1_GMC_WARPING_ACCURACY_MASK (0x00000030)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_VOP_SPS1_GMC_WARPING_ACCURACY_LSBMASK (0x00000003)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_VOP_SPS1_GMC_WARPING_ACCURACY_SHIFT (4)
+
+// MSVDX_VEC_MPEG4 CR_VEC_MPEG4_BE_VOP_SPS1 BE_NO_OF_GMC_WARPING_POINTS
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_VOP_SPS1_BE_NO_OF_GMC_WARPING_POINTS_MASK (0x00000008)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_VOP_SPS1_BE_NO_OF_GMC_WARPING_POINTS_LSBMASK (0x00000001)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_VOP_SPS1_BE_NO_OF_GMC_WARPING_POINTS_SHIFT (3)
+
+// MSVDX_VEC_MPEG4 CR_VEC_MPEG4_BE_VOP_SPS1 BE_GMC_ENABLE
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_VOP_SPS1_BE_GMC_ENABLE_MASK (0x00000004)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_VOP_SPS1_BE_GMC_ENABLE_LSBMASK (0x00000001)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_VOP_SPS1_BE_GMC_ENABLE_SHIFT (2)
+
+// MSVDX_VEC_MPEG4 CR_VEC_MPEG4_BE_VOP_SPS1 BE_DATA_PARTITIONED
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_VOP_SPS1_BE_DATA_PARTITIONED_MASK (0x00000002)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_VOP_SPS1_BE_DATA_PARTITIONED_LSBMASK (0x00000001)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_VOP_SPS1_BE_DATA_PARTITIONED_SHIFT (1)
+
+// MSVDX_VEC_MPEG4 CR_VEC_MPEG4_BE_VOP_SPS1 BE_INTERLACED
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_VOP_SPS1_BE_INTERLACED_MASK (0x00000001)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_VOP_SPS1_BE_INTERLACED_LSBMASK (0x00000001)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_VOP_SPS1_BE_INTERLACED_SHIFT (0)
+
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_VOP_PPS0_OFFSET (0x0660)
+
+// MSVDX_VEC_MPEG4 CR_VEC_MPEG4_BE_VOP_PPS0 BE_FCODE_BACKWARD
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_VOP_PPS0_BE_FCODE_BACKWARD_MASK (0x00000700)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_VOP_PPS0_BE_FCODE_BACKWARD_LSBMASK (0x00000007)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_VOP_PPS0_BE_FCODE_BACKWARD_SHIFT (8)
+
+// MSVDX_VEC_MPEG4 CR_VEC_MPEG4_BE_VOP_PPS0 BE_FCODE_FORWARD
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_VOP_PPS0_BE_FCODE_FORWARD_MASK (0x000000E0)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_VOP_PPS0_BE_FCODE_FORWARD_LSBMASK (0x00000007)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_VOP_PPS0_BE_FCODE_FORWARD_SHIFT (5)
+
+// MSVDX_VEC_MPEG4 CR_VEC_MPEG4_BE_VOP_PPS0 ALTERNATE_VERTICAL_SCAN_FLAG
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_VOP_PPS0_ALTERNATE_VERTICAL_SCAN_FLAG_MASK (0x00000010)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_VOP_PPS0_ALTERNATE_VERTICAL_SCAN_FLAG_LSBMASK (0x00000001)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_VOP_PPS0_ALTERNATE_VERTICAL_SCAN_FLAG_SHIFT (4)
+
+// MSVDX_VEC_MPEG4 CR_VEC_MPEG4_BE_VOP_PPS0 TOP_FIELD_FIRST
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_VOP_PPS0_TOP_FIELD_FIRST_MASK (0x00000008)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_VOP_PPS0_TOP_FIELD_FIRST_LSBMASK (0x00000001)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_VOP_PPS0_TOP_FIELD_FIRST_SHIFT (3)
+
+// MSVDX_VEC_MPEG4 CR_VEC_MPEG4_BE_VOP_PPS0 ROUNDING_TYPE
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_VOP_PPS0_ROUNDING_TYPE_MASK (0x00000004)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_VOP_PPS0_ROUNDING_TYPE_LSBMASK (0x00000001)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_VOP_PPS0_ROUNDING_TYPE_SHIFT (2)
+
+// MSVDX_VEC_MPEG4 CR_VEC_MPEG4_BE_VOP_PPS0 BE_VOP_CODING_TYPE
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_VOP_PPS0_BE_VOP_CODING_TYPE_MASK (0x00000003)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_VOP_PPS0_BE_VOP_CODING_TYPE_LSBMASK (0x00000003)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_VOP_PPS0_BE_VOP_CODING_TYPE_SHIFT (0)
+
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_PICSH_PPS0_OFFSET (0x0664)
+
+// MSVDX_VEC_MPEG4 CR_VEC_MPEG4_BE_PICSH_PPS0 BE_NUM_MBS_IN_GOB
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_PICSH_PPS0_BE_NUM_MBS_IN_GOB_MASK (0x000003FE)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_PICSH_PPS0_BE_NUM_MBS_IN_GOB_LSBMASK (0x000001FF)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_PICSH_PPS0_BE_NUM_MBS_IN_GOB_SHIFT (1)
+
+// MSVDX_VEC_MPEG4 CR_VEC_MPEG4_BE_PICSH_PPS0 BE_PICSH_CODING_TYPE
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_PICSH_PPS0_BE_PICSH_CODING_TYPE_MASK (0x00000001)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_PICSH_PPS0_BE_PICSH_CODING_TYPE_LSBMASK (0x00000001)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_PICSH_PPS0_BE_PICSH_CODING_TYPE_SHIFT (0)
+
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_GMC_X_OFFSET (0x0668)
+
+// MSVDX_VEC_MPEG4 CR_VEC_MPEG4_BE_GMC_X GMC_X
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_GMC_X_GMC_X_MASK (0x00003FFF)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_GMC_X_GMC_X_LSBMASK (0x00003FFF)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_GMC_X_GMC_X_SHIFT (0)
+
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_GMC_Y_OFFSET (0x066C)
+
+// MSVDX_VEC_MPEG4 CR_VEC_MPEG4_BE_GMC_Y GMC_Y
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_GMC_Y_GMC_Y_MASK (0x00003FFF)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_GMC_Y_GMC_Y_LSBMASK (0x00003FFF)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_GMC_Y_GMC_Y_SHIFT (0)
+
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_SLICE0_OFFSET (0x0670)
+
+// MSVDX_VEC_MPEG4 CR_VEC_MPEG4_BE_SLICE0 BE_FIRST_MB_IN_SLICE_Y
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_SLICE0_BE_FIRST_MB_IN_SLICE_Y_MASK (0x00003F80)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_SLICE0_BE_FIRST_MB_IN_SLICE_Y_LSBMASK (0x0000007F)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_SLICE0_BE_FIRST_MB_IN_SLICE_Y_SHIFT (7)
+
+// MSVDX_VEC_MPEG4 CR_VEC_MPEG4_BE_SLICE0 BE_FIRST_MB_IN_SLICE_X
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_SLICE0_BE_FIRST_MB_IN_SLICE_X_MASK (0x0000007F)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_SLICE0_BE_FIRST_MB_IN_SLICE_X_LSBMASK (0x0000007F)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_SLICE0_BE_FIRST_MB_IN_SLICE_X_SHIFT (0)
+
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_VOP_TRB_OFFSET (0x0674)
+
+// MSVDX_VEC_MPEG4 CR_VEC_MPEG4_BE_VOP_TRB BE_TRB
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_VOP_TRB_BE_TRB_MASK (0x0000FFFF)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_VOP_TRB_BE_TRB_LSBMASK (0x0000FFFF)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_VOP_TRB_BE_TRB_SHIFT (0)
+
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_VOP_TRD_OFFSET (0x0678)
+
+// MSVDX_VEC_MPEG4 CR_VEC_MPEG4_BE_VOP_TRD BE_TRD
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_VOP_TRD_BE_TRD_MASK (0x0000FFFF)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_VOP_TRD_BE_TRD_LSBMASK (0x0000FFFF)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_VOP_TRD_BE_TRD_SHIFT (0)
+
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_DATAPARTITION0_BASE_ADDR_OFFSET (0x06E4)
+
+// MSVDX_VEC_MPEG4 CR_VEC_MPEG4_BE_DATAPARTITION0_BASE_ADDR BE_DATAPARTITION0_BASE_ADDR
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_DATAPARTITION0_BASE_ADDR_BE_DATAPARTITION0_BASE_ADDR_MASK (0xFFFFF000)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_DATAPARTITION0_BASE_ADDR_BE_DATAPARTITION0_BASE_ADDR_LSBMASK (0x000FFFFF)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_DATAPARTITION0_BASE_ADDR_BE_DATAPARTITION0_BASE_ADDR_SHIFT (12)
+
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_DATAPARTITION1_BASE_ADDR_OFFSET (0x06E8)
+
+// MSVDX_VEC_MPEG4 CR_VEC_MPEG4_BE_DATAPARTITION1_BASE_ADDR BE_DATAPARTITION1_BASE_ADDR
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_DATAPARTITION1_BASE_ADDR_BE_DATAPARTITION1_BASE_ADDR_MASK (0xFFFFF000)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_DATAPARTITION1_BASE_ADDR_BE_DATAPARTITION1_BASE_ADDR_LSBMASK (0x000FFFFF)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_DATAPARTITION1_BASE_ADDR_BE_DATAPARTITION1_BASE_ADDR_SHIFT (12)
+
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_PARAM_BASE_ADDR_OFFSET (0x06EC)
+
+// MSVDX_VEC_MPEG4 CR_VEC_MPEG4_BE_PARAM_BASE_ADDR PARAM_BASE_ADDRESS
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_PARAM_BASE_ADDR_PARAM_BASE_ADDRESS_MASK (0xFFFFF000)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_PARAM_BASE_ADDR_PARAM_BASE_ADDRESS_LSBMASK (0x000FFFFF)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_PARAM_BASE_ADDR_PARAM_BASE_ADDRESS_SHIFT (12)
+
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_DATAPARTITION_VLR_BASE_ADDR_OFFSET (0x06F0)
+
+// MSVDX_VEC_MPEG4 CR_VEC_MPEG4_BE_DATAPARTITION_VLR_BASE_ADDR BE_DATAPARTITION_VLR_BASE_ADDR
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_DATAPARTITION_VLR_BASE_ADDR_BE_DATAPARTITION_VLR_BASE_ADDR_MASK (0x00000FFF)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_DATAPARTITION_VLR_BASE_ADDR_BE_DATAPARTITION_VLR_BASE_ADDR_LSBMASK (0x00000FFF)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_DATAPARTITION_VLR_BASE_ADDR_BE_DATAPARTITION_VLR_BASE_ADDR_SHIFT (0)
+
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_COLPARAM_BASE_ADDR_OFFSET (0x06F8)
+
+// MSVDX_VEC_MPEG4 CR_VEC_MPEG4_BE_COLPARAM_BASE_ADDR COLPARAM_BASE_ADDRESS
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_COLPARAM_BASE_ADDR_COLPARAM_BASE_ADDRESS_MASK (0xFFFFF000)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_COLPARAM_BASE_ADDR_COLPARAM_BASE_ADDRESS_LSBMASK (0x000FFFFF)
+#define MSVDX_VEC_MPEG4_CR_VEC_MPEG4_BE_COLPARAM_BASE_ADDR_COLPARAM_BASE_ADDRESS_SHIFT (12)
+
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __MSVDX_VEC_MPEG4_REG_IO2_H__ */
diff --git a/src/hwdefs/msvdx_vec_reg_io2.h b/src/hwdefs/msvdx_vec_reg_io2.h
new file mode 100644
index 0000000..706998e
--- /dev/null
+++ b/src/hwdefs/msvdx_vec_reg_io2.h
@@ -0,0 +1,1213 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+
+/******************************************************************************
+
+ @File msvdx_vec_reg_io2.h
+
+ @Title MSVDX Offsets
+
+ @Platform </b>\n
+
+ @Description </b>\n This file contains the MSVDX_VEC_REG_IO2_H Defintions.
+
+******************************************************************************/
+#if !defined (__MSVDX_VEC_REG_IO2_H__)
+#define __MSVDX_VEC_REG_IO2_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+#define MSVDX_VEC_CR_VEC_SHIFTREG_CONTROL_OFFSET (0x0018)
+#define MSVDX_VEC_CR_VEC_SHIFTREG_CONTROL_STRIDE (12)
+#define MSVDX_VEC_CR_VEC_SHIFTREG_CONTROL_NO_ENTRIES (4)
+
+// MSVDX_VEC CR_VEC_SHIFTREG_CONTROL SR_MASTER_SELECT
+#define MSVDX_VEC_CR_VEC_SHIFTREG_CONTROL_SR_MASTER_SELECT_MASK (0x00000300)
+#define MSVDX_VEC_CR_VEC_SHIFTREG_CONTROL_SR_MASTER_SELECT_LSBMASK (0x00000003)
+#define MSVDX_VEC_CR_VEC_SHIFTREG_CONTROL_SR_MASTER_SELECT_SHIFT (8)
+
+// MSVDX_VEC CR_VEC_SHIFTREG_CONTROL SR_RBDU_EXTRACT
+#define MSVDX_VEC_CR_VEC_SHIFTREG_CONTROL_SR_RBDU_EXTRACT_MASK (0x00000008)
+#define MSVDX_VEC_CR_VEC_SHIFTREG_CONTROL_SR_RBDU_EXTRACT_LSBMASK (0x00000001)
+#define MSVDX_VEC_CR_VEC_SHIFTREG_CONTROL_SR_RBDU_EXTRACT_SHIFT (3)
+
+// MSVDX_VEC CR_VEC_SHIFTREG_CONTROL SR_READ_MODE
+#define MSVDX_VEC_CR_VEC_SHIFTREG_CONTROL_SR_READ_MODE_MASK (0x00000004)
+#define MSVDX_VEC_CR_VEC_SHIFTREG_CONTROL_SR_READ_MODE_LSBMASK (0x00000001)
+#define MSVDX_VEC_CR_VEC_SHIFTREG_CONTROL_SR_READ_MODE_SHIFT (2)
+
+// MSVDX_VEC CR_VEC_SHIFTREG_CONTROL SR_PREEMPT
+#define MSVDX_VEC_CR_VEC_SHIFTREG_CONTROL_SR_PREEMPT_MASK (0x00000002)
+#define MSVDX_VEC_CR_VEC_SHIFTREG_CONTROL_SR_PREEMPT_LSBMASK (0x00000001)
+#define MSVDX_VEC_CR_VEC_SHIFTREG_CONTROL_SR_PREEMPT_SHIFT (1)
+
+// MSVDX_VEC CR_VEC_SHIFTREG_CONTROL SR_SW_RESET
+#define MSVDX_VEC_CR_VEC_SHIFTREG_CONTROL_SR_SW_RESET_MASK (0x00000001)
+#define MSVDX_VEC_CR_VEC_SHIFTREG_CONTROL_SR_SW_RESET_LSBMASK (0x00000001)
+#define MSVDX_VEC_CR_VEC_SHIFTREG_CONTROL_SR_SW_RESET_SHIFT (0)
+
+#define MSVDX_VEC_CR_VEC_SHIFTREG_BYTE_COUNT_OFFSET (0x001C)
+#define MSVDX_VEC_CR_VEC_SHIFTREG_BYTE_COUNT_STRIDE (12)
+#define MSVDX_VEC_CR_VEC_SHIFTREG_BYTE_COUNT_NO_ENTRIES (4)
+
+// MSVDX_VEC CR_VEC_SHIFTREG_BYTE_COUNT SR_BYTE_COUNT
+#define MSVDX_VEC_CR_VEC_SHIFTREG_BYTE_COUNT_SR_BYTE_COUNT_MASK (0x00FFFFFF)
+#define MSVDX_VEC_CR_VEC_SHIFTREG_BYTE_COUNT_SR_BYTE_COUNT_LSBMASK (0x00FFFFFF)
+#define MSVDX_VEC_CR_VEC_SHIFTREG_BYTE_COUNT_SR_BYTE_COUNT_SHIFT (0)
+
+#define MSVDX_VEC_CR_VEC_SHIFTREG_STREAMIN_OFFSET (0x0020)
+#define MSVDX_VEC_CR_VEC_SHIFTREG_STREAMIN_STRIDE (12)
+#define MSVDX_VEC_CR_VEC_SHIFTREG_STREAMIN_NO_ENTRIES (4)
+
+// MSVDX_VEC CR_VEC_SHIFTREG_STREAMIN SR_STREAMIN
+#define MSVDX_VEC_CR_VEC_SHIFTREG_STREAMIN_SR_STREAMIN_MASK (0x000000FF)
+#define MSVDX_VEC_CR_VEC_SHIFTREG_STREAMIN_SR_STREAMIN_LSBMASK (0x000000FF)
+#define MSVDX_VEC_CR_VEC_SHIFTREG_STREAMIN_SR_STREAMIN_SHIFT (0)
+
+#define MSVDX_VEC_CR_VEC_CONTROL_OFFSET (0x0000)
+
+// MSVDX_VEC CR_VEC_CONTROL BITPLANE_FETCH_ENABLE
+#define MSVDX_VEC_CR_VEC_CONTROL_BITPLANE_FETCH_ENABLE_MASK (0x00010000)
+#define MSVDX_VEC_CR_VEC_CONTROL_BITPLANE_FETCH_ENABLE_LSBMASK (0x00000001)
+#define MSVDX_VEC_CR_VEC_CONTROL_BITPLANE_FETCH_ENABLE_SHIFT (16)
+
+// MSVDX_VEC CR_VEC_CONTROL ENTDEC_ENABLE_BE
+#define MSVDX_VEC_CR_VEC_CONTROL_ENTDEC_ENABLE_BE_MASK (0x00000100)
+#define MSVDX_VEC_CR_VEC_CONTROL_ENTDEC_ENABLE_BE_LSBMASK (0x00000001)
+#define MSVDX_VEC_CR_VEC_CONTROL_ENTDEC_ENABLE_BE_SHIFT (8)
+
+// MSVDX_VEC CR_VEC_CONTROL ENTDEC_BITPLANE_DECODE_ENABLE
+#define MSVDX_VEC_CR_VEC_CONTROL_ENTDEC_BITPLANE_DECODE_ENABLE_MASK (0x00000002)
+#define MSVDX_VEC_CR_VEC_CONTROL_ENTDEC_BITPLANE_DECODE_ENABLE_LSBMASK (0x00000001)
+#define MSVDX_VEC_CR_VEC_CONTROL_ENTDEC_BITPLANE_DECODE_ENABLE_SHIFT (1)
+
+// MSVDX_VEC CR_VEC_CONTROL ENTDEC_ENABLE_FE
+#define MSVDX_VEC_CR_VEC_CONTROL_ENTDEC_ENABLE_FE_MASK (0x00000001)
+#define MSVDX_VEC_CR_VEC_CONTROL_ENTDEC_ENABLE_FE_LSBMASK (0x00000001)
+#define MSVDX_VEC_CR_VEC_CONTROL_ENTDEC_ENABLE_FE_SHIFT (0)
+
+#define MSVDX_VEC_CR_VEC_ENTDEC_FE_CONTROL_OFFSET (0x000C)
+
+// MSVDX_VEC CR_VEC_ENTDEC_FE_CONTROL VLRIF_DMAC_BURST_LENGTH
+#define MSVDX_VEC_CR_VEC_ENTDEC_FE_CONTROL_VLRIF_DMAC_BURST_LENGTH_MASK (0x00000100)
+#define MSVDX_VEC_CR_VEC_ENTDEC_FE_CONTROL_VLRIF_DMAC_BURST_LENGTH_LSBMASK (0x00000001)
+#define MSVDX_VEC_CR_VEC_ENTDEC_FE_CONTROL_VLRIF_DMAC_BURST_LENGTH_SHIFT (8)
+
+// MSVDX_VEC CR_VEC_ENTDEC_FE_CONTROL ENTDEC_FE_PROFILE
+#define MSVDX_VEC_CR_VEC_ENTDEC_FE_CONTROL_ENTDEC_FE_PROFILE_MASK (0x00000018)
+#define MSVDX_VEC_CR_VEC_ENTDEC_FE_CONTROL_ENTDEC_FE_PROFILE_LSBMASK (0x00000003)
+#define MSVDX_VEC_CR_VEC_ENTDEC_FE_CONTROL_ENTDEC_FE_PROFILE_SHIFT (3)
+
+// MSVDX_VEC CR_VEC_ENTDEC_FE_CONTROL ENTDEC_FE_MODE
+#define MSVDX_VEC_CR_VEC_ENTDEC_FE_CONTROL_ENTDEC_FE_MODE_MASK (0x00000007)
+#define MSVDX_VEC_CR_VEC_ENTDEC_FE_CONTROL_ENTDEC_FE_MODE_LSBMASK (0x00000007)
+#define MSVDX_VEC_CR_VEC_ENTDEC_FE_CONTROL_ENTDEC_FE_MODE_SHIFT (0)
+
+#define MSVDX_VEC_CR_VEC_ENTDEC_BE_CONTROL_OFFSET (0x0010)
+
+// MSVDX_VEC CR_VEC_ENTDEC_BE_CONTROL ENTDEC_BE_PROFILE
+#define MSVDX_VEC_CR_VEC_ENTDEC_BE_CONTROL_ENTDEC_BE_PROFILE_MASK (0x00000018)
+#define MSVDX_VEC_CR_VEC_ENTDEC_BE_CONTROL_ENTDEC_BE_PROFILE_LSBMASK (0x00000003)
+#define MSVDX_VEC_CR_VEC_ENTDEC_BE_CONTROL_ENTDEC_BE_PROFILE_SHIFT (3)
+
+// MSVDX_VEC CR_VEC_ENTDEC_BE_CONTROL ENTDEC_BE_MODE
+#define MSVDX_VEC_CR_VEC_ENTDEC_BE_CONTROL_ENTDEC_BE_MODE_MASK (0x00000007)
+#define MSVDX_VEC_CR_VEC_ENTDEC_BE_CONTROL_ENTDEC_BE_MODE_LSBMASK (0x00000007)
+#define MSVDX_VEC_CR_VEC_ENTDEC_BE_CONTROL_ENTDEC_BE_MODE_SHIFT (0)
+
+#define MSVDX_VEC_CR_VEC_SHIFTREG_SELECT_OFFSET (0x0014)
+
+// MSVDX_VEC CR_VEC_SHIFTREG_SELECT SR_ENTDEC_SELECTOR
+#define MSVDX_VEC_CR_VEC_SHIFTREG_SELECT_SR_ENTDEC_SELECTOR_MASK (0x00030000)
+#define MSVDX_VEC_CR_VEC_SHIFTREG_SELECT_SR_ENTDEC_SELECTOR_LSBMASK (0x00000003)
+#define MSVDX_VEC_CR_VEC_SHIFTREG_SELECT_SR_ENTDEC_SELECTOR_SHIFT (16)
+
+// MSVDX_VEC CR_VEC_SHIFTREG_SELECT SR_COPRO_SELECTOR
+#define MSVDX_VEC_CR_VEC_SHIFTREG_SELECT_SR_COPRO_SELECTOR_MASK (0x00000300)
+#define MSVDX_VEC_CR_VEC_SHIFTREG_SELECT_SR_COPRO_SELECTOR_LSBMASK (0x00000003)
+#define MSVDX_VEC_CR_VEC_SHIFTREG_SELECT_SR_COPRO_SELECTOR_SHIFT (8)
+
+// MSVDX_VEC CR_VEC_SHIFTREG_SELECT SR_RESET_METRICS
+#define MSVDX_VEC_CR_VEC_SHIFTREG_SELECT_SR_RESET_METRICS_MASK (0x00000010)
+#define MSVDX_VEC_CR_VEC_SHIFTREG_SELECT_SR_RESET_METRICS_LSBMASK (0x00000001)
+#define MSVDX_VEC_CR_VEC_SHIFTREG_SELECT_SR_RESET_METRICS_SHIFT (4)
+
+// MSVDX_VEC CR_VEC_SHIFTREG_SELECT SR_REGIF_SELECTOR
+#define MSVDX_VEC_CR_VEC_SHIFTREG_SELECT_SR_REGIF_SELECTOR_MASK (0x00000003)
+#define MSVDX_VEC_CR_VEC_SHIFTREG_SELECT_SR_REGIF_SELECTOR_LSBMASK (0x00000003)
+#define MSVDX_VEC_CR_VEC_SHIFTREG_SELECT_SR_REGIF_SELECTOR_SHIFT (0)
+
+#define MSVDX_VEC_CR_VEC_SHIFTREG_COPRO_RESP_MSWRD_OFFSET (0x005C)
+
+// MSVDX_VEC CR_VEC_SHIFTREG_COPRO_RESP_MSWRD SR_RESP_VALID
+#define MSVDX_VEC_CR_VEC_SHIFTREG_COPRO_RESP_MSWRD_SR_RESP_VALID_MASK (0x80000000)
+#define MSVDX_VEC_CR_VEC_SHIFTREG_COPRO_RESP_MSWRD_SR_RESP_VALID_LSBMASK (0x00000001)
+#define MSVDX_VEC_CR_VEC_SHIFTREG_COPRO_RESP_MSWRD_SR_RESP_VALID_SHIFT (31)
+
+// MSVDX_VEC CR_VEC_SHIFTREG_COPRO_RESP_MSWRD SR_BYTE_ALIGNED
+#define MSVDX_VEC_CR_VEC_SHIFTREG_COPRO_RESP_MSWRD_SR_BYTE_ALIGNED_MASK (0x00000010)
+#define MSVDX_VEC_CR_VEC_SHIFTREG_COPRO_RESP_MSWRD_SR_BYTE_ALIGNED_LSBMASK (0x00000001)
+#define MSVDX_VEC_CR_VEC_SHIFTREG_COPRO_RESP_MSWRD_SR_BYTE_ALIGNED_SHIFT (4)
+
+// MSVDX_VEC CR_VEC_SHIFTREG_COPRO_RESP_MSWRD SR_MORE_RBSP
+#define MSVDX_VEC_CR_VEC_SHIFTREG_COPRO_RESP_MSWRD_SR_MORE_RBSP_MASK (0x00000008)
+#define MSVDX_VEC_CR_VEC_SHIFTREG_COPRO_RESP_MSWRD_SR_MORE_RBSP_LSBMASK (0x00000001)
+#define MSVDX_VEC_CR_VEC_SHIFTREG_COPRO_RESP_MSWRD_SR_MORE_RBSP_SHIFT (3)
+
+// MSVDX_VEC CR_VEC_SHIFTREG_COPRO_RESP_MSWRD SR_RESP_EXPG_ERROR
+#define MSVDX_VEC_CR_VEC_SHIFTREG_COPRO_RESP_MSWRD_SR_RESP_EXPG_ERROR_MASK (0x00000004)
+#define MSVDX_VEC_CR_VEC_SHIFTREG_COPRO_RESP_MSWRD_SR_RESP_EXPG_ERROR_LSBMASK (0x00000001)
+#define MSVDX_VEC_CR_VEC_SHIFTREG_COPRO_RESP_MSWRD_SR_RESP_EXPG_ERROR_SHIFT (2)
+
+// MSVDX_VEC CR_VEC_SHIFTREG_COPRO_RESP_MSWRD SR_RESP_SCP_OR_EOD
+#define MSVDX_VEC_CR_VEC_SHIFTREG_COPRO_RESP_MSWRD_SR_RESP_SCP_OR_EOD_MASK (0x00000002)
+#define MSVDX_VEC_CR_VEC_SHIFTREG_COPRO_RESP_MSWRD_SR_RESP_SCP_OR_EOD_LSBMASK (0x00000001)
+#define MSVDX_VEC_CR_VEC_SHIFTREG_COPRO_RESP_MSWRD_SR_RESP_SCP_OR_EOD_SHIFT (1)
+
+// MSVDX_VEC CR_VEC_SHIFTREG_COPRO_RESP_MSWRD SR_RESP_PREEMPTED
+#define MSVDX_VEC_CR_VEC_SHIFTREG_COPRO_RESP_MSWRD_SR_RESP_PREEMPTED_MASK (0x00000001)
+#define MSVDX_VEC_CR_VEC_SHIFTREG_COPRO_RESP_MSWRD_SR_RESP_PREEMPTED_LSBMASK (0x00000001)
+#define MSVDX_VEC_CR_VEC_SHIFTREG_COPRO_RESP_MSWRD_SR_RESP_PREEMPTED_SHIFT (0)
+
+#define MSVDX_VEC_CR_VEC_SHIFTREG_COPRO_RESP_LSWRD_OFFSET (0x0060)
+
+// MSVDX_VEC CR_VEC_SHIFTREG_COPRO_RESP_LSWRD SR_RESP_VALUE
+#define MSVDX_VEC_CR_VEC_SHIFTREG_COPRO_RESP_LSWRD_SR_RESP_VALUE_MASK (0xFFFFFFFF)
+#define MSVDX_VEC_CR_VEC_SHIFTREG_COPRO_RESP_LSWRD_SR_RESP_VALUE_LSBMASK (0xFFFFFFFF)
+#define MSVDX_VEC_CR_VEC_SHIFTREG_COPRO_RESP_LSWRD_SR_RESP_VALUE_SHIFT (0)
+
+#define MSVDX_VEC_CR_VEC_SHIFTREG_COPRO_CMD_MSWRD_OFFSET (0x0064)
+
+// MSVDX_VEC CR_VEC_SHIFTREG_COPRO_CMD_MSWRD SR_PRE_FLUSH
+#define MSVDX_VEC_CR_VEC_SHIFTREG_COPRO_CMD_MSWRD_SR_PRE_FLUSH_MASK (0x00001F00)
+#define MSVDX_VEC_CR_VEC_SHIFTREG_COPRO_CMD_MSWRD_SR_PRE_FLUSH_LSBMASK (0x0000001F)
+#define MSVDX_VEC_CR_VEC_SHIFTREG_COPRO_CMD_MSWRD_SR_PRE_FLUSH_SHIFT (8)
+
+// MSVDX_VEC CR_VEC_SHIFTREG_COPRO_CMD_MSWRD SR_READ_PEEK
+#define MSVDX_VEC_CR_VEC_SHIFTREG_COPRO_CMD_MSWRD_SR_READ_PEEK_MASK (0x000000F8)
+#define MSVDX_VEC_CR_VEC_SHIFTREG_COPRO_CMD_MSWRD_SR_READ_PEEK_LSBMASK (0x0000001F)
+#define MSVDX_VEC_CR_VEC_SHIFTREG_COPRO_CMD_MSWRD_SR_READ_PEEK_SHIFT (3)
+
+// MSVDX_VEC CR_VEC_SHIFTREG_COPRO_CMD_MSWRD SR_ACCESS_MODE
+#define MSVDX_VEC_CR_VEC_SHIFTREG_COPRO_CMD_MSWRD_SR_ACCESS_MODE_MASK (0x00000007)
+#define MSVDX_VEC_CR_VEC_SHIFTREG_COPRO_CMD_MSWRD_SR_ACCESS_MODE_LSBMASK (0x00000007)
+#define MSVDX_VEC_CR_VEC_SHIFTREG_COPRO_CMD_MSWRD_SR_ACCESS_MODE_SHIFT (0)
+
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTROL0_OFFSET (0x0068)
+
+// MSVDX_VEC CR_VEC_RENDEC_CONTROL0 RENDEC_DEC_INITIALISE
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTROL0_RENDEC_DEC_INITIALISE_MASK (0x00000040)
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTROL0_RENDEC_DEC_INITIALISE_LSBMASK (0x00000001)
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTROL0_RENDEC_DEC_INITIALISE_SHIFT (6)
+
+// MSVDX_VEC CR_VEC_RENDEC_CONTROL0 RENDEC_ENC_INITIALISE
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTROL0_RENDEC_ENC_INITIALISE_MASK (0x00000020)
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTROL0_RENDEC_ENC_INITIALISE_LSBMASK (0x00000001)
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTROL0_RENDEC_ENC_INITIALISE_SHIFT (5)
+
+// MSVDX_VEC CR_VEC_RENDEC_CONTROL0 RENDEC_ENC_ERROR_RECOVERY
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTROL0_RENDEC_ENC_ERROR_RECOVERY_MASK (0x00000010)
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTROL0_RENDEC_ENC_ERROR_RECOVERY_LSBMASK (0x00000001)
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTROL0_RENDEC_ENC_ERROR_RECOVERY_SHIFT (4)
+
+// MSVDX_VEC CR_VEC_RENDEC_CONTROL0 RENDEC_MTX_BLOCK_SEARCH
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTROL0_RENDEC_MTX_BLOCK_SEARCH_MASK (0x00000008)
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTROL0_RENDEC_MTX_BLOCK_SEARCH_LSBMASK (0x00000001)
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTROL0_RENDEC_MTX_BLOCK_SEARCH_SHIFT (3)
+
+// MSVDX_VEC CR_VEC_RENDEC_CONTROL0 RENDEC_SLICE_SKIP
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTROL0_RENDEC_SLICE_SKIP_MASK (0x00000004)
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTROL0_RENDEC_SLICE_SKIP_LSBMASK (0x00000001)
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTROL0_RENDEC_SLICE_SKIP_SHIFT (2)
+
+// MSVDX_VEC CR_VEC_RENDEC_CONTROL0 RENDEC_FLUSH
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTROL0_RENDEC_FLUSH_MASK (0x00000002)
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTROL0_RENDEC_FLUSH_LSBMASK (0x00000001)
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTROL0_RENDEC_FLUSH_SHIFT (1)
+
+// MSVDX_VEC CR_VEC_RENDEC_CONTROL0 RENDEC_INITIALISE
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTROL0_RENDEC_INITIALISE_MASK (0x00000001)
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTROL0_RENDEC_INITIALISE_LSBMASK (0x00000001)
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTROL0_RENDEC_INITIALISE_SHIFT (0)
+
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTROL1_OFFSET (0x006C)
+
+// MSVDX_VEC CR_VEC_RENDEC_CONTROL1 RENDEC_DEC_DISABLE
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTROL1_RENDEC_DEC_DISABLE_MASK (0x08000000)
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTROL1_RENDEC_DEC_DISABLE_LSBMASK (0x00000001)
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTROL1_RENDEC_DEC_DISABLE_SHIFT (27)
+
+// MSVDX_VEC CR_VEC_RENDEC_CONTROL1 RENDEC_DEC_SLICE_MODE
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTROL1_RENDEC_DEC_SLICE_MODE_MASK (0x04000000)
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTROL1_RENDEC_DEC_SLICE_MODE_LSBMASK (0x00000001)
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTROL1_RENDEC_DEC_SLICE_MODE_SHIFT (26)
+
+// MSVDX_VEC CR_VEC_RENDEC_CONTROL1 RENDEC_STREAM_END
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTROL1_RENDEC_STREAM_END_MASK (0x02000000)
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTROL1_RENDEC_STREAM_END_LSBMASK (0x00000001)
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTROL1_RENDEC_STREAM_END_SHIFT (25)
+
+// MSVDX_VEC CR_VEC_RENDEC_CONTROL1 RENDEC_EXTERNAL_MEMORY
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTROL1_RENDEC_EXTERNAL_MEMORY_MASK (0x01000000)
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTROL1_RENDEC_EXTERNAL_MEMORY_LSBMASK (0x00000001)
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTROL1_RENDEC_EXTERNAL_MEMORY_SHIFT (24)
+
+// MSVDX_VEC CR_VEC_RENDEC_CONTROL1 RENDEC_BURST_SIZE_W
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTROL1_RENDEC_BURST_SIZE_W_MASK (0x000C0000)
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTROL1_RENDEC_BURST_SIZE_W_LSBMASK (0x00000003)
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTROL1_RENDEC_BURST_SIZE_W_SHIFT (18)
+
+// MSVDX_VEC CR_VEC_RENDEC_CONTROL1 RENDEC_BURST_SIZE_R
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTROL1_RENDEC_BURST_SIZE_R_MASK (0x00030000)
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTROL1_RENDEC_BURST_SIZE_R_LSBMASK (0x00000003)
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTROL1_RENDEC_BURST_SIZE_R_SHIFT (16)
+
+// MSVDX_VEC CR_VEC_RENDEC_CONTROL1 RENDEC_DECODE_START_SIZE
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTROL1_RENDEC_DECODE_START_SIZE_MASK (0x000000FF)
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTROL1_RENDEC_DECODE_START_SIZE_LSBMASK (0x000000FF)
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTROL1_RENDEC_DECODE_START_SIZE_SHIFT (0)
+
+#define MSVDX_VEC_CR_VEC_RENDEC_BUFFER_SIZE_OFFSET (0x0070)
+
+// MSVDX_VEC CR_VEC_RENDEC_BUFFER_SIZE RENDEC_BUFFER_SIZE1
+#define MSVDX_VEC_CR_VEC_RENDEC_BUFFER_SIZE_RENDEC_BUFFER_SIZE1_MASK (0xFFFF0000)
+#define MSVDX_VEC_CR_VEC_RENDEC_BUFFER_SIZE_RENDEC_BUFFER_SIZE1_LSBMASK (0x0000FFFF)
+#define MSVDX_VEC_CR_VEC_RENDEC_BUFFER_SIZE_RENDEC_BUFFER_SIZE1_SHIFT (16)
+
+// MSVDX_VEC CR_VEC_RENDEC_BUFFER_SIZE RENDEC_BUFFER_SIZE0
+#define MSVDX_VEC_CR_VEC_RENDEC_BUFFER_SIZE_RENDEC_BUFFER_SIZE0_MASK (0x0000FFFF)
+#define MSVDX_VEC_CR_VEC_RENDEC_BUFFER_SIZE_RENDEC_BUFFER_SIZE0_LSBMASK (0x0000FFFF)
+#define MSVDX_VEC_CR_VEC_RENDEC_BUFFER_SIZE_RENDEC_BUFFER_SIZE0_SHIFT (0)
+
+#define MSVDX_VEC_CR_VEC_RENDEC_BASE_ADDR0_OFFSET (0x0074)
+
+// MSVDX_VEC CR_VEC_RENDEC_BASE_ADDR0 RENDEC_BASE_ADDR0
+#define MSVDX_VEC_CR_VEC_RENDEC_BASE_ADDR0_RENDEC_BASE_ADDR0_MASK (0xFFFFF000)
+#define MSVDX_VEC_CR_VEC_RENDEC_BASE_ADDR0_RENDEC_BASE_ADDR0_LSBMASK (0x000FFFFF)
+#define MSVDX_VEC_CR_VEC_RENDEC_BASE_ADDR0_RENDEC_BASE_ADDR0_SHIFT (12)
+
+#define MSVDX_VEC_CR_VEC_RENDEC_BASE_ADDR1_OFFSET (0x0078)
+
+// MSVDX_VEC CR_VEC_RENDEC_BASE_ADDR1 RENDEC_BASE_ADDR1
+#define MSVDX_VEC_CR_VEC_RENDEC_BASE_ADDR1_RENDEC_BASE_ADDR1_MASK (0xFFFFF000)
+#define MSVDX_VEC_CR_VEC_RENDEC_BASE_ADDR1_RENDEC_BASE_ADDR1_LSBMASK (0x000FFFFF)
+#define MSVDX_VEC_CR_VEC_RENDEC_BASE_ADDR1_RENDEC_BASE_ADDR1_SHIFT (12)
+
+#define MSVDX_VEC_CR_VEC_RENDEC_WRITE_ADDR0_OFFSET (0x007C)
+
+// MSVDX_VEC CR_VEC_RENDEC_WRITE_ADDR0 RENDEC_WRITE_ADDR0
+#define MSVDX_VEC_CR_VEC_RENDEC_WRITE_ADDR0_RENDEC_WRITE_ADDR0_MASK (0x0FFFFFF0)
+#define MSVDX_VEC_CR_VEC_RENDEC_WRITE_ADDR0_RENDEC_WRITE_ADDR0_LSBMASK (0x00FFFFFF)
+#define MSVDX_VEC_CR_VEC_RENDEC_WRITE_ADDR0_RENDEC_WRITE_ADDR0_SHIFT (4)
+
+#define MSVDX_VEC_CR_VEC_RENDEC_WRITE_ADDR1_OFFSET (0x0080)
+
+// MSVDX_VEC CR_VEC_RENDEC_WRITE_ADDR1 RENDEC_WRITE_ADDR1
+#define MSVDX_VEC_CR_VEC_RENDEC_WRITE_ADDR1_RENDEC_WRITE_ADDR1_MASK (0x0FFFFFF0)
+#define MSVDX_VEC_CR_VEC_RENDEC_WRITE_ADDR1_RENDEC_WRITE_ADDR1_LSBMASK (0x00FFFFFF)
+#define MSVDX_VEC_CR_VEC_RENDEC_WRITE_ADDR1_RENDEC_WRITE_ADDR1_SHIFT (4)
+
+#define MSVDX_VEC_CR_VEC_RENDEC_READ_ADDR0_OFFSET (0x0084)
+
+// MSVDX_VEC CR_VEC_RENDEC_READ_ADDR0 RENDEC_READ_ADDR0
+#define MSVDX_VEC_CR_VEC_RENDEC_READ_ADDR0_RENDEC_READ_ADDR0_MASK (0x0FFFFFF0)
+#define MSVDX_VEC_CR_VEC_RENDEC_READ_ADDR0_RENDEC_READ_ADDR0_LSBMASK (0x00FFFFFF)
+#define MSVDX_VEC_CR_VEC_RENDEC_READ_ADDR0_RENDEC_READ_ADDR0_SHIFT (4)
+
+#define MSVDX_VEC_CR_VEC_RENDEC_READ_ADDR1_OFFSET (0x0088)
+
+// MSVDX_VEC CR_VEC_RENDEC_READ_ADDR1 RENDEC_READ_ADDR1
+#define MSVDX_VEC_CR_VEC_RENDEC_READ_ADDR1_RENDEC_READ_ADDR1_MASK (0x0FFFFFF0)
+#define MSVDX_VEC_CR_VEC_RENDEC_READ_ADDR1_RENDEC_READ_ADDR1_LSBMASK (0x00FFFFFF)
+#define MSVDX_VEC_CR_VEC_RENDEC_READ_ADDR1_RENDEC_READ_ADDR1_SHIFT (4)
+
+#define MSVDX_VEC_CR_VEC_RENDEC_DATA_SIZE0_OFFSET (0x008C)
+
+// MSVDX_VEC CR_VEC_RENDEC_DATA_SIZE0 RENDEC_DATA_SIZE0
+#define MSVDX_VEC_CR_VEC_RENDEC_DATA_SIZE0_RENDEC_DATA_SIZE0_MASK (0x0FFFFFFF)
+#define MSVDX_VEC_CR_VEC_RENDEC_DATA_SIZE0_RENDEC_DATA_SIZE0_LSBMASK (0x0FFFFFFF)
+#define MSVDX_VEC_CR_VEC_RENDEC_DATA_SIZE0_RENDEC_DATA_SIZE0_SHIFT (0)
+
+#define MSVDX_VEC_CR_VEC_RENDEC_DATA_SIZE1_OFFSET (0x0090)
+
+// MSVDX_VEC CR_VEC_RENDEC_DATA_SIZE1 RENDEC_DATA_SIZE1
+#define MSVDX_VEC_CR_VEC_RENDEC_DATA_SIZE1_RENDEC_DATA_SIZE1_MASK (0x0FFFFFFF)
+#define MSVDX_VEC_CR_VEC_RENDEC_DATA_SIZE1_RENDEC_DATA_SIZE1_LSBMASK (0x0FFFFFFF)
+#define MSVDX_VEC_CR_VEC_RENDEC_DATA_SIZE1_RENDEC_DATA_SIZE1_SHIFT (0)
+
+#define MSVDX_VEC_CR_VEC_RENDEC_WRITE_DATA_OFFSET (0x0094)
+
+// MSVDX_VEC CR_VEC_RENDEC_WRITE_DATA RENDEC_WRITE_DATA
+#define MSVDX_VEC_CR_VEC_RENDEC_WRITE_DATA_RENDEC_WRITE_DATA_MASK (0xFFFFFFFF)
+#define MSVDX_VEC_CR_VEC_RENDEC_WRITE_DATA_RENDEC_WRITE_DATA_LSBMASK (0xFFFFFFFF)
+#define MSVDX_VEC_CR_VEC_RENDEC_WRITE_DATA_RENDEC_WRITE_DATA_SHIFT (0)
+
+#define MSVDX_VEC_CR_VEC_RENDEC_READ_DATA_OFFSET (0x0098)
+
+// MSVDX_VEC CR_VEC_RENDEC_READ_DATA RENDEC_READ_DATA
+#define MSVDX_VEC_CR_VEC_RENDEC_READ_DATA_RENDEC_READ_DATA_MASK (0xFFFFFFFF)
+#define MSVDX_VEC_CR_VEC_RENDEC_READ_DATA_RENDEC_READ_DATA_LSBMASK (0xFFFFFFFF)
+#define MSVDX_VEC_CR_VEC_RENDEC_READ_DATA_RENDEC_READ_DATA_SHIFT (0)
+
+#define MSVDX_VEC_CR_VEC_RENDEC_STATUS_OFFSET (0x009C)
+
+// MSVDX_VEC CR_VEC_RENDEC_STATUS RENDEC_DECODED_DATA
+#define MSVDX_VEC_CR_VEC_RENDEC_STATUS_RENDEC_DECODED_DATA_MASK (0xFFFF0000)
+#define MSVDX_VEC_CR_VEC_RENDEC_STATUS_RENDEC_DECODED_DATA_LSBMASK (0x0000FFFF)
+#define MSVDX_VEC_CR_VEC_RENDEC_STATUS_RENDEC_DECODED_DATA_SHIFT (16)
+
+// MSVDX_VEC CR_VEC_RENDEC_STATUS RENDEC_ENC_BUFF_STATUS
+#define MSVDX_VEC_CR_VEC_RENDEC_STATUS_RENDEC_ENC_BUFF_STATUS_MASK (0x00000800)
+#define MSVDX_VEC_CR_VEC_RENDEC_STATUS_RENDEC_ENC_BUFF_STATUS_LSBMASK (0x00000001)
+#define MSVDX_VEC_CR_VEC_RENDEC_STATUS_RENDEC_ENC_BUFF_STATUS_SHIFT (11)
+
+// MSVDX_VEC CR_VEC_RENDEC_STATUS RENDEC_ENC_CTRL_STATUS
+#define MSVDX_VEC_CR_VEC_RENDEC_STATUS_RENDEC_ENC_CTRL_STATUS_MASK (0x00000400)
+#define MSVDX_VEC_CR_VEC_RENDEC_STATUS_RENDEC_ENC_CTRL_STATUS_LSBMASK (0x00000001)
+#define MSVDX_VEC_CR_VEC_RENDEC_STATUS_RENDEC_ENC_CTRL_STATUS_SHIFT (10)
+
+// MSVDX_VEC CR_VEC_RENDEC_STATUS RENDEC_ERROR_FLAG
+#define MSVDX_VEC_CR_VEC_RENDEC_STATUS_RENDEC_ERROR_FLAG_MASK (0x00000200)
+#define MSVDX_VEC_CR_VEC_RENDEC_STATUS_RENDEC_ERROR_FLAG_LSBMASK (0x00000001)
+#define MSVDX_VEC_CR_VEC_RENDEC_STATUS_RENDEC_ERROR_FLAG_SHIFT (9)
+
+// MSVDX_VEC CR_VEC_RENDEC_STATUS RENDEC_HEADER_FLAG
+#define MSVDX_VEC_CR_VEC_RENDEC_STATUS_RENDEC_HEADER_FLAG_MASK (0x00000100)
+#define MSVDX_VEC_CR_VEC_RENDEC_STATUS_RENDEC_HEADER_FLAG_LSBMASK (0x00000001)
+#define MSVDX_VEC_CR_VEC_RENDEC_STATUS_RENDEC_HEADER_FLAG_SHIFT (8)
+
+// MSVDX_VEC CR_VEC_RENDEC_STATUS RENDEC_DFIFO1_STATUS
+#define MSVDX_VEC_CR_VEC_RENDEC_STATUS_RENDEC_DFIFO1_STATUS_MASK (0x00000008)
+#define MSVDX_VEC_CR_VEC_RENDEC_STATUS_RENDEC_DFIFO1_STATUS_LSBMASK (0x00000001)
+#define MSVDX_VEC_CR_VEC_RENDEC_STATUS_RENDEC_DFIFO1_STATUS_SHIFT (3)
+
+// MSVDX_VEC CR_VEC_RENDEC_STATUS RENDEC_DFIFO0_STATUS
+#define MSVDX_VEC_CR_VEC_RENDEC_STATUS_RENDEC_DFIFO0_STATUS_MASK (0x00000004)
+#define MSVDX_VEC_CR_VEC_RENDEC_STATUS_RENDEC_DFIFO0_STATUS_LSBMASK (0x00000001)
+#define MSVDX_VEC_CR_VEC_RENDEC_STATUS_RENDEC_DFIFO0_STATUS_SHIFT (2)
+
+// MSVDX_VEC CR_VEC_RENDEC_STATUS RENDEC_EFIFO1_STATUS
+#define MSVDX_VEC_CR_VEC_RENDEC_STATUS_RENDEC_EFIFO1_STATUS_MASK (0x00000002)
+#define MSVDX_VEC_CR_VEC_RENDEC_STATUS_RENDEC_EFIFO1_STATUS_LSBMASK (0x00000001)
+#define MSVDX_VEC_CR_VEC_RENDEC_STATUS_RENDEC_EFIFO1_STATUS_SHIFT (1)
+
+// MSVDX_VEC CR_VEC_RENDEC_STATUS RENDEC_EFIFO0_STATUS
+#define MSVDX_VEC_CR_VEC_RENDEC_STATUS_RENDEC_EFIFO0_STATUS_MASK (0x00000001)
+#define MSVDX_VEC_CR_VEC_RENDEC_STATUS_RENDEC_EFIFO0_STATUS_LSBMASK (0x00000001)
+#define MSVDX_VEC_CR_VEC_RENDEC_STATUS_RENDEC_EFIFO0_STATUS_SHIFT (0)
+
+#define MSVDX_VEC_CR_VEC_RENDEC_SLICE_COUNT_OFFSET (0x00A0)
+
+// MSVDX_VEC CR_VEC_RENDEC_SLICE_COUNT RENDEC_SLICE_COUNT
+#define MSVDX_VEC_CR_VEC_RENDEC_SLICE_COUNT_RENDEC_SLICE_COUNT_MASK (0x000FFFFF)
+#define MSVDX_VEC_CR_VEC_RENDEC_SLICE_COUNT_RENDEC_SLICE_COUNT_LSBMASK (0x000FFFFF)
+#define MSVDX_VEC_CR_VEC_RENDEC_SLICE_COUNT_RENDEC_SLICE_COUNT_SHIFT (0)
+
+#define MSVDX_VEC_CR_VEC_ENTDEC_INFORMATION_OFFSET (0x00AC)
+
+// MSVDX_VEC CR_VEC_ENTDEC_INFORMATION FE_ENTDEC_LATEST_MB_ADDR_Y
+#define MSVDX_VEC_CR_VEC_ENTDEC_INFORMATION_FE_ENTDEC_LATEST_MB_ADDR_Y_MASK (0x7F000000)
+#define MSVDX_VEC_CR_VEC_ENTDEC_INFORMATION_FE_ENTDEC_LATEST_MB_ADDR_Y_LSBMASK (0x0000007F)
+#define MSVDX_VEC_CR_VEC_ENTDEC_INFORMATION_FE_ENTDEC_LATEST_MB_ADDR_Y_SHIFT (24)
+
+// MSVDX_VEC CR_VEC_ENTDEC_INFORMATION FE_ENTDEC_LATEST_MB_ADDR_X
+#define MSVDX_VEC_CR_VEC_ENTDEC_INFORMATION_FE_ENTDEC_LATEST_MB_ADDR_X_MASK (0x007F0000)
+#define MSVDX_VEC_CR_VEC_ENTDEC_INFORMATION_FE_ENTDEC_LATEST_MB_ADDR_X_LSBMASK (0x0000007F)
+#define MSVDX_VEC_CR_VEC_ENTDEC_INFORMATION_FE_ENTDEC_LATEST_MB_ADDR_X_SHIFT (16)
+
+// MSVDX_VEC CR_VEC_ENTDEC_INFORMATION FE_ENTDEC_STATUS
+#define MSVDX_VEC_CR_VEC_ENTDEC_INFORMATION_FE_ENTDEC_STATUS_MASK (0x0000003F)
+#define MSVDX_VEC_CR_VEC_ENTDEC_INFORMATION_FE_ENTDEC_STATUS_LSBMASK (0x0000003F)
+#define MSVDX_VEC_CR_VEC_ENTDEC_INFORMATION_FE_ENTDEC_STATUS_SHIFT (0)
+
+#define MSVDX_VEC_CR_VEC_DIRECT_MODE_CONTROL_OFFSET (0x00B8)
+
+// MSVDX_VEC CR_VEC_DIRECT_MODE_CONTROL DIRECT_MODE
+#define MSVDX_VEC_CR_VEC_DIRECT_MODE_CONTROL_DIRECT_MODE_MASK (0x00000007)
+#define MSVDX_VEC_CR_VEC_DIRECT_MODE_CONTROL_DIRECT_MODE_LSBMASK (0x00000007)
+#define MSVDX_VEC_CR_VEC_DIRECT_MODE_CONTROL_DIRECT_MODE_SHIFT (0)
+
+#define MSVDX_VEC_CR_VEC_DIRECT_MODE_DATA0_OFFSET (0x00BC)
+
+// MSVDX_VEC CR_VEC_DIRECT_MODE_DATA0 DIRECT_DATA0
+#define MSVDX_VEC_CR_VEC_DIRECT_MODE_DATA0_DIRECT_DATA0_MASK (0xFFFFFFFF)
+#define MSVDX_VEC_CR_VEC_DIRECT_MODE_DATA0_DIRECT_DATA0_LSBMASK (0xFFFFFFFF)
+#define MSVDX_VEC_CR_VEC_DIRECT_MODE_DATA0_DIRECT_DATA0_SHIFT (0)
+
+#define MSVDX_VEC_CR_VEC_COMMAND_SIGNATURE_OFFSET (0x00C0)
+
+// MSVDX_VEC CR_VEC_COMMAND_SIGNATURE COMMAND_SIGNATURE
+#define MSVDX_VEC_CR_VEC_COMMAND_SIGNATURE_COMMAND_SIGNATURE_MASK (0xFFFFFFFF)
+#define MSVDX_VEC_CR_VEC_COMMAND_SIGNATURE_COMMAND_SIGNATURE_LSBMASK (0xFFFFFFFF)
+#define MSVDX_VEC_CR_VEC_COMMAND_SIGNATURE_COMMAND_SIGNATURE_SHIFT (0)
+
+#define MSVDX_VEC_CR_VEC_IXFORM_SIGNATURE_OFFSET (0x00C4)
+
+// MSVDX_VEC CR_VEC_IXFORM_SIGNATURE IXFORM_SIGNATURE
+#define MSVDX_VEC_CR_VEC_IXFORM_SIGNATURE_IXFORM_SIGNATURE_MASK (0xFFFFFFFF)
+#define MSVDX_VEC_CR_VEC_IXFORM_SIGNATURE_IXFORM_SIGNATURE_LSBMASK (0xFFFFFFFF)
+#define MSVDX_VEC_CR_VEC_IXFORM_SIGNATURE_IXFORM_SIGNATURE_SHIFT (0)
+
+#define MSVDX_VEC_CR_VEC_ISCAN_MBPARAMS0_OFFSET (0x00C8)
+
+// MSVDX_VEC CR_VEC_ISCAN_MBPARAMS0 IS_H264_MB_FIELD_DECODING_FLAG
+#define MSVDX_VEC_CR_VEC_ISCAN_MBPARAMS0_IS_H264_MB_FIELD_DECODING_FLAG_MASK (0x00000002)
+#define MSVDX_VEC_CR_VEC_ISCAN_MBPARAMS0_IS_H264_MB_FIELD_DECODING_FLAG_LSBMASK (0x00000001)
+#define MSVDX_VEC_CR_VEC_ISCAN_MBPARAMS0_IS_H264_MB_FIELD_DECODING_FLAG_SHIFT (1)
+
+// MSVDX_VEC CR_VEC_ISCAN_MBPARAMS0 IS_AC_PRED_FLAG
+#define MSVDX_VEC_CR_VEC_ISCAN_MBPARAMS0_IS_AC_PRED_FLAG_MASK (0x00000001)
+#define MSVDX_VEC_CR_VEC_ISCAN_MBPARAMS0_IS_AC_PRED_FLAG_LSBMASK (0x00000001)
+#define MSVDX_VEC_CR_VEC_ISCAN_MBPARAMS0_IS_AC_PRED_FLAG_SHIFT (0)
+
+#define MSVDX_VEC_CR_VEC_IQ_MBPARAMS0_OFFSET (0x00CC)
+
+// MSVDX_VEC CR_VEC_IQ_MBPARAMS0 IQ_EMPTY_MB_ABOVE_FLAG
+#define MSVDX_VEC_CR_VEC_IQ_MBPARAMS0_IQ_EMPTY_MB_ABOVE_FLAG_MASK (0x40000000)
+#define MSVDX_VEC_CR_VEC_IQ_MBPARAMS0_IQ_EMPTY_MB_ABOVE_FLAG_LSBMASK (0x00000001)
+#define MSVDX_VEC_CR_VEC_IQ_MBPARAMS0_IQ_EMPTY_MB_ABOVE_FLAG_SHIFT (30)
+
+// MSVDX_VEC CR_VEC_IQ_MBPARAMS0 IQ_EMPTY_MB_LEFT_FLAG
+#define MSVDX_VEC_CR_VEC_IQ_MBPARAMS0_IQ_EMPTY_MB_LEFT_FLAG_MASK (0x20000000)
+#define MSVDX_VEC_CR_VEC_IQ_MBPARAMS0_IQ_EMPTY_MB_LEFT_FLAG_LSBMASK (0x00000001)
+#define MSVDX_VEC_CR_VEC_IQ_MBPARAMS0_IQ_EMPTY_MB_LEFT_FLAG_SHIFT (29)
+
+// MSVDX_VEC CR_VEC_IQ_MBPARAMS0 IQ_EMPTY_MB_ABOVELEFT_FLAG
+#define MSVDX_VEC_CR_VEC_IQ_MBPARAMS0_IQ_EMPTY_MB_ABOVELEFT_FLAG_MASK (0x10000000)
+#define MSVDX_VEC_CR_VEC_IQ_MBPARAMS0_IQ_EMPTY_MB_ABOVELEFT_FLAG_LSBMASK (0x00000001)
+#define MSVDX_VEC_CR_VEC_IQ_MBPARAMS0_IQ_EMPTY_MB_ABOVELEFT_FLAG_SHIFT (28)
+
+// MSVDX_VEC CR_VEC_IQ_MBPARAMS0 IQ_AC_PRED_FLAG
+#define MSVDX_VEC_CR_VEC_IQ_MBPARAMS0_IQ_AC_PRED_FLAG_MASK (0x01000000)
+#define MSVDX_VEC_CR_VEC_IQ_MBPARAMS0_IQ_AC_PRED_FLAG_LSBMASK (0x00000001)
+#define MSVDX_VEC_CR_VEC_IQ_MBPARAMS0_IQ_AC_PRED_FLAG_SHIFT (24)
+
+// MSVDX_VEC CR_VEC_IQ_MBPARAMS0 IQ_H264_QPCR
+#define MSVDX_VEC_CR_VEC_IQ_MBPARAMS0_IQ_H264_QPCR_MASK (0x003F0000)
+#define MSVDX_VEC_CR_VEC_IQ_MBPARAMS0_IQ_H264_QPCR_LSBMASK (0x0000003F)
+#define MSVDX_VEC_CR_VEC_IQ_MBPARAMS0_IQ_H264_QPCR_SHIFT (16)
+
+// MSVDX_VEC CR_VEC_IQ_MBPARAMS0 IQ_H264_QPCB
+#define MSVDX_VEC_CR_VEC_IQ_MBPARAMS0_IQ_H264_QPCB_MASK (0x00003F00)
+#define MSVDX_VEC_CR_VEC_IQ_MBPARAMS0_IQ_H264_QPCB_LSBMASK (0x0000003F)
+#define MSVDX_VEC_CR_VEC_IQ_MBPARAMS0_IQ_H264_QPCB_SHIFT (8)
+
+// MSVDX_VEC CR_VEC_IQ_MBPARAMS0 IQ_QUANTISER_SCALE
+#define MSVDX_VEC_CR_VEC_IQ_MBPARAMS0_IQ_QUANTISER_SCALE_MASK (0x0000003F)
+#define MSVDX_VEC_CR_VEC_IQ_MBPARAMS0_IQ_QUANTISER_SCALE_LSBMASK (0x0000003F)
+#define MSVDX_VEC_CR_VEC_IQ_MBPARAMS0_IQ_QUANTISER_SCALE_SHIFT (0)
+
+#define MSVDX_VEC_CR_VEC_IQ_MBPARAMS1_OFFSET (0x00D0)
+
+// MSVDX_VEC CR_VEC_IQ_MBPARAMS1 IQ_VR_ABOVELEFTMB_BASEADDR
+#define MSVDX_VEC_CR_VEC_IQ_MBPARAMS1_IQ_VR_ABOVELEFTMB_BASEADDR_MASK (0x3FF00000)
+#define MSVDX_VEC_CR_VEC_IQ_MBPARAMS1_IQ_VR_ABOVELEFTMB_BASEADDR_LSBMASK (0x000003FF)
+#define MSVDX_VEC_CR_VEC_IQ_MBPARAMS1_IQ_VR_ABOVELEFTMB_BASEADDR_SHIFT (20)
+
+// MSVDX_VEC CR_VEC_IQ_MBPARAMS1 IQ_VR_CURRMB_BASEADDR
+#define MSVDX_VEC_CR_VEC_IQ_MBPARAMS1_IQ_VR_CURRMB_BASEADDR_MASK (0x000FFC00)
+#define MSVDX_VEC_CR_VEC_IQ_MBPARAMS1_IQ_VR_CURRMB_BASEADDR_LSBMASK (0x000003FF)
+#define MSVDX_VEC_CR_VEC_IQ_MBPARAMS1_IQ_VR_CURRMB_BASEADDR_SHIFT (10)
+
+// MSVDX_VEC CR_VEC_IQ_MBPARAMS1 IQ_VR_ABOVEMB_BASEADDR
+#define MSVDX_VEC_CR_VEC_IQ_MBPARAMS1_IQ_VR_ABOVEMB_BASEADDR_MASK (0x000003FF)
+#define MSVDX_VEC_CR_VEC_IQ_MBPARAMS1_IQ_VR_ABOVEMB_BASEADDR_LSBMASK (0x000003FF)
+#define MSVDX_VEC_CR_VEC_IQ_MBPARAMS1_IQ_VR_ABOVEMB_BASEADDR_SHIFT (0)
+
+#define MSVDX_VEC_CR_VEC_VLR_COMMANDS_BUF_POINTER_OFFSET (0x00D8)
+
+// MSVDX_VEC CR_VEC_VLR_COMMANDS_BUF_POINTER VLR_COMMANDS_BUF_POINTER1
+#define MSVDX_VEC_CR_VEC_VLR_COMMANDS_BUF_POINTER_VLR_COMMANDS_BUF_POINTER1_MASK (0x003FF000)
+#define MSVDX_VEC_CR_VEC_VLR_COMMANDS_BUF_POINTER_VLR_COMMANDS_BUF_POINTER1_LSBMASK (0x000003FF)
+#define MSVDX_VEC_CR_VEC_VLR_COMMANDS_BUF_POINTER_VLR_COMMANDS_BUF_POINTER1_SHIFT (12)
+
+// MSVDX_VEC CR_VEC_VLR_COMMANDS_BUF_POINTER VLR_COMMANDS_BUF_POINTER2
+#define MSVDX_VEC_CR_VEC_VLR_COMMANDS_BUF_POINTER_VLR_COMMANDS_BUF_POINTER2_MASK (0x00000FFC)
+#define MSVDX_VEC_CR_VEC_VLR_COMMANDS_BUF_POINTER_VLR_COMMANDS_BUF_POINTER2_LSBMASK (0x000003FF)
+#define MSVDX_VEC_CR_VEC_VLR_COMMANDS_BUF_POINTER_VLR_COMMANDS_BUF_POINTER2_SHIFT (2)
+
+#define MSVDX_VEC_CR_VEC_CIRC_BUFF_BASE_ADDR_OFFSET (0x00DC)
+
+// MSVDX_VEC CR_VEC_CIRC_BUFF_BASE_ADDR CIRC_BUFF_BASE_ADDR
+#define MSVDX_VEC_CR_VEC_CIRC_BUFF_BASE_ADDR_CIRC_BUFF_BASE_ADDR_MASK (0x00000FFC)
+#define MSVDX_VEC_CR_VEC_CIRC_BUFF_BASE_ADDR_CIRC_BUFF_BASE_ADDR_LSBMASK (0x000003FF)
+#define MSVDX_VEC_CR_VEC_CIRC_BUFF_BASE_ADDR_CIRC_BUFF_BASE_ADDR_SHIFT (2)
+
+#define MSVDX_VEC_CR_VEC_SGM_BITPLANE_BASE_ADDR_OFFSET (0x00E0)
+
+// MSVDX_VEC CR_VEC_SGM_BITPLANE_BASE_ADDR SGM_BITPLANE_BASE_ADDR
+#define MSVDX_VEC_CR_VEC_SGM_BITPLANE_BASE_ADDR_SGM_BITPLANE_BASE_ADDR_MASK (0x00000FFC)
+#define MSVDX_VEC_CR_VEC_SGM_BITPLANE_BASE_ADDR_SGM_BITPLANE_BASE_ADDR_LSBMASK (0x000003FF)
+#define MSVDX_VEC_CR_VEC_SGM_BITPLANE_BASE_ADDR_SGM_BITPLANE_BASE_ADDR_SHIFT (2)
+
+#define MSVDX_VEC_CR_VEC_VLR_COMMANDS_STORE_OFFSET (0x00E4)
+
+// MSVDX_VEC CR_VEC_VLR_COMMANDS_STORE VLR_COMMANDS_STORE_BASE_ADDRESS
+#define MSVDX_VEC_CR_VEC_VLR_COMMANDS_STORE_VLR_COMMANDS_STORE_BASE_ADDRESS_MASK (0x00000FFC)
+#define MSVDX_VEC_CR_VEC_VLR_COMMANDS_STORE_VLR_COMMANDS_STORE_BASE_ADDRESS_LSBMASK (0x000003FF)
+#define MSVDX_VEC_CR_VEC_VLR_COMMANDS_STORE_VLR_COMMANDS_STORE_BASE_ADDRESS_SHIFT (2)
+
+#define MSVDX_VEC_CR_VEC_VLR_COMMANDS_NUM_OFFSET (0x00E8)
+
+// MSVDX_VEC CR_VEC_VLR_COMMANDS_NUM VLR_COMMANDS_STORE_NUMBER_OF_CMDS
+#define MSVDX_VEC_CR_VEC_VLR_COMMANDS_NUM_VLR_COMMANDS_STORE_NUMBER_OF_CMDS_MASK (0x0000007F)
+#define MSVDX_VEC_CR_VEC_VLR_COMMANDS_NUM_VLR_COMMANDS_STORE_NUMBER_OF_CMDS_LSBMASK (0x0000007F)
+#define MSVDX_VEC_CR_VEC_VLR_COMMANDS_NUM_VLR_COMMANDS_STORE_NUMBER_OF_CMDS_SHIFT (0)
+
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR0_OFFSET (0x00EC)
+
+// MSVDX_VEC CR_VEC_VLC_TABLE_ADDR0 VLC_TABLE_ADDR0
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR0_VLC_TABLE_ADDR0_MASK (0x000007FF)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR0_VLC_TABLE_ADDR0_LSBMASK (0x000007FF)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR0_VLC_TABLE_ADDR0_SHIFT (0)
+
+// MSVDX_VEC CR_VEC_VLC_TABLE_ADDR0 VLC_TABLE_ADDR1
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR0_VLC_TABLE_ADDR1_MASK (0x003FF800)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR0_VLC_TABLE_ADDR1_LSBMASK (0x000007FF)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR0_VLC_TABLE_ADDR1_SHIFT (11)
+
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR1_OFFSET (0x00F0)
+
+// MSVDX_VEC CR_VEC_VLC_TABLE_ADDR1 VLC_TABLE_ADDR2
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR1_VLC_TABLE_ADDR2_MASK (0x000007FF)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR1_VLC_TABLE_ADDR2_LSBMASK (0x000007FF)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR1_VLC_TABLE_ADDR2_SHIFT (0)
+
+// MSVDX_VEC CR_VEC_VLC_TABLE_ADDR1 VLC_TABLE_ADDR3
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR1_VLC_TABLE_ADDR3_MASK (0x003FF800)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR1_VLC_TABLE_ADDR3_LSBMASK (0x000007FF)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR1_VLC_TABLE_ADDR3_SHIFT (11)
+
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR2_OFFSET (0x00F4)
+
+// MSVDX_VEC CR_VEC_VLC_TABLE_ADDR2 VLC_TABLE_ADDR4
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR2_VLC_TABLE_ADDR4_MASK (0x000007FF)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR2_VLC_TABLE_ADDR4_LSBMASK (0x000007FF)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR2_VLC_TABLE_ADDR4_SHIFT (0)
+
+// MSVDX_VEC CR_VEC_VLC_TABLE_ADDR2 VLC_TABLE_ADDR5
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR2_VLC_TABLE_ADDR5_MASK (0x003FF800)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR2_VLC_TABLE_ADDR5_LSBMASK (0x000007FF)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR2_VLC_TABLE_ADDR5_SHIFT (11)
+
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR3_OFFSET (0x00F8)
+
+// MSVDX_VEC CR_VEC_VLC_TABLE_ADDR3 VLC_TABLE_ADDR6
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR3_VLC_TABLE_ADDR6_MASK (0x000007FF)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR3_VLC_TABLE_ADDR6_LSBMASK (0x000007FF)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR3_VLC_TABLE_ADDR6_SHIFT (0)
+
+// MSVDX_VEC CR_VEC_VLC_TABLE_ADDR3 VLC_TABLE_ADDR7
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR3_VLC_TABLE_ADDR7_MASK (0x003FF800)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR3_VLC_TABLE_ADDR7_LSBMASK (0x000007FF)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR3_VLC_TABLE_ADDR7_SHIFT (11)
+
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR4_OFFSET (0x00FC)
+
+// MSVDX_VEC CR_VEC_VLC_TABLE_ADDR4 VLC_TABLE_ADDR8
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR4_VLC_TABLE_ADDR8_MASK (0x000007FF)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR4_VLC_TABLE_ADDR8_LSBMASK (0x000007FF)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR4_VLC_TABLE_ADDR8_SHIFT (0)
+
+// MSVDX_VEC CR_VEC_VLC_TABLE_ADDR4 VLC_TABLE_ADDR9
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR4_VLC_TABLE_ADDR9_MASK (0x003FF800)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR4_VLC_TABLE_ADDR9_LSBMASK (0x000007FF)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR4_VLC_TABLE_ADDR9_SHIFT (11)
+
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR5_OFFSET (0x0100)
+
+// MSVDX_VEC CR_VEC_VLC_TABLE_ADDR5 VLC_TABLE_ADDR10
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR5_VLC_TABLE_ADDR10_MASK (0x000007FF)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR5_VLC_TABLE_ADDR10_LSBMASK (0x000007FF)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR5_VLC_TABLE_ADDR10_SHIFT (0)
+
+// MSVDX_VEC CR_VEC_VLC_TABLE_ADDR5 VLC_TABLE_ADDR11
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR5_VLC_TABLE_ADDR11_MASK (0x003FF800)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR5_VLC_TABLE_ADDR11_LSBMASK (0x000007FF)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR5_VLC_TABLE_ADDR11_SHIFT (11)
+
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR6_OFFSET (0x0104)
+
+// MSVDX_VEC CR_VEC_VLC_TABLE_ADDR6 VLC_TABLE_ADDR12
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR6_VLC_TABLE_ADDR12_MASK (0x000007FF)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR6_VLC_TABLE_ADDR12_LSBMASK (0x000007FF)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR6_VLC_TABLE_ADDR12_SHIFT (0)
+
+// MSVDX_VEC CR_VEC_VLC_TABLE_ADDR6 VLC_TABLE_ADDR13
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR6_VLC_TABLE_ADDR13_MASK (0x003FF800)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR6_VLC_TABLE_ADDR13_LSBMASK (0x000007FF)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR6_VLC_TABLE_ADDR13_SHIFT (11)
+
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR7_OFFSET (0x0108)
+
+// MSVDX_VEC CR_VEC_VLC_TABLE_ADDR7 VLC_TABLE_ADDR14
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR7_VLC_TABLE_ADDR14_MASK (0x000007FF)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR7_VLC_TABLE_ADDR14_LSBMASK (0x000007FF)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR7_VLC_TABLE_ADDR14_SHIFT (0)
+
+// MSVDX_VEC CR_VEC_VLC_TABLE_ADDR7 VLC_TABLE_ADDR15
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR7_VLC_TABLE_ADDR15_MASK (0x003FF800)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR7_VLC_TABLE_ADDR15_LSBMASK (0x000007FF)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR7_VLC_TABLE_ADDR15_SHIFT (11)
+
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR8_OFFSET (0x010C)
+
+// MSVDX_VEC CR_VEC_VLC_TABLE_ADDR8 VLC_TABLE_ADDR16
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR8_VLC_TABLE_ADDR16_MASK (0x000007FF)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR8_VLC_TABLE_ADDR16_LSBMASK (0x000007FF)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR8_VLC_TABLE_ADDR16_SHIFT (0)
+
+// MSVDX_VEC CR_VEC_VLC_TABLE_ADDR8 VLC_TABLE_ADDR17
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR8_VLC_TABLE_ADDR17_MASK (0x003FF800)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR8_VLC_TABLE_ADDR17_LSBMASK (0x000007FF)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR8_VLC_TABLE_ADDR17_SHIFT (11)
+
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR9_OFFSET (0x0110)
+
+// MSVDX_VEC CR_VEC_VLC_TABLE_ADDR9 VLC_TABLE_ADDR18
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR9_VLC_TABLE_ADDR18_MASK (0x000007FF)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR9_VLC_TABLE_ADDR18_LSBMASK (0x000007FF)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR9_VLC_TABLE_ADDR18_SHIFT (0)
+
+// MSVDX_VEC CR_VEC_VLC_TABLE_ADDR9 VLC_TABLE_ADDR19
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR9_VLC_TABLE_ADDR19_MASK (0x003FF800)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR9_VLC_TABLE_ADDR19_LSBMASK (0x000007FF)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR9_VLC_TABLE_ADDR19_SHIFT (11)
+
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR10_OFFSET (0x0114)
+
+// MSVDX_VEC CR_VEC_VLC_TABLE_ADDR10 VLC_TABLE_ADDR20
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR10_VLC_TABLE_ADDR20_MASK (0x000007FF)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR10_VLC_TABLE_ADDR20_LSBMASK (0x000007FF)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR10_VLC_TABLE_ADDR20_SHIFT (0)
+
+// MSVDX_VEC CR_VEC_VLC_TABLE_ADDR10 VLC_TABLE_ADDR21
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR10_VLC_TABLE_ADDR21_MASK (0x003FF800)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR10_VLC_TABLE_ADDR21_LSBMASK (0x000007FF)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR10_VLC_TABLE_ADDR21_SHIFT (11)
+
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR11_OFFSET (0x0118)
+
+// MSVDX_VEC CR_VEC_VLC_TABLE_ADDR11 VLC_TABLE_ADDR22
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR11_VLC_TABLE_ADDR22_MASK (0x000007FF)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR11_VLC_TABLE_ADDR22_LSBMASK (0x000007FF)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR11_VLC_TABLE_ADDR22_SHIFT (0)
+
+// MSVDX_VEC CR_VEC_VLC_TABLE_ADDR11 VLC_TABLE_ADDR23
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR11_VLC_TABLE_ADDR23_MASK (0x003FF800)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR11_VLC_TABLE_ADDR23_LSBMASK (0x000007FF)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR11_VLC_TABLE_ADDR23_SHIFT (11)
+
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR12_OFFSET (0x011C)
+
+// MSVDX_VEC CR_VEC_VLC_TABLE_ADDR12 VLC_TABLE_ADDR24
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR12_VLC_TABLE_ADDR24_MASK (0x000007FF)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR12_VLC_TABLE_ADDR24_LSBMASK (0x000007FF)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR12_VLC_TABLE_ADDR24_SHIFT (0)
+
+// MSVDX_VEC CR_VEC_VLC_TABLE_ADDR12 VLC_TABLE_ADDR25
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR12_VLC_TABLE_ADDR25_MASK (0x003FF800)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR12_VLC_TABLE_ADDR25_LSBMASK (0x000007FF)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR12_VLC_TABLE_ADDR25_SHIFT (11)
+
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR13_OFFSET (0x0120)
+
+// MSVDX_VEC CR_VEC_VLC_TABLE_ADDR13 VLC_TABLE_ADDR26
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR13_VLC_TABLE_ADDR26_MASK (0x000007FF)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR13_VLC_TABLE_ADDR26_LSBMASK (0x000007FF)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR13_VLC_TABLE_ADDR26_SHIFT (0)
+
+// MSVDX_VEC CR_VEC_VLC_TABLE_ADDR13 VLC_TABLE_ADDR27
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR13_VLC_TABLE_ADDR27_MASK (0x003FF800)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR13_VLC_TABLE_ADDR27_LSBMASK (0x000007FF)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR13_VLC_TABLE_ADDR27_SHIFT (11)
+
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR14_OFFSET (0x0124)
+
+// MSVDX_VEC CR_VEC_VLC_TABLE_ADDR14 VLC_TABLE_ADDR28
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR14_VLC_TABLE_ADDR28_MASK (0x000007FF)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR14_VLC_TABLE_ADDR28_LSBMASK (0x000007FF)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR14_VLC_TABLE_ADDR28_SHIFT (0)
+
+// MSVDX_VEC CR_VEC_VLC_TABLE_ADDR14 VLC_TABLE_ADDR29
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR14_VLC_TABLE_ADDR29_MASK (0x003FF800)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR14_VLC_TABLE_ADDR29_LSBMASK (0x000007FF)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR14_VLC_TABLE_ADDR29_SHIFT (11)
+
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR15_OFFSET (0x0128)
+
+// MSVDX_VEC CR_VEC_VLC_TABLE_ADDR15 VLC_TABLE_ADDR30
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR15_VLC_TABLE_ADDR30_MASK (0x000007FF)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR15_VLC_TABLE_ADDR30_LSBMASK (0x000007FF)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_ADDR15_VLC_TABLE_ADDR30_SHIFT (0)
+
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH0_OFFSET (0x012C)
+
+// MSVDX_VEC CR_VEC_VLC_TABLE_INITIAL_WIDTH0 VLC_TABLE_INITIAL_WIDTH0
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH0_VLC_TABLE_INITIAL_WIDTH0_MASK (0x00000007)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH0_VLC_TABLE_INITIAL_WIDTH0_LSBMASK (0x00000007)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH0_VLC_TABLE_INITIAL_WIDTH0_SHIFT (0)
+
+// MSVDX_VEC CR_VEC_VLC_TABLE_INITIAL_WIDTH0 VLC_TABLE_INITIAL_WIDTH1
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH0_VLC_TABLE_INITIAL_WIDTH1_MASK (0x00000038)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH0_VLC_TABLE_INITIAL_WIDTH1_LSBMASK (0x00000007)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH0_VLC_TABLE_INITIAL_WIDTH1_SHIFT (3)
+
+// MSVDX_VEC CR_VEC_VLC_TABLE_INITIAL_WIDTH0 VLC_TABLE_INITIAL_WIDTH2
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH0_VLC_TABLE_INITIAL_WIDTH2_MASK (0x000001C0)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH0_VLC_TABLE_INITIAL_WIDTH2_LSBMASK (0x00000007)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH0_VLC_TABLE_INITIAL_WIDTH2_SHIFT (6)
+
+// MSVDX_VEC CR_VEC_VLC_TABLE_INITIAL_WIDTH0 VLC_TABLE_INITIAL_WIDTH3
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH0_VLC_TABLE_INITIAL_WIDTH3_MASK (0x00000E00)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH0_VLC_TABLE_INITIAL_WIDTH3_LSBMASK (0x00000007)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH0_VLC_TABLE_INITIAL_WIDTH3_SHIFT (9)
+
+// MSVDX_VEC CR_VEC_VLC_TABLE_INITIAL_WIDTH0 VLC_TABLE_INITIAL_WIDTH4
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH0_VLC_TABLE_INITIAL_WIDTH4_MASK (0x00007000)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH0_VLC_TABLE_INITIAL_WIDTH4_LSBMASK (0x00000007)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH0_VLC_TABLE_INITIAL_WIDTH4_SHIFT (12)
+
+// MSVDX_VEC CR_VEC_VLC_TABLE_INITIAL_WIDTH0 VLC_TABLE_INITIAL_WIDTH5
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH0_VLC_TABLE_INITIAL_WIDTH5_MASK (0x00038000)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH0_VLC_TABLE_INITIAL_WIDTH5_LSBMASK (0x00000007)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH0_VLC_TABLE_INITIAL_WIDTH5_SHIFT (15)
+
+// MSVDX_VEC CR_VEC_VLC_TABLE_INITIAL_WIDTH0 VLC_TABLE_INITIAL_WIDTH6
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH0_VLC_TABLE_INITIAL_WIDTH6_MASK (0x001C0000)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH0_VLC_TABLE_INITIAL_WIDTH6_LSBMASK (0x00000007)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH0_VLC_TABLE_INITIAL_WIDTH6_SHIFT (18)
+
+// MSVDX_VEC CR_VEC_VLC_TABLE_INITIAL_WIDTH0 VLC_TABLE_INITIAL_WIDTH7
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH0_VLC_TABLE_INITIAL_WIDTH7_MASK (0x00E00000)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH0_VLC_TABLE_INITIAL_WIDTH7_LSBMASK (0x00000007)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH0_VLC_TABLE_INITIAL_WIDTH7_SHIFT (21)
+
+// MSVDX_VEC CR_VEC_VLC_TABLE_INITIAL_WIDTH0 VLC_TABLE_INITIAL_WIDTH8
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH0_VLC_TABLE_INITIAL_WIDTH8_MASK (0x07000000)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH0_VLC_TABLE_INITIAL_WIDTH8_LSBMASK (0x00000007)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH0_VLC_TABLE_INITIAL_WIDTH8_SHIFT (24)
+
+// MSVDX_VEC CR_VEC_VLC_TABLE_INITIAL_WIDTH0 VLC_TABLE_INITIAL_WIDTH9
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH0_VLC_TABLE_INITIAL_WIDTH9_MASK (0x38000000)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH0_VLC_TABLE_INITIAL_WIDTH9_LSBMASK (0x00000007)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH0_VLC_TABLE_INITIAL_WIDTH9_SHIFT (27)
+
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH1_OFFSET (0x0130)
+
+// MSVDX_VEC CR_VEC_VLC_TABLE_INITIAL_WIDTH1 VLC_TABLE_INITIAL_WIDTH10
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH1_VLC_TABLE_INITIAL_WIDTH10_MASK (0x00000007)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH1_VLC_TABLE_INITIAL_WIDTH10_LSBMASK (0x00000007)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH1_VLC_TABLE_INITIAL_WIDTH10_SHIFT (0)
+
+// MSVDX_VEC CR_VEC_VLC_TABLE_INITIAL_WIDTH1 VLC_TABLE_INITIAL_WIDTH11
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH1_VLC_TABLE_INITIAL_WIDTH11_MASK (0x00000038)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH1_VLC_TABLE_INITIAL_WIDTH11_LSBMASK (0x00000007)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH1_VLC_TABLE_INITIAL_WIDTH11_SHIFT (3)
+
+// MSVDX_VEC CR_VEC_VLC_TABLE_INITIAL_WIDTH1 VLC_TABLE_INITIAL_WIDTH12
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH1_VLC_TABLE_INITIAL_WIDTH12_MASK (0x000001C0)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH1_VLC_TABLE_INITIAL_WIDTH12_LSBMASK (0x00000007)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH1_VLC_TABLE_INITIAL_WIDTH12_SHIFT (6)
+
+// MSVDX_VEC CR_VEC_VLC_TABLE_INITIAL_WIDTH1 VLC_TABLE_INITIAL_WIDTH13
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH1_VLC_TABLE_INITIAL_WIDTH13_MASK (0x00000E00)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH1_VLC_TABLE_INITIAL_WIDTH13_LSBMASK (0x00000007)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH1_VLC_TABLE_INITIAL_WIDTH13_SHIFT (9)
+
+// MSVDX_VEC CR_VEC_VLC_TABLE_INITIAL_WIDTH1 VLC_TABLE_INITIAL_WIDTH14
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH1_VLC_TABLE_INITIAL_WIDTH14_MASK (0x00007000)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH1_VLC_TABLE_INITIAL_WIDTH14_LSBMASK (0x00000007)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH1_VLC_TABLE_INITIAL_WIDTH14_SHIFT (12)
+
+// MSVDX_VEC CR_VEC_VLC_TABLE_INITIAL_WIDTH1 VLC_TABLE_INITIAL_WIDTH15
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH1_VLC_TABLE_INITIAL_WIDTH15_MASK (0x00038000)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH1_VLC_TABLE_INITIAL_WIDTH15_LSBMASK (0x00000007)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH1_VLC_TABLE_INITIAL_WIDTH15_SHIFT (15)
+
+// MSVDX_VEC CR_VEC_VLC_TABLE_INITIAL_WIDTH1 VLC_TABLE_INITIAL_WIDTH16
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH1_VLC_TABLE_INITIAL_WIDTH16_MASK (0x001C0000)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH1_VLC_TABLE_INITIAL_WIDTH16_LSBMASK (0x00000007)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH1_VLC_TABLE_INITIAL_WIDTH16_SHIFT (18)
+
+// MSVDX_VEC CR_VEC_VLC_TABLE_INITIAL_WIDTH1 VLC_TABLE_INITIAL_WIDTH17
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH1_VLC_TABLE_INITIAL_WIDTH17_MASK (0x00E00000)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH1_VLC_TABLE_INITIAL_WIDTH17_LSBMASK (0x00000007)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH1_VLC_TABLE_INITIAL_WIDTH17_SHIFT (21)
+
+// MSVDX_VEC CR_VEC_VLC_TABLE_INITIAL_WIDTH1 VLC_TABLE_INITIAL_WIDTH18
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH1_VLC_TABLE_INITIAL_WIDTH18_MASK (0x07000000)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH1_VLC_TABLE_INITIAL_WIDTH18_LSBMASK (0x00000007)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH1_VLC_TABLE_INITIAL_WIDTH18_SHIFT (24)
+
+// MSVDX_VEC CR_VEC_VLC_TABLE_INITIAL_WIDTH1 VLC_TABLE_INITIAL_WIDTH19
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH1_VLC_TABLE_INITIAL_WIDTH19_MASK (0x38000000)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH1_VLC_TABLE_INITIAL_WIDTH19_LSBMASK (0x00000007)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH1_VLC_TABLE_INITIAL_WIDTH19_SHIFT (27)
+
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH2_OFFSET (0x0134)
+
+// MSVDX_VEC CR_VEC_VLC_TABLE_INITIAL_WIDTH2 VLC_TABLE_INITIAL_WIDTH20
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH2_VLC_TABLE_INITIAL_WIDTH20_MASK (0x00000007)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH2_VLC_TABLE_INITIAL_WIDTH20_LSBMASK (0x00000007)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH2_VLC_TABLE_INITIAL_WIDTH20_SHIFT (0)
+
+// MSVDX_VEC CR_VEC_VLC_TABLE_INITIAL_WIDTH2 VLC_TABLE_INITIAL_WIDTH21
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH2_VLC_TABLE_INITIAL_WIDTH21_MASK (0x00000038)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH2_VLC_TABLE_INITIAL_WIDTH21_LSBMASK (0x00000007)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH2_VLC_TABLE_INITIAL_WIDTH21_SHIFT (3)
+
+// MSVDX_VEC CR_VEC_VLC_TABLE_INITIAL_WIDTH2 VLC_TABLE_INITIAL_WIDTH22
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH2_VLC_TABLE_INITIAL_WIDTH22_MASK (0x000001C0)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH2_VLC_TABLE_INITIAL_WIDTH22_LSBMASK (0x00000007)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH2_VLC_TABLE_INITIAL_WIDTH22_SHIFT (6)
+
+// MSVDX_VEC CR_VEC_VLC_TABLE_INITIAL_WIDTH2 VLC_TABLE_INITIAL_WIDTH23
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH2_VLC_TABLE_INITIAL_WIDTH23_MASK (0x00000E00)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH2_VLC_TABLE_INITIAL_WIDTH23_LSBMASK (0x00000007)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH2_VLC_TABLE_INITIAL_WIDTH23_SHIFT (9)
+
+// MSVDX_VEC CR_VEC_VLC_TABLE_INITIAL_WIDTH2 VLC_TABLE_INITIAL_WIDTH24
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH2_VLC_TABLE_INITIAL_WIDTH24_MASK (0x00007000)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH2_VLC_TABLE_INITIAL_WIDTH24_LSBMASK (0x00000007)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH2_VLC_TABLE_INITIAL_WIDTH24_SHIFT (12)
+
+// MSVDX_VEC CR_VEC_VLC_TABLE_INITIAL_WIDTH2 VLC_TABLE_INITIAL_WIDTH25
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH2_VLC_TABLE_INITIAL_WIDTH25_MASK (0x00038000)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH2_VLC_TABLE_INITIAL_WIDTH25_LSBMASK (0x00000007)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH2_VLC_TABLE_INITIAL_WIDTH25_SHIFT (15)
+
+// MSVDX_VEC CR_VEC_VLC_TABLE_INITIAL_WIDTH2 VLC_TABLE_INITIAL_WIDTH26
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH2_VLC_TABLE_INITIAL_WIDTH26_MASK (0x001C0000)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH2_VLC_TABLE_INITIAL_WIDTH26_LSBMASK (0x00000007)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH2_VLC_TABLE_INITIAL_WIDTH26_SHIFT (18)
+
+// MSVDX_VEC CR_VEC_VLC_TABLE_INITIAL_WIDTH2 VLC_TABLE_INITIAL_WIDTH27
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH2_VLC_TABLE_INITIAL_WIDTH27_MASK (0x00E00000)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH2_VLC_TABLE_INITIAL_WIDTH27_LSBMASK (0x00000007)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH2_VLC_TABLE_INITIAL_WIDTH27_SHIFT (21)
+
+// MSVDX_VEC CR_VEC_VLC_TABLE_INITIAL_WIDTH2 VLC_TABLE_INITIAL_WIDTH28
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH2_VLC_TABLE_INITIAL_WIDTH28_MASK (0x07000000)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH2_VLC_TABLE_INITIAL_WIDTH28_LSBMASK (0x00000007)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH2_VLC_TABLE_INITIAL_WIDTH28_SHIFT (24)
+
+// MSVDX_VEC CR_VEC_VLC_TABLE_INITIAL_WIDTH2 VLC_TABLE_INITIAL_WIDTH29
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH2_VLC_TABLE_INITIAL_WIDTH29_MASK (0x38000000)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH2_VLC_TABLE_INITIAL_WIDTH29_LSBMASK (0x00000007)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH2_VLC_TABLE_INITIAL_WIDTH29_SHIFT (27)
+
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH3_OFFSET (0x0138)
+
+// MSVDX_VEC CR_VEC_VLC_TABLE_INITIAL_WIDTH3 VLC_TABLE_INITIAL_WIDTH30
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH3_VLC_TABLE_INITIAL_WIDTH30_MASK (0x00000007)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH3_VLC_TABLE_INITIAL_WIDTH30_LSBMASK (0x00000007)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_WIDTH3_VLC_TABLE_INITIAL_WIDTH30_SHIFT (0)
+
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE0_OFFSET (0x013C)
+
+// MSVDX_VEC CR_VEC_VLC_TABLE_INITIAL_OPCODE0 VLC_TABLE_INITIAL_OPCODE0
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE0_VLC_TABLE_INITIAL_OPCODE0_MASK (0x00000003)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE0_VLC_TABLE_INITIAL_OPCODE0_LSBMASK (0x00000003)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE0_VLC_TABLE_INITIAL_OPCODE0_SHIFT (0)
+
+// MSVDX_VEC CR_VEC_VLC_TABLE_INITIAL_OPCODE0 VLC_TABLE_INITIAL_OPCODE1
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE0_VLC_TABLE_INITIAL_OPCODE1_MASK (0x0000000C)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE0_VLC_TABLE_INITIAL_OPCODE1_LSBMASK (0x00000003)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE0_VLC_TABLE_INITIAL_OPCODE1_SHIFT (2)
+
+// MSVDX_VEC CR_VEC_VLC_TABLE_INITIAL_OPCODE0 VLC_TABLE_INITIAL_OPCODE2
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE0_VLC_TABLE_INITIAL_OPCODE2_MASK (0x00000030)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE0_VLC_TABLE_INITIAL_OPCODE2_LSBMASK (0x00000003)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE0_VLC_TABLE_INITIAL_OPCODE2_SHIFT (4)
+
+// MSVDX_VEC CR_VEC_VLC_TABLE_INITIAL_OPCODE0 VLC_TABLE_INITIAL_OPCODE3
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE0_VLC_TABLE_INITIAL_OPCODE3_MASK (0x000000C0)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE0_VLC_TABLE_INITIAL_OPCODE3_LSBMASK (0x00000003)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE0_VLC_TABLE_INITIAL_OPCODE3_SHIFT (6)
+
+// MSVDX_VEC CR_VEC_VLC_TABLE_INITIAL_OPCODE0 VLC_TABLE_INITIAL_OPCODE4
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE0_VLC_TABLE_INITIAL_OPCODE4_MASK (0x00000300)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE0_VLC_TABLE_INITIAL_OPCODE4_LSBMASK (0x00000003)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE0_VLC_TABLE_INITIAL_OPCODE4_SHIFT (8)
+
+// MSVDX_VEC CR_VEC_VLC_TABLE_INITIAL_OPCODE0 VLC_TABLE_INITIAL_OPCODE5
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE0_VLC_TABLE_INITIAL_OPCODE5_MASK (0x00000C00)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE0_VLC_TABLE_INITIAL_OPCODE5_LSBMASK (0x00000003)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE0_VLC_TABLE_INITIAL_OPCODE5_SHIFT (10)
+
+// MSVDX_VEC CR_VEC_VLC_TABLE_INITIAL_OPCODE0 VLC_TABLE_INITIAL_OPCODE6
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE0_VLC_TABLE_INITIAL_OPCODE6_MASK (0x00003000)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE0_VLC_TABLE_INITIAL_OPCODE6_LSBMASK (0x00000003)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE0_VLC_TABLE_INITIAL_OPCODE6_SHIFT (12)
+
+// MSVDX_VEC CR_VEC_VLC_TABLE_INITIAL_OPCODE0 VLC_TABLE_INITIAL_OPCODE7
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE0_VLC_TABLE_INITIAL_OPCODE7_MASK (0x0000C000)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE0_VLC_TABLE_INITIAL_OPCODE7_LSBMASK (0x00000003)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE0_VLC_TABLE_INITIAL_OPCODE7_SHIFT (14)
+
+// MSVDX_VEC CR_VEC_VLC_TABLE_INITIAL_OPCODE0 VLC_TABLE_INITIAL_OPCODE8
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE0_VLC_TABLE_INITIAL_OPCODE8_MASK (0x00030000)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE0_VLC_TABLE_INITIAL_OPCODE8_LSBMASK (0x00000003)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE0_VLC_TABLE_INITIAL_OPCODE8_SHIFT (16)
+
+// MSVDX_VEC CR_VEC_VLC_TABLE_INITIAL_OPCODE0 VLC_TABLE_INITIAL_OPCODE9
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE0_VLC_TABLE_INITIAL_OPCODE9_MASK (0x000C0000)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE0_VLC_TABLE_INITIAL_OPCODE9_LSBMASK (0x00000003)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE0_VLC_TABLE_INITIAL_OPCODE9_SHIFT (18)
+
+// MSVDX_VEC CR_VEC_VLC_TABLE_INITIAL_OPCODE0 VLC_TABLE_INITIAL_OPCODE10
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE0_VLC_TABLE_INITIAL_OPCODE10_MASK (0x00300000)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE0_VLC_TABLE_INITIAL_OPCODE10_LSBMASK (0x00000003)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE0_VLC_TABLE_INITIAL_OPCODE10_SHIFT (20)
+
+// MSVDX_VEC CR_VEC_VLC_TABLE_INITIAL_OPCODE0 VLC_TABLE_INITIAL_OPCODE11
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE0_VLC_TABLE_INITIAL_OPCODE11_MASK (0x00C00000)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE0_VLC_TABLE_INITIAL_OPCODE11_LSBMASK (0x00000003)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE0_VLC_TABLE_INITIAL_OPCODE11_SHIFT (22)
+
+// MSVDX_VEC CR_VEC_VLC_TABLE_INITIAL_OPCODE0 VLC_TABLE_INITIAL_OPCODE12
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE0_VLC_TABLE_INITIAL_OPCODE12_MASK (0x03000000)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE0_VLC_TABLE_INITIAL_OPCODE12_LSBMASK (0x00000003)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE0_VLC_TABLE_INITIAL_OPCODE12_SHIFT (24)
+
+// MSVDX_VEC CR_VEC_VLC_TABLE_INITIAL_OPCODE0 VLC_TABLE_INITIAL_OPCODE13
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE0_VLC_TABLE_INITIAL_OPCODE13_MASK (0x0C000000)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE0_VLC_TABLE_INITIAL_OPCODE13_LSBMASK (0x00000003)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE0_VLC_TABLE_INITIAL_OPCODE13_SHIFT (26)
+
+// MSVDX_VEC CR_VEC_VLC_TABLE_INITIAL_OPCODE0 VLC_TABLE_INITIAL_OPCODE14
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE0_VLC_TABLE_INITIAL_OPCODE14_MASK (0x30000000)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE0_VLC_TABLE_INITIAL_OPCODE14_LSBMASK (0x00000003)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE0_VLC_TABLE_INITIAL_OPCODE14_SHIFT (28)
+
+// MSVDX_VEC CR_VEC_VLC_TABLE_INITIAL_OPCODE0 VLC_TABLE_INITIAL_OPCODE15
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE0_VLC_TABLE_INITIAL_OPCODE15_MASK (0xC0000000)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE0_VLC_TABLE_INITIAL_OPCODE15_LSBMASK (0x00000003)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE0_VLC_TABLE_INITIAL_OPCODE15_SHIFT (30)
+
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE1_OFFSET (0x0140)
+
+// MSVDX_VEC CR_VEC_VLC_TABLE_INITIAL_OPCODE1 VLC_TABLE_INITIAL_OPCODE16
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE1_VLC_TABLE_INITIAL_OPCODE16_MASK (0x00000003)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE1_VLC_TABLE_INITIAL_OPCODE16_LSBMASK (0x00000003)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE1_VLC_TABLE_INITIAL_OPCODE16_SHIFT (0)
+
+// MSVDX_VEC CR_VEC_VLC_TABLE_INITIAL_OPCODE1 VLC_TABLE_INITIAL_OPCODE17
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE1_VLC_TABLE_INITIAL_OPCODE17_MASK (0x0000000C)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE1_VLC_TABLE_INITIAL_OPCODE17_LSBMASK (0x00000003)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE1_VLC_TABLE_INITIAL_OPCODE17_SHIFT (2)
+
+// MSVDX_VEC CR_VEC_VLC_TABLE_INITIAL_OPCODE1 VLC_TABLE_INITIAL_OPCODE18
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE1_VLC_TABLE_INITIAL_OPCODE18_MASK (0x00000030)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE1_VLC_TABLE_INITIAL_OPCODE18_LSBMASK (0x00000003)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE1_VLC_TABLE_INITIAL_OPCODE18_SHIFT (4)
+
+// MSVDX_VEC CR_VEC_VLC_TABLE_INITIAL_OPCODE1 VLC_TABLE_INITIAL_OPCODE19
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE1_VLC_TABLE_INITIAL_OPCODE19_MASK (0x000000C0)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE1_VLC_TABLE_INITIAL_OPCODE19_LSBMASK (0x00000003)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE1_VLC_TABLE_INITIAL_OPCODE19_SHIFT (6)
+
+// MSVDX_VEC CR_VEC_VLC_TABLE_INITIAL_OPCODE1 VLC_TABLE_INITIAL_OPCODE20
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE1_VLC_TABLE_INITIAL_OPCODE20_MASK (0x00000300)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE1_VLC_TABLE_INITIAL_OPCODE20_LSBMASK (0x00000003)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE1_VLC_TABLE_INITIAL_OPCODE20_SHIFT (8)
+
+// MSVDX_VEC CR_VEC_VLC_TABLE_INITIAL_OPCODE1 VLC_TABLE_INITIAL_OPCODE21
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE1_VLC_TABLE_INITIAL_OPCODE21_MASK (0x00000C00)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE1_VLC_TABLE_INITIAL_OPCODE21_LSBMASK (0x00000003)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE1_VLC_TABLE_INITIAL_OPCODE21_SHIFT (10)
+
+// MSVDX_VEC CR_VEC_VLC_TABLE_INITIAL_OPCODE1 VLC_TABLE_INITIAL_OPCODE22
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE1_VLC_TABLE_INITIAL_OPCODE22_MASK (0x00003000)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE1_VLC_TABLE_INITIAL_OPCODE22_LSBMASK (0x00000003)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE1_VLC_TABLE_INITIAL_OPCODE22_SHIFT (12)
+
+// MSVDX_VEC CR_VEC_VLC_TABLE_INITIAL_OPCODE1 VLC_TABLE_INITIAL_OPCODE23
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE1_VLC_TABLE_INITIAL_OPCODE23_MASK (0x0000C000)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE1_VLC_TABLE_INITIAL_OPCODE23_LSBMASK (0x00000003)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE1_VLC_TABLE_INITIAL_OPCODE23_SHIFT (14)
+
+// MSVDX_VEC CR_VEC_VLC_TABLE_INITIAL_OPCODE1 VLC_TABLE_INITIAL_OPCODE24
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE1_VLC_TABLE_INITIAL_OPCODE24_MASK (0x00030000)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE1_VLC_TABLE_INITIAL_OPCODE24_LSBMASK (0x00000003)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE1_VLC_TABLE_INITIAL_OPCODE24_SHIFT (16)
+
+// MSVDX_VEC CR_VEC_VLC_TABLE_INITIAL_OPCODE1 VLC_TABLE_INITIAL_OPCODE25
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE1_VLC_TABLE_INITIAL_OPCODE25_MASK (0x000C0000)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE1_VLC_TABLE_INITIAL_OPCODE25_LSBMASK (0x00000003)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE1_VLC_TABLE_INITIAL_OPCODE25_SHIFT (18)
+
+// MSVDX_VEC CR_VEC_VLC_TABLE_INITIAL_OPCODE1 VLC_TABLE_INITIAL_OPCODE26
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE1_VLC_TABLE_INITIAL_OPCODE26_MASK (0x00300000)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE1_VLC_TABLE_INITIAL_OPCODE26_LSBMASK (0x00000003)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE1_VLC_TABLE_INITIAL_OPCODE26_SHIFT (20)
+
+// MSVDX_VEC CR_VEC_VLC_TABLE_INITIAL_OPCODE1 VLC_TABLE_INITIAL_OPCODE27
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE1_VLC_TABLE_INITIAL_OPCODE27_MASK (0x00C00000)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE1_VLC_TABLE_INITIAL_OPCODE27_LSBMASK (0x00000003)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE1_VLC_TABLE_INITIAL_OPCODE27_SHIFT (22)
+
+// MSVDX_VEC CR_VEC_VLC_TABLE_INITIAL_OPCODE1 VLC_TABLE_INITIAL_OPCODE28
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE1_VLC_TABLE_INITIAL_OPCODE28_MASK (0x03000000)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE1_VLC_TABLE_INITIAL_OPCODE28_LSBMASK (0x00000003)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE1_VLC_TABLE_INITIAL_OPCODE28_SHIFT (24)
+
+// MSVDX_VEC CR_VEC_VLC_TABLE_INITIAL_OPCODE1 VLC_TABLE_INITIAL_OPCODE29
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE1_VLC_TABLE_INITIAL_OPCODE29_MASK (0x0C000000)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE1_VLC_TABLE_INITIAL_OPCODE29_LSBMASK (0x00000003)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE1_VLC_TABLE_INITIAL_OPCODE29_SHIFT (26)
+
+// MSVDX_VEC CR_VEC_VLC_TABLE_INITIAL_OPCODE1 VLC_TABLE_INITIAL_OPCODE30
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE1_VLC_TABLE_INITIAL_OPCODE30_MASK (0x30000000)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE1_VLC_TABLE_INITIAL_OPCODE30_LSBMASK (0x00000003)
+#define MSVDX_VEC_CR_VEC_VLC_TABLE_INITIAL_OPCODE1_VLC_TABLE_INITIAL_OPCODE30_SHIFT (28)
+
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTEXT0_OFFSET (0x0150)
+
+// MSVDX_VEC CR_VEC_RENDEC_CONTEXT0 RENDEC_CONTEXT0_2
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTEXT0_RENDEC_CONTEXT0_2_MASK (0x003F0000)
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTEXT0_RENDEC_CONTEXT0_2_LSBMASK (0x0000003F)
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTEXT0_RENDEC_CONTEXT0_2_SHIFT (16)
+
+// MSVDX_VEC CR_VEC_RENDEC_CONTEXT0 RENDEC_CONTEXT0_1
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTEXT0_RENDEC_CONTEXT0_1_MASK (0x00003F00)
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTEXT0_RENDEC_CONTEXT0_1_LSBMASK (0x0000003F)
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTEXT0_RENDEC_CONTEXT0_1_SHIFT (8)
+
+// MSVDX_VEC CR_VEC_RENDEC_CONTEXT0 RENDEC_CONTEXT0_0
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTEXT0_RENDEC_CONTEXT0_0_MASK (0x0000003F)
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTEXT0_RENDEC_CONTEXT0_0_LSBMASK (0x0000003F)
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTEXT0_RENDEC_CONTEXT0_0_SHIFT (0)
+
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTEXT1_OFFSET (0x0154)
+
+// MSVDX_VEC CR_VEC_RENDEC_CONTEXT1 RENDEC_CONTEXT1_2
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTEXT1_RENDEC_CONTEXT1_2_MASK (0x003F0000)
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTEXT1_RENDEC_CONTEXT1_2_LSBMASK (0x0000003F)
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTEXT1_RENDEC_CONTEXT1_2_SHIFT (16)
+
+// MSVDX_VEC CR_VEC_RENDEC_CONTEXT1 RENDEC_CONTEXT1_1
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTEXT1_RENDEC_CONTEXT1_1_MASK (0x00003F00)
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTEXT1_RENDEC_CONTEXT1_1_LSBMASK (0x0000003F)
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTEXT1_RENDEC_CONTEXT1_1_SHIFT (8)
+
+// MSVDX_VEC CR_VEC_RENDEC_CONTEXT1 RENDEC_CONTEXT1_0
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTEXT1_RENDEC_CONTEXT1_0_MASK (0x0000003F)
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTEXT1_RENDEC_CONTEXT1_0_LSBMASK (0x0000003F)
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTEXT1_RENDEC_CONTEXT1_0_SHIFT (0)
+
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTEXT2_OFFSET (0x0158)
+
+// MSVDX_VEC CR_VEC_RENDEC_CONTEXT2 RENDEC_CONTEXT2_2
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTEXT2_RENDEC_CONTEXT2_2_MASK (0x003F0000)
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTEXT2_RENDEC_CONTEXT2_2_LSBMASK (0x0000003F)
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTEXT2_RENDEC_CONTEXT2_2_SHIFT (16)
+
+// MSVDX_VEC CR_VEC_RENDEC_CONTEXT2 RENDEC_CONTEXT2_1
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTEXT2_RENDEC_CONTEXT2_1_MASK (0x00003F00)
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTEXT2_RENDEC_CONTEXT2_1_LSBMASK (0x0000003F)
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTEXT2_RENDEC_CONTEXT2_1_SHIFT (8)
+
+// MSVDX_VEC CR_VEC_RENDEC_CONTEXT2 RENDEC_CONTEXT2_0
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTEXT2_RENDEC_CONTEXT2_0_MASK (0x0000003F)
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTEXT2_RENDEC_CONTEXT2_0_LSBMASK (0x0000003F)
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTEXT2_RENDEC_CONTEXT2_0_SHIFT (0)
+
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTEXT3_OFFSET (0x015C)
+
+// MSVDX_VEC CR_VEC_RENDEC_CONTEXT3 RENDEC_CONTEXT3_2
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTEXT3_RENDEC_CONTEXT3_2_MASK (0x003F0000)
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTEXT3_RENDEC_CONTEXT3_2_LSBMASK (0x0000003F)
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTEXT3_RENDEC_CONTEXT3_2_SHIFT (16)
+
+// MSVDX_VEC CR_VEC_RENDEC_CONTEXT3 RENDEC_CONTEXT3_1
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTEXT3_RENDEC_CONTEXT3_1_MASK (0x00003F00)
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTEXT3_RENDEC_CONTEXT3_1_LSBMASK (0x0000003F)
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTEXT3_RENDEC_CONTEXT3_1_SHIFT (8)
+
+// MSVDX_VEC CR_VEC_RENDEC_CONTEXT3 RENDEC_CONTEXT3_0
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTEXT3_RENDEC_CONTEXT3_0_MASK (0x0000003F)
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTEXT3_RENDEC_CONTEXT3_0_LSBMASK (0x0000003F)
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTEXT3_RENDEC_CONTEXT3_0_SHIFT (0)
+
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTEXT4_OFFSET (0x0160)
+
+// MSVDX_VEC CR_VEC_RENDEC_CONTEXT4 RENDEC_CONTEXT4_2
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTEXT4_RENDEC_CONTEXT4_2_MASK (0x003F0000)
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTEXT4_RENDEC_CONTEXT4_2_LSBMASK (0x0000003F)
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTEXT4_RENDEC_CONTEXT4_2_SHIFT (16)
+
+// MSVDX_VEC CR_VEC_RENDEC_CONTEXT4 RENDEC_CONTEXT4_1
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTEXT4_RENDEC_CONTEXT4_1_MASK (0x00003F00)
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTEXT4_RENDEC_CONTEXT4_1_LSBMASK (0x0000003F)
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTEXT4_RENDEC_CONTEXT4_1_SHIFT (8)
+
+// MSVDX_VEC CR_VEC_RENDEC_CONTEXT4 RENDEC_CONTEXT4_0
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTEXT4_RENDEC_CONTEXT4_0_MASK (0x0000003F)
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTEXT4_RENDEC_CONTEXT4_0_LSBMASK (0x0000003F)
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTEXT4_RENDEC_CONTEXT4_0_SHIFT (0)
+
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTEXT5_OFFSET (0x0164)
+
+// MSVDX_VEC CR_VEC_RENDEC_CONTEXT5 RENDEC_CONTEXT5_2
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTEXT5_RENDEC_CONTEXT5_2_MASK (0x003F0000)
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTEXT5_RENDEC_CONTEXT5_2_LSBMASK (0x0000003F)
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTEXT5_RENDEC_CONTEXT5_2_SHIFT (16)
+
+// MSVDX_VEC CR_VEC_RENDEC_CONTEXT5 RENDEC_CONTEXT5_1
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTEXT5_RENDEC_CONTEXT5_1_MASK (0x00003F00)
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTEXT5_RENDEC_CONTEXT5_1_LSBMASK (0x0000003F)
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTEXT5_RENDEC_CONTEXT5_1_SHIFT (8)
+
+// MSVDX_VEC CR_VEC_RENDEC_CONTEXT5 RENDEC_CONTEXT5_0
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTEXT5_RENDEC_CONTEXT5_0_MASK (0x0000003F)
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTEXT5_RENDEC_CONTEXT5_0_LSBMASK (0x0000003F)
+#define MSVDX_VEC_CR_VEC_RENDEC_CONTEXT5_RENDEC_CONTEXT5_0_SHIFT (0)
+
+
+// MSVDX_VEC CR_SR_BITS_CONSUMED SR_BITS_CONSUMED
+#define MSVDX_VEC_CR_SR_BITS_CONSUMED_SR_BITS_CONSUMED_MASK (0x03FFFFFF)
+#define MSVDX_VEC_CR_SR_BITS_CONSUMED_SR_BITS_CONSUMED_LSBMASK (0x03FFFFFF)
+#define MSVDX_VEC_CR_SR_BITS_CONSUMED_SR_BITS_CONSUMED_SHIFT (0)
+
+#define MSVDX_VEC_CR_VEC_BE_ENTDEC_SYNC_OFFSET (0x0180)
+
+// MSVDX_VEC CR_VEC_BE_ENTDEC_SYNC BE_ENTDEC_SYNC_FLAG
+#define MSVDX_VEC_CR_VEC_BE_ENTDEC_SYNC_BE_ENTDEC_SYNC_FLAG_MASK (0x00000001)
+#define MSVDX_VEC_CR_VEC_BE_ENTDEC_SYNC_BE_ENTDEC_SYNC_FLAG_LSBMASK (0x00000001)
+#define MSVDX_VEC_CR_VEC_BE_ENTDEC_SYNC_BE_ENTDEC_SYNC_FLAG_SHIFT (0)
+
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __MSVDX_VEC_REG_IO2_H__ */
diff --git a/src/hwdefs/msvdx_vec_vc1_reg_io2.h b/src/hwdefs/msvdx_vec_vc1_reg_io2.h
new file mode 100644
index 0000000..25ffca6
--- /dev/null
+++ b/src/hwdefs/msvdx_vec_vc1_reg_io2.h
@@ -0,0 +1,562 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+
+/******************************************************************************
+
+ @File msvdx_vec_vc1_reg_io2.h
+
+ @Title MSVDX Offsets
+
+ @Platform </b>\n
+
+ @Description </b>\n This file contains the MSVDX_VEC_VC1_REG_IO2_H Defintions.
+
+******************************************************************************/
+#if !defined (__MSVDX_VEC_VC1_REG_IO2_H__)
+#define __MSVDX_VEC_VC1_REG_IO2_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_SPS0_OFFSET (0x0400)
+
+// MSVDX_VEC_VC1 CR_VEC_VC1_FE_SPS0 VC1_FE_SYNCMARKER
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_SPS0_VC1_FE_SYNCMARKER_MASK (0x00000004)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_SPS0_VC1_FE_SYNCMARKER_LSBMASK (0x00000001)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_SPS0_VC1_FE_SYNCMARKER_SHIFT (2)
+
+// MSVDX_VEC_VC1 CR_VEC_VC1_FE_SPS0 VC1_FE_VSTRANSFORM
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_SPS0_VC1_FE_VSTRANSFORM_MASK (0x00000002)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_SPS0_VC1_FE_VSTRANSFORM_LSBMASK (0x00000001)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_SPS0_VC1_FE_VSTRANSFORM_SHIFT (1)
+
+// MSVDX_VEC_VC1 CR_VEC_VC1_FE_SPS0 VC1_FE_INTERLACE
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_SPS0_VC1_FE_INTERLACE_MASK (0x00000001)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_SPS0_VC1_FE_INTERLACE_LSBMASK (0x00000001)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_SPS0_VC1_FE_INTERLACE_SHIFT (0)
+
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS0_OFFSET (0x0404)
+
+// MSVDX_VEC_VC1 CR_VEC_VC1_FE_PPS0 VC1_FE_PIC_WIDTH_IN_MBS_LESS1
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS0_VC1_FE_PIC_WIDTH_IN_MBS_LESS1_MASK (0x03F80000)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS0_VC1_FE_PIC_WIDTH_IN_MBS_LESS1_LSBMASK (0x0000007F)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS0_VC1_FE_PIC_WIDTH_IN_MBS_LESS1_SHIFT (19)
+
+// MSVDX_VEC_VC1 CR_VEC_VC1_FE_PPS0 VC1_FE_PIC_HEIGHT_IN_MBS_LESS1
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS0_VC1_FE_PIC_HEIGHT_IN_MBS_LESS1_MASK (0x0007F000)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS0_VC1_FE_PIC_HEIGHT_IN_MBS_LESS1_LSBMASK (0x0000007F)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS0_VC1_FE_PIC_HEIGHT_IN_MBS_LESS1_SHIFT (12)
+
+// MSVDX_VEC_VC1 CR_VEC_VC1_FE_PPS0 VC1_FE_FIRST_MB_IN_SLICE_Y
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS0_VC1_FE_FIRST_MB_IN_SLICE_Y_MASK (0x00000FE0)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS0_VC1_FE_FIRST_MB_IN_SLICE_Y_LSBMASK (0x0000007F)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS0_VC1_FE_FIRST_MB_IN_SLICE_Y_SHIFT (5)
+
+// MSVDX_VEC_VC1 CR_VEC_VC1_FE_PPS0 VC1_FE_PTYPE
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS0_VC1_FE_PTYPE_MASK (0x0000001C)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS0_VC1_FE_PTYPE_LSBMASK (0x00000007)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS0_VC1_FE_PTYPE_SHIFT (2)
+
+// MSVDX_VEC_VC1 CR_VEC_VC1_FE_PPS0 VC1_FE_FCM
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS0_VC1_FE_FCM_MASK (0x00000003)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS0_VC1_FE_FCM_LSBMASK (0x00000003)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS0_VC1_FE_FCM_SHIFT (0)
+
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS1_OFFSET (0x0408)
+
+// MSVDX_VEC_VC1 CR_VEC_VC1_FE_PPS1 VC1_FE_BP_FORMAT
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS1_VC1_FE_BP_FORMAT_MASK (0x20000000)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS1_VC1_FE_BP_FORMAT_LSBMASK (0x00000001)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS1_VC1_FE_BP_FORMAT_SHIFT (29)
+
+// MSVDX_VEC_VC1 CR_VEC_VC1_FE_PPS1 VC1_FE_BP_PRESENT
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS1_VC1_FE_BP_PRESENT_MASK (0x1C000000)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS1_VC1_FE_BP_PRESENT_LSBMASK (0x00000007)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS1_VC1_FE_BP_PRESENT_SHIFT (26)
+
+// MSVDX_VEC_VC1 CR_VEC_VC1_FE_PPS1 VC1_FE_RAWCODINGFLAG
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS1_VC1_FE_RAWCODINGFLAG_MASK (0x03F80000)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS1_VC1_FE_RAWCODINGFLAG_LSBMASK (0x0000007F)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS1_VC1_FE_RAWCODINGFLAG_SHIFT (19)
+
+// MSVDX_VEC_VC1 CR_VEC_VC1_FE_PPS1 VC1_FE_MVMODE
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS1_VC1_FE_MVMODE_MASK (0x00070000)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS1_VC1_FE_MVMODE_LSBMASK (0x00000007)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS1_VC1_FE_MVMODE_SHIFT (16)
+
+// MSVDX_VEC_VC1 CR_VEC_VC1_FE_PPS1 VC1_FE_MVMODE2
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS1_VC1_FE_MVMODE2_MASK (0x00006000)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS1_VC1_FE_MVMODE2_LSBMASK (0x00000003)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS1_VC1_FE_MVMODE2_SHIFT (13)
+
+// MSVDX_VEC_VC1 CR_VEC_VC1_FE_PPS1 VC1_FE_TTMBF
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS1_VC1_FE_TTMBF_MASK (0x00001000)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS1_VC1_FE_TTMBF_LSBMASK (0x00000001)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS1_VC1_FE_TTMBF_SHIFT (12)
+
+// MSVDX_VEC_VC1 CR_VEC_VC1_FE_PPS1 VC1_FE_TTFRM
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS1_VC1_FE_TTFRM_MASK (0x00000C00)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS1_VC1_FE_TTFRM_LSBMASK (0x00000003)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS1_VC1_FE_TTFRM_SHIFT (10)
+
+// MSVDX_VEC_VC1 CR_VEC_VC1_FE_PPS1 VC1_FE_BFRACTION
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS1_VC1_FE_BFRACTION_MASK (0x000003E0)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS1_VC1_FE_BFRACTION_LSBMASK (0x0000001F)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS1_VC1_FE_BFRACTION_SHIFT (5)
+
+// MSVDX_VEC_VC1 CR_VEC_VC1_FE_PPS1 VC1_FE_CONDOVER
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS1_VC1_FE_CONDOVER_MASK (0x0000000C)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS1_VC1_FE_CONDOVER_LSBMASK (0x00000003)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS1_VC1_FE_CONDOVER_SHIFT (2)
+
+// MSVDX_VEC_VC1 CR_VEC_VC1_FE_PPS1 VC1_FE_EXTEND_X
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS1_VC1_FE_EXTEND_X_MASK (0x00000002)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS1_VC1_FE_EXTEND_X_LSBMASK (0x00000001)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS1_VC1_FE_EXTEND_X_SHIFT (1)
+
+// MSVDX_VEC_VC1 CR_VEC_VC1_FE_PPS1 VC1_FE_EXTEND_Y
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS1_VC1_FE_EXTEND_Y_MASK (0x00000001)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS1_VC1_FE_EXTEND_Y_LSBMASK (0x00000001)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS1_VC1_FE_EXTEND_Y_SHIFT (0)
+
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS2_OFFSET (0x040C)
+
+// MSVDX_VEC_VC1 CR_VEC_VC1_FE_PPS2 VC1_FE_DQXBEDGE
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS2_VC1_FE_DQXBEDGE_MASK (0x03000000)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS2_VC1_FE_DQXBEDGE_LSBMASK (0x00000003)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS2_VC1_FE_DQXBEDGE_SHIFT (24)
+
+// MSVDX_VEC_VC1 CR_VEC_VC1_FE_PPS2 VC1_FE_DQUANT
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS2_VC1_FE_DQUANT_MASK (0x00C00000)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS2_VC1_FE_DQUANT_LSBMASK (0x00000003)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS2_VC1_FE_DQUANT_SHIFT (22)
+
+// MSVDX_VEC_VC1 CR_VEC_VC1_FE_PPS2 VC1_FE_VOPDQUANT_PRESENT
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS2_VC1_FE_VOPDQUANT_PRESENT_MASK (0x00200000)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS2_VC1_FE_VOPDQUANT_PRESENT_LSBMASK (0x00000001)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS2_VC1_FE_VOPDQUANT_PRESENT_SHIFT (21)
+
+// MSVDX_VEC_VC1 CR_VEC_VC1_FE_PPS2 VC1_FE_PQUANT
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS2_VC1_FE_PQUANT_MASK (0x001F0000)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS2_VC1_FE_PQUANT_LSBMASK (0x0000001F)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS2_VC1_FE_PQUANT_SHIFT (16)
+
+// MSVDX_VEC_VC1 CR_VEC_VC1_FE_PPS2 VC1_FE_HALFQP
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS2_VC1_FE_HALFQP_MASK (0x00008000)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS2_VC1_FE_HALFQP_LSBMASK (0x00000001)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS2_VC1_FE_HALFQP_SHIFT (15)
+
+// MSVDX_VEC_VC1 CR_VEC_VC1_FE_PPS2 VC1_FE_DQUANTFRM
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS2_VC1_FE_DQUANTFRM_MASK (0x00004000)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS2_VC1_FE_DQUANTFRM_LSBMASK (0x00000001)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS2_VC1_FE_DQUANTFRM_SHIFT (14)
+
+// MSVDX_VEC_VC1 CR_VEC_VC1_FE_PPS2 VC1_FE_DQUANT_INFRAME
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS2_VC1_FE_DQUANT_INFRAME_MASK (0x00002000)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS2_VC1_FE_DQUANT_INFRAME_LSBMASK (0x00000001)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS2_VC1_FE_DQUANT_INFRAME_SHIFT (13)
+
+// MSVDX_VEC_VC1 CR_VEC_VC1_FE_PPS2 VC1_FE_ALTPQUANT
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS2_VC1_FE_ALTPQUANT_MASK (0x00001F00)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS2_VC1_FE_ALTPQUANT_LSBMASK (0x0000001F)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS2_VC1_FE_ALTPQUANT_SHIFT (8)
+
+// MSVDX_VEC_VC1 CR_VEC_VC1_FE_PPS2 VC1_FE_DQPROFILE
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS2_VC1_FE_DQPROFILE_MASK (0x000000C0)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS2_VC1_FE_DQPROFILE_LSBMASK (0x00000003)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS2_VC1_FE_DQPROFILE_SHIFT (6)
+
+// MSVDX_VEC_VC1 CR_VEC_VC1_FE_PPS2 VC1_FE_DQBILEVEL
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS2_VC1_FE_DQBILEVEL_MASK (0x00000020)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS2_VC1_FE_DQBILEVEL_LSBMASK (0x00000001)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS2_VC1_FE_DQBILEVEL_SHIFT (5)
+
+// MSVDX_VEC_VC1 CR_VEC_VC1_FE_PPS2 VC1_FE_PQINDEX_GT8
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS2_VC1_FE_PQINDEX_GT8_MASK (0x00000010)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS2_VC1_FE_PQINDEX_GT8_LSBMASK (0x00000001)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS2_VC1_FE_PQINDEX_GT8_SHIFT (4)
+
+// MSVDX_VEC_VC1 CR_VEC_VC1_FE_PPS2 VC1_FE_TRANSACFRM
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS2_VC1_FE_TRANSACFRM_MASK (0x0000000C)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS2_VC1_FE_TRANSACFRM_LSBMASK (0x00000003)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS2_VC1_FE_TRANSACFRM_SHIFT (2)
+
+// MSVDX_VEC_VC1 CR_VEC_VC1_FE_PPS2 VC1_FE_TRANSACFRM2
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS2_VC1_FE_TRANSACFRM2_MASK (0x00000003)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS2_VC1_FE_TRANSACFRM2_LSBMASK (0x00000003)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS2_VC1_FE_TRANSACFRM2_SHIFT (0)
+
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_MVD_LITE0_OFFSET (0x0410)
+
+// MSVDX_VEC_VC1 CR_VEC_VC1_FE_MVD_LITE0 VC1_FE_MVD_LITE_ENABLE
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_MVD_LITE0_VC1_FE_MVD_LITE_ENABLE_MASK (0x40000000)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_MVD_LITE0_VC1_FE_MVD_LITE_ENABLE_LSBMASK (0x00000001)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_MVD_LITE0_VC1_FE_MVD_LITE_ENABLE_SHIFT (30)
+
+// MSVDX_VEC_VC1 CR_VEC_VC1_FE_MVD_LITE0 VC1_FE_PULLBACK_X
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_MVD_LITE0_VC1_FE_PULLBACK_X_MASK (0x3FFF0000)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_MVD_LITE0_VC1_FE_PULLBACK_X_LSBMASK (0x00003FFF)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_MVD_LITE0_VC1_FE_PULLBACK_X_SHIFT (16)
+
+// MSVDX_VEC_VC1 CR_VEC_VC1_FE_MVD_LITE0 VC1_FE_PULLBACK_Y
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_MVD_LITE0_VC1_FE_PULLBACK_Y_MASK (0x00003FFF)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_MVD_LITE0_VC1_FE_PULLBACK_Y_LSBMASK (0x00003FFF)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_MVD_LITE0_VC1_FE_PULLBACK_Y_SHIFT (0)
+
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_MVD_LITE1_OFFSET (0x0414)
+
+// MSVDX_VEC_VC1 CR_VEC_VC1_FE_MVD_LITE1 VC1_FE_TFF
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_MVD_LITE1_VC1_FE_TFF_MASK (0x40000000)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_MVD_LITE1_VC1_FE_TFF_LSBMASK (0x00000001)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_MVD_LITE1_VC1_FE_TFF_SHIFT (30)
+
+// MSVDX_VEC_VC1 CR_VEC_VC1_FE_MVD_LITE1 VC1_FE_SCAN_INDEX
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_MVD_LITE1_VC1_FE_SCAN_INDEX_MASK (0x38000000)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_MVD_LITE1_VC1_FE_SCAN_INDEX_LSBMASK (0x00000007)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_MVD_LITE1_VC1_FE_SCAN_INDEX_SHIFT (27)
+
+// MSVDX_VEC_VC1 CR_VEC_VC1_FE_MVD_LITE1 VC1_FE_REFDIST
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_MVD_LITE1_VC1_FE_REFDIST_MASK (0x07C00000)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_MVD_LITE1_VC1_FE_REFDIST_LSBMASK (0x0000001F)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_MVD_LITE1_VC1_FE_REFDIST_SHIFT (22)
+
+// MSVDX_VEC_VC1 CR_VEC_VC1_FE_MVD_LITE1 VC1_FE_NUMREF
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_MVD_LITE1_VC1_FE_NUMREF_MASK (0x00200000)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_MVD_LITE1_VC1_FE_NUMREF_LSBMASK (0x00000001)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_MVD_LITE1_VC1_FE_NUMREF_SHIFT (21)
+
+// MSVDX_VEC_VC1 CR_VEC_VC1_FE_MVD_LITE1 VC1_FE_REFFIELD
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_MVD_LITE1_VC1_FE_REFFIELD_MASK (0x00100000)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_MVD_LITE1_VC1_FE_REFFIELD_LSBMASK (0x00000001)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_MVD_LITE1_VC1_FE_REFFIELD_SHIFT (20)
+
+// MSVDX_VEC_VC1 CR_VEC_VC1_FE_MVD_LITE1 VC1_FE_MVRANGE
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_MVD_LITE1_VC1_FE_MVRANGE_MASK (0x000C0000)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_MVD_LITE1_VC1_FE_MVRANGE_LSBMASK (0x00000003)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_MVD_LITE1_VC1_FE_MVRANGE_SHIFT (18)
+
+// MSVDX_VEC_VC1 CR_VEC_VC1_FE_MVD_LITE1 VC1_FE_HALFPEL_FLAG
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_MVD_LITE1_VC1_FE_HALFPEL_FLAG_MASK (0x00020000)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_MVD_LITE1_VC1_FE_HALFPEL_FLAG_LSBMASK (0x00000001)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_MVD_LITE1_VC1_FE_HALFPEL_FLAG_SHIFT (17)
+
+// MSVDX_VEC_VC1 CR_VEC_VC1_FE_MVD_LITE1 VC1_FE_BOTTOM_FIELD_FLAG
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_MVD_LITE1_VC1_FE_BOTTOM_FIELD_FLAG_MASK (0x00010000)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_MVD_LITE1_VC1_FE_BOTTOM_FIELD_FLAG_LSBMASK (0x00000001)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_MVD_LITE1_VC1_FE_BOTTOM_FIELD_FLAG_SHIFT (16)
+
+// MSVDX_VEC_VC1 CR_VEC_VC1_FE_MVD_LITE1 VC1_FE_ADVANCED_PROFILE
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_MVD_LITE1_VC1_FE_ADVANCED_PROFILE_MASK (0x00008000)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_MVD_LITE1_VC1_FE_ADVANCED_PROFILE_LSBMASK (0x00000001)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_MVD_LITE1_VC1_FE_ADVANCED_PROFILE_SHIFT (15)
+
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_BITPLANES_BASE_ADDR0_OFFSET (0x0418)
+
+// MSVDX_VEC_VC1 CR_VEC_VC1_FE_BITPLANES_BASE_ADDR0 VC1_FE_BITPLANES_BASE_ADDR0
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_BITPLANES_BASE_ADDR0_VC1_FE_BITPLANES_BASE_ADDR0_MASK (0xFFFFF000)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_BITPLANES_BASE_ADDR0_VC1_FE_BITPLANES_BASE_ADDR0_LSBMASK (0x000FFFFF)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_BITPLANES_BASE_ADDR0_VC1_FE_BITPLANES_BASE_ADDR0_SHIFT (12)
+
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_BITPLANES_BASE_ADDR1_OFFSET (0x041C)
+
+// MSVDX_VEC_VC1 CR_VEC_VC1_FE_BITPLANES_BASE_ADDR1 VC1_FE_BITPLANES_BASE_ADDR1
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_BITPLANES_BASE_ADDR1_VC1_FE_BITPLANES_BASE_ADDR1_MASK (0xFFFFF000)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_BITPLANES_BASE_ADDR1_VC1_FE_BITPLANES_BASE_ADDR1_LSBMASK (0x000FFFFF)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_BITPLANES_BASE_ADDR1_VC1_FE_BITPLANES_BASE_ADDR1_SHIFT (12)
+
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_BITPLANES_BASE_ADDR2_OFFSET (0x0420)
+
+// MSVDX_VEC_VC1 CR_VEC_VC1_FE_BITPLANES_BASE_ADDR2 VC1_FE_BITPLANES_BASE_ADDR2
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_BITPLANES_BASE_ADDR2_VC1_FE_BITPLANES_BASE_ADDR2_MASK (0xFFFFF000)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_BITPLANES_BASE_ADDR2_VC1_FE_BITPLANES_BASE_ADDR2_LSBMASK (0x000FFFFF)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_BITPLANES_BASE_ADDR2_VC1_FE_BITPLANES_BASE_ADDR2_SHIFT (12)
+
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS3_OFFSET (0x0424)
+
+// MSVDX_VEC_VC1 CR_VEC_VC1_FE_PPS3 VC1_FE_PIC_SIZE_IN_MBS_LESS1
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS3_VC1_FE_PIC_SIZE_IN_MBS_LESS1_MASK (0x00003FFF)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS3_VC1_FE_PIC_SIZE_IN_MBS_LESS1_LSBMASK (0x00003FFF)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_FE_PPS3_VC1_FE_PIC_SIZE_IN_MBS_LESS1_SHIFT (0)
+
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_SPS0_OFFSET (0x0450)
+
+// MSVDX_VEC_VC1 CR_VEC_VC1_BE_SPS0 VC1_BE_EXTENDED_DMV
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_SPS0_VC1_BE_EXTENDED_DMV_MASK (0x00000008)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_SPS0_VC1_BE_EXTENDED_DMV_LSBMASK (0x00000001)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_SPS0_VC1_BE_EXTENDED_DMV_SHIFT (3)
+
+// MSVDX_VEC_VC1 CR_VEC_VC1_BE_SPS0 VC1_BE_EXTENDED_MV
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_SPS0_VC1_BE_EXTENDED_MV_MASK (0x00000004)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_SPS0_VC1_BE_EXTENDED_MV_LSBMASK (0x00000001)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_SPS0_VC1_BE_EXTENDED_MV_SHIFT (2)
+
+// MSVDX_VEC_VC1 CR_VEC_VC1_BE_SPS0 VC1_BE_FASTUVMC
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_SPS0_VC1_BE_FASTUVMC_MASK (0x00000002)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_SPS0_VC1_BE_FASTUVMC_LSBMASK (0x00000001)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_SPS0_VC1_BE_FASTUVMC_SHIFT (1)
+
+// MSVDX_VEC_VC1 CR_VEC_VC1_BE_SPS0 VC1_BE_INTERLACE
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_SPS0_VC1_BE_INTERLACE_MASK (0x00000001)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_SPS0_VC1_BE_INTERLACE_LSBMASK (0x00000001)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_SPS0_VC1_BE_INTERLACE_SHIFT (0)
+
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_SPS1_OFFSET (0x0454)
+
+// MSVDX_VEC_VC1 CR_VEC_VC1_BE_SPS1 VC1_BE_PIC_HEIGHT_IN_MBS_LESS1
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_SPS1_VC1_BE_PIC_HEIGHT_IN_MBS_LESS1_MASK (0x0000007F)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_SPS1_VC1_BE_PIC_HEIGHT_IN_MBS_LESS1_LSBMASK (0x0000007F)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_SPS1_VC1_BE_PIC_HEIGHT_IN_MBS_LESS1_SHIFT (0)
+
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_SPS2_OFFSET (0x0458)
+
+// MSVDX_VEC_VC1 CR_VEC_VC1_BE_SPS2 VC1_BE_PIC_WIDTH_IN_MBS_LESS1
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_SPS2_VC1_BE_PIC_WIDTH_IN_MBS_LESS1_MASK (0x0000007F)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_SPS2_VC1_BE_PIC_WIDTH_IN_MBS_LESS1_LSBMASK (0x0000007F)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_SPS2_VC1_BE_PIC_WIDTH_IN_MBS_LESS1_SHIFT (0)
+
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_PPS2_OFFSET (0x0460)
+
+// MSVDX_VEC_VC1 CR_VEC_VC1_BE_PPS2 VC1_BE_COLLOCATED_SKIPPED
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_PPS2_VC1_BE_COLLOCATED_SKIPPED_MASK (0x00000040)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_PPS2_VC1_BE_COLLOCATED_SKIPPED_LSBMASK (0x00000001)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_PPS2_VC1_BE_COLLOCATED_SKIPPED_SHIFT (6)
+
+// MSVDX_VEC_VC1 CR_VEC_VC1_BE_PPS2 VC1_BE_FCM_REF2
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_PPS2_VC1_BE_FCM_REF2_MASK (0x00000030)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_PPS2_VC1_BE_FCM_REF2_LSBMASK (0x00000003)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_PPS2_VC1_BE_FCM_REF2_SHIFT (4)
+
+// MSVDX_VEC_VC1 CR_VEC_VC1_BE_PPS2 VC1_BE_FCM_REF1
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_PPS2_VC1_BE_FCM_REF1_MASK (0x0000000C)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_PPS2_VC1_BE_FCM_REF1_LSBMASK (0x00000003)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_PPS2_VC1_BE_FCM_REF1_SHIFT (2)
+
+// MSVDX_VEC_VC1 CR_VEC_VC1_BE_PPS2 VC1_BE_FCM_REF0
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_PPS2_VC1_BE_FCM_REF0_MASK (0x00000003)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_PPS2_VC1_BE_FCM_REF0_LSBMASK (0x00000003)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_PPS2_VC1_BE_FCM_REF0_SHIFT (0)
+
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_PPS0_OFFSET (0x0464)
+
+// MSVDX_VEC_VC1 CR_VEC_VC1_BE_PPS0 VC1_BE_IQ_OVERLAP
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_PPS0_VC1_BE_IQ_OVERLAP_MASK (0x00004000)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_PPS0_VC1_BE_IQ_OVERLAP_LSBMASK (0x00000001)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_PPS0_VC1_BE_IQ_OVERLAP_SHIFT (14)
+
+// MSVDX_VEC_VC1 CR_VEC_VC1_BE_PPS0 VC1_BE_UNIFORM_QUANTIZER
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_PPS0_VC1_BE_UNIFORM_QUANTIZER_MASK (0x00002000)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_PPS0_VC1_BE_UNIFORM_QUANTIZER_LSBMASK (0x00000001)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_PPS0_VC1_BE_UNIFORM_QUANTIZER_SHIFT (13)
+
+// MSVDX_VEC_VC1 CR_VEC_VC1_BE_PPS0 VC1_BE_TFF_BWD
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_PPS0_VC1_BE_TFF_BWD_MASK (0x00001000)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_PPS0_VC1_BE_TFF_BWD_LSBMASK (0x00000001)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_PPS0_VC1_BE_TFF_BWD_SHIFT (12)
+
+// MSVDX_VEC_VC1 CR_VEC_VC1_BE_PPS0 VC1_BE_TFF_FWD
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_PPS0_VC1_BE_TFF_FWD_MASK (0x00000800)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_PPS0_VC1_BE_TFF_FWD_LSBMASK (0x00000001)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_PPS0_VC1_BE_TFF_FWD_SHIFT (11)
+
+// MSVDX_VEC_VC1 CR_VEC_VC1_BE_PPS0 VC1_BE_TFF
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_PPS0_VC1_BE_TFF_MASK (0x00000400)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_PPS0_VC1_BE_TFF_LSBMASK (0x00000001)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_PPS0_VC1_BE_TFF_SHIFT (10)
+
+// MSVDX_VEC_VC1 CR_VEC_VC1_BE_PPS0 VC1_BE_SECOND_FIELD
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_PPS0_VC1_BE_SECOND_FIELD_MASK (0x00000200)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_PPS0_VC1_BE_SECOND_FIELD_LSBMASK (0x00000001)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_PPS0_VC1_BE_SECOND_FIELD_SHIFT (9)
+
+// MSVDX_VEC_VC1 CR_VEC_VC1_BE_PPS0 VC1_BE_HALFQP
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_PPS0_VC1_BE_HALFQP_MASK (0x00000100)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_PPS0_VC1_BE_HALFQP_LSBMASK (0x00000001)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_PPS0_VC1_BE_HALFQP_SHIFT (8)
+
+// MSVDX_VEC_VC1 CR_VEC_VC1_BE_PPS0 VC1_BE_BFRACTION
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_PPS0_VC1_BE_BFRACTION_MASK (0x000000F8)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_PPS0_VC1_BE_BFRACTION_LSBMASK (0x0000001F)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_PPS0_VC1_BE_BFRACTION_SHIFT (3)
+
+// MSVDX_VEC_VC1 CR_VEC_VC1_BE_PPS0 VC1_BE_FCM
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_PPS0_VC1_BE_FCM_MASK (0x00000006)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_PPS0_VC1_BE_FCM_LSBMASK (0x00000003)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_PPS0_VC1_BE_FCM_SHIFT (1)
+
+// MSVDX_VEC_VC1 CR_VEC_VC1_BE_PPS0 VC1_BE_RNDCTRL
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_PPS0_VC1_BE_RNDCTRL_MASK (0x00000001)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_PPS0_VC1_BE_RNDCTRL_LSBMASK (0x00000001)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_PPS0_VC1_BE_RNDCTRL_SHIFT (0)
+
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_PPS1_OFFSET (0x0468)
+
+// MSVDX_VEC_VC1 CR_VEC_VC1_BE_PPS1 VC1_BE_EXTEND_Y
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_PPS1_VC1_BE_EXTEND_Y_MASK (0x00010000)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_PPS1_VC1_BE_EXTEND_Y_LSBMASK (0x00000001)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_PPS1_VC1_BE_EXTEND_Y_SHIFT (16)
+
+// MSVDX_VEC_VC1 CR_VEC_VC1_BE_PPS1 VC1_BE_EXTEND_X
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_PPS1_VC1_BE_EXTEND_X_MASK (0x00008000)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_PPS1_VC1_BE_EXTEND_X_LSBMASK (0x00000001)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_PPS1_VC1_BE_EXTEND_X_SHIFT (15)
+
+// MSVDX_VEC_VC1 CR_VEC_VC1_BE_PPS1 VC1_BE_QUANTIZER
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_PPS1_VC1_BE_QUANTIZER_MASK (0x00006000)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_PPS1_VC1_BE_QUANTIZER_LSBMASK (0x00000003)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_PPS1_VC1_BE_QUANTIZER_SHIFT (13)
+
+// MSVDX_VEC_VC1 CR_VEC_VC1_BE_PPS1 VC1_BE_PQUANT
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_PPS1_VC1_BE_PQUANT_MASK (0x00001F00)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_PPS1_VC1_BE_PQUANT_LSBMASK (0x0000001F)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_PPS1_VC1_BE_PQUANT_SHIFT (8)
+
+// MSVDX_VEC_VC1 CR_VEC_VC1_BE_PPS1 VC1_BE_MVMODE
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_PPS1_VC1_BE_MVMODE_MASK (0x000000E0)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_PPS1_VC1_BE_MVMODE_LSBMASK (0x00000007)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_PPS1_VC1_BE_MVMODE_SHIFT (5)
+
+// MSVDX_VEC_VC1 CR_VEC_VC1_BE_PPS1 VC1_BE_MVMODE2
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_PPS1_VC1_BE_MVMODE2_MASK (0x00000018)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_PPS1_VC1_BE_MVMODE2_LSBMASK (0x00000003)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_PPS1_VC1_BE_MVMODE2_SHIFT (3)
+
+// MSVDX_VEC_VC1 CR_VEC_VC1_BE_PPS1 VC1_BE_PTYPE
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_PPS1_VC1_BE_PTYPE_MASK (0x00000007)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_PPS1_VC1_BE_PTYPE_LSBMASK (0x00000007)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_PPS1_VC1_BE_PTYPE_SHIFT (0)
+
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_MVD0_OFFSET (0x046C)
+
+// MSVDX_VEC_VC1 CR_VEC_VC1_BE_MVD0 VC1_BE_BRPD
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_MVD0_VC1_BE_BRPD_MASK (0x00001F00)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_MVD0_VC1_BE_BRPD_LSBMASK (0x0000001F)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_MVD0_VC1_BE_BRPD_SHIFT (8)
+
+// MSVDX_VEC_VC1 CR_VEC_VC1_BE_MVD0 VC1_BE_FRPD
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_MVD0_VC1_BE_FRPD_MASK (0x0000001F)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_MVD0_VC1_BE_FRPD_LSBMASK (0x0000001F)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_MVD0_VC1_BE_FRPD_SHIFT (0)
+
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_MVD1_OFFSET (0x0470)
+
+// MSVDX_VEC_VC1 CR_VEC_VC1_BE_MVD1 VC1_BE_SCALEFACTOR
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_MVD1_VC1_BE_SCALEFACTOR_MASK (0x000007FF)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_MVD1_VC1_BE_SCALEFACTOR_LSBMASK (0x000007FF)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_MVD1_VC1_BE_SCALEFACTOR_SHIFT (0)
+
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_MVD2_OFFSET (0x0474)
+
+// MSVDX_VEC_VC1 CR_VEC_VC1_BE_MVD2 VC1_BE_PULLBACK_X
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_MVD2_VC1_BE_PULLBACK_X_MASK (0x00003FFF)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_MVD2_VC1_BE_PULLBACK_X_LSBMASK (0x00003FFF)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_MVD2_VC1_BE_PULLBACK_X_SHIFT (0)
+
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_MVD3_OFFSET (0x0478)
+
+// MSVDX_VEC_VC1 CR_VEC_VC1_BE_MVD3 VC1_BE_PULLBACK_Y
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_MVD3_VC1_BE_PULLBACK_Y_MASK (0x00003FFF)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_MVD3_VC1_BE_PULLBACK_Y_LSBMASK (0x00003FFF)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_MVD3_VC1_BE_PULLBACK_Y_SHIFT (0)
+
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_MVD4_OFFSET (0x047C)
+
+// MSVDX_VEC_VC1 CR_VEC_VC1_BE_MVD4 VC1_BE_FIRST_MB_IN_SLICE_Y
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_MVD4_VC1_BE_FIRST_MB_IN_SLICE_Y_MASK (0x0000007F)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_MVD4_VC1_BE_FIRST_MB_IN_SLICE_Y_LSBMASK (0x0000007F)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_MVD4_VC1_BE_FIRST_MB_IN_SLICE_Y_SHIFT (0)
+
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_MVD5_OFFSET (0x0480)
+
+// MSVDX_VEC_VC1 CR_VEC_VC1_BE_MVD5 VC1_BE_SCAN_INDEX
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_MVD5_VC1_BE_SCAN_INDEX_MASK (0x00007000)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_MVD5_VC1_BE_SCAN_INDEX_LSBMASK (0x00000007)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_MVD5_VC1_BE_SCAN_INDEX_SHIFT (12)
+
+// MSVDX_VEC_VC1 CR_VEC_VC1_BE_MVD5 VC1_BE_REFDIST
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_MVD5_VC1_BE_REFDIST_MASK (0x00000F80)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_MVD5_VC1_BE_REFDIST_LSBMASK (0x0000001F)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_MVD5_VC1_BE_REFDIST_SHIFT (7)
+
+// MSVDX_VEC_VC1 CR_VEC_VC1_BE_MVD5 VC1_BE_NUMREF
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_MVD5_VC1_BE_NUMREF_MASK (0x00000040)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_MVD5_VC1_BE_NUMREF_LSBMASK (0x00000001)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_MVD5_VC1_BE_NUMREF_SHIFT (6)
+
+// MSVDX_VEC_VC1 CR_VEC_VC1_BE_MVD5 VC1_BE_REFFIELD
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_MVD5_VC1_BE_REFFIELD_MASK (0x00000020)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_MVD5_VC1_BE_REFFIELD_LSBMASK (0x00000001)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_MVD5_VC1_BE_REFFIELD_SHIFT (5)
+
+// MSVDX_VEC_VC1 CR_VEC_VC1_BE_MVD5 VC1_BE_MVRANGE
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_MVD5_VC1_BE_MVRANGE_MASK (0x00000018)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_MVD5_VC1_BE_MVRANGE_LSBMASK (0x00000003)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_MVD5_VC1_BE_MVRANGE_SHIFT (3)
+
+// MSVDX_VEC_VC1 CR_VEC_VC1_BE_MVD5 VC1_BE_HALFPEL_FLAG
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_MVD5_VC1_BE_HALFPEL_FLAG_MASK (0x00000004)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_MVD5_VC1_BE_HALFPEL_FLAG_LSBMASK (0x00000001)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_MVD5_VC1_BE_HALFPEL_FLAG_SHIFT (2)
+
+// MSVDX_VEC_VC1 CR_VEC_VC1_BE_MVD5 VC1_BE_BOTTOM_FIELD_FLAG
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_MVD5_VC1_BE_BOTTOM_FIELD_FLAG_MASK (0x00000002)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_MVD5_VC1_BE_BOTTOM_FIELD_FLAG_LSBMASK (0x00000001)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_MVD5_VC1_BE_BOTTOM_FIELD_FLAG_SHIFT (1)
+
+// MSVDX_VEC_VC1 CR_VEC_VC1_BE_MVD5 VC1_BE_ADVANCED_PROFILE
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_MVD5_VC1_BE_ADVANCED_PROFILE_MASK (0x00000001)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_MVD5_VC1_BE_ADVANCED_PROFILE_LSBMASK (0x00000001)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_MVD5_VC1_BE_ADVANCED_PROFILE_SHIFT (0)
+
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_PARAM_BASE_ADDR_OFFSET (0x04EC)
+
+// MSVDX_VEC_VC1 CR_VEC_VC1_BE_PARAM_BASE_ADDR VC1_BE_PARAM_BASE_ADDRESS
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_PARAM_BASE_ADDR_VC1_BE_PARAM_BASE_ADDRESS_MASK (0xFFFFF000)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_PARAM_BASE_ADDR_VC1_BE_PARAM_BASE_ADDRESS_LSBMASK (0x000FFFFF)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_PARAM_BASE_ADDR_VC1_BE_PARAM_BASE_ADDRESS_SHIFT (12)
+
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_COLPARAM_BASE_ADDR_OFFSET (0x04F8)
+
+// MSVDX_VEC_VC1 CR_VEC_VC1_BE_COLPARAM_BASE_ADDR VC1_BE_COLPARAM_BASE_ADDRESS
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_COLPARAM_BASE_ADDR_VC1_BE_COLPARAM_BASE_ADDRESS_MASK (0xFFFFF000)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_COLPARAM_BASE_ADDR_VC1_BE_COLPARAM_BASE_ADDRESS_LSBMASK (0x000FFFFF)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BE_COLPARAM_BASE_ADDR_VC1_BE_COLPARAM_BASE_ADDRESS_SHIFT (12)
+
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BP_READ_OFFSET (0x0500)
+
+// MSVDX_VEC_VC1 CR_VEC_VC1_BP_READ VC1_BP_READ
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BP_READ_VC1_BP_READ_MASK (0x0000FFFF)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BP_READ_VC1_BP_READ_LSBMASK (0x0000FFFF)
+#define MSVDX_VEC_VC1_CR_VEC_VC1_BP_READ_VC1_BP_READ_SHIFT (0)
+
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __MSVDX_VEC_VC1_REG_IO2_H__ */
diff --git a/src/hwdefs/reg_io2.h b/src/hwdefs/reg_io2.h
new file mode 100644
index 0000000..bb8016d
--- /dev/null
+++ b/src/hwdefs/reg_io2.h
@@ -0,0 +1,397 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+
+/******************************************************************************
+
+ @File reg_io2.h
+
+ @Title MSVDX Offsets
+
+ @Platform Independent
+
+ @Description </b>\n
+
+******************************************************************************/
+#if !defined (__REG_IO2_H__)
+#define __REG_IO2_H__
+
+#if (__cplusplus)
+extern "C" {
+#endif
+
+#include "img_types.h"
+
+#ifdef DOXYGEN_WILL_SEE_THIS
+ /*!
+ ******************************************************************************
+
+ @Function REGIO_READ_FIELD
+
+ @Description
+
+ This macro is used to extract a field from a register.
+
+ @Input ui32RegValue: The register value.
+
+ @Input group: The name of the group containing the register from which
+ the field is to be extracted.
+
+ @Input reg: The name of the register from which the field is to
+ be extracted.
+
+ @Input field: The name of the field to be extracted.
+
+ @Return IMG_UINT32: The value of the field - right aligned.
+
+ ******************************************************************************/
+ IMG_UINT32 REGIO_READ_FIELD(IMG_UINT32 ui32RegValue, group, reg, field);
+
+ /*!
+ ******************************************************************************
+
+ @Function REGIO_READ_REPEATED_FIELD
+
+ @Description
+
+ This macro is used to extract the value of a repeated from a register.
+
+ @Input ui32RegValue: The register value.
+
+ @Input group: The name of the group containing the register from which
+ the field is to be extracted.
+
+ @Input reg: The name of the register from which the field is to
+ be extracted.
+
+ @Input field: The name of the field to be extracted.
+
+ @Input ui32RepIndex: The repeat index of the field to be extracted.
+
+ @Return IMG_UINT32: The value of the field - right aligned.
+
+ ******************************************************************************/
+ IMG_UINT32 REGIO_READ_REPEATED_FIELD(IMG_UINT32 ui32RegValue, group, reg, field, IMG_UINT32 ui32RepIndex);
+
+ /*!
+ ******************************************************************************
+
+ @Function REGIO_READ_REGISTER
+
+ @Description
+
+ This macro is used to read a register.
+
+ @Input ui32DevId: The device Id within the group.
+
+ @Input group: The name of the group containing the register to be
+ read.
+
+ @Input reg: The name of the register to be read.
+
+ @Return IMG_UINT32: The value of the register.
+
+ ******************************************************************************/
+ IMG_UINT32 REGIO_READ_REGISTER(IMG_UINT32 ui32DevId, group, reg);
+
+ /*!
+ ******************************************************************************
+
+ @Function REGIO_READ_TABLE_REGISTER
+
+ @Description
+
+ This macro is used to read a register from a table.
+
+ @Input ui32DevId: The device Id within the group.
+
+ @Input group: The name of the group containing the register to be
+ read.
+
+ @Input reg: The name of the register to be read.
+
+ @Input ui32TabIndex: The index of the table entry to be read.
+
+ @Return IMG_UINT32: The value of the register.
+
+ ******************************************************************************/
+ IMG_UINT32 REGIO_READ_TABLE_REGISTER(IMG_UINT32 ui32DevId, group, reg, IMG_UINT32 ui32TabIndex);
+
+ /*!
+ ******************************************************************************
+
+ @Function REGIO_WRITE_FIELD
+
+ @Description
+
+ This macro is used to update the value of a field in a register.
+
+ @Input ui32RegValue: The register value - which gets updated.
+
+ @Input group: The name of the group containing the register into which
+ the field is to be written.
+
+ @Input reg: The name of the register into which the field is to
+ be written.
+
+ @Input field: The name of the field to be updated.
+
+ @Input ui32Value: The value to be written to the field - right aligned.
+
+ @Return None.
+
+ ******************************************************************************/
+ IMG_VOID REGIO_WRITE_FIELD(IMG_UINT32 ui32RegValue, group, reg, field, IMG_UINT32 ui32Value);
+
+ /*!
+ ******************************************************************************
+
+ @Function REGIO_WRITE_REPEATED_FIELD
+
+ @Description
+
+ This macro is used to update a repeated field in a packed memory
+ based structure.
+
+ @Input ui32RegValue: The register value - which gets updated.
+
+ @Input group: The name of the group containing the register into which
+ the field is to be written.
+
+ @Input reg: The name of the register into which the field is to
+ be written.
+
+ @Input field: The name of the field to be updated.
+
+ @Input ui32Value: The value to be written to the field - right aligned.
+
+ @Return None.
+
+ ******************************************************************************/
+ IMG_VOID REGIO_WRITE_REPEATED_FIELD(IMG_UINT32 ui32RegValue, group, reg, field, IMG_UINT32 ui32RepIndex, IMG_UINT32 ui32Value);
+
+
+ /*!
+ ******************************************************************************
+
+ @Function REGIO_WRITE_REGISTER
+
+ @Description
+
+ This macro is used to write a register.
+
+ @Input ui32DevId: The device Id within the group.
+
+ @Input group: The name of the group containing the register to be
+ written.
+
+ @Input reg: The name of the register to be written.
+
+ @Input ui32RegValue: The value to be written to the register.
+
+ @Return None.
+
+ ******************************************************************************/
+ IMG_VOID REGIO_WRITE_REGISTER(IMG_UINT32 ui32DevId, group, reg, IMG_UINT32 ui32RegValue);
+
+ /*!
+ ******************************************************************************
+
+ @Function REGIO_WRITE_TABLE_REGISTER
+
+ @Description
+
+ This macro is used to wrirte a register in a table.
+
+ @Input ui32DevId: The device Id within the group.
+
+ @Input group: The name of the group containing the register to be
+ written.
+
+ @Input reg: The name of the register to be written.
+
+ @Input ui32TabIndex: The index of the table entry to be written.
+
+ @Input ui32RegValue: The value to be written to the register.
+
+ @Return None.
+
+ ******************************************************************************/
+ IMG_VOID REGIO_WRITE_TABLE_REGISTER(IMG_UINT32 ui32DevId, group, reg, IMG_UINT32 ui32TabIndex, IMG_UINT32 ui32RegValue);
+
+ /*!
+ ******************************************************************************
+
+ @Function REGIO_WRITE_OFFSET_REGISTER
+
+ @Description
+
+ This macro is used to write a register at an offset from a given register.
+
+ @Input ui32DevId: The device Id within the group.
+
+ @Input group: The name of the group containing the register to be
+ written.
+
+ @Input reg: The name of the base register to be written.
+
+ @Input ui32Offset: The offset (eg. 0,1,2,...) of the register to be written.
+
+ @Input ui32RegValue: The value to be written to the register.
+
+ @Return None.
+
+ ******************************************************************************/
+ IMG_VOID REGIO_WRITE_TABLE_REGISTER(IMG_UINT32 ui32DevId, group, reg, IMG_UINT32 ui32Offset, IMG_UINT32 ui32RegValue);
+
+#else
+
+ /*!
+ ******************************************************************************
+
+ @Function REGIO_READ_FIELD
+
+ ******************************************************************************/
+#if 1
+#define REGIO_READ_FIELD(ui32RegValue, group, reg, field) \
+ ((ui32RegValue & group##_##reg##_##field##_MASK) >> group##_##reg##_##field##_SHIFT)
+
+#else
+
+#define REGIO_READ_FIELD(ui32RegValue, group, reg, field) \
+ ((ui32RegValue >> group##_##reg##_##field##_SHIFT) & group##_##reg##_##field##_LSBMASK)
+
+#endif
+
+ /*!
+ ******************************************************************************
+
+ @Function REGIO_READ_REPEATED_FIELD
+
+ ******************************************************************************/
+#define REGIO_READ_REPEATED_FIELD(ui32RegValue, group, reg, field, ui32RepIndex) \
+ ( IMG_ASSERT(ui32RepIndex < group##_##reg##_##field##_NO_REPS), \
+ ((ui32RegValue & (group##_##reg##_##field##_MASK >> (ui32RepIndex * group##_##reg##_##field##_SIZE))) \
+ >> (group##_##reg##_##field##_SHIFT - (ui32RepIndex * group##_##reg##_##field##_SIZE))) )
+
+ /*!
+ ******************************************************************************
+
+ @Function REGIO_READ_REGISTER
+
+ ******************************************************************************/
+#define REGIO_READ_REGISTER(ui32DevId, group, reg) \
+ group##_ReadRegister(ui32DevId, group##_##reg##_OFFSET)
+
+ /*!
+ ******************************************************************************
+
+ @Function REGIO_READ_TABLE_REGISTER
+
+ ******************************************************************************/
+#define REGIO_READ_TABLE_REGISTER(ui32DevId, group, reg, ui32TabIndex) \
+ ( IMG_ASSERT(ui32TabIndex < group##_##reg##_NO_ENTRIES), \
+ group##_ReadRegister(ui32DevId, (group##_##reg##_OFFSET+(ui32TabIndex*group##_##reg##_STRIDE))) )
+
+ /*!
+ ******************************************************************************
+
+ @Function REGIO_WRITE_FIELD
+
+ ******************************************************************************/
+#define REGIO_WRITE_FIELD(ui32RegValue, group, reg, field, ui32Value) \
+ (ui32RegValue) = \
+ ((ui32RegValue) & ~(group##_##reg##_##field##_MASK)) | \
+ (((ui32Value) << (group##_##reg##_##field##_SHIFT)) & (group##_##reg##_##field##_MASK));
+
+#ifndef DEBUG
+#define REGIO_ASSERT( x ) ((void)0)
+#else
+#define REGIO_ASSERT( x ) IMG_ASSERT( x )
+#endif
+
+#define REGIO_WRITE_FIELD_MASKEDLITE(ui32RegValue, group, reg, field, ui32Value) \
+ do { \
+ REGIO_ASSERT( ((ui32RegValue) & (group##_##reg##_##field##_MASK) ) == 0 ); \
+ (ui32RegValue) |= (((ui32Value) << (group##_##reg##_##field##_SHIFT)) & (group##_##reg##_##field##_MASK)); \
+ } while(0)
+
+#define REGIO_WRITE_FIELD_LITE(ui32RegValue, group, reg, field, ui32Value) \
+ do { \
+ REGIO_ASSERT( ((ui32RegValue) & (group##_##reg##_##field##_MASK) ) == 0 ); \
+ REGIO_ASSERT( ( ( (ui32Value) << (group##_##reg##_##field##_SHIFT) ) & (~(group##_##reg##_##field##_MASK))) == 0); \
+ (ui32RegValue) |= ( (ui32Value) << (group##_##reg##_##field##_SHIFT) ) ; \
+ } while(0)
+
+ /*!
+ ******************************************************************************
+
+ @Function REGIO_WRITE_REPEATED_FIELD
+
+ ******************************************************************************/
+#define REGIO_WRITE_REPEATED_FIELD(ui32RegValue, group, reg, field, ui32RepIndex, ui32Value) \
+ IMG_ASSERT(ui32RepIndex < group##_##reg##_##field##_NO_REPS); \
+ ui32RegValue = \
+ (ui32RegValue & ~(group##_##reg##_##field##_MASK >> (ui32RepIndex * group##_##reg##_##field##_SIZE))) | \
+ (ui32Value << (group##_##reg##_##field##_SHIFT - (ui32RepIndex * group##_##reg##_##field##_SIZE)) & (group##_##reg##_##field##_MASK >> (ui32RepIndex * group##_##reg##_##field##_SIZE)));
+
+ /*!
+ ******************************************************************************
+
+ @Function REGIO_WRITE_REGISTER
+
+ ******************************************************************************/
+#define REGIO_WRITE_REGISTER(ui32DevId, group, reg, ui32RegValue) \
+ group##_WriteRegister(ui32DevId, (group##_##reg##_OFFSET), (ui32RegValue))
+
+ /*!
+ ******************************************************************************
+
+ @Function REGIO_WRITE_TABLE_REGISTER
+
+ ******************************************************************************/
+#define REGIO_WRITE_TABLE_REGISTER(ui32DevId, group, reg, ui32TabIndex, ui32RegValue) \
+ group##_WriteRegister(ui32DevId, (group##_##reg##_OFFSET+(ui32TabIndex*group##_##reg##_STRIDE)), ui32RegValue)
+
+
+ /*!
+ ******************************************************************************
+
+ @Function REGIO_WRITE_OFFSET_REGISTER
+
+ ******************************************************************************/
+#define REGIO_WRITE_OFFSET_REGISTER(ui32DevId, group, reg, ui32Offset, ui32RegValue) \
+ group##_WriteRegister(ui32DevId, (group##_##reg##_OFFSET+(ui32Offset*4)), ui32RegValue)
+
+
+#endif
+
+
+#if (__cplusplus)
+}
+#endif
+
+#endif
+
diff --git a/src/hwdefs/topazSC_defs.h b/src/hwdefs/topazSC_defs.h
new file mode 100644
index 0000000..6d163ed
--- /dev/null
+++ b/src/hwdefs/topazSC_defs.h
@@ -0,0 +1,124 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+
+#define F_MASK(basename) (MASK_##basename)
+#define F_SHIFT(basename) (SHIFT_##basename)
+
+#define F_ENCODE(val,basename) (((val)<<(F_SHIFT(basename)))&(F_MASK(basename)))
+#define F_ENCODE_MVEA(val,basename) (((val)<<(F_SHIFT_MVEA(basename)))&(F_MASK_MVEA(basename)))
+
+#define MVEA_LRB_SEARCH_HEIGHT 112
+#define MVEA_LRB_SEARCH_WIDTH 144
+#define MVEA_LRB_TOP_OFFSET (((MVEA_LRB_SEARCH_HEIGHT/2)/16)*16)
+
+
+#define F_MASK_MVEA(basename) (MASK_MVEA_##basename) /* MVEA */
+#define F_SHIFT_MVEA(basename) (SHIFT_MVEA_##basename) /* MVEA */
+
+
+#define MASK_MVEA_CR_IPE_GRID_FINE_SEARCH 0x00000C00
+#define SHIFT_MVEA_CR_IPE_GRID_FINE_SEARCH 10
+#define REGNUM_MVEA_CR_IPE_GRID_FINE_SEARCH 0x0200
+
+
+#define MASK_MVEA_CR_IPE_GRID_SEARCH_SIZE 0x00000380
+#define SHIFT_MVEA_CR_IPE_GRID_SEARCH_SIZE 7
+#define REGNUM_MVEA_CR_IPE_GRID_SEARCH_SIZE 0x0200
+
+
+#define MVEA_CR_IPE_CONTROL 0x0200
+#define MASK_MVEA_CR_IPE_BLOCKSIZE 0x00000003
+#define SHIFT_MVEA_CR_IPE_BLOCKSIZE 0
+#define REGNUM_MVEA_CR_IPE_BLOCKSIZE 0x0200
+
+
+
+#define MASK_MVEA_CR_IPE_ENCODING_FORMAT 0x00003000
+#define SHIFT_MVEA_CR_IPE_ENCODING_FORMAT 12
+#define REGNUM_MVEA_CR_IPE_ENCODING_FORMAT 0x0200
+
+
+#define MASK_MVEA_CR_IPE_Y_CANDIDATE_NUM 0x0000003C
+#define SHIFT_MVEA_CR_IPE_Y_CANDIDATE_NUM 2
+#define REGNUM_MVEA_CR_IPE_Y_CANDIDATE_NUM 0x0200
+
+
+#define MASK_MVEA_CR_IPE_Y_FINE_SEARCH 0x00000040
+#define SHIFT_MVEA_CR_IPE_Y_FINE_SEARCH 6
+#define REGNUM_MVEA_CR_IPE_Y_FINE_SEARCH 0x0200
+
+#define MASK_MVEA_CR_JMCOMP_AC_ENABLE 0x00008000
+#define SHIFT_MVEA_CR_JMCOMP_AC_ENABLE 15
+#define REGNUM_MVEA_CR_JMCOMP_AC_ENABLE 0x0280
+
+
+#define MB_START_OF_SLICE (1<<5)
+#define MB_END_OF_SLICE (1<<4)
+#define MB_END_OF_PICTURE (1<<6)
+#define MB_END_OF_ROW (1<<7)
+#define PARAMS_ABOVEL_VALID (1<<0)
+#define PARAMS_ABOVE_VALID (1<<1)
+#define PARAMS_ABOVER_VALID (1<<2)
+#define PARAMS_LEFT_VALID (1<<3)#define VECTORS_ABOVE_LEFT_VALID (1<<0)
+#define VECTORS_ABOVE_VALID (1<<1)
+#define VECTORS_LEFT_VALID (1<<2)
+#define VECTORS_BELOW_VALID (1<<4)
+#define VECTORS_2BELOW_VALID (1<<5)
+#define DO_INTRA_PRED (1<<6)
+
+#define VECTORS_ABOVE_LEFT_VALID (1<<0)
+
+#define MVEA_CR_JMCOMP_CONTROL 0x0280
+#define MASK_MVEA_CR_JMCOMP_MODE 0x00000003
+#define SHIFT_MVEA_CR_JMCOMP_MODE 0
+#define REGNUM_MVEA_CR_JMCOMP_MODE 0x0280
+
+#define MASK_TOPAZ_VLC_CR_CODEC 0x00000003
+#define SHIFT_TOPAZ_VLC_CR_CODEC 0
+
+#define MASK_TOPAZ_VLC_CR_SLICE_CODING_TYPE 0x0000000C
+#define SHIFT_TOPAZ_VLC_CR_SLICE_CODING_TYPE 2
+
+#define MVEA_CR_SPE_ZERO_THRESH 0x0370
+
+#define MVEA_CR_IPE_LAMBDA_TABLE 0x01F0
+#define MASK_MVEA_CR_IPE_QPC_OR_DC_SCALE_LUMA_TABLE 0x000000FF
+#define SHIFT_MVEA_CR_IPE_QPC_OR_DC_SCALE_LUMA_TABLE 0
+
+#define MVEA_CR_IPE_MV_BIAS_TABLE 0x01F4
+
+#define MVEA_CR_SPE_PRED_VECTOR_BIAS_TABLE 0x037C
+
+#define MVEA_CR_SPE_INTRA16_BIAS_TABLE 0x0374
+
+#define MVEA_CR_SPE_INTER_BIAS_TABLE 0x0378
+
+#define MASK_MVEA_CR_IPE_ALPHA_OR_DC_SCALE_CHR_TABLE 0x0000FF00
+#define SHIFT_MVEA_CR_IPE_ALPHA_OR_DC_SCALE_CHR_TABLE 8
+
+
+
+
diff --git a/src/hwdefs/topaz_defs.h b/src/hwdefs/topaz_defs.h
new file mode 100644
index 0000000..92268a6
--- /dev/null
+++ b/src/hwdefs/topaz_defs.h
@@ -0,0 +1,112 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+
+#define F_MASK(basename) (MASK_##basename)
+#define F_SHIFT(basename) (SHIFT_##basename)
+
+#define F_ENCODE(val,basename) (((val)<<(F_SHIFT(basename)))&(F_MASK(basename)))
+#define F_ENCODE_MVEA(val,basename) (((val)<<(F_SHIFT_MVEA(basename)))&(F_MASK_MVEA(basename)))
+
+#define MVEA_LRB_SEARCH_HEIGHT 80
+#define MVEA_LRB_TOP_OFFSET (((MVEA_LRB_SEARCH_HEIGHT/2)/16)*16)
+
+
+#define F_MASK_MVEA(basename) (MASK_MVEA_##basename) /* MVEA */
+#define F_SHIFT_MVEA(basename) (SHIFT_MVEA_##basename) /* MVEA */
+
+
+#define MASK_MVEA_CR_IPE_GRID_FINE_SEARCH 0x00000C00
+#define SHIFT_MVEA_CR_IPE_GRID_FINE_SEARCH 10
+#define REGNUM_MVEA_CR_IPE_GRID_FINE_SEARCH 0x0200
+
+
+#define MASK_MVEA_CR_IPE_GRID_SEARCH_SIZE 0x00000380
+#define SHIFT_MVEA_CR_IPE_GRID_SEARCH_SIZE 7
+#define REGNUM_MVEA_CR_IPE_GRID_SEARCH_SIZE 0x0200
+
+
+#define MVEA_CR_IPE_CONTROL 0x0200
+#define MASK_MVEA_CR_IPE_BLOCKSIZE 0x00000003
+#define SHIFT_MVEA_CR_IPE_BLOCKSIZE 0
+#define REGNUM_MVEA_CR_IPE_BLOCKSIZE 0x0200
+
+
+
+#define MASK_MVEA_CR_IPE_ENCODING_FORMAT 0x00003000
+#define SHIFT_MVEA_CR_IPE_ENCODING_FORMAT 12
+#define REGNUM_MVEA_CR_IPE_ENCODING_FORMAT 0x0200
+
+
+#define MASK_MVEA_CR_IPE_Y_CANDIDATE_NUM 0x0000003C
+#define SHIFT_MVEA_CR_IPE_Y_CANDIDATE_NUM 2
+#define REGNUM_MVEA_CR_IPE_Y_CANDIDATE_NUM 0x0200
+
+
+#define MASK_MVEA_CR_IPE_Y_FINE_SEARCH 0x00000040
+#define SHIFT_MVEA_CR_IPE_Y_FINE_SEARCH 6
+#define REGNUM_MVEA_CR_IPE_Y_FINE_SEARCH 0x0200
+
+#define MASK_MVEA_CR_JMCOMP_AC_ENABLE 0x00008000
+#define SHIFT_MVEA_CR_JMCOMP_AC_ENABLE 15
+#define REGNUM_MVEA_CR_JMCOMP_AC_ENABLE 0x0280
+
+
+#define MB_START_OF_SLICE (1<<5)
+#define MB_END_OF_SLICE (1<<4)
+#define MB_END_OF_PICTURE (1<<6)
+#define MB_END_OF_ROW (1<<7)
+#define PARAMS_ABOVEL_VALID (1<<0)
+#define PARAMS_ABOVE_VALID (1<<1)
+#define PARAMS_ABOVER_VALID (1<<2)
+#define PARAMS_LEFT_VALID (1<<3)#define VECTORS_ABOVE_LEFT_VALID (1<<0)
+#define VECTORS_ABOVE_VALID (1<<1)
+#define VECTORS_LEFT_VALID (1<<2)
+#define VECTORS_BELOW_VALID (1<<4)
+#define VECTORS_2BELOW_VALID (1<<5)
+
+
+#define MVEA_CR_JMCOMP_CONTROL 0x0280
+#define MASK_MVEA_CR_JMCOMP_MODE 0x00000003
+#define SHIFT_MVEA_CR_JMCOMP_MODE 0
+#define REGNUM_MVEA_CR_JMCOMP_MODE 0x0280
+
+#define MASK_TOPAZ_VLC_CR_CODEC 0x00000003
+#define SHIFT_TOPAZ_VLC_CR_CODEC 0
+
+#define MASK_TOPAZ_VLC_CR_SLICE_CODING_TYPE 0x0000000C
+#define SHIFT_TOPAZ_VLC_CR_SLICE_CODING_TYPE 2
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/lnc_H263ES.c b/src/lnc_H263ES.c
new file mode 100644
index 0000000..98c4751
--- /dev/null
+++ b/src/lnc_H263ES.c
@@ -0,0 +1,583 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ * Zeng Li <zeng.li@intel.com>
+ * Shengquan Yuan <shengquan.yuan@intel.com>
+ * Binglin Chen <binglin.chen@intel.com>
+ *
+ */
+
+#include "psb_def.h"
+#include "psb_surface.h"
+#include "psb_cmdbuf.h"
+#include "lnc_H263ES.h"
+#include "lnc_hostheader.h"
+#include "lnc_hostcode.h"
+
+#include <stdlib.h>
+#include <stdint.h>
+#include <string.h>
+
+
+#define TOPAZ_H263_MAX_BITRATE 16000000
+
+#define INIT_CONTEXT_H263ES context_ENC_p ctx = (context_ENC_p) (obj_context->format_data)
+#define SURFACE(id) ((object_surface_p) object_heap_lookup( &ctx->obj_context->driver_data->surface_heap, id ))
+#define BUFFER(id) ((object_buffer_p) object_heap_lookup( &ctx->obj_context->driver_data->buffer_heap, id ))
+
+
+static void lnc_H263ES_QueryConfigAttributes(
+ VAProfile profile,
+ VAEntrypoint entrypoint,
+ VAConfigAttrib *attrib_list,
+ int num_attribs)
+{
+ int i;
+ psb__information_message("lnc_H263ES_QueryConfigAttributes\n");
+
+ /* RateControl attributes */
+ for (i = 0; i < num_attribs; i++) {
+ switch (attrib_list[i].type) {
+ case VAConfigAttribRTFormat:
+ break;
+
+ case VAConfigAttribRateControl:
+ attrib_list[i].value = VA_RC_NONE | VA_RC_CBR | VA_RC_VBR;
+ break;
+#if 0
+ case VAConfigAttribEncMaxSliceSize:
+ attrib_list[i].value = 0;
+ break;
+#endif
+ default:
+ attrib_list[i].value = VA_ATTRIB_NOT_SUPPORTED;
+ break;
+ }
+ }
+
+}
+
+
+static VAStatus lnc_H263ES_ValidateConfig(
+ object_config_p obj_config)
+{
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ psb__information_message("lnc_H263ES_ValidateConfig\n");
+
+ return vaStatus;
+}
+
+
+static VAStatus lnc_H263ES_CreateContext(
+ object_context_p obj_context,
+ object_config_p obj_config)
+{
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ unsigned int eRCmode;
+ context_ENC_p ctx;
+ int i;
+
+ psb__information_message("lnc_H263ES_CreateContext\n");
+
+ vaStatus = lnc_CreateContext(obj_context, obj_config);/* alloc context_ENC_s and BO */
+
+ if (VA_STATUS_SUCCESS != vaStatus)
+ return VA_STATUS_ERROR_ALLOCATION_FAILED;
+
+ ctx = (context_ENC_p) obj_context->format_data;
+
+ ctx->max_slice_size = 0;
+ eRCmode = VA_RC_NONE;
+
+ for (i = 0; i < obj_config->attrib_count; i++) {
+#if 0
+ if (obj_config->attrib_list[i].type == VAConfigAttribEncMaxSliceSize)
+ ctx->max_slice_size = obj_config->attrib_list[i].value;
+ else if (obj_config->attrib_list[i].type == VAConfigAttribRateControl)
+ eRCmode = obj_config->attrib_list[i].value;
+#else
+ if (obj_config->attrib_list[i].type == VAConfigAttribRateControl)
+ eRCmode = obj_config->attrib_list[i].value;
+#endif
+ }
+
+ if (eRCmode == VA_RC_VBR) {
+ ctx->eCodec = IMG_CODEC_H263_VBR;
+ ctx->sRCParams.RCEnable = IMG_TRUE;
+ } else if (eRCmode == VA_RC_CBR) {
+ ctx->eCodec = IMG_CODEC_H263_CBR;
+ ctx->sRCParams.RCEnable = IMG_TRUE;
+ } else if (eRCmode == VA_RC_NONE) {
+ ctx->eCodec = IMG_CODEC_H263_NO_RC;
+ ctx->sRCParams.RCEnable = IMG_FALSE;
+ } else
+ return VA_STATUS_ERROR_UNSUPPORTED_RT_FORMAT;
+ ctx->eFormat = IMG_CODEC_PL12;
+
+ ctx->IPEControl = lnc__get_ipe_control(ctx->eCodec);
+
+ ctx->OptionalCustomPCF = 0;
+
+ return vaStatus;
+
+
+}
+
+
+static void lnc_H263ES_DestroyContext(
+ object_context_p obj_context)
+{
+
+ psb__information_message("lnc_H263ES_DestroyContext\n");
+
+ lnc_DestroyContext(obj_context);
+}
+
+static VAStatus lnc_H263ES_BeginPicture(
+ object_context_p obj_context)
+{
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+
+ INIT_CONTEXT_H263ES;
+
+ psb__information_message("lnc_H263ES_BeginPicture\n");
+
+ vaStatus = lnc_BeginPicture(ctx);
+
+ return vaStatus;
+}
+
+
+static VAStatus lnc__H263ES_process_sequence_param(context_ENC_p ctx, object_buffer_p obj_buffer)
+{
+ /*
+ * process rate control parameters
+ */
+ VAEncSequenceParameterBufferH263 *pSequenceParams;
+
+ ASSERT(obj_buffer->type == VAEncSequenceParameterBufferType);
+ ASSERT(obj_buffer->num_elements == 1);
+ ASSERT(obj_buffer->size == sizeof(VAEncSequenceParameterBufferH263));
+
+ if ((obj_buffer->num_elements != 1) ||
+ (obj_buffer->size != sizeof(VAEncSequenceParameterBufferH263))) {
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ pSequenceParams = (VAEncSequenceParameterBufferH263 *) obj_buffer->buffer_data;
+ obj_buffer->buffer_data = NULL;
+ obj_buffer->size = 0;
+
+ if ((ctx->obj_context->frame_count != 0) &&
+ (ctx->sRCParams.BitsPerSecond != pSequenceParams->bits_per_second))
+ ctx->update_rc_control = 1;
+
+ if (pSequenceParams->bits_per_second > TOPAZ_H263_MAX_BITRATE) {
+ ctx->sRCParams.BitsPerSecond = TOPAZ_H263_MAX_BITRATE;
+ psb__information_message(" bits_per_second(%d) exceeds \
+ the maximum bitrate, set it with %d\n",
+ pSequenceParams->bits_per_second,
+ TOPAZ_H263_MAX_BITRATE);
+ } else
+ ctx->sRCParams.BitsPerSecond = pSequenceParams->bits_per_second;
+
+ if (pSequenceParams->initial_qp < 3)
+ pSequenceParams->initial_qp = 3;
+
+ ctx->sRCParams.FrameRate = pSequenceParams->frame_rate;
+ ctx->sRCParams.InitialQp = pSequenceParams->initial_qp;
+ ctx->sRCParams.MinQP = pSequenceParams->min_qp;
+ ctx->sRCParams.BUSize = 0; /* default 0, and will be set in lnc__setup_busize */
+
+
+ IMG_UINT16 MBRows = 0;
+ if (ctx->Height <= 400)
+ MBRows = 1;
+ else if (ctx->Height < 800)
+ MBRows = 2;
+
+ ctx->sRCParams.Slices = (ctx->Height + 15) >> (4 + (MBRows >> 1));
+
+ ctx->sRCParams.IntraFreq = pSequenceParams->intra_period;
+
+ free(pSequenceParams);
+ return VA_STATUS_SUCCESS;
+}
+
+
+/* Work done by the followinig funcs in testbench should be done here.
+ * IMG_C_StartPicture()
+ * IMG_C_InsertSync()
+ * APP_H263_SendPictureHeader()
+ * Frame skip must be taken into consideration
+ * */
+static VAStatus lnc__H263ES_process_picture_param(context_ENC_p ctx, object_buffer_p obj_buffer)
+{
+ VAStatus vaStatus;
+ VAEncPictureParameterBufferH263 *pBuffer;
+ lnc_cmdbuf_p cmdbuf = ctx->obj_context->lnc_cmdbuf;
+ H263_SOURCE_FORMAT_TYPE SourceFormatType;
+
+ ASSERT(obj_buffer->type == VAEncPictureParameterBufferType);
+
+ if ((obj_buffer->num_elements != 1) ||
+ (obj_buffer->size != sizeof(VAEncPictureParameterBufferH263))) {
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ /* Transfer ownership of VAEncPictureParameterBufferH263 data */
+ pBuffer = (VAEncPictureParameterBufferH263 *) obj_buffer->buffer_data;
+ obj_buffer->buffer_data = NULL;
+ obj_buffer->size = 0;
+
+ ctx->ref_surface = SURFACE(pBuffer->reference_picture);
+ ctx->dest_surface = SURFACE(pBuffer->reconstructed_picture);
+ ctx->coded_buf = BUFFER(pBuffer->coded_buf);
+
+ ASSERT(ctx->Width == pBuffer->picture_width);
+ ASSERT(ctx->Height == pBuffer->picture_height);
+
+ /* Insert do_header command here */
+
+ if ((ctx->Width == 128) && (ctx->Height == 96))
+ SourceFormatType = _128x96_SubQCIF;
+ else if ((ctx->Width == 176) && (ctx->Height == 144))
+ SourceFormatType = _176x144_QCIF;
+ else if ((ctx->Width == 352) && (ctx->Height == 288))
+ SourceFormatType = _352x288_CIF;
+ else if ((ctx->Width == 704) && (ctx->Height == 576))
+ SourceFormatType = _704x576_4CIF;
+ else if ((ctx->Width <= 720) && (ctx->Height <= 576))
+ SourceFormatType = 7;
+ else {
+ psb__information_message("Unsupported resolution!\n");
+ return VA_STATUS_ERROR_RESOLUTION_NOT_SUPPORTED;
+ }
+
+ /* save current cmdbuf write pointer for H263 frameskip redo
+ * for H263, for a skipped frame, picture header/slice header both needn't
+ */
+ cmdbuf->cmd_idx_saved_frameskip = cmdbuf->cmd_idx;
+ if (!(ctx->sRCParams.RCEnable && ctx->sRCParams.FrameSkip)) {
+ lnc__H263_prepare_picture_header(cmdbuf->header_mem_p + ctx->pic_header_ofs,
+ ctx->obj_context->frame_count,
+ pBuffer->picture_type,
+ SourceFormatType,
+ ctx->sRCParams.FrameRate,
+ ctx->Width,
+ ctx->Height,
+ &ctx->OptionalCustomPCF);
+
+ lnc_cmdbuf_insert_command(cmdbuf, MTX_CMDID_DO_HEADER, 2, 1);
+ RELOC_CMDBUF(cmdbuf->cmd_idx++, ctx->pic_header_ofs, &cmdbuf->header_mem);
+ }
+
+ vaStatus = lnc_RenderPictureParameter(ctx);
+
+ free(pBuffer);
+ return vaStatus;
+}
+
+
+static VAStatus lnc__H263ES_process_slice_param(context_ENC_p ctx, object_buffer_p obj_buffer)
+{
+ /* Prepare InParams for macros of current slice, insert slice header, insert do slice command */
+ VAEncSliceParameterBuffer *pBuffer;
+ lnc_cmdbuf_p cmdbuf = ctx->obj_context->lnc_cmdbuf;
+ PIC_PARAMS *psPicParams = (PIC_PARAMS *)(cmdbuf->pic_params_p);
+ int i;
+ int slice_param_idx;
+
+ ASSERT(obj_buffer->type == VAEncSliceParameterBufferType);
+
+ /* do nothing for skip frame if RC enabled */
+ if ((ctx->sRCParams.RCEnable && ctx->sRCParams.FrameSkip)) {
+ free(obj_buffer->buffer_data);
+ obj_buffer->buffer_data = NULL;
+ return VA_STATUS_SUCCESS;
+ }
+
+ /* Transfer ownership of VAEncPictureParameterBufferH263 data */
+ pBuffer = (VAEncSliceParameterBuffer *) obj_buffer->buffer_data;
+ obj_buffer->size = 0;
+
+ if (0 == pBuffer->start_row_number) {
+ if (pBuffer->slice_flags.bits.is_intra)
+ RELOC_PIC_PARAMS(&psPicParams->InParamsBase, ctx->in_params_ofs, cmdbuf->topaz_in_params_I);
+ else
+ RELOC_PIC_PARAMS(&psPicParams->InParamsBase, ctx->in_params_ofs, cmdbuf->topaz_in_params_P);
+ }
+
+ /*In case the slice number changes*/
+ if ((ctx->slice_param_cache != NULL) && (obj_buffer->num_elements != ctx->slice_param_num)) {
+ psb__information_message("Slice number changes. Previous value is %d. Now it's %d\n",
+ ctx->slice_param_num, obj_buffer->num_elements);
+ free(ctx->slice_param_cache);
+ ctx->slice_param_cache = NULL;
+ ctx->slice_param_num = 0;
+ }
+
+ if (NULL == ctx->slice_param_cache) {
+ ctx->slice_param_num = obj_buffer->num_elements;
+ psb__information_message("Allocate %d VAEncSliceParameterBuffer cache buffers\n", 2 * ctx->slice_param_num);
+ ctx->slice_param_cache = calloc(2 * ctx->slice_param_num, sizeof(VAEncSliceParameterBuffer));
+ if (NULL == ctx->slice_param_cache) {
+ psb__error_message("Run out of memory!\n");
+ free(obj_buffer->buffer_data);
+ return VA_STATUS_ERROR_ALLOCATION_FAILED;
+ }
+ }
+
+ for (i = 0; i < obj_buffer->num_elements; i++) {
+ /*Todo list:
+ *1.Insert Do header command
+ *2.setup InRowParams
+ *3.setup Slice params
+ *4.Insert Do slice command
+ * */
+
+ /* Insert Do Header command, relocation is needed */
+ if (ctx->obj_context->slice_count) { /*First slice of a frame need not slice header*/
+ lnc__H263_prepare_GOBslice_header(
+ cmdbuf->header_mem_p + ctx->slice_header_ofs + ctx->obj_context->slice_count * HEADER_SIZE,
+ ctx->obj_context->slice_count,
+ ctx->obj_context->frame_count);
+
+ lnc_cmdbuf_insert_command(cmdbuf, MTX_CMDID_DO_HEADER, 2, (ctx->obj_context->slice_count << 2) | 2);
+ RELOC_CMDBUF(cmdbuf->cmd_idx++,
+ ctx->slice_header_ofs + ctx->obj_context->slice_count * HEADER_SIZE,
+ &cmdbuf->header_mem);
+ }
+
+ if ((ctx->obj_context->frame_count == 0) && (pBuffer->start_row_number == 0) && pBuffer->slice_flags.bits.is_intra)
+ lnc_reset_encoder_params(ctx);
+
+ /*The corresponding slice buffer cache*/
+ slice_param_idx = (pBuffer->slice_flags.bits.is_intra ? 0 : 1) * ctx->slice_param_num + i;
+
+ if (VAEncSliceParameter_Equal(&ctx->slice_param_cache[slice_param_idx], pBuffer) == 0) {
+ /* cache current param parameters */
+ memcpy(&ctx->slice_param_cache[slice_param_idx],
+ pBuffer, sizeof(VAEncSliceParameterBuffer));
+
+ /* Setup InParams value*/
+ lnc_setup_slice_params(ctx,
+ pBuffer->start_row_number * 16,
+ pBuffer->slice_height * 16,
+ pBuffer->slice_flags.bits.is_intra,
+ ctx->obj_context->frame_count > 0,
+ psPicParams->sInParams.SeInitQP);
+ }
+
+ /* Insert do slice command and setup related buffer value */
+ lnc__send_encode_slice_params(ctx,
+ pBuffer->slice_flags.bits.is_intra,
+ pBuffer->start_row_number * 16,
+ 0, /* no deblock for H263 */
+ ctx->obj_context->frame_count,
+ pBuffer->slice_height * 16,
+ ctx->obj_context->slice_count,
+ ctx->max_slice_size);
+
+ psb__information_message("Now frame_count/slice_count is %d/%d\n",
+ ctx->obj_context->frame_count, ctx->obj_context->slice_count);
+
+ ctx->obj_context->slice_count++;
+ pBuffer++; /*Move to the next buffer*/
+
+ ASSERT(ctx->obj_context->slice_count < MAX_SLICES_PER_PICTURE);
+ }
+
+ free(obj_buffer->buffer_data);
+ obj_buffer->buffer_data = NULL;
+ return VA_STATUS_SUCCESS;
+}
+
+static VAStatus lnc__H263ES_process_misc_param(context_ENC_p ctx, object_buffer_p obj_buffer)
+{
+ /* Prepare InParams for macros of current slice, insert slice header, insert do slice command */
+ VAEncMiscParameterBuffer *pBuffer;
+ VAEncMiscParameterRateControl *rate_control_param;
+ VAEncMiscParameterAIR *air_param;
+ VAEncMiscParameterMaxSliceSize *max_slice_size_param;
+ VAEncMiscParameterFrameRate *frame_rate_param;
+
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+
+ ASSERT(obj_buffer->type == VAEncMiscParameterBufferType);
+
+ pBuffer = (VAEncMiscParameterBuffer *) obj_buffer->buffer_data;
+ obj_buffer->size = 0;
+
+ switch (pBuffer->type) {
+ case VAEncMiscParameterTypeFrameRate:
+ frame_rate_param = (VAEncMiscParameterFrameRate *)pBuffer->data;
+ psb__information_message("%s: frame rate changed to %d\n",
+ frame_rate_param->framerate);
+ break;
+
+ case VAEncMiscParameterTypeRateControl:
+ rate_control_param = (VAEncMiscParameterRateControl *)pBuffer->data;
+
+ psb__information_message("%s: bit rate changed to %d\n",
+ rate_control_param->bits_per_second);
+
+ if (rate_control_param->bits_per_second == ctx->sRCParams.BitsPerSecond)
+ break;
+ else
+ ctx->update_rc_control = 1;
+
+ if (rate_control_param->bits_per_second > TOPAZ_H263_MAX_BITRATE) {
+ ctx->sRCParams.BitsPerSecond = TOPAZ_H263_MAX_BITRATE;
+ psb__information_message(" bits_per_second(%d) exceeds \
+ the maximum bitrate, set it with %d\n",
+ rate_control_param->bits_per_second,
+ TOPAZ_H263_MAX_BITRATE);
+ } else
+ ctx->sRCParams.BitsPerSecond = rate_control_param->bits_per_second;
+
+ break;
+
+ case VAEncMiscParameterTypeMaxSliceSize:
+ max_slice_size_param = (VAEncMiscParameterMaxSliceSize *)pBuffer->data;
+
+ if (ctx->max_slice_size == max_slice_size_param->max_slice_size)
+ break;
+
+ psb__information_message("%s: max slice size changed to %d\n",
+ max_slice_size_param->max_slice_size);
+
+ ctx->max_slice_size = max_slice_size_param->max_slice_size;
+
+ break;
+
+ case VAEncMiscParameterTypeAIR:
+ air_param = (VAEncMiscParameterAIR *)pBuffer->data;
+
+ psb__information_message("%s: air slice size changed to num_air_mbs %d "
+ "air_threshold %d, air_auto %d\n",
+ air_param->air_num_mbs, air_param->air_threshold,
+ air_param->air_auto);
+
+ ctx->num_air_mbs = air_param->air_num_mbs;
+ ctx->air_threshold = air_param->air_threshold;
+ ctx->autotune_air_flag = air_param->air_auto;
+
+ break;
+
+ default:
+ vaStatus = VA_STATUS_ERROR_UNKNOWN;
+ DEBUG_FAILURE;
+ break;
+ }
+
+ free(obj_buffer->buffer_data);
+ obj_buffer->buffer_data = NULL;
+
+ return VA_STATUS_SUCCESS;
+}
+
+static VAStatus lnc_H263ES_RenderPicture(
+ object_context_p obj_context,
+ object_buffer_p *buffers,
+ int num_buffers)
+{
+ int i;
+ INIT_CONTEXT_H263ES;
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+
+ psb__information_message("lnc_H263ES_RenderPicture\n");
+
+ for (i = 0; i < num_buffers; i++) {
+ object_buffer_p obj_buffer = buffers[i];
+
+ switch (obj_buffer->type) {
+ case VAEncSequenceParameterBufferType:
+ psb__information_message("lnc_H263_RenderPicture got VAEncSequenceParameterBufferType\n");
+ vaStatus = lnc__H263ES_process_sequence_param(ctx, obj_buffer);
+ DEBUG_FAILURE;
+ break;
+
+ case VAEncPictureParameterBufferType:
+ psb__information_message("lnc_H263_RenderPicture got VAEncPictureParameterBuffer\n");
+ vaStatus = lnc__H263ES_process_picture_param(ctx, obj_buffer);
+ DEBUG_FAILURE;
+ break;
+
+ case VAEncSliceParameterBufferType:
+ psb__information_message("lnc_H263_RenderPicture got VAEncSliceParameterBufferType\n");
+ vaStatus = lnc__H263ES_process_slice_param(ctx, obj_buffer);
+ DEBUG_FAILURE;
+ break;
+
+ case VAEncMiscParameterBufferType:
+ psb__information_message("lnc_H263ES_RenderPicture got VAEncMiscParameterBufferType\n");
+ vaStatus = lnc__H263ES_process_misc_param(ctx, obj_buffer);
+ DEBUG_FAILURE;
+ break;
+
+ default:
+ vaStatus = VA_STATUS_ERROR_UNKNOWN;
+ DEBUG_FAILURE;
+ }
+ if (vaStatus != VA_STATUS_SUCCESS) {
+ break;
+ }
+ }
+
+
+ return vaStatus;
+}
+
+static VAStatus lnc_H263ES_EndPicture(
+ object_context_p obj_context)
+{
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ INIT_CONTEXT_H263ES;
+
+ psb__information_message("lnc_H263ES_EndPicture\n");
+
+ vaStatus = lnc_EndPicture(ctx);
+
+ return vaStatus;
+}
+
+
+struct format_vtable_s lnc_H263ES_vtable = {
+queryConfigAttributes:
+ lnc_H263ES_QueryConfigAttributes,
+validateConfig:
+ lnc_H263ES_ValidateConfig,
+createContext:
+ lnc_H263ES_CreateContext,
+destroyContext:
+ lnc_H263ES_DestroyContext,
+beginPicture:
+ lnc_H263ES_BeginPicture,
+renderPicture:
+ lnc_H263ES_RenderPicture,
+endPicture:
+ lnc_H263ES_EndPicture
+};
diff --git a/src/lnc_H263ES.h b/src/lnc_H263ES.h
new file mode 100644
index 0000000..6e4d07e
--- /dev/null
+++ b/src/lnc_H263ES.h
@@ -0,0 +1,38 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ * Zeng Li <zeng.li@intel.com>
+ * Shengquan Yuan <shengquan.yuan@intel.com>
+ * Binglin Chen <binglin.chen@intel.com>
+ *
+ */
+
+#ifndef _LNC_H263ES_H_
+#define _LNC_H263ES_H_
+
+#include "psb_drv_video.h"
+extern struct format_vtable_s lnc_H263ES_vtable;
+
+#endif /* _LNC_H263ES_H_ */
diff --git a/src/lnc_H264ES.c b/src/lnc_H264ES.c
new file mode 100644
index 0000000..9826e73
--- /dev/null
+++ b/src/lnc_H264ES.c
@@ -0,0 +1,886 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ * Zeng Li <zeng.li@intel.com>
+ * Shengquan Yuan <shengquan.yuan@intel.com>
+ * Binglin Chen <binglin.chen@intel.com>
+ *
+ */
+
+
+#include "psb_def.h"
+#include "psb_surface.h"
+#include "psb_cmdbuf.h"
+#include "lnc_hostcode.h"
+#include "lnc_H264ES.h"
+#include "lnc_hostheader.h"
+
+#include <stdlib.h>
+#include <stdint.h>
+#include <string.h>
+#include <limits.h>
+
+
+#define TOPAZ_H264_MAX_BITRATE 14000000 /* FIXME ?? */
+#define WORST_CASE_SLICE_HEADER_SIZE 200
+
+#define INIT_CONTEXT_H264ES context_ENC_p ctx = (context_ENC_p) obj_context->format_data
+#define SURFACE(id) ((object_surface_p) object_heap_lookup( &ctx->obj_context->driver_data->surface_heap, id ))
+#define BUFFER(id) ((object_buffer_p) object_heap_lookup( &ctx->obj_context->driver_data->buffer_heap, id ))
+
+int psb_parse_config(char *env, char *env_value);
+
+static void lnc_H264ES_QueryConfigAttributes(
+ VAProfile profile,
+ VAEntrypoint entrypoint,
+ VAConfigAttrib *attrib_list,
+ int num_attribs)
+{
+ int i;
+
+ psb__information_message("lnc_H264ES_QueryConfigAttributes\n");
+
+ /* RateControl attributes */
+ for (i = 0; i < num_attribs; i++) {
+ switch (attrib_list[i].type) {
+ case VAConfigAttribRTFormat:
+ break;
+
+ case VAConfigAttribRateControl:
+ attrib_list[i].value = VA_RC_NONE | VA_RC_CBR | VA_RC_VBR | VA_RC_VCM;
+ break;
+#if 0
+ case VAConfigAttribEncMaxSliceSize:
+ attrib_list[i].value = 0;
+ break;
+#endif
+ default:
+ attrib_list[i].value = VA_ATTRIB_NOT_SUPPORTED;
+ break;
+ }
+ }
+}
+
+
+static VAStatus lnc_H264ES_ValidateConfig(
+ object_config_p obj_config)
+{
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ psb__information_message("lnc_H264ES_ValidateConfig\n");
+
+ return vaStatus;
+
+}
+
+
+static VAStatus lnc_H264ES_CreateContext(
+ object_context_p obj_context,
+ object_config_p obj_config)
+{
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ context_ENC_p ctx;
+ int i;
+ unsigned int eRCmode = 0;
+
+ psb__information_message("lnc_H264ES_CreateContext\n");
+
+ vaStatus = lnc_CreateContext(obj_context, obj_config);
+
+ if (VA_STATUS_SUCCESS != vaStatus)
+ return VA_STATUS_ERROR_ALLOCATION_FAILED;
+
+ ctx = (context_ENC_p) obj_context->format_data;
+
+ ctx->max_slice_size = 0;
+ ctx->delta_change = 1;
+ eRCMode = VA_RC_NONE;
+ for (i = 0; i < obj_config->attrib_count; i++) {
+#if 0
+ if (obj_config->attrib_list[i].type == VAConfigAttribEncMaxSliceSize)
+ ctx->max_slice_size = obj_config->attrib_list[i].value;
+ else if (obj_config->attrib_list[i].type == VAConfigAttribRateControl)
+ eRCmode = obj_config->attrib_list[i].value;
+#else
+ if (obj_config->attrib_list[i].type == VAConfigAttribRateControl)
+ eRCmode = obj_config->attrib_list[i].value;
+#endif
+ }
+
+ psb__information_message("lnc_H264ES_CreateContext: max slice size %d\n", ctx->max_slice_size);
+
+ if (eRCmode == VA_RC_VBR) {
+ ctx->eCodec = IMG_CODEC_H264_VBR;
+ ctx->sRCParams.RCEnable = IMG_TRUE;
+ } else if (eRCmode == VA_RC_CBR) {
+ ctx->eCodec = IMG_CODEC_H264_CBR;
+ ctx->sRCParams.RCEnable = IMG_TRUE;
+ } else if (eRCmode == VA_RC_VCM) {
+ ctx->eCodec = IMG_CODEC_H264_VCM;
+ ctx->sRCParams.RCEnable = IMG_TRUE;
+ } else if (eRCmode == VA_RC_NONE) {
+ ctx->eCodec = IMG_CODEC_H264_NO_RC;
+ ctx->sRCParams.RCEnable = IMG_FALSE;
+ } else
+ return VA_STATUS_ERROR_UNSUPPORTED_RT_FORMAT;
+ ctx->eFormat = IMG_CODEC_PL12; /* use default */
+
+ ctx->IPEControl = lnc__get_ipe_control(ctx->eCodec);
+ ctx->idr_pic_id = 1;
+
+ switch (obj_config->profile) {
+ case VAProfileH264Baseline:
+ ctx->profile_idc = 5;
+ break;
+ case VAProfileH264Main:
+ ctx->profile_idc = 6;
+ break;
+ default:
+ ctx->profile_idc = 6;
+ break;
+ }
+
+ return vaStatus;
+}
+
+
+static void lnc_H264ES_DestroyContext(
+ object_context_p obj_context)
+{
+ struct coded_buf_aux_info *p_aux_info;
+ INIT_CONTEXT_H264ES;
+ psb__information_message("lnc_H264ES_DestroyPicture\n");
+
+ while (ctx->p_coded_buf_info != NULL) {
+ p_aux_info = ctx->p_coded_buf_info->next;
+ free(ctx->p_coded_buf_info);
+ ctx->p_coded_buf_info = p_aux_info;
+ }
+ lnc_DestroyContext(obj_context);
+}
+
+static VAStatus lnc_H264ES_BeginPicture(
+ object_context_p obj_context)
+{
+ INIT_CONTEXT_H264ES;
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+
+ psb__information_message("lnc_H264ES_BeginPicture\n");
+
+ vaStatus = lnc_BeginPicture(ctx);
+
+ return vaStatus;
+}
+
+static VAStatus lnc__H264ES_process_sequence_param(context_ENC_p ctx, object_buffer_p obj_buffer)
+{
+ VAEncSequenceParameterBufferH264 *pSequenceParams;
+ lnc_cmdbuf_p cmdbuf = ctx->obj_context->lnc_cmdbuf;
+ H264_VUI_PARAMS VUI_Params;
+ H264_CROP_PARAMS sCrop;
+ char hardcoded_qp[4];
+
+ ASSERT(obj_buffer->type == VAEncSequenceParameterBufferType);
+ ASSERT(obj_buffer->num_elements == 1);
+ ASSERT(obj_buffer->size == sizeof(VAEncSequenceParameterBufferH264));
+
+ if ((obj_buffer->num_elements != 1) ||
+ (obj_buffer->size != sizeof(VAEncSequenceParameterBufferH264))) {
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ ctx->obj_context->frame_count = 0;
+
+ pSequenceParams = (VAEncSequenceParameterBufferH264 *) obj_buffer->buffer_data;
+ obj_buffer->buffer_data = NULL;
+ obj_buffer->size = 0;
+
+ if ((ctx->obj_context->frame_count != 0) &&
+ (ctx->sRCParams.BitsPerSecond != pSequenceParams->bits_per_second))
+ ctx->update_rc_control = 1;
+
+ /* a new sequence and IDR need reset frame_count */
+ ctx->obj_context->frame_count = 0;
+
+ if (pSequenceParams->bits_per_second > TOPAZ_H264_MAX_BITRATE) {
+ ctx->sRCParams.BitsPerSecond = TOPAZ_H264_MAX_BITRATE;
+ psb__information_message(" bits_per_second(%d) exceeds \
+ the maximum bitrate, set it with %d\n",
+ pSequenceParams->bits_per_second,
+ TOPAZ_H264_MAX_BITRATE);
+ } else
+ ctx->sRCParams.BitsPerSecond = pSequenceParams->bits_per_second;
+
+ ctx->sRCParams.FrameRate = pSequenceParams->frame_rate;
+
+
+ if (psb_parse_config("PSB_VIDEO_IQP", hardcoded_qp) == 0)
+ pSequenceParams->initial_qp = atoi(hardcoded_qp);
+
+ if (pSequenceParams->initial_qp < 3)
+ pSequenceParams->initial_qp = 3;
+
+ if (psb_parse_config("PSB_VIDEO_MQP", hardcoded_qp) == 0)
+ pSequenceParams->min_qp = atoi(hardcoded_qp);
+
+ psb__information_message("Rate control parameter initial_qp=%d, min_qp=%d\n",
+ pSequenceParams->initial_qp,
+ pSequenceParams->min_qp);
+
+ ctx->sRCParams.InitialQp = pSequenceParams->initial_qp;
+
+ ctx->sRCParams.MinQP = pSequenceParams->min_qp;
+ ctx->sRCParams.BUSize = pSequenceParams->basic_unit_size;
+
+ ctx->sRCParams.Slices = 1;
+
+ ctx->sRCParams.IntraFreq = pSequenceParams->intra_period;
+ if (ctx->sRCParams.IntraFreq == 0)
+ ctx->sRCParams.IntraFreq = 1000;
+
+ ctx->sRCParams.IDRFreq = pSequenceParams->intra_idr_period;
+ psb__information_message("IntraFreq: %d\n, intra_idr_period: %d\n",
+ ctx->sRCParams.IntraFreq, ctx->sRCParams.IDRFreq);
+
+ VUI_Params.Time_Scale = ctx->sRCParams.FrameRate * 2;
+ VUI_Params.bit_rate_value_minus1 = ctx->sRCParams.BitsPerSecond / 64 - 1;
+ VUI_Params.cbp_size_value_minus1 = ctx->sRCParams.BufferSize / 64 - 1;
+ VUI_Params.CBR = 1;
+ VUI_Params.initial_cpb_removal_delay_length_minus1 = 0;
+ VUI_Params.cpb_removal_delay_length_minus1 = 0;
+ VUI_Params.dpb_output_delay_length_minus1 = 0;
+ VUI_Params.time_offset_length = 0;
+
+ sCrop.bClip = IMG_FALSE;
+ sCrop.LeftCropOffset = 0;
+ sCrop.RightCropOffset = 0;
+ sCrop.TopCropOffset = 0;
+ sCrop.BottomCropOffset = 0;
+
+ if (ctx->RawHeight & 0xf) {
+ sCrop.bClip = IMG_TRUE;
+ sCrop.BottomCropOffset = (((ctx->RawHeight + 0xf) & (~0xf)) - ctx->RawHeight) / 2;
+ }
+ if (ctx->RawWidth & 0xf) {
+ sCrop.bClip = IMG_TRUE;
+ sCrop.RightCropOffset = (((ctx->RawWidth + 0xf) & (~0xf)) - ctx->RawWidth) / 2;
+ }
+
+ /* sequence header is always inserted */
+ if (ctx->eCodec == IMG_CODEC_H264_NO_RC)
+ VUI_Params.CBR = 0;
+
+ lnc__H264_prepare_sequence_header(cmdbuf->header_mem_p + ctx->seq_header_ofs, pSequenceParams->max_num_ref_frames,
+ pSequenceParams->picture_width_in_mbs,
+ pSequenceParams->picture_height_in_mbs,
+ pSequenceParams->vui_flag,
+ pSequenceParams->vui_flag ? (&VUI_Params) : NULL,
+ &sCrop,
+ pSequenceParams->level_idc, ctx->profile_idc);
+
+ lnc_cmdbuf_insert_command(cmdbuf, MTX_CMDID_DO_HEADER, 2, 0); /* sequence header */
+ RELOC_CMDBUF(cmdbuf->cmd_idx++, ctx->seq_header_ofs, &cmdbuf->header_mem);
+
+ if (0 != ctx->sRCParams.IDRFreq) {
+ if (NULL == ctx->save_seq_header_p) {
+ ctx->save_seq_header_p = malloc(HEADER_SIZE);
+ if (NULL == ctx->save_seq_header_p) {
+ psb__error_message("Ran out of memory!\n");
+ free(pSequenceParams);
+ return VA_STATUS_ERROR_ALLOCATION_FAILED;
+ }
+ memcpy((void *)ctx->save_seq_header_p,
+ (void *)(cmdbuf->header_mem_p + ctx->seq_header_ofs),
+ HEADER_SIZE);
+ }
+ }
+ free(pSequenceParams);
+
+ return VA_STATUS_SUCCESS;
+}
+
+static VAStatus lnc__H264ES_process_picture_param(context_ENC_p ctx, object_buffer_p obj_buffer)
+{
+ VAStatus vaStatus;
+ VAEncPictureParameterBufferH264 *pBuffer;
+ lnc_cmdbuf_p cmdbuf = ctx->obj_context->lnc_cmdbuf;
+ struct coded_buf_aux_info *p_aux_info;
+ int need_sps = 0;
+
+ ASSERT(obj_buffer->type == VAEncPictureParameterBufferType);
+
+ if ((obj_buffer->num_elements != 1) ||
+ (obj_buffer->size != sizeof(VAEncPictureParameterBufferH264))) {
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ /* Transfer ownership of VAEncPictureParameterBufferH264 data */
+ pBuffer = (VAEncPictureParameterBufferH264 *) obj_buffer->buffer_data;
+ obj_buffer->buffer_data = NULL;
+ obj_buffer->size = 0;
+
+ ctx->ref_surface = SURFACE(pBuffer->reference_picture);
+ ctx->dest_surface = SURFACE(pBuffer->reconstructed_picture);
+ ctx->coded_buf = BUFFER(pBuffer->coded_buf);
+
+ ASSERT(ctx->Width == pBuffer->picture_width);
+ ASSERT(ctx->Height == pBuffer->picture_height);
+
+ if ((ctx->sRCParams.IntraFreq != 0) && (ctx->sRCParams.IDRFreq != 0)) { /* period IDR is desired */
+ unsigned int is_intra = 0;
+ unsigned int intra_cnt = 0;
+
+ ctx->force_idr_h264 = 0;
+
+ if ((ctx->obj_context->frame_count % ctx->sRCParams.IntraFreq) == 0) {
+ is_intra = 1; /* suppose current frame is I frame */
+ intra_cnt = ctx->obj_context->frame_count / ctx->sRCParams.IntraFreq;
+ }
+
+ /* current frame is I frame (suppose), and an IDR frame is desired*/
+ if ((is_intra) && ((intra_cnt % ctx->sRCParams.IDRFreq) == 0)) {
+ ctx->force_idr_h264 = 1;
+ /*When two consecutive access units in decoding order are both IDR access
+ * units, the value of idr_pic_id in the slices of the first such IDR
+ * access unit shall differ from the idr_pic_id in the second such IDR
+ * access unit. We set it with 1 or 0 alternately.*/
+ ctx->idr_pic_id = 1 - ctx->idr_pic_id;
+
+ /* it is periodic IDR in the middle of one sequence encoding, need SPS */
+ if (ctx->obj_context->frame_count > 0)
+ need_sps = 1;
+
+ ctx->obj_context->frame_count = 0;
+ }
+ }
+
+ /* For H264, PicHeader only needed in the first picture*/
+ if (!ctx->obj_context->frame_count) {
+ cmdbuf = ctx->obj_context->lnc_cmdbuf;
+
+ if (need_sps) {
+ /* reuse the previous SPS */
+ psb__information_message("TOPAZ: insert a SPS before IDR frame\n");
+ memcpy((void *)(cmdbuf->header_mem_p + ctx->seq_header_ofs),
+ (void *)ctx->save_seq_header_p,
+ HEADER_SIZE);
+
+ lnc_cmdbuf_insert_command(cmdbuf, MTX_CMDID_DO_HEADER, 2, 0); /* sequence header */
+ RELOC_CMDBUF(cmdbuf->cmd_idx++, ctx->seq_header_ofs, &cmdbuf->header_mem);
+ }
+
+ lnc__H264_prepare_picture_header(cmdbuf->header_mem_p + ctx->pic_header_ofs);
+
+ lnc_cmdbuf_insert_command(cmdbuf, MTX_CMDID_DO_HEADER, 2, 1);/* picture header */
+ RELOC_CMDBUF(cmdbuf->cmd_idx++, ctx->pic_header_ofs, &cmdbuf->header_mem);
+ }
+
+ /*Record if EOSEQ or EOSTREAM should be appended to the coded buffer.*/
+ if (0 != pBuffer->last_picture) {
+ psb__information_message("It's the last picture in sequence or stream."
+ " Will append EOSEQ/EOSTREAM to the coded buffer.\n");
+ p_aux_info = calloc(1, sizeof(struct coded_buf_aux_info));
+ if (NULL == p_aux_info) {
+ free(pBuffer);
+ return VA_STATUS_ERROR_ALLOCATION_FAILED;
+ }
+ p_aux_info->buf = ctx->coded_buf;
+ p_aux_info->aux_flag = pBuffer->last_picture;
+ if (NULL != ctx->p_coded_buf_info)
+ p_aux_info->next = ctx->p_coded_buf_info;
+ else
+ p_aux_info->next = NULL;
+
+ ctx->p_coded_buf_info = p_aux_info;
+ }
+
+ vaStatus = lnc_RenderPictureParameter(ctx);
+
+ free(pBuffer);
+ return vaStatus;
+}
+
+static VAStatus lnc__H264ES_process_slice_param(context_ENC_p ctx, object_buffer_p obj_buffer)
+{
+ /* Prepare InParams for macros of current slice, insert slice header, insert do slice command */
+ VAEncSliceParameterBuffer *pBuffer;
+ lnc_cmdbuf_p cmdbuf = ctx->obj_context->lnc_cmdbuf;
+ unsigned int MBSkipRun, FirstMBAddress;
+ PIC_PARAMS *psPicParams = (PIC_PARAMS *)(cmdbuf->pic_params_p);
+ int i;
+ int slice_param_idx;
+
+ ASSERT(obj_buffer->type == VAEncSliceParameterBufferType);
+
+ cmdbuf = ctx->obj_context->lnc_cmdbuf;
+ psPicParams = cmdbuf->pic_params_p;
+
+ /* Transfer ownership of VAEncPictureParameterBufferH264 data */
+ pBuffer = (VAEncSliceParameterBuffer *) obj_buffer->buffer_data;
+ obj_buffer->size = 0;
+
+ /* save current cmdbuf write pointer for H264 frameskip redo
+ * for H264, only slice header need to repatch
+ */
+ cmdbuf->cmd_idx_saved_frameskip = cmdbuf->cmd_idx;
+
+ if (0 == pBuffer->start_row_number) {
+ if (pBuffer->slice_flags.bits.is_intra)
+ RELOC_PIC_PARAMS(&psPicParams->InParamsBase, ctx->in_params_ofs, cmdbuf->topaz_in_params_I);
+ else
+ RELOC_PIC_PARAMS(&psPicParams->InParamsBase, ctx->in_params_ofs, cmdbuf->topaz_in_params_P);
+ }
+
+ /*In case the slice number changes*/
+ if ((ctx->slice_param_cache != NULL) && (obj_buffer->num_elements != ctx->slice_param_num)) {
+ psb__information_message("Slice number changes. Previous value is %d. Now it's %d\n",
+ ctx->slice_param_num, obj_buffer->num_elements);
+ free(ctx->slice_param_cache);
+ ctx->slice_param_cache = NULL;
+ ctx->slice_param_num = 0;
+ }
+
+ if (NULL == ctx->slice_param_cache) {
+ ctx->slice_param_num = obj_buffer->num_elements;
+ psb__information_message("Allocate %d VAEncSliceParameterBuffer cache buffers\n", 2 * ctx->slice_param_num);
+ ctx->slice_param_cache = calloc(2 * ctx->slice_param_num, sizeof(VAEncSliceParameterBuffer));
+ if (NULL == ctx->slice_param_cache) {
+ psb__error_message("Run out of memory!\n");
+ free(obj_buffer->buffer_data);
+ return VA_STATUS_ERROR_ALLOCATION_FAILED;
+ }
+ }
+
+ for (i = 0; i < obj_buffer->num_elements; i++) {
+ /*Todo list:
+ *1.Insert Do header command
+ *2.setup InRowParams
+ *3.setup Slice params
+ *4.Insert Do slice command
+ * */
+ int deblock_on, force_idr = 0;
+
+ if ((pBuffer->slice_height == 0) || (pBuffer->start_row_number >= ctx->Height)) {
+ psb__information_message("slice number is %d, but it seems the last %d buffers are empty\n",
+ obj_buffer->num_elements, obj_buffer->num_elements - i);
+ free(obj_buffer->buffer_data);
+ obj_buffer->buffer_data = NULL;
+ return VA_STATUS_SUCCESS;
+ }
+
+ /* set to INTRA frame */
+ if (ctx->force_idr_h264 || (ctx->obj_context->frame_count == 0)) {
+ force_idr = 1;
+ pBuffer->slice_flags.bits.is_intra = 1;
+ }
+
+ if ((pBuffer->slice_flags.bits.disable_deblocking_filter_idc == 0)
+ || (pBuffer->slice_flags.bits.disable_deblocking_filter_idc == 2))
+ deblock_on = IMG_TRUE;
+ else
+ deblock_on = IMG_FALSE;
+
+ if (ctx->sRCParams.RCEnable && ctx->sRCParams.FrameSkip)
+ MBSkipRun = (ctx->Width * ctx->Height) / 256;
+ else
+ MBSkipRun = 0;
+
+ FirstMBAddress = (pBuffer->start_row_number * ctx->Width) / 16;
+ /* Insert Do Header command, relocation is needed */
+ lnc__H264_prepare_slice_header(cmdbuf->header_mem_p + ctx->slice_header_ofs + ctx->obj_context->slice_count * HEADER_SIZE,
+ pBuffer->slice_flags.bits.is_intra,
+ pBuffer->slice_flags.bits.disable_deblocking_filter_idc,
+ ctx->obj_context->frame_count,
+ FirstMBAddress,
+ MBSkipRun, force_idr,
+ pBuffer->slice_flags.bits.uses_long_term_ref,
+ pBuffer->slice_flags.bits.is_long_term_ref,
+ ctx->idr_pic_id);
+
+ lnc_cmdbuf_insert_command(cmdbuf, MTX_CMDID_DO_HEADER, 2, (ctx->obj_context->slice_count << 2) | 2);
+ RELOC_CMDBUF(cmdbuf->cmd_idx++,
+ ctx->slice_header_ofs + ctx->obj_context->slice_count * HEADER_SIZE,
+ &cmdbuf->header_mem);
+
+ if (!(ctx->sRCParams.RCEnable && ctx->sRCParams.FrameSkip)) {
+ if ((ctx->obj_context->frame_count == 0) && (pBuffer->start_row_number == 0) && pBuffer->slice_flags.bits.is_intra)
+ lnc_reset_encoder_params(ctx);
+
+ /*The corresponding slice buffer cache*/
+ slice_param_idx = (pBuffer->slice_flags.bits.is_intra ? 0 : 1) * ctx->slice_param_num + i;
+
+ if (VAEncSliceParameter_Equal(&ctx->slice_param_cache[slice_param_idx], pBuffer) == 0) {
+ psb__information_message("Cache slice%d's parameter buffer at index %d\n", i, slice_param_idx);
+
+ /* cache current param parameters */
+ memcpy(&ctx->slice_param_cache[slice_param_idx],
+ pBuffer, sizeof(VAEncSliceParameterBuffer));
+
+ /* Setup InParams value*/
+ lnc_setup_slice_params(ctx,
+ pBuffer->start_row_number * 16,
+ pBuffer->slice_height * 16,
+ pBuffer->slice_flags.bits.is_intra,
+ ctx->obj_context->frame_count > 0,
+ psPicParams->sInParams.SeInitQP);
+ }
+
+ /* Insert do slice command and setup related buffer value */
+ lnc__send_encode_slice_params(ctx,
+ pBuffer->slice_flags.bits.is_intra,
+ pBuffer->start_row_number * 16,
+ deblock_on,
+ ctx->obj_context->frame_count,
+ pBuffer->slice_height * 16,
+ ctx->obj_context->slice_count, ctx->max_slice_size);
+
+ psb__information_message("Now frame_count/slice_count is %d/%d\n",
+ ctx->obj_context->frame_count, ctx->obj_context->slice_count);
+ }
+ ctx->obj_context->slice_count++;
+ pBuffer++; /* Move to the next buffer */
+
+ ASSERT(ctx->obj_context->slice_count < MAX_SLICES_PER_PICTURE);
+ }
+
+ free(obj_buffer->buffer_data);
+ obj_buffer->buffer_data = NULL;
+
+ return VA_STATUS_SUCCESS;
+}
+
+static VAStatus lnc__H264ES_process_misc_param(context_ENC_p ctx, object_buffer_p obj_buffer)
+{
+ /* Prepare InParams for macros of current slice, insert slice header, insert do slice command */
+ VAEncMiscParameterBuffer *pBuffer;
+ VAEncMiscParameterRateControl *rate_control_param;
+ VAEncMiscParameterAIR *air_param;
+ VAEncMiscParameterMaxSliceSize *max_slice_size_param;
+ VAEncMiscParameterFrameRate *frame_rate_param;
+ unsigned int bit_rate;
+ char hardcoded_qp[4];
+
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+
+ ASSERT(obj_buffer->type == VAEncMiscParameterBufferType);
+
+ /* Transfer ownership of VAEncMiscParameterBuffer data */
+ pBuffer = (VAEncMiscParameterBuffer *) obj_buffer->buffer_data;
+ obj_buffer->size = 0;
+
+ switch (pBuffer->type) {
+ case VAEncMiscParameterTypeFrameRate:
+ frame_rate_param = (VAEncMiscParameterFrameRate *)pBuffer->data;
+
+ if (frame_rate_param->framerate > 65535) {
+ vaStatus = VA_STATUS_ERROR_INVALID_PARAMETER;
+ break;
+ }
+
+ psb__information_message("%s: frame rate changed to %d\n", __FUNCTION__,
+ frame_rate_param->framerate);
+
+ if (ctx->sRCParams.FrameRate == frame_rate_param->framerate)
+ break;
+
+ ctx->sRCParams.FrameRate = frame_rate_param->framerate;
+ ctx->sRCParams.BitsPerSecond += ctx->delta_change;
+ ctx->delta_change *= -1;
+ ctx->update_rc_control = 1;
+
+ break;
+
+ case VAEncMiscParameterTypeRateControl:
+ rate_control_param = (VAEncMiscParameterRateControl *)pBuffer->data;
+
+ if (psb_parse_config("PSB_VIDEO_IQP", hardcoded_qp) == 0)
+ rate_control_param->initial_qp = atoi(hardcoded_qp);
+
+ if (psb_parse_config("PSB_VIDEO_MQP", hardcoded_qp) == 0)
+ rate_control_param->min_qp = atoi(hardcoded_qp);
+
+ if (rate_control_param->initial_qp > 65535 ||
+ rate_control_param->initial_qp < 3 ||
+ rate_control_param->min_qp > 65535 ||
+ rate_control_param->target_percentage > 65535) {
+ vaStatus = VA_STATUS_ERROR_INVALID_PARAMETER;
+ break;
+ }
+
+ psb__information_message("Rate control parameter initial_qp=%d, min_qp=%d\n",
+ rate_control_param->initial_qp,
+ rate_control_param->min_qp);
+
+ if (rate_control_param->bits_per_second > TOPAZ_H264_MAX_BITRATE) {
+ bit_rate = TOPAZ_H264_MAX_BITRATE;
+ psb__information_message(" bits_per_second(%d) exceeds \
+ the maximum bitrate, set it with %d\n",
+ rate_control_param->bits_per_second,
+ TOPAZ_H264_MAX_BITRATE);
+ } else {
+ bit_rate = rate_control_param->bits_per_second;
+ }
+
+ psb__information_message("rate control changed to %d\n",
+ rate_control_param->bits_per_second);
+
+ if ((rate_control_param->bits_per_second == ctx->sRCParams.BitsPerSecond) &&
+ (ctx->sRCParams.VCMBitrateMargin == rate_control_param->target_percentage * 128 / 100) &&
+ (ctx->sRCParams.BufferSize == ctx->sRCParams.BitsPerSecond / 1000 * rate_control_param->window_size) &&
+ (ctx->sRCParams.MinQP == rate_control_param->min_qp) &&
+ (ctx->sRCParams.InitialQp == rate_control_param->initial_qp))
+ break;
+ else
+ ctx->update_rc_control = 1;
+
+ if (rate_control_param->target_percentage != 0)
+ ctx->sRCParams.VCMBitrateMargin = rate_control_param->target_percentage * 128 / 100;
+ if (rate_control_param->window_size != 0)
+ ctx->sRCParams.BufferSize = ctx->sRCParams.BitsPerSecond * rate_control_param->window_size / 1000;
+ if (rate_control_param->initial_qp != 0)
+ ctx->sRCParams.InitialQp = rate_control_param->initial_qp;
+ if (rate_control_param->min_qp != 0)
+ ctx->sRCParams.MinQP = rate_control_param->min_qp;
+
+ if ((bit_rate == ctx->sRCParams.BitsPerSecond) || (bit_rate == 0)) {
+ ctx->sRCParams.BitsPerSecond += ctx->delta_change;
+ ctx->delta_change *= -1;
+ } else {
+ ctx->sRCParams.BitsPerSecond = bit_rate;
+ }
+
+ break;
+
+ case VAEncMiscParameterTypeMaxSliceSize:
+ max_slice_size_param = (VAEncMiscParameterMaxSliceSize *)pBuffer->data;
+
+ if (max_slice_size_param->max_slice_size > INT_MAX ||
+ (max_slice_size_param->max_slice_size != 0 &&
+ max_slice_size_param->max_slice_size < WORST_CASE_SLICE_HEADER_SIZE)) {
+ vaStatus = VA_STATUS_ERROR_INVALID_PARAMETER;
+ break;
+ }
+
+ if (max_slice_size_param->max_slice_size != 0)
+ max_slice_size_param->max_slice_size -= WORST_CASE_SLICE_HEADER_SIZE;
+
+ if (ctx->max_slice_size == max_slice_size_param->max_slice_size)
+ break;
+
+ psb__information_message("Max slice size changed to %d\n",
+ max_slice_size_param->max_slice_size);
+
+ ctx->max_slice_size = max_slice_size_param->max_slice_size;
+
+ break;
+
+ case VAEncMiscParameterTypeAIR:
+ air_param = (VAEncMiscParameterAIR *)pBuffer->data;
+
+ if (air_param->air_num_mbs > 65535 ||
+ air_param->air_threshold > 65535) {
+ vaStatus = VA_STATUS_ERROR_INVALID_PARAMETER;
+ break;
+ }
+
+ psb__information_message("air slice size changed to num_air_mbs %d "
+ "air_threshold %d, air_auto %d\n",
+ air_param->air_num_mbs, air_param->air_threshold,
+ air_param->air_auto);
+
+ if (((ctx->Height * ctx->Width) >> 8) < air_param->air_num_mbs)
+ air_param->air_num_mbs = ((ctx->Height * ctx->Width) >> 8);
+ if (air_param->air_threshold == 0)
+ psb__information_message("%s: air threshold is set to zero\n",
+ __FUNCTION__);
+ ctx->num_air_mbs = air_param->air_num_mbs;
+ ctx->air_threshold = air_param->air_threshold;
+ ctx->autotune_air_flag = air_param->air_auto;
+
+ break;
+
+ default:
+ vaStatus = VA_STATUS_ERROR_UNKNOWN;
+ DEBUG_FAILURE;
+ break;
+ }
+
+ free(obj_buffer->buffer_data);
+ obj_buffer->buffer_data = NULL;
+
+ return vaStatus;
+}
+
+static VAStatus lnc_H264ES_RenderPicture(
+ object_context_p obj_context,
+ object_buffer_p *buffers,
+ int num_buffers)
+{
+ INIT_CONTEXT_H264ES;
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ int i;
+
+ psb__information_message("lnc_H264ES_RenderPicture\n");
+
+ for (i = 0; i < num_buffers; i++) {
+ object_buffer_p obj_buffer = buffers[i];
+
+ switch (obj_buffer->type) {
+ case VAEncSequenceParameterBufferType:
+ psb__information_message("lnc_H264_RenderPicture got VAEncSequenceParameterBufferType\n");
+ vaStatus = lnc__H264ES_process_sequence_param(ctx, obj_buffer);
+ DEBUG_FAILURE;
+ break;
+
+ case VAEncPictureParameterBufferType:
+ psb__information_message("lnc_H264_RenderPicture got VAEncPictureParameterBuffer\n");
+ vaStatus = lnc__H264ES_process_picture_param(ctx, obj_buffer);
+ DEBUG_FAILURE;
+ break;
+
+ case VAEncSliceParameterBufferType:
+ psb__information_message("lnc_H264_RenderPicture got VAEncSliceParameterBufferType\n");
+ vaStatus = lnc__H264ES_process_slice_param(ctx, obj_buffer);
+ DEBUG_FAILURE;
+ break;
+
+ case VAEncMiscParameterBufferType:
+ psb__information_message("lnc_H264_RenderPicture got VAEncMiscParameterBufferType\n");
+ vaStatus = lnc__H264ES_process_misc_param(ctx, obj_buffer);
+ DEBUG_FAILURE;
+ break;
+
+ default:
+ vaStatus = VA_STATUS_ERROR_UNKNOWN;
+ DEBUG_FAILURE;
+ }
+ if (vaStatus != VA_STATUS_SUCCESS) {
+ break;
+ }
+ }
+
+ return vaStatus;
+}
+
+static VAStatus lnc_H264ES_EndPicture(
+ object_context_p obj_context)
+{
+ INIT_CONTEXT_H264ES;
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+
+ psb__information_message("lnc_H264ES_EndPicture\n");
+
+ vaStatus = lnc_EndPicture(ctx);
+
+ return vaStatus;
+}
+
+
+struct format_vtable_s lnc_H264ES_vtable = {
+queryConfigAttributes:
+ lnc_H264ES_QueryConfigAttributes,
+validateConfig:
+ lnc_H264ES_ValidateConfig,
+createContext:
+ lnc_H264ES_CreateContext,
+destroyContext:
+ lnc_H264ES_DestroyContext,
+beginPicture:
+ lnc_H264ES_BeginPicture,
+renderPicture:
+ lnc_H264ES_RenderPicture,
+endPicture:
+ lnc_H264ES_EndPicture
+};
+
+static inline void lnc_H264_append_EOSEQ(unsigned char *p_buf, unsigned int *p_size)
+{
+ /*nal_ref_idc should be 0 and nal_ref_idc should be 10 for End of Sequence RBSP*/
+ const unsigned char EOSEQ[] = {0x00, 0x00, 0x00, 0x01, 0xa};
+ psb__information_message("Append %d bytes of End of Sequence RBSP at offset %d\n",
+ sizeof(EOSEQ), *p_size);
+ psb__information_message("Previous 4 bytes: %x %x %x %x\n", *(p_buf - 3), *(p_buf - 2), *(p_buf - 1), *(p_buf));
+ p_buf += *p_size;
+ memcpy(p_buf, &EOSEQ[0], sizeof(EOSEQ));
+ psb__information_message("After 4 bytes: %x %x %x %x\n", *(p_buf + 1), *(p_buf + 2), *(p_buf + 3), *(p_buf + 4));
+ *p_size += sizeof(EOSEQ);
+}
+
+static inline void lnc_H264_append_EOSTREAM(unsigned char *p_buf, unsigned int *p_size)
+{
+ /*nal_ref_idc should be 0 and nal_ref_idc should be 11 for End of Stream RBSP*/
+ const unsigned char EOSTREAM[] = {0x00, 0x00, 0x00, 0x01, 0xb};
+ psb__information_message("Append %d bytes of End of Stream RBSP.\n",
+ sizeof(EOSTREAM));
+ p_buf += *p_size;
+ memcpy(p_buf, EOSTREAM, sizeof(EOSTREAM));
+ *p_size += sizeof(EOSTREAM);
+}
+
+VAStatus lnc_H264_append_aux_info(object_context_p obj_context,
+ object_buffer_p obj_buffer,
+ unsigned char *buf,
+ unsigned int *p_size)
+{
+ INIT_CONTEXT_H264ES;
+ struct coded_buf_aux_info *p_aux_info;
+ struct coded_buf_aux_info *p_prev_aux_info;
+
+ if (NULL == ctx->p_coded_buf_info ||
+ (ctx->eCodec != IMG_CODEC_H264_VBR
+ && ctx->eCodec != IMG_CODEC_H264_CBR
+ && ctx->eCodec != IMG_CODEC_H264_NO_RC))
+ return VA_STATUS_SUCCESS;
+
+ ASSERT(obj_buffer);
+ ASSERT(buf);
+ ASSERT(p_size);
+
+ p_aux_info = ctx->p_coded_buf_info;
+ p_prev_aux_info = ctx->p_coded_buf_info;
+ while (p_aux_info != NULL) {
+ /*Check if we need to append NAL to this coded buffer*/
+ if (p_aux_info->buf == obj_buffer)
+ break;
+ p_prev_aux_info = p_aux_info;
+ p_aux_info = p_aux_info->next;
+ }
+
+ if (NULL != p_aux_info) {
+ psb__information_message("coded_buf_aux_info 0x%08x\n", p_aux_info->aux_flag);
+ if (0 != (p_aux_info->aux_flag & CODED_BUFFER_EOSEQ_FLAG))
+ lnc_H264_append_EOSEQ(buf, p_size);
+
+ if (0 != (p_aux_info->aux_flag & CODED_BUFFER_EOSTREAM_FLAG))
+ lnc_H264_append_EOSTREAM(buf, p_size);
+
+ if (p_aux_info == ctx->p_coded_buf_info)
+ ctx->p_coded_buf_info = p_aux_info->next;
+ else
+ p_prev_aux_info->next = p_aux_info->next;
+
+ free(p_aux_info);
+ }
+ return VA_STATUS_SUCCESS;
+}
diff --git a/src/lnc_H264ES.h b/src/lnc_H264ES.h
new file mode 100644
index 0000000..7b1b8ba
--- /dev/null
+++ b/src/lnc_H264ES.h
@@ -0,0 +1,44 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ * Zeng Li <zeng.li@intel.com>
+ * Shengquan Yuan <shengquan.yuan@intel.com>
+ * Binglin Chen <binglin.chen@intel.com>
+ *
+ */
+
+#ifndef _LNC_H264ES_H_
+#define _LNC_H264ES_H_
+
+#include "psb_drv_video.h"
+
+extern struct format_vtable_s lnc_H264ES_vtable;
+
+extern VAStatus lnc_H264_append_aux_info(object_context_p obj_context,
+ object_buffer_p obj_buffer,
+ unsigned char *buf,
+ unsigned int *p_size);
+
+#endif /* _LNC_H264_H_ */
diff --git a/src/lnc_MPEG4ES.c b/src/lnc_MPEG4ES.c
new file mode 100644
index 0000000..0bb7e45
--- /dev/null
+++ b/src/lnc_MPEG4ES.c
@@ -0,0 +1,562 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ * Zeng Li <zeng.li@intel.com>
+ * Shengquan Yuan <shengquan.yuan@intel.com>
+ * Binglin Chen <binglin.chen@intel.com>
+ *
+ */
+
+#include "psb_def.h"
+#include "psb_surface.h"
+#include "psb_cmdbuf.h"
+#include "lnc_MPEG4ES.h"
+#include "lnc_hostcode.h"
+#include "lnc_hostheader.h"
+
+#include <stdlib.h>
+#include <stdint.h>
+#include <string.h>
+
+
+#define TOPAZ_MPEG4_MAX_BITRATE 16000000
+
+#define INIT_CONTEXT_MPEG4ES context_ENC_p ctx = (context_ENC_p) obj_context->format_data
+#define SURFACE(id) ((object_surface_p) object_heap_lookup( &ctx->obj_context->driver_data->surface_heap, id ))
+#define BUFFER(id) ((object_buffer_p) object_heap_lookup( &ctx->obj_context->driver_data->buffer_heap, id ))
+
+
+
+static void lnc_MPEG4ES_QueryConfigAttributes(
+ VAProfile profile,
+ VAEntrypoint entrypoint,
+ VAConfigAttrib *attrib_list,
+ int num_attribs)
+{
+ int i;
+
+ psb__information_message("lnc_MPEG4ES_QueryConfigAttributes\n");
+
+ /* RateControl attributes */
+ for (i = 0; i < num_attribs; i++) {
+ switch (attrib_list[i].type) {
+ case VAConfigAttribRTFormat:
+ break;
+
+ case VAConfigAttribRateControl:
+ attrib_list[i].value = VA_RC_NONE | VA_RC_CBR | VA_RC_VBR;
+ break;
+#if 0
+ case VAConfigAttribEncMaxSliceSize:
+ attrib_list[i].value = 0;
+ break;
+#endif
+ default:
+ attrib_list[i].value = VA_ATTRIB_NOT_SUPPORTED;
+ break;
+ }
+ }
+
+ return;
+}
+
+
+static VAStatus lnc_MPEG4ES_ValidateConfig(
+ object_config_p obj_config)
+{
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ psb__information_message("lnc_MPEG4ES_ValidateConfig\n");
+
+ return vaStatus;
+
+}
+
+
+static VAStatus lnc_MPEG4ES_CreateContext(
+ object_context_p obj_context,
+ object_config_p obj_config)
+{
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ context_ENC_p ctx;
+ int i;
+ unsigned int eRCmode;
+
+ psb__information_message("lnc_MPEG4ES_CreateContext\n");
+
+ vaStatus = lnc_CreateContext(obj_context, obj_config);
+ if (VA_STATUS_SUCCESS != vaStatus)
+ return VA_STATUS_ERROR_ALLOCATION_FAILED;
+
+ ctx = (context_ENC_p) obj_context->format_data;
+ ctx->FCode = 3;
+
+ ctx->max_slice_size = 0;
+ eRCmode = VA_RC_NONE;
+
+ for (i = 0; i < obj_config->attrib_count; i++) {
+#if 0
+ if (obj_config->attrib_list[i].type == VAConfigAttribEncMaxSliceSize)
+ ctx->max_slice_size = obj_config->attrib_list[i].value;
+ else if (obj_config->attrib_list[i].type == VAConfigAttribRateControl)
+ eRCmode = obj_config->attrib_list[i].value;
+
+#else
+ if (obj_config->attrib_list[i].type == VAConfigAttribRateControl)
+ eRCmode = obj_config->attrib_list[i].value;
+#endif
+ }
+
+ if (eRCmode == VA_RC_VBR) {
+ ctx->eCodec = IMG_CODEC_MPEG4_VBR;
+ ctx->sRCParams.RCEnable = IMG_TRUE;
+ } else if (eRCmode == VA_RC_CBR) {
+ ctx->eCodec = IMG_CODEC_MPEG4_CBR;
+ ctx->sRCParams.RCEnable = IMG_TRUE;
+ } else if (eRCmode == VA_RC_NONE) {
+ ctx->eCodec = IMG_CODEC_MPEG4_NO_RC;
+ ctx->sRCParams.RCEnable = IMG_FALSE;
+ } else
+ return VA_STATUS_ERROR_UNSUPPORTED_RT_FORMAT;
+ ctx->eFormat = IMG_CODEC_PL12;
+
+ ctx->IPEControl = lnc__get_ipe_control(ctx->eCodec);
+
+ switch (obj_config->profile) {
+ case VAProfileMPEG4Simple:
+ ctx->profile_idc = 2;
+ break;
+ case VAProfileMPEG4AdvancedSimple:
+ ctx->profile_idc = 3;
+ break;
+ default:
+ ctx->profile_idc = 2;
+ break;
+ }
+
+ return vaStatus;
+}
+
+
+static void lnc_MPEG4ES_DestroyContext(
+ object_context_p obj_context)
+{
+ psb__information_message("lnc_MPEG4ES_DestroyPicture\n");
+
+ lnc_DestroyContext(obj_context);
+}
+
+static VAStatus lnc_MPEG4ES_BeginPicture(
+ object_context_p obj_context)
+{
+ INIT_CONTEXT_MPEG4ES;
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+
+ psb__information_message("lnc_MPEG4ES_BeginPicture\n");
+
+ vaStatus = lnc_BeginPicture(ctx);
+
+ return vaStatus;
+}
+
+static VAStatus lnc__MPEG4ES_process_sequence_param(context_ENC_p ctx, object_buffer_p obj_buffer)
+{
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ VAEncSequenceParameterBufferMPEG4 *seq_params;
+ lnc_cmdbuf_p cmdbuf = ctx->obj_context->lnc_cmdbuf;
+ MPEG4_PROFILE_TYPE profile;
+
+ ASSERT(obj_buffer->type == VAEncSequenceParameterBufferType);
+ ASSERT(obj_buffer->num_elements == 1);
+ ASSERT(obj_buffer->size == sizeof(VAEncSequenceParameterBufferMPEG4));
+
+ if ((obj_buffer->num_elements != 1) ||
+ (obj_buffer->size != sizeof(VAEncSequenceParameterBufferMPEG4))) {
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ seq_params = (VAEncSequenceParameterBufferMPEG4 *) obj_buffer->buffer_data;
+ obj_buffer->buffer_data = NULL;
+ obj_buffer->size = 0;
+
+ if ((ctx->obj_context->frame_count != 0) &&
+ (ctx->sRCParams.BitsPerSecond != seq_params->bits_per_second))
+ ctx->update_rc_control = 1;
+
+ if (seq_params->bits_per_second > TOPAZ_MPEG4_MAX_BITRATE) {
+ ctx->sRCParams.BitsPerSecond = TOPAZ_MPEG4_MAX_BITRATE;
+ psb__information_message(" bits_per_second(%d) exceeds \
+ the maximum bitrate, set it with %d\n",
+ seq_params->bits_per_second,
+ TOPAZ_MPEG4_MAX_BITRATE);
+ } else
+ ctx->sRCParams.BitsPerSecond = seq_params->bits_per_second;
+
+ if (seq_params->initial_qp < 3)
+ seq_params->initial_qp = 3;
+
+ ctx->sRCParams.FrameRate = seq_params->frame_rate;
+ ctx->sRCParams.InitialQp = seq_params->initial_qp;
+ ctx->sRCParams.MinQP = seq_params->min_qp;
+ ctx->sRCParams.BUSize = 0; /* default 0, and will be set in lnc__setup_busize */
+
+ ctx->sRCParams.Slices = 1;
+ ctx->sRCParams.IntraFreq = seq_params->intra_period;
+
+ cmdbuf = ctx->obj_context->lnc_cmdbuf;
+
+ switch (ctx->profile_idc) {
+ case 2:
+ profile = SP;
+ break;
+ case 3:
+ profile = ASP;
+ break;
+ default:
+ profile = SP;
+ break;
+ }
+
+ lnc__MPEG4_prepare_sequence_header(
+ cmdbuf->header_mem_p + ctx->seq_header_ofs,
+ 0, /* BFrame? */
+ profile, /* sProfile */
+ seq_params->profile_and_level_indication, /* */
+ seq_params->fixed_vop_time_increment, /*3,*/ /* sFixed_vop_time_increment */
+ seq_params->video_object_layer_width,/* Picture_Width_Pixels */
+ seq_params->video_object_layer_height, /* Picture_Height_Pixels */
+ 0, /* bVBVPresent */
+ 0, /* First_half_bit_rate */
+ 0, /* Latter_half_bit_rate */
+ 0, /* First_half_vbv_buffer_size */
+ 0, /* Latter_half_vbv_buffer_size */
+ 0, /* First_half_vbv_occupancy */
+ 0, /* Latter_half_vbv_occupancy */
+ seq_params->vop_time_increment_resolution); /* VopTimeResolution */
+
+ ctx->MPEG4_vop_time_increment_resolution = seq_params->vop_time_increment_resolution;
+
+ lnc_cmdbuf_insert_command(cmdbuf, MTX_CMDID_DO_HEADER, 2, 0);
+ RELOC_CMDBUF(cmdbuf->cmd_idx++, ctx->seq_header_ofs, &cmdbuf->header_mem);
+
+ free(seq_params);
+ return vaStatus;
+}
+
+
+static VAStatus lnc__MPEG4ES_process_picture_param(context_ENC_p ctx, object_buffer_p obj_buffer)
+{
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ VAEncPictureParameterBufferMPEG4 *pBuffer;
+ lnc_cmdbuf_p cmdbuf = ctx->obj_context->lnc_cmdbuf;
+ IMG_BOOL bIsVOPCoded = IMG_TRUE;
+
+ ASSERT(obj_buffer->type == VAEncPictureParameterBufferType);
+
+ if ((obj_buffer->num_elements != 1) ||
+ (obj_buffer->size != sizeof(VAEncPictureParameterBufferMPEG4))) {
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ /* Transfer ownership of VAEncPictureParameterBufferMPEG4 data */
+ pBuffer = (VAEncPictureParameterBufferMPEG4 *) obj_buffer->buffer_data;
+ obj_buffer->buffer_data = NULL;
+ obj_buffer->size = 0;
+
+ ctx->ref_surface = SURFACE(pBuffer->reference_picture);
+ ctx->dest_surface = SURFACE(pBuffer->reconstructed_picture);
+ ctx->coded_buf = BUFFER(pBuffer->coded_buf);
+
+ ASSERT(ctx->Width == pBuffer->picture_width);
+ ASSERT(ctx->Height == pBuffer->picture_height);
+
+ if (ctx->sRCParams.RCEnable && ctx->sRCParams.FrameSkip)
+ bIsVOPCoded = IMG_FALSE;
+
+ /* save current cmdbuf write pointer for MPEG4 frameskip redo
+ * MPEG4 picture header need re-patch, and no slice header needed
+ * for a skipped frame
+ */
+ cmdbuf->cmd_idx_saved_frameskip = cmdbuf->cmd_idx;
+
+ lnc__MPEG4_prepare_vop_header(cmdbuf->header_mem_p + ctx->pic_header_ofs,
+ bIsVOPCoded,
+ pBuffer->vop_time_increment, /* In testbench, this should be FrameNum */
+ 4,/* default value is 4,search range */
+ pBuffer->picture_type,
+ ctx->MPEG4_vop_time_increment_resolution/* defaule value */);
+
+ lnc_cmdbuf_insert_command(cmdbuf, MTX_CMDID_DO_HEADER, 2, 1);
+ RELOC_CMDBUF(cmdbuf->cmd_idx++, ctx->pic_header_ofs, &cmdbuf->header_mem);
+
+ vaStatus = lnc_RenderPictureParameter(ctx);
+
+ free(pBuffer);
+ return vaStatus;
+}
+
+static VAStatus lnc__MPEG4ES_process_slice_param(context_ENC_p ctx, object_buffer_p obj_buffer)
+{
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ VAEncSliceParameterBuffer *pBuffer;
+ lnc_cmdbuf_p cmdbuf = ctx->obj_context->lnc_cmdbuf;
+ PIC_PARAMS *psPicParams = (PIC_PARAMS *)(cmdbuf->pic_params_p);
+ int i;
+ int slice_param_idx;
+
+ ASSERT(obj_buffer->type == VAEncSliceParameterBufferType);
+
+ pBuffer = (VAEncSliceParameterBuffer *) obj_buffer->buffer_data;
+
+ if (0 == pBuffer->start_row_number) {
+ if (pBuffer->slice_flags.bits.is_intra)
+ RELOC_PIC_PARAMS(&psPicParams->InParamsBase, ctx->in_params_ofs, cmdbuf->topaz_in_params_I);
+ else
+ RELOC_PIC_PARAMS(&psPicParams->InParamsBase, ctx->in_params_ofs, cmdbuf->topaz_in_params_P);
+ }
+
+ /*In case the slice number changes*/
+ if ((ctx->slice_param_cache != NULL) && (obj_buffer->num_elements != ctx->slice_param_num)) {
+ psb__information_message("Slice number changes. Previous value is %d. Now it's %d\n",
+ ctx->slice_param_num, obj_buffer->num_elements);
+ free(ctx->slice_param_cache);
+ ctx->slice_param_cache = NULL;
+ ctx->slice_param_num = 0;
+ }
+
+ if (NULL == ctx->slice_param_cache) {
+ psb__information_message("Allocate %d VAEncSliceParameterBuffer cache buffers\n", 2 * ctx->slice_param_num);
+ ctx->slice_param_num = obj_buffer->num_elements;
+ ctx->slice_param_cache = calloc(2 * ctx->slice_param_num, sizeof(VAEncSliceParameterBuffer));
+ if (NULL == ctx->slice_param_cache) {
+ psb__error_message("Run out of memory!\n");
+ free(obj_buffer->buffer_data);
+ return VA_STATUS_ERROR_ALLOCATION_FAILED;
+ }
+ }
+
+ for (i = 0; i < obj_buffer->num_elements; i++) {
+ if (!(ctx->sRCParams.RCEnable && ctx->sRCParams.FrameSkip)) {
+ if ((ctx->obj_context->frame_count == 0) && (pBuffer->start_row_number == 0) && pBuffer->slice_flags.bits.is_intra)
+ lnc_reset_encoder_params(ctx);
+
+ /*The corresponding slice buffer cache*/
+ slice_param_idx = (pBuffer->slice_flags.bits.is_intra ? 0 : 1) * ctx->slice_param_num + i;
+
+ if (VAEncSliceParameter_Equal(&ctx->slice_param_cache[slice_param_idx], pBuffer) == 0) {
+ /* cache current param parameters */
+ memcpy(&ctx->slice_param_cache[slice_param_idx],
+ pBuffer, sizeof(VAEncSliceParameterBuffer));
+
+ /* Setup InParams value*/
+ lnc_setup_slice_params(ctx,
+ pBuffer->start_row_number * 16,
+ pBuffer->slice_height * 16,
+ pBuffer->slice_flags.bits.is_intra,
+ ctx->obj_context->frame_count > 0,
+ psPicParams->sInParams.SeInitQP);
+ }
+
+ lnc__send_encode_slice_params(ctx,
+ pBuffer->slice_flags.bits.is_intra,
+ pBuffer->start_row_number * 16,
+ IMG_FALSE, /* Deblock is off for MPEG4*/
+ ctx->obj_context->frame_count,
+ pBuffer->slice_height * 16,
+ ctx->obj_context->slice_count,
+ ctx->max_slice_size);
+
+ psb__information_message("Now frame_count/slice_count is %d/%d\n",
+ ctx->obj_context->frame_count, ctx->obj_context->slice_count);
+ }
+ ctx->obj_context->slice_count++;
+ pBuffer++;
+
+ ASSERT(ctx->obj_context->slice_count < MAX_SLICES_PER_PICTURE);
+ }
+
+ free(obj_buffer->buffer_data);
+ obj_buffer->buffer_data = NULL;
+
+ return vaStatus;
+}
+
+static VAStatus lnc__MPEG4ES_process_misc_param(context_ENC_p ctx, object_buffer_p obj_buffer)
+{
+ /* Prepare InParams for macros of current slice, insert slice header, insert do slice command */
+ VAEncMiscParameterBuffer *pBuffer;
+ VAEncMiscParameterRateControl *rate_control_param;
+ VAEncMiscParameterAIR *air_param;
+ VAEncMiscParameterMaxSliceSize *max_slice_size_param;
+ VAEncMiscParameterFrameRate *frame_rate_param;
+
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+
+ ASSERT(obj_buffer->type == VAEncMiscParameterBufferType);
+
+ pBuffer = (VAEncMiscParameterBuffer *) obj_buffer->buffer_data;
+ obj_buffer->size = 0;
+
+ switch (pBuffer->type) {
+ case VAEncMiscParameterTypeFrameRate:
+ frame_rate_param = (VAEncMiscParameterFrameRate *)pBuffer->data;
+ psb__information_message("%s: frame rate changed to %d\n",
+ frame_rate_param->framerate);
+ break;
+
+ case VAEncMiscParameterTypeRateControl:
+ rate_control_param = (VAEncMiscParameterRateControl *)pBuffer->data;
+
+ psb__information_message("%s: bit rate changed to %d\n",
+ rate_control_param->bits_per_second);
+
+ if (rate_control_param->bits_per_second == ctx->sRCParams.BitsPerSecond)
+ break;
+ else
+ ctx->update_rc_control = 1;
+
+ if (rate_control_param->bits_per_second > TOPAZ_MPEG4_MAX_BITRATE) {
+ ctx->sRCParams.BitsPerSecond = TOPAZ_MPEG4_MAX_BITRATE;
+ psb__information_message(" bits_per_second(%d) exceeds \
+ the maximum bitrate, set it with %d\n",
+ rate_control_param->bits_per_second,
+ TOPAZ_MPEG4_MAX_BITRATE);
+ } else
+ ctx->sRCParams.BitsPerSecond = rate_control_param->bits_per_second;
+
+ break;
+
+ case VAEncMiscParameterTypeMaxSliceSize:
+ max_slice_size_param = (VAEncMiscParameterMaxSliceSize *)pBuffer->data;
+
+ if (ctx->max_slice_size == max_slice_size_param->max_slice_size)
+ break;
+
+ psb__information_message("%s: max slice size changed to %d\n",
+ max_slice_size_param->max_slice_size);
+
+ ctx->max_slice_size = max_slice_size_param->max_slice_size;
+
+ break;
+
+ case VAEncMiscParameterTypeAIR:
+ air_param = (VAEncMiscParameterAIR *)pBuffer->data;
+
+ psb__information_message("%s: air slice size changed to num_air_mbs %d "
+ "air_threshold %d, air_auto %d\n",
+ air_param->air_num_mbs, air_param->air_threshold,
+ air_param->air_auto);
+
+ ctx->num_air_mbs = air_param->air_num_mbs;
+ ctx->air_threshold = air_param->air_threshold;
+ ctx->autotune_air_flag = air_param->air_auto;
+
+ break;
+
+ default:
+ vaStatus = VA_STATUS_ERROR_UNKNOWN;
+ DEBUG_FAILURE;
+ break;
+ }
+
+ free(obj_buffer->buffer_data);
+ obj_buffer->buffer_data = NULL;
+
+ return VA_STATUS_SUCCESS;
+}
+
+static VAStatus lnc_MPEG4ES_RenderPicture(
+ object_context_p obj_context,
+ object_buffer_p *buffers,
+ int num_buffers)
+{
+ INIT_CONTEXT_MPEG4ES;
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ int i;
+
+ psb__information_message("lnc_MPEG4ES_RenderPicture\n");
+
+ for (i = 0; i < num_buffers; i++) {
+ object_buffer_p obj_buffer = buffers[i];
+
+ switch (obj_buffer->type) {
+ case VAEncSequenceParameterBufferType:
+ psb__information_message("lnc_MPEG4ES_RenderPicture got VAEncSequenceParameterBufferType\n");
+ vaStatus = lnc__MPEG4ES_process_sequence_param(ctx, obj_buffer);
+ DEBUG_FAILURE;
+ break;
+
+ case VAEncPictureParameterBufferType:
+ psb__information_message("lnc_MPEG4ES_RenderPicture got VAEncPictureParameterBufferType\n");
+ vaStatus = lnc__MPEG4ES_process_picture_param(ctx, obj_buffer);
+ DEBUG_FAILURE;
+ break;
+
+ case VAEncSliceParameterBufferType:
+ psb__information_message("lnc_MPEG4ES_RenderPicture got VAEncSliceParameterBufferType\n");
+ vaStatus = lnc__MPEG4ES_process_slice_param(ctx, obj_buffer);
+ DEBUG_FAILURE;
+ break;
+
+ case VAEncMiscParameterBufferType:
+ psb__information_message("lnc_MPEG4ES_RenderPicture got VAEncMiscParameterBufferType\n");
+ vaStatus = lnc__MPEG4ES_process_misc_param(ctx, obj_buffer);
+ DEBUG_FAILURE;
+ break;
+
+ default:
+ vaStatus = VA_STATUS_ERROR_UNKNOWN;
+ DEBUG_FAILURE;
+ }
+ }
+
+ return vaStatus;
+}
+
+static VAStatus lnc_MPEG4ES_EndPicture(
+ object_context_p obj_context)
+{
+ INIT_CONTEXT_MPEG4ES;
+
+ psb__information_message("lnc_MPEG4ES_EndPicture\n");
+ return lnc_EndPicture(ctx);
+}
+
+
+struct format_vtable_s lnc_MPEG4ES_vtable = {
+queryConfigAttributes:
+ lnc_MPEG4ES_QueryConfigAttributes,
+validateConfig:
+ lnc_MPEG4ES_ValidateConfig,
+createContext:
+ lnc_MPEG4ES_CreateContext,
+destroyContext:
+ lnc_MPEG4ES_DestroyContext,
+beginPicture:
+ lnc_MPEG4ES_BeginPicture,
+renderPicture:
+ lnc_MPEG4ES_RenderPicture,
+endPicture:
+ lnc_MPEG4ES_EndPicture
+};
diff --git a/src/lnc_MPEG4ES.h b/src/lnc_MPEG4ES.h
new file mode 100644
index 0000000..5a9d36b
--- /dev/null
+++ b/src/lnc_MPEG4ES.h
@@ -0,0 +1,40 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ * Zeng Li <zeng.li@intel.com>
+ * Shengquan Yuan <shengquan.yuan@intel.com>
+ * Binglin Chen <binglin.chen@intel.com>
+ *
+ */
+
+
+#ifndef _LNC_MPEG4ES_H_
+#define _LNC_MPEG4ES_H_
+
+#include "psb_drv_video.h"
+
+extern struct format_vtable_s lnc_MPEG4ES_vtable;
+
+#endif /* _LNC_MPEG4ES_H_ */
diff --git a/src/lnc_cmdbuf.c b/src/lnc_cmdbuf.c
new file mode 100644
index 0000000..b96fd06
--- /dev/null
+++ b/src/lnc_cmdbuf.c
@@ -0,0 +1,600 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ * Zeng Li <zeng.li@intel.com>
+ * Shengquan Yuan <shengquan.yuan@intel.com>
+ * Binglin Chen <binglin.chen@intel.com>
+ *
+ */
+
+#include "lnc_cmdbuf.h"
+
+#include <unistd.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <errno.h>
+#include <string.h>
+#include <wsbm/wsbm_manager.h>
+
+#include "psb_def.h"
+#include "lnc_hostcode.h"
+#include "psb_ws_driver.h"
+#include "psb_drm.h"
+
+/*
+ * Buffer layout:
+ * cmd_base <= cmd_idx < CMD_END() == reloc_base
+ * reloc_base <= reloc_idx < RELOC_END() == (reloc_size)
+ */
+
+#define RELOC_END(cmdbuf) (cmdbuf->cmd_base + cmdbuf->size)
+
+#define CMD_END(cmdbuf) (cmdbuf->reloc_base)
+
+#define RELOC_SIZE (0x3000)
+
+#define CMD_SIZE (0x3000)
+
+#define RELOC_MARGIN (0x0800)
+
+#define CMD_MARGIN (0x0400)
+
+
+#define MAX_CMD_COUNT 12
+
+#define MTX_SEG_SIZE (0x0800)
+
+
+/*
+ * Create command buffer
+ */
+VAStatus lnc_cmdbuf_create(
+ object_context_p obj_context,
+ psb_driver_data_p driver_data,
+ lnc_cmdbuf_p cmdbuf)
+{
+ context_ENC_p ctx = (context_ENC_p) obj_context->format_data;
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ unsigned int size = CMD_SIZE + RELOC_SIZE;
+
+ cmdbuf->size = 0;
+ cmdbuf->cmd_base = NULL;
+ cmdbuf->cmd_idx = NULL;
+ cmdbuf->reloc_base = NULL;
+ cmdbuf->reloc_idx = NULL;
+ cmdbuf->buffer_refs_count = 0;
+ cmdbuf->buffer_refs_allocated = 10;
+ cmdbuf->buffer_refs = (psb_buffer_p *) calloc(1, sizeof(psb_buffer_p) * cmdbuf->buffer_refs_allocated);
+ if (NULL == cmdbuf->buffer_refs) {
+ cmdbuf->buffer_refs_allocated = 0;
+ vaStatus = VA_STATUS_ERROR_ALLOCATION_FAILED;
+ }
+ if (VA_STATUS_SUCCESS == vaStatus) {
+ vaStatus = psb_buffer_create(driver_data, size, psb_bt_cpu_only, &cmdbuf->buf);
+ cmdbuf->size = size;
+ }
+
+ if (VA_STATUS_SUCCESS != vaStatus) {
+ free(cmdbuf->buffer_refs);
+ cmdbuf->buffer_refs = NULL;
+ cmdbuf->buffer_refs_allocated = 0;
+ return vaStatus;
+ }
+
+ /* create topaz parameter buffer */
+ vaStatus = psb_buffer_create(driver_data, ctx->pic_params_size, psb_bt_cpu_vpu, &cmdbuf->pic_params);
+ if (VA_STATUS_SUCCESS != vaStatus)
+ goto error_out3;
+
+ /* create header buffer */
+ vaStatus = psb_buffer_create(driver_data, ctx->header_buffer_size, psb_bt_cpu_vpu, &cmdbuf->header_mem);
+ if (VA_STATUS_SUCCESS != vaStatus)
+ goto error_out2;
+
+ /* create slice parameter buffer */
+ vaStatus = psb_buffer_create(driver_data, ctx->sliceparam_buffer_size, psb_bt_cpu_vpu, &cmdbuf->slice_params);
+ if (VA_STATUS_SUCCESS != vaStatus)
+ goto error_out1;
+
+ /* all cmdbuf share one MTX_CURRENT_IN_PARAMS since every MB has a MTX_CURRENT_IN_PARAMS structure
+ * and filling this structure for all MB is very time-consuming
+ */
+ cmdbuf->topaz_in_params_I = &ctx->topaz_in_params_I;
+ cmdbuf->topaz_in_params_P = &ctx->topaz_in_params_P;
+ cmdbuf->topaz_above_bellow_params = &ctx->topaz_above_bellow_params;
+
+ return vaStatus;
+
+error_out1:
+ psb_buffer_destroy(&cmdbuf->header_mem);
+error_out2:
+ psb_buffer_destroy(&cmdbuf->pic_params);
+error_out3:
+ lnc_cmdbuf_destroy(cmdbuf);
+
+ return vaStatus;
+}
+
+/*
+ * Destroy buffer
+ */
+void lnc_cmdbuf_destroy(lnc_cmdbuf_p cmdbuf)
+{
+ if (cmdbuf->size) {
+ psb_buffer_destroy(&cmdbuf->buf);
+ cmdbuf->size = 0;
+ }
+ if (cmdbuf->buffer_refs_allocated) {
+ free(cmdbuf->buffer_refs);
+ cmdbuf->buffer_refs = NULL;
+ cmdbuf->buffer_refs_allocated = 0;
+ }
+
+ psb_buffer_destroy(&cmdbuf->pic_params);
+ psb_buffer_destroy(&cmdbuf->header_mem);
+ psb_buffer_destroy(&cmdbuf->slice_params);
+
+}
+
+/*
+ * Reset buffer & map
+ *
+ * Returns 0 on success
+ */
+int lnc_cmdbuf_reset(lnc_cmdbuf_p cmdbuf)
+{
+ int ret;
+
+ cmdbuf->cmd_base = NULL;
+ cmdbuf->cmd_idx = NULL;
+ cmdbuf->reloc_base = NULL;
+ cmdbuf->reloc_idx = NULL;
+
+ cmdbuf->buffer_refs_count = 0;
+ cmdbuf->cmd_count = 0;
+
+ ret = psb_buffer_map(&cmdbuf->buf, &cmdbuf->cmd_base);
+ if (ret) {
+ return ret;
+ }
+
+ cmdbuf->cmd_start = cmdbuf->cmd_base;
+ cmdbuf->cmd_idx = (uint32_t *) cmdbuf->cmd_base;
+
+ cmdbuf->reloc_base = cmdbuf->cmd_base + CMD_SIZE;
+ cmdbuf->reloc_idx = (struct drm_psb_reloc *) cmdbuf->reloc_base;
+
+ /* Add ourselves to the buffer list */
+ lnc_cmdbuf_buffer_ref(cmdbuf, &cmdbuf->buf); /* cmd buf == 0 */
+ return ret;
+}
+
+/*
+ * Unmap buffer
+ *
+ * Returns 0 on success
+ */
+int lnc_cmdbuf_unmap(lnc_cmdbuf_p cmdbuf)
+{
+ cmdbuf->cmd_base = NULL;
+ cmdbuf->cmd_start = NULL;
+ cmdbuf->cmd_idx = NULL;
+ cmdbuf->reloc_base = NULL;
+ cmdbuf->reloc_idx = NULL;
+ cmdbuf->cmd_count = 0;
+ psb_buffer_unmap(&cmdbuf->buf);
+ return 0;
+}
+
+
+/*
+ * Reference an addtional buffer "buf" in the command stream
+ * Returns a reference index that can be used to refer to "buf" in
+ * relocation records, -1 on error
+ */
+int lnc_cmdbuf_buffer_ref(lnc_cmdbuf_p cmdbuf, psb_buffer_p buf)
+{
+ int item_loc = 0;
+
+ while ((item_loc < cmdbuf->buffer_refs_count) && (cmdbuf->buffer_refs[item_loc] != buf)) {
+ item_loc++;
+ }
+ if (item_loc == cmdbuf->buffer_refs_count) {
+ /* Add new entry */
+ if (item_loc >= cmdbuf->buffer_refs_allocated) {
+ /* Allocate more entries */
+ int new_size = cmdbuf->buffer_refs_allocated + 10;
+ psb_buffer_p *new_array;
+ new_array = (psb_buffer_p *) calloc(1, sizeof(psb_buffer_p) * new_size);
+ if (NULL == new_array) {
+ return -1; /* Allocation failure */
+ }
+ memcpy(new_array, cmdbuf->buffer_refs, sizeof(psb_buffer_p) * cmdbuf->buffer_refs_allocated);
+ free(cmdbuf->buffer_refs);
+ cmdbuf->buffer_refs_allocated = new_size;
+ cmdbuf->buffer_refs = new_array;
+ }
+ cmdbuf->buffer_refs[item_loc] = buf;
+ cmdbuf->buffer_refs_count++;
+ buf->status = psb_bs_queued;
+ }
+ return item_loc;
+}
+
+/* Creates a relocation record for a DWORD in the mapped "cmdbuf" at address
+ * "addr_in_cmdbuf"
+ * The relocation is based on the device virtual address of "ref_buffer"
+ * "buf_offset" is be added to the device virtual address, and the sum is then
+ * right shifted with "align_shift".
+ * "mask" determines which bits of the target DWORD will be updated with the so
+ * constructed address. The remaining bits will be filled with bits from "background".
+ */
+void lnc_cmdbuf_add_relocation(lnc_cmdbuf_p cmdbuf,
+ uint32_t *addr_in_dst_buffer,/*addr of dst_buffer for the DWORD*/
+ psb_buffer_p ref_buffer,
+ uint32_t buf_offset,
+ uint32_t mask,
+ uint32_t background,
+ uint32_t align_shift,
+ uint32_t dst_buffer,
+ uint32_t *start_of_dst_buffer) /*Index of the list refered by cmdbuf->buffer_refs */
+{
+ struct drm_psb_reloc *reloc = cmdbuf->reloc_idx;
+ uint64_t presumed_offset = wsbmBOOffsetHint(ref_buffer->drm_buf);
+
+ reloc->where = addr_in_dst_buffer - start_of_dst_buffer; /* Offset in DWORDs */
+
+ reloc->buffer = lnc_cmdbuf_buffer_ref(cmdbuf, ref_buffer);
+ ASSERT(reloc->buffer != -1);
+
+ reloc->reloc_op = PSB_RELOC_OP_OFFSET;
+#ifndef VA_EMULATOR
+ if (presumed_offset) {
+ uint32_t new_val = presumed_offset + buf_offset;
+
+ new_val = ((new_val >> align_shift) << (align_shift << PSB_RELOC_ALSHIFT_SHIFT));
+ new_val = (background & ~mask) | (new_val & mask);
+ *addr_in_dst_buffer = new_val;
+ } else {
+ *addr_in_dst_buffer = PSB_RELOC_MAGIC;
+ }
+#else
+ /* indicate subscript of relocation buffer */
+ *addr_in_dst_buffer = reloc - (struct drm_psb_reloc *)cmdbuf->reloc_base;
+#endif
+ reloc->mask = mask;
+ reloc->shift = align_shift << PSB_RELOC_ALSHIFT_SHIFT;
+ reloc->pre_add = buf_offset;
+ reloc->background = background;
+ reloc->dst_buffer = dst_buffer;
+ cmdbuf->reloc_idx++;
+
+ ASSERT(((void *)(cmdbuf->reloc_idx)) < RELOC_END(cmdbuf));
+}
+
+/*
+ * Advances "obj_context" to the next cmdbuf
+ *
+ * Returns 0 on success
+ */
+int lnc_context_get_next_cmdbuf(object_context_p obj_context)
+{
+ lnc_cmdbuf_p cmdbuf;
+ int ret;
+
+ if (obj_context->lnc_cmdbuf) {
+ return 0;
+ }
+
+ obj_context->cmdbuf_current++;
+ if (obj_context->cmdbuf_current >= LNC_MAX_CMDBUFS_ENCODE) {
+ obj_context->cmdbuf_current = 0;
+ }
+
+ cmdbuf = obj_context->lnc_cmdbuf_list[obj_context->cmdbuf_current];
+ ret = lnc_cmdbuf_reset(cmdbuf);
+ if (!ret) {
+ /* Success */
+ obj_context->lnc_cmdbuf = cmdbuf;
+ }
+
+ /* added pic_params/slice_params into ref, so the index is 1/2 */
+ lnc_cmdbuf_buffer_ref(cmdbuf, &cmdbuf->pic_params);
+ lnc_cmdbuf_buffer_ref(cmdbuf, &cmdbuf->slice_params);
+
+ return ret;
+}
+
+/*
+ * This is the user-space do-it-all interface to the drm cmdbuf ioctl.
+ * It allows different buffers as command- and reloc buffer. A list of
+ * cliprects to apply and whether to copy the clipRect content to all
+ * scanout buffers (damage = 1).
+ */
+/*
+ * Don't add debug statements in this function, it gets called with the
+ * DRM lock held and output to an X terminal can cause X to deadlock
+ */
+static int
+lncDRMCmdBuf(int fd, int ioctl_offset, psb_buffer_p *buffer_list, int buffer_count, unsigned cmdBufHandle,
+ unsigned cmdBufOffset, unsigned cmdBufSize,
+ unsigned relocBufHandle, unsigned relocBufOffset,
+ unsigned numRelocs, drm_clip_rect_t * clipRects, int damage,
+ unsigned engine, unsigned fence_flags, struct psb_ttm_fence_rep *fence_rep)
+{
+ drm_psb_cmdbuf_arg_t ca;
+ struct psb_validate_arg *arg_list;
+ int i;
+ int ret;
+ uint64_t mask = PSB_GPU_ACCESS_MASK;
+
+ arg_list = (struct psb_validate_arg *) calloc(1, sizeof(struct psb_validate_arg) * buffer_count);
+ if (arg_list == NULL) {
+ psb__error_message("Allocate memory failed\n");
+ return -ENOMEM;
+ }
+
+ for (i = 0; i < buffer_count; i++) {
+ struct psb_validate_arg *arg = &(arg_list[i]);
+ struct psb_validate_req *req = &arg->d.req;
+
+ memset(arg, 0, sizeof(*arg));
+ req->next = (unsigned long) & (arg_list[i+1]);
+
+ req->buffer_handle = wsbmKBufHandle(wsbmKBuf(buffer_list[i]->drm_buf));
+ req->group = 0;
+ req->set_flags = (PSB_GPU_ACCESS_READ | PSB_GPU_ACCESS_WRITE) & mask;
+ req->clear_flags = (~(PSB_GPU_ACCESS_READ | PSB_GPU_ACCESS_WRITE)) & mask;
+#if 1
+ req->presumed_gpu_offset = (uint64_t)wsbmBOOffsetHint(buffer_list[i]->drm_buf);
+ req->presumed_flags = PSB_USE_PRESUMED;
+ if ((req->presumed_gpu_offset >> 28) & 0x1) {
+ psb__error_message("buffer is at the address topaz can not access\n");
+ ret = -1;
+ goto out;
+ }
+#else
+ req->presumed_flags = 0;
+#endif
+ req->pad64 = (uint32_t)buffer_list[i]->pl_flags;
+ }
+ arg_list[buffer_count-1].d.req.next = 0;
+
+ memset(&ca, 0, sizeof(ca));
+
+ ca.buffer_list = (uint64_t)((unsigned long)arg_list);
+ ca.clip_rects = (uint64_t)((unsigned long)clipRects);
+ ca.cmdbuf_handle = cmdBufHandle;
+ ca.cmdbuf_offset = cmdBufOffset;
+ ca.cmdbuf_size = cmdBufSize;
+ ca.reloc_handle = relocBufHandle;
+ ca.reloc_offset = relocBufOffset;
+ ca.num_relocs = numRelocs;
+ ca.engine = engine;
+ ca.fence_flags = fence_flags;
+ ca.fence_arg = (uint64_t)((unsigned long)fence_rep);
+ ca.damage = damage;
+
+
+ do {
+ ret = drmCommandWrite(fd, ioctl_offset, &ca, sizeof(ca));
+ } while (ret == EAGAIN);
+
+ if (ret)
+ goto out;
+
+ for (i = 0; i < buffer_count; i++) {
+ struct psb_validate_arg *arg = &(arg_list[i]);
+ struct psb_validate_rep *rep = &arg->d.rep;
+
+ if (!arg->handled) {
+ ret = -EFAULT;
+ goto out;
+ }
+ if (arg->ret != 0) {
+ ret = arg->ret;
+ goto out;
+ }
+ wsbmUpdateKBuf(wsbmKBuf(buffer_list[i]->drm_buf),
+ rep->gpu_offset, rep->placement, rep->fence_type_mask);
+ }
+out:
+ free(arg_list);
+ for (i = 0; i < buffer_count; i++) {
+ /*
+ * Buffer no longer queued in userspace
+ */
+ switch (buffer_list[i]->status) {
+ case psb_bs_queued:
+ buffer_list[i]->status = psb_bs_ready;
+ break;
+
+ case psb_bs_abandoned:
+ psb_buffer_destroy(buffer_list[i]);
+ free(buffer_list[i]);
+ break;
+
+ default:
+ /* Not supposed to happen */
+ ASSERT(0);
+ }
+ }
+
+ return ret;
+}
+
+#if 0
+static struct _WsbmFenceObject *
+lnc_fence_wait(psb_driver_data_p driver_data,
+ struct psb_ttm_fence_rep *fence_rep, int *status)
+
+{
+ struct _WsbmFenceObject *fence = NULL;
+ int ret = -1;
+
+ /* copy fence information */
+ if (fence_rep->error != 0) {
+ psb__error_message("drm failed to create a fence"
+ " and has idled the HW\n");
+ DEBUG_FAILURE_RET;
+ return NULL;
+ }
+
+ fence = wsbmFenceCreate(driver_data->fence_mgr, fence_rep->fence_class,
+ fence_rep->fence_type,
+ (void *)fence_rep->handle,
+ 0);
+ if (fence)
+ *status = wsbmFenceFinish(fence, fence_rep->fence_type, 0);
+
+ return fence;
+}
+#endif
+
+/*
+ * Submits the current cmdbuf
+ *
+ * Returns 0 on success
+ */
+int lnc_context_submit_cmdbuf(object_context_p obj_context)
+{
+
+ return 0;
+}
+
+/*
+ * FrameSkip is only meaningful for RC enabled mode
+ * Topaz raises this flag after surface N encoding is finished (vaSyncSurface gets back)
+ * then for the next encode surface N+1 (ctx->src_surface) frameskip flag is cleared in vaBeginPicuture
+ * and is always set in vaEndPicture:lnc_PatchRCMode
+ * vaQuerySurfaceStatus is supposed only to be called after vaEndPicture/vaSyncSurface,
+ * The caller should ensure the surface pertains to an encode context
+ */
+int lnc_surface_get_frameskip(psb_driver_data_p driver_data, psb_surface_p surface, int *frame_skip)
+{
+ struct drm_lnc_video_getparam_arg arg;
+ unsigned long temp;
+ int ret = 0;
+
+ /* bit31 indicate if frameskip is already settled, it is used to record the frame skip flag for old surfaces
+ * because current FRAMESKIP in hardware can't be applied to the old surfaces
+ * bit31 is cleared when the surface is used as encode render target or reference/reconstrucure target
+ */
+ if (GET_SURFACE_INFO_skipped_flag(surface) & SURFACE_INFO_SKIP_FLAG_SETTLED) {
+ *frame_skip = GET_SURFACE_INFO_skipped_flag(surface) & 1;
+ return 0;
+ }
+
+ /* not settled, we get it from current HW FRAMESKIP flag */
+ arg.key = LNC_VIDEO_FRAME_SKIP;
+ arg.value = (uint64_t)((unsigned long) & temp);
+ ret = drmCommandWriteRead(driver_data->drm_fd, driver_data->getParamIoctlOffset,
+ &arg, sizeof(arg));
+ if (ret == 0) {
+ SET_SURFACE_INFO_skipped_flag(surface, temp);
+ *frame_skip = temp;
+ if (temp == 1)
+ psb__information_message("Detected a skipped frame for encode\n");
+ }
+
+ return ret;
+}
+
+
+/*
+ * Flushes all cmdbufs
+ */
+int lnc_context_flush_cmdbuf(object_context_p obj_context)
+{
+ lnc_cmdbuf_p cmdbuf = obj_context->lnc_cmdbuf;
+ psb_driver_data_p driver_data = obj_context->driver_data;
+ unsigned int fence_flags;
+ struct psb_ttm_fence_rep fence_rep;
+ unsigned int reloc_offset;
+ unsigned int num_relocs;
+ int ret;
+ unsigned int cmdbuffer_size = (void *) cmdbuf->cmd_idx - cmdbuf->cmd_start; /* In bytes */
+
+ ASSERT(cmdbuffer_size < CMD_SIZE);
+ ASSERT((void *) cmdbuf->cmd_idx < CMD_END(cmdbuf));
+ /* LOCK */
+ ret = LOCK_HARDWARE(driver_data);
+ if (ret) {
+ UNLOCK_HARDWARE(driver_data);
+ DEBUG_FAILURE_RET;
+ return ret;
+ }
+
+ /* Now calculate the total number of relocations */
+ reloc_offset = cmdbuf->reloc_base - cmdbuf->cmd_base;
+ num_relocs = (((void *) cmdbuf->reloc_idx) - cmdbuf->reloc_base) / sizeof(struct drm_psb_reloc);
+
+ lnc_cmdbuf_unmap(cmdbuf);
+
+ ASSERT(NULL == cmdbuf->reloc_base);
+
+#ifdef DEBUG_TRACE
+ fence_flags = 0;
+#else
+ fence_flags = DRM_PSB_FENCE_NO_USER;
+#endif
+
+#ifndef LNC_ENGINE_ENCODE
+#define LNC_ENGINE_ENCODE 5
+#endif
+
+ wsbmWriteLockKernelBO();
+ ret = lncDRMCmdBuf(driver_data->drm_fd, driver_data->execIoctlOffset,
+ cmdbuf->buffer_refs, cmdbuf->buffer_refs_count, wsbmKBufHandle(wsbmKBuf(cmdbuf->buf.drm_buf)),
+ 0, cmdbuffer_size,/*unsigned cmdBufSize*/
+ wsbmKBufHandle(wsbmKBuf(cmdbuf->buf.drm_buf)), reloc_offset, num_relocs,
+ 0 /* clipRects */, 0, LNC_ENGINE_ENCODE, fence_flags, &fence_rep);
+ wsbmWriteUnlockKernelBO();
+ UNLOCK_HARDWARE(driver_data);
+
+ if (ret) {
+ obj_context->lnc_cmdbuf = NULL;
+
+ DEBUG_FAILURE_RET;
+ return ret;
+ }
+
+#if 0 /*DEBUG_TRACE*/
+ int status = -1;
+ struct _WsbmFenceObject *fence = NULL;
+
+ fence = lnc_fence_wait(driver_data, &fence_rep, &status);
+ psb__information_message("psb_fence_wait returns: %d (fence=0x%08x)\n", status, fence);
+
+ if (fence)
+ wsbmFenceUnreference(fence);
+
+#endif
+
+ obj_context->lnc_cmdbuf = NULL;
+
+ return 0;
+}
+
diff --git a/src/lnc_cmdbuf.h b/src/lnc_cmdbuf.h
new file mode 100644
index 0000000..dfea4da
--- /dev/null
+++ b/src/lnc_cmdbuf.h
@@ -0,0 +1,189 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ * Zeng Li <zeng.li@intel.com>
+ * Shengquan Yuan <shengquan.yuan@intel.com>
+ * Binglin Chen <binglin.chen@intel.com>
+ *
+ */
+
+#ifndef _LNC_CMDBUF_H_
+#define _LNC_CMDBUF_H_
+
+#include "psb_drv_video.h"
+#include "psb_surface.h"
+#include "psb_buffer.h"
+#include "psb_drm.h"
+
+#include <stdint.h>
+
+
+struct lnc_cmdbuf_s {
+ struct psb_buffer_s buf;
+ unsigned int size;
+
+ /* Relocation records */
+ void *reloc_base;
+ struct drm_psb_reloc *reloc_idx;
+
+ /* CMD stream data */
+ int cmd_count;
+ void *cmd_base;
+ void *cmd_start;
+ uint32_t *cmd_idx;
+ uint32_t *cmd_idx_saved_frameskip; /* idx saved for frameskip redo */
+
+ /* all frames share one topaz param buffer which contains InParamBase
+ * AboveParam/BellowParam, and the buffer allocated when the context is created
+ */
+ struct psb_buffer_s *topaz_in_params_I;
+ struct psb_buffer_s *topaz_in_params_P;
+ struct psb_buffer_s *topaz_above_bellow_params;
+ void *topaz_in_params_I_p;
+ void *topaz_in_params_P_p;
+ void *topaz_above_bellow_params_p;
+
+ /* Every frame has its own PIC_PARAMS, SLICE_PARAMS and HEADER mem
+ */
+
+ /* PicParams: */
+ struct psb_buffer_s pic_params;
+ void *pic_params_p;
+
+ /* SeqHeaderMem PicHeaderMem EOSeqHeaderMem EOStreamHeaderMem SliceHeaderMem[MAX_SLICES_PER_PICTURE]*/
+ struct psb_buffer_s header_mem;
+ void *header_mem_p;
+
+ /*SliceParams[MAX_SLICES_PER_PICTURE] */
+ struct psb_buffer_s slice_params;
+ void *slice_params_p;
+
+ /* Referenced buffers */
+ psb_buffer_p *buffer_refs;
+ int buffer_refs_count;
+ int buffer_refs_allocated;
+
+};
+
+typedef struct lnc_cmdbuf_s *lnc_cmdbuf_p;
+
+/*
+ * Create command buffer
+ */
+VAStatus lnc_cmdbuf_create(object_context_p obj_context,
+ psb_driver_data_p driver_data,
+ lnc_cmdbuf_p cmdbuf
+ );
+
+/*
+ * Destroy buffer
+ */
+void lnc_cmdbuf_destroy(lnc_cmdbuf_p cmdbuf);
+
+/*
+ * Reset buffer & map
+ *
+ * Returns 0 on success
+ */
+int lnc_cmdbuf_reset(lnc_cmdbuf_p cmdbuf);
+
+/*
+ * Unmap buffer
+ *
+ * Returns 0 on success
+ */
+int lnc_cmdbuf_unmap(lnc_cmdbuf_p cmdbuf);
+
+/*
+ * Reference an addtional buffer "buf" in the command stream
+ * Returns a reference index that can be used to refer to "buf" in
+ * relocation records, on error -1 is returned.
+ */
+int lnc_cmdbuf_buffer_ref(lnc_cmdbuf_p cmdbuf, psb_buffer_p buf);
+
+/* Creates a relocation record for a DWORD in the mapped "cmdbuf" at address
+ * "addr_in_cmdbuf"
+ * The relocation is based on the device virtual address of "ref_buffer"
+ * "buf_offset" is be added to the device virtual address, and the sum is then
+ * right shifted with "align_shift".
+ * "mask" determines which bits of the target DWORD will be updated with the so
+ * constructed address. The remaining bits will be filled with bits from "background".
+ */
+void lnc_cmdbuf_add_relocation(lnc_cmdbuf_p cmdbuf,
+ uint32_t *addr_in_dst_buffer,/*addr of dst_buffer for the DWORD*/
+ psb_buffer_p ref_buffer,
+ uint32_t buf_offset,
+ uint32_t mask,
+ uint32_t background,
+ uint32_t align_shift,
+ uint32_t dst_buffer, /*Index of the list refered by cmdbuf->buffer_refs */
+ uint32_t *start_of_dst_buffer);
+
+#define RELOC_CMDBUF(dest, offset, buf) lnc_cmdbuf_add_relocation(cmdbuf, (uint32_t*)(dest), buf, offset, 0XFFFFFFFF, 0, 0, 0, cmdbuf->cmd_start)
+
+/* do relocation in PIC_PARAMS: src/dst Y/UV base, InParamsBase, CodeBase, BellowParamsBase, AboveParamsBase */
+#define RELOC_PIC_PARAMS(dest, offset, buf) lnc_cmdbuf_add_relocation(cmdbuf, (uint32_t*)(dest), buf, offset, 0XFFFFFFFF, 0, 0, 1, (uint32_t *)cmdbuf->pic_params_p)
+
+/* do relocation in SLICE_PARAMS: reference Y/UV base,CodedData */
+#define RELOC_SLICE_PARAMS(dest, offset, buf) lnc_cmdbuf_add_relocation(cmdbuf, (uint32_t*)(dest), buf, offset, 0XFFFFFFFF, 0, 0, 2,(uint32_t *)cmdbuf->slice_params_p)
+
+/* operation number is inserted by DRM */
+#define lnc_cmdbuf_insert_command(cmdbuf,cmdhdr,size,hint) \
+ do { *cmdbuf->cmd_idx++ = ((cmdhdr) << 1) | ((size)<<8) | ((hint)<<16); } while(0)
+
+#define lnc_cmdbuf_insert_command_param(cmdbuf,param) \
+ do { *cmdbuf->cmd_idx++ = param; } while(0)
+
+
+/*
+ * Advances "obj_context" to the next cmdbuf
+ *
+ * Returns 0 on success
+ */
+int lnc_context_get_next_cmdbuf(object_context_p obj_context);
+
+/*
+ * Submits the current cmdbuf
+ *
+ * Returns 0 on success
+ */
+int lnc_context_submit_cmdbuf(object_context_p obj_context);
+
+/*
+ * Get a encode surface FRAMESKIP flag, and store it into frame_skip argument
+ *
+ * Returns 0 on success
+ */
+int lnc_surface_get_frameskip(psb_driver_data_p driver_data, psb_surface_p psb_surface, int *frame_skip);
+
+/*
+ * Flushes the pending cmdbuf
+ *
+ * Return 0 on success
+ */
+int lnc_context_flush_cmdbuf(object_context_p obj_context);
+
+#endif /* _LNC_CMDBUF_H_ */
+
diff --git a/src/lnc_hostcode.c b/src/lnc_hostcode.c
new file mode 100644
index 0000000..be88ddc
--- /dev/null
+++ b/src/lnc_hostcode.c
@@ -0,0 +1,1480 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ * Zeng Li <zeng.li@intel.com>
+ * Shengquan Yuan <shengquan.yuan@intel.com>
+ * Binglin Chen <binglin.chen@intel.com>
+ *
+ */
+
+
+
+#include "psb_drv_video.h"
+
+#include "lnc_hostcode.h"
+#include "hwdefs/topaz_defs.h"
+#include "psb_def.h"
+#include "psb_cmdbuf.h"
+#include <stdio.h>
+#include "psb_output.h"
+#include <wsbm/wsbm_manager.h>
+#include "lnc_hostheader.h"
+
+#define ALIGN_TO(value, align) ((value + align - 1) & ~(align - 1))
+#define PAGE_ALIGN(value) ALIGN_TO(value, 4096)
+
+static VAStatus lnc__alloc_context_buffer(context_ENC_p ctx)
+{
+ int width, height;
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+
+ /* width and height should be source surface's w and h or ?? */
+ width = ctx->obj_context->picture_width;
+ height = ctx->obj_context->picture_height;
+
+ ctx->pic_params_size = 256;
+
+ ctx->header_buffer_size = 4 * HEADER_SIZE + MAX_SLICES_PER_PICTURE * HEADER_SIZE;
+
+ ctx->seq_header_ofs = 0;
+ ctx->pic_header_ofs = HEADER_SIZE;
+ ctx->eoseq_header_ofs = 2 * HEADER_SIZE;
+ ctx->eostream_header_ofs = 3 * HEADER_SIZE;
+ ctx->slice_header_ofs = 4 * HEADER_SIZE;
+
+ ctx->sliceparam_buffer_size = ((sizeof(SLICE_PARAMS) + 15) & 0xfff0) * MAX_SLICES_PER_PICTURE;
+
+ /* All frame share same MTX_CURRENT_IN_PARAMS and above/bellow param
+ * create MTX_CURRENT_IN_PARAMS buffer seperately
+ * every MB has one MTX_CURRENT_IN_PARAMS structure, and the (N+1) frame can
+ * reuse (N) frame's structure
+ */
+ ctx->in_params_size = (10 + width * height / (16 * 16)) * sizeof(MTX_CURRENT_IN_PARAMS);
+ ctx->bellow_params_size = BELOW_PARAMS_SIZE * width * height / (16 * 16) * 16;
+ ctx->above_params_size = (width * height / 16) * 128 + 15;
+
+ ctx->topaz_buffer_size = ctx->in_params_size + /* MTX_CURRENT_IN_PARAMS size */
+ ctx->bellow_params_size + /* above_params */
+ ctx->above_params_size; /* above_params */
+
+ vaStatus = psb_buffer_create(ctx->obj_context->driver_data, ctx->in_params_size, psb_bt_cpu_vpu, &ctx->topaz_in_params_I);
+ vaStatus |= psb_buffer_create(ctx->obj_context->driver_data, ctx->in_params_size, psb_bt_cpu_vpu, &ctx->topaz_in_params_P);
+ vaStatus |= psb_buffer_create(ctx->obj_context->driver_data, ctx->above_params_size + ctx->bellow_params_size, psb_bt_cpu_vpu, &ctx->topaz_above_bellow_params);
+
+ ctx->in_params_ofs = 0;
+ ctx->bellow_params_ofs = 0;
+ ctx->above_params_ofs = ctx->bellow_params_ofs + ctx->bellow_params_size;
+
+ return vaStatus;
+}
+
+unsigned int lnc__get_ipe_control(enum drm_lnc_topaz_codec eEncodingFormat)
+{
+ unsigned int RegVal = 0;
+
+ RegVal = F_ENCODE(2, MVEA_CR_IPE_GRID_FINE_SEARCH) |
+ F_ENCODE(0, MVEA_CR_IPE_GRID_SEARCH_SIZE) |
+ F_ENCODE(1, MVEA_CR_IPE_Y_FINE_SEARCH);
+
+ switch (eEncodingFormat) {
+ case IMG_CODEC_H263_NO_RC:
+ case IMG_CODEC_H263_VBR:
+ case IMG_CODEC_H263_CBR:
+ RegVal |= F_ENCODE(0, MVEA_CR_IPE_BLOCKSIZE) | F_ENCODE(0, MVEA_CR_IPE_ENCODING_FORMAT);
+ break;
+ case IMG_CODEC_MPEG4_NO_RC:
+ case IMG_CODEC_MPEG4_VBR:
+ case IMG_CODEC_MPEG4_CBR:
+ RegVal |= F_ENCODE(1, MVEA_CR_IPE_BLOCKSIZE) | F_ENCODE(1, MVEA_CR_IPE_ENCODING_FORMAT);
+ default:
+ break;
+ case IMG_CODEC_H264_NO_RC:
+ case IMG_CODEC_H264_VBR:
+ case IMG_CODEC_H264_CBR:
+ case IMG_CODEC_H264_VCM:
+ RegVal |= F_ENCODE(2, MVEA_CR_IPE_BLOCKSIZE) | F_ENCODE(2, MVEA_CR_IPE_ENCODING_FORMAT);
+ break;
+ }
+ RegVal |= F_ENCODE(6, MVEA_CR_IPE_Y_CANDIDATE_NUM);
+ return RegVal;
+}
+
+
+void lnc_DestroyContext(object_context_p obj_context)
+{
+ context_ENC_p ctx;
+ ctx = (context_ENC_p)obj_context->format_data;
+ if (NULL != ctx->slice_param_cache)
+ free(ctx->slice_param_cache);
+ if (NULL == ctx->save_seq_header_p)
+ free(ctx->save_seq_header_p);
+ free(obj_context->format_data);
+ obj_context->format_data = NULL;
+}
+
+VAStatus lnc_CreateContext(
+ object_context_p obj_context,
+ object_config_p obj_config)
+{
+ int width, height;
+ context_ENC_p ctx;
+ VAStatus vaStatus;
+
+ width = obj_context->picture_width;
+ height = obj_context->picture_height;
+ ctx = (context_ENC_p) calloc(1, sizeof(struct context_ENC_s));
+ if (NULL == ctx) {
+ vaStatus = VA_STATUS_ERROR_ALLOCATION_FAILED;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ obj_context->format_data = (void*) ctx;
+ ctx->obj_context = obj_context;
+
+ ctx->RawWidth = (unsigned short) width;
+ ctx->RawHeight = (unsigned short) height;
+
+ ctx->Width = (unsigned short)(~0xf & (width + 0xf));
+ ctx->Height = (unsigned short)(~0xf & (height + 0xf));
+
+ ctx->HeightMinus16MinusLRBTopOffset = ctx->Height - (MVEA_LRB_TOP_OFFSET + 16);
+ ctx->HeightMinus32MinusLRBTopOffset = ctx->Height - (MVEA_LRB_TOP_OFFSET + 32);
+ ctx->HeightMinusLRB_TopAndBottom_OffsetsPlus16 = ctx->Height - (MVEA_LRB_TOP_OFFSET + MVEA_LRB_TOP_OFFSET + 16);
+ ctx->HeightMinusLRBSearchHeight = ctx->Height - MVEA_LRB_SEARCH_HEIGHT;
+
+ ctx->FCode = 0;
+
+ ctx->sRCParams.VCMBitrateMargin = 0;
+ ctx->sRCParams.BufferSize = 0;
+ ctx->sRCParams.InitialQp = 0;
+ ctx->sRCParams.MinQP = 0;
+
+ vaStatus = lnc__alloc_context_buffer(ctx);
+
+ return vaStatus;
+}
+
+
+VAStatus lnc_BeginPicture(context_ENC_p ctx)
+{
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ lnc_cmdbuf_p cmdbuf;
+ int ret;
+
+ ctx->src_surface = ctx->obj_context->current_render_target;
+
+ /* clear frameskip flag to 0 */
+ CLEAR_SURFACE_INFO_skipped_flag(ctx->src_surface->psb_surface);
+
+ /* Initialise the command buffer */
+ ret = lnc_context_get_next_cmdbuf(ctx->obj_context);
+ if (ret) {
+ psb__information_message("get next cmdbuf fail\n");
+ vaStatus = VA_STATUS_ERROR_UNKNOWN;
+ return vaStatus;
+ }
+ cmdbuf = ctx->obj_context->lnc_cmdbuf;
+
+ /* map start_pic param */
+ vaStatus = psb_buffer_map(&cmdbuf->pic_params, &cmdbuf->pic_params_p);
+ if (vaStatus) {
+ return vaStatus;
+ }
+ vaStatus = psb_buffer_map(&cmdbuf->header_mem, &cmdbuf->header_mem_p);
+ if (vaStatus) {
+ psb_buffer_unmap(&cmdbuf->pic_params);
+ return vaStatus;
+ }
+
+ vaStatus = psb_buffer_map(&cmdbuf->slice_params, &cmdbuf->slice_params_p);
+ if (vaStatus) {
+ psb_buffer_unmap(&cmdbuf->pic_params);
+ psb_buffer_unmap(&cmdbuf->header_mem);
+ return vaStatus;
+ }
+
+ /* only map topaz param when necessary */
+ cmdbuf->topaz_in_params_I_p = NULL;
+ cmdbuf->topaz_in_params_P_p = NULL;
+ cmdbuf->topaz_above_bellow_params_p = NULL;
+
+ if (ctx->obj_context->frame_count == 0) { /* first picture */
+ psb_driver_data_p driver_data = ctx->obj_context->driver_data;
+
+ lnc_cmdbuf_insert_command(cmdbuf, MTX_CMDID_SW_NEW_CODEC, 3, driver_data->drm_context);
+ lnc_cmdbuf_insert_command_param(cmdbuf, ctx->eCodec);
+ lnc_cmdbuf_insert_command_param(cmdbuf, (ctx->Width << 16) | ctx->Height);
+ }
+
+ /* insert START_PIC command */
+ lnc_cmdbuf_insert_command(cmdbuf, MTX_CMDID_START_PIC, 3, ctx->obj_context->frame_count);
+ /* write the address of structure PIC_PARAMS following command MTX_CMDID_START_PIC
+ * the content of PIC_PARAMS is filled when RenderPicture(...,VAEncPictureParameterBufferXXX)
+ */
+ RELOC_CMDBUF(cmdbuf->cmd_idx, 0, &cmdbuf->pic_params);
+ cmdbuf->cmd_idx++;
+ ctx->initial_qp_in_cmdbuf = cmdbuf->cmd_idx; /* remember the place */
+ cmdbuf->cmd_idx++;
+
+ ctx->obj_context->slice_count = 0;
+
+ /* no RC paramter provided in vaBeginPicture
+ * so delay RC param setup into vaRenderPicture(SequenceHeader...)
+ */
+ return vaStatus;
+}
+
+
+VAStatus lnc_RenderPictureParameter(context_ENC_p ctx)
+{
+ PIC_PARAMS *psPicParams; /* PIC_PARAMS has been put in lnc_hostcode.h */
+ object_surface_p src_surface;
+ unsigned int srf_buf_offset;
+ object_surface_p rec_surface;
+ object_surface_p ref_surface;
+ lnc_cmdbuf_p cmdbuf = ctx->obj_context->lnc_cmdbuf;
+ VAStatus vaStatus = VA_STATUS_ERROR_UNKNOWN;
+
+ psPicParams = cmdbuf->pic_params_p;
+
+ /* second frame will reuse some rate control parameters (IN_PARAMS_MP4)
+ * so only memset picture parames except IN_PARAMS
+ * BUT now IN_RC_PARAMS was reload from the cache, so it now can
+ * memset entirE PIC_PARAMS
+ */
+ memset(psPicParams, 0, (int)((void *)&psPicParams->sInParams - (void *)psPicParams));
+
+ src_surface = ctx->src_surface;
+ if (NULL == src_surface) {
+ vaStatus = VA_STATUS_ERROR_INVALID_SURFACE;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ rec_surface = ctx->dest_surface;
+ if (NULL == rec_surface) {
+ vaStatus = VA_STATUS_ERROR_INVALID_SURFACE;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ /*The fisrt frame always is I frame and the content of reference frame wouldn't be used.
+ * But the heights of ref and dest frame should be the same.
+ * That allows Topaz to keep its motion vectors up to date, which helps maintain performance */
+ if (ctx->obj_context->frame_count == 0)
+ ctx->ref_surface = ctx->dest_surface;
+
+ ref_surface = ctx->ref_surface;
+ if (NULL == ref_surface) {
+ vaStatus = VA_STATUS_ERROR_INVALID_SURFACE;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ /* clear frameskip flag */
+ CLEAR_SURFACE_INFO_skipped_flag(rec_surface->psb_surface);
+ CLEAR_SURFACE_INFO_skipped_flag(ref_surface->psb_surface);
+
+ /* Write video data byte offset into Coded buffer
+ * If it is here, it will be a SYNC point, which have performance impact
+ * Move to psb__CreateBuffer
+ vaStatus = psb_buffer_map(ctx->coded_buf->psb_buffer, &pBuffer);
+ if(vaStatus) {
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+ *(IMG_UINT32 *)(pBuffer+8) = 16;
+ psb_buffer_unmap(ctx->coded_buf->psb_buffer);
+ */
+
+ psPicParams->SrcYStride = src_surface->psb_surface->stride;
+ switch (ctx->eFormat) {
+ case IMG_CODEC_IYUV: /* IYUV */
+ case IMG_CODEC_PL8:
+ psPicParams->SrcUVStride = src_surface->psb_surface->stride / 2;
+ psPicParams->SrcUVRowStride = src_surface->psb_surface->stride * 16 / 2;
+ break;
+ case IMG_CODEC_IMC2: /* IMC2 */
+ case IMG_CODEC_PL12:
+ psPicParams->SrcUVStride = src_surface->psb_surface->stride;
+ psPicParams->SrcUVRowStride = src_surface->psb_surface->stride * 16;
+ break;
+ default:
+ break;
+ }
+ psPicParams->SrcYRowStride = src_surface->psb_surface->stride * 16;
+ /* psPicParams->SrcUVRowStride = src_surface->psb_surface->stride * 16 / 2; */
+
+ /* Dest(rec) stride
+ * The are now literally Dst stride (not equivalent to 'offset to next row')
+ */
+#ifdef VA_EMULATOR
+ /* only for simulator, va-emulator needs the actually stride for
+ * reconstructed frame transfer (va-emulator->driver)
+ */
+ psPicParams->DstYStride = rec_surface->psb_surface->stride;
+ psPicParams->DstUVStride = rec_surface->psb_surface->stride;
+ psPicParams->DstYRowStride = rec_surface->psb_surface->stride * 16;
+ psPicParams->DstUVRowStride = rec_surface->psb_surface->stride * 16 / 2;
+#else
+ psPicParams->DstYStride = rec_surface->height * 16;
+ psPicParams->DstUVStride = rec_surface->height * 16 / 2;
+ psPicParams->DstYRowStride = psPicParams->DstYStride;
+ psPicParams->DstUVRowStride = psPicParams->DstUVStride;
+#endif
+
+ psPicParams->InParamsRowStride = (ctx->obj_context->picture_width / 16) * 256;
+ psPicParams->BelowParamRowStride = (ctx->obj_context->picture_width / 16) * 32;
+
+ psPicParams->Width = ctx->Width;
+ psPicParams->Height = ctx->Height;
+
+ /* not sure why we are setting this up here... */
+ psPicParams->Flags = 0;
+ switch (ctx->eCodec) {
+ case IMG_CODEC_H264_NO_RC:
+ case IMG_CODEC_H264_VBR:
+ case IMG_CODEC_H264_CBR:
+ case IMG_CODEC_H264_VCM:
+ psPicParams->Flags |= ISH264_FLAGS;
+ break;
+ case IMG_CODEC_H263_VBR:
+ case IMG_CODEC_H263_CBR:
+ case IMG_CODEC_H263_NO_RC:
+ psPicParams->Flags |= ISH263_FLAGS;
+ break;
+ case IMG_CODEC_MPEG4_NO_RC:
+ case IMG_CODEC_MPEG4_VBR:
+ case IMG_CODEC_MPEG4_CBR:
+ psPicParams->Flags |= ISMPEG4_FLAGS;
+ break;
+ default:
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ switch (ctx->eCodec) {
+ case IMG_CODEC_H264_VBR:
+ case IMG_CODEC_MPEG4_VBR:
+ case IMG_CODEC_H263_VBR:
+ psPicParams->Flags |= ISVBR_FLAGS;
+ break;
+ case IMG_CODEC_H264_VCM:
+ psPicParams->Flags |= ISVCM_FLAGS;
+ /* drop through to CBR case */
+ case IMG_CODEC_H263_CBR:
+ case IMG_CODEC_H264_CBR:
+ case IMG_CODEC_MPEG4_CBR:
+ psPicParams->Flags |= ISCBR_FLAGS;
+ break;
+ case IMG_CODEC_MPEG4_NO_RC:
+ case IMG_CODEC_H263_NO_RC:
+ case IMG_CODEC_H264_NO_RC:
+ break;
+ default:
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+
+
+ if (ctx->sRCParams.RCEnable) {
+ /* for the first frame, will setup RC params in EndPicture */
+ if (ctx->obj_context->frame_count > 0) { /* reuse in_params parameter */
+ /* reload IN_RC_PARAMS from cache */
+ memcpy(&psPicParams->sInParams, &ctx->in_params_cache, sizeof(IN_RC_PARAMS));
+
+ /* delay these into END_PICTURE timeframe */
+ /*
+ psPicParams->sInParams.BitsTransmitted = ctx->sRCParams.BitsTransmitted;
+ */
+ }
+ } else
+ psPicParams->sInParams.SeInitQP = ctx->sRCParams.InitialQp;
+
+ /* some relocations have to been done here */
+ srf_buf_offset = src_surface->psb_surface->buf.buffer_ofs;
+ if (src_surface->psb_surface->buf.type == psb_bt_camera)
+ psb__information_message("src surface GPU offset 0x%08x, luma offset 0x%08x\n",
+ wsbmBOOffsetHint(src_surface->psb_surface->buf.drm_buf), srf_buf_offset);
+
+ RELOC_PIC_PARAMS(&psPicParams->SrcYBase, srf_buf_offset, &src_surface->psb_surface->buf);
+ switch (ctx->eFormat) {
+ case IMG_CODEC_IYUV:
+ case IMG_CODEC_PL8:
+ case IMG_CODEC_PL12:
+ RELOC_PIC_PARAMS(&psPicParams->SrcUBase,
+ srf_buf_offset + src_surface->psb_surface->chroma_offset,
+ &src_surface->psb_surface->buf);
+
+ RELOC_PIC_PARAMS(&psPicParams->SrcVBase,
+ srf_buf_offset + src_surface->psb_surface->chroma_offset,
+ &src_surface->psb_surface->buf);
+
+ break;
+ case IMG_CODEC_IMC2:
+ case IMG_CODEC_NV12:
+ break;
+ }
+
+ /*
+ * Do not forget this!
+ * MTXWriteMem(MTXData.ui32CCBCtrlAddr + MTX_CCBCTRL_QP, sRCParams.ui32InitialQp);
+ */
+ /* following START_PIC, insert initial QP */
+ *ctx->initial_qp_in_cmdbuf = ctx->sRCParams.InitialQp;
+
+
+ RELOC_PIC_PARAMS(&psPicParams->DstYBase, 0, &rec_surface->psb_surface->buf);
+
+ RELOC_PIC_PARAMS(&psPicParams->DstUVBase,
+ rec_surface->psb_surface->stride * rec_surface->height,
+ &rec_surface->psb_surface->buf);
+
+ RELOC_PIC_PARAMS(&psPicParams->CodedBase, 0, ctx->coded_buf->psb_buffer);
+
+ /* MTX_CURRENT_IN_PARAMS buffer is seperate buffer now */
+ /*The type of frame will decide psPicParams->InParamsBase should
+ * use cmdbuf->topaz_in_params_P or cmdbuf->topaz_in_params_I*/
+ /*RELOC_PIC_PARAMS(&psPicParams->InParamsBase, ctx->in_params_ofs, cmdbuf->topaz_in_params_P);*/
+ RELOC_PIC_PARAMS(&psPicParams->BelowParamsBase, ctx->bellow_params_ofs, cmdbuf->topaz_above_bellow_params);
+ RELOC_PIC_PARAMS(&psPicParams->AboveParamsBase, ctx->above_params_ofs, cmdbuf->topaz_above_bellow_params);
+
+ return VA_STATUS_SUCCESS;
+}
+
+static VAStatus lnc__PatchBitsConsumedInRCParam(context_ENC_p ctx)
+{
+ lnc_cmdbuf_p cmdbuf = ctx->obj_context->lnc_cmdbuf;
+ /* PIC_PARAMS *psPicParams = cmdbuf->pic_params_p; */
+ VAStatus vaStatus;
+
+ /* it will wait until last encode session is done */
+ /* now it just wait the last session is done and the frame skip
+ * is */
+ psb__information_message("will patch bits consumed for rc\n");
+ if (ctx->pprevious_coded_buf) {
+ vaStatus = psb_buffer_sync(ctx->pprevious_coded_buf->psb_buffer);
+ if (vaStatus)
+ return vaStatus;
+ }
+
+ return VA_STATUS_SUCCESS;
+}
+
+static VAStatus lnc_RedoRenderPictureSkippedFrame(context_ENC_p ctx)
+{
+ lnc_cmdbuf_p cmdbuf = ctx->obj_context->lnc_cmdbuf;
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ int i = 0;
+
+ /* reset cmdbuf to skip existing picture/slice DO_HEAD commands */
+ cmdbuf->cmd_idx = cmdbuf->cmd_idx_saved_frameskip;
+
+ switch (ctx->eCodec) {
+ case IMG_CODEC_H263_CBR: /* H263 don't need picture header/slice header, only reset command buf */
+ case IMG_CODEC_H263_VBR:
+ break;
+ case IMG_CODEC_H264_VBR:
+ case IMG_CODEC_H264_CBR: /* slice header needs redo */
+ case IMG_CODEC_H264_VCM: {
+ /* only need one slice header here */
+ VAEncSliceParameterBuffer *pBuffer = &ctx->slice_param_cache[i];
+ unsigned int MBSkipRun, FirstMBAddress;
+ int deblock_on;
+
+ if ((pBuffer->slice_flags.bits.disable_deblocking_filter_idc == 0)
+ || (pBuffer->slice_flags.bits.disable_deblocking_filter_idc == 2))
+ deblock_on = IMG_TRUE;
+ else
+ deblock_on = IMG_FALSE;
+
+ if (1 /* ctx->sRCParams.RCEnable && ctx->sRCParams.FrameSkip */) /* we know it is true */
+ MBSkipRun = (ctx->Width * ctx->Height) / 256;
+ else
+ MBSkipRun = 0;
+
+ FirstMBAddress = (pBuffer->start_row_number * ctx->Width) / 16;
+ /* Insert Do Header command, relocation is needed */
+
+ lnc__H264_prepare_slice_header(cmdbuf->header_mem_p + ctx->slice_header_ofs + i * HEADER_SIZE,
+ 0, /*pBuffer->slice_flags.bits.is_intra*/
+ pBuffer->slice_flags.bits.disable_deblocking_filter_idc,
+ ctx->obj_context->frame_count,
+ FirstMBAddress,
+ MBSkipRun,
+ (ctx->obj_context->frame_count == 0),
+ pBuffer->slice_flags.bits.uses_long_term_ref,
+ pBuffer->slice_flags.bits.is_long_term_ref,
+ ctx->idr_pic_id);
+
+
+ lnc_cmdbuf_insert_command(cmdbuf, MTX_CMDID_DO_HEADER, 2, (i << 2) | 2);
+ RELOC_CMDBUF(cmdbuf->cmd_idx++,
+ ctx->slice_header_ofs + i * HEADER_SIZE,
+ &cmdbuf->header_mem);
+ }
+
+ break;
+ case IMG_CODEC_MPEG4_VBR:
+ case IMG_CODEC_MPEG4_CBR: /* only picture header need redo */
+ lnc__MPEG4_prepare_vop_header(cmdbuf->header_mem_p + ctx->pic_header_ofs,
+ IMG_FALSE /* bIsVOPCoded is false now */,
+ ctx->MPEG4_vop_time_increment_frameskip, /* In testbench, this should be FrameNum */
+ 4,/* default value is 4,search range */
+ ctx->MPEG4_picture_type_frameskip,
+ ctx->MPEG4_vop_time_increment_resolution/* defaule value */);
+
+ lnc_cmdbuf_insert_command(cmdbuf, MTX_CMDID_DO_HEADER, 2, 1);
+ RELOC_CMDBUF(cmdbuf->cmd_idx++, ctx->pic_header_ofs, &cmdbuf->header_mem);
+ vaStatus = lnc_RenderPictureParameter(ctx);
+ break;
+ default:
+ psb__error_message("Non-RC mode should be here for FrameSkip handling\n");
+ ASSERT(0);
+ }
+
+ return vaStatus;
+}
+
+static VAStatus lnc_SetupRCParam(context_ENC_p ctx)
+{
+ lnc_cmdbuf_p cmdbuf = ctx->obj_context->lnc_cmdbuf;
+ PIC_PARAMS *psPicParams = cmdbuf->pic_params_p;
+ int origin_qp;/* in DDK setup_rc will change qp strangly,
+ * just for keep same with DDK
+ */
+
+ origin_qp = ctx->sRCParams.InitialQp;
+
+ psb__information_message("will setup rc data\n");
+
+ psPicParams->Flags |= ISRC_FLAGS;
+ lnc__setup_rcdata(ctx, psPicParams, &ctx->sRCParams);
+
+ /* restore it, just keep same with DDK */
+ ctx->sRCParams.InitialQp = origin_qp;
+
+ /* save IN_RC_PARAMS into the cache */
+ memcpy(&ctx->in_params_cache, (void *)&psPicParams->sInParams, sizeof(IN_RC_PARAMS));
+
+ return VA_STATUS_SUCCESS;
+}
+
+static VAStatus lnc_UpdateRCParam(context_ENC_p ctx)
+{
+ int origin_qp;
+ lnc_cmdbuf_p cmdbuf = ctx->obj_context->lnc_cmdbuf;
+ PIC_PARAMS *psPicParams = cmdbuf->pic_params_p;
+
+ origin_qp = ctx->sRCParams.InitialQp;
+
+ psb__information_message("will update rc data\n");
+ lnc__update_rcdata(ctx, psPicParams, &ctx->sRCParams);
+
+ /* set minQP if hosts set minQP */
+ if (ctx->sRCParams.MinQP)
+ psPicParams->sInParams.MinQPVal = ctx->sRCParams.MinQP;
+
+ /* if seinitqp is set, restore the value hosts want */
+ if (origin_qp) {
+ psPicParams->sInParams.SeInitQP = origin_qp;
+ psPicParams->sInParams.MyInitQP = origin_qp;
+ ctx->sRCParams.InitialQp = origin_qp;
+ }
+
+ /* save IN_RC_PARAMS into the cache */
+ memcpy(&ctx->in_params_cache, (void *)&psPicParams->sInParams, sizeof(IN_RC_PARAMS));
+
+ return VA_STATUS_SUCCESS;
+}
+
+static VAStatus lnc_PatchRCMode(context_ENC_p ctx)
+{
+ int frame_skip = 0;
+
+ psb__information_message("will patch rc data\n");
+ /* it will ensure previous encode finished */
+ lnc__PatchBitsConsumedInRCParam(ctx);
+
+ /* get frameskip flag */
+ lnc_surface_get_frameskip(ctx->obj_context->driver_data, ctx->src_surface->psb_surface, &frame_skip);
+ /* current frame is skipped
+ * redo RenderPicture with FrameSkip set
+ */
+ if (frame_skip == 1)
+ lnc_RedoRenderPictureSkippedFrame(ctx);
+
+ return VA_STATUS_SUCCESS;
+}
+
+VAStatus lnc_EndPicture(context_ENC_p ctx)
+{
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ lnc_cmdbuf_p cmdbuf = ctx->obj_context->lnc_cmdbuf;
+
+ if (ctx->sRCParams.RCEnable == IMG_TRUE) {
+ if (ctx->obj_context->frame_count == 0)
+ lnc_SetupRCParam(ctx);
+ else if (ctx->update_rc_control)
+ lnc_UpdateRCParam(ctx);
+ else
+ lnc_PatchRCMode(ctx);
+ }
+ ctx->update_rc_control = 0;
+
+ /* save current settings */
+ ctx->previous_src_surface = ctx->src_surface;
+ ctx->previous_ref_surface = ctx->ref_surface;
+ ctx->previous_dest_surface = ctx->dest_surface; /* reconstructed surface */
+ ctx->pprevious_coded_buf = ctx->previous_coded_buf;
+ ctx->previous_coded_buf = ctx->coded_buf;
+
+ lnc_cmdbuf_insert_command(cmdbuf, MTX_CMDID_END_PIC, 3, 0);
+ lnc_cmdbuf_insert_command_param(cmdbuf, 0);/* two meaningless parameters */
+ lnc_cmdbuf_insert_command_param(cmdbuf, 0);
+ psb_buffer_unmap(&cmdbuf->pic_params);
+ psb_buffer_unmap(&cmdbuf->header_mem);
+ psb_buffer_unmap(&cmdbuf->slice_params);
+
+ /* unmap MTX_CURRENT_IN_PARAMS buffer only when it is mapped */
+ if (cmdbuf->topaz_in_params_I_p != NULL) {
+ psb_buffer_unmap(cmdbuf->topaz_in_params_I);
+ cmdbuf->topaz_in_params_I_p = NULL;
+ }
+
+ if (cmdbuf->topaz_in_params_P_p != NULL) {
+ psb_buffer_unmap(cmdbuf->topaz_in_params_P);
+ cmdbuf->topaz_in_params_P_p = NULL;
+ }
+
+ if (cmdbuf->topaz_above_bellow_params_p != NULL) {
+ psb_buffer_unmap(cmdbuf->topaz_above_bellow_params);
+ cmdbuf->topaz_above_bellow_params_p = NULL;
+ }
+
+ if (lnc_context_flush_cmdbuf(ctx->obj_context)) {
+ vaStatus = VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ return vaStatus;
+}
+
+static void lnc__setup_busize(context_ENC_p ctx)
+{
+ int old_busize = ctx->sRCParams.BUSize;
+
+ /* it is called at EndPicture, we should now the Slice number */
+ ctx->Slices = ctx->obj_context->slice_count;
+
+ /* if no BU size is given then pick one ourselves */
+ if (ctx->sRCParams.BUSize != 0) { /* application provided BUSize */
+ IMG_UINT32 MBs, MBsperSlice, MBsLastSlice;
+ IMG_UINT32 BUs;
+ IMG_INT32 SliceHeight;
+
+ MBs = ctx->Height * ctx->Width / (16 * 16);
+
+ SliceHeight = ctx->Height / ctx->Slices;
+ /* SliceHeight += 15; */
+ SliceHeight &= ~15;
+
+ MBsperSlice = (SliceHeight * ctx->Width) / (16 * 16);
+ MBsLastSlice = MBs - (MBsperSlice * (ctx->Slices - 1));
+
+ /* they have given us a basic unit so validate it */
+ if (ctx->sRCParams.BUSize < 6) {
+ psb__error_message("ERROR: Basic unit size too small, must be greater than 6\n");
+ ctx->sRCParams.BUSize = 0; /* need repatch */;
+ }
+ if (ctx->sRCParams.BUSize > MBsperSlice) {
+ psb__error_message("ERROR: Basic unit size too large, must be less than the number of macroblocks in a slice\n");
+ ctx->sRCParams.BUSize = 0; /* need repatch */;
+ }
+ if (ctx->sRCParams.BUSize > MBsLastSlice) {
+ psb__error_message("ERROR: Basic unit size too large, must be less than number of macroblocks in the last slice\n");
+ ctx->sRCParams.BUSize = 0; /* need repatch */;
+ }
+ BUs = MBsperSlice / ctx->sRCParams.BUSize;
+ if ((BUs * ctx->sRCParams.BUSize) != MBsperSlice) {
+ psb__error_message("ERROR: Basic unit size not an integer divisor of MB's in a slice");
+ ctx->sRCParams.BUSize = 0; /* need repatch */;
+ }
+ if (BUs > 200) {
+ psb__error_message("ERROR: Basic unit size too small. There must be less than 200 basic units per slice");
+ ctx->sRCParams.BUSize = 0; /* need repatch */;
+ }
+ BUs = MBsLastSlice / ctx->sRCParams.BUSize;
+ if (BUs > 200) {
+ psb__error_message("ERROR: Basic unit size too small. There must be less than 200 basic units per slice");
+ ctx->sRCParams.BUSize = 0; /* need repatch */;
+ }
+ }
+
+ if (ctx->sRCParams.BUSize == 0) {
+ IMG_UINT32 MBs, MBsperSlice, MBsLastSlice;
+ IMG_UINT32 BUs, BUsperSlice, BUsLastSlice;
+ IMG_INT32 SliceHeight;
+
+ MBs = ctx->Height * ctx->Width / (16 * 16);
+
+ SliceHeight = ctx->Height / ctx->Slices;
+ /* SliceHeight += 15; */
+ SliceHeight &= ~15;
+
+ MBsperSlice = (SliceHeight * ctx->Width) / (16 * 16);
+ MBsLastSlice = MBs - (MBsperSlice * (ctx->Slices - 1));
+
+ /* we have to verify that MBs is divisiable by BU AND that BU is > pipeline length */
+ if (ctx->sRCParams.BUSize < 6) {
+ ctx->sRCParams.BUSize = 6;
+ }
+
+ BUs = MBs / ctx->sRCParams.BUSize;
+ while (BUs*ctx->sRCParams.BUSize != MBs) {
+ ctx->sRCParams.BUSize++;
+ BUs = MBs / ctx->sRCParams.BUSize;
+ }
+
+ /* Check number of BUs in the pipe is less than maximum number allowed 200 */
+ BUsperSlice = MBsperSlice / ctx->sRCParams.BUSize;
+ BUsLastSlice = MBsLastSlice / ctx->sRCParams.BUSize;
+ while ((BUsperSlice *(ctx->Slices - 1) + BUsLastSlice) > 200) {
+ ctx->sRCParams.BUSize++;
+ BUsperSlice = MBsperSlice / ctx->sRCParams.BUSize;
+ BUsLastSlice = MBsLastSlice / ctx->sRCParams.BUSize;
+ }
+
+ /* Check whether there are integer number of BUs in the slices */
+ BUsperSlice = MBsperSlice / ctx->sRCParams.BUSize;
+ BUsLastSlice = MBsLastSlice / ctx->sRCParams.BUSize;
+ while ((BUsperSlice*ctx->sRCParams.BUSize != MBsperSlice) ||
+ (BUsLastSlice*ctx->sRCParams.BUSize != MBsLastSlice)) {
+ ctx->sRCParams.BUSize++;
+ BUsperSlice = MBsperSlice / ctx->sRCParams.BUSize;
+ BUsLastSlice = MBsLastSlice / ctx->sRCParams.BUSize;
+ }
+
+ if (ctx->sRCParams.BUSize != old_busize)
+ psb__information_message("Patched Basic unit to %d (original=%d)\n", ctx->sRCParams.BUSize, old_busize);
+ }
+}
+
+
+/***********************************************************************************
+ * Function Name : SetupRCData
+ * Inputs :
+ * Outputs :
+ * Returns :
+ * Description : Sets up RC Data
+ ************************************************************************************/
+void lnc__setup_rcdata(
+ context_ENC_p psContext,
+ PIC_PARAMS *psPicParams,
+ IMG_RC_PARAMS *psRCParams)
+{
+ IMG_INT32 max_bitrate = psContext->Width * psContext->Height * 1.5 * 8 * 60;
+ IMG_UINT8 InitialSeInitQP = 0;
+
+ /* frameskip is always cleared, specially handled at vaEndPicture */
+ psRCParams->FrameSkip = 0;
+
+ if (!psRCParams->BitsPerSecond)
+ psRCParams->BitsPerSecond = 64000;
+ if (psRCParams->BitsPerSecond > max_bitrate)
+ psRCParams->BitsPerSecond = max_bitrate;
+
+ if (!psRCParams->FrameRate)
+ psRCParams->FrameRate = 30;
+
+ if (psRCParams->BufferSize == 0) {
+ if (psRCParams->BitsPerSecond < 256000)
+ psRCParams->BufferSize = (9 * psRCParams->BitsPerSecond) >> 1;
+ else
+ psRCParams->BufferSize = (5 * psRCParams->BitsPerSecond) >> 1;
+ }
+ psRCParams->InitialLevel = (3 * psRCParams->BufferSize) >> 4;
+ psRCParams->InitialDelay = (13 * psRCParams->BufferSize) >> 4;
+
+ lnc__setup_busize(psContext); /* calculate BasicUnitSize */
+
+ psPicParams->sInParams.SeInitQP = psRCParams->InitialQp;
+
+ psPicParams->sInParams.MBPerRow = (psContext->Width >> 4);
+ psPicParams->sInParams.MBPerBU = psRCParams->BUSize;
+ psPicParams->sInParams.MBPerFrm = (psContext->Width >> 4) * (psContext->Height >> 4);
+ psPicParams->sInParams.BUPerFrm = (psPicParams->sInParams.MBPerFrm) / psRCParams->BUSize;
+
+ InitialSeInitQP = psPicParams->sInParams.SeInitQP;
+
+ lnc__update_rcdata(psContext, psPicParams, psRCParams);
+ /* set minQP if hosts set minQP */
+ if (psRCParams->MinQP)
+ psPicParams->sInParams.MinQPVal = psRCParams->MinQP;
+
+ /* if seinitqp is set, restore the value hosts want */
+ if (InitialSeInitQP) {
+ psPicParams->sInParams.SeInitQP = InitialSeInitQP;
+ psPicParams->sInParams.MyInitQP = InitialSeInitQP;
+ psRCParams->InitialQp = InitialSeInitQP;
+ }
+}
+
+void lnc__update_rcdata(context_ENC_p psContext,
+ PIC_PARAMS *psPicParams,
+ IMG_RC_PARAMS *psRCParams)
+{
+ double L1, L2, L3, L4, L5, flBpp;
+ INT16 i16TempQP;
+ IMG_INT32 i32BufferSizeInFrames;
+
+ flBpp = 1.0 * psRCParams->BitsPerSecond / (psRCParams->FrameRate * psContext->Width * psContext->Height);
+
+ /* recalculate for small frames */
+ if (psContext->Width <= 176)
+ flBpp = flBpp / 2.0;
+
+ psPicParams->sInParams.IntraPeriod = psRCParams->IntraFreq;
+ psPicParams->sInParams.BitRate = psRCParams->BitsPerSecond;
+ psPicParams->sInParams.IntraPeriod = psRCParams->IntraFreq;
+
+ psPicParams->sInParams.BitsPerFrm = psRCParams->BitsPerSecond / psRCParams->FrameRate;
+ psPicParams->sInParams.BitsPerGOP = psPicParams->sInParams.BitsPerFrm * psRCParams->IntraFreq;
+ psPicParams->sInParams.BitsPerBU = psPicParams->sInParams.BitsPerFrm / (4 * psPicParams->sInParams.BUPerFrm);
+ psPicParams->sInParams.BitsPerMB = psPicParams->sInParams.BitsPerBU / psRCParams->BUSize;
+
+ i32BufferSizeInFrames = psRCParams->BufferSize / psPicParams->sInParams.BitsPerFrm;
+
+ // select thresholds and initial Qps etc that are codec dependent
+ switch (psContext->eCodec) {
+ case IMG_CODEC_H264_CBR:
+ case IMG_CODEC_H264_VCM:
+ case IMG_CODEC_H264_VBR:
+ L1 = 0.1;
+ L2 = 0.15;
+ L3 = 0.2;
+ psPicParams->sInParams.MaxQPVal = 51;
+
+ // Set THSkip Values
+ if (flBpp <= 0.07)
+ psPicParams->THSkip = TH_SKIP_24;
+ else if (flBpp <= 0.14)
+ psPicParams->THSkip = TH_SKIP_12;
+ else
+ psPicParams->THSkip = TH_SKIP_0;
+
+ if (flBpp <= 0.3)
+ psPicParams->Flags |= ISRC_I16BIAS;
+
+ // Setup MAX and MIN Quant Values
+ if (flBpp >= 0.50)
+ i16TempQP = 4;
+ else if (flBpp > 0.133)
+ i16TempQP = (unsigned int)(24 - (40 * flBpp));
+ else
+ i16TempQP = (unsigned int)(32 - (100 * flBpp));
+
+ psPicParams->sInParams.MinQPVal = (max(min(psPicParams->sInParams.MaxQPVal, i16TempQP), 0));
+ // Calculate Initial QP if it has not been specified
+
+ L1 = 0.050568;
+ L2 = 0.202272;
+ L3 = 0.40454321;
+ L4 = 0.80908642;
+ L5 = 1.011358025;
+ if (flBpp < L1)
+ i16TempQP = (IMG_INT16)(47 - 78.10 * flBpp);
+
+ else if (flBpp >= L1 && flBpp < L2)
+ i16TempQP = (IMG_INT16)(46 - 72.51 * flBpp);
+
+ else if (flBpp >= L2 && flBpp < L3)
+ i16TempQP = (IMG_INT16)(36 - 24.72 * flBpp);
+
+ else if (flBpp >= L3 && flBpp < L4)
+ i16TempQP = (IMG_INT16)(34 - 19.78 * flBpp);
+
+ else if (flBpp >= L4 && flBpp < L5)
+ i16TempQP = (IMG_INT16)(27 - 9.89 * flBpp);
+
+ else if (flBpp >= L5)
+ i16TempQP = (IMG_INT16)(20 - 4.95 * flBpp);
+
+ psPicParams->sInParams.SeInitQP = (IMG_UINT8)(max(min(psPicParams->sInParams.MaxQPVal, i16TempQP), 0));
+ break;
+
+ case IMG_CODEC_MPEG4_CBR:
+ case IMG_CODEC_MPEG4_VBR:
+ psPicParams->sInParams.MaxQPVal = 31;
+
+ if (psContext->Width == 176) {
+ L1 = 0.1;
+ L2 = 0.3;
+ L3 = 0.6;
+ } else if (psContext->Width == 352) {
+ L1 = 0.2;
+ L2 = 0.6;
+ L3 = 1.2;
+ } else {
+ L1 = 0.25;
+ L2 = 1.4;
+ L3 = 2.4;
+ }
+
+ // Calculate Initial QP if it has not been specified
+ if (flBpp <= L1)
+ psPicParams->sInParams.SeInitQP = 31;
+ else {
+ if (flBpp <= L2)
+ psPicParams->sInParams.SeInitQP = 25;
+ else
+ psPicParams->sInParams.SeInitQP = (flBpp <= L3) ? 20 : 10;
+ }
+
+ if (flBpp >= 0.25) {
+ psPicParams->sInParams.MinQPVal = 1;
+ } else {
+ psPicParams->sInParams.MinQPVal = 2;
+ }
+ break;
+
+ case IMG_CODEC_H263_CBR:
+ case IMG_CODEC_H263_VBR:
+ psPicParams->sInParams.MaxQPVal = 31;
+
+ if (psContext->Width == 176) {
+ L1 = 0.1;
+ L2 = 0.3;
+ L3 = 0.6;
+ } else if (psContext->Width == 352) {
+ L1 = 0.2;
+ L2 = 0.6;
+ L3 = 1.2;
+ } else {
+ L1 = 0.25;
+ L2 = 1.4;
+ L3 = 2.4;
+ }
+
+ // Calculate Initial QP if it has not been specified
+ if (flBpp <= L1)
+ psPicParams->sInParams.SeInitQP = 31;
+ else {
+ if (flBpp <= L2)
+ psPicParams->sInParams.SeInitQP = 25;
+ else
+ psPicParams->sInParams.SeInitQP = (flBpp <= L3) ? 20 : 10;
+ }
+
+ psPicParams->sInParams.MinQPVal = 3;
+
+ break;
+
+ default:
+ /* the NO RC cases will fall here */
+ break;
+ }
+
+ // Set up Input Parameters that are mode dependent
+ switch (psContext->eCodec) {
+ case IMG_CODEC_H264_NO_RC:
+ case IMG_CODEC_H263_NO_RC:
+ case IMG_CODEC_MPEG4_NO_RC:
+ return;
+
+ case IMG_CODEC_H264_VCM:
+ psPicParams->Flags |= ISVCM_FLAGS | ISCBR_FLAGS;
+ /* drop through to CBR case */
+ /* for SD and above we can target 95% (122/128) of maximum bitrate */
+ if (psRCParams->VCMBitrateMargin) {
+ psPicParams->sInParams.VCMBitrateMargin = psRCParams->VCMBitrateMargin;
+ } else {
+ if (psContext->Height >= 480)
+ psPicParams->sInParams.VCMBitrateMargin = 122;
+ else
+ psPicParams->sInParams.VCMBitrateMargin = 115; /* for less and SD we target 90% (115/128) of maximum bitrate */
+ if (i32BufferSizeInFrames < 15)
+ psPicParams->sInParams.VCMBitrateMargin -= 5;/* when we have a very small window size we reduce the target further to avoid too much skipping */
+ }
+ psPicParams->sInParams.ForceSkipMargin = 500;/* start skipping MBs when within 500 bits of slice or frame limit */
+
+ // Set a scale factor to avoid overflows in maths
+ if (psRCParams->BitsPerSecond < 1000000) { // 1 Mbits/s
+ psPicParams->sInParams.ScaleFactor = 0;
+ } else if (psRCParams->BitsPerSecond < 2000000) { // 2 Mbits/s
+ psPicParams->sInParams.ScaleFactor = 1;
+ } else if (psRCParams->BitsPerSecond < 4000000) { // 4 Mbits/s
+ psPicParams->sInParams.ScaleFactor = 2;
+ } else if (psRCParams->BitsPerSecond < 8000000) { // 8 Mbits/s
+ psPicParams->sInParams.ScaleFactor = 3;
+ } else {
+ psPicParams->sInParams.ScaleFactor = 4;
+ }
+
+ psPicParams->sInParams.BufferSize = i32BufferSizeInFrames;
+ break;
+
+ case IMG_CODEC_H264_CBR:
+ psPicParams->Flags |= ISCBR_FLAGS;
+ // ------------------- H264 CBR RC ------------------- //
+ // Initialize the parameters of fluid flow traffic model.
+ psPicParams->sInParams.BufferSize = psRCParams->BufferSize;
+
+ // HRD consideration - These values are used by H.264 reference code.
+ if (psRCParams->BitsPerSecond < 1000000) { // 1 Mbits/s
+ psPicParams->sInParams.ScaleFactor = 0;
+ } else if (psRCParams->BitsPerSecond < 2000000) { // 2 Mbits/s
+ psPicParams->sInParams.ScaleFactor = 1;
+ } else if (psRCParams->BitsPerSecond < 4000000) { // 4 Mbits/s
+ psPicParams->sInParams.ScaleFactor = 2;
+ } else if (psRCParams->BitsPerSecond < 8000000) { // 8 Mbits/s
+ psPicParams->sInParams.ScaleFactor = 3;
+ } else {
+ psPicParams->sInParams.ScaleFactor = 4;
+ }
+ break;
+
+ case IMG_CODEC_MPEG4_CBR:
+ case IMG_CODEC_H263_CBR:
+ psPicParams->Flags |= ISCBR_FLAGS;
+
+ flBpp = 256 * (psRCParams->BitsPerSecond / psContext->Width);
+ flBpp /= (psContext->Height * psRCParams->FrameRate);
+
+ if ((psPicParams->sInParams.MBPerFrm > 1024 && flBpp < 16) || (psPicParams->sInParams.MBPerFrm <= 1024 && flBpp < 24))
+ psPicParams->sInParams.HalfFrameRate = 1;
+ else
+ psPicParams->sInParams.HalfFrameRate = 0;
+
+ if (psPicParams->sInParams.HalfFrameRate >= 1) {
+ psPicParams->sInParams.SeInitQP = 31;
+ psPicParams->sInParams.AvQPVal = 31;
+ psPicParams->sInParams.MyInitQP = 31;
+ }
+
+ if (psRCParams->BitsPerSecond <= 384000)
+ psPicParams->sInParams.BufferSize = ((psRCParams->BitsPerSecond * 5) >> 1);
+ else
+ psPicParams->sInParams.BufferSize = psRCParams->BitsPerSecond * 4;
+ break;
+
+ case IMG_CODEC_MPEG4_VBR:
+ case IMG_CODEC_H263_VBR:
+ case IMG_CODEC_H264_VBR:
+ psPicParams->Flags |= ISVBR_FLAGS;
+
+ psPicParams->sInParams.MBPerBU = psPicParams->sInParams.MBPerFrm;
+ psPicParams->sInParams.BUPerFrm = 1;
+
+ // Initialize the parameters of fluid flow traffic model.
+ psPicParams->sInParams.BufferSize = ((5 * psRCParams->BitsPerSecond) >> 1);
+
+ // These scale factor are used only for rate control to avoid overflow
+ // in fixed-point calculation these scale factors are decided by bit rate
+ if (psRCParams->BitsPerSecond < 640000) {
+ psPicParams->sInParams.ScaleFactor = 2; // related to complexity
+ } else if (psRCParams->BitsPerSecond < 2000000) {
+ psPicParams->sInParams.ScaleFactor = 4;
+ } else {
+ psPicParams->sInParams.ScaleFactor = 6;
+ }
+ break;
+ default:
+ break;
+ }
+
+ psPicParams->sInParams.MyInitQP = psPicParams->sInParams.SeInitQP;
+ psPicParams->sInParams.InitialDelay = psRCParams->InitialDelay;
+ psPicParams->sInParams.InitialLevel = psRCParams->InitialLevel;
+ psRCParams->InitialQp = psPicParams->sInParams.SeInitQP;
+}
+
+
+
+static void lnc__setup_qpvalue_h264(
+ MTX_CURRENT_IN_PARAMS * psCurrent,
+ IMG_BYTE bySliceQP)
+{
+ /* H.264 QP scaling tables */
+ IMG_BYTE HOST_PVR_QP_SCALE_CR[52] = {
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
+ 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
+ 28, 29, 29, 30, 31, 32, 32, 33, 34, 34, 35, 35, 36, 36, 37, 37,
+ 37, 38, 38, 38, 39, 39, 39, 39
+ };
+
+ psCurrent->bySliceQP = bySliceQP;
+ psCurrent->bySliceQPC = HOST_PVR_QP_SCALE_CR[psCurrent->bySliceQP];
+}
+
+
+static void lnc__setup_qpvalues_mpeg4(
+ MTX_CURRENT_IN_PARAMS * psCurrent,
+ IMG_BYTE bySliceQP)
+{
+ psCurrent->bySliceQP = bySliceQP;
+}
+
+
+static void lnc__setup_slice_row_params(
+ context_ENC_p ctx,
+ IMG_BOOL IsIntra,
+ IMG_UINT16 CurrentRowY,
+ IMG_INT16 SliceStartRowY,
+ IMG_INT16 SliceHeight,
+ IMG_BOOL VectorsValid,
+ int bySliceQP)
+{
+ /* Note: CurrentRowY and SliceStartRowY are now in pixels (not MacroBlocks)
+ * - saves needless multiplications and divisions
+ */
+ IMG_INT16 Pos, YPos, srcY;
+ MTX_CURRENT_IN_PARAMS *psCurrent;
+ lnc_cmdbuf_p cmdbuf = ctx->obj_context->lnc_cmdbuf;
+ IMG_UINT16 tmp;
+
+ if (IsIntra && cmdbuf->topaz_in_params_I_p == NULL) {
+ VAStatus vaStatus = psb_buffer_map(cmdbuf->topaz_in_params_I, &cmdbuf->topaz_in_params_I_p);
+ if (vaStatus != VA_STATUS_SUCCESS) {
+ psb__error_message("map topaz MTX_CURRENT_IN_PARAMS failed\n");
+ return;
+ }
+ }
+
+ if ((!IsIntra) && cmdbuf->topaz_in_params_P_p == NULL) {
+ VAStatus vaStatus = psb_buffer_map(cmdbuf->topaz_in_params_P, &cmdbuf->topaz_in_params_P_p);
+ if (vaStatus != VA_STATUS_SUCCESS) {
+ psb__error_message("map topaz MTX_CURRENT_IN_PARAMS failed\n");
+ return;
+ }
+ }
+ if (IsIntra)
+ psCurrent = (MTX_CURRENT_IN_PARAMS*)(cmdbuf->topaz_in_params_I_p + ctx->in_params_ofs);
+ else
+ psCurrent = (MTX_CURRENT_IN_PARAMS*)(cmdbuf->topaz_in_params_P_p + ctx->in_params_ofs);
+
+ psCurrent += (CurrentRowY * (ctx->Width) / 256);
+
+ if ((YPos = srcY = CurrentRowY - MVEA_LRB_TOP_OFFSET) < 0)
+ srcY = 0;
+ else if (YPos > ctx->HeightMinusLRB_TopAndBottom_OffsetsPlus16)
+ srcY = ctx->HeightMinusLRBSearchHeight;
+
+ tmp = (CurrentRowY != SliceStartRowY);
+
+ for (Pos = 0; Pos < ctx->Width; Pos += 16, psCurrent++) {
+ memset(psCurrent, 0, sizeof(MTX_CURRENT_IN_PARAMS));
+ psCurrent->MVValid = 0;
+ psCurrent->ParamsValid = 0;
+
+ /* Setup the parameters and motion vectors */
+ if (tmp) {
+ psCurrent->MVValid = 66;
+ psCurrent->ParamsValid |= PARAMS_ABOVE_VALID;
+
+ if (Pos + 16 < ctx->Width) {
+ psCurrent->ParamsValid |= PARAMS_ABOVER_VALID;
+ psCurrent->MVValid |= 4; /* (1<<2) */
+ }
+
+ if (Pos > 0 && (Pos < ctx->Width)) {
+ psCurrent->ParamsValid |= PARAMS_ABOVEL_VALID;
+ psCurrent->MVValid |= 1; /* (1<<0) */
+ }
+ }
+ if ((Pos == 0) && (CurrentRowY == SliceStartRowY)) {
+ psCurrent->ParamsValid |= MB_START_OF_SLICE;/* OPTI? */
+ }
+ /* Have to fill in the right hand row of 4x4 vectors into the the left block */
+ if (Pos) {
+ psCurrent->MVValid |= 72; /* (1<<3)+(1<<6) */
+ psCurrent->ParamsValid |= 8; /* (1<<3) */
+ }
+ if (Pos == ctx->Width - 16) {
+ /* indicate the last MB in a row */
+ psCurrent->ParamsValid |= MB_END_OF_ROW;
+ /* are we the last mb in the slice? */
+ if (YPos == (SliceStartRowY + SliceHeight - (MVEA_LRB_TOP_OFFSET + 16))) {
+ psCurrent->ParamsValid |= MB_END_OF_SLICE;
+ if (YPos == ctx->HeightMinus16MinusLRBTopOffset) {
+ psCurrent->ParamsValid |= MB_END_OF_PICTURE;
+ }
+ }
+ }
+ /* And now the below block
+ * should do some kind of check to see if we are the first inter block,
+ * as otherwise the vectors will be invalid!
+ */
+ if (VectorsValid) {
+ if (YPos < ctx->HeightMinus16MinusLRBTopOffset) {
+ psCurrent->MVValid |= 16; /* (1<<4) */
+
+ if (YPos < ctx->HeightMinus32MinusLRBTopOffset) {
+ psCurrent->MVValid |= 32; /* (1<<5) */
+ }
+ }
+ }
+
+ /* Set up IPEMin and Max for coordinate X in the search reference region */
+ /* And set up flags in SPEMax when needed */
+ if (Pos <= 48) {
+ psCurrent->IPEMin[0] = 48 - Pos;
+ psCurrent->RealEdge |= SPE_EDGE_LEFT;
+ } else {
+ psCurrent->IPEMin[0] = 3;
+ }
+
+ if ((Pos + 48 + 16) > ctx->Width) {
+ psCurrent->IPEMax[0] = (47 + ctx->Width) - Pos; /* (112 - 1) - ((Pos + 48+16) - ctx->Width); */
+ psCurrent->RealEdge |= SPE_EDGE_RIGHT;
+ } else {
+ psCurrent->IPEMax[0] = 108; /* (112 - 1) - 3; */
+ }
+
+ /* Set up IPEMin and Max for Y coordinate in the search reference region */
+ /* And set up flags in SPEMax when needed */
+ if (YPos <= 0) {
+ psCurrent->IPEMin[1] = 0;
+ psCurrent->RealEdge |= SPE_EDGE_TOP;
+ } else {
+ psCurrent->IPEMin[1] = 3;
+ }
+
+ /* Max Y */
+ if (YPos > ctx->HeightMinusLRB_TopAndBottom_OffsetsPlus16) {
+ psCurrent->IPEMax[1] = MVEA_LRB_SEARCH_HEIGHT - 1;
+ psCurrent->RealEdge |= SPE_EDGE_BOTTOM;
+ } else {
+ psCurrent->IPEMax[1] = MVEA_LRB_SEARCH_HEIGHT - 4;
+ }
+
+ psCurrent->CurBlockAddr = ((IMG_UINT8)(((YPos + MVEA_LRB_TOP_OFFSET) - srcY) / 16) << 4) | 0x3;
+
+ /* Setup the control register values These will get setup and transferred to a different location within
+ * the macroblock parameter structure. They are then read out of the esb by the mtx and used to control
+ * the hardware units
+ */
+ psCurrent->IPEControl = ctx->IPEControl;
+
+ switch (ctx->eCodec) {
+ case IMG_CODEC_H263_NO_RC:
+ case IMG_CODEC_H263_VBR:
+ case IMG_CODEC_H263_CBR:
+ lnc__setup_qpvalues_mpeg4(psCurrent, bySliceQP);
+ psCurrent->JMCompControl = F_ENCODE(2, MVEA_CR_JMCOMP_MODE);
+ psCurrent->VLCControl = F_ENCODE(3, TOPAZ_VLC_CR_CODEC) |
+ F_ENCODE(IsIntra ? 0 : 1, TOPAZ_VLC_CR_SLICE_CODING_TYPE);
+ break;
+ case IMG_CODEC_MPEG4_NO_RC:
+ case IMG_CODEC_MPEG4_VBR:
+ case IMG_CODEC_MPEG4_CBR:
+ lnc__setup_qpvalues_mpeg4(psCurrent, bySliceQP);
+ psCurrent->JMCompControl = F_ENCODE(1, MVEA_CR_JMCOMP_MODE) |
+ F_ENCODE(1, MVEA_CR_JMCOMP_AC_ENABLE);
+ psCurrent->VLCControl = F_ENCODE(2, TOPAZ_VLC_CR_CODEC) |
+ F_ENCODE(IsIntra ? 0 : 1, TOPAZ_VLC_CR_SLICE_CODING_TYPE);
+ break;
+ default:
+ case IMG_CODEC_H264_NO_RC:
+ case IMG_CODEC_H264_VBR:
+ case IMG_CODEC_H264_CBR:
+ case IMG_CODEC_H264_VCM:
+ lnc__setup_qpvalue_h264(psCurrent, bySliceQP);
+ psCurrent->JMCompControl = F_ENCODE(0, MVEA_CR_JMCOMP_MODE);
+ psCurrent->VLCControl = F_ENCODE(1, TOPAZ_VLC_CR_CODEC) |
+ F_ENCODE(IsIntra ? 0 : 1, TOPAZ_VLC_CR_SLICE_CODING_TYPE);
+ break;
+ }
+ }
+
+ psCurrent->RealEdge = 0;
+
+}
+
+void lnc_setup_slice_params(
+ context_ENC_p ctx,
+ IMG_UINT16 YSliceStartPos,
+ IMG_UINT16 SliceHeight,
+ IMG_BOOL IsIntra,
+ IMG_BOOL VectorsValid,
+ int bySliceQP)
+{
+ IMG_UINT16 Rows, CurrentRowY;
+
+ Rows = SliceHeight / 16;
+ CurrentRowY = YSliceStartPos;
+
+ while (Rows) {
+ lnc__setup_slice_row_params(
+ ctx,
+ IsIntra,
+ CurrentRowY,
+ YSliceStartPos,
+ SliceHeight,
+ VectorsValid, bySliceQP);
+
+ CurrentRowY += 16;
+ Rows--;
+ }
+
+}
+
+
+
+IMG_UINT32 lnc__send_encode_slice_params(
+ context_ENC_p ctx,
+ IMG_BOOL IsIntra,
+ IMG_UINT16 CurrentRow,
+ IMG_BOOL DeblockSlice,
+ IMG_UINT32 FrameNum,
+ IMG_UINT16 SliceHeight,
+ IMG_UINT16 CurrentSlice,
+ IMG_UINT32 MaxSliceSize)
+{
+ SLICE_PARAMS *psSliceParams;
+ IMG_INT16 RowOffset;
+
+ psb_buffer_p psCoded;
+ object_surface_p ref_surface;
+ psb_buffer_p psRef;
+ lnc_cmdbuf_p cmdbuf = ctx->obj_context->lnc_cmdbuf;
+
+
+ ref_surface = ctx->ref_surface;
+ psRef = &ctx->ref_surface->psb_surface->buf;
+ psCoded = ctx->coded_buf->psb_buffer;
+
+ psSliceParams = (SLICE_PARAMS *)(cmdbuf->slice_params_p +
+ CurrentSlice * ((sizeof(SLICE_PARAMS) + 15) & 0xfff0));
+
+ psSliceParams->SliceHeight = SliceHeight;
+ psSliceParams->SliceStartRowNum = CurrentRow / 16;
+
+ /* We want multiple ones of these so we can submit multiple slices without having to wait for the next */
+ psSliceParams->CodedDataPos = 0;
+ psSliceParams->TotalCoded = 0;
+ psSliceParams->Flags = 0;
+
+#ifdef VA_EMULATOR
+ psSliceParams->RefYStride = ref_surface->psb_surface->stride;
+ psSliceParams->RefUVStride = ref_surface->psb_surface->stride;
+ psSliceParams->RefYRowStride = ref_surface->psb_surface->stride * 16;
+ psSliceParams->RefUVRowStride = ref_surface->psb_surface->stride * 16 / 2;
+#else
+ psSliceParams->RefYStride = ref_surface->height * 16;
+ psSliceParams->RefUVStride = ref_surface->height * 8;
+ psSliceParams->RefYRowStride = psSliceParams->RefYStride;
+ psSliceParams->RefUVRowStride = psSliceParams->RefUVStride;
+#endif
+
+ psSliceParams->FCode = ctx->FCode;/* Not clear yet, This field is not appare in firmware doc */
+ RowOffset = CurrentRow - 32;
+ if (RowOffset <= 0)
+ RowOffset = 0;
+ if (RowOffset > (ctx->Height - 80))
+ RowOffset = (ctx->Height - 80);
+
+ psSliceParams->MaxSliceSize = MaxSliceSize;
+ psSliceParams->NumAirMBs = ctx->num_air_mbs;
+ /* DDKv145: 3 lsb of threshold used as spacing between AIR MBs */
+ psSliceParams->AirThreshold = ctx->air_threshold + (FrameNum & 3) + 2;
+
+ if (ctx->autotune_air_flag)
+ psSliceParams->Flags |= AUTOTUNE_AIR;
+
+ if (!IsIntra) {
+ psSliceParams->Flags |= ISINTER_FLAGS;
+ }
+ if (DeblockSlice) {
+ psSliceParams->Flags |= DEBLOCK_FRAME;
+ }
+ switch (ctx->eCodec) {
+ case IMG_CODEC_H263_NO_RC:
+ case IMG_CODEC_H263_VBR:
+ case IMG_CODEC_H263_CBR:
+ psSliceParams->Flags |= ISH263_FLAGS;
+ break;
+ case IMG_CODEC_MPEG4_NO_RC:
+ case IMG_CODEC_MPEG4_VBR:
+ case IMG_CODEC_MPEG4_CBR:
+ psSliceParams->Flags |= ISMPEG4_FLAGS;
+ break;
+ case IMG_CODEC_H264_NO_RC:
+ case IMG_CODEC_H264_VBR:
+ case IMG_CODEC_H264_CBR:
+ case IMG_CODEC_H264_VCM:
+ psSliceParams->Flags |= ISH264_FLAGS;
+ break;
+ default:
+ psSliceParams->Flags |= ISH264_FLAGS;
+ psb__error_message("No format specified defaulting to h.264\n");
+ break;
+ }
+ /* we should also setup the interleaving requirements based on the source format */
+ if (ctx->eFormat != IMG_CODEC_PL12)
+ psSliceParams->Flags |= INTERLEAVE_TARGET;
+
+ cmdbuf = ctx->obj_context->lnc_cmdbuf;
+
+ RELOC_SLICE_PARAMS(&(psSliceParams->RefYBase), 16 * RowOffset, psRef);
+ RELOC_SLICE_PARAMS(&(psSliceParams->RefUVBase),
+ ref_surface->psb_surface->stride * ref_surface->height + (RowOffset * 16 / 2),
+ psRef);
+ RELOC_SLICE_PARAMS(&(psSliceParams->CodedData), 0, psCoded);
+
+ lnc_cmdbuf_insert_command(cmdbuf, MTX_CMDID_ENCODE_SLICE, 2, (CurrentSlice << 2) | (IsIntra & 0x3));
+ RELOC_CMDBUF(cmdbuf->cmd_idx++,
+ CurrentSlice *((sizeof(SLICE_PARAMS) + 15) & 0xfff0),
+ &cmdbuf->slice_params);
+
+ return 0;
+}
+
+
+
+/*
+ * Function Name : Reset_EncoderParams
+ * Description : Reset Above & Below Params at the Start of Intra frame
+ */
+void lnc_reset_encoder_params(context_ENC_p ctx)
+{
+ void *Add_Below, *Add_Above;
+ lnc_cmdbuf_p cmdbuf = ctx->obj_context->lnc_cmdbuf;
+
+ /* all frames share the same Topaz param, in_param/aboveparam/bellow
+ * map it only when necessary
+ */
+ if (cmdbuf->topaz_above_bellow_params_p == NULL) {
+ VAStatus vaStatus = psb_buffer_map(cmdbuf->topaz_above_bellow_params, &cmdbuf->topaz_above_bellow_params_p);
+ if (vaStatus != VA_STATUS_SUCCESS) {
+ psb__error_message("map topaz MTX_CURRENT_IN_PARAMS failed\n");
+ return;
+ }
+ }
+
+ Add_Below = cmdbuf->topaz_above_bellow_params_p + ctx->bellow_params_ofs;
+ memset(Add_Below, 0, ctx->bellow_params_size);
+
+ Add_Above = cmdbuf->topaz_above_bellow_params_p + ctx->above_params_ofs;
+ memset(Add_Above, 0, ctx->above_params_size);
+}
diff --git a/src/lnc_hostcode.h b/src/lnc_hostcode.h
new file mode 100644
index 0000000..046fca7
--- /dev/null
+++ b/src/lnc_hostcode.h
@@ -0,0 +1,557 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ * Zeng Li <zeng.li@intel.com>
+ * Shengquan Yuan <shengquan.yuan@intel.com>
+ * Binglin Chen <binglin.chen@intel.com>
+ *
+ */
+
+
+#include "img_types.h"
+#include "psb_drv_video.h"
+#include "psb_surface.h"
+#include "lnc_cmdbuf.h"
+
+#define MAX_SLICES_PER_PICTURE 72
+
+#define CODED_BUFFER_EOSEQ_FLAG (0x1u<<0)
+#define CODED_BUFFER_EOSTREAM_FLAG (0x1u<<1)
+
+/* commands for topaz,shared with user space driver */
+enum drm_lnc_topaz_cmd {
+ MTX_CMDID_NULL = 0,
+ MTX_CMDID_DO_HEADER = 1,
+ MTX_CMDID_ENCODE_SLICE = 2,
+ MTX_CMDID_WRITEREG = 3,
+ MTX_CMDID_START_PIC = 4,
+ MTX_CMDID_END_PIC = 5,
+ MTX_CMDID_SYNC = 6,
+ MTX_CMDID_ENCODE_ONE_ROW = 7,
+ MTX_CMDID_FLUSH = 8,
+ MTX_CMDID_SW_LEAVE_LOWPOWER = 0x7c,
+ MTX_CMDID_SW_ENTER_LOWPOWER = 0x7e,
+ MTX_CMDID_SW_NEW_CODEC = 0x7f
+};
+
+/* codecs topaz supports,shared with user space driver */
+enum drm_lnc_topaz_codec {
+ IMG_CODEC_JPEG = 0,
+ IMG_CODEC_H264_NO_RC,
+ IMG_CODEC_H264_VBR,
+ IMG_CODEC_H264_CBR,
+ IMG_CODEC_H264_VCM,
+ IMG_CODEC_H263_NO_RC,
+ IMG_CODEC_H263_VBR,
+ IMG_CODEC_H263_CBR,
+ IMG_CODEC_MPEG4_NO_RC,
+ IMG_CODEC_MPEG4_VBR,
+ IMG_CODEC_MPEG4_CBR,
+ IMG_CODEC_NUM
+};
+
+typedef enum _img_format_ {
+ IMG_CODEC_IYUV, /* IYUV */
+ IMG_CODEC_IMC2, /* IMC2 */
+ IMG_CODEC_PL8,
+ IMG_CODEC_PL12,
+ IMG_CODEC_NV12,
+} IMG_FORMAT;
+
+
+typedef struct _RC_PARAMS_ {
+ IMG_UINT32 BitsPerSecond;
+ IMG_UINT32 InitialQp;
+ IMG_UINT32 BUSize;
+ IMG_UINT32 FrameRate;
+ IMG_UINT32 BufferSize;
+ IMG_UINT32 BitsConsumed;
+ IMG_UINT32 IntraFreq;
+ IMG_UINT16 IDRFreq;
+
+ IMG_INT16 MinQP;
+ IMG_BOOL RCEnable;
+ IMG_BOOL FrameSkip;
+
+ IMG_UINT8 Slices;
+ IMG_UINT8 VCMBitrateMargin;
+ IMG_INT32 InitialLevel;
+ IMG_INT32 InitialDelay;
+} IMG_RC_PARAMS;
+
+/*!
+*****************************************************************************
+*
+* @Description Struct describing rate control input parameters
+*
+* @Brief Rate control input parameters
+*
+****************************************************************************/
+typedef struct {
+ IMG_UINT8 SeInitQP; //!< Initial QP for Sequence
+ IMG_UINT8 MinQPVal; //!< Minimum QP value to use
+ IMG_UINT8 MaxQPVal; //!< Maximum QP value to use
+
+ IMG_UINT8 MBPerRow; /* Number of MBs Per Row */
+ IMG_UINT16 MBPerFrm; /* Number of MBs Per Frame */
+ IMG_UINT16 MBPerBU; /* Number of MBs Per BU */
+ IMG_UINT16 BUPerFrm; /* Number of BUs Per Frame */
+
+ IMG_UINT16 IntraPeriod; /* Intra frame frequency */
+
+ IMG_INT32 BitsPerFrm; /* Bits Per Frame */
+ IMG_INT32 BitsPerBU; /* Bits Per BU */
+ IMG_INT32 BitsPerMB; /* Bits Per MB */
+
+ IMG_INT32 BitRate; /* Bit Rate (bps) */
+ IMG_INT32 BufferSize; /* Size of Buffer */
+ IMG_INT32 InitialLevel; /* Initial Level of Buffer */
+ IMG_INT32 InitialDelay; /* Initial Delay of Buffer */
+
+ IMG_UINT8 ScaleFactor; /* Scale Factor (H264 only) */
+ IMG_UINT8 VCMBitrateMargin; /* Bitrate that should be
+ targetted as a fraction of
+ 128 relative to maximum bitrate
+ i32BitRate (VCM mode only) */
+ IMG_UINT8 HalfFrameRate; /* Half Frame Rate (MP4 only) */
+ IMG_UINT8 FCode; /* F Code (MP4 only) */
+
+ /* TO BE DELETED -- ONCE MP4 RC CODE IS OPTIMISED */
+ IMG_INT32 BitsPerGOP; /* Bits Per GOP (MP4 only) */
+ IMG_UINT16 AvQPVal; /* Average QP in Current Picture */
+ IMG_UINT16 MyInitQP; /* Initial Quantizer */
+
+ IMG_INT32 ForceSkipMargin; /* The number of bits of margin
+ to leave before forcing skipped
+ macroblocks (VCM mode only) */
+ IMG_UINT32 RCScaleFactor; /* A constant used in rate control = (GopSize/(BufferSize-InitialLevel))*256 */
+} IN_RC_PARAMS;
+
+struct coded_buf_aux_info {
+ object_buffer_p buf;
+ uint32_t aux_flag; /*Indicate which operation should be applied when map coded buffer.*/
+ struct coded_buf_aux_info *next;
+};
+
+struct context_ENC_s {
+ object_context_p obj_context; /* back reference */
+
+ IMG_INT16 Width;
+ IMG_INT16 Height;
+ IMG_INT16 RawWidth;
+ IMG_INT16 RawHeight;
+ IMG_INT16 Slices;
+ enum drm_lnc_topaz_codec eCodec;
+ IMG_FORMAT eFormat;
+ unsigned int FCode;
+ IMG_RC_PARAMS sRCParams;
+
+ IMG_INT16 HeightMinus16MinusLRBTopOffset;
+ IMG_INT16 HeightMinus32MinusLRBTopOffset;
+ IMG_INT16 HeightMinusLRB_TopAndBottom_OffsetsPlus16;
+ IMG_INT16 HeightMinusLRBSearchHeight;
+ IMG_UINT32 IPEControl;
+
+ object_surface_p src_surface;
+ object_surface_p ref_surface;
+ object_surface_p dest_surface;/* reconstructed surface */
+ object_buffer_p coded_buf;
+
+ /* save previous settings */
+ object_surface_p previous_src_surface;
+ object_surface_p previous_ref_surface;
+ object_surface_p previous_dest_surface; /* reconstructed surface */
+ object_buffer_p previous_coded_buf;
+ object_buffer_p pprevious_coded_buf;
+
+ /* point to the place in cmdbuf following START_PIC, the initial_qp will fill into it later */
+ uint32_t *initial_qp_in_cmdbuf;
+
+
+ /* global topaz_params buffer shared by every cmdbuffer
+ * it is because filling InParams for every MB is very time-consuming
+ * and in most cases, we can reuse previous frames buffer
+ */
+ /* 0 and 1 are for in_parms, 2 is for bellow and above params*/
+ struct psb_buffer_s topaz_in_params_I;
+ struct psb_buffer_s topaz_in_params_P;
+ struct psb_buffer_s topaz_above_bellow_params;
+ uint32_t topaz_buffer_size;
+ uint32_t in_params_size;
+ uint32_t bellow_params_size;
+ uint32_t above_params_size;
+
+ /* offset in topaz_param buffer */
+ uint32_t in_params_ofs;
+ uint32_t bellow_params_ofs;
+ uint32_t above_params_ofs;
+
+ uint32_t pic_params_size;
+
+ uint32_t header_buffer_size;
+
+ uint32_t seq_header_ofs;
+ uint32_t pic_header_ofs;
+ uint32_t eoseq_header_ofs;
+ uint32_t eostream_header_ofs;
+ uint32_t slice_header_ofs;
+
+ uint32_t sliceparam_buffer_size;
+
+ IN_RC_PARAMS in_params_cache; /* following frames reuse the first frame's IN_RC_PARAMS, cache it */
+
+ VAEncSliceParameterBuffer *slice_param_cache;
+ uint16_t slice_param_num;
+
+ IMG_UINT16 MPEG4_vop_time_increment_resolution;
+
+ /* saved information for FrameSkip redo */
+ uint32_t MPEG4_vop_time_increment_frameskip;
+ uint32_t MPEG4_picture_type_frameskip;
+ uint8_t profile_idc;
+ uint8_t force_idr_h264;
+ uint32_t update_rc_control;
+ uint8_t OptionalCustomPCF;
+ uint32_t max_slice_size;
+ uint16_t num_air_mbs;
+ uint16_t air_threshold;
+ uint32_t autotune_air_flag;
+ uint32_t delta_change;
+
+ struct coded_buf_aux_info *p_coded_buf_info;
+ unsigned char *save_seq_header_p;
+
+ /*For H264 only.*/
+ uint16_t idr_pic_id;
+};
+
+typedef struct context_ENC_s *context_ENC_p;
+
+/*#define BELOW_PARAMS_SIZE 8*/
+
+#define HEADER_SIZE 128
+
+#define BELOW_PARAMS_SIZE 16
+#define REGION_TYPE_2D 1
+#define REGION_TYPE_LINEAR 0
+#define REGION_TYPE_2DREF 3
+
+
+#define MAX_RESIDUAL_PER_MB_H264 1260
+#define ISINTER_FLAGS 0x1
+#define ISH264_FLAGS 0x2
+#define ISMPEG4_FLAGS 0x4
+#define ISH263_FLAGS 0x8
+#define DEBLOCK_FRAME 0x10
+#define ISRC_FLAGS 0x20
+#define ISCBR_FLAGS 0x40
+#define ISVBR_FLAGS 0x80
+#define ISRC_I16BIAS 0x100
+#define INTERLEAVE_TARGET 0x200
+#define ISVCM_FLAGS 0x400
+#define AUTOTUNE_AIR 0x800
+
+
+#define SPE_EDGE_LEFT 1 /* ->bMinXRealEdge*/
+#define SPE_EDGE_RIGHT 2 /* ->bMaxXRealEdge*/
+#define SPE_EDGE_TOP 4 /* ->bMinYRealEdge*/
+#define SPE_EDGE_BOTTOM 8 /* ->bMaxYRealEdge*/
+
+typedef struct {
+ /* Transferred into the input params area of the macroblock parameter structure*/
+ IMG_BYTE CurBlockAddr;
+ IMG_BYTE IPEMin[2];
+ IMG_BYTE IPEMax[2];
+ IMG_BYTE RealEdge; /*bMinXRealEdge, bMaxXRealEdge, bMinXRealEdge and bMinYRealEdge*/
+ /* Surrounding block availability */
+ IMG_BYTE MVValid;
+ IMG_BYTE ParamsValid;
+ IMG_BYTE bySliceQP;
+ IMG_BYTE bySliceQPC;
+
+ IMG_BYTE Reserved[6]; /* This is padding to make the transfers 16 bytes aligned*/
+ /* Transferred into the SW communication section of the macroblock
+ * parameter structure We shall EDMA the whole lot of this into eiob
+ * in one go, and then use two TDMA's to put it into seperate locations
+ * within the macroblock structure
+ */
+ IMG_UINT32 IPEControl;
+ IMG_UINT32 SPEControl;
+ IMG_UINT32 JMCompControl;
+ IMG_UINT32 VLCControl;
+} MTX_CURRENT_IN_PARAMS;
+
+typedef struct { /* corresponding bytes inside the MB_IN structure: */
+ IMG_BYTE BlockSizes; /****************/
+ IMG_BYTE IntraMode; /* */
+ IMG_BYTE Intra4x4ModesBottom[2]; /* */
+ IMG_BYTE CodeType; /* [64 : 71] */
+ IMG_BYTE Reserved2; /* */
+ /*IMG_BYTE SAD;*/
+ IMG_BYTE QPy; /* */
+ IMG_BYTE QPc; /****************/
+
+ IMG_BYTE Reserved3[8]; /* This is padding to make the transfers 16 byte aligned*/
+
+ IMG_UINT16 LumaSubBlockCoded; /****************/
+ IMG_BYTE ChromaSubBlockCoded; /* */
+ IMG_BYTE LumaChromaDCCoded; /* */
+ /* [129 : 143] */
+ IMG_BYTE Lambda; /* */
+ IMG_BYTE Reserved[3]; /* */
+ /* */
+ IMG_BYTE Intra4x4ModeDeltas[8]; /****************/
+
+ /* Motion vectors */
+ IMG_UINT16 IntegerMV[16][2]; /* [207 : 144] */
+ /* input region from host */
+} MTX_CURRENT_OUT_PARAMS;
+
+
+
+typedef enum _TH_SKIP_SCALE_ {
+ TH_SKIP_0 = 0,
+ TH_SKIP_12 = 1,
+ TH_SKIP_24 = 2
+} TH_SKIP_SCALE;
+
+typedef struct _PIC_PARAMS_ {
+ IMG_UINT32 SrcYBase;
+ IMG_UINT32 SrcUBase;
+ IMG_UINT32 SrcVBase;
+ IMG_UINT32 DstYBase;
+ IMG_UINT32 DstUVBase;
+
+ IMG_UINT16 SrcYStride;
+ IMG_UINT16 SrcUVStride;
+ IMG_UINT16 SrcYRowStride;
+ IMG_UINT16 SrcUVRowStride;
+
+ IMG_UINT16 DstYStride;
+ IMG_UINT16 DstUVStride;
+ IMG_UINT16 DstYRowStride;
+ IMG_UINT16 DstUVRowStride;
+
+ IMG_UINT32 InParamsBase;
+ IMG_UINT32 InParamsRowStride;
+
+ IMG_UINT32 OutParamsBase;
+ IMG_UINT32 CodedBase;
+
+ IMG_UINT32 BelowParamsBase;
+ IMG_UINT32 BelowParamRowStride;
+
+ IMG_UINT32 AboveParamsBase;
+ IMG_UINT32 AboveParamRowStride;
+ IMG_UINT16 Width;
+ IMG_UINT16 Height;
+ IMG_UINT16 Flags;
+
+ IN_RC_PARAMS sInParams;
+ TH_SKIP_SCALE THSkip;
+
+ IMG_UINT16 NumSlices; //!< Number of slices in the picture
+} PIC_PARAMS;
+
+
+/* This holds the data that is needed at the start of a slice
+ */
+typedef struct _SLICE_PARAMS_ {
+
+ IMG_UINT16 SliceStartRowNum;
+ IMG_UINT16 SliceHeight;
+
+ IMG_UINT32 RefYBase;
+ IMG_UINT32 RefUVBase;
+ IMG_UINT16 RefYStride;
+ IMG_UINT16 RefUVStride;
+ IMG_UINT16 RefYRowStride;
+ IMG_UINT16 RefUVRowStride;
+
+ IMG_UINT32 CodedData;
+ IMG_UINT32 Flags;
+ IMG_UINT32 CodedDataPos;
+ IMG_UINT32 TotalCoded;
+ IMG_UINT32 FCode;
+
+ IMG_UINT32 MaxSliceSize;
+ IMG_INT16 NumAirMBs; //!< Maximum number of Adaptive intra refresh macroblocks for this slice
+ IMG_INT16 AirThreshold; //!< Theshold value used in Adaptive intra refresh calculation.
+
+} SLICE_PARAMS;
+
+
+typedef struct _ROW_PARAMS_ {
+ IMG_UINT32 TargetYBase;
+ IMG_UINT32 TargetYStride;
+ IMG_UINT32 TargetUBase;
+ IMG_UINT32 TargetVBase;
+ IMG_UINT32 TargetUVStride;
+
+ IMG_UINT32 ReferenceYBase;
+ IMG_UINT32 ReferenceYStride;
+ IMG_UINT32 ReferenceUVBase;
+ IMG_UINT32 ReferenceUVStride;
+
+ IMG_UINT32 ReconstructedYBase;
+ IMG_UINT32 ReconstructedYStride;
+ IMG_UINT32 ReconstructedUVBase;
+ IMG_UINT32 ReconstructedUVStride;
+
+ IMG_UINT32 AboveParamsBase;
+ IMG_UINT32 OutAboveParamsBase;
+ IMG_UINT32 MacroblockInParamsBase;
+ IMG_UINT32 MacroblockOutParamsBase;
+ IMG_UINT32 BelowParamsBase;
+ IMG_UINT32 OutBelowParamsBase;
+ IMG_UINT32 CodedData;
+
+ IMG_UINT32 Flags;
+ IMG_UINT32 BlockWidth;
+ IMG_UINT32 BlockHeight;
+ IMG_UINT32 YPos;
+ IMG_UINT32 FrameNum;
+
+ IMG_INT BelowParamsOffset;
+ IMG_UINT32 CodedDataPos;
+ IMG_UINT32 BaseResidual;
+ IMG_UINT32 TotalCoded;
+
+ IMG_UINT32 PADDING[5];
+
+ IMG_UINT32 IPESkipVecBias;
+ IMG_UINT32 SPESkipVecBias;
+ IMG_INT32 InterMBBias;
+ IMG_INT32 Intra16Bias;
+ IMG_UINT32 SpeZeroThld;
+ IMG_UINT32 SpeZeroThreshold;
+
+} ROW_PARAMS;
+
+#define ROW_PARAMS_TDMA_DIMENSIONS 16,16,sizeof(ROW_PARAMS)
+
+typedef struct _ENCODER_VARIABLES_ {
+ IMG_UINT32 ActionFlags;
+
+ IMG_UINT32 SrcYCurrent;
+ IMG_UINT32 SrcUCurrent;
+ IMG_UINT32 SrcVCurrent;
+
+ IMG_UINT32 DstYCurrent;
+ IMG_UINT32 DstUCurrent;
+ IMG_UINT32 DstVCurrent;
+
+ IMG_INT BelowParamsOffset;
+ IMG_UINT32 BaseResidual;
+ IMG_UINT32 CodedDataPos;
+ IMG_UINT32 TotalCoded;
+
+ IMG_UINT32 SrcYOffset;
+ IMG_UINT32 SrcUOffset;
+ IMG_UINT32 SrcVOffset;
+
+ IMG_UINT32 PADDING[2];
+} ENCODER_VARIABLES;
+
+#define SLICE_FLAGS_ISINTER 0x00000001
+#define SLICE_FLAGS_DEBLOCK 0x00000002
+
+#define SLICE_FLAGS_ISINTER 0x00000001
+#define SLICE_FLAGS_DEBLOCK 0x00000002
+
+#define RC_STATUS_FRAME_AVE_QP_MASK 0x0ff /* the average Qp used in this frame */
+#define RC_STATUS_FLAG_LARGE_SLICE 0x100 /* At least one slice in this frame was large enough for the firmware to try to reduce it by increasing Qp or skipping MBs */
+#define RC_STATUS_FLAG_SLICE_OVERFLOW 0x200 /* At least one slice in this frame was larger than the slice limit */
+
+enum {
+ CBR = 0,
+ VBR,
+ VCM
+} eRCMode;
+
+enum {
+ EH263 = 0,
+ EMpeg4 = 1,
+ EH264 = 2,
+ EHJpeg = 3
+} eEncodingFormat;
+
+#define VAEncSliceParameter_Equal(src, dst) \
+ (((src)->start_row_number == (dst)->start_row_number) \
+ && ((src)->slice_height == (dst)->slice_height) \
+ && ((src)->slice_flags.bits.is_intra == (dst)->slice_flags.bits.is_intra) \
+ && ((src)->slice_flags.bits.disable_deblocking_filter_idc == (dst)->slice_flags.bits.disable_deblocking_filter_idc))
+
+#define VAEncSliceParameter_LightEqual(src, dst) \
+ (((src)->start_row_number == (dst)->start_row_number) \
+ && ((src)->slice_height == (dst)->slice_height) \
+ && ((src)->slice_flags.bits.disable_deblocking_filter_idc == (dst)->slice_flags.bits.disable_deblocking_filter_idc))
+
+
+
+#define SURFACE_INFO_SKIP_FLAG_SETTLED 0X80000000
+#define GET_SURFACE_INFO_skipped_flag(psb_surface) ((int) (psb_surface->extra_info[5]))
+#define SET_SURFACE_INFO_skipped_flag(psb_surface, value) psb_surface->extra_info[5] = (SURFACE_INFO_SKIP_FLAG_SETTLED | value)
+#define CLEAR_SURFACE_INFO_skipped_flag(psb_surface) psb_surface->extra_info[5] = 0
+
+VAStatus lnc_CreateContext(object_context_p obj_context,
+ object_config_p obj_config);
+
+
+void lnc__setup_rcdata(context_ENC_p ctx, PIC_PARAMS *psPicParams, IMG_RC_PARAMS *rc_params);
+void lnc__update_rcdata(context_ENC_p ctx, PIC_PARAMS *psPicParams, IMG_RC_PARAMS *rc_params);
+
+void lnc_DestroyContext(
+ object_context_p obj_context
+);
+
+VAStatus lnc_BeginPicture(context_ENC_p ctx);
+VAStatus lnc_EndPicture(context_ENC_p ctx);
+
+void lnc_setup_slice_params(
+ context_ENC_p ctx, IMG_UINT16 YSliceStartPos,
+ IMG_UINT16 SliceHeight, IMG_BOOL IsIntra,
+ IMG_BOOL VectorsValid, int bySliceQP);
+
+IMG_UINT32 lnc__send_encode_slice_params(
+ context_ENC_p ctx,
+ IMG_BOOL IsIntra,
+ IMG_UINT16 CurrentRow,
+ IMG_BOOL DeblockSlice,
+ IMG_UINT32 FrameNum,
+ IMG_UINT16 SliceHeight,
+ IMG_UINT16 CurrentSlice,
+ IMG_UINT32 MaxSliceSize);
+
+VAStatus lnc_RenderPictureParameter(context_ENC_p ctx);
+
+
+void lnc_reset_encoder_params(context_ENC_p ctx);
+unsigned int lnc__get_ipe_control(enum drm_lnc_topaz_codec eEncodingFormat);
+
+
+
+
+
diff --git a/src/lnc_hostheader.c b/src/lnc_hostheader.c
new file mode 100644
index 0000000..d7f7d34
--- /dev/null
+++ b/src/lnc_hostheader.c
@@ -0,0 +1,2370 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ * Zeng Li <zeng.li@intel.com>
+ * Shengquan Yuan <shengquan.yuan@intel.com>
+ * Binglin Chen <binglin.chen@intel.com>
+ *
+ */
+
+
+#include <stdio.h>
+#include <string.h>
+#include "img_types.h"
+#include "psb_def.h"
+#include "lnc_hostheader.h"
+
+
+/* Global stores the latest QP information for the DoHeader()
+ * routine, should be filled in by the rate control algorithm.
+ */
+#define HEADERS_VERBOSE_OUTPUT 0
+
+/* #define USESTATICWHEREPOSSIBLE 1 */
+
+#define MAXNUMBERELEMENTS 16
+
+
+/* SOME USEFUL TEST FUNCTIONS */
+#ifndef TOPAZ_MTX_HW
+static void Show_Bits(
+ IMG_UINT8 *ucBitStream,
+ IMG_UINT32 ByteStartBit,
+ IMG_UINT32 Bits)
+{
+ char Txt[1024];
+ IMG_UINT32 uiByteSize;
+ IMG_UINT32 uiLp, uiBt, Bcnt;
+ Bcnt = 0;
+ uiByteSize = (Bits + ByteStartBit + 7) >> 3;
+ for (uiLp = 0; uiLp < uiByteSize; uiLp++) {
+ snprintf(Txt, strlen(" "), " ");
+ for (uiBt = 128; uiBt >= 1; uiBt = uiBt >> 1) {
+ Bcnt++;
+ if (Bcnt > Bits + ByteStartBit || Bcnt <= ByteStartBit)
+ snprintf(Txt, sizeof(Txt), "%sX", Txt);
+ else
+ snprintf(Txt, sizeof(Txt), "%s%i", Txt, (ucBitStream[uiLp] & uiBt) > 0);
+ }
+
+ snprintf(Txt, sizeof(Txt), "%s ", Txt);
+ printf(Txt);
+ if ((uiLp + 1) % 8 == 0) printf("\n");
+ }
+
+ printf("\n\n");
+}
+#endif
+
+#ifndef TOPAZ_MTX_HW
+
+static void Show_Elements(
+ MTX_HEADER_PARAMS *mtx_hdr,
+ MTX_HEADER_ELEMENT **elt_p)
+{
+ IMG_UINT8 f;
+ IMG_UINT32 TotalByteSize;
+ IMG_UINT32 RTotalByteSize;
+
+ RTotalByteSize = TotalByteSize = 0;
+ for (f = 0; f < mtx_hdr->Elements; f++) {
+#if HEADERS_VERBOSE_OUTPUT
+ psb__information_message("Encoding Element [%i] - Type:%i\n", f, elt_p[f]->Element_Type);
+#endif
+ if (elt_p[f]->Element_Type == ELEMENT_STARTCODE_RAWDATA ||
+ elt_p[f]->Element_Type == ELEMENT_RAWDATA) {
+ TotalByteSize = elt_p[f]->Size;
+#if HEADERS_VERBOSE_OUTPUT
+ psb__information_message("Writing %i RAW bits to element.\n", elt_p[f]->Size);
+ Show_Bits((IMG_UINT8 *)(&elt_p[f]->Size) + 1, 0, TotalByteSize);
+#endif
+ TotalByteSize += 8;
+
+ RTotalByteSize += (((IMG_UINT32)((TotalByteSize + 7) / 8)) * 8);
+ RTotalByteSize += 32;
+ } else {
+ TotalByteSize = 0;
+ switch (elt_p[f]->Element_Type) {
+ case ELEMENT_QP:
+#if HEADERS_VERBOSE_OUTPUT
+ psb__information_message("Insert token ELEMENT_QP (H264)- for MTX to generate and insert this value\n");
+#endif
+ break;
+ case ELEMENT_SQP:
+#if HEADERS_VERBOSE_OUTPUT
+ psb__information_message("Insert token ELEMENT_SQP (H264)- for MTX to generate and insert this value\n");
+#endif
+ break;
+ case ELEMENT_FRAMEQSCALE:
+#if HEADERS_VERBOSE_OUTPUT
+ psb__information_message("Insert token ELEMENT_FRAMEQSCALE (H263/MPEG4) - for MTX to generate and insert this value\n");
+#endif
+ break;
+ case ELEMENT_SLICEQSCALE:
+#if HEADERS_VERBOSE_OUTPUT
+ psb__information_message("Insert token ELEMENT_SLICEQSCALE (H263/MPEG4) - for MTX to generate and insert this value\n");
+#endif
+ break;
+ case ELEMENT_INSERTBYTEALIGN_H264:
+#if HEADERS_VERBOSE_OUTPUT
+ psb__information_message("Insert token ELEMENT_INSERTBYTEALIGN_H264 - MTX to generate 'rbsp_trailing_bits()' field\n");
+#endif
+ break;
+ case ELEMENT_INSERTBYTEALIGN_MPG4:
+#if HEADERS_VERBOSE_OUTPUT
+ psb__information_message("Insert token ELEMENT_INSERTBYTEALIGN_MPG4 - MTX to generate MPEG4 'byte_aligned_bits' field\n");
+#endif
+ break;
+ default:
+ break;
+ }
+
+ RTotalByteSize += 32;
+#if HEADERS_VERBOSE_OUTPUT
+ psb__information_message("No RAW bits\n\n");
+#endif
+ }
+ }
+
+ /* TotalByteSize=TotalByteSize+32+(&elt_p[f-1]->Element_Type-&elt_p[0]->Element_Type)*8; */
+
+#if HEADERS_VERBOSE_OUTPUT
+ psb__information_message("\nCombined ELEMENTS Stream:\n");
+ Show_Bits((IMG_UINT8 *) pMTX_Header->asElementStream, 0, RTotalByteSize);
+#endif
+}
+#endif
+
+
+/**
+ * Header Writing Functions
+ * Low level bit writing and ue, se functions
+ * HOST CODE
+ */
+static void lnc__write_upto8bits_elements(
+ MTX_HEADER_PARAMS *mtx_hdr,
+ MTX_HEADER_ELEMENT **elt_p,
+ IMG_UINT8 wrt_bits,
+ IMG_UINT16 bit_cnt)
+{
+ /* This is the core function to write bits/bytes
+ * to a header stream, it writes them directly to ELEMENT structures.
+ */
+ IMG_UINT8 *wrt_bytes_p;
+ IMG_UINT8 *size_bits_p;
+ union {
+ IMG_UINT32 UI16Input;
+ IMG_UINT8 UI8Input[2];
+ } InputVal = {0, };
+ IMG_UINT8 OutByteIndex;
+ IMG_INT16 Shift;
+
+ if (bit_cnt == 0) return;
+
+ /* WA for klockwork */
+ if (mtx_hdr->Elements >= MAXNUMBERELEMENTS) {
+ psb__error_message("mtx_hdr->Elments overflow\n");
+ return;
+ }
+
+ /* First ensure that unused bits in wrt_bits are zeroed */
+ wrt_bits &= (0x00ff >> (8 - bit_cnt));
+
+ InputVal.UI16Input = 0;
+
+ /* Pointer to the bit count field */
+ size_bits_p = &(elt_p[mtx_hdr->Elements]->Size);
+
+ /* Pointer to the space where header bits are to be written */
+ wrt_bytes_p = &(elt_p[mtx_hdr->Elements]->Bits);
+
+ OutByteIndex = (size_bits_p[0] / 8);
+
+ if (!(size_bits_p[0] & 7)) {
+ if (size_bits_p[0] >= 120) {
+ /* Element maximum bits send to element, time to start a new one */
+ mtx_hdr->Elements++; /* Increment element index */
+ /* Element pointer set to position of next element (120/8 = 15 bytes) */
+ elt_p[mtx_hdr->Elements] = (MTX_HEADER_ELEMENT *) & wrt_bytes_p[15];
+
+ /* Write ELEMENT_TYPE */
+ elt_p[mtx_hdr->Elements]->Element_Type = ELEMENT_RAWDATA;
+
+ /* Set new element size (bits) to zero */
+ elt_p[mtx_hdr->Elements]->Size = 0;
+
+ /* Begin writing to the new element */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, wrt_bits, bit_cnt);
+ return;
+ }
+
+ wrt_bytes_p[OutByteIndex] = 0; /* Beginning a new byte, clear byte */
+ }
+
+ Shift = (IMG_INT16)((8 - bit_cnt) - (size_bits_p[0] & 7));
+
+ if (Shift >= 0) {
+ wrt_bits <<= Shift;
+ wrt_bytes_p[OutByteIndex] |= wrt_bits;
+ size_bits_p[0] = size_bits_p[0] + bit_cnt;
+ } else {
+ InputVal.UI8Input[1] = (IMG_UINT8) wrt_bits + 256;
+ InputVal.UI16Input >>= -Shift;
+
+ wrt_bytes_p[OutByteIndex] |= InputVal.UI8Input[1];
+
+ size_bits_p[0] = size_bits_p[0] + bit_cnt;
+ size_bits_p[0] = size_bits_p[0] - ((IMG_UINT8) - Shift);
+ InputVal.UI8Input[0] = InputVal.UI8Input[0] >> (8 + Shift);
+
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, InputVal.UI8Input[0], (IMG_UINT16) - Shift);
+ }
+}
+
+static void lnc__write_upto32bits_elements(
+ MTX_HEADER_PARAMS *mtx_hdr,
+ MTX_HEADER_ELEMENT **elt_p,
+ IMG_UINT32 wrt_bits,
+ IMG_UINT32 bit_cnt)
+{
+ IMG_UINT32 BitLp;
+ IMG_UINT32 EndByte;
+ IMG_UINT8 Bytes[4];
+
+ for (BitLp = 0; BitLp < 4; BitLp++) {
+ Bytes[BitLp] = (IMG_UINT8)(wrt_bits & 255);
+ wrt_bits = wrt_bits >> 8;
+ }
+
+ EndByte = ((bit_cnt + 7) / 8);
+
+ if ((bit_cnt) % 8)
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, Bytes[EndByte-1], (IMG_UINT8)((bit_cnt) % 8));
+ else
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, Bytes[EndByte-1], 8);
+
+ if (EndByte > 1)
+ for (BitLp = EndByte - 1; BitLp > 0; BitLp--) {
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, Bytes[BitLp-1], 8);
+ }
+}
+
+static void lnc__generate_ue(
+ MTX_HEADER_PARAMS *mtx_hdr,
+ MTX_HEADER_ELEMENT **elt_p,
+ IMG_UINT32 uiVal)
+{
+ IMG_UINT32 uiLp;
+ IMG_UINT8 ucZeros;
+ IMG_UINT32 uiChunk;
+
+ for (uiLp = 1, ucZeros = 0; (uiLp - 1) < uiVal ; uiLp = uiLp + uiLp, ucZeros++)
+ uiVal = uiVal - uiLp;
+
+ /* ucZeros = number of preceding zeros required
+ * uiVal = value to append after zeros and 1 bit
+ */
+
+ /* Write preceding zeros */
+ for (uiLp = (IMG_UINT32) ucZeros; uiLp + 1 > 8; uiLp -= 8)
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 0, 8);
+
+ /* Write zeros and 1 bit set */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, (IMG_UINT8) 1, (IMG_UINT8)(uiLp + 1));
+
+ /* Write Numeric part */
+ while (ucZeros > 8) {
+ ucZeros -= 8;
+ uiChunk = (uiVal >> ucZeros);
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, (IMG_UINT8) uiChunk, 8);
+ uiVal = uiVal - (uiChunk << ucZeros);
+ }
+
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, (IMG_UINT8) uiVal, ucZeros);
+}
+
+
+static void lnc__generate_se(
+ MTX_HEADER_PARAMS *mtx_hdr,
+ MTX_HEADER_ELEMENT **elt_p,
+ int iVal)
+{
+ IMG_UINT32 uiCodeNum;
+
+ if (iVal > 0)
+ uiCodeNum = (IMG_UINT32)(iVal + iVal - 1);
+ else
+ uiCodeNum = (IMG_UINT32)(-iVal - iVal);
+
+ lnc__generate_ue(mtx_hdr, elt_p, uiCodeNum);
+}
+
+
+static void lnc__insert_element_token(
+ MTX_HEADER_PARAMS *mtx_hdr,
+ MTX_HEADER_ELEMENT **elt_p,
+ HEADER_ELEMENT_TYPE Token)
+{
+ IMG_UINT8 Offset;
+ IMG_UINT8 *P;
+
+ if (mtx_hdr->Elements != ELEMENTS_EMPTY) {
+ if (elt_p[mtx_hdr->Elements]->Element_Type == ELEMENT_STARTCODE_RAWDATA
+ || elt_p[mtx_hdr->Elements]->Element_Type == ELEMENT_RAWDATA) {
+ /*Add a new element aligned to word boundary
+ *Find RAWBit size in bytes (rounded to word boundary))
+ */
+
+ /* NumberofRawbits (excluding size of bit count field)+ size of the bitcount field */
+ Offset = elt_p[mtx_hdr->Elements]->Size + 8 + 31;
+ Offset /= 32;/* Now contains rawbits size in words */
+ Offset += 1;/* Now contains rawbits+element_type size in words */
+ Offset *= 4;/* Convert to number of bytes (total size of structure in bytes, aligned to word boundary) */
+ } else {
+ Offset = 4;
+ }
+
+ mtx_hdr->Elements++;
+ P = (IMG_UINT8 *) elt_p[mtx_hdr->Elements-1];
+ P += Offset;
+ elt_p[mtx_hdr->Elements] = (MTX_HEADER_ELEMENT *) P;
+ } else
+ mtx_hdr->Elements = 0;
+
+ elt_p[mtx_hdr->Elements]->Element_Type = Token;
+ elt_p[mtx_hdr->Elements]->Size = 0;
+}
+
+/*
+ * Intermediary functions to build H264 headers
+ */
+static void lnc__H264_writebits_startcode_prefix_element(
+ MTX_HEADER_PARAMS *mtx_hdr,
+ MTX_HEADER_ELEMENT **elt_p,
+ IMG_UINT32 ByteSize)
+{
+ /* GENERATES THE FIRST ELEMENT OF THE H264_SEQUENCE_HEADER() STRUCTURE */
+ IMG_UINT32 Lp;
+
+ /*
+ * Byte aligned (bit 0)
+ * (3 bytes in slice header when slice is first in a picture
+ * without sequence/picture_header before picture
+ */
+
+ for (Lp = 0; Lp < ByteSize - 1; Lp++)
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 0, 8);
+
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 1, 8);
+
+ /* Byte aligned (bit 32 or 24) */
+ return;
+}
+
+static void lnc__H264_writebits_sequence_header0(
+ MTX_HEADER_PARAMS *mtx_hdr,
+ MTX_HEADER_ELEMENT **elt_p,
+ H264_SEQUENCE_HEADER_PARAMS *pSHParams)
+{
+ /* GENERATES THE FIRST ELEMENT OF THE H264_SEQUENCE_HEADER() STRUCTURE */
+
+ /* 4 Byte StartCodePrefix Pregenerated in: lnc__H264_writebits_startcode_prefix_element()
+ * Byte aligned (bit 32)
+ */
+ lnc__write_upto8bits_elements(
+ mtx_hdr,
+ elt_p, (0 << 7) |/* forbidden_zero_bit=0 */
+ (0x3 << 5) |/* nal_ref_idc=01 (may be 11) */
+ (7), /* nal_unit_type=00111 */
+ 8);
+
+
+ /* Byte aligned (bit 40)
+ * profile_idc = 8 bits = 66 for BP (PROFILE_IDC_BP), 77 for MP (PROFILE_IDC_MP)
+ */
+ lnc__write_upto8bits_elements(
+ mtx_hdr,
+ elt_p,
+ (pSHParams->ucProfile == SH_PROFILE_BP ? 66 : 77),
+ 8);
+
+ /* Byte aligned (bit 48) */
+ lnc__write_upto8bits_elements(
+ mtx_hdr,
+ elt_p,
+ (1 << 7) |/* constrain_set0_flag = 0 for MP, 1 for BP */
+ (1 << 6) |/* constrain_set1_flag = 0 for BP, 1 for MP */
+ (0 << 5) | /* constrain_set2_flag = always 0 in BP/MP */
+ ((pSHParams->ucLevel == SH_LEVEL_1B ? 1 : 0) << 4), /* constrain_set3_flag = 1 for level 1b, 0 for others */
+ /* reserved_zero_4bits = 0 */
+ 8);
+
+ /* Byte aligned (bit 56) */
+ lnc__write_upto8bits_elements(
+ mtx_hdr,
+ elt_p,
+ (IMG_UINT8)((pSHParams->ucLevel > 100) ? (pSHParams->ucLevel - 100) : pSHParams->ucLevel) ,
+ 8);/* level_idc (8 bits) = 11 for 1b, 10xlevel for others */
+
+ /* Byte aligned (bit 64) */
+ lnc__write_upto8bits_elements(
+ mtx_hdr, elt_p, (1 << 7) | /* seq_parameter_Set_id = 0 in Topaz -> ue(0)= 1b */
+ (2 << 4) | /* log2_max_frame_num_minus4 = 1 in Topaz -> ue(1)= 010b */
+ (1 << 3) | /* pic_order_cnt_type = 0 in Topaz -> ue(0)= 1b */
+ (3), /* log2_max_pic_order_cnt_Isb_minus4 = 2 in Topaz -> ue(2)= 011b */
+ 8);
+}
+
+static void lnc__H264_writebits_sequence_header1(
+ MTX_HEADER_PARAMS *mtx_hdr,
+ MTX_HEADER_ELEMENT **elt_p,
+ H264_SEQUENCE_HEADER_PARAMS *pSHParams,
+ H264_CROP_PARAMS *psCropParams)
+{
+ /* GENERATES THE SECOND, VARIABLE LENGTH, ELEMENT OF THE H264_SEQUENCE_HEADER() STRUCTURE
+ * ELEMENT BITCOUNT: xx
+ * pic_width_in_mbs_minus1: ue(v) from 10 to 44 (176 to 720 pixel per row)
+ */
+ /* max_num_ref_frames = 1 ue(1) = 010b */
+ lnc__generate_ue(mtx_hdr, elt_p, pSHParams->ucMax_num_ref_frames);
+ /* gaps_in_frame_num_value_allowed_Flag - (1 bit) - Not supported
+ * in Topaz (0) */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 0, 1);
+
+ lnc__generate_ue(mtx_hdr, elt_p, pSHParams->ucWidth_in_mbs_minus1);
+
+ /* pic_height_in_maps_units_minus1: ue(v) Value from 8 to 35 (144 to 576 pixels per column) */
+ lnc__generate_ue(mtx_hdr, elt_p, pSHParams->ucHeight_in_maps_units_minus1);
+
+ /* We don't know the alignment at this point, so will have to use bit writing functions */
+ lnc__write_upto8bits_elements(
+ mtx_hdr, elt_p,
+ (1 << 2) | /* frame_mb_only_flag (always 1) */
+ (1 << 1), /* direct_8x8_inference_flag=1 in Topaz */
+ 2);
+
+ if (psCropParams && psCropParams->bClip) {
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 1, 1);
+ lnc__generate_ue(mtx_hdr, elt_p, psCropParams->LeftCropOffset);
+ lnc__generate_ue(mtx_hdr, elt_p, psCropParams->RightCropOffset);
+ lnc__generate_ue(mtx_hdr, elt_p, psCropParams->TopCropOffset);
+ lnc__generate_ue(mtx_hdr, elt_p, psCropParams->BottomCropOffset);
+
+ } else {
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 0, 1);
+ }
+}
+
+
+static void lnc__H264_writebits_VUI_params(
+ MTX_HEADER_PARAMS *mtx_hdr,
+ MTX_HEADER_ELEMENT **elt_p,
+ H264_VUI_PARAMS *VUIParams)
+{
+ /* Builds VUI Params for the Sequence Header (only present in the 1st sequence of stream) */
+ lnc__write_upto8bits_elements(
+ mtx_hdr, elt_p,
+ (0 << 4) | /* aspect_ratio_info_present_flag = 0 in Topaz */
+ (0 << 3) | /* overscan_info_present_flag (1 bit) = 0 in Topaz */
+ (0 << 2) | /* video_signal_type_present_flag (1 bit) = 0 in Topaz */
+ (0 << 1) | /* chroma_loc_info_present_flag (1 bit) = 0 in Topaz */
+ (1),/* timing_info_present_flag (1 bit) = 1 in Topaz */
+ 5);
+
+ /* num_units_in_tick (32 bits) = 1 in Topaz */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 0, 8);
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 0, 8);
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 0, 8);
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 1, 8);
+
+ /* time_scale (32 bits) = frame rate */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 0, 8);
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 0, 8);
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 0, 8);
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, (IMG_UINT8) VUIParams->Time_Scale, 8);
+
+ /* fixed_frame_rate_flag (1 bit) = 1 in Topaz */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 1, 1);
+ /* nal_hrd_parameters_present_flag (1 bit) = 1 in Topaz */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 1, 1);
+
+ /** Definitions for nal_hrd_parameters() contained in VUI structure for Topaz
+ * cpb_cnt_minus1 ue(v) = 0 in Topaz = 1b
+ */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 1, 1);
+ /* bit_rate_scale (4 bits) = 0 in Topaz, cpb_size_scale (4 bits) = 0 in Topaz */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 2, 8);
+
+ /* bit_rate_value_minus1[0] ue(v) = (Bitrate/64)-1 [RANGE:0 to (2^32)-2] */
+ lnc__generate_ue(mtx_hdr, elt_p, VUIParams->bit_rate_value_minus1);
+ /* cpb_size_value_minus1[0] ue(v) = (CPB_Bits_Size/16)-1
+ * where CPB_Bits_Size = 1.5 * Bitrate [RANGE:0 to (2^32)-2]
+ */
+ lnc__generate_ue(mtx_hdr, elt_p, VUIParams->cbp_size_value_minus1);
+
+ /* cbr_flag[0] (1 bit) = 0 for VBR, 1 for CBR */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, VUIParams->CBR, 1);
+
+ lnc__write_upto8bits_elements(
+ mtx_hdr, elt_p,
+ VUIParams->initial_cpb_removal_delay_length_minus1,
+ 5); /* initial_cpb_removal_delay_length_minus1 (5 bits) = ??? */
+
+ lnc__write_upto8bits_elements(
+ mtx_hdr,
+ elt_p,
+ VUIParams->cpb_removal_delay_length_minus1,
+ 5); /* cpb_removal_delay_length_minus1 (5 bits) = ??? */
+
+ lnc__write_upto8bits_elements(
+ mtx_hdr, elt_p,
+ VUIParams->dpb_output_delay_length_minus1,
+ 5); /* dpb_output_delay_length_minus1 (5 bits) = ??? */
+
+ lnc__write_upto8bits_elements(
+ mtx_hdr,
+ elt_p,
+ VUIParams->time_offset_length,
+ 5); /* time_offst_length (5 bits) = ??? */
+
+ /* End of nal_hrd_parameters() */
+
+ lnc__write_upto8bits_elements(
+ mtx_hdr,
+ elt_p,
+ 0, 1);/* vcl_hrd_parameters_present_flag (1 bit) = 0 in Topaz */
+
+ /* if( nal_hrd_parameters_present_flag || vcl_hrd_parameters_present_flag )
+ * FIX for BRN23039
+ * low_delay_hrd_flag
+ */
+ lnc__write_upto8bits_elements(
+ mtx_hdr, elt_p,
+ 0, 1);/* low_delay_hrd_flag */
+
+
+ lnc__write_upto8bits_elements(
+ mtx_hdr, elt_p,
+ 0, 1);/* pic_struct_present_flag (1 bit) = 0 in Topaz */
+
+ lnc__write_upto8bits_elements(
+ mtx_hdr, elt_p,
+ 0, 1);/* bitstream_restriction_flag (1 bit) = 0 in Topaz */
+}
+
+static void lnc__H264_writebits_sequence_header2(
+ MTX_HEADER_PARAMS *mtx_hdr,
+ MTX_HEADER_ELEMENT **elt_p,
+ H264_SEQUENCE_HEADER_PARAMS *pSHParams)
+{
+ /* GENERATES THE THIRD ELEMENT OF THE H264_SEQUENCE_HEADER() STRUCTURE
+ * ELEMENT BITCOUNT: xx
+ */
+ IMG_UINT8 SBP;
+ lnc__write_upto8bits_elements(
+ mtx_hdr, elt_p,
+ (pSHParams->VUI_Params_Present),/* vui_parameters_present_flag (VUI only in 1st sequence of stream) */
+ 1);
+
+ if (pSHParams->VUI_Params_Present > 0)
+ lnc__H264_writebits_VUI_params(mtx_hdr, elt_p, &(pSHParams->VUI_Params));
+
+ /* Finally we need to align to the next byte
+ * We know the size of the data in the sequence header (no MTX variables)
+ * and start is byte aligned, so it's possible to add this field here rather than
+ * MTX ELEMENT_INSERTBYTEALIGN_H264 command.
+ */
+
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 1, 1);
+ SBP = (elt_p[mtx_hdr->Elements]->Size) & 7;
+
+ if (SBP > 0) lnc__write_upto8bits_elements(mtx_hdr, elt_p, 0, 8 - (SBP));
+}
+
+static void lnc__H264_writebits_picture_header0(
+ MTX_HEADER_PARAMS *mtx_hdr,
+ MTX_HEADER_ELEMENT **elt_p)
+{
+ /* GENERATES THE FIRST (STATIC) ELEMENT OF THE H264_PICTURE_HEADER() STRUCTURE
+ * ELEMENT BITCOUNT: 18
+ */
+
+ /* 4 Byte StartCodePrefix Pregenerated in: lnc__H264_writebits_startcode_prefix_element()
+ * Byte aligned (bit 32)
+ */
+ lnc__write_upto8bits_elements(
+ mtx_hdr,
+ elt_p, (0 << 7) | /* forbidden_zero_bit */
+ (1 << 5) | /* nal_ref_idc (2 bits) = 1 */
+ (8),/* nal_unit_tpye (5 bits) = 8 */
+ 8);
+
+ /* Byte aligned (bit 40) */
+ lnc__write_upto8bits_elements(
+ mtx_hdr,
+ elt_p,
+ (1 << 7) | /* pic_parameter_set_id ue(v) = 0 in Topaz */
+ (1 << 6) | /* seq_parameter_set_id ue(v) = 0 in Topaz */
+ (0 << 5) | /* entropy_coding_mode_flag (1 bit) 0 for CAVLC */
+ (0 << 4) | /* pic_order_present_flag (1 bit) = 0 */
+ (1 << 3) | /* num_slice_group_minus1 ue(v) = 0 in Topaz */
+ (1 << 2) | /* num_ref_idx_l0_active_minus1 ue(v) = 0 in Topaz */
+ (1 << 1) | /* num_ref_idx_l1_active_minus1 ue(v) = 0 in Topaz */
+ (0), /* weighted_pred_flag (1 bit) = 0 in Topaz */
+ 8);
+
+ /* Byte aligned (bit 48) */
+ lnc__write_upto8bits_elements(
+ mtx_hdr,
+ elt_p, 0,
+ 2);/* weighted_bipred_flag (2 bits) = 0 in Topaz */
+}
+
+static void lnc__H264_writebits_picture_header1(
+ MTX_HEADER_PARAMS *mtx_hdr,
+ MTX_HEADER_ELEMENT **elt_p)
+{
+ /* GENERATES THE SECOND ELEMENT OF THE H264_PICTURE_HEADER() STRUCTURE
+ * ELEMENT BITCOUNT: 5
+ */
+
+ /* The following field will be generated as a special case by MTX - so not here
+ * lnc__generate_se(mtx_hdr, pPHParams->pic_init_qp_minus26); // pic_int_qp_minus26 se(v) = -26 to 25 in Topaz
+ */
+ lnc__generate_se(mtx_hdr, elt_p, 0); /* pic_int_qs_minus26 se(v) = 0 in Topaz */
+ lnc__generate_se(mtx_hdr, elt_p, 0); /* chroma_qp_index_offset se(v) = 0 in Topaz */
+
+ lnc__write_upto8bits_elements(
+ mtx_hdr,
+ elt_p,
+ (1 << 2) | /* deblocking_filter_control_present_flag (1 bit) = 1 in Topaz */
+ (0 << 1) | /* constrained_intra_pred_Flag (1 bit) = 0 in Topaz */
+ (0), /* redundant_pic_cnt_present_flag (1 bit) = 0 in Topaz */
+ 3);
+
+ /* Byte align is done using an element command (MTX elements in this structure, we don't know it's size) */
+}
+
+
+static void lnc__H264_writebits_slice_header0(
+ MTX_HEADER_PARAMS *mtx_hdr,
+ MTX_HEADER_ELEMENT **elt_p,
+ H264_SLICE_HEADER_PARAMS *pSlHParams)
+{
+ /* GENERATES THE FIRST ELEMENT OF THE H264_SLICE_HEADER() STRUCTURE
+ * ELEMENT BITCOUNT: 8
+ *
+ * StartCodePrefix Pregenerated in: Build_H264_4Byte_StartCodePrefix_Element() (4 or 3 bytes)
+ * (3 bytes when slice is first in a picture without sequence/picture_header before picture
+ * Byte aligned (bit 32 or 24)
+ * NOTE: Slice_Type and Frame_Type are always the same, hence SliceFrame_Type
+ */
+ lnc__write_upto8bits_elements(
+ mtx_hdr, elt_p,
+ (0 << 7) |/* forbidden_zero_bit */
+ ((pSlHParams->SliceFrame_Type == SLHP_B_SLICEFRAME_TYPE ? 0 : 1) << 5) | /* nal_ref_idc (2 bits) = 0 for B-frame and 1 for I or P-frame */
+ ((pSlHParams->SliceFrame_Type == SLHP_IDR_SLICEFRAME_TYPE ? 5 : 1)),/* nal_unit_tpye (5 bits) = I-frame IDR, and 1 for rest */
+ 8);
+}
+
+
+static void lnc__H264_writebits_slice_header1(
+ MTX_HEADER_PARAMS *mtx_hdr,
+ MTX_HEADER_ELEMENT **elt_p,
+ H264_SLICE_HEADER_PARAMS *pSlHParams,
+ IMG_UINT16 uiIdrPicId)
+{
+ /* GENERATES THE SECOND ELEMENT OF THE H264_SLICE_HEADER() STRUCTURE
+ * The following is slice parameter set in BP/MP
+ */
+
+ /* first_mb_in_slice = First MB address in slice: ue(Range 0 - 1619) */
+ lnc__generate_ue(mtx_hdr, elt_p, (IMG_UINT32) pSlHParams->First_MB_Address);
+
+ lnc__generate_ue(
+ mtx_hdr, elt_p,
+ (IMG_UINT32)((pSlHParams->SliceFrame_Type == SLHP_IDR_SLICEFRAME_TYPE) ? SLHP_I_SLICEFRAME_TYPE : pSlHParams->SliceFrame_Type)); /* slice_type ue(v): 0 for P-slice, 1 for B-slice, 2 for I-slice */
+
+ /* kab: not clean change from IDR to intra, IDR should have separate flag */
+
+ lnc__write_upto8bits_elements(
+ mtx_hdr, elt_p,
+ (1 << 5) | /* pic_parameter_set_id, ue(v) = 0 (=1b) in Topaz */
+ pSlHParams->Frame_Num_DO,/* frame_num (5 bits) = frame nuo. in decoding order */
+ 6);
+
+ /* frame_mb_only_flag is always 1, so no need for field_pic_flag or bottom_field_flag */
+ if (pSlHParams->SliceFrame_Type == SLHP_IDR_SLICEFRAME_TYPE)
+ lnc__generate_ue(mtx_hdr, elt_p, uiIdrPicId);
+
+ /* kab: Idr_pic_id only for IDR, not nessesarely for all I pictures */
+
+ /* if (pic_order_cnt_type == 0) //Note: (pic_order_cnt_type always 0 in Topaz) */
+ lnc__write_upto8bits_elements(
+ mtx_hdr, elt_p,
+ pSlHParams->Picture_Num_DO,
+ 6); /* pic_order_cnt_lsb (6 bits) - picture no in display order */
+
+ if (pSlHParams->SliceFrame_Type == SLHP_B_SLICEFRAME_TYPE)
+ lnc__write_upto8bits_elements(
+ mtx_hdr,
+ elt_p,
+ 0,
+ 1);/* direct_spatial_mv_pred_flag (1 bit) = 0, spatial direct mode not supported in Topaz */
+
+ if (pSlHParams->SliceFrame_Type == SLHP_P_SLICEFRAME_TYPE || pSlHParams->SliceFrame_Type == SLHP_B_SLICEFRAME_TYPE)
+ lnc__write_upto8bits_elements(
+ mtx_hdr,
+ elt_p,
+ 0,
+ 1);/* num_ref_idx_active_override_flag (1 bit) = 0 in Topaz */
+
+ if (pSlHParams->SliceFrame_Type != SLHP_I_SLICEFRAME_TYPE &&
+ pSlHParams->SliceFrame_Type != SLHP_IDR_SLICEFRAME_TYPE) {
+ if (pSlHParams->bUsesLongTermRef) {
+ /* ref_pic_list_ordering_flag_IO (1 bit) = 1, L0
+ * reference picture ordering */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 1, 1);
+
+ /* modification_of_pic_nums_idc = 2 */
+ lnc__generate_ue(mtx_hdr, elt_p, 2);
+ /* long_term_pic_num = 0 */
+ lnc__generate_ue(mtx_hdr, elt_p, 0);
+ /* modification_of_pic_nums_idc = 3 */
+ lnc__generate_ue(mtx_hdr, elt_p, 3);
+ } else {
+ /* ref_pic_list_ordering_flag_IO (1 bit) = 0, no
+ * L0 reference picture ordering */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 0, 1);
+ }
+ }
+
+ if (pSlHParams->SliceFrame_Type == SLHP_B_SLICEFRAME_TYPE)
+ lnc__write_upto8bits_elements(
+ mtx_hdr,
+ elt_p,
+ 0,
+ 1); /* ref_pic_list_ordering_flag_I1 (1 bit) = 0, no L1 reference picture ordering in Topaz */
+
+ if (pSlHParams->SliceFrame_Type == SLHP_IDR_SLICEFRAME_TYPE) {
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 0, 1);/* no_output_of_prior_pics_flag (1 bit) = 0 */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, pSlHParams->bIsLongTermRef ? 1 : 0, 1);/* long_term_reference_flag (1 bit) */
+ } else if (pSlHParams->bIsLongTermRef) {
+ /* adaptive_ref_pic_marking_mode_flag (1 bit) = 1 */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 1, 1);
+ /* allow a single long-term reference */
+ /* memory_management_control_operation */
+ lnc__generate_ue(mtx_hdr, elt_p, 4);
+ /* max_long_term_frame_idx_plus1 */
+ lnc__generate_ue(mtx_hdr, elt_p, 1);
+ /* set current picture as the long-term reference */
+ /* memory_management_control_operation */
+ lnc__generate_ue(mtx_hdr, elt_p, 6);
+ /* long_term_frame_idx */
+ lnc__generate_ue(mtx_hdr, elt_p, 0);
+ /* END */
+ lnc__generate_ue(mtx_hdr, elt_p, 0);
+ } else {
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 0, 1);/* adaptive_ref_pic_marking_mode_flag (1 bit) = 0 */
+ }
+}
+
+
+static void lnc__H264_writebits_slice_header2(
+ MTX_HEADER_PARAMS *mtx_hdr,
+ MTX_HEADER_ELEMENT **elt_p,
+ H264_SLICE_HEADER_PARAMS *pSlHParams)
+{
+ /* GENERATES ELEMENT OF THE H264_SLICE_HEADER() STRUCTURE
+ * ELEMENT BITCOUNT: 11
+ */
+
+#if 0
+ /* Next field is generated on MTX with a special commnad (not ELEMENT_RAW) - so not defined here */
+
+ /* slice_qp_delta se(v) = SliceQPy - (pic_init_qp_minus26+26) */
+ /* pucHS=lnc__generate_se(pucHS, puiBitPos, pSlHParams->Slice_QP_Delta); */
+#endif
+
+ lnc__generate_ue(
+ mtx_hdr,
+ elt_p,
+ pSlHParams->Disable_Deblocking_Filter_Idc); /* disable_deblocking_filter_idc ue(v) = 2? */
+
+ if (pSlHParams->Disable_Deblocking_Filter_Idc != 1) {
+ lnc__generate_se(mtx_hdr, elt_p, 0); /* slice_alpha_c0_offset_div2 se(v) = 0 (1b) in Topaz */
+ lnc__generate_se(mtx_hdr, elt_p, 0); /* slice_beta_offset_div2 se(v) = 0 (1b) in Topaz */
+ }
+
+ /* num_slice_groups_minus1 ==0 in Topaz, so no slice_group_change_cycle field here
+ * no byte alignment at end of slice headers
+ */
+}
+
+
+
+static void lnc__H264_writebits_sequence_header(
+ MTX_HEADER_PARAMS *mtx_hdr,
+ MTX_HEADER_ELEMENT **elt_p,
+ H264_SEQUENCE_HEADER_PARAMS *pSHParams,
+ H264_CROP_PARAMS *psCropParams)
+{
+ lnc__insert_element_token(mtx_hdr, elt_p, ELEMENT_STARTCODE_RAWDATA);
+
+ lnc__H264_writebits_startcode_prefix_element(mtx_hdr, elt_p, 4);
+ lnc__H264_writebits_sequence_header0(mtx_hdr, elt_p, pSHParams);
+ lnc__H264_writebits_sequence_header1(mtx_hdr, elt_p, pSHParams, psCropParams);
+ lnc__H264_writebits_sequence_header2(mtx_hdr, elt_p, pSHParams);
+}
+
+
+static void lnc__H264_writebits_picture_header(
+ MTX_HEADER_PARAMS *mtx_hdr,
+ MTX_HEADER_ELEMENT **elt_p)
+{
+ /* Begin building the picture header element */
+#ifdef USESTATICWHEREPOSSIBLE
+ IMG_UINT32 *p;
+ p = (IMG_UINT32 *) mtx_hdr;
+ p[0] = 3;
+ p[1] = 0;
+ p[2] = 50;
+ p[3] = 13510657;
+ p[4] = 2;
+ p[5] = 1;
+ p[6] = 57349;
+ p[7] = 6;
+#else
+ lnc__insert_element_token(mtx_hdr, elt_p, ELEMENT_STARTCODE_RAWDATA);
+
+ lnc__H264_writebits_startcode_prefix_element(mtx_hdr, elt_p, 4);
+ lnc__H264_writebits_picture_header0(mtx_hdr, elt_p);
+
+ lnc__insert_element_token(mtx_hdr, elt_p, ELEMENT_QP); /* MTX fills this value in */
+
+ lnc__insert_element_token(mtx_hdr, elt_p, ELEMENT_RAWDATA);
+ lnc__H264_writebits_picture_header1(mtx_hdr, elt_p);
+
+ /* Tell MTX to insert the byte align field */
+ /* (we don't know final stream size for alignment at this point) */
+ lnc__insert_element_token(mtx_hdr, elt_p, ELEMENT_INSERTBYTEALIGN_H264);
+#endif
+
+}
+
+
+static void lnc__H264_writebits_slice_header(
+ MTX_HEADER_PARAMS *mtx_hdr,
+ MTX_HEADER_ELEMENT **elt_p,
+ H264_SLICE_HEADER_PARAMS *pSlHParams,
+ IMG_UINT16 uiIdrPicId)
+{
+#ifdef USESTATICWHEREPOSSIBLE
+ IMG_UINT32 *p;
+ p = (IMG_UINT32 *) mtx_hdr;
+
+ p[0] = p[1] = 0;
+ p[2] = 40;
+ if (pSlHParams->SliceFrame_Type == SLHP_B_SLICEFRAME_TYPE) p[3] = 257;
+ else if (pSlHParams->SliceFrame_Type == SLHP_IDR_SLICEFRAME_TYPE) p[3] = 9473;
+ else p[3] = 8449;
+#else
+ /* -- Begin building the picture header element */
+ lnc__insert_element_token(mtx_hdr, elt_p, ELEMENT_STARTCODE_RAWDATA);
+
+ lnc__H264_writebits_startcode_prefix_element(
+ mtx_hdr,
+ elt_p,
+ pSlHParams->Start_Code_Prefix_Size_Bytes); /* Can be 3 or 4 bytes - always 4 bytes in our implementations */
+ lnc__H264_writebits_slice_header0(mtx_hdr, elt_p, pSlHParams);
+#endif
+
+ lnc__H264_writebits_slice_header1(mtx_hdr, elt_p, pSlHParams, uiIdrPicId);
+ lnc__insert_element_token(mtx_hdr, elt_p, ELEMENT_SQP); //MTX fills this value in
+
+ lnc__insert_element_token(mtx_hdr, elt_p, ELEMENT_RAWDATA);
+ lnc__H264_writebits_slice_header2(mtx_hdr, elt_p, pSlHParams);
+
+ /* no byte alignment at end of slice headers */
+}
+
+
+static void lnc__H264_writebits_endofsequence_header(
+ MTX_HEADER_PARAMS *mtx_hdr,
+ MTX_HEADER_ELEMENT **elt_p)
+{
+ /* GENERATES THE FIRST ELEMENT OF THE H264_ENDOFSEQUENCE_HEADER() STRUCTURE */
+ lnc__insert_element_token(mtx_hdr, elt_p, ELEMENT_RAWDATA);
+
+ /* Byte aligned (bit 32) */
+ lnc__write_upto8bits_elements(
+ mtx_hdr,
+ elt_p,
+ (0 << 7) |/* forbidden_zero_bit=0 */
+ (0 << 5) |/* nal_ref_idc=0 for nal_unit_type=10 */
+ (10),/* nal_unit_type=10 */
+ 8);
+}
+
+
+static void lnc__H264_writebits_SEI_rbspheader(
+ MTX_HEADER_PARAMS *mtx_hdr,
+ MTX_HEADER_ELEMENT **elt_p,
+ IMG_UINT32 Initial_cpb_removal_delay)
+{
+ /* Byte aligned (bit 32) */
+ lnc__H264_writebits_startcode_prefix_element(
+ mtx_hdr, elt_p, 4);/* 32 bit start code prefix */
+
+ lnc__write_upto8bits_elements(
+ mtx_hdr,
+ elt_p,
+ (0 << 7) |/* forbidden_zero_bit */
+ (1 << 5) |/* nal_ref_idc (2 bits) = 1 */
+ (6),/* nal_unit_tpye (5 bits) = 6 (SEI packet) */
+ 8);
+
+ /* last_payload_type_byte (8 bits) = 0 for buffering period */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 0, 8);
+
+ /* last_payload_size_byte (8 bits) = 41 as SEI_message length is 41-bit */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 41, 8);
+
+ /* sequence_parameter_set_id ue(0) = 1b sequence_parameter_set_id=0 in Topaz */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 1, 1);
+
+ /* Initial_cpb_removal_delay (20 bits) x is initial cpb delay of each sequence */
+ lnc__write_upto32bits_elements(mtx_hdr, elt_p, Initial_cpb_removal_delay, 20);
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 0, 8);
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 1, 8);
+
+ /* Initial_cpb_removal_delay_offset (20 bits) 0x10101 (It won't be used in Topaz) */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 5, 4);
+
+ /* Tell MTX to insert the byte align field (we don't know final stream size for alignment at this point) */
+ lnc__insert_element_token(mtx_hdr, elt_p, ELEMENT_INSERTBYTEALIGN_H264);
+}
+
+
+static void lnc__H264_writebits_endofstream_header(
+ MTX_HEADER_PARAMS *mtx_hdr,
+ MTX_HEADER_ELEMENT **elt_p)
+{
+ /* GENERATES THE FIRST ELEMENT OF THE H264_ENDOFSTREAM_HEADER() STRUCTURE */
+ lnc__insert_element_token(mtx_hdr, elt_p, ELEMENT_RAWDATA);
+ /* Byte aligned (bit 32) */
+ lnc__write_upto8bits_elements(
+ mtx_hdr,
+ elt_p,
+ (0 << 7) |/* forbidden_zero_bit=0 */
+ (0 << 5) |/* nal_ref_idc=0 for nal_unit_type=11 */
+ (11),/* nal_unit_type=11 */
+ 8);
+}
+
+/*
+ * High level functions to call when a H264 header is required
+ */
+static void lnc__H264_getelements_skip_B_slice(
+ MTX_HEADER_PARAMS *mtx_hdr,
+ H264_SLICE_HEADER_PARAMS *pSlHParams,
+ IMG_UINT8 MB_No_In_Slice)
+{
+ /* Skipped P-Slice
+ * Ensure pSlHParams is filled with appropriate parameters for a P-slice
+ * Essential we initialise our header structures before building
+ */
+ MTX_HEADER_ELEMENT *This_Element;
+ MTX_HEADER_ELEMENT *elt_p[MAXNUMBERELEMENTS];
+ mtx_hdr->Elements = ELEMENTS_EMPTY;
+ This_Element = (MTX_HEADER_ELEMENT *) mtx_hdr->asElementStream;
+ elt_p[0] = This_Element;
+
+ /* Not sure if this will be required in the final spec
+ * lnc__insert_element_token(mtx_hdr, ELEMENT_STARTCOUNTER);
+ */
+ lnc__H264_writebits_slice_header(mtx_hdr, elt_p, pSlHParams, 0);
+
+ /* mb_skip_run = mb_no_in_slice */
+ lnc__generate_ue(mtx_hdr, elt_p, MB_No_In_Slice);
+
+ /* Tell MTX to insert the byte align field
+ * (we don't know final stream size for alignment at this point)
+ */
+ lnc__insert_element_token(mtx_hdr, elt_p, ELEMENT_INSERTBYTEALIGN_H264);
+
+ /* Has been used as an index, so need to add 1 for a valid element count */
+ mtx_hdr->Elements++;
+}
+
+static void lnc__H264_getelements_backward_zero_B_slice(
+ MTX_HEADER_PARAMS *mtx_hdr,
+ IMG_UINT8 MB_No_In_Slice)
+{
+ /* Skipped P-Slice
+ * Ensure pSlHParams is filled with appropriate parameters for a P-slice
+ * Essential we initialise our header structures before building
+ */
+ IMG_UINT8 Lp;
+ MTX_HEADER_ELEMENT *This_Element;
+ MTX_HEADER_ELEMENT *elt_p[MAXNUMBERELEMENTS];
+ mtx_hdr->Elements = ELEMENTS_EMPTY;
+ This_Element = (MTX_HEADER_ELEMENT *) mtx_hdr->asElementStream;
+ elt_p[0] = This_Element;
+
+ for (Lp = 0; Lp < MB_No_In_Slice; Lp++) {
+ /* mb_skip_run = ue(0) = 1b */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 1, 1);
+ /* backward_zero_B_mb() - all static */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 15, 5);
+ }
+
+ /* Tell MTX to insert the byte align field
+ * (we don't know final stream size for alignment at this point)
+ */
+ lnc__insert_element_token(
+ mtx_hdr,
+ elt_p,
+ ELEMENT_INSERTBYTEALIGN_H264);
+
+ /* Has been used as an index, so need to add 1 for a valid element count */
+ mtx_hdr->Elements++;
+}
+
+
+static void lnc__H264_getelements_rbsp_ATE_only(MTX_HEADER_PARAMS *mtx_hdr)
+{
+ /* Skipped P-Slice
+ * Ensure pSlHParams is filled with appropriate parameters for a P-slice
+ * Essential we initialise our header structures before building
+ */
+ MTX_HEADER_ELEMENT *This_Element;
+ MTX_HEADER_ELEMENT *elt_p[MAXNUMBERELEMENTS];
+ mtx_hdr->Elements = ELEMENTS_EMPTY;
+ This_Element = (MTX_HEADER_ELEMENT *) mtx_hdr->asElementStream;
+ elt_p[0] = This_Element;
+
+ /* Tell MTX to insert the byte align field
+ * (we don't know final stream size for alignment at this point)
+ */
+ lnc__insert_element_token(
+ mtx_hdr,
+ elt_p,
+ ELEMENT_INSERTBYTEALIGN_H264);
+
+ /* Has been used as an index, so need to add 1 for a valid element count */
+ mtx_hdr->Elements++;
+}
+
+
+static void lnc__H264_getelements_skip_P_slice(
+ MTX_HEADER_PARAMS *mtx_hdr,
+ H264_SLICE_HEADER_PARAMS *pSlHParams,
+ IMG_UINT32 MB_No_In_Slice)
+{
+ /* Skipped P-Slice
+ * Ensure pSlHParams is filled with appropriate parameters for a B-slice
+ * Essential we initialise our header structures before building
+ */
+ MTX_HEADER_ELEMENT *This_Element;
+ MTX_HEADER_ELEMENT *elt_p[MAXNUMBERELEMENTS];
+ mtx_hdr->Elements = ELEMENTS_EMPTY;
+ This_Element = (MTX_HEADER_ELEMENT *) mtx_hdr->asElementStream;
+ elt_p[0] = This_Element;
+
+ /* lnc__insert_element_token(mtx_hdr, ELEMENT_STARTCOUNTER); */
+ /* Not sure if this will be required in the final spec */
+ lnc__H264_writebits_slice_header(mtx_hdr, elt_p, pSlHParams, 0);
+ lnc__generate_ue(mtx_hdr, elt_p, MB_No_In_Slice); /* mb_skip_run = mb_no_in_slice */
+
+ /* Tell MTX to insert the byte align field (we don't know final stream size for alignment at this point) */
+ lnc__insert_element_token(mtx_hdr, elt_p, ELEMENT_INSERTBYTEALIGN_H264);
+ mtx_hdr->Elements++; /* Has been used as an index, so need to add 1 for a valid element count */
+}
+
+
+
+static void lnc__H264_getelements_sequence_header(
+ MTX_HEADER_PARAMS *mtx_hdr,
+ H264_SEQUENCE_HEADER_PARAMS *pSHParams,
+ H264_CROP_PARAMS *psCropParams)
+{
+ /* Builds a sequence, picture and slice header with from the given inputs parameters (start of new frame)
+ * Essential we initialise our header structures before building
+ */
+ MTX_HEADER_ELEMENT *This_Element;
+ MTX_HEADER_ELEMENT *elt_p[MAXNUMBERELEMENTS];
+ mtx_hdr->Elements = ELEMENTS_EMPTY;
+ This_Element = (MTX_HEADER_ELEMENT *) mtx_hdr->asElementStream;
+ elt_p[0] = This_Element;
+
+ lnc__H264_writebits_sequence_header(mtx_hdr, elt_p, pSHParams, psCropParams);
+ mtx_hdr->Elements++; /* Has been used as an index, so need to add 1 for a valid element count */
+}
+
+
+static void lnc__H264_getelements_picture_header(MTX_HEADER_PARAMS *mtx_hdr)
+{
+ /* Builds a sequence, picture and slice header with from the given inputs parameters (start of new frame)
+ * Essential we initialise our header structures before building
+ */
+ MTX_HEADER_ELEMENT *This_Element;
+ MTX_HEADER_ELEMENT *elt_p[MAXNUMBERELEMENTS];
+ mtx_hdr->Elements = ELEMENTS_EMPTY;
+ This_Element = (MTX_HEADER_ELEMENT *) mtx_hdr->asElementStream;
+ elt_p[0] = This_Element;
+
+ lnc__H264_writebits_picture_header(mtx_hdr, elt_p);
+ mtx_hdr->Elements++; //Has been used as an index, so need to add 1 for a valid element count
+}
+
+
+static void lnc__H264_getelements_slice_header(
+ MTX_HEADER_PARAMS *mtx_hdr,
+ H264_SLICE_HEADER_PARAMS *pSlHParams,
+ IMG_UINT16 uiIdrPicId)
+{
+ /* Builds a single slice header from the given parameters (mid frame)
+ * Essential we initialise our header structures before building
+ */
+ MTX_HEADER_ELEMENT *This_Element;
+ MTX_HEADER_ELEMENT *elt_p[MAXNUMBERELEMENTS];
+ mtx_hdr->Elements = ELEMENTS_EMPTY;
+ This_Element = (MTX_HEADER_ELEMENT *) mtx_hdr->asElementStream;
+ elt_p[0] = This_Element;
+
+ /* Not sure if this will be required in the final spec */
+ /* lnc__insert_element_token(mtx_hdr, ELEMENT_STARTCOUNTER);*/
+ lnc__H264_writebits_slice_header(mtx_hdr, elt_p, pSlHParams, uiIdrPicId);
+
+ mtx_hdr->Elements++; /* Has been used as an index, so need to add 1 for a valid element count */
+}
+
+
+static void lnc__H264_getelements_endofsequence_header(
+ MTX_HEADER_PARAMS *mtx_hdr)
+{
+ /* Builds a single endofsequence header from the given parameters (mid frame) */
+
+ /* Essential we initialise our header structures before building */
+ MTX_HEADER_ELEMENT *This_Element;
+ MTX_HEADER_ELEMENT *elt_p[MAXNUMBERELEMENTS];
+ mtx_hdr->Elements = ELEMENTS_EMPTY;
+ This_Element = (MTX_HEADER_ELEMENT *) mtx_hdr->asElementStream;
+ elt_p[0] = This_Element;
+
+ lnc__H264_writebits_endofsequence_header(mtx_hdr, elt_p);
+ mtx_hdr->Elements++; /* Has been used as an index, so need to add 1 for a valid element count */
+}
+
+
+
+static void lnc__H264_getelements_endofstream_header(MTX_HEADER_PARAMS *mtx_hdr)
+{
+ /* Builds a single endofstream header from the given parameters (mid frame) */
+
+ /* Essential we initialise our header structures before building */
+ MTX_HEADER_ELEMENT *This_Element;
+ MTX_HEADER_ELEMENT *elt_p[MAXNUMBERELEMENTS];
+ mtx_hdr->Elements = ELEMENTS_EMPTY;
+ This_Element = (MTX_HEADER_ELEMENT *) mtx_hdr->asElementStream;
+ elt_p[0] = This_Element;
+
+ lnc__H264_writebits_endofstream_header(mtx_hdr, elt_p);
+ mtx_hdr->Elements++; /* Has been used as an index, so need to add 1 for a valid element count */
+}
+
+static IMG_UINT8 Bits2Code(IMG_UINT32 CodeVal)
+{
+ IMG_UINT8 Bits = 32;
+ if (CodeVal == 0)
+ return 1;
+ while (!(CodeVal & 0x80000000)) {
+ CodeVal <<= 1;
+ Bits--;
+ }
+ return Bits;
+}
+
+/*
+ * Intermediary functions to build MPEG4 headers
+ */
+#define MATCH_TO_ENC
+
+
+static void lnc__MPEG4_writebits_sequence_header(
+ MTX_HEADER_PARAMS *mtx_hdr,
+ MTX_HEADER_ELEMENT **elt_p,
+ IMG_BOOL bBFrame,
+ MPEG4_PROFILE_TYPE bProfile,
+ IMG_UINT8 Profile_and_level_indication,
+ FIXED_VOP_TIME_TYPE sFixed_vop_time_increment,
+ IMG_UINT32 Picture_Width_Pixels,
+ IMG_UINT32 Picture_Height_Pixels,
+ VBVPARAMS *sVBVParams, IMG_UINT32 VopTimeResolution) /* Send NULL pointer if there are no VBVParams */
+{
+ /* Essential we insert the element before we try to fill it! */
+ lnc__insert_element_token(mtx_hdr, elt_p, ELEMENT_STARTCODE_RAWDATA);
+
+ /* visual_object_sequence_start_code = 32 Bits = 0x1B0 */
+ lnc__write_upto32bits_elements(mtx_hdr, elt_p, 432, 32);
+
+ /* profile_and_level_indication = 8 Bits = SP L0-L3 and SP L4-L5 are supported */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, Profile_and_level_indication, 8);
+
+ /* visual_object_start_code = 32 Bits = 0x1B5 */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 0, 8);
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 0, 8);
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 1, 8);
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 181, 8);
+
+ /* is_visual_object_identifier = 1 Bit = 0 */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 0, 1);
+
+ /* visual_object_type = 4 Bits = Video ID = 1 */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 1, 4);
+
+ /* video_signal_type = 1 Bit = 1 */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 0, 1);
+
+ /* byte_aligned_bits = 2 Bits = 01b (byte_aligned_bits is 2-bit stuffing bit field 01) */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 1, 2);
+
+ /* video_object_start_code = 32 Bits = 0x100 One VO only in a Topaz video stream */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 0, 8);
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 0, 8);
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 1, 8);
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 0, 8);
+
+ /* video_object_layer_start_code = 32 Bits = 0x120 One VOL only in a Topaz stream */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 0, 8);
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 0, 8);
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 1, 8);
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 32, 8);
+
+ /* random_accessible_vol = 1 Bit = 0 (P-Frame in GOP) */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 0, 1);
+
+ if (bProfile == SP) {
+ /* video_object_type_indication = 8 Bits = 0x01 for SP */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 1, 8);
+#ifndef MATCH_TO_ENC
+ /* is_object_layer_identifier = 1 Bit = 0 for SP */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 0, 1);
+#else
+ /* to match the encoder */
+
+ /* is_object_layer_identifier = 1 Bit */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 1, 1);
+
+ /* video_object_layer_verid = 4 Bits */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 1, 4);
+
+ /* video_object_layer_priority = 3 Bits */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 1, 3); // 0 is reserved...
+#endif
+ } else {
+ /* video_object_type_indication = 8 Bits = 0x11 for ASP */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 3, 8);
+
+ /* is_object_layer_identifier = 1 Bit = 1 for ASP */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 1, 1);
+
+ /* video_object_layer_verid = 4 Bits = 5 is for ASP */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 5, 4);
+
+ /* video_object_layer_priority = 3 Bits = 1 (Highest priority) */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 1, 3);
+ }
+
+ /* aspect_ratio_info = 4 Bits =0x1 (Square pixel) */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 1, 4);
+#ifndef MATCH_TO_ENC
+ /* vol_control_parameters = 1 Bit = 1 (Always send VOL control parameters) */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 1, 1);
+#else
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 0, 1);
+
+#endif
+
+#ifndef MATCH_TO_ENC
+ /* chroma_format = 2 Bits = 01b (4:2:0) */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 1, 2);
+
+ /* low_delay = 1 Bit = 0 with B-frame and 1 without B-frame */
+ if (bBFrame)
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 0, 1);
+ else
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 1, 1);
+
+ /* vbv_parameters = 1 Bit =0/1 */
+ if (sVBVParams) {
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 1, 1);
+
+ /* For recording, only send vbv parameters in 1st sequence header.
+ * For video phone, it should be sent more often, such as once per sequence
+ */
+ lnc__write_upto32bits_elements(
+ mtx_hdr,
+ elt_p,
+ sVBVParams->First_half_bit_rate,
+ 15); /* first_half_bit_rate */
+
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 1, 1);/* Marker Bit = 1 */
+ lnc__write_upto32bits_elements(
+ mtx_hdr,
+ elt_p,
+ sVBVParams->Latter_half_bit_rate,
+ 15); /* latter_half_bit_rate */
+
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 1, 1);/* Marker Bit = 1 */
+ lnc__write_upto32bits_elements(
+ mtx_hdr,
+ elt_p,
+ sVBVParams->First_half_vbv_buffer_size,
+ 15);/* first_half_vbv_buffer_size */
+
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 1, 1); /* Marker Bit = 1 */
+ lnc__write_upto32bits_elements(
+ mtx_hdr, elt_p,
+ sVBVParams->Latter_half_vbv_buffer_size,
+ 15); /* latter_half_vbv_buffer_size */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 1, 1);/* Marker Bit = 1 */
+ lnc__write_upto32bits_elements(
+ mtx_hdr,
+ elt_p,
+ sVBVParams->First_half_vbv_occupancy,
+ 15); /* first_half_vbv_occupancy */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 1, 1);/* Marker Bit = 1 */
+ lnc__write_upto32bits_elements(
+ mtx_hdr,
+ elt_p,
+ sVBVParams->Latter_half_vbv_occupancy,
+ 15); /* latter_half_vbv_occupancy */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 1, 1);/* Marker Bit = 1 */
+ } else
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 0, 1); /* No vbv parameters present */
+#endif
+ /* video_object_layer_shape = 2 Bits = 00b Rectangular shape */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 0, 2);
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 1, 1); /* Marker Bit = 1 */
+
+ /* vop_time_increment_solution = 16 Bits */
+ lnc__write_upto32bits_elements(mtx_hdr, elt_p, VopTimeResolution, 16);
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 1, 1); /* Marker Bit = 1 */
+
+#ifndef MATCH_TO_ENC
+ /* fixed_vop_rate = 1 Bits = 1 Always fixed frame rate */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 1, 1);
+
+ /* fixed_vop_time_increment = Variable number of bits based on the time increment resolution. */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 1, Bits2Code(VopTimeResolution - 1));
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 1, 1); /* Marker Bit = 1 */
+#else
+ /* fixed_vop_rate = 1 Bits = 0 */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 0, 1);
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 1, 1); /* Marker Bit = 1 */
+
+#endif
+ /* video_object_layer_width = 13 Bits Picture width in pixel units */
+ lnc__write_upto32bits_elements(mtx_hdr, elt_p, Picture_Width_Pixels, 13);
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 1, 1); /* Marker Bit = 1 */
+
+ /* video_object_layer_height = 13 Bits Picture height in pixel units */
+ lnc__write_upto32bits_elements(mtx_hdr, elt_p, Picture_Height_Pixels, 13);
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 1, 1); /* Marker Bit = 1 */
+
+ /* interlaced = 1 Bit = 0 Topaz only encodes progressive frames */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 0, 1);
+
+ /* obmc_disable = 1 Bit = 1 No overlapped MC in Topaz */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 1, 1);
+
+ /* sprite_enable = 1 Bit = 0 Not use sprite in Topaz */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 0, 1);
+
+ /* not_8_bit = 1 Bit = 0 8-bit video in Topaz */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 0, 1);
+
+ /* quant_type = 1 Bit = 0 2nd quantization method in Topaz */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 0, 1);
+
+ if (bProfile == ASP) {
+ /* quarter_sample = 1 Bit = 0 No ¼-pel MC in Topaz */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 0, 1);
+ }
+
+ /* complexity_estimation_disable = 1 Bit = 1 No complexity estimation in Topaz */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 1, 1);
+#ifndef MATCH_TO_ENC
+
+ /* resync_marker_disable = 1 Bit = 0 Always enable resync marker in Topaz */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 0, 1);
+#else
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 1, 1);
+#endif
+ /* data_partitioned = 1 Bit = 0 No data partitioning in Topaz */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 0, 1);
+
+ if (bProfile == ASP) {
+ /* newpred_enable = 1 Bit = 0 No newpred mode in SP/ASP */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 0, 1);
+ /* reduced_vop_resolution_enable=1 Bit = 0 No reduced resolution frame in SP/ASP */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 0, 1);
+ }
+
+ /* scalability = 1 Bit = 0 No scalability in SP/ASP */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 0, 1);
+
+ /* byte_aligned_bits */
+
+ /* Tell MTX to insert the byte align field
+ * (we don't know final stream size for alignment at this point)
+ */
+ lnc__insert_element_token(
+ mtx_hdr,
+ elt_p,
+ ELEMENT_INSERTBYTEALIGN_MPG4);
+
+ return;
+}
+
+
+/* Utility function */
+/*
+ IMG_UINT8 Bits2Code(IMG_UINT32 CodeVal)
+ {
+ IMG_UINT8 Bits=32;
+ if(CodeVal==0)
+ return 1;
+ while(!(CodeVal & 0x80000000))
+ {
+ CodeVal<<=1;
+ Bits--;
+ }
+ return Bits;
+ }
+*/
+
+/* MPEG 4 VOP (Picture) Header */
+static void lnc__MPEG4_writebits_VOP_header(
+ MTX_HEADER_PARAMS *mtx_hdr,
+ MTX_HEADER_ELEMENT **elt_p,
+ IMG_BOOL bIsVOP_coded,
+ IMG_UINT8 VOP_time_increment,
+ SEARCH_RANGE_TYPE sSearch_range,
+ VOP_CODING_TYPE sVopCodingType,
+ IMG_UINT32 VopTimeResolution)
+{
+ IMG_BOOL bIsSyncPoint;
+ /* Essential we insert the element before we try to fill it! */
+ lnc__insert_element_token(mtx_hdr, elt_p, ELEMENT_STARTCODE_RAWDATA);
+
+ /* visual_object_sequence_start_code = 32 Bits = 0x1B6 */
+ lnc__write_upto32bits_elements(mtx_hdr, elt_p, 438, 32);
+
+ /* vop_coding_type = 2 Bits = 0 for I-frame and 1 for P-frame */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, sVopCodingType, 2);
+ bIsSyncPoint = (VOP_time_increment > 1) && ((VOP_time_increment) % VopTimeResolution == 0);
+
+#ifndef MATCH_TO_ENC
+ /* modulo_time_base = 1 Bit = 0 As at least 1 synchronization point (I-frame) per second in Topaz */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 0, 1);
+#else
+
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, bIsSyncPoint ? 2 : 0 , bIsSyncPoint ? 2 : 1);
+
+#endif
+
+ /* marker_bit = 1 Bits = 1 */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 1, 1);
+
+#ifndef MATCH_TO_ENC
+ /* vop_time_increment = Variable bits based on resolution
+ * = x Reset to 0 at I-frame and plus fixed_vop_time_increment each frame
+ */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, VOP_time_increment, 5);
+#else
+ /* will chrash here... */
+ lnc__write_upto8bits_elements(
+ mtx_hdr, elt_p,
+ (VOP_time_increment) % VopTimeResolution,
+ Bits2Code(VopTimeResolution - 1));
+
+#endif
+ /* marker_bit = 1 Bit = 1 */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 1, 1);
+
+ if (!bIsVOP_coded) {
+ /* vop_coded = 1 Bit = 0 for skipped frame */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 0, 1);
+
+ /* byte_aligned_bits (skipped pictures are byte aligned) */
+ /* Tell MTX to insert the byte align field (we don't know final stream size for alignment at this point)
+ * End of VOP - skipped picture
+ */
+ lnc__insert_element_token(mtx_hdr, elt_p, ELEMENT_INSERTBYTEALIGN_MPG4);
+ } else {
+ /* vop_coded = 1 Bit = 1 for normal coded frame */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 1, 1);
+
+ if (sVopCodingType == P_FRAME) {
+ /* vop_rounding_type = 1 Bit = 0 vop_rounding_type is 0 in Topaz */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 0, 1);
+ }
+
+ /* intra_dc_vlc_thr = 3 Bits = 0 Use intra DC VLC in Topaz */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 0, 3);
+
+ /* vop_quant = 5 Bits = x 5-bit frame Q_scale from rate control - GENERATED BY MTX */
+ /* lnc__write_upto8bits_elements(mtx_hdr, elt_p, Frame_Q_scale, 5); */
+ lnc__insert_element_token(mtx_hdr, elt_p, ELEMENT_FRAMEQSCALE);
+
+ if (sVopCodingType == P_FRAME) {
+ /* vop_fcode_forward = 3 bits = 2 for +/-32 and 3 for +/-64 search range */
+ lnc__insert_element_token(mtx_hdr, elt_p, ELEMENT_RAWDATA);
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, sSearch_range, 3);
+ }
+
+ /*
+ **** THE FINAL PART OF VOP STRUCTURE CAN'T BE GENERATED HERE
+ lnc__insert_element_token(mtx_hdr, elt_p, ELEMENT_RAWDATA);
+ video_packet_data ( ) = 1st VP that doesn’t have the VP header
+
+ while (nextbits_bytealigned ( ) == resync_marker)
+ {
+ video_packet _header( )
+ video_packet _data( ) All MB in the slice
+ }
+ */
+ }
+}
+
+
+/* MPEG 4 Video Packet (Slice) Header */
+static void lnc__MPEG4_writebits_videopacket_header(
+ MTX_HEADER_PARAMS *mtx_hdr,
+ MTX_HEADER_ELEMENT **elt_p,
+ VOP_CODING_TYPE eVop_Coding_Type,
+ IMG_UINT8 Fcode,
+ IMG_UINT32 MBNumber,
+ IMG_UINT32 MBNumberlength,
+ IMG_BOOL bHeader_Extension_Code,
+ IMG_UINT8 VOP_Time_Increment,
+ SEARCH_RANGE_TYPE sSearch_range)
+{
+ /* Essential we insert the element before we try to fill it! */
+ lnc__insert_element_token(mtx_hdr, elt_p, ELEMENT_RAWDATA);
+
+ if (eVop_Coding_Type == I_FRAME) {
+ /* resync_marker = 17 bit =0x1 17-bit for I-frame */
+ lnc__write_upto32bits_elements(mtx_hdr, elt_p, 1, 17);
+ } else {
+ /* resync_marker = 17 bit =0x1 (16+fcode) bits for P-frame */
+ lnc__write_upto32bits_elements(mtx_hdr, elt_p, 1, 16 + Fcode);
+ }
+
+ /* macroblock_number = 1-14 bits = ?????? */
+ lnc__write_upto32bits_elements(mtx_hdr, elt_p, MBNumber, MBNumberlength);
+
+ /* quant_scale = 5 bits =1-32 VP (Slice) Q_scale
+ * lnc__write_upto8bits_elements(mtx_hdr, elt_p, VP_Slice_Q_Scale, 5);
+ */
+ lnc__insert_element_token(
+ mtx_hdr, elt_p,
+ ELEMENT_SLICEQSCALE); /* Insert token to tell MTX to insert rate-control value */
+
+ lnc__insert_element_token(mtx_hdr, elt_p, ELEMENT_RAWDATA); /* Begin writing rawdata again */
+
+ if (bHeader_Extension_Code) {
+ /* header_extension_code = 1bit = 1 picture header parameters are repeated */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 0, 1);
+
+ /* modulo_time_base = 1 bit = 0 The same as it is in the current picture header */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 0, 1);
+
+ /* marker_bit = 1 bit = 1 */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 1, 1);
+
+ /* vop_time_increment = 5 bits = 0-30 The same as it is in the current picture header */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, VOP_Time_Increment, 5);
+
+ /* marker_bit = 1 bit = 1 */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 1, 1);
+
+ /* vop_coding_type= 2 bits = 0/1 The same as it is in the current picture header */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, eVop_Coding_Type, 2);
+
+ /* intra_dc_vlc_thr = 3 bits = 0 The same as it is in the current picture header */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 0, 3);
+
+ if (eVop_Coding_Type == P_FRAME) {
+ /* vop_fcode_forward = 3 bits = 2/3 The same as it is in the current picture header */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, sSearch_range, 3);
+ }
+ } else {
+ /* header_extension_code = 1 bits =0 picture header parameters are NOT repeated */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 0, 1);
+ }
+}
+
+/*
+ * High level functions to call when a MPEG4 header is required - HOST ROUTINES
+ */
+static void lnc__MPEG4_getelements_sequence_header(
+ MTX_HEADER_PARAMS *mtx_hdr,
+ IMG_BOOL bBFrame,
+ MPEG4_PROFILE_TYPE sProfile,
+ IMG_UINT8 Profile_and_level_indication,
+ FIXED_VOP_TIME_TYPE sFixed_vop_time_increment,
+ IMG_UINT32 Picture_Width_Pixels,
+ IMG_UINT32 Picture_Height_Pixels,
+ VBVPARAMS *sVBVParams,
+ IMG_UINT32 VopTimeResolution) /* NULL pointer if there are no VBVParams */
+{
+ /* Builds a single MPEG4 video sequence header from the given parameters */
+
+ /* Essential we initialise our header structures before building */
+ MTX_HEADER_ELEMENT *This_Element;
+ MTX_HEADER_ELEMENT *elt_p[MAXNUMBERELEMENTS];
+ mtx_hdr->Elements = ELEMENTS_EMPTY;
+ This_Element = (MTX_HEADER_ELEMENT *) mtx_hdr->asElementStream;
+ elt_p[0] = This_Element;
+
+ lnc__MPEG4_writebits_sequence_header(
+ mtx_hdr,
+ elt_p,
+ bBFrame, sProfile,
+ Profile_and_level_indication,
+ sFixed_vop_time_increment,
+ Picture_Width_Pixels,
+ Picture_Height_Pixels,
+ sVBVParams, VopTimeResolution);
+
+ mtx_hdr->Elements++; /* Has been used as an index, so need to add 1 for a valid element count */
+}
+
+
+/* MPEG 4 VOP (Picture) Header */
+static void lnc__MPEG4_getelements_VOP_header(
+ MTX_HEADER_PARAMS *mtx_hdr,
+ IMG_BOOL bIsVOP_coded,
+ IMG_UINT8 VOP_time_increment,
+ SEARCH_RANGE_TYPE sSearch_range,
+ VOP_CODING_TYPE sVopCodingType,
+ IMG_UINT32 VopTimeResolution)
+{
+ /* Builds a single MPEG4 VOP (picture) header from the given parameters */
+
+ /* Essential we initialise our header structures before building */
+ MTX_HEADER_ELEMENT *This_Element;
+ MTX_HEADER_ELEMENT *elt_p[MAXNUMBERELEMENTS];
+ mtx_hdr->Elements = ELEMENTS_EMPTY;
+ This_Element = (MTX_HEADER_ELEMENT *) mtx_hdr->asElementStream;
+ elt_p[0] = This_Element;
+
+ /* Frame QScale no longer written here as it is inserted by MTX later
+ * (add as parameter to MTX_Send_Elements_To_VLC)
+ */
+ lnc__MPEG4_writebits_VOP_header(
+ mtx_hdr, elt_p, bIsVOP_coded,
+ VOP_time_increment,
+ sSearch_range,
+ sVopCodingType, VopTimeResolution);
+
+ mtx_hdr->Elements++; /* Has been used as an index, so need to add 1 for a valid element count */
+}
+
+
+static void lnc_MPEG4_getelements_video_packet_header(
+ MTX_HEADER_PARAMS *mtx_hdr,
+ VOP_CODING_TYPE eVop_Coding_Type,
+ IMG_UINT8 Fcode,
+ IMG_UINT32 MBNumber,
+ IMG_UINT32 MBNumberlength,
+ IMG_BOOL bHeader_Extension_Code,
+ IMG_UINT8 VOP_Time_Increment,
+ SEARCH_RANGE_TYPE sSearch_range)
+{
+ /* Builds a single MPEG4 video packet (slice) header from the given parameters */
+
+ /* Essential we initialise our header structures before building */
+ MTX_HEADER_ELEMENT *This_Element;
+ MTX_HEADER_ELEMENT *elt_p[MAXNUMBERELEMENTS];
+ mtx_hdr->Elements = ELEMENTS_EMPTY;
+ This_Element = (MTX_HEADER_ELEMENT *) mtx_hdr->asElementStream;
+ elt_p[0] = This_Element;
+
+ /* Slice QScale no longer written here as it is inserted by MTX later
+ * (add as parameter when sending to VLC)
+ */
+ lnc__MPEG4_writebits_videopacket_header(
+ mtx_hdr, elt_p, eVop_Coding_Type,
+ Fcode, MBNumber, MBNumberlength,
+ bHeader_Extension_Code, VOP_Time_Increment, sSearch_range);
+
+ mtx_hdr->Elements++; /* Has been used as an index, so need to add 1 for a valid element count */
+}
+
+/*
+ * Intermediary functions to build H263 headers
+ */
+static void H263_writebits_VideoSequenceHeader(
+ MTX_HEADER_PARAMS *mtx_hdr,
+ MTX_HEADER_ELEMENT **elt_p,
+ IMG_UINT8 Profile_and_level_indication)
+{
+ /* Essential we insert the element before we try to fill it! */
+ lnc__insert_element_token(mtx_hdr, elt_p, ELEMENT_STARTCODE_RAWDATA);
+
+ /* visual_object_sequence_start_code = 32 Bits = 0x1B0 */
+ lnc__write_upto32bits_elements(mtx_hdr, elt_p, 432, 32);
+
+ /* profile_and_level_indication = 8 Bits = x SP L0-L3 and SP L4-L5 are supported */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, Profile_and_level_indication, 8);
+
+ /* visual_object_start_code = 32 Bits = 0x1B5 */
+
+ /* 437 too large for the lnc__write_upto32bits_elements function */
+ lnc__write_upto32bits_elements(mtx_hdr, elt_p, 437, 32);
+
+ /* is_visual_object_identifier = 1 Bit = 0 */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 0, 1);
+
+ /* is_visual_object_type = 4 Bits = 1 Video ID */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 1, 4);
+
+ /* video_signal_type = 1 Bit = 0 */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 0, 1);
+
+ /* byte_aligned_bits = 2 Bits = 01b byte_aligned_bits is 2-bit stuffing bit field 01 */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 1, 2);
+
+ /* video_object_start_code =32 Bits = 0x100 One VO only in a Topaz video stream */
+ lnc__write_upto32bits_elements(mtx_hdr, elt_p, 256, 32);
+
+ return;
+}
+
+
+static void H263_writebits_VideoPictureHeader(
+ MTX_HEADER_PARAMS *mtx_hdr,
+ MTX_HEADER_ELEMENT **elt_p,
+ IMG_UINT8 Temporal_Ref,
+ H263_PICTURE_CODING_TYPE PictureCodingType,
+ //IMG_UINT8 Q_Scale,
+ H263_SOURCE_FORMAT_TYPE SourceFormatType,
+ IMG_UINT8 FrameRate,
+ IMG_UINT16 PictureWidth,
+ IMG_UINT16 PictureHeight,
+ IMG_UINT8 *OptionalCustomPCF)
+{
+ IMG_UINT8 UFEP;
+
+#ifdef USESTATICWHEREPOSSIBLE
+ IMG_UINT16 *p;
+
+ p = (IMG_UINT16 *) mtx_hdr;
+ p[0] = p[1] = p[2] = p[3] = 0;
+ p[4] = 38;
+ p[5] = 32768 | ((Temporal_Ref >> 6) << 8);
+ p[6] = ((Temporal_Ref & 63) << 2) | 2 | (SourceFormatType << 10);
+#else
+
+ /* Essential we insert the element before we try to fill it! */
+ lnc__insert_element_token(mtx_hdr, elt_p, ELEMENT_STARTCODE_RAWDATA);
+
+ /* short_video_start_marker = 22 Bits = 0x20 Picture start code */
+ lnc__write_upto32bits_elements(mtx_hdr, elt_p, 32, 22);
+
+ /* temporal_reference = 8 Bits = 0-255 Each picture increased by 1 */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, Temporal_Ref, 8);
+
+ /* marker_bit = 1 Bit = 1 */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 1, 1);
+
+ /* zero_bit = 1 Bits = 0 */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 0, 1);
+
+ /* split_screen_indicator = 1 Bits = 0 No direct effect on encoding of picture */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 0, 1);
+
+ /* document_camera_indicator= 1 Bits = 0 No direct effect on encoding of picture */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 0, 1);
+
+ /* full_picture_freeze_release=1 Bits = 0 No direct effect on encoding of picture */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 0, 1);
+
+ /* source_format = 3 Bits = 1-4 See note */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, SourceFormatType, 3);
+#endif
+
+
+ /*Write optional Custom Picture Clock Frequency(OCPCF)*/
+ if (FrameRate == 30 || FrameRate == 0/* unspecified */) {
+ *OptionalCustomPCF = 0; // 0 for CIF PCF
+ } else {
+ *OptionalCustomPCF = 1; //1 for Custom PCF
+ }
+
+
+ if (SourceFormatType != 7) {
+ /* picture_coding_type = 1 Bit = 0/1 0 for I-frame and 1 for P-frame */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, PictureCodingType, 1);
+
+ /* four_reserved_zero_bits = 4 Bits = 0 */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 0, 4);
+ } else {
+ static IMG_UINT8 RTYPE = 0;
+
+ // if I- Frame set Update Full Extended PTYPE to true
+ if ((PictureCodingType == I_FRAME) || (SourceFormatType == 7) || *OptionalCustomPCF) {
+ UFEP = 1;
+ } else {
+ UFEP = 0;
+
+ // RTYPE can be set to 1 only in case of P or PB picture.
+ //RTYPE ^= 1;
+ }
+
+ // write UFEP of 3 bits.
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, UFEP, 3);
+
+ // if UFEP was present( if it was 1).
+ // Optional part of PPTYPE.
+ if (UFEP == 1) {
+ // write souce_format_optional. value = 110 (custom source format).
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 6, 3);
+ /* souce_format_optional */
+
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, *OptionalCustomPCF , 1);
+ lnc__write_upto32bits_elements(mtx_hdr, elt_p, 0, 10);
+ /* 10 reserve bits */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 8, 4);
+ /* 4 reserve bits */
+ }
+ /* picture_coding_type = 1 Bit = 0/1 0 for I-frame and 1 for P-frame */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, PictureCodingType, 3);
+
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 0, 2);
+ /* two_reserve_bits, rounding_type, two_reserve_bits marker_bit CPM */
+
+ // Rounding Type (RTYPE) (1 for P Picture, 0 for all other Picture frames.
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, RTYPE, 1);
+ //2 reserve bits
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 0, 2);
+ // - 1 (ON) to prevent start code emulation.
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 1 , 1);
+ // CPM immediately follows the PPTYPE part of the header.
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 0 , 1);
+
+ if (UFEP == 1) {
+ IMG_UINT16 ui16PWI, ui16PHI;
+
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 1, 4);
+ /* aspect ratio */
+ //PictureWidth --;
+ //lnc__write_upto8bits_elements(mtx_hdr, elt_p, (IMG_UINT8)(PictureWidth >> 8), 1);
+ //lnc__write_upto8bits_elements(mtx_hdr, elt_p, (IMG_UINT8)(PictureWidth & 0xFF), 8);
+
+ ui16PWI = (PictureWidth >> 2) - 1;
+ lnc__write_upto32bits_elements(mtx_hdr, elt_p, (IMG_UINT8)ui16PWI, 9);
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 1, 1);
+ /* marker_bit = 1 Bit = 1 */
+ //lnc__write_upto8bits_elements(mtx_hdr, elt_p, (IMG_UINT8)(PictureHeigth >> 8), 1);
+ //lnc__write_upto8bits_elements(mtx_hdr, elt_p, (IMG_UINT8)(PictureHeigth & 0xFF), 8);
+ /* good up to that point */
+ ui16PHI = PictureHeight >> 2;
+ lnc__write_upto32bits_elements(mtx_hdr, elt_p, (IMG_UINT8)ui16PHI, 9);
+
+ /* lnc__write_upto8bits_elements(mtx_hdr, elt_p, 1, 1); */
+ /* marker_bit = 1 Bit = 1 */
+ /* just checking */
+ if (*OptionalCustomPCF == 1) {
+ //IMG_UINT8 CPCFC;
+ //CPCFC = (IMG_UINT8)(1800/(IMG_UINT16)FrameRate);
+ /* you can use the table for division */
+ //CPCFC <<= 1; /* for Clock Conversion Code */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 1, 1);
+ // Clock Divisor : 7 bits The natural binary representation of the value of the clock divisor.
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 1800000 / (FrameRate * 1000), 7);
+ }
+ }
+ if (*OptionalCustomPCF == 1) {
+ IMG_UINT8 ui8ETR; // extended Temporal reference
+ // Two MSBs of 10 bit temporal_reference : value 0
+ ui8ETR = Temporal_Ref >> 8;
+
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, ui8ETR, 2);
+ /* Two MSBs of temporal_reference */
+ }
+ }
+ /* vop_quant = 5 Bits = x 5-bit frame Q_scale from rate control - GENERATED BY MTX */
+ /* lnc__write_upto8bits_elements(mtx_hdr, elt_p, Q_Scale, 5); */
+
+ /* Insert token to tell MTX to insert rate-control value
+ * (QScale is sent as an argument in MTX_Send_Elements_To_VLC(&MTX_Header, FrameQScale))
+ */
+ lnc__insert_element_token(mtx_hdr, elt_p, ELEMENT_FRAMEQSCALE);
+
+
+ lnc__insert_element_token(mtx_hdr, elt_p, ELEMENT_RAWDATA);
+
+ /* zero_bit = 1 Bit = 0
+ * pei = 1 Bit = 0 No direct effect on encoding of picture
+ */
+ if (SourceFormatType != 7) {
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 0, 1);
+ }
+
+ /*
+ FOLLOWING SECTION CAN'T BE GENERATED HERE
+ gob_data( )
+ for(i=1; i<num_gob_in_picture; i++) {
+ gob_header( )
+ gob_data( )
+ }
+ */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, 0, 1);
+ return;
+}
+
+
+static void H263_writebits_GOBSliceHeader(
+ MTX_HEADER_PARAMS *mtx_hdr,
+ MTX_HEADER_ELEMENT **elt_p,
+ IMG_UINT8 GOBNumber,
+ IMG_UINT8 GOBFrameId)
+{
+#ifdef USESTATICWHEREPOSSIBLE
+ IMG_UINT16 *p;
+ p = (IMG_UINT16 *) mtx_hdr;
+ /*
+ p[0]=1;
+ p[1]=p[2]=p[3]=0;
+ */
+ *(int *)mtx_hdr = 1;
+ p[4] = 24;
+ p[5] = (128 | ((GOBNumber & 31) << 2) | (GOBFrameId & 3)) << 8;
+ p[6] = 5;
+#else
+ /* Essential we insert the element before we try to fill it! */
+ lnc__insert_element_token(mtx_hdr, elt_p, ELEMENT_STARTCODE_RAWDATA);
+
+ /* gob_resync_marker = 17 = 0x1 */
+ lnc__write_upto32bits_elements(mtx_hdr, elt_p, 1, 17);
+
+ /* gob_number = 5 = 0-17 It is gob number in a picture */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, GOBNumber, 5);
+
+ /* gob_frame_id = 2 = 0-3 See note */
+ lnc__write_upto8bits_elements(mtx_hdr, elt_p, GOBFrameId, 2);
+
+ /* quant_scale = 5 = 1-32 gob (Slice) Q_scale */
+ /* lnc__write_upto8bits_elements(mtx_hdr, elt_p, GOB_Q_Scale, 5); */
+
+ /* Insert token to tell MTX to insert rate-control value
+ * (QScale is sent as an argument in MTX_Send_Elements_To_VLC(&MTX_Header, SliceQScale))
+ */
+ lnc__insert_element_token(mtx_hdr, elt_p, ELEMENT_SLICEQSCALE);
+#endif
+}
+
+/*
+ * High level functions to call when a H263 header is required - HOST ROUTINES
+ */
+static void lnc__H263_getelements_videosequence_header(
+ MTX_HEADER_PARAMS *mtx_hdr,
+ IMG_UINT8 Profile_and_level_indication)
+{
+ /* Builds a single H263 video sequence header from the given parameters */
+
+ /* Essential we initialise our header structures before building */
+ MTX_HEADER_ELEMENT *This_Element;
+ MTX_HEADER_ELEMENT *elt_p[MAXNUMBERELEMENTS];
+ mtx_hdr->Elements = ELEMENTS_EMPTY;
+ This_Element = (MTX_HEADER_ELEMENT *) mtx_hdr->asElementStream;
+ elt_p[0] = This_Element;
+
+ H263_writebits_VideoSequenceHeader(mtx_hdr, elt_p, Profile_and_level_indication);
+
+ mtx_hdr->Elements++; /* Has been used as an index, so need to add 1 for a valid element count */
+}
+
+static void lnc__H263_getelements_videopicture_header(
+ MTX_HEADER_PARAMS *mtx_hdr,
+ IMG_UINT8 Temporal_Ref,
+ H263_PICTURE_CODING_TYPE PictureCodingType,
+ H263_SOURCE_FORMAT_TYPE SourceFormatType,
+ IMG_UINT8 FrameRate,
+ IMG_UINT16 PictureWidth,
+ IMG_UINT16 PictureHeight,
+ IMG_UINT8 *OptionalCustomPCF)
+{
+ /* Essential we initialise our header structures before building */
+ MTX_HEADER_ELEMENT *This_Element;
+ MTX_HEADER_ELEMENT *elt_p[MAXNUMBERELEMENTS];
+ mtx_hdr->Elements = ELEMENTS_EMPTY;
+ This_Element = (MTX_HEADER_ELEMENT *) mtx_hdr->asElementStream;
+ elt_p[0] = This_Element;
+
+ H263_writebits_VideoPictureHeader(
+ mtx_hdr, elt_p,
+ Temporal_Ref,
+ PictureCodingType,
+ SourceFormatType,
+ FrameRate,
+ PictureWidth,
+ PictureHeight,
+ OptionalCustomPCF);
+ mtx_hdr->Elements++; /* Has been used as an index, so need to add 1 for a valid element count */
+}
+
+static void lnc__H263_getelements_GOBslice_header(
+ MTX_HEADER_PARAMS *mtx_hdr,
+ IMG_UINT8 GOBNumber,
+ IMG_UINT8 GOBFrameId)
+{
+ /* Essential we initialise our header structures before building */
+ MTX_HEADER_ELEMENT *This_Element;
+ MTX_HEADER_ELEMENT *elt_p[MAXNUMBERELEMENTS];
+ mtx_hdr->Elements = ELEMENTS_EMPTY;
+ This_Element = (MTX_HEADER_ELEMENT *) mtx_hdr->asElementStream;
+ elt_p[0] = This_Element;
+
+ H263_writebits_GOBSliceHeader(mtx_hdr, elt_p, GOBNumber, GOBFrameId);
+
+ mtx_hdr->Elements++; //Has been used as an index, so need to add 1 for a valid element count
+}
+
+
+
+void lnc__H264_prepare_sequence_header(
+ IMG_UINT32 *pHeaderMemory,
+ IMG_UINT32 uiMaxNumRefFrames,
+ IMG_UINT32 uiPicWidthInMbs,
+ IMG_UINT32 uiPicHeightInMbs,
+ IMG_BOOL VUI_present, H264_VUI_PARAMS *VUI_params,
+ H264_CROP_PARAMS *psCropParams,
+ IMG_UINT8 uiLevel,
+ IMG_UINT8 uiProfile)
+{
+ H264_SEQUENCE_HEADER_PARAMS SHParams = {0, };
+ MTX_HEADER_PARAMS *mtx_hdr;
+
+ /* Route output elements to memory provided */
+ mtx_hdr = (MTX_HEADER_PARAMS *) pHeaderMemory;
+
+ /* Setup Sequence Header information */
+ switch (uiProfile) {
+ case 5:
+ SHParams.ucProfile = SH_PROFILE_BP;
+ break;
+ case 6:
+ SHParams.ucProfile = SH_PROFILE_MP;
+ break;
+ default:
+ SHParams.ucProfile = SH_PROFILE_MP;
+ break;
+ }
+
+ switch (uiLevel) {
+ case 10:
+ SHParams.ucLevel = SH_LEVEL_1;
+ break;
+ case 111:
+ SHParams.ucLevel = SH_LEVEL_1B;
+ break;
+ case 11:
+ SHParams.ucLevel = SH_LEVEL_11;
+ break;
+ case 12:
+ SHParams.ucLevel = SH_LEVEL_12;
+ break;
+ case 20:
+ SHParams.ucLevel = SH_LEVEL_2;
+ break;
+ case 30:
+ SHParams.ucLevel = SH_LEVEL_3;
+ break;
+ case 31:
+ SHParams.ucLevel = SH_LEVEL_31;
+ break;
+ default:
+ SHParams.ucLevel = SH_LEVEL_3;
+ break;
+ }
+
+ SHParams.ucMax_num_ref_frames = uiMaxNumRefFrames;
+ SHParams.ucWidth_in_mbs_minus1 = (IMG_UINT8)(uiPicWidthInMbs - 1);
+ SHParams.ucHeight_in_maps_units_minus1 = (IMG_UINT8)(uiPicHeightInMbs - 1);
+ SHParams.VUI_Params_Present = VUI_present;
+ if (VUI_present)
+ SHParams.VUI_Params = *VUI_params;
+
+ /* All picture header information is static
+ * (apart from 'pic_init_qp_minus26' and 'rsbp_byte_align' fields, which are set in MTX anyway)
+ */
+
+ /* Clears ensures elementstream memory is zeroed.. not necessary, but makes it easier to debug
+ * for (Lp=0;Lp<MAX_HEADERSIZEWORDS-1;Lp++) MTX_Header.asElementStream[Lp]=0;
+ */
+
+#if HEADERS_VERBOSE_OUTPUT
+ psb__information_message("\n\n**********************************************************************\n");
+ psb__information_message("******** HOST FIRMWARE ROUTINES TO PASS HEADERS AND TOKENS TO MTX******\n");
+ psb__information_message("**********************************************************************\n\n");
+#endif
+
+ /* Functions that actually pack Elements (MTX_HEADER_PARAMS structure) with header information */
+ lnc__H264_getelements_sequence_header(mtx_hdr, &SHParams, psCropParams);
+}
+
+void lnc__H264_prepare_picture_header(IMG_UINT32 *pHeaderMemory)
+{
+ MTX_HEADER_PARAMS *mtx_hdr;
+
+
+ /* Route output elements to memory provided */
+ mtx_hdr = (MTX_HEADER_PARAMS *) pHeaderMemory;
+
+ /* All picture header information is static
+ * (apart from 'pic_init_qp_minus26' and 'rsbp_byte_align' fields, which are set in MTX anyway)
+ */
+
+ /* Clears ensures elementstream memory is zeroed.. not necessary, but makes it easier to debug
+ * for (Lp=0;Lp<MAX_HEADERSIZEWORDS-1;Lp++) MTX_Header.asElementStream[Lp]=0;
+ */
+
+#if HEADERS_VERBOSE_OUTPUT
+ psb__information_message("\n\n**********************************************************************\n");
+ psb__information_message("******** HOST FIRMWARE ROUTINES TO PASS HEADERS AND TOKENS TO MTX******\n");
+ psb__information_message("**********************************************************************\n\n");
+#endif
+
+ /* Functions that actually pack Elements (MTX_HEADER_PARAMS structure) with header information */
+ lnc__H264_getelements_picture_header(mtx_hdr);
+}
+
+void lnc__H264_prepare_slice_header(
+ IMG_UINT32 *pHeaderMemory,
+ IMG_BOOL bIntraSlice,
+ IMG_UINT32 uiDisableDeblockingFilterIDC,
+ IMG_UINT32 uiFrameNumber,
+ IMG_UINT32 uiFirst_MB_Address,
+ IMG_UINT32 uiMBSkipRun,
+ IMG_UINT32 force_idr,
+ IMG_BOOL bUsesLongTermRef,
+ IMG_BOOL bIsLongTermRef,
+ IMG_UINT16 uiIdrPicId)
+{
+ H264_SLICE_HEADER_PARAMS SlHParams;
+ MTX_HEADER_PARAMS *mtx_hdr;
+
+ /* Route output elements to memory provided */
+ mtx_hdr = (MTX_HEADER_PARAMS *) pHeaderMemory;
+
+ SlHParams.Start_Code_Prefix_Size_Bytes = 4;
+
+ /* pcb - I think that this is more correct now*/
+ if (force_idr)
+ SlHParams.SliceFrame_Type = SLHP_IDR_SLICEFRAME_TYPE;
+ else
+ SlHParams.SliceFrame_Type = bIntraSlice ? SLHP_I_SLICEFRAME_TYPE : SLHP_P_SLICEFRAME_TYPE;
+
+ SlHParams.Frame_Num_DO = (IMG_UINT8) uiFrameNumber % (1 << 5);
+ SlHParams.Picture_Num_DO = (IMG_UINT8)(SlHParams.Frame_Num_DO * 2);
+
+ SlHParams.bUsesLongTermRef = bUsesLongTermRef;
+ SlHParams.bIsLongTermRef = bIsLongTermRef;
+
+ SlHParams.First_MB_Address = uiFirst_MB_Address;
+ SlHParams.Disable_Deblocking_Filter_Idc = (IMG_UINT8) uiDisableDeblockingFilterIDC;
+
+ if (uiMBSkipRun)
+ lnc__H264_getelements_skip_P_slice(mtx_hdr, &SlHParams, uiMBSkipRun);
+ else
+ lnc__H264_getelements_slice_header(mtx_hdr, &SlHParams, uiIdrPicId);
+}
+
+void lnc__H264_prepare_eodofstream_header(IMG_UINT32 *pHeaderMemory)
+{
+ MTX_HEADER_PARAMS *mtx_hdr;
+
+ /* Route output elements to memory provided */
+ mtx_hdr = (MTX_HEADER_PARAMS *) pHeaderMemory;
+
+ lnc__H264_getelements_endofstream_header(mtx_hdr);
+}
+
+void lnc__H264_prepare_endofpicture_header(IMG_UINT32 *pHeaderMemory)
+{
+ MTX_HEADER_PARAMS *mtx_hdr;
+
+ /* Route output elements to memory provided */
+ mtx_hdr = (MTX_HEADER_PARAMS *) pHeaderMemory;
+
+ /* H264_GetElements_EndOfPicture_Header(MTX_Header); */
+}
+
+void lnc__H264_prepare_endofsequence_header(IMG_UINT32 *pHeaderMemory)
+{
+ MTX_HEADER_PARAMS *mtx_hdr;
+
+ /* Route output elements to memory provided */
+ mtx_hdr = (MTX_HEADER_PARAMS *) pHeaderMemory;
+
+ lnc__H264_getelements_endofsequence_header(mtx_hdr);
+}
+
+void lnc__MPEG4_prepare_sequence_header(
+ IMG_UINT32 *pHeaderMemory,
+ IMG_BOOL bBFrame,
+ MPEG4_PROFILE_TYPE sProfile,
+ IMG_UINT8 Profile_and_level_indication,
+ FIXED_VOP_TIME_TYPE sFixed_vop_time_increment,
+ IMG_UINT32 Picture_Width_Pixels,
+ IMG_UINT32 Picture_Height_Pixels,
+ IMG_BOOL bVBVPresent,
+ IMG_UINT32 First_half_bit_rate,
+ IMG_UINT32 Latter_half_bit_rate,
+ IMG_UINT32 First_half_vbv_buffer_size,
+ IMG_UINT32 Latter_half_vbv_buffer_size,
+ IMG_UINT32 First_half_vbv_occupancy,
+ IMG_UINT32 Latter_half_vbv_occupancy,
+ IMG_UINT32 VopTimeResolution)
+{
+ MTX_HEADER_PARAMS *mtx_hdr;
+ VBVPARAMS sVBVParams;
+
+ sVBVParams.First_half_bit_rate = First_half_bit_rate;
+ sVBVParams.Latter_half_bit_rate = Latter_half_bit_rate;
+ sVBVParams.First_half_vbv_buffer_size = First_half_vbv_buffer_size;
+ sVBVParams.Latter_half_vbv_buffer_size = Latter_half_vbv_buffer_size;
+ sVBVParams.First_half_vbv_occupancy = First_half_vbv_occupancy;
+ sVBVParams.Latter_half_vbv_occupancy = Latter_half_vbv_occupancy;
+
+ /* Route output elements to memory provided */
+ mtx_hdr = (MTX_HEADER_PARAMS *) pHeaderMemory;
+
+ if (bVBVPresent)
+ lnc__MPEG4_getelements_sequence_header(
+ mtx_hdr, bBFrame, sProfile,
+ Profile_and_level_indication,
+ sFixed_vop_time_increment,
+ Picture_Width_Pixels, Picture_Height_Pixels,
+ &sVBVParams, VopTimeResolution);
+ else
+ lnc__MPEG4_getelements_sequence_header(
+ mtx_hdr, bBFrame, sProfile,
+ Profile_and_level_indication,
+ sFixed_vop_time_increment,
+ Picture_Width_Pixels, Picture_Height_Pixels,
+ NULL, VopTimeResolution);/* NULL pointer if there are no VBVParams */
+}
+
+void lnc__MPEG4_prepare_vop_header(
+ IMG_UINT32 *pHeaderMem,
+ IMG_BOOL bIsVOP_coded,
+ IMG_UINT32 VOP_time_increment,
+ IMG_UINT8 sSearch_range,
+ IMG_UINT8 eVop_Coding_Type,
+ IMG_UINT32 VopTimeResolution)
+{
+ MTX_HEADER_PARAMS *mtx_hdr;
+
+ mtx_hdr = (MTX_HEADER_PARAMS *) pHeaderMem;
+
+ /* Frame QScale (and Slice QScale in the slice case)
+ * no longer written here as it is inserted by MTX later
+ * (add as parameter to MTX_Send_Elements_To_VLC)
+ */
+ lnc__MPEG4_getelements_VOP_header(
+ mtx_hdr,
+ bIsVOP_coded,
+ VOP_time_increment,
+ sSearch_range,
+ eVop_Coding_Type, VopTimeResolution);
+}
+
+void lnc__H263_prepare_sequence_header(
+ IMG_UINT32 *pHeaderMem,
+ IMG_UINT8 Profile_and_level_indication)
+{
+ MTX_HEADER_PARAMS *mtx_hdr;
+
+ mtx_hdr = (MTX_HEADER_PARAMS *) pHeaderMem;
+
+ lnc__H263_getelements_videosequence_header(mtx_hdr, Profile_and_level_indication);
+}
+
+void lnc__H263_prepare_picture_header(
+ IMG_UINT32 *pHeaderMem,
+ IMG_UINT8 Temporal_Ref,
+ H263_PICTURE_CODING_TYPE PictureCodingType,
+ H263_SOURCE_FORMAT_TYPE SourceFormatType,
+ IMG_UINT8 FrameRate,
+ IMG_UINT16 PictureWidth,
+ IMG_UINT16 PictureHeight,
+ IMG_UINT8 *OptionalCustomPCF)
+{
+ MTX_HEADER_PARAMS *mtx_hdr;
+
+ mtx_hdr = (MTX_HEADER_PARAMS *) pHeaderMem;
+ lnc__H263_getelements_videopicture_header(
+ mtx_hdr,
+ Temporal_Ref,
+ PictureCodingType,
+ SourceFormatType,
+ FrameRate,
+ PictureWidth,
+ PictureHeight,
+ OptionalCustomPCF);
+}
+
+void lnc__H263_prepare_GOBslice_header(
+ IMG_UINT32 *pHeaderMem,
+ IMG_UINT8 GOBNumber,
+ IMG_UINT8 GOBFrameId)
+{
+ MTX_HEADER_PARAMS *mtx_hdr;
+
+ mtx_hdr = (MTX_HEADER_PARAMS *) pHeaderMem;
+
+ lnc__H263_getelements_GOBslice_header(
+ mtx_hdr,
+ GOBNumber,
+ GOBFrameId);
+
+ /* silent the warning message */
+ (void)Show_Bits;
+ (void)Show_Elements;
+ (void)lnc__H264_writebits_SEI_rbspheader;
+ (void)lnc__H264_getelements_skip_B_slice;
+ (void)lnc__H264_getelements_backward_zero_B_slice;
+ (void)lnc__H264_getelements_rbsp_ATE_only;
+ (void)lnc_MPEG4_getelements_video_packet_header;
+}
+
diff --git a/src/lnc_hostheader.h b/src/lnc_hostheader.h
new file mode 100644
index 0000000..e8d3996
--- /dev/null
+++ b/src/lnc_hostheader.h
@@ -0,0 +1,293 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ * Zeng Li <zeng.li@intel.com>
+ * Shengquan Yuan <shengquan.yuan@intel.com>
+ * Binglin Chen <binglin.chen@intel.com>
+ *
+ */
+
+
+/*
+ * Description DMA code for mtx Platform : Generic
+ */
+
+#ifndef _LNC_HOSTHEADER_H_
+#define _LNC_HOSTHEADER_H_
+
+
+#include "img_types.h"
+
+/* Structure contains QP parameters, used with the DoHeader() routine */
+typedef struct {
+ IMG_UINT32 H264_QP;
+ IMG_UINT32 H263_MPG4_FrameQ_scale;
+ IMG_UINT32 H263_MPG4_SliceQ_scale;
+} MTX_QP_INFO;
+
+/* #include "topaz_vlc_regs.h" */
+
+/* Allocating 32 words (128 bytes aligned to 8 bytes) */
+#define MAX_HEADERSIZEWORDS (32)
+
+typedef enum {
+ ELEMENT_STARTCODE_RAWDATA = 0,/* Rawdata that includes a start code */
+ ELEMENT_RAWDATA, /* Rawdata */
+ ELEMENT_QP, /* Insert the H264 Picture Header QP parameter (no rawdata) */
+ ELEMENT_SQP, /* Insert the H264 Slice Header QP parameter (no rawdata) */
+ ELEMENT_FRAMEQSCALE, /* Insert the H263/MPEG4 Frame Q_scale parameter (vob_quant field) (no rawdata) */
+ ELEMENT_SLICEQSCALE, /* Insert the H263/MPEG4 Slice Q_scale parameter (quant_scale field) (no rawdata) */
+ ELEMENT_INSERTBYTEALIGN_H264,/* Insert the byte align field (no rawdata) */
+ ELEMENT_INSERTBYTEALIGN_MPG4 /* Insert the byte align field (no rawdata) */
+} HEADER_ELEMENT_TYPE;
+
+
+typedef struct _MTX_HEADER_ELEMENT_ {
+ HEADER_ELEMENT_TYPE Element_Type;
+ IMG_UINT8 Size;
+ IMG_UINT8 Bits;
+} MTX_HEADER_ELEMENT;
+
+
+typedef struct _MTX_HEADER_PARAMS_ {
+ IMG_UINT32 Elements;
+ MTX_HEADER_ELEMENT asElementStream[MAX_HEADERSIZEWORDS-1];
+} MTX_HEADER_PARAMS;
+
+#define ELEMENTS_EMPTY 9999
+
+/* H264 Structures
+ */
+
+/* Define some constants for the variable elements in the header stream */
+typedef enum _SHPROFILES {
+ SH_PROFILE_BP = 0,
+ SH_PROFILE_MP = 1
+} SH_PROFILE_TYPE;
+
+/* Level number definitions (integer level numbers, non-intermediary only.. except level 1b) */
+typedef enum _SHLEVELS {
+ SH_LEVEL_1 = 10,
+ SH_LEVEL_1B = 111,
+ SH_LEVEL_11 = 11,
+ SH_LEVEL_12 = 12,
+ SH_LEVEL_2 = 20,
+ SH_LEVEL_3 = 30,
+ SH_LEVEL_31 = 31,
+ SH_LEVEL_32 = 32,
+ SH_LEVEL_4 = 40,
+ SH_LEVEL_5 = 50
+} SH_LEVEL_TYPE;
+
+
+typedef enum _SLHP_SLICEFRAME_TYPE_ {
+ SLHP_P_SLICEFRAME_TYPE,
+ SLHP_B_SLICEFRAME_TYPE,
+ SLHP_I_SLICEFRAME_TYPE,
+ SLHP_SP_SLICEFRAME_TYPE,
+ SLHP_SI_SLICEFRAME_TYPE,
+
+ SLHP_IDR_SLICEFRAME_TYPE
+
+} SLHP_SLICEFRAME_TYPE;
+
+
+/* Input parameters for the header generation
+ * Some of the following data structures may have fields that are actually static..
+ * may want to prune them down a bit later.
+ */
+typedef struct _H264_VUI_PARAMS_STRUC {
+ IMG_UINT32 Time_Scale;
+ IMG_UINT32 bit_rate_value_minus1; /* bitrate/64)-1 */
+ IMG_UINT32 cbp_size_value_minus1; /* (bitrate*1.5)/16 */
+ IMG_UINT8 CBR;
+ IMG_UINT8 initial_cpb_removal_delay_length_minus1;
+ IMG_UINT8 cpb_removal_delay_length_minus1;
+ IMG_UINT8 dpb_output_delay_length_minus1;
+ IMG_UINT8 time_offset_length;
+} H264_VUI_PARAMS;
+
+typedef struct _H264_CROP_PARAMS_STRUCT_ {
+ IMG_BOOL bClip;
+ IMG_UINT16 LeftCropOffset;
+ IMG_UINT16 RightCropOffset;
+ IMG_UINT16 TopCropOffset;
+ IMG_UINT16 BottomCropOffset;
+} H264_CROP_PARAMS;
+
+typedef struct _H264_SEQUENCE_HEADER_PARAMS_STRUC {
+ SH_PROFILE_TYPE ucProfile;
+ SH_LEVEL_TYPE ucLevel;
+ IMG_UINT8 ucMax_num_ref_frames;
+ IMG_UINT8 ucWidth_in_mbs_minus1;
+ IMG_UINT8 ucHeight_in_maps_units_minus1;
+ IMG_UINT8 VUI_Params_Present;
+ H264_VUI_PARAMS VUI_Params;
+} H264_SEQUENCE_HEADER_PARAMS;
+
+
+typedef struct _H264_SLICE_HEADER_PARAMS_STRUC {
+ IMG_UINT8 Start_Code_Prefix_Size_Bytes;
+ SLHP_SLICEFRAME_TYPE SliceFrame_Type;
+ IMG_UINT32 First_MB_Address;
+ IMG_UINT8 Frame_Num_DO;
+ IMG_UINT8 Picture_Num_DO;
+ IMG_BOOL bUsesLongTermRef;
+ IMG_BOOL bIsLongTermRef;
+ IMG_UINT8 Disable_Deblocking_Filter_Idc;
+} H264_SLICE_HEADER_PARAMS;
+
+
+
+/* MPEG4 Structures
+ */
+typedef enum _MPEG4_PROFILE {
+ SP = 1,
+ ASP = 3
+} MPEG4_PROFILE_TYPE;
+
+typedef enum _FIXED_VOP_TIME_ENUM {
+ _30FPS = 1,
+ _15FPS = 2,
+ _10FPS = 3
+} FIXED_VOP_TIME_TYPE;
+
+typedef struct _VBVPARAMS_STRUC {
+ IMG_UINT32 First_half_bit_rate;
+ IMG_UINT32 Latter_half_bit_rate;
+ IMG_UINT32 First_half_vbv_buffer_size;
+ IMG_UINT32 Latter_half_vbv_buffer_size;
+ IMG_UINT32 First_half_vbv_occupancy;
+ IMG_UINT32 Latter_half_vbv_occupancy;
+} VBVPARAMS;
+
+
+/*
+ * H263 Structures
+ */
+
+typedef enum _VOP_CODING_ENUM {
+ I_FRAME = 0,
+ P_FRAME = 1
+} VOP_CODING_TYPE, H263_PICTURE_CODING_TYPE;
+
+typedef enum _SEARCH_RANGE_ENUM {
+ PLUSMINUS_32 = 2,
+ PLUSMINUS_64 = 3,
+ FCODE_EQ_4 = 4
+} SEARCH_RANGE_TYPE;
+
+typedef enum _H263_SOURCE_FORMAT_ENUM {
+ _128x96_SubQCIF = 1,
+ _176x144_QCIF = 2,
+ _352x288_CIF = 3,
+ _704x576_4CIF = 4
+} H263_SOURCE_FORMAT_TYPE;
+
+
+#define SIZEINBITS(a) (sizeof(a)*8)
+
+/* H264 header preparation */
+void lnc__H264_prepare_sequence_header(
+ IMG_UINT32 *pHeaderMemory,
+ IMG_UINT32 uiMaxNumRefFrames,
+ IMG_UINT32 uiPicWidthInMbs,
+ IMG_UINT32 uiPicHeightInMbs,
+ IMG_BOOL VUI_present, H264_VUI_PARAMS *VUI_params,
+ H264_CROP_PARAMS *psCropParams,
+ IMG_UINT8 uiLevel,
+ IMG_UINT8 uiProfile);
+
+void lnc__H264_prepare_picture_header(IMG_UINT32 *pHeaderMemory);
+void lnc__H264_prepare_slice_header(
+ IMG_UINT32 *pHeaderMemory,
+ IMG_BOOL bIntraSlice,
+ IMG_UINT32 uiDisableDeblockingFilterIDC,
+ IMG_UINT32 uiFrameNumber,
+ IMG_UINT32 uiFirst_MB_Address,
+ IMG_UINT32 uiMBSkipRun,
+ IMG_UINT32 ui_need_idr,
+ IMG_BOOL bUsesLongTermRef,
+ IMG_BOOL bIsLongTermRef,
+ IMG_UINT16 uiIdrPicId);
+
+void lnc__H264_prepare_eodofstream_header(IMG_UINT32 *pHeaderMemory);
+void lnc__H264_prepare_endofpicture_header(IMG_UINT32 *pHeaderMemory);
+void lnc__H264_prepare_endofsequence_header(IMG_UINT32 *pHeaderMemory);
+
+
+/* MPEG4 header preparation */
+void lnc__MPEG4_prepare_sequence_header(
+ IMG_UINT32 *pHeaderMemory,
+ IMG_BOOL bBFrame,
+ MPEG4_PROFILE_TYPE sProfile,
+ IMG_UINT8 Profile_and_level_indication,
+ FIXED_VOP_TIME_TYPE sFixed_vop_time_increment,
+ IMG_UINT32 Picture_Width_Pixels,
+ IMG_UINT32 Picture_Height_Pixels,
+ IMG_BOOL bVBVPresent,
+ IMG_UINT32 First_half_bit_rate,
+ IMG_UINT32 Latter_half_bit_rate,
+ IMG_UINT32 First_half_vbv_buffer_size,
+ IMG_UINT32 Latter_half_vbv_buffer_size,
+ IMG_UINT32 First_half_vbv_occupancy,
+ IMG_UINT32 Latter_half_vbv_occupancy,
+ IMG_UINT32 VopTimeResolution);
+
+void lnc__MPEG4_prepare_vop_header(
+ IMG_UINT32 *pHeaderMem,
+ IMG_BOOL bIsVOP_coded,
+ IMG_UINT32 VOP_time_increment,
+ IMG_UINT8 sSearch_range,
+ IMG_UINT8 eVop_Coding_Type,
+ IMG_UINT32 VopTimeResolution);
+
+
+/* H263 header preparation */
+void lnc__H263_prepare_sequence_header(
+ IMG_UINT32 *pHeaderMem,
+ IMG_UINT8 Profile_and_level_indication);
+
+void lnc__H263_prepare_picture_header(
+ IMG_UINT32 *pHeaderMem,
+ IMG_UINT8 Temporal_Ref,
+ H263_PICTURE_CODING_TYPE PictureCodingType,
+ H263_SOURCE_FORMAT_TYPE SourceFormatType,
+ IMG_UINT8 FrameRate,
+ IMG_UINT16 PictureWidth,
+ IMG_UINT16 PictureHeight,
+ IMG_UINT8 *OptionalCustomPCF);
+
+void lnc__H263_prepare_GOBslice_header(
+ IMG_UINT32 *pHeaderMem,
+ IMG_UINT8 GOBNumber,
+ IMG_UINT8 GOBFrameId);
+
+
+#endif /* _LNC_HOSTHEADER_H_ */
+
+
+
+
diff --git a/src/lnc_ospm.c b/src/lnc_ospm.c
new file mode 100644
index 0000000..23d9149
--- /dev/null
+++ b/src/lnc_ospm.c
@@ -0,0 +1,236 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ * Shengquan Yuan <shengquan.yuan@intel.com>
+ * Forrest Zhang <forrest.zhang@intel.com>
+ *
+ */
+
+
+#include <string.h>
+#include <stdlib.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <unistd.h>
+
+#include "lnc_ospm.h"
+
+static int
+lnc_ospm_event_send(const char * obj_path, const char * method_name)
+{
+ int ret = 0;
+
+ if (obj_path == NULL || method_name == NULL) {
+ psb__information_message("obj_path or method_name null pointer error\n");
+ ret = 2;
+ goto exit;
+ }
+
+ if (!strcmp(obj_path, "video_playback")) {
+ if (!strcmp(method_name, OSPM_DBUS_EVENT_START)) {
+ ret = system("dbus-send --system --print-reply --dest=com.intel.mid.ospm \
+ /com/intel/mid/ospm/video_playback com.intel.mid.ospm.MMF.IndicateStart");
+ if (ret < 0) {
+ psb__information_message("ospm_event_send error: event %s send error #%d on %s\n", method_name, ret, obj_path);
+ }
+ } else if (!strcmp(method_name, OSPM_DBUS_EVENT_STOP)) {
+ ret = system("dbus-send --system --print-reply --dest=com.intel.mid.ospm \
+ /com/intel/mid/ospm/video_playback com.intel.mid.ospm.MMF.IndicateStop");
+ if (ret < 0) {
+ psb__information_message("ospm_event_send error: event %s send error #%d on %s\n", method_name, ret, obj_path);
+ }
+ } else {
+ psb__information_message("ospm_event_send error: event %s isn't supported on %s\n", method_name, obj_path);
+ ret = -1;
+ }
+ } else if (!strcmp(obj_path, "video_record")) {
+ if (!strcmp(method_name, OSPM_DBUS_EVENT_START)) {
+ ret = system("dbus-send --system --print-reply --dest=com.intel.mid.ospm \
+ /com/intel/mid/ospm/video_record com.intel.mid.ospm.MMF.IndicateStart");
+ if (ret < 0) {
+ psb__information_message("ospm_event_send error: event %s send error #%d on %s\n", method_name, ret, obj_path);
+ }
+ } else if (!strcmp(method_name, OSPM_DBUS_EVENT_STOP)) {
+ ret = system("dbus-send --system --print-reply --dest=com.intel.mid.ospm \
+ /com/intel/mid/ospm/video_record com.intel.mid.ospm.MMF.IndicateStop");
+ if (ret < 0) {
+ psb__information_message("ospm_event_send error: event %s send error #%d on %s\n", method_name, ret, obj_path);
+ }
+ } else {
+ psb__information_message("ospm_event_send error: event %s isn't supported on %s\n", method_name, obj_path);
+ ret = 3;
+ }
+ } else {
+ psb__information_message("ospm_event_send error: originator %s isn't supported\n", obj_path);
+ ret = 4;
+ }
+exit:
+ return ret;
+}
+
+static int lnc_handle_pm_qos(psb_driver_data_p driver_data)
+{
+ int ret = 0;
+ unsigned int video_encode_pm_qos_default = 10000; /* 10 ms */
+
+ driver_data->pm_qos_fd = open("/dev/cpu_dma_latency", O_RDWR);
+ if (driver_data->pm_qos_fd == -1) {
+ psb__information_message("PM_QoS for video Encoder initialization error\n");
+ return -1;
+ }
+
+ psb__information_message("PM_QoS for video Encoder initialization ok\n");
+
+ ret = write(driver_data->pm_qos_fd, &video_encode_pm_qos_default, sizeof(int));
+ if (ret == -1)
+ psb__information_message("PM_QoS for video Encoder config error\n");
+ else
+ psb__information_message("PM_QoS for video Encoder config ok\n");
+
+ return ret;
+}
+
+static int lnc_toggle_gfxd0i3(psb_driver_data_p driver_data, int enable)
+{
+ int ret = -1;
+ struct stat buf;
+
+ if (enable) {
+ /* Android */
+ if (stat("/proc/dri/0/ospm", &buf) == 0)
+ ret = system("echo 1 > /proc/dri/0/ospm");
+
+ if (stat("/sys/module/pvrsrvkm/parameters/ospm", &buf) == 0) {
+ ret = system("echo 1 > /sys/module/pvrsrvkm/parameters/ospm");
+ return ret;
+ }
+
+ /* mrst MeeGo */
+ if (stat("/sys/module/mrst_gfx/parameters/ospm", &buf) == 0) {
+ ret = system("echo 1 > /sys/module/mrst_gfx/parameters/ospm");
+ return ret;
+ }
+
+ /* mfld MeeGo */
+ if (stat("/sys/module/medfield_gfx/parameters/ospm", &buf) == 0) {
+ ret = system("echo 1 > /sys/module/medfield_gfx/parameters/ospm");
+ return ret;
+ }
+ } else {
+ if (stat("/proc/dri/0/ospm", &buf) == 0)
+ ret = system("echo 0 > /proc/dri/0/ospm");
+
+ /* Android */
+ if (stat("/sys/module/pvrsrvkm/parameters/ospm", &buf) == 0) {
+ ret = system("echo 0 > /sys/module/pvrsrvkm/parameters/ospm");
+ return ret;
+ }
+
+ /* mrst MeeGo */
+ if (stat("/sys/module/mrst_gfx/parameters/ospm", &buf) == 0) {
+ ret = system("echo 0 > /sys/module/mrst_gfx/parameters/ospm");
+ return ret;
+ }
+
+ /* mfld MeeGo */
+ if (stat("/sys/module/medfield_gfx/parameters/ospm", &buf) == 0) {
+ ret = system("echo 0 > /sys/module/medfield_gfx/parameters/ospm");
+ return ret;
+ }
+ }
+
+ return ret;
+}
+
+int lnc_ospm_start(psb_driver_data_p driver_data, int encode)
+{
+ int ret;
+
+ if (getenv("PSB_VIDEO_NO_OSPM"))
+ return 0;
+
+ if (IS_MRST(driver_data)) {
+ psb__information_message("OSPM:send DBUS message to ospm daemon\n");
+ if (encode)
+ ret = lnc_ospm_event_send("video_record", "start");
+ else
+ ret = lnc_ospm_event_send("video_playback", "start");
+
+ if (ret != 0)
+ psb__information_message("lnc_ospm_event_send start error: #%d\n", ret);
+ else
+ psb__information_message("lnc_ospm_event_send start ok\n");
+ } else if (IS_MFLD(driver_data)) {
+ psb__information_message("OSPM:set PM_QoS parameters\n");
+ /*
+ if (encode)
+ lnc_handle_pm_qos(driver_data);
+ */
+ }
+
+ if (encode) {
+ ret = lnc_toggle_gfxd0i3(driver_data, 0);
+
+ if (ret == 0)
+ psb__information_message("OSPM:disabled Gfx D0i3 for encode\n");
+ }
+
+ return 0;
+}
+
+int lnc_ospm_stop(psb_driver_data_p driver_data, int encode)
+{
+ int ret;
+
+ if (getenv("PSB_VIDEO_NO_OSPM"))
+ return 0;
+
+ if (IS_MRST(driver_data)) {
+ psb__information_message("OSPM:send DBUS message to ospm daemon\n");
+ if (encode)
+ ret = lnc_ospm_event_send("video_record", "stop");
+ else
+ ret = lnc_ospm_event_send("video_playback", "stop");
+
+ if (ret != 0)
+ psb__information_message("lnc_ospm_event_send start error: #%d\n", ret);
+ else
+ psb__information_message("lnc_ospm_event_send start ok\n");
+ } else if (IS_MFLD(driver_data)) {
+ psb__information_message("OSPM:set PM_QoS parameters\n");
+ /*
+ if (encode)
+ lnc_handle_pm_qos(driver_data);
+ */
+ }
+
+ if (encode) {
+ ret = lnc_toggle_gfxd0i3(driver_data, 1);
+ if (ret == 0)
+ psb__information_message("OSPM:re-enabled Gfx D0i3 for encode\n");
+ }
+
+ return 0;
+}
diff --git a/src/lnc_ospm.h b/src/lnc_ospm.h
new file mode 100644
index 0000000..a6561a7
--- /dev/null
+++ b/src/lnc_ospm.h
@@ -0,0 +1,62 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ * Shengquan Yuan <shengquan.yuan@intel.com>
+ * Forrest Zhang <forrest.zhang@intel.com>
+ *
+ */
+
+
+#ifndef _LNC_OSPM_EVENT_H_
+#define _LNC_OSPM_EVENT_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+#include "psb_drv_video.h"
+
+#define OSPM_DBUS_MAX_OBJ_NAME_LEN 64
+
+#define OSPM_EVENT_APP_LAUNCH "launch"
+#define OSPM_EVENT_APP_EXIT "exit"
+#define OSPM_EVENT_PPM_ACK "ack"
+#define OSPM_DBUS_EVENT_START "start"
+#define OSPM_DBUS_EVENT_STOP "stop"
+#define OSPM_DBUS_EVENT_PAUSE "pause"
+#define OSPM_DBUS_EVENT_ACTIVATED "activate"
+#define OSPM_DBUS_EVENT_DEACTIVATED "deactivate"
+#define OSPM_DBUS_EVENT_CHARGING "charging"
+#define OSPM_DBUS_EVENT_DISCHARGING "discharging"
+#define OSPM_DBUS_EVENT_NORMAL "normal"
+#define OSPM_DBUS_EVENT_ALERT "alert"
+#define OSPM_DBUS_EVENT_CRITICAL "critical"
+
+ int lnc_ospm_start(psb_driver_data_p driver_data, int encode);
+ int lnc_ospm_stop(psb_driver_data_p driver_data, int encode);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _LNC_OSPM_EVENT_H_ */
diff --git a/src/object_heap.c b/src/object_heap.c
new file mode 100644
index 0000000..4b7d740
--- /dev/null
+++ b/src/object_heap.c
@@ -0,0 +1,220 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ * Waldo Bastian <waldo.bastian@intel.com>
+ *
+ */
+
+#include "object_heap.h"
+
+#include <stdlib.h>
+#include <string.h>
+
+#include "psb_def.h"
+
+#define LAST_FREE -1
+#define ALLOCATED -2
+#define SUSPENDED -3
+
+/*
+ * Expands the heap
+ * Return 0 on success, -1 on error
+ */
+static int object_heap_expand(object_heap_p heap)
+{
+ int i;
+ int malloc_error = FALSE;
+ object_base_p *new_heap_index;
+ int next_free;
+ int new_heap_size = heap->heap_size + heap->heap_increment;
+
+ new_heap_index = (object_base_p *) realloc(heap->heap_index, new_heap_size * sizeof(object_base_p));
+ if (NULL == new_heap_index) {
+ return -1; /* Out of memory */
+ }
+ heap->heap_index = new_heap_index;
+ next_free = heap->next_free;
+ for (i = new_heap_size; i-- > heap->heap_size;) {
+ object_base_p obj = (object_base_p) calloc(1, heap->object_size);
+ heap->heap_index[i] = obj;
+ if (NULL == obj) {
+ malloc_error = TRUE;
+ continue; /* Clean up after the loop is completely done */
+ }
+ obj->id = i + heap->id_offset;
+ obj->next_free = next_free;
+ next_free = i;
+ }
+
+ if (malloc_error) {
+ /* Clean up the mess */
+ for (i = new_heap_size; i-- > heap->heap_size;) {
+ if (heap->heap_index[i]) {
+ free(heap->heap_index[i]);
+ }
+ }
+ /* heap->heap_index is left as is */
+ return -1; /* Out of memory */
+ }
+ heap->next_free = next_free;
+ heap->heap_size = new_heap_size;
+ return 0; /* Success */
+}
+
+/*
+ * Return 0 on success, -1 on error
+ */
+int object_heap_init(object_heap_p heap, int object_size, int id_offset)
+{
+ heap->object_size = object_size;
+ heap->id_offset = id_offset & OBJECT_HEAP_OFFSET_MASK;
+ heap->heap_size = 0;
+ heap->heap_increment = 16;
+ heap->heap_index = NULL;
+ heap->next_free = LAST_FREE;
+ return object_heap_expand(heap);
+}
+
+/*
+ * Allocates an object
+ * Returns the object ID on success, returns -1 on error
+ */
+int object_heap_allocate(object_heap_p heap)
+{
+ object_base_p obj;
+ if (LAST_FREE == heap->next_free) {
+ if (-1 == object_heap_expand(heap)) {
+ return -1; /* Out of memory */
+ }
+ }
+ ASSERT(heap->next_free >= 0);
+
+ obj = heap->heap_index[heap->next_free];
+ heap->next_free = obj->next_free;
+ obj->next_free = ALLOCATED;
+ return obj->id;
+}
+
+/*
+ * Lookup an object by object ID
+ * Returns a pointer to the object on success, returns NULL on error
+ */
+object_base_p object_heap_lookup(object_heap_p heap, int id)
+{
+ object_base_p obj;
+ if ((id < heap->id_offset) || (id > (heap->heap_size + heap->id_offset))) {
+ return NULL;
+ }
+ id &= OBJECT_HEAP_ID_MASK;
+ obj = heap->heap_index[id];
+
+ /* Check if the object has in fact been allocated */
+ if (obj->next_free != ALLOCATED) {
+ return NULL;
+ }
+ return obj;
+}
+
+/*
+ * Iterate over all objects in the heap.
+ * Returns a pointer to the first object on the heap, returns NULL if heap is empty.
+ */
+object_base_p object_heap_first(object_heap_p heap, object_heap_iterator *iter)
+{
+ *iter = -1;
+ return object_heap_next(heap, iter);
+}
+
+/*
+ * Iterate over all objects in the heap.
+ * Returns a pointer to the next object on the heap, returns NULL if heap is empty.
+ */
+object_base_p object_heap_next(object_heap_p heap, object_heap_iterator *iter)
+{
+ object_base_p obj;
+ int i = *iter + 1;
+ while (i < heap->heap_size) {
+ obj = heap->heap_index[i];
+ if ((obj->next_free == ALLOCATED) || (obj->next_free == SUSPENDED)) {
+ *iter = i;
+ return obj;
+ }
+ i++;
+ }
+ *iter = i;
+ return NULL;
+}
+
+
+
+/*
+ * Frees an object
+ */
+void object_heap_free(object_heap_p heap, object_base_p obj)
+{
+ /* Don't complain about NULL pointers */
+ if (NULL != obj) {
+ /* Check if the object has in fact been allocated */
+ ASSERT((obj->next_free == ALLOCATED) || (obj->next_free == SUSPENDED));
+
+ obj->next_free = heap->next_free;
+ heap->next_free = obj->id & OBJECT_HEAP_ID_MASK;
+ }
+}
+
+/*
+ * Destroys a heap, the heap must be empty.
+ */
+void object_heap_destroy(object_heap_p heap)
+{
+ object_base_p obj;
+ int i;
+ for (i = 0; i < heap->heap_size; i++) {
+ /* Check if object is not still allocated */
+ obj = heap->heap_index[i];
+ ASSERT(obj->next_free != ALLOCATED);
+ ASSERT(obj->next_free != SUSPENDED);
+ /* Free object itself */
+ free(obj);
+ }
+ free(heap->heap_index);
+ heap->heap_size = 0;
+ heap->heap_index = NULL;
+ heap->next_free = LAST_FREE;
+}
+
+/*
+ * Suspend an object
+ * Suspended objects can not be looked up
+ */
+void object_heap_suspend_object(object_base_p obj, int suspend)
+{
+ if (suspend) {
+ ASSERT(obj->next_free == ALLOCATED);
+ obj->next_free = SUSPENDED;
+ } else {
+ ASSERT(obj->next_free == SUSPENDED);
+ obj->next_free = ALLOCATED;
+ }
+}
diff --git a/src/object_heap.h b/src/object_heap.h
new file mode 100644
index 0000000..265ebd3
--- /dev/null
+++ b/src/object_heap.h
@@ -0,0 +1,99 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ * Waldo Bastian <waldo.bastian@intel.com>
+ *
+ */
+
+#ifndef _OBJECT_HEAP_H_
+#define _OBJECT_HEAP_H_
+
+#define OBJECT_HEAP_OFFSET_MASK 0x7F000000
+#define OBJECT_HEAP_ID_MASK 0x00FFFFFF
+
+typedef struct object_base_s *object_base_p;
+typedef struct object_heap_s *object_heap_p;
+
+struct object_base_s {
+ int id;
+ int next_free;
+};
+
+struct object_heap_s {
+ int object_size;
+ int id_offset;
+ object_base_p *heap_index;
+ int next_free;
+ int heap_size;
+ int heap_increment;
+};
+
+typedef int object_heap_iterator;
+
+/*
+ * Return 0 on success, -1 on error
+ */
+int object_heap_init(object_heap_p heap, int object_size, int id_offset);
+
+/*
+ * Allocates an object
+ * Returns the object ID on success, returns -1 on error
+ */
+int object_heap_allocate(object_heap_p heap);
+
+/*
+ * Lookup an allocated object by object ID
+ * Returns a pointer to the object on success, returns NULL on error
+ */
+object_base_p object_heap_lookup(object_heap_p heap, int id);
+
+/*
+ * Iterate over all objects in the heap.
+ * Returns a pointer to the first object on the heap, returns NULL if heap is empty.
+ */
+object_base_p object_heap_first(object_heap_p heap, object_heap_iterator *iter);
+
+/*
+ * Iterate over all objects in the heap.
+ * Returns a pointer to the next object on the heap, returns NULL if heap is empty.
+ */
+object_base_p object_heap_next(object_heap_p heap, object_heap_iterator *iter);
+
+/*
+ * Frees an object
+ */
+void object_heap_free(object_heap_p heap, object_base_p obj);
+
+/*
+ * Destroys a heap, the heap must be empty.
+ */
+void object_heap_destroy(object_heap_p heap);
+
+/*
+ * Suspend an object
+ * Suspended objects can not be looked up
+ */
+void object_heap_suspend_object(object_base_p obj, int suspend);
+
+#endif /* _OBJECT_HEAP_H_ */
diff --git a/src/pnw_H263ES.c b/src/pnw_H263ES.c
new file mode 100644
index 0000000..1df7227
--- /dev/null
+++ b/src/pnw_H263ES.c
@@ -0,0 +1,510 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ * Elaine Wang <elaine.wang@intel.com>
+ * Zeng Li <zeng.li@intel.com>
+ *
+ */
+
+#include "psb_def.h"
+#include "psb_surface.h"
+#include "psb_cmdbuf.h"
+#include "pnw_H263ES.h"
+#include "pnw_hostcode.h"
+#include "pnw_hostheader.h"
+
+#include <stdlib.h>
+#include <stdint.h>
+#include <string.h>
+
+
+#define TOPAZ_H263_MAX_BITRATE 16000000
+
+#define INIT_CONTEXT_H263ES context_ENC_p ctx = (context_ENC_p) (obj_context->format_data)
+#define SURFACE(id) ((object_surface_p) object_heap_lookup( &ctx->obj_context->driver_data->surface_heap, id ))
+#define BUFFER(id) ((object_buffer_p) object_heap_lookup( &ctx->obj_context->driver_data->buffer_heap, id ))
+
+
+static void pnw_H263ES_QueryConfigAttributes(
+ VAProfile profile,
+ VAEntrypoint entrypoint,
+ VAConfigAttrib *attrib_list,
+ int num_attribs)
+{
+ int i;
+ psb__information_message("pnw_H263ES_QueryConfigAttributes\n");
+
+ /* RateControl attributes */
+ for (i = 0; i < num_attribs; i++) {
+ switch (attrib_list[i].type) {
+ case VAConfigAttribRTFormat:
+ break;
+
+ case VAConfigAttribRateControl:
+ attrib_list[i].value = VA_RC_NONE | VA_RC_CBR | VA_RC_VBR;
+ break;
+
+ default:
+ attrib_list[i].value = VA_ATTRIB_NOT_SUPPORTED;
+ break;
+ }
+ }
+
+}
+
+
+static VAStatus pnw_H263ES_ValidateConfig(
+ object_config_p obj_config)
+{
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ psb__information_message("pnw_H263ES_ValidateConfig\n");
+
+ return vaStatus;
+}
+
+
+static VAStatus pnw_H263ES_CreateContext(
+ object_context_p obj_context,
+ object_config_p obj_config)
+{
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ unsigned int eRCmode;
+ context_ENC_p ctx;
+ int i;
+
+ psb__information_message("pnw_H263ES_CreateContext\n");
+
+ vaStatus = pnw_CreateContext(obj_context, obj_config, 0);/* alloc context_ENC_s and BO */
+
+ if (VA_STATUS_SUCCESS != vaStatus)
+ return VA_STATUS_ERROR_ALLOCATION_FAILED;
+
+ ctx = (context_ENC_p) obj_context->format_data;
+
+ for (i = 0; i < obj_config->attrib_count; i++) {
+ if (obj_config->attrib_list[i].type == VAConfigAttribRateControl)
+ break;
+ }
+
+ if (i >= obj_config->attrib_count)
+ eRCmode = VA_RC_NONE;
+ else
+ eRCmode = obj_config->attrib_list[i].value;
+
+
+ if (eRCmode == VA_RC_VBR) {
+ ctx->eCodec = IMG_CODEC_H263_VBR;
+ ctx->sRCParams.RCEnable = IMG_TRUE;
+ } else if (eRCmode == VA_RC_CBR) {
+ ctx->eCodec = IMG_CODEC_H263_CBR;
+ ctx->sRCParams.RCEnable = IMG_TRUE;
+ } else if (eRCmode == VA_RC_NONE) {
+ ctx->eCodec = IMG_CODEC_H263_NO_RC;
+ ctx->sRCParams.RCEnable = IMG_FALSE;
+ } else
+ return VA_STATUS_ERROR_UNSUPPORTED_RT_FORMAT;
+ ctx->eFormat = IMG_CODEC_PL12;
+
+ ctx->Slices = ctx->Height / 16;
+ ctx->ParallelCores = 1; /* H263 encode use only one core from DDKv186 */
+
+ ctx->IPEControl = pnw__get_ipe_control(ctx->eCodec);
+
+ return vaStatus;
+
+
+}
+
+
+static void pnw_H263ES_DestroyContext(
+ object_context_p obj_context)
+{
+
+ psb__information_message("pnw_H263ES_DestroyContext\n");
+
+ pnw_DestroyContext(obj_context);
+}
+
+static VAStatus pnw_H263ES_BeginPicture(
+ object_context_p obj_context)
+{
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+
+ INIT_CONTEXT_H263ES;
+
+ psb__information_message("pnw_H263ES_BeginPicture\n");
+
+ vaStatus = pnw_BeginPicture(ctx);
+
+ return vaStatus;
+}
+
+
+static VAStatus pnw__H263ES_process_sequence_param(context_ENC_p ctx, object_buffer_p obj_buffer)
+{
+ /*
+ * process rate control parameters
+ */
+ VAEncSequenceParameterBufferH263 *pSequenceParams;
+ int i;
+
+ ASSERT(obj_buffer->type == VAEncSequenceParameterBufferType);
+ ASSERT(obj_buffer->num_elements == 1);
+ ASSERT(obj_buffer->size == sizeof(VAEncSequenceParameterBufferH263));
+
+ if ((obj_buffer->num_elements != 1) ||
+ (obj_buffer->size != sizeof(VAEncSequenceParameterBufferH263))) {
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ pSequenceParams = (VAEncSequenceParameterBufferH263 *) obj_buffer->buffer_data;
+ obj_buffer->buffer_data = NULL;
+ obj_buffer->size = 0;
+
+ if (pSequenceParams->bits_per_second > TOPAZ_H263_MAX_BITRATE) {
+ ctx->sRCParams.BitsPerSecond = TOPAZ_H263_MAX_BITRATE;
+ psb__information_message(" bits_per_second(%d) exceeds \
+ the maximum bitrate, set it with %d\n",
+ pSequenceParams->bits_per_second,
+ TOPAZ_H263_MAX_BITRATE);
+ } else
+ ctx->sRCParams.BitsPerSecond = pSequenceParams->bits_per_second;
+
+ ctx->sRCParams.FrameRate = pSequenceParams->frame_rate;
+ ctx->sRCParams.InitialQp = pSequenceParams->initial_qp;
+ ctx->sRCParams.MinQP = pSequenceParams->min_qp;
+ ctx->sRCParams.BUSize = 0; /* default 0, and will be set in pnw__setup_busize */
+
+ /*
+ IMG_UINT16 MBRows = 0;
+ if(ctx->Height <= 400)
+ MBRows = 1;
+ else if (ctx->Height < 800)
+ MBRows = 2;
+ */
+ ctx->sRCParams.Slices = ctx->Slices;
+ ctx->sRCParams.QCPOffset = 0;/* FIXME */
+ ctx->sRCParams.IntraFreq = pSequenceParams->intra_period;
+ ctx->sRCParams.InitialLevel = (3 * ctx->sRCParams.BufferSize) >> 4;
+ ctx->sRCParams.InitialDelay = (13 * ctx->sRCParams.BufferSize) >> 4;
+
+ /*if (ctx->sRCParams.BitsPerSecond < 256000)
+ ctx->sRCParams.BufferSize = (9 * ctx->sRCParams.BitsPerSecond) >> 1;
+ else
+ ctx->sRCParams.BufferSize = (5 * ctx->sRCParams.BitsPerSecond) >> 1;*/
+
+ ctx->sRCParams.BufferSize = ctx->sRCParams.BitsPerSecond;
+ if (ctx->obj_context->frame_count == 0) { /* Add Register IO behind begin Picture */
+ pnw__UpdateRCBitsTransmitted(ctx);
+ for (i = (ctx->ParallelCores - 1); i >= 0; i--) {
+ pnw_set_bias(ctx, i);
+ }
+ }
+
+ free(pSequenceParams);
+ return VA_STATUS_SUCCESS;
+}
+
+
+/* Work done by the followinig funcs in testbench should be done here.
+ * IMG_C_StartPicture()
+ * IMG_C_InsertSync()
+ * APP_H263_SendPictureHeader()
+ * Frame skip must be taken into consideration
+ * */
+static VAStatus pnw__H263ES_process_picture_param(context_ENC_p ctx, object_buffer_p obj_buffer)
+{
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ VAEncPictureParameterBufferH263 *pBuffer;
+ pnw_cmdbuf_p cmdbuf = ctx->obj_context->pnw_cmdbuf;
+ H263_SOURCE_FORMAT_TYPE SourceFormatType;
+ int i;
+
+ ASSERT(obj_buffer->type == VAEncPictureParameterBufferType);
+
+ if ((obj_buffer->num_elements != 1) ||
+ (obj_buffer->size != sizeof(VAEncPictureParameterBufferH263))) {
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ /* Transfer ownership of VAEncPictureParameterBufferH263 data */
+ pBuffer = (VAEncPictureParameterBufferH263 *) obj_buffer->buffer_data;
+ obj_buffer->buffer_data = NULL;
+ obj_buffer->size = 0;
+
+ ctx->ref_surface = SURFACE(pBuffer->reference_picture);
+ ctx->dest_surface = SURFACE(pBuffer->reconstructed_picture);
+ ctx->coded_buf = BUFFER(pBuffer->coded_buf);
+
+ ASSERT(ctx->Width == pBuffer->picture_width);
+ ASSERT(ctx->Height == pBuffer->picture_height);
+
+ /* Insert do_header command here */
+
+ if ((ctx->Width == 128) && (ctx->Height == 96))
+ SourceFormatType = _128x96_SubQCIF;
+ else if ((ctx->Width == 176) && (ctx->Height == 144))
+ SourceFormatType = _176x144_QCIF;
+ else if ((ctx->Width == 352) && (ctx->Height == 288))
+ SourceFormatType = _352x288_CIF;
+ else if ((ctx->Width == 704) && (ctx->Height == 576))
+ SourceFormatType = _704x576_4CIF;
+ else if ((ctx->Width <= 720) && (ctx->Height <= 576))
+ SourceFormatType = 7;
+ else {
+ psb__information_message("Unsupported resolution!\n");
+ return VA_STATUS_ERROR_RESOLUTION_NOT_SUPPORTED;
+ }
+
+ memset(cmdbuf->header_mem_p + ctx->pic_header_ofs,
+ 0,
+ HEADER_SIZE);
+ pnw__H263_prepare_picture_header(cmdbuf->header_mem_p + ctx->pic_header_ofs,
+ ctx->obj_context->frame_count,
+ pBuffer->picture_type,
+ SourceFormatType,
+ ctx->sRCParams.FrameRate,
+ ctx->Width,
+ ctx->Height);
+
+ pnw_cmdbuf_insert_command_package(ctx->obj_context,
+ ctx->ParallelCores - 1, /* Send to the last core as this will complete first */
+ MTX_CMDID_DO_HEADER,
+ &cmdbuf->header_mem,
+ ctx->pic_header_ofs);
+
+
+ /* Prepare START_PICTURE params */
+ /* Actually H263 only use 1 core from DDKv186 */
+ for (i = (ctx->ParallelCores - 1); i >= 0; i--)
+ vaStatus = pnw_RenderPictureParameter(ctx, i);
+
+ free(pBuffer);
+ return vaStatus;
+}
+
+
+static VAStatus pnw__H263ES_process_slice_param(context_ENC_p ctx, object_buffer_p obj_buffer)
+{
+ /* Prepare InParams for macros of current slice, insert slice header, insert do slice command */
+ VAEncSliceParameterBuffer *pBuffer;
+ pnw_cmdbuf_p cmdbuf = ctx->obj_context->pnw_cmdbuf;
+ PIC_PARAMS *psPicParams = (PIC_PARAMS *)(cmdbuf->pic_params_p);
+ int i;
+ int slice_param_idx;
+
+ ASSERT(obj_buffer->type == VAEncSliceParameterBufferType);
+
+ /* Transfer ownership of VAEncPictureParameterBufferH263 data */
+ pBuffer = (VAEncSliceParameterBuffer *) obj_buffer->buffer_data;
+ obj_buffer->size = 0;
+
+ if (0 == pBuffer->start_row_number) {
+ if (pBuffer->slice_flags.bits.is_intra)
+ RELOC_PIC_PARAMS_PNW(&psPicParams->InParamsBase, ctx->in_params_ofs, cmdbuf->topaz_in_params_I);
+ else
+ RELOC_PIC_PARAMS_PNW(&psPicParams->InParamsBase, ctx->in_params_ofs, cmdbuf->topaz_in_params_P);
+ }
+
+ /*In case the slice number changes*/
+ if ((ctx->slice_param_cache != NULL) && (obj_buffer->num_elements != ctx->slice_param_num)) {
+ psb__information_message("Slice number changes. Previous value is %d. Now it's %d\n",
+ ctx->slice_param_num, obj_buffer->num_elements);
+ free(ctx->slice_param_cache);
+ ctx->slice_param_cache = NULL;
+ ctx->slice_param_num = 0;
+ }
+
+ if (NULL == ctx->slice_param_cache) {
+ ctx->slice_param_num = obj_buffer->num_elements;
+ psb__information_message("Allocate %d VAEncSliceParameterBuffer cache buffers\n", 2 * ctx->slice_param_num);
+ ctx->slice_param_cache = calloc(2 * ctx->slice_param_num, sizeof(VAEncSliceParameterBuffer));
+ if (NULL == ctx->slice_param_cache) {
+ psb__error_message("Run out of memory!\n");
+ free(obj_buffer->buffer_data);
+ return VA_STATUS_ERROR_ALLOCATION_FAILED;
+ }
+ }
+
+ for (i = 0; i < obj_buffer->num_elements; i++) {
+ /*Todo list:
+ *1.Insert Do header command
+ *2.setup InRowParams
+ *3.setup Slice params
+ *4.Insert Do slice command
+ * */
+ unsigned char deblock_idc;
+
+ deblock_idc = pBuffer->slice_flags.bits.disable_deblocking_filter_idc;
+
+ /* Insert Do Header command, relocation is needed */
+ if (ctx->obj_context->slice_count) { /*First slice of a frame need not slice header*/
+ memset(cmdbuf->header_mem_p + ctx->slice_header_ofs
+ + ctx->obj_context->slice_count * HEADER_SIZE,
+ 0,
+ HEADER_SIZE);
+
+ pnw__H263_prepare_GOBslice_header(
+ cmdbuf->header_mem_p + ctx->slice_header_ofs
+ + ctx->obj_context->slice_count * HEADER_SIZE,
+ ctx->obj_context->slice_count,
+ ctx->obj_context->frame_count);
+
+ ctx->LastSliceNum[ctx->SliceToCore] = ctx->obj_context->slice_count;
+
+ pnw_cmdbuf_insert_command_package(ctx->obj_context,
+ ctx->SliceToCore,
+ MTX_CMDID_DO_HEADER,
+ &cmdbuf->header_mem,
+ ctx->slice_header_ofs + ctx->obj_context->slice_count * HEADER_SIZE);
+
+ if (0 == ctx->SliceToCore) {
+ ctx->SliceToCore = ctx->ParallelCores;
+ }
+ ctx->SliceToCore--;
+
+ }
+
+ if ((pBuffer->start_row_number == 0) && pBuffer->slice_flags.bits.is_intra) {
+ pnw_reset_encoder_params(ctx); /* originally do in BeginPicture, but beginpicture has no intra info */
+ ctx->BelowParamsBufIdx = (ctx->BelowParamsBufIdx + 1) & 0x1;
+ }
+
+ slice_param_idx = (pBuffer->slice_flags.bits.is_intra ? 0 : 1) * ctx->slice_param_num + i;
+ if (VAEncSliceParameter_Equal(&ctx->slice_param_cache[slice_param_idx], pBuffer) == 0) {
+ /* cache current param parameters */
+ memcpy(&ctx->slice_param_cache[slice_param_idx],
+ pBuffer, sizeof(VAEncSliceParameterBuffer));
+
+ /* Setup InParams value*/
+ pnw_setup_slice_params(ctx,
+ pBuffer->start_row_number * 16,
+ pBuffer->slice_height * 16,
+ pBuffer->slice_flags.bits.is_intra,
+ ctx->obj_context->frame_count > 0,
+ psPicParams->sInParams.SeInitQP);
+ }
+
+ /* Insert do slice command and setup related buffer value */
+ pnw__send_encode_slice_params(ctx,
+ pBuffer->slice_flags.bits.is_intra,
+ pBuffer->start_row_number * 16,
+ deblock_idc,
+ ctx->obj_context->frame_count,
+ pBuffer->slice_height * 16,
+ ctx->obj_context->slice_count);
+
+ psb__information_message("Now frame_count/slice_count is %d/%d\n",
+ ctx->obj_context->frame_count, ctx->obj_context->slice_count);
+
+ ctx->obj_context->slice_count++;
+ pBuffer++; /*Move to the next buffer*/
+
+ ASSERT(ctx->obj_context->slice_count < MAX_SLICES_PER_PICTURE);
+ }
+
+ free(obj_buffer->buffer_data);
+ obj_buffer->buffer_data = NULL;
+ return VA_STATUS_SUCCESS;
+}
+
+
+
+static VAStatus pnw_H263ES_RenderPicture(
+ object_context_p obj_context,
+ object_buffer_p *buffers,
+ int num_buffers)
+{
+ int i;
+ INIT_CONTEXT_H263ES;
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+
+ psb__information_message("pnw_H263ES_RenderPicture\n");
+
+ for (i = 0; i < num_buffers; i++) {
+ object_buffer_p obj_buffer = buffers[i];
+
+ switch (obj_buffer->type) {
+ case VAEncSequenceParameterBufferType:
+ psb__information_message("pnw_H263_RenderPicture got VAEncSequenceParameterBufferType\n");
+ vaStatus = pnw__H263ES_process_sequence_param(ctx, obj_buffer);
+ DEBUG_FAILURE;
+ break;
+
+ case VAEncPictureParameterBufferType:
+ psb__information_message("pnw_H263_RenderPicture got VAEncPictureParameterBuffer\n");
+ vaStatus = pnw__H263ES_process_picture_param(ctx, obj_buffer);
+ DEBUG_FAILURE;
+ break;
+
+ case VAEncSliceParameterBufferType:
+ psb__information_message("pnw_H263_RenderPicture got VAEncSliceParameterBufferType\n");
+ vaStatus = pnw__H263ES_process_slice_param(ctx, obj_buffer);
+ DEBUG_FAILURE;
+ break;
+
+ default:
+ vaStatus = VA_STATUS_ERROR_UNKNOWN;
+ DEBUG_FAILURE;
+ }
+ if (vaStatus != VA_STATUS_SUCCESS) {
+ break;
+ }
+ }
+
+
+ return vaStatus;
+}
+
+static VAStatus pnw_H263ES_EndPicture(
+ object_context_p obj_context)
+{
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ INIT_CONTEXT_H263ES;
+
+ psb__information_message("pnw_H263ES_EndPicture\n");
+
+ vaStatus = pnw_EndPicture(ctx);
+
+ return vaStatus;
+}
+
+
+struct format_vtable_s pnw_H263ES_vtable = {
+queryConfigAttributes:
+ pnw_H263ES_QueryConfigAttributes,
+validateConfig:
+ pnw_H263ES_ValidateConfig,
+createContext:
+ pnw_H263ES_CreateContext,
+destroyContext:
+ pnw_H263ES_DestroyContext,
+beginPicture:
+ pnw_H263ES_BeginPicture,
+renderPicture:
+ pnw_H263ES_RenderPicture,
+endPicture:
+ pnw_H263ES_EndPicture
+};
diff --git a/src/pnw_H263ES.h b/src/pnw_H263ES.h
new file mode 100644
index 0000000..ebd265e
--- /dev/null
+++ b/src/pnw_H263ES.h
@@ -0,0 +1,37 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ * Elaine Wang <elaine.wang@intel.com>
+ * Zeng Li <zeng.li@intel.com>
+ *
+ */
+
+#ifndef _PNW_H263ES_H_
+#define _PNW_H263ES_H_
+
+#include "psb_drv_video.h"
+extern struct format_vtable_s pnw_H263ES_vtable;
+
+#endif /* _PNW_H263ES_H_ */
diff --git a/src/pnw_H264.c b/src/pnw_H264.c
new file mode 100644
index 0000000..e2731d6
--- /dev/null
+++ b/src/pnw_H264.c
@@ -0,0 +1,1914 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ * Waldo Bastian <waldo.bastian@intel.com>
+ * Zeng Li <zeng.li@intel.com>
+ *
+ */
+
+#include "pnw_H264.h"
+#include "psb_def.h"
+#include "psb_surface.h"
+#include "psb_cmdbuf.h"
+
+#include "hwdefs/reg_io2.h"
+#include "hwdefs/msvdx_offsets.h"
+#include "hwdefs/msvdx_cmds_io2.h"
+#include "hwdefs/msvdx_core_regs_io2.h"
+#include "hwdefs/msvdx_vec_reg_io2.h"
+#include "hwdefs/msvdx_vec_h264_reg_io2.h"
+#include "hwdefs/dxva_fw_ctrl.h"
+
+#include <stdlib.h>
+#include <stdint.h>
+#include <string.h>
+
+#define GET_SURFACE_INFO_is_used(psb_surface) ((int) (psb_surface->extra_info[0]))
+#define SET_SURFACE_INFO_is_used(psb_surface, val) psb_surface->extra_info[0] = (uint32_t) val;
+#define GET_SURFACE_INFO_col_pic_params(psb_surface) (psb_surface->extra_info[1])
+#define SET_SURFACE_INFO_col_pic_params(psb_surface, val) psb_surface->extra_info[1] = val;
+#define GET_SURFACE_INFO_dpb_idx(psb_surface) (psb_surface->extra_info[2])
+#define SET_SURFACE_INFO_dpb_idx(psb_surface, val) psb_surface->extra_info[2] = val;
+#define GET_SURFACE_INFO_colocated_index(psb_surface) ((int) (psb_surface->extra_info[3]))
+#define SET_SURFACE_INFO_colocated_index(psb_surface, val) psb_surface->extra_info[3] = (uint32_t) val;
+
+#define IS_USED_AS_REFERENCE(pic_flags) ( pic_flags & (VA_PICTURE_H264_SHORT_TERM_REFERENCE | VA_PICTURE_H264_LONG_TERM_REFERENCE) )
+
+/* Truncates a signed integer to 17 bits */
+#define SIGNTRUNC( x ) ((( (x) >> 15) & 0x10000) | ( (x) & 0xffff))
+
+#define MSVDX_VEC_REGS_BASE_MTX 0x0800
+#define MSVDX_COMMANDS_BASE_MTX 0x1000
+#define MSVDX_IQRAM_BASE_MTX 0x700
+
+#define SLICEDATA_BUFFER_TYPE(type) ((type==VASliceDataBufferType)?"VASliceDataBufferType":"VAProtectedSliceDataBufferType")
+
+typedef enum {
+ PICT_NONE,
+ PICT_FRAME,
+ PICT_TOP,
+ PICT_BOTTOM,
+ PICT_PAIR
+} PICTYPE;
+
+typedef enum {
+ H264_BASELINE_PROFILE = 0,
+ H264_MAIN_PROFILE = 1,
+ H264_HIGH_PROFILE = 2
+} PROFILE;
+
+static const char *profile2str[] = {
+ "H264_BASELINE_PROFILE",
+ "H264_MAIN_PROFILE",
+ "H264_HIGH_PROFILE"
+};
+
+typedef enum {
+ ST_P,
+ ST_B ,
+ ST_I ,
+ ST_SP ,
+ ST_SI
+} SLICE_TYPE;
+
+static IMG_UINT8 aSliceTypeVAtoMsvdx[] = { 1 , 2 , 0, 1, 0 };
+
+static const char *slice2str[] = {
+ "ST_P",
+ "ST_B",
+ "ST_I",
+ "ST_SP",
+ "ST_SI"
+};
+
+typedef enum {
+ DEBLOCK_NONE,
+ DEBLOCK_STD,
+ DEBLOCK_INTRA_OOLD
+} DEBLOCK_MODE_2NDPASS;
+
+struct context_H264_s {
+ object_context_p obj_context; /* back reference */
+
+ uint32_t profile; // ENTDEC BE_PROFILE & FE_PROFILE
+ uint32_t profile_idc; // BE_PROFILEIDC
+
+ /* Picture parameters */
+ VAPictureParameterBufferH264 *pic_params;
+ object_surface_p forward_ref_surface;
+ object_surface_p backward_ref_surface;
+
+ uint32_t coded_picture_width; /* in pixels */
+ uint32_t coded_picture_height; /* in pixels */
+
+ uint32_t picture_width_mb; /* in macroblocks */
+ uint32_t picture_height_mb; /* in macroblocks */
+ uint32_t size_mb; /* in macroblocks */
+
+ uint32_t first_mb_x;
+ uint32_t first_mb_y;
+
+ uint32_t mb_width_c; /* Chroma macroblock width */
+ uint32_t mb_height_c; /* Chroma macroblock height */
+
+ uint32_t bit_depth_l; /* Luma bit depth */
+ uint32_t qp_bd_offset_l;
+ uint32_t bit_depth_c; /* Chroma bit depth */
+ uint32_t qp_bd_offset_c;
+
+ uint32_t raw_mb_bits; /* Number of bits per macroblock */
+
+ uint32_t picture_width_samples_l;
+ uint32_t picture_height_samples_l;
+ uint32_t picture_width_samples_c;
+ uint32_t picture_height_samples_c;
+
+ uint32_t picture_height_map_units;
+ uint32_t picture_size_map_units;
+
+ PICTYPE pic_type;
+ uint32_t field_type;
+
+ uint32_t long_term_frame_flags;
+ uint32_t two_pass_mode;
+ uint32_t deblock_mode;
+ uint32_t slice_count;
+
+ /* Registers */
+ uint32_t reg_SPS0;
+ uint32_t reg_PPS0;
+ uint32_t reg_PIC0;
+
+ uint32_t slice0_params;
+ uint32_t slice1_params;
+
+ /* Split buffers */
+ int split_buffer_pending;
+
+ /* List of VASliceParameterBuffers */
+ object_buffer_p *slice_param_list;
+ int slice_param_list_size;
+ int slice_param_list_idx;
+
+ /* VLC packed data */
+ struct psb_buffer_s vlc_packed_table;
+
+ /* Preload buffer */
+ struct psb_buffer_s preload_buffer;
+
+ /* Slice Group Map buffer */
+ psb_buffer_p slice_group_map_buffer;
+
+ /* IQ matrix */
+ VAIQMatrixBufferH264 *iq_matrix;
+
+ /* Reference Cache */
+ struct psb_buffer_s reference_cache;
+
+ uint32_t *p_range_mapping_base0;
+ uint32_t *p_range_mapping_base1;
+ uint32_t *p_slice_params; /* pointer to ui32SliceParams in CMD_HEADER */
+ uint32_t *slice_first_pic_last;
+ uint32_t *alt_output_flags;
+
+ /* CoLocated buffers - aka ParamMemInfo */
+ struct psb_buffer_s *colocated_buffers;
+ int colocated_buffers_size;
+ int colocated_buffers_idx;
+};
+
+typedef struct context_H264_s *context_H264_p;
+
+#define INIT_CONTEXT_H264 context_H264_p ctx = (context_H264_p) obj_context->format_data;
+
+#define SURFACE(id) ((object_surface_p) object_heap_lookup( &ctx->obj_context->driver_data->surface_heap, id ))
+
+#define CACHE_REF_OFFSET 72
+#define CACHE_ROW_OFFSET 4
+
+#define REFERENCE_CACHE_SIZE (512 * 1024)
+
+#define MAX_PRELOAD_CMDS (40*2)
+typedef struct {
+ IMG_UINT8 ui8Address[MAX_PRELOAD_CMDS]; /* Address = (ui8Address << 1 | 0x400 ) */
+ IMG_UINT32 ui32Value[MAX_PRELOAD_CMDS];
+} ADDRDATA;
+
+typedef struct {
+ IMG_UINT32 ui32ContextId;
+ IMG_UINT32 ui32PreloadBufferSize;
+ ADDRDATA aData;
+} PRELOAD;
+
+
+
+/* **************************************************************************************************************** */
+/* Prepacked H264 VLC Tables */
+/* **************************************************************************************************************** */
+static const IMG_UINT16 ui16H264VLCTableData[] = {
+ 0x4000, 0x4205, 0x440a, 0x2204, 0x2206, 0x0208, 0x040b, 0x400f,
+ 0x4204, 0x4209, 0x4013, 0x420e, 0x4217, 0x421b, 0x4212, 0x420d,
+ 0x4208, 0x2a08, 0x0232, 0x0035, 0x0036, 0x441f, 0x4416, 0x4411,
+ 0x440c, 0x0407, 0x040e, 0x0415, 0x041c, 0x0223, 0x4a35, 0x3a00,
+ 0x4420, 0x4426, 0x4421, 0x441c, 0x442b, 0x4422, 0x441d, 0x4418,
+ 0x4433, 0x442e, 0x4429, 0x4428, 0x442f, 0x442a, 0x4425, 0x4424,
+ 0x443b, 0x4436, 0x4431, 0x4430, 0x4437, 0x4432, 0x442d, 0x442c,
+ 0x4443, 0x443e, 0x443d, 0x4438, 0x443f, 0x443a, 0x4439, 0x4434,
+ 0x4240, 0x4242, 0x4241, 0x423c, 0x4227, 0x421e, 0x4219, 0x4214,
+ 0x4023, 0x401a, 0x4015, 0x4010, 0x0410, 0x0249, 0x024c, 0x004f,
+ 0x4613, 0x460f, 0x440a, 0x440a, 0x4205, 0x4205, 0x4205, 0x4205,
+ 0x4200, 0x4200, 0x4200, 0x4200, 0x2a08, 0x0231, 0x0034, 0x0035,
+ 0x4423, 0x4416, 0x4415, 0x440c, 0x0407, 0x040e, 0x0415, 0x121c,
+ 0x0222, 0x4a3f, 0x3a00, 0x442f, 0x4426, 0x4425, 0x4420, 0x442b,
+ 0x4422, 0x4421, 0x441c, 0x442c, 0x442e, 0x442d, 0x4428, 0x4433,
+ 0x442a, 0x4429, 0x4424, 0x443b, 0x4436, 0x4435, 0x4434, 0x4437,
+ 0x4432, 0x4431, 0x4430, 0x0203, 0x423a, 0x4238, 0x423d, 0x423c,
+ 0x423e, 0x4239, 0x4243, 0x4242, 0x4241, 0x4240, 0x4227, 0x421e,
+ 0x421d, 0x4218, 0x4014, 0x401a, 0x4019, 0x4010, 0x421f, 0x4212,
+ 0x4211, 0x4208, 0x421b, 0x420e, 0x420d, 0x4204, 0x4017, 0x4009,
+ 0x2210, 0x0432, 0x0239, 0x023c, 0x600a, 0x6008, 0x003d, 0x003e,
+ 0x461f, 0x461b, 0x4617, 0x4613, 0x460f, 0x460a, 0x4605, 0x4600,
+ 0x0403, 0x040a, 0x0611, 0x4433, 0x442e, 0x4429, 0x4424, 0x442f,
+ 0x442a, 0x4425, 0x4420, 0x4430, 0x4436, 0x4431, 0x442c, 0x4437,
+ 0x4432, 0x442d, 0x4428, 0x3600, 0x4640, 0x4643, 0x4642, 0x4641,
+ 0x463c, 0x463f, 0x463e, 0x463d, 0x4638, 0x463b, 0x463a, 0x4639,
+ 0x4634, 0x4435, 0x4435, 0x441c, 0x4418, 0x4426, 0x4414, 0x442b,
+ 0x4422, 0x4421, 0x4410, 0x420c, 0x421e, 0x421d, 0x4208, 0x4227,
+ 0x421a, 0x4219, 0x4204, 0x400d, 0x4023, 0x400e, 0x4009, 0x2208,
+ 0x5406, 0x540a, 0x540e, 0x5412, 0x5416, 0x541a, 0x541e, 0x5204,
+ 0x0002, 0x5002, 0x3000, 0x4000, 0x4005, 0x4200, 0x440a, 0x0401,
+ 0x1208, 0x000a, 0x4410, 0x440c, 0x4408, 0x440f, 0x4409, 0x4404,
+ 0x4013, 0x4212, 0x4211, 0x400e, 0x400d, 0x4000, 0x4205, 0x440a,
+ 0x0404, 0x480f, 0x4a13, 0x2609, 0x441b, 0x4417, 0x4412, 0x440e,
+ 0x440d, 0x4409, 0x4408, 0x4404, 0x0205, 0x0208, 0x020b, 0x020e,
+ 0x1411, 0x4216, 0x4211, 0x4210, 0x420c, 0x421f, 0x421a, 0x4215,
+ 0x4214, 0x4223, 0x421e, 0x4219, 0x4218, 0x4222, 0x4221, 0x421d,
+ 0x421c, 0x3400, 0x3400, 0x3400, 0x4420, 0x4000, 0x0006, 0x0007,
+ 0x0008, 0x0009, 0x000a, 0x040b, 0x4002, 0x4001, 0x4004, 0x4003,
+ 0x4006, 0x4005, 0x4008, 0x4007, 0x400a, 0x4009, 0x3400, 0x440f,
+ 0x440e, 0x440d, 0x420c, 0x420c, 0x420b, 0x420b, 0x1208, 0x000e,
+ 0x000f, 0x4404, 0x4403, 0x4402, 0x4401, 0x4400, 0x0203, 0x420a,
+ 0x4209, 0x420e, 0x420d, 0x420c, 0x420b, 0x4008, 0x4007, 0x4006,
+ 0x4005, 0x0208, 0x000d, 0x000e, 0x4407, 0x4406, 0x4403, 0x4402,
+ 0x4401, 0x0004, 0x420c, 0x420a, 0x4209, 0x400d, 0x400b, 0x4008,
+ 0x4005, 0x4004, 0x4000, 0x0208, 0x000b, 0x000c, 0x4408, 0x4406,
+ 0x4405, 0x4404, 0x4401, 0x420c, 0x420b, 0x420a, 0x4200, 0x4009,
+ 0x4007, 0x4003, 0x4002, 0x2208, 0x000a, 0x000b, 0x4407, 0x4406,
+ 0x4405, 0x4404, 0x4403, 0x400a, 0x4209, 0x420b, 0x4008, 0x4002,
+ 0x4001, 0x4000, 0x2408, 0x4409, 0x4407, 0x4406, 0x4405, 0x4404,
+ 0x4403, 0x4402, 0x4008, 0x4201, 0x4400, 0x440a, 0x2408, 0x4408,
+ 0x4406, 0x4404, 0x4403, 0x4402, 0x4205, 0x4205, 0x4007, 0x4201,
+ 0x4400, 0x4409, 0x2604, 0x0008, 0x4205, 0x4204, 0x4007, 0x4201,
+ 0x4402, 0x4600, 0x4608, 0x4006, 0x4003, 0x2604, 0x4206, 0x4204,
+ 0x4203, 0x4005, 0x4202, 0x4407, 0x4600, 0x4601, 0x2404, 0x4205,
+ 0x4204, 0x4203, 0x4002, 0x4206, 0x4400, 0x4401, 0x4004, 0x0003,
+ 0x4402, 0x5000, 0x4003, 0x4005, 0x4003, 0x4202, 0x4404, 0x5000,
+ 0x4002, 0x4203, 0x5000, 0x5000, 0x4002, 0x4000, 0x4001, 0x4000,
+ 0x4201, 0x4402, 0x4403, 0x4000, 0x4201, 0x4202, 0x4001, 0x4000,
+ 0x4001, 0x4000, 0x4000, 0x4201, 0x4202, 0x4203, 0x4202, 0x4201,
+ 0x4200, 0x0004, 0x4202, 0x4201, 0x4200, 0x4004, 0x4003, 0x0203,
+ 0x4201, 0x4200, 0x4205, 0x4204, 0x4203, 0x4202, 0x4401, 0x4402,
+ 0x4404, 0x4403, 0x4406, 0x4405, 0x4200, 0x4200, 0x2a08, 0x4406,
+ 0x4405, 0x4404, 0x4403, 0x4402, 0x4401, 0x4400, 0x4007, 0x4208,
+ 0x4409, 0x460a, 0x480b, 0x4a0c, 0x2201, 0x400d, 0x420e, 0x3200,
+};
+
+/* Set bottom field flag in bit 7 and DPB index in bits 0:3 */
+static uint32_t PICTURE2INDEX(context_H264_p ctx, VAPictureH264 *pic)
+{
+ uint32_t result = 0xff; /* unused */
+ object_surface_p ref_surface = SURFACE(pic->picture_id);
+ if (ref_surface) {
+ result = GET_SURFACE_INFO_dpb_idx(ref_surface->psb_surface);
+ }
+ if (pic->flags & VA_PICTURE_H264_BOTTOM_FIELD) {
+ result |= 0x80; /* Set bit 7 */
+ }
+ return result;
+}
+
+static void pnw_H264_QueryConfigAttributes(
+ VAProfile profile,
+ VAEntrypoint entrypoint,
+ VAConfigAttrib *attrib_list,
+ int num_attribs)
+{
+ /* No H264 specific attributes */
+}
+
+static VAStatus pnw_H264_ValidateConfig(
+ object_config_p obj_config)
+{
+ int i;
+ /* Check all attributes */
+ for (i = 0; i < obj_config->attrib_count; i++) {
+ switch (obj_config->attrib_list[i].type) {
+ case VAConfigAttribRTFormat:
+ /* Ignore */
+ break;
+
+ default:
+ return VA_STATUS_ERROR_ATTR_NOT_SUPPORTED;
+ }
+ }
+
+ return VA_STATUS_SUCCESS;
+}
+
+static VAStatus psb__H264_check_legal_picture(object_context_p obj_context, object_config_p obj_config)
+{
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+
+ if (NULL == obj_context) {
+ vaStatus = VA_STATUS_ERROR_INVALID_CONTEXT;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ if (NULL == obj_config) {
+ vaStatus = VA_STATUS_ERROR_INVALID_CONFIG;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ /* MSVDX decode capability for H.264:
+ * BP@L3
+ * MP@L4.1
+ * HP@L4.1
+ *
+ * Refer to Table A-6 (Maximum frame rates for some example frame sizes) of ISO/IEC 14496-10:2005 (E).
+ */
+ switch (obj_config->profile) {
+ case VAProfileH264Baseline:
+ if ((obj_context->picture_width <= 0) || (obj_context->picture_width > 720)
+ || (obj_context->picture_height <= 0) || (obj_context->picture_height > 576)) {
+ vaStatus = VA_STATUS_ERROR_RESOLUTION_NOT_SUPPORTED;
+ }
+ break;
+
+ case VAProfileH264Main:
+ case VAProfileH264High:
+ case VAProfileH264ConstrainedBaseline:
+ if ((obj_context->picture_width <= 0) || (obj_context->picture_width > 1920)
+ || (obj_context->picture_height <= 0) || (obj_context->picture_height > 1088)) {
+ vaStatus = VA_STATUS_ERROR_RESOLUTION_NOT_SUPPORTED;
+ }
+ break;
+
+ default:
+ vaStatus = VA_STATUS_ERROR_UNSUPPORTED_PROFILE;
+ break;
+ }
+
+ return vaStatus;
+}
+
+static void pnw_H264_DestroyContext(object_context_p obj_context);
+
+static VAStatus pnw_H264_CreateContext(
+ object_context_p obj_context,
+ object_config_p obj_config)
+{
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ context_H264_p ctx;
+ /* Validate flag */
+ /* Validate picture dimensions */
+ //vaStatus = psb__H264_check_legal_picture(obj_context, obj_config);
+ if (VA_STATUS_SUCCESS != vaStatus) {
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ ctx = (context_H264_p) calloc(1, sizeof(struct context_H264_s));
+ if (NULL == ctx) {
+ vaStatus = VA_STATUS_ERROR_ALLOCATION_FAILED;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+ obj_context->format_data = (void*) ctx;
+ ctx->obj_context = obj_context;
+ ctx->pic_params = NULL;
+
+ ctx->split_buffer_pending = FALSE;
+
+ ctx->slice_param_list_size = 8;
+ ctx->slice_param_list = (object_buffer_p*) calloc(1, sizeof(object_buffer_p) * ctx->slice_param_list_size);
+ ctx->slice_param_list_idx = 0;
+
+ if (NULL == ctx->slice_param_list) {
+ vaStatus = VA_STATUS_ERROR_ALLOCATION_FAILED;
+ DEBUG_FAILURE;
+ free(ctx);
+ return vaStatus;
+ }
+
+ ctx->colocated_buffers_size = obj_context->num_render_targets;
+ ctx->colocated_buffers_idx = 0;
+ ctx->colocated_buffers = (psb_buffer_p) calloc(1, sizeof(struct psb_buffer_s) * ctx->colocated_buffers_size);
+ if (NULL == ctx->colocated_buffers) {
+ vaStatus = VA_STATUS_ERROR_ALLOCATION_FAILED;
+ DEBUG_FAILURE;
+ free(ctx->slice_param_list);
+ free(ctx);
+ return vaStatus;
+ }
+
+ switch (obj_config->profile) {
+ case VAProfileH264Baseline:
+ ctx->profile = H264_BASELINE_PROFILE;
+ ctx->profile_idc = 0;
+ break;
+
+ case VAProfileH264Main:
+ ctx->profile = H264_MAIN_PROFILE;
+ ctx->profile_idc = 1;
+ break;
+
+ case VAProfileH264High:
+ case VAProfileH264ConstrainedBaseline:
+ ctx->profile = H264_HIGH_PROFILE;
+ ctx->profile_idc = 3;
+ break;
+
+ default:
+ ASSERT(0);
+ vaStatus = VA_STATUS_ERROR_UNKNOWN;
+ }
+
+
+ // TODO
+ if (vaStatus == VA_STATUS_SUCCESS) {
+ vaStatus = psb_buffer_create(obj_context->driver_data,
+ sizeof(PRELOAD),
+ psb_bt_vpu_only,
+ &ctx->preload_buffer);
+ DEBUG_FAILURE;
+ }
+
+ if (vaStatus == VA_STATUS_SUCCESS) {
+ vaStatus = psb_buffer_create(obj_context->driver_data,
+ REFERENCE_CACHE_SIZE,
+ psb_bt_vpu_only,
+ &ctx->reference_cache);
+ DEBUG_FAILURE;
+ }
+
+ if (vaStatus == VA_STATUS_SUCCESS) {
+ vaStatus = psb_buffer_create(obj_context->driver_data,
+ sizeof(ui16H264VLCTableData),
+ psb_bt_cpu_vpu,
+ &ctx->vlc_packed_table);
+ DEBUG_FAILURE;
+ }
+ if (vaStatus == VA_STATUS_SUCCESS) {
+ void *vlc_packed_data_address;
+ if (0 == psb_buffer_map(&ctx->vlc_packed_table, &vlc_packed_data_address)) {
+ memcpy(vlc_packed_data_address, ui16H264VLCTableData, sizeof(ui16H264VLCTableData));
+ psb_buffer_unmap(&ctx->vlc_packed_table);
+ } else {
+ vaStatus = VA_STATUS_ERROR_ALLOCATION_FAILED;
+ DEBUG_FAILURE;
+ }
+ }
+
+ if (vaStatus != VA_STATUS_SUCCESS) {
+ pnw_H264_DestroyContext(obj_context);
+ }
+
+ return vaStatus;
+}
+
+static void pnw_H264_DestroyContext(
+ object_context_p obj_context)
+{
+ INIT_CONTEXT_H264
+ int i;
+
+ psb_buffer_destroy(&ctx->reference_cache);
+ psb_buffer_destroy(&ctx->preload_buffer);
+ psb_buffer_destroy(&ctx->vlc_packed_table);
+
+ if (ctx->pic_params) {
+ free(ctx->pic_params);
+ ctx->pic_params = NULL;
+ }
+ if (ctx->iq_matrix) {
+ free(ctx->iq_matrix);
+ ctx->iq_matrix = NULL;
+ }
+
+ if (ctx->slice_param_list) {
+ free(ctx->slice_param_list);
+ ctx->slice_param_list = NULL;
+ }
+
+ if (ctx->colocated_buffers) {
+ for (i = 0; i < ctx->colocated_buffers_idx; ++i)
+ psb_buffer_destroy(&(ctx->colocated_buffers[i]));
+
+ free(ctx->colocated_buffers);
+ ctx->colocated_buffers = NULL;
+ }
+
+ free(obj_context->format_data);
+ obj_context->format_data = NULL;
+}
+
+static VAStatus psb__H264_allocate_colocated_buffer(context_H264_p ctx, object_surface_p obj_surface, uint32_t size)
+{
+ psb_surface_p surface = obj_surface->psb_surface;
+
+ psb__information_message("pnw_H264: Allocating colocated buffer for surface %08x size = %08x\n", surface, size);
+
+ if (!GET_SURFACE_INFO_colocated_index(surface)) {
+ VAStatus vaStatus;
+ psb_buffer_p buf;
+ int index = ctx->colocated_buffers_idx;
+ if (index >= ctx->colocated_buffers_size) {
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+ buf = &(ctx->colocated_buffers[index]);
+ vaStatus = psb_buffer_create(ctx->obj_context->driver_data, size, psb_bt_vpu_only, buf);
+ if (VA_STATUS_SUCCESS != vaStatus) {
+ return vaStatus;
+ }
+ ctx->colocated_buffers_idx++;
+ SET_SURFACE_INFO_colocated_index(surface, index + 1); /* 0 means unset, index is offset by 1 */
+ }
+ return VA_STATUS_SUCCESS;
+}
+
+static psb_buffer_p psb__H264_lookup_colocated_buffer(context_H264_p ctx, psb_surface_p surface)
+{
+ psb__information_message("pnw_H264: Looking up colocated buffer for surface %08x\n", surface);
+ int index = GET_SURFACE_INFO_colocated_index(surface);
+ if (!index) {
+ return NULL;
+ }
+ return &(ctx->colocated_buffers[index-1]); /* 0 means unset, index is offset by 1 */
+}
+
+#ifdef DEBUG_TRACE
+#define P(x) psb__trace_message("PARAMS: " #x "\t= %08x (%d)\n", p->x, p->x)
+static void psb__H264_trace_pic_params(VAPictureParameterBufferH264 *p)
+{
+ P(CurrPic);
+ P(picture_width_in_mbs_minus1);
+ P(picture_height_in_mbs_minus1);
+ P(bit_depth_luma_minus8);
+ P(bit_depth_chroma_minus8);
+ P(num_ref_frames);
+ P(seq_fields);
+ P(num_slice_groups_minus1);
+ P(slice_group_map_type);
+ P(pic_init_qp_minus26);
+ P(chroma_qp_index_offset);
+ P(second_chroma_qp_index_offset);
+ P(pic_fields);
+ P(frame_num);
+}
+#endif
+
+
+static VAStatus psb__H264_process_picture_param(context_H264_p ctx, object_buffer_p obj_buffer)
+{
+ psb_surface_p target_surface = ctx->obj_context->current_render_target->psb_surface;
+ uint32_t reg_value;
+ VAStatus vaStatus;
+
+ ASSERT(obj_buffer->type == VAPictureParameterBufferType);
+ ASSERT(obj_buffer->num_elements == 1);
+ ASSERT(obj_buffer->size == sizeof(VAPictureParameterBufferH264));
+ ASSERT(target_surface);
+
+ if ((obj_buffer->num_elements != 1) ||
+ (obj_buffer->size != sizeof(VAPictureParameterBufferH264)) ||
+ (NULL == target_surface)) {
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ /* Transfer ownership of VAPictureParameterBufferH264 data */
+ VAPictureParameterBufferH264 *pic_params = (VAPictureParameterBufferH264 *) obj_buffer->buffer_data;
+ if (ctx->pic_params) {
+ free(ctx->pic_params);
+ }
+ ctx->pic_params = pic_params;
+ obj_buffer->buffer_data = NULL;
+ obj_buffer->size = 0;
+
+#ifdef DEBUG_TRACE
+ psb__H264_trace_pic_params(pic_params);
+#endif
+
+ /* Table 6-1 */
+ uint32_t sub_width_c = (pic_params->seq_fields.bits.chroma_format_idc > 2) ? 1 : 2;
+ uint32_t sub_height_c = (pic_params->seq_fields.bits.chroma_format_idc > 1) ? 1 : 2;
+
+ if (pic_params->seq_fields.bits.chroma_format_idc == 0) {
+ ctx->mb_width_c = 0;
+ ctx->mb_height_c = 0;
+ } else {
+ ctx->mb_width_c = 16 / sub_width_c; /* 6-1 */
+ ctx->mb_height_c = 16 / sub_height_c; /* 6-2 */
+ }
+
+ ctx->bit_depth_l = 8 + pic_params->bit_depth_luma_minus8; /* (7-1) */
+ ctx->qp_bd_offset_l = 6 * pic_params->bit_depth_luma_minus8; /* (7-2) */
+
+ ctx->bit_depth_c = 8 + pic_params->bit_depth_chroma_minus8; /* (7-3) */
+ ctx->qp_bd_offset_c = 6 * (pic_params->bit_depth_chroma_minus8 + pic_params->seq_fields.bits.residual_colour_transform_flag); /* (7-4) */
+
+ ctx->picture_width_mb = pic_params->picture_width_in_mbs_minus1 + 1;
+ ctx->picture_height_mb = pic_params->picture_height_in_mbs_minus1 + 1;
+
+ ctx->size_mb = ctx->picture_width_mb * ctx->picture_height_mb; /* (7-25) */
+
+ //uint32_t colocated_size = (ctx->picture_width_mb + extra_size) * (ctx->picture_height_mb + extra_size) * 192;
+ uint32_t colocated_size = ((ctx->size_mb + 100) * 128 + 0xfff) & ~0xfff;
+
+ vaStatus = psb__H264_allocate_colocated_buffer(ctx, ctx->obj_context->current_render_target, colocated_size);
+ if (VA_STATUS_SUCCESS != vaStatus) {
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ ctx->raw_mb_bits = 256 * ctx->bit_depth_l + 2 * ctx->mb_width_c * ctx->mb_height_c * ctx->bit_depth_c; /* (7-5) */
+
+ ctx->picture_width_samples_l = ctx->picture_width_mb * 16;
+ ctx->picture_width_samples_c = ctx->picture_width_mb * ctx->mb_width_c;
+
+ ctx->picture_height_samples_l = ctx->picture_height_mb * 16;
+ ctx->picture_height_samples_c = ctx->picture_height_mb * ctx->mb_height_c;
+
+ // BECAUSE OF
+ // sps->FrameHeightInMbs = ( 2 - sps->seq_fields.bits.frame_mbs_only_flag ) * sps->PicHeightInMapUnits; /* (7-15) */
+ ctx->picture_height_map_units = 1 + ctx->picture_height_mb / (2 - pic_params->seq_fields.bits.frame_mbs_only_flag);
+ ctx->picture_size_map_units = ctx->picture_width_mb * ctx->picture_height_map_units;/* (7-14) */
+
+ /* record just what type of picture we are */
+ if (pic_params->pic_fields.bits.field_pic_flag) {
+ if (pic_params->CurrPic.flags & VA_PICTURE_H264_BOTTOM_FIELD) {
+ ctx->pic_type = PICT_BOTTOM;
+ ctx->field_type = 1;
+ } else {
+ ctx->pic_type = PICT_TOP;
+ ctx->field_type = 0;
+ }
+ } else {
+ ctx->pic_type = PICT_FRAME;
+ ctx->field_type = pic_params->seq_fields.bits.mb_adaptive_frame_field_flag ? 3 : 2;
+ }
+
+ uint32_t i;
+ ctx->long_term_frame_flags = 0;
+ /* We go from high to low so that we are left with the lowest index */
+ for (i = pic_params->num_ref_frames; i--;) {
+ object_surface_p ref_surface = SURFACE(pic_params->ReferenceFrames[i].picture_id);
+ if (pic_params->ReferenceFrames[i].flags & VA_PICTURE_H264_BOTTOM_FIELD) {
+ ctx->long_term_frame_flags |= 0x01 << i;
+ }
+ if (ref_surface) {
+ SET_SURFACE_INFO_dpb_idx(ref_surface->psb_surface, i);
+ }
+ }
+
+ /* If the MB are not guarenteed to be consecutive - we must do a 2pass */
+ ctx->two_pass_mode = (pic_params->num_slice_groups_minus1 > 0) && (!ctx->pic_params->seq_fields.bits.mb_adaptive_frame_field_flag);
+
+ ctx->reg_SPS0 = 0;
+ REGIO_WRITE_FIELD_LITE(ctx->reg_SPS0, MSVDX_VEC_H264, CR_VEC_H264_BE_SPS0, H264_BE_SPS0_DEFAULT_MATRIX_FLAG, (ctx->profile == H264_BASELINE_PROFILE)); /* Always use suplied matrix non baseline otherwise use default*/
+ REGIO_WRITE_FIELD_LITE(ctx->reg_SPS0, MSVDX_VEC_H264, CR_VEC_H264_BE_SPS0, H264_BE_SPS0_2PASS_FLAG, ctx->two_pass_mode); /* Always 0 for VA - we cant handle otherwise yet */
+ /* Assume SGM_8BIT */
+ REGIO_WRITE_FIELD_LITE(ctx->reg_SPS0, MSVDX_VEC_H264, CR_VEC_H264_FE_SPS0, H264_FE_SPS0_4BIT_SGM_FLAG, 0);
+ REGIO_WRITE_FIELD_LITE(ctx->reg_SPS0, MSVDX_VEC_H264, CR_VEC_H264_BE_SPS0, BE_PROFILEIDC, ctx->profile_idc);
+ REGIO_WRITE_FIELD_LITE(ctx->reg_SPS0, MSVDX_VEC_H264, CR_VEC_H264_FE_SPS0, MIN_LUMA_BIPRED_SIZE_8X8, pic_params->seq_fields.bits.MinLumaBiPredSize8x8);
+ REGIO_WRITE_FIELD_LITE(ctx->reg_SPS0, MSVDX_VEC_H264, CR_VEC_H264_FE_SPS0, DIRECT_8X8_INFERENCE_FLAG, pic_params->seq_fields.bits.direct_8x8_inference_flag);
+ REGIO_WRITE_FIELD_LITE(ctx->reg_SPS0, MSVDX_VEC_H264, CR_VEC_H264_FE_SPS0, CHROMA_FORMAT_IDC, pic_params->seq_fields.bits.chroma_format_idc);
+ REGIO_WRITE_FIELD_LITE(ctx->reg_SPS0, MSVDX_VEC_H264, CR_VEC_H264_FE_SPS0, FRAME_MBS_ONLY_FLAG, pic_params->seq_fields.bits.frame_mbs_only_flag);
+ REGIO_WRITE_FIELD_LITE(ctx->reg_SPS0, MSVDX_VEC_H264, CR_VEC_H264_FE_SPS0, PICWIDTHINMBSLESS1, ctx->picture_width_mb - 1);
+
+ ctx->reg_PPS0 = 0;
+ REGIO_WRITE_FIELD_LITE(ctx->reg_PPS0, MSVDX_VEC_H264, CR_VEC_H264_FE_PPS0, TRANSFORM_8X8_MODE_FLAG, pic_params->pic_fields.bits.transform_8x8_mode_flag);
+ REGIO_WRITE_FIELD_LITE(ctx->reg_PPS0, MSVDX_VEC_H264, CR_VEC_H264_FE_PPS0, CONSTRAINED_INTRA_PRED_FLAG, pic_params->pic_fields.bits.constrained_intra_pred_flag);
+ REGIO_WRITE_FIELD_LITE(ctx->reg_PPS0, MSVDX_VEC_H264, CR_VEC_H264_FE_PPS0, ENTROPY_CODING_MODE_FLAG, pic_params->pic_fields.bits.entropy_coding_mode_flag);
+ REGIO_WRITE_FIELD_LITE(ctx->reg_PPS0, MSVDX_VEC_H264, CR_VEC_H264_FE_PPS0, NUM_SLICE_GROUPS_MINUS1, pic_params->num_slice_groups_minus1);
+ REGIO_WRITE_FIELD_LITE(ctx->reg_PPS0, MSVDX_VEC_H264, CR_VEC_H264_BE_PPS0, BE_WEIGHTED_BIPRED_IDC, pic_params->pic_fields.bits.weighted_bipred_idc);
+ REGIO_WRITE_FIELD_MASKEDLITE(ctx->reg_PPS0, MSVDX_VEC_H264, CR_VEC_H264_BE_PPS0, BE_CHROMA_QP_INDEX_OFFSET, pic_params->chroma_qp_index_offset);
+ REGIO_WRITE_FIELD_MASKEDLITE(ctx->reg_PPS0, MSVDX_VEC_H264, CR_VEC_H264_BE_PPS0, BE_SECOND_CHROMA_QP_INDEX_OFFSET, pic_params->second_chroma_qp_index_offset);
+
+ uint32_t PicHeightInMbs = ctx->picture_height_mb >> pic_params->pic_fields.bits.field_pic_flag; /* (7-23) */
+ uint32_t PicSizeInMbs = ctx->picture_width_mb * PicHeightInMbs; /* (7-26) */
+
+ ctx->reg_PIC0 = 0;
+ REGIO_WRITE_FIELD_LITE(ctx->reg_PIC0, MSVDX_VEC_H264, CR_VEC_H264_FE_CUR_PIC0, PICSIZEINMBSLESS1, PicSizeInMbs - 1);
+ REGIO_WRITE_FIELD_LITE(ctx->reg_PIC0, MSVDX_VEC_H264, CR_VEC_H264_FE_CUR_PIC0, PICHEIGHTINMBSLESS1, PicHeightInMbs - 1);
+ /* TODO */
+ REGIO_WRITE_FIELD_LITE(ctx->reg_PIC0, MSVDX_VEC_H264, CR_VEC_H264_BE_CUR_PIC0, BE_REFERENCE_FLAG, IS_USED_AS_REFERENCE(pic_params->CurrPic.flags) ? 1 : 0);
+ REGIO_WRITE_FIELD_LITE(ctx->reg_PIC0, MSVDX_VEC_H264, CR_VEC_H264_FE_CUR_PIC0, MBAFFFRAMEFLAG, pic_params->seq_fields.bits.mb_adaptive_frame_field_flag);
+ REGIO_WRITE_FIELD_LITE(ctx->reg_PIC0, MSVDX_VEC_H264, CR_VEC_H264_FE_CUR_PIC0, FIELD_PIC_FLAG, pic_params->pic_fields.bits.field_pic_flag);
+ REGIO_WRITE_FIELD_LITE(ctx->reg_PIC0, MSVDX_VEC_H264, CR_VEC_H264_FE_CUR_PIC0, BOTTOM_FIELD_FLAG, pic_params->CurrPic.flags & VA_PICTURE_H264_BOTTOM_FIELD ? 1 : 0);
+
+ /* Record some info about current picture */
+ reg_value = 0;
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_H264, CR_VEC_H264_BE_COL_PIC0, COL_NOTFRAMEFLAG, (PICT_FRAME != ctx->pic_type) ? 1 : 0);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_H264, CR_VEC_H264_BE_COL_PIC0, COL_MBAFFFRAMEFLAG, pic_params->seq_fields.bits.mb_adaptive_frame_field_flag);
+ SET_SURFACE_INFO_col_pic_params(target_surface, reg_value);
+
+ if (pic_params->seq_fields.bits.chroma_format_idc == 0) {
+ vaStatus = psb_surface_set_chroma(target_surface, 128);
+ if (VA_STATUS_SUCCESS != vaStatus) {
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+ }
+
+ return VA_STATUS_SUCCESS;
+}
+
+static VAStatus psb__H264_process_iq_matrix(context_H264_p ctx, object_buffer_p obj_buffer)
+{
+ ASSERT(obj_buffer->type == VAIQMatrixBufferType);
+ ASSERT(obj_buffer->num_elements == 1);
+ ASSERT(obj_buffer->size == sizeof(VAIQMatrixBufferH264));
+
+ if ((obj_buffer->num_elements != 1) ||
+ (obj_buffer->size != sizeof(VAIQMatrixBufferH264))) {
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ /* Transfer ownership of VAIQMatrixBufferH264 data */
+ if (ctx->iq_matrix) {
+ free(ctx->iq_matrix);
+ }
+ ctx->iq_matrix = (VAIQMatrixBufferH264 *) obj_buffer->buffer_data;
+ obj_buffer->buffer_data = NULL;
+ obj_buffer->size = 0;
+
+ return VA_STATUS_SUCCESS;
+}
+
+static VAStatus psb__H264_process_slice_group_map(context_H264_p ctx, object_buffer_p obj_buffer)
+{
+ ASSERT(obj_buffer->type == VASliceGroupMapBufferType);
+ ASSERT(obj_buffer->num_elements == 1);
+// ASSERT(obj_buffer->size == ...);
+
+ if (obj_buffer->num_elements != 1) {
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ ctx->slice_group_map_buffer = obj_buffer->psb_buffer;
+
+ return VA_STATUS_SUCCESS;
+}
+
+#define SCALING_LIST_4x4_SIZE ((4*4))
+#define SCALING_LIST_8x8_SIZE ((8*8))
+
+static void psb__H264_build_SCA_chunk(context_H264_p ctx)
+{
+ VAIQMatrixBufferH264 dummy_iq_matrix;
+ psb_cmdbuf_p cmdbuf = ctx->obj_context->cmdbuf;
+
+ VAIQMatrixBufferH264 *iq_matrix = ctx->iq_matrix;
+
+ if (!iq_matrix) {
+ psb__information_message("H264: No IQ matrix received for frame. Sending dummy IQ matrix.\n");
+ iq_matrix = &dummy_iq_matrix;
+ memset(iq_matrix, 0, sizeof(VAIQMatrixBufferH264));
+ }
+
+ psb_cmdbuf_rendec_start(cmdbuf, REG_MSVDX_VEC_IQRAM_OFFSET);
+
+ /* 8x8 Inter Y */
+ psb_cmdbuf_rendec_write_block(cmdbuf, iq_matrix->ScalingList8x8[1], SCALING_LIST_8x8_SIZE);
+
+ /* 8x8 Intra Y */
+ psb_cmdbuf_rendec_write_block(cmdbuf, iq_matrix->ScalingList8x8[0], SCALING_LIST_8x8_SIZE);
+
+ /* 4x4 Intra Y */
+ psb_cmdbuf_rendec_write_block(cmdbuf, iq_matrix->ScalingList4x4[0], SCALING_LIST_4x4_SIZE);
+
+ /* 4x4 Inter Y */
+ psb_cmdbuf_rendec_write_block(cmdbuf, iq_matrix->ScalingList4x4[3], SCALING_LIST_4x4_SIZE);
+
+ /* 4x4 Inter Cb */
+ psb_cmdbuf_rendec_write_block(cmdbuf, iq_matrix->ScalingList4x4[4], SCALING_LIST_4x4_SIZE);
+
+ /* 4x4 Intra Cb */
+ psb_cmdbuf_rendec_write_block(cmdbuf, iq_matrix->ScalingList4x4[1], SCALING_LIST_4x4_SIZE);
+
+ /* 4x4 Inter Cr */
+ psb_cmdbuf_rendec_write_block(cmdbuf, iq_matrix->ScalingList4x4[5], SCALING_LIST_4x4_SIZE);
+
+ /* 4x4 Intra Cr */
+ psb_cmdbuf_rendec_write_block(cmdbuf, iq_matrix->ScalingList4x4[2], SCALING_LIST_4x4_SIZE);
+
+ psb_cmdbuf_rendec_end(cmdbuf);
+}
+
+static void psb__H264_build_picture_order_chunk(context_H264_p ctx)
+{
+ psb_cmdbuf_p cmdbuf = ctx->obj_context->cmdbuf;
+ VAPictureParameterBufferH264 *pic_params = ctx->pic_params;
+ uint32_t reg_value;
+ int i;
+
+ /* CHUNK: POC */
+ /* send Picture Order Counts (b frame only?) */
+ /* maybe need a state variable to track if this has already been sent for the frame */
+ psb_cmdbuf_rendec_start(cmdbuf, RENDEC_REGISTER_OFFSET(MSVDX_VEC, H264_CR_VEC_H264_BE_FOC0));
+
+ reg_value = 0;
+ REGIO_WRITE_FIELD_LITE(reg_value, MSVDX_VEC_H264, CR_VEC_H264_BE_FOC0, TOPFIELDORDERCNT_CURR,
+ SIGNTRUNC(pic_params->CurrPic.TopFieldOrderCnt));
+ psb_cmdbuf_rendec_write(cmdbuf, reg_value);
+
+ reg_value = 0;
+ REGIO_WRITE_FIELD_LITE(reg_value, MSVDX_VEC_H264, CR_VEC_H264_BE_FOC1, BOTTOMFIELDORDERCNT_CURR,
+ SIGNTRUNC(pic_params->CurrPic.BottomFieldOrderCnt));
+ psb_cmdbuf_rendec_write(cmdbuf, reg_value);
+
+ if (pic_params->num_ref_frames > 16) {
+ psb__error_message("Invalid reference number %d, set to 16\n", pic_params->num_ref_frames);
+ pic_params->num_ref_frames = 16;
+ }
+
+ for (i = 0; i < pic_params->num_ref_frames; i++) {
+ reg_value = 0;
+ REGIO_WRITE_FIELD_LITE(reg_value, MSVDX_VEC_H264, CR_VEC_H264_BE_TOP_FOC, TOPFIELDORDERCNT,
+ SIGNTRUNC(pic_params->ReferenceFrames[i].TopFieldOrderCnt));
+ psb_cmdbuf_rendec_write(cmdbuf, reg_value);
+
+ reg_value = 0;
+ REGIO_WRITE_FIELD_LITE(reg_value, MSVDX_VEC_H264, CR_VEC_H264_BE_BOT_FOC, BOTTOMFIELDORDERCNT,
+ SIGNTRUNC(pic_params->ReferenceFrames[i].BottomFieldOrderCnt));
+ psb_cmdbuf_rendec_write(cmdbuf, reg_value);
+ }
+
+ psb_cmdbuf_rendec_end(cmdbuf);
+}
+
+static void psb__H264_build_B_slice_chunk(context_H264_p ctx, VASliceParameterBufferH264 *slice_param)
+{
+ psb_cmdbuf_p cmdbuf = ctx->obj_context->cmdbuf;
+ VAPictureParameterBufferH264 *pic_params = ctx->pic_params;
+ uint32_t reg_value;
+ int i;
+
+ psb_cmdbuf_rendec_start(cmdbuf, RENDEC_REGISTER_OFFSET(MSVDX_VEC, H264_CR_VEC_H264_BE_COL_PIC0));
+
+ /* Colocated picture is picture 0 in list 1*/
+ object_surface_p colocated_surface = SURFACE(slice_param->RefPicList1[0].picture_id);
+ if (colocated_surface) {
+ uint32_t bottom_field_flag;
+ if (pic_params->pic_fields.bits.field_pic_flag) {
+ bottom_field_flag = (slice_param->RefPicList1[0].flags & VA_PICTURE_H264_BOTTOM_FIELD) ? 1 : 0;
+ } else {
+ /* when current pic is a frame col bottom field flag is different */
+ IMG_INT32 i32Cur;
+ IMG_INT32 i32Top, i32Bot;
+ IMG_INT32 i32TopAbsDiffPoc, i32BotAbsDiffPoc;
+
+ /* current pic */
+ i32Top = pic_params->CurrPic.TopFieldOrderCnt;
+ i32Bot = pic_params->CurrPic.BottomFieldOrderCnt;
+ i32Cur = (i32Top < i32Bot) ? i32Top : i32Bot;
+
+ /* col pic */
+ i32Top = slice_param->RefPicList1[0].TopFieldOrderCnt;
+ i32Bot = slice_param->RefPicList1[0].BottomFieldOrderCnt;
+
+ i32TopAbsDiffPoc = (i32Cur < i32Top) ? i32Top - i32Cur : i32Cur - i32Top;
+ i32BotAbsDiffPoc = (i32Cur < i32Bot) ? i32Bot - i32Cur : i32Cur - i32Bot;
+
+ bottom_field_flag = (i32TopAbsDiffPoc < i32BotAbsDiffPoc) ? 0 : 1;
+ }
+
+ reg_value = GET_SURFACE_INFO_col_pic_params(colocated_surface->psb_surface);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_H264, CR_VEC_H264_BE_COL_PIC0, COL_BOTTOM_FIELD_FLAG, bottom_field_flag);
+ psb_cmdbuf_rendec_write(cmdbuf, reg_value);
+
+ psb_buffer_p colocated_target_buffer = psb__H264_lookup_colocated_buffer(ctx, colocated_surface->psb_surface);
+ ASSERT(colocated_target_buffer);
+ if (colocated_target_buffer) {
+ psb_cmdbuf_rendec_write_address(cmdbuf, colocated_target_buffer, 0);
+ } else {
+ /* This is an error */
+ psb_cmdbuf_rendec_write(cmdbuf, 0);
+ }
+ } else {
+ /* Need some better error handling here */
+ psb_cmdbuf_rendec_write(cmdbuf, 0);
+ psb_cmdbuf_rendec_write(cmdbuf, 0xDEADBEEF);
+ }
+
+ /* Calculate inverse index for reference pictures */
+ {
+ IMG_UINT8 list0_inverse[32];
+ memset(list0_inverse, 0xff, 32); /* Unused entries get 0xff */
+
+ if (slice_param->num_ref_idx_l0_active_minus1 + 1 > 32) {
+ psb__error_message("num_ref_idx_l0_active_minus1(%d) is too big. Set it with 31\n",
+ slice_param->num_ref_idx_l0_active_minus1);
+ slice_param->num_ref_idx_l0_active_minus1 = 31;
+ }
+
+ if (slice_param->num_ref_idx_l0_active_minus1 > 30)
+ slice_param->num_ref_idx_l0_active_minus1 = 30;
+ for (i = slice_param->num_ref_idx_l0_active_minus1 + 1; i--;) {
+ object_surface_p surface = SURFACE(slice_param->RefPicList0[i].picture_id);
+ if (surface) {
+ uint32_t dpb_idx = GET_SURFACE_INFO_dpb_idx(surface->psb_surface);
+ if (dpb_idx < 16) {
+ if (slice_param->RefPicList0[i].flags & VA_PICTURE_H264_BOTTOM_FIELD) {
+ dpb_idx |= 0x10;
+ }
+ list0_inverse[dpb_idx] = i;
+ }
+ }
+ }
+ for (i = 0; i < 32; i += 4) {
+ reg_value = 0;
+ reg_value |= list0_inverse[i];
+ reg_value |= list0_inverse[i+1] << 8;
+ reg_value |= list0_inverse[i+2] << 16;
+ reg_value |= list0_inverse[i+3] << 24;
+ psb_cmdbuf_rendec_write(cmdbuf, reg_value);
+ }
+ }
+
+ if (slice_param->num_ref_idx_l1_active_minus1 > 28)
+ slice_param->num_ref_idx_l1_active_minus1 = 28;
+
+ /* Write Ref List 1 - but only need the valid ones */
+ for (i = 0; i <= slice_param->num_ref_idx_l1_active_minus1; i += 4) {
+ reg_value = 0;
+ reg_value |= PICTURE2INDEX(ctx, &slice_param->RefPicList1[i]);
+ reg_value |= PICTURE2INDEX(ctx, &slice_param->RefPicList1[i+1]) << 8;
+ reg_value |= PICTURE2INDEX(ctx, &slice_param->RefPicList1[i+2]) << 16;
+ reg_value |= PICTURE2INDEX(ctx, &slice_param->RefPicList1[i+3]) << 24;
+ psb_cmdbuf_rendec_write(cmdbuf, reg_value);
+ }
+
+ psb_cmdbuf_rendec_end(cmdbuf);
+}
+
+static void psb__H264_build_register(context_H264_p ctx, VASliceParameterBufferH264 *slice_param)
+{
+ psb_cmdbuf_p cmdbuf = ctx->obj_context->cmdbuf;
+ uint32_t reg_value;
+
+ psb_cmdbuf_reg_start_block(cmdbuf);
+
+ reg_value = 0;
+ REGIO_WRITE_FIELD_LITE(reg_value, MSVDX_VEC, CR_VEC_ENTDEC_FE_CONTROL, ENTDEC_FE_PROFILE, ctx->profile);
+ REGIO_WRITE_FIELD_LITE(reg_value, MSVDX_VEC, CR_VEC_ENTDEC_FE_CONTROL, ENTDEC_FE_MODE, 1); /* 1 - H.264 */
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC, CR_VEC_ENTDEC_FE_CONTROL), reg_value);
+
+ /* write the FE registers */
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC_H264, CR_VEC_H264_FE_SPS0), ctx->reg_SPS0);
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC_H264, CR_VEC_H264_FE_PPS0), ctx->reg_PPS0);
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC_H264, CR_VEC_H264_FE_CUR_PIC0), ctx->reg_PIC0;);
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC_H264, CR_VEC_H264_FE_SLICE0), ctx->slice0_params);
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC_H264, CR_VEC_H264_FE_SLICE1), ctx->slice1_params);
+
+ reg_value = 0;
+ REGIO_WRITE_FIELD_LITE(reg_value, MSVDX_VEC_H264, CR_VEC_H264_FE_SLICE2, FIRST_MB_IN_SLICE, slice_param->first_mb_in_slice);
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC_H264, CR_VEC_H264_FE_SLICE2), reg_value);
+
+ if (ctx->pic_params->num_slice_groups_minus1 >= 1) {
+ ASSERT(ctx->slice_group_map_buffer);
+ if (ctx->slice_group_map_buffer) {
+ psb_cmdbuf_reg_set_address(cmdbuf, REGISTER_OFFSET(MSVDX_VEC_H264, CR_VEC_H264_FE_BASE_ADDR_SGM),
+ ctx->slice_group_map_buffer, 0);
+ }
+ }
+ psb_cmdbuf_reg_end_block(cmdbuf);
+}
+
+/* Programme the Alt output if there is a rotation*/
+static void psb__H264_setup_alternative_frame(context_H264_p ctx)
+{
+ uint32_t cmd;
+ psb_cmdbuf_p cmdbuf = ctx->obj_context->cmdbuf;
+ psb_surface_p target_surface = ctx->obj_context->current_render_target->psb_surface;
+ psb_surface_p rotate_surface = ctx->obj_context->current_render_target->psb_surface_rotate;
+ object_context_p obj_context = ctx->obj_context;
+
+ if (rotate_surface->extra_info[5] != obj_context->rotate)
+ psb__error_message("Display rotate mode does not match surface rotate mode!\n");
+
+
+ /* CRendecBlock RendecBlk( mCtrlAlloc , RENDEC_REGISTER_OFFSET(MSVDX_CMDS, VC1_LUMA_RANGE_MAPPING_BASE_ADDRESS) ); */
+ psb_cmdbuf_rendec_start(cmdbuf, RENDEC_REGISTER_OFFSET(MSVDX_CMDS, VC1_LUMA_RANGE_MAPPING_BASE_ADDRESS));
+
+ psb_cmdbuf_rendec_write_address(cmdbuf, &rotate_surface->buf, rotate_surface->buf.buffer_ofs);
+ psb_cmdbuf_rendec_write_address(cmdbuf, &rotate_surface->buf, rotate_surface->buf.buffer_ofs + rotate_surface->chroma_offset);
+
+ psb_cmdbuf_rendec_end(cmdbuf);
+
+ /* Set the rotation registers */
+ psb_cmdbuf_rendec_start(cmdbuf, RENDEC_REGISTER_OFFSET(MSVDX_CMDS, ALTERNATIVE_OUTPUT_PICTURE_ROTATION));
+ cmd = 0;
+ REGIO_WRITE_FIELD_LITE(cmd, MSVDX_CMDS, ALTERNATIVE_OUTPUT_PICTURE_ROTATION , ALT_PICTURE_ENABLE, 1);
+ REGIO_WRITE_FIELD_LITE(cmd, MSVDX_CMDS, ALTERNATIVE_OUTPUT_PICTURE_ROTATION , ROTATION_ROW_STRIDE, rotate_surface->stride_mode);
+ REGIO_WRITE_FIELD_LITE(cmd, MSVDX_CMDS, ALTERNATIVE_OUTPUT_PICTURE_ROTATION , RECON_WRITE_DISABLE, 0); /* FIXME Always generate Rec */
+ REGIO_WRITE_FIELD_LITE(cmd, MSVDX_CMDS, ALTERNATIVE_OUTPUT_PICTURE_ROTATION , ROTATION_MODE, rotate_surface->extra_info[5]);
+ psb_cmdbuf_rendec_write(cmdbuf, cmd);
+ *ctx->alt_output_flags = cmd;
+
+ cmd = 0;
+ REGIO_WRITE_FIELD_LITE(cmd, MSVDX_CMDS, EXTENDED_ROW_STRIDE, EXT_ROW_STRIDE, target_surface->stride / 64);
+ psb_cmdbuf_rendec_write(cmdbuf, cmd);
+
+ psb_cmdbuf_rendec_end(cmdbuf);
+
+ RELOC(*ctx->p_range_mapping_base0, rotate_surface->buf.buffer_ofs, &rotate_surface->buf);
+ RELOC(*ctx->p_range_mapping_base1, rotate_surface->buf.buffer_ofs + rotate_surface->chroma_offset, &rotate_surface->buf);
+}
+
+
+static void psb__H264_build_rendec_params(context_H264_p ctx, VASliceParameterBufferH264 *slice_param)
+{
+ psb_cmdbuf_p cmdbuf = ctx->obj_context->cmdbuf;
+ psb_surface_p target_surface = ctx->obj_context->current_render_target->psb_surface;
+ VAPictureParameterBufferH264 *pic_params = ctx->pic_params;
+ uint32_t reg_value;
+ int i;
+
+ /* psb_cmdbuf_rendec_start_block( cmdbuf ); */
+
+ /* CHUNK: Entdec back-end profile and level */
+ {
+ psb_cmdbuf_rendec_start(cmdbuf, RENDEC_REGISTER_OFFSET(MSVDX_VEC, CR_VEC_ENTDEC_BE_CONTROL));
+
+ reg_value = 0;
+ REGIO_WRITE_FIELD_LITE(reg_value, MSVDX_VEC, CR_VEC_ENTDEC_BE_CONTROL, ENTDEC_BE_PROFILE, ctx->profile);
+ REGIO_WRITE_FIELD_LITE(reg_value, MSVDX_VEC, CR_VEC_ENTDEC_BE_CONTROL, ENTDEC_BE_MODE, 1); /* 1 - H.264 */
+ psb_cmdbuf_rendec_write(cmdbuf, reg_value);
+
+ psb_cmdbuf_rendec_end(cmdbuf);
+ }
+
+ /* CHUNK: SEQ Registers */
+ /* send Slice Data for every slice */
+ /* MUST be the last slice sent */
+ psb_cmdbuf_rendec_start(cmdbuf, RENDEC_REGISTER_OFFSET(MSVDX_VEC, H264_CR_VEC_H264_BE_SPS0));
+
+ psb_cmdbuf_rendec_write(cmdbuf, ctx->reg_SPS0);
+ psb_cmdbuf_rendec_write(cmdbuf, ctx->reg_PPS0);
+ psb_cmdbuf_rendec_write(cmdbuf, ctx->reg_PIC0);
+ psb_cmdbuf_rendec_write(cmdbuf, ctx->slice0_params);
+ psb_cmdbuf_rendec_write(cmdbuf, ctx->slice1_params);
+
+ /* 5.5.75. VEC_H264_BE_BASE_ADDR_CUR_PIC */
+ psb_buffer_p colocated_target_buffer = psb__H264_lookup_colocated_buffer(ctx, target_surface);
+ ASSERT(colocated_target_buffer);
+ if (colocated_target_buffer) {
+ psb_cmdbuf_rendec_write_address(cmdbuf, colocated_target_buffer, colocated_target_buffer->buffer_ofs);
+ } else {
+ /* This is an error */
+ psb_cmdbuf_rendec_write(cmdbuf, 0);
+ }
+
+ reg_value = 0;
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_H264, CR_VEC_H264_BE_REF0, BE_LONGTERMFRAMEFLAG, ctx->long_term_frame_flags);
+ psb_cmdbuf_rendec_write(cmdbuf, reg_value);
+
+ psb_cmdbuf_rendec_end(cmdbuf);
+
+#warning "TODO: MUST be done after fe slice1 (which gives MB address) "
+ /* REGIO_WRITE_REGISTER(0, MSVDX_VEC_H264, CR_VEC_H264_FE_BASE_ADDR_SGM, gui32SliceGroupType6BaseAddressHack); */
+
+ /* CHUNK: SCA */
+ /* send Scaling Lists in High Profile for first slice*/
+ if (ctx->profile == H264_HIGH_PROFILE) {
+ psb__H264_build_SCA_chunk(ctx);
+ }
+
+ /* CHUNK: POC */
+ /* send Picture Order Counts (b frame only?) */
+ /* maybe need a state variable to track if this has already been sent for the frame */
+ if (slice_param->slice_type == ST_B) {
+ psb__H264_build_picture_order_chunk(ctx);
+ }
+
+ /* CHUNK: BIN */
+ /* send B-slice information for B-slices */
+ if (slice_param->slice_type == ST_B) {
+ psb__H264_build_B_slice_chunk(ctx, slice_param);
+ }
+
+ /* CHUNK: PIN */
+ /* send P+B-slice information for P and B slices */
+ if (slice_param->slice_type == ST_B || slice_param->slice_type == ST_P) {
+ psb_cmdbuf_rendec_start(cmdbuf, RENDEC_REGISTER_OFFSET(MSVDX_VEC, H264_CR_VEC_H264_BE_LIST0));
+
+ if (slice_param->num_ref_idx_l0_active_minus1 > (32 - 4)) {
+ psb__error_message("num_ref_idx_l0_active_minus1(%d) is too big. Set it with 28\n",
+ slice_param->num_ref_idx_l0_active_minus1);
+ slice_param->num_ref_idx_l0_active_minus1 = 28;
+ }
+
+ for (i = 0; i <= slice_param->num_ref_idx_l0_active_minus1; i += 4) {
+ reg_value = 0;
+ reg_value |= PICTURE2INDEX(ctx, &slice_param->RefPicList0[i]);
+ reg_value |= PICTURE2INDEX(ctx, &slice_param->RefPicList0[i+1]) << 8;
+ reg_value |= PICTURE2INDEX(ctx, &slice_param->RefPicList0[i+2]) << 16;
+ reg_value |= PICTURE2INDEX(ctx, &slice_param->RefPicList0[i+3]) << 24;
+ psb_cmdbuf_rendec_write(cmdbuf, reg_value);
+ }
+
+ psb_cmdbuf_rendec_end(cmdbuf);
+ }
+
+ /* CHUNK: DPB */
+ /* send DPB information (for P and B slices?) only needed once per frame */
+// if ( sh->slice_type == ST_B || sh->slice_type == ST_P )
+ if (pic_params->num_ref_frames > 0) {
+ int i;
+ IMG_BOOL is_used[16];
+ psb_cmdbuf_rendec_start(cmdbuf, RENDEC_REGISTER_OFFSET(MSVDX_CMDS, REFERENCE_PICTURE_BASE_ADDRESSES));
+
+ /* Mark all surfaces as unused */
+ memset(is_used, 0, sizeof(is_used));
+
+ if (slice_param->num_ref_idx_l0_active_minus1 > 31)
+ slice_param->num_ref_idx_l0_active_minus1 = 31;
+ /* Mark onlys frame that are actualy used */
+ for (i = 0; i <= slice_param->num_ref_idx_l0_active_minus1; i++) {
+ object_surface_p ref_surface = SURFACE(slice_param->RefPicList0[i].picture_id);
+ if (ref_surface) {
+ uint32_t idx = GET_SURFACE_INFO_dpb_idx(ref_surface->psb_surface);
+ if (idx < 16) {
+ is_used[idx] = IMG_TRUE;
+ }
+ }
+ }
+
+ if (slice_param->num_ref_idx_l1_active_minus1 > 31)
+ slice_param->num_ref_idx_l1_active_minus1 = 31;
+
+ /* Mark onlys frame that are actualy used */
+ for (i = 0; i <= slice_param->num_ref_idx_l1_active_minus1; i++) {
+ object_surface_p ref_surface = SURFACE(slice_param->RefPicList1[i].picture_id);
+ if (ref_surface) {
+ uint32_t idx = GET_SURFACE_INFO_dpb_idx(ref_surface->psb_surface);
+ if (idx < 16) {
+ is_used[idx] = IMG_TRUE;
+ }
+ }
+ }
+
+ if (pic_params->num_ref_frames > 16)
+ pic_params->num_ref_frames = 16;
+ /* Only load used surfaces */
+ for (i = 0; i < pic_params->num_ref_frames; i++) {
+ object_surface_p ref_surface = SURFACE(pic_params->ReferenceFrames[i].picture_id);
+ psb_buffer_p buffer;
+
+ if (NULL == ref_surface) {
+ psb__error_message("%s L%d Invalide reference surface handle\n",
+ __FUNCTION__, __LINE__);
+ return;
+ }
+
+ buffer = ref_surface->psb_surface->ref_buf;
+ psb__information_message("pic_params->ReferenceFrames[%d] = %08x --> %08x frame_idx:0x%08x flags:%02x TopFieldOrderCnt: 0x%08x BottomFieldOrderCnt: 0x%08x %s\n",
+ i,
+ pic_params->ReferenceFrames[i].picture_id,
+ ref_surface,
+ pic_params->ReferenceFrames[i].frame_idx,
+ pic_params->ReferenceFrames[i].flags,
+ pic_params->ReferenceFrames[i].TopFieldOrderCnt,
+ pic_params->ReferenceFrames[i].BottomFieldOrderCnt,
+ is_used[i] ? "used" : "");
+
+ if (ref_surface && is_used[i])
+ // GET_SURFACE_INFO_is_used(ref_surface->psb_surface))
+ {
+ psb_cmdbuf_rendec_write_address(cmdbuf, buffer,
+ buffer->buffer_ofs);
+ psb_cmdbuf_rendec_write_address(cmdbuf, buffer,
+ buffer->buffer_ofs +
+ ref_surface->psb_surface->chroma_offset);
+ } else {
+ psb_cmdbuf_rendec_write(cmdbuf, 0xdeadbeef);
+ psb_cmdbuf_rendec_write(cmdbuf, 0xdeadbeef);
+ }
+ }
+ psb_cmdbuf_rendec_end(cmdbuf);
+ }
+
+ /* CHUNK: MVA and MVB */
+ /* works as long as weighted factors A and B commands remain the same */
+ if ((pic_params->pic_fields.bits.weighted_pred_flag && (slice_param->slice_type == ST_P)) ||
+ ((pic_params->pic_fields.bits.weighted_bipred_idc != 0) && (slice_param->slice_type == ST_B))) {
+ IMG_UINT32 num_ref_0 = slice_param->num_ref_idx_l0_active_minus1;
+
+ psb_cmdbuf_rendec_start(cmdbuf, RENDEC_REGISTER_OFFSET(MSVDX_CMDS, H264_WEIGHTED_FACTORS_A));
+
+ if (num_ref_0 > 31)
+ num_ref_0 = 31;
+
+ /* weighted factors */
+ for (i = 0; i <= num_ref_0; i++) {
+ reg_value = 0;
+ REGIO_WRITE_FIELD_MASKEDLITE(reg_value, MSVDX_CMDS, H264_WEIGHTED_FACTORS_A, CR_WEIGHT_A, slice_param->chroma_weight_l0[i][1]);/* Cr - 1 */
+ REGIO_WRITE_FIELD_MASKEDLITE(reg_value, MSVDX_CMDS, H264_WEIGHTED_FACTORS_A, CB_WEIGHT_A, slice_param->chroma_weight_l0[i][0]);/* Cb - 0 */
+ REGIO_WRITE_FIELD_MASKEDLITE(reg_value, MSVDX_CMDS, H264_WEIGHTED_FACTORS_A, Y_WEIGHT_A, slice_param->luma_weight_l0[i]);
+
+ psb_cmdbuf_rendec_write(cmdbuf, reg_value);
+ }
+ /* pad remainder */
+ for (; i < 32; i++) {
+ psb_cmdbuf_rendec_write(cmdbuf, 0);
+ }
+
+ /* weighted offsets */
+ for (i = 0; i <= num_ref_0; i++) {
+ reg_value = 0;
+ REGIO_WRITE_FIELD_MASKEDLITE(reg_value, MSVDX_CMDS, H264_WEIGHTED_OFFSET_A, CR_OFFSET_A, slice_param->chroma_offset_l0[i][1]);/* Cr - 1 */
+ REGIO_WRITE_FIELD_MASKEDLITE(reg_value, MSVDX_CMDS, H264_WEIGHTED_OFFSET_A, CB_OFFSET_A, slice_param->chroma_offset_l0[i][0]);/* Cb - 0 */
+ REGIO_WRITE_FIELD_MASKEDLITE(reg_value, MSVDX_CMDS, H264_WEIGHTED_OFFSET_A, Y_OFFSET_A, slice_param->luma_offset_l0[i]);
+
+ psb_cmdbuf_rendec_write(cmdbuf, reg_value);
+ }
+ /* pad remainder */
+ for (; i < 32; i++) {
+ psb_cmdbuf_rendec_write(cmdbuf, 0);
+ }
+ psb_cmdbuf_rendec_end(cmdbuf);
+
+ if (slice_param->slice_type == ST_B) {
+ IMG_UINT32 num_ref_1 = slice_param->num_ref_idx_l1_active_minus1;
+
+ psb_cmdbuf_rendec_start(cmdbuf, RENDEC_REGISTER_OFFSET(MSVDX_CMDS, H264_WEIGHTED_FACTORS_B));
+
+ if (num_ref_1 > 31) {
+ psb__error_message("num_ref_1 shouldn't be larger than 31\n");
+ num_ref_1 = 31;
+ }
+
+ /* weighted factors */
+ for (i = 0; i <= num_ref_1; i++) {
+ reg_value = 0;
+ REGIO_WRITE_FIELD_MASKEDLITE(reg_value, MSVDX_CMDS, H264_WEIGHTED_FACTORS_B, CR_WEIGHT_B, slice_param->chroma_weight_l1[i][1]);/* Cr - 1 */
+ REGIO_WRITE_FIELD_MASKEDLITE(reg_value, MSVDX_CMDS, H264_WEIGHTED_FACTORS_B, CB_WEIGHT_B, slice_param->chroma_weight_l1[i][0]);/* Cb - 0 */
+ REGIO_WRITE_FIELD_MASKEDLITE(reg_value, MSVDX_CMDS, H264_WEIGHTED_FACTORS_B, Y_WEIGHT_B, slice_param->luma_weight_l1[i]);
+
+ psb_cmdbuf_rendec_write(cmdbuf, reg_value);
+ }
+ /* pad remainder */
+ for (; i < 32; i++) {
+ psb_cmdbuf_rendec_write(cmdbuf, 0);
+ }
+
+ /* weighted offsets */
+ for (i = 0; i <= num_ref_1; i++) {
+ reg_value = 0;
+ REGIO_WRITE_FIELD_MASKEDLITE(reg_value, MSVDX_CMDS, H264_WEIGHTED_OFFSET_B, CR_OFFSET_B, slice_param->chroma_offset_l1[i][1]);/* Cr - 1 */
+ REGIO_WRITE_FIELD_MASKEDLITE(reg_value, MSVDX_CMDS, H264_WEIGHTED_OFFSET_B, CB_OFFSET_B, slice_param->chroma_offset_l1[i][0]);/* Cb - 0 */
+ REGIO_WRITE_FIELD_MASKEDLITE(reg_value, MSVDX_CMDS, H264_WEIGHTED_OFFSET_B, Y_OFFSET_B, slice_param->luma_offset_l1[i]);
+
+ psb_cmdbuf_rendec_write(cmdbuf, reg_value);
+ }
+ /* pad remainder */
+ for (; i < 32; i++) {
+ psb_cmdbuf_rendec_write(cmdbuf, 0);
+ }
+ psb_cmdbuf_rendec_end(cmdbuf);
+ }
+ }
+
+
+ /* CHUNK: SEQ Commands 1 */
+ /* send Slice Data for every slice */
+ /* MUST be the last slice sent */
+ psb_cmdbuf_rendec_start(cmdbuf, RENDEC_REGISTER_OFFSET(MSVDX_CMDS, DISPLAY_PICTURE_SIZE));
+
+ reg_value = 0;
+ REGIO_WRITE_FIELD_LITE(reg_value, MSVDX_CMDS, DISPLAY_PICTURE_SIZE, DISPLAY_PICTURE_HEIGHT, (ctx->picture_height_mb * 16) - 1);
+ REGIO_WRITE_FIELD_LITE(reg_value, MSVDX_CMDS, DISPLAY_PICTURE_SIZE, DISPLAY_PICTURE_WIDTH, (ctx->picture_width_mb * 16) - 1);
+ psb_cmdbuf_rendec_write(cmdbuf, reg_value);
+
+ reg_value = 0;
+ REGIO_WRITE_FIELD_LITE(reg_value, MSVDX_CMDS, CODED_PICTURE_SIZE, CODED_PICTURE_HEIGHT, (ctx->picture_height_mb * 16) - 1);
+ REGIO_WRITE_FIELD_LITE(reg_value, MSVDX_CMDS, CODED_PICTURE_SIZE, CODED_PICTURE_WIDTH, (ctx->picture_width_mb * 16) - 1);
+ psb_cmdbuf_rendec_write(cmdbuf, reg_value);
+
+ reg_value = 0;
+ // TODO: Must check how these should be set
+ REGIO_WRITE_FIELD_LITE(reg_value, MSVDX_CMDS, OPERATING_MODE, CHROMA_INTERLEAVED, 0);
+ REGIO_WRITE_FIELD_LITE(reg_value, MSVDX_CMDS, OPERATING_MODE, ROW_STRIDE, target_surface->stride_mode);
+ REGIO_WRITE_FIELD_LITE(reg_value, MSVDX_CMDS, OPERATING_MODE, CODEC_PROFILE, ctx->profile);
+ REGIO_WRITE_FIELD_LITE(reg_value, MSVDX_CMDS, OPERATING_MODE, CODEC_MODE, 1); /* H.264 */
+ REGIO_WRITE_FIELD_LITE(reg_value, MSVDX_CMDS, OPERATING_MODE, ASYNC_MODE, (ctx->two_pass_mode && !ctx->pic_params->seq_fields.bits.mb_adaptive_frame_field_flag));
+ REGIO_WRITE_FIELD_LITE(reg_value, MSVDX_CMDS, OPERATING_MODE, CHROMA_FORMAT, pic_params->seq_fields.bits.chroma_format_idc);
+ psb_cmdbuf_rendec_write(cmdbuf, reg_value);
+
+ ctx->obj_context->operating_mode = reg_value;
+
+ if ((ctx->deblock_mode == DEBLOCK_INTRA_OOLD) && ctx->two_pass_mode) { /* Need to mark which buf is to be used as ref*/
+ /* LUMA_RECONSTRUCTED_PICTURE_BASE_ADDRESSES */
+ psb_cmdbuf_rendec_write_address(cmdbuf, target_surface->in_loop_buf, target_surface->in_loop_buf->buffer_ofs);
+
+ /* CHROMA_RECONSTRUCTED_PICTURE_BASE_ADDRESSES */
+ psb_cmdbuf_rendec_write_address(cmdbuf, target_surface->in_loop_buf, target_surface->in_loop_buf->buffer_ofs + target_surface->chroma_offset);
+ target_surface->ref_buf = target_surface->in_loop_buf;
+ } else {
+ psb_cmdbuf_rendec_write_address(cmdbuf, &target_surface->buf, target_surface->buf.buffer_ofs);
+ psb_cmdbuf_rendec_write_address(cmdbuf, &target_surface->buf, target_surface->buf.buffer_ofs + target_surface->chroma_offset);
+ target_surface->ref_buf = &target_surface->buf;
+ }
+ /* Aux Msb Buffer base address: H.264 does not use this command */
+ reg_value = 0;
+ psb_cmdbuf_rendec_write(cmdbuf, reg_value);
+
+ /* Intra Reference Cache */
+ psb_cmdbuf_rendec_write_address(cmdbuf, &ctx->reference_cache, 0);
+
+ reg_value = 0;
+ REGIO_WRITE_FIELD_LITE(reg_value, MSVDX_CMDS, MC_CACHE_CONFIGURATION, CONFIG_REF_OFFSET, CACHE_REF_OFFSET);
+ REGIO_WRITE_FIELD_LITE(reg_value, MSVDX_CMDS, MC_CACHE_CONFIGURATION, CONFIG_ROW_OFFSET, CACHE_ROW_OFFSET);
+ psb_cmdbuf_rendec_write(cmdbuf, reg_value);
+
+ /* Vc1 Intensity compensation: H.264 does not use this command */
+ reg_value = 0;
+ psb_cmdbuf_rendec_write(cmdbuf, reg_value);
+
+ reg_value = 0;
+ REGIO_WRITE_FIELD_LITE(reg_value, MSVDX_CMDS, H264_WEIGHTED_FACTOR_DENOMINATOR, C_LOG2_WEIGHT_DENOM, slice_param->chroma_log2_weight_denom);
+ REGIO_WRITE_FIELD_LITE(reg_value, MSVDX_CMDS, H264_WEIGHTED_FACTOR_DENOMINATOR, Y_LOG2_WEIGHT_DENOM, slice_param->luma_log2_weight_denom);
+ psb_cmdbuf_rendec_write(cmdbuf, reg_value);
+
+ psb_cmdbuf_rendec_end(cmdbuf);
+
+ /* CHUNK: SEQ Commands 2 */
+ /* send Slice Data for every slice */
+ /* MUST be the last slice sent */
+ {
+ IMG_UINT32 ui32Mode = pic_params->pic_fields.bits.weighted_pred_flag | (pic_params->pic_fields.bits.weighted_bipred_idc << 1);
+
+ psb_cmdbuf_rendec_start(cmdbuf, RENDEC_REGISTER_OFFSET(MSVDX_CMDS, SLICE_PARAMS));
+
+ reg_value = 0;
+ REGIO_WRITE_FIELD_LITE(reg_value, MSVDX_CMDS, SLICE_PARAMS, CONSTRAINED_INTRA_PRED, pic_params->pic_fields.bits.constrained_intra_pred_flag);
+ REGIO_WRITE_FIELD_LITE(reg_value, MSVDX_CMDS, SLICE_PARAMS, MODE_CONFIG, ui32Mode);
+ REGIO_WRITE_FIELD_LITE(reg_value, MSVDX_CMDS, SLICE_PARAMS, DISABLE_DEBLOCK_FILTER_IDC, slice_param->disable_deblocking_filter_idc);
+ REGIO_WRITE_FIELD_MASKEDLITE(reg_value, MSVDX_CMDS, SLICE_PARAMS, SLICE_ALPHA_CO_OFFSET_DIV2, slice_param->slice_alpha_c0_offset_div2);
+ REGIO_WRITE_FIELD_MASKEDLITE(reg_value, MSVDX_CMDS, SLICE_PARAMS, SLICE_BETA_OFFSET_DIV2, slice_param->slice_beta_offset_div2);
+ REGIO_WRITE_FIELD_LITE(reg_value, MSVDX_CMDS, SLICE_PARAMS, SLICE_FIELD_TYPE, ctx->field_type);
+ REGIO_WRITE_FIELD_LITE(reg_value, MSVDX_CMDS, SLICE_PARAMS, SLICE_CODE_TYPE, aSliceTypeVAtoMsvdx[slice_param->slice_type % 5]);
+ psb_cmdbuf_rendec_write(cmdbuf, reg_value);
+
+ /* Store slice parameters in header */
+ *(ctx->p_slice_params) = reg_value;
+
+ psb_cmdbuf_rendec_end(cmdbuf);
+ }
+
+ /* If this a two pass mode deblock, then we will perform the rotation as part of the
+ * 2nd pass deblock procedure
+ */
+ if (!ctx->two_pass_mode && ctx->obj_context->rotate != VA_ROTATION_NONE) /* FIXME field coded should not issue */
+ psb__H264_setup_alternative_frame(ctx);
+
+ /* psb_cmdbuf_rendec_end_block( cmdbuf ); */
+}
+
+/*
+ * Adds a VASliceParameterBuffer to the list of slice params
+ */
+static VAStatus psb__H264_add_slice_param(context_H264_p ctx, object_buffer_p obj_buffer)
+{
+ ASSERT(obj_buffer->type == VASliceParameterBufferType);
+ if (ctx->slice_param_list_idx >= ctx->slice_param_list_size) {
+ void *new_list;
+ ctx->slice_param_list_size += 8;
+ new_list = realloc(ctx->slice_param_list,
+ sizeof(object_buffer_p) * ctx->slice_param_list_size);
+ if (NULL == new_list) {
+ return VA_STATUS_ERROR_ALLOCATION_FAILED;
+ }
+ ctx->slice_param_list = (object_buffer_p*) new_list;
+ }
+ ctx->slice_param_list[ctx->slice_param_list_idx] = obj_buffer;
+ ctx->slice_param_list_idx++;
+ return VA_STATUS_SUCCESS;
+}
+
+static void psb__H264_write_kick(context_H264_p ctx, VASliceParameterBufferH264 *slice_param)
+{
+ psb_cmdbuf_p cmdbuf = ctx->obj_context->cmdbuf;
+
+ (void) slice_param; /* Unused for now */
+
+ *cmdbuf->cmd_idx++ = CMD_COMPLETION;
+}
+/*
+static void psb__H264_FE_state(context_H264_p ctx)
+{
+ uint32_t lldma_record_offset;
+ psb_cmdbuf_p cmdbuf = ctx->obj_context->cmdbuf;
+
+ *cmdbuf->cmd_idx++ = CMD_HEADER_VC1;
+
+ ctx->p_range_mapping_base0 = cmdbuf->cmd_idx++;
+ ctx->p_range_mapping_base1 = cmdbuf->cmd_idx++;
+ ctx->p_slice_params = cmdbuf->cmd_idx;
+ *cmdbuf->cmd_idx++ = 0;
+
+ lldma_record_offset = psb_cmdbuf_lldma_create( cmdbuf, &(ctx->preload_buffer), 0,
+ sizeof(PRELOAD), 0, LLDMA_TYPE_H264_PRELOAD_SAVE );
+ RELOC(*cmdbuf->cmd_idx, lldma_record_offset, &(cmdbuf->buf));
+ cmdbuf->cmd_idx++;
+
+ lldma_record_offset = psb_cmdbuf_lldma_create( cmdbuf, &(ctx->preload_buffer), 0,
+ sizeof(PRELOAD), 0, LLDMA_TYPE_H264_PRELOAD_RESTORE );
+ RELOC(*cmdbuf->cmd_idx, lldma_record_offset, &(cmdbuf->buf));
+ cmdbuf->cmd_idx++;
+
+ ctx->slice_first_pic_last = cmdbuf->cmd_idx++;
+}
+*/
+
+static void psb__H264_FE_state(context_H264_p ctx)
+{
+ uint32_t lldma_record_offset;
+ psb_cmdbuf_p cmdbuf = ctx->obj_context->cmdbuf;
+
+ *cmdbuf->cmd_idx++ = CMD_HEADER_VC1;
+ ctx->p_slice_params = cmdbuf->cmd_idx;
+ *cmdbuf->cmd_idx++ = 0;
+
+
+ lldma_record_offset = psb_cmdbuf_lldma_create(cmdbuf, &(ctx->preload_buffer), 0,
+ sizeof(PRELOAD), 0, LLDMA_TYPE_H264_PRELOAD_SAVE);
+ RELOC(*cmdbuf->cmd_idx, lldma_record_offset, &(cmdbuf->buf));
+ cmdbuf->cmd_idx++;
+
+ lldma_record_offset = psb_cmdbuf_lldma_create(cmdbuf, &(ctx->preload_buffer), 0,
+ sizeof(PRELOAD), 0, LLDMA_TYPE_H264_PRELOAD_RESTORE);
+ RELOC(*cmdbuf->cmd_idx, lldma_record_offset, &(cmdbuf->buf));
+ cmdbuf->cmd_idx++;
+
+ ctx->slice_first_pic_last = cmdbuf->cmd_idx++;
+
+ ctx->p_range_mapping_base0 = cmdbuf->cmd_idx++;
+ ctx->p_range_mapping_base1 = cmdbuf->cmd_idx++;
+
+ ctx->alt_output_flags = cmdbuf->cmd_idx++;
+ *ctx->alt_output_flags = 0;
+}
+
+static void psb__H264_preprocess_slice(context_H264_p ctx,
+ VASliceParameterBufferH264 *slice_param)
+{
+ VAPictureParameterBufferH264 *pic_params = ctx->pic_params;
+ uint32_t slice_qpy;
+
+ ctx->first_mb_x = slice_param->first_mb_in_slice % ctx->picture_width_mb;
+ ctx->first_mb_y = slice_param->first_mb_in_slice / ctx->picture_width_mb;
+ ctx->slice0_params = 0;
+ ctx->slice1_params = 0;
+
+ ASSERT(pic_params);
+ if (!pic_params) {
+ /* This is an error */
+ return;
+ }
+
+ if (!pic_params->pic_fields.bits.field_pic_flag && pic_params->seq_fields.bits.mb_adaptive_frame_field_flag) {
+ /* If in MBAFF mode multiply MB y-address by 2 */
+ ctx->first_mb_y *= 2;
+ }
+
+ slice_qpy = 26 + pic_params->pic_init_qp_minus26 + slice_param->slice_qp_delta; /* (7-27) */
+
+ REGIO_WRITE_FIELD_LITE(ctx->slice0_params, MSVDX_VEC_H264, CR_VEC_H264_BE_SLICE0, BE_DIRECT_SPATIAL_MV_PRED_FLAG, slice_param->direct_spatial_mv_pred_flag);
+ REGIO_WRITE_FIELD_LITE(ctx->slice0_params, MSVDX_VEC_H264, CR_VEC_H264_BE_SLICE0, H264_BE_SLICE0_DISABLE_DEBLOCK_FILTER_IDC, slice_param->disable_deblocking_filter_idc);
+ REGIO_WRITE_FIELD_MASKEDLITE(ctx->slice0_params, MSVDX_VEC_H264, CR_VEC_H264_BE_SLICE0, H264_BE_SLICE0_ALPHA_CO_OFFSET_DIV2, slice_param->slice_alpha_c0_offset_div2);
+ REGIO_WRITE_FIELD_MASKEDLITE(ctx->slice0_params, MSVDX_VEC_H264, CR_VEC_H264_BE_SLICE0, H264_BE_SLICE0_BETA_OFFSET_DIV2, slice_param->slice_beta_offset_div2);
+ REGIO_WRITE_FIELD_LITE(ctx->slice0_params, MSVDX_VEC_H264, CR_VEC_H264_BE_SLICE0, H264_BE_SLICE0_FIELD_TYPE, ctx->field_type);
+ REGIO_WRITE_FIELD_LITE(ctx->slice0_params, MSVDX_VEC_H264, CR_VEC_H264_FE_SLICE0, SLICETYPE, aSliceTypeVAtoMsvdx[ slice_param->slice_type % 5]);
+ REGIO_WRITE_FIELD_LITE(ctx->slice0_params, MSVDX_VEC_H264, CR_VEC_H264_FE_SLICE0, CABAC_INIT_IDC, slice_param->cabac_init_idc);
+ REGIO_WRITE_FIELD_LITE(ctx->slice0_params, MSVDX_VEC_H264, CR_VEC_H264_FE_SLICE0, SLICECOUNT, ctx->slice_count);
+
+ REGIO_WRITE_FIELD_LITE(ctx->slice1_params, MSVDX_VEC_H264, CR_VEC_H264_FE_SLICE1, FIRST_MB_IN_SLICE_X, ctx->first_mb_x);
+ REGIO_WRITE_FIELD_LITE(ctx->slice1_params, MSVDX_VEC_H264, CR_VEC_H264_FE_SLICE1, FIRST_MB_IN_SLICE_Y, ctx->first_mb_y);
+ REGIO_WRITE_FIELD_LITE(ctx->slice1_params, MSVDX_VEC_H264, CR_VEC_H264_FE_SLICE1, SLICEQPY, slice_qpy);
+ REGIO_WRITE_FIELD_LITE(ctx->slice1_params, MSVDX_VEC_H264, CR_VEC_H264_FE_SLICE1, NUM_REF_IDX_L0_ACTIVE_MINUS1, slice_param->num_ref_idx_l0_active_minus1);
+ REGIO_WRITE_FIELD_LITE(ctx->slice1_params, MSVDX_VEC_H264, CR_VEC_H264_FE_SLICE1, NUM_REF_IDX_L1_ACTIVE_MINUS1, slice_param->num_ref_idx_l1_active_minus1);
+
+ IMG_BOOL deblocker_disable = (slice_param->disable_deblocking_filter_idc == 1);
+
+ if (deblocker_disable) {
+ if (ctx->obj_context->is_oold) {
+ ctx->deblock_mode = DEBLOCK_INTRA_OOLD;
+ ctx->two_pass_mode = 1;
+ REGIO_WRITE_FIELD_LITE(ctx->reg_SPS0, MSVDX_VEC_H264, CR_VEC_H264_BE_SPS0, H264_BE_SPS0_2PASS_FLAG, ctx->two_pass_mode);
+ } else
+ ctx->deblock_mode = DEBLOCK_STD;
+ } else {
+ ctx->deblock_mode = DEBLOCK_STD;
+ }
+}
+
+/* **************************************************************************************************************** */
+/* Prepacked calculates VLC table offsets and reg address */
+/* **************************************************************************************************************** */
+static const IMG_UINT32 ui32H264VLCTableRegValPair[] = {
+ (REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR0) + 0x00000000), 0x00026000,
+ (REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR0) + 0x00000004), 0x000738a0,
+ (REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR0) + 0x00000008), 0x000828f4,
+ (REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR0) + 0x0000000c), 0x000a312d,
+ (REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR0) + 0x00000010), 0x000b5959,
+ (REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR0) + 0x00000014), 0x000c517b,
+ (REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR0) + 0x00000018), 0x000d1196,
+ (REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR0) + 0x0000001c), 0x000db1ad,
+ (REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR0) + 0x00000020), 0x000e21be,
+ (REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR0) + 0x00000024), 0x000e59c8,
+ (REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR0) + 0x00000028), 0x000e79cd,
+ (REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR0) + 0x0000002c), 0x000eb1d3,
+ (REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR0) + 0x00000030), 0x000ed1d8,
+ (REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR0) + 0x00000034), 0x000f09dd,
+ (REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR0) + 0x00000038), 0x000f71e7,
+ (REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR0) + 0x0000003c), 0x000001f6,
+ (REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR0) + 0x00000040), 0x1256a4dd,
+ (REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR0) + 0x00000044), 0x01489292,
+ (REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR0) + 0x00000048), 0x11248050,
+ (REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR0) + 0x0000004c), 0x00000002,
+ (REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR0) + 0x00000050), 0x00002a02,
+ (REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR0) + 0x00000054), 0x0108282a,
+};
+
+
+static void psb__H264_write_VLC_tables(context_H264_p ctx)
+{
+ psb_cmdbuf_p cmdbuf = ctx->obj_context->cmdbuf;
+ int i;
+
+ psb_cmdbuf_skip_start_block(cmdbuf, SKIP_ON_CONTEXT_SWITCH);
+
+ /* VLC Table */
+ /* Write a LLDMA Cmd to transfer VLD Table data */
+ psb_cmdbuf_lldma_write_cmdbuf(cmdbuf, &ctx->vlc_packed_table, 0,
+ sizeof(ui16H264VLCTableData),
+ 0, LLDMA_TYPE_VLC_TABLE);
+
+ /* Writes the VLD offsets. mtx need only do this on context switch*/
+ psb_cmdbuf_reg_start_block(cmdbuf);
+
+ for (i = 0; i < (sizeof(ui32H264VLCTableRegValPair) / sizeof(ui32H264VLCTableRegValPair[0])) ; i += 2) {
+ psb_cmdbuf_reg_set(cmdbuf, ui32H264VLCTableRegValPair[i] , ui32H264VLCTableRegValPair[i + 1]);
+ }
+
+ psb_cmdbuf_reg_end_block(cmdbuf);
+
+ psb_cmdbuf_skip_end_block(cmdbuf);
+}
+
+static VAStatus psb__H264_process_slice(context_H264_p ctx,
+ VASliceParameterBufferH264 *slice_param,
+ object_buffer_p obj_buffer)
+{
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+
+ ASSERT((obj_buffer->type == VASliceDataBufferType) || (obj_buffer->type == VAProtectedSliceDataBufferType));
+
+ psb__information_message("H264 process slice %d\n", ctx->slice_count);
+ psb__information_message(" profile = %s\n", profile2str[ctx->profile]);
+ psb__information_message(" size = %08x offset = %08x\n", slice_param->slice_data_size, slice_param->slice_data_offset);
+ psb__information_message(" first mb = %d macroblock offset = %d\n", slice_param->first_mb_in_slice, slice_param->slice_data_bit_offset);
+ psb__information_message(" slice_data_flag = %d\n", slice_param->slice_data_flag);
+ psb__information_message(" coded size = %dx%d\n", ctx->picture_width_mb, ctx->picture_height_mb);
+ psb__information_message(" slice type = %s\n", slice2str[(slice_param->slice_type % 5)]);
+ psb__information_message(" weighted_pred_flag = %d weighted_bipred_idc = %d\n", ctx->pic_params->pic_fields.bits.weighted_pred_flag, ctx->pic_params->pic_fields.bits.weighted_bipred_idc);
+
+ if ((slice_param->slice_data_flag == VA_SLICE_DATA_FLAG_BEGIN) ||
+ (slice_param->slice_data_flag == VA_SLICE_DATA_FLAG_ALL)) {
+ if (0 == slice_param->slice_data_size) {
+ vaStatus = VA_STATUS_ERROR_UNKNOWN;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+ ASSERT(!ctx->split_buffer_pending);
+
+ psb__H264_preprocess_slice(ctx, slice_param);
+
+ /* Initialise the command buffer */
+ /* TODO: Reuse current command buffer until full */
+ psb_context_get_next_cmdbuf(ctx->obj_context);
+
+ psb__H264_FE_state(ctx);
+
+ psb__H264_write_VLC_tables(ctx);
+
+ psb_cmdbuf_lldma_write_bitstream(ctx->obj_context->cmdbuf,
+ obj_buffer->psb_buffer,
+ obj_buffer->psb_buffer->buffer_ofs + slice_param->slice_data_offset,
+ slice_param->slice_data_size,
+ slice_param->slice_data_bit_offset,
+ CMD_ENABLE_RBDU_EXTRACTION);
+
+ if (slice_param->slice_data_flag == VA_SLICE_DATA_FLAG_BEGIN) {
+ ctx->split_buffer_pending = TRUE;
+ }
+ } else {
+ ASSERT(ctx->split_buffer_pending);
+ ASSERT(0 == slice_param->slice_data_offset);
+ /* Create LLDMA chain to continue buffer */
+ if (slice_param->slice_data_size) {
+ psb_cmdbuf_lldma_write_bitstream_chained(ctx->obj_context->cmdbuf,
+ obj_buffer->psb_buffer,
+ slice_param->slice_data_size);
+ }
+ }
+
+ if ((slice_param->slice_data_flag == VA_SLICE_DATA_FLAG_ALL) ||
+ (slice_param->slice_data_flag == VA_SLICE_DATA_FLAG_END)) {
+ if (slice_param->slice_data_flag == VA_SLICE_DATA_FLAG_END) {
+ ASSERT(ctx->split_buffer_pending);
+ }
+
+ psb__H264_build_register(ctx, slice_param);
+
+ psb__H264_build_rendec_params(ctx, slice_param);
+
+ psb__H264_write_kick(ctx, slice_param);
+
+ ctx->split_buffer_pending = FALSE;
+ ctx->obj_context->video_op = psb_video_vld;
+ ctx->obj_context->flags = 0;
+ if (ctx->slice_count == 0) {
+ ctx->obj_context->flags |= FW_VA_RENDER_IS_FIRST_SLICE;
+ }
+ if (ctx->pic_params->seq_fields.bits.mb_adaptive_frame_field_flag) {
+ ctx->obj_context->flags |= FW_VA_RENDER_IS_H264_MBAFF;
+ }
+ if (ctx->two_pass_mode) {
+ ctx->obj_context->flags |= FW_VA_RENDER_IS_TWO_PASS_DEBLOCK;
+ }
+
+ ctx->obj_context->first_mb = (ctx->first_mb_y << 8) | ctx->first_mb_x;
+ ctx->obj_context->last_mb = (((ctx->picture_height_mb >> ctx->pic_params->pic_fields.bits.field_pic_flag) - 1) << 8) | (ctx->picture_width_mb - 1);
+ *ctx->slice_first_pic_last = (ctx->obj_context->first_mb << 16) | (ctx->obj_context->last_mb);
+
+ if (psb_context_submit_cmdbuf(ctx->obj_context)) {
+ vaStatus = VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ ctx->slice_count++;
+ }
+ return vaStatus;
+}
+
+static VAStatus psb__H264_process_slice_data(context_H264_p ctx, object_buffer_p obj_buffer)
+{
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ VASliceParameterBufferH264 *slice_param;
+ int buffer_idx = 0;
+ int element_idx = 0;
+
+ ASSERT((obj_buffer->type == VASliceDataBufferType) || (obj_buffer->type == VAProtectedSliceDataBufferType));
+
+ ASSERT(ctx->pic_params);
+ ASSERT(ctx->slice_param_list_idx);
+
+ if (!ctx->pic_params) {
+ /* Picture params missing */
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+ if ((NULL == obj_buffer->psb_buffer) ||
+ (0 == obj_buffer->size)) {
+ /* We need to have data in the bitstream buffer */
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ while (buffer_idx < ctx->slice_param_list_idx) {
+ object_buffer_p slice_buf = ctx->slice_param_list[buffer_idx];
+ if (element_idx >= slice_buf->num_elements) {
+ /* Move to next buffer */
+ element_idx = 0;
+ buffer_idx++;
+ continue;
+ }
+
+ slice_param = (VASliceParameterBufferH264 *) slice_buf->buffer_data;
+ slice_param += element_idx;
+ element_idx++;
+ vaStatus = psb__H264_process_slice(ctx, slice_param, obj_buffer);
+ if (vaStatus != VA_STATUS_SUCCESS) {
+ DEBUG_FAILURE;
+ break;
+ }
+ }
+ ctx->slice_param_list_idx = 0;
+
+ return vaStatus;
+}
+
+static VAStatus pnw_H264_BeginPicture(
+ object_context_p obj_context)
+{
+ INIT_CONTEXT_H264
+
+ if (ctx->pic_params) {
+ free(ctx->pic_params);
+ ctx->pic_params = NULL;
+ }
+ if (ctx->iq_matrix) {
+ free(ctx->iq_matrix);
+ ctx->iq_matrix = NULL;
+ }
+ ctx->slice_count = 0;
+ ctx->slice_group_map_buffer = NULL;
+ ctx->deblock_mode = DEBLOCK_NONE;
+
+ return VA_STATUS_SUCCESS;
+}
+
+static VAStatus pnw_H264_RenderPicture(
+ object_context_p obj_context,
+ object_buffer_p *buffers,
+ int num_buffers)
+{
+ int i;
+ INIT_CONTEXT_H264
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+
+ for (i = 0; i < num_buffers; i++) {
+ object_buffer_p obj_buffer = buffers[i];
+
+ switch (obj_buffer->type) {
+ case VAPictureParameterBufferType:
+ psb__information_message("pnw_H264_RenderPicture got VAPictureParameterBuffer\n");
+ vaStatus = psb__H264_process_picture_param(ctx, obj_buffer);
+ DEBUG_FAILURE;
+ break;
+
+ case VAIQMatrixBufferType:
+ psb__information_message("pnw_H264_RenderPicture got VAIQMatrixBufferType\n");
+ vaStatus = psb__H264_process_iq_matrix(ctx, obj_buffer);
+ DEBUG_FAILURE;
+ break;
+
+ case VASliceGroupMapBufferType:
+ psb__information_message("pnw_H264_RenderPicture got VASliceGroupMapBufferType\n");
+ vaStatus = psb__H264_process_slice_group_map(ctx, obj_buffer);
+ DEBUG_FAILURE;
+ break;
+
+ case VASliceParameterBufferType:
+ psb__information_message("pnw_H264_RenderPicture got VASliceParameterBufferType\n");
+ vaStatus = psb__H264_add_slice_param(ctx, obj_buffer);
+ DEBUG_FAILURE;
+ break;
+
+ case VASliceDataBufferType:
+ case VAProtectedSliceDataBufferType:
+ psb__information_message("pnw_H264_RenderPicture got %s\n", SLICEDATA_BUFFER_TYPE(obj_buffer->type));
+ vaStatus = psb__H264_process_slice_data(ctx, obj_buffer);
+ DEBUG_FAILURE;
+ break;
+
+ default:
+ vaStatus = VA_STATUS_ERROR_UNKNOWN;
+ DEBUG_FAILURE;
+ }
+ if (vaStatus != VA_STATUS_SUCCESS) {
+ break;
+ }
+ }
+
+ return vaStatus;
+}
+
+static VAStatus pnw_H264_EndPicture(
+ object_context_p obj_context)
+{
+ INIT_CONTEXT_H264
+
+ if (ctx->two_pass_mode) {
+ psb_surface_p target_surface = ctx->obj_context->current_render_target->psb_surface;
+ psb_buffer_p colocated_target_buffer = psb__H264_lookup_colocated_buffer(ctx, target_surface);
+ psb_surface_p rotate_surface = ctx->obj_context->current_render_target->psb_surface_rotate;
+ uint32_t rotation_flags = 0;
+ uint32_t ext_stride_a = 0;
+
+ psb__information_message("pnw_H264_EndPicture got two pass mode frame\n");
+ if (ctx->obj_context->rotate != VA_ROTATION_NONE) {
+ ASSERT(rotate_surface);
+ REGIO_WRITE_FIELD_LITE(rotation_flags, MSVDX_CMDS, ALTERNATIVE_OUTPUT_PICTURE_ROTATION , ALT_PICTURE_ENABLE, 1);
+ REGIO_WRITE_FIELD_LITE(rotation_flags, MSVDX_CMDS, ALTERNATIVE_OUTPUT_PICTURE_ROTATION , ROTATION_ROW_STRIDE, rotate_surface->stride_mode);
+ REGIO_WRITE_FIELD_LITE(rotation_flags, MSVDX_CMDS, ALTERNATIVE_OUTPUT_PICTURE_ROTATION , RECON_WRITE_DISABLE, 0); /* FIXME Always generate Rec */
+ REGIO_WRITE_FIELD_LITE(rotation_flags, MSVDX_CMDS, ALTERNATIVE_OUTPUT_PICTURE_ROTATION , ROTATION_MODE, rotate_surface->extra_info[5]);
+ }
+
+ REGIO_WRITE_FIELD_LITE(ext_stride_a, MSVDX_CMDS, EXTENDED_ROW_STRIDE, EXT_ROW_STRIDE, target_surface->stride / 64);
+
+ /* Issue two pass deblock cmd, HW can handle deblock instead of host when using DE2.x firmware */
+ if (ctx->deblock_mode == DEBLOCK_STD) {
+ if (psb_context_submit_hw_deblock(ctx->obj_context,
+ &target_surface->buf,
+ rotate_surface ? (&rotate_surface->buf) : NULL,
+ colocated_target_buffer,
+ ctx->picture_width_mb,
+ ctx->picture_height_mb,
+ rotation_flags,
+ ctx->field_type,
+ ext_stride_a,
+ target_surface->chroma_offset + target_surface->buf.buffer_ofs,
+ rotate_surface ? (rotate_surface->chroma_offset + rotate_surface->buf.buffer_ofs) : 0,
+ ctx->deblock_mode == DEBLOCK_INTRA_OOLD)) {
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+ } else if (ctx->deblock_mode == DEBLOCK_INTRA_OOLD) {
+ psb_buffer_p buffer_dst;
+ uint32_t chroma_offset_dst;
+
+ if (ctx->obj_context->rotate == VA_ROTATION_NONE) {
+ buffer_dst = &target_surface->buf;
+ chroma_offset_dst = target_surface->chroma_offset;
+ } else {
+ if (!rotate_surface)
+ ASSERT(0);
+
+ buffer_dst = &rotate_surface->buf;
+ chroma_offset_dst = rotate_surface->chroma_offset;
+ }
+
+ if (psb_context_submit_hw_deblock(ctx->obj_context,
+ target_surface->in_loop_buf,
+ buffer_dst,
+ colocated_target_buffer,
+ ctx->picture_width_mb,
+ ctx->picture_height_mb,
+ rotation_flags,
+ ctx->field_type,
+ ext_stride_a,
+ target_surface->chroma_offset + target_surface->buf.buffer_ofs,
+ chroma_offset_dst,
+ ctx->deblock_mode == DEBLOCK_INTRA_OOLD)) {
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+ }
+ }
+
+ if (psb_context_flush_cmdbuf(ctx->obj_context)) {
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ if (ctx->pic_params) {
+ free(ctx->pic_params);
+ ctx->pic_params = NULL;
+ }
+
+ if (ctx->iq_matrix) {
+ free(ctx->iq_matrix);
+ ctx->iq_matrix = NULL;
+ }
+
+ return VA_STATUS_SUCCESS;
+}
+
+struct format_vtable_s pnw_H264_vtable = {
+queryConfigAttributes:
+ pnw_H264_QueryConfigAttributes,
+validateConfig:
+ pnw_H264_ValidateConfig,
+createContext:
+ pnw_H264_CreateContext,
+destroyContext:
+ pnw_H264_DestroyContext,
+beginPicture:
+ pnw_H264_BeginPicture,
+renderPicture:
+ pnw_H264_RenderPicture,
+endPicture:
+ pnw_H264_EndPicture
+};
diff --git a/src/pnw_H264.h b/src/pnw_H264.h
new file mode 100644
index 0000000..6abe846
--- /dev/null
+++ b/src/pnw_H264.h
@@ -0,0 +1,38 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ * Waldo Bastian <waldo.bastian@intel.com>
+ * Zeng Li <zeng.li@intel.com>
+ *
+ */
+
+#ifndef _PNW_H264_H_
+#define _PNW_H264_H_
+
+#include "psb_drv_video.h"
+
+extern struct format_vtable_s pnw_H264_vtable;
+
+#endif /* _PNW_H264_H_ */
diff --git a/src/pnw_H264ES.c b/src/pnw_H264ES.c
new file mode 100644
index 0000000..fdf7b00
--- /dev/null
+++ b/src/pnw_H264ES.c
@@ -0,0 +1,854 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ * Elaine Wang <elaine.wang@intel.com>
+ * Zeng Li <zeng.li@intel.com>
+ *
+ */
+
+
+#include <errno.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <stdint.h>
+#include <string.h>
+
+#include "psb_def.h"
+#include "psb_surface.h"
+#include "psb_cmdbuf.h"
+#include "pnw_hostcode.h"
+#include "pnw_H264ES.h"
+#include "pnw_hostheader.h"
+
+#define TOPAZ_H264_MAX_BITRATE 50000000
+
+#define INIT_CONTEXT_H264ES context_ENC_p ctx = (context_ENC_p) obj_context->format_data
+#define SURFACE(id) ((object_surface_p) object_heap_lookup( &ctx->obj_context->driver_data->surface_heap, id ))
+#define BUFFER(id) ((object_buffer_p) object_heap_lookup( &ctx->obj_context->driver_data->buffer_heap, id ))
+
+
+static void pnw_H264ES_QueryConfigAttributes(
+ VAProfile profile,
+ VAEntrypoint entrypoint,
+ VAConfigAttrib *attrib_list,
+ int num_attribs)
+{
+ int i;
+
+ psb__information_message("pnw_H264ES_QueryConfigAttributes\n");
+
+ /* RateControl attributes */
+ for (i = 0; i < num_attribs; i++) {
+ switch (attrib_list[i].type) {
+ case VAConfigAttribRTFormat:
+ break;
+
+ case VAConfigAttribRateControl:
+ attrib_list[i].value = VA_RC_NONE | VA_RC_CBR | VA_RC_VBR | VA_RC_VCM;
+ break;
+
+ default:
+ attrib_list[i].value = VA_ATTRIB_NOT_SUPPORTED;
+ break;
+ }
+ }
+}
+
+
+static VAStatus pnw_H264ES_ValidateConfig(
+ object_config_p obj_config)
+{
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ psb__information_message("pnw_H264ES_ValidateConfig\n");
+
+ return vaStatus;
+
+}
+
+
+static VAStatus pnw_H264ES_CreateContext(
+ object_context_p obj_context,
+ object_config_p obj_config)
+{
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ context_ENC_p ctx;
+ int i;
+ unsigned int eRCmode;
+
+ psb__information_message("pnw_H264ES_CreateContext\n");
+
+ vaStatus = pnw_CreateContext(obj_context, obj_config, 0);
+
+ if (VA_STATUS_SUCCESS != vaStatus)
+ return VA_STATUS_ERROR_ALLOCATION_FAILED;
+
+ ctx = (context_ENC_p) obj_context->format_data;
+
+ for (i = 0; i < obj_config->attrib_count; i++) {
+ if (obj_config->attrib_list[i].type == VAConfigAttribRateControl)
+ break;
+ }
+
+ if (i >= obj_config->attrib_count)
+ eRCmode = VA_RC_NONE;
+ else
+ eRCmode = obj_config->attrib_list[i].value;
+
+
+ if (eRCmode == VA_RC_VBR) {
+ ctx->eCodec = IMG_CODEC_H264_VBR;
+ ctx->sRCParams.RCEnable = IMG_TRUE;
+ } else if (eRCmode == VA_RC_CBR) {
+ ctx->eCodec = IMG_CODEC_H264_CBR;
+ ctx->sRCParams.RCEnable = IMG_TRUE;
+ } else if (eRCmode == VA_RC_NONE) {
+ ctx->eCodec = IMG_CODEC_H264_NO_RC;
+ ctx->sRCParams.RCEnable = IMG_FALSE;
+ } else if (eRCmode == VA_RC_VCM) {
+ ctx->eCodec = IMG_CODEC_H264_VCM;
+ ctx->sRCParams.RCEnable = IMG_TRUE;
+ } else
+ return VA_STATUS_ERROR_UNSUPPORTED_RT_FORMAT;
+ ctx->eFormat = IMG_CODEC_PL12; /* use default */
+
+ ctx->Slices = 1;
+ ctx->idr_pic_id = 1;
+
+ if (getenv("PSB_VIDEO_SIG_CORE") == NULL) {
+ ctx->Slices = 2;
+ ctx->NumCores = 2;
+ }
+
+ ctx->ParallelCores = min(ctx->NumCores, ctx->Slices);
+
+ ctx->IPEControl = pnw__get_ipe_control(ctx->eCodec);
+
+ switch (obj_config->profile) {
+ case VAProfileH264Baseline:
+ ctx->profile_idc = 5;
+ break;
+ case VAProfileH264Main:
+ ctx->profile_idc = 6;
+ break;
+ default:
+ ctx->profile_idc = 6;
+ break;
+ }
+
+ return vaStatus;
+}
+
+static void pnw_H264ES_DestroyContext(
+ object_context_p obj_context)
+{
+ psb__information_message("pnw_H264ES_DestroyPicture\n");
+
+ pnw_DestroyContext(obj_context);
+}
+
+static VAStatus pnw_H264ES_BeginPicture(
+ object_context_p obj_context)
+{
+ INIT_CONTEXT_H264ES;
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+
+ psb__information_message("pnw_H264ES_BeginPicture\n");
+
+ vaStatus = pnw_BeginPicture(ctx);
+
+ return vaStatus;
+}
+
+static VAStatus pnw__H264ES_process_sequence_param(context_ENC_p ctx, object_buffer_p obj_buffer)
+{
+ VAEncSequenceParameterBufferH264 *pSequenceParams;
+ pnw_cmdbuf_p cmdbuf = ctx->obj_context->pnw_cmdbuf;
+ H264_VUI_PARAMS VUI_Params;
+ H264_CROP_PARAMS sCrop;
+ int i;
+
+ ASSERT(obj_buffer->type == VAEncSequenceParameterBufferType);
+ ASSERT(obj_buffer->num_elements == 1);
+ ASSERT(obj_buffer->size == sizeof(VAEncSequenceParameterBufferH264));
+
+ if ((obj_buffer->num_elements != 1) ||
+ (obj_buffer->size != sizeof(VAEncSequenceParameterBufferH264))) {
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ ctx->obj_context->frame_count = 0;
+
+ pSequenceParams = (VAEncSequenceParameterBufferH264 *) obj_buffer->buffer_data;
+ obj_buffer->buffer_data = NULL;
+ obj_buffer->size = 0;
+
+ ctx->sRCParams.bBitrateChanged =
+ (pSequenceParams->bits_per_second == ctx->sRCParams.BitsPerSecond ?
+ IMG_FALSE : IMG_TRUE);
+
+ if (pSequenceParams->bits_per_second > TOPAZ_H264_MAX_BITRATE) {
+ ctx->sRCParams.BitsPerSecond = TOPAZ_H264_MAX_BITRATE;
+ psb__information_message(" bits_per_second(%d) exceeds \
+ the maximum bitrate, set it with %d\n",
+ pSequenceParams->bits_per_second,
+ TOPAZ_H264_MAX_BITRATE);
+ } else
+ ctx->sRCParams.BitsPerSecond = pSequenceParams->bits_per_second;
+
+ ctx->sRCParams.FrameRate = pSequenceParams->frame_rate;
+ ctx->sRCParams.InitialQp = pSequenceParams->initial_qp;
+ ctx->sRCParams.MinQP = pSequenceParams->min_qp;
+ ctx->sRCParams.BUSize = pSequenceParams->basic_unit_size;
+
+ ctx->sRCParams.Slices = ctx->Slices;
+ ctx->sRCParams.QCPOffset = 0;/* FIXME */
+ ctx->sRCParams.IntraFreq = pSequenceParams->intra_period;
+
+ ctx->sRCParams.IDRFreq = pSequenceParams->intra_idr_period;
+ /*if (ctx->sRCParams.BitsPerSecond < 256000)
+ ctx->sRCParams.BufferSize = (9 * ctx->sRCParams.BitsPerSecond) >> 1;
+ else
+ ctx->sRCParams.BufferSize = (5 * ctx->sRCParams.BitsPerSecond) >> 1;*/
+
+ ctx->sRCParams.BufferSize = ctx->sRCParams.BitsPerSecond;
+ ctx->sRCParams.InitialLevel = (3 * ctx->sRCParams.BufferSize) >> 4;
+ ctx->sRCParams.InitialDelay = (13 * ctx->sRCParams.BufferSize) >> 4;
+
+ if (ctx->obj_context->frame_count == 0) { /* Add Register IO behind begin Picture */
+ pnw__UpdateRCBitsTransmitted(ctx);
+ for (i = (ctx->ParallelCores - 1); i >= 0; i--) {
+ pnw_set_bias(ctx, i);
+ }
+ /* This is needed in old firmware, now is no needed any more */
+ //ctx->initial_qp_in_cmdbuf = cmdbuf->cmd_idx; /* remember the place */
+ //cmdbuf->cmd_idx++;
+ }
+
+ VUI_Params.Time_Scale = ctx->sRCParams.FrameRate * 2;
+ VUI_Params.bit_rate_value_minus1 = ctx->sRCParams.BitsPerSecond / 64 - 1;
+ VUI_Params.cbp_size_value_minus1 = ctx->sRCParams.BitsPerSecond / 640 - 1;
+ VUI_Params.CBR = ((IMG_CODEC_H264_CBR == ctx->eCodec) ? 1 : 0);
+ VUI_Params.initial_cpb_removal_delay_length_minus1 = BPH_SEI_NAL_INITIAL_CPB_REMOVAL_DELAY_SIZE - 1;
+ VUI_Params.cpb_removal_delay_length_minus1 = PTH_SEI_NAL_CPB_REMOVAL_DELAY_SIZE - 1;
+ VUI_Params.dpb_output_delay_length_minus1 = PTH_SEI_NAL_DPB_OUTPUT_DELAY_SIZE - 1;
+ VUI_Params.time_offset_length = 24;
+
+ sCrop.bClip = IMG_FALSE;
+ sCrop.LeftCropOffset = 0;
+ sCrop.RightCropOffset = 0;
+ sCrop.TopCropOffset = 0;
+ sCrop.BottomCropOffset = 0;
+
+ if (ctx->RawHeight & 0xf) {
+ sCrop.bClip = IMG_TRUE;
+ sCrop.BottomCropOffset = (((ctx->RawHeight + 0xf) & (~0xf)) - ctx->RawHeight) / 2;
+ }
+ if (ctx->RawWidth & 0xf) {
+ sCrop.bClip = IMG_TRUE;
+ sCrop.RightCropOffset = (((ctx->RawWidth + 0xf) & (~0xf)) - ctx->RawWidth) / 2;
+ }
+ /* sequence header is always inserted */
+
+ /* Not know why set VUI_Params.CBR = 0; */
+ /*
+ if (ctx->eCodec== IMG_CODEC_H264_NO_RC)
+ VUI_Params.CBR = 0;
+ */
+ memset(cmdbuf->header_mem_p + ctx->seq_header_ofs,
+ 0,
+ HEADER_SIZE);
+
+ if (ctx->eCodec == IMG_CODEC_H264_NO_RC)
+ pnw__H264_prepare_sequence_header(cmdbuf->header_mem_p + ctx->seq_header_ofs,
+ pSequenceParams->picture_width_in_mbs,
+ pSequenceParams->picture_height_in_mbs,
+ pSequenceParams->vui_flag,
+ pSequenceParams->vui_flag ? (&VUI_Params) : NULL,
+ &sCrop,
+ pSequenceParams->level_idc, ctx->profile_idc);
+ else
+ pnw__H264_prepare_sequence_header(cmdbuf->header_mem_p + ctx->seq_header_ofs,
+ pSequenceParams->picture_width_in_mbs,
+ pSequenceParams->picture_height_in_mbs,
+ pSequenceParams->vui_flag,
+ pSequenceParams->vui_flag ? (&VUI_Params) : NULL,
+ &sCrop,
+ pSequenceParams->level_idc, ctx->profile_idc);
+
+ /*Periodic IDR need SPS. We save the sequence header here*/
+ if (ctx->sRCParams.IDRFreq != 0) {
+ if (NULL == ctx->save_seq_header_p) {
+ ctx->save_seq_header_p = malloc(HEADER_SIZE);
+ if (NULL == ctx->save_seq_header_p) {
+ psb__error_message("Ran out of memory!\n");
+ free(pSequenceParams);
+ return VA_STATUS_ERROR_ALLOCATION_FAILED;
+ }
+ memcpy((void *)ctx->save_seq_header_p,
+ (void *)(cmdbuf->header_mem_p + ctx->seq_header_ofs),
+ HEADER_SIZE);
+ }
+ }
+
+ cmdbuf->cmd_idx_saved[PNW_CMDBUF_SEQ_HEADER_IDX] = cmdbuf->cmd_idx;
+ /* Send to the last core as this will complete first */
+ pnw_cmdbuf_insert_command_package(ctx->obj_context,
+ ctx->ParallelCores - 1,
+ MTX_CMDID_DO_HEADER,
+ &cmdbuf->header_mem,
+ ctx->seq_header_ofs);
+ free(pSequenceParams);
+
+ return VA_STATUS_SUCCESS;
+}
+
+static VAStatus pnw__H264ES_process_picture_param(context_ENC_p ctx, object_buffer_p obj_buffer)
+{
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ int i;
+ VAEncPictureParameterBufferH264 *pBuffer;
+ int need_sps = 0;
+ pnw_cmdbuf_p cmdbuf = ctx->obj_context->pnw_cmdbuf;
+
+ ASSERT(obj_buffer->type == VAEncPictureParameterBufferType);
+
+ if ((obj_buffer->num_elements != 1) ||
+ (obj_buffer->size != sizeof(VAEncPictureParameterBufferH264))) {
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ /* Transfer ownership of VAEncPictureParameterBufferH264 data */
+ pBuffer = (VAEncPictureParameterBufferH264 *) obj_buffer->buffer_data;
+ obj_buffer->buffer_data = NULL;
+ obj_buffer->size = 0;
+
+ ctx->ref_surface = SURFACE(pBuffer->reference_picture);
+ ctx->dest_surface = SURFACE(pBuffer->reconstructed_picture);
+ ctx->coded_buf = BUFFER(pBuffer->coded_buf);
+
+ ASSERT(ctx->Width == pBuffer->picture_width);
+ ASSERT(ctx->Height == pBuffer->picture_height);
+
+ if (NULL == ctx->coded_buf) {
+ psb__error_message("%s L%d Invalid coded buffer handle\n", __FUNCTION__, __LINE__);
+ free(pBuffer);
+ return VA_STATUS_ERROR_INVALID_BUFFER;
+ }
+ if ((ctx->sRCParams.IntraFreq != 0) && (ctx->sRCParams.IDRFreq != 0)) { /* period IDR is desired */
+ unsigned int is_intra = 0;
+ unsigned int intra_cnt = 0;
+
+ ctx->force_idr_h264 = 0;
+
+ if ((ctx->obj_context->frame_count % ctx->sRCParams.IntraFreq) == 0) {
+ is_intra = 1; /* suppose current frame is I frame */
+ intra_cnt = ctx->obj_context->frame_count / ctx->sRCParams.IntraFreq;
+ }
+
+ /* current frame is I frame (suppose), and an IDR frame is desired*/
+ if ((is_intra) && ((intra_cnt % ctx->sRCParams.IDRFreq) == 0)) {
+ ctx->force_idr_h264 = 1;
+ /*When two consecutive access units in decoding order are both IDR access
+ * units, the value of idr_pic_id in the slices of the first such IDR
+ * access unit shall differ from the idr_pic_id in the second such IDR
+ * access unit. We set it with 1 or 0 alternately.*/
+ ctx->idr_pic_id = 1 - ctx->idr_pic_id;
+
+ /* it is periodic IDR in the middle of one sequence encoding, need SPS */
+ if (ctx->obj_context->frame_count > 0)
+ need_sps = 1;
+
+ ctx->obj_context->frame_count = 0;
+ }
+ }
+ /* For H264, PicHeader only needed in the first picture*/
+ if (!(ctx->obj_context->frame_count)) {
+ cmdbuf = ctx->obj_context->pnw_cmdbuf;
+ cmdbuf->cmd_idx_saved[PNW_CMDBUF_PIC_HEADER_IDX] = cmdbuf->cmd_idx;
+
+ if (need_sps) {
+ psb__information_message("TOPAZ: insert a SPS before IDR frame\n");
+ /* reuse the previous SPS */
+ memcpy((void *)(cmdbuf->header_mem_p + ctx->seq_header_ofs),
+ (void *)ctx->save_seq_header_p,
+ HEADER_SIZE);
+
+ cmdbuf->cmd_idx_saved[PNW_CMDBUF_SEQ_HEADER_IDX] = cmdbuf->cmd_idx;
+ /* Send to the last core as this will complete first */
+ pnw_cmdbuf_insert_command_package(ctx->obj_context,
+ ctx->ParallelCores - 1,
+ MTX_CMDID_DO_HEADER,
+ &cmdbuf->header_mem,
+ ctx->seq_header_ofs);
+ }
+
+ pnw__H264_prepare_picture_header(cmdbuf->header_mem_p + ctx->pic_header_ofs, IMG_FALSE, ctx->sRCParams.QCPOffset);
+
+ /* Send to the last core as this will complete first */
+ pnw_cmdbuf_insert_command_package(ctx->obj_context,
+ ctx->ParallelCores - 1,
+ MTX_CMDID_DO_HEADER,
+ &cmdbuf->header_mem,
+ ctx->pic_header_ofs);
+ }
+
+ if (ctx->ParallelCores == 1) {
+ ctx->coded_buf_per_slice = 0;
+ psb__information_message("TOPAZ: won't splite coded buffer(%d) since only one slice being encoded\n",
+ ctx->coded_buf->size);
+ } else {
+ /*Make sure DMA start is 128bits alignment*/
+ ctx->coded_buf_per_slice = (ctx->coded_buf->size / ctx->ParallelCores) & (~0xf) ;
+ psb__information_message("TOPAZ: the size of coded_buf per slice %d( Total %d) \n", ctx->coded_buf_per_slice,
+ ctx->coded_buf->size);
+ }
+
+ /* Prepare START_PICTURE params */
+ /* FIXME is really need multiple picParams? Need multiple calculate for each? */
+ for (i = (ctx->ParallelCores - 1); i >= 0; i--)
+ vaStatus = pnw_RenderPictureParameter(ctx, i);
+
+ free(pBuffer);
+ return vaStatus;
+}
+
+static void pnw__H264ES_encode_one_slice(context_ENC_p ctx,
+ VAEncSliceParameterBuffer *pBuffer)
+{
+ pnw_cmdbuf_p cmdbuf = ctx->obj_context->pnw_cmdbuf;
+ unsigned int MBSkipRun, FirstMBAddress;
+ unsigned char deblock_idc;
+ unsigned char is_intra = 0;
+ int slice_param_idx;
+ PIC_PARAMS *psPicParams = (PIC_PARAMS *)(cmdbuf->pic_params_p);
+
+ /*Slice encoding Order:
+ *1.Insert Do header command
+ *2.setup InRowParams
+ *3.setup Slice params
+ *4.Insert Do slice command
+ * */
+
+ MBSkipRun = (pBuffer->slice_height * ctx->Width) / 16;
+ deblock_idc = pBuffer->slice_flags.bits.disable_deblocking_filter_idc;
+
+ /*If the frame is skipped, it shouldn't be a I frame*/
+ if (ctx->force_idr_h264 || (ctx->obj_context->frame_count == 0)) {
+ is_intra = 1;
+ } else
+ is_intra = (ctx->sRCParams.RCEnable && ctx->sRCParams.FrameSkip) ? 0 : pBuffer->slice_flags.bits.is_intra;
+
+ FirstMBAddress = (pBuffer->start_row_number * ctx->Width) / 16;
+
+ memset(cmdbuf->header_mem_p + ctx->slice_header_ofs
+ + ctx->obj_context->slice_count * HEADER_SIZE,
+ 0,
+ HEADER_SIZE);
+
+ /* Insert Do Header command, relocation is needed */
+ pnw__H264_prepare_slice_header(cmdbuf->header_mem_p + ctx->slice_header_ofs
+ + ctx->obj_context->slice_count * HEADER_SIZE,
+ is_intra,
+ pBuffer->slice_flags.bits.disable_deblocking_filter_idc,
+ ctx->obj_context->frame_count,
+ FirstMBAddress,
+ MBSkipRun,
+ 0,
+ ctx->force_idr_h264,
+ IMG_FALSE,
+ IMG_FALSE,
+ ctx->idr_pic_id);
+
+ /* ensure that this slice is consequtive to that last processed by the target core */
+ /*
+ ASSERT( -1 == ctx->LastSliceNum[ctx->SliceToCore]
+ || ctx->obj_context->slice_count == 1 + ctx->LastSliceNum[ctx->SliceToCore] );
+ */
+ /* note the slice number the target core is now processing */
+ ctx->LastSliceNum[ctx->SliceToCore] = ctx->obj_context->slice_count;
+
+ pnw_cmdbuf_insert_command_package(ctx->obj_context,
+ ctx->SliceToCore,
+ MTX_CMDID_DO_HEADER,
+ &cmdbuf->header_mem,
+ ctx->slice_header_ofs + ctx->obj_context->slice_count * HEADER_SIZE);
+ if (!(ctx->sRCParams.RCEnable && ctx->sRCParams.FrameSkip)) {
+ /*Only reset on the first frame. It's more effective than DDK. Have confirmed with IMG*/
+ if (ctx->obj_context->frame_count == 0)
+ pnw_reset_encoder_params(ctx);
+ if ((pBuffer->start_row_number == 0) && pBuffer->slice_flags.bits.is_intra) {
+ ctx->BelowParamsBufIdx = (ctx->BelowParamsBufIdx + 1) & 0x1;
+ }
+
+ slice_param_idx = (pBuffer->slice_flags.bits.is_intra ? 0 : 1) * ctx->slice_param_num
+ + ctx->obj_context->slice_count;
+ if (VAEncSliceParameter_Equal(&ctx->slice_param_cache[slice_param_idx], pBuffer) == 0) {
+ /* cache current param parameters */
+ memcpy(&ctx->slice_param_cache[slice_param_idx],
+ pBuffer, sizeof(VAEncSliceParameterBuffer));
+
+ /* Setup InParams value*/
+ pnw_setup_slice_params(ctx,
+ pBuffer->start_row_number * 16,
+ pBuffer->slice_height * 16,
+ pBuffer->slice_flags.bits.is_intra,
+ ctx->obj_context->frame_count > 0,
+ psPicParams->sInParams.SeInitQP);
+ }
+
+ /* Insert do slice command and setup related buffer value */
+ pnw__send_encode_slice_params(ctx,
+ pBuffer->slice_flags.bits.is_intra,
+ pBuffer->start_row_number * 16,
+ deblock_idc,
+ ctx->obj_context->frame_count,
+ pBuffer->slice_height * 16,
+ ctx->obj_context->slice_count);
+
+ psb__information_message("Now frame_count/slice_count is %d/%d\n",
+ ctx->obj_context->frame_count, ctx->obj_context->slice_count);
+ }
+ ctx->obj_context->slice_count++;
+
+ return;
+}
+
+static VAStatus pnw__H264ES_process_slice_param(context_ENC_p ctx, object_buffer_p obj_buffer)
+{
+ /* Prepare InParams for macros of current slice, insert slice header, insert do slice command */
+ VAEncSliceParameterBuffer *pBuf_per_core, *pBuffer;
+ pnw_cmdbuf_p cmdbuf = ctx->obj_context->pnw_cmdbuf;
+ PIC_PARAMS *psPicParams = (PIC_PARAMS *)(cmdbuf->pic_params_p);
+ int i, j, slice_per_core;
+
+ ASSERT(obj_buffer->type == VAEncSliceParameterBufferType);
+
+ cmdbuf = ctx->obj_context->pnw_cmdbuf;
+ psPicParams = cmdbuf->pic_params_p;
+
+ /* Transfer ownership of VAEncPictureParameterBufferH264 data */
+ pBuffer = (VAEncSliceParameterBuffer *) obj_buffer->buffer_data;
+ obj_buffer->size = 0;
+
+ /* H264: Calculate number of Mskip to skip IF this was a skip frame */
+
+ /*In case the slice number changes*/
+ if ((ctx->slice_param_cache != NULL) && (obj_buffer->num_elements != ctx->slice_param_num)) {
+ psb__information_message("Slice number changes. Previous value is %d. Now it's %d\n",
+ ctx->slice_param_num, obj_buffer->num_elements);
+ free(ctx->slice_param_cache);
+ ctx->slice_param_cache = NULL;
+ ctx->slice_param_num = 0;
+ }
+
+ if (NULL == ctx->slice_param_cache) {
+ ctx->slice_param_num = obj_buffer->num_elements;
+ psb__information_message("Allocate %d VAEncSliceParameterBuffer cache buffers\n", 2 * ctx->slice_param_num);
+ ctx->slice_param_cache = calloc(2 * ctx->slice_param_num, sizeof(VAEncSliceParameterBuffer));
+ if (NULL == ctx->slice_param_cache) {
+ psb__error_message("Run out of memory!\n");
+ free(obj_buffer->buffer_data);
+ return VA_STATUS_ERROR_ALLOCATION_FAILED;
+ }
+ }
+
+ if (getenv("PSB_VIDEO_SIG_CORE") == NULL) {
+ if ((ctx->ParallelCores == 2) && (obj_buffer->num_elements == 1)) {
+ /*Need to replace unneccesary MTX_CMDID_STARTPICs with MTX_CMDID_PAD*/
+ for (i = 0; i < (ctx->ParallelCores - 1); i++) {
+ *(cmdbuf->cmd_idx_saved[PNW_CMDBUF_START_PIC_IDX] + i * 4) &= (~MTX_CMDWORD_ID_MASK);
+ *(cmdbuf->cmd_idx_saved[PNW_CMDBUF_START_PIC_IDX] + i * 4) |= MTX_CMDID_PAD;
+ }
+ psb__information_message(" Remove unneccesary %d MTX_CMDID_STARTPIC commands from cmdbuf\n",
+ ctx->ParallelCores - obj_buffer->num_elements);
+ ctx->ParallelCores = obj_buffer->num_elements;
+ *(cmdbuf->cmd_idx_saved[PNW_CMDBUF_SEQ_HEADER_IDX]) &=
+ ~(MTX_CMDWORD_CORE_MASK << MTX_CMDWORD_CORE_SHIFT);
+ *(cmdbuf->cmd_idx_saved[PNW_CMDBUF_PIC_HEADER_IDX]) &=
+ ~(MTX_CMDWORD_CORE_MASK << MTX_CMDWORD_CORE_SHIFT);
+ ctx->SliceToCore = ctx->ParallelCores - 1;
+ }
+ }
+
+ slice_per_core = obj_buffer->num_elements / ctx->ParallelCores;
+ pBuf_per_core = pBuffer;
+ for (i = 0; i < slice_per_core; i++) {
+ pBuffer = pBuf_per_core;
+ for (j = 0; j < ctx->ParallelCores; j++) {
+ pnw__H264ES_encode_one_slice(ctx, pBuffer);
+ if (0 == ctx->SliceToCore) {
+ ctx->SliceToCore = ctx->ParallelCores;
+ }
+ ctx->SliceToCore--;
+
+ ASSERT(ctx->obj_context->slice_count < MAX_SLICES_PER_PICTURE);
+ /*Move to the next buffer which will be sent to core j*/
+ pBuffer += slice_per_core;
+ }
+ pBuf_per_core++; /* Move to the next buffer */
+ }
+
+ /*Cope with last slice when slice number is odd and parallelCores is even*/
+ if (obj_buffer->num_elements > (slice_per_core * ctx->ParallelCores)) {
+ ctx->SliceToCore = 0;
+ pBuffer -= slice_per_core;
+ pBuffer ++;
+ pnw__H264ES_encode_one_slice(ctx, pBuffer);
+ }
+
+ free(obj_buffer->buffer_data);
+ obj_buffer->buffer_data = NULL;
+
+ return VA_STATUS_SUCCESS;
+}
+
+static VAStatus pnw__H264ES_process_misc_param(context_ENC_p ctx, object_buffer_p obj_buffer)
+{
+ /* Prepare InParams for macros of current slice, insert slice header, insert do slice command */
+ VAEncMiscParameterBuffer *pBuffer;
+ VAEncMiscParameterRateControl *rate_control_param;
+ VAEncMiscParameterAIR *air_param;
+ VAEncMiscParameterMaxSliceSize *max_slice_size_param;
+ VAEncMiscParameterFrameRate *frame_rate_param;
+
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+
+ ASSERT(obj_buffer->type == VAEncMiscParameterBufferType);
+
+ /* Transfer ownership of VAEncMiscParameterBuffer data */
+ pBuffer = (VAEncMiscParameterBuffer *) obj_buffer->buffer_data;
+ obj_buffer->size = 0;
+
+ switch (pBuffer->type) {
+ case VAEncMiscParameterTypeFrameRate:
+ frame_rate_param = (VAEncMiscParameterFrameRate *)pBuffer->data;
+
+ if (frame_rate_param->framerate > 65535) {
+ vaStatus = VA_STATUS_ERROR_INVALID_PARAMETER;
+ break;
+ }
+
+ if (ctx->sRCParams.FrameRate == frame_rate_param->framerate)
+ break;
+
+ psb__information_message("frame rate changed from %d to %d\n",
+ ctx->sRCParams.FrameRate,
+ frame_rate_param->framerate);
+ ctx->sRCParams.FrameRate = frame_rate_param->framerate;
+ ctx->sRCParams.bBitrateChanged = IMG_TRUE;
+ break;
+
+ case VAEncMiscParameterTypeRateControl:
+ rate_control_param = (VAEncMiscParameterRateControl *)pBuffer->data;
+
+ if (rate_control_param->initial_qp > 51 ||
+ rate_control_param->min_qp > 51) {
+ psb__error_message("Initial_qp(%d) and min_qpinitial_qp(%d) "
+ "are invalid.\nQP shouldn't be larger than 51 for H264\n",
+ rate_control_param->initial_qp, rate_control_param->min_qp);
+ vaStatus = VA_STATUS_ERROR_INVALID_PARAMETER;
+ break;
+ }
+
+ psb__information_message("rate control changed from %d to %d\n",
+ ctx->sRCParams.BitsPerSecond,
+ rate_control_param->bits_per_second);
+
+ if ((rate_control_param->bits_per_second == ctx->sRCParams.BitsPerSecond) &&
+ (ctx->sRCParams.BufferSize == ctx->sRCParams.BitsPerSecond / 1000 * rate_control_param->window_size) &&
+ (ctx->sRCParams.MinQP == rate_control_param->min_qp) &&
+ (ctx->sRCParams.InitialQp == rate_control_param->initial_qp))
+ break;
+ else
+ ctx->sRCParams.bBitrateChanged = IMG_TRUE;
+
+ if (rate_control_param->bits_per_second > TOPAZ_H264_MAX_BITRATE) {
+ ctx->sRCParams.BitsPerSecond = TOPAZ_H264_MAX_BITRATE;
+ psb__information_message(" bits_per_second(%d) exceeds \
+ the maximum bitrate, set it with %d\n",
+ rate_control_param->bits_per_second,
+ TOPAZ_H264_MAX_BITRATE);
+ } else
+ ctx->sRCParams.BitsPerSecond = rate_control_param->bits_per_second;
+
+ if (rate_control_param->window_size != 0)
+ ctx->sRCParams.BufferSize = ctx->sRCParams.BitsPerSecond * rate_control_param->window_size / 1000;
+ if (rate_control_param->initial_qp != 0)
+ ctx->sRCParams.InitialQp = rate_control_param->initial_qp;
+ if (rate_control_param->min_qp != 0)
+ ctx->sRCParams.MinQP = rate_control_param->min_qp;
+ break;
+
+ case VAEncMiscParameterTypeMaxSliceSize:
+ max_slice_size_param = (VAEncMiscParameterMaxSliceSize *)pBuffer->data;
+
+ if (ctx->max_slice_size == max_slice_size_param->max_slice_size)
+ break;
+
+ psb__information_message("max slice size changed to %d\n",
+ max_slice_size_param->max_slice_size);
+
+ ctx->max_slice_size = max_slice_size_param->max_slice_size;
+
+ break;
+
+ case VAEncMiscParameterTypeAIR:
+ air_param = (VAEncMiscParameterAIR *)pBuffer->data;
+
+ if (air_param->air_num_mbs > 65535 ||
+ air_param->air_threshold > 65535) {
+ vaStatus = VA_STATUS_ERROR_INVALID_PARAMETER;
+ break;
+ }
+
+ psb__information_message("air slice size changed to num_air_mbs %d "
+ "air_threshold %d, air_auto %d\n",
+ air_param->air_num_mbs, air_param->air_threshold,
+ air_param->air_auto);
+
+ if (((ctx->Height * ctx->Width) >> 8) < air_param->air_num_mbs)
+ air_param->air_num_mbs = ((ctx->Height * ctx->Width) >> 8);
+ if (air_param->air_threshold == 0)
+ psb__information_message("%s: air threshold is set to zero\n",
+ __func__);
+ ctx->num_air_mbs = air_param->air_num_mbs;
+ ctx->air_threshold = air_param->air_threshold;
+ //ctx->autotune_air_flag = air_param->air_auto;
+
+ break;
+
+ default:
+ vaStatus = VA_STATUS_ERROR_UNKNOWN;
+ DEBUG_FAILURE;
+ break;
+ }
+
+ free(obj_buffer->buffer_data);
+ obj_buffer->buffer_data = NULL;
+
+ return vaStatus;
+}
+
+
+
+static VAStatus pnw_H264ES_RenderPicture(
+ object_context_p obj_context,
+ object_buffer_p *buffers,
+ int num_buffers)
+{
+ INIT_CONTEXT_H264ES;
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ int i;
+
+ psb__information_message("pnw_H264ES_RenderPicture\n");
+
+ for (i = 0; i < num_buffers; i++) {
+ object_buffer_p obj_buffer = buffers[i];
+
+ switch (obj_buffer->type) {
+ case VAEncSequenceParameterBufferType:
+ psb__information_message("pnw_H264_RenderPicture got VAEncSequenceParameterBufferType\n");
+ vaStatus = pnw__H264ES_process_sequence_param(ctx, obj_buffer);
+ DEBUG_FAILURE;
+ break;
+
+ case VAEncPictureParameterBufferType:
+ psb__information_message("pnw_H264_RenderPicture got VAEncPictureParameterBuffer\n");
+ vaStatus = pnw__H264ES_process_picture_param(ctx, obj_buffer);
+ DEBUG_FAILURE;
+ break;
+
+ case VAEncSliceParameterBufferType:
+ psb__information_message("pnw_H264_RenderPicture got VAEncSliceParameterBufferType\n");
+ vaStatus = pnw__H264ES_process_slice_param(ctx, obj_buffer);
+ DEBUG_FAILURE;
+ break;
+
+ case VAEncMiscParameterBufferType:
+ psb__information_message("pnw_H264_RenderPicture got VAEncMiscParameterBufferType\n");
+ vaStatus = pnw__H264ES_process_misc_param(ctx, obj_buffer);
+ DEBUG_FAILURE;
+ break;
+
+
+ default:
+ vaStatus = VA_STATUS_ERROR_UNKNOWN;
+ DEBUG_FAILURE;
+ }
+ if (vaStatus != VA_STATUS_SUCCESS) {
+ break;
+ }
+ }
+
+ return vaStatus;
+}
+
+static VAStatus pnw_H264ES_EndPicture(
+ object_context_p obj_context)
+{
+ INIT_CONTEXT_H264ES;
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+
+ psb__information_message("pnw_H264ES_EndPicture\n");
+
+ vaStatus = pnw_EndPicture(ctx);
+
+ return vaStatus;
+}
+
+
+struct format_vtable_s pnw_H264ES_vtable = {
+queryConfigAttributes:
+ pnw_H264ES_QueryConfigAttributes,
+validateConfig:
+ pnw_H264ES_ValidateConfig,
+createContext:
+ pnw_H264ES_CreateContext,
+destroyContext:
+ pnw_H264ES_DestroyContext,
+beginPicture:
+ pnw_H264ES_BeginPicture,
+renderPicture:
+ pnw_H264ES_RenderPicture,
+endPicture:
+ pnw_H264ES_EndPicture
+};
+
+VAStatus pnw_set_frame_skip_flag(
+ object_context_p obj_context)
+{
+ INIT_CONTEXT_H264ES;
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+
+
+ if (ctx && ctx->src_surface) {
+ SET_SURFACE_INFO_skipped_flag(ctx->src_surface->psb_surface, 1);
+ psb__information_message("Detected a skipped frame for surface 0x%08x.\n", ctx->src_surface->psb_surface);
+ }
+
+ return vaStatus;
+}
+
+
diff --git a/src/pnw_H264ES.h b/src/pnw_H264ES.h
new file mode 100644
index 0000000..aeda454
--- /dev/null
+++ b/src/pnw_H264ES.h
@@ -0,0 +1,40 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ * Elaine Wang <elaine.wang@intel.com>
+ * Zeng Li <zeng.li@intel.com>
+ *
+ */
+
+
+#ifndef _PNW_H264ES_H_
+#define _PNW_H264ES_H_
+
+#include "psb_drv_video.h"
+
+extern struct format_vtable_s pnw_H264ES_vtable;
+extern VAStatus pnw_set_frame_skip_flag(
+ object_context_p obj_context);
+#endif /* _PNW_H264ES_H_ */
diff --git a/src/pnw_MPEG2.c b/src/pnw_MPEG2.c
new file mode 100644
index 0000000..d745ea8
--- /dev/null
+++ b/src/pnw_MPEG2.c
@@ -0,0 +1,1644 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ * Waldo Bastian <waldo.bastian@intel.com>
+ * Zeng Li <zeng.li@intel.com>
+ *
+ */
+
+#include "pnw_MPEG2.h"
+#include "psb_def.h"
+#include "psb_surface.h"
+#include "psb_cmdbuf.h"
+
+#include "hwdefs/reg_io2.h"
+#include "hwdefs/msvdx_offsets.h"
+#include "hwdefs/msvdx_cmds_io2.h"
+#include "hwdefs/msvdx_vec_reg_io2.h"
+#include "hwdefs/msvdx_vec_mpeg2_reg_io2.h"
+#include "hwdefs/dxva_fw_ctrl.h"
+
+#include <stdlib.h>
+#include <stdint.h>
+#include <string.h>
+
+#define GET_SURFACE_INFO_is_defined(psb_surface) ((int) (psb_surface->extra_info[0]))
+#define SET_SURFACE_INFO_is_defined(psb_surface, val) psb_surface->extra_info[0] = (uint32_t) val;
+#define GET_SURFACE_INFO_picture_structure(psb_surface) (psb_surface->extra_info[1])
+#define SET_SURFACE_INFO_picture_structure(psb_surface, val) psb_surface->extra_info[1] = val;
+#define GET_SURFACE_INFO_picture_coding_type(psb_surface) ((int) (psb_surface->extra_info[2]))
+#define SET_SURFACE_INFO_picture_coding_type(psb_surface, val) psb_surface->extra_info[2] = (uint32_t) val;
+
+
+#define SLICEDATA_BUFFER_TYPE(type) ((type==VASliceDataBufferType)?"VASliceDataBufferType":"VAProtectedSliceDataBufferType")
+
+/*
+ * Frame types - format dependant!
+ */
+#define PICTURE_CODING_I 0x01
+#define PICTURE_CODING_P 0x02
+#define PICTURE_CODING_B 0x03
+/* A special syntax is defined for D-pictures (picture_coding_type = 4). D-pictures are like I-pictures with only Intra-DC coefficients,
+ no End of Block, and a special end_of_macroblock code '1'. PICTURE_CODING_D is not allowed in MPEG2 */
+#define PICTURE_CODING_D 0x04
+
+/************************************************************************************/
+/* Variable length codes in 'packed' format */
+/************************************************************************************/
+
+/* Format is: opcode, width, symbol. All VLC tables are concatenated. Index */
+/* infomation is stored in gui16mpeg2VlcIndexData[] */
+#define VLC_PACK(a,b,c) ( ( (a) << 12 ) | ( (b) << 9 ) | (c) )
+const static IMG_UINT16 gaui16mpeg2VlcTableDataPacked[] = {
+ VLC_PACK(6 , 0 , 0) ,
+ VLC_PACK(0 , 0 , 6) ,
+ VLC_PACK(4 , 2 , 4) ,
+ VLC_PACK(4 , 3 , 5) ,
+ VLC_PACK(4 , 4 , 6) ,
+ VLC_PACK(4 , 5 , 7) ,
+ VLC_PACK(1 , 1 , 3) ,
+ VLC_PACK(4 , 0 , 0) ,
+ VLC_PACK(4 , 0 , 3) ,
+ VLC_PACK(4 , 0 , 8) ,
+ VLC_PACK(4 , 1 , 9) ,
+ VLC_PACK(5 , 0 , 5) ,
+ VLC_PACK(5 , 0 , 0) ,
+ VLC_PACK(4 , 1 , 2) ,
+ VLC_PACK(4 , 2 , 3) ,
+ VLC_PACK(4 , 3 , 4) ,
+ VLC_PACK(4 , 4 , 5) ,
+ VLC_PACK(4 , 5 , 6) ,
+ VLC_PACK(1 , 2 , 1) ,
+ VLC_PACK(4 , 0 , 7) ,
+ VLC_PACK(4 , 1 , 8) ,
+ VLC_PACK(4 , 2 , 9) ,
+ VLC_PACK(5 , 0 , 5) ,
+ VLC_PACK(0 , 2 , 16) ,
+ VLC_PACK(0 , 1 , 87) ,
+ VLC_PACK(2 , 3 , 90) ,
+ VLC_PACK(0 , 0 , 98) ,
+ VLC_PACK(5 , 0 , 253) ,
+ VLC_PACK(5 , 0 , 366) ,
+ VLC_PACK(4 , 3 , 380) ,
+ VLC_PACK(4 , 3 , 381) ,
+ VLC_PACK(4 , 1 , 508) ,
+ VLC_PACK(4 , 1 , 508) ,
+ VLC_PACK(4 , 1 , 508) ,
+ VLC_PACK(4 , 1 , 508) ,
+ VLC_PACK(4 , 1 , 509) ,
+ VLC_PACK(4 , 1 , 509) ,
+ VLC_PACK(4 , 1 , 509) ,
+ VLC_PACK(4 , 1 , 509) ,
+ VLC_PACK(0 , 4 , 8) ,
+ VLC_PACK(0 , 2 , 63) ,
+ VLC_PACK(4 , 1 , 255) ,
+ VLC_PACK(4 , 1 , 255) ,
+ VLC_PACK(5 , 0 , 365) ,
+ VLC_PACK(5 , 0 , 470) ,
+ VLC_PACK(5 , 0 , 251) ,
+ VLC_PACK(5 , 0 , 471) ,
+ VLC_PACK(3 , 4 , 0) ,
+ VLC_PACK(0 , 1 , 31) ,
+ VLC_PACK(0 , 0 , 40) ,
+ VLC_PACK(2 , 2 , 41) ,
+ VLC_PACK(5 , 2 , 224) ,
+ VLC_PACK(5 , 2 , 228) ,
+ VLC_PACK(5 , 2 , 232) ,
+ VLC_PACK(5 , 2 , 236) ,
+ VLC_PACK(5 , 1 , 437) ,
+ VLC_PACK(0 , 0 , 39) ,
+ VLC_PACK(0 , 0 , 40) ,
+ VLC_PACK(0 , 0 , 41) ,
+ VLC_PACK(5 , 1 , 241) ,
+ VLC_PACK(0 , 0 , 41) ,
+ VLC_PACK(5 , 1 , 454) ,
+ VLC_PACK(5 , 1 , 456) ,
+ VLC_PACK(5 , 0 , 244) ,
+ VLC_PACK(5 , 0 , 439) ,
+ VLC_PACK(5 , 0 , 348) ,
+ VLC_PACK(5 , 0 , 245) ,
+ VLC_PACK(5 , 0 , 363) ,
+ VLC_PACK(5 , 0 , 325) ,
+ VLC_PACK(5 , 0 , 458) ,
+ VLC_PACK(5 , 0 , 459) ,
+ VLC_PACK(5 , 0 , 246) ,
+ VLC_PACK(5 , 0 , 460) ,
+ VLC_PACK(5 , 0 , 461) ,
+ VLC_PACK(5 , 0 , 186) ,
+ VLC_PACK(5 , 0 , 356) ,
+ VLC_PACK(5 , 0 , 247) ,
+ VLC_PACK(5 , 0 , 333) ,
+ VLC_PACK(5 , 0 , 462) ,
+ VLC_PACK(5 , 2 , 173) ,
+ VLC_PACK(2 , 1 , 3) ,
+ VLC_PACK(1 , 1 , 5) ,
+ VLC_PACK(5 , 2 , 449) ,
+ VLC_PACK(5 , 1 , 432) ,
+ VLC_PACK(5 , 0 , 431) ,
+ VLC_PACK(5 , 0 , 332) ,
+ VLC_PACK(5 , 1 , 434) ,
+ VLC_PACK(5 , 0 , 436) ,
+ VLC_PACK(5 , 0 , 448) ,
+ VLC_PACK(5 , 2 , 215) ,
+ VLC_PACK(5 , 2 , 219) ,
+ VLC_PACK(5 , 2 , 180) ,
+ VLC_PACK(5 , 1 , 178) ,
+ VLC_PACK(5 , 0 , 177) ,
+ VLC_PACK(5 , 0 , 223) ,
+ VLC_PACK(5 , 0 , 340) ,
+ VLC_PACK(5 , 0 , 355) ,
+ VLC_PACK(5 , 0 , 362) ,
+ VLC_PACK(5 , 0 , 184) ,
+ VLC_PACK(5 , 0 , 185) ,
+ VLC_PACK(5 , 0 , 240) ,
+ VLC_PACK(5 , 0 , 243) ,
+ VLC_PACK(5 , 0 , 453) ,
+ VLC_PACK(5 , 0 , 463) ,
+ VLC_PACK(5 , 0 , 341) ,
+ VLC_PACK(5 , 0 , 248) ,
+ VLC_PACK(5 , 0 , 364) ,
+ VLC_PACK(5 , 0 , 187) ,
+ VLC_PACK(5 , 0 , 464) ,
+ VLC_PACK(5 , 0 , 465) ,
+ VLC_PACK(5 , 0 , 349) ,
+ VLC_PACK(5 , 0 , 326) ,
+ VLC_PACK(5 , 0 , 334) ,
+ VLC_PACK(5 , 0 , 189) ,
+ VLC_PACK(5 , 0 , 342) ,
+ VLC_PACK(5 , 0 , 252) ,
+ VLC_PACK(0 , 1 , 4) ,
+ VLC_PACK(5 , 1 , 467) ,
+ VLC_PACK(5 , 0 , 249) ,
+ VLC_PACK(5 , 0 , 466) ,
+ VLC_PACK(5 , 0 , 357) ,
+ VLC_PACK(5 , 0 , 188) ,
+ VLC_PACK(5 , 0 , 250) ,
+ VLC_PACK(5 , 0 , 469) ,
+ VLC_PACK(5 , 0 , 350) ,
+ VLC_PACK(5 , 0 , 358) ,
+ VLC_PACK(0 , 2 , 16) ,
+ VLC_PACK(0 , 1 , 87) ,
+ VLC_PACK(2 , 3 , 90) ,
+ VLC_PACK(0 , 0 , 98) ,
+ VLC_PACK(5 , 0 , 253) ,
+ VLC_PACK(5 , 0 , 366) ,
+ VLC_PACK(4 , 3 , 380) ,
+ VLC_PACK(4 , 3 , 381) ,
+ VLC_PACK(4 , 1 , 254) ,
+ VLC_PACK(4 , 1 , 254) ,
+ VLC_PACK(4 , 1 , 254) ,
+ VLC_PACK(4 , 1 , 254) ,
+ VLC_PACK(4 , 2 , 508) ,
+ VLC_PACK(4 , 2 , 508) ,
+ VLC_PACK(4 , 2 , 509) ,
+ VLC_PACK(4 , 2 , 509) ,
+ VLC_PACK(0 , 4 , 8) ,
+ VLC_PACK(0 , 2 , 63) ,
+ VLC_PACK(4 , 1 , 255) ,
+ VLC_PACK(4 , 1 , 255) ,
+ VLC_PACK(5 , 0 , 365) ,
+ VLC_PACK(5 , 0 , 470) ,
+ VLC_PACK(5 , 0 , 251) ,
+ VLC_PACK(5 , 0 , 471) ,
+ VLC_PACK(3 , 4 , 0) ,
+ VLC_PACK(0 , 1 , 31) ,
+ VLC_PACK(0 , 0 , 40) ,
+ VLC_PACK(2 , 2 , 41) ,
+ VLC_PACK(5 , 2 , 224) ,
+ VLC_PACK(5 , 2 , 228) ,
+ VLC_PACK(5 , 2 , 232) ,
+ VLC_PACK(5 , 2 , 236) ,
+ VLC_PACK(5 , 1 , 437) ,
+ VLC_PACK(0 , 0 , 39) ,
+ VLC_PACK(0 , 0 , 40) ,
+ VLC_PACK(0 , 0 , 41) ,
+ VLC_PACK(5 , 1 , 241) ,
+ VLC_PACK(0 , 0 , 41) ,
+ VLC_PACK(5 , 1 , 454) ,
+ VLC_PACK(5 , 1 , 456) ,
+ VLC_PACK(5 , 0 , 244) ,
+ VLC_PACK(5 , 0 , 439) ,
+ VLC_PACK(5 , 0 , 348) ,
+ VLC_PACK(5 , 0 , 245) ,
+ VLC_PACK(5 , 0 , 363) ,
+ VLC_PACK(5 , 0 , 325) ,
+ VLC_PACK(5 , 0 , 458) ,
+ VLC_PACK(5 , 0 , 459) ,
+ VLC_PACK(5 , 0 , 246) ,
+ VLC_PACK(5 , 0 , 460) ,
+ VLC_PACK(5 , 0 , 461) ,
+ VLC_PACK(5 , 0 , 186) ,
+ VLC_PACK(5 , 0 , 356) ,
+ VLC_PACK(5 , 0 , 247) ,
+ VLC_PACK(5 , 0 , 333) ,
+ VLC_PACK(5 , 0 , 462) ,
+ VLC_PACK(5 , 2 , 173) ,
+ VLC_PACK(2 , 1 , 3) ,
+ VLC_PACK(1 , 1 , 5) ,
+ VLC_PACK(5 , 2 , 449) ,
+ VLC_PACK(5 , 1 , 432) ,
+ VLC_PACK(5 , 0 , 431) ,
+ VLC_PACK(5 , 0 , 332) ,
+ VLC_PACK(5 , 1 , 434) ,
+ VLC_PACK(5 , 0 , 436) ,
+ VLC_PACK(5 , 0 , 448) ,
+ VLC_PACK(5 , 2 , 215) ,
+ VLC_PACK(5 , 2 , 219) ,
+ VLC_PACK(5 , 2 , 180) ,
+ VLC_PACK(5 , 1 , 178) ,
+ VLC_PACK(5 , 0 , 177) ,
+ VLC_PACK(5 , 0 , 223) ,
+ VLC_PACK(5 , 0 , 340) ,
+ VLC_PACK(5 , 0 , 355) ,
+ VLC_PACK(5 , 0 , 362) ,
+ VLC_PACK(5 , 0 , 184) ,
+ VLC_PACK(5 , 0 , 185) ,
+ VLC_PACK(5 , 0 , 240) ,
+ VLC_PACK(5 , 0 , 243) ,
+ VLC_PACK(5 , 0 , 453) ,
+ VLC_PACK(5 , 0 , 463) ,
+ VLC_PACK(5 , 0 , 341) ,
+ VLC_PACK(5 , 0 , 248) ,
+ VLC_PACK(5 , 0 , 364) ,
+ VLC_PACK(5 , 0 , 187) ,
+ VLC_PACK(5 , 0 , 464) ,
+ VLC_PACK(5 , 0 , 465) ,
+ VLC_PACK(5 , 0 , 349) ,
+ VLC_PACK(5 , 0 , 326) ,
+ VLC_PACK(5 , 0 , 334) ,
+ VLC_PACK(5 , 0 , 189) ,
+ VLC_PACK(5 , 0 , 342) ,
+ VLC_PACK(5 , 0 , 252) ,
+ VLC_PACK(0 , 1 , 4) ,
+ VLC_PACK(5 , 1 , 467) ,
+ VLC_PACK(5 , 0 , 249) ,
+ VLC_PACK(5 , 0 , 466) ,
+ VLC_PACK(5 , 0 , 357) ,
+ VLC_PACK(5 , 0 , 188) ,
+ VLC_PACK(5 , 0 , 250) ,
+ VLC_PACK(5 , 0 , 469) ,
+ VLC_PACK(5 , 0 , 350) ,
+ VLC_PACK(5 , 0 , 358) ,
+ VLC_PACK(2 , 2 , 32) ,
+ VLC_PACK(0 , 1 , 87) ,
+ VLC_PACK(5 , 1 , 248) ,
+ VLC_PACK(0 , 0 , 89) ,
+ VLC_PACK(1 , 2 , 90) ,
+ VLC_PACK(5 , 0 , 366) ,
+ VLC_PACK(5 , 0 , 189) ,
+ VLC_PACK(5 , 0 , 358) ,
+ VLC_PACK(4 , 3 , 380) ,
+ VLC_PACK(4 , 3 , 380) ,
+ VLC_PACK(4 , 3 , 381) ,
+ VLC_PACK(4 , 3 , 381) ,
+ VLC_PACK(4 , 3 , 254) ,
+ VLC_PACK(4 , 3 , 254) ,
+ VLC_PACK(4 , 4 , 504) ,
+ VLC_PACK(4 , 4 , 505) ,
+ VLC_PACK(4 , 2 , 508) ,
+ VLC_PACK(4 , 2 , 508) ,
+ VLC_PACK(4 , 2 , 508) ,
+ VLC_PACK(4 , 2 , 508) ,
+ VLC_PACK(4 , 2 , 509) ,
+ VLC_PACK(4 , 2 , 509) ,
+ VLC_PACK(4 , 2 , 509) ,
+ VLC_PACK(4 , 2 , 509) ,
+ VLC_PACK(4 , 3 , 506) ,
+ VLC_PACK(4 , 3 , 506) ,
+ VLC_PACK(4 , 3 , 507) ,
+ VLC_PACK(4 , 3 , 507) ,
+ VLC_PACK(5 , 0 , 251) ,
+ VLC_PACK(5 , 0 , 250) ,
+ VLC_PACK(0 , 1 , 71) ,
+ VLC_PACK(0 , 2 , 74) ,
+ VLC_PACK(4 , 0 , 255) ,
+ VLC_PACK(0 , 1 , 3) ,
+ VLC_PACK(0 , 2 , 8) ,
+ VLC_PACK(0 , 3 , 17) ,
+ VLC_PACK(5 , 0 , 341) ,
+ VLC_PACK(5 , 0 , 465) ,
+ VLC_PACK(0 , 0 , 2) ,
+ VLC_PACK(5 , 0 , 464) ,
+ VLC_PACK(5 , 0 , 363) ,
+ VLC_PACK(5 , 0 , 463) ,
+ VLC_PACK(5 , 1 , 438) ,
+ VLC_PACK(5 , 1 , 348) ,
+ VLC_PACK(5 , 1 , 324) ,
+ VLC_PACK(5 , 1 , 458) ,
+ VLC_PACK(5 , 1 , 459) ,
+ VLC_PACK(5 , 1 , 461) ,
+ VLC_PACK(5 , 1 , 356) ,
+ VLC_PACK(0 , 0 , 1) ,
+ VLC_PACK(5 , 0 , 333) ,
+ VLC_PACK(5 , 0 , 462) ,
+ VLC_PACK(3 , 3 , 0) ,
+ VLC_PACK(0 , 1 , 15) ,
+ VLC_PACK(0 , 0 , 24) ,
+ VLC_PACK(2 , 2 , 25) ,
+ VLC_PACK(5 , 2 , 224) ,
+ VLC_PACK(5 , 2 , 228) ,
+ VLC_PACK(5 , 2 , 232) ,
+ VLC_PACK(5 , 2 , 236) ,
+ VLC_PACK(5 , 1 , 437) ,
+ VLC_PACK(0 , 0 , 23) ,
+ VLC_PACK(0 , 0 , 24) ,
+ VLC_PACK(5 , 1 , 185) ,
+ VLC_PACK(3 , 3 , 0) ,
+ VLC_PACK(5 , 1 , 452) ,
+ VLC_PACK(5 , 1 , 454) ,
+ VLC_PACK(5 , 1 , 456) ,
+ VLC_PACK(5 , 2 , 173) ,
+ VLC_PACK(2 , 1 , 3) ,
+ VLC_PACK(1 , 1 , 5) ,
+ VLC_PACK(5 , 2 , 449) ,
+ VLC_PACK(5 , 1 , 432) ,
+ VLC_PACK(5 , 0 , 431) ,
+ VLC_PACK(5 , 0 , 332) ,
+ VLC_PACK(5 , 1 , 434) ,
+ VLC_PACK(5 , 0 , 436) ,
+ VLC_PACK(5 , 0 , 448) ,
+ VLC_PACK(5 , 2 , 215) ,
+ VLC_PACK(5 , 2 , 219) ,
+ VLC_PACK(5 , 2 , 180) ,
+ VLC_PACK(5 , 1 , 178) ,
+ VLC_PACK(5 , 0 , 177) ,
+ VLC_PACK(5 , 0 , 223) ,
+ VLC_PACK(5 , 0 , 340) ,
+ VLC_PACK(5 , 0 , 355) ,
+ VLC_PACK(5 , 0 , 362) ,
+ VLC_PACK(5 , 0 , 184) ,
+ VLC_PACK(5 , 0 , 326) ,
+ VLC_PACK(5 , 0 , 471) ,
+ VLC_PACK(5 , 0 , 334) ,
+ VLC_PACK(5 , 0 , 365) ,
+ VLC_PACK(5 , 0 , 350) ,
+ VLC_PACK(5 , 0 , 342) ,
+ VLC_PACK(2 , 1 , 4) ,
+ VLC_PACK(5 , 1 , 466) ,
+ VLC_PACK(5 , 0 , 357) ,
+ VLC_PACK(5 , 0 , 187) ,
+ VLC_PACK(5 , 1 , 244) ,
+ VLC_PACK(5 , 0 , 468) ,
+ VLC_PACK(5 , 0 , 186) ,
+ VLC_PACK(5 , 0 , 470) ,
+ VLC_PACK(5 , 0 , 188) ,
+ VLC_PACK(5 , 0 , 469) ,
+ VLC_PACK(5 , 0 , 247) ,
+ VLC_PACK(4 , 2 , 492) ,
+ VLC_PACK(4 , 2 , 493) ,
+ VLC_PACK(5 , 0 , 243) ,
+ VLC_PACK(5 , 0 , 242) ,
+ VLC_PACK(5 , 0 , 364) ,
+ VLC_PACK(5 , 0 , 349) ,
+ VLC_PACK(5 , 0 , 241) ,
+ VLC_PACK(5 , 0 , 240) ,
+ VLC_PACK(4 , 0 , 30) ,
+ VLC_PACK(5 , 0 , 14) ,
+ VLC_PACK(5 , 0 , 13) ,
+ VLC_PACK(5 , 0 , 12) ,
+ VLC_PACK(0 , 0 , 3) ,
+ VLC_PACK(2 , 2 , 4) ,
+ VLC_PACK(0 , 1 , 7) ,
+ VLC_PACK(5 , 1 , 9) ,
+ VLC_PACK(5 , 0 , 11) ,
+ VLC_PACK(5 , 0 , 8) ,
+ VLC_PACK(5 , 1 , 6) ,
+ VLC_PACK(5 , 0 , 5) ,
+ VLC_PACK(5 , 1 , 3) ,
+ VLC_PACK(3 , 1 , 0) ,
+ VLC_PACK(2 , 2 , 3) ,
+ VLC_PACK(3 , 1 , 0) ,
+ VLC_PACK(2 , 1 , 5) ,
+ VLC_PACK(3 , 2 , 0) ,
+ VLC_PACK(3 , 2 , 0) ,
+ VLC_PACK(3 , 2 , 0) ,
+ VLC_PACK(4 , 2 , 226) ,
+ VLC_PACK(5 , 1 , 1) ,
+ VLC_PACK(5 , 0 , 0) ,
+ VLC_PACK(5 , 0 , 31) ,
+ VLC_PACK(4 , 0 , 62) ,
+ VLC_PACK(5 , 0 , 30) ,
+ VLC_PACK(5 , 0 , 29) ,
+ VLC_PACK(5 , 0 , 28) ,
+ VLC_PACK(0 , 0 , 3) ,
+ VLC_PACK(2 , 2 , 4) ,
+ VLC_PACK(1 , 1 , 7) ,
+ VLC_PACK(5 , 1 , 25) ,
+ VLC_PACK(5 , 0 , 27) ,
+ VLC_PACK(5 , 0 , 24) ,
+ VLC_PACK(5 , 1 , 22) ,
+ VLC_PACK(5 , 0 , 21) ,
+ VLC_PACK(5 , 1 , 19) ,
+ VLC_PACK(3 , 1 , 0) ,
+ VLC_PACK(3 , 1 , 0) ,
+ VLC_PACK(5 , 2 , 15)
+};
+
+#define MAX_QUANT_TABLES (2) /* only 2 tables for 4:2:0 decode */
+
+static int scan0[64] = { // spec, fig 7-2
+ /*u 0 ..... 7*/
+ 0, 1, 5, 6, 14, 15, 27, 28, /* v = 0 */
+ 2, 4, 7, 13, 16, 26, 29, 42,
+ 3, 8, 12, 17, 25, 30, 41, 43,
+ 9, 11, 18, 24, 31, 40, 44, 53,
+ 10, 19, 23, 32, 39, 45, 52, 54,
+ 20, 22, 33, 38, 46, 51, 55, 60,
+ 21, 34, 37, 47, 50, 56, 59, 61,
+ 35, 36, 48, 49, 57, 58, 62, 63 /* v = 7 */
+};
+
+typedef enum {
+ NONINTRA_LUMA_Q = 0,
+ INTRA_LUMA_Q = 1
+} QUANT_IDX;
+
+struct context_MPEG2_s {
+ object_context_p obj_context; /* back reference */
+
+ /* Picture parameters */
+ VAPictureParameterBufferMPEG2 *pic_params;
+ object_surface_p forward_ref_surface;
+ object_surface_p backward_ref_surface;
+
+ uint32_t coded_picture_width; /* in pixels */
+ uint32_t coded_picture_height; /* in pixels */
+
+ uint32_t picture_width_mb; /* in macroblocks */
+ uint32_t picture_height_mb; /* in macroblocks */
+ uint32_t size_mb; /* in macroblocks */
+
+ uint32_t coded_picture_size; /* MSVDX format */
+ uint32_t display_picture_size; /* MSVDX format */
+
+ uint32_t BE_PPS0;
+ uint32_t BE_PPS1;
+ uint32_t BE_PPS2;
+ uint32_t BE_SPS0;
+ uint32_t BE_SPS1;
+ uint32_t FE_PPS0;
+ uint32_t FE_PPS1;
+
+ /* IQ Matrix */
+ uint32_t qmatrix_data[MAX_QUANT_TABLES][16];
+ int got_iq_matrix;
+
+ /* Split buffers */
+ int split_buffer_pending;
+
+ /* List of VASliceParameterBuffers */
+ object_buffer_p *slice_param_list;
+ int slice_param_list_size;
+ int slice_param_list_idx;
+
+ /* VLC packed data */
+ struct psb_buffer_s vlc_packed_table;
+
+ /* Misc */
+ unsigned int previous_slice_vertical_position;
+
+ uint32_t *p_range_mapping_base0;
+ uint32_t *p_range_mapping_base1;
+ uint32_t *p_slice_params; /* pointer to ui32SliceParams in CMD_HEADER */
+ uint32_t *slice_first_pic_last;
+};
+
+typedef struct context_MPEG2_s *context_MPEG2_p;
+
+#define INIT_CONTEXT_MPEG2 context_MPEG2_p ctx = (context_MPEG2_p) obj_context->format_data;
+
+#define SURFACE(id) ((object_surface_p) object_heap_lookup( &ctx->obj_context->driver_data->surface_heap, id ))
+
+
+static void pnw_MPEG2_QueryConfigAttributes(
+ VAProfile profile,
+ VAEntrypoint entrypoint,
+ VAConfigAttrib *attrib_list,
+ int num_attribs)
+{
+ /* No MPEG2 specific attributes */
+}
+
+static VAStatus pnw_MPEG2_ValidateConfig(
+ object_config_p obj_config)
+{
+ int i;
+ /* Check all attributes */
+ for (i = 0; i < obj_config->attrib_count; i++) {
+ switch (obj_config->attrib_list[i].type) {
+ case VAConfigAttribRTFormat:
+ /* Ignore */
+ break;
+
+ default:
+ return VA_STATUS_ERROR_ATTR_NOT_SUPPORTED;
+ }
+ }
+
+ return VA_STATUS_SUCCESS;
+}
+
+static VAStatus psb__MPEG2_check_legal_picture(object_context_p obj_context, object_config_p obj_config)
+{
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+
+ if (NULL == obj_context) {
+ vaStatus = VA_STATUS_ERROR_INVALID_CONTEXT;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ if (NULL == obj_config) {
+ vaStatus = VA_STATUS_ERROR_INVALID_CONFIG;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ /* MSVDX decode capability for MPEG2:
+ * MP@HL
+ *
+ * Refer to Table 8-11 (Upper bounds for luminance sample rate) of ISO/IEC 13818-2: 1995(E),
+ * and the "MSVDX MPEG2 decode capability" table of "Poulsbo Media Software Overview"
+ */
+
+ switch (obj_config->profile) {
+ case VAProfileMPEG2Simple:
+ if ((obj_context->picture_width <= 0) || (obj_context->picture_width > 352)
+ || (obj_context->picture_height <= 0) || (obj_context->picture_height > 288)) {
+ vaStatus = VA_STATUS_ERROR_RESOLUTION_NOT_SUPPORTED;
+ }
+ break;
+
+ case VAProfileMPEG2Main:
+ if ((obj_context->picture_width <= 0) || (obj_context->picture_width > 1920)
+ || (obj_context->picture_height <= 0) || (obj_context->picture_height > 1088)) {
+ vaStatus = VA_STATUS_ERROR_RESOLUTION_NOT_SUPPORTED;
+ }
+ break;
+
+ default:
+ vaStatus = VA_STATUS_ERROR_UNSUPPORTED_PROFILE;
+ break;
+ }
+
+ return vaStatus;
+}
+
+static void pnw_MPEG2_DestroyContext(object_context_p obj_context);
+
+static VAStatus pnw_MPEG2_CreateContext(
+ object_context_p obj_context,
+ object_config_p obj_config)
+{
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ context_MPEG2_p ctx;
+ /* Validate flag */
+ /* Validate picture dimensions */
+ vaStatus = psb__MPEG2_check_legal_picture(obj_context, obj_config);
+ if (VA_STATUS_SUCCESS != vaStatus) {
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ if (obj_context->num_render_targets < 1) {
+ vaStatus = VA_STATUS_ERROR_UNKNOWN;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+ ctx = (context_MPEG2_p) calloc(1, sizeof(struct context_MPEG2_s));
+ if (NULL == ctx) {
+ vaStatus = VA_STATUS_ERROR_ALLOCATION_FAILED;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ obj_context->format_data = (void*) ctx;
+ ctx->obj_context = obj_context;
+ ctx->pic_params = NULL;
+ ctx->got_iq_matrix = FALSE;
+ ctx->previous_slice_vertical_position = ~1;
+
+ ctx->split_buffer_pending = FALSE;
+
+ ctx->slice_param_list_size = 8;
+ ctx->slice_param_list = (object_buffer_p*) calloc(1, sizeof(object_buffer_p) * ctx->slice_param_list_size);
+ ctx->slice_param_list_idx = 0;
+
+ if (NULL == ctx->slice_param_list) {
+ vaStatus = VA_STATUS_ERROR_ALLOCATION_FAILED;
+ DEBUG_FAILURE;
+ }
+
+ if (vaStatus == VA_STATUS_SUCCESS) {
+ vaStatus = psb_buffer_create(obj_context->driver_data,
+ sizeof(gaui16mpeg2VlcTableDataPacked),
+ psb_bt_cpu_vpu,
+ &ctx->vlc_packed_table);
+ DEBUG_FAILURE;
+ }
+ if (vaStatus == VA_STATUS_SUCCESS) {
+ void *vlc_packed_data_address;
+ if (0 == psb_buffer_map(&ctx->vlc_packed_table, &vlc_packed_data_address)) {
+ memcpy(vlc_packed_data_address, gaui16mpeg2VlcTableDataPacked, sizeof(gaui16mpeg2VlcTableDataPacked));
+ psb_buffer_unmap(&ctx->vlc_packed_table);
+ } else {
+ vaStatus = VA_STATUS_ERROR_ALLOCATION_FAILED;
+ DEBUG_FAILURE;
+ }
+ }
+
+ if (vaStatus != VA_STATUS_SUCCESS) {
+ pnw_MPEG2_DestroyContext(obj_context);
+ }
+
+ return vaStatus;
+}
+
+static void pnw_MPEG2_DestroyContext(
+ object_context_p obj_context)
+{
+ INIT_CONTEXT_MPEG2
+
+ psb_buffer_destroy(&ctx->vlc_packed_table);
+
+ if (ctx->pic_params) {
+ free(ctx->pic_params);
+ ctx->pic_params = NULL;
+ }
+
+ if (ctx->slice_param_list) {
+ free(ctx->slice_param_list);
+ ctx->slice_param_list = NULL;
+ }
+
+ free(obj_context->format_data);
+ obj_context->format_data = NULL;
+}
+
+static VAStatus psb__MPEG2_process_picture_param(context_MPEG2_p ctx, object_buffer_p obj_buffer)
+{
+ ASSERT(obj_buffer->type == VAPictureParameterBufferType);
+ ASSERT(obj_buffer->num_elements == 1);
+ ASSERT(obj_buffer->size == sizeof(VAPictureParameterBufferMPEG2));
+
+ if ((obj_buffer->num_elements != 1) ||
+ (obj_buffer->size != sizeof(VAPictureParameterBufferMPEG2))) {
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ /* Transfer ownership of VAPictureParameterBufferMPEG2 data */
+ if (ctx->pic_params) {
+ free(ctx->pic_params);
+ }
+ ctx->pic_params = (VAPictureParameterBufferMPEG2 *) obj_buffer->buffer_data;
+ obj_buffer->buffer_data = NULL;
+ obj_buffer->size = 0;
+
+ /* Lookup surfaces for backward/forward references */
+ switch (ctx->pic_params->picture_coding_type) {
+ case PICTURE_CODING_I:
+ ctx->forward_ref_surface = NULL;
+ ctx->backward_ref_surface = NULL;
+ break;
+
+ case PICTURE_CODING_P:
+ ctx->forward_ref_surface = SURFACE(ctx->pic_params->forward_reference_picture);
+ ctx->backward_ref_surface = NULL;
+ if (NULL == ctx->forward_ref_surface) {
+ return VA_STATUS_ERROR_INVALID_SURFACE;
+ }
+ break;
+
+ case PICTURE_CODING_B:
+ ctx->forward_ref_surface = SURFACE(ctx->pic_params->forward_reference_picture);
+ ctx->backward_ref_surface = SURFACE(ctx->pic_params->backward_reference_picture);
+ if ((NULL == ctx->forward_ref_surface) ||
+ (NULL == ctx->backward_ref_surface)) {
+ return VA_STATUS_ERROR_INVALID_SURFACE;
+ }
+ break;
+
+ default:
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ ctx->picture_width_mb = (ctx->pic_params->horizontal_size + 15) / 16;
+ if (ctx->obj_context->va_flags & VA_PROGRESSIVE) {
+ ctx->picture_height_mb = (ctx->pic_params->vertical_size + 15) / 16;
+ } else {
+ ctx->picture_height_mb = (ctx->pic_params->vertical_size + 31) / 32;
+ ctx->picture_height_mb *= 2;
+ }
+ ctx->coded_picture_width = ctx->picture_width_mb * 16;
+ ctx->coded_picture_height = ctx->picture_height_mb * 16;
+
+ ctx->size_mb = ctx->picture_width_mb * ctx->picture_height_mb;
+
+ /* Display picture size */
+ ctx->display_picture_size = 0;
+ /*
+ * coded_picture_width/height is aligned to the size of a macroblock..
+ * Both coded_picture_height or vertical_size can be used for DISPLAY_SIZE and both give correct results,
+ * however Vista driver / test app uses the aligned value that's in coded_picture_height so we do too.
+ * See e.g. low4.m2v for an example clip where vertical_size will differ from coded_picture_height
+ */
+#if 0
+ REGIO_WRITE_FIELD_LITE(ctx->display_picture_size, MSVDX_CMDS, DISPLAY_PICTURE_SIZE, DISPLAY_PICTURE_HEIGHT, ctx->pic_params->vertical_size - 1);
+ REGIO_WRITE_FIELD_LITE(ctx->display_picture_size, MSVDX_CMDS, DISPLAY_PICTURE_SIZE, DISPLAY_PICTURE_WIDTH, ctx->pic_params->horizontal_size - 1);
+#else
+ REGIO_WRITE_FIELD_LITE(ctx->display_picture_size, MSVDX_CMDS, DISPLAY_PICTURE_SIZE, DISPLAY_PICTURE_HEIGHT, ctx->coded_picture_height - 1);
+ REGIO_WRITE_FIELD_LITE(ctx->display_picture_size, MSVDX_CMDS, DISPLAY_PICTURE_SIZE, DISPLAY_PICTURE_WIDTH, ctx->coded_picture_width - 1);
+#endif
+
+ /* Coded picture size */
+ ctx->coded_picture_size = 0;
+ REGIO_WRITE_FIELD_LITE(ctx->coded_picture_size, MSVDX_CMDS, CODED_PICTURE_SIZE, CODED_PICTURE_HEIGHT, ctx->coded_picture_height - 1);
+ REGIO_WRITE_FIELD_LITE(ctx->coded_picture_size, MSVDX_CMDS, CODED_PICTURE_SIZE, CODED_PICTURE_WIDTH, ctx->coded_picture_width - 1);
+
+ ctx->BE_SPS0 = 0;
+ REGIO_WRITE_FIELD_LITE(ctx->BE_SPS0, MSVDX_VEC_MPEG2, CR_VEC_MPEG2_BE_SPS0, BE_HORIZONTAL_SIZE_MINUS1, ctx->picture_width_mb - 1);
+
+ ctx->BE_SPS1 = 0;
+ REGIO_WRITE_FIELD_LITE(ctx->BE_SPS1, MSVDX_VEC_MPEG2, CR_VEC_MPEG2_BE_SPS1, BE_VERTICAL_SIZE_MINUS1, ctx->picture_height_mb);
+
+ ctx->FE_PPS0 = 0;
+ REGIO_WRITE_FIELD_LITE(ctx->FE_PPS0, MSVDX_VEC_MPEG2, CR_VEC_MPEG2_FE_PPS0, FE_ALTERNATE_SCAN, !!(ctx->pic_params->picture_coding_extension.bits.alternate_scan));
+ REGIO_WRITE_FIELD_LITE(ctx->FE_PPS0, MSVDX_VEC_MPEG2, CR_VEC_MPEG2_FE_PPS0, FE_Q_SCALE_TYPE, !!(ctx->pic_params->picture_coding_extension.bits.q_scale_type));
+ REGIO_WRITE_FIELD_LITE(ctx->FE_PPS0, MSVDX_VEC_MPEG2, CR_VEC_MPEG2_FE_PPS0, FE_INTRA_DC_PRECISION, ctx->pic_params->picture_coding_extension.bits.intra_dc_precision);
+ REGIO_WRITE_FIELD_LITE(ctx->FE_PPS0, MSVDX_VEC_MPEG2, CR_VEC_MPEG2_FE_PPS0, FE_TOP_FIELD_FIRST, !!(ctx->pic_params->picture_coding_extension.bits.top_field_first));
+ REGIO_WRITE_FIELD_LITE(ctx->FE_PPS0, MSVDX_VEC_MPEG2, CR_VEC_MPEG2_FE_PPS0, FE_CONCEALMENT_MOTION_VECTORS, !!(ctx->pic_params->picture_coding_extension.bits.concealment_motion_vectors));
+ REGIO_WRITE_FIELD_LITE(ctx->FE_PPS0, MSVDX_VEC_MPEG2, CR_VEC_MPEG2_FE_PPS0, FE_FRAME_PRED_FRAME_DCT, !!(ctx->pic_params->picture_coding_extension.bits.frame_pred_frame_dct));
+ REGIO_WRITE_FIELD_LITE(ctx->FE_PPS0, MSVDX_VEC_MPEG2, CR_VEC_MPEG2_FE_PPS0, FE_PICTURE_STRUCTURE, ctx->pic_params->picture_coding_extension.bits.picture_structure);
+ REGIO_WRITE_FIELD_LITE(ctx->FE_PPS0, MSVDX_VEC_MPEG2, CR_VEC_MPEG2_FE_PPS0, FE_INTRA_VLC_FORMAT, !!(ctx->pic_params->picture_coding_extension.bits.intra_vlc_format));
+
+ ctx->FE_PPS1 = 0;
+ REGIO_WRITE_FIELD_LITE(ctx->FE_PPS1, MSVDX_VEC_MPEG2, CR_VEC_MPEG2_FE_PPS1, FE_PICTURE_CODING_TYPE, ctx->pic_params->picture_coding_type);
+ REGIO_WRITE_FIELD_LITE(ctx->FE_PPS1, MSVDX_VEC_MPEG2, CR_VEC_MPEG2_FE_PPS1, FE_F_CODE00, (ctx->pic_params->f_code >> 12) & 0x0F);
+ REGIO_WRITE_FIELD_LITE(ctx->FE_PPS1, MSVDX_VEC_MPEG2, CR_VEC_MPEG2_FE_PPS1, FE_F_CODE01, (ctx->pic_params->f_code >> 8) & 0x0F);
+ REGIO_WRITE_FIELD_LITE(ctx->FE_PPS1, MSVDX_VEC_MPEG2, CR_VEC_MPEG2_FE_PPS1, FE_F_CODE10, (ctx->pic_params->f_code >> 4) & 0x0F);
+ REGIO_WRITE_FIELD_LITE(ctx->FE_PPS1, MSVDX_VEC_MPEG2, CR_VEC_MPEG2_FE_PPS1, FE_F_CODE11, (ctx->pic_params->f_code >> 0) & 0x0F);
+
+ /* VEC Control register: Back-End MPEG2 PPS0 */
+ ctx->BE_PPS0 = 0;
+ REGIO_WRITE_FIELD_LITE(ctx->BE_PPS0, MSVDX_VEC_MPEG2, CR_VEC_MPEG2_BE_PPS0, BE_FRAME_PRED_FRAME_DCT, !!(ctx->pic_params->picture_coding_extension.bits.frame_pred_frame_dct));
+ REGIO_WRITE_FIELD_LITE(ctx->BE_PPS0, MSVDX_VEC_MPEG2, CR_VEC_MPEG2_BE_PPS0, BE_INTRA_DC_PRECISION, ctx->pic_params->picture_coding_extension.bits.intra_dc_precision);
+ REGIO_WRITE_FIELD_LITE(ctx->BE_PPS0, MSVDX_VEC_MPEG2, CR_VEC_MPEG2_BE_PPS0, BE_Q_SCALE_TYPE, !!(ctx->pic_params->picture_coding_extension.bits.q_scale_type));
+ REGIO_WRITE_FIELD_LITE(ctx->BE_PPS0, MSVDX_VEC_MPEG2, CR_VEC_MPEG2_BE_PPS0, BE_ALTERNATE_SCAN, !!(ctx->pic_params->picture_coding_extension.bits.alternate_scan));
+
+ ctx->BE_PPS1 = 0;
+ REGIO_WRITE_FIELD_LITE(ctx->BE_PPS1, MSVDX_VEC_MPEG2, CR_VEC_MPEG2_BE_PPS1, BE_F_CODE00, (ctx->pic_params->f_code >> 12) & 0x0F);
+ REGIO_WRITE_FIELD_LITE(ctx->BE_PPS1, MSVDX_VEC_MPEG2, CR_VEC_MPEG2_BE_PPS1, BE_F_CODE01, (ctx->pic_params->f_code >> 8) & 0x0F);
+ REGIO_WRITE_FIELD_LITE(ctx->BE_PPS1, MSVDX_VEC_MPEG2, CR_VEC_MPEG2_BE_PPS1, BE_F_CODE10, (ctx->pic_params->f_code >> 4) & 0x0F);
+ REGIO_WRITE_FIELD_LITE(ctx->BE_PPS1, MSVDX_VEC_MPEG2, CR_VEC_MPEG2_BE_PPS1, BE_F_CODE11, (ctx->pic_params->f_code >> 0) & 0x0F);
+
+ /* VEC Control register: Back-End MPEG2 PPS2 */
+ ctx->BE_PPS2 = 0;
+ REGIO_WRITE_FIELD_LITE(ctx->BE_PPS2, MSVDX_VEC_MPEG2, CR_VEC_MPEG2_BE_PPS2, BE_PICTURE_CODING_TYPE, ctx->pic_params->picture_coding_type);
+ REGIO_WRITE_FIELD_LITE(ctx->BE_PPS2, MSVDX_VEC_MPEG2, CR_VEC_MPEG2_BE_PPS2, BE_TOP_FIELD_FIRST, !!(ctx->pic_params->picture_coding_extension.bits.top_field_first));
+ REGIO_WRITE_FIELD_LITE(ctx->BE_PPS2, MSVDX_VEC_MPEG2, CR_VEC_MPEG2_BE_PPS2, BE_CONCEALMENT_MOTION_VECTORS, !!(ctx->pic_params->picture_coding_extension.bits.concealment_motion_vectors));
+ REGIO_WRITE_FIELD_LITE(ctx->BE_PPS2, MSVDX_VEC_MPEG2, CR_VEC_MPEG2_BE_PPS2, BE_PICTURE_STRUCTURE, ctx->pic_params->picture_coding_extension.bits.picture_structure);
+
+ ctx->obj_context->operating_mode = 0;
+ REGIO_WRITE_FIELD_LITE(ctx->obj_context->operating_mode, MSVDX_CMDS, OPERATING_MODE, CHROMA_INTERLEAVED, 0);
+ REGIO_WRITE_FIELD_LITE(ctx->obj_context->operating_mode, MSVDX_CMDS, OPERATING_MODE, ROW_STRIDE, ctx->obj_context->current_render_target->psb_surface->stride_mode);
+ REGIO_WRITE_FIELD_LITE(ctx->obj_context->operating_mode, MSVDX_CMDS, OPERATING_MODE, CODEC_PROFILE, 1); /* MPEG2 profile */
+ REGIO_WRITE_FIELD_LITE(ctx->obj_context->operating_mode, MSVDX_CMDS, OPERATING_MODE, CODEC_MODE, 3); /* MPEG2 mode */
+ REGIO_WRITE_FIELD_LITE(ctx->obj_context->operating_mode, MSVDX_CMDS, OPERATING_MODE, ASYNC_MODE, 1); /* VDMC only */
+ REGIO_WRITE_FIELD_LITE(ctx->obj_context->operating_mode, MSVDX_CMDS, OPERATING_MODE, CHROMA_FORMAT, 1);
+
+ return VA_STATUS_SUCCESS;
+}
+
+static void psb__MPEG2_convert_iq_matrix(uint32_t *dest32, unsigned char *src)
+{
+ int i;
+ int *idx = scan0;
+ uint8_t *dest8 = (uint8_t*) dest32;
+
+ for (i = 0; i < 64; i++) {
+ *dest8++ = src[*idx++];
+ }
+}
+
+static VAStatus psb__MPEG2_process_iq_matrix(context_MPEG2_p ctx, object_buffer_p obj_buffer)
+{
+ VAIQMatrixBufferMPEG2 *iq_matrix = (VAIQMatrixBufferMPEG2 *) obj_buffer->buffer_data;
+ ASSERT(obj_buffer->type == VAIQMatrixBufferType);
+ ASSERT(obj_buffer->num_elements == 1);
+ ASSERT(obj_buffer->size == sizeof(VAIQMatrixBufferMPEG2));
+
+ if ((obj_buffer->num_elements != 1) ||
+ (obj_buffer->size != sizeof(VAIQMatrixBufferMPEG2))) {
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ /* Only update the qmatrix data if the load flag is set */
+ if (iq_matrix->load_non_intra_quantiser_matrix) {
+ psb__MPEG2_convert_iq_matrix(ctx->qmatrix_data[NONINTRA_LUMA_Q], iq_matrix->non_intra_quantiser_matrix);
+ }
+ if (iq_matrix->load_intra_quantiser_matrix) {
+ psb__MPEG2_convert_iq_matrix(ctx->qmatrix_data[INTRA_LUMA_Q], iq_matrix->intra_quantiser_matrix);
+ }
+ /* We ignore the Chroma tables because those are not supported with VA_RT_FORMAT_YUV420 */
+ ctx->got_iq_matrix = TRUE;
+
+ return VA_STATUS_SUCCESS;
+}
+
+/*
+ * Adds a VASliceParameterBuffer to the list of slice params
+ */
+static VAStatus psb__MPEG2_add_slice_param(context_MPEG2_p ctx, object_buffer_p obj_buffer)
+{
+ ASSERT(obj_buffer->type == VASliceParameterBufferType);
+ if (ctx->slice_param_list_idx >= ctx->slice_param_list_size) {
+ void *new_list;
+ ctx->slice_param_list_size += 8;
+ new_list = realloc(ctx->slice_param_list,
+ sizeof(object_buffer_p) * ctx->slice_param_list_size);
+ if (NULL == new_list) {
+ return VA_STATUS_ERROR_ALLOCATION_FAILED;
+ }
+ ctx->slice_param_list = (object_buffer_p*) new_list;
+ }
+ ctx->slice_param_list[ctx->slice_param_list_idx] = obj_buffer;
+ ctx->slice_param_list_idx++;
+ return VA_STATUS_SUCCESS;
+}
+
+/* Precalculated values */
+#define ADDR0 (0x00006000)
+#define ADDR1 (0x0003f017)
+#define ADDR2 (0x000ab0e5)
+#define ADDR3 (0x0000016e)
+#define WIDTH0 (0x0016c6ed)
+#define OPCODE0 (0x00002805)
+
+static void psb__MPEG2_write_VLC_tables(context_MPEG2_p ctx)
+{
+ psb_cmdbuf_p cmdbuf = ctx->obj_context->cmdbuf;
+
+ psb_cmdbuf_skip_start_block(cmdbuf, SKIP_ON_CONTEXT_SWITCH);
+ /* VLC Table */
+ /* Write a LLDMA Cmd to transfer VLD Table data */
+ psb_cmdbuf_lldma_write_cmdbuf(cmdbuf, &ctx->vlc_packed_table, 0,
+ sizeof(gaui16mpeg2VlcTableDataPacked),
+ 0, LLDMA_TYPE_VLC_TABLE);
+
+ /* Write the vec registers with the index data for each of the tables and then write */
+ /* the actual table data. */
+ psb_cmdbuf_reg_start_block(cmdbuf);
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR0), ADDR0);
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR1), ADDR1);
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR2), ADDR2);
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR3), ADDR3);
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_INITIAL_WIDTH0), WIDTH0);
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_INITIAL_OPCODE0), OPCODE0);
+ psb_cmdbuf_reg_end_block(cmdbuf);
+
+ psb_cmdbuf_skip_end_block(cmdbuf);
+}
+
+/* Programme the Alt output if there is a rotation*/
+static void psb__MPEG2_setup_alternative_frame(context_MPEG2_p ctx, IMG_BOOL write_reg)
+{
+ uint32_t cmd;
+ psb_cmdbuf_p cmdbuf = ctx->obj_context->cmdbuf;
+ psb_surface_p rotate_surface = ctx->obj_context->current_render_target->psb_surface_rotate;
+ object_context_p obj_context = ctx->obj_context;
+
+ if (rotate_surface->extra_info[5] != obj_context->rotate)
+ psb__error_message("Display rotate mode does not match surface rotate mode!\n");
+
+
+ /* CRendecBlock RendecBlk( mCtrlAlloc , RENDEC_REGISTER_OFFSET(MSVDX_CMDS, VC1_LUMA_RANGE_MAPPING_BASE_ADDRESS) ); */
+ psb_cmdbuf_rendec_start(cmdbuf, RENDEC_REGISTER_OFFSET(MSVDX_CMDS, VC1_LUMA_RANGE_MAPPING_BASE_ADDRESS));
+
+ psb_cmdbuf_rendec_write_address(cmdbuf, &rotate_surface->buf, rotate_surface->buf.buffer_ofs);
+ psb_cmdbuf_rendec_write_address(cmdbuf, &rotate_surface->buf, rotate_surface->buf.buffer_ofs + rotate_surface->chroma_offset);
+
+ RELOC(*ctx->p_range_mapping_base0, rotate_surface->buf.buffer_ofs, &rotate_surface->buf);
+ RELOC(*ctx->p_range_mapping_base1, rotate_surface->buf.buffer_ofs + rotate_surface->chroma_offset, &rotate_surface->buf);
+
+ psb_cmdbuf_rendec_end(cmdbuf);
+
+ if (write_reg) {
+ /* Set the rotation registers */
+ psb_cmdbuf_rendec_start(cmdbuf, RENDEC_REGISTER_OFFSET(MSVDX_CMDS, ALTERNATIVE_OUTPUT_PICTURE_ROTATION));
+ cmd = 0;
+ REGIO_WRITE_FIELD_LITE(cmd, MSVDX_CMDS, ALTERNATIVE_OUTPUT_PICTURE_ROTATION , ALT_PICTURE_ENABLE, 1);
+ REGIO_WRITE_FIELD_LITE(cmd, MSVDX_CMDS, ALTERNATIVE_OUTPUT_PICTURE_ROTATION , ROTATION_ROW_STRIDE, rotate_surface->stride_mode);
+ REGIO_WRITE_FIELD_LITE(cmd, MSVDX_CMDS, ALTERNATIVE_OUTPUT_PICTURE_ROTATION , RECON_WRITE_DISABLE, 0); /* FIXME Always has Rec */
+ REGIO_WRITE_FIELD_LITE(cmd, MSVDX_CMDS, ALTERNATIVE_OUTPUT_PICTURE_ROTATION , ROTATION_MODE, rotate_surface->extra_info[5]);
+
+ psb_cmdbuf_rendec_write(cmdbuf, cmd);
+
+ psb_cmdbuf_rendec_end(cmdbuf);
+ }
+}
+
+static void psb__MPEG2_set_operating_mode(context_MPEG2_p ctx)
+{
+ psb_cmdbuf_p cmdbuf = ctx->obj_context->cmdbuf;
+ psb_surface_p target_surface = ctx->obj_context->current_render_target->psb_surface;
+
+ if (ctx->obj_context->rotate != VA_ROTATION_NONE)
+ psb__MPEG2_setup_alternative_frame(ctx, ctx->pic_params->picture_coding_extension.bits.progressive_frame);
+
+ psb_cmdbuf_rendec_start(cmdbuf, RENDEC_REGISTER_OFFSET(MSVDX_CMDS, DISPLAY_PICTURE_SIZE));
+ psb_cmdbuf_rendec_write(cmdbuf, ctx->display_picture_size);
+ psb_cmdbuf_rendec_write(cmdbuf, ctx->coded_picture_size);
+ psb_cmdbuf_rendec_write(cmdbuf, ctx->obj_context->operating_mode);
+
+ /* LUMA_RECONSTRUCTED_PICTURE_BASE_ADDRESSES */
+ psb_cmdbuf_rendec_write_address(cmdbuf, &target_surface->buf, target_surface->buf.buffer_ofs);
+
+ /* CHROMA_RECONSTRUCTED_PICTURE_BASE_ADDRESSES */
+ psb_cmdbuf_rendec_write_address(cmdbuf, &target_surface->buf, target_surface->buf.buffer_ofs + target_surface->chroma_offset);
+
+ psb_cmdbuf_rendec_end(cmdbuf);
+}
+
+static void psb__MPEG2_set_reference_pictures(context_MPEG2_p ctx)
+{
+ psb_cmdbuf_p cmdbuf = ctx->obj_context->cmdbuf;
+ psb_surface_p target_surface = ctx->obj_context->current_render_target->psb_surface;
+
+ psb_cmdbuf_rendec_start(cmdbuf, RENDEC_REGISTER_OFFSET(MSVDX_CMDS, REFERENCE_PICTURE_BASE_ADDRESSES));
+
+ /* In MPEG2, the registers at N=0 are always used to store the base address of the luma and chroma buffers
+ of the most recently decoded reference picture. The registers at N=1 are used to store the base address
+ of the luma and chroma buffers of the older reference picture, if more than one reference picture is used.
+ This means that when decoding a P picture the forward reference picture’s address is at index 0.
+ When decoding a B-picture the backward reference picture’s address is at index 0 and the address of the
+ forward reference picture – which was decoded earlier than the backward reference – is at index 1.
+ */
+
+ switch (ctx->pic_params->picture_coding_type) {
+ case PICTURE_CODING_I:
+ psb__information_message(" I-Frame\n");
+ /* No reference pictures */
+ psb_cmdbuf_rendec_write(cmdbuf, 0);
+ psb_cmdbuf_rendec_write(cmdbuf, 0);
+ psb_cmdbuf_rendec_write(cmdbuf, 0);
+ psb_cmdbuf_rendec_write(cmdbuf, 0);
+ break;
+
+ case PICTURE_CODING_P:
+ psb__information_message(" P-Frame\n");
+ if (ctx->pic_params->picture_coding_extension.bits.is_first_field) {
+ /* forward reference picture */
+ /* LUMA_RECONSTRUCTED_PICTURE_BASE_ADDRESSES */
+ psb_cmdbuf_rendec_write_address(cmdbuf, &ctx->forward_ref_surface->psb_surface->buf, ctx->forward_ref_surface->psb_surface->buf.buffer_ofs);
+
+ /* CHROMA_RECONSTRUCTED_PICTURE_BASE_ADDRESSES */
+ psb_cmdbuf_rendec_write_address(cmdbuf, &ctx->forward_ref_surface->psb_surface->buf, ctx->forward_ref_surface->psb_surface\
+ ->buf.buffer_ofs + ctx->forward_ref_surface->psb_surface->chroma_offset);
+
+ /* No backward reference picture */
+ psb_cmdbuf_rendec_write(cmdbuf, 0);
+ psb_cmdbuf_rendec_write(cmdbuf, 0);
+ } else {
+ /* backward reference picture */
+ /* LUMA_RECONSTRUCTED_PICTURE_BASE_ADDRESSES */
+ psb_cmdbuf_rendec_write_address(cmdbuf, &target_surface->buf, target_surface->buf.buffer_ofs);
+
+ /* CHROMA_RECONSTRUCTED_PICTURE_BASE_ADDRESSES */
+ psb_cmdbuf_rendec_write_address(cmdbuf, &target_surface->buf, target_surface->buf.buffer_ofs + target_surface->chroma_offset);
+
+ /* forward reference picture */
+ /* LUMA_RECONSTRUCTED_PICTURE_BASE_ADDRESSES */
+ psb_cmdbuf_rendec_write_address(cmdbuf, &ctx->forward_ref_surface->psb_surface->buf, ctx->forward_ref_surface->psb_surface->buf.buffer_ofs);
+
+ /* CHROMA_RECONSTRUCTED_PICTURE_BASE_ADDRESSES */
+ psb_cmdbuf_rendec_write_address(cmdbuf, &ctx->forward_ref_surface->psb_surface->buf, ctx->forward_ref_surface->psb_surface->buf.buffer_ofs + ctx->forward_ref_surface->psb_surface->chroma_offset);
+ }
+ break;
+
+ case PICTURE_CODING_B:
+ psb__information_message(" B-Frame\n");
+ /* backward reference picture */
+ /* LUMA_RECONSTRUCTED_PICTURE_BASE_ADDRESSES */
+ psb_cmdbuf_rendec_write_address(cmdbuf, &ctx->backward_ref_surface->psb_surface->buf, ctx->backward_ref_surface->psb_surface->buf.buffer_ofs);
+
+ /* CHROMA_RECONSTRUCTED_PICTURE_BASE_ADDRESSES */
+ psb_cmdbuf_rendec_write_address(cmdbuf, &ctx->backward_ref_surface->psb_surface->buf, ctx->backward_ref_surface->psb_surface->buf.buffer_ofs + ctx->backward_ref_surface->psb_surface->chroma_offset);
+
+ /* forward reference picture */
+ /* LUMA_RECONSTRUCTED_PICTURE_BASE_ADDRESSES */
+ psb_cmdbuf_rendec_write_address(cmdbuf, &ctx->forward_ref_surface->psb_surface->buf, ctx->forward_ref_surface->psb_surface->buf.buffer_ofs);
+
+ /* CHROMA_RECONSTRUCTED_PICTURE_BASE_ADDRESSES */
+ psb_cmdbuf_rendec_write_address(cmdbuf, &ctx->forward_ref_surface->psb_surface->buf, ctx->forward_ref_surface->psb_surface->buf.buffer_ofs + ctx->forward_ref_surface->psb_surface->chroma_offset);
+ break;
+ }
+
+ psb_cmdbuf_rendec_end(cmdbuf);
+}
+
+static void psb__MPEG2_set_picture_header(context_MPEG2_p ctx, VASliceParameterBufferMPEG2 *slice_param)
+{
+ psb_cmdbuf_p cmdbuf = ctx->obj_context->cmdbuf;
+ psb_surface_p target_surface = ctx->obj_context->current_render_target->psb_surface;
+ uint32_t FE_slice;
+ uint32_t BE_slice;
+
+ psb_cmdbuf_reg_start_block(cmdbuf);
+
+ /* VEC Control register: Front-End MPEG2 PPS0 */
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC_MPEG2, CR_VEC_MPEG2_FE_PPS0) , ctx->FE_PPS0);
+
+ /* VEC Control register: Front-End MPEG2 PPS1 */
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC_MPEG2, CR_VEC_MPEG2_FE_PPS1) , ctx->FE_PPS1);
+
+ /* Slice level */
+ FE_slice = 0;
+ REGIO_WRITE_FIELD(FE_slice,
+ MSVDX_VEC_MPEG2,
+ CR_VEC_MPEG2_FE_SLICE,
+ FE_FIRST_IN_ROW,
+ (ctx->previous_slice_vertical_position != slice_param->slice_vertical_position));
+
+ REGIO_WRITE_FIELD(FE_slice,
+ MSVDX_VEC_MPEG2,
+ CR_VEC_MPEG2_FE_SLICE,
+ FE_SLICE_VERTICAL_POSITION_MINUS1,
+ slice_param->slice_vertical_position);
+
+ REGIO_WRITE_FIELD(FE_slice,
+ MSVDX_VEC_MPEG2,
+ CR_VEC_MPEG2_FE_SLICE,
+ FE_QUANTISER_SCALE_CODE,
+ slice_param->quantiser_scale_code);
+
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC_MPEG2, CR_VEC_MPEG2_FE_SLICE) , FE_slice);
+
+ psb_cmdbuf_reg_end_block(cmdbuf);
+
+
+ /* BE Section */
+ psb_cmdbuf_rendec_start(cmdbuf, RENDEC_REGISTER_OFFSET(MSVDX_VEC, MPEG2_CR_VEC_MPEG2_BE_SPS0));
+
+ psb_cmdbuf_rendec_write(cmdbuf, ctx->BE_SPS0);
+ psb_cmdbuf_rendec_write(cmdbuf, ctx->BE_SPS1);
+ psb_cmdbuf_rendec_write(cmdbuf, ctx->BE_PPS0); /* VEC Control register: Back-End MPEG2 PPS0 */
+ psb_cmdbuf_rendec_write(cmdbuf, ctx->BE_PPS1); /* VEC Control register: Back-End MPEG2 PPS1 */
+ psb_cmdbuf_rendec_write(cmdbuf, ctx->BE_PPS2); /* VEC Control register: Back-End MPEG2 PPS2 */
+
+ BE_slice = 0;
+ if (!ctx->pic_params->picture_coding_extension.bits.is_first_field) {
+ /*
+ BE_IP_PAIR_FLAG is 1 if the current picture_data is a P-coded field which is the 2nd field of a frame,
+ and which uses the first field of the frame (which was I-coded) as a reference. 0 otherwise.
+ BE_IP_PAIR_FLAG will only be 1 if BE_SECOND_FIELD_FLAG is 1, and the condition
+ of "this is a P-field which uses the accompanying I-field as a reference" is met.
+ */
+ if (ctx->pic_params->picture_coding_type == PICTURE_CODING_P) {
+ if (GET_SURFACE_INFO_picture_coding_type(target_surface) == PICTURE_CODING_I) {
+ REGIO_WRITE_FIELD_LITE(BE_slice,
+ MSVDX_VEC_MPEG2,
+ CR_VEC_MPEG2_BE_SLICE,
+ BE_IP_PAIR_FLAG, 1);
+ }
+ }
+
+ REGIO_WRITE_FIELD_LITE(BE_slice,
+ MSVDX_VEC_MPEG2,
+ CR_VEC_MPEG2_BE_SLICE,
+ BE_SECOND_FIELD_FLAG, 1);
+
+ } else {
+ // BE_IP_PAIR_FLAG = 0;
+ // BE_SECOND_FIELD_FLAG = 0;
+
+ /* Update with current settings first field */
+ SET_SURFACE_INFO_is_defined(target_surface, TRUE);
+ SET_SURFACE_INFO_picture_structure(target_surface, ctx->pic_params->picture_coding_extension.bits.picture_structure);
+ SET_SURFACE_INFO_picture_coding_type(target_surface, ctx->pic_params->picture_coding_type);
+ }
+
+ REGIO_WRITE_FIELD_LITE(BE_slice,
+ MSVDX_VEC_MPEG2,
+ CR_VEC_MPEG2_BE_SLICE,
+ BE_FIRST_IN_ROW,
+ (ctx->previous_slice_vertical_position != slice_param->slice_vertical_position));
+
+ REGIO_WRITE_FIELD_LITE(BE_slice,
+ MSVDX_VEC_MPEG2,
+ CR_VEC_MPEG2_BE_SLICE,
+ BE_SLICE_VERTICAL_POSITION_MINUS1,
+ slice_param->slice_vertical_position);
+
+ REGIO_WRITE_FIELD_LITE(BE_slice,
+ MSVDX_VEC_MPEG2,
+ CR_VEC_MPEG2_BE_SLICE,
+ BE_QUANTISER_SCALE_CODE,
+ slice_param->quantiser_scale_code);
+
+ psb__information_message("BE_slice = %08x first_field = %d\n", BE_slice, ctx->pic_params->picture_coding_extension.bits.is_first_field);
+
+ psb_cmdbuf_rendec_write(cmdbuf, BE_slice);
+
+ psb_cmdbuf_rendec_end(cmdbuf);
+
+ ctx->previous_slice_vertical_position = slice_param->slice_vertical_position;
+}
+
+static void psb__MPEG2_set_slice_params(context_MPEG2_p ctx)
+{
+ psb_cmdbuf_p cmdbuf = ctx->obj_context->cmdbuf;
+
+ uint32_t cmd_data;
+
+ psb_cmdbuf_rendec_start(cmdbuf, RENDEC_REGISTER_OFFSET(MSVDX_CMDS, SLICE_PARAMS));
+
+ cmd_data = 0; /* Build slice parameters */
+ REGIO_WRITE_FIELD(cmd_data,
+ MSVDX_CMDS,
+ SLICE_PARAMS,
+ SLICE_FIELD_TYPE,
+ ctx->pic_params->picture_coding_extension.bits.picture_structure - 1);
+
+ REGIO_WRITE_FIELD(cmd_data,
+ MSVDX_CMDS,
+ SLICE_PARAMS,
+ SLICE_CODE_TYPE,
+ PICTURE_CODING_D == ctx->pic_params->picture_coding_type ? 0 : ctx->pic_params->picture_coding_type - 1);
+
+ psb_cmdbuf_rendec_write(cmdbuf, cmd_data);
+
+ *ctx->p_slice_params = cmd_data;
+
+ psb_cmdbuf_rendec_end(cmdbuf);
+}
+
+static void psb__MPEG2_write_qmatrices(context_MPEG2_p ctx)
+{
+ psb_cmdbuf_p cmdbuf = ctx->obj_context->cmdbuf;
+ int i;
+
+ /* Since we only decode 4:2:0 We only need to the Intra tables.
+ Chroma quant tables are only used in Mpeg 4:2:2 and 4:4:4.
+ The hardware wants non-intra followed by intra */
+ psb_cmdbuf_rendec_start(cmdbuf, REG_MSVDX_VEC_IQRAM_OFFSET);
+
+ /* todo : optimisation here is to only load the need table */
+
+ /* NONINTRA_LUMA_Q --> REG_MSVDX_VEC_IQRAM_OFFSET + 0 */
+ for (i = 0; i < 16; i++) {
+ psb_cmdbuf_rendec_write(cmdbuf, ctx->qmatrix_data[NONINTRA_LUMA_Q][i]);
+// psb__information_message("NONINTRA_LUMA_Q[i] = %08x\n", ctx->qmatrix_data[NONINTRA_LUMA_Q][i]);
+ }
+ /* INTRA_LUMA_Q --> REG_MSVDX_VEC_IQRAM_OFFSET + (16*4) */
+ for (i = 0; i < 16; i++) {
+ psb_cmdbuf_rendec_write(cmdbuf, ctx->qmatrix_data[INTRA_LUMA_Q][i]);
+// psb__information_message("INTRA_LUMA_Q[i] = %08x\n", ctx->qmatrix_data[INTRA_LUMA_Q][i]);
+ }
+
+ psb_cmdbuf_rendec_end(cmdbuf);
+}
+
+static void psb__MPEG2_set_ent_dec(context_MPEG2_p ctx)
+{
+ psb_cmdbuf_p cmdbuf = ctx->obj_context->cmdbuf;
+
+ uint32_t cmd_data;
+
+ psb_cmdbuf_reg_start_block(cmdbuf);
+
+ cmd_data = 0; /* Entdec Front-End controls */
+ REGIO_WRITE_FIELD_LITE(cmd_data, MSVDX_VEC, CR_VEC_ENTDEC_FE_CONTROL, ENTDEC_FE_PROFILE, 1); /* MPEG2 Main Profile */
+ REGIO_WRITE_FIELD_LITE(cmd_data, MSVDX_VEC, CR_VEC_ENTDEC_FE_CONTROL, ENTDEC_FE_MODE, 3); /* Set MPEG2 mode */
+
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC, CR_VEC_ENTDEC_FE_CONTROL), cmd_data);
+
+ psb_cmdbuf_reg_end_block(cmdbuf);
+
+ psb_cmdbuf_rendec_start(cmdbuf, RENDEC_REGISTER_OFFSET(MSVDX_VEC, CR_VEC_ENTDEC_BE_CONTROL));
+
+ cmd_data = 0; /* Entdec Back-End controls */
+ REGIO_WRITE_FIELD(cmd_data,
+ MSVDX_VEC,
+ CR_VEC_ENTDEC_BE_CONTROL,
+ ENTDEC_BE_PROFILE,
+ 1); /* MPEG2 Main Profile */
+
+ REGIO_WRITE_FIELD(cmd_data,
+ MSVDX_VEC,
+ CR_VEC_ENTDEC_BE_CONTROL,
+ ENTDEC_BE_MODE,
+ 3); /* Set MPEG2 mode */
+
+ psb_cmdbuf_rendec_write(cmdbuf, cmd_data);
+
+ psb_cmdbuf_rendec_end(cmdbuf);
+}
+
+static void psb__MPEG2_write_kick(context_MPEG2_p ctx, VASliceParameterBufferMPEG2 *slice_param)
+{
+ psb_cmdbuf_p cmdbuf = ctx->obj_context->cmdbuf;
+
+ (void) slice_param; /* Unused for now */
+
+ *cmdbuf->cmd_idx++ = CMD_COMPLETION;
+}
+
+static void psb__MPEG2_FE_state(context_MPEG2_p ctx)
+{
+ psb_cmdbuf_p cmdbuf = ctx->obj_context->cmdbuf;
+
+ /* See RENDER_BUFFER_HEADER */
+ *cmdbuf->cmd_idx++ = CMD_HEADER_VC1;
+
+ ctx->p_range_mapping_base0 = cmdbuf->cmd_idx++;
+ ctx->p_range_mapping_base1 = cmdbuf->cmd_idx++;
+
+ *ctx->p_range_mapping_base0 = 0;
+ *ctx->p_range_mapping_base1 = 0;
+
+ ctx->p_slice_params = cmdbuf->cmd_idx;
+ *cmdbuf->cmd_idx++ = 0; /* ui32SliceParams */
+
+ *cmdbuf->cmd_idx++ = 0; /* skip two lldma addr field */
+
+ *cmdbuf->cmd_idx++ = 0;
+ ctx->slice_first_pic_last = cmdbuf->cmd_idx++;
+}
+
+static VAStatus psb__MPEG2_process_slice(context_MPEG2_p ctx,
+ VASliceParameterBufferMPEG2 *slice_param,
+ object_buffer_p obj_buffer)
+{
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+
+ ASSERT((obj_buffer->type == VASliceDataBufferType) || (obj_buffer->type == VAProtectedSliceDataBufferType));
+
+ psb__information_message("MPEG2 process slice\n");
+ psb__information_message(" size = %08x offset = %08x\n", slice_param->slice_data_size, slice_param->slice_data_offset);
+ psb__information_message(" vertical pos = %d\n", slice_param->slice_vertical_position);
+ psb__information_message(" slice_data_flag = %d\n", slice_param->slice_data_flag);
+ psb__information_message(" coded size = %dx%d\n", ctx->picture_width_mb, ctx->picture_height_mb);
+
+ if ((slice_param->slice_data_flag == VA_SLICE_DATA_FLAG_BEGIN) ||
+ (slice_param->slice_data_flag == VA_SLICE_DATA_FLAG_ALL)) {
+ if (0 == slice_param->slice_data_size) {
+ vaStatus = VA_STATUS_ERROR_UNKNOWN;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ ASSERT(!ctx->split_buffer_pending);
+
+ /* Initialise the command buffer */
+ psb_context_get_next_cmdbuf(ctx->obj_context);
+
+ psb__MPEG2_FE_state(ctx);
+ psb__MPEG2_write_VLC_tables(ctx);
+
+ psb_cmdbuf_lldma_write_bitstream(ctx->obj_context->cmdbuf,
+ obj_buffer->psb_buffer,
+ obj_buffer->psb_buffer->buffer_ofs + slice_param->slice_data_offset,
+ slice_param->slice_data_size,
+ slice_param->macroblock_offset,
+ 0);
+
+ if (slice_param->slice_data_flag == VA_SLICE_DATA_FLAG_BEGIN) {
+ ctx->split_buffer_pending = TRUE;
+ }
+ } else {
+ ASSERT(ctx->split_buffer_pending);
+ ASSERT(0 == slice_param->slice_data_offset);
+ /* Create LLDMA chain to continue buffer */
+ if (slice_param->slice_data_size) {
+ psb_cmdbuf_lldma_write_bitstream_chained(ctx->obj_context->cmdbuf,
+ obj_buffer->psb_buffer,
+ slice_param->slice_data_size);
+ }
+ }
+
+ if ((slice_param->slice_data_flag == VA_SLICE_DATA_FLAG_ALL) ||
+ (slice_param->slice_data_flag == VA_SLICE_DATA_FLAG_END)) {
+ if (slice_param->slice_data_flag == VA_SLICE_DATA_FLAG_END) {
+ ASSERT(ctx->split_buffer_pending);
+ }
+
+ psb__MPEG2_set_operating_mode(ctx);
+
+ psb__MPEG2_set_reference_pictures(ctx);
+
+ psb__MPEG2_set_picture_header(ctx, slice_param);
+
+ psb__MPEG2_set_slice_params(ctx);
+
+ psb__MPEG2_write_qmatrices(ctx);
+
+ psb__MPEG2_set_ent_dec(ctx);
+
+ psb__MPEG2_write_kick(ctx, slice_param);
+
+ ctx->split_buffer_pending = FALSE;
+ ctx->obj_context->video_op = psb_video_vld;
+ ctx->obj_context->flags = FW_VA_RENDER_IS_VLD_NOT_MC;
+ ctx->obj_context->first_mb = 0;
+
+ if (ctx->pic_params->picture_coding_extension.bits.progressive_frame)
+ ctx->obj_context->last_mb = ((ctx->picture_height_mb - 1) << 8) | (ctx->picture_width_mb - 1);
+ else
+ ctx->obj_context->last_mb = ((ctx->picture_height_mb / 2 - 1) << 8) | (ctx->picture_width_mb - 1);
+
+ *ctx->slice_first_pic_last = (ctx->obj_context->first_mb << 16) | (ctx->obj_context->last_mb);
+
+ if (psb_context_submit_cmdbuf(ctx->obj_context)) {
+ vaStatus = VA_STATUS_ERROR_UNKNOWN;
+ }
+ }
+ return vaStatus;
+}
+
+static VAStatus psb__MPEG2_process_slice_data(context_MPEG2_p ctx, object_buffer_p obj_buffer)
+{
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ VASliceParameterBufferMPEG2 *slice_param;
+ int buffer_idx = 0;
+ int element_idx = 0;
+
+ ASSERT((obj_buffer->type == VASliceDataBufferType) || (obj_buffer->type == VAProtectedSliceDataBufferType));
+
+ ASSERT(ctx->got_iq_matrix);
+ ASSERT(ctx->pic_params);
+ ASSERT(ctx->slice_param_list_idx);
+
+ if (!ctx->got_iq_matrix || !ctx->pic_params) {
+ /* IQ matrix or Picture params missing */
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+ if ((NULL == obj_buffer->psb_buffer) ||
+ (0 == obj_buffer->size)) {
+ /* We need to have data in the bitstream buffer */
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ while (buffer_idx < ctx->slice_param_list_idx) {
+ object_buffer_p slice_buf = ctx->slice_param_list[buffer_idx];
+ if (element_idx >= slice_buf->num_elements) {
+ /* Move to next buffer */
+ element_idx = 0;
+ buffer_idx++;
+ continue;
+ }
+
+ slice_param = (VASliceParameterBufferMPEG2 *) slice_buf->buffer_data;
+ slice_param += element_idx;
+ element_idx++;
+ vaStatus = psb__MPEG2_process_slice(ctx, slice_param, obj_buffer);
+ if (vaStatus != VA_STATUS_SUCCESS) {
+ DEBUG_FAILURE;
+ break;
+ }
+ }
+ ctx->slice_param_list_idx = 0;
+
+ return vaStatus;
+}
+
+static void psb__MEPG2_send_highlevel_cmd(context_MPEG2_p ctx)
+{
+ uint32_t cmd;
+ psb_cmdbuf_p cmdbuf = ctx->obj_context->cmdbuf;
+ psb_surface_p target_surface = ctx->obj_context->current_render_target->psb_surface;
+ psb_surface_p rotate_surface = ctx->obj_context->current_render_target->psb_surface_rotate;
+
+ psb_cmdbuf_reg_start_block(cmdbuf);
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_CMDS, DISPLAY_PICTURE_SIZE), ctx->display_picture_size);
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_CMDS, CODED_PICTURE_SIZE), ctx->coded_picture_size);
+
+ cmd = 0;
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, OPERATING_MODE, CHROMA_FORMAT, 1);
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, OPERATING_MODE, ASYNC_MODE, 1); // 0 = VDMC and VDEB active. 1 = VDEB pass-thru.
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, OPERATING_MODE, CODEC_MODE, 3); // MPEG2
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, OPERATING_MODE, CODEC_PROFILE, 1); // MAIN
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, OPERATING_MODE, ROW_STRIDE, target_surface->stride_mode);
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_CMDS, OPERATING_MODE), cmd);
+
+ psb_cmdbuf_reg_set_RELOC(cmdbuf, REGISTER_OFFSET(MSVDX_CMDS, LUMA_RECONSTRUCTED_PICTURE_BASE_ADDRESSES),
+ &target_surface->buf, target_surface->buf.buffer_ofs);
+
+ psb_cmdbuf_reg_set_RELOC(cmdbuf, REGISTER_OFFSET(MSVDX_CMDS, CHROMA_RECONSTRUCTED_PICTURE_BASE_ADDRESSES),
+ &target_surface->buf, target_surface->buf.buffer_ofs + target_surface->chroma_offset);
+
+ psb_cmdbuf_reg_set_RELOC(cmdbuf, REGISTER_OFFSET(MSVDX_CMDS, REFERENCE_PICTURE_BASE_ADDRESSES) + (0 * 8),
+ &target_surface->buf, target_surface->buf.buffer_ofs);
+
+ psb_cmdbuf_reg_set_RELOC(cmdbuf, REGISTER_OFFSET(MSVDX_CMDS, REFERENCE_PICTURE_BASE_ADDRESSES) + 4 + (0 * 8),
+ &target_surface->buf, target_surface->buf.buffer_ofs + target_surface->chroma_offset);
+
+ psb_cmdbuf_reg_set_RELOC(cmdbuf, REGISTER_OFFSET(MSVDX_CMDS, REFERENCE_PICTURE_BASE_ADDRESSES) + (1 * 8),
+ &target_surface->buf, target_surface->buf.buffer_ofs);
+
+ psb_cmdbuf_reg_set_RELOC(cmdbuf, REGISTER_OFFSET(MSVDX_CMDS, REFERENCE_PICTURE_BASE_ADDRESSES) + 4 + (1 * 8),
+ &target_surface->buf, target_surface->buf.buffer_ofs + target_surface->chroma_offset);
+
+ cmd = 0;
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, SLICE_PARAMS, SLICE_FIELD_TYPE, 2); /* FRAME PICTURE -- ui8SliceFldType */
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, SLICE_PARAMS, SLICE_CODE_TYPE, 1); /* P PICTURE -- (ui8PicType == WMF_PTYPE_BI) ? WMF_PTYPE_I : (ui8PicType & 0x3) */
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_CMDS, SLICE_PARAMS), cmd);
+ *ctx->p_slice_params = cmd;
+ psb_cmdbuf_reg_end_block(cmdbuf);
+
+
+ psb_cmdbuf_reg_start_block(cmdbuf);
+ psb_cmdbuf_reg_set_RELOC(cmdbuf, REGISTER_OFFSET(MSVDX_CMDS, VC1_LUMA_RANGE_MAPPING_BASE_ADDRESS),
+ &rotate_surface->buf, rotate_surface->buf.buffer_ofs);
+
+ psb_cmdbuf_reg_set_RELOC(cmdbuf, REGISTER_OFFSET(MSVDX_CMDS, VC1_CHROMA_RANGE_MAPPING_BASE_ADDRESS),
+ &rotate_surface->buf, rotate_surface->buf.buffer_ofs + rotate_surface->chroma_offset);
+ psb_cmdbuf_reg_end_block(cmdbuf);
+
+ RELOC(*ctx->p_range_mapping_base0, rotate_surface->buf.buffer_ofs, &rotate_surface->buf);
+ RELOC(*ctx->p_range_mapping_base1, rotate_surface->buf.buffer_ofs + rotate_surface->chroma_offset, &rotate_surface->buf);
+}
+
+static void psb__MEPG2_send_blit_cmd(context_MPEG2_p ctx)
+{
+ uint32_t cmd;
+ psb_cmdbuf_p cmdbuf = ctx->obj_context->cmdbuf;
+ psb_surface_p rotate_surface = ctx->obj_context->current_render_target->psb_surface_rotate;
+
+ psb_cmdbuf_reg_start_block(cmdbuf);
+ cmd = 0;
+ REGIO_WRITE_FIELD_LITE(cmd, MSVDX_CMDS, ALTERNATIVE_OUTPUT_PICTURE_ROTATION , ALT_PICTURE_ENABLE, 1);
+ REGIO_WRITE_FIELD_LITE(cmd, MSVDX_CMDS, ALTERNATIVE_OUTPUT_PICTURE_ROTATION , ROTATION_ROW_STRIDE, rotate_surface->stride_mode);
+ REGIO_WRITE_FIELD_LITE(cmd, MSVDX_CMDS, ALTERNATIVE_OUTPUT_PICTURE_ROTATION , RECON_WRITE_DISABLE, 0);
+ REGIO_WRITE_FIELD_LITE(cmd, MSVDX_CMDS, ALTERNATIVE_OUTPUT_PICTURE_ROTATION , ROTATION_MODE, rotate_surface->extra_info[5]);
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_CMDS, ALTERNATIVE_OUTPUT_PICTURE_ROTATION), cmd);
+ psb_cmdbuf_reg_end_block(cmdbuf);
+
+ *cmdbuf->cmd_idx++ = 0x40000000; /* CMD_BLIT_CMD */
+ *cmdbuf->cmd_idx++ = ctx->picture_width_mb;
+ *cmdbuf->cmd_idx++ = ctx->picture_height_mb; /* FIXME */
+ *cmdbuf->cmd_idx++ = CMD_COMPLETION;
+}
+
+static void psb__MPEG2_insert_blit_cmd_to_rotate(context_MPEG2_p ctx)
+{
+ psb_cmdbuf_p cmdbuf = ctx->obj_context->cmdbuf;
+
+ /* See RENDER_BUFFER_HEADER */
+ *cmdbuf->cmd_idx++ = CMD_HEADER_VC1;
+
+ ctx->p_range_mapping_base0 = cmdbuf->cmd_idx++;
+ ctx->p_range_mapping_base1 = cmdbuf->cmd_idx++;
+
+ *ctx->p_range_mapping_base0 = 0;
+ *ctx->p_range_mapping_base1 = 0;
+
+ ctx->p_slice_params = cmdbuf->cmd_idx;
+ *cmdbuf->cmd_idx++ = 0; /* ui32SliceParams */
+
+ *cmdbuf->cmd_idx++ = 0; /* skip two lldma addr field */
+ *cmdbuf->cmd_idx++ = 0;
+
+ ctx->slice_first_pic_last = cmdbuf->cmd_idx++;
+ *ctx->slice_first_pic_last = 0;
+
+ psb__MEPG2_send_highlevel_cmd(ctx);
+ psb__MEPG2_send_blit_cmd(ctx);
+
+ ctx->obj_context->video_op = psb_video_mc;
+ ctx->obj_context->flags = FW_VA_RENDER_IS_LAST_SLICE;
+
+ if (psb_context_submit_cmdbuf(ctx->obj_context)) {
+ ASSERT(0);
+ }
+}
+
+static VAStatus pnw_MPEG2_BeginPicture(
+ object_context_p obj_context)
+{
+ INIT_CONTEXT_MPEG2
+
+ psb__information_message("pnw_MPEG2_BeginPicture\n");
+ if (ctx->pic_params) {
+ free(ctx->pic_params);
+ ctx->pic_params = NULL;
+ }
+ ctx->previous_slice_vertical_position = ~1;
+
+ return VA_STATUS_SUCCESS;
+}
+
+static VAStatus pnw_MPEG2_RenderPicture(
+ object_context_p obj_context,
+ object_buffer_p *buffers,
+ int num_buffers)
+{
+ int i;
+ INIT_CONTEXT_MPEG2
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+
+ for (i = 0; i < num_buffers; i++) {
+ object_buffer_p obj_buffer = buffers[i];
+
+ switch (obj_buffer->type) {
+ case VAPictureParameterBufferType:
+ psb__information_message("pnw_MPEG2_RenderPicture got VAPictureParameterBuffer\n");
+ vaStatus = psb__MPEG2_process_picture_param(ctx, obj_buffer);
+ DEBUG_FAILURE;
+ break;
+
+ case VAIQMatrixBufferType:
+ psb__information_message("pnw_MPEG2_RenderPicture got VAIQMatrixBufferType\n");
+ vaStatus = psb__MPEG2_process_iq_matrix(ctx, obj_buffer);
+ DEBUG_FAILURE;
+ break;
+
+ case VASliceParameterBufferType:
+ psb__information_message("pnw_MPEG2_RenderPicture got VASliceParameterBufferType\n");
+ vaStatus = psb__MPEG2_add_slice_param(ctx, obj_buffer);
+ DEBUG_FAILURE;
+ break;
+
+ case VASliceDataBufferType:
+ case VAProtectedSliceDataBufferType:
+
+ psb__information_message("pnw_MPEG2_RenderPicture got %s\n", SLICEDATA_BUFFER_TYPE(obj_buffer->type));
+ vaStatus = psb__MPEG2_process_slice_data(ctx, obj_buffer);
+ DEBUG_FAILURE;
+ break;
+
+ default:
+ vaStatus = VA_STATUS_ERROR_UNKNOWN;
+ DEBUG_FAILURE;
+ }
+ if (vaStatus != VA_STATUS_SUCCESS) {
+ break;
+ }
+ }
+
+ return vaStatus;
+}
+
+static VAStatus pnw_MPEG2_EndPicture(
+ object_context_p obj_context)
+{
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ INIT_CONTEXT_MPEG2
+
+ psb__information_message("pnw_MPEG2_EndPicture\n");
+
+ if (ctx->obj_context->rotate != VA_ROTATION_NONE) {
+ if (!(ctx->pic_params->picture_coding_extension.bits.progressive_frame) &&
+ !(ctx->pic_params->picture_coding_extension.bits.is_first_field))
+ psb__MPEG2_insert_blit_cmd_to_rotate(ctx);
+ }
+
+ if (psb_context_flush_cmdbuf(ctx->obj_context)) {
+ vaStatus = VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ if (ctx->pic_params) {
+ free(ctx->pic_params);
+ ctx->pic_params = NULL;
+ }
+
+ return vaStatus;
+}
+
+struct format_vtable_s pnw_MPEG2_vtable = {
+queryConfigAttributes:
+ pnw_MPEG2_QueryConfigAttributes,
+validateConfig:
+ pnw_MPEG2_ValidateConfig,
+createContext:
+ pnw_MPEG2_CreateContext,
+destroyContext:
+ pnw_MPEG2_DestroyContext,
+beginPicture:
+ pnw_MPEG2_BeginPicture,
+renderPicture:
+ pnw_MPEG2_RenderPicture,
+endPicture:
+ pnw_MPEG2_EndPicture
+};
diff --git a/src/pnw_MPEG2.h b/src/pnw_MPEG2.h
new file mode 100644
index 0000000..980a6c6
--- /dev/null
+++ b/src/pnw_MPEG2.h
@@ -0,0 +1,38 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ * Waldo Bastian <waldo.bastian@intel.com>
+ * Zeng Li <zeng.li@intel.com>
+ *
+ */
+
+#ifndef _PNW_MPEG2_H_
+#define _PNW_MPEG2_H_
+
+#include "psb_drv_video.h"
+
+extern struct format_vtable_s pnw_MPEG2_vtable;
+
+#endif /* _PNW_MPEG2_H_ */
diff --git a/src/pnw_MPEG4.c b/src/pnw_MPEG4.c
new file mode 100644
index 0000000..c6c87d5
--- /dev/null
+++ b/src/pnw_MPEG4.c
@@ -0,0 +1,1524 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ * Waldo Bastian <waldo.bastian@intel.com>
+ * Zeng Li <zeng.li@intel.com>
+ *
+ */
+
+#include "pnw_MPEG4.h"
+#include "psb_def.h"
+#include "psb_surface.h"
+#include "psb_cmdbuf.h"
+
+#include "hwdefs/reg_io2.h"
+#include "hwdefs/msvdx_offsets.h"
+#include "hwdefs/msvdx_cmds_io2.h"
+#include "hwdefs/msvdx_vec_reg_io2.h"
+#include "hwdefs/msvdx_vec_mpeg4_reg_io2.h"
+#include "hwdefs/dxva_fw_ctrl.h"
+
+#include <stdlib.h>
+#include <stdint.h>
+#include <string.h>
+
+#define GET_SURFACE_INFO_is_defined(psb_surface) ((int) (psb_surface->extra_info[0]))
+#define SET_SURFACE_INFO_is_defined(psb_surface, val) psb_surface->extra_info[0] = (uint32_t) val;
+#define GET_SURFACE_INFO_picture_structure(psb_surface) (psb_surface->extra_info[1])
+#define SET_SURFACE_INFO_picture_structure(psb_surface, val) psb_surface->extra_info[1] = val;
+#define GET_SURFACE_INFO_picture_coding_type(psb_surface) ((int) (psb_surface->extra_info[2]))
+#define SET_SURFACE_INFO_picture_coding_type(psb_surface, val) psb_surface->extra_info[2] = (uint32_t) val;
+#define GET_SURFACE_INFO_colocated_index(psb_surface) ((int) (psb_surface->extra_info[3]))
+#define SET_SURFACE_INFO_colocated_index(psb_surface, val) psb_surface->extra_info[3] = (uint32_t) val;
+
+#define SLICEDATA_BUFFER_TYPE(type) ((type==VASliceDataBufferType)?"VASliceDataBufferType":"VAProtectedSliceDataBufferType")
+
+#define PIXELS_TO_MB(x) ((x + 15) / 16)
+
+/*
+ * Frame types - format dependant!
+ */
+#define PICTURE_CODING_I 0x00
+#define PICTURE_CODING_P 0x01
+#define PICTURE_CODING_B 0x02
+#define PICTURE_CODING_S 0x03
+
+
+#define FE_STATE_BUFFER_SIZE 4096
+#define FE_STATE_SAVE_SIZE ( 0xB40 - 0x700 )
+
+#define MPEG4_PROFILE_SIMPLE 0
+#define MPEG4_PROFILE_ASP 2
+
+/* Table V2-2 ISO/IEC 14496-2:2001(E) - sprite enable codewords */
+typedef enum {
+ SPRITE_NOT_USED = 0,
+ STATIC,
+ GMC,
+} MPEG4_eSpriteEnable;
+
+
+#define MAX_QUANT_TABLES (2) /* only 2 tables for 4:2:0 decode */
+
+static int scan0[64] = { // spec, fig 7-2
+ /*u 0 ..... 7*/
+ 0, 1, 5, 6, 14, 15, 27, 28, /* v = 0 */
+ 2, 4, 7, 13, 16, 26, 29, 42,
+ 3, 8, 12, 17, 25, 30, 41, 43,
+ 9, 11, 18, 24, 31, 40, 44, 53,
+ 10, 19, 23, 32, 39, 45, 52, 54,
+ 20, 22, 33, 38, 46, 51, 55, 60,
+ 21, 34, 37, 47, 50, 56, 59, 61,
+ 35, 36, 48, 49, 57, 58, 62, 63 /* v = 7 */
+};
+
+typedef enum {
+ NONINTRA_LUMA_Q = 0,
+ INTRA_LUMA_Q = 1
+} QUANT_IDX;
+
+/************************************************************************************/
+/* Variable length codes in 'packed' format */
+/************************************************************************************/
+
+/* Format is: opcode, width, symbol. All VLC tables are concatenated. */
+#define VLC_PACK(a,b,c) ( ( (a) << 12 ) | ( (b) << 9 ) | (c) )
+const static IMG_UINT16 gaui16mpeg4VlcTableDataPacked[] = {
+ VLC_PACK(4 , 0 , 12), VLC_PACK(5 , 0 , 7), VLC_PACK(4 , 2 , 13), VLC_PACK(4 , 3 , 16), VLC_PACK(5 , 0 , 9), VLC_PACK(4 , 5 , 17),
+ VLC_PACK(2 , 2 , 1), VLC_PACK(3 , 2 , 0), VLC_PACK(3 , 2 , 0), VLC_PACK(4 , 2 , 36), VLC_PACK(3 , 2 , 0), VLC_PACK(4 , 0 , 0),
+ VLC_PACK(0 , 0 , 6), VLC_PACK(0 , 0 , 7), VLC_PACK(2 , 1 , 8), VLC_PACK(0 , 1 , 10), VLC_PACK(2 , 1 , 13), VLC_PACK(0 , 2 , 15),
+ VLC_PACK(4 , 0 , 8), VLC_PACK(4 , 0 , 4), VLC_PACK(4 , 0 , 2), VLC_PACK(4 , 0 , 1), VLC_PACK(4 , 0 , 12), VLC_PACK(4 , 1 , 3),
+ VLC_PACK(4 , 1 , 16), VLC_PACK(4 , 1 , 10), VLC_PACK(4 , 1 , 9), VLC_PACK(4 , 1 , 6), VLC_PACK(4 , 1 , 5), VLC_PACK(4 , 0 , 15),
+ VLC_PACK(4 , 1 , 11), VLC_PACK(4 , 1 , 13), VLC_PACK(3 , 2 , 0), VLC_PACK(4 , 2 , 36), VLC_PACK(4 , 2 , 19), VLC_PACK(4 , 2 , 18),
+ VLC_PACK(4 , 2 , 17), VLC_PACK(4 , 2 , 7), VLC_PACK(4 , 1 , 14), VLC_PACK(4 , 1 , 14), VLC_PACK(1 , 1 , 16), VLC_PACK(0 , 0 , 18),
+ VLC_PACK(0 , 0 , 19), VLC_PACK(4 , 3 , 0), VLC_PACK(4 , 3 , 12), VLC_PACK(4 , 3 , 10), VLC_PACK(4 , 3 , 14), VLC_PACK(4 , 3 , 5),
+ VLC_PACK(4 , 3 , 13), VLC_PACK(4 , 3 , 3), VLC_PACK(4 , 3 , 11), VLC_PACK(4 , 3 , 7), VLC_PACK(4 , 1 , 15), VLC_PACK(4 , 1 , 15),
+ VLC_PACK(4 , 1 , 15), VLC_PACK(4 , 1 , 15), VLC_PACK(3 , 1 , 0), VLC_PACK(4 , 1 , 6), VLC_PACK(4 , 1 , 9), VLC_PACK(4 , 0 , 8),
+ VLC_PACK(4 , 0 , 4), VLC_PACK(4 , 0 , 2), VLC_PACK(4 , 0 , 1), VLC_PACK(1 , 1 , 16), VLC_PACK(0 , 0 , 18), VLC_PACK(6 , 0 , 6),
+ VLC_PACK(4 , 3 , 15), VLC_PACK(4 , 3 , 3), VLC_PACK(4 , 3 , 5), VLC_PACK(4 , 3 , 1), VLC_PACK(4 , 3 , 10), VLC_PACK(4 , 3 , 2),
+ VLC_PACK(4 , 3 , 12), VLC_PACK(4 , 3 , 4), VLC_PACK(4 , 3 , 8), VLC_PACK(4 , 1 , 0), VLC_PACK(4 , 1 , 0), VLC_PACK(4 , 1 , 0),
+ VLC_PACK(4 , 1 , 0), VLC_PACK(3 , 1 , 0), VLC_PACK(4 , 1 , 9), VLC_PACK(4 , 1 , 6), VLC_PACK(4 , 0 , 7), VLC_PACK(4 , 0 , 11),
+ VLC_PACK(4 , 0 , 0), VLC_PACK(4 , 1 , 1), VLC_PACK(4 , 1 , 2), VLC_PACK(4 , 0 , 0), VLC_PACK(4 , 1 , 1), VLC_PACK(4 , 2 , 2),
+ VLC_PACK(4 , 3 , 3), VLC_PACK(3 , 3 , 0), VLC_PACK(4 , 0 , 0), VLC_PACK(4 , 1 , 4), VLC_PACK(4 , 1 , 2), VLC_PACK(4 , 0 , 0),
+ VLC_PACK(5 , 0 , 1), VLC_PACK(5 , 0 , 2), VLC_PACK(5 , 0 , 3), VLC_PACK(2 , 1 , 3), VLC_PACK(2 , 3 , 5), VLC_PACK(0 , 3 , 11),
+ VLC_PACK(5 , 0 , 4), VLC_PACK(5 , 0 , 5), VLC_PACK(5 , 0 , 6), VLC_PACK(5 , 0 , 7), VLC_PACK(0 , 0 , 4), VLC_PACK(5 , 0 , 10),
+ VLC_PACK(5 , 0 , 11), VLC_PACK(5 , 0 , 12), VLC_PACK(5 , 0 , 9), VLC_PACK(5 , 0 , 8), VLC_PACK(1 , 1 , 16), VLC_PACK(0 , 0 , 18),
+ VLC_PACK(0 , 0 , 19), VLC_PACK(0 , 0 , 20), VLC_PACK(5 , 0 , 24), VLC_PACK(5 , 0 , 23), VLC_PACK(5 , 0 , 22), VLC_PACK(5 , 0 , 21),
+ VLC_PACK(5 , 0 , 20), VLC_PACK(5 , 0 , 19), VLC_PACK(5 , 0 , 18), VLC_PACK(5 , 0 , 17), VLC_PACK(5 , 0 , 16), VLC_PACK(5 , 0 , 15),
+ VLC_PACK(5 , 0 , 14), VLC_PACK(5 , 0 , 13), VLC_PACK(3 , 1 , 0), VLC_PACK(5 , 0 , 32), VLC_PACK(5 , 0 , 31), VLC_PACK(5 , 0 , 30),
+ VLC_PACK(5 , 0 , 29), VLC_PACK(5 , 0 , 28), VLC_PACK(5 , 0 , 27), VLC_PACK(5 , 0 , 26), VLC_PACK(5 , 0 , 25), VLC_PACK(2 , 5 , 4),
+ VLC_PACK(0 , 0 , 14), VLC_PACK(4 , 1 , 2), VLC_PACK(4 , 1 , 1), VLC_PACK(4 , 0 , 4), VLC_PACK(4 , 1 , 5), VLC_PACK(4 , 2 , 6),
+ VLC_PACK(4 , 3 , 7), VLC_PACK(4 , 4 , 8), VLC_PACK(4 , 5 , 9), VLC_PACK(2 , 2 , 1), VLC_PACK(4 , 0 , 10), VLC_PACK(4 , 1 , 11),
+ VLC_PACK(4 , 2 , 12), VLC_PACK(3 , 2 , 0), VLC_PACK(4 , 0 , 3), VLC_PACK(4 , 0 , 0), VLC_PACK(2 , 5 , 4), VLC_PACK(4 , 1 , 2),
+ VLC_PACK(4 , 1 , 1), VLC_PACK(4 , 1 , 0), VLC_PACK(4 , 0 , 3), VLC_PACK(4 , 1 , 4), VLC_PACK(4 , 2 , 5), VLC_PACK(4 , 3 , 6),
+ VLC_PACK(4 , 4 , 7), VLC_PACK(4 , 5 , 8), VLC_PACK(2 , 3 , 1), VLC_PACK(4 , 0 , 9), VLC_PACK(4 , 1 , 10), VLC_PACK(4 , 2 , 11),
+ VLC_PACK(4 , 3 , 12), VLC_PACK(3 , 3 , 0), VLC_PACK(2 , 1 , 16), VLC_PACK(0 , 3 , 77), VLC_PACK(0 , 2 , 96), VLC_PACK(0 , 1 , 103),
+ VLC_PACK(2 , 1 , 106), VLC_PACK(2 , 1 , 108), VLC_PACK(5 , 1 , 250), VLC_PACK(7 , 0 , 254), VLC_PACK(4 , 2 , 508), VLC_PACK(4 , 2 , 508),
+ VLC_PACK(4 , 2 , 509), VLC_PACK(4 , 2 , 509), VLC_PACK(4 , 3 , 506), VLC_PACK(4 , 3 , 507), VLC_PACK(5 , 0 , 222), VLC_PACK(5 , 0 , 252),
+ VLC_PACK(0 , 3 , 3), VLC_PACK(2 , 1 , 18), VLC_PACK(0 , 3 , 44), VLC_PACK(5 , 1 , 237), VLC_PACK(7 , 0 , 433), VLC_PACK(7 , 0 , 434),
+ VLC_PACK(7 , 0 , 435), VLC_PACK(7 , 0 , 436), VLC_PACK(7 , 0 , 437), VLC_PACK(7 , 0 , 221), VLC_PACK(7 , 0 , 251), VLC_PACK(5 , 0 , 435),
+ VLC_PACK(5 , 0 , 436), VLC_PACK(5 , 0 , 29), VLC_PACK(5 , 0 , 61), VLC_PACK(5 , 0 , 93), VLC_PACK(5 , 0 , 156), VLC_PACK(5 , 0 , 188),
+ VLC_PACK(5 , 0 , 217), VLC_PACK(4 , 0 , 255), VLC_PACK(0 , 3 , 2), VLC_PACK(0 , 2 , 17), VLC_PACK(5 , 0 , 230), VLC_PACK(5 , 0 , 229),
+ VLC_PACK(5 , 0 , 228), VLC_PACK(5 , 0 , 214), VLC_PACK(5 , 0 , 60), VLC_PACK(5 , 0 , 213), VLC_PACK(5 , 0 , 186), VLC_PACK(5 , 0 , 28),
+ VLC_PACK(5 , 0 , 433), VLC_PACK(7 , 0 , 247), VLC_PACK(7 , 0 , 93), VLC_PACK(7 , 0 , 61), VLC_PACK(7 , 0 , 430), VLC_PACK(7 , 0 , 429),
+ VLC_PACK(7 , 0 , 428), VLC_PACK(7 , 0 , 427), VLC_PACK(5 , 0 , 232), VLC_PACK(5 , 0 , 231), VLC_PACK(5 , 0 , 215), VLC_PACK(5 , 0 , 374),
+ VLC_PACK(7 , 0 , 157), VLC_PACK(7 , 0 , 125), VLC_PACK(7 , 0 , 432), VLC_PACK(7 , 0 , 431), VLC_PACK(3 , 3 , 0), VLC_PACK(3 , 3 , 0),
+ VLC_PACK(7 , 1 , 248), VLC_PACK(5 , 1 , 233), VLC_PACK(7 , 0 , 189), VLC_PACK(7 , 0 , 220), VLC_PACK(7 , 0 , 250), VLC_PACK(5 , 0 , 434),
+ VLC_PACK(5 , 0 , 92), VLC_PACK(5 , 0 , 375), VLC_PACK(5 , 0 , 124), VLC_PACK(5 , 0 , 155), VLC_PACK(5 , 0 , 187), VLC_PACK(5 , 0 , 216),
+ VLC_PACK(5 , 0 , 235), VLC_PACK(5 , 0 , 236), VLC_PACK(0 , 0 , 16), VLC_PACK(0 , 0 , 17), VLC_PACK(5 , 1 , 241), VLC_PACK(7 , 0 , 439),
+ VLC_PACK(7 , 0 , 30), VLC_PACK(7 , 0 , 62), VLC_PACK(7 , 0 , 252), VLC_PACK(5 , 0 , 437), VLC_PACK(5 , 0 , 438), VLC_PACK(5 , 0 , 439),
+ VLC_PACK(7 , 0 , 438), VLC_PACK(5 , 0 , 157), VLC_PACK(5 , 0 , 219), VLC_PACK(5 , 0 , 243), VLC_PACK(5 , 0 , 244), VLC_PACK(5 , 0 , 245),
+ VLC_PACK(5 , 0 , 218), VLC_PACK(5 , 0 , 239), VLC_PACK(5 , 0 , 125), VLC_PACK(5 , 0 , 240), VLC_PACK(7 , 0 , 126), VLC_PACK(7 , 0 , 158),
+ VLC_PACK(5 , 0 , 62), VLC_PACK(7 , 0 , 94), VLC_PACK(5 , 0 , 30), VLC_PACK(5 , 0 , 189), VLC_PACK(5 , 0 , 220), VLC_PACK(5 , 0 , 246),
+ VLC_PACK(7 , 0 , 253), VLC_PACK(5 , 0 , 94), VLC_PACK(7 , 0 , 190), VLC_PACK(7 , 0 , 222), VLC_PACK(5 , 1 , 247), VLC_PACK(5 , 0 , 158),
+ VLC_PACK(5 , 0 , 126), VLC_PACK(5 , 0 , 190), VLC_PACK(5 , 0 , 249), VLC_PACK(5 , 0 , 221), VLC_PACK(2 , 4 , 16), VLC_PACK(2 , 3 , 68),
+ VLC_PACK(0 , 2 , 84), VLC_PACK(0 , 1 , 91), VLC_PACK(1 , 1 , 94), VLC_PACK(2 , 1 , 96), VLC_PACK(0 , 0 , 98), VLC_PACK(7 , 0 , 254),
+ VLC_PACK(4 , 2 , 508), VLC_PACK(4 , 2 , 508), VLC_PACK(4 , 2 , 509), VLC_PACK(4 , 2 , 509), VLC_PACK(4 , 3 , 444), VLC_PACK(4 , 3 , 445),
+ VLC_PACK(5 , 0 , 190), VLC_PACK(5 , 0 , 253), VLC_PACK(2 , 3 , 6), VLC_PACK(2 , 1 , 14), VLC_PACK(0 , 2 , 40), VLC_PACK(7 , 2 , 419),
+ VLC_PACK(2 , 1 , 46), VLC_PACK(3 , 4 , 0), VLC_PACK(2 , 2 , 5), VLC_PACK(7 , 2 , 426), VLC_PACK(7 , 1 , 424), VLC_PACK(7 , 0 , 423),
+ VLC_PACK(5 , 1 , 246), VLC_PACK(5 , 2 , 427), VLC_PACK(5 , 1 , 425), VLC_PACK(7 , 0 , 253), VLC_PACK(7 , 0 , 430), VLC_PACK(4 , 0 , 255),
+ VLC_PACK(0 , 3 , 2), VLC_PACK(0 , 2 , 17), VLC_PACK(5 , 0 , 217), VLC_PACK(5 , 0 , 187), VLC_PACK(5 , 0 , 124), VLC_PACK(5 , 0 , 92),
+ VLC_PACK(5 , 0 , 60), VLC_PACK(5 , 0 , 373), VLC_PACK(5 , 0 , 422), VLC_PACK(5 , 0 , 421), VLC_PACK(7 , 0 , 414), VLC_PACK(7 , 0 , 413),
+ VLC_PACK(7 , 0 , 412), VLC_PACK(7 , 0 , 411), VLC_PACK(7 , 0 , 410), VLC_PACK(7 , 0 , 409), VLC_PACK(7 , 0 , 408), VLC_PACK(7 , 0 , 407),
+ VLC_PACK(5 , 0 , 243), VLC_PACK(5 , 0 , 218), VLC_PACK(5 , 0 , 424), VLC_PACK(5 , 0 , 423), VLC_PACK(7 , 0 , 418), VLC_PACK(7 , 0 , 417),
+ VLC_PACK(7 , 0 , 416), VLC_PACK(7 , 0 , 415), VLC_PACK(5 , 0 , 374), VLC_PACK(5 , 0 , 375), VLC_PACK(5 , 0 , 29), VLC_PACK(5 , 0 , 61),
+ VLC_PACK(5 , 0 , 93), VLC_PACK(5 , 0 , 156), VLC_PACK(5 , 0 , 188), VLC_PACK(5 , 0 , 219), VLC_PACK(5 , 1 , 244), VLC_PACK(7 , 0 , 252),
+ VLC_PACK(7 , 0 , 221), VLC_PACK(0 , 2 , 5), VLC_PACK(7 , 2 , 432), VLC_PACK(0 , 0 , 11), VLC_PACK(0 , 0 , 12), VLC_PACK(5 , 1 , 431),
+ VLC_PACK(7 , 0 , 436), VLC_PACK(7 , 0 , 437), VLC_PACK(7 , 0 , 438), VLC_PACK(5 , 0 , 433), VLC_PACK(5 , 0 , 434), VLC_PACK(5 , 0 , 189),
+ VLC_PACK(5 , 0 , 220), VLC_PACK(5 , 0 , 250), VLC_PACK(5 , 1 , 248), VLC_PACK(7 , 0 , 431), VLC_PACK(5 , 0 , 125), VLC_PACK(5 , 0 , 157),
+ VLC_PACK(7 , 0 , 439), VLC_PACK(7 , 0 , 30), VLC_PACK(7 , 0 , 62), VLC_PACK(7 , 0 , 94), VLC_PACK(5 , 0 , 435), VLC_PACK(5 , 0 , 436),
+ VLC_PACK(5 , 0 , 437), VLC_PACK(5 , 0 , 251), VLC_PACK(7 , 0 , 126), VLC_PACK(7 , 0 , 158), VLC_PACK(7 , 0 , 190), VLC_PACK(7 , 0 , 222),
+ VLC_PACK(5 , 1 , 438), VLC_PACK(5 , 0 , 30), VLC_PACK(5 , 0 , 62), VLC_PACK(5 , 0 , 94), VLC_PACK(5 , 0 , 252), VLC_PACK(5 , 0 , 221),
+ VLC_PACK(5 , 0 , 126), VLC_PACK(5 , 0 , 158), VLC_PACK(5 , 0 , 255), VLC_PACK(5 , 0 , 222), VLC_PACK(0 , 0 , 14), VLC_PACK(0 , 1 , 15),
+ VLC_PACK(0 , 0 , 44), VLC_PACK(0 , 1 , 45), VLC_PACK(0 , 1 , 74), VLC_PACK(0 , 2 , 103), VLC_PACK(0 , 1 , 230), VLC_PACK(0 , 0 , 256),
+ VLC_PACK(5 , 0 , 252), VLC_PACK(7 , 0 , 254), VLC_PACK(4 , 3 , 508), VLC_PACK(4 , 3 , 509), VLC_PACK(4 , 3 , 506), VLC_PACK(4 , 3 , 507),
+ VLC_PACK(5 , 0 , 190), VLC_PACK(5 , 0 , 158), VLC_PACK(5 , 0 , 126), VLC_PACK(5 , 0 , 94), VLC_PACK(0 , 0 , 2), VLC_PACK(0 , 1 , 3),
+ VLC_PACK(5 , 0 , 62), VLC_PACK(5 , 0 , 30), VLC_PACK(5 , 0 , 439), VLC_PACK(5 , 0 , 438), VLC_PACK(0 , 0 , 2), VLC_PACK(0 , 1 , 3),
+ VLC_PACK(5 , 0 , 437), VLC_PACK(5 , 0 , 93), VLC_PACK(5 , 0 , 436), VLC_PACK(5 , 0 , 435), VLC_PACK(0 , 0 , 2), VLC_PACK(0 , 1 , 3),
+ VLC_PACK(5 , 0 , 434), VLC_PACK(5 , 0 , 374), VLC_PACK(5 , 0 , 373), VLC_PACK(5 , 0 , 123), VLC_PACK(0 , 0 , 2), VLC_PACK(0 , 1 , 3),
+ VLC_PACK(5 , 0 , 433), VLC_PACK(5 , 0 , 432), VLC_PACK(5 , 0 , 431), VLC_PACK(5 , 0 , 430), VLC_PACK(0 , 0 , 2), VLC_PACK(3 , 1 , 0),
+ VLC_PACK(5 , 0 , 228), VLC_PACK(5 , 0 , 150), VLC_PACK(5 , 0 , 221), VLC_PACK(5 , 0 , 251), VLC_PACK(5 , 0 , 250), VLC_PACK(5 , 0 , 249),
+ VLC_PACK(0 , 0 , 2), VLC_PACK(0 , 1 , 3), VLC_PACK(5 , 0 , 189), VLC_PACK(5 , 0 , 220), VLC_PACK(5 , 0 , 157), VLC_PACK(5 , 0 , 125),
+ VLC_PACK(0 , 0 , 2), VLC_PACK(0 , 1 , 3), VLC_PACK(5 , 0 , 188), VLC_PACK(5 , 0 , 156), VLC_PACK(5 , 0 , 61), VLC_PACK(5 , 0 , 29),
+ VLC_PACK(0 , 0 , 2), VLC_PACK(0 , 1 , 3), VLC_PACK(5 , 0 , 92), VLC_PACK(5 , 0 , 60), VLC_PACK(5 , 0 , 91), VLC_PACK(5 , 0 , 59),
+ VLC_PACK(0 , 0 , 2), VLC_PACK(0 , 1 , 3), VLC_PACK(5 , 0 , 372), VLC_PACK(5 , 0 , 311), VLC_PACK(5 , 0 , 429), VLC_PACK(5 , 0 , 503),
+ VLC_PACK(0 , 0 , 2), VLC_PACK(3 , 1 , 0), VLC_PACK(5 , 0 , 58), VLC_PACK(5 , 0 , 26), VLC_PACK(7 , 0 , 158), VLC_PACK(7 , 0 , 126),
+ VLC_PACK(0 , 0 , 2), VLC_PACK(0 , 1 , 3), VLC_PACK(5 , 0 , 248), VLC_PACK(7 , 0 , 30), VLC_PACK(5 , 0 , 219), VLC_PACK(5 , 0 , 218),
+ VLC_PACK(0 , 0 , 2), VLC_PACK(0 , 1 , 3), VLC_PACK(5 , 0 , 217), VLC_PACK(5 , 0 , 245), VLC_PACK(5 , 0 , 375), VLC_PACK(5 , 0 , 124),
+ VLC_PACK(0 , 0 , 2), VLC_PACK(0 , 1 , 3), VLC_PACK(5 , 0 , 28), VLC_PACK(5 , 0 , 155), VLC_PACK(5 , 0 , 154), VLC_PACK(5 , 0 , 122),
+ VLC_PACK(0 , 0 , 2), VLC_PACK(0 , 1 , 3), VLC_PACK(5 , 0 , 310), VLC_PACK(5 , 0 , 27), VLC_PACK(5 , 0 , 90), VLC_PACK(5 , 0 , 121),
+ VLC_PACK(0 , 0 , 2), VLC_PACK(3 , 1 , 0), VLC_PACK(5 , 0 , 502), VLC_PACK(5 , 0 , 371), VLC_PACK(7 , 0 , 439), VLC_PACK(7 , 0 , 438),
+ VLC_PACK(0 , 0 , 6), VLC_PACK(0 , 1 , 7), VLC_PACK(0 , 0 , 27), VLC_PACK(0 , 1 , 28), VLC_PACK(0 , 1 , 48), VLC_PACK(0 , 2 , 68),
+ VLC_PACK(5 , 0 , 247), VLC_PACK(5 , 0 , 246), VLC_PACK(5 , 0 , 244), VLC_PACK(7 , 0 , 221), VLC_PACK(0 , 0 , 2), VLC_PACK(0 , 1 , 3),
+ VLC_PACK(5 , 0 , 187), VLC_PACK(5 , 0 , 216), VLC_PACK(5 , 0 , 186), VLC_PACK(5 , 0 , 185), VLC_PACK(0 , 0 , 2), VLC_PACK(0 , 1 , 3),
+ VLC_PACK(5 , 0 , 213), VLC_PACK(5 , 0 , 237), VLC_PACK(5 , 0 , 153), VLC_PACK(5 , 0 , 184), VLC_PACK(0 , 0 , 2), VLC_PACK(2 , 1 , 3),
+ VLC_PACK(5 , 0 , 89), VLC_PACK(5 , 0 , 152), VLC_PACK(3 , 1 , 0), VLC_PACK(7 , 0 , 218), VLC_PACK(5 , 0 , 428), VLC_PACK(7 , 0 , 253),
+ VLC_PACK(7 , 0 , 435), VLC_PACK(7 , 0 , 432), VLC_PACK(7 , 0 , 431), VLC_PACK(0 , 0 , 2), VLC_PACK(0 , 1 , 3), VLC_PACK(5 , 0 , 243),
+ VLC_PACK(5 , 0 , 242), VLC_PACK(5 , 0 , 215), VLC_PACK(5 , 0 , 214), VLC_PACK(0 , 0 , 2), VLC_PACK(0 , 1 , 3), VLC_PACK(5 , 0 , 236),
+ VLC_PACK(5 , 0 , 233), VLC_PACK(5 , 0 , 183), VLC_PACK(5 , 0 , 182), VLC_PACK(0 , 0 , 2), VLC_PACK(2 , 1 , 3), VLC_PACK(5 , 0 , 151),
+ VLC_PACK(5 , 0 , 181), VLC_PACK(3 , 1 , 0), VLC_PACK(7 , 0 , 370), VLC_PACK(7 , 0 , 188), VLC_PACK(7 , 0 , 430), VLC_PACK(7 , 0 , 429),
+ VLC_PACK(0 , 0 , 2), VLC_PACK(0 , 1 , 3), VLC_PACK(5 , 0 , 241), VLC_PACK(7 , 0 , 426), VLC_PACK(5 , 0 , 240), VLC_PACK(5 , 0 , 239),
+ VLC_PACK(0 , 0 , 2), VLC_PACK(0 , 1 , 3), VLC_PACK(7 , 0 , 220), VLC_PACK(7 , 0 , 157), VLC_PACK(5 , 0 , 212), VLC_PACK(5 , 0 , 235),
+ VLC_PACK(0 , 0 , 2), VLC_PACK(2 , 1 , 3), VLC_PACK(5 , 0 , 180), VLC_PACK(5 , 0 , 211), VLC_PACK(3 , 1 , 0), VLC_PACK(7 , 0 , 405),
+ VLC_PACK(7 , 0 , 406), VLC_PACK(7 , 0 , 425), VLC_PACK(7 , 0 , 424), VLC_PACK(0 , 0 , 6), VLC_PACK(0 , 1 , 7), VLC_PACK(0 , 0 , 18),
+ VLC_PACK(0 , 1 , 19), VLC_PACK(0 , 1 , 27), VLC_PACK(2 , 2 , 35), VLC_PACK(5 , 0 , 238), VLC_PACK(7 , 0 , 252), VLC_PACK(7 , 0 , 125),
+ VLC_PACK(7 , 0 , 418), VLC_PACK(0 , 0 , 2), VLC_PACK(0 , 1 , 3), VLC_PACK(5 , 0 , 234), VLC_PACK(5 , 0 , 232), VLC_PACK(5 , 0 , 210),
+ VLC_PACK(5 , 0 , 231), VLC_PACK(0 , 0 , 2), VLC_PACK(3 , 1 , 0), VLC_PACK(7 , 0 , 404), VLC_PACK(7 , 0 , 403), VLC_PACK(7 , 0 , 189),
+ VLC_PACK(7 , 0 , 421), VLC_PACK(7 , 0 , 417), VLC_PACK(7 , 0 , 416), VLC_PACK(0 , 0 , 2), VLC_PACK(2 , 1 , 3), VLC_PACK(7 , 0 , 251),
+ VLC_PACK(7 , 0 , 93), VLC_PACK(3 , 1 , 0), VLC_PACK(5 , 0 , 229), VLC_PACK(5 , 0 , 230), VLC_PACK(7 , 0 , 415), VLC_PACK(7 , 0 , 414),
+ VLC_PACK(0 , 0 , 2), VLC_PACK(2 , 1 , 3), VLC_PACK(7 , 0 , 61), VLC_PACK(7 , 0 , 29), VLC_PACK(3 , 1 , 0), VLC_PACK(7 , 0 , 219),
+ VLC_PACK(7 , 0 , 250), VLC_PACK(2 , 2 , 4), VLC_PACK(2 , 1 , 7), VLC_PACK(7 , 0 , 374), VLC_PACK(7 , 0 , 375), VLC_PACK(3 , 2 , 0),
+ VLC_PACK(3 , 2 , 0), VLC_PACK(7 , 0 , 409), VLC_PACK(7 , 0 , 371), VLC_PACK(3 , 1 , 0), VLC_PACK(7 , 0 , 372), VLC_PACK(7 , 0 , 373),
+ VLC_PACK(0 , 1 , 4), VLC_PACK(0 , 0 , 24), VLC_PACK(7 , 0 , 94), VLC_PACK(7 , 0 , 62), VLC_PACK(0 , 1 , 4), VLC_PACK(0 , 0 , 18),
+ VLC_PACK(7 , 0 , 434), VLC_PACK(7 , 0 , 433), VLC_PACK(0 , 1 , 4), VLC_PACK(0 , 0 , 12), VLC_PACK(7 , 0 , 423), VLC_PACK(7 , 0 , 422),
+ VLC_PACK(1 , 1 , 4), VLC_PACK(0 , 0 , 6), VLC_PACK(7 , 0 , 413), VLC_PACK(7 , 0 , 412), VLC_PACK(3 , 1 , 0), VLC_PACK(7 , 0 , 408),
+ VLC_PACK(7 , 0 , 407), VLC_PACK(7 , 0 , 411), VLC_PACK(7 , 0 , 410), VLC_PACK(7 , 0 , 420), VLC_PACK(7 , 0 , 419), VLC_PACK(7 , 0 , 428),
+ VLC_PACK(7 , 0 , 427), VLC_PACK(7 , 0 , 437), VLC_PACK(7 , 0 , 436), VLC_PACK(7 , 0 , 222), VLC_PACK(7 , 0 , 190), VLC_PACK(5 , 0 , 255),
+ VLC_PACK(5 , 0 , 253), VLC_PACK(0 , 0 , 14), VLC_PACK(0 , 1 , 15), VLC_PACK(0 , 0 , 44), VLC_PACK(0 , 1 , 45), VLC_PACK(0 , 1 , 74),
+ VLC_PACK(0 , 2 , 103), VLC_PACK(0 , 1 , 230), VLC_PACK(0 , 0 , 256), VLC_PACK(5 , 0 , 190), VLC_PACK(7 , 0 , 254), VLC_PACK(4 , 3 , 508),
+ VLC_PACK(4 , 3 , 509), VLC_PACK(4 , 3 , 444), VLC_PACK(4 , 3 , 445), VLC_PACK(5 , 0 , 252), VLC_PACK(5 , 0 , 158), VLC_PACK(5 , 0 , 221),
+ VLC_PACK(5 , 0 , 62), VLC_PACK(0 , 0 , 2), VLC_PACK(0 , 1 , 3), VLC_PACK(5 , 0 , 251), VLC_PACK(5 , 0 , 189), VLC_PACK(5 , 0 , 250),
+ VLC_PACK(5 , 0 , 249), VLC_PACK(0 , 0 , 2), VLC_PACK(0 , 1 , 3), VLC_PACK(5 , 0 , 248), VLC_PACK(5 , 0 , 219), VLC_PACK(5 , 0 , 247),
+ VLC_PACK(5 , 0 , 246), VLC_PACK(0 , 0 , 2), VLC_PACK(0 , 1 , 3), VLC_PACK(5 , 0 , 245), VLC_PACK(5 , 0 , 244), VLC_PACK(5 , 0 , 243),
+ VLC_PACK(5 , 0 , 216), VLC_PACK(0 , 0 , 2), VLC_PACK(0 , 1 , 3), VLC_PACK(5 , 0 , 242), VLC_PACK(5 , 0 , 241), VLC_PACK(5 , 0 , 238),
+ VLC_PACK(5 , 0 , 237), VLC_PACK(0 , 0 , 2), VLC_PACK(3 , 1 , 0), VLC_PACK(5 , 0 , 236), VLC_PACK(5 , 0 , 152), VLC_PACK(5 , 0 , 126),
+ VLC_PACK(5 , 0 , 94), VLC_PACK(5 , 0 , 30), VLC_PACK(5 , 0 , 439), VLC_PACK(0 , 0 , 2), VLC_PACK(0 , 1 , 3), VLC_PACK(5 , 0 , 438),
+ VLC_PACK(5 , 0 , 437), VLC_PACK(5 , 0 , 220), VLC_PACK(5 , 0 , 157), VLC_PACK(0 , 0 , 2), VLC_PACK(0 , 1 , 3), VLC_PACK(5 , 0 , 188),
+ VLC_PACK(5 , 0 , 93), VLC_PACK(5 , 0 , 218), VLC_PACK(5 , 0 , 156), VLC_PACK(0 , 0 , 2), VLC_PACK(0 , 1 , 3), VLC_PACK(5 , 0 , 217),
+ VLC_PACK(5 , 0 , 187), VLC_PACK(5 , 0 , 186), VLC_PACK(5 , 0 , 155), VLC_PACK(0 , 0 , 2), VLC_PACK(0 , 1 , 3), VLC_PACK(5 , 0 , 240),
+ VLC_PACK(5 , 0 , 239), VLC_PACK(5 , 0 , 214), VLC_PACK(5 , 0 , 213), VLC_PACK(0 , 0 , 2), VLC_PACK(3 , 1 , 0), VLC_PACK(5 , 0 , 122),
+ VLC_PACK(5 , 0 , 27), VLC_PACK(7 , 0 , 158), VLC_PACK(7 , 0 , 126), VLC_PACK(0 , 0 , 2), VLC_PACK(0 , 1 , 3), VLC_PACK(5 , 0 , 436),
+ VLC_PACK(7 , 0 , 30), VLC_PACK(5 , 0 , 125), VLC_PACK(5 , 0 , 435), VLC_PACK(0 , 0 , 2), VLC_PACK(0 , 1 , 3), VLC_PACK(5 , 0 , 432),
+ VLC_PACK(5 , 0 , 431), VLC_PACK(5 , 0 , 61), VLC_PACK(5 , 0 , 29), VLC_PACK(0 , 0 , 2), VLC_PACK(0 , 1 , 3), VLC_PACK(5 , 0 , 124),
+ VLC_PACK(5 , 0 , 92), VLC_PACK(5 , 0 , 60), VLC_PACK(5 , 0 , 28), VLC_PACK(0 , 0 , 2), VLC_PACK(0 , 1 , 3), VLC_PACK(5 , 0 , 215),
+ VLC_PACK(5 , 0 , 154), VLC_PACK(5 , 0 , 185), VLC_PACK(5 , 0 , 184), VLC_PACK(0 , 0 , 2), VLC_PACK(3 , 1 , 0), VLC_PACK(5 , 0 , 366),
+ VLC_PACK(5 , 0 , 410), VLC_PACK(7 , 0 , 439), VLC_PACK(7 , 0 , 438), VLC_PACK(0 , 0 , 6), VLC_PACK(0 , 1 , 7), VLC_PACK(0 , 0 , 27),
+ VLC_PACK(0 , 1 , 28), VLC_PACK(0 , 1 , 48), VLC_PACK(0 , 2 , 68), VLC_PACK(5 , 0 , 434), VLC_PACK(5 , 0 , 433), VLC_PACK(5 , 0 , 430),
+ VLC_PACK(7 , 0 , 221), VLC_PACK(0 , 0 , 2), VLC_PACK(0 , 1 , 3), VLC_PACK(5 , 0 , 375), VLC_PACK(5 , 0 , 374), VLC_PACK(5 , 0 , 373),
+ VLC_PACK(5 , 0 , 426), VLC_PACK(0 , 0 , 2), VLC_PACK(0 , 1 , 3), VLC_PACK(5 , 0 , 372), VLC_PACK(5 , 0 , 420), VLC_PACK(5 , 0 , 123),
+ VLC_PACK(5 , 0 , 91), VLC_PACK(0 , 0 , 2), VLC_PACK(2 , 1 , 3), VLC_PACK(5 , 0 , 153), VLC_PACK(5 , 0 , 59), VLC_PACK(3 , 1 , 0),
+ VLC_PACK(7 , 0 , 218), VLC_PACK(5 , 0 , 409), VLC_PACK(7 , 0 , 253), VLC_PACK(7 , 0 , 435), VLC_PACK(7 , 0 , 432), VLC_PACK(7 , 0 , 431),
+ VLC_PACK(0 , 0 , 2), VLC_PACK(0 , 1 , 3), VLC_PACK(5 , 0 , 429), VLC_PACK(5 , 0 , 428), VLC_PACK(5 , 0 , 425), VLC_PACK(5 , 0 , 424),
+ VLC_PACK(0 , 0 , 2), VLC_PACK(0 , 1 , 3), VLC_PACK(5 , 0 , 419), VLC_PACK(5 , 0 , 418), VLC_PACK(5 , 0 , 311), VLC_PACK(5 , 0 , 371),
+ VLC_PACK(0 , 0 , 2), VLC_PACK(2 , 1 , 3), VLC_PACK(5 , 0 , 310), VLC_PACK(5 , 0 , 370), VLC_PACK(3 , 1 , 0), VLC_PACK(7 , 0 , 370),
+ VLC_PACK(7 , 0 , 188), VLC_PACK(7 , 0 , 430), VLC_PACK(7 , 0 , 429), VLC_PACK(0 , 0 , 2), VLC_PACK(0 , 1 , 3), VLC_PACK(5 , 0 , 427),
+ VLC_PACK(7 , 0 , 426), VLC_PACK(5 , 0 , 423), VLC_PACK(5 , 0 , 422), VLC_PACK(0 , 0 , 2), VLC_PACK(0 , 1 , 3), VLC_PACK(7 , 0 , 220),
+ VLC_PACK(7 , 0 , 157), VLC_PACK(5 , 0 , 417), VLC_PACK(5 , 0 , 416), VLC_PACK(0 , 0 , 2), VLC_PACK(2 , 1 , 3), VLC_PACK(5 , 0 , 369),
+ VLC_PACK(5 , 0 , 368), VLC_PACK(3 , 1 , 0), VLC_PACK(7 , 0 , 405), VLC_PACK(7 , 0 , 406), VLC_PACK(7 , 0 , 425), VLC_PACK(7 , 0 , 424),
+ VLC_PACK(0 , 0 , 6), VLC_PACK(0 , 1 , 7), VLC_PACK(0 , 0 , 18), VLC_PACK(0 , 1 , 19), VLC_PACK(0 , 1 , 27), VLC_PACK(2 , 2 , 35),
+ VLC_PACK(5 , 0 , 421), VLC_PACK(7 , 0 , 252), VLC_PACK(7 , 0 , 125), VLC_PACK(7 , 0 , 418), VLC_PACK(0 , 0 , 2), VLC_PACK(0 , 1 , 3),
+ VLC_PACK(5 , 0 , 415), VLC_PACK(5 , 0 , 414), VLC_PACK(5 , 0 , 367), VLC_PACK(5 , 0 , 413), VLC_PACK(0 , 0 , 2), VLC_PACK(3 , 1 , 0),
+ VLC_PACK(7 , 0 , 404), VLC_PACK(7 , 0 , 403), VLC_PACK(7 , 0 , 189), VLC_PACK(7 , 0 , 421), VLC_PACK(7 , 0 , 417), VLC_PACK(7 , 0 , 416),
+ VLC_PACK(0 , 0 , 2), VLC_PACK(2 , 1 , 3), VLC_PACK(7 , 0 , 251), VLC_PACK(7 , 0 , 93), VLC_PACK(3 , 1 , 0), VLC_PACK(5 , 0 , 411),
+ VLC_PACK(5 , 0 , 412), VLC_PACK(7 , 0 , 415), VLC_PACK(7 , 0 , 414), VLC_PACK(0 , 0 , 2), VLC_PACK(2 , 1 , 3), VLC_PACK(7 , 0 , 61),
+ VLC_PACK(7 , 0 , 29), VLC_PACK(3 , 1 , 0), VLC_PACK(7 , 0 , 219), VLC_PACK(7 , 0 , 250), VLC_PACK(2 , 2 , 4), VLC_PACK(2 , 1 , 7),
+ VLC_PACK(7 , 0 , 374), VLC_PACK(7 , 0 , 375), VLC_PACK(3 , 2 , 0), VLC_PACK(3 , 2 , 0), VLC_PACK(7 , 0 , 409), VLC_PACK(7 , 0 , 371),
+ VLC_PACK(3 , 1 , 0), VLC_PACK(7 , 0 , 372), VLC_PACK(7 , 0 , 373), VLC_PACK(0 , 1 , 4), VLC_PACK(0 , 0 , 24), VLC_PACK(7 , 0 , 94),
+ VLC_PACK(7 , 0 , 62), VLC_PACK(0 , 1 , 4), VLC_PACK(0 , 0 , 18), VLC_PACK(7 , 0 , 434), VLC_PACK(7 , 0 , 433), VLC_PACK(0 , 1 , 4),
+ VLC_PACK(0 , 0 , 12), VLC_PACK(7 , 0 , 423), VLC_PACK(7 , 0 , 422), VLC_PACK(1 , 1 , 4), VLC_PACK(0 , 0 , 6), VLC_PACK(7 , 0 , 413),
+ VLC_PACK(7 , 0 , 412), VLC_PACK(3 , 1 , 0), VLC_PACK(7 , 0 , 408), VLC_PACK(7 , 0 , 407), VLC_PACK(7 , 0 , 411), VLC_PACK(7 , 0 , 410),
+ VLC_PACK(7 , 0 , 420), VLC_PACK(7 , 0 , 419), VLC_PACK(7 , 0 , 428), VLC_PACK(7 , 0 , 427), VLC_PACK(7 , 0 , 437), VLC_PACK(7 , 0 , 436),
+ VLC_PACK(7 , 0 , 222), VLC_PACK(7 , 0 , 190), VLC_PACK(4 , 0 , 0), VLC_PACK(5 , 0 , 1), VLC_PACK(5 , 0 , 2), VLC_PACK(5 , 0 , 3),
+ VLC_PACK(5 , 0 , 4), VLC_PACK(5 , 0 , 5), VLC_PACK(1 , 5 , 1), VLC_PACK(5 , 0 , 6), VLC_PACK(5 , 0 , 7), VLC_PACK(5 , 0 , 8),
+ VLC_PACK(5 , 0 , 9), VLC_PACK(5 , 0 , 10), VLC_PACK(5 , 0 , 11), VLC_PACK(1 , 3 , 1), VLC_PACK(5 , 0 , 12), VLC_PACK(5 , 0 , 13),
+ VLC_PACK(5 , 0 , 14), VLC_PACK(5 , 0 , 15), VLC_PACK(5 , 1 , 16), VLC_PACK(5 , 0 , 1), VLC_PACK(5 , 0 , 2), VLC_PACK(5 , 0 , 3),
+ VLC_PACK(5 , 0 , 4), VLC_PACK(5 , 0 , 5), VLC_PACK(5 , 0 , 6), VLC_PACK(1 , 5 , 1), VLC_PACK(5 , 0 , 7), VLC_PACK(5 , 0 , 8),
+ VLC_PACK(5 , 0 , 9), VLC_PACK(5 , 0 , 10), VLC_PACK(5 , 0 , 11), VLC_PACK(5 , 0 , 12), VLC_PACK(1 , 2 , 1), VLC_PACK(5 , 0 , 13),
+ VLC_PACK(5 , 0 , 14), VLC_PACK(5 , 0 , 15), VLC_PACK(5 , 1 , 16), VLC_PACK(4 , 0 , 1), VLC_PACK(4 , 1 , 2), VLC_PACK(4 , 1 , 4),
+ VLC_PACK(0 , 0 , 2),
+};
+
+
+struct context_MPEG4_s {
+ object_context_p obj_context; /* back reference */
+
+ uint32_t profile;
+
+ /* Picture parameters */
+ VAPictureParameterBufferMPEG4 *pic_params;
+ object_surface_p forward_ref_surface;
+ object_surface_p backward_ref_surface;
+
+ uint32_t display_picture_width; /* in pixels */
+ uint32_t display_picture_height; /* in pixels */
+
+ uint32_t coded_picture_width; /* in pixels */
+ uint32_t coded_picture_height; /* in pixels */
+
+ uint32_t picture_width_mb; /* in macroblocks */
+ uint32_t picture_height_mb; /* in macroblocks */
+ uint32_t size_mb; /* in macroblocks */
+
+ uint32_t FEControl;
+ uint32_t FE_SPS0;
+ uint32_t FE_VOP_PPS0;
+ uint32_t FE_VOP_SPS0;
+ uint32_t FE_PICSH_PPS0;
+
+ uint32_t BE_SPS0;
+ uint32_t BE_SPS1;
+ uint32_t BE_VOP_PPS0;
+ uint32_t BE_VOP_SPS0;
+ uint32_t BE_VOP_SPS1;
+ uint32_t BE_PICSH_PPS0;
+
+ /* IQ Matrix */
+ uint32_t qmatrix_data[MAX_QUANT_TABLES][16];
+ int load_non_intra_quant_mat;
+ int load_intra_quant_mat;
+
+ /* Split buffers */
+ int split_buffer_pending;
+
+ /* List of VASliceParameterBuffers */
+ object_buffer_p *slice_param_list;
+ int slice_param_list_size;
+ int slice_param_list_idx;
+
+ /* VLC packed data */
+ struct psb_buffer_s vlc_packed_table;
+
+ /* FE state buffer */
+ struct psb_buffer_s FE_state_buffer;
+
+ /* CoLocated buffers */
+ struct psb_buffer_s *colocated_buffers;
+ int colocated_buffers_size;
+ int colocated_buffers_idx;
+
+ uint32_t *p_range_mapping_base0;
+ uint32_t *p_range_mapping_base1;
+ uint32_t *p_slice_params; /* pointer to ui32SliceParams in CMD_HEADER */
+ uint32_t *slice_first_pic_last;
+ uint32_t *alt_output_flags;
+};
+
+typedef struct context_MPEG4_s *context_MPEG4_p;
+
+#define INIT_CONTEXT_MPEG4 context_MPEG4_p ctx = (context_MPEG4_p) obj_context->format_data;
+
+#define SURFACE(id) ((object_surface_p) object_heap_lookup( &ctx->obj_context->driver_data->surface_heap, id ))
+
+static const char *psb__debug_picture_coding_str(unsigned char vop_coding_type)
+{
+ switch (vop_coding_type) {
+ case PICTURE_CODING_I:
+ return ("PICTURE_CODING_I");
+ case PICTURE_CODING_P:
+ return ("PICTURE_CODING_P");
+ case PICTURE_CODING_B:
+ return ("PICTURE_CODING_B");
+ case PICTURE_CODING_S:
+ return ("PICTURE_CODING_S");
+ }
+ return ("UNKNOWN!!!");
+}
+
+
+static void pnw_MPEG4_QueryConfigAttributes(
+ VAProfile profile,
+ VAEntrypoint entrypoint,
+ VAConfigAttrib *attrib_list,
+ int num_attribs)
+{
+ /* No MPEG4 specific attributes */
+}
+
+static VAStatus pnw_MPEG4_ValidateConfig(
+ object_config_p obj_config)
+{
+ int i;
+ /* Check all attributes */
+ for (i = 0; i < obj_config->attrib_count; i++) {
+ switch (obj_config->attrib_list[i].type) {
+ case VAConfigAttribRTFormat:
+ /* Ignore */
+ break;
+
+ default:
+ return VA_STATUS_ERROR_ATTR_NOT_SUPPORTED;
+ }
+ }
+
+ return VA_STATUS_SUCCESS;
+}
+
+static VAStatus psb__MPEG4_check_legal_picture(object_context_p obj_context, object_config_p obj_config)
+{
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+
+ if (NULL == obj_context) {
+ vaStatus = VA_STATUS_ERROR_INVALID_CONTEXT;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ if (NULL == obj_config) {
+ vaStatus = VA_STATUS_ERROR_INVALID_CONFIG;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ /* MSVDX decode capability for MPEG4:
+ * SP@L3
+ * ASP@L5
+ *
+ * Refer to the "MSVDX MPEG4 decode capability" table of "Poulsbo Media Software Overview".
+ */
+ switch (obj_config->profile) {
+ case VAProfileMPEG4Simple:
+ case VAProfileMPEG4AdvancedSimple:
+ if ((obj_context->picture_width <= 0) || (obj_context->picture_height <= 0)) {
+ vaStatus = VA_STATUS_ERROR_RESOLUTION_NOT_SUPPORTED;
+ }
+ break;
+
+ default:
+ vaStatus = VA_STATUS_ERROR_UNSUPPORTED_PROFILE;
+ break;
+ }
+
+ return vaStatus;
+}
+
+static void pnw_MPEG4_DestroyContext(object_context_p obj_context);
+
+static VAStatus pnw_MPEG4_CreateContext(
+ object_context_p obj_context,
+ object_config_p obj_config)
+{
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ context_MPEG4_p ctx;
+ /* Validate flag */
+ /* Validate picture dimensions */
+ vaStatus = psb__MPEG4_check_legal_picture(obj_context, obj_config);
+ if (VA_STATUS_SUCCESS != vaStatus) {
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ ctx = (context_MPEG4_p) calloc(1, sizeof(struct context_MPEG4_s));
+ if (NULL == ctx) {
+ vaStatus = VA_STATUS_ERROR_ALLOCATION_FAILED;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+ obj_context->format_data = (void*) ctx;
+ ctx->obj_context = obj_context;
+ ctx->pic_params = NULL;
+ ctx->load_non_intra_quant_mat = FALSE;
+ ctx->load_intra_quant_mat = FALSE;
+
+ ctx->split_buffer_pending = FALSE;
+
+ ctx->slice_param_list_size = 8;
+ ctx->slice_param_list = (object_buffer_p*) calloc(1, sizeof(object_buffer_p) * ctx->slice_param_list_size);
+ ctx->slice_param_list_idx = 0;
+
+ if (NULL == ctx->slice_param_list) {
+ vaStatus = VA_STATUS_ERROR_ALLOCATION_FAILED;
+ DEBUG_FAILURE;
+ free(ctx);
+ return vaStatus;
+ }
+
+ ctx->colocated_buffers_size = obj_context->num_render_targets;
+ ctx->colocated_buffers_idx = 0;
+ ctx->colocated_buffers = (psb_buffer_p) calloc(1, sizeof(struct psb_buffer_s) * ctx->colocated_buffers_size);
+ if (NULL == ctx->colocated_buffers) {
+ vaStatus = VA_STATUS_ERROR_ALLOCATION_FAILED;
+ DEBUG_FAILURE;
+ free(ctx->slice_param_list);
+ free(ctx);
+ return vaStatus;
+ }
+
+ switch (obj_config->profile) {
+ case VAProfileMPEG4Simple:
+ psb__information_message("MPEG4_PROFILE_SIMPLE\n");
+ ctx->profile = MPEG4_PROFILE_SIMPLE;
+ break;
+
+ case VAProfileMPEG4AdvancedSimple:
+ psb__information_message("MPEG4_PROFILE_ASP\n");
+ ctx->profile = MPEG4_PROFILE_ASP;
+ break;
+
+ default:
+ ASSERT(0 == 1);
+ vaStatus = VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ // TODO
+
+ if (vaStatus == VA_STATUS_SUCCESS) {
+ vaStatus = psb_buffer_create(obj_context->driver_data,
+ FE_STATE_BUFFER_SIZE,
+ psb_bt_vpu_only,
+ &ctx->FE_state_buffer);
+ DEBUG_FAILURE;
+ }
+
+ if (vaStatus == VA_STATUS_SUCCESS) {
+ vaStatus = psb_buffer_create(obj_context->driver_data,
+ sizeof(gaui16mpeg4VlcTableDataPacked),
+ psb_bt_cpu_vpu,
+ &ctx->vlc_packed_table);
+ DEBUG_FAILURE;
+ }
+ if (vaStatus == VA_STATUS_SUCCESS) {
+ void *vlc_packed_data_address;
+ if (0 == psb_buffer_map(&ctx->vlc_packed_table, &vlc_packed_data_address)) {
+ memcpy(vlc_packed_data_address, gaui16mpeg4VlcTableDataPacked, sizeof(gaui16mpeg4VlcTableDataPacked));
+ psb_buffer_unmap(&ctx->vlc_packed_table);
+ } else {
+ vaStatus = VA_STATUS_ERROR_ALLOCATION_FAILED;
+ DEBUG_FAILURE;
+ }
+ }
+
+ if (vaStatus != VA_STATUS_SUCCESS) {
+ pnw_MPEG4_DestroyContext(obj_context);
+ }
+
+ return vaStatus;
+}
+
+static void pnw_MPEG4_DestroyContext(
+ object_context_p obj_context)
+{
+ INIT_CONTEXT_MPEG4
+ int i;
+
+ psb_buffer_destroy(&ctx->vlc_packed_table);
+ psb_buffer_destroy(&ctx->FE_state_buffer);
+
+ if (ctx->pic_params) {
+ free(ctx->pic_params);
+ ctx->pic_params = NULL;
+ }
+
+ if (ctx->colocated_buffers) {
+ for (i = 0; i < ctx->colocated_buffers_idx; ++i)
+ psb_buffer_destroy(&(ctx->colocated_buffers[i]));
+
+ free(ctx->colocated_buffers);
+ ctx->colocated_buffers = NULL;
+ }
+ if (ctx->slice_param_list) {
+ free(ctx->slice_param_list);
+ ctx->slice_param_list = NULL;
+ }
+
+ free(obj_context->format_data);
+ obj_context->format_data = NULL;
+}
+
+static VAStatus psb__MPEG4_allocate_colocated_buffer(context_MPEG4_p ctx, object_surface_p obj_surface, uint32_t size)
+{
+ psb_surface_p surface = obj_surface->psb_surface;
+
+ if (!GET_SURFACE_INFO_colocated_index(surface)) {
+ VAStatus vaStatus;
+ psb_buffer_p buf;
+ int index = ctx->colocated_buffers_idx;
+ if (index >= ctx->colocated_buffers_size) {
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+ buf = &(ctx->colocated_buffers[index]);
+ vaStatus = psb_buffer_create(ctx->obj_context->driver_data, size, psb_bt_vpu_only, buf);
+ if (VA_STATUS_SUCCESS != vaStatus) {
+ return vaStatus;
+ }
+ ctx->colocated_buffers_idx++;
+ SET_SURFACE_INFO_colocated_index(surface, index + 1); /* 0 means unset, index is offset by 1 */
+ }
+ return VA_STATUS_SUCCESS;
+}
+
+static psb_buffer_p psb__MPEG4_lookup_colocated_buffer(context_MPEG4_p ctx, psb_surface_p surface)
+{
+ int index = GET_SURFACE_INFO_colocated_index(surface);
+ if (!index) {
+ return NULL;
+ }
+ return &(ctx->colocated_buffers[index-1]); /* 0 means unset, index is offset by 1 */
+}
+
+static VAStatus psb__MPEG4_process_picture_param(context_MPEG4_p ctx, object_buffer_p obj_buffer)
+{
+ VAStatus vaStatus;
+ ASSERT(obj_buffer->type == VAPictureParameterBufferType);
+ ASSERT(obj_buffer->num_elements == 1);
+ ASSERT(obj_buffer->size == sizeof(VAPictureParameterBufferMPEG4));
+
+ if ((obj_buffer->num_elements != 1) ||
+ (obj_buffer->size != sizeof(VAPictureParameterBufferMPEG4))) {
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ /* Transfer ownership of VAPictureParameterBufferMPEG4 data */
+ if (ctx->pic_params) {
+ free(ctx->pic_params);
+ }
+ ctx->pic_params = (VAPictureParameterBufferMPEG4 *) obj_buffer->buffer_data;
+ obj_buffer->buffer_data = NULL;
+ obj_buffer->size = 0;
+
+
+ /* Lookup surfaces for backward/forward references */
+ /* Lookup surfaces for backward/forward references */
+ switch (ctx->pic_params->vop_fields.bits.vop_coding_type) {
+ case PICTURE_CODING_I:
+ ctx->forward_ref_surface = NULL;
+ ctx->backward_ref_surface = NULL;
+ psb__information_message("PICTURE_CODING_I\nTarget surface = %08x (%08x)\n", ctx->obj_context->current_render_target->psb_surface, ctx->obj_context->current_render_target->base.id);
+ psb__information_message("Forward ref = NULL\n");
+ psb__information_message("Backward ref = NULL\n");
+ break;
+
+ case PICTURE_CODING_P:
+ ctx->forward_ref_surface = SURFACE(ctx->pic_params->forward_reference_picture);
+ ctx->backward_ref_surface = NULL;
+ if (NULL == ctx->forward_ref_surface) {
+ return VA_STATUS_ERROR_INVALID_SURFACE;
+ }
+ psb__information_message("PICTURE_CODING_P\nTarget surface = %08x (%08x)\n", ctx->obj_context->current_render_target->psb_surface, ctx->obj_context->current_render_target->base.id);
+ psb__information_message("Forward ref = %08x (%08x)\n", ctx->forward_ref_surface->psb_surface, ctx->pic_params->forward_reference_picture);
+ psb__information_message("Backward ref = NULL\n");
+ break;
+
+ case PICTURE_CODING_B:
+ ctx->forward_ref_surface = SURFACE(ctx->pic_params->forward_reference_picture);
+ ctx->backward_ref_surface = SURFACE(ctx->pic_params->backward_reference_picture);
+ if ((NULL == ctx->forward_ref_surface) ||
+ (NULL == ctx->backward_ref_surface)) {
+ return VA_STATUS_ERROR_INVALID_SURFACE;
+ }
+ psb__information_message("PICTURE_CODING_B\nTarget surface = %08x (%08x)\n", ctx->obj_context->current_render_target->psb_surface, ctx->obj_context->current_render_target->base.id);
+ psb__information_message("Forward ref = %08x (%08x)\n", ctx->forward_ref_surface->psb_surface, ctx->pic_params->forward_reference_picture);
+ psb__information_message("Backward ref = %08x (%08x)\n", ctx->backward_ref_surface->psb_surface, ctx->pic_params->backward_reference_picture);
+ break;
+
+ case PICTURE_CODING_S:
+ ctx->forward_ref_surface = SURFACE(ctx->pic_params->forward_reference_picture);
+ ctx->backward_ref_surface = SURFACE(ctx->pic_params->backward_reference_picture);
+ psb__information_message("PICTURE_CODING_S\nTarget surface = %08x (%08x)\n", ctx->obj_context->current_render_target->psb_surface, ctx->obj_context->current_render_target->base.id);
+ psb__information_message("Forward ref = %08x (%08x)\n", ctx->forward_ref_surface ? ctx->forward_ref_surface->psb_surface : 0, ctx->pic_params->forward_reference_picture);
+ psb__information_message("Backward ref = %08x (%08x)\n", ctx->backward_ref_surface ? ctx->backward_ref_surface->psb_surface : 0, ctx->pic_params->backward_reference_picture);
+ break;
+
+ default:
+ psb__error_message("Unhandled MPEG4 vop_coding_type '%d'\n", ctx->pic_params->vop_fields.bits.vop_coding_type);
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ if (NULL == ctx->forward_ref_surface) {
+ /* for mmu fault protection */
+ ctx->forward_ref_surface = ctx->obj_context->current_render_target;
+ }
+ if (NULL == ctx->backward_ref_surface) {
+ /* for mmu fault protection */
+ ctx->backward_ref_surface = ctx->obj_context->current_render_target;
+ }
+
+ ctx->display_picture_width = ctx->pic_params->vop_width;
+ ctx->display_picture_height = ctx->pic_params->vop_height;
+ ctx->picture_width_mb = PIXELS_TO_MB(ctx->display_picture_width);
+ ctx->picture_height_mb = PIXELS_TO_MB(ctx->display_picture_height);
+ ctx->coded_picture_width = ctx->picture_width_mb * 16;
+ ctx->coded_picture_height = ctx->picture_height_mb * 16;
+ ctx->size_mb = ctx->picture_width_mb * ctx->picture_height_mb;
+
+ uint32_t mbInPic = ctx->picture_width_mb * ctx->picture_height_mb;
+
+ mbInPic += 4;
+
+ uint32_t colocated_size = ((mbInPic * 200) + 0xfff) & ~0xfff;
+
+ vaStatus = psb__MPEG4_allocate_colocated_buffer(ctx, ctx->obj_context->current_render_target, colocated_size);
+ if (VA_STATUS_SUCCESS != vaStatus) {
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+ vaStatus = psb__MPEG4_allocate_colocated_buffer(ctx, ctx->forward_ref_surface, colocated_size);
+ if (VA_STATUS_SUCCESS != vaStatus) {
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ ctx->FEControl = 0;
+ REGIO_WRITE_FIELD_LITE(ctx->FEControl ,
+ MSVDX_VEC,
+ CR_VEC_ENTDEC_FE_CONTROL,
+ ENTDEC_FE_PROFILE,
+ ctx->profile); /* MPEG4 SP / ASP profile */
+
+ REGIO_WRITE_FIELD_LITE(ctx->FEControl ,
+ MSVDX_VEC,
+ CR_VEC_ENTDEC_FE_CONTROL,
+ ENTDEC_FE_MODE,
+ 4); /* Set MPEG4 mode */
+
+ /* FE_SPS0 */
+ ctx->FE_SPS0 = 0;
+ REGIO_WRITE_FIELD_LITE(ctx->FE_SPS0, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_FE_SPS0, FE_VOP_WIDTH_IN_MBS_LESS_1, ctx->picture_width_mb - 1);
+ REGIO_WRITE_FIELD_LITE(ctx->FE_SPS0, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_FE_SPS0, FE_SHORT_HEADER_FLAG, ctx->pic_params->vol_fields.bits.short_video_header);
+ REGIO_WRITE_FIELD_LITE(ctx->FE_SPS0, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_FE_SPS0, FE_PROFILE, ctx->profile);
+
+ /* FE_VOP_SPS0 */
+ ctx->FE_VOP_SPS0 = 0;
+ REGIO_WRITE_FIELD_LITE(ctx->FE_VOP_SPS0, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_FE_VOP_SPS0, FE_VOP_HEIGHT_IN_MBS_LESS_1, ctx->picture_height_mb - 1);
+ REGIO_WRITE_FIELD_LITE(ctx->FE_VOP_SPS0, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_FE_VOP_SPS0, QUANT_PRECISION, ctx->pic_params->quant_precision);
+ REGIO_WRITE_FIELD_LITE(ctx->FE_VOP_SPS0, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_FE_VOP_SPS0, FE_NO_OF_GMC_WARPING_POINTS, ctx->pic_params->no_of_sprite_warping_points);
+ REGIO_WRITE_FIELD_LITE(ctx->FE_VOP_SPS0, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_FE_VOP_SPS0, FE_GMC_ENABLE, (ctx->pic_params->vol_fields.bits.sprite_enable == GMC));
+ REGIO_WRITE_FIELD_LITE(ctx->FE_VOP_SPS0, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_FE_VOP_SPS0, REVERSIBLE_VLC, ctx->pic_params->vol_fields.bits.reversible_vlc);
+ REGIO_WRITE_FIELD_LITE(ctx->FE_VOP_SPS0, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_FE_VOP_SPS0, FE_DATA_PARTITIONED, ctx->pic_params->vol_fields.bits.data_partitioned);
+ REGIO_WRITE_FIELD_LITE(ctx->FE_VOP_SPS0, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_FE_VOP_SPS0, FE_INTERLACED, ctx->pic_params->vol_fields.bits.interlaced);
+
+ if (ctx->pic_params->vol_fields.bits.short_video_header) {
+ /* FE_PICSH_PPS0 */
+ ctx->FE_PICSH_PPS0 = 0;
+ REGIO_WRITE_FIELD_LITE(ctx->FE_PICSH_PPS0, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_FE_PICSH_PPS0, NUM_MBS_IN_GOB, ctx->pic_params->num_macroblocks_in_gob);
+ REGIO_WRITE_FIELD_LITE(ctx->FE_PICSH_PPS0, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_FE_PICSH_PPS0, NUM_GOBS_IN_VOP, ctx->pic_params->num_gobs_in_vop);
+ REGIO_WRITE_FIELD_LITE(ctx->FE_PICSH_PPS0, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_FE_PICSH_PPS0, FE_PICSH_CODING_TYPE, ctx->pic_params->vop_fields.bits.vop_coding_type);
+ }
+
+ /* FE_VOP_PPS0 */
+ ctx->FE_VOP_PPS0 = 0;
+ REGIO_WRITE_FIELD_LITE(ctx->FE_VOP_PPS0, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_FE_VOP_PPS0, BACKWARD_REF_VOP_CODING_TYPE, ctx->pic_params->vop_fields.bits.backward_reference_vop_coding_type);
+ REGIO_WRITE_FIELD_LITE(ctx->FE_VOP_PPS0, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_FE_VOP_PPS0, FE_FCODE_BACKWARD, ctx->pic_params->vop_fcode_backward);
+ REGIO_WRITE_FIELD_LITE(ctx->FE_VOP_PPS0, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_FE_VOP_PPS0, FE_FCODE_FORWARD, ctx->pic_params->vop_fcode_forward);
+ REGIO_WRITE_FIELD_LITE(ctx->FE_VOP_PPS0, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_FE_VOP_PPS0, INTRA_DC_VLC_THR, ctx->pic_params->vop_fields.bits.intra_dc_vlc_thr);
+ REGIO_WRITE_FIELD_LITE(ctx->FE_VOP_PPS0, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_FE_VOP_PPS0, FE_VOP_CODING_TYPE, ctx->pic_params->vop_fields.bits.vop_coding_type);
+
+ /* BE_SPS0 */
+ /* Common for VOPs and pictures with short header */
+ ctx->BE_SPS0 = 0;
+ REGIO_WRITE_FIELD_LITE(ctx->BE_SPS0, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_BE_SPS0, BE_SHORT_HEADER_FLAG, ctx->pic_params->vol_fields.bits.short_video_header);
+ REGIO_WRITE_FIELD_LITE(ctx->BE_SPS0, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_BE_SPS0, BE_PROFILE, ctx->profile);
+
+ /* BE_SPS1 */
+ /* Common for VOPs and pictures with short header */
+ ctx->BE_SPS1 = 0;
+ REGIO_WRITE_FIELD_LITE(ctx->BE_SPS1, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_BE_SPS1, BE_VOP_WIDTH_IN_MBS_LESS_1, ctx->picture_width_mb - 1);
+ REGIO_WRITE_FIELD_LITE(ctx->BE_SPS1, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_BE_SPS1, VOP_HEIGHT_IN_MBS_LESS_1, ctx->picture_height_mb - 1);
+
+ if (0 == ctx->pic_params->vol_fields.bits.short_video_header) {
+ /* BE_VOP_SPS0 */
+ ctx->BE_VOP_SPS0 = 0;
+ REGIO_WRITE_FIELD_LITE(ctx->BE_VOP_SPS0, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_BE_VOP_SPS0, QUANT_TYPE, ctx->pic_params->vol_fields.bits.quant_type);
+ REGIO_WRITE_FIELD_LITE(ctx->BE_VOP_SPS0, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_BE_VOP_SPS0, OBMC_DISABLE, ctx->pic_params->vol_fields.bits.obmc_disable);
+ REGIO_WRITE_FIELD_LITE(ctx->BE_VOP_SPS0, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_BE_VOP_SPS0, QUARTER_SAMPLE, ctx->pic_params->vol_fields.bits.quarter_sample);
+
+ /* BE_VOP_SPS1 */
+ ctx->BE_VOP_SPS1 = 0;
+ REGIO_WRITE_FIELD_LITE(ctx->BE_VOP_SPS1, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_BE_VOP_SPS1, GMC_WARPING_ACCURACY, ctx->pic_params->vol_fields.bits.sprite_warping_accuracy);
+ REGIO_WRITE_FIELD_LITE(ctx->BE_VOP_SPS1, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_BE_VOP_SPS1, BE_NO_OF_GMC_WARPING_POINTS, ctx->pic_params->no_of_sprite_warping_points);
+ REGIO_WRITE_FIELD_LITE(ctx->BE_VOP_SPS1, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_BE_VOP_SPS1, BE_GMC_ENABLE, (ctx->pic_params->vol_fields.bits.sprite_enable == GMC));
+ REGIO_WRITE_FIELD_LITE(ctx->BE_VOP_SPS1, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_BE_VOP_SPS1, BE_DATA_PARTITIONED, ctx->pic_params->vol_fields.bits.data_partitioned);
+ REGIO_WRITE_FIELD_LITE(ctx->BE_VOP_SPS1, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_BE_VOP_SPS1, BE_INTERLACED, ctx->pic_params->vol_fields.bits.interlaced);
+
+ /* BE_VOP_PPS0 */
+ ctx->BE_VOP_PPS0 = 0;
+ REGIO_WRITE_FIELD_LITE(ctx->BE_VOP_PPS0, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_BE_VOP_PPS0, BE_FCODE_BACKWARD, ctx->pic_params->vop_fcode_backward);
+ REGIO_WRITE_FIELD_LITE(ctx->BE_VOP_PPS0, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_BE_VOP_PPS0, BE_FCODE_FORWARD, ctx->pic_params->vop_fcode_forward);
+ REGIO_WRITE_FIELD_LITE(ctx->BE_VOP_PPS0, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_BE_VOP_PPS0, ALTERNATE_VERTICAL_SCAN_FLAG, ctx->pic_params->vop_fields.bits.alternate_vertical_scan_flag);
+ REGIO_WRITE_FIELD_LITE(ctx->BE_VOP_PPS0, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_BE_VOP_PPS0, TOP_FIELD_FIRST, ctx->pic_params->vop_fields.bits.top_field_first);
+ REGIO_WRITE_FIELD_LITE(ctx->BE_VOP_PPS0,
+ MSVDX_VEC_MPEG4,
+ CR_VEC_MPEG4_BE_VOP_PPS0,
+ ROUNDING_TYPE,
+ ((PICTURE_CODING_I == ctx->pic_params->vop_fields.bits.vop_coding_type ||
+ PICTURE_CODING_B == ctx->pic_params->vop_fields.bits.vop_coding_type) ?
+ 0 : ctx->pic_params->vop_fields.bits.vop_rounding_type));
+ REGIO_WRITE_FIELD_LITE(ctx->BE_VOP_PPS0, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_BE_VOP_PPS0, BE_VOP_CODING_TYPE, ctx->pic_params->vop_fields.bits.vop_coding_type);
+ } else {
+ /* BE_VOP_PPS0 */
+ ctx->BE_VOP_PPS0 = 0;
+ REGIO_WRITE_FIELD_LITE(ctx->BE_VOP_PPS0, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_BE_VOP_PPS0, BE_FCODE_FORWARD, 1); // Always 1 in short header mode 6.3.5.2
+ REGIO_WRITE_FIELD_LITE(ctx->BE_VOP_PPS0, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_BE_VOP_PPS0, ALTERNATE_VERTICAL_SCAN_FLAG, ctx->pic_params->vop_fields.bits.alternate_vertical_scan_flag);
+ REGIO_WRITE_FIELD_LITE(ctx->BE_VOP_PPS0, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_BE_VOP_PPS0, TOP_FIELD_FIRST, ctx->pic_params->vop_fields.bits.top_field_first);
+ REGIO_WRITE_FIELD_LITE(ctx->BE_VOP_PPS0, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_BE_VOP_PPS0, ROUNDING_TYPE, 0); // Always 0 in short header mode 6.3.5.2
+ REGIO_WRITE_FIELD_LITE(ctx->BE_VOP_PPS0, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_BE_VOP_PPS0, BE_VOP_CODING_TYPE, ctx->pic_params->vop_fields.bits.vop_coding_type);
+
+ /* BE_PICSH_PPS0 */
+ ctx->BE_PICSH_PPS0 = 0;
+ REGIO_WRITE_FIELD_LITE(ctx->BE_PICSH_PPS0, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_BE_PICSH_PPS0, BE_PICSH_CODING_TYPE, ctx->pic_params->vop_fields.bits.vop_coding_type);
+ }
+
+ return VA_STATUS_SUCCESS;
+}
+
+static void psb__MPEG4_convert_iq_matrix(uint32_t *dest32, unsigned char *src)
+{
+ int i;
+ int *idx = scan0;
+ uint8_t *dest8 = (uint8_t*) dest32;
+
+ for (i = 0; i < 64; i++) {
+ *dest8++ = src[*idx++];
+ }
+}
+
+static VAStatus psb__MPEG4_process_iq_matrix(context_MPEG4_p ctx, object_buffer_p obj_buffer)
+{
+ VAIQMatrixBufferMPEG4 *iq_matrix = (VAIQMatrixBufferMPEG4 *) obj_buffer->buffer_data;
+ ASSERT(obj_buffer->type == VAIQMatrixBufferType);
+ ASSERT(obj_buffer->num_elements == 1);
+ ASSERT(obj_buffer->size == sizeof(VAIQMatrixBufferMPEG4));
+
+ if ((obj_buffer->num_elements != 1) ||
+ (obj_buffer->size != sizeof(VAIQMatrixBufferMPEG4))) {
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ if (iq_matrix->load_non_intra_quant_mat) {
+ psb__MPEG4_convert_iq_matrix(ctx->qmatrix_data[NONINTRA_LUMA_Q], iq_matrix->non_intra_quant_mat);
+ }
+ if (iq_matrix->load_intra_quant_mat) {
+ psb__MPEG4_convert_iq_matrix(ctx->qmatrix_data[INTRA_LUMA_Q], iq_matrix->intra_quant_mat);
+ }
+ ctx->load_non_intra_quant_mat = iq_matrix->load_non_intra_quant_mat;
+ ctx->load_intra_quant_mat = iq_matrix->load_intra_quant_mat;
+
+ return VA_STATUS_SUCCESS;
+}
+
+static void psb__MPEG4_write_qmatrices(context_MPEG4_p ctx)
+{
+ psb_cmdbuf_p cmdbuf = ctx->obj_context->cmdbuf;
+ int i;
+
+ // TODO: Verify that this is indeed the same as MPEG2
+
+ /* Since we only decode 4:2:0 We only need to the Intra tables.
+ Chroma quant tables are only used in Mpeg 4:2:2 and 4:4:4.
+ The hardware wants non-intra followed by intra */
+ /* psb_cmdbuf_rendec_start_block( cmdbuf ); */
+ psb_cmdbuf_rendec_start(cmdbuf, REG_MSVDX_VEC_IQRAM_OFFSET);
+
+ /* todo : optimisation here is to only load the need table */
+ if (ctx->load_non_intra_quant_mat) {
+ /* NONINTRA_LUMA_Q --> REG_MSVDX_VEC_IQRAM_OFFSET + 0 */
+ for (i = 0; i < 16; i++) {
+ psb_cmdbuf_rendec_write(cmdbuf, ctx->qmatrix_data[NONINTRA_LUMA_Q][i]);
+ }
+ } else {
+ for (i = 0; i < 16; i++) {
+ psb_cmdbuf_rendec_write(cmdbuf, 0);
+ }
+ }
+ if (ctx->load_intra_quant_mat) {
+ /* INTRA_LUMA_Q --> REG_MSVDX_VEC_IQRAM_OFFSET + (16*4) */
+ for (i = 0; i < 16; i++) {
+ psb_cmdbuf_rendec_write(cmdbuf, ctx->qmatrix_data[INTRA_LUMA_Q][i]);
+ }
+ } else {
+ for (i = 0; i < 16; i++) {
+ psb_cmdbuf_rendec_write(cmdbuf, 0);
+ }
+ }
+
+ psb_cmdbuf_rendec_end(cmdbuf);
+ /* psb_cmdbuf_rendec_end_block( cmdbuf ); */
+}
+
+
+/*
+ * Adds a VASliceParameterBuffer to the list of slice params
+ */
+static VAStatus psb__MPEG4_add_slice_param(context_MPEG4_p ctx, object_buffer_p obj_buffer)
+{
+ ASSERT(obj_buffer->type == VASliceParameterBufferType);
+ if (ctx->slice_param_list_idx >= ctx->slice_param_list_size) {
+ void *new_list;
+ ctx->slice_param_list_size += 8;
+ new_list = realloc(ctx->slice_param_list,
+ sizeof(object_buffer_p) * ctx->slice_param_list_size);
+ if (NULL == new_list) {
+ return VA_STATUS_ERROR_ALLOCATION_FAILED;
+ }
+ ctx->slice_param_list = (object_buffer_p*) new_list;
+ }
+ ctx->slice_param_list[ctx->slice_param_list_idx] = obj_buffer;
+ ctx->slice_param_list_idx++;
+ return VA_STATUS_SUCCESS;
+}
+
+/* Precalculated values */
+#define ADDR0 (0x00005800)
+#define ADDR1 (0x0001f828)
+#define ADDR2 (0x0002b854)
+#define ADDR3 (0x0002f85c)
+#define ADDR4 (0x0004d089)
+#define ADDR5 (0x0008f0aa)
+#define ADDR6 (0x00149988)
+#define ADDR7 (0x001d8b9e)
+#define ADDR8 (0x000003c3)
+#define WIDTH0 (0x09a596ed)
+#define WIDTH1 (0x0006d6db)
+#define OPCODE0 (0x50009a0a)
+#define OPCODE1 (0x00000001)
+
+static void psb__MPEG4_write_VLC_tables(context_MPEG4_p ctx)
+{
+ psb_cmdbuf_p cmdbuf = ctx->obj_context->cmdbuf;
+
+ psb_cmdbuf_skip_start_block(cmdbuf, SKIP_ON_CONTEXT_SWITCH);
+ /* VLC Table */
+ /* Write a LLDMA Cmd to transfer VLD Table data */
+ psb_cmdbuf_lldma_write_cmdbuf(cmdbuf, &ctx->vlc_packed_table, 0,
+ sizeof(gaui16mpeg4VlcTableDataPacked),
+ 0, LLDMA_TYPE_VLC_TABLE);
+
+ /* Write the vec registers with the index data for each of the tables and then write */
+ /* the actual table data. */
+ psb_cmdbuf_reg_start_block(cmdbuf);
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR0), ADDR0);
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR1), ADDR1);
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR2), ADDR2);
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR3), ADDR3);
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR4), ADDR4);
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR5), ADDR5);
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR6), ADDR6);
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR7), ADDR7);
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR8), ADDR8);
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_INITIAL_WIDTH0), WIDTH0);
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_INITIAL_WIDTH1), WIDTH1);
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_INITIAL_OPCODE0), OPCODE0);
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_INITIAL_OPCODE1), OPCODE1);
+ psb_cmdbuf_reg_end_block(cmdbuf);
+
+ psb_cmdbuf_skip_end_block(cmdbuf);
+}
+
+
+static void psb__MPEG4_write_kick(context_MPEG4_p ctx, VASliceParameterBufferMPEG4 *slice_param)
+{
+ psb_cmdbuf_p cmdbuf = ctx->obj_context->cmdbuf;
+
+ (void) slice_param; /* Unused for now */
+
+ *cmdbuf->cmd_idx++ = CMD_COMPLETION;
+}
+
+/* Programme the Alt output if there is a rotation*/
+static void psb__MPEG4_setup_alternative_frame(context_MPEG4_p ctx)
+{
+ uint32_t cmd;
+ psb_cmdbuf_p cmdbuf = ctx->obj_context->cmdbuf;
+ psb_surface_p rotate_surface = ctx->obj_context->current_render_target->psb_surface_rotate;
+ object_context_p obj_context = ctx->obj_context;
+
+ if (rotate_surface->extra_info[5] != obj_context->rotate)
+ psb__error_message("Display rotate mode does not match surface rotate mode!\n");
+
+
+ /* CRendecBlock RendecBlk( mCtrlAlloc , RENDEC_REGISTER_OFFSET(MSVDX_CMDS, VC1_LUMA_RANGE_MAPPING_BASE_ADDRESS) ); */
+ psb_cmdbuf_rendec_start(cmdbuf, RENDEC_REGISTER_OFFSET(MSVDX_CMDS, VC1_LUMA_RANGE_MAPPING_BASE_ADDRESS));
+
+ psb_cmdbuf_rendec_write_address(cmdbuf, &rotate_surface->buf, rotate_surface->buf.buffer_ofs);
+ psb_cmdbuf_rendec_write_address(cmdbuf, &rotate_surface->buf, rotate_surface->buf.buffer_ofs + rotate_surface->chroma_offset);
+
+ psb_cmdbuf_rendec_end(cmdbuf);
+
+ /* Set the rotation registers */
+ psb_cmdbuf_rendec_start(cmdbuf, RENDEC_REGISTER_OFFSET(MSVDX_CMDS, ALTERNATIVE_OUTPUT_PICTURE_ROTATION));
+ cmd = 0;
+ REGIO_WRITE_FIELD_LITE(cmd, MSVDX_CMDS, ALTERNATIVE_OUTPUT_PICTURE_ROTATION , ALT_PICTURE_ENABLE, 1);
+ REGIO_WRITE_FIELD_LITE(cmd, MSVDX_CMDS, ALTERNATIVE_OUTPUT_PICTURE_ROTATION , ROTATION_ROW_STRIDE, rotate_surface->stride_mode);
+ REGIO_WRITE_FIELD_LITE(cmd, MSVDX_CMDS, ALTERNATIVE_OUTPUT_PICTURE_ROTATION , RECON_WRITE_DISABLE, 0); /* FIXME Always generate Rec */
+ REGIO_WRITE_FIELD_LITE(cmd, MSVDX_CMDS, ALTERNATIVE_OUTPUT_PICTURE_ROTATION , ROTATION_MODE, rotate_surface->extra_info[5]);
+
+ psb_cmdbuf_rendec_write(cmdbuf, cmd);
+
+ psb_cmdbuf_rendec_end(cmdbuf);
+
+ *ctx->alt_output_flags = cmd;
+ RELOC(*ctx->p_range_mapping_base0, rotate_surface->buf.buffer_ofs, &rotate_surface->buf);
+ RELOC(*ctx->p_range_mapping_base1, rotate_surface->buf.buffer_ofs + rotate_surface->chroma_offset, &rotate_surface->buf);
+}
+
+
+static void psb__MPEG4_set_picture_params(context_MPEG4_p ctx, VASliceParameterBufferMPEG4 *slice_param)
+{
+ uint32_t cmd;
+ psb_cmdbuf_p cmdbuf = ctx->obj_context->cmdbuf;
+ psb_surface_p target_surface = ctx->obj_context->current_render_target->psb_surface;
+
+ psb_buffer_p colocated_target_buffer = psb__MPEG4_lookup_colocated_buffer(ctx, target_surface);
+ psb_buffer_p colocated_ref_buffer = psb__MPEG4_lookup_colocated_buffer(ctx, ctx->forward_ref_surface->psb_surface); /* FIXME DE2.0 use backward ref surface */
+ ASSERT(colocated_target_buffer);
+ ASSERT(colocated_ref_buffer);
+
+ /* psb_cmdbuf_rendec_start_block( cmdbuf ); */
+
+ /* BE_PARAM_BASE_ADDR */
+ psb_cmdbuf_rendec_start(cmdbuf, RENDEC_REGISTER_OFFSET(MSVDX_VEC, MPEG4_CR_VEC_MPEG4_BE_PARAM_BASE_ADDR));
+ if (colocated_target_buffer) {
+ psb_cmdbuf_rendec_write_address(cmdbuf, colocated_target_buffer, 0);
+ } else {
+ /* This is an error */
+ psb_cmdbuf_rendec_write(cmdbuf, 0);
+ }
+ psb_cmdbuf_rendec_end(cmdbuf);
+
+ /* PARAM_BASE_ADDRESS */
+ psb_cmdbuf_rendec_start(cmdbuf, RENDEC_REGISTER_OFFSET(MSVDX_VEC, MPEG4_CR_VEC_MPEG4_BE_COLPARAM_BASE_ADDR));
+ if (colocated_ref_buffer) {
+ psb_cmdbuf_rendec_write_address(cmdbuf, colocated_ref_buffer, 0);
+ } else {
+ /* This is an error */
+ psb_cmdbuf_rendec_write(cmdbuf, 0);
+ }
+ psb_cmdbuf_rendec_end(cmdbuf);
+
+ if (ctx->obj_context->rotate != VA_ROTATION_NONE)
+ psb__MPEG4_setup_alternative_frame(ctx);
+
+ /* Send VDMC and VDEB commands */
+ psb_cmdbuf_rendec_start(cmdbuf, RENDEC_REGISTER_OFFSET(MSVDX_CMDS, DISPLAY_PICTURE_SIZE));
+
+ /* Display picture size cmd */
+ cmd = 0;
+ REGIO_WRITE_FIELD_LITE(cmd, MSVDX_CMDS, DISPLAY_PICTURE_SIZE, DISPLAY_PICTURE_HEIGHT, ctx->coded_picture_height - 1);
+ REGIO_WRITE_FIELD_LITE(cmd, MSVDX_CMDS, DISPLAY_PICTURE_SIZE, DISPLAY_PICTURE_WIDTH, ctx->coded_picture_width - 1);
+ psb_cmdbuf_rendec_write(cmdbuf, cmd);
+
+ /* Coded picture size cmd */
+ cmd = 0;
+ REGIO_WRITE_FIELD_LITE(cmd, MSVDX_CMDS, CODED_PICTURE_SIZE, CODED_PICTURE_HEIGHT, ctx->coded_picture_height - 1);
+ REGIO_WRITE_FIELD_LITE(cmd, MSVDX_CMDS, CODED_PICTURE_SIZE, CODED_PICTURE_WIDTH, ctx->coded_picture_width - 1);
+ psb_cmdbuf_rendec_write(cmdbuf, cmd);
+
+ /* Operating mode cmd */
+ cmd = 0;
+ REGIO_WRITE_FIELD_LITE(cmd, MSVDX_CMDS, OPERATING_MODE, CHROMA_INTERLEAVED, 0); /* 0 = CbCr, 1 = CrCb */
+ REGIO_WRITE_FIELD_LITE(cmd, MSVDX_CMDS, OPERATING_MODE, ROW_STRIDE, ctx->obj_context->current_render_target->psb_surface->stride_mode);
+ REGIO_WRITE_FIELD_LITE(cmd, MSVDX_CMDS, OPERATING_MODE, CODEC_PROFILE, ctx->profile); /* MPEG4 SP / ASP profile */
+ REGIO_WRITE_FIELD_LITE(cmd, MSVDX_CMDS, OPERATING_MODE, CODEC_MODE, 4); /* MPEG4 */
+ REGIO_WRITE_FIELD_LITE(cmd, MSVDX_CMDS, OPERATING_MODE, ASYNC_MODE, 1); /* VDMC only */
+ REGIO_WRITE_FIELD_LITE(cmd, MSVDX_CMDS, OPERATING_MODE, CHROMA_FORMAT, 1);
+ REGIO_WRITE_FIELD_LITE(cmd, MSVDX_CMDS, OPERATING_MODE, INTERLACED, ctx->pic_params->vol_fields.bits.interlaced);
+ psb_cmdbuf_rendec_write(cmdbuf, cmd);
+ ctx->obj_context->operating_mode = cmd;
+
+ psb__information_message(" vop_coding_type = %s\n", psb__debug_picture_coding_str(ctx->pic_params->vop_fields.bits.vop_coding_type));
+ psb__information_message(" backward ref vop_coding_type = %s\n", psb__debug_picture_coding_str(ctx->pic_params->vop_fields.bits.backward_reference_vop_coding_type));
+
+ /* LUMA_RECONSTRUCTED_PICTURE_BASE_ADDRESSES */
+ psb_cmdbuf_rendec_write_address(cmdbuf, &target_surface->buf, target_surface->buf.buffer_ofs);
+ /* CHROMA_RECONSTRUCTED_PICTURE_BASE_ADDRESSES */
+ psb_cmdbuf_rendec_write_address(cmdbuf, &target_surface->buf, target_surface->buf.buffer_ofs + target_surface->chroma_offset);
+
+ psb_cmdbuf_rendec_end(cmdbuf);
+
+ /* Reference pictures base addresses */
+ psb_cmdbuf_rendec_start(cmdbuf, RENDEC_REGISTER_OFFSET(MSVDX_CMDS, REFERENCE_PICTURE_BASE_ADDRESSES));
+
+//psb__information_message("Target surface = %08x\n", target_surface);
+//psb__information_message("Forward ref = %08x\n", ctx->forward_ref_surface->psb_surface);
+//psb__information_message("Backward ref = %08x\n", ctx->backward_ref_surface->psb_surface);
+
+ /* forward reference picture */
+ /* LUMA_RECONSTRUCTED_PICTURE_BASE_ADDRESSES */
+ psb_cmdbuf_rendec_write_address(cmdbuf, &ctx->forward_ref_surface->psb_surface->buf, ctx->forward_ref_surface->psb_surface->buf.buffer_ofs);
+ /* CHROMA_RECONSTRUCTED_PICTURE_BASE_ADDRESSES */
+ psb_cmdbuf_rendec_write_address(cmdbuf, &ctx->forward_ref_surface->psb_surface->buf, ctx->forward_ref_surface->psb_surface->buf.buffer_ofs + ctx->forward_ref_surface->psb_surface->chroma_offset);
+
+ /* backward reference picture */
+ /* LUMA_RECONSTRUCTED_PICTURE_BASE_ADDRESSES */
+ psb_cmdbuf_rendec_write_address(cmdbuf, &ctx->backward_ref_surface->psb_surface->buf, ctx->backward_ref_surface->psb_surface->buf.buffer_ofs);
+ /* CHROMA_RECONSTRUCTED_PICTURE_BASE_ADDRESSES */
+ psb_cmdbuf_rendec_write_address(cmdbuf, &ctx->backward_ref_surface->psb_surface->buf, ctx->backward_ref_surface->psb_surface->buf.buffer_ofs + ctx->backward_ref_surface->psb_surface->chroma_offset);
+
+ psb_cmdbuf_rendec_end(cmdbuf);
+ /* psb_cmdbuf_rendec_end_block( cmdbuf ); */
+}
+
+static void psb__MPEG4_set_backend_registers(context_MPEG4_p ctx, VASliceParameterBufferMPEG4 *slice_param)
+{
+ psb_cmdbuf_p cmdbuf = ctx->obj_context->cmdbuf;
+ uint32_t cmd;
+ unsigned short width_mb = PIXELS_TO_MB(ctx->pic_params->vop_width);
+
+ /* psb_cmdbuf_rendec_start_block( cmdbuf ); */
+
+ /* Write Back-End EntDec registers */
+ psb_cmdbuf_rendec_start(cmdbuf, RENDEC_REGISTER_OFFSET(MSVDX_VEC, MPEG4_CR_VEC_MPEG4_BE_SPS0));
+ /* BE_SPS0 */
+ /* Common for VOPs and pictures with short header */
+ psb_cmdbuf_rendec_write(cmdbuf, ctx->BE_SPS0);
+ /* BE_SPS1 */
+ /* Common for VOPs and pictures with short header */
+ psb_cmdbuf_rendec_write(cmdbuf, ctx->BE_SPS1);
+ psb_cmdbuf_rendec_end(cmdbuf);
+
+ psb_cmdbuf_rendec_start(cmdbuf, RENDEC_REGISTER_OFFSET(MSVDX_VEC, MPEG4_CR_VEC_MPEG4_BE_VOP_SPS0));
+ if (0 == ctx->pic_params->vol_fields.bits.short_video_header) {
+ /* BE_VOP_SPS0 */
+ psb_cmdbuf_rendec_write(cmdbuf, ctx->BE_VOP_SPS0);
+ /* BE_VOP_SPS1 */
+ psb_cmdbuf_rendec_write(cmdbuf, ctx->BE_VOP_SPS1);
+ /* BE_VOP_PPS0 */
+ psb_cmdbuf_rendec_write(cmdbuf, ctx->BE_VOP_PPS0);
+ } else { /* Short-header mode */
+ /* BE_VOP_SPS0 */
+ psb_cmdbuf_rendec_write(cmdbuf, 0);
+ /* BE_VOP_SPS1 */
+ psb_cmdbuf_rendec_write(cmdbuf, 0);
+ /* BE_VOP_PPS0 */
+ psb_cmdbuf_rendec_write(cmdbuf, ctx->BE_VOP_PPS0);
+ /* BE_PICSH_PPS0 */
+ psb_cmdbuf_rendec_write(cmdbuf, ctx->BE_PICSH_PPS0);
+ }
+ psb_cmdbuf_rendec_end(cmdbuf);
+
+ if (0 == ctx->pic_params->vol_fields.bits.short_video_header) {
+ if ((GMC == ctx->pic_params->vol_fields.bits.sprite_enable) &&
+ (PICTURE_CODING_S == ctx->pic_params->vop_fields.bits.vop_coding_type)) {
+ psb_cmdbuf_rendec_start(cmdbuf, RENDEC_REGISTER_OFFSET(MSVDX_VEC, MPEG4_CR_VEC_MPEG4_BE_GMC_X));
+
+ /* TODO: GMC Motion Vectors */
+ /* It is still needed to specify the precision of the motion vectors (should they be in */
+ /* half-sample, quarter-sample...?) and how much processing is done on the firmware on */
+ /* the values of the warping points. */
+
+ // TODO: Which index to use?
+ int sprite_index = (ctx->pic_params->sprite_trajectory_du[0] || ctx->pic_params->sprite_trajectory_dv[0]) ? 0 : 1;
+
+ /* BE_GMC_X */
+ cmd = 0;
+ REGIO_WRITE_FIELD_LITE(cmd, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_BE_GMC_X, GMC_X, ctx->pic_params->sprite_trajectory_du[sprite_index] & 0x3FFF);
+ psb_cmdbuf_rendec_write(cmdbuf, cmd);
+
+ /* BE_GMC_Y */
+ cmd = 0;
+ REGIO_WRITE_FIELD_LITE(cmd, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_BE_GMC_Y, GMC_Y, ctx->pic_params->sprite_trajectory_dv[sprite_index] & 0x3FFF);
+ psb_cmdbuf_rendec_write(cmdbuf, cmd);
+
+ psb_cmdbuf_rendec_end(cmdbuf);
+ }
+ }
+
+ psb_cmdbuf_rendec_start(cmdbuf, RENDEC_REGISTER_OFFSET(MSVDX_VEC, MPEG4_CR_VEC_MPEG4_BE_SLICE0));
+
+ /* BE_SLICE0 */
+ cmd = 0;
+ REGIO_WRITE_FIELD_LITE(cmd, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_BE_SLICE0, BE_FIRST_MB_IN_SLICE_Y, slice_param->macroblock_number / width_mb);
+ REGIO_WRITE_FIELD_LITE(cmd, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_BE_SLICE0, BE_FIRST_MB_IN_SLICE_X, slice_param->macroblock_number % width_mb);
+ psb_cmdbuf_rendec_write(cmdbuf, cmd);
+
+ /* CR_VEC_MPEG4_BE_VOP_TR */
+ cmd = 0;
+ REGIO_WRITE_FIELD_LITE(cmd, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_BE_VOP_TRB, BE_TRB, ctx->pic_params->TRB);
+ psb_cmdbuf_rendec_write(cmdbuf, cmd);
+
+ cmd = 0;
+ REGIO_WRITE_FIELD_LITE(cmd, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_BE_VOP_TRD, BE_TRD, ctx->pic_params->TRD);
+ psb_cmdbuf_rendec_write(cmdbuf, cmd);
+
+ psb_cmdbuf_rendec_end(cmdbuf);
+
+
+ /* Send Slice Data for every slice */
+ /* MUST be the last slice sent */
+ psb_cmdbuf_rendec_start(cmdbuf, RENDEC_REGISTER_OFFSET(MSVDX_CMDS, SLICE_PARAMS));
+
+ /* Slice params command */
+ cmd = 0;
+ REGIO_WRITE_FIELD_LITE(cmd,
+ MSVDX_CMDS,
+ SLICE_PARAMS,
+ RND_CTL_BIT,
+ ((PICTURE_CODING_I == ctx->pic_params->vop_fields.bits.vop_coding_type ||
+ PICTURE_CODING_B == ctx->pic_params->vop_fields.bits.vop_coding_type) ?
+ 0 : ctx->pic_params->vop_fields.bits.vop_rounding_type));
+ REGIO_WRITE_FIELD_LITE(cmd, MSVDX_CMDS, SLICE_PARAMS, MODE_CONFIG, ctx->pic_params->vol_fields.bits.sprite_warping_accuracy);
+ REGIO_WRITE_FIELD_LITE(cmd, MSVDX_CMDS, SLICE_PARAMS, SUBPEL_FILTER_MODE, ctx->pic_params->vol_fields.bits.quarter_sample);
+ /* SP and ASP profiles don't support field coding in different VOPs */
+ REGIO_WRITE_FIELD_LITE(cmd, MSVDX_CMDS, SLICE_PARAMS, SLICE_FIELD_TYPE, 2);
+ REGIO_WRITE_FIELD_LITE(cmd, MSVDX_CMDS, SLICE_PARAMS, SLICE_CODE_TYPE, ctx->pic_params->vop_fields.bits.vop_coding_type);
+ psb_cmdbuf_rendec_write(cmdbuf, cmd);
+
+ psb_cmdbuf_rendec_end(cmdbuf);
+
+ *ctx->p_slice_params = cmd;
+
+ /* CHUNK: Entdec back-end profile and level */
+ psb_cmdbuf_rendec_start(cmdbuf, RENDEC_REGISTER_OFFSET(MSVDX_VEC, CR_VEC_ENTDEC_BE_CONTROL));
+
+ cmd = 0;
+ REGIO_WRITE_FIELD_LITE(cmd, MSVDX_VEC, CR_VEC_ENTDEC_BE_CONTROL, ENTDEC_BE_PROFILE, ctx->profile); /* MPEG4 SP / ASP profile*/
+ REGIO_WRITE_FIELD_LITE(cmd, MSVDX_VEC, CR_VEC_ENTDEC_BE_CONTROL, ENTDEC_BE_MODE, 4); /* 4 - MPEG4 */
+ psb_cmdbuf_rendec_write(cmdbuf, cmd);
+
+ psb_cmdbuf_rendec_end(cmdbuf);
+ /* psb_cmdbuf_rendec_end_block( cmdbuf ); */
+
+ /* Send IQ matrices to Rendec */
+ psb__MPEG4_write_qmatrices(ctx);
+}
+
+static void psb__MPEG4_set_frontend_registers(context_MPEG4_p ctx, VASliceParameterBufferMPEG4 *slice_param)
+{
+ psb_cmdbuf_p cmdbuf = ctx->obj_context->cmdbuf;
+ uint32_t FE_slice0;
+ unsigned short width_mb = PIXELS_TO_MB(ctx->pic_params->vop_width);
+
+ psb_cmdbuf_reg_start_block(cmdbuf);
+
+ /* FE_SLICE0 */
+ FE_slice0 = 0;
+ REGIO_WRITE_FIELD_LITE(FE_slice0, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_FE_SLICE0, FE_VOP_QUANT, slice_param->quant_scale);
+ REGIO_WRITE_FIELD_LITE(FE_slice0, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_FE_SLICE0, FE_FIRST_MB_IN_SLICE_Y, slice_param->macroblock_number / width_mb);
+ REGIO_WRITE_FIELD_LITE(FE_slice0, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_FE_SLICE0, FE_FIRST_MB_IN_SLICE_X, slice_param->macroblock_number % width_mb);
+
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC_MPEG4, CR_VEC_MPEG4_FE_SLICE0) , FE_slice0);
+
+ /* Entdec Front-End controls*/
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC, CR_VEC_ENTDEC_FE_CONTROL) , ctx->FEControl);
+
+ /* FE_SPS0 */
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC_MPEG4, CR_VEC_MPEG4_FE_SPS0) , ctx->FE_SPS0);
+
+ /* FE_VOP_SPS0 */
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC_MPEG4, CR_VEC_MPEG4_FE_VOP_SPS0) , ctx->FE_VOP_SPS0);
+
+
+ if (ctx->pic_params->vol_fields.bits.short_video_header) {
+ /* FE_PICSH_PPS0 */
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC_MPEG4, CR_VEC_MPEG4_FE_PICSH_PPS0) , ctx->FE_PICSH_PPS0);
+ }
+
+ /* FE_VOP_PPS0 */
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC_MPEG4, CR_VEC_MPEG4_FE_VOP_PPS0) , ctx->FE_VOP_PPS0);
+
+ psb_cmdbuf_reg_end_block(cmdbuf);
+}
+
+/*
+static void psb__MPEG4_FE_state(context_MPEG4_p ctx)
+{
+ uint32_t lldma_record_offset;
+ psb_cmdbuf_p cmdbuf = ctx->obj_context->cmdbuf;
+
+ *cmdbuf->cmd_idx++ = CMD_HEADER_VC1;
+
+ ctx->p_range_mapping_base0 = cmdbuf->cmd_idx++;
+ ctx->p_range_mapping_base1 = cmdbuf->cmd_idx++;
+ ctx->p_slice_params = cmdbuf->cmd_idx;
+ *cmdbuf->cmd_idx++ = 0;
+
+ lldma_record_offset = psb_cmdbuf_lldma_create( cmdbuf, &(ctx->FE_state_buffer), 0,
+ FE_STATE_SAVE_SIZE, 0, LLDMA_TYPE_MPEG4_FESTATE_SAVE );
+ RELOC(*cmdbuf->cmd_idx, lldma_record_offset, &(cmdbuf->buf));
+ cmdbuf->cmd_idx++;
+
+ lldma_record_offset = psb_cmdbuf_lldma_create( cmdbuf, &(ctx->FE_state_buffer), 0,
+ FE_STATE_SAVE_SIZE, 0, LLDMA_TYPE_MPEG4_FESTATE_RESTORE );
+ RELOC(*cmdbuf->cmd_idx, lldma_record_offset, &(cmdbuf->buf));
+ cmdbuf->cmd_idx++;
+
+ ctx->slice_first_pic_last = cmdbuf->cmd_idx++;
+}
+*/
+static void psb__MPEG4_FE_state(context_MPEG4_p ctx)
+{
+ uint32_t lldma_record_offset;
+ psb_cmdbuf_p cmdbuf = ctx->obj_context->cmdbuf;
+
+ *cmdbuf->cmd_idx++ = CMD_HEADER_VC1;
+ ctx->p_slice_params = cmdbuf->cmd_idx;
+ *cmdbuf->cmd_idx++ = 0;
+
+
+ lldma_record_offset = psb_cmdbuf_lldma_create(cmdbuf, &(ctx->FE_state_buffer), 0,
+ FE_STATE_SAVE_SIZE, 0, LLDMA_TYPE_MPEG4_FESTATE_SAVE);
+ RELOC(*cmdbuf->cmd_idx, lldma_record_offset, &(cmdbuf->buf));
+ cmdbuf->cmd_idx++;
+
+ lldma_record_offset = psb_cmdbuf_lldma_create(cmdbuf, &(ctx->FE_state_buffer), 0,
+ FE_STATE_SAVE_SIZE, 0, LLDMA_TYPE_MPEG4_FESTATE_RESTORE);
+ RELOC(*cmdbuf->cmd_idx, lldma_record_offset, &(cmdbuf->buf));
+ cmdbuf->cmd_idx++;
+
+ ctx->slice_first_pic_last = cmdbuf->cmd_idx++;
+
+ ctx->p_range_mapping_base0 = cmdbuf->cmd_idx++;
+ ctx->p_range_mapping_base1 = cmdbuf->cmd_idx++;
+
+ ctx->alt_output_flags = cmdbuf->cmd_idx++;
+ *ctx->alt_output_flags = 0;
+}
+
+static VAStatus psb__MPEG4_process_slice(context_MPEG4_p ctx,
+ VASliceParameterBufferMPEG4 *slice_param,
+ object_buffer_p obj_buffer)
+{
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+
+ ASSERT((obj_buffer->type == VASliceDataBufferType) || (obj_buffer->type == VAProtectedSliceDataBufferType));
+
+ psb__information_message("MPEG4 process slice\n");
+ psb__information_message(" size = %08x offset = %08x\n", slice_param->slice_data_size, slice_param->slice_data_offset);
+ psb__information_message(" macroblock nr = %d offset = %d\n", slice_param->macroblock_number, slice_param->macroblock_offset);
+ psb__information_message(" slice_data_flag = %d\n", slice_param->slice_data_flag);
+ psb__information_message(" interlaced = %d\n", ctx->pic_params->vol_fields.bits.interlaced);
+ psb__information_message(" coded size = %dx%d\n", ctx->picture_width_mb, ctx->picture_height_mb);
+
+ if ((slice_param->slice_data_flag == VA_SLICE_DATA_FLAG_BEGIN) ||
+ (slice_param->slice_data_flag == VA_SLICE_DATA_FLAG_ALL)) {
+ if (0 == slice_param->slice_data_size) {
+ vaStatus = VA_STATUS_ERROR_UNKNOWN;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+ ASSERT(!ctx->split_buffer_pending);
+
+ /* Initialise the command buffer */
+ /* TODO: Reuse current command buffer until full */
+ psb_context_get_next_cmdbuf(ctx->obj_context);
+
+ psb__MPEG4_FE_state(ctx);
+
+ psb_cmdbuf_lldma_write_bitstream(ctx->obj_context->cmdbuf,
+ obj_buffer->psb_buffer,
+ obj_buffer->psb_buffer->buffer_ofs + slice_param->slice_data_offset,
+ slice_param->slice_data_size,
+ slice_param->macroblock_offset,
+ 0);
+
+ if (slice_param->slice_data_flag == VA_SLICE_DATA_FLAG_BEGIN) {
+ ctx->split_buffer_pending = TRUE;
+ }
+ } else {
+ ASSERT(ctx->split_buffer_pending);
+ ASSERT(0 == slice_param->slice_data_offset);
+ /* Create LLDMA chain to continue buffer */
+ if (slice_param->slice_data_size) {
+ psb_cmdbuf_lldma_write_bitstream_chained(ctx->obj_context->cmdbuf,
+ obj_buffer->psb_buffer,
+ slice_param->slice_data_size);
+ }
+ }
+
+ if ((slice_param->slice_data_flag == VA_SLICE_DATA_FLAG_ALL) ||
+ (slice_param->slice_data_flag == VA_SLICE_DATA_FLAG_END)) {
+ if (slice_param->slice_data_flag == VA_SLICE_DATA_FLAG_END) {
+ ASSERT(ctx->split_buffer_pending);
+ }
+
+ psb__MPEG4_write_VLC_tables(ctx);
+
+ psb__MPEG4_set_picture_params(ctx, slice_param);
+
+ psb__MPEG4_set_frontend_registers(ctx, slice_param);
+
+ psb__MPEG4_set_backend_registers(ctx, slice_param);
+
+ psb__MPEG4_write_kick(ctx, slice_param);
+
+ ctx->split_buffer_pending = FALSE;
+ ctx->obj_context->video_op = psb_video_vld;
+ ctx->obj_context->flags = 0;
+ ctx->obj_context->first_mb = 0;
+ ctx->obj_context->last_mb = ((ctx->picture_height_mb - 1) << 8) | (ctx->picture_width_mb - 1);
+
+ *ctx->slice_first_pic_last = (ctx->obj_context->first_mb << 16) | (ctx->obj_context->last_mb);
+
+ if (psb_context_submit_cmdbuf(ctx->obj_context)) {
+ vaStatus = VA_STATUS_ERROR_UNKNOWN;
+ }
+ }
+ return vaStatus;
+}
+
+static VAStatus psb__MPEG4_process_slice_data(context_MPEG4_p ctx, object_buffer_p obj_buffer)
+{
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ VASliceParameterBufferMPEG4 *slice_param;
+ int buffer_idx = 0;
+ int element_idx = 0;
+
+
+ ASSERT((obj_buffer->type == VASliceDataBufferType) || (obj_buffer->type == VAProtectedSliceDataBufferType));
+
+ ASSERT(ctx->pic_params);
+ ASSERT(ctx->slice_param_list_idx);
+
+ if (!ctx->pic_params) {
+ /* Picture params missing */
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+ if ((NULL == obj_buffer->psb_buffer) ||
+ (0 == obj_buffer->size)) {
+ /* We need to have data in the bitstream buffer */
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ while (buffer_idx < ctx->slice_param_list_idx) {
+ object_buffer_p slice_buf = ctx->slice_param_list[buffer_idx];
+ if (element_idx >= slice_buf->num_elements) {
+ /* Move to next buffer */
+ element_idx = 0;
+ buffer_idx++;
+ continue;
+ }
+
+ slice_param = (VASliceParameterBufferMPEG4 *) slice_buf->buffer_data;
+ slice_param += element_idx;
+ element_idx++;
+ vaStatus = psb__MPEG4_process_slice(ctx, slice_param, obj_buffer);
+ if (vaStatus != VA_STATUS_SUCCESS) {
+ DEBUG_FAILURE;
+ break;
+ }
+ }
+ ctx->slice_param_list_idx = 0;
+
+ return vaStatus;
+}
+
+static VAStatus pnw_MPEG4_BeginPicture(
+ object_context_p obj_context)
+{
+ INIT_CONTEXT_MPEG4
+
+ if (ctx->pic_params) {
+ free(ctx->pic_params);
+ ctx->pic_params = NULL;
+ }
+ ctx->load_non_intra_quant_mat = FALSE;
+ ctx->load_intra_quant_mat = FALSE;
+
+ return VA_STATUS_SUCCESS;
+}
+
+static VAStatus pnw_MPEG4_RenderPicture(
+ object_context_p obj_context,
+ object_buffer_p *buffers,
+ int num_buffers)
+{
+ int i;
+ INIT_CONTEXT_MPEG4
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+
+ for (i = 0; i < num_buffers; i++) {
+ object_buffer_p obj_buffer = buffers[i];
+
+ switch (obj_buffer->type) {
+ case VAPictureParameterBufferType:
+ psb__information_message("pnw_MPEG4_RenderPicture got VAPictureParameterBuffer\n");
+ vaStatus = psb__MPEG4_process_picture_param(ctx, obj_buffer);
+ DEBUG_FAILURE;
+ break;
+
+ case VAIQMatrixBufferType:
+ psb__information_message("pnw_MPEG4_RenderPicture got VAIQMatrixBufferType\n");
+ vaStatus = psb__MPEG4_process_iq_matrix(ctx, obj_buffer);
+ DEBUG_FAILURE;
+ break;
+
+ case VASliceParameterBufferType:
+ psb__information_message("pnw_MPEG4_RenderPicture got VASliceParameterBufferType\n");
+ vaStatus = psb__MPEG4_add_slice_param(ctx, obj_buffer);
+ DEBUG_FAILURE;
+ break;
+
+ case VASliceDataBufferType:
+ case VAProtectedSliceDataBufferType:
+
+ psb__information_message("pnw_MPEG4_RenderPicture got %s\n", SLICEDATA_BUFFER_TYPE(obj_buffer->type));
+ vaStatus = psb__MPEG4_process_slice_data(ctx, obj_buffer);
+ DEBUG_FAILURE;
+ break;
+
+ default:
+ vaStatus = VA_STATUS_ERROR_UNKNOWN;
+ DEBUG_FAILURE;
+ }
+ if (vaStatus != VA_STATUS_SUCCESS) {
+ break;
+ }
+ }
+
+ return vaStatus;
+}
+
+static VAStatus pnw_MPEG4_EndPicture(
+ object_context_p obj_context)
+{
+ INIT_CONTEXT_MPEG4
+
+ if (psb_context_flush_cmdbuf(ctx->obj_context)) {
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ if (ctx->pic_params) {
+ free(ctx->pic_params);
+ ctx->pic_params = NULL;
+ }
+
+ return VA_STATUS_SUCCESS;
+}
+
+struct format_vtable_s pnw_MPEG4_vtable = {
+queryConfigAttributes:
+ pnw_MPEG4_QueryConfigAttributes,
+validateConfig:
+ pnw_MPEG4_ValidateConfig,
+createContext:
+ pnw_MPEG4_CreateContext,
+destroyContext:
+ pnw_MPEG4_DestroyContext,
+beginPicture:
+ pnw_MPEG4_BeginPicture,
+renderPicture:
+ pnw_MPEG4_RenderPicture,
+endPicture:
+ pnw_MPEG4_EndPicture
+};
diff --git a/src/pnw_MPEG4.h b/src/pnw_MPEG4.h
new file mode 100644
index 0000000..799746a
--- /dev/null
+++ b/src/pnw_MPEG4.h
@@ -0,0 +1,38 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ * Waldo Bastian <waldo.bastian@intel.com>
+ * Zeng Li <zeng.li@intel.com>
+ *
+ */
+
+#ifndef _PNW_MPEG4_H_
+#define _PNW_MPEG4_H_
+
+#include "psb_drv_video.h"
+
+extern struct format_vtable_s pnw_MPEG4_vtable;
+
+#endif /* _PNW_MPEG4_H_ */
diff --git a/src/pnw_MPEG4ES.c b/src/pnw_MPEG4ES.c
new file mode 100644
index 0000000..1ae75ba
--- /dev/null
+++ b/src/pnw_MPEG4ES.c
@@ -0,0 +1,505 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ * Elaine Wang <elaine.wang@intel.com>
+ * Zeng Li <zeng.li@intel.com>
+ *
+ */
+
+#include "psb_def.h"
+#include "psb_surface.h"
+#include "psb_cmdbuf.h"
+#include "pnw_MPEG4ES.h"
+#include "pnw_hostcode.h"
+#include "pnw_hostheader.h"
+
+#include <stdlib.h>
+#include <stdint.h>
+#include <string.h>
+
+
+#define TOPAZ_MPEG4_MAX_BITRATE 16000000
+
+#define INIT_CONTEXT_MPEG4ES context_ENC_p ctx = (context_ENC_p) obj_context->format_data
+#define SURFACE(id) ((object_surface_p) object_heap_lookup( &ctx->obj_context->driver_data->surface_heap, id ))
+#define BUFFER(id) ((object_buffer_p) object_heap_lookup( &ctx->obj_context->driver_data->buffer_heap, id ))
+
+
+
+static void pnw_MPEG4ES_QueryConfigAttributes(
+ VAProfile profile,
+ VAEntrypoint entrypoint,
+ VAConfigAttrib *attrib_list,
+ int num_attribs)
+{
+ int i;
+
+ psb__information_message("pnw_MPEG4ES_QueryConfigAttributes\n");
+
+ /* RateControl attributes */
+ for (i = 0; i < num_attribs; i++) {
+ switch (attrib_list[i].type) {
+ case VAConfigAttribRTFormat:
+ break;
+
+ case VAConfigAttribRateControl:
+ attrib_list[i].value = VA_RC_NONE | VA_RC_CBR | VA_RC_VBR;
+ break;
+
+ default:
+ attrib_list[i].value = VA_ATTRIB_NOT_SUPPORTED;
+ break;
+ }
+ }
+
+ return;
+}
+
+
+static VAStatus pnw_MPEG4ES_ValidateConfig(
+ object_config_p obj_config)
+{
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ psb__information_message("pnw_MPEG4ES_ValidateConfig\n");
+
+ return vaStatus;
+
+}
+
+
+static VAStatus pnw_MPEG4ES_CreateContext(
+ object_context_p obj_context,
+ object_config_p obj_config)
+{
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ context_ENC_p ctx;
+ int i;
+ unsigned int eRCmode;
+
+ psb__information_message("pnw_MPEG4ES_CreateContext\n");
+
+ vaStatus = pnw_CreateContext(obj_context, obj_config, 0);
+ if (VA_STATUS_SUCCESS != vaStatus)
+ return VA_STATUS_ERROR_ALLOCATION_FAILED;
+
+ ctx = (context_ENC_p) obj_context->format_data;
+
+ for (i = 0; i < obj_config->attrib_count; i++) {
+ if (obj_config->attrib_list[i].type == VAConfigAttribRateControl)
+ break;
+ }
+
+ if (i >= obj_config->attrib_count)
+ eRCmode = VA_RC_NONE;
+ else
+ eRCmode = obj_config->attrib_list[i].value;
+
+
+ if (eRCmode == VA_RC_VBR) {
+ ctx->eCodec = IMG_CODEC_MPEG4_VBR;
+ ctx->sRCParams.RCEnable = IMG_TRUE;
+ } else if (eRCmode == VA_RC_CBR) {
+ ctx->eCodec = IMG_CODEC_MPEG4_CBR;
+ ctx->sRCParams.RCEnable = IMG_TRUE;
+ } else if (eRCmode == VA_RC_NONE) {
+ ctx->eCodec = IMG_CODEC_MPEG4_NO_RC;
+ ctx->sRCParams.RCEnable = IMG_FALSE;
+ } else
+ return VA_STATUS_ERROR_UNSUPPORTED_RT_FORMAT;
+ ctx->eFormat = IMG_CODEC_PL12;
+
+ ctx->Slices = 1;
+ ctx->ParallelCores = 1;
+
+ ctx->IPEControl = pnw__get_ipe_control(ctx->eCodec);
+
+ switch (obj_config->profile) {
+ case VAProfileMPEG4Simple:
+ ctx->profile_idc = 2;
+ break;
+ case VAProfileMPEG4AdvancedSimple:
+ ctx->profile_idc = 3;
+ break;
+ default:
+ ctx->profile_idc = 2;
+ break;
+ }
+
+ return vaStatus;
+}
+
+
+static void pnw_MPEG4ES_DestroyContext(
+ object_context_p obj_context)
+{
+ psb__information_message("pnw_MPEG4ES_DestroyPicture\n");
+
+ pnw_DestroyContext(obj_context);
+}
+
+static VAStatus pnw_MPEG4ES_BeginPicture(
+ object_context_p obj_context)
+{
+ INIT_CONTEXT_MPEG4ES;
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+
+ psb__information_message("pnw_MPEG4ES_BeginPicture\n");
+
+ vaStatus = pnw_BeginPicture(ctx);
+
+ return vaStatus;
+}
+
+static VAStatus pnw__MPEG4ES_process_sequence_param(context_ENC_p ctx, object_buffer_p obj_buffer)
+{
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ VAEncSequenceParameterBufferMPEG4 *seq_params;
+ pnw_cmdbuf_p cmdbuf = ctx->obj_context->pnw_cmdbuf;
+ MPEG4_PROFILE_TYPE profile;
+ int i;
+
+ ASSERT(obj_buffer->type == VAEncSequenceParameterBufferType);
+ ASSERT(obj_buffer->num_elements == 1);
+ ASSERT(obj_buffer->size == sizeof(VAEncSequenceParameterBufferMPEG4));
+
+ if ((obj_buffer->num_elements != 1) ||
+ (obj_buffer->size != sizeof(VAEncSequenceParameterBufferMPEG4))) {
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ seq_params = (VAEncSequenceParameterBufferMPEG4 *) obj_buffer->buffer_data;
+ obj_buffer->buffer_data = NULL;
+ obj_buffer->size = 0;
+
+ if (seq_params->bits_per_second > TOPAZ_MPEG4_MAX_BITRATE) {
+ ctx->sRCParams.BitsPerSecond = TOPAZ_MPEG4_MAX_BITRATE;
+ psb__information_message(" bits_per_second(%d) exceeds \
+ the maximum bitrate, set it with %d\n",
+ seq_params->bits_per_second,
+ TOPAZ_MPEG4_MAX_BITRATE);
+ } else
+ ctx->sRCParams.BitsPerSecond = seq_params->bits_per_second;
+
+ ctx->sRCParams.FrameRate = seq_params->frame_rate;
+ ctx->sRCParams.InitialQp = seq_params->initial_qp;
+ ctx->sRCParams.MinQP = seq_params->min_qp;
+ ctx->sRCParams.BUSize = 0; /* default 0, and will be set in pnw__setup_busize */
+
+ ctx->sRCParams.Slices = 1;
+ ctx->sRCParams.QCPOffset = 0;/* FIXME */
+ ctx->sRCParams.IntraFreq = seq_params->intra_period;
+
+ /* if (ctx->sRCParams.BitsPerSecond < 256000)
+ ctx->sRCParams.BufferSize = (9 * ctx->sRCParams.BitsPerSecond) >> 1;
+ else
+ ctx->sRCParams.BufferSize = (5 * ctx->sRCParams.BitsPerSecond) >> 1;*/
+
+ ctx->sRCParams.BufferSize = ctx->sRCParams.BitsPerSecond;
+ ctx->sRCParams.InitialLevel = (3 * ctx->sRCParams.BufferSize) >> 4;
+ ctx->sRCParams.InitialDelay = (13 * ctx->sRCParams.BufferSize) >> 4;
+
+ if (ctx->obj_context->frame_count == 0) { /* Add Register IO behind begin Picture */
+ pnw__UpdateRCBitsTransmitted(ctx);
+ for (i = (ctx->ParallelCores - 1); i >= 0; i--) {
+ pnw_set_bias(ctx, i);
+ }
+ /* This is needed in old firmware, now is no needed any more */
+ //ctx->initial_qp_in_cmdbuf = cmdbuf->cmd_idx; /* remember the place */
+ //cmdbuf->cmd_idx++;
+ }
+
+ cmdbuf = ctx->obj_context->pnw_cmdbuf;
+
+ switch (ctx->profile_idc) {
+ case 2:
+ profile = SP;
+ break;
+ case 3:
+ profile = ASP;
+ break;
+ default:
+ profile = SP;
+ break;
+ }
+
+ memset(cmdbuf->header_mem_p + ctx->seq_header_ofs,
+ 0,
+ HEADER_SIZE);
+
+ pnw__MPEG4_prepare_sequence_header(
+ cmdbuf->header_mem_p + ctx->seq_header_ofs,
+ 0, /* BFrame? */
+ profile, /* sProfile */
+ seq_params->profile_and_level_indication, /* */
+ seq_params->fixed_vop_time_increment, /*3,*/ /* sFixed_vop_time_increment */
+ seq_params->video_object_layer_width,/* Picture_Width_Pixels */
+ seq_params->video_object_layer_height, /* Picture_Height_Pixels */
+ NULL,
+ seq_params->vop_time_increment_resolution); /* VopTimeResolution */
+
+ ctx->MPEG4_vop_time_increment_resolution = seq_params->vop_time_increment_resolution;
+
+ pnw_cmdbuf_insert_command_package(ctx->obj_context,
+ ctx->ParallelCores - 1, /* Send to the last core as this will complete first */
+ MTX_CMDID_DO_HEADER,
+ &cmdbuf->header_mem,
+ ctx->seq_header_ofs);
+
+ free(seq_params);
+ return vaStatus;
+}
+
+
+static VAStatus pnw__MPEG4ES_process_picture_param(context_ENC_p ctx, object_buffer_p obj_buffer)
+{
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ VAEncPictureParameterBufferMPEG4 *pBuffer;
+ pnw_cmdbuf_p cmdbuf = ctx->obj_context->pnw_cmdbuf;
+ unsigned long *pPictureHeaderMem;
+ MTX_HEADER_PARAMS *psPicHeader;
+ int i;
+ IMG_BOOL bIsVOPCoded = IMG_TRUE;
+
+ ASSERT(obj_buffer->type == VAEncPictureParameterBufferType);
+
+ if ((obj_buffer->num_elements != 1) ||
+ (obj_buffer->size != sizeof(VAEncPictureParameterBufferMPEG4))) {
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ /* Transfer ownership of VAEncPictureParameterBufferMPEG4 data */
+ pBuffer = (VAEncPictureParameterBufferMPEG4 *) obj_buffer->buffer_data;
+ obj_buffer->buffer_data = NULL;
+ obj_buffer->size = 0;
+
+ ctx->ref_surface = SURFACE(pBuffer->reference_picture);
+ ctx->dest_surface = SURFACE(pBuffer->reconstructed_picture);
+ ctx->coded_buf = BUFFER(pBuffer->coded_buf);
+
+ ASSERT(ctx->Width == pBuffer->picture_width);
+ ASSERT(ctx->Height == pBuffer->picture_height);
+
+ /*if (ctx->sRCParams.RCEnable && ctx->sRCParams.FrameSkip)
+ bIsVOPCoded = IMG_FALSE;*/
+
+ ctx->FCode = 4 - 1; /* 4 is default value of "ui8Search_range" */
+
+ pPictureHeaderMem = cmdbuf->header_mem_p + ctx->pic_header_ofs;
+ psPicHeader = (MTX_HEADER_PARAMS *)pPictureHeaderMem;
+
+ memset(pPictureHeaderMem, 0, HEADER_SIZE);
+
+ pnw__MPEG4_prepare_vop_header(pPictureHeaderMem,
+ bIsVOPCoded,
+ pBuffer->vop_time_increment, /* In testbench, this should be FrameNum */
+ 4,/* default value is 4,search range */
+ pBuffer->picture_type,
+ ctx->MPEG4_vop_time_increment_resolution/* defaule value */);
+
+ /* Mark this header as a complex header */
+ psPicHeader->Elements |= 0x100;
+ pPictureHeaderMem += ((HEADER_SIZE) >> 3);
+
+ pnw__MPEG4_prepare_vop_header(pPictureHeaderMem,
+ IMG_FALSE,
+ pBuffer->vop_time_increment, /* In testbench, this should be FrameNum */
+ 4,/* default value is 4,search range */
+ pBuffer->picture_type,
+ ctx->MPEG4_vop_time_increment_resolution/* defaule value */);
+
+ pnw_cmdbuf_insert_command_package(ctx->obj_context,
+ ctx->ParallelCores - 1, /* Send to the last core as this will complete first */
+ MTX_CMDID_DO_HEADER,
+ &cmdbuf->header_mem,
+ ctx->pic_header_ofs);
+
+ /* Prepare START_PICTURE params */
+ for (i = (ctx->ParallelCores - 1); i >= 0; i--)
+ vaStatus = pnw_RenderPictureParameter(ctx, i);
+
+ free(pBuffer);
+ return vaStatus;
+}
+
+static VAStatus pnw__MPEG4ES_process_slice_param(context_ENC_p ctx, object_buffer_p obj_buffer)
+{
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ VAEncSliceParameterBuffer *pBuffer;
+ pnw_cmdbuf_p cmdbuf = ctx->obj_context->pnw_cmdbuf;
+ PIC_PARAMS *psPicParams = (PIC_PARAMS *)(cmdbuf->pic_params_p);
+ int i;
+ int slice_param_idx;
+
+ ASSERT(obj_buffer->type == VAEncSliceParameterBufferType);
+
+ pBuffer = (VAEncSliceParameterBuffer *) obj_buffer->buffer_data;
+
+ if (0 == pBuffer->start_row_number) {
+ if (pBuffer->slice_flags.bits.is_intra)
+ RELOC_PIC_PARAMS_PNW(&psPicParams->InParamsBase, ctx->in_params_ofs, cmdbuf->topaz_in_params_I);
+ else
+ RELOC_PIC_PARAMS_PNW(&psPicParams->InParamsBase, ctx->in_params_ofs, cmdbuf->topaz_in_params_P);
+ }
+
+ /*In case the slice number changes*/
+ if ((ctx->slice_param_cache != NULL) && (obj_buffer->num_elements != ctx->slice_param_num)) {
+ psb__information_message("Slice number changes. Previous value is %d. Now it's %d\n",
+ ctx->slice_param_num, obj_buffer->num_elements);
+ free(ctx->slice_param_cache);
+ ctx->slice_param_cache = NULL;
+ ctx->slice_param_num = 0;
+ }
+
+ if (NULL == ctx->slice_param_cache) {
+ psb__information_message("Allocate %d VAEncSliceParameterBuffer cache buffers\n", 2 * ctx->slice_param_num);
+ ctx->slice_param_num = obj_buffer->num_elements;
+ ctx->slice_param_cache = calloc(2 * ctx->slice_param_num, sizeof(VAEncSliceParameterBuffer));
+ if (NULL == ctx->slice_param_cache) {
+ psb__error_message("Run out of memory!\n");
+ free(obj_buffer->buffer_data);
+ return VA_STATUS_ERROR_ALLOCATION_FAILED;
+ }
+ }
+
+
+ for (i = 0; i < obj_buffer->num_elements; i++) {
+
+ unsigned char deblock_idc;
+
+ deblock_idc = pBuffer->slice_flags.bits.disable_deblocking_filter_idc;
+
+ if ((pBuffer->start_row_number == 0) && pBuffer->slice_flags.bits.is_intra) {
+ pnw_reset_encoder_params(ctx);
+ ctx->BelowParamsBufIdx = (ctx->BelowParamsBufIdx + 1) & 0x1;
+ }
+
+ /*The corresponding slice buffer cache*/
+ slice_param_idx = (pBuffer->slice_flags.bits.is_intra ? 0 : 1) * ctx->slice_param_num + i;
+
+ if (VAEncSliceParameter_Equal(&ctx->slice_param_cache[slice_param_idx], pBuffer) == 0) {
+ /* cache current param parameters */
+ memcpy(&ctx->slice_param_cache[slice_param_idx],
+ pBuffer, sizeof(VAEncSliceParameterBuffer));
+
+ /* Setup InParams value*/
+ pnw_setup_slice_params(ctx,
+ pBuffer->start_row_number * 16,
+ pBuffer->slice_height * 16,
+ pBuffer->slice_flags.bits.is_intra,
+ ctx->obj_context->frame_count > 0,
+ psPicParams->sInParams.SeInitQP);
+ }
+
+ pnw__send_encode_slice_params(ctx,
+ pBuffer->slice_flags.bits.is_intra,
+ pBuffer->start_row_number * 16,
+ deblock_idc,
+ ctx->obj_context->frame_count,
+ pBuffer->slice_height * 16,
+ ctx->obj_context->slice_count);
+
+ psb__information_message("Now frame_count/slice_count is %d/%d\n",
+ ctx->obj_context->frame_count, ctx->obj_context->slice_count);
+
+ ctx->obj_context->slice_count++;
+ pBuffer++;
+
+ ASSERT(ctx->obj_context->slice_count < MAX_SLICES_PER_PICTURE);
+ }
+
+ free(obj_buffer->buffer_data);
+ obj_buffer->buffer_data = NULL;
+
+ return vaStatus;
+}
+
+
+static VAStatus pnw_MPEG4ES_RenderPicture(
+ object_context_p obj_context,
+ object_buffer_p *buffers,
+ int num_buffers)
+{
+ INIT_CONTEXT_MPEG4ES;
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ int i;
+
+ psb__information_message("pnw_MPEG4ES_RenderPicture\n");
+
+ for (i = 0; i < num_buffers; i++) {
+ object_buffer_p obj_buffer = buffers[i];
+
+ switch (obj_buffer->type) {
+ case VAEncSequenceParameterBufferType:
+ psb__information_message("pnw_MPEG4ES_RenderPicture got VAEncSequenceParameterBufferType\n");
+ vaStatus = pnw__MPEG4ES_process_sequence_param(ctx, obj_buffer);
+ DEBUG_FAILURE;
+ break;
+
+ case VAEncPictureParameterBufferType:
+ psb__information_message("pnw_MPEG4ES_RenderPicture got VAEncPictureParameterBufferType\n");
+ vaStatus = pnw__MPEG4ES_process_picture_param(ctx, obj_buffer);
+ DEBUG_FAILURE;
+ break;
+
+ case VAEncSliceParameterBufferType:
+ psb__information_message("pnw_MPEG4ES_RenderPicture got VAEncSliceParameterBufferType\n");
+ vaStatus = pnw__MPEG4ES_process_slice_param(ctx, obj_buffer);
+ DEBUG_FAILURE;
+ break;
+ default:
+ vaStatus = VA_STATUS_ERROR_UNKNOWN;
+ DEBUG_FAILURE;
+ }
+ }
+
+ return vaStatus;
+}
+
+static VAStatus pnw_MPEG4ES_EndPicture(
+ object_context_p obj_context)
+{
+ INIT_CONTEXT_MPEG4ES;
+
+ psb__information_message("pnw_MPEG4ES_EndPicture\n");
+ return pnw_EndPicture(ctx);
+}
+
+
+struct format_vtable_s pnw_MPEG4ES_vtable = {
+queryConfigAttributes:
+ pnw_MPEG4ES_QueryConfigAttributes,
+validateConfig:
+ pnw_MPEG4ES_ValidateConfig,
+createContext:
+ pnw_MPEG4ES_CreateContext,
+destroyContext:
+ pnw_MPEG4ES_DestroyContext,
+beginPicture:
+ pnw_MPEG4ES_BeginPicture,
+renderPicture:
+ pnw_MPEG4ES_RenderPicture,
+endPicture:
+ pnw_MPEG4ES_EndPicture
+};
diff --git a/src/pnw_MPEG4ES.h b/src/pnw_MPEG4ES.h
new file mode 100644
index 0000000..359868b
--- /dev/null
+++ b/src/pnw_MPEG4ES.h
@@ -0,0 +1,38 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ * Elaine Wang <elaine.wang@intel.com>
+ * Zeng Li <zeng.li@intel.com>
+ *
+ */
+
+#ifndef _PNW_MPEG4ES_H_
+#define _PNW_MPEG4ES_H_
+
+#include "psb_drv_video.h"
+
+extern struct format_vtable_s pnw_MPEG4ES_vtable;
+
+#endif /* _PNW_MPEG4ES_H_ */
diff --git a/src/pnw_VC1.c b/src/pnw_VC1.c
new file mode 100644
index 0000000..17c9693
--- /dev/null
+++ b/src/pnw_VC1.c
@@ -0,0 +1,3045 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ * Waldo Bastian <waldo.bastian@intel.com>
+ * Zeng Li <zeng.li@intel.com>
+ *
+ */
+
+#include "pnw_VC1.h"
+#include "psb_def.h"
+#include "psb_surface.h"
+#include "psb_cmdbuf.h"
+
+#include "vc1_header.h"
+#include "vc1_defs.h"
+
+#include "hwdefs/reg_io2.h"
+#include "hwdefs/msvdx_offsets.h"
+#include "hwdefs/msvdx_cmds_io2.h"
+#include "hwdefs/msvdx_vec_reg_io2.h"
+#include "hwdefs/msvdx_vec_vc1_reg_io2.h"
+#include "hwdefs/msvdx_rendec_vc1_reg_io2.h"
+#include "hwdefs/dxva_fw_ctrl.h"
+
+#include <stdlib.h>
+#include <stdint.h>
+#include <string.h>
+
+static int VC1_Header_Parser_HW = 1;
+
+#define GET_SURFACE_INFO_is_defined(psb_surface) ((int) (psb_surface->extra_info[0]))
+#define SET_SURFACE_INFO_is_defined(psb_surface, val) psb_surface->extra_info[0] = (uint32_t) val;
+#define GET_SURFACE_INFO_picture_structure(psb_surface) (psb_surface->extra_info[1])
+#define SET_SURFACE_INFO_picture_structure(psb_surface, val) psb_surface->extra_info[1] = val;
+#define GET_SURFACE_INFO_picture_coding_type(psb_surface) ((int) (psb_surface->extra_info[2]))
+#define SET_SURFACE_INFO_picture_coding_type(psb_surface, val) psb_surface->extra_info[2] = (uint32_t) val;
+#define GET_SURFACE_INFO_colocated_index(psb_surface) ((int) (psb_surface->extra_info[3]))
+#define SET_SURFACE_INFO_colocated_index(psb_surface, val) psb_surface->extra_info[3] = (uint32_t) val;
+
+#define SLICEDATA_BUFFER_TYPE(type) ((type==VASliceDataBufferType)?"VASliceDataBufferType":"VAProtectedSliceDataBufferType")
+
+#define PIXELS_TO_MB(x) ((x + 15) / 16)
+
+#define PRELOAD_BUFFER_SIZE (4*1024)
+#define AUXMSB_BUFFER_SIZE (1024*1024)
+
+
+typedef struct {
+ IMG_UINT32 ui32ContextId;
+ IMG_UINT32 ui32SliceParams;
+ IMG_UINT32 ui32MacroblockNumber;
+} VC1PRELOAD;
+
+#define FWPARSER_VC1PRELOAD_SIZE (0x60)
+
+/*!
+******************************************************************************
+ @LUTs VLC table selection Look-up Tables
+******************************************************************************/
+
+typedef enum {
+ VC1_VLC_Code_3x2_2x3_tiles = 0x0,
+ VC1_VLC_FourMV_Pattern_0,
+ VC1_VLC_FourMV_Pattern_1,
+ VC1_VLC_FourMV_Pattern_2,
+ VC1_VLC_FourMV_Pattern_3,
+ VC1_VLC_High_Mot_Chroma_DC_Diff_VLC,
+ VC1_VLC_High_Mot_Inter_VLC,
+ VC1_VLC_High_Mot_Intra_VLC,
+ VC1_VLC_High_Mot_Luminance_DC_Diff_VLC,
+ VC1_VLC_High_Rate_Inter_VLC,
+ VC1_VLC_High_Rate_Intra_VLC,
+ VC1_VLC_High_Rate_SUBBLKPAT,
+ VC1_VLC_High_Rate_TTBLK,
+ VC1_VLC_High_Rate_TTMB,
+ VC1_VLC_I_Picture_CBPCY_VLC,
+ VC1_VLC_Interlace_2_MVP_Pattern_0,
+ VC1_VLC_Interlace_2_MVP_Pattern_1,
+ VC1_VLC_Interlace_2_MVP_Pattern_2,
+ VC1_VLC_Interlace_2_MVP_Pattern_3,
+ VC1_VLC_Interlace_4MV_MB_0,
+ VC1_VLC_Interlace_4MV_MB_1,
+ VC1_VLC_Interlace_4MV_MB_2,
+ VC1_VLC_Interlace_4MV_MB_3,
+ VC1_VLC_Interlace_Non_4MV_MB_0,
+ VC1_VLC_Interlace_Non_4MV_MB_1,
+ VC1_VLC_Interlace_Non_4MV_MB_2,
+ VC1_VLC_Interlace_Non_4MV_MB_3,
+ VC1_VLC_Interlaced_CBPCY_0,
+ VC1_VLC_Interlaced_CBPCY_1,
+ VC1_VLC_Interlaced_CBPCY_2,
+ VC1_VLC_Interlaced_CBPCY_3,
+ VC1_VLC_Interlaced_CBPCY_4,
+ VC1_VLC_Interlaced_CBPCY_5,
+ VC1_VLC_Interlaced_CBPCY_6,
+ VC1_VLC_Interlaced_CBPCY_7,
+ VC1_VLC_Low_Mot_Chroma_DC_Diff_VLC,
+ VC1_VLC_Low_Mot_Inter_VLC,
+ VC1_VLC_Low_Mot_Intra_VLC,
+ VC1_VLC_Low_Mot_Luminance_DC_Diff_VLC,
+ VC1_VLC_Low_Rate_SUBBLKPAT,
+ VC1_VLC_Low_Rate_TTBLK,
+ VC1_VLC_Low_Rate_TTMB,
+ VC1_VLC_Medium_Rate_SUBBLKPAT,
+ VC1_VLC_Medium_Rate_TTBLK,
+ VC1_VLC_Medium_Rate_TTMB,
+ VC1_VLC_Mid_Rate_Inter_VLC,
+ VC1_VLC_Mid_Rate_Intra_VLC,
+ VC1_VLC_Mixed_MV_MB_0,
+ VC1_VLC_Mixed_MV_MB_1,
+ VC1_VLC_Mixed_MV_MB_2,
+ VC1_VLC_Mixed_MV_MB_3,
+ VC1_VLC_Mixed_MV_MB_4,
+ VC1_VLC_Mixed_MV_MB_5,
+ VC1_VLC_Mixed_MV_MB_6,
+ VC1_VLC_Mixed_MV_MB_7,
+ VC1_VLC_Mot_Vector_Diff_VLC_0,
+ VC1_VLC_Mot_Vector_Diff_VLC_1,
+ VC1_VLC_Mot_Vector_Diff_VLC_2,
+ VC1_VLC_Mot_Vector_Diff_VLC_3,
+ VC1_VLC_One_Field_Ref_Ilace_MV_0,
+ VC1_VLC_One_Field_Ref_Ilace_MV_1,
+ VC1_VLC_One_Field_Ref_Ilace_MV_2,
+ VC1_VLC_One_Field_Ref_Ilace_MV_3,
+ VC1_VLC_One_MV_MB_0,
+ VC1_VLC_One_MV_MB_1,
+ VC1_VLC_One_MV_MB_2,
+ VC1_VLC_One_MV_MB_3,
+ VC1_VLC_One_MV_MB_4,
+ VC1_VLC_One_MV_MB_5,
+ VC1_VLC_One_MV_MB_6,
+ VC1_VLC_One_MV_MB_7,
+ VC1_VLC_P_Picture_CBPCY_VLC_0,
+ VC1_VLC_P_Picture_CBPCY_VLC_1,
+ VC1_VLC_P_Picture_CBPCY_VLC_2,
+ VC1_VLC_P_Picture_CBPCY_VLC_3,
+ VC1_VLC_Two_Field_Ref_Ilace_MV_0,
+ VC1_VLC_Two_Field_Ref_Ilace_MV_1,
+ VC1_VLC_Two_Field_Ref_Ilace_MV_2,
+ VC1_VLC_Two_Field_Ref_Ilace_MV_3,
+ VC1_VLC_Two_Field_Ref_Ilace_MV_4,
+ VC1_VLC_Two_Field_Ref_Ilace_MV_5,
+ VC1_VLC_Two_Field_Ref_Ilace_MV_6,
+ VC1_VLC_Two_Field_Ref_Ilace_MV_7,
+
+} VC1_eVLCTables;
+
+static IMG_UINT8 MBMODETableFLDI[][2] = {
+ {VC1_VLC_One_MV_MB_0, VC1_VLC_Mixed_MV_MB_0},
+ {VC1_VLC_One_MV_MB_1, VC1_VLC_Mixed_MV_MB_1},
+ {VC1_VLC_One_MV_MB_2, VC1_VLC_Mixed_MV_MB_2},
+ {VC1_VLC_One_MV_MB_3, VC1_VLC_Mixed_MV_MB_3},
+ {VC1_VLC_One_MV_MB_4, VC1_VLC_Mixed_MV_MB_4},
+ {VC1_VLC_One_MV_MB_5, VC1_VLC_Mixed_MV_MB_5},
+ {VC1_VLC_One_MV_MB_6, VC1_VLC_Mixed_MV_MB_6},
+ {VC1_VLC_One_MV_MB_7, VC1_VLC_Mixed_MV_MB_7},
+};
+
+static IMG_UINT8 MBMODETableFRMI[][2] = {
+ {VC1_VLC_Interlace_4MV_MB_0, VC1_VLC_Interlace_Non_4MV_MB_0},
+ {VC1_VLC_Interlace_4MV_MB_1, VC1_VLC_Interlace_Non_4MV_MB_1},
+ {VC1_VLC_Interlace_4MV_MB_2, VC1_VLC_Interlace_Non_4MV_MB_2},
+ {VC1_VLC_Interlace_4MV_MB_3, VC1_VLC_Interlace_Non_4MV_MB_3},
+};
+
+static IMG_UINT8 CBPCYTableProg[] = {
+ VC1_VLC_P_Picture_CBPCY_VLC_0,
+ VC1_VLC_P_Picture_CBPCY_VLC_1,
+ VC1_VLC_P_Picture_CBPCY_VLC_2,
+ VC1_VLC_P_Picture_CBPCY_VLC_3,
+};
+
+static IMG_UINT8 CBPCYTableInterlaced[] = {
+ VC1_VLC_Interlaced_CBPCY_0,
+ VC1_VLC_Interlaced_CBPCY_1,
+ VC1_VLC_Interlaced_CBPCY_2,
+ VC1_VLC_Interlaced_CBPCY_3,
+ VC1_VLC_Interlaced_CBPCY_4,
+ VC1_VLC_Interlaced_CBPCY_5,
+ VC1_VLC_Interlaced_CBPCY_6,
+ VC1_VLC_Interlaced_CBPCY_7,
+};
+
+static IMG_UINT8 FourMVTable[] = {
+ VC1_VLC_FourMV_Pattern_0,
+ VC1_VLC_FourMV_Pattern_1,
+ VC1_VLC_FourMV_Pattern_2,
+ VC1_VLC_FourMV_Pattern_3,
+};
+
+static IMG_UINT8 Interlace2MVTable[] = {
+ VC1_VLC_Interlace_2_MVP_Pattern_0,
+ VC1_VLC_Interlace_2_MVP_Pattern_1,
+ VC1_VLC_Interlace_2_MVP_Pattern_2,
+ VC1_VLC_Interlace_2_MVP_Pattern_3,
+};
+
+static IMG_UINT8 ProgressiveMVTable[] = {
+ VC1_VLC_Mot_Vector_Diff_VLC_0,
+ VC1_VLC_Mot_Vector_Diff_VLC_1,
+ VC1_VLC_Mot_Vector_Diff_VLC_2,
+ VC1_VLC_Mot_Vector_Diff_VLC_3,
+};
+
+static IMG_UINT8 Interlaced1RefMVTable[] = {
+ VC1_VLC_One_Field_Ref_Ilace_MV_0,
+ VC1_VLC_One_Field_Ref_Ilace_MV_1,
+ VC1_VLC_One_Field_Ref_Ilace_MV_2,
+ VC1_VLC_One_Field_Ref_Ilace_MV_3,
+};
+
+static IMG_UINT8 MVTable2RefIlace[] = {
+ VC1_VLC_Two_Field_Ref_Ilace_MV_0,
+ VC1_VLC_Two_Field_Ref_Ilace_MV_1,
+ VC1_VLC_Two_Field_Ref_Ilace_MV_2,
+ VC1_VLC_Two_Field_Ref_Ilace_MV_3,
+ VC1_VLC_Two_Field_Ref_Ilace_MV_4,
+ VC1_VLC_Two_Field_Ref_Ilace_MV_5,
+ VC1_VLC_Two_Field_Ref_Ilace_MV_6,
+ VC1_VLC_Two_Field_Ref_Ilace_MV_7,
+};
+
+static IMG_UINT8 IntraTablePQIndexLT9[] = {
+ VC1_VLC_High_Rate_Intra_VLC,
+ VC1_VLC_High_Mot_Intra_VLC,
+ VC1_VLC_Mid_Rate_Intra_VLC,
+};
+
+static IMG_UINT8 InterTablePQIndexLT9[] = {
+ VC1_VLC_High_Rate_Inter_VLC,
+ VC1_VLC_High_Mot_Inter_VLC,
+ VC1_VLC_Mid_Rate_Inter_VLC,
+};
+
+static IMG_UINT8 IntraTablePQIndexGT8[] = {
+ VC1_VLC_Low_Mot_Intra_VLC,
+ VC1_VLC_High_Mot_Intra_VLC,
+ VC1_VLC_Mid_Rate_Intra_VLC,
+};
+
+static IMG_UINT8 InterTablePQIndexGT8[] = {
+ VC1_VLC_Low_Mot_Inter_VLC,
+ VC1_VLC_High_Mot_Inter_VLC,
+ VC1_VLC_Mid_Rate_Inter_VLC,
+};
+
+/* TODO: Make tables const, don't polute namespace */
+extern IMG_UINT16 gaui16vc1VlcTableData[];
+extern const IMG_UINT16 gui16vc1VlcTableSize;
+extern IMG_UINT16 gaui16vc1VlcIndexData[VLC_INDEX_TABLE_SIZE][3];
+extern const IMG_UINT8 gui8vc1VlcIndexSize;
+
+
+static IMG_UINT16 gaui16Inverse[] = {256, 128, 85, 64, 51, 43, 37, 32}; /* figure 66 */
+static IMG_BOOL gDMVRANGE_ExtHorizontal_RemapTable[] = {0, 1, 0, 1};
+static IMG_BOOL gDMVRANGE_ExtVertical_RemapTable[] = {0, 0, 1, 1};
+static IMG_BYTE gBFRACTION_DenRemapTable[] = {2, 3, 3, 4, 4, 5, 5, 5, 5, 6, 6, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 255, 255};
+static IMG_BYTE gBFRACTION_NumRemapTable[] = {1, 1, 2, 1, 3, 1, 2, 3, 4, 1, 5, 1, 2, 3, 4, 5, 6, 1, 3, 5, 7, 255, 255};
+
+
+#define INIT_CONTEXT_VC1 context_VC1_p ctx = (context_VC1_p) obj_context->format_data;
+
+#define SURFACE(id) ((object_surface_p) object_heap_lookup( &ctx->obj_context->driver_data->surface_heap, id ))
+
+
+static void pnw_VC1_QueryConfigAttributes(
+ VAProfile profile,
+ VAEntrypoint entrypoint,
+ VAConfigAttrib *attrib_list,
+ int num_attribs)
+{
+ /* No VC1 specific attributes */
+}
+
+static VAStatus pnw_VC1_ValidateConfig(
+ object_config_p obj_config)
+{
+ int i;
+ /* Check all attributes */
+ for (i = 0; i < obj_config->attrib_count; i++) {
+ switch (obj_config->attrib_list[i].type) {
+ case VAConfigAttribRTFormat:
+ /* Ignore */
+ break;
+
+ default:
+ return VA_STATUS_ERROR_ATTR_NOT_SUPPORTED;
+ }
+ }
+
+ return VA_STATUS_SUCCESS;
+}
+
+
+static void psb__VC1_pack_vlc_tables(uint16_t *vlc_packed_data,
+ uint16_t *gaui16vc1VlcTableData,
+ int gui16vc1VlcTableSize)
+{
+ int i, j;
+ /************************************************************************************/
+ /* Pack the VLC tables into 32-bit format ready for DMA into 15-bit wide RAM. */
+ /************************************************************************************/
+ for (i = 0; i < gui16vc1VlcTableSize; i++) {
+ j = i * 3;
+ vlc_packed_data[i] = 0;
+ /* opcode 14:12 *//* width 11:9 *//* symbol 8:0 */
+ vlc_packed_data[i] = ((gaui16vc1VlcTableData[j + 0]) << 12) |
+ ((gaui16vc1VlcTableData[j + 1]) << 9) |
+ (gaui16vc1VlcTableData[j + 2]);
+ }
+}
+
+static void psb__VC1_pack_index_table_info(uint32_t *packed_index_table,
+ uint16_t index_data[VLC_INDEX_TABLE_SIZE][3])
+{
+ uint32_t start = 0, end = 0, length = 0, opcode = 0, width = 0;
+ int i;
+
+ for (i = 0; i < VLC_INDEX_TABLE_SIZE; i++) {
+ start = index_data[i][2];
+ if (i < (VLC_INDEX_TABLE_SIZE - 1)) { //Make sure we don't exceed the bound
+ end = index_data[i+1][2];
+ } else {
+ end = start + 500;
+ }
+ length = end - start;
+ width = index_data[i][1];
+ opcode = index_data[i][0];
+
+ psb__information_message("packed_index_table[%02d]->start = %08x length = %08x (%d)\n", i, start * 2, length * 2, length * 2);
+
+ packed_index_table[i] = opcode;
+ packed_index_table[i] <<= 3;
+ packed_index_table[i] |= width;
+ packed_index_table[i] <<= 9;
+ packed_index_table[i] |= length;
+ packed_index_table[i] <<= 16;
+ packed_index_table[i] |= start;
+ }
+}
+
+static VAStatus psb__VC1_check_legal_picture(object_context_p obj_context, object_config_p obj_config)
+{
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+
+ if (NULL == obj_context) {
+ vaStatus = VA_STATUS_ERROR_INVALID_CONTEXT;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ if (NULL == obj_config) {
+ vaStatus = VA_STATUS_ERROR_INVALID_CONFIG;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ /* MSVDX decode capability for VC-1:
+ * SP@ML
+ * MP@HL
+ * AP@L3
+ *
+ * Refer to Table 253 (Limitations of profiles and levels) of SMPTE-421M
+ */
+ switch (obj_config->profile) {
+ case VAProfileVC1Simple:
+ if ((obj_context->picture_width <= 0) || (obj_context->picture_width > 352)
+ || (obj_context->picture_height <= 0) || (obj_context->picture_height > 288)) {
+ vaStatus = VA_STATUS_ERROR_RESOLUTION_NOT_SUPPORTED;
+ }
+ break;
+
+ case VAProfileVC1Main:
+ if ((obj_context->picture_width <= 0) || (obj_context->picture_width > 1920)
+ || (obj_context->picture_height <= 0) || (obj_context->picture_height > 1088)) {
+ vaStatus = VA_STATUS_ERROR_RESOLUTION_NOT_SUPPORTED;
+ }
+ break;
+
+ case VAProfileVC1Advanced:
+ if ((obj_context->picture_width <= 0) || (obj_context->picture_width > 2048)
+ || (obj_context->picture_height <= 0) || (obj_context->picture_height > 2048)) {
+ vaStatus = VA_STATUS_ERROR_RESOLUTION_NOT_SUPPORTED;
+ }
+ break;
+
+ default:
+ vaStatus = VA_STATUS_ERROR_UNSUPPORTED_PROFILE;
+ break;
+ }
+
+ return vaStatus;
+}
+
+static void pnw_VC1_DestroyContext(object_context_p obj_context);
+
+static VAStatus pnw_VC1_CreateContext(
+ object_context_p obj_context,
+ object_config_p obj_config)
+{
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ context_VC1_p ctx;
+ /* Validate flag */
+ /* Validate picture dimensions */
+ vaStatus = psb__VC1_check_legal_picture(obj_context, obj_config);
+ if (VA_STATUS_SUCCESS != vaStatus) {
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ ctx = (context_VC1_p) malloc(sizeof(struct context_VC1_s));
+ if (NULL == ctx) {
+ vaStatus = VA_STATUS_ERROR_ALLOCATION_FAILED;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+ memset(ctx, 0, sizeof(struct context_VC1_s));
+ obj_context->format_data = (void*) ctx;
+ ctx->obj_context = obj_context;
+ ctx->pic_params = NULL;
+
+ ctx->split_buffer_pending = FALSE;
+
+ ctx->slice_param_list_size = 8;
+ ctx->slice_param_list = (object_buffer_p*) malloc(sizeof(object_buffer_p) * ctx->slice_param_list_size);
+ ctx->slice_param_list_idx = 0;
+
+ if (NULL == ctx->slice_param_list) {
+ vaStatus = VA_STATUS_ERROR_ALLOCATION_FAILED;
+ DEBUG_FAILURE;
+ }
+
+ ctx->colocated_buffers_size = obj_context->num_render_targets;
+ ctx->colocated_buffers_idx = 0;
+ ctx->colocated_buffers = (psb_buffer_p) malloc(sizeof(struct psb_buffer_s) * ctx->colocated_buffers_size);
+ if (NULL == ctx->colocated_buffers) {
+ vaStatus = VA_STATUS_ERROR_ALLOCATION_FAILED;
+ DEBUG_FAILURE;
+ }
+
+ switch (obj_config->profile) {
+ case VAProfileVC1Simple:
+ ctx->profile = WMF_PROFILE_SIMPLE;
+ break;
+
+ case VAProfileVC1Main:
+ ctx->profile = WMF_PROFILE_MAIN;
+ break;
+
+ case VAProfileVC1Advanced:
+ ctx->profile = WMF_PROFILE_ADVANCED;
+ break;
+
+ default:
+ ASSERT(0 == 1);
+ vaStatus = VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ // TODO
+
+ if (vaStatus == VA_STATUS_SUCCESS) {
+ vaStatus = psb_buffer_create(obj_context->driver_data,
+ PRELOAD_BUFFER_SIZE,
+ psb_bt_vpu_only,
+ &ctx->preload_buffer);
+ DEBUG_FAILURE;
+ }
+
+ if (vaStatus == VA_STATUS_SUCCESS) {
+ void *preload;
+ if (0 == psb_buffer_map(&ctx->preload_buffer, &preload)) {
+ memset(preload, 0, PRELOAD_BUFFER_SIZE);
+ psb_buffer_unmap(&ctx->preload_buffer);
+ } else {
+ vaStatus = VA_STATUS_ERROR_ALLOCATION_FAILED;
+ DEBUG_FAILURE;
+ }
+ }
+
+ if (vaStatus == VA_STATUS_SUCCESS) {
+ vaStatus = psb_buffer_create(obj_context->driver_data,
+ AUXMSB_BUFFER_SIZE,
+ psb_bt_vpu_only,
+ &ctx->aux_msb_buffer);
+ DEBUG_FAILURE;
+ }
+
+ if (vaStatus == VA_STATUS_SUCCESS) {
+ if (VC1_Header_Parser_HW) {
+ vaStatus = psb_buffer_create(obj_context->driver_data,
+ 0xa000 * 3, //0x8800
+ psb_bt_vpu_only,
+ &ctx->bitplane_hw_buffer);
+ DEBUG_FAILURE;
+ } else {
+ vaStatus = psb_buffer_create(obj_context->driver_data,
+ 0x8000,
+ psb_bt_vpu_only,
+ &ctx->bitplane_hw_buffer);
+ DEBUG_FAILURE;
+ }
+
+ }
+
+ if (vaStatus == VA_STATUS_SUCCESS) {
+ vaStatus = psb_buffer_create(obj_context->driver_data,
+ (gui16vc1VlcTableSize * sizeof(IMG_UINT16) + 0xfff) & ~0xfff,
+ psb_bt_cpu_vpu,
+ &ctx->vlc_packed_table);
+ DEBUG_FAILURE;
+ }
+ if (vaStatus == VA_STATUS_SUCCESS) {
+ void *vlc_packed_data_address;
+ if (0 == psb_buffer_map(&ctx->vlc_packed_table, &vlc_packed_data_address)) {
+ psb__VC1_pack_vlc_tables(vlc_packed_data_address, gaui16vc1VlcTableData, gui16vc1VlcTableSize);
+ psb_buffer_unmap(&ctx->vlc_packed_table);
+ psb__VC1_pack_index_table_info(ctx->vlc_packed_index_table, gaui16vc1VlcIndexData);
+ } else {
+ vaStatus = VA_STATUS_ERROR_ALLOCATION_FAILED;
+ DEBUG_FAILURE;
+ }
+ }
+
+ if (vaStatus != VA_STATUS_SUCCESS) {
+ pnw_VC1_DestroyContext(obj_context);
+ }
+
+ return vaStatus;
+}
+
+static void pnw_VC1_DestroyContext(
+ object_context_p obj_context)
+{
+ INIT_CONTEXT_VC1
+ int i;
+
+ psb_buffer_destroy(&ctx->vlc_packed_table);
+ psb_buffer_destroy(&ctx->aux_msb_buffer);
+ psb_buffer_destroy(&ctx->preload_buffer);
+ psb_buffer_destroy(&ctx->bitplane_hw_buffer);
+
+ if (ctx->pic_params) {
+ free(ctx->pic_params);
+ ctx->pic_params = NULL;
+ }
+
+ if (ctx->slice_param_list) {
+ free(ctx->slice_param_list);
+ ctx->slice_param_list = NULL;
+ }
+
+ if (ctx->colocated_buffers) {
+ for (i = 0; i < ctx->colocated_buffers_idx; ++i)
+ psb_buffer_destroy(&(ctx->colocated_buffers[i]));
+
+ free(ctx->colocated_buffers);
+ ctx->colocated_buffers = NULL;
+ }
+
+ free(obj_context->format_data);
+ obj_context->format_data = NULL;
+}
+
+static VAStatus psb__VC1_allocate_colocated_buffer(context_VC1_p ctx, object_surface_p obj_surface, uint32_t size)
+{
+ psb_surface_p surface = obj_surface->psb_surface;
+
+ psb__information_message("pnw_VC1: Allocationg colocated buffer for surface %08x\n", surface);
+
+ if (!GET_SURFACE_INFO_colocated_index(surface)) {
+ VAStatus vaStatus;
+ psb_buffer_p buf;
+ int index = ctx->colocated_buffers_idx;
+ if (index >= ctx->colocated_buffers_size) {
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+ buf = &(ctx->colocated_buffers[index]);
+ vaStatus = psb_buffer_create(ctx->obj_context->driver_data, size, psb_bt_vpu_only, buf);
+ if (VA_STATUS_SUCCESS != vaStatus) {
+ return vaStatus;
+ }
+ ctx->colocated_buffers_idx++;
+ SET_SURFACE_INFO_colocated_index(surface, index + 1); /* 0 means unset, index is offset by 1 */
+ }
+ return VA_STATUS_SUCCESS;
+}
+
+static psb_buffer_p psb__VC1_lookup_colocated_buffer(context_VC1_p ctx, psb_surface_p surface)
+{
+ psb__information_message("pnw_VC1: Looking up colocated buffer for surface %08x\n", surface);
+ int index = GET_SURFACE_INFO_colocated_index(surface);
+ if (!index) {
+ return NULL;
+ }
+ return &(ctx->colocated_buffers[index-1]); /* 0 means unset, index is offset by 1 */
+}
+
+static uint32_t psb__vc1_get_izz_scan_index(context_VC1_p ctx)
+{
+ if (ctx->pic_params->picture_fields.bits.frame_coding_mode == VC1_FCM_FRMI) {
+ // P_PICTURE_ADV_FRAME_INTERLACE
+ return 3;
+ }
+ if (PIC_TYPE_IS_INTRA(ctx->pic_params->picture_fields.bits.picture_type)) {
+ // I-picture tables
+ return 4;
+ } else {
+ /* Assume P frame */
+ if ((ctx->profile == WMF_PROFILE_SIMPLE) ||
+ (ctx->profile == WMF_PROFILE_MAIN)) {
+ // P-picture Simple/Main tables
+ return 0;
+ } else { /* Advanced profile */
+ if (ctx->pic_params->picture_fields.bits.frame_coding_mode == VC1_FCM_P) {
+ // P-picture Advanced Progressive tables
+ return 1;
+ } else { /* Interlaced Field */
+ // P-picture Advanced Field Interlaced tables
+ return 2;
+ }
+ }
+ }
+}
+
+
+#ifdef DEBUG_TRACE
+#define psb__trace_message(...)
+
+#define P(x) psb__trace_message("PARAMS: " #x "\t= %d\n", p->x)
+static void psb__VC1_trace_pic_params(VAPictureParameterBufferVC1 *p)
+{
+#define P0(x) psb__trace_message("PARAMS: " #x "\t= %d\n", p->sequence_fields.bits.x)
+ P0(interlace);
+ P0(syncmarker);
+ P0(overlap);
+
+ P(coded_width);
+ P(coded_height);
+
+#define P2(x) psb__trace_message("PARAMS: " #x "\t= %d\n", p->picture_fields.bits.x)
+ /* picture_fields */
+ P2(picture_type);
+ P2(frame_coding_mode);
+ P2(top_field_first);
+ P2(is_first_field);
+ P2(intensity_compensation);
+
+#define P4(x) psb__trace_message("PARAMS: " #x "\t= %d\n", p->entrypoint_fields.bits.x)
+ P4(closed_entry);
+ P4(broken_link);
+ P4(loopfilter);
+
+ P(conditional_overlap_flag);
+ P(fast_uvmc_flag);
+
+#define P3(x) psb__trace_message("PARAMS: " #x "\t= %d\n", p->range_mapping_fields.bits.x)
+ /* range_mapping_fields */
+ P3(luma_flag);
+ P3(luma);
+ P3(chroma_flag);
+ P3(chroma);
+
+ P(b_picture_fraction);
+ P(cbp_table);
+ P(mb_mode_table);
+ P(range_reduction_frame);
+ P(rounding_control);
+ P(post_processing);
+ P(picture_resolution_index);
+ P(luma_scale);
+ P(luma_shift);
+
+ P(raw_coding.value);
+ P(bitplane_present.value);
+
+#define P4(x) psb__trace_message("PARAMS: " #x "\t= %d\n", p->reference_fields.bits.x)
+ P4(reference_distance_flag);
+ P4(reference_distance);
+ P4(num_reference_pictures);
+ P4(reference_field_pic_indicator);
+
+#define P5(x) psb__trace_message("PARAMS: " #x "\t= %d\n", p->mv_fields.bits.x)
+ P5(mv_mode);
+ P5(mv_mode2);
+
+ P5(mv_table);
+ P5(two_mv_block_pattern_table);
+ P5(four_mv_switch);
+ P5(four_mv_block_pattern_table);
+ P5(extended_mv_flag);
+ P5(extended_mv_range);
+ P5(extended_dmv_flag);
+ P5(extended_dmv_range);
+
+#define P6(x) psb__trace_message("PARAMS: " #x "\t= %d\n", p->pic_quantizer_fields.bits.x)
+
+ P6(dquant);
+ P6(quantizer);
+ P6(half_qp);
+ P6(pic_quantizer_scale);
+ P6(pic_quantizer_type);
+ P6(dq_frame);
+ P6(dq_profile);
+ P6(dq_sb_edge);
+ P6(dq_db_edge);
+ P6(dq_binary_level);
+ P6(alt_pic_quantizer);
+
+#define P7(x) psb__trace_message("PARAMS: " #x "\t= %d\n", p->transform_fields.bits.x)
+
+ P7(variable_sized_transform_flag);
+ P7(mb_level_transform_type_flag);
+ P7(frame_level_transform_type);
+ P7(transform_ac_codingset_idx1);
+ P7(transform_ac_codingset_idx2);
+ P7(intra_transform_dc_table);
+}
+#endif
+
+static VAStatus psb__VC1_process_picture_param(context_VC1_p ctx, object_buffer_p obj_buffer)
+{
+ VAStatus vaStatus;
+ VAPictureParameterBufferVC1 *pic_params;
+ IMG_UINT8 ui8LumaScale1 = 0, ui8LumaShift1 = 0, ui8LumaScale2 = 0, ui8LumaShift2 = 0;
+
+ ASSERT(obj_buffer->type == VAPictureParameterBufferType);
+ ASSERT(obj_buffer->num_elements == 1);
+ ASSERT(obj_buffer->size == sizeof(VAPictureParameterBufferVC1));
+
+ if ((obj_buffer->num_elements != 1) ||
+ (obj_buffer->size != sizeof(VAPictureParameterBufferVC1))) {
+ vaStatus = VA_STATUS_ERROR_UNKNOWN;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ /* Transfer ownership of VAPictureParameterBufferVC1 data */
+ pic_params = (VAPictureParameterBufferVC1 *) obj_buffer->buffer_data;
+ if (ctx->pic_params) {
+ free(ctx->pic_params);
+ }
+ ctx->pic_params = pic_params;
+ obj_buffer->buffer_data = NULL;
+ obj_buffer->size = 0;
+
+#ifdef DEBUG_TRACE
+ psb__VC1_trace_pic_params(pic_params);
+#endif
+
+ if (pic_params->pic_quantizer_fields.bits.quantizer == 0) {
+ /* Non uniform quantizer indicates PQINDEX > 8 */
+ ctx->pqindex_gt8 = (pic_params->pic_quantizer_fields.bits.pic_quantizer_type == 0);
+ } else {
+ /* PQUANT (pic_quantizer_scale) == PQINDEX */
+ ctx->pqindex_gt8 = (pic_params->pic_quantizer_fields.bits.pic_quantizer_scale > 8);
+ }
+
+ /*
+ * We decode to ctx->decoded_surface This is inloop target
+ * the out of loop decoded picture is stored in ctx->obj_context->current_render_target
+ */
+ if (pic_params->inloop_decoded_picture == VA_INVALID_SURFACE) {
+ /* No out of loop deblocking */
+ ctx->decoded_surface = ctx->obj_context->current_render_target;
+ } else {
+ ctx->decoded_surface = SURFACE(pic_params->inloop_decoded_picture);
+ if (NULL == ctx->decoded_surface) {
+ vaStatus = VA_STATUS_ERROR_INVALID_SURFACE;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+ }
+ /* Lookup surfaces for backward/forward references */
+ ctx->forward_ref_surface = NULL;
+ ctx->backward_ref_surface = NULL;
+ if (pic_params->forward_reference_picture != VA_INVALID_SURFACE) {
+ ctx->forward_ref_surface = SURFACE(pic_params->forward_reference_picture);
+ }
+ if (pic_params->backward_reference_picture != VA_INVALID_SURFACE) {
+ ctx->backward_ref_surface = SURFACE(pic_params->backward_reference_picture);
+ }
+
+#if 0
+ if (NULL == ctx->forward_ref_surface) {
+ /* for mmu fault protection */
+ ctx->forward_ref_surface = ctx->decoded_surface;
+ }
+ if (NULL == ctx->backward_ref_surface) {
+ /* for mmu fault protection */
+ ctx->backward_ref_surface = ctx->decoded_surface;
+ }
+#endif
+
+ psb__information_message("Target ref = %08x ID = %08x\n", ctx->obj_context->current_render_target->psb_surface, ctx->obj_context->current_render_target->surface_id);
+ psb__information_message("Decoded ref = %08x ID = %08x\n", ctx->decoded_surface->psb_surface, pic_params->inloop_decoded_picture);
+ psb__information_message("Forward ref = %08x ID = %08x\n", ctx->forward_ref_surface ? ctx->forward_ref_surface->psb_surface : 0, pic_params->forward_reference_picture);
+ psb__information_message("Backwrd ref = %08x ID = %08x\n", ctx->backward_ref_surface ? ctx->backward_ref_surface->psb_surface : 0, pic_params->backward_reference_picture);
+
+ // NOTE: coded_width and coded_height do not have to be an exact multiple of MBs
+
+ ctx->display_picture_width = pic_params->coded_width;
+ ctx->display_picture_height = pic_params->coded_height;
+ ctx->picture_width_mb = PIXELS_TO_MB(ctx->display_picture_width);
+ ctx->picture_height_mb = PIXELS_TO_MB(ctx->display_picture_height);
+ ctx->coded_picture_width = ctx->picture_width_mb * 16;
+ ctx->coded_picture_height = ctx->picture_height_mb * 16;
+ if ((WMF_PROFILE_ADVANCED == ctx->profile) && (VC1_FCM_FLDI == pic_params->picture_fields.bits.frame_coding_mode)) {
+ ctx->picture_height_mb /= 2;
+ ctx->coded_picture_height = ctx->picture_height_mb * 16 * 2;
+ }
+
+ ctx->size_mb = ctx->picture_width_mb * ctx->picture_height_mb;
+
+ uint32_t colocated_size = ((ctx->size_mb + 1) * 2 + 128) * VC1_MB_PARAM_STRIDE;
+ //uint32_t colocated_size = (ctx->size_mb + 1) * 2 * VC1_MB_PARAM_STRIDE + 0x2000;
+
+ vaStatus = psb__VC1_allocate_colocated_buffer(ctx, ctx->decoded_surface, colocated_size);
+ vaStatus = psb__VC1_allocate_colocated_buffer(ctx, ctx->obj_context->current_render_target, colocated_size);
+
+ if (VA_STATUS_SUCCESS != vaStatus) {
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ /* TODO: Store top_field_first and frame_coding_mode (or even all of pic_params) for the current frame
+ * so that it can be referenced when the same frame is used as reference frame
+ */
+
+ if (ctx->profile != WMF_PROFILE_ADVANCED) {
+ /* Simple and Main profiles always use progressive pictures*/
+ pic_params->picture_fields.bits.frame_coding_mode = VC1_FCM_P;
+ }
+
+ if ((pic_params->picture_fields.bits.frame_coding_mode == VC1_FCM_P) || (pic_params->picture_fields.bits.frame_coding_mode == VC1_FCM_FRMI)) {
+ pic_params->picture_fields.bits.top_field_first = 1;
+ }
+
+ ctx->bitplane_present = 0;
+ switch (pic_params->picture_fields.bits.picture_type) {
+ case WMF_PTYPE_I:
+ case WMF_PTYPE_BI:
+ ctx->bitplane_present |= (pic_params->bitplane_present.flags.bp_overflags && !pic_params->raw_coding.flags.overflags) ? 0x04 : 0;
+ ctx->bitplane_present |= (pic_params->bitplane_present.flags.bp_ac_pred && !pic_params->raw_coding.flags.ac_pred) ? 0x02 : 0;
+ ctx->bitplane_present |= (pic_params->bitplane_present.flags.bp_field_tx && !pic_params->raw_coding.flags.field_tx) ? 0x01 : 0;
+ break;
+
+ case WMF_PTYPE_P:
+ ctx->bitplane_present |= (pic_params->bitplane_present.flags.bp_mv_type_mb && !pic_params->raw_coding.flags.mv_type_mb) ? 0x04 : 0;
+ ctx->bitplane_present |= (pic_params->bitplane_present.flags.bp_skip_mb && !pic_params->raw_coding.flags.skip_mb) ? 0x02 : 0;
+ break;
+
+ case WMF_PTYPE_B: /* B picture */
+ ctx->bitplane_present |= (pic_params->bitplane_present.flags.bp_forward_mb && !pic_params->raw_coding.flags.forward_mb) ? 0x04 : 0;
+ ctx->bitplane_present |= (pic_params->bitplane_present.flags.bp_skip_mb && !pic_params->raw_coding.flags.skip_mb) ? 0x02 : 0;
+ ctx->bitplane_present |= (pic_params->bitplane_present.flags.bp_direct_mb && !pic_params->raw_coding.flags.direct_mb) ? 0x01 : 0;
+ break;
+
+ default:
+ break;
+ }
+ psb__information_message("bitplane_present_flag = %02x raw_coding_flag = %02x bitplane_present = %02x\n",
+ pic_params->bitplane_present.value, pic_params->raw_coding.value, ctx->bitplane_present);
+
+ if (pic_params->reference_fields.bits.reference_distance_flag == 0) {
+ pic_params->reference_fields.bits.reference_distance = 0;
+ }
+
+ /* conditional_overlap_flag is not always defined, but MSVDX expects it to be set in those cases anyway */
+ if (ctx->profile == WMF_PROFILE_ADVANCED) {
+ if (pic_params->sequence_fields.bits.overlap == FALSE) {
+ ctx->condover = 0; /* No overlap smoothing */
+ } else if (pic_params->pic_quantizer_fields.bits.pic_quantizer_scale < 9) {
+ ctx->condover = pic_params->conditional_overlap_flag;
+ } else {
+ ctx->condover = 2;
+ }
+ } else {
+ if ((pic_params->picture_fields.bits.picture_type == WMF_PTYPE_B) || (pic_params->sequence_fields.bits.overlap == FALSE) || (pic_params->pic_quantizer_fields.bits.pic_quantizer_scale < 9)) {
+ ctx->condover = 0; /* No overlap smoothing */
+ } else {
+ ctx->condover = 2;
+ }
+ }
+
+ /************************** Calculate the IZZ scan index ****************************/
+ ctx->scan_index = psb__vc1_get_izz_scan_index(ctx);
+ /************************************************************************************/
+
+ /**************************** Calculate MVMODE and MVMODE2 **************************/
+ ctx->mv_mode = pic_params->mv_fields.bits.mv_mode;
+ if (ctx->mv_mode == WMF_MVMODE_INTENSITY_COMPENSATION) {
+ ctx->mv_mode = pic_params->mv_fields.bits.mv_mode2;
+ }
+
+ /* Neither MVMODE nor MVMODE2 are signaled at the picture level for interlaced frame pictures,
+ but MVMODE can be determine for P pictures depending on the value of MV4SWITCH, and for B
+ pictures it is by default 1MV mode. */
+ if ((pic_params->picture_fields.bits.frame_coding_mode == VC1_FCM_FRMI) && PIC_TYPE_IS_INTER(pic_params->picture_fields.bits.picture_type)) {
+ if ((pic_params->picture_fields.bits.picture_type == WMF_PTYPE_P) && (pic_params->mv_fields.bits.four_mv_switch == 1)) {
+ ctx->mv_mode = WMF_MVMODE_MIXED_MV;
+ pic_params->mv_fields.bits.mv_mode = WMF_MVMODE_MIXED_MV;
+ } else {
+ ctx->mv_mode = WMF_MVMODE_1MV;
+ pic_params->mv_fields.bits.mv_mode = WMF_MVMODE_1MV;
+ }
+ }
+ /************************************************************************************/
+
+
+ /******************************** Calculate HALFPEL *********************************/
+ if ((ctx->mv_mode == WMF_MVMODE_1MV) || (ctx->mv_mode == WMF_MVMODE_MIXED_MV)) {
+ ctx->half_pel = 0;
+ } else {
+ ctx->half_pel = 1;
+ }
+ /************************************************************************************/
+
+ /* TODO: Are we using the correct size for this ? */
+ ctx->pull_back_x = COMPUTE_PULLBACK(pic_params->coded_width);
+ ctx->pull_back_y = COMPUTE_PULLBACK(pic_params->coded_height);
+
+ if (pic_params->mv_fields.bits.extended_dmv_flag == 1) {
+ ctx->extend_x = gDMVRANGE_ExtHorizontal_RemapTable[pic_params->mv_fields.bits.extended_dmv_range];
+ ctx->extend_y = gDMVRANGE_ExtVertical_RemapTable[pic_params->mv_fields.bits.extended_dmv_range];
+ } else {
+ ctx->extend_x = IMG_FALSE;
+ ctx->extend_y = IMG_FALSE;
+ }
+
+ /* B interlaced field picture and ...?? */
+ ctx->ui32ScaleFactor = 0;
+ ctx->i8FwrdRefFrmDist = 0;
+ ctx->i8BckwrdRefFrmDist = 0;
+ if (pic_params->picture_fields.bits.picture_type == WMF_PTYPE_B) {
+ IMG_UINT32 ui32BFractionDen;
+ IMG_UINT32 ui32BFractionNum;
+
+ IMG_UINT32 ui32FrameReciprocal;
+
+ if (pic_params->b_picture_fraction > (sizeof(gBFRACTION_DenRemapTable) / sizeof(IMG_BYTE) - 1))
+ pic_params->b_picture_fraction = sizeof(gBFRACTION_DenRemapTable) / sizeof(IMG_BYTE) - 1;
+
+ ui32BFractionDen = gBFRACTION_DenRemapTable[pic_params->b_picture_fraction];
+ ui32BFractionNum = gBFRACTION_NumRemapTable[pic_params->b_picture_fraction];
+
+ if (ui32BFractionDen > (sizeof(gaui16Inverse) / sizeof(IMG_UINT16)))
+ ui32BFractionDen = sizeof(gaui16Inverse) / sizeof(IMG_UINT16);
+
+ if (ui32BFractionDen == 0) {
+ psb__error_message("Invalid ui32BFractionDen value %d\n", ui32BFractionDen);
+ ui32BFractionDen = 1;
+ }
+
+ ui32FrameReciprocal = gaui16Inverse[ui32BFractionDen - 1];
+ ctx->ui32ScaleFactor = ui32BFractionNum * ui32FrameReciprocal;
+
+ if (pic_params->picture_fields.bits.frame_coding_mode == VC1_FCM_FLDI) {
+ ctx->i8FwrdRefFrmDist = (IMG_INT8)((ctx->ui32ScaleFactor * pic_params->reference_fields.bits.reference_distance) >> 8); /* 10.4.6.2 */
+ ctx->i8BckwrdRefFrmDist = pic_params->reference_fields.bits.reference_distance - ctx->i8FwrdRefFrmDist - 1;
+
+ if (ctx->i8BckwrdRefFrmDist < 0) {
+ ctx->i8BckwrdRefFrmDist = 0;
+ }
+ }
+ }
+
+ /* Compute the mode config parameter */
+ /*
+ MODE_CONFIG[1:0] =
+ VC-1 intensity compensation flag, derived from MVMODE = Intensity compensation, and INTCOMPFIELD
+ 00 – No intensity compensation
+ 01 – Intensity compensation for top field
+ 10 – Intensity compensation for bottom field
+ 11 – Intensity compensation for the frame
+
+ MODE_CONFIG[3:2] =
+ VC-1 reference range scaling, derived from RANGERED, RANGEREDFRM for current frame and reference frame.
+ 00 – No scaling
+ 01 – Scale down
+ 10 – Scale up
+ 11 – No scaling
+ */
+
+ /****************************** INTENSITY COMPENSATION ******************************/
+ /* For each NEW reference frame, rotate IC history */
+ if (PIC_TYPE_IS_REF(pic_params->picture_fields.bits.picture_type) &&
+ pic_params->picture_fields.bits.is_first_field &&
+ (pic_params->picture_fields.bits.frame_coding_mode == VC1_FCM_FLDI)) {
+ /*
+ This is the first field picture of a new frame, so move the IC params for both field
+ pictures of the last frame (from position [1][0] for the first field and position [1][1] for
+ the second field to positions [0][0] and [0][1] respectevely).
+ */
+ memcpy(&ctx->sICparams[0][0], &ctx->sICparams[1][0], sizeof(IC_PARAM));
+ memcpy(&ctx->sICparams[0][1], &ctx->sICparams[1][1], sizeof(IC_PARAM));
+
+ memset(&ctx->sICparams[1][0], 0, sizeof(IC_PARAM));
+ memset(&ctx->sICparams[1][1], 0, sizeof(IC_PARAM));
+ }
+
+ if (pic_params->picture_fields.bits.picture_type == WMF_PTYPE_P) {
+ ctx->ui8CurrLumaScale1 = 0;
+ ctx->ui8CurrLumaShift1 = 0;
+ ctx->ui8CurrLumaScale2 = 0;
+ ctx->ui8CurrLumaShift2 = 0;
+
+ if (pic_params->picture_fields.bits.frame_coding_mode != VC1_FCM_FRMI) {
+ if (pic_params->picture_fields.bits.intensity_compensation) {
+ /* Intensity compensation of reference */
+ if (pic_params->picture_fields.bits.frame_coding_mode != VC1_FCM_FLDI) { // progressive picture
+ ctx->mode_config = 0x3;
+
+ ui8LumaScale1 = pic_params->luma_scale & 0x3F;
+ ui8LumaShift1 = pic_params->luma_shift & 0x3F;
+
+ if (ui8LumaScale1 != 0 || ui8LumaShift1 != 0) {
+ ctx->ui8CurrLumaScale1 = ui8LumaScale1;
+ ctx->ui8CurrLumaShift1 = ui8LumaShift1;
+ }
+ } else { // field interlaced picture
+ // top field
+ ui8LumaScale1 = pic_params->luma_scale & 0x3F;
+ ui8LumaShift1 = pic_params->luma_shift & 0x3F;
+
+ // bottom field
+ ui8LumaScale2 = ui8LumaScale1; /* TODO: How to keep track of top/bottom field intensity comp? */
+ ui8LumaShift2 = ui8LumaShift1; /* TODO: How to keep track of top/bottom field intensity comp? */
+
+ /* Check what fields undergo intensity compensation */
+ ctx->ui8IntCompField = 0;
+ if (ui8LumaScale1 != 0 || ui8LumaShift1 != 0) {
+ ctx->ui8IntCompField = 1;
+ }
+ if (ui8LumaScale2 != 0 || ui8LumaShift2 != 0) {
+ ctx->ui8IntCompField |= 2;
+ }
+
+ switch (ctx->ui8IntCompField) {
+ case 0: /* none */
+ ctx->mode_config = 0x0;
+ break;
+
+ case 1: /* top */
+ ctx->mode_config = 0x1;
+
+ // IC parameters for top field
+ ctx->ui8CurrLumaScale1 = ui8LumaScale1;
+ ctx->ui8CurrLumaShift1 = ui8LumaShift1;
+ break;
+
+ case 2: /* bottom */
+ ctx->mode_config = 0x2;
+
+ // IC parameters for bottom field
+ ctx->ui8CurrLumaScale2 = ui8LumaScale2;
+ ctx->ui8CurrLumaShift2 = ui8LumaShift2;
+ break;
+
+ case 3: /* both */
+ ctx->mode_config = 0x3;
+
+ // IC parameters for top field
+ ctx->ui8CurrLumaScale1 = ui8LumaScale1;
+ ctx->ui8CurrLumaShift1 = ui8LumaShift1;
+
+ // IC parameters for bottom field
+ ctx->ui8CurrLumaScale2 = ui8LumaScale2;
+ ctx->ui8CurrLumaShift2 = ui8LumaShift2;
+ break;
+ }
+ }
+ } else {
+ ctx->mode_config = 0;
+ }
+ } else { // interlaced frame P picture
+ if (pic_params->picture_fields.bits.intensity_compensation) { /* iINSO */
+ ctx->mode_config = 0x3; // intensity compensate whole frame
+ } else {
+ ctx->mode_config = 0;
+ }
+ }
+ } else if (PIC_TYPE_IS_INTRA(pic_params->picture_fields.bits.picture_type)) {
+ ctx->mode_config = 0;
+ }
+
+ /*
+ 10.3.8 Intensity Compensation:
+ If intensity compensation is performed on a reference field, then after decoding the field,
+ the post-compensated pixel values shall be retained and shall be used when decoding the next
+ field. If the next field indicates that the field that was intensity compensated by the
+ previous field is to have intensity compensation performed again then the post-compensated
+ field shall be used. Therefore, when a reference field has intensity compensation performed
+ twice, the result of the first intensity compensation operation shall be used as input
+ for the second intensity compensation.
+ */
+ /*
+ Don't forget point 9.1.1.4 in VC1 Spec:
+
+ If the current frame, coded as two interlace field pictures, contains at least one P or B
+ field, and if this P or B field uses one or both field in another frame as a reference, where
+ the reference frame was also coded as a interlace field pictue, then the TFF of the current
+ frame and reference frame shall be the same.
+ */
+ if ((pic_params->picture_fields.bits.picture_type == WMF_PTYPE_P) && (pic_params->picture_fields.bits.frame_coding_mode == VC1_FCM_FLDI)) {
+ if (pic_params->picture_fields.bits.top_field_first) { // top field first
+ if (!pic_params->picture_fields.bits.is_first_field) { // this is the second field picture (and bottom)
+ if (ctx->ui8IntCompField & 0x1) {
+ /* The second and bottom field picture of the current frame
+ intensity compensates the top field of the current frame. */
+ ctx->sICparams[1][0].ui8LumaScale1 = ui8LumaScale1;
+ ctx->sICparams[1][0].ui8LumaShift1 = ui8LumaShift1;
+ ctx->sICparams[1][0].ui8IC1 = 1;
+ }
+ if (ctx->ui8IntCompField & 0x2) {
+ /* The second and bottom field picture of the current frame
+ intensity compensates the bottom field of the previous frame. */
+ ctx->sICparams[0][1].ui8LumaScale2 = ui8LumaScale2;
+ ctx->sICparams[0][1].ui8LumaShift2 = ui8LumaShift2;
+ ctx->sICparams[0][1].ui8IC2 = 2;
+ }
+ } else { // first field picture (and top)
+ if (ctx->ui8IntCompField & 0x1) {
+ /* The first and top field picture of the current frame
+ intensity compensates the top field of the previous frame. */
+ ctx->sICparams[0][0].ui8LumaScale2 = ui8LumaScale1;
+ ctx->sICparams[0][0].ui8LumaShift2 = ui8LumaShift1;
+ ctx->sICparams[0][0].ui8IC2 = 1;
+ }
+ if (ctx->ui8IntCompField & 0x2) {
+ /* The first and top field picture of the current frame
+ intensity compensates the bottom field of the previous frame. */
+ ctx->sICparams[0][1].ui8LumaScale1 = ui8LumaScale2;
+ ctx->sICparams[0][1].ui8LumaShift1 = ui8LumaShift2;
+ ctx->sICparams[0][1].ui8IC1 = 2;
+ }
+ }
+ } else { // bottom field first
+ if (!pic_params->picture_fields.bits.is_first_field) { // this is the second field picture (and top)
+ if (ctx->ui8IntCompField & 0x2) {
+ /* The second and top field picture of the current frame
+ intensity compensates the bottom field of the current frame. */
+ ctx->sICparams[1][1].ui8LumaScale1 = ui8LumaScale2;
+ ctx->sICparams[1][1].ui8LumaShift1 = ui8LumaShift2;
+ ctx->sICparams[1][1].ui8IC1 = 2;
+ }
+ if (ctx->ui8IntCompField & 0x1) {
+ /* The second and top field picture of the current frame
+ intensity compensates the top field of the previous frame. */
+ ctx->sICparams[0][0].ui8LumaScale2 = ui8LumaScale1;
+ ctx->sICparams[0][0].ui8LumaShift2 = ui8LumaShift1;
+ ctx->sICparams[0][0].ui8IC2 = 1;
+ }
+ } else { // first field picture (and bottom)
+ if (ctx->ui8IntCompField & 0x1) {
+ /* The first and bottom field picture of the current frame
+ intensity compensates the top field of the previous frame. */
+ ctx->sICparams[0][0].ui8LumaScale1 = ui8LumaScale1;
+ ctx->sICparams[0][0].ui8LumaShift1 = ui8LumaShift1;
+ ctx->sICparams[0][0].ui8IC1 = 1;
+ }
+ if (ctx->ui8IntCompField & 0x2) {
+ /* The first and bottom field picture of the current frame
+ intensity compensates the bottom field of the previous frame. */
+ ctx->sICparams[0][1].ui8LumaScale2 = ui8LumaScale2;
+ ctx->sICparams[0][1].ui8LumaShift2 = ui8LumaShift2;
+ ctx->sICparams[0][1].ui8IC2 = 2;
+ }
+ }
+ }
+ }
+ /************************************************************************************/
+
+ /********************************* RANGE REDUCTION **********************************/
+ /* Determine the difference between the range reduction of current and reference picture */
+ if (ctx->profile == WMF_PROFILE_MAIN) {
+ /* Range Reduction is only enabled for Main Profile */
+ /* The RANGEREDFRM values from the reference pictures are;
+ psVLDContext->bRef0RangeRed
+ psVLDContext->bRef1RangeRed */
+
+ switch (pic_params->picture_fields.bits.picture_type) {
+ case WMF_PTYPE_I:
+ case WMF_PTYPE_BI:
+ /* no reference picture scaling */
+ break;
+
+ case WMF_PTYPE_P: /* P picture */
+ /*
+ 8.3.4.11 also need to scale the previously reconstructed anchor frame prior to using it for MC if:
+ - RANGEREDFRM == 1 and ref RANGEREDFRM flag is not signalled scale down previous reconstructed frame.
+ - RANGEREDFRM == 0 and ref RANGEREDFRM flag is set scale up previous reconstructed frame.
+ */
+ if (ctx->pic_params->range_reduction_frame && !ctx->bRef0RangeRed) {
+ ctx->mode_config |= (0x1 << 2); // scale down previous reconstructed frame
+ } else if (!ctx->pic_params->range_reduction_frame && ctx->bRef0RangeRed) {
+ ctx->mode_config |= (0x2 << 2); // scale up previous reconstructed frame
+ } else { /* neither or both are set */
+ ctx->mode_config |= (0x0 << 2); // no scaling of reference
+ }
+ break;
+
+ case WMF_PTYPE_B: /* B picture */
+ /*
+ 8.4.4.14 RANGEREDFRM shall be the same as for the temporally subsequent anchor frame (display order)
+ If this is set then the current decoded frame shall be scalled up similar to P frame.
+ Scaling for the temporally (display order) preceeding frame will be applied as for P frames
+ */
+ if (ctx->bRef0RangeRed && !ctx->bRef1RangeRed) {
+ ctx->mode_config |= (0x1 << 2);
+ } else if (!ctx->bRef0RangeRed && ctx->bRef1RangeRed) {
+ ctx->mode_config |= (0x2 << 2);
+ } else { /* neither or both are set */
+ ctx->mode_config |= (0x0 << 2); // no scaling of reference
+ }
+ break;
+
+ default:
+ break;
+ }
+ } else {
+ ctx->mode_config |= (0x0 << 2);
+ }
+ /************************************************************************************/
+
+ /********************************** Slice structure *********************************/
+ if (VC1_FCM_FLDI == pic_params->picture_fields.bits.frame_coding_mode) {
+ if ((pic_params->picture_fields.bits.top_field_first && pic_params->picture_fields.bits.is_first_field) ||
+ (!pic_params->picture_fields.bits.top_field_first && !pic_params->picture_fields.bits.is_first_field)) {
+ // Top field
+ ctx->slice_field_type = 0;
+ ctx->bottom_field = 0;
+ } else {
+ // Bottom field
+ ctx->slice_field_type = 1;
+ ctx->bottom_field = 1;
+ }
+ } else {
+ // progressive or interlaced frame
+ ctx->slice_field_type = 2;
+ ctx->bottom_field = 1;
+ }
+ /************************************************************************************/
+
+ /************************* FCM for the reference pictures ***************************/
+ ctx->ui8FCM_Ref0Pic = ctx->pic_params->picture_fields.bits.frame_coding_mode;
+ ctx->ui8FCM_Ref1Pic = ctx->pic_params->picture_fields.bits.frame_coding_mode;
+ if (ctx->obj_context->frame_count == 0)
+ ctx->ui8FCM_Ref2Pic = ctx->pic_params->picture_fields.bits.frame_coding_mode;
+
+ if (PIC_TYPE_IS_REF(pic_params->picture_fields.bits.picture_type) ||
+ ((pic_params->picture_fields.bits.picture_type == WMF_PTYPE_B) && /* The second B field picture in an */
+ (ctx->pic_params->picture_fields.bits.frame_coding_mode == VC1_FCM_FLDI) && /* interlaced field coded frame shall */
+ !pic_params->picture_fields.bits.is_first_field)) { /* reference the first field picture. */
+ if (ctx->pic_params->picture_fields.bits.frame_coding_mode == VC1_FCM_FLDI && !pic_params->picture_fields.bits.is_first_field) {
+ /* The current picture is the second field of the frame, then the previous field picture
+ is in the same frame. Therefore the FCM of the first field is the same as the FCM of the
+ current field and the first field will be reference 0. */
+ ctx->ui8FCM_Ref0Pic = ctx->pic_params->picture_fields.bits.frame_coding_mode;
+ } else if (ctx->pic_params->picture_fields.bits.frame_coding_mode == VC1_FCM_FLDI && pic_params->picture_fields.bits.is_first_field) {
+ /* The current picture is the first field of the frame, then the previous field picture
+ is in a different frame and will be reference 1. */
+ ctx->ui8FCM_Ref1Pic = ctx->ui8FCM_Ref2Pic;
+ } else { // progresive or interlaced frame picture
+ ctx->ui8FCM_Ref1Pic = ctx->ui8FCM_Ref2Pic;
+ }
+ }
+ /************************************************************************************/
+
+ /************************* TFF for the reference pictures ***************************/
+ if (ctx->obj_context->frame_count == 0) {
+ ctx->bTFF_FwRefFrm = pic_params->picture_fields.bits.top_field_first;
+ ctx->bTFF_BwRefFrm = pic_params->picture_fields.bits.top_field_first;
+ }
+ if (PIC_TYPE_IS_REF(pic_params->picture_fields.bits.picture_type) &&
+ ((ctx->pic_params->picture_fields.bits.frame_coding_mode != VC1_FCM_FLDI) ||
+ pic_params->picture_fields.bits.is_first_field)) {
+ ctx->bTFF_FwRefFrm = ctx->bTFF_BwRefFrm;
+ }
+ /************************************************************************************/
+
+ return VA_STATUS_SUCCESS;
+}
+
+static VAStatus psb__VC1_process_bitplane(context_VC1_p ctx, object_buffer_p obj_buffer)
+{
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ ASSERT(obj_buffer->type == VABitPlaneBufferType);
+ ASSERT(ctx->pic_params);
+
+ if ((NULL == obj_buffer->psb_buffer) ||
+ (0 == obj_buffer->size)) {
+ /* We need to have data in the bitplane buffer */
+ vaStatus = VA_STATUS_ERROR_UNKNOWN;
+ return vaStatus;
+ }
+
+ ctx->bitplane_buffer = obj_buffer->psb_buffer;
+ ctx->has_bitplane = TRUE;
+ return vaStatus;
+}
+
+/*
+ * Adds a VASliceParameterBuffer to the list of slice params
+ */
+static VAStatus psb__VC1_add_slice_param(context_VC1_p ctx, object_buffer_p obj_buffer)
+{
+ ASSERT(obj_buffer->type == VASliceParameterBufferType);
+ if (ctx->slice_param_list_idx >= ctx->slice_param_list_size) {
+ void *new_list;
+ ctx->slice_param_list_size += 8;
+ new_list = realloc(ctx->slice_param_list,
+ sizeof(object_buffer_p) * ctx->slice_param_list_size);
+ if (NULL == new_list) {
+ return VA_STATUS_ERROR_ALLOCATION_FAILED;
+ }
+ ctx->slice_param_list = (object_buffer_p*) new_list;
+ }
+ ctx->slice_param_list[ctx->slice_param_list_idx] = obj_buffer;
+ ctx->slice_param_list_idx++;
+ return VA_STATUS_SUCCESS;
+}
+
+
+/*
+ * This function extracts the information about a given table from the index of VLC tables.
+ */
+static void psb__VC1_extract_table_info(context_VC1_p ctx, sTableData *psInfo, int idx)
+{
+ IMG_UINT32 tmp;
+
+ if (idx >= VLC_INDEX_TABLE_SIZE)
+ idx = VLC_INDEX_TABLE_SIZE - 1;
+
+ tmp = ctx->vlc_packed_index_table[idx];
+ psInfo->aui16StartLocation = (IMG_UINT16)(tmp & 0xffff);
+ psInfo->aui16VLCTableLength = (IMG_UINT16)((tmp >> 16) & 0x1ff);
+ psInfo->aui16InitialWidth = (IMG_UINT16)((tmp >> 25) & 0x7);
+ psInfo->aui16InitialOpcode = (IMG_UINT16)((tmp >> 28) & 0x3);
+}
+
+/*
+ * This function selects the VLD tables from the picture layer parameters.
+ */
+static void psb__VC1_write_VLC_tables(context_VC1_p ctx)
+{
+ VAPictureParameterBufferVC1 *pic_params = ctx->pic_params;
+ IMG_UINT16 ui16Table = 0, ui16IntraTable = 0, ui16InterTable = 0, aui16Table[3];
+ IMG_UINT32 i, ui32TableNum = 0;
+
+ /* select the required table from the n different types
+ A - vc1DEC_I_Picture_CBPCY_VLC (1) ¬
+ B - vc1DEC_P_Picture_CBPCY_VLC_N (4) |
+ C - vc1DEC_Interlaced_CBPCY_N (8) |
+ D - vc1DEC_FourMV_Pattern_N (4) |
+ E - vc1DEC_INTERLACE_2_MVP_Pattern_N (4) |
+ F - vc1DEC_Mot_Vector_Diff_VLC_N (4) | MB Layer
+ G - vc1DEC_One_Field_Ref_Ilace_MV_N (4) |
+ H - vc1DEC_Two_Field_Ref_Ilace_MV_N (8) |
+ I - vc1DEC_Mixed_MV_MB_N (8) |
+ J - vc1DEC_One_MV_MB_N (8) |
+ K - vc1DEC_INTERLACE_4MV_MB_N (4) |
+ L - vc1DEC_INTERLACE_Non_4MV_MB_N (4) |
+ M - vc1DEC_X_Rate_TTMB (3) -
+ N - vc1DEC_X_Rate_TTBLK (3) ¬
+ O - vc1DEC_X_Rate_SUBBLKPAT (3) |
+ P - vc1DEC_X_X_Inter_VLC (4) | Block Layer
+ Q - vc1DEC_X_X_Intra_VLC (4) |
+ R - vc1DEC_X_Mot_Luminance_DC_Diff_VLC (2) |
+ S - vc1DEC_X_Mot_Chroma_DC_Diff_VLC (2) -
+
+ X - vc1DEC_Code_3x2_2x3_tiles (1) NOT USED */
+
+ /*!
+ ***********************************************************************************
+ @ Table A,B,C VLC CBPCY Tables
+
+ [VC1] 7.1.3.1 Coded Block Pattern (CBPCY) (Variable size)[I, P,B]
+
+ CBPCY is a variable-sized syntax element that shall be present in all
+ I and BI picture macroblocks, and may be present in P and B picture
+ macroblocks. In P and B pictures, CBPCY shall be decoded using
+ the VLC table specified by the CBPTAB syntax element as described in
+ section 7.1.1.39. The CBP tables for P and B pictures are listed in
+ section 11.6.
+
+
+ [VC1] 9.1.3.2 Coded Block Pattern (CBPCY) (Variable size)[I, P,B]
+
+ Table 102: ICBPTAB code-table
+
+ A vc1DEC_I_Picture_CBPCY_VLC (1)
+ B vc1DEC_P_Picture_CBPCY_VLC_N (4)
+ C vc1DEC_Interlaced_CBPCY_N (8)
+
+ ***********************************************************************************/
+
+ if ((!pic_params->sequence_fields.bits.interlace) || (pic_params->picture_fields.bits.frame_coding_mode == VC1_FCM_P)) {
+ if (PIC_TYPE_IS_INTRA(pic_params->picture_fields.bits.picture_type)) {
+ ui16Table = VC1_VLC_I_Picture_CBPCY_VLC;
+ } else if (PIC_TYPE_IS_INTER(pic_params->picture_fields.bits.picture_type)) {
+ psb__bounds_check(pic_params->cbp_table, 4);
+ ui16Table = CBPCYTableProg[pic_params->cbp_table];
+ }
+ } else { /* Interlaced */
+ if (PIC_TYPE_IS_INTRA(pic_params->picture_fields.bits.picture_type)) {
+ ui16Table = VC1_VLC_I_Picture_CBPCY_VLC;
+ } else {
+ psb__bounds_check(pic_params->cbp_table, 8);
+ ui16Table = CBPCYTableInterlaced[pic_params->cbp_table]; /* LUT */
+ }
+ }
+
+ psb__VC1_extract_table_info(ctx, &ctx->sTableInfo[ui32TableNum], ui16Table);
+ ui32TableNum++;
+
+ /*!
+ ************************************************************
+ @ Table D VLC 4MV Pattern
+
+ [VC1] Table 104: 4MVBP code-table
+
+ Tables 116-119
+
+ D vc1DEC_FourMV_Pattern_N (4)
+ ************************************************************/
+ psb__bounds_check(pic_params->mv_fields.bits.four_mv_block_pattern_table, 4);
+ ui16Table = FourMVTable[pic_params->mv_fields.bits.four_mv_block_pattern_table];
+
+ psb__VC1_extract_table_info(ctx, &ctx->sTableInfo[ui32TableNum], ui16Table);
+ ui32TableNum++;
+
+ /*!
+ ************************************************************************************
+ @ Table E VLC 2MVBP Tables
+
+
+ Table 103: 2MVBP code-table
+
+ for Tables 120-123
+
+ E vc1DEC_INTERLACE_2_MVP_Pattern_N (4)
+ ***********************************************************************************/
+ psb__bounds_check(pic_params->mv_fields.bits.two_mv_block_pattern_table, 4);
+ ui16Table = Interlace2MVTable[pic_params->mv_fields.bits.two_mv_block_pattern_table];
+
+ psb__VC1_extract_table_info(ctx, &ctx->sTableInfo[ui32TableNum], ui16Table);
+ ui32TableNum++;
+
+ /*!
+ ************************************************************************************
+ @ Table F,G,H VLC MV Tables
+
+ [VC1] MVDATA Variable size vlclbf 7.1.3.8
+
+ 7.1.3.8 Motion Vector Data (MVDATA)(Variable size)[P]
+
+ MVDATA is a variable sized syntax element that may be present in P picture
+ macroblocks. This syntax element decodes to the motion vector(s) for the
+ macroblock. The table used to decode this syntax element is specified by the
+ MVTAB syntax element in the picture layer as specified in section 7.1.1.38.
+
+ F vc1DEC_Mot_Vector_Diff_VLC_N (4)
+
+ [VC1] 9.1.1.34 INTERLACE Motion Vector Table (IMVTAB) (2 or 3 bits)
+
+ Table 100: IMVTAB code-table for P INTERLACE field picture with NUMREF = 0,
+ and for P/B INTERLACE frame pictures
+
+ IMVTAB Motion Vector Table
+ 00 1-Reference Table 0
+ 01 1-Reference Table 1
+ 10 1-Reference Table 2
+ 11 1-Reference Table 3
+
+ Table 101: IMVTAB code-table for P INTERLACE field pictures with NUMREF = 1,
+ and for B INTERLACE field pictures
+
+ IMVTAB Motion Vector Table
+ 000 2-Reference Table 0
+ 001 2-Reference Table 1
+ 010 2-Reference Table 2
+ 011 2-Reference Table 3
+ 100 2-Reference Table 4
+ 101 2-Reference Table 5
+ 110 2-Reference Table 6
+ 111 2-Reference Table 7
+
+ G vc1DEC_One_Field_Ref_Ilace_MV_N (4)
+ H vc1DEC_Two_Field_Ref_Ilace_MV_N (8)
+
+ ***********************************************************************************/
+ if ((!pic_params->sequence_fields.bits.interlace) || (pic_params->picture_fields.bits.frame_coding_mode == VC1_FCM_P)) {
+ psb__bounds_check(pic_params->mv_fields.bits.mv_table, 4);
+ ui16Table = ProgressiveMVTable[pic_params->mv_fields.bits.mv_table];
+ } else {
+ if (
+ (
+ PIC_TYPE_IS_INTER(pic_params->picture_fields.bits.picture_type) &&
+ (pic_params->picture_fields.bits.frame_coding_mode == VC1_FCM_FRMI)
+ )
+ ||
+ (
+ (pic_params->picture_fields.bits.picture_type == WMF_PTYPE_P) &&
+ (pic_params->picture_fields.bits.frame_coding_mode == VC1_FCM_FLDI) &&
+ (pic_params->reference_fields.bits.num_reference_pictures == 0)
+ )
+ ) {
+ /* One field */
+ psb__bounds_check(pic_params->mv_fields.bits.mv_table, 4);
+ ui16Table = Interlaced1RefMVTable[pic_params->mv_fields.bits.mv_table];
+ } else { /*if (((FCM == VC1_FCM_FLDI) && (NUMREF == 0) && (PTYPE == WMF_PTYPE_P)) || ((PTYPE == WMF_PTYPE_B) && (FCM == VC1_FCM_FLDI))) */
+ /* two field */
+ psb__bounds_check(pic_params->mv_fields.bits.mv_table, 8);
+ ui16Table = MVTable2RefIlace[pic_params->mv_fields.bits.mv_table]; /* LUT */
+ }
+ }
+
+ psb__VC1_extract_table_info(ctx, &ctx->sTableInfo[ui32TableNum], ui16Table);
+ ui32TableNum++;
+
+ /*!
+ ************************************************************************************
+ @ Table I,J,K,L VLC MBMODE Tables
+
+ I vc1DEC_Mixed_MV_MB_N (8)
+ J vc1DEC_One_MV_MB_N (8)
+ K vc1DEC_INTERLACE_4MV_MB_N (4)
+ L vc1DEC_INTERLACE_Non_4MV_MB_N (4)
+ ***********************************************************************************/
+ ui16Table = 0;
+ if (pic_params->sequence_fields.bits.interlace && (pic_params->picture_fields.bits.frame_coding_mode > VC1_FCM_P)) {
+ if (PIC_TYPE_IS_INTER(pic_params->picture_fields.bits.picture_type)) {
+ if (pic_params->picture_fields.bits.frame_coding_mode == VC1_FCM_FLDI) {
+ psb__bounds_check(pic_params->mb_mode_table, 8);
+ /* 9.1.1.33 use MBMODETAB and MVMODE to select field interlaced tables */
+ ui16Table = MBMODETableFLDI[pic_params->mb_mode_table][(pic_params->mv_fields.bits.mv_mode == WMF_MVMODE_MIXED_MV) ? 1 : 0];
+ } else if (pic_params->picture_fields.bits.frame_coding_mode == VC1_FCM_FRMI) {
+ psb__bounds_check(pic_params->mb_mode_table, 4);
+ /* 9.1.1.33 use MBMODETAB and MV4SWITCH to select frame interlaced tables */
+ ui16Table = MBMODETableFRMI[pic_params->mb_mode_table][(pic_params->mv_fields.bits.four_mv_switch) ? 0 : 1];
+ }
+ }
+ }
+
+ psb__VC1_extract_table_info(ctx, &ctx->sTableInfo[ui32TableNum], ui16Table);
+ ui32TableNum++;
+
+ /*!
+ ************************************************************************************
+ @ Table M,N,O VLC PQUANT Tables
+
+ [WMV9] 3.2.2.10 MB-level Transform Type (TTMB)(Variable size)[P,B]
+ [WMV9] 3.2.3.15 Block-level Transform Type (TTBLK)(Variable size)[inter]
+
+ [WMV9] 3.2.3.16 Transform sub-block pattern (SUBBLKPAT)(Variable size)[inter]
+
+ M vc1DEC_X_Rate_TTMB (3)
+ N vc1DEC_X_Rate_TTBLK (3)
+ O vc1DEC_X_Rate_SUBBLKPAT (3)
+
+ TTBLK and TTMB P and B Pictures only
+
+ ***********************************************************************************/
+ aui16Table[0] = 0;
+ aui16Table[1] = 0;
+ aui16Table[2] = 0;
+
+ if (pic_params->pic_quantizer_fields.bits.pic_quantizer_scale <= 4) { /* high rate */
+ aui16Table[2] = VC1_VLC_High_Rate_SUBBLKPAT;
+ aui16Table[1] = VC1_VLC_High_Rate_TTBLK;
+ aui16Table[0] = VC1_VLC_High_Rate_TTMB;
+ } else if (pic_params->pic_quantizer_fields.bits.pic_quantizer_scale <= 12) { /* med rate */
+ aui16Table[2] = VC1_VLC_Medium_Rate_SUBBLKPAT;
+ aui16Table[1] = VC1_VLC_Medium_Rate_TTBLK;
+ aui16Table[0] = VC1_VLC_Medium_Rate_TTMB;
+ } else { /* low rate */
+ aui16Table[2] = VC1_VLC_Low_Rate_SUBBLKPAT;
+ aui16Table[1] = VC1_VLC_Low_Rate_TTBLK;
+ aui16Table[0] = VC1_VLC_Low_Rate_TTMB;
+ }
+
+ for (i = ui32TableNum; i < ui32TableNum + 3; i++) {
+ psb__VC1_extract_table_info(ctx, &ctx->sTableInfo[i], aui16Table[i-ui32TableNum]);
+ }
+
+ ui32TableNum = ui32TableNum + 3;
+
+ {
+ /*!
+ ***********************************************************************************************
+ Inter Coded Blocks
+
+ Table 54: Index/Coding Set Correspondence for PQINDEX <= 7
+ Y, Cb and Cr blocks
+
+ Index Table
+ 0 High Rate Inter
+ 1 High Motion Inter
+ 2 Mid Rate Inter
+
+ Table 55: Index/Coding Set Correspondence for PQINDEX > 7
+ Y, Cb and Cr blocks
+
+ Index Table
+ 0 Low Motion Inter
+ 1 High Motion Inter
+ 2 Mid Rate Inter
+
+ ----------------------------------------------------------------------------------
+ Intra Blocks
+
+ 8 AC Coeff Coding Sets:
+ 4 x INTRA, 4 x INTER
+
+ Y use Intra, CrCb use Inter
+
+ Table 38: Coding Set Correspondence for PQINDEX <= 7
+
+ Y blocks Cb and Cr blocks
+ Index Table Index Table
+ 0 High Rate Intra 0 High Rate Inter
+ 1 High Motion Intra 1 High Motion Inter
+ 2 Mid Rate Intra 2 Mid Rate Inter
+
+ Table 39: Coding Set Correspondence for PQINDEX > 7
+
+ Y blocks Cb and Cr blocks
+ Index Table Index Table
+ 0 Low Motion Intra 0 Low Motion Inter
+ 1 High Motion Intra 1 High Motion Inter
+ 2 Mid Rate Intra 2 Mid Rate Inter
+
+ The value decoded from the DCTACFRM2 syntax element shall be used
+ as the coding set index for Y blocks and the value decoded from the
+ DCTACFRM syntax element shall be used as the coding set
+ index for Cb and Cr blocks.
+
+ P vc1DEC_X_X_Inter_VLC
+ Q vc1DEC_X_X_Intra_VLC
+
+
+ for I pictures TRANSACFRM specifies the Inter Coding set
+ TRANSACFRM2 specifies the Intra Coding set
+
+ for P pictures TRANSACFRM specifies Inter and Intra Coding set
+
+
+ ***************************************************************************************************/
+ IMG_UINT32 ui32IntraCodingSetIndex = PIC_TYPE_IS_INTRA(pic_params->picture_fields.bits.picture_type)
+ ? pic_params->transform_fields.bits.transform_ac_codingset_idx2
+ : pic_params->transform_fields.bits.transform_ac_codingset_idx1;
+
+ IMG_UINT32 ui32InterCodingSetIndex = pic_params->transform_fields.bits.transform_ac_codingset_idx1;
+
+ /* For PQINDEX < 9 the uniform quantizer should be used, as indicated by PQUANTIZER == 1 */
+ if (!ctx->pqindex_gt8) {
+ ui16IntraTable = IntraTablePQIndexLT9[ui32IntraCodingSetIndex];
+ ui16InterTable = InterTablePQIndexLT9[ui32InterCodingSetIndex];
+ } else {
+ ui16IntraTable = IntraTablePQIndexGT8[ui32IntraCodingSetIndex];
+ ui16InterTable = InterTablePQIndexGT8[ui32InterCodingSetIndex];
+ }
+
+ psb__VC1_extract_table_info(ctx, &ctx->sTableInfo[ui32TableNum], ui16IntraTable);
+ ui32TableNum++;
+
+ psb__VC1_extract_table_info(ctx, &ctx->sTableInfo[ui32TableNum], ui16InterTable);
+ ui32TableNum++;
+ }
+
+ /*!
+ ************************************************************************************
+ @ Table R & S VLC TRANSDCTAB Tables
+
+ R vc1DEC_X_Mot_Luminance_DC_Diff_VLC (2)
+ S vc1DEC_X_Mot_Chroma_DC_Diff_VLC (2)
+
+ [VC1] 8.1.1.2 Intra Transform DC Table
+ TRANSDCTAB is a one-bit syntax element that shall specify which of two
+ tables is used to decode the Transform DC coefficients in intra-coded blocks.
+ If TRANSDCTAB = 0, then the low motion table of Section 11.7 shall be used.
+ If TRANSDCTAB = 1, then the high motion table of Section 11.7 shall be used.
+
+ [VC1] 8.1.1.2 Intra Transform DC Table
+ TRANSDCTAB is a one-bit syntax element that shall specify which of two
+ tables is used to decode the Transform DC coefficients in intra-coded blocks.
+ If TRANSDCTAB = 0, then the low motion table of Section 11.7 shall be used.
+ If TRANSDCTAB = 1, then the high motion table of Section 11.7 shall be used.
+
+ ***********************************************************************************/
+ if (pic_params->transform_fields.bits.intra_transform_dc_table == 0) {
+ /* low motion */
+
+ /* VC1_VLC_Low_Mot_Luminance_DC_Diff_VLC */
+ ui16IntraTable = VC1_VLC_Low_Mot_Luminance_DC_Diff_VLC;
+
+ /* VC1_VLC_Low_Mot_Chroma_DC_Diff_VLC */
+ ui16InterTable = VC1_VLC_Low_Mot_Chroma_DC_Diff_VLC;
+ } else { /* TRANSDCTAB == 1 */
+ /* high motion */
+ /* VC1_VLC_High_Mot_Luminance_DC_Diff_VLC */
+ ui16IntraTable = VC1_VLC_High_Mot_Luminance_DC_Diff_VLC;
+
+ /* VC1_VLC_High_Mot_Chroma_DC_Diff_VLC */
+ ui16InterTable = VC1_VLC_High_Mot_Chroma_DC_Diff_VLC;
+ }
+
+ psb__VC1_extract_table_info(ctx, &ctx->sTableInfo[ui32TableNum], ui16IntraTable);
+ ui32TableNum++;
+
+ psb__VC1_extract_table_info(ctx, &ctx->sTableInfo[ui32TableNum], ui16InterTable);
+ ui32TableNum++;
+
+ /* at the end determine how many tables have been chosen
+ this should be constant and equal 12 */
+ ctx->ui32NumTables = ui32TableNum;
+ ASSERT(ctx->ui32NumTables == 12);
+}
+
+static void psb__VC1_build_VLC_tables(context_VC1_p ctx)
+{
+ psb_cmdbuf_p cmdbuf = ctx->obj_context->cmdbuf;
+ int i;
+ uint16_t RAM_location = 0;
+ uint32_t reg_value;
+
+ for (i = 0; i < ctx->ui32NumTables; i++) {
+ if (RAM_location & 0x03) {
+ /* Align */
+ RAM_location += 4 - (RAM_location & 0x03);
+ }
+ ctx->sTableInfo[i].aui16RAMLocation = RAM_location;
+
+ /* VLC Table */
+ /* Write a LLDMA Cmd to transfer VLD Table data */
+
+ psb_cmdbuf_lldma_write_cmdbuf(cmdbuf, &ctx->vlc_packed_table,
+ ctx->sTableInfo[i].aui16StartLocation * sizeof(IMG_UINT16), /* origin */
+ ctx->sTableInfo[i].aui16VLCTableLength * sizeof(IMG_UINT16), /* size */
+ RAM_location * sizeof(IMG_UINT32), /* destination */
+ LLDMA_TYPE_VLC_TABLE);
+ psb__information_message("table[%02d] start_loc = %08x RAM_location = %08x | %08x\n", i, ctx->sTableInfo[i].aui16StartLocation * sizeof(IMG_UINT16), RAM_location, RAM_location * sizeof(IMG_UINT32));
+ RAM_location += ctx->sTableInfo[i].aui16VLCTableLength;
+ }
+
+ /* Write the vec registers with the index data for each of the tables */
+ psb_cmdbuf_reg_start_block(cmdbuf);
+
+ reg_value = 0;
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR0, VLC_TABLE_ADDR0, ctx->sTableInfo[0].aui16RAMLocation);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR0, VLC_TABLE_ADDR1, ctx->sTableInfo[1].aui16RAMLocation);
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR0), reg_value);
+
+ reg_value = 0;
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR1, VLC_TABLE_ADDR2, ctx->sTableInfo[2].aui16RAMLocation);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR1, VLC_TABLE_ADDR3, ctx->sTableInfo[3].aui16RAMLocation);
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR1), reg_value);
+
+ reg_value = 0;
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR2, VLC_TABLE_ADDR4, ctx->sTableInfo[4].aui16RAMLocation);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR2, VLC_TABLE_ADDR5, ctx->sTableInfo[5].aui16RAMLocation);
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR2), reg_value);
+
+ reg_value = 0;
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR3, VLC_TABLE_ADDR6, ctx->sTableInfo[6].aui16RAMLocation);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR3, VLC_TABLE_ADDR7, ctx->sTableInfo[7].aui16RAMLocation);
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR3), reg_value);
+
+ reg_value = 0;
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR4, VLC_TABLE_ADDR8, ctx->sTableInfo[8].aui16RAMLocation);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR4, VLC_TABLE_ADDR9, ctx->sTableInfo[9].aui16RAMLocation);
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR4), reg_value);
+
+ reg_value = 0;
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR5, VLC_TABLE_ADDR10, ctx->sTableInfo[10].aui16RAMLocation);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR5, VLC_TABLE_ADDR11, ctx->sTableInfo[11].aui16RAMLocation);
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR5), reg_value);
+
+ reg_value = 0;
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC, CR_VEC_VLC_TABLE_INITIAL_WIDTH0, VLC_TABLE_INITIAL_WIDTH0, ctx->sTableInfo[0].aui16InitialWidth);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC, CR_VEC_VLC_TABLE_INITIAL_WIDTH0, VLC_TABLE_INITIAL_WIDTH1, ctx->sTableInfo[1].aui16InitialWidth);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC, CR_VEC_VLC_TABLE_INITIAL_WIDTH0, VLC_TABLE_INITIAL_WIDTH2, ctx->sTableInfo[2].aui16InitialWidth);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC, CR_VEC_VLC_TABLE_INITIAL_WIDTH0, VLC_TABLE_INITIAL_WIDTH3, ctx->sTableInfo[3].aui16InitialWidth);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC, CR_VEC_VLC_TABLE_INITIAL_WIDTH0, VLC_TABLE_INITIAL_WIDTH4, ctx->sTableInfo[4].aui16InitialWidth);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC, CR_VEC_VLC_TABLE_INITIAL_WIDTH0, VLC_TABLE_INITIAL_WIDTH5, ctx->sTableInfo[5].aui16InitialWidth);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC, CR_VEC_VLC_TABLE_INITIAL_WIDTH0, VLC_TABLE_INITIAL_WIDTH6, ctx->sTableInfo[6].aui16InitialWidth);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC, CR_VEC_VLC_TABLE_INITIAL_WIDTH0, VLC_TABLE_INITIAL_WIDTH7, ctx->sTableInfo[7].aui16InitialWidth);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC, CR_VEC_VLC_TABLE_INITIAL_WIDTH0, VLC_TABLE_INITIAL_WIDTH8, ctx->sTableInfo[8].aui16InitialWidth);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC, CR_VEC_VLC_TABLE_INITIAL_WIDTH0, VLC_TABLE_INITIAL_WIDTH9, ctx->sTableInfo[9].aui16InitialWidth);
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_INITIAL_WIDTH0), reg_value);
+
+ reg_value = 0;
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC, CR_VEC_VLC_TABLE_INITIAL_WIDTH1, VLC_TABLE_INITIAL_WIDTH10, ctx->sTableInfo[10].aui16InitialWidth);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC, CR_VEC_VLC_TABLE_INITIAL_WIDTH1, VLC_TABLE_INITIAL_WIDTH11, ctx->sTableInfo[11].aui16InitialWidth);
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_INITIAL_WIDTH1), reg_value);
+
+ reg_value = 0;
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC, CR_VEC_VLC_TABLE_INITIAL_OPCODE0, VLC_TABLE_INITIAL_OPCODE0, ctx->sTableInfo[0].aui16InitialOpcode);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC, CR_VEC_VLC_TABLE_INITIAL_OPCODE0, VLC_TABLE_INITIAL_OPCODE1, ctx->sTableInfo[1].aui16InitialOpcode);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC, CR_VEC_VLC_TABLE_INITIAL_OPCODE0, VLC_TABLE_INITIAL_OPCODE2, ctx->sTableInfo[2].aui16InitialOpcode);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC, CR_VEC_VLC_TABLE_INITIAL_OPCODE0, VLC_TABLE_INITIAL_OPCODE3, ctx->sTableInfo[3].aui16InitialOpcode);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC, CR_VEC_VLC_TABLE_INITIAL_OPCODE0, VLC_TABLE_INITIAL_OPCODE4, ctx->sTableInfo[4].aui16InitialOpcode);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC, CR_VEC_VLC_TABLE_INITIAL_OPCODE0, VLC_TABLE_INITIAL_OPCODE5, ctx->sTableInfo[5].aui16InitialOpcode);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC, CR_VEC_VLC_TABLE_INITIAL_OPCODE0, VLC_TABLE_INITIAL_OPCODE6, ctx->sTableInfo[6].aui16InitialOpcode);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC, CR_VEC_VLC_TABLE_INITIAL_OPCODE0, VLC_TABLE_INITIAL_OPCODE7, ctx->sTableInfo[7].aui16InitialOpcode);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC, CR_VEC_VLC_TABLE_INITIAL_OPCODE0, VLC_TABLE_INITIAL_OPCODE8, ctx->sTableInfo[8].aui16InitialOpcode);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC, CR_VEC_VLC_TABLE_INITIAL_OPCODE0, VLC_TABLE_INITIAL_OPCODE9, ctx->sTableInfo[9].aui16InitialOpcode);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC, CR_VEC_VLC_TABLE_INITIAL_OPCODE0, VLC_TABLE_INITIAL_OPCODE10, ctx->sTableInfo[10].aui16InitialOpcode);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC, CR_VEC_VLC_TABLE_INITIAL_OPCODE0, VLC_TABLE_INITIAL_OPCODE11, ctx->sTableInfo[11].aui16InitialOpcode);
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_INITIAL_OPCODE0), reg_value);
+
+ psb_cmdbuf_reg_end_block(cmdbuf);
+}
+
+
+static void psb__VC1_write_kick(context_VC1_p ctx, VASliceParameterBufferVC1 *slice_param)
+{
+ psb_cmdbuf_p cmdbuf = ctx->obj_context->cmdbuf;
+
+ (void) slice_param; /* Unused for now */
+
+ *cmdbuf->cmd_idx++ = CMD_COMPLETION;
+}
+
+/* Programme the Alt output if there is a rotation*/
+static void psb__VC1_setup_alternative_frame(context_VC1_p ctx)
+{
+ uint32_t cmd;
+ psb_cmdbuf_p cmdbuf = ctx->obj_context->cmdbuf;
+ psb_surface_p rotate_surface = ctx->obj_context->current_render_target->psb_surface_rotate;
+ object_context_p obj_context = ctx->obj_context;
+
+ if (rotate_surface->extra_info[5] != obj_context->rotate)
+ psb__error_message("Display rotate mode does not match surface rotate mode!\n");
+
+
+ /* CRendecBlock RendecBlk( mCtrlAlloc , RENDEC_REGISTER_OFFSET(MSVDX_CMDS, VC1_LUMA_RANGE_MAPPING_BASE_ADDRESS) ); */
+ psb_cmdbuf_rendec_start(cmdbuf, RENDEC_REGISTER_OFFSET(MSVDX_CMDS, VC1_LUMA_RANGE_MAPPING_BASE_ADDRESS));
+
+ psb_cmdbuf_rendec_write_address(cmdbuf, &rotate_surface->buf, rotate_surface->buf.buffer_ofs);
+ psb_cmdbuf_rendec_write_address(cmdbuf, &rotate_surface->buf, rotate_surface->buf.buffer_ofs + rotate_surface->chroma_offset);
+
+ psb_cmdbuf_rendec_end(cmdbuf);
+
+ /* Set the rotation registers */
+ psb_cmdbuf_rendec_start(cmdbuf, RENDEC_REGISTER_OFFSET(MSVDX_CMDS, ALTERNATIVE_OUTPUT_PICTURE_ROTATION));
+ cmd = 0;
+ REGIO_WRITE_FIELD_LITE(cmd, MSVDX_CMDS, ALTERNATIVE_OUTPUT_PICTURE_ROTATION , ALT_PICTURE_ENABLE, 1);
+ REGIO_WRITE_FIELD_LITE(cmd, MSVDX_CMDS, ALTERNATIVE_OUTPUT_PICTURE_ROTATION , ROTATION_ROW_STRIDE, rotate_surface->stride_mode);
+ REGIO_WRITE_FIELD_LITE(cmd, MSVDX_CMDS, ALTERNATIVE_OUTPUT_PICTURE_ROTATION , RECON_WRITE_DISABLE, 0); /* FIXME Always generate Rec */
+ REGIO_WRITE_FIELD_LITE(cmd, MSVDX_CMDS, ALTERNATIVE_OUTPUT_PICTURE_ROTATION , ROTATION_MODE, rotate_surface->extra_info[5]);
+
+ psb_cmdbuf_rendec_write(cmdbuf, cmd);
+
+ psb_cmdbuf_rendec_end(cmdbuf);
+}
+
+static void psb__VC1_program_output_register(context_VC1_p ctx, IMG_BOOL first_two_pass)
+{
+ psb_cmdbuf_p cmdbuf = ctx->obj_context->cmdbuf;
+ psb_surface_p target_surface = ctx->obj_context->current_render_target->psb_surface;
+ psb_surface_p rotate_surface = ctx->obj_context->current_render_target->psb_surface_rotate;
+ object_context_p obj_context = ctx->obj_context;
+ uint32_t alt_output_flags = 0;
+ uint32_t cmd;
+ *ctx->p_range_mapping_base = 0;
+ *ctx->p_range_mapping_base1 = 0;
+ //rotate_surface = ctx->decoded_surface->psb_surface_rotate;
+
+ if ((first_two_pass == 0) && (obj_context->rotate != VA_ROTATION_NONE)) {
+ psb_cmdbuf_rendec_start(cmdbuf, RENDEC_REGISTER_OFFSET(MSVDX_CMDS, VC1_LUMA_RANGE_MAPPING_BASE_ADDRESS));
+ psb_cmdbuf_rendec_write_address(cmdbuf, &rotate_surface->buf, rotate_surface->buf.buffer_ofs);
+ psb_cmdbuf_rendec_write_address(cmdbuf, &rotate_surface->buf, rotate_surface->chroma_offset + rotate_surface->buf.buffer_ofs);
+ psb_cmdbuf_rendec_end(cmdbuf);
+
+ //target_surface = rotate_surface;
+
+ REGIO_WRITE_FIELD_LITE(alt_output_flags, MSVDX_CMDS, ALTERNATIVE_OUTPUT_PICTURE_ROTATION , ALT_PICTURE_ENABLE, 1);
+ REGIO_WRITE_FIELD_LITE(alt_output_flags, MSVDX_CMDS, ALTERNATIVE_OUTPUT_PICTURE_ROTATION , ROTATION_ROW_STRIDE, rotate_surface->stride_mode);
+ REGIO_WRITE_FIELD_LITE(alt_output_flags, MSVDX_CMDS, ALTERNATIVE_OUTPUT_PICTURE_ROTATION , RECON_WRITE_DISABLE, 0); /* FIXME Always generate Rec */
+ REGIO_WRITE_FIELD_LITE(alt_output_flags, MSVDX_CMDS, ALTERNATIVE_OUTPUT_PICTURE_ROTATION , ROTATION_MODE, rotate_surface->extra_info[5]);
+ }
+
+ psb_cmdbuf_rendec_start(cmdbuf, RENDEC_REGISTER_OFFSET(MSVDX_CMDS, ALTERNATIVE_OUTPUT_PICTURE_ROTATION));
+ psb_cmdbuf_rendec_write(cmdbuf, alt_output_flags);
+ cmd = 0;
+ REGIO_WRITE_FIELD_LITE(cmd, MSVDX_CMDS, EXTENDED_ROW_STRIDE, EXT_ROW_STRIDE, target_surface->stride / 64);
+ psb_cmdbuf_rendec_write(cmdbuf, cmd);
+ psb_cmdbuf_rendec_end(cmdbuf);
+ *ctx->alt_output_flags = alt_output_flags;
+}
+
+static void psb__VC1_send_rendec_params(context_VC1_p ctx, VASliceParameterBufferVC1 *slice_param)
+{
+ VAPictureParameterBufferVC1 *pic_params = ctx->pic_params;
+ psb_cmdbuf_p cmdbuf = ctx->obj_context->cmdbuf;
+ psb_surface_p deblock_surface = ctx->decoded_surface->psb_surface;
+ psb_surface_p target_surface = ctx->obj_context->current_render_target->psb_surface;
+ uint32_t cmd;
+ IMG_UINT32 ui32MBParamMemOffset;
+ IMG_UINT8 ui8PrevLumaScale = 0, ui8PrevLumaShift = 0;
+ IMG_UINT8 ui8BackLumaScale = 0, ui8BackLumaShift = 0;
+ IMG_UINT8 ui8PrevBotLumaShift = 0, ui8PrevBotLumaScale = 0;
+ IMG_UINT8 ui8PrevIC = 0, ui8BackIC = 0, ui8PrevBotIC = 0;
+
+ /* Align MB Parameter memory */
+ ui32MBParamMemOffset = ((pic_params->picture_fields.bits.frame_coding_mode == VC1_FCM_FLDI) && (!pic_params->picture_fields.bits.is_first_field)) ?
+ (ctx->size_mb * VC1_MB_PARAM_STRIDE) : 0;
+ ui32MBParamMemOffset += 0x00000fff;
+ ui32MBParamMemOffset &= 0xfffff000;
+
+ /****************************** INTENSITY COMPENSATION ******************************/
+ if (pic_params->picture_fields.bits.frame_coding_mode == VC1_FCM_FLDI) {
+ if (pic_params->picture_fields.bits.picture_type == WMF_PTYPE_P) {
+ if (pic_params->picture_fields.bits.top_field_first) { // top field first
+ if (!pic_params->picture_fields.bits.is_first_field) { // this is the second field picture (and bottom)
+ if (ctx->sICparams[0][1].ui8IC1 == 2) {
+ /* The first and top field picture of the current frame
+ intensity compensates the bottom field of the previous frame. */
+ ui8PrevLumaScale = ctx->sICparams[0][1].ui8LumaScale1;
+ ui8PrevLumaShift = ctx->sICparams[0][1].ui8LumaShift1;
+ ui8PrevIC = 2;
+ }
+ } else { // first field picture (and top)
+ if (ctx->sICparams[0][0].ui8IC1 == 1) {
+ /* The second and bottom field picture of the previous frame
+ intensity compensates the top field of the previous frame. */
+ ui8PrevLumaScale = ctx->sICparams[0][0].ui8LumaScale1;
+ ui8PrevLumaShift = ctx->sICparams[0][0].ui8LumaShift1;
+ ui8PrevIC = 1;
+ }
+ }
+ } else { // botom field first
+ if (!pic_params->picture_fields.bits.is_first_field) { // this is the second field picture (and top)
+ if (ctx->sICparams[0][0].ui8IC1 == 1) {
+ /* The first and bottom field picture of the current frame
+ intensity compensates the top field of the previous frame. */
+ ui8PrevLumaScale = ctx->sICparams[0][0].ui8LumaScale1;
+ ui8PrevLumaShift = ctx->sICparams[0][0].ui8LumaShift1;
+ ui8PrevIC = 1;
+ }
+ } else { // first field picture (and bottom)
+ if (ctx->sICparams[0][1].ui8IC1 == 2) {
+ /* The second and top field picture of the previous frame
+ intensity compensates the bottom field of the previous frame. */
+ ui8PrevLumaScale = ctx->sICparams[0][1].ui8LumaScale1;
+ ui8PrevLumaShift = ctx->sICparams[0][1].ui8LumaShift1;
+ ui8PrevIC = 2;
+ }
+ }
+ }
+ } else if (pic_params->picture_fields.bits.picture_type == WMF_PTYPE_B) {
+ /*
+ First frame - second temporally closest reference frame to the B frame
+ Second frame - first temporally closest reference frame to the B frame
+ */
+ if (pic_params->picture_fields.bits.top_field_first) { // top field first
+ if (ctx->sICparams[0][0].ui8IC1 == 1) {
+ /* The second and bottom field of the first reference frame intensity
+ compensates the first and top field of the first reference frame. */
+ ui8PrevLumaScale = ctx->sICparams[0][0].ui8LumaScale1;
+ ui8PrevLumaShift = ctx->sICparams[0][0].ui8LumaShift1;
+ ui8PrevIC = 1;
+ }
+ if (ctx->sICparams[0][0].ui8IC2 == 1) {
+ /* The first and top field of the second reference frame intensity
+ compensates the first and top field of the first reference frame. */
+ ui8BackLumaScale = ctx->sICparams[0][0].ui8LumaScale2;
+ ui8BackLumaShift = ctx->sICparams[0][0].ui8LumaShift2;
+ ui8BackIC = 1;
+ }
+ if (ctx->sICparams[0][1].ui8IC2 == 2) {
+ /* The first and top field of the second reference frame intensity
+ compensates the second and bottom field of the first reference frame. */
+ ui8PrevBotLumaScale = ctx->sICparams[0][1].ui8LumaScale2;
+ ui8PrevBotLumaShift = ctx->sICparams[0][1].ui8LumaShift2;
+ ui8PrevBotIC = 2;
+ }
+ } else { // botom field first
+ if (ctx->sICparams[0][1].ui8IC1 == 2) {
+ /* The second and top field of the first reference frame intensity
+ compensates the first and bottom field of the first reference frame. */
+ ui8BackLumaScale = ctx->sICparams[0][1].ui8LumaScale1;
+ ui8BackLumaShift = ctx->sICparams[0][1].ui8LumaShift1;
+ ui8BackIC = 2;
+ }
+ if (ctx->sICparams[0][1].ui8IC2 == 2) {
+ /* The first and bottom field of the second reference frame intensity
+ compensates the first and bottom field of the first reference frame. */
+ ui8PrevBotLumaScale = ctx->sICparams[0][1].ui8LumaScale2;
+ ui8PrevBotLumaShift = ctx->sICparams[0][1].ui8LumaShift2;
+ ui8PrevBotIC = 2;
+ }
+ if (ctx->sICparams[0][0].ui8IC1 == 1) {
+ /* The first and bottom field of the second reference frame intensity
+ compensates the second and top field of the first reference frame. */
+ ui8PrevLumaScale = ctx->sICparams[0][0].ui8LumaScale1;
+ ui8PrevLumaShift = ctx->sICparams[0][0].ui8LumaShift1;
+ ui8PrevIC = 1;
+ }
+ }
+ }
+ }
+ /************************************************************************************/
+
+ /* psb_cmdbuf_rendec_start_block( cmdbuf ); */
+
+// if(ctx->obj_context->rotate != VA_ROTATION_NONE) /* FIXME field coded should not issue */
+// psb__VC1_setup_alternative_frame(ctx);
+
+ /* CHUNK: 1 - VC1SEQUENCE00 */
+ psb_cmdbuf_rendec_start(cmdbuf, RENDEC_REGISTER_OFFSET(MSVDX_CMDS, DISPLAY_PICTURE_SIZE));
+ *cmdbuf->rendec_chunk_start |= CMD_RENDEC_BLOCK_FLAG_VC1_CMD_PATCH;
+
+ /* VC1SEQUENCE00 Command: Display Picture Size (sequence) */
+ cmd = 0;
+ /* TODO: Can "display size" and "coded size" be different? */
+ REGIO_WRITE_FIELD(cmd, VC1_RENDEC_CMD, VC1SEQUENCE00, PICTURE_HEIGHT, (ctx->display_picture_height - 1)); /* display picture size - 1 */
+ REGIO_WRITE_FIELD(cmd, VC1_RENDEC_CMD, VC1SEQUENCE00, PICTURE_WIDTH, (ctx->display_picture_width - 1));
+ psb_cmdbuf_rendec_write(cmdbuf, cmd);
+
+ /* VC1SEQUENCE00 Command: Coded Picture Size (sequence) */
+ cmd = 0;
+ REGIO_WRITE_FIELD(cmd, VC1_RENDEC_CMD, VC1SEQUENCE00, PICTURE_HEIGHT, (ctx->coded_picture_height - 1)); /* coded picture size - 1 */
+ REGIO_WRITE_FIELD(cmd, VC1_RENDEC_CMD, VC1SEQUENCE00, PICTURE_WIDTH, (ctx->coded_picture_width - 1));
+ psb_cmdbuf_rendec_write(cmdbuf, cmd);
+
+ /* VC1SEQUENCE01 Command: Operating Mode (sequence) */
+ cmd = 0;
+ REGIO_WRITE_FIELD(cmd, VC1_RENDEC_CMD, VC1SEQUENCE01, CHROMA_INTERLEAVED, 0); /* 0 = CbCr - MSVDX default */
+ REGIO_WRITE_FIELD(cmd, VC1_RENDEC_CMD, VC1SEQUENCE01, ROW_STRIDE, target_surface->stride_mode);
+ REGIO_WRITE_FIELD(cmd, VC1_RENDEC_CMD, VC1SEQUENCE01, CODEC_MODE, 2); /* MODE_VC1 */
+ REGIO_WRITE_FIELD(cmd, VC1_RENDEC_CMD, VC1SEQUENCE01, CODEC_PROFILE, ctx->profile);
+ REGIO_WRITE_FIELD(cmd, VC1_RENDEC_CMD, VC1SEQUENCE01, ASYNC_MODE, 0/*((pPicParams->bPicDeblocked & 0x02) ? 0:1)*/); // @TODO: async mode should be synchronous or pre-load for VC1
+ REGIO_WRITE_FIELD(cmd, VC1_RENDEC_CMD, VC1SEQUENCE01, CHROMA_FORMAT, 1);
+ REGIO_WRITE_FIELD(cmd, VC1_RENDEC_CMD, VC1SEQUENCE01, INTERLACED, ((pic_params->picture_fields.bits.frame_coding_mode & 0x02) >> 1)); /* if progressive, INTERLACE is always 0 */
+ REGIO_WRITE_FIELD(cmd, VC1_RENDEC_CMD, VC1SEQUENCE01, VC1_OVERLAP, pic_params->sequence_fields.bits.overlap);
+ if (!VC1_Header_Parser_HW) {
+ REGIO_WRITE_FIELD(cmd, VC1_RENDEC_CMD, VC1SEQUENCE01, PIC_CONDOVER, ctx->condover);
+ REGIO_WRITE_FIELD(cmd, VC1_RENDEC_CMD, VC1SEQUENCE01, PIC_QUANT, pic_params->pic_quantizer_fields.bits.pic_quantizer_scale);
+ }
+ ctx->obj_context->operating_mode = cmd;
+ psb_cmdbuf_rendec_write(cmdbuf, cmd);
+
+ /* LUMA_RECONSTRUCTED_PICTURE_BASE_ADDRESSES */
+ psb_cmdbuf_rendec_write_address(cmdbuf, &target_surface->buf, target_surface->buf.buffer_ofs);
+ //psb_cmdbuf_rendec_write_address( cmdbuf, &deblock_surface->buf, deblock_surface->buf.buffer_ofs);
+
+ /* CHROMA_RECONSTRUCTED_PICTURE_BASE_ADDRESSES */
+ psb_cmdbuf_rendec_write_address(cmdbuf, &target_surface->buf, target_surface->buf.buffer_ofs + target_surface->chroma_offset);
+ //psb_cmdbuf_rendec_write_address( cmdbuf, &deblock_surface->buf, deblock_surface->buf.buffer_ofs + deblock_surface->chroma_offset);
+
+ /* Aux MSB buffer */
+ psb_cmdbuf_rendec_write_address(cmdbuf, &ctx->aux_msb_buffer, 0);
+
+ psb_cmdbuf_rendec_end(cmdbuf);
+
+ /* CHUNK: 2 - VC1SLICE00 */
+ psb_cmdbuf_rendec_start(cmdbuf, RENDEC_REGISTER_OFFSET(MSVDX_CMDS, MC_CACHE_CONFIGURATION));
+
+ /* VC1SLICE00 Command: Cache Configuration (picture?) */
+ cmd = 0;
+ REGIO_WRITE_FIELD(cmd, VC1_RENDEC_CMD, VC1SLICE00, CONFIG_REF_OFFSET, 72);
+ REGIO_WRITE_FIELD(cmd, VC1_RENDEC_CMD, VC1SLICE00, CONFIG_ROW_OFFSET, 4);
+ psb_cmdbuf_rendec_write(cmdbuf, cmd);
+
+ /* VC1SLICE01 Command: VC1 Intensity Compensation Parameter (picture or slice) */
+ cmd = 0;
+ REGIO_WRITE_FIELD(cmd, VC1_RENDEC_CMD, VC1SLICE01, VC1_LUMSHIFT2, ctx->ui8CurrLumaShift2); /* INTERLACE field P pictures */
+ REGIO_WRITE_FIELD(cmd, VC1_RENDEC_CMD, VC1SLICE01, VC1_LUMSCALE2, ctx->ui8CurrLumaScale2); /* INTERLACE field P pictures */
+ REGIO_WRITE_FIELD(cmd, VC1_RENDEC_CMD, VC1SLICE01, VC1_LUMSHIFT1, ctx->ui8CurrLumaShift1);
+ REGIO_WRITE_FIELD(cmd, VC1_RENDEC_CMD, VC1SLICE01, VC1_LUMSCALE1, ctx->ui8CurrLumaScale1);
+ psb_cmdbuf_rendec_write(cmdbuf, cmd);
+
+ psb_cmdbuf_rendec_end(cmdbuf);
+
+ psb__VC1_program_output_register(ctx, ctx->pic_params->picture_fields.bits.frame_coding_mode != VC1_FCM_P);
+
+ if (ctx->pic_params->picture_fields.bits.frame_coding_mode == VC1_FCM_P && ctx->obj_context->rotate != VA_ROTATION_NONE)
+ //deblock_surface = ctx->decoded_surface->psb_surface_rotate;
+ deblock_surface = ctx->obj_context->current_render_target->psb_surface_rotate;
+
+ /* CHUNK: 3 */
+ psb_cmdbuf_rendec_start(cmdbuf, RENDEC_REGISTER_OFFSET(MSVDX_CMDS, VC1_LUMA_RANGE_MAPPING_BASE_ADDRESS));
+
+ /* VC1 Luma Range Mapping Base Address */
+ //psb_cmdbuf_rendec_write_address( cmdbuf, &target_surface->buf, target_surface->buf.buffer_ofs);
+ psb_cmdbuf_rendec_write_address(cmdbuf, &deblock_surface->buf, deblock_surface->buf.buffer_ofs);
+
+ /* VC1 Chroma Range Mapping Base Address */
+ //psb_cmdbuf_rendec_write_address( cmdbuf, &target_surface->buf, target_surface->chroma_offset + target_surface->buf.buffer_ofs);
+ psb_cmdbuf_rendec_write_address(cmdbuf, &deblock_surface->buf, deblock_surface->chroma_offset + deblock_surface->buf.buffer_ofs);
+
+ /* VC1SLICE03 Range Map Control (current picture) */
+ cmd = 0;
+ REGIO_WRITE_FIELD(cmd, VC1_RENDEC_CMD, VC1SLICE03, RANGE_MAPUV_FLAG, pic_params->range_mapping_fields.bits.chroma_flag /*RANGE_MAPUV_FLAG*/);
+ REGIO_WRITE_FIELD(cmd, VC1_RENDEC_CMD, VC1SLICE03, RANGE_MAPUV, pic_params->range_mapping_fields.bits.chroma);
+ REGIO_WRITE_FIELD(cmd, VC1_RENDEC_CMD, VC1SLICE03, RANGE_MAPY_FLAG, pic_params->range_mapping_fields.bits.luma_flag /*RANGE_MAPY_FLAG*/);
+ REGIO_WRITE_FIELD(cmd, VC1_RENDEC_CMD, VC1SLICE03, RANGE_MAPY, pic_params->range_mapping_fields.bits.luma);
+ psb_cmdbuf_rendec_write(cmdbuf, cmd);
+
+ /* Store VC1SLICE03 bits in lower bits of Range Mapping Base Address */
+ /* VC1 Luma Range Mapping Base Address */
+ RELOC(*ctx->p_range_mapping_base, /*cmd + */deblock_surface->buf.buffer_ofs, &deblock_surface->buf);
+ RELOC(*ctx->p_range_mapping_base1, deblock_surface->buf.buffer_ofs + deblock_surface->chroma_offset, &deblock_surface->buf);
+ //RELOC(*ctx->p_range_mapping_base, /*cmd + */target_surface->buf.buffer_ofs, &target_surface->buf);
+ //RELOC(*ctx->p_range_mapping_base1, target_surface->buf.buffer_ofs + target_surface->chroma_offset, &target_surface->buf);
+ *ctx->p_range_mapping_base = (*ctx->p_range_mapping_base) | cmd; /* FIXME If kernel apply reloc, this value may be override */
+
+ /* VC1 Intensity Compensation Backward/Previous */
+ /*
+ 3.3.10 VC1 Intensity Compensation Backward/Previous:
+ The parameters applied in VC1 Intensity Compensation Parameters are the Intensity Compensation
+ applied to forward prediction. In the case of Interlaced P field pictures, the second field can
+ be Intensity Compensated relative to the first P field picture. If this is done, when decoding
+ B pictures the first field backward MV reference to P picture needs to be Intensity Compensated
+ with VC1_LUMSCALE_BACK and VC1_LUMSHIFT_BACK. (The command should contain the Intensity
+ Compensation parameters that were used for opposite parity field when decoding 2nd P field picture).
+
+ The parameters will only be used if VC1_BACK_INT_COMP in Slice Params command indicates
+ Backward Intensity Compensation is used.
+ */
+ cmd = 0;
+ REGIO_WRITE_FIELD(cmd, VC1_RENDEC_CMD, VC1SLICE04, VC1_LUMSHIFT_PREV, ui8PrevLumaShift);
+ REGIO_WRITE_FIELD(cmd, VC1_RENDEC_CMD, VC1SLICE04, VC1_LUMSCALE_PREV, ui8PrevLumaScale);
+ REGIO_WRITE_FIELD(cmd, VC1_RENDEC_CMD, VC1SLICE04, VC1_LUMSHIFT_BACK, ui8BackLumaShift);
+ REGIO_WRITE_FIELD(cmd, VC1_RENDEC_CMD, VC1SLICE04, VC1_LUMSCALE_BACK, ui8BackLumaScale);
+ psb_cmdbuf_rendec_write(cmdbuf, cmd);
+
+#if 0
+ /* VC1 Intensity Compensation Previous Bottom */
+ if (ui8PrevBotIC) {
+ /*
+ The VDMC dynamically applies intensity compensation when generating reference predicted data
+ for P/B fields/frames. In the case of Interlaced B field pictures, both the top field and
+ bottom field could be Intensity Compensated twice (if all previous P field pictures applied
+ separate top and bottom Intensity Compensation). If this is the case, the VC1 previous field
+ defined in 3.3.10 should apply to top field, whilst the parameters defined in this register
+ apply to the bottom field. The VC1_PREV_BOT_INT_COMP field of Slice Params command indicates
+ if the fields in this register are used.
+ */
+ cmd = 0;
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, VC1_INTENSITY_COMPENSATION_, VC1_LUMSHIFT_PREV_BOT, ui8PrevBotLumaShift);
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, VC1_INTENSITY_COMPENSATION_, VC1_LUMSCALE_PREV_BOT, ui8PrevBotLumaScale);
+ pcmdBuffer[i++] = REGISTER_OFFSET(MSVDX_CMDS, VC1_INTENSITY_COMPENSATION_);
+ pcmdBuffer[i++] = cmd;
+ }
+#endif
+ psb_cmdbuf_rendec_end(cmdbuf);
+
+ /*
+ Reference Picture Base Addresses
+
+ The reference picture pointers always include the current picture at first location (0) and
+ the oldest reference in the next location (1). For B pictures the subsequent reference
+ frame (display order) is 2.
+ */
+ if ((pic_params->picture_fields.bits.picture_type != WMF_PTYPE_I) && (pic_params->picture_fields.bits.picture_type != WMF_PTYPE_BI)) {
+ /* CHUNK: 4 */
+ psb_cmdbuf_rendec_start(cmdbuf, RENDEC_REGISTER_OFFSET(MSVDX_CMDS, REFERENCE_PICTURE_BASE_ADDRESSES));
+
+ /********************** CURRENT PICTURE **********************/
+ psb_cmdbuf_rendec_write_address(cmdbuf, &target_surface->buf, target_surface->buf.buffer_ofs);
+ psb_cmdbuf_rendec_write_address(cmdbuf, &target_surface->buf, target_surface->buf.buffer_ofs + target_surface->chroma_offset);
+ //psb_cmdbuf_rendec_write_address( cmdbuf, &deblock_surface->buf, deblock_surface->buf.buffer_ofs);
+ //psb_cmdbuf_rendec_write_address( cmdbuf, &deblock_surface->buf, deblock_surface->buf.buffer_ofs + deblock_surface->chroma_offset);
+
+ /*************** FORWARD REFERENCE *****************/
+ if (ctx->forward_ref_surface) {
+ /*
+ In VC1, if a P field picture references both top field and bottom field, but the two fields
+ are stored in different frame stores, then the most recently decoded field will use reference
+ index 0, and the other field will use reference index 1.
+
+ Progressive P pictures use always reference index 1.
+ */
+ psb_cmdbuf_rendec_write_address(cmdbuf, &ctx->forward_ref_surface->psb_surface->buf, ctx->forward_ref_surface->psb_surface->buf.buffer_ofs);
+ psb_cmdbuf_rendec_write_address(cmdbuf, &ctx->forward_ref_surface->psb_surface->buf, ctx->forward_ref_surface->psb_surface->\
+ buf.buffer_ofs + ctx->forward_ref_surface->psb_surface->chroma_offset);
+ }
+
+ /*************** BACKWARD REFERENCE *****************/
+ if (ctx->backward_ref_surface) {
+ psb_cmdbuf_rendec_write_address(cmdbuf, &ctx->backward_ref_surface->psb_surface->buf, ctx->backward_ref_surface->psb_surface->buf.buffer_ofs);
+ psb_cmdbuf_rendec_write_address(cmdbuf, &ctx->backward_ref_surface->psb_surface->buf, ctx->backward_ref_surface->psb_surface\
+ ->buf.buffer_ofs + ctx->backward_ref_surface->psb_surface->chroma_offset);
+ }
+ psb_cmdbuf_rendec_end(cmdbuf);
+ }
+
+ /* CHUNK: 5 - VC1SLICE02 */
+ psb_cmdbuf_rendec_start(cmdbuf, RENDEC_REGISTER_OFFSET(MSVDX_CMDS, SLICE_PARAMS));
+ *cmdbuf->rendec_chunk_start |= CMD_RENDEC_BLOCK_FLAG_VC1_SP_PATCH;
+
+ /* VC1SLICE02 Command: Slice Params (picture or slice) */
+ cmd = 0;
+
+ //REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, SLICE_PARAMS, VC1_PREV_BOT_INT_COMP, ui8PrevBotIC);
+ REGIO_WRITE_FIELD(cmd, VC1_RENDEC_CMD, VC1SLICE02, VC1_PREV_INT_COMP, ui8PrevIC);
+ REGIO_WRITE_FIELD(cmd, VC1_RENDEC_CMD, VC1SLICE02, VC1_BACK_INT_COMP, ui8BackIC);
+ REGIO_WRITE_FIELD(cmd, VC1_RENDEC_CMD, VC1SLICE02, RND_CTRL_BIT, pic_params->rounding_control);
+ REGIO_WRITE_FIELD(cmd, VC1_RENDEC_CMD, VC1SLICE02, MODE_CONFIG, ctx->mode_config);
+ if (!VC1_Header_Parser_HW) {
+ REGIO_WRITE_FIELD(cmd, VC1_RENDEC_CMD, VC1SLICE02, SUBPEL_FILTER_MODE, ((ctx->mv_mode == WMF_MVMODE_1MV_HALF_PEL_BILINEAR) && !(pic_params->picture_fields.bits.frame_coding_mode == VC1_FCM_FRMI)) ? 0 : 1);
+ REGIO_WRITE_FIELD(cmd, VC1_RENDEC_CMD, VC1SLICE02, SLICE_CODE_TYPE, (pic_params->picture_fields.bits.picture_type == WMF_PTYPE_BI) ? 0 : (pic_params->picture_fields.bits.picture_type & 0x3)); /* BI is sent as I */
+ }
+ REGIO_WRITE_FIELD(cmd, VC1_RENDEC_CMD, VC1SLICE02, VC1_FASTUVMC, pic_params->fast_uvmc_flag);
+ REGIO_WRITE_FIELD(cmd, VC1_RENDEC_CMD, VC1SLICE02, VC1_LOOPFILTER, pic_params->entrypoint_fields.bits.loopfilter);
+ REGIO_WRITE_FIELD(cmd, VC1_RENDEC_CMD, VC1SLICE02, SLICE_FIELD_TYPE, ctx->slice_field_type);
+ psb_cmdbuf_rendec_write(cmdbuf, cmd);
+
+ psb_cmdbuf_rendec_end(cmdbuf);
+ if (VC1_Header_Parser_HW)
+ REGIO_WRITE_FIELD(cmd, VC1_RENDEC_CMD, VC1SLICE02, SLICE_CODE_TYPE, (pic_params->picture_fields.bits.picture_type == WMF_PTYPE_BI) ? 0 : (pic_params->picture_fields.bits.picture_type & 0x3));
+
+ *ctx->p_slice_params = cmd;
+
+ /* ------------------------------- Back-End Registers --------------------------------- */
+
+ /* CHUNK: 6 (Back-end registers) */
+ psb_cmdbuf_rendec_start(cmdbuf, RENDEC_REGISTER_OFFSET(MSVDX_VEC, VC1_CR_VEC_VC1_BE_SPS0));
+
+ /* CR_VEC_VC1_BE_SPS0 */
+ cmd = 0;
+ REGIO_WRITE_FIELD(cmd, MSVDX_VEC_VC1, CR_VEC_VC1_BE_SPS0, VC1_BE_EXTENDED_DMV, pic_params->mv_fields.bits.extended_dmv_flag);
+ REGIO_WRITE_FIELD(cmd, MSVDX_VEC_VC1, CR_VEC_VC1_BE_SPS0, VC1_BE_EXTENDED_MV, pic_params->mv_fields.bits.extended_mv_flag);
+ REGIO_WRITE_FIELD(cmd, MSVDX_VEC_VC1, CR_VEC_VC1_BE_SPS0, VC1_BE_FASTUVMC, pic_params->fast_uvmc_flag);
+ REGIO_WRITE_FIELD(cmd, MSVDX_VEC_VC1, CR_VEC_VC1_BE_SPS0, VC1_BE_INTERLACE, pic_params->sequence_fields.bits.interlace);
+ //REGIO_WRITE_FIELD(cmd, MSVDX_VEC_VC1, CR_VEC_VC1_BE_SPS0, VC1_BE_PROFILE, ctx->profile);
+ psb_cmdbuf_rendec_write(cmdbuf, cmd);
+
+ /* CR_VEC_VC1_BE_SPS1 */
+ cmd = 0;
+ REGIO_WRITE_FIELD(cmd, MSVDX_VEC_VC1, CR_VEC_VC1_BE_SPS1, VC1_BE_PIC_HEIGHT_IN_MBS_LESS1, ctx->picture_height_mb - 1);
+ psb_cmdbuf_rendec_write(cmdbuf, cmd);
+
+ /* CR_VEC_VC1_BE_SPS2 */
+ cmd = 0;
+ REGIO_WRITE_FIELD(cmd, MSVDX_VEC_VC1, CR_VEC_VC1_BE_SPS2, VC1_BE_PIC_WIDTH_IN_MBS_LESS1, ctx->picture_width_mb - 1);
+ psb_cmdbuf_rendec_write(cmdbuf, cmd);
+
+ psb_cmdbuf_rendec_end(cmdbuf);
+
+ /* CHUNK: 6b (Back-end registers) */
+ psb_cmdbuf_rendec_start(cmdbuf, RENDEC_REGISTER_OFFSET(MSVDX_VEC, VC1_CR_VEC_VC1_BE_PPS2));
+ *cmdbuf->rendec_chunk_start |= CMD_RENDEC_BLOCK_FLAG_VC1_BE_PATCH;
+
+ /* CR_VEC_VC1_BE_PPS2 */
+ cmd = 0;
+ REGIO_WRITE_FIELD(cmd, MSVDX_VEC_VC1, CR_VEC_VC1_BE_PPS2, VC1_BE_FCM_REF2, ctx->ui8FCM_Ref2Pic);
+ REGIO_WRITE_FIELD(cmd, MSVDX_VEC_VC1, CR_VEC_VC1_BE_PPS2, VC1_BE_FCM_REF1, ctx->ui8FCM_Ref1Pic);
+ REGIO_WRITE_FIELD(cmd, MSVDX_VEC_VC1, CR_VEC_VC1_BE_PPS2, VC1_BE_FCM_REF0, ctx->ui8FCM_Ref0Pic);
+ REGIO_WRITE_FIELD(cmd, MSVDX_VEC_VC1, CR_VEC_VC1_BE_PPS2, VC1_BE_COLLOCATED_SKIPPED, 0); // @TODO: Really need this?
+ psb_cmdbuf_rendec_write(cmdbuf, cmd);
+
+ /* CR_VEC_VC1_BE_PPS0 */
+ cmd = 0;
+ if (!VC1_Header_Parser_HW) {
+ REGIO_WRITE_FIELD(cmd, MSVDX_VEC_VC1, CR_VEC_VC1_BE_PPS0, VC1_BE_IQ_OVERLAP, ((pic_params->picture_fields.bits.picture_type == WMF_PTYPE_B) || (ctx->condover == 0)) ? 0 : 1);
+ REGIO_WRITE_FIELD(cmd, MSVDX_VEC_VC1, CR_VEC_VC1_BE_PPS0, VC1_BE_UNIFORM_QUANTIZER, pic_params->pic_quantizer_fields.bits.pic_quantizer_type);
+ REGIO_WRITE_FIELD(cmd, MSVDX_VEC_VC1, CR_VEC_VC1_BE_PPS0, VC1_BE_HALFQP, pic_params->pic_quantizer_fields.bits.half_qp);
+ REGIO_WRITE_FIELD(cmd, MSVDX_VEC_VC1, CR_VEC_VC1_BE_PPS0, VC1_BE_BFRACTION, pic_params->b_picture_fraction);
+ }
+ REGIO_WRITE_FIELD(cmd, MSVDX_VEC_VC1, CR_VEC_VC1_BE_PPS0, VC1_BE_TFF_FWD, ctx->bTFF_FwRefFrm);
+ REGIO_WRITE_FIELD(cmd, MSVDX_VEC_VC1, CR_VEC_VC1_BE_PPS0, VC1_BE_TFF_BWD, ctx->bTFF_BwRefFrm);
+ REGIO_WRITE_FIELD(cmd, MSVDX_VEC_VC1, CR_VEC_VC1_BE_PPS0, VC1_BE_TFF, pic_params->picture_fields.bits.top_field_first);
+ REGIO_WRITE_FIELD(cmd, MSVDX_VEC_VC1, CR_VEC_VC1_BE_PPS0, VC1_BE_SECOND_FIELD, !pic_params->picture_fields.bits.is_first_field);
+ REGIO_WRITE_FIELD(cmd, MSVDX_VEC_VC1, CR_VEC_VC1_BE_PPS0, VC1_BE_FCM, pic_params->picture_fields.bits.frame_coding_mode);
+ REGIO_WRITE_FIELD(cmd, MSVDX_VEC_VC1, CR_VEC_VC1_BE_PPS0, VC1_BE_RNDCTRL, pic_params->rounding_control);
+ psb_cmdbuf_rendec_write(cmdbuf, cmd);
+
+ /* CR_VEC_VC1_BE_PPS1 */
+ cmd = 0;
+ if (!VC1_Header_Parser_HW) {
+ REGIO_WRITE_FIELD(cmd, MSVDX_VEC_VC1, CR_VEC_VC1_BE_PPS1, VC1_BE_EXTEND_Y, ctx->extend_y);
+ REGIO_WRITE_FIELD(cmd, MSVDX_VEC_VC1, CR_VEC_VC1_BE_PPS1, VC1_BE_EXTEND_X, ctx->extend_x);
+ REGIO_WRITE_FIELD(cmd, MSVDX_VEC_VC1, CR_VEC_VC1_BE_PPS1, VC1_BE_QUANTIZER, (pic_params->pic_quantizer_fields.bits.pic_quantizer_type ? 0x03 /* uniform */ : 0x02 /* non-uniform */));
+ REGIO_WRITE_FIELD(cmd, MSVDX_VEC_VC1, CR_VEC_VC1_BE_PPS1, VC1_BE_PQUANT, pic_params->pic_quantizer_fields.bits.pic_quantizer_scale);
+ REGIO_WRITE_FIELD(cmd, MSVDX_VEC_VC1, CR_VEC_VC1_BE_PPS1, VC1_BE_MVMODE, pic_params->mv_fields.bits.mv_mode);
+ REGIO_WRITE_FIELD(cmd, MSVDX_VEC_VC1, CR_VEC_VC1_BE_PPS1, VC1_BE_MVMODE2, pic_params->mv_fields.bits.mv_mode2);
+ REGIO_WRITE_FIELD(cmd, MSVDX_VEC_VC1, CR_VEC_VC1_BE_PPS1, VC1_BE_PTYPE, pic_params->picture_fields.bits.picture_type);
+ }
+ psb_cmdbuf_rendec_write(cmdbuf, cmd);
+
+ /* CR_VEC_VC1_BE_MVD0 */
+ cmd = 0;
+ if (!VC1_Header_Parser_HW) {
+ REGIO_WRITE_FIELD(cmd, MSVDX_VEC_VC1, CR_VEC_VC1_BE_MVD0, VC1_BE_BRPD, ctx->i8BckwrdRefFrmDist); /* 10.4.6.2 */
+ REGIO_WRITE_FIELD(cmd, MSVDX_VEC_VC1, CR_VEC_VC1_BE_MVD0, VC1_BE_FRPD, ctx->i8FwrdRefFrmDist);
+ }
+ psb_cmdbuf_rendec_write(cmdbuf, cmd);
+
+ /* CR_VEC_VC1_BE_MVD1 */
+ cmd = 0;
+ if (!VC1_Header_Parser_HW)
+ REGIO_WRITE_FIELD(cmd, MSVDX_VEC_VC1, CR_VEC_VC1_BE_MVD1, VC1_BE_SCALEFACTOR, ctx->ui32ScaleFactor); /* figure 66 */
+ psb_cmdbuf_rendec_write(cmdbuf, cmd);
+
+ /* CR_VEC_VC1_BE_MVD2 */
+ cmd = 0;
+ REGIO_WRITE_FIELD(cmd, MSVDX_VEC_VC1, CR_VEC_VC1_BE_MVD2, VC1_BE_PULLBACK_X, ctx->pull_back_x);
+ psb_cmdbuf_rendec_write(cmdbuf, cmd);
+
+ /* CR_VEC_VC1_BE_MVD3 */
+ cmd = 0;
+ REGIO_WRITE_FIELD(cmd, MSVDX_VEC_VC1, CR_VEC_VC1_BE_MVD3, VC1_BE_PULLBACK_Y, ctx->pull_back_y);
+ psb_cmdbuf_rendec_write(cmdbuf, cmd);
+
+ /* CR_VEC_VC1_BE_MVD4 */
+ cmd = 0;
+ REGIO_WRITE_FIELD(cmd, MSVDX_VEC_VC1, CR_VEC_VC1_BE_MVD4, VC1_BE_FIRST_MB_IN_SLICE_Y, slice_param->slice_vertical_position);
+ psb_cmdbuf_rendec_write(cmdbuf, cmd);
+
+ /* CR_VEC_VC1_BE_MVD5 */
+ cmd = 0;
+ if (!VC1_Header_Parser_HW) {
+ REGIO_WRITE_FIELD(cmd, MSVDX_VEC_VC1, CR_VEC_VC1_BE_MVD5, VC1_BE_REFDIST, pic_params->reference_fields.bits.reference_distance);
+ REGIO_WRITE_FIELD(cmd, MSVDX_VEC_VC1, CR_VEC_VC1_BE_MVD5, VC1_BE_NUMREF, pic_params->reference_fields.bits.num_reference_pictures);
+ REGIO_WRITE_FIELD(cmd, MSVDX_VEC_VC1, CR_VEC_VC1_BE_MVD5, VC1_BE_REFFIELD, pic_params->reference_fields.bits.reference_field_pic_indicator);
+ REGIO_WRITE_FIELD(cmd, MSVDX_VEC_VC1, CR_VEC_VC1_BE_MVD5, VC1_BE_MVRANGE, pic_params->mv_fields.bits.extended_mv_range);
+ REGIO_WRITE_FIELD(cmd, MSVDX_VEC_VC1, CR_VEC_VC1_BE_MVD5, VC1_BE_HALFPEL_FLAG, ctx->half_pel);
+ }
+ //REGIO_WRITE_FIELD(cmd, MSVDX_VEC_VC1, CR_VEC_VC1_BE_MVD5, VC1_BE_FRAME_CODING_MODE, pic_params->picture_fields.bits.frame_coding_mode);
+ REGIO_WRITE_FIELD(cmd, MSVDX_VEC_VC1, CR_VEC_VC1_BE_MVD5, VC1_BE_BOTTOM_FIELD_FLAG, ctx->bottom_field);
+ REGIO_WRITE_FIELD(cmd, MSVDX_VEC_VC1, CR_VEC_VC1_BE_MVD5, VC1_BE_ADVANCED_PROFILE, (ctx->profile == WMF_PROFILE_ADVANCED) ? 1 : 0);
+ REGIO_WRITE_FIELD(cmd, MSVDX_VEC_VC1, CR_VEC_VC1_BE_MVD5, VC1_BE_SCAN_INDEX, ctx->scan_index);
+ psb_cmdbuf_rendec_write(cmdbuf, cmd);
+
+ psb_cmdbuf_rendec_end(cmdbuf);
+
+ /* CHUNK: 6c (Back-end registers) */
+ psb_cmdbuf_rendec_start(cmdbuf, RENDEC_REGISTER_OFFSET(MSVDX_VEC, VC1_CR_VEC_VC1_BE_PARAM_BASE_ADDR));
+
+ psb__information_message("pnw_VC1: picture_type = %d\n", pic_params->picture_fields.bits.picture_type);
+
+ if (PIC_TYPE_IS_INTRA(pic_params->picture_fields.bits.picture_type) || (pic_params->picture_fields.bits.picture_type == WMF_PTYPE_P)) {
+ psb_buffer_p colocated_target_buffer = psb__VC1_lookup_colocated_buffer(ctx, target_surface);
+ ASSERT(colocated_target_buffer);
+ if (colocated_target_buffer) {
+ psb_cmdbuf_rendec_write_address(cmdbuf, colocated_target_buffer, ui32MBParamMemOffset);
+ } else {
+ /* This is an error */
+ psb_cmdbuf_rendec_write(cmdbuf, 0);
+ }
+ } else if (pic_params->picture_fields.bits.picture_type == WMF_PTYPE_B) {
+ ASSERT(ctx->forward_ref_surface);
+ psb_buffer_p colocated_forward_ref_buffer = ctx->forward_ref_surface ? psb__VC1_lookup_colocated_buffer(ctx, ctx->forward_ref_surface->psb_surface) : 0;
+ ASSERT(colocated_forward_ref_buffer);
+ if (colocated_forward_ref_buffer) {
+ psb_cmdbuf_rendec_write_address(cmdbuf, colocated_forward_ref_buffer, ui32MBParamMemOffset);
+ } else {
+ /* This is an error */
+ psb_cmdbuf_rendec_write(cmdbuf, 0);
+ }
+ }
+ psb_cmdbuf_rendec_end(cmdbuf);
+
+ if (!PIC_TYPE_IS_INTRA(pic_params->picture_fields.bits.picture_type)) {
+ /* CHUNK: 6d (Back-end registers) */
+ psb_cmdbuf_rendec_start(cmdbuf, RENDEC_REGISTER_OFFSET(MSVDX_VEC, VC1_CR_VEC_VC1_BE_COLPARAM_BASE_ADDR));
+
+ if (pic_params->picture_fields.bits.picture_type == WMF_PTYPE_P) {
+ /* CR_VEC_VC1_BE_COLPARAM_BASE_ADDR */
+ ASSERT(ctx->forward_ref_surface);
+ psb_buffer_p colocated_forward_ref_buffer = ctx->forward_ref_surface ? psb__VC1_lookup_colocated_buffer(ctx, ctx->forward_ref_surface->psb_surface) : NULL;
+ ASSERT(colocated_forward_ref_buffer);
+ if (colocated_forward_ref_buffer) {
+ psb_cmdbuf_rendec_write_address(cmdbuf, colocated_forward_ref_buffer, ui32MBParamMemOffset);
+ } else {
+ /* This is an error */
+ psb_cmdbuf_rendec_write(cmdbuf, 0);
+ }
+ } else if (pic_params->picture_fields.bits.picture_type == WMF_PTYPE_B) {
+ /* CR_VEC_VC1_BE_COLPARAM_BASE_ADDR */
+ ASSERT(ctx->backward_ref_surface);
+ psb_buffer_p colocated_backward_ref_buffer;
+
+ if (NULL == ctx->backward_ref_surface) {
+ psb__error_message("%s L%d Invalid backward_ref_surface handle\n", __FUNCTION__, __LINE__);
+ return;
+ }
+
+ colocated_backward_ref_buffer = ctx->backward_ref_surface->psb_surface ? psb__VC1_lookup_colocated_buffer(ctx, ctx->backward_ref_surface->psb_surface) : NULL;
+ ASSERT(colocated_backward_ref_buffer);
+ if (colocated_backward_ref_buffer) {
+ psb_cmdbuf_rendec_write_address(cmdbuf, colocated_backward_ref_buffer, ui32MBParamMemOffset);
+ } else {
+ /* This is an error */
+ psb_cmdbuf_rendec_write(cmdbuf, 0);
+ }
+ }
+
+ psb_cmdbuf_rendec_end(cmdbuf);
+ }
+
+ /* psb_cmdbuf_rendec_end_block( cmdbuf ); */
+}
+
+
+static void psb__VC1_load_sequence_registers(context_VC1_p ctx)
+{
+ psb_cmdbuf_p cmdbuf = ctx->obj_context->cmdbuf;
+ uint32_t reg_value;
+
+ psb_cmdbuf_reg_start_block(cmdbuf);
+
+ /* FE_CONTROL */
+ reg_value = 0;
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC, CR_VEC_ENTDEC_FE_CONTROL, ENTDEC_FE_PROFILE, ctx->profile);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC, CR_VEC_ENTDEC_FE_CONTROL, ENTDEC_FE_MODE, 2); /* 2 - VC1 */
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC, CR_VEC_ENTDEC_FE_CONTROL), reg_value);
+
+ /* FE_SPS0 */
+ reg_value = 0;
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_VC1, CR_VEC_VC1_FE_SPS0, VC1_FE_SYNCMARKER, ctx->pic_params->sequence_fields.bits.syncmarker);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_VC1, CR_VEC_VC1_FE_SPS0, VC1_FE_VSTRANSFORM, ctx->pic_params->transform_fields.bits.variable_sized_transform_flag);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_VC1, CR_VEC_VC1_FE_SPS0, VC1_FE_INTERLACE, ctx->pic_params->sequence_fields.bits.interlace);
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC_VC1, CR_VEC_VC1_FE_SPS0), reg_value);
+
+ psb_cmdbuf_reg_end_block(cmdbuf);
+
+}
+
+static void psb__VC1_load_picture_registers(context_VC1_p ctx, VASliceParameterBufferVC1 *slice_param)
+{
+ VAPictureParameterBufferVC1 *pic_params = ctx->pic_params;
+ psb_cmdbuf_p cmdbuf = ctx->obj_context->cmdbuf;
+ uint32_t reg_value;
+ int bEnableMVDLite = FALSE;
+
+ psb_cmdbuf_rendec_start(cmdbuf, REG_MSVDX_VEC_OFFSET + MSVDX_VEC_CR_VEC_ENTDEC_BE_CONTROL_OFFSET);
+ reg_value = 0;
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC, CR_VEC_ENTDEC_BE_CONTROL, ENTDEC_BE_PROFILE, ctx->profile);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC, CR_VEC_ENTDEC_BE_CONTROL, ENTDEC_BE_MODE, 2); /* 2 - VC1 */
+ psb_cmdbuf_rendec_write(cmdbuf, reg_value);
+ psb_cmdbuf_rendec_end(cmdbuf);
+
+ psb_cmdbuf_reg_start_block_flag(cmdbuf, (VC1_Header_Parser_HW) ? CMD_REGVALPAIR_FLAG_VC1PATCH : 0);
+
+ /* Enable MVD lite for Progressive or FLDI P */
+ if (
+ (
+ (pic_params->sequence_fields.bits.interlace && (pic_params->picture_fields.bits.frame_coding_mode == VC1_FCM_FLDI)) ||
+ (!pic_params->sequence_fields.bits.interlace) ||
+ (pic_params->sequence_fields.bits.interlace && (pic_params->picture_fields.bits.frame_coding_mode == VC1_FCM_P))
+ ) &&
+ (pic_params->picture_fields.bits.picture_type == WMF_PTYPE_P)
+ ) {
+ bEnableMVDLite = TRUE;
+ }
+
+ /* FE_PPS0 */
+ reg_value = 0;
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_VC1, CR_VEC_VC1_FE_PPS0, VC1_FE_PIC_WIDTH_IN_MBS_LESS1, ctx->picture_width_mb - 1);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_VC1, CR_VEC_VC1_FE_PPS0, VC1_FE_PIC_HEIGHT_IN_MBS_LESS1, ctx->picture_height_mb - 1);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_VC1, CR_VEC_VC1_FE_PPS0, VC1_FE_FIRST_MB_IN_SLICE_Y, slice_param->slice_vertical_position);
+ if (!VC1_Header_Parser_HW)
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_VC1, CR_VEC_VC1_FE_PPS0, VC1_FE_PTYPE, pic_params->picture_fields.bits.picture_type);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_VC1, CR_VEC_VC1_FE_PPS0, VC1_FE_FCM, pic_params->picture_fields.bits.frame_coding_mode);
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC_VC1, CR_VEC_VC1_FE_PPS0), reg_value);
+
+ /* FE_PPS1 */
+ reg_value = 0;
+ if (!VC1_Header_Parser_HW) {
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_VC1, CR_VEC_VC1_FE_PPS1, VC1_FE_BP_FORMAT, IMG_FALSE); // interleaved format
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_VC1, CR_VEC_VC1_FE_PPS1, VC1_FE_BP_PRESENT, ctx->bitplane_present);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_VC1, CR_VEC_VC1_FE_PPS1, VC1_FE_RAWCODINGFLAG, (pic_params->raw_coding.value & 0x7F)); // 7-bits
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_VC1, CR_VEC_VC1_FE_PPS1, VC1_FE_MVMODE, pic_params->mv_fields.bits.mv_mode);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_VC1, CR_VEC_VC1_FE_PPS1, VC1_FE_MVMODE2, pic_params->mv_fields.bits.mv_mode2);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_VC1, CR_VEC_VC1_FE_PPS1, VC1_FE_TTMBF, pic_params->transform_fields.bits.mb_level_transform_type_flag);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_VC1, CR_VEC_VC1_FE_PPS1, VC1_FE_TTFRM, pic_params->transform_fields.bits.frame_level_transform_type);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_VC1, CR_VEC_VC1_FE_PPS1, VC1_FE_BFRACTION, pic_params->b_picture_fraction);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_VC1, CR_VEC_VC1_FE_PPS1, VC1_FE_CONDOVER, ctx->condover);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_VC1, CR_VEC_VC1_FE_PPS1, VC1_FE_EXTEND_X, ctx->extend_x);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_VC1, CR_VEC_VC1_FE_PPS1, VC1_FE_EXTEND_Y, ctx->extend_y);
+ }
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC_VC1, CR_VEC_VC1_FE_PPS1), reg_value);
+
+ /* FE_PPS2 */
+ reg_value = 0;
+ if (!VC1_Header_Parser_HW) {
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_VC1, CR_VEC_VC1_FE_PPS2, VC1_FE_DQXBEDGE, (pic_params->pic_quantizer_fields.bits.dq_profile == 1) ? pic_params->pic_quantizer_fields.bits.dq_db_edge : pic_params->pic_quantizer_fields.bits.dq_sb_edge);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_VC1, CR_VEC_VC1_FE_PPS2, VC1_FE_DQUANT, pic_params->pic_quantizer_fields.bits.dquant);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_VC1, CR_VEC_VC1_FE_PPS2, VC1_FE_PQUANT, pic_params->pic_quantizer_fields.bits.pic_quantizer_scale);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_VC1, CR_VEC_VC1_FE_PPS2, VC1_FE_HALFQP, pic_params->pic_quantizer_fields.bits.half_qp);
+ if (((ctx->profile == WMF_PROFILE_ADVANCED) && (pic_params->pic_quantizer_fields.bits.dquant != 0))
+ || ((ctx->profile != WMF_PROFILE_ADVANCED) && ((pic_params->picture_fields.bits.picture_type == WMF_PTYPE_B) || (pic_params->picture_fields.bits.picture_type == WMF_PTYPE_P))) && (pic_params->pic_quantizer_fields.bits.dquant != 0)) {
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_VC1, CR_VEC_VC1_FE_PPS2, VC1_FE_VOPDQUANT_PRESENT, 1);
+ } else {
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_VC1, CR_VEC_VC1_FE_PPS2, VC1_FE_VOPDQUANT_PRESENT, 0);
+ }
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_VC1, CR_VEC_VC1_FE_PPS2, VC1_FE_DQUANTFRM, pic_params->pic_quantizer_fields.bits.dq_frame);
+ {
+ IMG_BOOL DQUANT_INFRAME = (pic_params->pic_quantizer_fields.bits.dquant == 2) ||
+ ((pic_params->pic_quantizer_fields.bits.dquant == 1) && pic_params->pic_quantizer_fields.bits.dq_frame) ||
+ ((pic_params->pic_quantizer_fields.bits.dquant == 3) && pic_params->pic_quantizer_fields.bits.dq_frame);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_VC1, CR_VEC_VC1_FE_PPS2, VC1_FE_DQUANT_INFRAME, DQUANT_INFRAME);
+ }
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_VC1, CR_VEC_VC1_FE_PPS2, VC1_FE_ALTPQUANT, pic_params->pic_quantizer_fields.bits.alt_pic_quantizer);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_VC1, CR_VEC_VC1_FE_PPS2, VC1_FE_DQPROFILE, pic_params->pic_quantizer_fields.bits.dq_profile);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_VC1, CR_VEC_VC1_FE_PPS2, VC1_FE_DQBILEVEL, pic_params->pic_quantizer_fields.bits.dq_binary_level);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_VC1, CR_VEC_VC1_FE_PPS2, VC1_FE_PQINDEX_GT8, ctx->pqindex_gt8);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_VC1, CR_VEC_VC1_FE_PPS2, VC1_FE_TRANSACFRM, pic_params->transform_fields.bits.transform_ac_codingset_idx1);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_VC1, CR_VEC_VC1_FE_PPS2, VC1_FE_TRANSACFRM2, pic_params->transform_fields.bits.transform_ac_codingset_idx2);
+ }
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_VC1, CR_VEC_VC1_FE_PPS2, VC1_FE_DQUANT, pic_params->pic_quantizer_fields.bits.dquant);
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC_VC1, CR_VEC_VC1_FE_PPS2), reg_value);
+
+ /* MVD_LITE0 */
+ reg_value = 0;
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_VC1, CR_VEC_VC1_FE_MVD_LITE0, VC1_FE_MVD_LITE_ENABLE, bEnableMVDLite);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_VC1, CR_VEC_VC1_FE_MVD_LITE0, VC1_FE_PULLBACK_X, ctx->pull_back_x);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_VC1, CR_VEC_VC1_FE_MVD_LITE0, VC1_FE_PULLBACK_Y, ctx->pull_back_y);
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC_VC1, CR_VEC_VC1_FE_MVD_LITE0), reg_value);
+
+ /* MVD_LITE1 */
+ reg_value = 0;
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_VC1, CR_VEC_VC1_FE_MVD_LITE1, VC1_FE_TFF, pic_params->picture_fields.bits.top_field_first);
+ if (!VC1_Header_Parser_HW) {
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_VC1, CR_VEC_VC1_FE_MVD_LITE1, VC1_FE_REFDIST, pic_params->reference_fields.bits.reference_distance);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_VC1, CR_VEC_VC1_FE_MVD_LITE1, VC1_FE_NUMREF, pic_params->reference_fields.bits.num_reference_pictures);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_VC1, CR_VEC_VC1_FE_MVD_LITE1, VC1_FE_REFFIELD, pic_params->reference_fields.bits.reference_field_pic_indicator);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_VC1, CR_VEC_VC1_FE_MVD_LITE1, VC1_FE_MVRANGE, pic_params->mv_fields.bits.extended_mv_range);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_VC1, CR_VEC_VC1_FE_MVD_LITE1, VC1_FE_HALFPEL_FLAG, ctx->half_pel);
+ //REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_VC1, CR_VEC_VC1_FE_MVD_LITE1, VC1_FE_FRAME_CODING_MODE, pic_params->picture_fields.bits.frame_coding_mode);
+ }
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_VC1, CR_VEC_VC1_FE_MVD_LITE1, VC1_FE_BOTTOM_FIELD_FLAG, ctx->bottom_field);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_VC1, CR_VEC_VC1_FE_MVD_LITE1, VC1_FE_ADVANCED_PROFILE, (ctx->profile == WMF_PROFILE_ADVANCED) ? 1 : 0);
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC_VC1, CR_VEC_VC1_FE_MVD_LITE1), reg_value);
+
+ psb_cmdbuf_reg_end_block(cmdbuf);
+}
+
+static void psb__VC1_setup_bitplane(context_VC1_p ctx)
+{
+ psb_cmdbuf_p cmdbuf = ctx->obj_context->cmdbuf;
+
+ psb_cmdbuf_reg_start_block(cmdbuf);
+
+ if (VC1_Header_Parser_HW) {
+ psb_cmdbuf_reg_set_address(cmdbuf, REGISTER_OFFSET(MSVDX_VEC_VC1, CR_VEC_VC1_FE_BITPLANES_BASE_ADDR0),
+ &ctx->bitplane_hw_buffer, 0);
+ psb_cmdbuf_reg_set_address(cmdbuf, REGISTER_OFFSET(MSVDX_VEC_VC1, CR_VEC_VC1_FE_BITPLANES_BASE_ADDR1),
+ &ctx->bitplane_hw_buffer, 0xa000);
+ psb_cmdbuf_reg_set_address(cmdbuf, REGISTER_OFFSET(MSVDX_VEC_VC1, CR_VEC_VC1_FE_BITPLANES_BASE_ADDR2),
+ &ctx->bitplane_hw_buffer, 0xa000 * 2);
+ } else {
+ if (ctx->bitplane_present)
+ psb_cmdbuf_reg_set_address(cmdbuf, REGISTER_OFFSET(MSVDX_VEC_VC1, CR_VEC_VC1_FE_BITPLANES_BASE_ADDR0),
+ ctx->bitplane_buffer, 0);
+ else
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC_VC1, CR_VEC_VC1_FE_BITPLANES_BASE_ADDR0), 0);
+ }
+ psb_cmdbuf_reg_end_block(cmdbuf);
+}
+
+//static void psb__VC1_FE_state(context_VC1_p ctx)
+//{
+// uint32_t lldma_record_offset;
+// psb_cmdbuf_p cmdbuf = ctx->obj_context->cmdbuf;
+// psb_surface_p deblock_surface = ctx->decoded_surface->psb_surface;
+
+/* See RENDER_BUFFER_HEADER */
+// *cmdbuf->cmd_idx++ = CMD_HEADER_VC1;
+
+// ctx->p_range_mapping_base = cmdbuf->cmd_idx++; /* Fill Luma Range Mapping Base later */
+
+/* VC1 Chroma Range Mapping Base Address */
+// RELOC(*cmdbuf->cmd_idx++, deblock_surface->buf.buffer_ofs + deblock_surface->chroma_offset, &deblock_surface->buf);
+
+// ctx->p_slice_params = cmdbuf->cmd_idx;
+// *cmdbuf->cmd_idx++ = 0; /* ui32SliceParams */
+
+// lldma_record_offset = psb_cmdbuf_lldma_create( cmdbuf, &ctx->preload_buffer, 0,
+// sizeof( VC1PRELOAD ), 0, LLDMA_TYPE_VC1_PRELOAD_SAVE );
+// RELOC(*cmdbuf->cmd_idx, lldma_record_offset, &(cmdbuf->buf));
+// cmdbuf->cmd_idx++;
+
+// lldma_record_offset = psb_cmdbuf_lldma_create( cmdbuf, &ctx->preload_buffer, 0,
+// sizeof( VC1PRELOAD ), 0, LLDMA_TYPE_VC1_PRELOAD_RESTORE );
+// RELOC(*cmdbuf->cmd_idx, lldma_record_offset, &(cmdbuf->buf));
+// cmdbuf->cmd_idx++;
+
+// ctx->slice_first_pic_last = cmdbuf->cmd_idx++;
+//}
+static void psb__VC1_FE_state(context_VC1_p ctx)
+{
+ uint32_t lldma_record_offset;
+ psb_cmdbuf_p cmdbuf = ctx->obj_context->cmdbuf;
+ uint32_t preload_size;
+
+ if (VC1_Header_Parser_HW)
+ preload_size = FWPARSER_VC1PRELOAD_SIZE;
+ else
+ preload_size = sizeof(VC1PRELOAD);
+ //psb_surface_p deblock_surface = ctx->decoded_surface->psb_surface;
+
+ *cmdbuf->cmd_idx++ = CMD_HEADER_VC1;
+ ctx->p_slice_params = cmdbuf->cmd_idx;
+ *cmdbuf->cmd_idx++ = 0;
+
+ lldma_record_offset = psb_cmdbuf_lldma_create(cmdbuf, &ctx->preload_buffer, 0,
+ preload_size, 0, LLDMA_TYPE_VC1_PRELOAD_SAVE);
+ RELOC(*cmdbuf->cmd_idx, lldma_record_offset, &(cmdbuf->buf));
+ cmdbuf->cmd_idx++;
+
+ lldma_record_offset = psb_cmdbuf_lldma_create(cmdbuf, &ctx->preload_buffer, 0,
+ preload_size, 0, LLDMA_TYPE_VC1_PRELOAD_RESTORE);
+ RELOC(*cmdbuf->cmd_idx, lldma_record_offset, &(cmdbuf->buf));
+ cmdbuf->cmd_idx++;
+
+ ctx->slice_first_pic_last = cmdbuf->cmd_idx++;
+
+ ctx->p_range_mapping_base = cmdbuf->cmd_idx++;
+ ctx->p_range_mapping_base1 = cmdbuf->cmd_idx++;
+ //RELOC(*cmdbuf->cmd_idx++, deblock_surface->buf.buffer_ofs + deblock_surface->chroma_offset, &deblock_surface->buf);
+
+ ctx->alt_output_flags = cmdbuf->cmd_idx++;
+ *ctx->alt_output_flags = 0;
+}
+
+static void psb__VC1_Send_Parse_Header_Cmd(context_VC1_p ctx, IMG_BOOL new_pic)
+{
+ PARSE_HEADER_CMD* pParseHeaderCMD;
+ VAPictureParameterBufferVC1 *pic_params = ctx->pic_params;
+ psb_cmdbuf_p cmdbuf = ctx->obj_context->cmdbuf;
+
+ //pParseHeaderCMD = (PARSE_HEADER_CMD*)mCtrlAlloc.AllocateSpace(sizeof(PARSE_HEADER_CMD));
+ pParseHeaderCMD = (void *)cmdbuf->cmd_idx;
+ cmdbuf->cmd_idx += sizeof(PARSE_HEADER_CMD) / sizeof(uint32_t);
+
+ pParseHeaderCMD->ui32Cmd = CMD_PARSE_HEADER;
+ if (!new_pic) {
+ pParseHeaderCMD->ui32Cmd |= CMD_PARSE_HEADER_NEWSLICE;
+ }
+
+// pParseHeaderCMD->ui32SeqHdrData = (sVC1HeaderParser.sSeqHdr.EXTENDED_DMV&0x1) << VC1_SEQHDR_EXTENDED_DMV;
+ pParseHeaderCMD->ui32SeqHdrData = (pic_params->mv_fields.bits.extended_dmv_flag) << VC1_SEQHDR_EXTENDED_DMV;
+
+// pParseHeaderCMD->ui32SeqHdrData |= (sVC1HeaderParser.sSeqHdr.PSF&0x1) << VC1_SEQHDR_PSF;
+ pParseHeaderCMD->ui32SeqHdrData |= (pic_params->sequence_fields.bits.psf) << VC1_SEQHDR_PSF;
+
+// pParseHeaderCMD->ui32SeqHdrData |= (sVC1HeaderParser.sSeqHdr.FINTERPFLAG&0x1) << VC1_SEQHDR_FINTERPFLAG;
+ pParseHeaderCMD->ui32SeqHdrData |= (pic_params->sequence_fields.bits.finterpflag) << VC1_SEQHDR_FINTERPFLAG;
+
+// pParseHeaderCMD->ui32SeqHdrData |= (sVC1HeaderParser.sSeqHdr.TFCNTRFLAG&0x1) << VC1_SEQHDR_TFCNTRFLAG;
+ pParseHeaderCMD->ui32SeqHdrData |= (pic_params->sequence_fields.bits.tfcntrflag) << VC1_SEQHDR_TFCNTRFLAG;;
+
+// pParseHeaderCMD->ui32SeqHdrData |= (sVC1HeaderParser.sSeqHdr.INTERLACE&0x1) << VC1_SEQHDR_INTERLACE;
+ pParseHeaderCMD->ui32SeqHdrData |= (pic_params->sequence_fields.bits.interlace) << VC1_SEQHDR_INTERLACE;
+
+// pParseHeaderCMD->ui32SeqHdrData |= (sVC1HeaderParser.sSeqHdr.PULLDOWN&0x1) << VC1_SEQHDR_PULLDOWN;
+ pParseHeaderCMD->ui32SeqHdrData |= (pic_params->sequence_fields.bits.pulldown) << VC1_SEQHDR_PULLDOWN;
+
+// pParseHeaderCMD->ui32SeqHdrData |= (sVC1HeaderParser.sSeqHdr.POSTPROCFLAG&0x1) << VC1_SEQHDR_POSTPROCFLAG;
+ pParseHeaderCMD->ui32SeqHdrData |= (pic_params->post_processing & 0x1) << VC1_SEQHDR_POSTPROCFLAG;
+
+// pParseHeaderCMD->ui32SeqHdrData |= (sVC1HeaderParser.sSeqHdr.VSTRANSFORM&0x1) << VC1_SEQHDR_VSTRANSFORM;
+ pParseHeaderCMD->ui32SeqHdrData |= (pic_params->transform_fields.bits.variable_sized_transform_flag) << VC1_SEQHDR_VSTRANSFORM;
+
+// pParseHeaderCMD->ui32SeqHdrData |= (rser.sSeqHdr.DQUANT&0x3) << VC1_SEQHDR_DQUANT;
+ pParseHeaderCMD->ui32SeqHdrData |= (pic_params->pic_quantizer_fields.bits.dquant) << VC1_SEQHDR_DQUANT;
+
+// pParseHeaderCMD->ui32SeqHdrData |= (sVC1HeaderParser.sSeqHdr.EXTENDED_MV&0x1) << VC1_SEQHDR_EXTENDED_MV;
+ pParseHeaderCMD->ui32SeqHdrData |= (pic_params->mv_fields.bits.extended_mv_flag) << VC1_SEQHDR_EXTENDED_MV;
+
+// pParseHeaderCMD->ui32SeqHdrData |= (sVC1HeaderParser.sSeqHdr.FASTUVMC&0x1) << VC1_SEQHDR_FASTUVMC;
+ pParseHeaderCMD->ui32SeqHdrData |= (pic_params->fast_uvmc_flag & 0x1) << VC1_SEQHDR_FASTUVMC;
+
+// pParseHeaderCMD->ui32SeqHdrData |= (sVC1HeaderParser.sSeqHdr.LOOPFILTER&0x1) << VC1_SEQHDR_LOOPFILTER;
+ pParseHeaderCMD->ui32SeqHdrData |= (pic_params->entrypoint_fields.bits.loopfilter) << VC1_SEQHDR_LOOPFILTER;
+
+// pParseHeaderCMD->ui32SeqHdrData |= (sVC1HeaderParser.sSeqHdr.REFDIST_FLAG&0x1) << VC1_SEQHDR_REFDIST_FLAG;
+ pParseHeaderCMD->ui32SeqHdrData |= (pic_params->reference_fields.bits.reference_distance_flag) << VC1_SEQHDR_REFDIST_FLAG;
+
+// pParseHeaderCMD->ui32SeqHdrData |= (sVC1HeaderParser.sSeqHdr.PANSCAN_FLAG&0x1) << VC1_SEQHDR_PANSCAN_FLAG;
+ pParseHeaderCMD->ui32SeqHdrData |= (pic_params->entrypoint_fields.bits.panscan_flag) << VC1_SEQHDR_PANSCAN_FLAG;
+
+// pParseHeaderCMD->ui32SeqHdrData |= (sVC1HeaderParser.sSeqHdr.MAXBFRAMES&0x7) << VC1_SEQHDR_MAXBFRAMES;
+ pParseHeaderCMD->ui32SeqHdrData |= (pic_params->sequence_fields.bits.max_b_frames) << VC1_SEQHDR_MAXBFRAMES;
+
+// pParseHeaderCMD->ui32SeqHdrData |= (sVC1HeaderParser.sSeqHdr.RANGERED&0x1) << VC1_SEQHDR_RANGERED;
+ pParseHeaderCMD->ui32SeqHdrData |= (pic_params->sequence_fields.bits.rangered) << VC1_SEQHDR_RANGERED;
+
+// pParseHeaderCMD->ui32SeqHdrData |= (sVC1HeaderParser.sSeqHdr.SYNCMARKER&0x1) << VC1_SEQHDR_SYNCMARKER;
+ pParseHeaderCMD->ui32SeqHdrData |= (pic_params->sequence_fields.bits.syncmarker) << VC1_SEQHDR_SYNCMARKER;
+
+// pParseHeaderCMD->ui32SeqHdrData |= (sVC1HeaderParser.sSeqHdr.MULTIRES&0x1) << VC1_SEQHDR_MULTIRES;
+ pParseHeaderCMD->ui32SeqHdrData |= (pic_params->sequence_fields.bits.multires) << VC1_SEQHDR_MULTIRES;
+
+// pParseHeaderCMD->ui32SeqHdrData |= (sVC1HeaderParser.sSeqHdr.QUANTIZER&0x3) << VC1_SEQHDR_QUANTIZER;
+ pParseHeaderCMD->ui32SeqHdrData |= (pic_params->pic_quantizer_fields.bits.quantizer) << VC1_SEQHDR_QUANTIZER;
+
+// pParseHeaderCMD->ui32SeqHdrData |= (sVC1HeaderParser.sSeqHdr.OVERLAP&0x1) << VC1_SEQHDR_OVERLAP;
+ pParseHeaderCMD->ui32SeqHdrData |= (pic_params->sequence_fields.bits.overlap) << VC1_SEQHDR_OVERLAP;
+
+// pParseHeaderCMD->ui32SeqHdrData |= (sVC1HeaderParser.sSeqHdr.PROFILE&0x3) << VC1_SEQHDR_PROFILE;
+ pParseHeaderCMD->ui32SeqHdrData |= (ctx->profile) << VC1_SEQHDR_PROFILE;
+
+// pParseHeaderCMD->ui32SeqHdrData |= (msPicParam.bSecondField&0x1) << VC1_SEQHDR_SECONDFIELD;
+ pParseHeaderCMD->ui32SeqHdrData |= (!pic_params->picture_fields.bits.is_first_field) << VC1_SEQHDR_SECONDFIELD;
+
+// pParseHeaderCMD->ui32SeqHdrData |= (mpDestFrame->FrameCodingMode()&0x3) << VC1_SEQHDR_FCM_CURRPIC;
+ pParseHeaderCMD->ui32SeqHdrData |= (pic_params->picture_fields.bits.frame_coding_mode & 0x3) << VC1_SEQHDR_FCM_CURRPIC;
+
+// pParseHeaderCMD->ui32SeqHdrData |= (mui8PicType&0x3) << VC1_SEQHDR_PICTYPE;
+ pParseHeaderCMD->ui32SeqHdrData |= (pic_params->picture_fields.bits.picture_type & 0x3) << VC1_SEQHDR_PICTYPE;
+
+// pParseHeaderCMD->ui32SeqHdrData |= ((msPicParam.bBidirectionalAveragingMode>>4)&0x1) << VC1_SEQHDR_ICFLAG;
+ pParseHeaderCMD->ui32SeqHdrData |= (pic_params->picture_fields.bits.intensity_compensation) << VC1_SEQHDR_ICFLAG;
+
+ pParseHeaderCMD->ui32PicDimensions = ctx->picture_width_mb;
+ pParseHeaderCMD->ui32PicDimensions |= (ctx->picture_height_mb << 16);
+
+// pParseHeaderCMD->ui32BitplaneAddr[0] = (psBitplaneHWBuffer[0]->GetTopDeviceMemAlloc())->GetDeviceVirtAddress();
+// pParseHeaderCMD->ui32BitplaneAddr[1] = (psBitplaneHWBuffer[1]->GetTopDeviceMemAlloc())->GetDeviceVirtAddress();
+// pParseHeaderCMD->ui32BitplaneAddr[2] = (psBitplaneHWBuffer[2]->GetTopDeviceMemAlloc())->GetDeviceVirtAddress();
+ RELOC(pParseHeaderCMD->ui32BitplaneAddr[0], ctx->bitplane_hw_buffer.buffer_ofs, &ctx->bitplane_hw_buffer);
+ RELOC(pParseHeaderCMD->ui32BitplaneAddr[1], ctx->bitplane_hw_buffer.buffer_ofs + 0xa000, &ctx->bitplane_hw_buffer);
+ RELOC(pParseHeaderCMD->ui32BitplaneAddr[2], ctx->bitplane_hw_buffer.buffer_ofs + 0xa000 * 2, &ctx->bitplane_hw_buffer);
+
+// pParseHeaderCMD->ui32VLCTableAddr = psVlcPackedTableData->GetTopDeviceMemAlloc()->GetDeviceVirtAddress();
+ RELOC(pParseHeaderCMD->ui32VLCTableAddr, ctx->vlc_packed_table.buffer_ofs, &ctx->vlc_packed_table);
+ /*
+ pParseHeaderCMD->ui32ICParamData[0] = ((msPicParam.wBitstreamFcodes >> 8) & 0xFF);
+ pParseHeaderCMD->ui32ICParamData[0] |= ((msPicParam.wBitstreamPCEelements >> 8) & 0xFF) << 8;
+ if( mpForwardRefFrame->TopFieldFirst() )
+ pParseHeaderCMD->ui32ICParamData[0] |= (1 << 16);
+ */
+ pParseHeaderCMD->ui32ICParamData[0] = ((pic_params->luma_scale >> 8) & 0xFF);
+ pParseHeaderCMD->ui32ICParamData[0] |= ((pic_params->luma_shift >> 8) & 0xFF) << 8;
+ if (ctx->bTFF_FwRefFrm)
+ pParseHeaderCMD->ui32ICParamData[0] |= (1 << 16);
+ /*
+ pParseHeaderCMD->ui32ICParamData[1] = (msPicParam.wBitstreamFcodes & 0xFF);
+ pParseHeaderCMD->ui32ICParamData[1] |= (msPicParam.wBitstreamPCEelements & 0xFF) << 8;
+ if( mpDestFrame->TopFieldFirst() )
+ pParseHeaderCMD->ui32ICParamData[1] |= (1 << 16);
+ */
+ pParseHeaderCMD->ui32ICParamData[1] = (pic_params->luma_scale & 0xFF);
+ pParseHeaderCMD->ui32ICParamData[1] |= (pic_params->luma_shift & 0xFF) << 8;
+ if (pic_params->picture_fields.bits.top_field_first)
+ pParseHeaderCMD->ui32ICParamData[1] |= (1 << 16);
+
+ pParseHeaderCMD->ui32ICParamData[0] = 0x00010000;
+ pParseHeaderCMD->ui32ICParamData[1] = 0x00010020;
+ PARSE_HEADER_CMD tmp = *pParseHeaderCMD;
+ tmp;
+
+}
+
+static VAStatus psb__VC1_process_slice(context_VC1_p ctx,
+ VASliceParameterBufferVC1 *slice_param,
+ object_buffer_p obj_buffer)
+{
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+
+ ASSERT((obj_buffer->type == VASliceDataBufferType) || (obj_buffer->type == VAProtectedSliceDataBufferType));
+
+ psb__information_message("VC1 process slice\n");
+ psb__information_message(" size = %08x offset = %08x\n", slice_param->slice_data_size, slice_param->slice_data_offset);
+ psb__information_message(" vertical pos = %d offset = %d\n", slice_param->slice_vertical_position, slice_param->macroblock_offset);
+ psb__information_message(" slice_data_flag = %d\n", slice_param->slice_data_flag);
+
+ if ((slice_param->slice_data_flag == VA_SLICE_DATA_FLAG_BEGIN) ||
+ (slice_param->slice_data_flag == VA_SLICE_DATA_FLAG_ALL)) {
+ if (0 == slice_param->slice_data_size) {
+ vaStatus = VA_STATUS_ERROR_UNKNOWN;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+ ASSERT(!ctx->split_buffer_pending);
+
+ /* Initialise the command buffer */
+ /* TODO: Reuse current command buffer until full */
+ psb_context_get_next_cmdbuf(ctx->obj_context);
+
+ psb__VC1_FE_state(ctx);
+// psb__VC1_write_VLC_tables(ctx);
+// psb__VC1_build_VLC_tables(ctx);
+
+ psb_cmdbuf_lldma_write_bitstream(ctx->obj_context->cmdbuf,
+ obj_buffer->psb_buffer,
+ obj_buffer->psb_buffer->buffer_ofs + slice_param->slice_data_offset,
+ (slice_param->slice_data_size),
+ slice_param->macroblock_offset,
+ (ctx->profile == WMF_PROFILE_ADVANCED) ? CMD_ENABLE_RBDU_EXTRACTION : 0);
+
+ if (slice_param->slice_data_flag == VA_SLICE_DATA_FLAG_BEGIN) {
+ ctx->split_buffer_pending = TRUE;
+ }
+ } else {
+ ASSERT(ctx->split_buffer_pending);
+ ASSERT(0 == slice_param->slice_data_offset);
+ /* Create LLDMA chain to continue buffer */
+ if (slice_param->slice_data_size) {
+ psb_cmdbuf_lldma_write_bitstream_chained(ctx->obj_context->cmdbuf,
+ obj_buffer->psb_buffer,
+ slice_param->slice_data_size);
+ }
+ }
+
+ if ((slice_param->slice_data_flag == VA_SLICE_DATA_FLAG_ALL) ||
+ (slice_param->slice_data_flag == VA_SLICE_DATA_FLAG_END)) {
+ if (slice_param->slice_data_flag == VA_SLICE_DATA_FLAG_END) {
+ ASSERT(ctx->split_buffer_pending);
+ }
+
+ psb__VC1_load_sequence_registers(ctx);
+
+ if (!VC1_Header_Parser_HW) {
+ psb__VC1_write_VLC_tables(ctx);
+ psb__VC1_build_VLC_tables(ctx);
+ } else {
+ psb__VC1_Send_Parse_Header_Cmd(ctx, ctx->is_first_slice);
+ }
+
+ psb__VC1_load_picture_registers(ctx, slice_param);
+
+ psb__VC1_setup_bitplane(ctx);
+
+ psb__VC1_send_rendec_params(ctx, slice_param);
+
+ psb__VC1_write_kick(ctx, slice_param);
+
+ ctx->split_buffer_pending = FALSE;
+ ctx->obj_context->video_op = psb_video_vld;
+ ctx->obj_context->first_mb = 0;
+ ctx->obj_context->flags = 0;
+ if (ctx->is_first_slice) {
+ ctx->obj_context->flags |= FW_VA_RENDER_IS_FIRST_SLICE;
+ }
+ //if (ctx->bitplane_present)
+ {
+ ctx->obj_context->flags |= FW_VA_RENDER_VC1_BITPLANE_PRESENT;
+ }
+ ctx->obj_context->last_mb = ((ctx->picture_height_mb - 1) << 8) | (ctx->picture_width_mb - 1);
+
+ *ctx->slice_first_pic_last = (ctx->obj_context->first_mb << 16) | (ctx->obj_context->last_mb);
+#ifdef DEBUG_TRACE_VERBOSE
+ psb__debug_schedule_hexdump("Preload buffer", &ctx->preload_buffer, 0, PRELOAD_BUFFER_SIZE);
+ psb__debug_schedule_hexdump("AUXMSB buffer", &ctx->aux_msb_buffer, 0, 0x8000 /* AUXMSB_BUFFER_SIZE */);
+ psb__debug_schedule_hexdump("VLC Table", &ctx->vlc_packed_table, 0, gui16vc1VlcTableSize * sizeof(IMG_UINT16));
+#endif
+
+ if (psb_context_submit_cmdbuf(ctx->obj_context)) {
+ vaStatus = VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ ctx->is_first_slice = FALSE; /* Reset */
+ }
+ return vaStatus;
+}
+
+static VAStatus psb__VC1_process_slice_data(context_VC1_p ctx, object_buffer_p obj_buffer)
+{
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ VASliceParameterBufferVC1 *slice_param;
+ int buffer_idx = 0;
+ int element_idx = 0;
+
+ ASSERT((obj_buffer->type == VASliceDataBufferType) || (obj_buffer->type == VAProtectedSliceDataBufferType));
+
+ ASSERT(ctx->pic_params);
+ ASSERT(ctx->slice_param_list_idx);
+
+ if (!ctx->pic_params) {
+ /* Picture params missing */
+ vaStatus = VA_STATUS_ERROR_UNKNOWN;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+ if ((NULL == obj_buffer->psb_buffer) ||
+ (0 == obj_buffer->size)) {
+ /* We need to have data in the bitstream buffer */
+ vaStatus = VA_STATUS_ERROR_UNKNOWN;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ while (buffer_idx < ctx->slice_param_list_idx) {
+ object_buffer_p slice_buf = ctx->slice_param_list[buffer_idx];
+ if (element_idx >= slice_buf->num_elements) {
+ /* Move to next buffer */
+ element_idx = 0;
+ buffer_idx++;
+ continue;
+ }
+
+ slice_param = (VASliceParameterBufferVC1 *) slice_buf->buffer_data;
+ slice_param += element_idx;
+ element_idx++;
+ vaStatus = psb__VC1_process_slice(ctx, slice_param, obj_buffer);
+ if (vaStatus != VA_STATUS_SUCCESS) {
+ DEBUG_FAILURE;
+ break;
+ }
+ }
+ ctx->slice_param_list_idx = 0;
+
+ return vaStatus;
+}
+
+static VAStatus pnw_VC1_BeginPicture(
+ object_context_p obj_context)
+{
+ INIT_CONTEXT_VC1
+
+ if (ctx->pic_params) {
+ free(ctx->pic_params);
+ ctx->pic_params = NULL;
+ }
+ ctx->is_first_slice = TRUE;
+
+ return VA_STATUS_SUCCESS;
+}
+
+static VAStatus pnw_VC1_RenderPicture(
+ object_context_p obj_context,
+ object_buffer_p *buffers,
+ int num_buffers)
+{
+ int i;
+ INIT_CONTEXT_VC1
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+
+ for (i = 0; i < num_buffers; i++) {
+ object_buffer_p obj_buffer = buffers[i];
+
+ switch (obj_buffer->type) {
+ case VAPictureParameterBufferType:
+ psb__information_message("pnw_VC1_RenderPicture got VAPictureParameterBuffer\n");
+ vaStatus = psb__VC1_process_picture_param(ctx, obj_buffer);
+ DEBUG_FAILURE;
+ break;
+
+ case VABitPlaneBufferType:
+ psb__information_message("pnw_VC1_RenderPicture got VABitPlaneBuffer\n");
+ vaStatus = psb__VC1_process_bitplane(ctx, obj_buffer);
+ DEBUG_FAILURE;
+ break;
+
+ case VASliceParameterBufferType:
+ psb__information_message("pnw_VC1_RenderPicture got VASliceParameterBufferType\n");
+ vaStatus = psb__VC1_add_slice_param(ctx, obj_buffer);
+ DEBUG_FAILURE;
+ break;
+
+ case VASliceDataBufferType:
+ case VAProtectedSliceDataBufferType:
+
+ psb__information_message("pnw_VC1_RenderPicture got %s\n", SLICEDATA_BUFFER_TYPE(obj_buffer->type));
+ vaStatus = psb__VC1_process_slice_data(ctx, obj_buffer);
+ DEBUG_FAILURE;
+ break;
+
+ default:
+ vaStatus = VA_STATUS_ERROR_UNKNOWN;
+ DEBUG_FAILURE;
+ }
+ if (vaStatus != VA_STATUS_SUCCESS) {
+ break;
+ }
+ }
+
+ return vaStatus;
+}
+
+static VAStatus pnw_VC1_EndPicture(
+ object_context_p obj_context)
+{
+ INIT_CONTEXT_VC1
+
+ if (psb_context_flush_cmdbuf(ctx->obj_context)) {
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ ASSERT(ctx->pic_params);
+ if (!ctx->pic_params) {
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ /********* Keep some picture parameters of the previously decoded picture ***********/
+ if (PIC_TYPE_IS_REF(ctx->pic_params->picture_fields.bits.picture_type)) { // I or P
+ /* Assume that the picture that we just decoded (the picture previous to the one that
+ is about to be decoded) is the backward reference picture for a B picture. */
+ /* TODO: Make this more robust */
+ ctx->ui8FCM_Ref2Pic = ctx->pic_params->picture_fields.bits.frame_coding_mode;
+
+ /* For interlaced field pictures only */
+ if ((ctx->pic_params->picture_fields.bits.frame_coding_mode != VC1_FCM_FLDI) || !ctx->pic_params->picture_fields.bits.is_first_field) {
+ ctx->bTFF_BwRefFrm = ctx->pic_params->picture_fields.bits.top_field_first;
+ }
+ }
+
+ ctx->bRef1RangeRed = ctx->bRef0RangeRed;
+ if (PIC_TYPE_IS_REF(ctx->pic_params->picture_fields.bits.picture_type)) {
+ ctx->bRef0RangeRed = ctx->pic_params->range_reduction_frame;
+ }
+ /***********************************************************************************/
+
+ free(ctx->pic_params);
+ ctx->pic_params = NULL;
+
+ return VA_STATUS_SUCCESS;
+}
+
+struct format_vtable_s pnw_VC1_vtable = {
+queryConfigAttributes:
+ pnw_VC1_QueryConfigAttributes,
+validateConfig:
+ pnw_VC1_ValidateConfig,
+createContext:
+ pnw_VC1_CreateContext,
+destroyContext:
+ pnw_VC1_DestroyContext,
+beginPicture:
+ pnw_VC1_BeginPicture,
+renderPicture:
+ pnw_VC1_RenderPicture,
+endPicture:
+ pnw_VC1_EndPicture
+};
diff --git a/src/pnw_VC1.h b/src/pnw_VC1.h
new file mode 100644
index 0000000..cc649b0
--- /dev/null
+++ b/src/pnw_VC1.h
@@ -0,0 +1,38 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ * Waldo Bastian <waldo.bastian@intel.com>
+ * Zeng Li <zeng.li@intel.com>
+ *
+ */
+
+#ifndef _PNW_VC1_H_
+#define _PNW_VC1_H_
+
+#include "psb_drv_video.h"
+
+extern struct format_vtable_s pnw_VC1_vtable;
+
+#endif /* _PNW_VC1_H_ */
diff --git a/src/pnw_cmdbuf.c b/src/pnw_cmdbuf.c
new file mode 100644
index 0000000..1b96bec
--- /dev/null
+++ b/src/pnw_cmdbuf.c
@@ -0,0 +1,653 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ * Waldo Bastian <waldo.bastian@intel.com>
+ * Zeng Li <zeng.li@intel.com>
+ *
+ */
+
+
+#include "pnw_cmdbuf.h"
+
+#include <unistd.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <errno.h>
+#include <string.h>
+#include <wsbm/wsbm_manager.h>
+
+#include "psb_def.h"
+#include "pnw_hostcode.h"
+#include "psb_ws_driver.h"
+#include "psb_drm.h"
+
+/*
+ * Buffer layout:
+ * cmd_base <= cmd_idx < CMD_END() == reloc_base
+ * reloc_base <= reloc_idx < RELOC_END() == (reloc_size)
+ */
+
+#define RELOC_END(cmdbuf) (cmdbuf->cmd_base + cmdbuf->size)
+
+#define CMD_END(cmdbuf) (cmdbuf->reloc_base)
+
+#define RELOC_SIZE (0x3000)
+
+#define CMD_SIZE (0x3000)
+
+#define RELOC_MARGIN (0x0800)
+
+#define CMD_MARGIN (0x0400)
+
+
+#define MAX_CMD_COUNT 12
+
+#define MTX_SEG_SIZE (0x0800)
+
+
+/*
+ * Create command buffer
+ */
+VAStatus pnw_cmdbuf_create(
+ object_context_p obj_context,
+ psb_driver_data_p driver_data,
+ pnw_cmdbuf_p cmdbuf)
+{
+ context_ENC_p ctx = (context_ENC_p) obj_context->format_data;
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ unsigned int size = CMD_SIZE + RELOC_SIZE;
+
+ cmdbuf->size = 0;
+ cmdbuf->cmd_base = NULL;
+ cmdbuf->cmd_idx = NULL;
+ cmdbuf->reloc_base = NULL;
+ cmdbuf->reloc_idx = NULL;
+ cmdbuf->buffer_refs_count = 0;
+ cmdbuf->buffer_refs_allocated = 10;
+ cmdbuf->buffer_refs = (psb_buffer_p *) calloc(1, sizeof(psb_buffer_p) * cmdbuf->buffer_refs_allocated);
+ if (NULL == cmdbuf->buffer_refs) {
+ cmdbuf->buffer_refs_allocated = 0;
+ vaStatus = VA_STATUS_ERROR_ALLOCATION_FAILED;
+ }
+ if (VA_STATUS_SUCCESS == vaStatus) {
+ vaStatus = psb_buffer_create(driver_data, size, psb_bt_cpu_only, &cmdbuf->buf);
+ cmdbuf->size = size;
+ }
+
+ if (VA_STATUS_SUCCESS != vaStatus) {
+ free(cmdbuf->buffer_refs);
+ cmdbuf->buffer_refs = NULL;
+ cmdbuf->buffer_refs_allocated = 0;
+ return vaStatus;
+ }
+
+ /* create topaz parameter buffer */
+ vaStatus = psb_buffer_create(driver_data, ctx->pic_params_size * MAX_TOPAZ_CORES, psb_bt_cpu_vpu, &cmdbuf->pic_params);
+ if (VA_STATUS_SUCCESS != vaStatus)
+ goto error_out5;
+
+ /* create header buffer */
+ vaStatus = psb_buffer_create(driver_data, ctx->header_buffer_size, psb_bt_cpu_vpu, &cmdbuf->header_mem);
+ if (VA_STATUS_SUCCESS != vaStatus)
+ goto error_out2;
+
+ /* create slice parameter buffer */
+ vaStatus = psb_buffer_create(driver_data, ctx->sliceparam_buffer_size, psb_bt_cpu_vpu, &cmdbuf->slice_params);
+ if (VA_STATUS_SUCCESS != vaStatus)
+ goto error_out1;
+
+ /* all cmdbuf share one MTX_CURRENT_IN_PARAMS since every MB has a MTX_CURRENT_IN_PARAMS structure
+ * and filling this structure for all MB is very time-consuming
+ */
+
+ cmdbuf->topaz_in_params_I = &ctx->topaz_in_params_I;
+ cmdbuf->topaz_in_params_P = &ctx->topaz_in_params_P;
+
+ cmdbuf->topaz_below_params = &ctx->topaz_below_params;
+ cmdbuf->topaz_above_params = &ctx->topaz_above_params;
+
+ return vaStatus;
+
+error_out1:
+ psb_buffer_destroy(&cmdbuf->header_mem);
+error_out2:
+ psb_buffer_destroy(&cmdbuf->pic_params);
+error_out5:
+ pnw_cmdbuf_destroy(cmdbuf);
+
+ return vaStatus;
+}
+
+/*
+ * Destroy buffer
+ */
+void pnw_cmdbuf_destroy(pnw_cmdbuf_p cmdbuf)
+{
+ if (cmdbuf->size) {
+ psb_buffer_destroy(&cmdbuf->buf);
+ cmdbuf->size = 0;
+ }
+ if (cmdbuf->buffer_refs_allocated) {
+ free(cmdbuf->buffer_refs);
+ cmdbuf->buffer_refs = NULL;
+ cmdbuf->buffer_refs_allocated = 0;
+ }
+
+ psb_buffer_destroy(&cmdbuf->pic_params);
+ psb_buffer_destroy(&cmdbuf->header_mem);
+ psb_buffer_destroy(&cmdbuf->slice_params);
+
+}
+
+/*
+ * Reset buffer & map
+ *
+ * Returns 0 on success
+ */
+int pnw_cmdbuf_reset(pnw_cmdbuf_p cmdbuf)
+{
+ int ret;
+
+ cmdbuf->cmd_base = NULL;
+ cmdbuf->cmd_idx = NULL;
+ cmdbuf->reloc_base = NULL;
+ cmdbuf->reloc_idx = NULL;
+
+ cmdbuf->buffer_refs_count = 0;
+ cmdbuf->cmd_count = 0;
+
+ ret = psb_buffer_map(&cmdbuf->buf, &cmdbuf->cmd_base);
+ if (ret) {
+ return ret;
+ }
+
+ cmdbuf->cmd_start = cmdbuf->cmd_base;
+ cmdbuf->cmd_idx = (uint32_t *) cmdbuf->cmd_base;
+
+ cmdbuf->reloc_base = cmdbuf->cmd_base + CMD_SIZE;
+ cmdbuf->reloc_idx = (struct drm_psb_reloc *) cmdbuf->reloc_base;
+
+ /* Add ourselves to the buffer list */
+ pnw_cmdbuf_buffer_ref(cmdbuf, &cmdbuf->buf); /* cmd buf == 0 */
+ return ret;
+}
+
+/*
+ * Unmap buffer
+ *
+ * Returns 0 on success
+ */
+int pnw_cmdbuf_unmap(pnw_cmdbuf_p cmdbuf)
+{
+ cmdbuf->cmd_base = NULL;
+ cmdbuf->cmd_start = NULL;
+ cmdbuf->cmd_idx = NULL;
+ cmdbuf->reloc_base = NULL;
+ cmdbuf->reloc_idx = NULL;
+ cmdbuf->cmd_count = 0;
+ psb_buffer_unmap(&cmdbuf->buf);
+ return 0;
+}
+
+
+/*
+ * Reference an addtional buffer "buf" in the command stream
+ * Returns a reference index that can be used to refer to "buf" in
+ * relocation records, -1 on error
+ */
+int pnw_cmdbuf_buffer_ref(pnw_cmdbuf_p cmdbuf, psb_buffer_p buf)
+{
+ int item_loc = 0;
+
+ /*Reserve the same TTM BO twice will cause kernel lock up*/
+ while ((item_loc < cmdbuf->buffer_refs_count)
+ && (wsbmKBufHandle(wsbmKBuf(cmdbuf->buffer_refs[item_loc]->drm_buf))
+ != wsbmKBufHandle(wsbmKBuf(buf->drm_buf))))
+ //while( (item_loc < cmdbuf->buffer_refs_count) && (cmdbuf->buffer_refs[item_loc] != buf) )
+ {
+ item_loc++;
+ }
+ if (item_loc == cmdbuf->buffer_refs_count) {
+ /* Add new entry */
+ if (item_loc >= cmdbuf->buffer_refs_allocated) {
+ /* Allocate more entries */
+ int new_size = cmdbuf->buffer_refs_allocated + 10;
+ psb_buffer_p *new_array;
+ new_array = (psb_buffer_p *) calloc(1, sizeof(psb_buffer_p) * new_size);
+ if (NULL == new_array) {
+ return -1; /* Allocation failure */
+ }
+ memcpy(new_array, cmdbuf->buffer_refs, sizeof(psb_buffer_p) * cmdbuf->buffer_refs_allocated);
+ free(cmdbuf->buffer_refs);
+ cmdbuf->buffer_refs_allocated = new_size;
+ cmdbuf->buffer_refs = new_array;
+ }
+ cmdbuf->buffer_refs[item_loc] = buf;
+ cmdbuf->buffer_refs_count++;
+ buf->status = psb_bs_queued;
+ }
+ return item_loc;
+}
+
+/* Creates a relocation record for a DWORD in the mapped "cmdbuf" at address
+ * "addr_in_cmdbuf"
+ * The relocation is based on the device virtual address of "ref_buffer"
+ * "buf_offset" is be added to the device virtual address, and the sum is then
+ * right shifted with "align_shift".
+ * "mask" determines which bits of the target DWORD will be updated with the so
+ * constructed address. The remaining bits will be filled with bits from "background".
+ */
+void pnw_cmdbuf_add_relocation(pnw_cmdbuf_p cmdbuf,
+ uint32_t *addr_in_dst_buffer,/*addr of dst_buffer for the DWORD*/
+ psb_buffer_p ref_buffer,
+ uint32_t buf_offset,
+ uint32_t mask,
+ uint32_t background,
+ uint32_t align_shift,
+ uint32_t dst_buffer,
+ uint32_t *start_of_dst_buffer) /*Index of the list refered by cmdbuf->buffer_refs */
+{
+ struct drm_psb_reloc *reloc = cmdbuf->reloc_idx;
+ uint64_t presumed_offset = wsbmBOOffsetHint(ref_buffer->drm_buf);
+
+ reloc->where = addr_in_dst_buffer - start_of_dst_buffer; /* Offset in DWORDs */
+
+ reloc->buffer = pnw_cmdbuf_buffer_ref(cmdbuf, ref_buffer);
+ ASSERT(reloc->buffer != -1);
+
+ reloc->reloc_op = PSB_RELOC_OP_OFFSET;
+#ifndef VA_EMULATOR
+ if (presumed_offset) {
+ uint32_t new_val = presumed_offset + buf_offset;
+
+ new_val = ((new_val >> align_shift) << (align_shift << PSB_RELOC_ALSHIFT_SHIFT));
+ new_val = (background & ~mask) | (new_val & mask);
+ *addr_in_dst_buffer = new_val;
+ } else {
+ *addr_in_dst_buffer = PSB_RELOC_MAGIC;
+ }
+#else
+ /* indicate subscript of relocation buffer */
+ *addr_in_dst_buffer = reloc - (struct drm_psb_reloc *)cmdbuf->reloc_base;
+#endif
+ reloc->mask = mask;
+ reloc->shift = align_shift << PSB_RELOC_ALSHIFT_SHIFT;
+ reloc->pre_add = buf_offset;
+ reloc->background = background;
+ reloc->dst_buffer = dst_buffer;
+ cmdbuf->reloc_idx++;
+
+ ASSERT(((void *)(cmdbuf->reloc_idx)) < RELOC_END(cmdbuf));
+}
+
+/* Prepare one command package */
+void pnw_cmdbuf_insert_command_package(object_context_p obj_context,
+ int32_t core,
+ uint32_t cmd_id,
+ psb_buffer_p command_data,
+ uint32_t offset)
+{
+ uint32_t cmd_word;
+ context_ENC_p ctx = (context_ENC_p) obj_context->format_data;
+ pnw_cmdbuf_p cmdbuf = obj_context->pnw_cmdbuf;
+ int interrupt_flags;
+
+ /* only MTX_CMDID_END_PIC by master core generate interrupt */
+ interrupt_flags = (cmd_id == MTX_CMDID_END_PIC) | (core == 0);
+ interrupt_flags = 0; /*CMD composed by user space does not generate Interrupt*/
+
+ /* Calculate command word */
+ cmd_id &= MTX_CMDWORD_ID_MASK;
+ core &= MTX_CMDWORD_CORE_MASK;
+
+ core %= MAX_TOPAZ_CORES;
+
+ cmd_word = ((ctx->CmdCount & MTX_CMDWORD_COUNT_MASK) << MTX_CMDWORD_COUNT_SHIFT)
+ | ((0 & MTX_CMDWORD_INT_MASK) << MTX_CMDWORD_INT_SHIFT) /* Do not generate interrupt */
+ | (core << MTX_CMDWORD_CORE_SHIFT)
+ | (cmd_id << MTX_CMDWORD_ID_SHIFT);
+
+ /* write command word into cmdbuf */
+ *cmdbuf->cmd_idx++ = cmd_word;
+
+ /* Command data address */
+ if (command_data) {
+ RELOC_CMDBUF_PNW(cmdbuf->cmd_idx, offset, command_data);
+ cmdbuf->cmd_idx++;
+ } else {
+ *cmdbuf->cmd_idx++ = 0;
+ }
+
+
+ *cmdbuf->cmd_idx++ = 0; /* Write back buffer address */
+
+ *cmdbuf->cmd_idx++ = 0; /*ctx->CmdCount; */ /* Write back value */
+
+ ctx->LastSync[(ctx->FrmIdx) & 0x1][core] = ctx->CmdCount;
+
+ /* increment the command counter */
+ ctx->CmdCount = (ctx->CmdCount + 1) % MAX_TOPAZ_CMD_COUNT;
+}
+
+/*
+ * Advances "obj_context" to the next cmdbuf
+ *
+ * Returns 0 on success
+ */
+int pnw_context_get_next_cmdbuf(object_context_p obj_context)
+{
+ pnw_cmdbuf_p cmdbuf;
+ int ret;
+
+ if (obj_context->pnw_cmdbuf) {
+ return 0;
+ }
+
+ obj_context->cmdbuf_current++;
+ if (obj_context->cmdbuf_current >= PNW_MAX_CMDBUFS_ENCODE) {
+ obj_context->cmdbuf_current = 0;
+ }
+
+ cmdbuf = obj_context->pnw_cmdbuf_list[obj_context->cmdbuf_current];
+ ret = pnw_cmdbuf_reset(cmdbuf);
+ if (!ret) {
+ /* Success */
+ obj_context->pnw_cmdbuf = cmdbuf;
+ }
+
+ /* added pic_params/slice_params into ref, so the index is 1/2 */
+ pnw_cmdbuf_buffer_ref(cmdbuf, &cmdbuf->pic_params);
+ pnw_cmdbuf_buffer_ref(cmdbuf, &cmdbuf->slice_params);
+
+ return ret;
+}
+
+/*
+ * This is the user-space do-it-all interface to the drm cmdbuf ioctl.
+ * It allows different buffers as command- and reloc buffer. A list of
+ * cliprects to apply and whether to copy the clipRect content to all
+ * scanout buffers (damage = 1).
+ */
+/*
+ * Don't add debug statements in this function, it gets called with the
+ * DRM lock held and output to an X terminal can cause X to deadlock
+ */
+static int
+pnwDRMCmdBuf(int fd, int ioctl_offset, psb_buffer_p *buffer_list, int buffer_count, unsigned cmdBufHandle,
+ unsigned cmdBufOffset, unsigned cmdBufSize,
+ unsigned relocBufHandle, unsigned relocBufOffset,
+ unsigned numRelocs, drm_clip_rect_t * clipRects, int damage,
+ unsigned engine, unsigned fence_flags, struct psb_ttm_fence_rep *fence_rep)
+{
+ drm_psb_cmdbuf_arg_t ca;
+ struct psb_validate_arg *arg_list;
+ int i;
+ int ret;
+ uint64_t mask = PSB_GPU_ACCESS_MASK;
+
+ arg_list = (struct psb_validate_arg *) calloc(1, sizeof(struct psb_validate_arg) * buffer_count);
+ if (arg_list == NULL) {
+ psb__error_message("Allocate memory failed\n");
+ return -ENOMEM;
+ }
+
+ for (i = 0; i < buffer_count; i++) {
+ struct psb_validate_arg *arg = &(arg_list[i]);
+ struct psb_validate_req *req = &arg->d.req;
+
+ memset(arg, 0, sizeof(*arg));
+ req->next = (unsigned long) & (arg_list[i+1]);
+
+ req->buffer_handle = wsbmKBufHandle(wsbmKBuf(buffer_list[i]->drm_buf));
+ req->group = 0;
+ req->set_flags = (PSB_GPU_ACCESS_READ | PSB_GPU_ACCESS_WRITE) & mask;
+ req->clear_flags = (~(PSB_GPU_ACCESS_READ | PSB_GPU_ACCESS_WRITE)) & mask;
+#if 1
+ req->presumed_gpu_offset = (uint64_t)wsbmBOOffsetHint(buffer_list[i]->drm_buf);
+ req->presumed_flags = PSB_USE_PRESUMED;
+ if ((req->presumed_gpu_offset >> 28) & 0x1) {
+ psb__error_message("buffer is at the address topaz can not access\n");
+ ret = -1;
+ goto out;
+ }
+#else
+ req->presumed_flags = 0;
+#endif
+ req->pad64 = (uint32_t)buffer_list[i]->pl_flags;
+ }
+ arg_list[buffer_count-1].d.req.next = 0;
+
+ memset(&ca, 0, sizeof(ca));
+
+ ca.buffer_list = (uint64_t)((unsigned long)arg_list);
+ ca.clip_rects = (uint64_t)((unsigned long)clipRects);
+ ca.cmdbuf_handle = cmdBufHandle;
+ ca.cmdbuf_offset = cmdBufOffset;
+ ca.cmdbuf_size = cmdBufSize;
+ ca.reloc_handle = relocBufHandle;
+ ca.reloc_offset = relocBufOffset;
+ ca.num_relocs = numRelocs;
+ ca.engine = engine;
+ ca.fence_flags = fence_flags;
+ ca.fence_arg = (uint64_t)((unsigned long)fence_rep);
+ ca.damage = damage;
+
+
+ do {
+ ret = drmCommandWrite(fd, ioctl_offset, &ca, sizeof(ca));
+ } while (ret == EAGAIN);
+
+ if (ret)
+ goto out;
+
+ for (i = 0; i < buffer_count; i++) {
+ struct psb_validate_arg *arg = &(arg_list[i]);
+ struct psb_validate_rep *rep = &arg->d.rep;
+
+ if (!arg->handled) {
+ ret = -EFAULT;
+ goto out;
+ }
+ if (arg->ret != 0) {
+ ret = arg->ret;
+ goto out;
+ }
+ wsbmUpdateKBuf(wsbmKBuf(buffer_list[i]->drm_buf),
+ rep->gpu_offset, rep->placement, rep->fence_type_mask);
+ }
+out:
+ free(arg_list);
+ for (i = 0; i < buffer_count; i++) {
+ /*
+ * Buffer no longer queued in userspace
+ */
+ switch (buffer_list[i]->status) {
+ case psb_bs_queued:
+ buffer_list[i]->status = psb_bs_ready;
+ break;
+
+ case psb_bs_abandoned:
+ psb_buffer_destroy(buffer_list[i]);
+ free(buffer_list[i]);
+ break;
+
+ default:
+ /* Not supposed to happen */
+ ASSERT(0);
+ }
+ }
+
+ return ret;
+}
+
+#if 0
+static struct _WsbmFenceObject *
+lnc_fence_wait(psb_driver_data_p driver_data,
+ struct psb_ttm_fence_rep *fence_rep, int *status)
+
+{
+ struct _WsbmFenceObject *fence = NULL;
+ int ret = -1;
+
+ /* copy fence information */
+ if (fence_rep->error != 0) {
+ psb__error_message("drm failed to create a fence"
+ " and has idled the HW\n");
+ DEBUG_FAILURE_RET;
+ return NULL;
+ }
+
+ fence = wsbmFenceCreate(driver_data->fence_mgr, fence_rep->fence_class,
+ fence_rep->fence_type,
+ (void *)fence_rep->handle,
+ 0);
+ if (fence)
+ *status = wsbmFenceFinish(fence, fence_rep->fence_type, 0);
+
+ return fence;
+}
+#endif
+
+/*
+ * Submits the current cmdbuf
+ *
+ * Returns 0 on success
+ */
+int pnw_context_submit_cmdbuf(object_context_p obj_context)
+{
+
+ return 0;
+}
+
+
+
+/*
+ * FrameSkip is only meaningful for RC enabled mode
+ * Topaz raises this flag after surface N encoding is finished (vaSyncSurface gets back)
+ * then for the next encode surface N+1 (ctx->src_surface) frameskip flag is cleared in vaBeginPicuture
+ * and is always set in vaEndPicture:lnc_PatchRCMode
+ * vaQuerySurfaceStatus is supposed only to be called after vaEndPicture/vaSyncSurface,
+ * The caller should ensure the surface pertains to an encode context
+ */
+int pnw_surface_get_frameskip(psb_driver_data_p driver_data,
+ psb_surface_p surface,
+ int *frame_skip)
+{
+ /* bit31 indicate if frameskip is already settled, it is used to record the frame skip flag for old surfaces
+ * bit31 is cleared when the surface is used as encode render target or reference/reconstrucure target
+ */
+ if (GET_SURFACE_INFO_skipped_flag(surface) & SURFACE_INFO_SKIP_FLAG_SETTLED) {
+ *frame_skip = GET_SURFACE_INFO_skipped_flag(surface) & 1;
+ } else
+ *frame_skip = 0;
+
+ return 0;
+}
+
+
+/*
+ * Flushes all cmdbufs
+ */
+int pnw_context_flush_cmdbuf(object_context_p obj_context)
+{
+ pnw_cmdbuf_p cmdbuf = obj_context->pnw_cmdbuf;
+ psb_driver_data_p driver_data = obj_context->driver_data;
+ unsigned int fence_flags;
+ struct psb_ttm_fence_rep fence_rep;
+ unsigned int reloc_offset;
+ unsigned int num_relocs;
+ int ret;
+ unsigned int cmdbuffer_size = (void *) cmdbuf->cmd_idx - cmdbuf->cmd_start; /* In bytes */
+
+ ASSERT(cmdbuffer_size < CMD_SIZE);
+ ASSERT((void *) cmdbuf->cmd_idx < CMD_END(cmdbuf));
+ /* LOCK */
+ ret = LOCK_HARDWARE(driver_data);
+ if (ret) {
+ UNLOCK_HARDWARE(driver_data);
+ DEBUG_FAILURE_RET;
+ return ret;
+ }
+
+ /* Now calculate the total number of relocations */
+ reloc_offset = cmdbuf->reloc_base - cmdbuf->cmd_base;
+ num_relocs = (((void *) cmdbuf->reloc_idx) - cmdbuf->reloc_base) / sizeof(struct drm_psb_reloc);
+
+ pnw_cmdbuf_unmap(cmdbuf);
+
+ ASSERT(NULL == cmdbuf->reloc_base);
+
+#ifdef DEBUG_TRACE
+ fence_flags = 0;
+#else
+ fence_flags = DRM_PSB_FENCE_NO_USER;
+#endif
+
+#ifndef LNC_ENGINE_ENCODE
+#define LNC_ENGINE_ENCODE 5
+#endif
+
+ wsbmWriteLockKernelBO();
+ ret = pnwDRMCmdBuf(driver_data->drm_fd, driver_data->execIoctlOffset, /* FIXME Still use ioctl cmd? */
+ cmdbuf->buffer_refs, cmdbuf->buffer_refs_count, wsbmKBufHandle(wsbmKBuf(cmdbuf->buf.drm_buf)),
+ 0, cmdbuffer_size,/*unsigned cmdBufSize*/
+ wsbmKBufHandle(wsbmKBuf(cmdbuf->buf.drm_buf)), reloc_offset, num_relocs,
+ 0 /* clipRects */, 0, LNC_ENGINE_ENCODE, fence_flags, &fence_rep); /* FIXME use LNC_ENGINE_ENCODE */
+
+ wsbmWriteUnlockKernelBO();
+ UNLOCK_HARDWARE(driver_data);
+
+ if (ret) {
+ obj_context->pnw_cmdbuf = NULL;
+
+ DEBUG_FAILURE_RET;
+ return ret;
+ }
+
+#if 0 /*DEBUG_TRACE*/
+ int status = -1;
+ struct _WsbmFenceObject *fence = NULL;
+
+ fence = lnc_fence_wait(driver_data, &fence_rep, &status);
+ psb__information_message("psb_fence_wait returns: %d (fence=0x%08x)\n", status, fence);
+
+ if (fence)
+ wsbmFenceUnreference(fence);
+
+#endif
+
+ obj_context->pnw_cmdbuf = NULL;
+
+ return 0;
+}
+
+
+int pnw_get_parallel_core_number(object_context_p obj_context)
+{
+
+ context_ENC_p ctx = (context_ENC_p)(obj_context->format_data);
+ return ctx->ParallelCores;
+
+}
diff --git a/src/pnw_cmdbuf.h b/src/pnw_cmdbuf.h
new file mode 100644
index 0000000..3f3af0b
--- /dev/null
+++ b/src/pnw_cmdbuf.h
@@ -0,0 +1,223 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ * Waldo Bastian <waldo.bastian@intel.com>
+ * Zeng Li <zeng.li@intel.com>
+ *
+ */
+
+#ifndef _PNW_CMDBUF_H_
+#define _PNW_CMDBUF_H_
+
+#include "psb_drv_video.h"
+#include "psb_surface.h"
+#include "psb_buffer.h"
+#include "psb_drm.h"
+
+#include <stdint.h>
+
+#define MTX_CMDWORD_ID_MASK (0x7f)
+#define MTX_CMDWORD_ID_SHIFT (0)
+#define MTX_CMDWORD_CORE_MASK (0xff)
+#define MTX_CMDWORD_CORE_SHIFT (8)
+#define MTX_CMDWORD_COUNT_MASK (0x7fff)
+#define MTX_CMDWORD_COUNT_SHIFT (16)
+#define MTX_CMDWORD_INT_SHIFT (7)
+#define MTX_CMDWORD_INT_MASK (1)
+
+#define PNW_CMDBUF_START_PIC_IDX (0)
+#define PNW_CMDBUF_SEQ_HEADER_IDX (1)
+#define PNW_CMDBUF_PIC_HEADER_IDX (2)
+
+struct pnw_cmdbuf_s {
+ struct psb_buffer_s buf;
+ unsigned int size;
+
+ /* Relocation records */
+ void *reloc_base;
+ struct drm_psb_reloc *reloc_idx;
+
+ /* CMD stream data */
+ int cmd_count;
+ void *cmd_base;
+ void *cmd_start;
+ uint32_t *cmd_idx;
+ uint32_t *cmd_idx_saved[3]; /* idx saved for dual-core adjustion */
+
+ /* all frames share one topaz param buffer which contains InParamBase
+ * AboveParam/BellowParam, and the buffer allocated when the context is created
+ */
+ struct psb_buffer_s *topaz_in_params_I;
+ void *topaz_in_params_I_p;
+
+ struct psb_buffer_s *topaz_in_params_P;
+ void *topaz_in_params_P_p;
+
+ struct psb_buffer_s *topaz_below_params;
+ void *topaz_below_params_p;
+
+ /* Every frame has its own PIC_PARAMS, SLICE_PARAMS and HEADER mem
+ */
+
+ /* PicParams: */
+ struct psb_buffer_s pic_params;
+ void *pic_params_p;
+
+ /* SeqHeaderMem PicHeaderMem EOSeqHeaderMem EOStreamHeaderMem SliceHeaderMem[MAX_SLICES_PER_PICTURE]*/
+ struct psb_buffer_s header_mem;
+ void *header_mem_p;
+
+ /*SliceParams[MAX_SLICES_PER_PICTURE] */
+ struct psb_buffer_s slice_params;
+ void *slice_params_p;
+
+ /* AboveParams[MAX_TOPAZ_CORES]; */
+ struct psb_buffer_s *topaz_above_params;
+ void *topaz_above_params_p;
+
+ /* Referenced buffers */
+ psb_buffer_p *buffer_refs;
+ int buffer_refs_count;
+ int buffer_refs_allocated;
+
+};
+
+typedef struct pnw_cmdbuf_s *pnw_cmdbuf_p;
+
+/*
+ * Create command buffer
+ */
+VAStatus pnw_cmdbuf_create(object_context_p obj_context,
+ psb_driver_data_p driver_data,
+ pnw_cmdbuf_p cmdbuf
+ );
+
+/*
+ * Destroy buffer
+ */
+void pnw_cmdbuf_destroy(pnw_cmdbuf_p cmdbuf);
+
+/*
+ * Reset buffer & map
+ *
+ * Returns 0 on success
+ */
+int pnw_cmdbuf_reset(pnw_cmdbuf_p cmdbuf);
+
+/*
+ * Unmap buffer
+ *
+ * Returns 0 on success
+ */
+int pnw_cmdbuf_unmap(pnw_cmdbuf_p cmdbuf);
+
+/*
+ * Reference an addtional buffer "buf" in the command stream
+ * Returns a reference index that can be used to refer to "buf" in
+ * relocation records, on error -1 is returned.
+ */
+int pnw_cmdbuf_buffer_ref(pnw_cmdbuf_p cmdbuf, psb_buffer_p buf);
+
+/* Creates a relocation record for a DWORD in the mapped "cmdbuf" at address
+ * "addr_in_cmdbuf"
+ * The relocation is based on the device virtual address of "ref_buffer"
+ * "buf_offset" is be added to the device virtual address, and the sum is then
+ * right shifted with "align_shift".
+ * "mask" determines which bits of the target DWORD will be updated with the so
+ * constructed address. The remaining bits will be filled with bits from "background".
+ */
+void pnw_cmdbuf_add_relocation(pnw_cmdbuf_p cmdbuf,
+ uint32_t *addr_in_dst_buffer,/*addr of dst_buffer for the DWORD*/
+ psb_buffer_p ref_buffer,
+ uint32_t buf_offset,
+ uint32_t mask,
+ uint32_t background,
+ uint32_t align_shift,
+ uint32_t dst_buffer, /*Index of the list refered by cmdbuf->buffer_refs */
+ uint32_t *start_of_dst_buffer);
+
+#define RELOC_CMDBUF_PNW(dest, offset, buf) pnw_cmdbuf_add_relocation(cmdbuf, (uint32_t*)(dest), buf, offset, 0XFFFFFFFF, 0, 0, 0, cmdbuf->cmd_start)
+
+/* do relocation in PIC_PARAMS: src/dst Y/UV base, InParamsBase, CodeBase, BellowParamsBase, AboveParamsBase */
+#define RELOC_PIC_PARAMS_PNW(dest, offset, buf) pnw_cmdbuf_add_relocation(cmdbuf, (uint32_t*)(dest), buf, offset, 0XFFFFFFFF, 0, 0, 1, (uint32_t *)cmdbuf->pic_params_p)
+
+/* do relocation in SLICE_PARAMS: reference Y/UV base,CodedData */
+#define RELOC_SLICE_PARAMS_PNW(dest, offset, buf) pnw_cmdbuf_add_relocation(cmdbuf, (uint32_t*)(dest), buf, offset, 0XFFFFFFFF, 0, 0, 2,(uint32_t *)cmdbuf->slice_params_p)
+
+/* operation number is inserted by DRM */
+/*
+#define pnw_cmdbuf_insert_command(cmdbuf,cmdhdr,size,hint) \
+ do { *cmdbuf->cmd_idx++ = ((cmdhdr) << 1) | ((size)<<8) | ((hint)<<16); } while(0)
+*/
+
+#define pnw_cmdbuf_insert_command_param(param) \
+ do { *cmdbuf->cmd_idx++ = param; } while(0)
+
+
+#define pnw_cmdbuf_insert_reg_write(base, offset, value) \
+ do { *cmdbuf->cmd_idx++ = base + offset; *cmdbuf->cmd_idx++ = value; count++; } while(0)
+
+void pnw_cmdbuf_insert_command_package(object_context_p obj_context,
+ int32_t core,
+ uint32_t cmd_id,
+ psb_buffer_p command_data,
+ uint32_t offset);
+
+/*
+ * Advances "obj_context" to the next cmdbuf
+ *
+ * Returns 0 on success
+ */
+int pnw_context_get_next_cmdbuf(object_context_p obj_context);
+
+/*
+ * Submits the current cmdbuf
+ *
+ * Returns 0 on success
+ */
+int pnw_context_submit_cmdbuf(object_context_p obj_context);
+
+/*
+ * Get a encode surface FRAMESKIP flag, and store it into frame_skip argument
+ *
+ * Returns 0 on success
+ */
+int pnw_surface_get_frameskip(psb_driver_data_p driver_data, psb_surface_p psb_surface, int *frame_skip);
+
+/*
+ * Flushes the pending cmdbuf
+ *
+ * Return 0 on success
+ */
+int pnw_context_flush_cmdbuf(object_context_p obj_context);
+
+/*
+ * Get the number of paralled cores used.
+ *
+ * Return the number of paralled cores used.
+ */
+int pnw_get_parallel_core_number(object_context_p obj_context);
+#endif /* _PNW_CMDBUF_H_ */
+
diff --git a/src/pnw_hostcode.c b/src/pnw_hostcode.c
new file mode 100644
index 0000000..0aed76f
--- /dev/null
+++ b/src/pnw_hostcode.c
@@ -0,0 +1,2065 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ * Elaine Wang <elaine.wang@intel.com>
+ * Zeng Li <zeng.li@intel.com>
+ *
+ */
+
+
+#include "psb_drv_video.h"
+
+//#include "pnw_H263ES.h"
+#include "pnw_hostcode.h"
+#include "hwdefs/topazSC_defs.h"
+#include "psb_def.h"
+#include "psb_cmdbuf.h"
+#include <stdio.h>
+#include "psb_output.h"
+#include <wsbm/wsbm_manager.h>
+#include "pnw_hostheader.h"
+
+#define ALIGN_TO(value, align) ((value + align - 1) & ~(align - 1))
+#define PAGE_ALIGN(value) ALIGN_TO(value, 4096)
+
+/*static VAStatus pnw_DetectFrameSkip(context_ENC_p ctx);*/
+
+static void pnw__update_rcdata(
+ context_ENC_p psContext,
+ PIC_PARAMS *psPicParams,
+ IMG_RC_PARAMS *psRCParams);
+
+IMG_UINT32 MVEARegBase[4] = {0x13000, 0x23000, 0x33000, 0x43000}; /* From TopazSC TRM */
+
+/* H264 Zero bias */
+//#define ZERO_BIAS
+
+const static IMG_INT8 H263_QPLAMBDA_MAP[31] = {
+ /* For Quality Evaluation: Not using New H263 Table
+ 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1 };
+ */
+// Instead use old MPEG4 QPLambda Table
+ 0, 0, 1, 1, 2,
+ 2, 3, 3, 4, 4,
+ 4, 5, 5, 5, 6,
+ 6, 6, 7, 7, 7,
+ 7, 8, 8, 8, 8,
+ 9, 9, 9, 9, 10, 10
+};
+
+// New MP4 Lambda table
+const static IMG_INT8 MPEG4_QPLAMBDA_MAP[31] = {
+ 0, 0, 1, 2, 3,
+ 3, 4, 4, 5, 5,
+ 6, 6, 7, 7, 8,
+ 8, 9, 9, 10, 10,
+ 11, 11, 11, 11, 12,
+ 12, 12, 12, 13, 13, 13
+};
+
+// new H.264 Lambda
+const static IMG_INT8 H264_QPLAMBDA_MAP[40] = {
+ 2, 2, 2, 2, 3, 3, 4, 4,
+ 4, 5, 5, 5, 5, 5, 6, 6,
+ 6, 7, 7, 7, 8, 8, 9, 11,
+ 13, 14, 15, 17, 20, 23, 27, 31,
+ 36, 41, 51, 62, 74, 79, 85, 91
+};
+
+static IMG_INT16 H264InterBias(IMG_INT8 i8QP)
+{
+ //IMG_INT16 aui16InterBiasValues[8] = {70,140,210,280,350,420,490,560};
+
+ if (i8QP >= 44)
+ return 600;
+ if (i8QP <= 35)
+ return 20;
+
+ //return aui16InterBiasValues[i8QP-36];
+ return (70 * (i8QP - 35));
+}
+
+static IMG_INT16 H264SkipBias(IMG_INT8 i8QP, TH_SKIP_SCALE eSkipScale)
+{
+ IMG_INT16 i16Lambda;
+
+ // pull out lambda from the table
+ i16Lambda = i8QP - 12;
+ i16Lambda = (i16Lambda < 0) ? 0 : i16Lambda;
+ i16Lambda = H264_QPLAMBDA_MAP[i16Lambda];
+
+ // now do the multiplication to avoid using the actual multiply we will do this with shifts and adds/subtractions it is probable that the compiler would
+ // pick up the multiply and optimise appropriatly but we aren't sure
+ // * 12 = 8 + *4
+ switch (eSkipScale) {
+ default:
+ case TH_SKIP_0:
+ i16Lambda = 0;
+ break;
+ case TH_SKIP_24: /* iLambda * 24 == iLambda * 2 * 12 */
+ i16Lambda <<= 1;
+ /* break deliberatly not used as we want to apply skip12 to skip24*/
+ case TH_SKIP_12: /* iLambda * 12 == iLambda * (8 + 4) == (iLambda * 8) + (iLambda * 4) == (iLambda << 3) + (iLambda <<2) */
+ i16Lambda = (i16Lambda << 3) + (i16Lambda << 2);
+ }
+ return i16Lambda;
+}
+
+static IMG_INT16 H264Intra4x4Bias(IMG_INT8 i8QP)
+{
+ IMG_INT16 i16Lambda;
+
+ // pull out lambda from the table
+ i16Lambda = i8QP - 12;
+ i16Lambda = (i16Lambda < 0) ? 0 : i16Lambda;
+ i16Lambda = H264_QPLAMBDA_MAP[i16Lambda];
+
+ // now do the multiplication to avoid using the actual multiply we will do this with shifts and adds/subtractions it is possible that the compiler would
+ // pick up the multiply and optimise appropriatly but we aren't sure
+ // iLambda * 60 = iLambda * (64 -4) == iLambda*64 - iLambda*4 == iLamda<<6 - iLambda<<2
+ i16Lambda = (i16Lambda << 6) - (i16Lambda << 2);
+ return i16Lambda;
+}
+
+static int CalculateDCScaler(IMG_INT iQP, IMG_BOOL bChroma)
+{
+ IMG_INT iDCScaler;
+ if (!bChroma) {
+ if (iQP > 0 && iQP < 5) {
+ iDCScaler = 8;
+ } else if (iQP > 4 && iQP < 9) {
+ iDCScaler = 2 * iQP;
+ } else if (iQP > 8 && iQP < 25) {
+ iDCScaler = iQP + 8;
+ } else {
+ iDCScaler = 2 * iQP - 16;
+ }
+ } else {
+ if (iQP > 0 && iQP < 5) {
+ iDCScaler = 8;
+ } else if (iQP > 4 && iQP < 25) {
+ iDCScaler = (iQP + 13) / 2;
+ } else {
+ iDCScaler = iQP - 6;
+ }
+ }
+ return iDCScaler;
+}
+
+static void LoadMPEG4Bias(
+ pnw_cmdbuf_p cmdbuf,
+ IMG_INT32 i32Core,
+ IMG_UINT8 ui8THSkip
+)
+{
+ IMG_INT16 n;
+ IMG_INT16 iX;
+ IMG_UINT32 ui32RegVal;
+ IMG_UINT8 uiDCScaleL, uiDCScaleC, uiLambda;
+ IMG_UINT32 uIPESkipVecBias, iInterMBBias, uSPESkipVecBias, iIntra16Bias;
+ IMG_UINT32 count = 0, cmd_word = 0;
+ uint32_t *pCount;
+
+ cmd_word = (MTX_CMDID_SW_WRITEREG & MTX_CMDWORD_ID_MASK) << MTX_CMDWORD_ID_SHIFT;
+ *cmdbuf->cmd_idx++ = cmd_word;
+ pCount = cmdbuf->cmd_idx;
+ cmdbuf->cmd_idx++;
+
+ // this should be done for each core....
+ pnw_cmdbuf_insert_reg_write(MVEARegBase[i32Core], MVEA_CR_SPE_ZERO_THRESH, SPE_ZERO_THRESHOLD);
+ for (n = 31; n > 0; n--) {
+ iX = n - 12;
+ if (iX < 0) {
+ iX = 0;
+ }
+ // Dont Write QP Values To ESB -- IPE will write these values
+ // Update the quantization parameter which includes doing Lamda and the Chroma QP
+
+ uiDCScaleL = CalculateDCScaler(n, IMG_FALSE);
+ uiDCScaleC = CalculateDCScaler(n, IMG_TRUE);
+ uiLambda = MPEG4_QPLAMBDA_MAP[n - 1];
+
+ ui32RegVal = uiDCScaleL;
+ ui32RegVal |= (uiDCScaleC) << 8;
+ ui32RegVal |= (uiLambda) << 16;
+ pnw_cmdbuf_insert_reg_write(MVEARegBase[i32Core], MVEA_CR_IPE_LAMBDA_TABLE, ui32RegVal);
+
+
+ uIPESkipVecBias = TH_SKIP_IPE * uiLambda;
+ iInterMBBias = TH_INTER * (n - TH_INTER_QP);
+ if (iInterMBBias < 0)
+ iInterMBBias = 0;
+ if (iInterMBBias > TH_INTER_MAX_LEVEL)
+ iInterMBBias = TH_INTER_MAX_LEVEL;
+ uSPESkipVecBias = TH_SKIP_SPE * uiLambda;
+ iIntra16Bias = 0;
+
+ if (n & 1) {
+ pnw_cmdbuf_insert_reg_write(MVEARegBase[i32Core], MVEA_CR_IPE_MV_BIAS_TABLE, uIPESkipVecBias);
+ pnw_cmdbuf_insert_reg_write(MVEARegBase[i32Core], MVEA_CR_SPE_PRED_VECTOR_BIAS_TABLE, uIPESkipVecBias);
+ pnw_cmdbuf_insert_reg_write(MVEARegBase[i32Core], MVEA_CR_SPE_INTRA16_BIAS_TABLE, iIntra16Bias);
+ pnw_cmdbuf_insert_reg_write(MVEARegBase[i32Core], MVEA_CR_SPE_INTER_BIAS_TABLE, iInterMBBias);
+ }
+ }
+ *pCount = count;
+}
+
+static void LoadH263Bias(
+ pnw_cmdbuf_p cmdbuf, IMG_INT32 i32Core, IMG_UINT8 ui8THSkip)
+{
+ IMG_INT16 n;
+ IMG_INT16 iX;
+ IMG_UINT32 ui32RegVal;
+ IMG_UINT8 uiDCScaleL, uiDCScaleC, uiLambda;
+ IMG_UINT32 uIPESkipVecBias, iInterMBBias, uSPESkipVecBias, iIntra16Bias;
+ IMG_UINT32 count = 0, cmd_word = 0;
+ uint32_t *pCount;
+
+ cmd_word = (MTX_CMDID_SW_WRITEREG & MTX_CMDWORD_ID_MASK) << MTX_CMDWORD_ID_SHIFT;
+ *cmdbuf->cmd_idx++ = cmd_word;
+ pCount = cmdbuf->cmd_idx;
+ cmdbuf->cmd_idx++;
+
+
+ // this should be done for each core....
+ pnw_cmdbuf_insert_reg_write(MVEARegBase[i32Core], MVEA_CR_SPE_ZERO_THRESH, SPE_ZERO_THRESHOLD);
+ for (n = 31; n > 0; n--) {
+ iX = n - 12;
+ if (iX < 0) {
+ iX = 0;
+ }
+ // Dont Write QP Values To ESB -- IPE will write these values
+ // Update the quantization parameter which includes doing Lamda and the Chroma QP
+
+ uiDCScaleL = CalculateDCScaler(n, IMG_FALSE);
+ uiDCScaleC = CalculateDCScaler(n, IMG_TRUE);
+ uiLambda = H263_QPLAMBDA_MAP[n - 1];
+
+ ui32RegVal = uiDCScaleL;
+ ui32RegVal |= (uiDCScaleC) << 8;
+ ui32RegVal |= (uiLambda) << 16;
+
+ pnw_cmdbuf_insert_reg_write(MVEARegBase[i32Core], MVEA_CR_IPE_LAMBDA_TABLE, ui32RegVal);
+
+
+ uIPESkipVecBias = TH_SKIP_IPE * uiLambda;
+ iInterMBBias = TH_INTER * (n - TH_INTER_QP);
+ if (iInterMBBias < 0)
+ iInterMBBias = 0;
+ if (iInterMBBias > TH_INTER_MAX_LEVEL)
+ iInterMBBias = TH_INTER_MAX_LEVEL;
+ uSPESkipVecBias = TH_SKIP_SPE * uiLambda;
+ iIntra16Bias = 0;
+ //
+ if (n & 1) {
+ pnw_cmdbuf_insert_reg_write(MVEARegBase[i32Core], MVEA_CR_IPE_MV_BIAS_TABLE, uIPESkipVecBias);
+ pnw_cmdbuf_insert_reg_write(MVEARegBase[i32Core], MVEA_CR_SPE_PRED_VECTOR_BIAS_TABLE, uIPESkipVecBias);
+ pnw_cmdbuf_insert_reg_write(MVEARegBase[i32Core], MVEA_CR_SPE_INTRA16_BIAS_TABLE, iIntra16Bias);
+ pnw_cmdbuf_insert_reg_write(MVEARegBase[i32Core], MVEA_CR_SPE_INTER_BIAS_TABLE, iInterMBBias);
+ }
+ }
+ *pCount = count;
+}
+
+static void LoadH264Bias(
+ pnw_cmdbuf_p cmdbuf, IMG_INT32 i32Core, IMG_UINT8 ui8THSkip, IMG_INT8 i8QpOff)
+{
+ IMG_INT8 n;
+ IMG_INT8 iX;
+ IMG_UINT32 ui32RegVal;
+ IMG_UINT32 uIPESkipVecBias, iInterMBBias, uSPESkipVecBias, iIntra16Bias;
+ IMG_UINT32 count = 0, cmd_word = 0;
+ uint32_t *pCount;
+
+ cmd_word = (MTX_CMDID_SW_WRITEREG & MTX_CMDWORD_ID_MASK) << MTX_CMDWORD_ID_SHIFT;
+ *cmdbuf->cmd_idx++ = cmd_word;
+ pCount = cmdbuf->cmd_idx;
+ cmdbuf->cmd_idx++;
+
+
+ IMG_BYTE PVR_QP_SCALE_CR[76] = {
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
+ 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
+ 28, 29, 29, 30, 31, 32, 32, 33, 34, 34, 35, 35, 36, 36, 37, 37,
+ 37, 38, 38, 38, 39, 39, 39, 39,
+ 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
+ };
+
+ for (n = 51; n >= 0; n--) {
+ iX = n - 12;
+ if (iX < 0) {
+ iX = 0;
+ }
+ iX = n - 12;
+ if (iX < 0) {
+ iX = 0;
+ }
+ // Dont Write QP Values To ESB -- IPE will write these values
+ // Update the quantization parameter which includes doing Lamda and the Chroma QP
+ ui32RegVal = PVR_QP_SCALE_CR[n + 12 + i8QpOff ];
+ ui32RegVal |= ((H264_QPLAMBDA_MAP[iX] * 24) / 16) << 8;
+ ui32RegVal |= (H264_QPLAMBDA_MAP[iX]) << 16;
+
+#ifdef ZERO_BIAS
+ pnw_cmdbuf_insert_reg_write(MVEARegBase[i32Core], MVEA_CR_IPE_LAMBDA_TABLE, (2 << 16) | F_ENCODE(3, MVEA_CR_IPE_ALPHA_OR_DC_SCALE_CHR_TABLE) | F_ENCODE(PVR_QP_SCALE_CR[n], MVEA_CR_IPE_QPC_OR_DC_SCALE_LUMA_TABLE));
+#else
+ pnw_cmdbuf_insert_reg_write(MVEARegBase[i32Core], MVEA_CR_IPE_LAMBDA_TABLE, ui32RegVal);
+#endif
+
+ }
+ for (n = 52; n >= 0; n -= 2) {
+ IMG_INT8 qp = n;
+ if (qp > 51) qp = 51;
+
+ uIPESkipVecBias = H264SkipBias(qp, ui8THSkip);
+ iInterMBBias = H264InterBias(qp);
+ uSPESkipVecBias = H264SkipBias(qp, ui8THSkip);
+ iIntra16Bias = H264Intra4x4Bias(qp);
+
+#ifdef ZERO_BIAS
+ pnw_cmdbuf_insert_reg_write(MVEARegBase[i32Core], MVEA_CR_IPE_MV_BIAS_TABLE, 0);
+ pnw_cmdbuf_insert_reg_write(MVEARegBase[i32Core], MVEA_CR_SPE_PRED_VECTOR_BIAS_TABLE, 0);
+ pnw_cmdbuf_insert_reg_write(MVEARegBase[i32Core], MVEA_CR_SPE_INTRA16_BIAS_TABLE, 0);
+ pnw_cmdbuf_insert_reg_write(MVEARegBase[i32Core], MVEA_CR_SPE_INTER_BIAS_TABLE, 0);
+#else
+ pnw_cmdbuf_insert_reg_write(MVEARegBase[i32Core], MVEA_CR_IPE_MV_BIAS_TABLE, uIPESkipVecBias);
+ pnw_cmdbuf_insert_reg_write(MVEARegBase[i32Core], MVEA_CR_SPE_PRED_VECTOR_BIAS_TABLE, uIPESkipVecBias);
+ pnw_cmdbuf_insert_reg_write(MVEARegBase[i32Core], MVEA_CR_SPE_INTRA16_BIAS_TABLE, iIntra16Bias);
+ pnw_cmdbuf_insert_reg_write(MVEARegBase[i32Core], MVEA_CR_SPE_INTER_BIAS_TABLE, iInterMBBias);
+#endif
+
+ }
+
+ pnw_cmdbuf_insert_reg_write(MVEARegBase[i32Core], MVEA_CR_SPE_ZERO_THRESH, 0);
+ *pCount = count;
+}
+
+
+static VAStatus pnw__alloc_context_buffer(context_ENC_p ctx, unsigned char is_JPEG)
+{
+ int width, height;
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+
+ /* width and height should be source surface's w and h or ?? */
+ width = ctx->obj_context->picture_width;
+ height = ctx->obj_context->picture_height;
+
+ if (is_JPEG == 0) {
+ ctx->pic_params_size = 256;
+
+ ctx->header_buffer_size = 7 * HEADER_SIZE + MAX_SLICES_PER_PICTURE * HEADER_SIZE;
+
+ ctx->seq_header_ofs = 0;
+ ctx->pic_header_ofs = HEADER_SIZE;
+ ctx->eoseq_header_ofs = 2 * HEADER_SIZE;
+ ctx->eostream_header_ofs = 3 * HEADER_SIZE;
+ ctx->aud_header_ofs = 4 * HEADER_SIZE;
+ ctx->sei_buf_prd_ofs = 5 * HEADER_SIZE;
+ ctx->sei_pic_tm_ofs = 6 * HEADER_SIZE;
+ ctx->slice_header_ofs = 7 * HEADER_SIZE;
+ ctx->in_params_ofs = 0;
+
+ ctx->sliceparam_buffer_size = ((sizeof(SLICE_PARAMS) + 15) & 0xfff0) * MAX_SLICES_PER_PICTURE;
+ /* All frame share same MTX_CURRENT_IN_PARAMS and above/bellow param
+ * create MTX_CURRENT_IN_PARAMS buffer seperately
+ * every MB has one MTX_CURRENT_IN_PARAMS structure, and the (N+1) frame can
+ * reuse (N) frame's structure
+ */
+ ctx->in_params_size = ((~0xf) & (15 + 1 + (width + 15) * (height + 15) / (16 * 16))) * sizeof(MTX_CURRENT_IN_PARAMS);
+ ctx->below_params_size = ((BELOW_PARAMS_SIZE * width * height / (16 * 16)) + 0xf) & (~0xf);
+ ctx->above_params_size = ((width / 16) * 128 + 15) & (~0xf) ;
+
+ vaStatus = psb_buffer_create(ctx->obj_context->driver_data, ctx->in_params_size, psb_bt_cpu_vpu, &ctx->topaz_in_params_I);
+ if (VA_STATUS_SUCCESS != vaStatus) {
+ return vaStatus;
+ }
+
+ vaStatus = psb_buffer_create(ctx->obj_context->driver_data, ctx->in_params_size, psb_bt_cpu_vpu, &ctx->topaz_in_params_P);
+ if (VA_STATUS_SUCCESS != vaStatus) {
+ psb_buffer_destroy(&ctx->topaz_in_params_I);
+ return vaStatus;
+ }
+
+ vaStatus = psb_buffer_create(ctx->obj_context->driver_data, ctx->below_params_size * 4, psb_bt_cpu_vpu, &ctx->topaz_below_params);
+ if (VA_STATUS_SUCCESS != vaStatus) {
+ psb_buffer_destroy(&ctx->topaz_in_params_P);
+ psb_buffer_destroy(&ctx->topaz_in_params_I);
+ return vaStatus;
+ }
+
+ vaStatus = psb_buffer_create(ctx->obj_context->driver_data, ctx->above_params_size * 4, psb_bt_cpu_vpu, &ctx->topaz_above_params);
+ if (VA_STATUS_SUCCESS != vaStatus) {
+ psb_buffer_destroy(&ctx->topaz_in_params_P);
+ psb_buffer_destroy(&ctx->topaz_in_params_I);
+ psb_buffer_destroy(&ctx->topaz_below_params);
+ return vaStatus;
+ }
+ ctx->below_params_ofs = 0;
+ ctx->above_params_ofs = 0;
+ } else {
+ /*JPEG encode need three kinds of buffer but doesn't need above/below buffers.*/
+ ctx->pic_params_size = (sizeof(JPEG_MTX_QUANT_TABLE) + 0xf) & (~0xf);
+
+ ctx->header_buffer_size = (sizeof(JPEG_MTX_DMA_SETUP) + 0xf) & (~0xf);
+ ctx->sliceparam_buffer_size = 16; /* Not used*/
+ }
+ return vaStatus;
+}
+
+unsigned int pnw__get_ipe_control(enum drm_pnw_topaz_codec eEncodingFormat)
+{
+ unsigned int RegVal = 0;
+
+ RegVal = F_ENCODE(2, MVEA_CR_IPE_GRID_FINE_SEARCH) |
+ F_ENCODE(0, MVEA_CR_IPE_GRID_SEARCH_SIZE) |
+ F_ENCODE(1, MVEA_CR_IPE_Y_FINE_SEARCH);
+
+ switch (eEncodingFormat) {
+ case IMG_CODEC_H263_NO_RC:
+ case IMG_CODEC_H263_VBR:
+ case IMG_CODEC_H263_CBR:
+ RegVal |= F_ENCODE(0, MVEA_CR_IPE_BLOCKSIZE) | F_ENCODE(0, MVEA_CR_IPE_ENCODING_FORMAT);
+ break;
+ case IMG_CODEC_MPEG4_NO_RC:
+ case IMG_CODEC_MPEG4_VBR:
+ case IMG_CODEC_MPEG4_CBR:
+ RegVal |= F_ENCODE(1, MVEA_CR_IPE_BLOCKSIZE) | F_ENCODE(1, MVEA_CR_IPE_ENCODING_FORMAT);
+ default:
+ break;
+ case IMG_CODEC_H264_NO_RC:
+ case IMG_CODEC_H264_VBR:
+ case IMG_CODEC_H264_CBR:
+ case IMG_CODEC_H264_VCM:
+ RegVal |= F_ENCODE(2, MVEA_CR_IPE_BLOCKSIZE) | F_ENCODE(2, MVEA_CR_IPE_ENCODING_FORMAT);
+ break;
+ }
+ RegVal |= F_ENCODE(6, MVEA_CR_IPE_Y_CANDIDATE_NUM);
+ return RegVal;
+}
+
+
+void pnw_DestroyContext(object_context_p obj_context)
+{
+ context_ENC_p ctx;
+ ctx = (context_ENC_p)obj_context->format_data;
+ if (NULL != ctx->slice_param_cache)
+ free(ctx->slice_param_cache);
+ if (NULL == ctx->save_seq_header_p)
+ free(ctx->save_seq_header_p);
+ free(obj_context->format_data);
+ obj_context->format_data = NULL;
+}
+
+VAStatus pnw_CreateContext(
+ object_context_p obj_context,
+ object_config_p obj_config,
+ unsigned char is_JPEG)
+{
+ int width, height;
+ int i;
+ unsigned short SearchWidth, SearchHeight, SearchLeftOffset, SearchTopOffset;
+ context_ENC_p ctx;
+ VAStatus vaStatus;
+
+ width = obj_context->picture_width;
+ height = obj_context->picture_height;
+ ctx = (context_ENC_p) calloc(1, sizeof(struct context_ENC_s));
+ if (NULL == ctx) {
+ vaStatus = VA_STATUS_ERROR_ALLOCATION_FAILED;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ obj_context->format_data = (void*) ctx;
+ ctx->obj_context = obj_context;
+
+ ctx->RawWidth = (unsigned short) width;
+ ctx->RawHeight = (unsigned short) height;
+
+ if (is_JPEG == 0) {
+ ctx->Width = (unsigned short)(~0xf & (width + 0xf));
+ ctx->Height = (unsigned short)(~0xf & (height + 0xf));
+ } else {
+ /*JPEG only require them are even*/
+ ctx->Width = (unsigned short)(~0x1 & (width + 0x1));
+ ctx->Height = (unsigned short)(~0x1 & (height + 0x1));
+ }
+
+ /* pre-calculated values based on other stream properties */
+ SearchHeight = min(MVEA_LRB_SEARCH_HEIGHT, ctx->Height);
+ SearchWidth = min(MVEA_LRB_SEARCH_WIDTH, ctx->Width);
+ SearchLeftOffset = (((SearchWidth / 2) / 16) * 16);
+ SearchTopOffset = (((SearchHeight / 2) / 16) * 16);
+
+ ctx->HeightMinus16MinusLRBTopOffset = ctx->Height - (SearchTopOffset + 16);
+ ctx->HeightMinus32MinusLRBTopOffset = ctx->Height - (SearchTopOffset + 32);
+ ctx->HeightMinusLRB_TopAndBottom_OffsetsPlus16 = ctx->Height - (SearchTopOffset + SearchTopOffset + 16);
+ ctx->HeightMinusLRBSearchHeight = ctx->Height - SearchHeight;
+
+ ctx->FCode = 0;
+
+ ctx->NumCores = 2; /* FIXME Assume there is two encode cores in Penwell, precise value should read from HW */
+
+ ctx->BelowParamsBufIdx = 0;
+ ctx->AccessUnitNum = 0;
+ ctx->SyncSequencer = 0; /* FIXME Refer to DDK */
+ ctx->SliceToCore = -1;
+ ctx->CmdCount = 0xa5a5a5a5 % MAX_TOPAZ_CMD_COUNT;
+ ctx->FrmIdx = 0;
+
+ for (i = 0; i < MAX_TOPAZ_CORES; i++) {
+ ctx->LastSliceNum[i] = -1;
+ ctx->LastSync[0][i] = ~0;
+ ctx->LastSync[1][i] = ~0;
+ }
+
+ for (i = 0; i < MAX_SLICES_PER_PICTURE; i++) {
+ ctx->SliceHeaderReady[i] = IMG_FALSE;
+ }
+
+ vaStatus = pnw__alloc_context_buffer(ctx, is_JPEG);
+
+ return vaStatus;
+}
+
+void pnw__UpdateRCBitsTransmitted(context_ENC_p ctx)
+{
+ IMG_UINT32 BitsPerFrame;
+
+ ctx->sRCParams.BitsConsumed = 0;
+
+ BitsPerFrame = ctx->sRCParams.BitsPerSecond / ctx->sRCParams.FrameRate;
+
+ if (!ctx->Transmitting) {
+ if (BitsPerFrame *(ctx->obj_context->frame_count + 1) >= ctx->sRCParams.InitialLevel)
+ ctx->Transmitting = IMG_TRUE;
+ ctx->sRCParams.BitsTransmitted = 0;
+ if ((ctx->sRCParams.BitsPerSecond == 0) || (ctx->sRCParams.FrameRate == 0))
+ ctx->Transmitting = IMG_FALSE;
+ }
+
+ if (ctx->Transmitting) {
+ ctx->sRCParams.BitsTransmitted = BitsPerFrame;
+ }
+}
+
+
+VAStatus pnw_BeginPicture(context_ENC_p ctx)
+{
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ pnw_cmdbuf_p cmdbuf;
+ int ret, i;
+
+ ctx->src_surface = ctx->obj_context->current_render_target;
+
+ /* clear frameskip flag to 0 */
+ CLEAR_SURFACE_INFO_skipped_flag(ctx->src_surface->psb_surface);
+
+ /*if (ctx->sRCParams.RCEnable == IMG_TRUE)
+ {
+ pnw_DetectFrameSkip(ctx);
+ if (0 != (GET_SURFACE_INFO_skipped_flag(ctx->src_surface->psb_surface)
+ & SURFACE_INFO_SKIP_FLAG_SETTLED))
+ ctx->sRCParams.FrameSkip = IMG_TRUE;
+ else
+ ctx->sRCParams.FrameSkip = IMG_FALSE;
+ }*/
+
+ /* Initialise the command buffer */
+ ret = pnw_context_get_next_cmdbuf(ctx->obj_context);
+ if (ret) {
+ psb__information_message("get next cmdbuf fail\n");
+ vaStatus = VA_STATUS_ERROR_UNKNOWN;
+ return vaStatus;
+ }
+ cmdbuf = ctx->obj_context->pnw_cmdbuf;
+
+ /* pnw__UpdateRCBitsTransmitted(ctx); shouln't be here*/
+
+ /* map start_pic param */
+ vaStatus = psb_buffer_map(&cmdbuf->pic_params, &cmdbuf->pic_params_p);
+ if (vaStatus) {
+ return vaStatus;
+ }
+ vaStatus = psb_buffer_map(&cmdbuf->header_mem, &cmdbuf->header_mem_p);
+ if (vaStatus) {
+ psb_buffer_unmap(&cmdbuf->pic_params);
+ return vaStatus;
+ }
+
+ vaStatus = psb_buffer_map(&cmdbuf->slice_params, &cmdbuf->slice_params_p);
+ if (vaStatus) {
+ psb_buffer_unmap(&cmdbuf->pic_params);
+ psb_buffer_unmap(&cmdbuf->header_mem);
+ return vaStatus;
+ }
+
+ /* only map topaz param when necessary */
+ cmdbuf->topaz_above_params_p = NULL;
+ cmdbuf->topaz_below_params_p = NULL;
+ cmdbuf->topaz_in_params_I_p = NULL;
+ cmdbuf->topaz_in_params_P_p = NULL;
+
+ if (ctx->obj_context->frame_count == 0) { /* first picture */
+
+ psb_driver_data_p driver_data = ctx->obj_context->driver_data;
+
+ *cmdbuf->cmd_idx++ = ((MTX_CMDID_SW_NEW_CODEC & MTX_CMDWORD_ID_MASK) << MTX_CMDWORD_ID_SHIFT) |
+ (((driver_data->drm_context & MTX_CMDWORD_COUNT_MASK) << MTX_CMDWORD_COUNT_SHIFT));
+ pnw_cmdbuf_insert_command_param(ctx->eCodec);
+ pnw_cmdbuf_insert_command_param((ctx->Width << 16) | ctx->Height);
+ }
+
+ ctx->FrmIdx++;
+ ctx->SliceToCore = ctx->ParallelCores - 1;
+ ctx->sRCParams.BitsConsumed = 0; /* Reset the bits consumed for this frame */
+ /* ctx->AccessUnitNum++; Move this back to pnw_EndPicture */
+ ctx->sRCParams.bBitrateChanged = IMG_FALSE;
+
+ for (i = 0; i < MAX_TOPAZ_CORES; i++)
+ ctx->LastSliceNum[i] = -1;
+
+ for (i = 0; i < MAX_SLICES_PER_PICTURE; i++)
+ ctx->SliceHeaderReady[i] = IMG_FALSE;
+
+ /*If ParallelCores > 1(H264) and encode one slice per frame, the unnecessary start picture
+ *commands will be replaced with MTX_CMDID_PAD and ignored by kernel*/
+ cmdbuf->cmd_idx_saved[PNW_CMDBUF_START_PIC_IDX] = cmdbuf->cmd_idx;
+
+ /* insert START_PIC command for each core */
+ /* ensure that the master (core #0) will be last to complete this batch */
+ for (i = (ctx->ParallelCores - 1); i >= 0; i--) {
+
+ /*
+ * the content of PIC_PARAMS is filled when RenderPicture(...,VAEncPictureParameterBufferXXX)
+ */
+ pnw_cmdbuf_insert_command_package(ctx->obj_context,
+ i,
+ MTX_CMDID_START_PIC,
+ &cmdbuf->pic_params,
+ i * ctx->pic_params_size);
+
+ /* no RC paramter provided in vaBeginPicture
+ * so delay RC param setup into vaRenderPicture(SequenceHeader...)
+ */
+ }
+
+ ctx->obj_context->slice_count = 0;
+ /*Need to wait until sRCParams initialised in pnw__XXXES_process_sequence_param*/
+ if (ctx->obj_context->frame_count != 0)
+ pnw__UpdateRCBitsTransmitted(ctx);
+ return 0;
+}
+
+
+VAStatus pnw_set_bias(context_ENC_p ctx, int core)
+{
+ pnw_cmdbuf_p cmdbuf = (pnw_cmdbuf_p)ctx->obj_context->pnw_cmdbuf;
+ double flBpp;
+ IMG_UINT8 THSkip;
+
+ if (ctx->sRCParams.RCEnable) {
+ flBpp = 1.0 * ctx->sRCParams.BitsPerSecond /
+ (ctx->sRCParams.FrameRate * ctx->Width * ctx->Height);
+ } else {
+ flBpp = 0.14;
+ }
+
+ if (flBpp <= 0.07) {
+ THSkip = TH_SKIP_24;
+ } else if (flBpp <= 0.14) {
+ THSkip = TH_SKIP_12;
+ } else {
+ THSkip = TH_SKIP_0;
+ }
+ switch (ctx->eCodec) {
+ case IMG_CODEC_H264_VBR:
+ case IMG_CODEC_H264_CBR:
+ case IMG_CODEC_H264_VCM:
+ case IMG_CODEC_H264_NO_RC:
+ LoadH264Bias(cmdbuf, core, THSkip, ctx->sRCParams.QCPOffset);
+ break;
+ case IMG_CODEC_H263_CBR:
+ case IMG_CODEC_H263_NO_RC:
+ case IMG_CODEC_H263_VBR:
+ LoadH263Bias(cmdbuf, core, THSkip);
+ break;
+ case IMG_CODEC_MPEG4_NO_RC:
+ case IMG_CODEC_MPEG4_CBR:
+ case IMG_CODEC_MPEG4_VBR:
+ LoadMPEG4Bias(cmdbuf, core, THSkip);
+ break;
+ default:
+ return -1;
+ break;
+ }
+ return 0;
+}
+
+VAStatus pnw_RenderPictureParameter(context_ENC_p ctx, int core)
+{
+ PIC_PARAMS *psPicParams; /* PIC_PARAMS has been put in pnw_hostcode.h */
+ object_surface_p src_surface;
+ unsigned int srf_buf_offset;
+ object_surface_p rec_surface;
+ object_surface_p ref_surface;
+ pnw_cmdbuf_p cmdbuf = ctx->obj_context->pnw_cmdbuf;
+ VAStatus vaStatus = VA_STATUS_ERROR_UNKNOWN;
+
+ psPicParams = cmdbuf->pic_params_p + ctx->pic_params_size * core;
+
+ memset(psPicParams, 0, sizeof(PIC_PARAMS));
+ /* second frame will reuse some rate control parameters (IN_PARAMS_MP4)
+ * so only memset picture parames except IN_PARAMS
+ * BUT now IN_RC_PARAMS was reload from the cache, so it now can
+ * memset entirE PIC_PARAMS
+ */
+
+ /*
+ memset(psPicParams, 0, (int)((void *)&psPicParams->sInParams - (void *)psPicParams));
+ */
+
+ src_surface = ctx->src_surface;
+ if (NULL == src_surface) {
+ vaStatus = VA_STATUS_ERROR_INVALID_SURFACE;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ rec_surface = ctx->dest_surface;
+ if (NULL == rec_surface) {
+ vaStatus = VA_STATUS_ERROR_INVALID_SURFACE;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ /*The fisrt frame always is I frame and the content of reference frame wouldn't be used.
+ * But the heights of ref and dest frame should be the same.
+ * That allows Topaz to keep its motion vectors up to date, which helps maintain performance */
+ if (ctx->obj_context->frame_count == 0)
+ ctx->ref_surface = ctx->dest_surface;
+
+ ref_surface = ctx->ref_surface;
+ if (NULL == ref_surface) {
+ vaStatus = VA_STATUS_ERROR_INVALID_SURFACE;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ /* clear frameskip flag */
+ CLEAR_SURFACE_INFO_skipped_flag(rec_surface->psb_surface);
+ CLEAR_SURFACE_INFO_skipped_flag(ref_surface->psb_surface);
+
+ /* Write video data byte offset into Coded buffer
+ * If it is here, it will be a SYNC point, which have performance impact
+ * Move to psb__CreateBuffer
+ vaStatus = psb_buffer_map(ctx->coded_buf->psb_buffer, &pBuffer);
+ if(vaStatus) {
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+ *(IMG_UINT32 *)(pBuffer+8) = 16;
+ psb_buffer_unmap(ctx->coded_buf->psb_buffer);
+ */
+
+ psPicParams->SrcYStride = src_surface->psb_surface->stride;
+ switch (ctx->eFormat) {
+ case IMG_CODEC_IYUV: /* IYUV */
+ case IMG_CODEC_PL8:
+ psPicParams->SrcUVStride = src_surface->psb_surface->stride / 2;
+ psPicParams->SrcUVRowStride = src_surface->psb_surface->stride * 8 / 2;
+ break;
+ case IMG_CODEC_IMC2: /* IMC2 */
+ case IMG_CODEC_PL12:
+ psPicParams->SrcUVStride = src_surface->psb_surface->stride;
+ psPicParams->SrcUVRowStride = src_surface->psb_surface->stride * 8;
+ break;
+ default:
+ break;
+ }
+ psPicParams->SrcYRowStride = src_surface->psb_surface->stride * 16;
+ /* psPicParams->SrcUVRowStride = src_surface->psb_surface->stride * 16 / 2; */
+
+ /* Dest(rec) stride
+ * The are now literally Dst stride (not equivalent to 'offset to next row')
+ */
+#ifdef VA_EMULATOR
+ /* only for simulator, va-emulator needs the actually stride for
+ * reconstructed frame transfer (va-emulator->driver)
+ */
+ psPicParams->DstYStride = rec_surface->psb_surface->stride;
+ psPicParams->DstUVStride = rec_surface->psb_surface->stride;
+ psPicParams->DstYRowStride = rec_surface->psb_surface->stride * 16;
+ psPicParams->DstUVRowStride = rec_surface->psb_surface->stride * 8;
+#else
+ psPicParams->DstYStride = rec_surface->psb_surface->stride;
+ psPicParams->DstUVStride = rec_surface->psb_surface->stride;
+ psPicParams->DstYRowStride = psPicParams->DstYStride * 16;
+ psPicParams->DstUVRowStride = psPicParams->DstUVStride * 8;
+#endif
+
+ psPicParams->InParamsRowStride = (ctx->obj_context->picture_width / 16) * 256;
+ psPicParams->BelowParamRowStride = (ctx->obj_context->picture_width / 16) * 32;
+
+ psPicParams->Width = ctx->Width;
+ psPicParams->Height = ctx->Height;
+ psPicParams->NumSlices = ctx->sRCParams.Slices;
+
+ psPicParams->SearchHeight = min(MVEA_LRB_SEARCH_HEIGHT, psPicParams->Height);
+ psPicParams->SearchWidth = min(MVEA_LRB_SEARCH_WIDTH, psPicParams->Width);
+
+ /* not sure why we are setting this up here... */
+ psPicParams->Flags = 0;
+ switch (ctx->eCodec) {
+ case IMG_CODEC_H264_NO_RC:
+ case IMG_CODEC_H264_VBR:
+ case IMG_CODEC_H264_CBR:
+ case IMG_CODEC_H264_VCM:
+ psPicParams->Flags |= ISH264_FLAGS;
+ break;
+ case IMG_CODEC_H263_VBR:
+ case IMG_CODEC_H263_CBR:
+ case IMG_CODEC_H263_NO_RC:
+ psPicParams->Flags |= ISH263_FLAGS;
+ break;
+ case IMG_CODEC_MPEG4_NO_RC:
+ case IMG_CODEC_MPEG4_VBR:
+ case IMG_CODEC_MPEG4_CBR:
+ psPicParams->Flags |= ISMPEG4_FLAGS;
+ break;
+ default:
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ switch (ctx->eCodec) {
+ case IMG_CODEC_H264_VBR:
+ case IMG_CODEC_MPEG4_VBR:
+ case IMG_CODEC_H263_VBR:
+ psPicParams->Flags |= ISVBR_FLAGS;
+ break;
+ case IMG_CODEC_H264_VCM:
+ psPicParams->Flags |= ISVCM_FLAGS;
+ break;
+ case IMG_CODEC_H263_CBR:
+ case IMG_CODEC_H264_CBR:
+ case IMG_CODEC_MPEG4_CBR:
+ psPicParams->Flags |= ISCBR_FLAGS;
+ break;
+ case IMG_CODEC_MPEG4_NO_RC:
+ case IMG_CODEC_H263_NO_RC:
+ case IMG_CODEC_H264_NO_RC:
+ break;
+ default:
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ if (ctx->SyncSequencer)
+ psPicParams->Flags |= SYNC_SEQUENCER;
+
+ if (ctx->sRCParams.bDisableFrameSkipping) {
+ psPicParams->Flags |= DISABLE_FRAME_SKIPPING;
+ }
+
+ if (ctx->sRCParams.bDisableBitStuffing) {
+ psPicParams->Flags |= DISABLE_BIT_STUFFING;
+ }
+
+ if (ctx->sRCParams.RCEnable) {
+ /* for the first frame, will setup RC params in EndPicture */
+ if (ctx->obj_context->frame_count > 0) { /* reuse in_params parameter */
+ psPicParams->Flags &= ~FIRST_FRAME;
+ /* reload IN_RC_PARAMS from cache */
+ memcpy(&psPicParams->sInParams, &ctx->in_params_cache, sizeof(IN_RC_PARAMS));
+
+ /* These two fileds are modified by pnw_SetupRCParams, need to patch them here */
+ psPicParams->THSkip = ctx->THSkip;
+ psPicParams->Flags |= (ctx->pic_params_flags & ISRC_I16BIAS);
+ psPicParams->sInParams.BitsPerFrm = ctx->sRCParams.BitsConsumed;
+
+ } else {
+ psPicParams->Flags |= ISRC_FLAGS;
+ psPicParams->Flags |= FIRST_FRAME;
+ }
+ } else
+ psPicParams->sInParams.SeInitQP = ctx->sRCParams.InitialQp;
+
+ /* some relocations have to been done here */
+ srf_buf_offset = src_surface->psb_surface->buf.buffer_ofs;
+ if (src_surface->psb_surface->buf.type == psb_bt_camera)
+ psb__information_message("src surface GPU offset 0x%08x, luma offset 0x%08x\n",
+ wsbmBOOffsetHint(src_surface->psb_surface->buf.drm_buf), srf_buf_offset);
+
+ RELOC_PIC_PARAMS_PNW(&psPicParams->SrcYBase, srf_buf_offset, &src_surface->psb_surface->buf);
+ switch (ctx->eFormat) {
+ case IMG_CODEC_IYUV:
+ case IMG_CODEC_PL8:
+ case IMG_CODEC_PL12:
+ RELOC_PIC_PARAMS_PNW(&psPicParams->SrcUBase,
+ srf_buf_offset + src_surface->psb_surface->stride * src_surface->height,
+ &src_surface->psb_surface->buf);
+
+ RELOC_PIC_PARAMS_PNW(&psPicParams->SrcVBase,
+ srf_buf_offset + src_surface->psb_surface->stride * src_surface->height + (src_surface->psb_surface->stride / 2) *(src_surface->height / 2),
+ &src_surface->psb_surface->buf);
+
+ break;
+ case IMG_CODEC_IMC2:
+ case IMG_CODEC_NV12:
+ default:
+ break;
+ }
+
+ RELOC_PIC_PARAMS_PNW(&psPicParams->DstYBase, 0, &rec_surface->psb_surface->buf);
+
+ RELOC_PIC_PARAMS_PNW(&psPicParams->DstUVBase,
+ rec_surface->psb_surface->stride * rec_surface->height,
+ &rec_surface->psb_surface->buf);
+
+ RELOC_PIC_PARAMS_PNW(&psPicParams->BelowParamsInBase,
+ ctx->below_params_ofs + ctx->below_params_size *(((ctx->AccessUnitNum) & 0x1)),
+ cmdbuf->topaz_below_params);
+
+ RELOC_PIC_PARAMS_PNW(&psPicParams->BelowParamsOutBase,
+ ctx->below_params_ofs + ctx->below_params_size *(((ctx->AccessUnitNum + 1) & 0x1)),
+ cmdbuf->topaz_below_params);
+
+ RELOC_PIC_PARAMS_PNW(&psPicParams->AboveParamsBase,
+ ctx->above_params_ofs + ctx->above_params_size *(core * 2 + (ctx->AccessUnitNum & 0x1)),
+ cmdbuf->topaz_above_params);
+
+ RELOC_PIC_PARAMS_PNW(&psPicParams->CodedBase, ctx->coded_buf_per_slice * core, ctx->coded_buf->psb_buffer);
+ psb__information_message("For core %d, above_parmas_off %x\n", core, ctx->above_params_ofs + ctx->above_params_size *(core * 2 + ((ctx->AccessUnitNum) & 0x1)));
+
+#if TOPAZ_PIC_PARAMS_VERBOSE
+ psb__information_message("PicParams->SrcYBase 0x%08x\n", psPicParams->SrcYBase);
+ psb__information_message("PicParams->SrcUBase 0x%08x\n", psPicParams->SrcUBase);
+ psb__information_message("PicParams->SrcVBase 0x%08x\n", psPicParams->SrcVBase);
+ psb__information_message("PicParams->DstYBase 0x%08x\n", psPicParams->DstYBase);
+ psb__information_message("PicParams->DstUVBase 0x%08x\n", psPicParams->DstUVBase);
+ psb__information_message("PicParams->SrcYStride 0x%08x\n", psPicParams->SrcYStride);
+ psb__information_message("PicParams->SrcUVStride 0x%08x\n", psPicParams->SrcUVStride);
+ psb__information_message("PicParams->SrcYRowStride 0x%08x\n", psPicParams->SrcYRowStride);
+ psb__information_message("PicParams->SrcUVRowStride 0x%08x\n", psPicParams->SrcUVRowStride);
+ psb__information_message("PicParams->DstYStride 0x%08x\n", psPicParams->DstYStride);
+ psb__information_message("PicParams->DstUVStride 0x%08x\n", psPicParams->DstUVStride);
+ psb__information_message("PicParams->DstYRowStride 0x%08x\n", psPicParams->DstYRowStride);
+ psb__information_message("PicParams->DstUVRowStride 0x%08x\n", psPicParams->DstUVRowStride);
+ psb__information_message("PicParams->InParamsBase 0x%08x\n", psPicParams->InParamsBase);
+ psb__information_message("PicParams->InParamsRowStride 0x%08x\n", psPicParams->InParamsRowStride);
+ psb__information_message("PicParams->OutParamsBase 0x%08x\n", psPicParams->OutParamsBase);
+ psb__information_message("PicParams->CodedBase 0x%08x\n", psPicParams->CodedBase);
+ psb__information_message("PicParams->BelowParamsInBase 0x%08x\n", psPicParams->BelowParamsInBase);
+ psb__information_message("PicParams->BelowParamsOutBase 0x%08x\n", psPicParams->BelowParamsOutBase);
+ psb__information_message("PicParams->BelowParamRowStride 0x%08x\n", psPicParams->BelowParamRowStride);
+ psb__information_message("PicParams->AboveParamsBase 0x%08x\n", psPicParams->AboveParamsBase);
+ psb__information_message("PicParams->AboveParamRowStride 0x%08x\n", psPicParams->AboveParamRowStride);
+ psb__information_message("PicParams->Width 0x%08x\n", psPicParams->Width);
+ psb__information_message("PicParams->Height 0x%08x\n", psPicParams->Height);
+ psb__information_message("PicParams->Flags 0x%08x\n", psPicParams->Flags);
+ psb__information_message("PicParams->SerachWidth 0x%08x\n", psPicParams->SearchWidth);
+ psb__information_message("PicParams->SearchHeight 0x%08x\n", psPicParams->SearchHeight);
+ psb__information_message("PicParams->NumSlices 0x%08x\n", psPicParams->NumSlices);
+#endif
+ return VA_STATUS_SUCCESS;
+}
+
+static VAStatus pnw_SetupRCParam(context_ENC_p ctx)
+{
+ pnw_cmdbuf_p cmdbuf = ctx->obj_context->pnw_cmdbuf;
+ PIC_PARAMS *psPicParams = cmdbuf->pic_params_p;
+ PIC_PARAMS *psPicParamsTmp;
+ int origin_qp, i;/* in DDK setup_rc will change qp strangly,
+ * just for keep same with DDK
+ */
+
+ origin_qp = ctx->sRCParams.InitialQp;
+
+ psPicParams->Flags |= ISRC_FLAGS;
+ pnw__setup_rcdata(ctx, psPicParams, &ctx->sRCParams);
+
+ /* restore it, just keep same with DDK */
+ ctx->sRCParams.InitialQp = origin_qp;
+
+ /* Assume IN_RC_PARAMS for each core is identical, and copy for each */
+ for (i = (ctx->ParallelCores - 1); i > 0; i--) {
+ psPicParamsTmp = cmdbuf->pic_params_p + ctx->pic_params_size * i;
+ memcpy((void *)&psPicParamsTmp->sInParams,
+ (void *)&psPicParams->sInParams,
+ sizeof(IN_RC_PARAMS));
+
+ psPicParamsTmp->THSkip = psPicParams->THSkip;
+ psPicParamsTmp->Flags |= psPicParams->Flags;
+ }
+
+ /* save IN_RC_PARAMS into the cache */
+ memcpy(&ctx->in_params_cache, (void *)&psPicParams->sInParams, sizeof(IN_RC_PARAMS));
+ ctx->THSkip = psPicParams->THSkip;
+ ctx->pic_params_flags = psPicParams->Flags & ISRC_I16BIAS;
+
+ return VA_STATUS_SUCCESS;
+}
+
+#if 0
+static VAStatus pnw_DetectFrameSkip(context_ENC_p ctx)
+{
+ int frame_skip = 0;
+ void *pBuffer;
+ IMG_UINT32 *CodedData;
+ VAStatus vaStatus;
+ psb_surface_p surface;
+
+ if (NULL == ctx->pprevious_coded_buf)
+ return 0;
+
+ /* it will ensure previous previous encode finished */
+ vaStatus = psb_buffer_map(ctx->previous_coded_buf->psb_buffer, &pBuffer);
+
+ if (vaStatus)
+ return vaStatus;
+
+ CodedData = (IMG_UINT32 *) pBuffer;
+
+ frame_skip = *(CodedData + 1);
+
+ surface = ctx->src_surface->psb_surface;
+
+ if (frame_skip) {
+ SET_SURFACE_INFO_skipped_flag(surface, frame_skip);
+ psb__information_message("Detected a skipped frame for encode\n");
+ }
+
+ psb_buffer_unmap(ctx->previous_coded_buf->psb_buffer);
+
+ return VA_STATUS_SUCCESS;
+}
+#endif
+
+VAStatus pnw_EndPicture(context_ENC_p ctx)
+{
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ int i;
+ pnw_cmdbuf_p cmdbuf = ctx->obj_context->pnw_cmdbuf;
+ PIC_PARAMS *psPicParams = cmdbuf->pic_params_p;
+
+ ctx->AccessUnitNum++;
+
+ if (ctx->sRCParams.RCEnable == IMG_TRUE) {
+ if (ctx->obj_context->frame_count == 0)
+ pnw_SetupRCParam(ctx);
+ else if (ctx->sRCParams.bBitrateChanged) {
+ psb__information_message("Bitrate is changed to %d, "
+ "update the RC data accordingly\n", ctx->sRCParams.BitsPerSecond);
+ pnw__update_rcdata(ctx, psPicParams, &ctx->sRCParams);
+ memcpy(&ctx->in_params_cache, (void *)&psPicParams->sInParams, sizeof(IN_RC_PARAMS));
+ }
+ }
+
+#if TOPAZ_PIC_PARAMS_VERBOSE
+ psb__information_message("sizeof PIC_PARAMS %d\n", sizeof(PIC_PARAMS));
+ psb__information_message("sizeof in_params %d\n", sizeof(psPicParams->sInParams));
+ psb__information_message("End Picture for frame %d\n", ctx->obj_context->frame_count);
+ psb__information_message("psPicParams->bInsertHRDparams %d\n", psPicParams->InsertHRDparams);
+ psb__information_message("psPicParams->ClockDivBitrate %lld\n", psPicParams->ClockDivBitrate);
+ psb__information_message("psPicParams->MaxBufferMultClockDivBitrate %d\n",
+ psPicParams->MaxBufferMultClockDivBitrate);
+ psb__information_message("psPicParams->sInParams.SeInitQP %d\n", psPicParams->sInParams.SeInitQP);
+ psb__information_message("psPicParams->sInParams.MinQPVal %d\n", psPicParams->sInParams.MinQPVal);
+ psb__information_message("psPicParams->sInParams.MaxQPVal %d\n", psPicParams->sInParams.MaxQPVal);
+ psb__information_message("psPicParams->sInParams.MBPerRow %d\n", psPicParams->sInParams.MBPerRow);
+ psb__information_message("psPicParams->sInParams.MBPerFrm %d\n", psPicParams->sInParams.MBPerFrm);
+ psb__information_message("psPicParams->sInParams.MBPerBU %d\n", psPicParams->sInParams.MBPerBU);
+ psb__information_message("psPicParams->sInParams.BUPerFrm %d\n", psPicParams->sInParams.BUPerFrm);
+ psb__information_message("psPicParams->sInParams.IntraPeriod %d\n", psPicParams->sInParams.IntraPeriod);
+ psb__information_message("psPicParams->sInParams.BitsPerFrm %d\n", psPicParams->sInParams.BitsPerFrm);
+ psb__information_message("psPicParams->sInParams.BitsPerBU %d\n", psPicParams->sInParams.BitsPerBU);
+ psb__information_message("psPicParams->sInParams.BitsPerMB %d\n", psPicParams->sInParams.BitsPerMB);
+ psb__information_message("psPicParams->sInParams.BitRate %d\n", psPicParams->sInParams.BitRate);
+ psb__information_message("psPicParams->sInParams.BufferSize %d\n", psPicParams->sInParams.BufferSize);
+ psb__information_message("psPicParams->sInParams.InitialLevel %d\n", psPicParams->sInParams.InitialLevel);
+ psb__information_message("psPicParams->sInParams.InitialDelay %d\n", psPicParams->sInParams.InitialDelay);
+ psb__information_message("psPicParams->sInParams.ScaleFactor %d\n", psPicParams->sInParams.ScaleFactor);
+ psb__information_message("psPicParams->sInParams.VCMBitrateMargin %d\n", psPicParams->sInParams.VCMBitrateMargin);
+ psb__information_message("psPicParams->sInParams.HalfFrameRate %d\n", psPicParams->sInParams.HalfFrameRate);
+ psb__information_message("psPicParams->sInParams.FCode %d\n", psPicParams->sInParams.FCode);
+ psb__information_message("psPicParams->sInParams.BitsPerGOP %d\n", psPicParams->sInParams.BitsPerGOP);
+ psb__information_message("psPicParams->sInParams.AvQPVal %d\n", psPicParams->sInParams.AvQPVal);
+ psb__information_message("psPicParams->sInParams.MyInitQP %d\n", psPicParams->sInParams.MyInitQP);
+ psb__information_message("psPicParams->sInParams.ForeceSkipMargin %d\n", psPicParams->sInParams.ForeceSkipMargin);
+ psb__information_message("psPicParams->sInParams.RCScaleFactor %d\n", psPicParams->sInParams.RCScaleFactor);
+#endif
+ /* save current settings */
+ ctx->previous_src_surface = ctx->src_surface;
+ ctx->previous_ref_surface = ctx->ref_surface;
+ ctx->previous_dest_surface = ctx->dest_surface; /* reconstructed surface */
+
+ /*Frame Skip flag in Coded Buffer of frame N determines if frame N+2
+ * should be skipped, which means sending encoding commands of frame N+1 doesn't
+ * have to wait until frame N is completed encoded. It reduces the precision of
+ * rate control but improves HD encoding performance a lot.*/
+ ctx->pprevious_coded_buf = ctx->previous_coded_buf;
+ ctx->previous_coded_buf = ctx->coded_buf;
+
+ for (i = (ctx->ParallelCores - 1); i >= 0; i--) {
+ pnw_cmdbuf_insert_command_package(ctx->obj_context,
+ i,
+ MTX_CMDID_END_PIC,
+ NULL,
+ 0);
+ }
+ psb_buffer_unmap(&cmdbuf->pic_params);
+ psb_buffer_unmap(&cmdbuf->header_mem);
+ psb_buffer_unmap(&cmdbuf->slice_params);
+
+ /* unmap MTX_CURRENT_IN_PARAMS buffer only when it is mapped */
+ if (cmdbuf->topaz_in_params_I_p != NULL) {
+ psb_buffer_unmap(cmdbuf->topaz_in_params_I);
+ cmdbuf->topaz_in_params_I_p = NULL;
+ }
+
+ if (cmdbuf->topaz_in_params_P_p != NULL) {
+ psb_buffer_unmap(cmdbuf->topaz_in_params_P);
+ cmdbuf->topaz_in_params_P_p = NULL;
+ }
+
+ if (cmdbuf->topaz_above_params_p != NULL) {
+ psb_buffer_unmap(cmdbuf->topaz_above_params);
+ cmdbuf->topaz_above_params_p = NULL;
+ }
+
+ if (cmdbuf->topaz_below_params_p != NULL) {
+ psb_buffer_unmap(cmdbuf->topaz_below_params);
+ cmdbuf->topaz_below_params_p = NULL;
+ }
+
+ if (pnw_context_flush_cmdbuf(ctx->obj_context)) {
+ vaStatus = VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ return vaStatus;
+}
+
+static void pnw__setup_busize(context_ENC_p ctx)
+{
+ int old_busize = ctx->sRCParams.BUSize;
+ int slices = ctx->obj_context->slice_count;
+
+ /* it is called at EndPicture, we should now the Slice number */
+ //ctx->Slices = ctx->obj_context->slice_count;
+
+ /* if no BU size is given then pick one ourselves */
+ if (ctx->sRCParams.BUSize != 0) { /* application provided BUSize */
+ IMG_UINT32 MBs, MBsperSlice, MBsLastSlice;
+ IMG_UINT32 BUs;
+ IMG_INT32 SliceHeight;
+ IMG_UINT32 MaxSlicesPerPipe, MaxMBsPerPipe, MaxBUsPerPipe;
+
+ MBs = ctx->Height * ctx->Width / (16 * 16);
+
+ SliceHeight = ctx->Height / slices;
+ /* SliceHeight += 15; */
+ SliceHeight &= ~15;
+
+ MBsperSlice = (SliceHeight * ctx->Width) / (16 * 16);
+ MBsLastSlice = MBs - (MBsperSlice * (slices - 1));
+
+ /* they have given us a basic unit so validate it */
+ if (ctx->sRCParams.BUSize < 6) {
+ psb__error_message("ERROR: Basic unit size too small, must be greater than 6\n");
+ ctx->sRCParams.BUSize = 0; /* need repatch */;
+ }
+ if (ctx->sRCParams.BUSize > MBsperSlice) {
+ psb__error_message("ERROR: Basic unit size too large, must be less than the number of macroblocks in a slice\n");
+ ctx->sRCParams.BUSize = 0; /* need repatch */;
+ }
+ if (ctx->sRCParams.BUSize > MBsLastSlice) {
+ psb__error_message("ERROR: Basic unit size too large, must be less than number of macroblocks in the last slice\n");
+ ctx->sRCParams.BUSize = 0; /* need repatch */;
+ }
+ BUs = MBsperSlice / ctx->sRCParams.BUSize;
+ if ((BUs * ctx->sRCParams.BUSize) != MBsperSlice) {
+ psb__error_message("ERROR: Basic unit size not an integer divisor of MB's in a slice");
+ ctx->sRCParams.BUSize = 0; /* need repatch */;
+ }
+ BUs = MBsLastSlice / ctx->sRCParams.BUSize;
+ if ((BUs * ctx->sRCParams.BUSize) != MBsLastSlice) {
+ psb__error_message("ERROR: Basic unit size not an integer divisor of MB's in a slice");
+ ctx->sRCParams.BUSize = 0; /* need repatch */;
+ }
+
+ // check if the number of BUs per pipe is greater than 200
+ MaxSlicesPerPipe = (slices + ctx->ParallelCores - 1) / ctx->ParallelCores;
+ MaxMBsPerPipe = (MBsperSlice * (MaxSlicesPerPipe - 1)) + MBsLastSlice;
+ MaxBUsPerPipe = (MaxMBsPerPipe + ctx->sRCParams.BUSize - 1) / ctx->sRCParams.BUSize;
+ if (MaxBUsPerPipe > 200) {
+ psb__error_message("ERROR: Basic unit size too small. There must be less than 200 basic units per slice");
+ ctx->sRCParams.BUSize = 0; /* need repatch */;
+ }
+ }
+
+ if (ctx->sRCParams.BUSize == 0) {
+ IMG_UINT32 MBs, MBsperSlice, MBsLastSlice;
+ IMG_UINT32 BUsperSlice, BUsLastSlice;
+ IMG_UINT32 MaxSlicesPerPipe, MaxMBsPerPipe, MaxBUsPerPipe;
+ IMG_INT32 SliceHeight;
+ IMG_UINT32 BUSize = 6;
+
+ MBs = ctx->Height * ctx->Width / (16 * 16);
+
+ SliceHeight = ctx->Height / slices;
+ /* SliceHeight += 15; */
+ SliceHeight &= ~15;
+
+ MBsperSlice = (SliceHeight * ctx->Width) / (16 * 16);
+ MBsLastSlice = MBs - (MBsperSlice * (slices - 1));
+
+ /* Check number of BUs to be encoded on one pipe is less than maximum number allowed 200 */
+ MaxSlicesPerPipe = (slices + ctx->ParallelCores - 1) / ctx->ParallelCores;
+ MaxMBsPerPipe = (MBsperSlice * (MaxSlicesPerPipe - 1)) + MBsLastSlice;
+ MaxBUsPerPipe = (MaxMBsPerPipe + BUSize - 1) / BUSize;
+
+ while (MaxBUsPerPipe > 200) {
+ BUSize++;
+ MaxBUsPerPipe = (MaxMBsPerPipe + BUSize - 1) / BUSize;
+ }
+
+ /* Check whether there are integeral number of BUs in the slices */
+ BUsperSlice = MBsperSlice / BUSize;
+ BUsLastSlice = MBsLastSlice / BUSize;
+ while ((BUsperSlice*BUSize != MBsperSlice) ||
+ (BUsLastSlice*BUSize != MBsLastSlice)) {
+ BUSize++;
+ BUsperSlice = MBsperSlice / BUSize;
+ BUsLastSlice = MBsLastSlice / BUSize;
+ }
+
+ ctx->sRCParams.BUSize = BUSize;
+ ctx->sRCParams.InitialLevel = (3 * ctx->sRCParams.BufferSize) >> 4;
+ ctx->sRCParams.InitialDelay = (13 * ctx->sRCParams.BufferSize) >> 4;
+ }
+
+ if (ctx->sRCParams.BUSize != old_busize)
+ psb__information_message("Patched Basic unit to %d (original=%d)\n", ctx->sRCParams.BUSize, old_busize);
+}
+
+
+static void pnw__update_rcdata(
+ context_ENC_p psContext,
+ PIC_PARAMS *psPicParams,
+ IMG_RC_PARAMS *psRCParams)
+{
+ double L1, L2, L3, L4, L5, L6, flBpp;
+ IMG_INT16 i16TempQP;
+ IMG_INT32 i32BufferSizeInFrames = 0;
+
+ flBpp = 1.0 * psRCParams->BitsPerSecond
+ / (psRCParams->FrameRate * psContext->Width * psContext->Height);
+
+ if (psContext->Width <= 176) {
+ /* for very small franes we need to adjust the calculations */
+ flBpp = flBpp / 2.0;
+ }
+
+ psPicParams->sInParams.IntraPeriod = psRCParams->IntraFreq;
+ psPicParams->sInParams.BitRate = psRCParams->BitsPerSecond;
+ psPicParams->sInParams.BitsPerFrm = (psRCParams->BitsPerSecond + psRCParams->FrameRate / 2) / psRCParams->FrameRate;
+ psPicParams->sInParams.BitsPerGOP = (psRCParams->BitsPerSecond / psRCParams->FrameRate) * psRCParams->IntraFreq;
+ psPicParams->sInParams.BitsPerBU = psPicParams->sInParams.BitsPerFrm / (4 * psPicParams->sInParams.BUPerFrm);
+ psPicParams->sInParams.BitsPerMB = psPicParams->sInParams.BitsPerBU / psRCParams->BUSize;
+
+ i32BufferSizeInFrames = psRCParams->BufferSize / psPicParams->sInParams.BitsPerFrm;
+
+ /* select thresholds and initial Qps etc that are codec dependent */
+ switch (psContext->eCodec) {
+ case IMG_CODEC_H264_CBR:
+ case IMG_CODEC_H264_VCM:
+ case IMG_CODEC_H264_VBR:
+ L1 = 0.1;
+ L2 = 0.15;
+ L3 = 0.2;
+ psPicParams->sInParams.MaxQPVal = 51;
+
+ /* Set THSkip Values */
+ if (flBpp <= 0.07)
+ psPicParams->THSkip = TH_SKIP_24;
+ else if (flBpp <= 0.14)
+ psPicParams->THSkip = TH_SKIP_12;
+ else
+ psPicParams->THSkip = TH_SKIP_0;
+
+ /* Setup MAX and MIN Quant Values */
+ if (flBpp <= 0.3)
+ psPicParams->Flags |= ISRC_I16BIAS;
+ if (flBpp >= 0.50)
+ i16TempQP = 4;
+ else if (flBpp > 0.133)
+ i16TempQP = (unsigned int)(24 - (40 * flBpp));
+ else
+ i16TempQP = (unsigned int)(32 - (100 * flBpp));
+
+ psPicParams->sInParams.MinQPVal = (max(min(psPicParams->sInParams.MaxQPVal, i16TempQP), 0));
+
+ L1 = 0.050568;
+ L2 = 0.202272;
+ L3 = 0.40454321;
+ L4 = 0.80908642;
+ L5 = 1.011358025;
+ if (flBpp < L1)
+ psPicParams->sInParams.SeInitQP = (IMG_UINT8)(47 - 78.10 * flBpp);
+
+ else if (flBpp >= L1 && flBpp < L2)
+ psPicParams->sInParams.SeInitQP = (IMG_UINT8)(46 - 72.51 * flBpp);
+
+ else if (flBpp >= L2 && flBpp < L3)
+ psPicParams->sInParams.SeInitQP = (IMG_UINT8)(36 - 24.72 * flBpp);
+
+ else if (flBpp >= L3 && flBpp < L4)
+ psPicParams->sInParams.SeInitQP = (IMG_UINT8)(34 - 19.78 * flBpp);
+
+ else if (flBpp >= L4 && flBpp < L5)
+ psPicParams->sInParams.SeInitQP = (IMG_UINT8)(27 - 9.89 * flBpp);
+
+ else if (flBpp >= L5)
+ psPicParams->sInParams.SeInitQP = (IMG_UINT8)(20 - 4.95 * flBpp);
+ break;
+
+ case IMG_CODEC_MPEG4_CBR:
+ case IMG_CODEC_MPEG4_VBR:
+ case IMG_CODEC_H263_CBR:
+ case IMG_CODEC_H263_VBR:
+ psPicParams->sInParams.MaxQPVal = 31;
+
+ if (psContext->Width <= 176) {
+ L1 = 0.043;
+ L2 = 0.085;
+ L3 = 0.126;
+ L4 = 0.168;
+ L5 = 0.336;
+ L6 = 0.505;
+ } else if (psContext->Width == 352) {
+ L1 = 0.065;
+ L2 = 0.085;
+ L3 = 0.106;
+ L4 = 0.126;
+ L5 = 0.168 ;
+ L6 = 0.210;
+ } else {
+ L1 = 0.051;
+ L2 = 0.0770;
+ L3 = 0.096;
+ L4 = 0.145;
+ L5 = 0.193;
+ L6 = 0.289;
+ }
+
+ /* Calculate Initial QP if it has not been specified */
+ if (flBpp < L1)
+ psPicParams->sInParams.SeInitQP = 31;
+
+ else if (flBpp >= L1 && flBpp < L2)
+ psPicParams->sInParams.SeInitQP = 26;
+
+ else if (flBpp >= L2 && flBpp < L3)
+ psPicParams->sInParams.SeInitQP = 22;
+
+ else if (flBpp >= L3 && flBpp < L4)
+ psPicParams->sInParams.SeInitQP = 18;
+
+ else if (flBpp >= L4 && flBpp < L5)
+ psPicParams->sInParams.SeInitQP = 14;
+
+ else if (flBpp >= L5 && flBpp < L6)
+ psPicParams->sInParams.SeInitQP = 10;
+ else
+ psPicParams->sInParams.SeInitQP = 8;
+
+ psPicParams->sInParams.AvQPVal = psPicParams->sInParams.SeInitQP;
+
+ if (flBpp >= 0.25) {
+ psPicParams->sInParams.MinQPVal = 1;
+ } else {
+ psPicParams->sInParams.MinQPVal = 2;
+ }
+ break;
+
+ default:
+ /* the NO RC cases will fall here */
+ break;
+ }
+
+ /* Set up Input Parameters that are mode dependent */
+ switch (psContext->eCodec) {
+ case IMG_CODEC_H264_NO_RC:
+ case IMG_CODEC_H263_NO_RC:
+ case IMG_CODEC_MPEG4_NO_RC:
+ return ;
+
+ case IMG_CODEC_H264_VCM:
+ psPicParams->Flags |= ISVCM_FLAGS | ISCBR_FLAGS;
+ if (psContext->Height >= 480) {
+ /* for SD and above we can target 95% (122/128) of maximum bitrate */
+ psPicParams->sInParams.VCMBitrateMargin = 122;
+ } else {
+ /* for less and SD we target 90% (115/128) of maximum bitrate */
+ psPicParams->sInParams.VCMBitrateMargin = 115;
+ }
+ if (i32BufferSizeInFrames < 15) {
+ /* when we have a very small window size we reduce the target
+ * further to avoid too much skipping */
+ psPicParams->sInParams.VCMBitrateMargin -= 5;
+ }
+ psPicParams->sInParams.ForeceSkipMargin = 500; /* start skipping MBs when within 500 bits of slice or frame limit */
+ if (psRCParams->BitsPerSecond < 1000000) { // 1 Mbits/s
+ psPicParams->sInParams.ScaleFactor = 0;
+ } else if (psRCParams->BitsPerSecond < 2000000) { // 2 Mbits/s
+ psPicParams->sInParams.ScaleFactor = 1;
+ } else if (psRCParams->BitsPerSecond < 4000000) { // 4 Mbits/s
+ psPicParams->sInParams.ScaleFactor = 2;
+ } else if (psRCParams->BitsPerSecond < 8000000) { // 8 Mbits/s
+ psPicParams->sInParams.ScaleFactor = 3;
+ } else {
+ psPicParams->sInParams.ScaleFactor = 4;
+ }
+
+ psPicParams->sInParams.BufferSize = i32BufferSizeInFrames;
+
+ break;
+ case IMG_CODEC_H264_CBR:
+ psPicParams->Flags |= ISCBR_FLAGS;
+ /* ------------------- H264 CBR RC ------------------- */
+ /* Initialize the parameters of fluid flow traffic model. */
+ psPicParams->sInParams.BufferSize = psRCParams->BufferSize;
+
+ /* HRD consideration - These values are used by H.264 reference code. */
+ if (psRCParams->BitsPerSecond < 1000000) { /* 1 Mbits/s */
+ psPicParams->sInParams.ScaleFactor = 0;
+ } else if (psRCParams->BitsPerSecond < 2000000) { /* 2 Mbits/s */
+ psPicParams->sInParams.ScaleFactor = 1;
+ } else if (psRCParams->BitsPerSecond < 4000000) { /* 4 Mbits/s */
+ psPicParams->sInParams.ScaleFactor = 2;
+ } else if (psRCParams->BitsPerSecond < 8000000) { /* 8 Mbits/s */
+ psPicParams->sInParams.ScaleFactor = 3;
+ } else {
+ psPicParams->sInParams.ScaleFactor = 4;
+ }
+ break;
+
+ case IMG_CODEC_MPEG4_CBR:
+ case IMG_CODEC_H263_CBR:
+ psPicParams->Flags |= ISCBR_FLAGS;
+
+ flBpp = 256 * (psRCParams->BitsPerSecond / psContext->Width);
+ flBpp /= (psContext->Height * psRCParams->FrameRate);
+
+ if ((psPicParams->sInParams.MBPerFrm > 1024 && flBpp < 16) || (psPicParams->sInParams.MBPerFrm <= 1024 && flBpp < 24))
+ psPicParams->sInParams.HalfFrameRate = 1;
+ else
+ psPicParams->sInParams.HalfFrameRate = 0;
+
+ if (psPicParams->sInParams.HalfFrameRate >= 1) {
+ psPicParams->sInParams.SeInitQP = 31;
+ psPicParams->sInParams.AvQPVal = 31;
+ psPicParams->sInParams.MyInitQP = 31;
+ }
+
+ psPicParams->sInParams.BufferSize = psRCParams->BufferSize;
+ if (psPicParams->sInParams.BufferSize > 112 * 16384) // Simple Profile L5 Constraints
+ psPicParams->sInParams.BufferSize = 112 * 16384;
+ break;
+
+ case IMG_CODEC_MPEG4_VBR:
+ case IMG_CODEC_H263_VBR:
+ case IMG_CODEC_H264_VBR:
+ psPicParams->Flags |= ISVBR_FLAGS;
+
+ psPicParams->sInParams.MBPerBU = psPicParams->sInParams.MBPerFrm;
+ psPicParams->sInParams.BUPerFrm = 1;
+
+ /* Initialize the parameters of fluid flow traffic model. */
+ psPicParams->sInParams.BufferSize = psRCParams->BufferSize;
+
+ if (psContext->eCodec != IMG_CODEC_H264_VBR) {
+ if (psPicParams->sInParams.BufferSize > 112 * 16384)
+ psPicParams->sInParams.BufferSize = 112 * 16384; // Simple Profile L5 Constraints
+ }
+
+ /* These scale factor are used only for rate control to avoid overflow */
+ /* in fixed-point calculation these scale factors are decided by bit rate */
+ if (psRCParams->BitsPerSecond < 640000) {
+ psPicParams->sInParams.ScaleFactor = 2; /* related to complexity */
+ } else if (psRCParams->BitsPerSecond < 2000000) {
+ psPicParams->sInParams.ScaleFactor = 4;
+ } else {
+ psPicParams->sInParams.ScaleFactor = 6;
+ }
+ break;
+ default:
+ break;
+ }
+
+ psPicParams->sInParams.MyInitQP = psPicParams->sInParams.SeInitQP;
+
+ if (psContext->SyncSequencer)
+ psPicParams->Flags |= SYNC_SEQUENCER;
+
+ psPicParams->sInParams.InitialDelay = psRCParams->InitialDelay;
+ psPicParams->sInParams.InitialLevel = psRCParams->InitialLevel;
+ psRCParams->InitialQp = psPicParams->sInParams.SeInitQP;
+
+ psPicParams->sInParams.RCScaleFactor = (psPicParams->sInParams.BitsPerGOP * 256) /
+ (psPicParams->sInParams.BufferSize - psPicParams->sInParams.InitialLevel);
+
+ return;
+}
+
+
+/***********************************************************************************
+ * Function Name : SetupRCData
+ * Inputs :
+ * Outputs :
+ * Returns :
+ * Description : Sets up RC Data
+ ************************************************************************************/
+void pnw__setup_rcdata(
+ context_ENC_p psContext,
+ PIC_PARAMS *psPicParams,
+ IMG_RC_PARAMS *psRCParams)
+{
+ IMG_UINT8 ui8InitialSeInitQP;
+
+ /* frameskip is always cleared, specially handled at vaEndPicture */
+ psRCParams->FrameSkip = 0;
+
+ if (!psRCParams->BitsPerSecond)
+ psRCParams->BitsPerSecond = 64000;
+ /*
+ if (psRCParams->BitsPerSecond > max_bitrate)
+ psRCParams->BitsPerSecond = max_bitrate;
+ */
+ if (!psRCParams->FrameRate)
+ psRCParams->FrameRate = 30;
+
+ pnw__setup_busize(psContext); /* calculate BasicUnitSize */
+
+ psPicParams->sInParams.SeInitQP = psRCParams->InitialQp;
+
+ psPicParams->sInParams.MBPerRow = (psContext->Width >> 4);
+ psPicParams->sInParams.MBPerBU = psRCParams->BUSize;
+ psPicParams->sInParams.MBPerFrm = (psContext->Width >> 4) * (psContext->Height >> 4);
+ psPicParams->sInParams.BUPerFrm = (psPicParams->sInParams.MBPerFrm) / psRCParams->BUSize;
+ psPicParams->sInParams.AvQPVal = psRCParams->InitialQp;
+ psPicParams->sInParams.MyInitQP = psRCParams->InitialQp;
+
+ ui8InitialSeInitQP = psPicParams->sInParams.SeInitQP;
+
+ pnw__update_rcdata(psContext, psPicParams, psRCParams);
+
+ /*If MinQP has been set, restore this value rather than
+ *the calculated value set by UpdateRCData()*/
+ if (psRCParams->MinQP) {
+ psPicParams->sInParams.MinQPVal = (IMG_UINT8)psRCParams->MinQP;
+ }
+
+ /*If SeInitQP has been set, restore this value and other
+ * dependant variables rather than the calculated values set by UpdateRCData()*/
+ if (ui8InitialSeInitQP) {
+ psPicParams->sInParams.SeInitQP = ui8InitialSeInitQP;
+ psPicParams->sInParams.MyInitQP = ui8InitialSeInitQP;
+ psRCParams->InitialQp = ui8InitialSeInitQP;
+ }
+
+ if (psContext->bInserHRDParams && (psRCParams->BitsPerSecond != 0)) {
+ /*HRD parameters are meaningless without a bitrate */
+ psPicParams->InsertHRDparams = IMG_FALSE;
+ } else if (psContext->eCodec != IMG_CODEC_H264_VCM) {
+ psPicParams->InsertHRDparams = IMG_TRUE;
+ psPicParams->ClockDivBitrate = (90000 * 0x100000000LL);
+ psPicParams->ClockDivBitrate /= psRCParams->BitsPerSecond;
+ psPicParams->MaxBufferMultClockDivBitrate = (IMG_UINT32)
+ (((IMG_UINT64)(psRCParams->BufferSize) * (IMG_UINT64) 90000)
+ / (IMG_UINT64) psRCParams->BitsPerSecond);
+ }
+ return ;
+}
+
+static void pnw__setup_qpvalue_h264(
+ MTX_CURRENT_IN_PARAMS * psCurrent,
+ IMG_BYTE bySliceQP)
+{
+ /* H.264 QP scaling tables */
+ IMG_BYTE HOST_PVR_QP_SCALE_CR[52] = {
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
+ 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
+ 28, 29, 29, 30, 31, 32, 32, 33, 34, 34, 35, 35, 36, 36, 37, 37,
+ 37, 38, 38, 38, 39, 39, 39, 39
+ };
+
+ psCurrent->bySliceQP = bySliceQP;
+ psCurrent->bySliceQPC = HOST_PVR_QP_SCALE_CR[psCurrent->bySliceQP];
+}
+
+
+static void pnw__setup_qpvalues_mpeg4(
+ MTX_CURRENT_IN_PARAMS * psCurrent,
+ IMG_BYTE bySliceQP)
+{
+ psCurrent->bySliceQP = bySliceQP;
+}
+
+static void pnw__setup_slice_row_params(
+ context_ENC_p ctx,
+ IMG_BOOL IsIntra,
+ IMG_UINT16 CurrentRowY,
+ IMG_INT16 SliceStartRowY,
+ IMG_INT16 SliceHeight,
+ IMG_BOOL VectorsValid,
+ int bySliceQP)
+{
+ /* Note: CurrentRowY and SliceStartRowY are now in pixels (not MacroBlocks)
+ * - saves needless multiplications and divisions
+ */
+ MTX_CURRENT_IN_PARAMS *psCurrent;
+ pnw_cmdbuf_p cmdbuf = ctx->obj_context->pnw_cmdbuf;
+
+ IMG_INT16 iPos, iYPos, srcY;
+ IMG_UINT16 ui16tmp;
+ IMG_UINT16 ui16SearchWidth, ui16SearchHeight, ui16SearchLeftOffset, ui16SearchTopOffset, ui16CurBlockX;
+
+ if (IsIntra && cmdbuf->topaz_in_params_I_p == NULL) {
+ VAStatus vaStatus = psb_buffer_map(cmdbuf->topaz_in_params_I, &cmdbuf->topaz_in_params_I_p);
+ if (vaStatus != VA_STATUS_SUCCESS) {
+ psb__error_message("map topaz MTX_CURRENT_IN_PARAMS failed\n");
+ return;
+ }
+ }
+
+ if ((!IsIntra) && cmdbuf->topaz_in_params_P_p == NULL) {
+ VAStatus vaStatus = psb_buffer_map(cmdbuf->topaz_in_params_P, &cmdbuf->topaz_in_params_P_p);
+ if (vaStatus != VA_STATUS_SUCCESS) {
+ psb__error_message("map topaz MTX_CURRENT_IN_PARAMS failed\n");
+ return;
+ }
+ }
+
+ if (IsIntra)
+ psCurrent = (MTX_CURRENT_IN_PARAMS*)(cmdbuf->topaz_in_params_I_p + ctx->in_params_ofs);
+ else
+ psCurrent = (MTX_CURRENT_IN_PARAMS*)(cmdbuf->topaz_in_params_P_p + ctx->in_params_ofs);
+
+ psCurrent += (CurrentRowY * (ctx->Width) / 256);
+
+ // Note: CurrentRowY and iSliceStartRowY are now in pixels (not MacroBlocks) - saves needless multiplications and divisions
+
+ ui16SearchHeight = min(MVEA_LRB_SEARCH_HEIGHT, ctx->Height);
+ ui16SearchWidth = min(MVEA_LRB_SEARCH_WIDTH, ctx->Width);
+ ui16SearchLeftOffset = (((ui16SearchWidth / 2) / 16) * 16); // this is the amount of data that gets preloaded
+ ui16SearchTopOffset = (((ui16SearchHeight / 2) / 16) * 16);
+ ui16CurBlockX = MVEA_LRB_SEARCH_WIDTH - (ui16SearchLeftOffset + 16); // this is our block position relative to the start of the LRB
+
+ if ((iYPos = srcY = CurrentRowY - ui16SearchTopOffset) < 0)
+ srcY = 0;
+ else if (iYPos > ctx->HeightMinusLRB_TopAndBottom_OffsetsPlus16)
+ srcY = ctx->HeightMinusLRBSearchHeight;
+
+
+ /*DDK 243 removed this block of code.*/
+ /*if((ctx->eCodec==IMG_CODEC_H263_NO_RC)||(ctx->eCodec==IMG_CODEC_H263_CBR)||(ctx->eCodec==IMG_CODEC_H263_VBR))
+ ui16tmp = CurrentRowY;
+ else*/
+ ui16tmp = (CurrentRowY != SliceStartRowY);
+
+ for (iPos = 0; iPos < ctx->Width; iPos += 16, psCurrent++) {
+ memset(psCurrent, 0, sizeof(MTX_CURRENT_IN_PARAMS));
+ psCurrent->MVValid = 0;
+ psCurrent->ParamsValid = 0;
+
+ if (SliceStartRowY) {
+ psCurrent->MVValid = VECTORS_ABOVE_VALID;
+ }
+ /* Setup the parameters and motion vectors*/
+ if (ui16tmp) {
+ psCurrent->MVValid = VECTORS_ABOVE_VALID | DO_INTRA_PRED;
+ psCurrent->ParamsValid |= PARAMS_ABOVE_VALID;
+
+ if (iPos + 16 < ctx->Width) {
+ psCurrent->ParamsValid |= PARAMS_ABOVER_VALID;
+ psCurrent->MVValid |= /*VECTORS_LEFT_VALID; //*/(1 << 2); /* Vectors left valid define looks wrong*/
+ }
+
+ if (iPos > 0 && (iPos < ctx->Width)) {
+ psCurrent->ParamsValid |= PARAMS_ABOVEL_VALID;
+ psCurrent->MVValid |= VECTORS_ABOVE_LEFT_VALID; //(1<<0)
+ }
+ } else {
+ // are we the first MB in a new slice?
+ if (iPos == 0) {
+ if ((ctx->eCodec == IMG_CODEC_H263_NO_RC) || (ctx->eCodec == IMG_CODEC_H263_CBR) || (ctx->eCodec == IMG_CODEC_H263_VBR)) {
+ if (iYPos == -ui16SearchTopOffset)
+ psCurrent->ParamsValid |= MB_START_OF_SLICE;// OPTI?
+ } else {
+ psCurrent->ParamsValid |= MB_START_OF_SLICE;// OPTI?
+ }
+ }
+ }
+ /*DDK 243 removed this block of code.*/
+ /*if((ctx->eCodec==IMG_CODEC_H263_NO_RC) || (ctx->eCodec==IMG_CODEC_H263_CBR)||(ctx->eCodec==IMG_CODEC_H263_VBR))
+ {
+ // clear the above params valid bits
+ psCurrent->ParamsValid &=~(PARAMS_ABOVEL_VALID|PARAMS_ABOVER_VALID|PARAMS_ABOVE_VALID); // OPTI
+ }*/
+ // Have to fill in the right hand row of 4x4 vectors into the the left block
+ if (iPos) {
+ psCurrent->MVValid |= DO_INTRA_PRED | (1 << 3); /*MV_VALID define looks wrong?! so use hard coded value for now*/
+ psCurrent->ParamsValid |= 8; //(1<<3)
+ }
+ if (iPos == ctx->Width - 16) {
+ // indicate the last MB in a row
+ psCurrent->ParamsValid |= MB_END_OF_ROW;
+ // are we the last mb in the slice?
+ if (iYPos == (SliceStartRowY + SliceHeight - (ui16SearchTopOffset + 16))) {
+ psCurrent->ParamsValid |= MB_END_OF_SLICE;
+ if (iYPos == ctx->HeightMinus16MinusLRBTopOffset) {
+ psCurrent->ParamsValid |= MB_END_OF_PICTURE;
+ }
+ }
+ }
+ // And now the below block
+ // should do some kind of check to see if we are the first inter block, as otherwise the vectors will be invalid!
+ if (VectorsValid) {
+ if (iYPos < ctx->HeightMinus16MinusLRBTopOffset) {
+ psCurrent->MVValid |= VECTORS_BELOW_VALID; //(1<<4)
+
+ if (iYPos < ctx->HeightMinus32MinusLRBTopOffset) {
+ psCurrent->MVValid |= VECTORS_2BELOW_VALID; //(1<<5)
+ }
+ }
+ }
+
+ /*Set up IPEMin and Max for coordinate X in the search reference region*/
+ /*And set up flags in SPEMax when needed*/
+ if (iPos <= ui16SearchLeftOffset) {
+ psCurrent->IPEMin[0] = ui16CurBlockX - iPos;
+ psCurrent->RealEdge |= SPE_EDGE_LEFT;
+ } else {
+ psCurrent->IPEMin[0] = ui16CurBlockX / 16;
+ }
+
+ if ((iPos + ui16SearchLeftOffset + 16) > ctx->Width) {
+ psCurrent->IPEMax[0] = (ui16CurBlockX - 1 + ctx->Width) - iPos; //(112 - 1) - ((iPos + 48+16) - ctx->psVideo->ui16Width);
+ psCurrent->RealEdge |= SPE_EDGE_RIGHT;
+ } else {
+ psCurrent->IPEMax[0] = (ui16CurBlockX + 16 + ui16SearchLeftOffset) - 1 - 3; //(112 - 1) - 3;
+ }
+
+ /*Set up IPEMin and Max for Y coordinate in the search reference region*/
+ /*And set up flags in SPEMax when needed*/
+ if (iYPos <= 0) {
+ psCurrent->IPEMin[1] = 0;
+ psCurrent->RealEdge |= SPE_EDGE_TOP;
+ } else {
+ psCurrent->IPEMin[1] = 3;
+ }
+
+ //Max Y
+ if (iYPos > ctx->HeightMinusLRB_TopAndBottom_OffsetsPlus16) {
+ psCurrent->IPEMax[1] = ui16SearchHeight - 1;
+ psCurrent->RealEdge |= ui16SearchHeight - 4;
+ } else {
+ psCurrent->IPEMax[1] = ui16SearchHeight - 4;
+ }
+
+ psCurrent->CurBlockAddr = ((ui16CurBlockX) / 16);
+ psCurrent->CurBlockAddr |= ((IMG_UINT8)(((iYPos + ui16SearchTopOffset) - srcY) / 16) << 4);
+
+ /* Setup the control register values
+ These will get setup and transferred to a different location within the macroblock parameter structure.
+ They are then read out of the esb by the mtx and used to control the hardware units
+ */
+ psCurrent->IPEControl = ctx->IPEControl;
+
+ switch (ctx->eCodec) {
+ case IMG_CODEC_H263_NO_RC:
+ case IMG_CODEC_H263_VBR:
+ case IMG_CODEC_H263_CBR:
+ pnw__setup_qpvalues_mpeg4(psCurrent, bySliceQP);
+ psCurrent->JMCompControl = F_ENCODE(2, MVEA_CR_JMCOMP_MODE);
+ psCurrent->VLCControl = F_ENCODE(3, TOPAZ_VLC_CR_CODEC) | F_ENCODE(IsIntra ? 0 : 1, TOPAZ_VLC_CR_SLICE_CODING_TYPE);
+ break;
+ case IMG_CODEC_MPEG4_NO_RC:
+ case IMG_CODEC_MPEG4_VBR:
+ case IMG_CODEC_MPEG4_CBR:
+ pnw__setup_qpvalues_mpeg4(psCurrent, bySliceQP);
+ psCurrent->JMCompControl = F_ENCODE(1, MVEA_CR_JMCOMP_MODE) | F_ENCODE(1, MVEA_CR_JMCOMP_AC_ENABLE);
+ psCurrent->VLCControl = F_ENCODE(2, TOPAZ_VLC_CR_CODEC) | F_ENCODE(IsIntra ? 0 : 1, TOPAZ_VLC_CR_SLICE_CODING_TYPE);
+ break;
+ default:
+ case IMG_CODEC_H264_NO_RC:
+ case IMG_CODEC_H264_VBR:
+ case IMG_CODEC_H264_CBR:
+ case IMG_CODEC_H264_VCM:
+ pnw__setup_qpvalue_h264(psCurrent, bySliceQP);
+ psCurrent->JMCompControl = F_ENCODE(0, MVEA_CR_JMCOMP_MODE);
+ psCurrent->VLCControl = F_ENCODE(1, TOPAZ_VLC_CR_CODEC) | F_ENCODE(IsIntra ? 0 : 1, TOPAZ_VLC_CR_SLICE_CODING_TYPE);
+ break;
+ }
+ }
+
+ // now setup the dummy end of frame macroblock.
+ if ((CurrentRowY + 16) >= ctx->Height) {
+ memset(psCurrent, 0, sizeof(MTX_CURRENT_IN_PARAMS));
+ psCurrent->MVValid = DO_INTRA_PRED;
+ psCurrent->ParamsValid = 0;
+ psCurrent->RealEdge = 0;
+ }
+}
+
+void pnw_setup_slice_params(
+ context_ENC_p ctx,
+ IMG_UINT16 YSliceStartPos,
+ IMG_UINT16 SliceHeight,
+ IMG_BOOL IsIntra,
+ IMG_BOOL VectorsValid,
+ int bySliceQP)
+{
+ IMG_UINT16 Rows, CurrentRowY;
+
+ Rows = SliceHeight / 16;
+ CurrentRowY = YSliceStartPos;
+
+ while (Rows) {
+ pnw__setup_slice_row_params(
+ ctx,
+ IsIntra,
+ CurrentRowY,
+ YSliceStartPos,
+ SliceHeight,
+ VectorsValid, bySliceQP);
+
+ CurrentRowY += 16;
+ Rows--;
+ }
+
+}
+
+
+
+IMG_UINT32 pnw__send_encode_slice_params(
+ context_ENC_p ctx,
+ IMG_BOOL IsIntra,
+ IMG_UINT16 CurrentRow,
+ IMG_UINT8 DeblockIDC,
+ IMG_UINT32 FrameNum,
+ IMG_UINT16 SliceHeight,
+ IMG_UINT16 CurrentSlice)
+{
+ SLICE_PARAMS *psSliceParams;
+ IMG_INT16 RowOffset;
+ IMG_UINT16 SearchHeight, SearchTopOffset;
+
+ psb_buffer_p psCoded;
+ object_surface_p ref_surface;
+ psb_buffer_p psRef;
+ pnw_cmdbuf_p cmdbuf = ctx->obj_context->pnw_cmdbuf;
+
+
+ psb__information_message("Send encode slice parmas, Is Intra:%d, CurrentRow:%d" \
+ "DeblockIDC:%d, FrameNum:%d, SliceHeight:%d, CurrentSlice:%d\n",
+ IsIntra, CurrentRow, DeblockIDC, FrameNum, SliceHeight, CurrentSlice);
+
+ ref_surface = ctx->ref_surface;
+ psRef = &ctx->ref_surface->psb_surface->buf;
+ psCoded = ctx->coded_buf->psb_buffer;
+
+ psSliceParams = (SLICE_PARAMS *)(cmdbuf->slice_params_p +
+ CurrentSlice * ((sizeof(SLICE_PARAMS) + 15) & 0xfff0));
+
+ psSliceParams->SliceHeight = SliceHeight;
+ psSliceParams->SliceStartRowNum = CurrentRow / 16;
+
+ /* We want multiple ones of these so we can submit multiple slices without having to wait for the next */
+ psSliceParams->Flags = 0;
+ psSliceParams->HostCtx = 0xdafed123;
+
+#ifdef VA_EMULATOR
+ psSliceParams->RefYStride = ref_surface->psb_surface->stride;
+ psSliceParams->RefUVStride = ref_surface->psb_surface->stride;
+ psSliceParams->RefYRowStride = ref_surface->psb_surface->stride * 16;
+ psSliceParams->RefUVRowStride = ref_surface->psb_surface->stride * 16 / 2;
+#else
+ psSliceParams->RefYStride = ref_surface->psb_surface->stride;
+ psSliceParams->RefUVStride = ref_surface->psb_surface->stride;
+ psSliceParams->RefYRowStride = ref_surface->psb_surface->stride * 16;
+ psSliceParams->RefUVRowStride = ref_surface->psb_surface->stride * 16 / 2;
+#endif
+ psSliceParams->NumAirMBs = ctx->num_air_mbs;
+ psSliceParams->AirThreshold = ctx->air_threshold;
+
+ psSliceParams->MaxSliceSize = ctx->max_slice_size;
+ psSliceParams->FCode = ctx->FCode;/* Not clear yet, This field is not appare in firmware doc */
+
+ SearchHeight = min(MVEA_LRB_SEARCH_HEIGHT, ctx->Height);
+ SearchTopOffset = (((SearchHeight / 2) / 16) * 16);
+
+ RowOffset = CurrentRow - SearchTopOffset;
+ if (RowOffset <= 0)
+ RowOffset = 0;
+ if (RowOffset > (ctx->Height - SearchHeight))
+ RowOffset = (ctx->Height - SearchHeight);
+ if (!IsIntra) {
+ psSliceParams->Flags |= ISINTER_FLAGS;
+ }
+
+ switch (DeblockIDC) {
+ case 0:
+ psSliceParams->Flags |= DEBLOCK_FRAME;
+ break;
+ case 2:
+ psSliceParams->Flags |= DEBLOCK_SLICE;
+ break;
+ case 1:
+ default:
+ // do nothing
+ break;
+ }
+
+ switch (ctx->eCodec) {
+ case IMG_CODEC_H263_NO_RC:
+ case IMG_CODEC_H263_VBR:
+ case IMG_CODEC_H263_CBR:
+ psSliceParams->Flags |= ISH263_FLAGS;
+ break;
+ case IMG_CODEC_MPEG4_NO_RC:
+ case IMG_CODEC_MPEG4_VBR:
+ case IMG_CODEC_MPEG4_CBR:
+ psSliceParams->Flags |= ISMPEG4_FLAGS;
+ break;
+ case IMG_CODEC_H264_NO_RC:
+ case IMG_CODEC_H264_VBR:
+ case IMG_CODEC_H264_CBR:
+ case IMG_CODEC_H264_VCM:
+ psSliceParams->Flags |= ISH264_FLAGS;
+ break;
+ default:
+ psSliceParams->Flags |= ISH264_FLAGS;
+ printf("No format specified defaulting to h.264\n");
+ break;
+ }
+ /* we should also setup the interleaving requirements based on the source format */
+ if (ctx->eFormat == IMG_CODEC_PL12) /* FIXME contrary with old DDK, take notice */
+ psSliceParams->Flags |= INTERLEAVE_TARGET;
+
+ cmdbuf = ctx->obj_context->pnw_cmdbuf;
+
+ RELOC_SLICE_PARAMS_PNW(&(psSliceParams->RefYBase), 256 * RowOffset / 16, psRef);
+ RELOC_SLICE_PARAMS_PNW(&(psSliceParams->RefUVBase),
+ ref_surface->psb_surface->stride * ref_surface->height + (RowOffset * 128 / 16),
+ psRef);
+ if (IsIntra)
+ RELOC_SLICE_PARAMS_PNW(&(psSliceParams->InParamsBase),
+ ctx->in_params_ofs,
+ //((CurrentRow * (ctx->Width)) / 256 + ctx->obj_context->slice_count) * sizeof(MTX_CURRENT_IN_PARAMS),
+ cmdbuf->topaz_in_params_I);
+ else
+ RELOC_SLICE_PARAMS_PNW(&(psSliceParams->InParamsBase),
+ ctx->in_params_ofs,
+ //((CurrentRow * (ctx->Width)) / 256 + ctx->obj_context->slice_count) * sizeof(MTX_CURRENT_IN_PARAMS),
+ cmdbuf->topaz_in_params_P);
+
+#if TOPAZ_PIC_PARAMS_VERBOSE
+ psb__information_message("sizeof psSliceParams %d\n", sizeof(*psSliceParams));
+ psb__information_message("sizeof MTX_CURRENT_IN_PARAMS %d\n", sizeof(MTX_CURRENT_IN_PARAMS));
+ psb__information_message("psSliceParams->SliceStartRowNum %d\n", psSliceParams->SliceStartRowNum);
+ psb__information_message("psSliceParams->SliceHeight %d\n", psSliceParams->SliceHeight);
+ psb__information_message("psSliceParams->RefYBase %x\n", psSliceParams->RefYBase);
+ psb__information_message("psSliceParams->RefUVBase %x\n", psSliceParams->RefUVBase);
+ psb__information_message("psSliceParams->RefYStride %d\n", psSliceParams->RefYStride);
+ psb__information_message("psSliceParams->RefUVStride %d\n", psSliceParams->RefUVStride);
+ psb__information_message("psSliceParams->RefYRowStride %d\n", psSliceParams->RefYRowStride);
+ psb__information_message("psSliceParams->RefUVRowStride %d\n", psSliceParams->RefUVRowStride);
+ psb__information_message("psSliceParams->HostCtx %d\n", psSliceParams->HostCtx);
+ psb__information_message("psSliceParams->Flags %x\n", psSliceParams->Flags);
+ psb__information_message("psSliceParams->MaxSliceSize %d\n", psSliceParams->MaxSliceSize);
+ psb__information_message("psSliceParams->FCode %x\n", psSliceParams->FCode);
+ psb__information_message("psSliceParams->InParamsBase %x\n", psSliceParams->InParamsBase);
+ psb__information_message("psSliceParams->NumAirMBs %d\n", psSliceParams->NumAirMBs);
+ psb__information_message("psSliceParams->AirThreshold %x\n", psSliceParams->AirThreshold);
+#endif
+
+ pnw_cmdbuf_insert_command_package(ctx->obj_context,
+ ctx->SliceToCore,
+ MTX_CMDID_ENCODE_SLICE,
+ &cmdbuf->slice_params,
+ CurrentSlice *((sizeof(SLICE_PARAMS) + 15) & 0xfff0));
+
+
+ return 0;
+}
+
+
+
+/*
+ * Function Name : Reset_EncoderParams
+ * Description : Reset Above & Below Params at the Start of Intra frame
+ */
+void pnw_reset_encoder_params(context_ENC_p ctx)
+{
+ void *Add_Below, *Add_Above;
+ pnw_cmdbuf_p cmdbuf = ctx->obj_context->pnw_cmdbuf;
+
+ /* all frames share the same Topaz param, in_param/aboveparam/bellow
+ * map it only when necessary
+ */
+ if (cmdbuf->topaz_above_params_p == NULL) {
+ VAStatus vaStatus = psb_buffer_map(cmdbuf->topaz_above_params, &cmdbuf->topaz_above_params_p);
+ if (vaStatus != VA_STATUS_SUCCESS) {
+ psb__error_message("map topaz MTX_CURRENT_IN_PARAMS failed\n");
+ return;
+ }
+ }
+
+ if (cmdbuf->topaz_below_params_p == NULL) {
+ VAStatus vaStatus = psb_buffer_map(cmdbuf->topaz_below_params, &cmdbuf->topaz_below_params_p);
+ if (vaStatus != VA_STATUS_SUCCESS) {
+ psb__error_message("map topaz MTX_CURRENT_IN_PARAMS failed\n");
+ return;
+ }
+ }
+
+ Add_Below = cmdbuf->topaz_below_params_p +
+ ctx->below_params_ofs;
+
+ memset(Add_Below, 0, ctx->below_params_size * 4);
+
+ Add_Above = cmdbuf->topaz_above_params_p + ctx->above_params_ofs;
+ memset(Add_Above, 0, ctx->above_params_size * MAX_TOPAZ_CORES);
+}
+
+
+
diff --git a/src/pnw_hostcode.h b/src/pnw_hostcode.h
new file mode 100644
index 0000000..18a619a
--- /dev/null
+++ b/src/pnw_hostcode.h
@@ -0,0 +1,554 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ * Elaine Wang <elaine.wang@intel.com>
+ * Zeng Li <zeng.li@intel.com>
+ *
+ */
+
+#include "img_types.h"
+#include "psb_drv_video.h"
+#include "psb_surface.h"
+#include "pnw_cmdbuf.h"
+#include "pnw_hostjpeg.h"
+
+#define TOPAZ_PIC_PARAMS_VERBOSE 0
+
+#define MAX_SLICES_PER_PICTURE 72
+#define MAX_TOPAZ_CORES 4
+#define MAX_TOPAZ_CMD_COUNT (0x1000)
+
+#define TH_SKIP_IPE 6
+#define TH_INTER 60
+#define TH_INTER_QP 10
+#define TH_INTER_MAX_LEVEL 1500
+#define TH_SKIP_SPE 6
+#define SPE_ZERO_THRESHOLD 6
+
+#define MAX_NUM_CORES 2
+
+
+/* defines used for the second 32 bit word of the coded data header */
+/* the average Qp used in this frame */
+#define RC_STATUS_FRAME_AVE_QP_MASK 0x0ff
+/* At least one slice in this frame was large enough for the firmware to
+ * try to reduce it by increasing Qp or skipping MBs */
+#define RC_STATUS_FLAG_LARGE_SLICE 0x100
+/* At least one slice in this frame was larger than the slice limit */
+#define RC_STATUS_FLAG_SLICE_OVERFLOW 0x200
+/* The peak bitrate was exceeded for this frame (VCM only) */
+#define RC_STATUS_FLAG_BITRATE_OVERFLOW 0x400
+#define SKIP_NEXT_FRAME 0x800 /* The next frame should be skipped */
+
+/* commands for topaz,shared with user space driver */
+enum drm_pnw_topaz_cmd {
+ /* Common Commands */
+ MTX_CMDID_NULL,
+ MTX_CMDID_SHUTDOWN,
+
+ /* Video Commands */
+ MTX_CMDID_START_PIC,
+ MTX_CMDID_DO_HEADER,
+ MTX_CMDID_ENCODE_SLICE,
+ MTX_CMDID_END_PIC,
+ MTX_CMDID_FLUSH,
+
+ /* JPEG Commands */
+ MTX_CMDID_SETQUANT, //!< (data: #JPEG_MTX_QUANT_TABLE)\n
+ MTX_CMDID_RESET_ENCODE, //!< (no data)\n
+ MTX_CMDID_ISSUEBUFF, //!< (data: #MTX_ISSUE_BUFFERS)\n
+ MTX_CMDID_SETUP, //!< (data: #JPEG_MTX_DMA_SETUP)\n\n
+
+ /* SW Commands */
+ MTX_CMDID_PAD = 0x7a, //!< Will be ignored by kernel
+ MTX_CMDID_SW_WRITEREG = 0x7b,
+ MTX_CMDID_SW_LEAVE_LOWPOWER = 0x7c,
+ MTX_CMDID_SW_ENTER_LOWPOWER = 0x7e,
+ MTX_CMDID_SW_NEW_CODEC = 0x7f
+};
+
+
+/* codecs topaz supports,shared with user space driver */
+enum drm_pnw_topaz_codec {
+ IMG_CODEC_JPEG = 0,
+ IMG_CODEC_H264_NO_RC,
+ IMG_CODEC_H264_VBR,
+ IMG_CODEC_H264_CBR,
+ IMG_CODEC_H263_NO_RC,
+ IMG_CODEC_H263_VBR,
+ IMG_CODEC_H263_CBR,
+ IMG_CODEC_MPEG4_NO_RC,
+ IMG_CODEC_MPEG4_VBR,
+ IMG_CODEC_MPEG4_CBR,
+ IMG_CODEC_H264_VCM, //!< H264 low constant bitrate (video conferencing mode)
+ IMG_CODEC_NUM
+};
+
+typedef struct _RC_PARAMS_ {
+ IMG_UINT32 BitsPerSecond;
+ IMG_UINT32 InitialQp;
+ IMG_UINT32 BUSize;
+ IMG_UINT32 FrameRate;
+ IMG_UINT32 BufferSize;
+ IMG_UINT32 BitsConsumed;
+ IMG_UINT32 IntraFreq;
+ IMG_UINT16 IDRFreq;
+ IMG_INT16 MinQP;
+ IMG_BOOL RCEnable;
+ IMG_BOOL FrameSkip;
+
+ IMG_UINT8 Slices;
+ IMG_UINT32 BitsTransmitted;
+ IMG_INT32 InitialLevel;
+ IMG_INT32 InitialDelay;
+ IMG_INT8 QCPOffset;
+
+ IMG_BOOL bDisableFrameSkipping;
+ IMG_BOOL bDisableBitStuffing;
+ IMG_BOOL bBitrateChanged;
+} IMG_RC_PARAMS;
+
+/*!
+*****************************************************************************
+*
+* @Description Struct describing rate control input parameters
+*
+* @Brief Rate control input parameters
+*
+****************************************************************************/
+typedef struct {
+ IMG_UINT8 SeInitQP; /* Initial QP for Sequence */
+ IMG_UINT8 MinQPVal; /* Minimum QP value to use */
+ IMG_UINT8 MaxQPVal; /* Maximum QP value to use */
+
+ IMG_UINT8 MBPerRow; /* Number of MBs Per Row */
+ IMG_UINT16 MBPerFrm; /* Number of MBs Per Frame */
+ IMG_UINT16 MBPerBU; /* Number of MBs Per BU */
+ IMG_UINT16 BUPerFrm; /* Number of BUs Per Frame */
+
+ IMG_UINT16 IntraPeriod; /* Intra frame frequency */
+
+ IMG_INT32 BitsPerFrm; /* Bits Per Frame */
+ IMG_INT32 BitsPerBU; /* Bits Per BU */
+ IMG_INT32 BitsPerMB; /* Bits Per MB */
+
+ IMG_INT32 BitRate; /* Bit Rate (bps) */
+ IMG_INT32 BufferSize; /* Size of Buffer */
+ IMG_INT32 InitialLevel; /* Initial Level of Buffer */
+ IMG_INT32 InitialDelay; /* Initial Delay of Buffer */
+
+ IMG_UINT8 ScaleFactor; /* Scale Factor (H264 only) */
+
+ /* Bitrate that should be targetted as a fraction of 128
+ * relative to maximum bitrate i32BitRate (VCM mode only)*/
+ IMG_UINT8 VCMBitrateMargin;
+
+ IMG_UINT8 HalfFrameRate; /* Half Frame Rate (MP4 only) */
+ IMG_UINT8 FCode; /* F Code (MP4 only) */
+
+ /* TO BE DELETED -- ONCE MP4 RC CODE IS OPTIMISED */
+ IMG_INT32 BitsPerGOP; /* Bits Per GOP (MP4 only) */
+ IMG_UINT16 AvQPVal; /* Average QP in Current Picture */
+ IMG_UINT16 MyInitQP; /* Initial Quantizer */
+
+ /* The number of bits of margin to leave before forcing
+ * skipped macroblocks (VCM mode only)*/
+ IMG_INT32 ForeceSkipMargin;
+
+ /* A constant used in rate control =
+ * (GopSize/(BufferSize-InitialLevel))*256 */
+ IMG_UINT32 RCScaleFactor;
+} IN_RC_PARAMS;
+
+typedef enum _TH_SKIP_SCALE_ {
+ TH_SKIP_0 = 0,
+ TH_SKIP_12 = 1,
+ TH_SKIP_24 = 2
+} TH_SKIP_SCALE;
+
+struct context_ENC_s {
+ object_context_p obj_context; /* back reference */
+
+ IMG_INT32 NumCores; /* Number of encode cores in Penwell */
+ IMG_INT32 ParallelCores; /* Number of cores to use */
+ IMG_INT32 BelowParamsBufIdx;
+
+ IMG_INT16 RawWidth;
+ IMG_INT16 RawHeight;
+
+ IMG_INT16 Width; /* ~0xf & (RawWidth + 0xf)*/
+ IMG_INT16 Height; /* ~0xf & (RawHeight + 0xf */
+
+ IMG_INT16 Slices;
+ enum drm_pnw_topaz_codec eCodec;
+ IMG_FORMAT eFormat;
+ unsigned int FCode;
+ IMG_RC_PARAMS sRCParams;
+ IMG_INT32 AccessUnitNum;
+ IMG_UINT32 CmdCount;
+ IMG_UINT32 LastSync[2][MAX_TOPAZ_CORES];
+ IMG_INT32 FrmIdx;
+ IMG_BOOL SliceHeaderReady[MAX_SLICES_PER_PICTURE];
+
+ IMG_UINT32 InBuffer; /* total coded data in Byte */
+ IMG_BOOL Transmitting;
+
+ IMG_INT16 HeightMinus16MinusLRBTopOffset;
+ IMG_INT16 HeightMinus32MinusLRBTopOffset;
+ IMG_INT16 HeightMinusLRB_TopAndBottom_OffsetsPlus16;
+ IMG_INT16 HeightMinusLRBSearchHeight;
+ IMG_UINT32 IPEControl;
+ IMG_BOOL SyncSequencer;
+
+ IMG_INT32 SliceToCore; /* Core number to send current slice to */
+ IMG_INT32 LastSliceNum[MAX_TOPAZ_CORES]; /* Slice number of last slice sent to core */
+
+ object_surface_p src_surface;
+ object_surface_p ref_surface;
+ object_surface_p dest_surface;/* reconstructed surface */
+ object_buffer_p coded_buf;
+
+ /* save previous settings */
+ object_surface_p previous_src_surface;
+ object_surface_p previous_ref_surface;
+ object_surface_p previous_dest_surface; /* reconstructed surface */
+ object_buffer_p previous_coded_buf;
+ object_buffer_p pprevious_coded_buf;
+
+ /* point to the place in cmdbuf following START_PIC, the initial_qp will fill into it later */
+ uint32_t *initial_qp_in_cmdbuf;
+
+
+ /* global topaz_params buffer shared by every cmdbuffer
+ * it is because filling InParams for every MB is very time-consuming
+ * and in most cases, we can reuse previous frames buffer
+ */
+ /* 0 and 1 are for in_parms, 2 is for bellow and above params*/
+
+ struct psb_buffer_s topaz_in_params_I;
+ struct psb_buffer_s topaz_in_params_P;
+
+ struct psb_buffer_s topaz_below_params; /* MB MVs read & written by HW */
+ struct psb_buffer_s topaz_above_params; /* MB MVs read & written by HW */
+
+ uint32_t topaz_buffer_size;
+ uint32_t in_params_size;
+ uint32_t below_params_size;
+ uint32_t above_params_size;
+
+ /* offset in topaz_param buffer */
+ uint32_t in_params_ofs;
+
+ uint32_t below_params_ofs;
+ uint32_t above_params_ofs;
+
+ uint32_t pic_params_size;
+
+ uint32_t header_buffer_size;
+
+ uint32_t seq_header_ofs;
+ uint32_t pic_header_ofs;
+ uint32_t eoseq_header_ofs;
+ uint32_t eostream_header_ofs;
+ uint32_t slice_header_ofs;
+ /*HRD SEI header*/
+ uint32_t aud_header_ofs;
+ uint32_t sei_buf_prd_ofs;
+ uint32_t sei_pic_tm_ofs;
+
+ uint32_t sliceparam_buffer_size;
+
+ IN_RC_PARAMS in_params_cache; /* following frames reuse the first frame's IN_RC_PARAMS, cache it */
+ TH_SKIP_SCALE THSkip;
+ uint32_t pic_params_flags;
+
+ VAEncSliceParameterBuffer *slice_param_cache;
+ uint16_t slice_param_num;
+
+ IMG_UINT16 MPEG4_vop_time_increment_resolution;
+
+ /* saved information for FrameSkip redo */
+ uint32_t MPEG4_vop_time_increment_frameskip;
+ uint32_t MPEG4_picture_type_frameskip;
+ uint8_t profile_idc;
+
+ uint8_t force_idr_h264;
+
+ /*If only one slice, it's zero. Otherwise it indicates size of parted coded_buf per slice*/
+ uint32_t coded_buf_per_slice;
+
+ /*JPEG context*/
+ TOPAZSC_JPEG_ENCODER_CONTEXT *jpeg_ctx;
+
+ /*H264 SEI_INSERTION*/
+ IMG_BOOL bInserHRDParams;
+
+ uint32_t max_slice_size;
+ unsigned char *save_seq_header_p;
+
+ IMG_INT16 num_air_mbs;
+ IMG_INT16 air_threshold;
+
+ /*H264 idr_pic_id field in slice header*/
+ uint16_t idr_pic_id;
+};
+
+typedef struct context_ENC_s *context_ENC_p;
+
+/*#define BELOW_PARAMS_SIZE 8*/
+
+#define HEADER_SIZE 128*2
+
+#define BELOW_PARAMS_SIZE 16
+#define REGION_TYPE_2D 1
+#define REGION_TYPE_LINEAR 0
+#define REGION_TYPE_2DREF 3
+
+
+#define MAX_RESIDUAL_PER_MB_H264 1260
+#define ISINTER_FLAGS 0x1
+#define ISH264_FLAGS 0x2
+#define ISMPEG4_FLAGS 0x4
+#define ISH263_FLAGS 0x8
+#define DEBLOCK_FRAME 0x10
+#define ISRC_FLAGS 0x20
+#define ISCBR_FLAGS 0x40
+#define ISVCM_FLAGS 0x80
+#define ISVBR_FLAGS 0x100
+#define ISRC_I16BIAS 0x200
+#define INTERLEAVE_TARGET 0x400
+#define FIRST_FRAME 0x800
+#define SYNC_SEQUENCER 0x1000
+#define DEBLOCK_SLICE 0x2000
+#define DISABLE_FRAME_SKIPPING 0x4000 //!< Flag indicatest that frame skipping should be disabled.
+#define DISABLE_BIT_STUFFING 0x8000 //!< Flag indicates that bit stuffing should be disabled.
+
+#define SPE_EDGE_LEFT 1 /* ->bMinXRealEdge*/
+#define SPE_EDGE_RIGHT 2 /* ->bMaxXRealEdge*/
+#define SPE_EDGE_TOP 4 /* ->bMinYRealEdge*/
+#define SPE_EDGE_BOTTOM 8 /* ->bMaxYRealEdge*/
+
+#define BPH_SEI_NAL_INITIAL_CPB_REMOVAL_DELAY_SIZE 23
+#define PTH_SEI_NAL_CPB_REMOVAL_DELAY_SIZE 23
+#define PTH_SEI_NAL_DPB_OUTPUT_DELAY_SIZE 7
+
+typedef struct {
+ /* Transferred into the input params area of the macroblock parameter structure*/
+ IMG_BYTE CurBlockAddr;
+ IMG_BYTE IPEMin[2];
+ IMG_BYTE IPEMax[2];
+ IMG_BYTE RealEdge; /*bMinXRealEdge, bMaxXRealEdge, bMinXRealEdge and bMinYRealEdge*/
+ /* Surrounding block availability */
+ IMG_BYTE MVValid;
+ IMG_BYTE ParamsValid;
+ IMG_BYTE bySliceQP;
+ IMG_BYTE bySliceQPC;
+
+ IMG_BYTE Reserved[6]; /* This is padding to make the transfers 16 bytes aligned*/
+ /* Transferred into the SW communication section of the macroblock
+ * parameter structure We shall EDMA the whole lot of this into eiob
+ * in one go, and then use two TDMA's to put it into seperate locations
+ * within the macroblock structure
+ */
+ IMG_UINT32 IPEControl;
+ IMG_UINT32 SPEControl;
+ IMG_UINT32 JMCompControl;
+ IMG_UINT32 VLCControl;
+} MTX_CURRENT_IN_PARAMS;
+
+typedef struct { /* corresponding bytes inside the MB_IN structure: */
+ IMG_BYTE BlockSizes; /****************/
+ IMG_BYTE IntraMode; /* */
+ IMG_BYTE Intra4x4ModesBottom[2]; /* */
+ IMG_BYTE CodeType; /* [64 : 71] */
+ IMG_BYTE Reserved2; /* */
+ /*IMG_BYTE SAD;*/
+ IMG_BYTE QPy; /* */
+ IMG_BYTE QPc; /****************/
+
+ IMG_BYTE Reserved3[8]; /* This is padding to make the transfers 16 byte aligned*/
+
+ IMG_UINT16 LumaSubBlockCoded; /****************/
+ IMG_BYTE ChromaSubBlockCoded; /* */
+ IMG_BYTE LumaChromaDCCoded; /* */
+ /* [129 : 143] */
+ IMG_BYTE Lambda; /* */
+ IMG_BYTE Reserved[3]; /* */
+ /* */
+ IMG_BYTE Intra4x4ModeDeltas[8]; /****************/
+
+ /* Motion vectors */
+ IMG_UINT16 IntegerMV[16][2]; /* [207 : 144] */
+ /* input region from host */
+} MTX_CURRENT_OUT_PARAMS;
+
+
+typedef struct _PIC_PARAMS_ {
+ IMG_UINT32 SrcYBase;
+ IMG_UINT32 SrcUBase;
+ IMG_UINT32 SrcVBase;
+ IMG_UINT32 DstYBase;
+ IMG_UINT32 DstUVBase;
+
+ IMG_UINT16 SrcYStride;
+ IMG_UINT16 SrcUVStride;
+ IMG_UINT16 SrcYRowStride;
+ IMG_UINT16 SrcUVRowStride;
+
+ IMG_UINT16 DstYStride;
+ IMG_UINT16 DstUVStride;
+ IMG_UINT16 DstYRowStride;
+ IMG_UINT16 DstUVRowStride;
+
+ IMG_UINT32 InParamsBase;
+ IMG_UINT32 InParamsRowStride;
+
+ IMG_UINT32 OutParamsBase;
+ IMG_UINT32 CodedBase;
+
+ IMG_UINT32 BelowParamsInBase;
+ IMG_UINT32 BelowParamsOutBase;
+ IMG_UINT32 BelowParamRowStride;
+
+ IMG_UINT32 AboveParamsBase;
+ IMG_UINT32 AboveParamRowStride;
+ IMG_UINT16 Width;
+ IMG_UINT16 Height;
+ IMG_UINT16 Flags;
+
+ IN_RC_PARAMS sInParams;
+ TH_SKIP_SCALE THSkip;
+ IMG_UINT16 SearchWidth;
+ IMG_UINT16 SearchHeight;
+
+ IMG_UINT16 NumSlices; //!< Number of slices in the picture
+
+ // SEI_INSERTION
+ IMG_UINT32 InitialCPBremovaldelayoffset;
+ IMG_UINT64 ClockDivBitrate;
+ IMG_UINT32 MaxBufferMultClockDivBitrate;
+ IMG_BOOL InsertHRDparams;
+
+} PIC_PARAMS;
+
+
+/* This holds the data that is needed at the start of a slice
+ */
+typedef struct _SLICE_PARAMS_ {
+
+ IMG_UINT16 SliceStartRowNum;
+ IMG_UINT16 SliceHeight; /*Height of slice in pixels*/
+
+ IMG_UINT32 RefYBase;
+ IMG_UINT32 RefUVBase;
+ IMG_UINT16 RefYStride;
+ IMG_UINT16 RefUVStride;
+ IMG_UINT16 RefYRowStride;
+ IMG_UINT16 RefUVRowStride;
+
+ IMG_UINT32 HostCtx; /*Host context to insert into coded data header*/
+ IMG_UINT32 Flags;
+ IMG_UINT32 MaxSliceSize;
+ IMG_UINT32 FCode; /*FCode value MP4 only*/
+
+ /*Pointer to array of MTX_CURRENT_IN_PARAMS for each MB*/
+ IMG_UINT32 InParamsBase;
+
+ /*Maximum number of Adaptive intra refresh macroblocks for this slice*/
+ IMG_INT16 NumAirMBs;
+
+ /*Theshold value used in Adaptive intra refresh calculation.*/
+ IMG_INT16 AirThreshold;
+ IMG_UINT32 ui32Reserved;
+} SLICE_PARAMS;
+
+enum {
+ CBR = 0,
+ VBR
+} eRCMode;
+
+enum {
+ EH263 = 0,
+ EMpeg4 = 1,
+ EH264 = 2,
+ EHJpeg = 3
+} eEncodingFormat;
+
+#define VAEncSliceParameter_Equal(src, dst) \
+ (((src)->start_row_number == (dst)->start_row_number) \
+ && ((src)->slice_height == (dst)->slice_height) \
+ && ((src)->slice_flags.bits.is_intra == (dst)->slice_flags.bits.is_intra) \
+ && ((src)->slice_flags.bits.disable_deblocking_filter_idc == (dst)->slice_flags.bits.disable_deblocking_filter_idc))
+
+#define VAEncSliceParameter_LightEqual(src, dst) \
+ (((src)->start_row_number == (dst)->start_row_number) \
+ && ((src)->slice_height == (dst)->slice_height) \
+ && ((src)->slice_flags.bits.disable_deblocking_filter_idc == (dst)->slice_flags.bits.disable_deblocking_filter_idc))
+
+
+
+#define SURFACE_INFO_SKIP_FLAG_SETTLED 0X80000000
+#define GET_SURFACE_INFO_skipped_flag(psb_surface) ((int) (psb_surface->extra_info[5]))
+#define SET_SURFACE_INFO_skipped_flag(psb_surface, value) psb_surface->extra_info[5] = (SURFACE_INFO_SKIP_FLAG_SETTLED | value)
+#define CLEAR_SURFACE_INFO_skipped_flag(psb_surface) psb_surface->extra_info[5] = 0
+
+VAStatus pnw_CreateContext(object_context_p obj_context,
+ object_config_p obj_config,
+ unsigned char is_JPEG);
+
+
+void pnw__setup_rcdata(context_ENC_p ctx, PIC_PARAMS *psPicParams, IMG_RC_PARAMS *rc_params);
+
+void pnw_DestroyContext(
+ object_context_p obj_context
+);
+
+VAStatus pnw_BeginPicture(context_ENC_p ctx);
+VAStatus pnw_EndPicture(context_ENC_p ctx);
+
+void pnw_setup_slice_params(
+ context_ENC_p ctx, IMG_UINT16 YSliceStartPos,
+ IMG_UINT16 SliceHeight, IMG_BOOL IsIntra,
+ IMG_BOOL VectorsValid, int bySliceQP);
+
+IMG_UINT32 pnw__send_encode_slice_params(
+ context_ENC_p ctx,
+ IMG_BOOL IsIntra,
+ IMG_UINT16 CurrentRow,
+ IMG_UINT8 DeblockIDC,
+ IMG_UINT32 FrameNum,
+ IMG_UINT16 SliceHeight,
+ IMG_UINT16 CurrentSlice);
+
+VAStatus pnw_RenderPictureParameter(context_ENC_p ctx, int core);
+
+
+void pnw_reset_encoder_params(context_ENC_p ctx);
+unsigned int pnw__get_ipe_control(enum drm_pnw_topaz_codec eEncodingFormat);
+
+
+VAStatus pnw_set_bias(context_ENC_p ctx, int core);
+
+void pnw__UpdateRCBitsTransmitted(context_ENC_p ctx);
diff --git a/src/pnw_hostheader.c b/src/pnw_hostheader.c
new file mode 100644
index 0000000..f3ab02d
--- /dev/null
+++ b/src/pnw_hostheader.c
@@ -0,0 +1,2931 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ * Elaine Wang <elaine.wang@intel.com>
+ * Zeng Li <zeng.li@intel.com>
+ *
+ */
+
+
+#include <stdio.h>
+#include <string.h>
+#include "img_types.h"
+#include "psb_def.h"
+#include "pnw_hostheader.h"
+
+
+/* Global stores the latest QP information for the DoHeader()
+ * routine, should be filled in by the rate control algorithm.
+ */
+#define HEADERS_VERBOSE_OUTPUT 0
+
+/* #define USESTATICWHEREPOSSIBLE 1 */
+
+#define MAXNUMBERELEMENTS 16
+#define HEADER_SIZE (128*2)
+
+/* SOME USEFUL TEST FUNCTIONS */
+#ifndef TOPAZ_MTX_HW
+
+static void Show_Bits(
+ IMG_UINT8 *ucBitStream,
+ IMG_UINT32 ByteStartBit,
+ IMG_UINT32 Bits)
+{
+ char Txt[1024];
+ IMG_UINT32 uiByteSize;
+ IMG_UINT32 uiLp, uiBt, Bcnt;
+ Bcnt = 0;
+ uiByteSize = (Bits + ByteStartBit + 7) >> 3;
+ for (uiLp = 0; uiLp < uiByteSize; uiLp++) {
+ snprintf(Txt, strlen(" "), " ");
+ for (uiBt = 128; uiBt >= 1; uiBt = uiBt >> 1) {
+ Bcnt++;
+ if (Bcnt > Bits + ByteStartBit || Bcnt <= ByteStartBit)
+ snprintf(Txt, sizeof(Txt), "%sX", Txt);
+ else
+ snprintf(Txt, sizeof(Txt), "%s%i", Txt, (ucBitStream[uiLp] & uiBt) > 0);
+ }
+
+ snprintf(Txt, sizeof(Txt), "%s ", Txt);
+ printf(Txt);
+ if ((uiLp + 1) % 8 == 0) printf("\n");
+ }
+
+ printf("\n\n");
+}
+#endif
+
+#ifndef TOPAZ_MTX_HW
+
+static void Show_Elements(
+ MTX_HEADER_PARAMS *mtx_hdr,
+ MTX_HEADER_ELEMENT **elt_p)
+{
+ IMG_UINT8 f;
+ IMG_UINT32 TotalByteSize;
+ IMG_UINT32 RTotalByteSize;
+
+ RTotalByteSize = TotalByteSize = 0;
+ for (f = 0; f < mtx_hdr->Elements; f++) {
+#if HEADERS_VERBOSE_OUTPUT
+ psb__information_message("Encoding Element [%i] - Type:%i\n", f, elt_p[f]->Element_Type);
+#endif
+ if (elt_p[f]->Element_Type == ELEMENT_STARTCODE_RAWDATA ||
+ elt_p[f]->Element_Type == ELEMENT_RAWDATA) {
+ TotalByteSize = elt_p[f]->Size;
+#if HEADERS_VERBOSE_OUTPUT
+ psb__information_message("Writing %i RAW bits to element.\n", elt_p[f]->Size);
+ Show_Bits((IMG_UINT8 *)(&elt_p[f]->Size) + 1, 0, TotalByteSize);
+#endif
+ TotalByteSize += 8;
+
+ RTotalByteSize += (((IMG_UINT32)((TotalByteSize + 7) / 8)) * 8);
+ RTotalByteSize += 32;
+ } else {
+ TotalByteSize = 0;
+ switch (elt_p[f]->Element_Type) {
+ case ELEMENT_QP:
+#if HEADERS_VERBOSE_OUTPUT
+ psb__information_message("Insert token ELEMENT_QP (H264)- for MTX to generate and insert this value\n");
+#endif
+ break;
+ case ELEMENT_SQP:
+#if HEADERS_VERBOSE_OUTPUT
+ psb__information_message("Insert token ELEMENT_SQP (H264)- for MTX to generate and insert this value\n");
+#endif
+ break;
+ case ELEMENT_FRAMEQSCALE:
+#if HEADERS_VERBOSE_OUTPUT
+ psb__information_message("Insert token ELEMENT_FRAMEQSCALE (H263/MPEG4) - for MTX to generate and insert this value\n");
+#endif
+ break;
+ case ELEMENT_SLICEQSCALE:
+#if HEADERS_VERBOSE_OUTPUT
+ psb__information_message("Insert token ELEMENT_SLICEQSCALE (H263/MPEG4) - for MTX to generate and insert this value\n");
+#endif
+ break;
+ case ELEMENT_INSERTBYTEALIGN_H264:
+#if HEADERS_VERBOSE_OUTPUT
+ psb__information_message("Insert token ELEMENT_INSERTBYTEALIGN_H264 - MTX to generate 'rbsp_trailing_bits()' field\n");
+#endif
+ break;
+ case ELEMENT_INSERTBYTEALIGN_MPG4:
+#if HEADERS_VERBOSE_OUTPUT
+ psb__information_message("Insert token ELEMENT_INSERTBYTEALIGN_MPG4 - MTX to generate MPEG4 'byte_aligned_bits' field\n");
+#endif
+ break;
+ default:
+ break;
+ }
+
+ RTotalByteSize += 32;
+#if HEADERS_VERBOSE_OUTPUT
+ psb__information_message("No RAW bits\n\n");
+#endif
+ }
+ }
+
+ /* TotalByteSize=TotalByteSize+32+(&elt_p[f-1]->Element_Type-&elt_p[0]->Element_Type)*8; */
+
+#if HEADERS_VERBOSE_OUTPUT
+ psb__information_message("\nCombined ELEMENTS Stream:\n");
+ Show_Bits((IMG_UINT8 *) mtx_hdr->asElementStream, 0, RTotalByteSize);
+#endif
+}
+#endif
+
+
+/**
+ * Header Writing Functions
+ * Low level bit writing and ue, se functions
+ * HOST CODE
+ */
+static void pnw__write_upto8bits_elements(
+ MTX_HEADER_PARAMS *mtx_hdr,
+ MTX_HEADER_ELEMENT **elt_p,
+ IMG_UINT8 wrt_bits,
+ IMG_UINT16 bit_cnt)
+{
+ /* This is the core function to write bits/bytes
+ * to a header stream, it writes them directly to ELEMENT structures.
+ */
+ IMG_UINT8 *wrt_bytes_p;
+ IMG_UINT8 *size_bits_p;
+ union {
+ IMG_UINT32 UI16Input;
+ IMG_UINT8 UI8Input[2];
+ } InputVal = {0, };
+ IMG_UINT8 OutByteIndex;
+ IMG_INT16 Shift;
+
+ if (bit_cnt == 0) return;
+
+ /* WA for klockwork */
+ if (mtx_hdr->Elements >= MAXNUMBERELEMENTS) {
+ psb__error_message("mtx_hdr->Elments overflow\n");
+ return;
+ }
+
+ /* First ensure that unused bits in wrt_bits are zeroed */
+ wrt_bits &= (0x00ff >> (8 - bit_cnt));
+
+ InputVal.UI16Input = 0;
+
+ /* Pointer to the bit count field */
+ size_bits_p = &(elt_p[mtx_hdr->Elements]->Size);
+
+ /* Pointer to the space where header bits are to be written */
+ wrt_bytes_p = &(elt_p[mtx_hdr->Elements]->Bits);
+
+ OutByteIndex = (size_bits_p[0] / 8);
+
+ if (!(size_bits_p[0] & 7)) {
+ if (size_bits_p[0] >= 120) {
+ /* Element maximum bits send to element, time to start a new one */
+ mtx_hdr->Elements++; /* Increment element index */
+ /* Element pointer set to position of next element (120/8 = 15 bytes) */
+ elt_p[mtx_hdr->Elements] = (MTX_HEADER_ELEMENT *) & wrt_bytes_p[15];
+
+ /* Write ELEMENT_TYPE */
+ elt_p[mtx_hdr->Elements]->Element_Type = ELEMENT_RAWDATA;
+
+ /* Set new element size (bits) to zero */
+ elt_p[mtx_hdr->Elements]->Size = 0;
+
+ /* Begin writing to the new element */
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, wrt_bits, bit_cnt);
+ return;
+ }
+
+ wrt_bytes_p[OutByteIndex] = 0; /* Beginning a new byte, clear byte */
+ }
+
+ Shift = (IMG_INT16)((8 - bit_cnt) - (size_bits_p[0] & 7));
+
+ if (Shift >= 0) {
+ wrt_bits <<= Shift;
+ wrt_bytes_p[OutByteIndex] |= wrt_bits;
+ size_bits_p[0] = size_bits_p[0] + bit_cnt;
+ } else {
+ InputVal.UI8Input[1] = (IMG_UINT8) wrt_bits + 256;
+ InputVal.UI16Input >>= -Shift;
+
+ wrt_bytes_p[OutByteIndex] |= InputVal.UI8Input[1];
+
+ size_bits_p[0] = size_bits_p[0] + bit_cnt;
+ size_bits_p[0] = size_bits_p[0] - ((IMG_UINT8) - Shift);
+ InputVal.UI8Input[0] = InputVal.UI8Input[0] >> (8 + Shift);
+
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, InputVal.UI8Input[0], (IMG_UINT16) - Shift);
+ }
+}
+
+static void pnw__write_upto32bits_elements(
+ MTX_HEADER_PARAMS *mtx_hdr,
+ MTX_HEADER_ELEMENT **elt_p,
+ IMG_UINT32 wrt_bits,
+ IMG_UINT32 bit_cnt)
+{
+ IMG_UINT32 BitLp;
+ IMG_UINT32 EndByte;
+ IMG_UINT8 Bytes[4];
+
+ for (BitLp = 0; BitLp < 4; BitLp++) {
+ Bytes[BitLp] = (IMG_UINT8)(wrt_bits & 255);
+ wrt_bits = wrt_bits >> 8;
+ }
+
+ EndByte = ((bit_cnt + 7) / 8);
+
+ if ((bit_cnt) % 8)
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, Bytes[EndByte-1], (IMG_UINT8)((bit_cnt) % 8));
+ else
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, Bytes[EndByte-1], 8);
+
+ if (EndByte > 1)
+ for (BitLp = EndByte - 1; BitLp > 0; BitLp--) {
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, Bytes[BitLp-1], 8);
+ }
+}
+
+static void pnw__generate_ue(
+ MTX_HEADER_PARAMS *mtx_hdr,
+ MTX_HEADER_ELEMENT **elt_p,
+ IMG_UINT32 uiVal)
+{
+ IMG_UINT32 uiLp;
+ IMG_UINT8 ucZeros;
+ IMG_UINT32 uiChunk;
+
+ for (uiLp = 1, ucZeros = 0; (uiLp - 1) < uiVal ; uiLp = uiLp + uiLp, ucZeros++)
+ uiVal = uiVal - uiLp;
+
+ /* ucZeros = number of preceding zeros required
+ * uiVal = value to append after zeros and 1 bit
+ */
+
+ /* Write preceding zeros */
+ for (uiLp = (IMG_UINT32) ucZeros; uiLp + 1 > 8; uiLp -= 8)
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 0, 8);
+
+ /* Write zeros and 1 bit set */
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, (IMG_UINT8) 1, (IMG_UINT8)(uiLp + 1));
+
+ /* Write Numeric part */
+ while (ucZeros > 8) {
+ ucZeros -= 8;
+ uiChunk = (uiVal >> ucZeros);
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, (IMG_UINT8) uiChunk, 8);
+ uiVal = uiVal - (uiChunk << ucZeros);
+ }
+
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, (IMG_UINT8) uiVal, ucZeros);
+}
+
+
+static void pnw__generate_se(
+ MTX_HEADER_PARAMS *mtx_hdr,
+ MTX_HEADER_ELEMENT **elt_p,
+ int iVal)
+{
+ IMG_UINT32 uiCodeNum;
+
+ if (iVal > 0)
+ uiCodeNum = (IMG_UINT32)(iVal + iVal - 1);
+ else
+ uiCodeNum = (IMG_UINT32)(-iVal - iVal);
+
+ pnw__generate_ue(mtx_hdr, elt_p, uiCodeNum);
+}
+
+
+static void pnw__insert_element_token(
+ MTX_HEADER_PARAMS *mtx_hdr,
+ MTX_HEADER_ELEMENT **elt_p,
+ HEADER_ELEMENT_TYPE Token)
+{
+ IMG_UINT8 Offset;
+ IMG_UINT8 *P;
+
+ if (mtx_hdr->Elements != ELEMENTS_EMPTY) {
+ if (elt_p[mtx_hdr->Elements]->Element_Type == ELEMENT_STARTCODE_RAWDATA
+ || elt_p[mtx_hdr->Elements]->Element_Type == ELEMENT_RAWDATA) {
+ /*Add a new element aligned to word boundary
+ *Find RAWBit size in bytes (rounded to word boundary))
+ */
+
+ /* NumberofRawbits (excluding size of bit count field)+ size of the bitcount field */
+ Offset = elt_p[mtx_hdr->Elements]->Size + 8 + 31;
+ Offset /= 32;/* Now contains rawbits size in words */
+ Offset += 1;/* Now contains rawbits+element_type size in words */
+ Offset *= 4;/* Convert to number of bytes (total size of structure in bytes, aligned to word boundary) */
+ } else {
+ Offset = 4;
+ }
+
+ mtx_hdr->Elements++;
+ P = (IMG_UINT8 *) elt_p[mtx_hdr->Elements-1];
+ P += Offset;
+ elt_p[mtx_hdr->Elements] = (MTX_HEADER_ELEMENT *) P;
+ } else
+ mtx_hdr->Elements = 0;
+
+ elt_p[mtx_hdr->Elements]->Element_Type = Token;
+ elt_p[mtx_hdr->Elements]->Size = 0;
+}
+
+/*
+ * Intermediary functions to build H264 headers
+ */
+static void pnw__H264_writebits_startcode_prefix_element(
+ MTX_HEADER_PARAMS *mtx_hdr,
+ MTX_HEADER_ELEMENT **elt_p,
+ IMG_UINT32 ByteSize)
+{
+ /* GENERATES THE FIRST ELEMENT OF THE H264_SEQUENCE_HEADER() STRUCTURE */
+ IMG_UINT32 Lp;
+
+ /*
+ * Byte aligned (bit 0)
+ * (3 bytes in slice header when slice is first in a picture
+ * without sequence/picture_header before picture
+ */
+
+ for (Lp = 0; Lp < ByteSize - 1; Lp++)
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 0, 8);
+
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 1, 8);
+
+ /* Byte aligned (bit 32 or 24) */
+ return;
+}
+
+
+static void pnw__H264_writebits_VUI_params(
+ MTX_HEADER_PARAMS *mtx_hdr,
+ MTX_HEADER_ELEMENT **elt_p,
+ H264_VUI_PARAMS *VUIParams)
+{
+ /* Builds VUI Params for the Sequence Header (only present in the 1st sequence of stream) */
+ pnw__write_upto8bits_elements(
+ mtx_hdr, elt_p,
+ (0 << 4) | /* aspect_ratio_info_present_flag = 0 in Topaz */
+ (0 << 3) | /* overscan_info_present_flag (1 bit) = 0 in Topaz */
+ (0 << 2) | /* video_signal_type_present_flag (1 bit) = 0 in Topaz */
+ (0 << 1) | /* chroma_loc_info_present_flag (1 bit) = 0 in Topaz */
+ (1),/* timing_info_present_flag (1 bit) = 1 in Topaz */
+ 5);
+
+ /* num_units_in_tick (32 bits) = 1 in Topaz */
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 0, 8);
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 0, 8);
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 0, 8);
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 1, 8);
+
+ /* time_scale (32 bits) = frame rate */
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 0, 8);
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 0, 8);
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 0, 8);
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, (IMG_UINT8) VUIParams->Time_Scale, 8);
+
+ /* fixed_frame_rate_flag (1 bit) = 1 in Topaz */
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 1, 1);
+ /* nal_hrd_parameters_present_flag (1 bit) = 1 in Topaz */
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 1, 1);
+
+ /** Definitions for nal_hrd_parameters() contained in VUI structure for Topaz
+ * cpb_cnt_minus1 ue(v) = 0 in Topaz = 1b
+ */
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 1, 1);
+ /* bit_rate_scale (4 bits) = 0 in Topaz, cpb_size_scale (4 bits) = 0 in Topaz */
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 0, 4);
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 2, 4);
+
+ /* bit_rate_value_minus1[0] ue(v) = (Bitrate/64)-1 [RANGE:0 to (2^32)-2] */
+ pnw__generate_ue(mtx_hdr, elt_p, VUIParams->bit_rate_value_minus1);
+ /* cpb_size_value_minus1[0] ue(v) = (CPB_Bits_Size/16)-1
+ * where CPB_Bits_Size = 1.5 * Bitrate [RANGE:0 to (2^32)-2]
+ */
+ pnw__generate_ue(mtx_hdr, elt_p, VUIParams->cbp_size_value_minus1);
+
+ /* cbr_flag[0] (1 bit) = 0 for VBR, 1 for CBR */
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, VUIParams->CBR, 1);
+
+ pnw__write_upto8bits_elements(
+ mtx_hdr, elt_p,
+ VUIParams->initial_cpb_removal_delay_length_minus1,
+ 5); /* initial_cpb_removal_delay_length_minus1 (5 bits) = ??? */
+
+ pnw__write_upto8bits_elements(
+ mtx_hdr,
+ elt_p,
+ VUIParams->cpb_removal_delay_length_minus1,
+ 5); /* cpb_removal_delay_length_minus1 (5 bits) = ??? */
+
+ pnw__write_upto8bits_elements(
+ mtx_hdr, elt_p,
+ VUIParams->dpb_output_delay_length_minus1,
+ 5); /* dpb_output_delay_length_minus1 (5 bits) = ??? */
+
+ pnw__write_upto8bits_elements(
+ mtx_hdr,
+ elt_p,
+ VUIParams->time_offset_length,
+ 5); /* time_offst_length (5 bits) = ??? */
+
+ /* End of nal_hrd_parameters() */
+
+ pnw__write_upto8bits_elements(
+ mtx_hdr,
+ elt_p,
+ 0, 1);/* vcl_hrd_parameters_present_flag (1 bit) = 0 in Topaz */
+
+ /* if( nal_hrd_parameters_present_flag || vcl_hrd_parameters_present_flag )
+ * FIX for BRN23039
+ * low_delay_hrd_flag
+ */
+ pnw__write_upto8bits_elements(
+ mtx_hdr, elt_p,
+ 0, 1);/* low_delay_hrd_flag */
+
+
+ pnw__write_upto8bits_elements(
+ mtx_hdr, elt_p,
+ 0, 1);/* pic_struct_present_flag (1 bit) = 0 in Topaz */
+
+ pnw__write_upto8bits_elements(
+ mtx_hdr, elt_p,
+ 0, 1);/* bitstream_restriction_flag (1 bit) = 0 in Topaz */
+}
+
+
+static void pnw__H264_writebits_picture_header(
+ MTX_HEADER_PARAMS *pMTX_Header,
+ MTX_HEADER_ELEMENT **aui32ElementPointers,
+ IMG_BOOL bCabacEnabled,
+ IMG_BOOL b_8x8transform,
+ IMG_BOOL bIntraConstrained,
+ IMG_INT8 i8CbQPOffset,
+ IMG_INT8 i8CrQPOffset)
+{
+ //**-- Begin building the picture header element
+ IMG_UINT8 ui8ECMF = (bCabacEnabled ? 1 : 0);
+
+ pnw__insert_element_token(pMTX_Header, aui32ElementPointers, ELEMENT_STARTCODE_RAWDATA);
+
+ pnw__H264_writebits_startcode_prefix_element(pMTX_Header, aui32ElementPointers, 4);
+
+ ///* GENERATES THE FIRST (STATIC) ELEMENT OF THE H264_PICTURE_HEADER() STRUCTURE *///
+ ///**** ELEMENT BITCOUNT: 18
+
+ // 4 Byte StartCodePrefix Pregenerated in: H264_WriteBits_StartCodePrefix_Element()
+ // Byte aligned (bit 32)
+ pnw__write_upto8bits_elements(pMTX_Header,
+ aui32ElementPointers,
+ (0 << 7) | // forbidden_zero_bit
+ (1 << 5) | // nal_ref_idc (2 bits) = 1
+ (8), // nal_unit_tpye (5 bits) = 8
+ 8);
+ // Byte aligned (bit 40)
+ pnw__write_upto8bits_elements(pMTX_Header,
+ aui32ElementPointers,
+ (1 << 7) | // pic_parameter_set_id ue(v) = 0 in Topaz
+ (1 << 6) | // seq_parameter_set_id ue(v) = 0 in Topaz
+ (ui8ECMF << 5) | // entropy_coding_mode_flag (1 bit) 0 for CAVLC
+ (0 << 4) | // pic_order_present_flag (1 bit) = 0
+ (1 << 3) | // num_slice_group_minus1 ue(v) = 0 in Topaz
+ (1 << 2) | // num_ref_idx_l0_active_minus1 ue(v) = 0 in Topaz
+ (1 << 1) | // num_ref_idx_l1_active_minus1 ue(v) = 0 in Topaz
+ (0), // weighted_pred_flag (1 bit) = 0 in Topaz
+ 8);
+ // Byte aligned (bit 48)
+ // weighted_bipred_flag (2 bits) = 0 in Topaz
+ pnw__write_upto8bits_elements(pMTX_Header, aui32ElementPointers, 0, 2);
+
+ //MTX fills this value in
+ pnw__insert_element_token(pMTX_Header, aui32ElementPointers, ELEMENT_QP);
+ pnw__insert_element_token(pMTX_Header, aui32ElementPointers, ELEMENT_RAWDATA);
+
+ ///**** GENERATES THE SECOND ELEMENT OF THE H264_PICTURE_HEADER() STRUCTURE ****///
+ ///**** ELEMENT BITCOUNT: 5
+ //The following field will be generated as a special case by MTX - so not here
+ // pnw__generate_se(pMTX_Header, pPHParams->pic_init_qp_minus26);
+ // pic_int_qp_minus26 se(v) = -26 to 25 in Topaz
+ // pic_int_qs_minus26 se(v) = 0 in Topaz
+ //chroma_qp_index_offset se(v) = 0 in Topaz
+ pnw__generate_se(pMTX_Header, aui32ElementPointers, 0);
+ pnw__generate_se(pMTX_Header, aui32ElementPointers, i8CbQPOffset);
+ pnw__write_upto8bits_elements(pMTX_Header,
+ aui32ElementPointers,
+ // deblocking_filter_control_present_flag (1 bit) = 1 in Topaz
+ (1 << 2) |
+ // constrained_intra_pred_Flag (1 bit) = 0 in Topaz
+ ((bIntraConstrained ? 1 : 0) << 1) |
+ (0),// redundant_pic_cnt_present_flag (1 bit) = 0 in Topaz
+ 3);
+ // Byte align is done using an element command (MTX elements in this structure, we don't know it's size)
+
+ if (b_8x8transform || (i8CbQPOffset != i8CrQPOffset)) {
+ pnw__write_upto8bits_elements(pMTX_Header, aui32ElementPointers,
+ (b_8x8transform << 1) | // 8x8 transform flag
+ (0), // pic_scaling_matrix_present_flag
+ 2);
+ pnw__generate_se(pMTX_Header, aui32ElementPointers, i8CrQPOffset);
+ // second_chroma_qp_index_offset se(v) = 0 in Topaz
+ }
+ // Tell MTX to insert the byte align field (we don't know final stream size for alignment at this point)
+ pnw__insert_element_token(pMTX_Header, aui32ElementPointers, ELEMENT_INSERTBYTEALIGN_H264);
+
+ return;
+}
+
+
+static void pnw__H264_writebits_slice_header0(
+ MTX_HEADER_PARAMS *mtx_hdr,
+ MTX_HEADER_ELEMENT **elt_p,
+ H264_SLICE_HEADER_PARAMS *pSlHParams)
+{
+ /* GENERATES THE FIRST ELEMENT OF THE H264_SLICE_HEADER() STRUCTURE
+ * ELEMENT BITCOUNT: 8
+ *
+ * StartCodePrefix Pregenerated in: Build_H264_4Byte_StartCodePrefix_Element() (4 or 3 bytes)
+ * (3 bytes when slice is first in a picture without sequence/picture_header before picture
+ * Byte aligned (bit 32 or 24)
+ * NOTE: Slice_Type and Frame_Type are always the same, hence SliceFrame_Type
+ */
+ pnw__write_upto8bits_elements(
+ mtx_hdr, elt_p,
+ (0 << 7) |/* forbidden_zero_bit */
+ ((pSlHParams->SliceFrame_Type == SLHP_B_SLICEFRAME_TYPE ? 0 : 1) << 5) | /* nal_ref_idc (2 bits) = 0 for B-frame and 1 for I or P-frame */
+ ((pSlHParams->SliceFrame_Type == SLHP_IDR_SLICEFRAME_TYPE ? 5 : 1)),/* nal_unit_tpye (5 bits) = I-frame IDR, and 1 for rest */
+ 8);
+}
+
+
+static void pnw__H264_writebits_slice_header1(
+ MTX_HEADER_PARAMS *mtx_hdr,
+ MTX_HEADER_ELEMENT **elt_p,
+ H264_SLICE_HEADER_PARAMS *pSlHParams,
+ IMG_UINT16 uiIdrPicId)
+{
+ /* GENERATES THE SECOND ELEMENT OF THE H264_SLICE_HEADER() STRUCTURE
+ * The following is slice parameter set in BP/MP
+ */
+
+ /* first_mb_in_slice = First MB address in slice: ue(Range 0 - 1619) */
+ pnw__generate_ue(mtx_hdr, elt_p, (IMG_UINT32) pSlHParams->First_MB_Address);
+
+ pnw__generate_ue(
+ mtx_hdr, elt_p,
+ (IMG_UINT32)((pSlHParams->SliceFrame_Type == SLHP_IDR_SLICEFRAME_TYPE) ? SLHP_I_SLICEFRAME_TYPE : pSlHParams->SliceFrame_Type)); /* slice_type ue(v): 0 for P-slice, 1 for B-slice, 2 for I-slice */
+
+ /* kab: not clean change from IDR to intra, IDR should have separate flag */
+
+ pnw__write_upto8bits_elements(
+ mtx_hdr, elt_p,
+ (1 << 5) | /* pic_parameter_set_id, ue(v) = 0 (=1b) in Topaz */
+ pSlHParams->Frame_Num_DO,/* frame_num (5 bits) = frame nuo. in decoding order */
+ 6);
+
+ /* frame_mb_only_flag is always 1, so no need for field_pic_flag or bottom_field_flag */
+ if (pSlHParams->SliceFrame_Type == SLHP_IDR_SLICEFRAME_TYPE)
+ pnw__generate_ue(mtx_hdr, elt_p, uiIdrPicId);/* idr_pic_id ue(v) = 0 (1b) in Topaz */
+
+ /* kab: Idr_pic_id only for IDR, not nessesarely for all I pictures */
+
+ /* customer request POC type should be 2*/
+ /* if (pic_order_cnt_type == 0) Note: (pic_order_cnt_type always 0 in Topaz)
+ pnw__write_upto8bits_elements(
+ mtx_hdr, elt_p,
+ pSlHParams->Picture_Num_DO,
+ 6); pic_order_cnt_lsb (6 bits) - picture no in display order */
+
+ if (pSlHParams->SliceFrame_Type == SLHP_B_SLICEFRAME_TYPE)
+ pnw__write_upto8bits_elements(
+ mtx_hdr,
+ elt_p,
+ 0,
+ 1);/* direct_spatial_mv_pred_flag (1 bit) = 0, spatial direct mode not supported in Topaz */
+
+ if (pSlHParams->SliceFrame_Type == SLHP_P_SLICEFRAME_TYPE || pSlHParams->SliceFrame_Type == SLHP_B_SLICEFRAME_TYPE)
+ pnw__write_upto8bits_elements(
+ mtx_hdr,
+ elt_p,
+ 0,
+ 1);/* num_ref_idx_active_override_flag (1 bit) = 0 in Topaz */
+
+ if (pSlHParams->SliceFrame_Type != SLHP_I_SLICEFRAME_TYPE &&
+ pSlHParams->SliceFrame_Type != SLHP_IDR_SLICEFRAME_TYPE) {
+ if (pSlHParams->UsesLongTermRef) {
+ // ref_pic_list_ordering_flag_I0 (1 bit) = 1, L0 reference picture ordering
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 1, 1);
+ // modification_of_pic_nums_idc = 2
+ pnw__generate_ue(mtx_hdr, elt_p, 2);
+ // long_term_pic_num = 0
+ pnw__generate_ue(mtx_hdr, elt_p, 0);
+ // modification_of_pic_nums_idc = 3
+ pnw__generate_ue(mtx_hdr, elt_p, 3);
+ } else
+ pnw__write_upto8bits_elements(
+ mtx_hdr,
+ elt_p,
+ 0,
+ 1);/* ref_pic_list_ordering_flag_I0 (1 bit) = 0 */
+ }
+
+ if (pSlHParams->SliceFrame_Type == SLHP_B_SLICEFRAME_TYPE)
+ pnw__write_upto8bits_elements(
+ mtx_hdr,
+ elt_p,
+ 0,
+ 1); /* ref_pic_list_ordering_flag_I1 (1 bit) = 0, no reference picture ordering in Topaz */
+
+ if (pSlHParams->SliceFrame_Type == SLHP_IDR_SLICEFRAME_TYPE) {
+ /* no_output_of_prior_pics_flag (1 bit) = 0 */
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 0, 1);
+ /* long_term_reference_flag (1 bit)*/
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p,
+ pSlHParams->IsLongTermRef ? 1 : 0, 1);
+ } else if (pSlHParams->UsesLongTermRef) {
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 1, 1);/* long_term_reference_flag (1 bit) = 0 */
+ // Allow a single long-term reference
+ pnw__generate_ue(mtx_hdr, elt_p, 4);
+ // memory_management_control_operation
+ pnw__generate_ue(mtx_hdr, elt_p, 1);
+
+ // Set current picture as the long-term reference
+ // memory_management_control_operation
+ pnw__generate_ue(mtx_hdr, elt_p, 6);
+ // long_term_frame_idx
+ pnw__generate_ue(mtx_hdr, elt_p, 0);
+
+ // End
+ pnw__generate_ue(mtx_hdr, elt_p, 0);
+ } else {
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 0, 1);/* adaptive_ref_pic_marking_mode_flag (1 bit) = 0 */
+ }
+}
+
+
+static void pnw__H264_writebits_slice_header2(
+ MTX_HEADER_PARAMS *mtx_hdr,
+ MTX_HEADER_ELEMENT **elt_p,
+ H264_SLICE_HEADER_PARAMS *pSlHParams)
+{
+ /* GENERATES ELEMENT OF THE H264_SLICE_HEADER() STRUCTURE
+ * ELEMENT BITCOUNT: 11
+ */
+
+#if 0
+ /* Next field is generated on MTX with a special commnad (not ELEMENT_RAW) - so not defined here */
+
+ /* slice_qp_delta se(v) = SliceQPy - (pic_init_qp_minus26+26) */
+ /* pucHS=pnw__generate_se(pucHS, puiBitPos, pSlHParams->Slice_QP_Delta); */
+#endif
+
+ pnw__generate_ue(
+ mtx_hdr,
+ elt_p,
+ pSlHParams->Disable_Deblocking_Filter_Idc); /* disable_deblocking_filter_idc ue(v) = 2? */
+
+ if (pSlHParams->Disable_Deblocking_Filter_Idc != 1) {
+ pnw__generate_se(mtx_hdr, elt_p, 0); /* slice_alpha_c0_offset_div2 se(v) = 0 (1b) in Topaz */
+ pnw__generate_se(mtx_hdr, elt_p, 0); /* slice_beta_offset_div2 se(v) = 0 (1b) in Topaz */
+ }
+
+ /* num_slice_groups_minus1 ==0 in Topaz, so no slice_group_change_cycle field here
+ * no byte alignment at end of slice headers
+ */
+}
+
+static void pnw__H264_writebits_sequence_header(
+ MTX_HEADER_PARAMS *pMTX_Header,
+ MTX_HEADER_ELEMENT **aui32ElementPointers,
+ H264_SEQUENCE_HEADER_PARAMS *pSHParams, H264_CROP_PARAMS *psCrop)
+{
+ IMG_UINT8 ui8SBP;
+
+ pnw__insert_element_token(pMTX_Header,
+ aui32ElementPointers,
+ ELEMENT_STARTCODE_RAWDATA);
+
+ pnw__H264_writebits_startcode_prefix_element(pMTX_Header,
+ aui32ElementPointers,
+ 4);
+
+ ///**** GENERATES THE FIRST ELEMENT OF THE H264_SEQUENCE_HEADER() STRUCTURE ****///
+
+ // 4 Byte StartCodePrefix Pregenerated in: H264_WriteBits_StartCodePrefix_Element()
+ // Byte aligned (bit 32)
+ pnw__write_upto8bits_elements(pMTX_Header,
+ aui32ElementPointers, (0 << 7) | // forbidden_zero_bit=0
+ (0x3 << 5) | // nal_ref_idc=01 (may be 11)
+ (7), // nal_unit_type=00111
+ 8);
+
+ if (pSHParams->ucProfile != SH_PROFILE_HP) {
+ // profile_idc = 8 bits = 66 for BP (PROFILE_IDC_BP), 77 for MP (PROFILE_IDC_MP)
+ pnw__write_upto8bits_elements(pMTX_Header,
+ aui32ElementPointers,
+ (pSHParams->ucProfile == SH_PROFILE_BP ? 66 : 77), 8);
+
+ // Byte aligned (bit 48)
+ pnw__write_upto8bits_elements(pMTX_Header,
+ // constrain_set0_flag = 1 for BP constraints
+ aui32ElementPointers, (0 << 7) |
+ (0 << 6) | // constrain_set1_flag = 1 for MP constraints
+ (0 << 5) | // constrain_set2_flag = 1 for HP
+ // constrain_set3_flag = 1 for level 1b, 0 for others
+ ((pSHParams->ucLevel == SH_LEVEL_1B ? 1 : 0) << 4),
+ // reserved_zero_4bits = 0
+ 8);
+ // Byte aligned (bit 56)
+ pnw__write_upto8bits_elements(pMTX_Header,
+ aui32ElementPointers,
+ // level_idc (8 bits) = 11 for 1b, 10xlevel for others
+ (IMG_UINT8) pSHParams->ucLevel, 8);
+#if 0
+ // Byte aligned (bit 64)
+ pnw__write_upto8bits_elements(pMTX_Header,
+ // seq_parameter_Set_id = 0 in Topaz -> ue(0)= 1b
+ aui32ElementPointers, (1 << 7) |
+ (2 << 4) |// log2_max_frame_num_minus4 = 1 in Topaz -> ue(1)= 010b
+ (1 << 3) | // pic_order_cnt_type = 0 in Topaz -> ue(0)= 1b
+ (3), // log2_max_pic_order_cnt_Isb_minus4 = 2 in Topaz -> ue(2)= 011b
+ 8);
+ // Bytes aligned (bit 72)
+#else
+ /*Customer request POC type should be 2*/
+ pnw__write_upto8bits_elements(pMTX_Header,
+ // seq_parameter_Set_id = 0 in Topaz -> ue(0)= 1b
+ aui32ElementPointers, (1 << 6) |
+ (2 << 3) |// log2_max_frame_num_minus4 = 1 in Topaz -> ue(1)= 010b
+ (3),// log2_max_pic_order_cnt_Isb_minus4 = 2 in Topaz -> ue(2)= 011b$
+ 7);
+#endif
+ } else {
+ // Byte aligned (bit 40)
+ // profile_idc = 8 bits = 66 for BP (PROFILE_IDC_BP), 77 for MP (PROFILE_IDC_MP)
+ pnw__write_upto8bits_elements(pMTX_Header, aui32ElementPointers, 100, 8);
+
+ // Byte aligned (bit 48)
+ pnw__write_upto8bits_elements(pMTX_Header,
+ aui32ElementPointers, (1 << 7) |
+ // constrain_set0_flag = 1 for MP + BP constraints
+ (1 << 6) | // constrain_set1_flag = 1 for MP + BP constraints
+ (0 << 5) | // constrain_set2_flag = always 0 in BP/MP
+ (0 << 4), // constrain_set3_flag = 1 for level 1b, 0 for others
+ // reserved_zero_4bits = 0
+ 8);
+
+ // Byte aligned (bit 56)
+ pnw__write_upto8bits_elements(pMTX_Header,
+ aui32ElementPointers, (IMG_UINT8) pSHParams->ucLevel, 8);
+ // level_idc (8 bits) = 11 for 1b, 10xlevel for others
+
+ pnw__generate_ue(pMTX_Header, aui32ElementPointers, 0);
+ // seq_parameter_Set_id = 0
+ pnw__generate_ue(pMTX_Header, aui32ElementPointers, 1);
+ // chroma_format_idc = 1
+ pnw__generate_ue(pMTX_Header, aui32ElementPointers, 0);
+ // bit_depth_luma_minus8 = 0
+ pnw__generate_ue(pMTX_Header, aui32ElementPointers, 0);
+ // bit_depth_chroma_minus8 = 0
+ pnw__write_upto8bits_elements(pMTX_Header, aui32ElementPointers, 0, 1);
+ // qpprime_y_zero_transform_bypass_flag = 0
+
+ //if (pSHParams->bUseDefaultScalingList)
+ //{
+ pnw__write_upto8bits_elements(pMTX_Header, aui32ElementPointers, 1, 1);
+ // seq_scaling_matrix_present_flag
+ pnw__write_upto8bits_elements(pMTX_Header, aui32ElementPointers, 0, 8);
+ // seq_scaling_matrix_present_flag[i] = 0; 0 < i < 8
+ //}
+ //else
+ //{
+ // pnw__write_upto8bits_elements(pMTX_Header, aui32ElementPointers, 0, 1); // seq_scaling_matrix_present_flag
+ //}
+
+ pnw__generate_ue(pMTX_Header, aui32ElementPointers, 1);
+ // log2_max_frame_num_minus4 = 1
+ // Customer request POC type should be 2.
+ //pnw__generate_ue(pMTX_Header, aui32ElementPointers, 0);
+ // pic_order_cnt_type = 0
+ pnw__generate_ue(pMTX_Header, aui32ElementPointers, 2);
+ // log2_max_pic_order_cnt_Isb_minus4 = 2
+
+ // Bytes aligned (bit 72)
+ }
+ // max_num_ref_frames. long term reference isn't used.
+ //pnw__generate_u(pMTX_Header, aui32ElementPointers, pSHParams->max_num_ref_frames);
+ pnw__generate_ue(pMTX_Header, aui32ElementPointers, 1);
+ // gaps_in_frame_num_value_allowed_Flag - (1 bit)
+ pnw__write_upto8bits_elements(pMTX_Header, aui32ElementPointers, pSHParams->gaps_in_frame_num_value, 1);
+
+
+ ///**** GENERATES THE SECOND, VARIABLE LENGTH, ELEMENT OF THE H264_SEQUENCE_HEADER() STRUCTURE ****///
+ ///**** ELEMENT BITCOUNT: xx
+ pnw__generate_ue(pMTX_Header, aui32ElementPointers, pSHParams->ucWidth_in_mbs_minus1);
+ //pic_width_in_mbs_minus1: ue(v) from 10 to 44 (176 to 720 pixel per row)
+ pnw__generate_ue(pMTX_Header, aui32ElementPointers, pSHParams->ucHeight_in_maps_units_minus1);
+ //pic_height_in_maps_units_minus1: ue(v) Value from 8 to 35 (144 to 576 pixels per column)
+
+ // We don't know the alignment at this point, so will have to use bit writing functions
+ pnw__write_upto8bits_elements(pMTX_Header, aui32ElementPointers, pSHParams->ucFrame_mbs_only_flag, 1);
+ // frame_mb_only_flag 1=frame encoding, 0=field encoding
+
+ if (!pSHParams->ucFrame_mbs_only_flag) // in the case of interlaced encoding
+ pnw__write_upto8bits_elements(pMTX_Header, aui32ElementPointers, 0, 1);
+ // mb_adaptive_frame_field_flag = 0 in Topaz(field encoding at the sequence level)
+
+ pnw__write_upto8bits_elements(pMTX_Header, aui32ElementPointers, 1, 1);
+ // direct_8x8_inference_flag=1 in Topaz
+
+ if (psCrop->bClip) {
+ pnw__write_upto8bits_elements(pMTX_Header, aui32ElementPointers, 1, 1);
+ pnw__generate_ue(pMTX_Header, aui32ElementPointers, psCrop->LeftCropOffset);
+ pnw__generate_ue(pMTX_Header, aui32ElementPointers, psCrop->RightCropOffset);
+ pnw__generate_ue(pMTX_Header, aui32ElementPointers, psCrop->TopCropOffset);
+ pnw__generate_ue(pMTX_Header, aui32ElementPointers, psCrop->BottomCropOffset);
+
+ } else {
+ pnw__write_upto8bits_elements(pMTX_Header, aui32ElementPointers, 0, 1);
+ }
+
+ ///**** GENERATES THE THIRD ELEMENT OF THE H264_SEQUENCE_HEADER() STRUCTURE ****///
+ ///**** ELEMENT BITCOUNT: xx
+ pnw__write_upto8bits_elements(pMTX_Header, aui32ElementPointers,
+ (pSHParams->VUI_Params_Present),
+ // vui_parameters_present_flag (VUI only in 1st sequence of stream)
+ 1);
+ if (pSHParams->VUI_Params_Present > 0)
+ pnw__H264_writebits_VUI_params(pMTX_Header, aui32ElementPointers, &(pSHParams->VUI_Params));
+
+ // Finally we need to align to the next byte
+ // We know the size of the data in the sequence header (no MTX variables) and start is byte aligned, so it's possible to add this field here rather than MTX ELEMENT_INSERTBYTEALIGN_H264 command.
+ pnw__write_upto8bits_elements(pMTX_Header, aui32ElementPointers, 1, 1);
+ ui8SBP = (aui32ElementPointers[pMTX_Header->Elements]->Size) & 7;
+ if (ui8SBP > 0)
+ pnw__write_upto8bits_elements(pMTX_Header, aui32ElementPointers, 0, 8 - (ui8SBP));
+ return;
+}
+
+
+static void pnw__H264_writebits_slice_header(
+ MTX_HEADER_PARAMS *mtx_hdr,
+ MTX_HEADER_ELEMENT **elt_p,
+ H264_SLICE_HEADER_PARAMS *pSlHParams,
+ IMG_BOOL bCabacEnabled,
+ IMG_UINT16 uiIdrPicId)
+{
+#ifdef USESTATICWHEREPOSSIBLE
+ IMG_UINT32 *p;
+ p = (IMG_UINT32 *) mtx_hdr;
+
+ p[0] = p[1] = 0;
+ p[2] = 40;
+ if (pSlHParams->SliceFrame_Type == SLHP_B_SLICEFRAME_TYPE) p[3] = 257;
+ else if (pSlHParams->SliceFrame_Type == SLHP_IDR_SLICEFRAME_TYPE) p[3] = 9473;
+ else p[3] = 8449;
+#else
+ /* -- Begin building the picture header element */
+ pnw__insert_element_token(mtx_hdr, elt_p, ELEMENT_STARTCODE_RAWDATA);
+
+ pnw__H264_writebits_startcode_prefix_element(
+ mtx_hdr,
+ elt_p,
+ pSlHParams->Start_Code_Prefix_Size_Bytes); /* Can be 3 or 4 bytes - always 4 bytes in our implementations */
+ pnw__H264_writebits_slice_header0(mtx_hdr, elt_p, pSlHParams);
+#endif
+
+ pnw__H264_writebits_slice_header1(mtx_hdr, elt_p, pSlHParams, uiIdrPicId);
+
+ if (bCabacEnabled && ((SLHP_P_SLICEFRAME_TYPE == pSlHParams->SliceFrame_Type) ||
+ (SLHP_B_SLICEFRAME_TYPE == pSlHParams->SliceFrame_Type))) {
+ pnw__generate_ue(mtx_hdr, elt_p, 0); /* hard code cabac_init_idc value of 0 */
+ }
+
+ pnw__insert_element_token(mtx_hdr, elt_p, ELEMENT_SQP); /* MTX fills this value in */
+
+ pnw__insert_element_token(mtx_hdr, elt_p, ELEMENT_RAWDATA);
+ pnw__H264_writebits_slice_header2(mtx_hdr, elt_p, pSlHParams);
+
+ /* no byte alignment at end of slice headers */
+}
+
+
+//static void pnw__H264_writebits_endofsequence_header(
+//MTX_HEADER_PARAMS *mtx_hdr,
+//MTX_HEADER_ELEMENT **elt_p)
+//{
+///* GENERATES THE FIRST ELEMENT OF THE H264_ENDOFSEQUENCE_HEADER() STRUCTURE */
+//pnw__insert_element_token(mtx_hdr, elt_p, ELEMENT_RAWDATA);
+//
+///* Byte aligned (bit 32) */
+//pnw__write_upto9bits_elements(
+//mtx_hdr,
+//elt_p,
+//(0 << 7) |/* forbidden_zero_bit=0 */
+//(0 << 5) |/* nal_ref_idc=0 for nal_unit_type=10 */
+//(10),/* nal_unit_type=10 */
+//8);
+//}
+
+
+//static void pnw__H264_writebits_SEI_rbspheader(
+//MTX_HEADER_PARAMS *mtx_hdr,
+//MTX_HEADER_ELEMENT **elt_p,
+//IMG_UINT32 Initial_cpb_removal_delay)
+//{
+///* Byte aligned (bit 32) */
+//pnw__H264_writebits_startcode_prefix_element(
+//mtx_hdr, elt_p, 4);/* 32 bit start code prefix */
+//
+//pnw__write_upto8bits_elements(
+//mtx_hdr,
+//elt_p,
+//(0 << 7) |/* forbidden_zero_bit */
+//(1 << 5) |/* nal_ref_idc (2 bits) = 1 */
+//(6),/* nal_unit_tpye (5 bits) = 6 (SEI packet) */
+//8);
+//
+///* last_payload_type_byte (8 bits) = 0 for buffering period */
+//pnw__write_upto8bits_elements(mtx_hdr, elt_p, 0, 8);
+//
+///* last_payload_size_byte (8 bits) = 41 as SEI_message length is 41-bit */
+//pnw__write_upto8bits_elements(mtx_hdr, elt_p, 41, 8);
+//
+///* sequence_parameter_set_id ue(0) = 1b sequence_parameter_set_id=0 in Topaz */
+//pnw__write_upto8bits_elements(mtx_hdr, elt_p, 1, 1);
+//
+///* Initial_cpb_removal_delay (20 bits) x is initial cpb delay of each sequence */
+//pnw__write_upto32bits_elements(mtx_hdr, elt_p, Initial_cpb_removal_delay, 20);
+//pnw__write_upto8bits_elements(mtx_hdr, elt_p, 0, 8);
+//pnw__write_upto8bits_elements(mtx_hdr, elt_p, 1, 8);
+//
+///* Initial_cpb_removal_delay_offset (20 bits) 0x10101 (It won't be used in Topaz) */
+//pnw__write_upto8bits_elements(mtx_hdr, elt_p, 5, 4);
+//
+///* Tell MTX to insert the byte align field (we don't know final stream size for alignment at this point) */
+//pnw__insert_element_token(mtx_hdr, elt_p, ELEMENT_INSERTBYTEALIGN_H264);
+//}
+
+
+//static void pnw__H264_writebits_endofstream_header(
+//MTX_HEADER_PARAMS *mtx_hdr,
+//MTX_HEADER_ELEMENT **elt_p)
+//{
+///* GENERATES THE FIRST ELEMENT OF THE H264_ENDOFSTREAM_HEADER() STRUCTURE */
+//pnw__insert_element_token(mtx_hdr, elt_p, ELEMENT_RAWDATA);
+///* Byte aligned (bit 32) */
+//pnw__write_upto8bits_elements(
+//mtx_hdr,
+//elt_p,
+//(0 << 7) |/* forbidden_zero_bit=0 */
+//(0 << 5) |/* nal_ref_idc=0 for nal_unit_type=11 */
+//(11),/* nal_unit_type=11 */
+//8);
+//}
+
+/*
+ * High level functions to call when a H264 header is required
+ */
+//static void pnw__H264_getelements_skip_B_slice(
+//MTX_HEADER_PARAMS *mtx_hdr,
+//H264_SLICE_HEADER_PARAMS *pSlHParams,
+//IMG_UINT8 MB_No_In_Slice)
+//{
+///* Skipped P-Slice
+//* Ensure pSlHParams is filled with appropriate parameters for a P-slice
+//* Essential we initialise our header structures before building
+//*/
+//MTX_HEADER_ELEMENT *This_Element;
+//MTX_HEADER_ELEMENT *elt_p[MAXNUMBERELEMENTS];
+//mtx_hdr->Elements=ELEMENTS_EMPTY;
+//This_Element=(MTX_HEADER_ELEMENT *) mtx_hdr->asElementStream;
+//elt_p[0]=This_Element;
+//
+///* Not sure if this will be required in the final spec
+//* pnw__insert_element_token(mtx_hdr, ELEMENT_STARTCOUNTER);
+//*/
+//pnw__H264_writebits_slice_header(mtx_hdr, elt_p, pSlHParams);
+//
+///* mb_skip_run = mb_no_in_slice */
+//pnw__generate_ue(mtx_hdr, elt_p, MB_No_In_Slice);
+//
+///* Tell MTX to insert the byte align field
+//* (we don't know final stream size for alignment at this point)
+//*/
+//pnw__insert_element_token(mtx_hdr, elt_p, ELEMENT_INSERTBYTEALIGN_H264);
+//
+///* Has been used as an index, so need to add 1 for a valid element count */
+//mtx_hdr->Elements++;
+//}
+
+//static void pnw__H264_getelements_backward_zero_B_slice(
+//MTX_HEADER_PARAMS *mtx_hdr,
+//IMG_UINT8 MB_No_In_Slice)
+//{
+///* Skipped P-Slice
+//* Ensure pSlHParams is filled with appropriate parameters for a P-slice
+//* Essential we initialise our header structures before building
+//*/
+//IMG_UINT8 Lp;
+//MTX_HEADER_ELEMENT *This_Element;
+//MTX_HEADER_ELEMENT *elt_p[MAXNUMBERELEMENTS];
+//mtx_hdr->Elements=ELEMENTS_EMPTY;
+//This_Element=(MTX_HEADER_ELEMENT *) mtx_hdr->asElementStream;
+//elt_p[0]=This_Element;
+//
+//for (Lp=0;Lp<MB_No_In_Slice;Lp++)
+//{
+///* mb_skip_run = ue(0) = 1b */
+//pnw__write_upto8bits_elements(mtx_hdr, elt_p, 1,1);
+///* backward_zero_B_mb() - all static */
+//pnw__write_upto8bits_elements(mtx_hdr, elt_p, 15,5);
+//}
+//
+///* Tell MTX to insert the byte align field
+//* (we don't know final stream size for alignment at this point)
+//*/
+//pnw__insert_element_token(
+//mtx_hdr,
+//elt_p,
+//ELEMENT_INSERTBYTEALIGN_H264);
+//
+///* Has been used as an index, so need to add 1 for a valid element count */
+//mtx_hdr->Elements++;
+//}
+
+
+//static void pnw__H264_getelements_rbsp_ATE_only(MTX_HEADER_PARAMS *mtx_hdr)
+//{
+///* Skipped P-Slice
+//* Ensure pSlHParams is filled with appropriate parameters for a P-slice
+//* Essential we initialise our header structures before building
+//*/
+//MTX_HEADER_ELEMENT *This_Element;
+//MTX_HEADER_ELEMENT *elt_p[MAXNUMBERELEMENTS];
+//mtx_hdr->Elements=ELEMENTS_EMPTY;
+//This_Element=(MTX_HEADER_ELEMENT *) mtx_hdr->asElementStream;
+//elt_p[0]=This_Element;
+//
+///* Tell MTX to insert the byte align field
+//* (we don't know final stream size for alignment at this point)
+//*/
+//pnw__insert_element_token(
+//mtx_hdr,
+//elt_p,
+//ELEMENT_INSERTBYTEALIGN_H264);
+//
+///* Has been used as an index, so need to add 1 for a valid element count */
+//mtx_hdr->Elements++;
+//}
+
+
+static void pnw__H264_getelements_skip_P_slice(
+ MTX_HEADER_PARAMS *mtx_hdr,
+ H264_SLICE_HEADER_PARAMS *pSlHParams,
+ IMG_UINT32 MB_No_In_Slice,
+ IMG_BOOL bCabacEnabled)
+{
+ /* Skipped P-Slice
+ * Ensure pSlHParams is filled with appropriate parameters for a B-slice
+ * Essential we initialise our header structures before building
+ */
+ MTX_HEADER_ELEMENT *This_Element;
+ MTX_HEADER_ELEMENT *elt_p[MAXNUMBERELEMENTS];
+ mtx_hdr->Elements = ELEMENTS_EMPTY;
+ This_Element = (MTX_HEADER_ELEMENT *) mtx_hdr->asElementStream;
+ elt_p[0] = This_Element;
+
+ /* pnw__insert_element_token(mtx_hdr, ELEMENT_STARTCOUNTER); */
+ /* Not sure if this will be required in the final spec */
+ pnw__H264_writebits_slice_header(mtx_hdr, elt_p, pSlHParams, bCabacEnabled, 0);
+ pnw__generate_ue(mtx_hdr, elt_p, MB_No_In_Slice); /* mb_skip_run = mb_no_in_slice */
+
+ /* Tell MTX to insert the byte align field (we don't know final stream size for alignment at this point) */
+ pnw__insert_element_token(mtx_hdr, elt_p, ELEMENT_INSERTBYTEALIGN_H264);
+ mtx_hdr->Elements++; /* Has been used as an index, so need to add 1 for a valid element count */
+}
+
+
+
+static void pnw__H264_getelements_sequence_header(
+ MTX_HEADER_PARAMS *mtx_hdr,
+ H264_SEQUENCE_HEADER_PARAMS *pSHParams,
+ H264_CROP_PARAMS *psCropParams)
+{
+ /* Builds a sequence, picture and slice header with from the given inputs parameters (start of new frame)
+ * Essential we initialise our header structures before building
+ */
+ MTX_HEADER_ELEMENT *This_Element;
+ MTX_HEADER_ELEMENT *elt_p[MAXNUMBERELEMENTS];
+ mtx_hdr->Elements = ELEMENTS_EMPTY;
+ This_Element = (MTX_HEADER_ELEMENT *) mtx_hdr->asElementStream;
+ elt_p[0] = This_Element;
+
+ pnw__H264_writebits_sequence_header(mtx_hdr, elt_p, pSHParams, psCropParams);
+ mtx_hdr->Elements++; /* Has been used as an index, so need to add 1 for a valid element count */
+}
+
+
+//static void pnw__H264_getelements_picture_header(MTX_HEADER_PARAMS *mtx_hdr)
+//{
+///* Builds a sequence, picture and slice header with from the given inputs parameters (start of new frame)
+//* Essential we initialise our header structures before building
+//*/
+//MTX_HEADER_ELEMENT *This_Element;
+//MTX_HEADER_ELEMENT *elt_p[MAXNUMBERELEMENTS];
+//mtx_hdr->Elements=ELEMENTS_EMPTY;
+//This_Element=(MTX_HEADER_ELEMENT *) mtx_hdr->asElementStream;
+//elt_p[0]=This_Element;
+//
+//pnw__H264_writebits_picture_header(mtx_hdr, elt_p);
+//mtx_hdr->Elements++; //Has been used as an index, so need to add 1 for a valid element count
+//}
+
+
+static void pnw__H264_getelements_slice_header(
+ MTX_HEADER_PARAMS *mtx_hdr,
+ H264_SLICE_HEADER_PARAMS *pSlHParams,
+ IMG_BOOL bCabacEnabled,
+ IMG_UINT16 uiIdrPicId)
+{
+ /* Builds a single slice header from the given parameters (mid frame)
+ * Essential we initialise our header structures before building
+ */
+ MTX_HEADER_ELEMENT *This_Element;
+ MTX_HEADER_ELEMENT *elt_p[MAXNUMBERELEMENTS];
+ mtx_hdr->Elements = ELEMENTS_EMPTY;
+ This_Element = (MTX_HEADER_ELEMENT *) mtx_hdr->asElementStream;
+ elt_p[0] = This_Element;
+
+ /* Not sure if this will be required in the final spec */
+ /* pnw__insert_element_token(mtx_hdr, ELEMENT_STARTCOUNTER);*/
+ pnw__H264_writebits_slice_header(mtx_hdr, elt_p, pSlHParams, bCabacEnabled, uiIdrPicId);
+
+ mtx_hdr->Elements++; /* Has been used as an index, so need to add 1 for a valid element count */
+}
+
+
+//static void pnw__H264_getelements_endofsequence_header(
+//MTX_HEADER_PARAMS *mtx_hdr)
+//{
+///* Builds a single endofsequence header from the given parameters (mid frame) */
+//
+///* Essential we initialise our header structures before building */
+//MTX_HEADER_ELEMENT *This_Element;
+//MTX_HEADER_ELEMENT *elt_p[MAXNUMBERELEMENTS];
+//mtx_hdr->Elements=ELEMENTS_EMPTY;
+//This_Element=(MTX_HEADER_ELEMENT *) mtx_hdr->asElementStream;
+//elt_p[0]=This_Element;
+//
+//pnw__H264_writebits_endofsequence_header(mtx_hdr, elt_p);
+//mtx_hdr->Elements++; /* Has been used as an index, so need to add 1 for a valid element count */
+//}
+
+
+
+//static void pnw__H264_getelements_endofstream_header(MTX_HEADER_PARAMS *mtx_hdr)
+//{
+///* Builds a single endofstream header from the given parameters (mid frame) */
+//
+///* Essential we initialise our header structures before building */
+//MTX_HEADER_ELEMENT *This_Element;
+//MTX_HEADER_ELEMENT *elt_p[MAXNUMBERELEMENTS];
+//mtx_hdr->Elements=ELEMENTS_EMPTY;
+//This_Element=(MTX_HEADER_ELEMENT *) mtx_hdr->asElementStream;
+//elt_p[0]=This_Element;
+//
+//pnw__H264_writebits_endofstream_header(mtx_hdr, elt_p);
+//mtx_hdr->Elements++; /* Has been used as an index, so need to add 1 for a valid element count */
+//}
+
+static IMG_UINT8 Bits2Code(IMG_UINT32 CodeVal)
+{
+ IMG_UINT8 Bits = 32;
+ if (CodeVal == 0)
+ return 1;
+ while (!(CodeVal & 0x80000000)) {
+ CodeVal <<= 1;
+ Bits--;
+ }
+ return Bits;
+}
+
+/*
+ * Intermediary functions to build MPEG4 headers
+ */
+#define MATCH_TO_ENC
+
+
+static void pnw__MPEG4_writebits_sequence_header(
+ MTX_HEADER_PARAMS *mtx_hdr,
+ MTX_HEADER_ELEMENT **elt_p,
+ IMG_BOOL bBFrame,
+ MPEG4_PROFILE_TYPE bProfile,
+ IMG_UINT8 Profile_and_level_indication,
+ FIXED_VOP_TIME_TYPE sFixed_vop_time_increment,
+ IMG_UINT32 Picture_Width_Pixels,
+ IMG_UINT32 Picture_Height_Pixels,
+ VBVPARAMS *sVBVParams, IMG_UINT32 VopTimeResolution) /* Send NULL pointer if there are no VBVParams */
+{
+ /* Essential we insert the element before we try to fill it! */
+ pnw__insert_element_token(mtx_hdr, elt_p, ELEMENT_STARTCODE_RAWDATA);
+
+ /* visual_object_sequence_start_code = 32 Bits = 0x1B0 */
+ pnw__write_upto32bits_elements(mtx_hdr, elt_p, 432, 32);
+
+ /* profile_and_level_indication = 8 Bits = SP L0-L3 and SP L4-L5 are supported */
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, Profile_and_level_indication, 8);
+
+ /* visual_object_start_code = 32 Bits = 0x1B5 */
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 0, 8);
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 0, 8);
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 1, 8);
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 181, 8);
+
+ /* is_visual_object_identifier = 1 Bit = 0 */
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 0, 1);
+
+ /* visual_object_type = 4 Bits = Video ID = 1 */
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 1, 4);
+
+ /* video_signal_type = 1 Bit = 1 */
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 0, 1);
+
+ /* byte_aligned_bits = 2 Bits = 01b (byte_aligned_bits is 2-bit stuffing bit field 01) */
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 1, 2);
+
+ /* video_object_start_code = 32 Bits = 0x100 One VO only in a Topaz video stream */
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 0, 8);
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 0, 8);
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 1, 8);
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 0, 8);
+
+ /* video_object_layer_start_code = 32 Bits = 0x120 One VOL only in a Topaz stream */
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 0, 8);
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 0, 8);
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 1, 8);
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 32, 8);
+
+ /* random_accessible_vol = 1 Bit = 0 (P-Frame in GOP) */
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 0, 1);
+
+ if (bProfile == SP) {
+ /* video_object_type_indication = 8 Bits = 0x01 for SP */
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 1, 8);
+#ifndef MATCH_TO_ENC
+ /* is_object_layer_identifier = 1 Bit = 0 for SP */
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 0, 1);
+#else
+ /* to match the encoder */
+
+ /* is_object_layer_identifier = 1 Bit */
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 1, 1);
+
+ /* video_object_layer_verid = 4 Bits */
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 1, 4);
+
+ /* video_object_layer_priority = 3 Bits */
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 1, 3); // 0 is reserved...
+#endif
+ } else {
+ /* video_object_type_indication = 8 Bits = 0x11 for ASP */
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 3, 8);
+
+ /* is_object_layer_identifier = 1 Bit = 1 for ASP */
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 1, 1);
+
+ /* video_object_layer_verid = 4 Bits = 5 is for ASP */
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 5, 4);
+
+ /* video_object_layer_priority = 3 Bits = 1 (Highest priority) */
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 1, 3);
+ }
+
+ /* aspect_ratio_info = 4 Bits =0x1 (Square pixel) */
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 1, 4);
+#ifndef MATCH_TO_ENC
+ /* vol_control_parameters = 1 Bit = 1 (Always send VOL control parameters) */
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 1, 1);
+#else
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 0, 1);
+
+#endif
+
+#ifndef MATCH_TO_ENC
+ /* chroma_format = 2 Bits = 01b (4:2:0) */
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 1, 2);
+
+ /* low_delay = 1 Bit = 0 with B-frame and 1 without B-frame */
+ if (bBFrame)
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 0, 1);
+ else
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 1, 1);
+
+ /* vbv_parameters = 1 Bit =0/1 */
+ if (sVBVParams) {
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 1, 1);
+
+ /* For recording, only send vbv parameters in 1st sequence header.
+ * For video phone, it should be sent more often, such as once per sequence
+ */
+ pnw__write_upto32bits_elements(
+ mtx_hdr,
+ elt_p,
+ sVBVParams->First_half_bit_rate,
+ 15); /* first_half_bit_rate */
+
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 1, 1);/* Marker Bit = 1 */
+ pnw__write_upto32bits_elements(
+ mtx_hdr,
+ elt_p,
+ sVBVParams->Latter_half_bit_rate,
+ 15); /* latter_half_bit_rate */
+
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 1, 1);/* Marker Bit = 1 */
+ pnw__write_upto32bits_elements(
+ mtx_hdr,
+ elt_p,
+ sVBVParams->First_half_vbv_buffer_size,
+ 15);/* first_half_vbv_buffer_size */
+
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 1, 1); /* Marker Bit = 1 */
+ pnw__write_upto32bits_elements(
+ mtx_hdr, elt_p,
+ sVBVParams->Latter_half_vbv_buffer_size,
+ 15); /* latter_half_vbv_buffer_size */
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 1, 1);/* Marker Bit = 1 */
+ pnw__write_upto32bits_elements(
+ mtx_hdr,
+ elt_p,
+ sVBVParams->First_half_vbv_occupancy,
+ 15); /* first_half_vbv_occupancy */
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 1, 1);/* Marker Bit = 1 */
+ pnw__write_upto32bits_elements(
+ mtx_hdr,
+ elt_p,
+ sVBVParams->Latter_half_vbv_occupancy,
+ 15); /* latter_half_vbv_occupancy */
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 1, 1);/* Marker Bit = 1 */
+ } else
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 0, 1); /* No vbv parameters present */
+#endif
+ /* video_object_layer_shape = 2 Bits = 00b Rectangular shape */
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 0, 2);
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 1, 1); /* Marker Bit = 1 */
+
+ /* vop_time_increment_solution = 16 Bits */
+ pnw__write_upto32bits_elements(mtx_hdr, elt_p, VopTimeResolution, 16);
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 1, 1); /* Marker Bit = 1 */
+
+#ifndef MATCH_TO_ENC
+ /* fixed_vop_rate = 1 Bits = 1 Always fixed frame rate */
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 1, 1);
+
+ /* fixed_vop_time_increment = Variable number of bits based on the time increment resolution. */
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 1, Bits2Code(VopTimeResolution - 1));
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 1, 1); /* Marker Bit = 1 */
+#else
+ /* fixed_vop_rate = 1 Bits = 0 */
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 0, 1);
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 1, 1); /* Marker Bit = 1 */
+
+#endif
+ /* video_object_layer_width = 13 Bits Picture width in pixel units */
+ pnw__write_upto32bits_elements(mtx_hdr, elt_p, Picture_Width_Pixels, 13);
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 1, 1); /* Marker Bit = 1 */
+
+ /* video_object_layer_height = 13 Bits Picture height in pixel units */
+ pnw__write_upto32bits_elements(mtx_hdr, elt_p, Picture_Height_Pixels, 13);
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 1, 1); /* Marker Bit = 1 */
+
+ /* interlaced = 1 Bit = 0 Topaz only encodes progressive frames */
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 0, 1);
+
+ /* obmc_disable = 1 Bit = 1 No overlapped MC in Topaz */
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 1, 1);
+
+ /* sprite_enable = 1 Bit = 0 Not use sprite in Topaz */
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 0, 1);
+
+ /* not_8_bit = 1 Bit = 0 8-bit video in Topaz */
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 0, 1);
+
+ /* quant_type = 1 Bit = 0 2nd quantization method in Topaz */
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 0, 1);
+
+ if (bProfile == ASP) {
+ /* quarter_sample = 1 Bit = 0 No ¼-pel MC in Topaz */
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 0, 1);
+ }
+
+ /* complexity_estimation_disable = 1 Bit = 1 No complexity estimation in Topaz */
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 1, 1);
+#ifndef MATCH_TO_ENC
+
+ /* resync_marker_disable = 1 Bit = 0 Always enable resync marker in Topaz */
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 0, 1);
+#else
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 1, 1);
+#endif
+ /* data_partitioned = 1 Bit = 0 No data partitioning in Topaz */
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 0, 1);
+
+ if (bProfile == ASP) {
+ /* newpred_enable = 1 Bit = 0 No newpred mode in SP/ASP */
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 0, 1);
+ /* reduced_vop_resolution_enable=1 Bit = 0 No reduced resolution frame in SP/ASP */
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 0, 1);
+ }
+
+ /* scalability = 1 Bit = 0 No scalability in SP/ASP */
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 0, 1);
+
+ /* byte_aligned_bits */
+
+ /* Tell MTX to insert the byte align field
+ * (we don't know final stream size for alignment at this point)
+ */
+ pnw__insert_element_token(
+ mtx_hdr,
+ elt_p,
+ ELEMENT_INSERTBYTEALIGN_MPG4);
+
+ return;
+}
+
+
+/* Utility function */
+/*
+ IMG_UINT8 Bits2Code(IMG_UINT32 CodeVal)
+ {
+ IMG_UINT8 Bits=32;
+ if(CodeVal==0)
+ return 1;
+ while(!(CodeVal & 0x80000000))
+ {
+ CodeVal<<=1;
+ Bits--;
+ }
+ return Bits;
+ }
+*/
+
+/* MPEG 4 VOP (Picture) Header */
+static void pnw__MPEG4_writebits_VOP_header(
+ MTX_HEADER_PARAMS *mtx_hdr,
+ MTX_HEADER_ELEMENT **elt_p,
+ IMG_BOOL bIsVOP_coded,
+ IMG_UINT8 VOP_time_increment,
+ SEARCH_RANGE_TYPE sSearch_range,
+ VOP_CODING_TYPE sVopCodingType,
+ IMG_UINT32 VopTimeResolution)
+{
+ IMG_BOOL bIsSyncPoint;
+ /* Essential we insert the element before we try to fill it! */
+ pnw__insert_element_token(mtx_hdr, elt_p, ELEMENT_STARTCODE_RAWDATA);
+
+ /* visual_object_sequence_start_code = 32 Bits = 0x1B6 */
+ pnw__write_upto32bits_elements(mtx_hdr, elt_p, 438, 32);
+
+ /* vop_coding_type = 2 Bits = 0 for I-frame and 1 for P-frame */
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, sVopCodingType, 2);
+ bIsSyncPoint = (VOP_time_increment > 1) && ((VOP_time_increment) % VopTimeResolution == 0);
+
+#ifndef MATCH_TO_ENC
+ /* modulo_time_base = 1 Bit = 0 As at least 1 synchronization point (I-frame) per second in Topaz */
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 0, 1);
+#else
+
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, bIsSyncPoint ? 2 : 0 , bIsSyncPoint ? 2 : 1);
+
+#endif
+
+ /* marker_bit = 1 Bits = 1 */
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 1, 1);
+
+#ifndef MATCH_TO_ENC
+ /* vop_time_increment = Variable bits based on resolution
+ * = x Reset to 0 at I-frame and plus fixed_vop_time_increment each frame
+ */
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, VOP_time_increment, 5);
+#else
+ /* will chrash here... */
+ pnw__write_upto8bits_elements(
+ mtx_hdr, elt_p,
+ (VOP_time_increment) % VopTimeResolution,
+ Bits2Code(VopTimeResolution - 1));
+
+#endif
+ /* marker_bit = 1 Bit = 1 */
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 1, 1);
+
+ if (!bIsVOP_coded) {
+ /* vop_coded = 1 Bit = 0 for skipped frame */
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 0, 1);
+
+ /* byte_aligned_bits (skipped pictures are byte aligned) */
+ /* Tell MTX to insert the byte align field (we don't know final stream size for alignment at this point)
+ * End of VOP - skipped picture
+ */
+ pnw__insert_element_token(mtx_hdr, elt_p, ELEMENT_INSERTBYTEALIGN_MPG4);
+ } else {
+ /* vop_coded = 1 Bit = 1 for normal coded frame */
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 1, 1);
+
+ if (sVopCodingType == P_FRAME) {
+ /* vop_rounding_type = 1 Bit = 0 vop_rounding_type is 0 in Topaz */
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 0, 1);
+ }
+
+ /* intra_dc_vlc_thr = 3 Bits = 0 Use intra DC VLC in Topaz */
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 0, 3);
+
+ /* vop_quant = 5 Bits = x 5-bit frame Q_scale from rate control - GENERATED BY MTX */
+ /* pnw__write_upto8bits_elements(mtx_hdr, elt_p, Frame_Q_scale, 5); */
+ pnw__insert_element_token(mtx_hdr, elt_p, ELEMENT_FRAMEQSCALE);
+
+ if (sVopCodingType == P_FRAME) {
+ /* vop_fcode_forward = 3 bits = 2 for +/-32 and 3 for +/-64 search range */
+ pnw__insert_element_token(mtx_hdr, elt_p, ELEMENT_RAWDATA);
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, sSearch_range, 3);
+ }
+
+ /*
+ **** THE FINAL PART OF VOP STRUCTURE CAN'T BE GENERATED HERE
+ pnw__insert_element_token(mtx_hdr, elt_p, ELEMENT_RAWDATA);
+ video_packet_data ( ) = 1st VP that doesn’t have the VP header
+
+ while (nextbits_bytealigned ( ) == resync_marker)
+ {
+ video_packet _header( )
+ video_packet _data( ) All MB in the slice
+ }
+ */
+ }
+}
+
+
+/* MPEG 4 Video Packet (Slice) Header */
+//static void pnw__MPEG4_writebits_videopacket_header(
+//MTX_HEADER_PARAMS *mtx_hdr,
+//MTX_HEADER_ELEMENT **elt_p,
+//VOP_CODING_TYPE eVop_Coding_Type,
+//IMG_UINT8 Fcode,
+//IMG_UINT32 MBNumber,
+//IMG_UINT32 MBNumberlength,
+//IMG_BOOL bHeader_Extension_Code,
+//IMG_UINT8 VOP_Time_Increment,
+//SEARCH_RANGE_TYPE sSearch_range)
+//{
+///* Essential we insert the element before we try to fill it! */
+//pnw__insert_element_token(mtx_hdr, elt_p, ELEMENT_RAWDATA);
+//
+//if (eVop_Coding_Type == I_FRAME)
+//{
+///* resync_marker = 17 bit =0x1 17-bit for I-frame */
+//pnw__write_upto32bits_elements(mtx_hdr, elt_p, 1, 17);
+//}
+//else
+//{
+///* resync_marker = 17 bit =0x1 (16+fcode) bits for P-frame */
+//pnw__write_upto32bits_elements(mtx_hdr, elt_p, 1, 16+Fcode);
+//}
+//
+///* macroblock_number = 1-14 bits = ?????? */
+//pnw__write_upto32bits_elements(mtx_hdr, elt_p, MBNumber, MBNumberlength);
+//
+///* quant_scale = 5 bits =1-32 VP (Slice) Q_scale
+//* pnw__write_upto8bits_elements(mtx_hdr, elt_p, VP_Slice_Q_Scale, 5);
+//*/
+//pnw__insert_element_token(
+//mtx_hdr, elt_p,
+//ELEMENT_SLICEQSCALE); /* Insert token to tell MTX to insert rate-control value */
+//
+//pnw__insert_element_token(mtx_hdr, elt_p, ELEMENT_RAWDATA); /* Begin writing rawdata again */
+//
+//if (bHeader_Extension_Code)
+//{
+///* header_extension_code = 1bit = 1 picture header parameters are repeated */
+//pnw__write_upto8bits_elements(mtx_hdr, elt_p, 0, 1);
+//
+///* modulo_time_base = 1 bit = 0 The same as it is in the current picture header */
+//pnw__write_upto8bits_elements(mtx_hdr, elt_p, 0, 1);
+//
+///* marker_bit = 1 bit = 1 */
+//pnw__write_upto8bits_elements(mtx_hdr, elt_p, 1, 1);
+//
+///* vop_time_increment = 5 bits = 0-30 The same as it is in the current picture header */
+//pnw__write_upto8bits_elements(mtx_hdr, elt_p, VOP_Time_Increment, 5);
+//
+///* marker_bit = 1 bit = 1 */
+//pnw__write_upto8bits_elements(mtx_hdr, elt_p, 1, 1);
+//
+///* vop_coding_type= 2 bits = 0/1 The same as it is in the current picture header */
+//pnw__write_upto8bits_elements(mtx_hdr, elt_p, eVop_Coding_Type, 2);
+//
+///* intra_dc_vlc_thr = 3 bits = 0 The same as it is in the current picture header */
+//pnw__write_upto8bits_elements(mtx_hdr, elt_p, 0, 3);
+//
+//if (eVop_Coding_Type == P_FRAME)
+//{
+///* vop_fcode_forward = 3 bits = 2/3 The same as it is in the current picture header */
+//pnw__write_upto8bits_elements(mtx_hdr, elt_p, sSearch_range, 3);
+//}
+//}
+//else
+//{
+///* header_extension_code = 1 bits =0 picture header parameters are NOT repeated */
+//pnw__write_upto8bits_elements(mtx_hdr, elt_p, 0, 1);
+//}
+//}
+
+/*
+ * High level functions to call when a MPEG4 header is required - HOST ROUTINES
+ */
+//static void pnw__MPEG4_getelements_sequence_header (
+//MTX_HEADER_PARAMS *mtx_hdr,
+//IMG_BOOL bBFrame,
+//MPEG4_PROFILE_TYPE sProfile,
+//IMG_UINT8 Profile_and_level_indication,
+//FIXED_VOP_TIME_TYPE sFixed_vop_time_increment,
+//IMG_UINT32 Picture_Width_Pixels,
+//IMG_UINT32 Picture_Height_Pixels,
+//VBVPARAMS *sVBVParams,
+//IMG_UINT32 VopTimeResolution) /* NULL pointer if there are no VBVParams */
+//{
+///* Builds a single MPEG4 video sequence header from the given parameters */
+//
+///* Essential we initialise our header structures before building */
+//MTX_HEADER_ELEMENT *This_Element;
+//MTX_HEADER_ELEMENT *elt_p[MAXNUMBERELEMENTS];
+//mtx_hdr->Elements=ELEMENTS_EMPTY;
+//This_Element=(MTX_HEADER_ELEMENT *) mtx_hdr->asElementStream;
+//elt_p[0]=This_Element;
+//
+//pnw__MPEG4_writebits_sequence_header(
+//mtx_hdr,
+//elt_p,
+//bBFrame, sProfile,
+//Profile_and_level_indication,
+//sFixed_vop_time_increment,
+//Picture_Width_Pixels,
+//Picture_Height_Pixels,
+//sVBVParams,VopTimeResolution);
+//
+//mtx_hdr->Elements++; /* Has been used as an index, so need to add 1 for a valid element count */
+//}
+
+
+/* MPEG 4 VOP (Picture) Header */
+//static void pnw__MPEG4_getelements_VOP_header(
+//MTX_HEADER_PARAMS *mtx_hdr,
+//IMG_BOOL bIsVOP_coded,
+//IMG_UINT8 VOP_time_increment,
+//SEARCH_RANGE_TYPE sSearch_range,
+//VOP_CODING_TYPE sVopCodingType,
+//IMG_UINT32 VopTimeResolution)
+//{
+///* Builds a single MPEG4 VOP (picture) header from the given parameters */
+//
+///* Essential we initialise our header structures before building */
+//MTX_HEADER_ELEMENT *This_Element;
+//MTX_HEADER_ELEMENT *elt_p[MAXNUMBERELEMENTS];
+//mtx_hdr->Elements=ELEMENTS_EMPTY;
+//This_Element=(MTX_HEADER_ELEMENT *) mtx_hdr->asElementStream;
+//elt_p[0]=This_Element;
+//
+///* Frame QScale no longer written here as it is inserted by MTX later
+//* (add as parameter to MTX_Send_Elements_To_VLC)
+//*/
+//pnw__MPEG4_writebits_VOP_header(
+//mtx_hdr, elt_p, bIsVOP_coded,
+//VOP_time_increment,
+//sSearch_range,
+//sVopCodingType,VopTimeResolution);
+//
+//mtx_hdr->Elements++; /* Has been used as an index, so need to add 1 for a valid element count */
+//}
+
+
+//static void pnw_MPEG4_getelements_video_packet_header(
+//MTX_HEADER_PARAMS *mtx_hdr,
+//VOP_CODING_TYPE eVop_Coding_Type,
+//IMG_UINT8 Fcode,
+//IMG_UINT32 MBNumber,
+//IMG_UINT32 MBNumberlength,
+//IMG_BOOL bHeader_Extension_Code,
+//IMG_UINT8 VOP_Time_Increment,
+//SEARCH_RANGE_TYPE sSearch_range)
+//{
+///* Builds a single MPEG4 video packet (slice) header from the given parameters */
+//
+///* Essential we initialise our header structures before building */
+//MTX_HEADER_ELEMENT *This_Element;
+//MTX_HEADER_ELEMENT *elt_p[MAXNUMBERELEMENTS];
+//mtx_hdr->Elements=ELEMENTS_EMPTY;
+//This_Element=(MTX_HEADER_ELEMENT *) mtx_hdr->asElementStream;
+//elt_p[0]=This_Element;
+//
+///* Slice QScale no longer written here as it is inserted by MTX later
+//* (add as parameter when sending to VLC)
+//*/
+//pnw__MPEG4_writebits_videopacket_header(
+//mtx_hdr, elt_p, eVop_Coding_Type,
+//Fcode, MBNumber, MBNumberlength,
+//bHeader_Extension_Code, VOP_Time_Increment, sSearch_range);
+//
+//mtx_hdr->Elements++; /* Has been used as an index, so need to add 1 for a valid element count */
+//}
+
+/*
+ * Intermediary functions to build H263 headers
+ */
+static void H263_writebits_VideoSequenceHeader(
+ MTX_HEADER_PARAMS *mtx_hdr,
+ MTX_HEADER_ELEMENT **elt_p,
+ IMG_UINT8 Profile_and_level_indication)
+{
+ /* Essential we insert the element before we try to fill it! */
+ pnw__insert_element_token(mtx_hdr, elt_p, ELEMENT_STARTCODE_RAWDATA);
+
+ /* visual_object_sequence_start_code = 32 Bits = 0x1B0 */
+ pnw__write_upto32bits_elements(mtx_hdr, elt_p, 432, 32);
+
+ /* profile_and_level_indication = 8 Bits = x SP L0-L3 and SP L4-L5 are supported */
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, Profile_and_level_indication, 8);
+
+ /* visual_object_start_code = 32 Bits = 0x1B5 */
+
+ /* 437 too large for the pnw__write_upto32bits_elements function */
+ pnw__write_upto32bits_elements(mtx_hdr, elt_p, 437, 32);
+
+ /* is_visual_object_identifier = 1 Bit = 0 */
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 0, 1);
+
+ /* is_visual_object_type = 4 Bits = 1 Video ID */
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 1, 4);
+
+ /* video_signal_type = 1 Bit = 0 */
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 0, 1);
+
+ /* byte_aligned_bits = 2 Bits = 01b byte_aligned_bits is 2-bit stuffing bit field 01 */
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 1, 2);
+
+ /* video_object_start_code =32 Bits = 0x100 One VO only in a Topaz video stream */
+ pnw__write_upto32bits_elements(mtx_hdr, elt_p, 256, 32);
+
+ return;
+}
+
+static void H263_writebits_VideoPictureHeader(
+ MTX_HEADER_PARAMS *mtx_hdr,
+ MTX_HEADER_ELEMENT **elt_p,
+ IMG_UINT8 Temporal_Ref,
+ H263_PICTURE_CODING_TYPE PictureCodingType,
+ //IMG_UINT8 Q_Scale,
+ H263_SOURCE_FORMAT_TYPE SourceFormatType,
+ IMG_UINT8 FrameRate,
+ IMG_UINT32 PictureWidth,
+ IMG_UINT32 PictureHeight)
+{
+ IMG_UINT8 UFEP;
+ IMG_UINT8 OCPCF = 0;
+
+ /* Essential we insert the element before we try to fill it! */
+ pnw__insert_element_token(mtx_hdr, elt_p, ELEMENT_STARTCODE_RAWDATA);
+
+ /* short_video_start_marker = 22 Bits = 0x20 Picture start code */
+ pnw__write_upto32bits_elements(mtx_hdr, elt_p, 32, 22);
+
+ /* temporal_reference = 8 Bits = 0-255 Each picture increased by 1 */
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, Temporal_Ref, 8);
+
+ /* marker_bit = 1 Bit = 1 */
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 1, 1);
+
+ /* zero_bit = 1 Bits = 0 */
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 0, 1);
+
+ /* split_screen_indicator = 1 Bits = 0 No direct effect on encoding of picture */
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 0, 1);
+
+ /* document_camera_indicator= 1 Bits = 0 No direct effect on encoding of picture */
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 0, 1);
+
+ /* full_picture_freeze_release=1 Bits = 0 No direct effect on encoding of picture */
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 0, 1);
+
+ /* source_format = 3 Bits = 1-4 See note */
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, SourceFormatType, 3);
+
+ /*Write optional Custom Picture Clock Frequency(OCPCF)*/
+ if (FrameRate == 30 || FrameRate == 0/* unspecified */) {
+ OCPCF = 0; // 0 for CIF PCF
+ } else {
+ OCPCF = 1; //1 for Custom PCF
+ }
+
+ if (SourceFormatType != 7) {
+ // picture_coding_type = 1 Bit = 0/1 0 for I-frame and 1 for P-frame
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, PictureCodingType, 1);
+ // four_reserved_zero_bits = 4 Bits = 0
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 0, 4);
+ } else {
+ static unsigned char RTYPE = 0;
+
+ // if I- Frame set Update Full Extended PTYPE to true
+ if ((PictureCodingType == I_FRAME) || (SourceFormatType == 7) || OCPCF) {
+ UFEP = 1;
+ } else {
+ UFEP = 0;
+ }
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, UFEP, 3);
+ if (UFEP == 1) {
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 6, 3);
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, OCPCF , 1);
+
+ /* 10 reserve bits ( Optional support for the encoding). All are OFF(0).
+ * - Optional Unrestricted Motion Vector (UMV)
+ * - Optional Syntax-based Arithmetic Coding (SAC)
+ * - Optional Advanced Prediction (AP) mode
+ * - Optional Advanced INTRA Coding (AIC) mode
+ * - Optional Deblocking Filter (DF) mode
+ * - Optional Slice Structured (SS) mode
+ * - Optional Reference Picture Selection(RPS) mode.
+ * - Optional Independent Segment Decoding (ISD) mode
+ * - Optional Alternative INTER VLC (AIV) mode
+ * - Optional Modified Quantization (MQ) mode */
+
+ pnw__write_upto32bits_elements(mtx_hdr, elt_p, 0, 10);
+ // 10 reserve bits
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 8, 4);
+ // 4 reserve bits
+ }
+ // picture_coding_type = 1 Bit = 0/1 0 for I-frame and 1 for P-frame
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, PictureCodingType, 3);
+
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 0, 2);
+ // two_reserve_bits, rounding_type, two_reserve_bits marker_bit CPM
+ // Rounding Type (RTYPE) (1 for P Picture, 0 for all other Picture frames.
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, RTYPE, 1);
+ //2 reserve bits
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 0, 2);
+ // - 1 (ON) to prevent start code emulation.
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 1 , 1);
+ // CPM immediately follows the PPTYPE part of the header.
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 0 , 1);
+
+
+ if (UFEP == 1) {
+ IMG_UINT16 ui16PWI, ui16PHI;
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 1, 4);
+ // aspect ratio
+ //PictureWidth--;
+ //pnw__write_upto8bits_elements(mtx_hdr, elt_p, (IMG_UINT8)(PictureWidth >> 8), 1);
+ //pnw__write_upto8bits_elements(mtx_hdr, elt_p, (IMG_UINT8)(PictureWidth & 0xFF), 8);
+ //Width = (PWI-1)*4, Height = PHI*4, see H263 spec 5.1.5
+ ui16PWI = (PictureWidth >> 2) - 1;
+ pnw__write_upto32bits_elements(mtx_hdr, elt_p, (IMG_UINT8)ui16PWI, 9);
+
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 1, 1);
+ // marker_bit = 1 Bit = 1
+ //pnw__write_upto8bits_elements(mtx_hdr, elt_p, (IMG_UINT8)(PictureHeight >> 8), 1);
+ //pnw__write_upto8bits_elements(mtx_hdr, elt_p, (IMG_UINT8)(PictureHeight & 0xFF), 8);
+
+ ui16PHI = PictureHeight >> 2;
+ pnw__write_upto32bits_elements(mtx_hdr, elt_p, (IMG_UINT8)ui16PHI, 9);
+ // good up to that point
+ // pnw__write_upto8bits_elements(mtx_hdr, elt_p, 1, 1);
+ // marker_bit = 1 Bit = 1
+ // just checking
+ if (OCPCF == 1) {
+ //IMG_UINT8 CPCFC;
+ //CPCFC = (IMG_UINT8)(1800/(IMG_UINT16)FrameRate);
+ /* you can use the table for division */
+ //CPCFC <<= 1; /* for Clock Conversion Code */
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 1, 1);
+ // Clock Divisor : 7 bits The natural binary representation of the value of the clock divisor.
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 1800000 / (FrameRate * 1000), 7);
+ }
+ }
+ if (OCPCF == 1) {
+ IMG_UINT8 ui8ETR; // extended Temporal reference
+ // Two MSBs of 10 bit temporal_reference : value 0
+ ui8ETR = Temporal_Ref >> 8;
+
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, ui8ETR, 2);
+ /* Two MSBs of temporal_reference */
+ }
+ }
+ // vop_quant = 5 Bits = x 5-bit frame Q_scale from rate control - GENERATED BY MTX
+ //pnw__write_upto8bits_elements(mtx_hdr, elt_p, ui8Q_Scale, 5);
+ pnw__insert_element_token(mtx_hdr, elt_p, ELEMENT_FRAMEQSCALE); // Insert token to tell MTX to insert rate-control value (QScale is sent as an argument in MTX_Send_Elements_To_VLC(&MTX_Header, FrameQScale))
+ pnw__insert_element_token(mtx_hdr, elt_p, ELEMENT_RAWDATA);
+ // zero_bit = 1 Bit = 0
+ // pei = 1 Bit = 0 No direct effect on encoding of picture
+ if (SourceFormatType != 7) {
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 0, 1);
+ }
+
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, 0, 1);
+ // FOLLOWING SECTION CAN'T BE GENERATED HERE
+ //gob_data( )
+ //for(i=1; i<num_gob_in_picture; i++) {
+ // gob_header( )
+ // gob_data( )
+ // }
+ return;
+}
+
+static void H263_writebits_GOBSliceHeader(
+ MTX_HEADER_PARAMS *mtx_hdr,
+ MTX_HEADER_ELEMENT **elt_p,
+ IMG_UINT8 GOBNumber,
+ IMG_UINT8 GOBFrameId)
+{
+ /* Essential we insert the element before we try to fill it! */
+ pnw__insert_element_token(mtx_hdr, elt_p, ELEMENT_STARTCODE_RAWDATA);
+
+ /* gob_resync_marker = 17 = 0x1 */
+ pnw__write_upto32bits_elements(mtx_hdr, elt_p, 1, 17);
+
+ /* gob_number = 5 = 0-17 It is gob number in a picture */
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, GOBNumber, 5);
+
+ /* gob_frame_id = 2 = 0-3 See note */
+ pnw__write_upto8bits_elements(mtx_hdr, elt_p, GOBFrameId, 2);
+
+ /* quant_scale = 5 = 1-32 gob (Slice) Q_scale */
+ /* pnw__write_upto8bits_elements(mtx_hdr, elt_p, GOB_Q_Scale, 5); */
+
+ /* Insert token to tell MTX to insert rate-control value
+ * (QScale is sent as an argument in MTX_Send_Elements_To_VLC(&MTX_Header, SliceQScale))
+ */
+ pnw__insert_element_token(mtx_hdr, elt_p, ELEMENT_SLICEQSCALE);
+ return;
+}
+
+/*
+ * High level functions to call when a H263 header is required - HOST ROUTINES
+ */
+//static void pnw__H263_getelements_videosequence_header(
+//MTX_HEADER_PARAMS *mtx_hdr,
+//IMG_UINT8 Profile_and_level_indication)
+//{
+///* Builds a single H263 video sequence header from the given parameters */
+//
+///* Essential we initialise our header structures before building */
+//MTX_HEADER_ELEMENT *This_Element;
+//MTX_HEADER_ELEMENT *elt_p[MAXNUMBERELEMENTS];
+//mtx_hdr->Elements=ELEMENTS_EMPTY;
+//This_Element=(MTX_HEADER_ELEMENT *) mtx_hdr->asElementStream;
+//elt_p[0]=This_Element;
+//
+//H263_writebits_VideoSequenceHeader(mtx_hdr, elt_p, Profile_and_level_indication);
+//
+//mtx_hdr->Elements++; /* Has been used as an index, so need to add 1 for a valid element count */
+//}
+
+//static void pnw__H263_getelements_videopicture_header(
+//MTX_HEADER_PARAMS *mtx_hdr,
+//IMG_UINT8 Temporal_Ref,
+//H263_PICTURE_CODING_TYPE PictureCodingType,
+//H263_SOURCE_FORMAT_TYPE SourceFormatType,
+//IMG_UINT8 FrameRate,
+//IMG_UINT16 PictureWidth,
+//IMG_UINT16 PictureHeigth)
+//{
+///* Essential we initialise our header structures before building */
+//MTX_HEADER_ELEMENT *This_Element;
+//MTX_HEADER_ELEMENT *elt_p[MAXNUMBERELEMENTS];
+//mtx_hdr->Elements=ELEMENTS_EMPTY;
+//This_Element=(MTX_HEADER_ELEMENT *) mtx_hdr->asElementStream;
+//elt_p[0]=This_Element;
+//
+//H263_writebits_VideoPictureHeader(
+//mtx_hdr, elt_p,
+//Temporal_Ref,
+//PictureCodingType,
+//SourceFormatType,
+//FrameRate,
+//PictureWidth,
+//PictureHeigth);
+//
+//mtx_hdr->Elements++; /* Has been used as an index, so need to add 1 for a valid element count */
+//}
+
+//static void pnw__H263_getelements_GOBslice_header(
+//MTX_HEADER_PARAMS *mtx_hdr,
+//IMG_UINT8 GOBNumber,
+//IMG_UINT8 GOBFrameId)
+//{
+///* Essential we initialise our header structures before building */
+//MTX_HEADER_ELEMENT *This_Element;
+//MTX_HEADER_ELEMENT *elt_p[MAXNUMBERELEMENTS];
+//mtx_hdr->Elements=ELEMENTS_EMPTY;
+//This_Element=(MTX_HEADER_ELEMENT *) mtx_hdr->asElementStream;
+//elt_p[0]=This_Element;
+//
+//H263_writebits_GOBSliceHeader(mtx_hdr, elt_p, GOBNumber, GOBFrameId);
+//
+//mtx_hdr->Elements++; //Has been used as an index, so need to add 1 for a valid element count
+//}
+
+// SEI_INSERTION
+static void pnw__H264_writebits_AUD_header(
+ MTX_HEADER_PARAMS *pMTX_Header,
+ MTX_HEADER_ELEMENT **aui32ElementPointers)
+{
+ // Essential we insert the element before we try to fill it!
+ pnw__insert_element_token(pMTX_Header,
+ aui32ElementPointers,
+ ELEMENT_STARTCODE_RAWDATA);
+
+ pnw__H264_writebits_startcode_prefix_element(pMTX_Header,
+ aui32ElementPointers, 4); // 00 00 00 01 start code prefix
+
+ pnw__write_upto8bits_elements(pMTX_Header,
+ aui32ElementPointers,
+ 9,
+ 8); // AUD nal_unit_type = 09
+
+ // primary_pic_type u(3) 0=I slice, 1=P or I slice, 2=P,B or I slice
+ pnw__write_upto8bits_elements(pMTX_Header,
+ aui32ElementPointers,
+ 2,
+ 3);
+
+ pnw__write_upto8bits_elements(pMTX_Header,
+ aui32ElementPointers,
+ 1 << 4, 5); // rbsp_trailing_bits
+
+ // Write terminator
+ pnw__write_upto8bits_elements(pMTX_Header,
+ aui32ElementPointers, 0x80, 8);
+ return;
+}
+
+static void pnw__H264_writebits_SEI_buffering_period_header(
+ MTX_HEADER_PARAMS *pMTX_Header,
+ MTX_HEADER_ELEMENT **aui32ElementPointers,
+ IMG_UINT8 ui8NalHrdBpPresentFlag,
+ IMG_UINT8 ui8nal_cpb_cnt_minus1,
+ IMG_UINT8 ui8nal_initial_cpb_removal_delay_length,
+ IMG_UINT32 ui32nal_initial_cpb_removal_delay,
+ IMG_UINT32 ui32nal_initial_cpb_removal_delay_offset,
+ IMG_UINT8 ui8VclHrdBpPresentFlag,
+ IMG_UINT8 ui8vcl_cpb_cnt_minus1,
+ IMG_UINT32 ui32vcl_initial_cpb_removal_delay,
+ IMG_UINT32 ui32vcl_initial_cpb_removal_delay_offset)
+{
+ IMG_UINT8 ui8SchedSelIdx;
+ IMG_UINT8 ui8PayloadSizeBits;
+#ifdef SEI_NOT_USE_TOKEN_ALIGN
+ IMG_UINT8 ui8Pad;
+#endif
+ // Essential we insert the element before we try to fill it!
+ pnw__insert_element_token(pMTX_Header,
+ aui32ElementPointers,
+ ELEMENT_STARTCODE_RAWDATA);
+
+ pnw__H264_writebits_startcode_prefix_element(pMTX_Header,
+ aui32ElementPointers,
+ 3); // 00 00 01 start code prefix
+
+ pnw__write_upto8bits_elements(pMTX_Header,
+ aui32ElementPointers,
+ 6, 8); // nal_unit_type = 06 (SEI Message)
+
+ pnw__write_upto8bits_elements(pMTX_Header,
+ aui32ElementPointers,
+ 0, 8); // SEI payload type (buffering period)
+
+ ui8PayloadSizeBits = 1; // seq_parameter_set_id bitsize = 1
+ if (ui8NalHrdBpPresentFlag)
+ ui8PayloadSizeBits += ((ui8nal_cpb_cnt_minus1 + 1)
+ * ui8nal_initial_cpb_removal_delay_length * 2);
+ if (ui8VclHrdBpPresentFlag)
+ ui8PayloadSizeBits += ((ui8vcl_cpb_cnt_minus1 + 1)
+ * ui8nal_initial_cpb_removal_delay_length * 2);
+
+ pnw__write_upto8bits_elements(pMTX_Header,
+ aui32ElementPointers,
+ ((ui8PayloadSizeBits + 7) / 8),
+ 8);
+ // SEI payload size = No of bytes required for SEI payload
+ // (including seq_parameter_set_id)
+
+ //seq_parameter_set_id ue(v) = 0 default? = 1 (binary)
+ //= sequence parameter set containing HRD attributes
+ pnw__generate_ue(pMTX_Header, aui32ElementPointers, 0);
+
+ if (ui8NalHrdBpPresentFlag) {
+ for (ui8SchedSelIdx = 0; ui8SchedSelIdx <= ui8nal_cpb_cnt_minus1; ui8SchedSelIdx++) {
+ // ui32nal_initial_cpb_removal_delay = delay between time of arrival in CODED PICTURE BUFFER of coded data of this access
+ // unit and time of removal from CODED PICTURE BUFFER of the coded data of the same access unit.
+ // Delay is based on the time taken for a 90 kHz clock.
+ // Range >0 and < 90000 * (CPBsize / BitRate)
+ // For the 1st buffering period after HARDWARE REFERENCE DECODER initialisation.
+ // pnw__insert_element_token(pMTX_Header, aui32ElementPointers, ELEMENT_NAL_INIT_CPB_REMOVAL_DELAY); // Eventually use this if firmware value required
+
+ //pnw__write_upto32bits_elements(pMTX_Header, aui32ElementPointers, ui32nal_initial_cpb_removal_delay, ui8nal_initial_cpb_removal_delay_length);
+ pnw__insert_element_token(pMTX_Header,
+ aui32ElementPointers,
+ BPH_SEI_NAL_INITIAL_CPB_REMOVAL_DELAY);
+
+ // ui32nal_initial_cpb_removal_delay_offset = used for the SchedSelIdx-th CPB in combination with the cpb_removal_delay to
+ // specify the initial delivery time of coded access units to the CODED PICTURE BUFFER initial_cpb_removal_delay_offset
+ // Delay is based on the time taken for a 90 kHz clock.
+ // NOT USED BY DECODERS and is needed only for the delivery scheduler (HSS) specified in Annex C
+
+ pnw__insert_element_token(pMTX_Header,
+ aui32ElementPointers,
+ BPH_SEI_NAL_INITIAL_CPB_REMOVAL_DELAY_OFFSET);
+ }
+ }
+ if (ui8VclHrdBpPresentFlag) {
+ for (ui8SchedSelIdx = 0; ui8SchedSelIdx <= ui8vcl_cpb_cnt_minus1; ui8SchedSelIdx++) {
+ pnw__insert_element_token(pMTX_Header,
+ aui32ElementPointers,
+ ELEMENT_STARTCODE_RAWDATA);
+ // pnw__insert_element_token(pMTX_Header, aui32ElementPointers, ELEMENT_VCL_INIT_CPB_REMOVAL_DELAY); // Eventually use this if firmware value required
+ pnw__write_upto32bits_elements(pMTX_Header,
+ aui32ElementPointers,
+ ui32vcl_initial_cpb_removal_delay,
+ ui8nal_initial_cpb_removal_delay_length);
+ // pnw__insert_element_token(pMTX_Header, aui32ElementPointers, ELEMENT_VCL_INIT_CPB_REMOVAL_DELAY_CPB); // Eventually use this if firmware value required
+ pnw__write_upto32bits_elements(pMTX_Header,
+ aui32ElementPointers,
+ ui32vcl_initial_cpb_removal_delay_offset,
+ ui8nal_initial_cpb_removal_delay_length);
+ }
+ }
+
+ // Pad to end of byte
+#ifdef SEI_NOT_USE_TOKEN_ALIGN
+ if (!ui8VclHrdBpPresentFlag)
+ pnw__insert_element_token(pMTX_Header,
+ aui32ElementPointers,
+ ELEMENT_STARTCODE_RAWDATA);
+ ui8Pad = (ui8PayloadSizeBits + 7) / 8;
+ ui8Pad = (ui8Pad * 8) - ui8PayloadSizeBits;
+ if (ui8Pad > 0)
+ pnw__write_upto8bits_elements(pMTX_Header,
+ aui32ElementPointers,
+ 1 << (ui8Pad - 1),
+ ui8Pad); // SEI payload type (buffering period)
+#else
+ pnw__insert_element_token(pMTX_Header,
+ aui32ElementPointers,
+ ELEMENT_INSERTBYTEALIGN_H264);
+ // Tell MTX to insert the byte align field
+ pnw__insert_element_token(pMTX_Header,
+ aui32ElementPointers,
+ ELEMENT_STARTCODE_RAWDATA);
+#endif
+
+ // Write terminator
+ pnw__write_upto8bits_elements(pMTX_Header, aui32ElementPointers, 0x80, 8);
+
+ return;
+}
+
+
+static void pnw__H264_writebits_SEI_picture_timing_header(
+ MTX_HEADER_PARAMS *pMTX_Header, MTX_HEADER_ELEMENT **aui32ElementPointers,
+ IMG_UINT8 ui8CpbDpbDelaysPresentFlag,
+ IMG_UINT32 ui32cpb_removal_delay_length_minus1,
+ IMG_UINT32 ui32dpb_output_delay_length_minus1,
+ IMG_UINT32 ui32cpb_removal_delay,
+ IMG_UINT32 ui32dpb_output_delay,
+ IMG_UINT8 ui8pic_struct_present_flag,
+ IMG_UINT8 ui8pic_struct,
+ IMG_UINT8 ui8NumClockTS,
+ IMG_UINT8 *aui8clock_timestamp_flag,
+ IMG_UINT8 ui8full_timestamp_flag,
+ IMG_UINT8 ui8seconds_flag,
+ IMG_UINT8 ui8minutes_flag,
+ IMG_UINT8 ui8hours_flag,
+ IMG_UINT8 ui8seconds_value,
+ IMG_UINT8 ui8minutes_value,
+ IMG_UINT8 ui8hours_value,
+ IMG_UINT8 ui8ct_type,
+ IMG_UINT8 ui8nuit_field_based_flag,
+ IMG_UINT8 ui8counting_type,
+ IMG_UINT8 ui8discontinuity_flag,
+ IMG_UINT8 ui8cnt_dropped_flag,
+ IMG_UINT8 ui8n_frames,
+ IMG_UINT8 ui8time_offset_length,
+ IMG_UINT32 i32time_offset)
+{
+ IMG_UINT8 ui8PayloadSizeBits, ui8Tmp;
+#ifdef SEI_NOT_USE_TOKEN_ALIGN
+ IMG_UINT8 ui8Pad;
+#endif
+
+ // Essential we insert the element before we try to fill it!
+ pnw__insert_element_token(pMTX_Header,
+ aui32ElementPointers,
+ ELEMENT_STARTCODE_RAWDATA);
+
+ pnw__H264_writebits_startcode_prefix_element(pMTX_Header,
+ aui32ElementPointers,
+ 3); // 00 00 01 start code prefix
+
+ pnw__write_upto8bits_elements(pMTX_Header,
+ aui32ElementPointers,
+ 6, 8); // nal_unit_type = 06 (SEI Message)
+
+ pnw__write_upto8bits_elements(pMTX_Header,
+ aui32ElementPointers,
+ 1, 8); // SEI payload type (picture timing)
+
+
+ // Precalculate the payload bit size
+ ui8PayloadSizeBits = 0;
+ if (ui8CpbDpbDelaysPresentFlag)
+ ui8PayloadSizeBits += ui32cpb_removal_delay_length_minus1
+ + 1 + ui32dpb_output_delay_length_minus1 + 1;
+
+ if (ui8pic_struct_present_flag) {
+ ui8PayloadSizeBits += 4;
+ for (ui8Tmp = 0; ui8Tmp < ui8NumClockTS ; ui8Tmp++) {
+ ui8PayloadSizeBits += 1;
+
+ if (aui8clock_timestamp_flag[ui8Tmp]) {
+ ui8PayloadSizeBits += 2 + 1 + 5 + 1 + 1 + 1 + 8;
+ if (ui8full_timestamp_flag)
+ ui8PayloadSizeBits += 6 + 6 + 5;
+ else {
+ ui8PayloadSizeBits += 1;
+ if (ui8seconds_flag) {
+ ui8PayloadSizeBits += 6 + 1;
+ if (ui8minutes_flag) {
+ ui8PayloadSizeBits += 6 + 1;
+ if (ui8hours_flag)
+ ui8PayloadSizeBits += 5;
+ }
+ }
+ }
+
+ if (ui8time_offset_length > 0)
+ ui8PayloadSizeBits += ui8time_offset_length;
+ }
+ }
+ }
+
+ pnw__write_upto8bits_elements(pMTX_Header,
+ aui32ElementPointers,
+ ((ui8PayloadSizeBits + 7) / 8), 8);
+ // SEI payload size = No of bytes required for SEI payload (including seq_parameter_set_id)
+
+
+ if (ui8CpbDpbDelaysPresentFlag) {
+ //SEI_INSERTION
+#ifdef SEI_HOSTCALC_CPB_DPB
+ pnw__write_upto32bits_elements(pMTX_Header,
+ aui32ElementPointers,
+ ui32cpb_removal_delay,
+ ui32cpb_removal_delay_length_minus1 + 1); // cpb_removal_delay
+ pnw__write_upto32bits_elements(pMTX_Header,
+ aui32ElementPointers,
+ ui32dpb_output_delay,
+ ui32dpb_output_delay_length_minus1 + 1); // dpb_output_delay
+#else
+ pnw__insert_element_token(pMTX_Header,
+ aui32ElementPointers,
+ PTH_SEI_NAL_CPB_REMOVAL_DELAY);
+ pnw__insert_element_token(pMTX_Header,
+ aui32ElementPointers,
+ PTH_SEI_NAL_DPB_OUTPUT_DELAY);
+#endif
+ }
+
+ if (ui8pic_struct_present_flag) {
+ pnw__insert_element_token(pMTX_Header,
+ aui32ElementPointers,
+ ELEMENT_STARTCODE_RAWDATA);
+ pnw__write_upto8bits_elements(pMTX_Header,
+ aui32ElementPointers,
+ ui8pic_struct, 4); // See TRM able D 1 – Interpretation of pic_struct
+
+ for (ui8Tmp = 0; ui8Tmp < ui8NumClockTS ; ui8Tmp++) {
+ pnw__write_upto8bits_elements(pMTX_Header,
+ aui32ElementPointers,
+ aui8clock_timestamp_flag[ui8Tmp], 1);
+
+ if (aui8clock_timestamp_flag[ui8Tmp]) {
+ pnw__write_upto8bits_elements(pMTX_Header,
+ aui32ElementPointers,
+ ui8ct_type, 2);
+ // (2=Unknown) See TRM Table D 2 – Mapping of ct_type to source picture scan
+ pnw__write_upto8bits_elements(pMTX_Header,
+ aui32ElementPointers,
+ ui8nuit_field_based_flag, 1);
+ pnw__write_upto8bits_elements(pMTX_Header,
+ aui32ElementPointers,
+ ui8counting_type, 5);
+ // See TRM Table D 3 – Definition of counting_type values
+ pnw__write_upto8bits_elements(pMTX_Header,
+ aui32ElementPointers,
+ ui8full_timestamp_flag, 1);
+ pnw__write_upto8bits_elements(pMTX_Header,
+ aui32ElementPointers,
+ ui8discontinuity_flag, 1);
+ pnw__write_upto8bits_elements(pMTX_Header,
+ aui32ElementPointers,
+ ui8cnt_dropped_flag, 1);
+ pnw__write_upto8bits_elements(pMTX_Header,
+ aui32ElementPointers,
+ ui8n_frames, 8);
+
+ if (ui8full_timestamp_flag) {
+ pnw__write_upto8bits_elements(pMTX_Header,
+ aui32ElementPointers,
+ ui8seconds_value, 6); // 0 - 59
+ pnw__write_upto8bits_elements(pMTX_Header,
+ aui32ElementPointers,
+ ui8minutes_value, 6); // 0 - 59
+ pnw__write_upto8bits_elements(pMTX_Header,
+ aui32ElementPointers,
+ ui8hours_value, 5); // 0 - 23
+ } else {
+ pnw__write_upto8bits_elements(pMTX_Header,
+ aui32ElementPointers,
+ ui8seconds_flag, 1);
+
+ if (ui8seconds_flag) {
+ pnw__write_upto8bits_elements(pMTX_Header,
+ aui32ElementPointers,
+ ui8seconds_value, 6); // 0 - 59
+ pnw__write_upto8bits_elements(pMTX_Header,
+ aui32ElementPointers,
+ ui8minutes_flag, 1);
+
+ if (ui8minutes_flag) {
+ pnw__write_upto8bits_elements(pMTX_Header,
+ aui32ElementPointers,
+ ui8minutes_value, 6); // 0 - 59
+ pnw__write_upto8bits_elements(pMTX_Header,
+ aui32ElementPointers,
+ ui8hours_flag, 1);
+
+ if (ui8hours_flag)
+ pnw__write_upto8bits_elements(pMTX_Header,
+ aui32ElementPointers,
+ ui8hours_value, 5); // 0 - 23
+ }
+ }
+ }
+
+ if (ui8time_offset_length > 0) {
+ // Two's complement storage : If time_offset<0 = ((2 ^ v) + time_offset)
+ if (i32time_offset < 0)
+ pnw__write_upto32bits_elements(pMTX_Header,
+ aui32ElementPointers,
+ (IMG_UINT32)((2 ^ ui8time_offset_length) + i32time_offset),
+ ui8time_offset_length);
+ else
+ pnw__write_upto32bits_elements(pMTX_Header,
+ aui32ElementPointers,
+ (IMG_UINT32) i32time_offset,
+ ui8time_offset_length);
+ }
+ }
+ }
+ }
+
+#ifdef SEI_NOT_USE_TOKEN_ALIGN
+ // Pad to end of byte
+ if (!ui8pic_struct_present_flag)
+ pnw__insert_element_token(pMTX_Header,
+ aui32ElementPointers,
+ ELEMENT_STARTCODE_RAWDATA);
+ ui8Pad = (ui8PayloadSizeBits + 7) / 8;
+ ui8Pad = (ui8Pad * 8) - ui8PayloadSizeBits;
+ if (ui8Pad > 0)
+ pnw__write_upto8bits_elements(pMTX_Header,
+ aui32ElementPointers,
+ 1 << (ui8Pad - 1),
+ ui8Pad); // SEI payload type (buffering period)
+#else
+ pnw__insert_element_token(pMTX_Header,
+ aui32ElementPointers,
+ ELEMENT_INSERTBYTEALIGN_H264); // Tell MTX to insert the byte align field
+ pnw__insert_element_token(pMTX_Header,
+ aui32ElementPointers,
+ ELEMENT_STARTCODE_RAWDATA);
+#endif
+
+ // Write terminator
+ pnw__write_upto8bits_elements(pMTX_Header,
+ aui32ElementPointers,
+ 0x80, 8);
+ return;
+}
+
+
+
+void pnw__H264_prepare_AUD_header(MTX_HEADER_PARAMS * pMTX_Header)
+{
+ // Essential we initialise our header structures before building
+ MTX_HEADER_ELEMENT *This_Element;
+ MTX_HEADER_ELEMENT *aui32ElementPointers[MAXNUMBERELEMENTS];
+ pMTX_Header->Elements = ELEMENTS_EMPTY;
+ This_Element = (MTX_HEADER_ELEMENT *) pMTX_Header->asElementStream;
+ aui32ElementPointers[0] = This_Element;
+
+ pnw__H264_writebits_AUD_header(pMTX_Header, aui32ElementPointers);
+
+ pMTX_Header->Elements++; //Has been used as an index, so need to add 1 for a valid element count
+}
+
+
+void pnw__H264_prepare_SEI_buffering_period_header(
+ MTX_HEADER_PARAMS * pMTX_Header,
+ IMG_UINT8 ui8NalHrdBpPresentFlag,
+ IMG_UINT8 ui8nal_cpb_cnt_minus1,
+ IMG_UINT8 ui8nal_initial_cpb_removal_delay_length,
+ IMG_UINT32 ui32nal_initial_cpb_removal_delay,
+ IMG_UINT32 ui32nal_initial_cpb_removal_delay_offset,
+ IMG_UINT8 ui8VclHrdBpPresentFlag,
+ IMG_UINT8 ui8vcl_cpb_cnt_minus1,
+ IMG_UINT32 ui32vcl_initial_cpb_removal_delay,
+ IMG_UINT32 ui32vcl_initial_cpb_removal_delay_offset)
+{
+ // Essential we initialise our header structures before building
+ MTX_HEADER_ELEMENT *This_Element;
+ MTX_HEADER_ELEMENT *aui32ElementPointers[MAXNUMBERELEMENTS];
+ pMTX_Header->Elements = ELEMENTS_EMPTY;
+ This_Element = (MTX_HEADER_ELEMENT *) pMTX_Header->asElementStream;
+ aui32ElementPointers[0] = This_Element;
+
+ pnw__H264_writebits_SEI_buffering_period_header(
+ pMTX_Header, aui32ElementPointers,
+ ui8NalHrdBpPresentFlag,
+ ui8nal_cpb_cnt_minus1,
+ ui8nal_initial_cpb_removal_delay_length,
+ ui32nal_initial_cpb_removal_delay,
+ ui32nal_initial_cpb_removal_delay_offset,
+ ui8VclHrdBpPresentFlag,
+ ui8vcl_cpb_cnt_minus1,
+ ui32vcl_initial_cpb_removal_delay,
+ ui32vcl_initial_cpb_removal_delay_offset);
+
+ pMTX_Header->Elements++;
+ //Has been used as an index, so need to add 1 for a valid element count
+ return;
+}
+
+void pnw__H264_prepare_SEI_picture_timing_header(
+ MTX_HEADER_PARAMS * pMTX_Header,
+ IMG_UINT8 ui8CpbDpbDelaysPresentFlag,
+ IMG_UINT32 ui32cpb_removal_delay_length_minus1,
+ IMG_UINT32 ui32dpb_output_delay_length_minus1,
+ IMG_UINT32 ui32cpb_removal_delay,
+ IMG_UINT32 ui32dpb_output_delay,
+ IMG_UINT8 ui8pic_struct_present_flag,
+ IMG_UINT8 ui8pic_struct,
+ IMG_UINT8 ui8NumClockTS,
+ IMG_UINT8 *aui8clock_timestamp_flag,
+ IMG_UINT8 ui8full_timestamp_flag,
+ IMG_UINT8 ui8seconds_flag,
+ IMG_UINT8 ui8minutes_flag,
+ IMG_UINT8 ui8hours_flag,
+ IMG_UINT8 ui8seconds_value,
+ IMG_UINT8 ui8minutes_value,
+ IMG_UINT8 ui8hours_value,
+ IMG_UINT8 ui8ct_type,
+ IMG_UINT8 ui8nuit_field_based_flag,
+ IMG_UINT8 ui8counting_type,
+ IMG_UINT8 ui8discontinuity_flag,
+ IMG_UINT8 ui8cnt_dropped_flag,
+ IMG_UINT8 ui8n_frames,
+ IMG_UINT8 ui8time_offset_length,
+ IMG_INT32 i32time_offset)
+{
+ // Essential we initialise our header structures before building
+ MTX_HEADER_ELEMENT *This_Element;
+ MTX_HEADER_ELEMENT *aui32ElementPointers[MAXNUMBERELEMENTS];
+ pMTX_Header->Elements = ELEMENTS_EMPTY;
+ This_Element = (MTX_HEADER_ELEMENT *) pMTX_Header->asElementStream;
+ aui32ElementPointers[0] = This_Element;
+
+ pnw__H264_writebits_SEI_picture_timing_header(
+ pMTX_Header, aui32ElementPointers,
+ ui8CpbDpbDelaysPresentFlag,
+ ui32cpb_removal_delay_length_minus1,
+ ui32dpb_output_delay_length_minus1,
+ ui32cpb_removal_delay,
+ ui32dpb_output_delay,
+ ui8pic_struct_present_flag,
+ ui8pic_struct,
+ ui8NumClockTS,
+ aui8clock_timestamp_flag,
+ ui8full_timestamp_flag,
+ ui8seconds_flag,
+ ui8minutes_flag,
+ ui8hours_flag,
+ ui8seconds_value,
+ ui8minutes_value,
+ ui8hours_value,
+ ui8ct_type,
+ ui8nuit_field_based_flag,
+ ui8counting_type,
+ ui8discontinuity_flag,
+ ui8cnt_dropped_flag,
+ ui8n_frames,
+ ui8time_offset_length,
+ i32time_offset);
+
+ pMTX_Header->Elements++;
+ //Has been used as an index, so need to add 1 for a valid element count
+ return;
+}
+
+
+
+
+void pnw__H264_prepare_sequence_header(
+ IMG_UINT32 *pHeaderMemory,
+ IMG_UINT32 uiPicWidthInMbs,
+ IMG_UINT32 uiPicHeightInMbs,
+ IMG_BOOL VUI_present, H264_VUI_PARAMS *VUI_params,
+ H264_CROP_PARAMS *psCropParams,
+ IMG_UINT8 uiLevel,
+ IMG_UINT8 uiProfile)
+{
+ H264_SEQUENCE_HEADER_PARAMS SHParams = {0, };
+ MTX_HEADER_PARAMS *mtx_hdr;
+
+ /* Route output elements to memory provided */
+ mtx_hdr = (MTX_HEADER_PARAMS *) pHeaderMemory;
+
+ /* Setup Sequence Header information */
+
+
+ switch (uiProfile) {
+ case 5:
+ SHParams.ucProfile = SH_PROFILE_BP;
+ break;
+ case 6:
+ SHParams.ucProfile = SH_PROFILE_MP;
+ break;
+ default:
+ SHParams.ucProfile = SH_PROFILE_MP;
+ break;
+ }
+
+ switch (uiLevel) {
+ case 10:
+ SHParams.ucLevel = SH_LEVEL_1;
+ break;
+ case 111:
+ SHParams.ucLevel = SH_LEVEL_1B;
+ break;
+ case 11:
+ SHParams.ucLevel = SH_LEVEL_11;
+ break;
+ case 12:
+ SHParams.ucLevel = SH_LEVEL_12;
+ break;
+ case 20:
+ SHParams.ucLevel = SH_LEVEL_2;
+ break;
+ case 30:
+ SHParams.ucLevel = SH_LEVEL_3;
+ break;
+ case 31:
+ SHParams.ucLevel = SH_LEVEL_31;
+ break;
+ case 40:
+ SHParams.ucLevel = SH_LEVEL_4;
+ break;
+ case 41:
+ SHParams.ucLevel = SH_LEVEL_41;
+ break;
+ default:
+ SHParams.ucLevel = SH_LEVEL_3;
+ break;
+ }
+
+ SHParams.ucWidth_in_mbs_minus1 = (IMG_UINT8)(uiPicWidthInMbs - 1);
+ SHParams.ucHeight_in_maps_units_minus1 = (IMG_UINT8)(uiPicHeightInMbs - 1);
+ SHParams.VUI_Params_Present = VUI_present;
+ if (VUI_present)
+ SHParams.VUI_Params = *VUI_params;
+ SHParams.gaps_in_frame_num_value = IMG_FALSE;
+ SHParams.ucFrame_mbs_only_flag = IMG_TRUE;
+
+ /* All picture header information is static
+ * (apart from 'pic_init_qp_minus26' and 'rsbp_byte_align' fields, which are set in MTX anyway)
+ */
+
+ /* Clears ensures elementstream memory is zeroed.. not necessary, but makes it easier to debug
+ * for (Lp=0;Lp<MAX_HEADERSIZEWORDS-1;Lp++) MTX_Header.asElementStream[Lp]=0;
+ */
+
+#if HEADERS_VERBOSE_OUTPUT
+ psb__information_message("\n\n**********************************************************************\n");
+ psb__information_message("******** HOST FIRMWARE ROUTINES TO PASS HEADERS AND TOKENS TO MTX******\n");
+ psb__information_message("**********************************************************************\n\n");
+#endif
+
+ /* Functions that actually pack Elements (MTX_HEADER_PARAMS structure) with header information */
+ pnw__H264_getelements_sequence_header(mtx_hdr, &SHParams, psCropParams);
+}
+
+void pnw__H264_prepare_picture_header(IMG_UINT32 *pHeaderMemory, IMG_BOOL bCabacEnabled, IMG_INT8 CQPOffset)
+{
+ MTX_HEADER_PARAMS *mtx_hdr;
+
+ /* Route output elements to memory provided */
+ mtx_hdr = (MTX_HEADER_PARAMS *) pHeaderMemory;
+
+
+ /* Builds a sequence, picture and slice header with from the given inputs parameters (start of new frame)
+ * Essential we initialise our header structures before building
+ */
+ MTX_HEADER_ELEMENT *This_Element;
+ MTX_HEADER_ELEMENT *elt_p[MAXNUMBERELEMENTS];
+ mtx_hdr->Elements = ELEMENTS_EMPTY;
+ This_Element = (MTX_HEADER_ELEMENT *) mtx_hdr->asElementStream;
+ elt_p[0] = This_Element;
+
+ pnw__H264_writebits_picture_header(mtx_hdr, elt_p, bCabacEnabled,
+ 0, 0,
+ CQPOffset, CQPOffset);
+ mtx_hdr->Elements++; /* Has been used as an index, so need to add 1 for a valid element count */
+}
+
+void pnw__H264_prepare_slice_header(
+ IMG_UINT32 *pHeaderMemory,
+ IMG_BOOL bIntraSlice,
+ IMG_UINT32 uiDisableDeblockingFilterIDC,
+ IMG_UINT32 uiFrameNumber,
+ IMG_UINT32 uiFirst_MB_Address,
+ IMG_UINT32 uiMBSkipRun,
+ IMG_BOOL bCabacEnabled,
+ IMG_BOOL bForceIDR,
+ IMG_BOOL bUsesLongTermRef,
+ IMG_BOOL bIsLongTermRef,
+ IMG_UINT16 uiIdrPicId)
+{
+ H264_SLICE_HEADER_PARAMS SlHParams = {0};
+ MTX_HEADER_PARAMS *mtx_hdr;
+
+ /* Route output elements to memory provided */
+ mtx_hdr = (MTX_HEADER_PARAMS *) pHeaderMemory;
+
+ SlHParams.Start_Code_Prefix_Size_Bytes = 4;
+ SlHParams.UsesLongTermRef = bUsesLongTermRef;
+ SlHParams.IsLongTermRef = bIsLongTermRef;
+
+ if (bForceIDR || (uiFrameNumber == 0)) {
+ psb__information_message("TOPAZ: Generate a IDR slice\n");
+ SlHParams.SliceFrame_Type = SLHP_IDR_SLICEFRAME_TYPE;
+ } else
+ SlHParams.SliceFrame_Type = bIntraSlice ? SLHP_I_SLICEFRAME_TYPE : SLHP_P_SLICEFRAME_TYPE;
+
+ /*SlHParams.SliceFrame_Type = bIntraSlice ? (((uiFrameNumber%(1<<5))==0) ? SLHP_IDR_SLICEFRAME_TYPE :SLHP_I_SLICEFRAME_TYPE ) : SLHP_P_SLICEFRAME_TYPE;*/
+ SlHParams.Frame_Num_DO = (IMG_UINT8) uiFrameNumber % (1 << 5);
+ SlHParams.Picture_Num_DO = (IMG_UINT8)(SlHParams.Frame_Num_DO * 2);
+
+
+ SlHParams.First_MB_Address = uiFirst_MB_Address;
+ SlHParams.Disable_Deblocking_Filter_Idc = (IMG_UINT8) uiDisableDeblockingFilterIDC;
+
+ {
+ IMG_UINT32 *pMTX_Header_Mem = (IMG_UINT32 *)mtx_hdr;
+ // rhk: first insert normal header.
+ pnw__H264_getelements_slice_header(mtx_hdr, &SlHParams, bCabacEnabled, uiIdrPicId);
+
+ // put a marker to indicate that this is a complex header
+ // note that first "int" in the buffer is used for number of elements
+ // which is not going to be more than 255
+ *pMTX_Header_Mem |= 0x100;
+
+ // rhk: insert skipped frame header at an offset of 128 bytes
+ pMTX_Header_Mem += (HEADER_SIZE >> 3); // get a pointer to the second half of memory
+ mtx_hdr = (MTX_HEADER_PARAMS *)pMTX_Header_Mem;
+ pnw__H264_getelements_skip_P_slice(mtx_hdr, &SlHParams, uiMBSkipRun, bCabacEnabled);
+ }
+
+}
+
+//void pnw__H264_prepare_eodofstream_header(IMG_UINT32 *pHeaderMemory)
+//{
+//MTX_HEADER_PARAMS *mtx_hdr;
+//
+///* Route output elements to memory provided */
+//mtx_hdr = (MTX_HEADER_PARAMS *) pHeaderMemory;
+//
+//pnw__H264_getelements_endofstream_header(mtx_hdr);
+//}
+
+//void pnw__H264_prepare_endofpicture_header(IMG_UINT32 *pHeaderMemory)
+//{
+//MTX_HEADER_PARAMS *mtx_hdr;
+//
+///* Route output elements to memory provided */
+//mtx_hdr = (MTX_HEADER_PARAMS *) pHeaderMemory;
+//
+///* H264_GetElements_EndOfPicture_Header(MTX_Header); */
+//}
+
+//void pnw__H264_prepare_endofsequence_header(IMG_UINT32 *pHeaderMemory)
+//{
+//MTX_HEADER_PARAMS *mtx_hdr;
+//
+///* Route output elements to memory provided */
+//mtx_hdr = (MTX_HEADER_PARAMS *) pHeaderMemory;
+//
+//pnw__H264_getelements_endofsequence_header(mtx_hdr);
+//}
+
+void pnw__MPEG4_prepare_sequence_header(
+ IMG_UINT32 *pHeaderMemory,
+ IMG_BOOL bBFrame,
+ MPEG4_PROFILE_TYPE sProfile,
+ IMG_UINT8 Profile_and_level_indication,
+ FIXED_VOP_TIME_TYPE sFixed_vop_time_increment,
+ IMG_UINT32 Picture_Width_Pixels,
+ IMG_UINT32 Picture_Height_Pixels,
+ VBVPARAMS * psVBVParams,
+ IMG_UINT32 VopTimeResolution)
+{
+ MTX_HEADER_PARAMS *mtx_hdr;
+
+ /* Route output elements to memory provided */
+ mtx_hdr = (MTX_HEADER_PARAMS *) pHeaderMemory;
+ /* Builds a single MPEG4 video sequence header from the given parameters */
+
+ /* Essential we initialise our header structures before building */
+ MTX_HEADER_ELEMENT *This_Element;
+ MTX_HEADER_ELEMENT *elt_p[MAXNUMBERELEMENTS];
+ mtx_hdr->Elements = ELEMENTS_EMPTY;
+ This_Element = (MTX_HEADER_ELEMENT *) mtx_hdr->asElementStream;
+ elt_p[0] = This_Element;
+
+ pnw__MPEG4_writebits_sequence_header(
+ mtx_hdr,
+ elt_p,
+ bBFrame, sProfile,
+ Profile_and_level_indication,
+ sFixed_vop_time_increment,
+ Picture_Width_Pixels,
+ Picture_Height_Pixels,
+ psVBVParams, VopTimeResolution);
+
+ mtx_hdr->Elements++; /* Has been used as an index, so need to add 1 for a valid element count */
+
+}
+
+void pnw__MPEG4_prepare_vop_header(
+ IMG_UINT32 *pHeaderMem,
+ IMG_BOOL bIsVOP_coded,
+ IMG_UINT32 VOP_time_increment,
+ IMG_UINT8 sSearch_range,
+ IMG_UINT8 eVop_Coding_Type,
+ IMG_UINT32 VopTimeResolution)
+{
+ MTX_HEADER_PARAMS *mtx_hdr;
+
+ mtx_hdr = (MTX_HEADER_PARAMS *) pHeaderMem;
+
+ /* Builds a single MPEG4 VOP (picture) header from the given parameters */
+ /* Essential we initialise our header structures before building */
+ MTX_HEADER_ELEMENT *This_Element;
+ MTX_HEADER_ELEMENT *elt_p[MAXNUMBERELEMENTS];
+ mtx_hdr->Elements = ELEMENTS_EMPTY;
+ This_Element = (MTX_HEADER_ELEMENT *) mtx_hdr->asElementStream;
+ elt_p[0] = This_Element;
+
+ /* Frame QScale no longer written here as it is inserted by MTX later
+ * (add as parameter to MTX_Send_Elements_To_VLC)
+ */
+ pnw__MPEG4_writebits_VOP_header(
+ mtx_hdr, elt_p, bIsVOP_coded,
+ VOP_time_increment,
+ sSearch_range,
+ eVop_Coding_Type,
+ VopTimeResolution);
+
+ mtx_hdr->Elements++; /* Has been used as an index, so need to add 1 for a valid element count */
+
+}
+
+void pnw__H263_prepare_sequence_header(
+ IMG_UINT32 *pHeaderMem,
+ IMG_UINT8 Profile_and_level_indication)
+{
+ MTX_HEADER_PARAMS *mtx_hdr;
+
+ mtx_hdr = (MTX_HEADER_PARAMS *) pHeaderMem;
+
+ /* Builds a single H263 video sequence header from the given parameters */
+
+ /* Essential we initialise our header structures before building */
+ MTX_HEADER_ELEMENT *This_Element;
+ MTX_HEADER_ELEMENT *elt_p[MAXNUMBERELEMENTS];
+ mtx_hdr->Elements = ELEMENTS_EMPTY;
+ This_Element = (MTX_HEADER_ELEMENT *) mtx_hdr->asElementStream;
+ elt_p[0] = This_Element;
+
+ H263_writebits_VideoSequenceHeader(mtx_hdr, elt_p, Profile_and_level_indication);
+
+ mtx_hdr->Elements++; /* Has been used as an index, so need to add 1 for a valid element count */
+
+}
+
+void pnw__H263_prepare_picture_header(
+ IMG_UINT32 *pHeaderMem,
+ IMG_UINT8 Temporal_Ref,
+ H263_PICTURE_CODING_TYPE PictureCodingType,
+ H263_SOURCE_FORMAT_TYPE SourceFormatType,
+ IMG_UINT8 FrameRate,
+ IMG_UINT16 PictureWidth,
+ IMG_UINT16 PictureHeigth)
+{
+ MTX_HEADER_PARAMS *mtx_hdr;
+
+ mtx_hdr = (MTX_HEADER_PARAMS *) pHeaderMem;
+
+ /* Essential we initialise our header structures before building */
+ MTX_HEADER_ELEMENT *This_Element;
+ MTX_HEADER_ELEMENT *elt_p[MAXNUMBERELEMENTS];
+ mtx_hdr->Elements = ELEMENTS_EMPTY;
+ This_Element = (MTX_HEADER_ELEMENT *) mtx_hdr->asElementStream;
+ elt_p[0] = This_Element;
+
+ H263_writebits_VideoPictureHeader(
+ mtx_hdr, elt_p,
+ Temporal_Ref,
+ PictureCodingType,
+ SourceFormatType,
+ FrameRate,
+ PictureWidth,
+ PictureHeigth);
+
+ mtx_hdr->Elements++; /* Has been used as an index, so need to add 1 for a valid element count */
+}
+
+void pnw__H263_prepare_GOBslice_header(
+ IMG_UINT32 *pHeaderMem,
+ IMG_UINT8 GOBNumber,
+ IMG_UINT8 GOBFrameId)
+{
+ MTX_HEADER_PARAMS *mtx_hdr;
+
+ mtx_hdr = (MTX_HEADER_PARAMS *) pHeaderMem;
+
+ /* Essential we initialise our header structures before building */
+ MTX_HEADER_ELEMENT *This_Element;
+ MTX_HEADER_ELEMENT *elt_p[MAXNUMBERELEMENTS];
+ mtx_hdr->Elements = ELEMENTS_EMPTY;
+ This_Element = (MTX_HEADER_ELEMENT *) mtx_hdr->asElementStream;
+ elt_p[0] = This_Element;
+
+ H263_writebits_GOBSliceHeader(mtx_hdr, elt_p, GOBNumber, GOBFrameId);
+
+ mtx_hdr->Elements++; //Has been used as an index, so need to add 1 for a valid element count
+
+ /* silent the warning message */
+ (void)Show_Bits;
+ (void)Show_Elements;
+ /*
+ (void)pnw__H264_writebits_SEI_rbspheader;
+ (void)pnw__H264_getelements_skip_B_slice;
+ (void)pnw__H264_getelements_backward_zero_B_slice;
+ (void)pnw__H264_getelements_rbsp_ATE_only;
+ (void)pnw_MPEG4_getelements_video_packet_header;
+ */
+}
+
diff --git a/src/pnw_hostheader.h b/src/pnw_hostheader.h
new file mode 100644
index 0000000..72c3f52
--- /dev/null
+++ b/src/pnw_hostheader.h
@@ -0,0 +1,301 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ * Elaine Wang <elaine.wang@intel.com>
+ * Zeng Li <zeng.li@intel.com>
+ *
+ */
+
+/*
+ * Description DMA code for mtx Platform : Generic
+ */
+
+#ifndef _PNW_HOSTHEADER_H_
+#define _PNW_HOSTHEADER_H_
+
+
+#include "img_types.h"
+
+/* Structure contains QP parameters, used with the DoHeader() routine */
+typedef struct {
+ IMG_UINT32 H264_QP;
+ IMG_UINT32 H263_MPG4_FrameQ_scale;
+ IMG_UINT32 H263_MPG4_SliceQ_scale;
+} MTX_QP_INFO;
+
+/* #include "topaz_vlc_regs.h" */
+
+/* Allocating 32 words (128 bytes aligned to 8 bytes) */
+#define MAX_HEADERSIZEWORDS (32)
+
+typedef enum {
+ ELEMENT_STARTCODE_RAWDATA = 0,/* Rawdata that includes a start code */
+ ELEMENT_RAWDATA, /* Rawdata */
+ ELEMENT_QP, /* Insert the H264 Picture Header QP parameter (no rawdata) */
+ ELEMENT_SQP, /* Insert the H264 Slice Header QP parameter (no rawdata) */
+ ELEMENT_FRAMEQSCALE, /* Insert the H263/MPEG4 Frame Q_scale parameter (vob_quant field) (no rawdata) */
+ ELEMENT_SLICEQSCALE, /* Insert the H263/MPEG4 Slice Q_scale parameter (quant_scale field) (no rawdata) */
+ ELEMENT_INSERTBYTEALIGN_H264,/* Insert the byte align field (no rawdata) */
+ ELEMENT_INSERTBYTEALIGN_MPG4, /* Insert the byte align field (no rawdata) */
+
+ /*SEI_INSERTION*/
+ BPH_SEI_NAL_INITIAL_CPB_REMOVAL_DELAY,
+ BPH_SEI_NAL_INITIAL_CPB_REMOVAL_DELAY_OFFSET,
+ PTH_SEI_NAL_CPB_REMOVAL_DELAY,
+ PTH_SEI_NAL_DPB_OUTPUT_DELAY
+} HEADER_ELEMENT_TYPE;
+
+
+typedef struct _MTX_HEADER_ELEMENT_ {
+ HEADER_ELEMENT_TYPE Element_Type;
+ IMG_UINT8 Size;
+ IMG_UINT8 Bits;
+} MTX_HEADER_ELEMENT;
+
+
+typedef struct _MTX_HEADER_PARAMS_ {
+ IMG_UINT32 Elements;
+ MTX_HEADER_ELEMENT asElementStream[MAX_HEADERSIZEWORDS-1];
+} MTX_HEADER_PARAMS;
+
+#define ELEMENTS_EMPTY 9999
+
+/* H264 Structures
+ */
+
+/* Define some constants for the variable elements in the header stream */
+typedef enum _SHPROFILES {
+ SH_PROFILE_BP = 0,
+ SH_PROFILE_MP = 1,
+ SH_PROFILE_HP = 2,
+} SH_PROFILE_TYPE;
+
+/* Level number definitions (integer level numbers, non-intermediary only.. except level 1b) */
+typedef enum _SHLEVELS {
+ SH_LEVEL_1 = 10,
+ SH_LEVEL_1B = 111,
+ SH_LEVEL_11 = 11,
+ SH_LEVEL_12 = 12,
+ SH_LEVEL_13 = 13,
+ SH_LEVEL_2 = 20,
+ SH_LEVEL_21 = 21,
+ SH_LEVEL_22 = 22,
+ SH_LEVEL_3 = 30,
+ SH_LEVEL_31 = 31,
+ SH_LEVEL_32 = 32,
+ SH_LEVEL_4 = 40,
+ SH_LEVEL_41 = 41,
+ SH_LEVEL_42 = 42,
+ SH_LEVEL_5 = 50,
+ SH_LEVEL_51 = 51
+} SH_LEVEL_TYPE;
+
+
+typedef enum _SLHP_SLICEFRAME_TYPE_ {
+ SLHP_P_SLICEFRAME_TYPE,
+ SLHP_B_SLICEFRAME_TYPE,
+ SLHP_I_SLICEFRAME_TYPE,
+ SLHP_SP_SLICEFRAME_TYPE,
+ SLHP_SI_SLICEFRAME_TYPE,
+
+ SLHP_IDR_SLICEFRAME_TYPE
+
+} SLHP_SLICEFRAME_TYPE;
+
+
+/* Input parameters for the header generation
+ * Some of the following data structures may have fields that are actually static..
+ * may want to prune them down a bit later.
+ */
+typedef struct _H264_VUI_PARAMS_STRUC {
+ IMG_UINT32 Time_Scale;
+ IMG_UINT32 bit_rate_value_minus1; /* bitrate/64)-1 */
+ IMG_UINT32 cbp_size_value_minus1; /* (bitrate*1.5)/16 */
+ IMG_UINT8 CBR;
+ IMG_UINT8 initial_cpb_removal_delay_length_minus1;
+ IMG_UINT8 cpb_removal_delay_length_minus1;
+ IMG_UINT8 dpb_output_delay_length_minus1;
+ IMG_UINT8 time_offset_length;
+} H264_VUI_PARAMS;
+
+typedef struct _H264_CROP_PARAMS_STRUCT_ {
+ IMG_BOOL bClip;
+ IMG_UINT16 LeftCropOffset;
+ IMG_UINT16 RightCropOffset;
+ IMG_UINT16 TopCropOffset;
+ IMG_UINT16 BottomCropOffset;
+} H264_CROP_PARAMS;
+
+typedef struct _H264_SEQUENCE_HEADER_PARAMS_STRUC {
+ SH_PROFILE_TYPE ucProfile;
+ SH_LEVEL_TYPE ucLevel;
+ IMG_UINT8 ucWidth_in_mbs_minus1;
+ IMG_UINT8 ucHeight_in_maps_units_minus1;
+ IMG_UINT8 gaps_in_frame_num_value;
+ IMG_UINT8 ucFrame_mbs_only_flag;
+ IMG_UINT8 VUI_Params_Present;
+ H264_VUI_PARAMS VUI_Params;
+} H264_SEQUENCE_HEADER_PARAMS;
+
+
+typedef struct _H264_SLICE_HEADER_PARAMS_STRUC {
+ IMG_UINT8 Start_Code_Prefix_Size_Bytes;
+ SLHP_SLICEFRAME_TYPE SliceFrame_Type;
+ IMG_UINT32 First_MB_Address;
+ IMG_UINT8 Frame_Num_DO;
+ IMG_UINT8 Picture_Num_DO;
+ IMG_BOOL UsesLongTermRef;
+ IMG_BOOL IsLongTermRef;
+ IMG_UINT8 Disable_Deblocking_Filter_Idc;
+ IMG_INT8 iDebAlphaOffsetDiv2;
+ IMG_INT8 iDebBetaOffsetDiv2;
+} H264_SLICE_HEADER_PARAMS;
+
+
+
+/* MPEG4 Structures
+ */
+typedef enum _MPEG4_PROFILE {
+ SP = 1,
+ ASP = 3
+} MPEG4_PROFILE_TYPE;
+
+typedef enum _FIXED_VOP_TIME_ENUM {
+ _30FPS = 1,
+ _15FPS = 2,
+ _10FPS = 3
+} FIXED_VOP_TIME_TYPE;
+
+typedef struct _VBVPARAMS_STRUC {
+ IMG_UINT32 First_half_bit_rate;
+ IMG_UINT32 Latter_half_bit_rate;
+ IMG_UINT32 First_half_vbv_buffer_size;
+ IMG_UINT32 Latter_half_vbv_buffer_size;
+ IMG_UINT32 First_half_vbv_occupancy;
+ IMG_UINT32 Latter_half_vbv_occupancy;
+} VBVPARAMS;
+
+
+/*
+ * H263 Structures
+ */
+
+typedef enum _VOP_CODING_ENUM {
+ I_FRAME = 0,
+ P_FRAME = 1
+} VOP_CODING_TYPE, H263_PICTURE_CODING_TYPE;
+
+typedef enum _SEARCH_RANGE_ENUM {
+ PLUSMINUS_32 = 2,
+ PLUSMINUS_64 = 3,
+ FCODE_EQ_4 = 4
+} SEARCH_RANGE_TYPE;
+
+typedef enum _H263_SOURCE_FORMAT_ENUM {
+ _128x96_SubQCIF = 1,
+ _176x144_QCIF = 2,
+ _352x288_CIF = 3,
+ _704x576_4CIF = 4
+} H263_SOURCE_FORMAT_TYPE;
+
+
+#define SIZEINBITS(a) (sizeof(a)*8)
+
+/* H264 header preparation */
+void pnw__H264_prepare_sequence_header(
+ IMG_UINT32 *pHeaderMemory,
+ IMG_UINT32 uiPicWidthInMbs,
+ IMG_UINT32 uiPicHeightInMbs,
+ IMG_BOOL VUI_present, H264_VUI_PARAMS *VUI_params,
+ H264_CROP_PARAMS *psCropParams,
+ IMG_UINT8 uiLevel,
+ IMG_UINT8 uiProfile);
+
+void pnw__H264_prepare_picture_header(IMG_UINT32 *pHeaderMemory, IMG_BOOL bCabacEnaled, IMG_INT8 CQPOffset);
+
+void pnw__H264_prepare_slice_header(
+ IMG_UINT32 *pHeaderMemory,
+ IMG_BOOL bIntraSlice,
+ IMG_UINT32 uiDisableDeblockingFilterIDC,
+ IMG_UINT32 uiFrameNumber,
+ IMG_UINT32 uiFirst_MB_Address,
+ IMG_UINT32 uiMBSkipRun,
+ IMG_BOOL bCabacEnabled,
+ IMG_BOOL bForceIDR,
+ IMG_BOOL bUsesLongTermRef,
+ IMG_BOOL bIsLOngTermRef,
+ IMG_UINT16 uiIdrPicId);
+
+void pnw__H264_prepare_eodofstream_header(IMG_UINT32 *pHeaderMemory);
+void pnw__H264_prepare_endofpicture_header(IMG_UINT32 *pHeaderMemory);
+void pnw__H264_prepare_endofsequence_header(IMG_UINT32 *pHeaderMemory);
+
+
+/* MPEG4 header preparation */
+void pnw__MPEG4_prepare_sequence_header(
+ IMG_UINT32 *pHeaderMemory,
+ IMG_BOOL bBFrame,
+ MPEG4_PROFILE_TYPE sProfile,
+ IMG_UINT8 Profile_and_level_indication,
+ FIXED_VOP_TIME_TYPE sFixed_vop_time_increment,
+ IMG_UINT32 Picture_Width_Pixels,
+ IMG_UINT32 Picture_Height_Pixels,
+ VBVPARAMS * psVBVParams,
+ IMG_UINT32 VopTimeResolution);
+
+void pnw__MPEG4_prepare_vop_header(
+ IMG_UINT32 *pHeaderMem,
+ IMG_BOOL bIsVOP_coded,
+ IMG_UINT32 VOP_time_increment,
+ IMG_UINT8 sSearch_range,
+ IMG_UINT8 eVop_Coding_Type,
+ IMG_UINT32 VopTimeResolution);
+
+
+/* H263 header preparation */
+void pnw__H263_prepare_sequence_header(
+ IMG_UINT32 *pHeaderMem,
+ IMG_UINT8 Profile_and_level_indication);
+
+void pnw__H263_prepare_picture_header(
+ IMG_UINT32 *pHeaderMem,
+ IMG_UINT8 Temporal_Ref,
+ H263_PICTURE_CODING_TYPE PictureCodingType,
+ H263_SOURCE_FORMAT_TYPE SourceFormatType,
+ IMG_UINT8 FrameRate,
+ IMG_UINT16 PictureWidth,
+ IMG_UINT16 PictureHeigth);
+
+void pnw__H263_prepare_GOBslice_header(
+ IMG_UINT32 *pHeaderMem,
+ IMG_UINT8 GOBNumber,
+ IMG_UINT8 GOBFrameId);
+
+
+#endif /* _PNW_HOSTHEADER_H_ */
+
+
+
+
diff --git a/src/pnw_hostjpeg.c b/src/pnw_hostjpeg.c
new file mode 100644
index 0000000..ac883dd
--- /dev/null
+++ b/src/pnw_hostjpeg.c
@@ -0,0 +1,1785 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ * Elaine Wang <elaine.wang@intel.com>
+ *
+ */
+
+/*#include <string.h>*/
+#include <stdio.h>
+
+#include <pnw_hostcode.h>
+#include <pnw_hostjpeg.h>
+
+#define TRACK_FREE(ptr) free(ptr)
+#define TRACK_MALLOC(ptr) malloc(ptr)
+#define TRACK_DEVICE_MEMORY_INIT
+#define TRACK_DEVICE_MEMORY_SHOW
+#define TIMER_INIT
+#define TIMER_START(...)
+#define TIMER_END(...)
+#define TIMER_CLOSE
+#define TIMER_CAPTURE(...)
+
+
+//#include <stdio.h>
+//#include <memory.h>
+//#include <stdlib.h>
+//#include <stdlib.h>
+//#include "malloc.h"
+//#include "mtxmain.h"
+
+//#include "mtxccb.h"
+//#include "topaz_tests.h"
+//#include "mvea_regs.h"
+//#include "mtx_regs.h"
+//#include "defs.h"
+//#include "mtxencode.h"
+//#include "topaz_vlc_regs.h"
+//#include "mtxheader.h"
+//#include "apiinternal.h"
+
+//#ifdef FIXME
+//extern void JPEGInitialiseHardware();
+//#endif
+
+#define JPEG_INCLUDE_NONAPI 1
+
+
+
+/////////////////////////////////////////////////////////////////////////////////////
+// BMP Reading Header Stuff
+/////////////////////////////////////////////////////////////////////////////////////
+
+
+const IMG_UINT8 gQuantLuma[QUANT_TABLE_SIZE_BYTES] = { 16, 11, 10, 16, 24, 40, 51, 61,
+ 12, 12, 14, 19, 26, 58, 60, 55,
+ 14, 13, 16, 24, 40, 57, 69, 56,
+ 14, 17, 22, 29, 51, 87, 80, 62,
+ 18, 22, 37, 56, 68, 109, 103, 77,
+ 24, 35, 55, 64, 81, 104, 113, 92,
+ 49, 64, 78, 87, 103, 121, 120, 101,
+ 72, 92, 95, 98, 112, 100, 103, 99
+ };
+
+
+/*const IMG_UINT8 DEBUG_gQuantLumaForCoverage[QUANT_TABLE_SIZE_BYTES] =
+{
+ 16, 17, 21, 22, 30, 31, 22, 45,
+ 18, 20, 23, 29, 32, 29, 44, 46,
+ 19, 24, 28, 33, 36, 43, 47, 58,
+ 25, 27, 34, 29, 42, 48, 57, 59,
+ 26, 34, 37, 41, 49, 56 , 60 , 67,
+ 36, 35, 40, 50, 55, 61 , 66 , 68,
+ 37, 39, 51, 54, 62 , 65 , 69 , 72 ,
+ 38, 52, 53, 63, 64 , 70 , 71 , 73
+};*/
+
+int DEBUG_giUsegQuantLumaForCoverageTable = 0;
+
+/*****************************************************************************/
+/* \brief gQuantChroma */
+/* */
+/* Contains the data that needs to be sent in the marker segment of an */
+/* interchange format JPEG stream or an abbreviated format table */
+/* specification data stream. */
+/* Quantizer table for the chrominance component */
+/*****************************************************************************/
+const IMG_UINT8 gQuantChroma[QUANT_TABLE_SIZE_BYTES] = {
+ 17, 18, 24, 47, 99, 99, 99, 99,
+ 18, 21, 26, 66, 99, 99, 99, 99,
+ 24, 26, 56, 99, 99, 99, 99, 99,
+ 47, 66, 99, 99, 99, 99, 99, 99,
+ 99, 99, 99, 99, 99, 99, 99, 99,
+ 99, 99, 99, 99, 99, 99, 99, 99,
+ 99, 99, 99, 99, 99, 99, 99, 99,
+ 99, 99, 99, 99, 99, 99, 99, 99
+};
+
+/*****************************************************************************/
+/* \brief gZigZag */
+/* */
+/* Zigzag scan pattern */
+/*****************************************************************************/
+const IMG_UINT8 gZigZag[] = {
+ 0, 1, 8, 16, 9, 2, 3, 10,
+ 17, 24, 32, 25, 18, 11, 4, 5,
+ 12, 19, 26, 33, 40, 48, 41, 34,
+ 27, 20, 13, 6, 7, 14, 21, 28,
+ 35, 42, 49, 56, 57, 50, 43, 36,
+ 29, 22, 15, 23, 30, 37, 44, 51,
+ 58, 59, 52, 45, 38, 31, 39, 46,
+ 53, 60, 61, 54, 47, 55, 62, 63
+};
+
+/*****************************************************************************/
+/* \brief gMarkerDataLumaDc */
+/* */
+/* Contains the data that needs to be sent in the marker segment of an */
+/* interchange format JPEG stream or an abbreviated format table */
+/* specification data stream. */
+/* Specifies the huffman table used for encoding the luminance DC */
+/* coefficient differences. The table represents Table K.3 of */
+/* IS0/IEC 10918-1:1994(E) */
+/*****************************************************************************/
+const IMG_UINT8 gMarkerDataLumaDc[] = {
+ //TcTh Li
+ 0x00, 0x00, 0x01, 0x05, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00,
+ // Vi
+ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B
+};
+
+/*****************************************************************************/
+/* \brief gMarkerDataLumaAc */
+/* */
+/* Contains the data that needs to be sent in the marker segment of an */
+/* interchange format JPEG stream or an abbreviated format table */
+/* specification data stream. */
+/* Specifies the huffman table used for encoding the luminance AC */
+/* coefficients. The table represents Table K.5 of IS0/IEC 10918-1:1994(E) */
+/*****************************************************************************/
+const IMG_UINT8 gMarkerDataLumaAc[] = {
+ // TcTh Li
+ 0x10, 0x00, 0x02, 0x01, 0x03, 0x03, 0x02, 0x04, 0x03, 0x05, 0x05, 0x04,
+ 0x04, 0x00, 0x00, 0x01, 0x7D,
+ // Vi
+ 0x01, 0x02, 0x03, 0x00, 0x04, 0x11, 0x05, 0x12, 0x21, 0x31, 0x41, 0x06,
+ 0x13, 0x51, 0x61, 0x07, 0x22, 0x71, 0x14, 0x32, 0x81, 0x91, 0xA1, 0x08,
+ 0x23, 0x42, 0xB1, 0xC1, 0x15, 0x52, 0xD1, 0xF0, 0x24, 0x33, 0x62, 0x72,
+ 0x82, 0x09, 0x0A, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x25, 0x26, 0x27, 0x28,
+ 0x29, 0x2A, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x43, 0x44, 0x45,
+ 0x46, 0x47, 0x48, 0x49, 0x4A, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59,
+ 0x5A, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x73, 0x74, 0x75,
+ 0x76, 0x77, 0x78, 0x79, 0x7A, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89,
+ 0x8A, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9A, 0xA2, 0xA3,
+ 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6,
+ 0xB7, 0xB8, 0xB9, 0xBA, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9,
+ 0xCA, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0xDA, 0xE1, 0xE2,
+ 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xEA, 0xF1, 0xF2, 0xF3, 0xF4,
+ 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA
+};
+
+/*****************************************************************************/
+/* \brief gMarkerDataChromaDc */
+/* */
+/* Contains the data that needs to be sent in the marker segment of an */
+/* interchange format JPEG stream or an abbreviated format table */
+/* specification data stream. */
+/* Specifies the huffman table used for encoding the chrominance DC */
+/* coefficient differences. The table represents Table K.4 of */
+/* IS0/IEC 10918-1:1994(E) */
+/*****************************************************************************/
+const IMG_UINT8 gMarkerDataChromaDc[] = {
+ // TcTh Li
+ 0x01, 0x00, 0x03, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
+ 0x00, 0x00, 0x00, 0x00, 0x00,
+
+ // Vi
+ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B
+};
+
+/*****************************************************************************/
+/* \brief gMarkerDataChromaAc */
+/* */
+/* Contains the data that needs to be sent in the marker segment of an */
+/* interchange format JPEG stream or an abbreviated format table */
+/* specification data stream. */
+/* Specifies the huffman table used for encoding the chrominance AC */
+/* coefficients. The table represents Table K.6 of IS0/IEC 10918-1:1994(E) */
+/*****************************************************************************/
+const IMG_UINT8 gMarkerDataChromaAc[] = {
+ // TcTh
+ 0x11, 0x00, 0x02, 0x01, 0x02, 0x04, 0x04, 0x03, 0x04, 0x07, 0x05, 0x04,
+ 0x04, 0x00, 0x01, 0x02, 0x77,
+
+ // Vi
+ 0x00, 0x01, 0x02, 0x03, 0x11, 0x04, 0x05, 0x21, 0x31, 0x06, 0x12, 0x41,
+ 0x51, 0x07, 0x61, 0x71, 0x13, 0x22, 0x32, 0x81, 0x08, 0x14, 0x42, 0x91,
+ 0xA1, 0xB1, 0xC1, 0x09, 0x23, 0x33, 0x52, 0xF0, 0x15, 0x62, 0x72, 0xD1,
+ 0x0A, 0x16, 0x24, 0x34, 0xE1, 0x25, 0xF1, 0x17, 0x18, 0x19, 0x1A, 0x26,
+ 0x27, 0x28, 0x29, 0x2A, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x43, 0x44,
+ 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58,
+ 0x59, 0x5A, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x73, 0x74,
+ 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
+ 0x88, 0x89, 0x8A, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9A,
+ 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xB2, 0xB3, 0xB4,
+ 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7,
+ 0xC8, 0xC9, 0xCA, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0xDA,
+ 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xEA, 0xF2, 0xF3, 0xF4,
+ 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA
+};
+
+/*****************************************************************************/
+/* \brief gLumaDCCode */
+/* */
+/* Contains the code words to encode the luminance DC coefficient */
+/* differences. The code words are mentioned in table K.3 of */
+/* ISO/IEC 10918-1:1994(E) */
+/*****************************************************************************/
+const IMG_UINT16 gLumaDCCode[] = {
+ 0x0000, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006,
+ 0x000E, 0x001E, 0x003E, 0x007E, 0x00FE, 0x01FE
+};
+
+/*****************************************************************************/
+/* \brief gLumaDCSize */
+/* */
+/* Contains the code length of the code words that are used to encode the */
+/* luminance DC coefficient differences. The code lengths are mentioned in */
+/* table K.3 of ISO/IEC 10918-1:1994(E) */
+/*****************************************************************************/
+const IMG_UINT8 gLumaDCSize[] = {
+ 0x0002, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003,
+ 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009
+};
+
+/*****************************************************************************/
+/* \brief gChromaDCCode */
+/* */
+/* Contains the code words to encode the chrominance DC coefficient */
+/* differences. The code words are mentioned in table K.4 of */
+/* ISO/IEC 10918-1:1994(E) */
+/*****************************************************************************/
+const IMG_UINT16 gChromaDCCode[] = {
+ 0x0000, 0x0001, 0x0002, 0x0006, 0x000E, 0x001E,
+ 0x003E, 0x007E, 0x00FE, 0x01FE, 0x03FE, 0x07FE
+};
+
+/*****************************************************************************/
+/* \brief gChromaDCSize */
+/* */
+/* Contains the code length of the code words that are used to encode the */
+/* chrominance DC coefficient differences. The code lengths are mentioned in*/
+/* table K.4 of ISO/IEC 10918-1:1994(E) */
+/*****************************************************************************/
+const IMG_UINT8 gChromaDCSize[] = {
+ 0x0002, 0x0002, 0x0002, 0x0003, 0x0004, 0x0005,
+ 0x0006, 0x0007, 0x0008, 0x0009, 0x000A, 0x000B
+};
+
+
+/*****************************************************************************/
+/* \brief gLumaACCode */
+/* */
+/* Contains the code words to encode the luminance AC coefficients. The */
+/* code words are arrange in the increasing order of run followed by size as*/
+/* in table K.5 of ISO/IEC 10918-1:1994(E) */
+/*****************************************************************************/
+const IMG_UINT16 gLumaACCode[] = {
+ 0x000A, 0x0000, 0x0001, 0x0004, 0x000B, 0x001A, 0x0078, 0x00F8, 0x03F6,
+ 0xFF82, 0xFF83, /* codes for run 0 */
+ 0x000C, 0x001B, 0x0079, 0x01F6, 0x07F6, 0xFF84, 0xFF85, 0xFF86,
+ 0xFF87, 0xFF88, /* codes for run 1 */
+ 0x001C, 0x00F9, 0x03F7, 0x0FF4, 0xFF89, 0xFF8A, 0xFF8b, 0xFF8C,
+ 0xFF8D, 0xFF8E, /* codes for run 2 */
+ 0x003A, 0x01F7, 0x0FF5, 0xFF8F, 0xFF90, 0xFF91, 0xFF92, 0xFF93,
+ 0xFF94, 0xFF95, /* codes for run 3 */
+ 0x003B, 0x03F8, 0xFF96, 0xFF97, 0xFF98, 0xFF99, 0xFF9A, 0xFF9B,
+ 0xFF9C, 0xFF9D, /* codes for run 4 */
+ 0x007A, 0x07F7, 0xFF9E, 0xFF9F, 0xFFA0, 0xFFA1, 0xFFA2, 0xFFA3,
+ 0xFFA4, 0xFFA5, /* codes for run 5 */
+ 0x007B, 0x0FF6, 0xFFA6, 0xFFA7, 0xFFA8, 0xFFA9, 0xFFAA, 0xFFAB,
+ 0xFFAC, 0xFFAD, /* codes for run 6 */
+ 0x00FA, 0x0FF7, 0xFFAE, 0xFFAF, 0xFFB0, 0xFFB1, 0xFFB2, 0xFFB3,
+ 0xFFB4, 0xFFB5, /* codes for run 7 */
+ 0x01F8, 0x7FC0, 0xFFB6, 0xFFB7, 0xFFB8, 0xFFB9, 0xFFBA, 0xFFBB,
+ 0xFFBC, 0xFFBD, /* codes for run 8 */
+ 0x01F9, 0xFFBE, 0xFFBF, 0xFFC0, 0xFFC1, 0xFFC2, 0xFFC3, 0xFFC4,
+ 0xFFC5, 0xFFC6, /* codes for run 9 */
+ 0x01FA, 0xFFC7, 0xFFC8, 0xFFC9, 0xFFCA, 0xFFCB, 0xFFCC, 0xFFCD,
+ 0xFFCE, 0xFFCF, /* codes for run A */
+ 0x03F9, 0xFFD0, 0xFFD1, 0xFFD2, 0xFFD3, 0xFFD4, 0xFFD5, 0xFFD6,
+ 0xFFD7, 0xFFD8, /* codes for run B */
+ 0x03FA, 0xFFD9, 0xFFDA, 0xFFDB, 0xFFDC, 0xFFDD, 0xFFDE, 0xFFDF,
+ 0xFFE0, 0xFFE1, /* codes for run C */
+ 0x07F8, 0xFFE2, 0xFFE3, 0xFFE4, 0xFFE5, 0xFFE6, 0xFFE7, 0xFFE8,
+ 0xFFE9, 0xFFEA, /* codes for run D */
+ 0xFFEB, 0xFFEC, 0xFFED, 0xFFEE, 0xFFEF, 0xFFF0, 0xFFF1, 0xFFF2,
+ 0xFFF3, 0xFFF4, /* codes for run E */
+ 0xFFF5, 0xFFF6, 0xFFF7, 0xFFF8, 0xFFF9, 0xFFFA, 0xFFFB, 0xFFFC, 0xFFFD,
+ 0xFFFE, 0x07F9 /* codes for run F */
+};
+
+/*****************************************************************************/
+/* \brief gLumaACSize */
+/* */
+/* Contains the code length of the code words that are used to encode the */
+/* luminance AC coefficients. The code lengths as in table K.5 of */
+/* ISO/IEC 10918-1:1994(E), are arranged in the increasing order of run */
+/* followed by size */
+/*****************************************************************************/
+const IMG_UINT8 gLumaACSize[] = {
+ 0x04, 0x02, 0x02, 0x03, 0x04, 0x05, 0x07, 0x08, 0x0A, 0x10, 0x10,/* run 0 */
+ 0x04, 0x05, 0x07, 0x09, 0x0B, 0x10, 0x10, 0x10, 0x10, 0x10,/* run 1 */
+ 0x05, 0x08, 0x0A, 0x0C, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,/* run 2 */
+ 0x06, 0x09, 0x0C, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,/* run 3 */
+ 0x06, 0x0A, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,/* run 4 */
+ 0x07, 0x0B, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,/* run 5 */
+ 0x07, 0x0C, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,/* run 6 */
+ 0x08, 0x0C, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,/* run 7 */
+ 0x09, 0x0F, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,/* run 8 */
+ 0x09, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,/* run 9 */
+ 0x09, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,/* run A */
+ 0x0A, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,/* run B */
+ 0x0A, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,/* run C */
+ 0x0B, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,/* run D */
+ 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,/* run E */
+ 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x0B /* run F */
+};
+
+/*****************************************************************************/
+/* \brief gChromaACCode */
+/* */
+/* Contains the code words to encode the chromiannce AC coefficients. The */
+/* code words are arrange in the increasing order of run followed by size */
+/* as in table K.6 of ISO/IEC 10918-1:1994(E) */
+/*****************************************************************************/
+const IMG_UINT16 gChromaACCode[] = {
+ 0x0000, 0x0001, 0x0004, 0x000A, 0x0018, 0x0019, 0x0038, 0x0078, 0x01F4,
+ 0x03F6, 0x0FF4, /* codes for run 0 */
+ 0x000B, 0x0039, 0x00F6, 0x01F5, 0x07F6, 0x0FF5, 0xFF88, 0xFF89,
+ 0xFF8A, 0xFF8B, /* codes for run 1 */
+ 0x001A, 0x00F7, 0x03F7, 0x0FF6, 0x7FC2, 0xFF8C, 0xFF8D, 0xFF8E,
+ 0xFF8F, 0xFF90, /* codes for run 2 */
+ 0x001B, 0x00F8, 0x03F8, 0x0FF7, 0xFF91, 0xFF92, 0xFF93, 0xFF94,
+ 0xFF95, 0xFF96, /* codes for run 3 */
+ 0x003A, 0x01F6, 0xFF97, 0xFF98, 0xFF99, 0xFF9A, 0xFF9B, 0xFF9C,
+ 0xFF9D, 0xFF9E, /* codes for run 4 */
+ 0x003B, 0x03F9, 0xFF9F, 0xFFA0, 0xFFA1, 0xFFA2, 0xFFA3, 0xFFA4,
+ 0xFFA5, 0xFFA6, /* codes for run 5 */
+ 0x0079, 0x07F7, 0xFFA7, 0xFFA8, 0xFFA9, 0xFFAA, 0xFFAB, 0xFFAC,
+ 0xFFAD, 0xFFAE, /* codes for run 6 */
+ 0x007A, 0x07F8, 0xFFAF, 0xFFB0, 0xFFB1, 0xFFB2, 0xFFB3, 0xFFB4,
+ 0xFFB5, 0xFFB6, /* codes for run 7 */
+ 0x00F9, 0xFFB7, 0xFFB8, 0xFFB9, 0xFFBA, 0xFFBB, 0xFFBC, 0xFFBD,
+ 0xFFBE, 0xFFBF, /* codes for run 8 */
+ 0x01F7, 0xFFC0, 0xFFC1, 0xFFC2, 0xFFC3, 0xFFC4, 0xFFC5, 0xFFC6,
+ 0xFFC7, 0xFFC8, /* codes for run 9 */
+ 0x01F8, 0xFFC9, 0xFFCA, 0xFFCB, 0xFFCC, 0xFFCD, 0xFFCE, 0xFFCF,
+ 0xFFD0, 0xFFD1, /* codes for run A */
+ 0x01F9, 0xFFD2, 0xFFD3, 0xFFD4, 0xFFD5, 0xFFD6, 0xFFD7, 0xFFD8,
+ 0xFFD9, 0xFFDA, /* codes for run B */
+ 0x01FA, 0xFFDB, 0xFFDC, 0xFFDD, 0xFFDE, 0xFFDF, 0xFFE0, 0xFFE1,
+ 0xFFE2, 0xFFE3, /* codes for run C */
+ 0x07F9, 0xFFE4, 0xFFE5, 0xFFE6, 0xFFE7, 0xFFE8, 0xFFE9, 0xFFEA,
+ 0xFFEb, 0xFFEC, /* codes for run D */
+ 0x3FE0, 0xFFED, 0xFFEE, 0xFFEF, 0xFFF0, 0xFFF1, 0xFFF2, 0xFFF3,
+ 0xFFF4, 0xFFF5, /* codes for run E */
+ 0x7FC3, 0xFFF6, 0xFFF7, 0xFFF8, 0xFFF9, 0xFFFA, 0xFFFB, 0xFFFC, 0xFFFD,
+ 0xFFFE, 0x03FA /* codes for run F */
+};
+
+/*****************************************************************************/
+/* \brief gChromaACSize */
+/* */
+/* Contains the code length of the code words that are used to encode the */
+/* chrominance AC coefficients. The code lengths as in table K.5 of */
+/* ISO/IEC 10918-1:1994(E), are arranged in the increasing order of run */
+/* followed by size */
+/*****************************************************************************/
+const IMG_UINT8 gChromaACSize[] = {
+ 0x02, 0x02, 0x03, 0x04, 0x05, 0x05, 0x06, 0x07, 0x09, 0x0A, 0x0C,/* run 0 */
+ 0x04, 0x06, 0x08, 0x09, 0x0B, 0x0C, 0x10, 0x10, 0x10, 0x10,/* run 1 */
+ 0x05, 0x08, 0x0A, 0x0C, 0x0F, 0x10, 0x10, 0x10, 0x10, 0x10,/* run 2 */
+ 0x05, 0x08, 0x0A, 0x0C, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,/* run 3 */
+ 0x06, 0x09, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,/* run 4 */
+ 0x06, 0x0A, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,/* run 5 */
+ 0x07, 0x0B, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,/* run 6 */
+ 0x07, 0x0B, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,/* run 7 */
+ 0x08, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,/* run 8 */
+ 0x09, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,/* run 9 */
+ 0x09, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,/* run A */
+ 0x09, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,/* run B */
+ 0x09, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,/* run C */
+ 0x0B, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,/* run D */
+ 0x0E, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,/* run E */
+ 0x0F, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x0A /* run F */
+};
+
+/*****************************************************************************/
+/* \brief gSize */
+/* */
+/* Table used in the computation of 4 lease significant bits 'SSSS' as */
+/* specified in table F.1 and F.2 of ISO/IEC 10918-1:1994(E). These values */
+/* are used to computes the 4 least significant bits and are not exactly */
+/* the values mentioned in the table */
+/*****************************************************************************/
+const IMG_UINT8 gSize[] = {
+ 0,
+ 1,
+ 2, 2,
+ 3, 3, 3, 3,
+ 4, 4, 4, 4, 4, 4, 4, 4,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5
+};
+
+
+
+/*****************************************************************************/
+/* */
+/* Function Name : fPutBitsToBuffer */
+/* */
+/* Description : The function write a bit string into the stream */
+/* */
+/* Inputs : */
+/* BitStream : Pointer to the stream context */
+/* NoOfBits : Size of the bit string */
+/* ActualBits : Bit string to be written */
+/* */
+/* Outputs : On return the function has written the bit string into */
+/* the stream */
+/* */
+/* Returns : void */
+/* */
+/* Revision History: */
+/* */
+/* 14 12 2001 BG Creation */
+/* */
+/*****************************************************************************/
+
+void fPutBitsToBuffer(STREAMTYPEW *BitStream, IMG_UINT8 NoOfBytes, IMG_UINT32 ActualBits)
+{
+ IMG_UINT8 ui8Lp;
+ IMG_UINT8 *pui8S;
+
+ pui8S = (IMG_UINT8 *)BitStream->Buffer;
+ pui8S += BitStream->Offset;
+
+ for (ui8Lp = NoOfBytes; ui8Lp > 0; ui8Lp--)
+ *(pui8S++) = ((IMG_UINT8 *) & ActualBits)[ui8Lp-1];
+
+ BitStream->Offset += NoOfBytes;
+}
+
+
+
+/***********************************************************************************
+ * Function Name : AllocateCodedDataBuffers
+ * Inputs :
+ * Outputs :
+ * Returns : PVRRC
+ * Description : Allocates Device memory for coded buffers and build BUFFERINFO array
+ ************************************************************************************/
+
+IMG_ERRORCODE AllocateCodedDataBuffers(TOPAZSC_JPEG_ENCODER_CONTEXT *pContext)
+{
+ IMG_UINT8 ui8Loop;
+
+ for (ui8Loop = 0 ; ui8Loop < pContext->sScan_Encode_Info.ui8NumberOfCodedBuffers; ui8Loop ++)
+ if (pContext->sScan_Encode_Info.aBufferTable[ui8Loop].pMemInfo == NULL) {
+ pContext->sScan_Encode_Info.aBufferTable[ui8Loop].ui32DataBufferSizeBytes = ((DATA_BUFFER_SIZE(pContext->sScan_Encode_Info.ui32NumberMCUsToEncodePerScan) + sizeof(BUFFER_HEADER)) + 3) & ~3;
+ pContext->sScan_Encode_Info.aBufferTable[ui8Loop].ui32DataBufferUsedBytes = 0;
+ pContext->sScan_Encode_Info.aBufferTable[ui8Loop].i8MTXNumber = 0; // Indicates buffer is idle
+ pContext->sScan_Encode_Info.aBufferTable[ui8Loop].ui16ScanNumber = 0; // Indicates buffer is idle
+ pContext->sScan_Encode_Info.aBufferTable[ui8Loop].pMemInfo =
+ pContext->jpeg_coded_buf.pMemInfo + PNW_JPEG_HEADER_MAX_SIZE + ui8Loop * pContext->ui32SizePerCodedBuffer;
+
+ }
+
+ return IMG_ERR_OK;
+}
+
+
+
+/***********************************************************************************
+ * Function Name : FreeCodedDataBuffers
+ * Inputs :
+ * Outputs :
+ * Returns : PVRRC
+ * Description : Loops through our coded data buffers and frees them
+ ************************************************************************************/
+
+IMG_UINT32 FreeCodedDataBuffers(TOPAZSC_JPEG_ENCODER_CONTEXT *pContext)
+{
+ IMG_UINT8 ui8Loop;
+ ui8Loop = pContext->sScan_Encode_Info.ui8NumberOfCodedBuffers;
+ /* Spin through and remove */
+ while (ui8Loop--)
+ if (pContext->sScan_Encode_Info.aBufferTable[ui8Loop].pMemInfo != NULL) {
+ /* MMFreeDeviceMemory( &(pContext->sScan_Encode_Info.aBufferTable[ui8Loop].pMemInfo));*/
+ pContext->sScan_Encode_Info.aBufferTable[ui8Loop].pMemInfo = NULL;
+ }
+
+ return 0;
+}
+
+
+
+
+void SetupMCUDetails(TOPAZSC_JPEG_ENCODER_CONTEXT *pContext,
+ const IMG_UINT32 uiComponentNumber ,
+ const IMG_UINT32 uiWidthBlocks ,
+ const IMG_UINT32 uiHeightBlocks,
+ const IMG_UINT32 uiLastRow,
+ const IMG_UINT32 uiLastCol)
+{
+ MCUCOMPONENT* pMCUComp;
+
+ if (uiComponentNumber >= MTX_MAX_COMPONENTS)
+ return;
+
+ pMCUComp = &pContext->pMTXSetup->MCUComponent[uiComponentNumber];
+
+ pMCUComp->ui32WidthBlocks = uiWidthBlocks * 8;
+ pMCUComp->ui32HeightBlocks = uiHeightBlocks * 8;
+
+ pMCUComp->ui32XLimit = uiLastCol;
+ pMCUComp->ui32YLimit = uiLastRow;
+
+ psb__information_message("MCU Details %i : %ix%i %i %i\n", uiComponentNumber, uiWidthBlocks , uiHeightBlocks , uiLastCol , uiLastRow);
+
+}
+
+
+/*****************************************************************************/
+/* */
+/* Function Name : InitializeJpegEncode */
+/* */
+/* Description : The function initializes an instance of the JPEG encoder */
+/* Inputs/Outputs: Pointer to the JPEG Host context */
+/* Pointer to a IMG_FRAME type which will be created to be filled */
+/* with the source image data */
+/*****************************************************************************/
+
+IMG_ERRORCODE InitializeJpegEncode(TOPAZSC_JPEG_ENCODER_CONTEXT * pContext, object_surface_p pTFrame)
+{
+ IMG_ERRORCODE rc = IMG_ERR_OK;
+ IMG_UINT8 uc_i = 0;
+ IMG_UINT16 ui16_height_min;
+ IMG_UINT16 ui16_height_max;
+ IMG_UINT16 ui16_width_min;
+ IMG_UINT16 ui16_width_max;
+ //IMG_UINT16 ui16_width;
+ //IMG_UINT16 ui16_height;
+ IMG_UINT32 uiBlockCount = 0;
+ IMG_UINT16 ui16_comp_width, ui16_comp_height;
+ IMG_UINT8 uc_h_scale_max = 0, uc_v_scale_max = 0, uc_h_scale = 0;
+ IMG_UINT8 uc_v_scale;
+ IMG_UINT16 ui16_height;
+ context_ENC_p ctx = (context_ENC_p)pContext->ctx;
+
+ /*************************************************************************/
+ /* Determine the horizontal and the vertical scaling factor of each of */
+ /* the components of the image */
+ /*************************************************************************/
+
+ /*FIXME: ONLY support NV12, YV12 here*/
+ /*pTFrame->height isn't the real height of image, since vaCreateSurface
+ * makes it aligned with 32*/
+ ui16_height = ctx->Height;
+ switch (pContext->eFormat) {
+ case IMG_CODEC_YV16: /*422 format*/
+ ui16_height_min = ui16_height;
+ ui16_height_max = ui16_height;
+ ui16_width_min = pTFrame->width >> 1;
+ ui16_width_max = pTFrame->width;
+ break;
+ case IMG_CODEC_NV12:
+ default:
+ ui16_height_min = ui16_height >> 1;
+ ui16_height_max = ui16_height;
+ ui16_width_min = pTFrame->width >> 1;
+ ui16_width_max = pTFrame->width;
+ break;
+ }
+ /*ui16_height_min = ui16_width_min = 65535;
+ ui16_height_max = ui16_width_max = 0;
+
+ for(uc_i = 0; uc_i < pContext->pMTXSetup->ui32ComponentsInScan; uc_i++)
+ {
+ ui16_width = pTFrame->Width;
+ if(ui16_width_min > ui16_width)
+ ui16_width_min = ui16_width;
+ if(ui16_width_max < ui16_width)
+ ui16_width_max = ui16_width;
+
+ ui16_height = pTFrame->Height;
+ if(ui16_height_min > ui16_height)
+ ui16_height_min = ui16_height;
+ if(ui16_height_max < ui16_height)
+ ui16_height_max = ui16_height;
+ }
+ */
+ /*********************************************************************/
+ /* Determine the horizonal and the vertical sampling frequency of */
+ /* each of components in the image */
+ /*********************************************************************/
+
+ uc_h_scale_max = (ui16_width_max + ui16_width_min - 1) /
+ ui16_width_min;
+ uc_v_scale_max = (ui16_height_max + ui16_height_min - 1) /
+ ui16_height_min;
+
+ for (uc_i = 0; uc_i < pContext->pMTXSetup->ui32ComponentsInScan; uc_i++) {
+
+ /* ui16_comp_width = pTFrame->aui32ComponentInfo[uc_i].ui32Width;
+ ui16_comp_height = pTFrame->aui32ComponentInfo[uc_i].ui32Height;*/
+ /*Support NV12, YV12, YV16 here. uc_h/v_scale should be
+ * 2x2(Y) or 1x1(U/V)*/
+ if (0 == uc_i) {
+ ui16_comp_width = pTFrame->width;
+ ui16_comp_height = ui16_height;
+ } else {
+ switch (pContext->eFormat) {
+ case IMG_CODEC_YV16: /*422 format*/
+ ui16_comp_width = pTFrame->width >> 1;
+ ui16_comp_height = ui16_height;
+ break;
+ case IMG_CODEC_NV12:
+ default:
+ ui16_comp_width = pTFrame->width >> 1;
+ ui16_comp_height = ui16_height >> 1;
+ }
+ }
+
+ uc_h_scale = (ui16_comp_width * uc_h_scale_max) /
+ ui16_width_max;
+ uc_v_scale = (ui16_comp_height * uc_v_scale_max) /
+ ui16_height_max;
+
+ uiBlockCount += (uc_h_scale * uc_v_scale);
+
+ switch (ISCHROMAINTERLEAVED(pContext->eFormat)) {
+ case C_INTERLEAVE:
+ // Chroma format is byte interleaved, as the engine runs using planar colour surfaces we need
+ // to fool the engine into offsetting by 16 instead of 8
+ if (uc_i > 0) { // if chroma, then double values
+ uc_h_scale <<= 1;
+ ui16_comp_width <<= 1;
+ }
+ break;
+ case LC_UVINTERLEAVE:
+ //Y0UY1V_8888 or Y0VY1U_8888 format
+ ui16_comp_width <<= 1;
+ break;
+ case LC_VUINTERLEAVE:
+ //Y0UY1V_8888 or Y0VY1U_8888 format
+ ui16_comp_width <<= 1;
+ break;
+ default:
+ break;
+ }
+
+ SetupMCUDetails(pContext, uc_i , uc_h_scale, uc_v_scale, ui16_comp_height, ui16_comp_width);
+
+ if (uiBlockCount > BLOCKCOUNTMAXPERCOLOURPLANE) {
+ return IMG_ERR_INVALID_SIZE;
+ }
+
+ }
+
+ return rc;
+}
+
+
+/***********************************************************************************
+ Function Name : JPGEncodeBegin
+Inputs : hInstance,psJpegInfo,ui32Quality
+Outputs :
+Returns : PVRRC
+Description : Marks the begining of a JPEG encode and sets up encoder
+ ************************************************************************************/
+
+/*IMG_ERRORCODE JPGEncodeBegin(TOPAZSC_JPEG_ENCODER_CONTEXT *pContext, IMG_FRAME *pTFrame)
+{
+ IMG_UINT32 ReturnCode = 0;
+ ReturnCode = InitializeJpegEncode(pContext, pTFrame);
+
+ return ReturnCode;
+} */
+/*****************************************************************************/
+/* */
+/* Function Name : EncodeMarkerSegment */
+/* */
+/* Description : Writes the marker segment of a JPEG stream according to */
+/* the syntax mentioned in section B.2.4 of */
+/* ISO/IEC 10918-1:1994E */
+/* */
+/* Inputs : Pointer to the JPEG Context and coded output buffer */
+/* */
+/* Processing : Writes each of the following into the marker segment of */
+/* the JPEG stream */
+/* - luminance and chrominance quantization tables */
+/* - huffman tables used for encoding the luminance and */
+/* chrominance AC coefficients */
+/* - huffman tables used for encoding the luminance and */
+/* chorimance DC coefficient differences */
+/* */
+/* */
+/*****************************************************************************/
+
+IMG_UINT32 Legacy_EncodeMarkerSegment(LEGACY_JPEG_ENCODER_CONTEXT *pContext,
+ IMG_UINT8 *puc_stream_buff)
+{
+ STREAMTYPEW s_streamW;
+ IMG_UINT8 uc_i;
+
+ s_streamW.Offset = 0;
+ s_streamW.Buffer = puc_stream_buff;
+
+ /* Writing the start of image marker */
+ fPutBitsToBuffer(&s_streamW, 2, START_OF_IMAGE);
+
+ /* Writing the quantization table for luminance into the stream */
+ fPutBitsToBuffer(&s_streamW, 2, DQT_MARKER);
+
+ fPutBitsToBuffer(&s_streamW, 3, LQPQ << 4); // 20 bits = LQPQ, 4 bits = 0 (Destination identifier for the luminance quantizer tables)
+
+ for (uc_i = 0; uc_i < PELS_IN_BLOCK; uc_i++) {
+ fPutBitsToBuffer(&s_streamW, 1, pContext->pvLowLevelEncContext->Qmatrix[0][gZigZag[uc_i]]);
+ }
+
+ /* Writing the quantization table for chrominance into the stream */
+ fPutBitsToBuffer(&s_streamW, 2, DQT_MARKER);
+
+ fPutBitsToBuffer(&s_streamW, 3, (LQPQ << 4) | 1); // 20 bits = LQPQ, 4 bits = 1 (Destination identifier for the chrominance quantizer tables)
+
+ for (uc_i = 0; uc_i < PELS_IN_BLOCK; uc_i++) {
+ fPutBitsToBuffer(&s_streamW, 1, pContext->pvLowLevelEncContext->Qmatrix[1][gZigZag[uc_i]]);
+ }
+
+ /* Writing the huffman tables for luminance dc coeffs */
+ /* Write the DHT Marker */
+ fPutBitsToBuffer(&s_streamW, 2, DHT_MARKER);
+ fPutBitsToBuffer(&s_streamW, 2, LH_DC);
+ for (uc_i = 0; uc_i < LH_DC - 2; uc_i++) {
+ fPutBitsToBuffer(&s_streamW, 1, gMarkerDataLumaDc[uc_i]);
+ }
+ /* Writing the huffman tables for luminance ac coeffs */
+ /* Write the DHT Marker */
+ fPutBitsToBuffer(&s_streamW, 2, DHT_MARKER);
+ fPutBitsToBuffer(&s_streamW, 2, LH_AC);
+ for (uc_i = 0; uc_i < LH_AC - 2; uc_i++) {
+ fPutBitsToBuffer(&s_streamW, 1, gMarkerDataLumaAc[uc_i]);
+ }
+ /* Writing the huffman tables for chrominance dc coeffs */
+ fPutBitsToBuffer(&s_streamW, 2, DHT_MARKER);
+ fPutBitsToBuffer(&s_streamW, 2, LH_DC);
+ for (uc_i = 0; uc_i < LH_DC - 2; uc_i++) {
+ fPutBitsToBuffer(&s_streamW, 1, gMarkerDataChromaDc[uc_i]);
+ }
+ /* Writing the huffman tables for luminance ac coeffs */
+ /* Write the DHT Marker */
+ fPutBitsToBuffer(&s_streamW, 2, DHT_MARKER);
+ fPutBitsToBuffer(&s_streamW, 2, LH_AC);
+ for (uc_i = 0; uc_i < LH_AC - 2; uc_i++) {
+ fPutBitsToBuffer(&s_streamW, 1, gMarkerDataChromaAc[uc_i]);
+ }
+
+
+ return s_streamW.Offset;
+}
+
+/*****************************************************************************/
+/* */
+/* Function Name : EncodeMarkerSegment */
+/* */
+/* Description : Writes the marker segment of a JPEG stream according to */
+/* the syntax mentioned in section B.2.4 of */
+/* ISO/IEC 10918-1:1994E */
+/* */
+/* Inputs : Pointer to the JPEG Context and coded output buffer */
+/* */
+/* Processing : Writes each of the following into the marker segment of */
+/* the JPEG stream */
+/* - luminance and chrominance quantization tables */
+/* - huffman tables used for encoding the luminance and */
+/* chrominance AC coefficients */
+/* - huffman tables used for encoding the luminance and */
+/* chorimance DC coefficient differences */
+/* */
+/*****************************************************************************/
+
+IMG_UINT32 EncodeMarkerSegment(TOPAZSC_JPEG_ENCODER_CONTEXT *pContext,
+ IMG_UINT8 *puc_stream_buff, IMG_BOOL bIncludeHuffmanTables)
+{
+ STREAMTYPEW s_streamW;
+ IMG_UINT8 uc_i;
+
+ s_streamW.Offset = 0;
+ s_streamW.Buffer = puc_stream_buff;
+
+ /* Writing the start of image marker */
+ fPutBitsToBuffer(&s_streamW, 2, START_OF_IMAGE);
+
+ /* Writing the quantization table for luminance into the stream */
+ fPutBitsToBuffer(&s_streamW, 2, DQT_MARKER);
+
+ fPutBitsToBuffer(&s_streamW, 3, LQPQ << 4); // 20 bits = LQPQ, 4 bits = 0 (Destination identifier for the luminance quantizer tables)
+
+ IMG_ASSERT(PELS_IN_BLOCK <= QUANT_TABLE_SIZE_BYTES);
+ for (uc_i = 0; uc_i < PELS_IN_BLOCK; uc_i++) {
+ // Write zigzag ordered luma quantization values to our JPEG header
+ fPutBitsToBuffer(&s_streamW, 1, pContext->psTablesBlock->aui8LumaQuantParams[gZigZag[uc_i]]);
+ }
+
+ /* Writing the quantization table for chrominance into the stream */
+ fPutBitsToBuffer(&s_streamW, 2, DQT_MARKER);
+
+ fPutBitsToBuffer(&s_streamW, 3, (LQPQ << 4) | 1); // 20 bits = LQPQ, 4 bits = 1 (Destination identifier for the chrominance quantizer tables)
+
+ for (uc_i = 0; uc_i < PELS_IN_BLOCK; uc_i++) {
+ // Write zigzag ordered chroma quantization values to our JPEG header
+ fPutBitsToBuffer(&s_streamW, 1, pContext->psTablesBlock->aui8ChromaQuantParams[gZigZag[uc_i]]);
+ }
+
+ if (bIncludeHuffmanTables) {
+ /* Writing the huffman tables for luminance dc coeffs */
+ /* Write the DHT Marker */
+ fPutBitsToBuffer(&s_streamW, 2, DHT_MARKER);
+ fPutBitsToBuffer(&s_streamW, 2, LH_DC);
+ for (uc_i = 0; uc_i < LH_DC - 2; uc_i++) {
+ fPutBitsToBuffer(&s_streamW, 1, gMarkerDataLumaDc[uc_i]);
+ }
+ /* Writing the huffman tables for luminance ac coeffs */
+ /* Write the DHT Marker */
+ fPutBitsToBuffer(&s_streamW, 2, DHT_MARKER);
+ fPutBitsToBuffer(&s_streamW, 2, LH_AC);
+ for (uc_i = 0; uc_i < LH_AC - 2; uc_i++) {
+ fPutBitsToBuffer(&s_streamW, 1, gMarkerDataLumaAc[uc_i]);
+ }
+ /* Writing the huffman tables for chrominance dc coeffs */
+ fPutBitsToBuffer(&s_streamW, 2, DHT_MARKER);
+ fPutBitsToBuffer(&s_streamW, 2, LH_DC);
+ for (uc_i = 0; uc_i < LH_DC - 2; uc_i++) {
+ fPutBitsToBuffer(&s_streamW, 1, gMarkerDataChromaDc[uc_i]);
+ }
+ /* Writing the huffman tables for luminance ac coeffs */
+ /* Write the DHT Marker */
+ fPutBitsToBuffer(&s_streamW, 2, DHT_MARKER);
+ fPutBitsToBuffer(&s_streamW, 2, LH_AC);
+ for (uc_i = 0; uc_i < LH_AC - 2; uc_i++) {
+ fPutBitsToBuffer(&s_streamW, 1, gMarkerDataChromaAc[uc_i]);
+ }
+ }
+
+ // Activate Restart markers
+ if (pContext->sScan_Encode_Info.ui16CScan > 1) {
+ // Only use restart intervals if we need them (ie. multiple Scan encode and/or parallel CB encode)
+ fPutBitsToBuffer(&s_streamW, 2, 0xFFDD); //Marker header
+ fPutBitsToBuffer(&s_streamW, 2, 4); // Byte size of marker (header not included)
+ fPutBitsToBuffer(&s_streamW, 2, pContext->sScan_Encode_Info.ui32NumberMCUsToEncodePerScan); // Restart Interval (same as MCUs per buffer)
+ }
+
+ return s_streamW.Offset;
+}
+
+/***********************************************************************************
+ Function Name : JPGEncodeMarker
+Inputs : Pointer to JPEG Encoder context
+Pointer to coded buffer stream
+Pointer to pui32BytesWritten value
+Outputs : ui8BitStreamBuffer,pui32BytesWritten
+Description : Writes a JPEG marker segment to the bit stream
+ ************************************************************************************/
+
+IMG_UINT32 Legacy_JPGEncodeMarker(/*in */ LEGACY_JPEG_ENCODER_CONTEXT *pContext ,
+ /*in */ IMG_UINT8* pui8BitStreamBuffer ,
+ /*out*/ IMG_UINT32 *pui32BytesWritten)
+{
+#ifdef JPEG_VERBOSE
+ printf("PVRJPGEncodeMarker");
+#endif
+
+ if (pContext->eCurrentActive != LEGACY_JPEG_API_CURRENT_ACTIVE_ENCODE) {
+ /* Cannot be called outside begin and end*/
+ return 2;
+ }
+
+ *pui32BytesWritten += Legacy_EncodeMarkerSegment(pContext, pui8BitStreamBuffer);
+
+ return 0;
+}
+
+/***********************************************************************************
+ Function Name : JPGEncodeMarker
+Inputs : Pointer to JPEG Encoder context
+Pointer to coded buffer stream
+Pointer to Byteswritten value
+bIncludeHuffmanTables - Set to true to include the huffman tables in the stream
+Outputs : ui8BitStreamBuffer,pui32BytesWritten
+Description : Writes a JPEG marker segment to the bit stream
+ ************************************************************************************/
+
+IMG_UINT32 JPGEncodeMarker(/*in */ TOPAZSC_JPEG_ENCODER_CONTEXT *pContext ,
+ /*in */ IMG_UINT8* pui8BitStreamBuffer ,
+ /*out*/ IMG_UINT32 *pui32BytesWritten, IMG_BOOL bIncludeHuffmanTables)
+{
+#ifdef JPEG_VERBOSE
+ printf("PVRJPGEncodeMarker");
+#endif
+
+
+ *pui32BytesWritten += EncodeMarkerSegment(pContext, pui8BitStreamBuffer + *pui32BytesWritten, bIncludeHuffmanTables);
+
+ return 0;
+}
+
+
+/*****************************************************************************/
+/* */
+/* Function Name : EncodeFrameHeader */
+/* */
+/* Description : Writes the frame header of a JPEG stream according to */
+/* the syntax mentioned in section B.2.2 of */
+/* ISO/IEC 10918-1:1994E . */
+/* */
+/* Inputs : */
+/* ps_jpeg_params: Ptr to the JPEG encoder parameter context */
+/* ps_jpeg_comp : Ptr to the JPEG image component context */
+/* puc_stream_buff:Ptr to the bistream buffer from where to start writing */
+/* */
+/* Processing : Writes each of the following into the frame header of */
+/* the JPEG stream */
+/* - JPEG image component identifier */
+/* - Horizontal and vertical sampling factor */
+/* - Quantization table identifier for each of the components*/
+/* */
+/* Returns : Number of bytes written into the stream */
+/* */
+/*****************************************************************************/
+
+IMG_UINT32 Legacy_EncodeFrameHeader(LEGACY_JPEGENC_ITTIAM_PARAMS *ps_jpeg_params,
+ LEGACY_JPEGENC_ITTIAM_COMPONENT *ps_jpeg_comp,
+ IMG_UINT8 *puc_stream_buff)
+{
+ STREAMTYPEW ps_streamW;
+ IMG_UINT16 ui16_i;
+ IMG_UINT8 uc_num_comp_in_img;
+
+ uc_num_comp_in_img = ps_jpeg_comp->uc_num_comp_in_img;
+
+ ps_streamW.Offset = 0;
+ ps_streamW.Buffer = puc_stream_buff;
+
+
+ if (ps_jpeg_params->uc_isAbbreviated != 0)
+ fPutBitsToBuffer(&ps_streamW, 2, START_OF_IMAGE);
+
+ /* Writing the frame header */
+ fPutBitsToBuffer(&ps_streamW, 2, SOF_BASELINE_DCT);
+ /* Frame header length */
+ fPutBitsToBuffer(&ps_streamW, 2, 8 + 3 * uc_num_comp_in_img);
+ /* Precision */
+ fPutBitsToBuffer(&ps_streamW, 1, 8);
+ /* Height : sample lines */
+ fPutBitsToBuffer(&ps_streamW, 2, ps_jpeg_params->ui16_height);
+ /* Width : samples per line */
+ fPutBitsToBuffer(&ps_streamW, 2, ps_jpeg_params->ui16_width);
+ /* Number of image components */
+ fPutBitsToBuffer(&ps_streamW, 1, uc_num_comp_in_img);
+
+ if (uc_num_comp_in_img > MAX_COMP_IN_SCAN)
+ uc_num_comp_in_img = MAX_COMP_IN_SCAN;
+ for (ui16_i = 0; ui16_i < uc_num_comp_in_img; ui16_i++) {
+ /* Component identifier */
+ fPutBitsToBuffer(&ps_streamW, 1, ps_jpeg_comp->puc_comp_id[ui16_i]);
+
+ /* 4 bit Horizontal and 4 bit vertical sampling factors */
+ fPutBitsToBuffer(&ps_streamW, 1, (ps_jpeg_comp->puc_horiz_scale[ui16_i] << 4) | ps_jpeg_comp->puc_vert_scale[ui16_i]);
+
+ /* Quantization table destination selector */
+ fPutBitsToBuffer(&ps_streamW, 1, ps_jpeg_comp->puc_q_table_id[ui16_i]);
+
+ ps_jpeg_comp->CompIdtoIndex[ ps_jpeg_comp->puc_comp_id[ui16_i] ] = (IMG_UINT8) ui16_i;
+ }
+
+ //Use if you want start of scan (image data) to align to 32
+ fPutBitsToBuffer(&ps_streamW, 1, 0xFF);
+
+ return ps_streamW.Offset;
+}
+
+
+/*****************************************************************************/
+/* */
+/* Function Name : EncodeFrameHeader */
+/* */
+/* Description : Writes the frame header of a JPEG stream according to */
+/* the syntax mentioned in section B.2.2 of */
+/* ISO/IEC 10918-1:1994E . */
+/* */
+/* Inputs : */
+/* pContext - Ptr to the JPEG encoder context */
+/* puc_stream_buff - Ptr to the bistream buffer from */
+/* where to start writing */
+/* */
+/* Processing : Writes each of the following into the frame header of */
+/* the JPEG stream */
+/* - JPEG image component identifier */
+/* - Horizontal and vertical sampling factor */
+/* - Quantization table identifier for each of the components*/
+/* */
+/* Returns : Number of bytes written into the stream */
+/* */
+/*****************************************************************************/
+
+IMG_UINT32 EncodeFrameHeader(TOPAZSC_JPEG_ENCODER_CONTEXT *pContext,
+ IMG_UINT8 *puc_stream_buff)
+{
+ STREAMTYPEW ps_streamW;
+ IMG_UINT8 uc_num_comp_in_img;
+
+ uc_num_comp_in_img = pContext->pMTXSetup->ui32ComponentsInScan;
+
+ ps_streamW.Offset = 0;
+ ps_streamW.Buffer = puc_stream_buff;
+
+
+ //if(ps_jpeg_params->uc_isAbbreviated != 0)
+ // fPutBitsToBuffer(&ps_streamW, 2, START_OF_IMAGE);
+
+ /* Writing the frame header */
+ fPutBitsToBuffer(&ps_streamW, 2, SOF_BASELINE_DCT);
+ /* Frame header length */
+ fPutBitsToBuffer(&ps_streamW, 2, 8 + 3 * uc_num_comp_in_img);
+ /* Precision */
+ fPutBitsToBuffer(&ps_streamW, 1, 8);
+ /* Height : sample lines */
+ fPutBitsToBuffer(&ps_streamW, 2, pContext->ui32OutputHeight);
+ /* Width : samples per line */
+ fPutBitsToBuffer(&ps_streamW, 2, pContext->ui32OutputWidth);
+ /* Number of image components */
+ fPutBitsToBuffer(&ps_streamW, 1, uc_num_comp_in_img);
+
+ //Luma Details
+ /* Component identifier */
+ fPutBitsToBuffer(&ps_streamW, 1, 1); //CompId 0 = 1, 1 = 2, 2 = 3
+ fPutBitsToBuffer(&ps_streamW, 1, ((pContext->pMTXSetup->MCUComponent[0].ui32WidthBlocks >> 3) << 4) | (pContext->pMTXSetup->MCUComponent[0].ui32HeightBlocks >> 3));
+ fPutBitsToBuffer(&ps_streamW, 1, 0); // 0 = Luma(0), 1,2 = Chroma(1)
+
+ //Chroma Details
+ if (pContext->pMTXSetup->ui32DataInterleaveStatus < C_INTERLEAVE) { //Chroma planar
+ fPutBitsToBuffer(&ps_streamW, 1, 2); //CompId 0 = 1, 1 = 2, 2 = 3
+ /* 4 bit Horizontal and 4 bit vertical sampling factors */
+ fPutBitsToBuffer(&ps_streamW, 1, ((pContext->pMTXSetup->MCUComponent[1].ui32WidthBlocks >> 3) << 4) | (pContext->pMTXSetup->MCUComponent[1].ui32HeightBlocks >> 3));
+ fPutBitsToBuffer(&ps_streamW, 1, 1); // 0 = Luma(0), 1,2 = Chroma(1)
+ fPutBitsToBuffer(&ps_streamW, 1, 3); //CompId 0 = 1, 1 = 2, 2 = 3
+ /* 4 bit Horizontal and 4 bit vertical sampling factors */
+ fPutBitsToBuffer(&ps_streamW, 1, ((pContext->pMTXSetup->MCUComponent[2].ui32WidthBlocks >> 3) << 4) | (pContext->pMTXSetup->MCUComponent[2].ui32HeightBlocks >> 3));
+ fPutBitsToBuffer(&ps_streamW, 1, 1); // 0 = Luma(0), 1,2 = Chroma(1)
+ } else if (pContext->pMTXSetup->ui32DataInterleaveStatus == C_INTERLEAVE) { // Chroma Interleaved
+ fPutBitsToBuffer(&ps_streamW, 1, 2); //CompId 0 = 1, 1 = 2, 2 = 3
+ /* 4 bit Horizontal and 4 bit vertical sampling factors */
+ fPutBitsToBuffer(&ps_streamW, 1, ((pContext->pMTXSetup->MCUComponent[1].ui32WidthBlocks >> 3) << 3) | (pContext->pMTXSetup->MCUComponent[1].ui32HeightBlocks >> 3));
+ fPutBitsToBuffer(&ps_streamW, 1, 1); // 0 = Luma(0), 1,2 = Chroma(1)
+ fPutBitsToBuffer(&ps_streamW, 1, 3); //CompId 0 = 1, 1 = 2, 2 = 3
+ /* 4 bit Horizontal and 4 bit vertical sampling factors */
+ fPutBitsToBuffer(&ps_streamW, 1, ((pContext->pMTXSetup->MCUComponent[2].ui32WidthBlocks >> 3) << 3) | (pContext->pMTXSetup->MCUComponent[2].ui32HeightBlocks >> 3));
+ fPutBitsToBuffer(&ps_streamW, 1, 1); // 0 = Luma(0), 1,2 = Chroma(1)
+ } else { //Chroma YUYV - Special case
+ fPutBitsToBuffer(&ps_streamW, 1, 2); //CompId 0 = 1, 1 = 2, 2 = 3
+ /* 4 bit Horizontal and 4 bit vertical sampling factors */
+ fPutBitsToBuffer(&ps_streamW, 1, ((pContext->pMTXSetup->MCUComponent[1].ui32WidthBlocks >> 3) << 4) | (pContext->pMTXSetup->MCUComponent[1].ui32HeightBlocks >> 3));
+ fPutBitsToBuffer(&ps_streamW, 1, 1); // 0 = Luma(0), 1,2 = Chroma(1)
+ fPutBitsToBuffer(&ps_streamW, 1, 3); //CompId 0 = 1, 1 = 2, 2 = 3
+ /* 4 bit Horizontal and 4 bit vertical sampling factors */
+ fPutBitsToBuffer(&ps_streamW, 1, ((pContext->pMTXSetup->MCUComponent[2].ui32WidthBlocks >> 3) << 4) | (pContext->pMTXSetup->MCUComponent[2].ui32HeightBlocks >> 3));
+ fPutBitsToBuffer(&ps_streamW, 1, 1); // 0 = Luma(0), 1,2 = Chroma(1)
+ }
+
+
+ //Use if you want start of scan (image data) to align to 32
+ fPutBitsToBuffer(&ps_streamW, 1, 0xFF);
+
+ return ps_streamW.Offset;
+}
+
+
+/***********************************************************************************
+ Function Name : JPGEncodeHeader
+Inputs : Pointer to JPEG Context
+Outputs : ui8BitStreamBuffer,pui32BytesWritten
+Returns : PVRRC
+Description : Writes a frame header to the bit stream
+Max written 21 bytes
+ ************************************************************************************/
+
+IMG_UINT32 Legacy_JPGEncodeHeader(/*in */ LEGACY_JPEG_ENCODER_CONTEXT *pContext,
+ /*out */ IMG_UINT8* pui8BitStreamBuffer ,
+ /*out*/ IMG_UINT32* pui32BytesWritten)
+{
+#ifdef JPEG_VERBOSE
+ printf("PVRJPGEncodeHeader");
+#endif
+
+ if (pContext->eCurrentActive != LEGACY_JPEG_API_CURRENT_ACTIVE_ENCODE) {
+ /* Cannot be called outside begin and end*/
+ return 2;
+ }
+
+ *pui32BytesWritten += Legacy_EncodeFrameHeader(&pContext->JPEGEncoderParams,
+ &pContext->sJPEGEncoderComp,
+ pui8BitStreamBuffer + *pui32BytesWritten);
+ return 0;
+}
+
+/***********************************************************************************
+ Function Name : JPGEncodeHeader
+Inputs : Pointer to JPEG context
+Outputs : ui8BitStreamBuffer,pui32BytesWritten
+Description : Writes a frame header to the bit stream
+Max written 21 bytes
+ ************************************************************************************/
+
+IMG_UINT32 JPGEncodeHeader(/*in */ TOPAZSC_JPEG_ENCODER_CONTEXT *pContext,
+ /*out */ IMG_UINT8* pui8BitStreamBuffer ,
+ /*out*/ IMG_UINT32* pui32BytesWritten)
+{
+#ifdef JPEG_VERBOSE
+ printf("JPGEncodeHeader");
+#endif
+
+ *pui32BytesWritten += EncodeFrameHeader(pContext, pui8BitStreamBuffer + *pui32BytesWritten);
+
+ return 0;
+}
+
+
+/***********************************************************************************
+ * Function Name : SetupIssueSetup
+ * Inputs :
+ pContext - Pointer to JPEG context
+ ui32ComponentsInScan - Number of components to be encoded in a scan
+ aui8Planes - Array of 3 bytes indexing YUV colour planes
+ pTFrame - Pointer to source data
+ ui32TableA, ui32TableB - Quantization table index values
+ * Outputs :
+ * Returns : PVRRC
+ * Description : Issues the Setup structure to MTX
+ ************************************************************************************/
+
+IMG_UINT32 SetupIssueSetup(TOPAZSC_JPEG_ENCODER_CONTEXT *pContext, const IMG_UINT32 ui32ComponentsInScan, IMG_UINT8* aui8Planes, object_surface_p pTFrame, const IMG_UINT32 ui32TableA , const IMG_UINT32 ui32TableB)
+{
+ IMG_UINT32 ReturnCode = 0;
+ IMG_INT32 i32Lp;
+ //COMPONENTPLANE* pSrcPlane;
+ IMG_UINT32 srf_buf_offset;
+ context_ENC_p ctx = (context_ENC_p)pContext->ctx;
+ pnw_cmdbuf_p cmdbuf = ctx->obj_context->pnw_cmdbuf;
+ /*TOPAZSC_JPEG_ENCODER_CONTEXT *pContext = pEncContext->psJpegHC;*/
+
+#ifdef JPEG_VERBOSE
+ printf("\nSetupIssueSetup");
+#endif
+
+ pContext->pMTXSetup->ui32ComponentsInScan = ui32ComponentsInScan;
+ pContext->pMTXSetup->ui32DataInterleaveStatus = ISCHROMAINTERLEAVED(pContext->eFormat);
+ pContext->pMTXSetup->ui32TableA = ui32TableA;
+
+ /*MMUpdateDeviceMemory( pContext->pMemInfoMTXSetup )*/;
+ // we want to process the handles that have been placed into the buffer
+ /*for(n=0;n<pContext->pMTXSetup->ui32ComponentsInScan;n++)
+ {
+ pSrcPlane = &pContext->pMTXSetup->ComponentPlane[n];
+ TIMER_START(hardwareduration,"");
+ MMDeviceMemWriteDeviceMemRef(pContext->pMemInfoMTXSetup->iu32MemoryRegionID, pContext->pMemInfoMTXSetup->hShadowMem, (IMG_UINT32) ((IMG_BYTE*)&pSrcPlane->ui32PhysAddr - (IMG_BYTE*)pContext->pMTXSetup),TAL_NULL_MANGLER_ID,(IMG_HANDLE) pTFrame->psBuffer->pMemInfo->hShadowMem, pTFrame->aui32ComponentOffset[aui8Planes[n]]);
+ TIMER_END("HW - MMDeviceMemWriteDeviceMemRef in SetupIssueSetup (hostjpeg.c)");
+ }*/
+ /*Support PL12/NV12, YV12/IYUV, YV16*/
+ srf_buf_offset = pTFrame->psb_surface->buf.buffer_ofs;
+ RELOC_PIC_PARAMS_PNW(&pContext->pMTXSetup->ComponentPlane[0].ui32PhysAddr, srf_buf_offset , &pTFrame->psb_surface->buf);
+ switch (pContext->eFormat) {
+ case IMG_CODEC_IYUV:
+ case IMG_CODEC_PL8:
+ RELOC_PIC_PARAMS_PNW(&pContext->pMTXSetup->ComponentPlane[1].ui32PhysAddr,
+ srf_buf_offset + pTFrame->psb_surface->stride * pTFrame->height,
+ &pTFrame->psb_surface->buf);
+ RELOC_PIC_PARAMS_PNW(&pContext->pMTXSetup->ComponentPlane[2].ui32PhysAddr,
+ srf_buf_offset + pTFrame->psb_surface->stride * pTFrame->height
+ + (pTFrame->psb_surface->stride / 2) *(pTFrame->height / 2),
+ &pTFrame->psb_surface->buf);
+ break;
+ case IMG_CODEC_IMC2:
+ case IMG_CODEC_PL12:
+ case IMG_CODEC_NV12:
+ RELOC_PIC_PARAMS_PNW(&pContext->pMTXSetup->ComponentPlane[1].ui32PhysAddr,
+ srf_buf_offset + pTFrame->psb_surface->stride * pTFrame->height,
+ &pTFrame->psb_surface->buf);
+ //Byte interleaved surface, so need to force chroma to use single surface by fooling it into
+ //thinking it's dealing with standard 8x8 planaerblocks
+ RELOC_PIC_PARAMS_PNW(&pContext->pMTXSetup->ComponentPlane[2].ui32PhysAddr,
+ srf_buf_offset + pTFrame->psb_surface->stride * pTFrame->height
+ + 8,
+ &pTFrame->psb_surface->buf);
+ break;
+ case IMG_CODEC_YV16:
+ /*V*/
+ RELOC_PIC_PARAMS_PNW(&pContext->pMTXSetup->ComponentPlane[2].ui32PhysAddr,
+ srf_buf_offset + pTFrame->psb_surface->stride * pTFrame->height,
+ &pTFrame->psb_surface->buf);
+ /*U*/
+ RELOC_PIC_PARAMS_PNW(&pContext->pMTXSetup->ComponentPlane[1].ui32PhysAddr,
+ srf_buf_offset + pTFrame->psb_surface->stride * pTFrame->height
+ + (pTFrame->psb_surface->stride) *(pTFrame->height) / 2,
+ &pTFrame->psb_surface->buf);
+ break;
+ default:
+ psb__error_message(" Not supported FOURCC %x!\n", pContext->eFormat);
+ return -1;
+
+ }
+
+
+ psb__information_message("TOPAZ_PDUMP: ui32DataInterleaveStatus %x\n", pContext->pMTXSetup->ui32DataInterleaveStatus);
+ psb__information_message("TOPAZ_PDUMP: ui32TableA %x \n", pContext->pMTXSetup->ui32TableA);
+ psb__information_message("TOPAZ_PDUMP:ui32ComponentsInScan %x\n", pContext->pMTXSetup->ui32ComponentsInScan);
+ for (i32Lp = 0; i32Lp < 3; i32Lp++) {
+ psb__information_message("TOPAZ_PDUMP: ComponentPlane[%d]: 0x%x, %d, %d\n",
+ i32Lp, pContext->pMTXSetup->ComponentPlane[i32Lp].ui32PhysAddr, pContext->pMTXSetup->ComponentPlane[i32Lp].ui32Stride, pContext->pMTXSetup->ComponentPlane[i32Lp].ui32Height);
+ psb__information_message("TOPAZ_PDUMP: MCUComponent[%d]: %d, %d, %d, %d\n", i32Lp, pContext->pMTXSetup->MCUComponent[i32Lp].ui32WidthBlocks, pContext->pMTXSetup->MCUComponent[i32Lp].ui32HeightBlocks, pContext->pMTXSetup->MCUComponent[i32Lp].ui32XLimit, pContext->pMTXSetup->MCUComponent[i32Lp].ui32YLimit);
+ }
+
+ i32Lp = ctx->NumCores;
+ while (--i32Lp > -1) {
+ /*TOPAZ_InsertCommand(
+ pEncContext,
+ i32Lp,
+ MTX_CMDID_SETUP,
+ IMG_FALSE,
+ IMG_NULL,
+ pContext->pMemInfoMTXSetup );*/
+
+ pnw_cmdbuf_insert_command_package(ctx->obj_context,
+ i32Lp,
+ MTX_CMDID_SETUP,
+ &(ctx->obj_context->pnw_cmdbuf->header_mem),
+ 0);
+ }
+
+ return ReturnCode;
+}
+
+
+IMG_UINT32 Legacy_JPGEncodeSOSHeader(LEGACY_JPEG_ENCODER_CONTEXT *pContext, IMG_CODED_BUFFER *pCBuffer)
+{
+ IMG_UINT32 ui32TableIndex ;
+ IMG_UINT8 uc_comp_id, ui8Comp;
+ STREAMTYPEW s_streamW;
+ IMG_UINT8 *puc_stream_buff;
+
+ puc_stream_buff = (IMG_UINT8 *)(pCBuffer->pMemInfo) + pCBuffer->ui32BytesWritten;
+
+ s_streamW.Offset = 0;
+ s_streamW.Buffer = puc_stream_buff;
+ s_streamW.Limit = (pCBuffer->ui32Size - pCBuffer->ui32BytesWritten);
+
+ /* Start of scan */
+ fPutBitsToBuffer(&s_streamW, 2, START_OF_SCAN);
+ /* Scan header length */
+ fPutBitsToBuffer(&s_streamW, 2, 6 + (pContext->JPEGEncoderParams.uc_num_comp_in_scan << 1));
+ /* Number of image components in scan */
+ fPutBitsToBuffer(&s_streamW, 1, pContext->JPEGEncoderParams.uc_num_comp_in_scan);
+
+ if (pContext->JPEGEncoderParams.uc_num_comp_in_scan > MAX_COMP_IN_SCAN)
+ pContext->JPEGEncoderParams.uc_num_comp_in_scan = MAX_COMP_IN_SCAN;
+ for (ui8Comp = 0; ui8Comp < pContext->JPEGEncoderParams.uc_num_comp_in_scan; ui8Comp++) {
+ uc_comp_id = pContext->JPEGEncoderParams.puc_comp_id[ui8Comp];
+ if (uc_comp_id >= MAX_COMP_IN_SCAN) {
+ psb__error_message("Invalide component index %d\n", uc_comp_id);
+ uc_comp_id = MAX_COMP_IN_SCAN - 1;
+ }
+
+ ui32TableIndex = pContext->sJPEGEncoderComp.CompIdtoIndex[uc_comp_id];
+
+ /* Scan component selector */
+ fPutBitsToBuffer(&s_streamW, 1, uc_comp_id);
+
+ /*4 Bits Dc entropy coding table destination selector */
+ /*4 Bits Ac entropy coding table destination selector */
+ ui32TableIndex %= 255;
+ fPutBitsToBuffer(&s_streamW, 1, (pContext->sJPEGEncoderComp.puc_huff_table_id[ui32TableIndex] << 4) | pContext->sJPEGEncoderComp.puc_huff_table_id[ui32TableIndex]);
+ }
+
+ /* Start of spectral or predictor selection */
+ fPutBitsToBuffer(&s_streamW, 1, 0);
+ /* End of spectral selection */
+ fPutBitsToBuffer(&s_streamW, 1, 63);
+ /*4 Bits Successive approximation bit position high (0)*/
+ /*4 Bits Successive approximation bit position low or point transform (0)*/
+ fPutBitsToBuffer(&s_streamW, 1, 0);
+
+ pCBuffer->ui32BytesWritten += s_streamW.Offset;
+
+ return 0;
+}
+
+
+/***********************************************************************************
+ * Function Name : JPGEncodeSOSHeader
+ * Inputs : PContext - Pointer to JPEG context
+ * Inputs : pui8BitStreamBuffer start of the coded output buffer
+ * Inputs : pui32BytesWritten pointer to offset into the coded output buffer at which to write
+ * Outputs : pui8BitStreamBuffer - Start of Scan header written to the coded buffer
+ * Returns : Bytes writtren
+ * Description : This function writes the Start of Scan Header
+ ************************************************************************************/
+
+IMG_UINT32 JPGEncodeSOSHeader(/*in */ TOPAZSC_JPEG_ENCODER_CONTEXT *pContext,
+ /*out */ IMG_UINT8* pui8BitStreamBuffer ,
+ /*out*/ IMG_UINT32* pui32BytesWritten)
+{
+ IMG_UINT8 uc_comp_id, ui8Comp;
+ STREAMTYPEW s_streamW;
+
+ s_streamW.Offset = 0;
+ s_streamW.Buffer = pui8BitStreamBuffer + *pui32BytesWritten;
+
+ /* Start of scan */
+ fPutBitsToBuffer(&s_streamW, 2, START_OF_SCAN);
+ /* Scan header length */
+ fPutBitsToBuffer(&s_streamW, 2, 6 + (pContext->pMTXSetup->ui32ComponentsInScan << 1));
+ /* Number of image components in scan */
+ fPutBitsToBuffer(&s_streamW, 1, pContext->pMTXSetup->ui32ComponentsInScan);
+ for (ui8Comp = 0; ui8Comp < pContext->pMTXSetup->ui32ComponentsInScan; ui8Comp++) {
+ uc_comp_id = ui8Comp + 1;
+
+ /* Scan component selector */
+ fPutBitsToBuffer(&s_streamW, 1, uc_comp_id);
+
+ /*4 Bits Dc entropy coding table destination selector */
+ /*4 Bits Ac entropy coding table destination selector */
+ fPutBitsToBuffer(&s_streamW, 1, ((ui8Comp != 0 ? 1 : 0) << 4) | (ui8Comp != 0 ? 1 : 0)); // Huffman table refs = 0 Luma 1 Chroma
+ }
+
+ /* Start of spectral or predictor selection */
+ fPutBitsToBuffer(&s_streamW, 1, 0);
+ /* End of spectral selection */
+ fPutBitsToBuffer(&s_streamW, 1, 63);
+ /*4 Bits Successive approximation bit position high (0)*/
+ /*4 Bits Successive approximation bit position low or point transform (0)*/
+ fPutBitsToBuffer(&s_streamW, 1, 0);
+
+ *pui32BytesWritten += s_streamW.Offset;
+
+ return 0;
+}
+
+
+/*****************************************************************************/
+/* */
+/* Function Name : EncodeMJPEGAPP1Marker */
+/* */
+/* Description : Writes a Quicktime MJPEG (A) marker */
+/* */
+/* Inputs : */
+/* pContext - Ptr to the JPEG encoder context */
+/* puc_stream_buff - Ptr to the bistream buffer from */
+/* where to start writing */
+/* */
+/* Processing : */
+/* */
+/* Returns : Number of bytes written into the stream */
+/* */
+/*****************************************************************************/
+IMG_UINT32 Insert_QT_MJPEGA_APP1Marker(IMG_CODED_BUFFER *pCBuffer, IMG_UINT8 *pui8BitStreamBuffer, IMG_UINT32 ui32OffsetBytes, IMG_BOOL bIsFirstField)
+{
+ STREAMTYPEW ps_streamW;
+#ifdef JPEG_VERBOSE
+ printf("Insert_QT_MJPEGA_APP1Marker");
+#endif
+
+ ps_streamW.Offset = 0;
+ ps_streamW.Buffer = &pui8BitStreamBuffer[ui32OffsetBytes];
+
+ /* Writing the start of image marker */
+ fPutBitsToBuffer(&ps_streamW, 2, START_OF_IMAGE);
+ /* Writing the Motion-JPEG APP1 marker */
+ fPutBitsToBuffer(&ps_streamW, 2, MJPEG_APP1);
+ /* Marker content length */
+ fPutBitsToBuffer(&ps_streamW, 2, 0x002A);
+ /* Reserved, set to zero */
+ fPutBitsToBuffer(&ps_streamW, 4, 0x00000000);
+ /* Motion-JPEG tag = "mjpg"*/
+ fPutBitsToBuffer(&ps_streamW, 4, 0x6D6A7067);
+ /* Field size*/
+ fPutBitsToBuffer(&ps_streamW, 4, pCBuffer->ui32BytesWritten + 2 - ui32OffsetBytes); // +2 because the EOI marker not written yet
+ /* Padded Field size*/
+ fPutBitsToBuffer(&ps_streamW, 4, pCBuffer->ui32BytesWritten + 2 - ui32OffsetBytes);
+ /* Offset to next field*/
+ if (bIsFirstField)
+ fPutBitsToBuffer(&ps_streamW, 4, pCBuffer->ui32BytesWritten + 2 - ui32OffsetBytes); // Points to start of next field
+ else
+ fPutBitsToBuffer(&ps_streamW, 4, 0); // Set to zero for second field
+
+ /* Quantization Table Offset*/
+ // May be able to leave this at zero
+ fPutBitsToBuffer(&ps_streamW, 4, H_QT_OFFSET);
+ /* Huffman Table Offset*/
+ // May be able to leave this at zero
+ fPutBitsToBuffer(&ps_streamW, 4, H_HT_OFFSET);
+ /* Start Of Frame Offset*/
+ fPutBitsToBuffer(&ps_streamW, 4, H_SOF_OFFSET);
+ /* Start Of Scan Offset*/
+ fPutBitsToBuffer(&ps_streamW, 4, H_SOS_OFFSET);
+ /* Start of data offset*/
+ fPutBitsToBuffer(&ps_streamW, 4, H_SOI_OFFSET);
+
+ return 0;
+}
+
+/* JPEG Start picture function. Sets up all context information, Quantization details, Header output and MTX ready for the main encode loop*/
+IMG_ERRORCODE SetupJPEGTables(TOPAZSC_JPEG_ENCODER_CONTEXT * pContext, IMG_CODED_BUFFER *pCBuffer, object_surface_p pTFrame)
+{
+ /*IMG_UINT32 rc = 0;
+ const IMG_UINT8* StandardQuantLuma;
+ const IMG_UINT8* StandardQuantChroma;
+ IMG_UINT8* QuantLumaTableOnHost;
+ IMG_UINT8* QuantChromaTableOnHost;
+ JPEG_MTX_QUANT_TABLE * psQuantTables;*/
+ IMG_UINT16 ui16Lp;
+ IMG_UINT8 ui8Planes[MAX_COMP_IN_SCAN];
+ /*IMG_ENC_CONTEXT * pEncContext = (IMG_ENC_CONTEXT*)hEncContext;*/
+ /*TOPAZSC_JPEG_ENCODER_CONTEXT * pContext = pEncContext->psJpegHC;*/
+ IMG_INT8 i;
+ context_ENC_p ctx = (context_ENC_p)pContext->ctx;
+
+ // Lets add a pointer from our context to the source surface structure (remember we still need to use GETBUFFER commands if we want to get shared image memory, but info data structures are on host)
+ pContext->pSourceSurface = pTFrame;
+
+ //Try setting MCU details from here
+ /*JPGEncodeBegin(pContext, pTFrame);*/
+ InitializeJpegEncode(pContext, pTFrame);
+
+ // Special case for YUYV format
+ if (ISCHROMAINTERLEAVED(pContext->eFormat) > C_INTERLEAVE)
+ pContext->sScan_Encode_Info.ui32NumberMCUsX = (pContext->pMTXSetup->MCUComponent[0].ui32XLimit + ((pContext->pMTXSetup->MCUComponent[0].ui32WidthBlocks * 2) - 1)) / (pContext->pMTXSetup->MCUComponent[0].ui32WidthBlocks * 2);
+ else
+ pContext->sScan_Encode_Info.ui32NumberMCUsX = (pContext->pMTXSetup->MCUComponent[0].ui32XLimit + (pContext->pMTXSetup->MCUComponent[0].ui32WidthBlocks - 1)) / pContext->pMTXSetup->MCUComponent[0].ui32WidthBlocks;
+
+ pContext->sScan_Encode_Info.ui32NumberMCUsY = (pContext->pMTXSetup->MCUComponent[0].ui32YLimit + (pContext->pMTXSetup->MCUComponent[0].ui32HeightBlocks - 1)) / pContext->pMTXSetup->MCUComponent[0].ui32HeightBlocks;
+ pContext->sScan_Encode_Info.ui32NumberMCUsToEncode = pContext->sScan_Encode_Info.ui32NumberMCUsX * pContext->sScan_Encode_Info.ui32NumberMCUsY;
+
+ pContext->sScan_Encode_Info.ui32NumberMCUsToEncodePerScan =
+ JPEG_MCU_PER_SCAN(ctx->Width, ctx->Height, ctx->NumCores, pContext->eFormat);
+
+ psb__information_message("MCUs To Encode %dx%d\n",
+ pContext->sScan_Encode_Info.ui32NumberMCUsX,
+ pContext->sScan_Encode_Info.ui32NumberMCUsY);
+ psb__information_message("Total MCU %d, per scan %d\n", pContext->sScan_Encode_Info.ui32NumberMCUsToEncode, pContext->sScan_Encode_Info.ui32NumberMCUsToEncodePerScan);
+
+ //Allocate our coded data buffers here now we know the number of MCUs we're encoding
+ /*Use slice parameter buffer*/
+ if (AllocateCodedDataBuffers(pContext) != IMG_ERR_OK) return IMG_ERR_MEMORY;
+ // Send Setup message to MTX to initialise it
+ /*EncodeInitMTX(pEncContext); Set predictors to zero */
+
+ for (i = ctx->NumCores - 1; i >= 0; i--) {
+ pnw_cmdbuf_insert_command_package(
+ ((context_ENC_p)pContext->ctx)->obj_context,
+ i,
+ MTX_CMDID_RESET_ENCODE,
+ NULL,
+ 0);
+ }
+ //CODE HERE SIMPLIFIED AS WE KNOW THERE WILL ONLY EVER BE 3 IMAGE COMPONENTS
+ /* Set up Source panes for HW */
+ // Reverse colour plane pointers fed to MTX when required by format
+
+ switch (pContext->eFormat) {
+ case IMG_CODEC_YV16:
+ pContext->pMTXSetup->ComponentPlane[0].ui32Stride = pTFrame->psb_surface->stride;
+ pContext->pMTXSetup->ComponentPlane[1].ui32Stride = pTFrame->psb_surface->stride / 2;
+ pContext->pMTXSetup->ComponentPlane[2].ui32Stride = pTFrame->psb_surface->stride / 2;
+
+ pContext->pMTXSetup->ComponentPlane[0].ui32Height = pTFrame->height;
+ pContext->pMTXSetup->ComponentPlane[1].ui32Height = pTFrame->height;
+ pContext->pMTXSetup->ComponentPlane[2].ui32Height = pTFrame->height;
+
+ /*YV16's plane order is Y, V, U*/
+ ui8Planes[0] = 0;
+ ui8Planes[2] = 1;
+ ui8Planes[1] = 2;
+ break;
+ case IMG_CODEC_IYUV:
+ case IMG_CODEC_IMC2:
+ /*case IMG_CODEC_422_IMC2:
+ SetupYUVPlaneDetails(&(pContext->pMTXSetup->ComponentPlane[0]),
+ &(pTFrame->aui32ComponentInfo[0]));
+
+ SetupYUVPlaneDetails(&(pContext->pMTXSetup->ComponentPlane[2]),
+ &(pTFrame->aui32ComponentInfo[1]));
+
+ SetupYUVPlaneDetails(&(pContext->pMTXSetup->ComponentPlane[1]),
+ &(pTFrame->aui32ComponentInfo[2]));*/
+ pContext->pMTXSetup->ComponentPlane[0].ui32Stride = pTFrame->psb_surface->stride;
+ pContext->pMTXSetup->ComponentPlane[1].ui32Stride = pTFrame->psb_surface->stride / 2;
+ pContext->pMTXSetup->ComponentPlane[2].ui32Stride = pTFrame->psb_surface->stride / 2;
+
+ pContext->pMTXSetup->ComponentPlane[0].ui32Height = pTFrame->height;
+ pContext->pMTXSetup->ComponentPlane[1].ui32Height = pTFrame->height / 2;
+ pContext->pMTXSetup->ComponentPlane[2].ui32Height = pTFrame->height / 2;
+
+ //ui8Planes[0]=0;ui8Planes[1]=2;ui8Planes[2]=1;
+ /*IYUV don't need to swap UV color space. Not sure about IMC12*/
+ ui8Planes[0] = 0;
+ ui8Planes[1] = 1;
+ ui8Planes[2] = 2;
+ break;
+ default:
+ /*SetupYUVPlaneDetails(&(pContext->pMTXSetup->ComponentPlane[0]),
+ &(pTFrame->aui32ComponentInfo[0]));
+
+ SetupYUVPlaneDetails(&(pContext->pMTXSetup->ComponentPlane[1]),
+ &(pTFrame->aui32ComponentInfo[1]));
+
+ SetupYUVPlaneDetails(&(pContext->pMTXSetup->ComponentPlane[2]),
+ &(pTFrame->aui32ComponentInfo[2]));*/
+ /* It's for NV12*/
+ pContext->pMTXSetup->ComponentPlane[0].ui32Stride = pTFrame->psb_surface->stride;
+ pContext->pMTXSetup->ComponentPlane[1].ui32Stride = pTFrame->psb_surface->stride;
+ pContext->pMTXSetup->ComponentPlane[2].ui32Stride = pTFrame->psb_surface->stride;
+
+ pContext->pMTXSetup->ComponentPlane[0].ui32Height = pTFrame->height;
+ pContext->pMTXSetup->ComponentPlane[1].ui32Height = pTFrame->height / 2;
+ pContext->pMTXSetup->ComponentPlane[2].ui32Height = pTFrame->height / 2;
+
+ ui8Planes[0] = 0;
+ ui8Planes[1] = 1;
+ ui8Planes[2] = 2;
+ break;
+ };
+
+
+ SetupIssueSetup(pContext, pContext->pMTXSetup->ui32ComponentsInScan, ui8Planes, pTFrame, 0 , 1);
+
+ if (pContext->pMTXSetup->ui32ComponentsInScan > MAX_COMP_IN_SCAN) {
+ return IMG_ERR_UNDEFINED;
+ }
+
+ if ((pCBuffer->ui32Size - pCBuffer->ui32BytesWritten) < 9 + 6 + (4 *(IMG_UINT32)pContext->pMTXSetup->ui32ComponentsInScan)) {
+ return IMG_ERR_MEMORY;
+ }
+
+ // Reset Scan Encode structures - just in case
+ for (ui16Lp = 0; ui16Lp < pContext->sScan_Encode_Info.ui8NumberOfCodedBuffers; ui16Lp++) {
+ BUFFER_HEADER *pbh;
+
+ pContext->sScan_Encode_Info.aBufferTable[ui16Lp].i8MTXNumber = 0; // Indicates buffer is idle
+ pContext->sScan_Encode_Info.aBufferTable[ui16Lp].ui16ScanNumber = 0; // Indicates buffer is idle
+
+ pContext->sScan_Encode_Info.aBufferTable[ui16Lp].ui32DataBufferUsedBytes = 0;
+
+ //pbh = MMGetHostLinAddress(pContext->sScan_Encode_Info.aBufferTable[ui16Lp].pMemInfo );
+ pbh = (BUFFER_HEADER *)(pContext->sScan_Encode_Info.aBufferTable[ui16Lp].pMemInfo);
+ pbh->ui32BytesEncoded = 0;
+ pbh->ui32BytesUsed = sizeof(BUFFER_HEADER);
+ }
+
+ //Prefill out MTXIdleTable with MTX references (0 is the Master, and will be the last sent)
+ for (pContext->sScan_Encode_Info.ui8MTXIdleCnt = 0; pContext->sScan_Encode_Info.ui8MTXIdleCnt < ctx->NumCores; pContext->sScan_Encode_Info.ui8MTXIdleCnt++) {
+ pContext->sScan_Encode_Info.aui8MTXIdleTable[pContext->sScan_Encode_Info.ui8MTXIdleCnt] = pContext->sScan_Encode_Info.ui8MTXIdleCnt + 1;
+ }
+
+
+ //Need to set up CB Output slicenumber to equal number of slices required to encode image
+ // Set current CB scan to maximum scan number (will count down as scans are output)
+ pContext->sScan_Encode_Info.ui16CScan = (pContext->sScan_Encode_Info.ui32NumberMCUsToEncode + (pContext->sScan_Encode_Info.ui32NumberMCUsToEncodePerScan - 1)) / pContext->sScan_Encode_Info.ui32NumberMCUsToEncodePerScan;
+ pContext->sScan_Encode_Info.ui16ScansInImage = pContext->sScan_Encode_Info.ui16CScan;
+ // Set next scan to send to MTX to maximum scan number
+ pContext->sScan_Encode_Info.ui16SScan = pContext->sScan_Encode_Info.ui16CScan;
+ pContext->ui32InitialCBOffset = 0;
+
+ return IMG_ERR_OK;
+}
+
+IMG_ERRORCODE Legacy_PrepareHeader(LEGACY_JPEG_ENCODER_CONTEXT * pContext, IMG_CODED_BUFFER *pCBuffer)
+{
+ IMG_ERRORCODE rc;
+ IMG_UINT8 *ui8OutputBuffer;
+
+ ui8OutputBuffer = pCBuffer->pMemInfo;
+ //Lock our JPEG Coded buffer
+ /* if (IMG_JPEG_GetBuffer(pCBuffer, (IMG_VOID **) &ui8OutputBuffer)!=IMG_ERR_OK)
+ return IMG_ERR_SURFACE_LOCKED;*/
+
+ pCBuffer->ui32BytesWritten = 0;
+ *((IMG_UINT32*) ui8OutputBuffer) = 0;
+
+ // JPGEncodeMarker - Currently misses out the APP0 header
+ rc = Legacy_JPGEncodeMarker(pContext, (IMG_UINT8 *) ui8OutputBuffer, &pCBuffer->ui32BytesWritten);
+ if (rc) return rc;
+
+ rc = Legacy_JPGEncodeHeader(pContext , (IMG_UINT8 *) ui8OutputBuffer , &pCBuffer->ui32BytesWritten);
+ if (rc) return rc;
+
+ // JPGEncodeDRIMarker(pContext,pCBuffer);
+ Legacy_JPGEncodeSOSHeader(pContext, pCBuffer);
+
+ //IMG_JPEG_ReleaseBuffer( pCBuffer);
+
+
+ return IMG_ERR_OK;
+}
+/* Send header will work for each type of header*/
+
+/***********************************************************************************
+ * Function Name : PrepareHeader
+ * Inputs : Pointer to JPEG Context, Point to coded buffer
+ * Outputs :
+ * Returns : IMG_ERRORCODE
+ * Description : Writes required JPEG Header elements to the coded buffer
+ ************************************************************************************/
+IMG_ERRORCODE PrepareHeader(TOPAZSC_JPEG_ENCODER_CONTEXT * pContext, IMG_CODED_BUFFER *pCBuffer, IMG_UINT32 ui32StartOffset, IMG_BOOL bIncludeHuffmanTables)
+{
+ IMG_ERRORCODE rc;
+ IMG_UINT8 *ui8OutputBuffer;
+
+ //Lock our JPEG Coded buffer
+ /*if (IMG_C_GetBuffer((IMG_HENC_CONTEXT) pContext, pCBuffer, (IMG_VOID **) &ui8OutputBuffer)!=IMG_ERR_OK)
+ return IMG_ERR_SURFACE_LOCKED;*/
+
+ ui8OutputBuffer = (IMG_UINT8 *)pCBuffer->pMemInfo;
+ pCBuffer->ui32BytesWritten = ui32StartOffset;
+ *((IMG_UINT32*) ui8OutputBuffer + pCBuffer->ui32BytesWritten) = 0;
+
+
+ // JPGEncodeMarker - Currently misses out the APP0 header
+ rc = JPGEncodeMarker(pContext, (IMG_UINT8 *) ui8OutputBuffer, &pCBuffer->ui32BytesWritten, bIncludeHuffmanTables);
+ if (rc) return rc;
+
+ psb__information_message("Current bytes of coded buf used: %d\n", pCBuffer->ui32BytesWritten);
+ rc = JPGEncodeHeader(pContext , (IMG_UINT8 *) ui8OutputBuffer , &pCBuffer->ui32BytesWritten);
+ if (rc) return rc;
+
+ psb__information_message("Current bytes of coded buf used: %d\n", pCBuffer->ui32BytesWritten);
+ rc = JPGEncodeSOSHeader(pContext, (IMG_UINT8 *) ui8OutputBuffer, &pCBuffer->ui32BytesWritten);
+ if (rc) return rc;
+
+ psb__information_message("Current bytes of coded buf used: %d\n", pCBuffer->ui32BytesWritten);
+ /*IMG_C_ReleaseBuffer((IMG_HENC_CONTEXT) pContext, pCBuffer);*/
+ return IMG_ERR_OK;
+}
+
+
+
+
+/***********************************************************************************
+ * Function Name : IMG_JPEG_ISSUEBUFFERTOHW
+ * Inputs :
+ * Outputs : pui32MCUsToProccess
+ * Returns :
+ * Description : Issues a buffer to MTX to recieve coded data.
+ *
+ ************************************************************************************/
+
+IMG_ERRORCODE IssueBufferToHW(TOPAZSC_JPEG_ENCODER_CONTEXT *pContext, TOPAZSC_JPEG_BUFFER_INFO* pWriteBuf, IMG_UINT16 ui16BCnt, IMG_UINT32 ui32NoMCUsToEncode, IMG_INT8 i8MTXNumber)
+{
+ MTX_ISSUE_BUFFERS *psBufferCmd;
+ context_ENC_p ctx = (context_ENC_p)pContext->ctx;
+ /*IMG_ENC_CONTEXT * pEncContext = (IMG_ENC_CONTEXT*)hContext;
+ TOPAZSC_JPEG_ENCODER_CONTEXT *pContext = pEncContext->psJpegHC;*/
+
+#ifdef JPEG_VERBOSE
+ printf("\n**************************************************************************\n");
+ printf("** HOST SENDING Scan:%i (%i MCUs) to MTX %i, using Buffer %i\n", pWriteBuf->ui16ScanNumber, ui32NoMCUsToEncode, i8MTXNumber - 1, ui16BCnt);
+#endif
+ psb__information_message("HOST SENDING Scan:%d (%d MCUs, offset %d MCUs)"
+ " to MTX %d, using Buffer %d\n",
+ pWriteBuf->ui16ScanNumber, ui32NoMCUsToEncode,
+ pContext->sScan_Encode_Info.ui32CurMCUsOffset,
+ i8MTXNumber, ui16BCnt);
+
+ // Issue to MTX ////////////////////////////
+ ASSERT(pWriteBuf->pMemInfo);
+
+ // Lets send our input parameters using the device memory allocated for the coded output
+ psBufferCmd = (MTX_ISSUE_BUFFERS *)(pWriteBuf->pMemInfo);
+
+ // We've disabled size bound checking in firmware, so can use the full 31 bits for NoMCUsToEncode instead
+ //psBufferCmd->ui32MCUCntAndResetFlag = ( DATA_BUFFER_SIZE(pContext->sScan_Encode_Info.ui32NumberMCUsToEncodePerScan) << 16) | (ui32NoMCUsToEncode << 1) | 0x1;
+
+ psBufferCmd->ui32MCUCntAndResetFlag = (ui32NoMCUsToEncode << 1) | 0x1;
+ psBufferCmd->ui32CurrentMTXScanMCUPosition = pContext->sScan_Encode_Info.ui32CurMCUsOffset;
+ psb__information_message("TOPAZ_PDUMP: ui32MCUCntAndResetFlag 0x%x\n", psBufferCmd->ui32MCUCntAndResetFlag);
+ psb__information_message("TOPAZ_PDUMP: ui32CurrentMTXScanMCUPosition 0x%x\n", psBufferCmd->ui32CurrentMTXScanMCUPosition);
+ /* We do not need to do this but in order for params to match on HW we need to know whats in the buffer*/
+ /*MMUpdateDeviceMemory(pWriteBuf->pMemInfo );*/
+
+ /*TOPAZ_InsertCommand(
+ pEncContext,
+ (IMG_INT32) (i8MTXNumber-1),
+ MTX_CMDID_ISSUEBUFF,
+ IMG_FALSE,
+ &pWriteBuf->ui32WriteBackVal,
+ pWriteBuf->pMemInfo );*/
+ pnw_cmdbuf_insert_command_package(ctx->obj_context,
+ (IMG_INT32)(i8MTXNumber) ,
+ MTX_CMDID_ISSUEBUFF,
+ ctx->coded_buf->psb_buffer,
+ ui16BCnt * pContext->ui32SizePerCodedBuffer + PNW_JPEG_HEADER_MAX_SIZE);
+
+ return IMG_ERR_OK;
+}
+
+/***********************************************************************************
+ * Function Name : SubmitScanToMTX
+ * Inputs :
+ * pContext - Pointer to JPEG context
+ * ui16BCnt - Index of the buffer to associate with the MTX
+ * i8MTXNumber - The ID number of the MTX that will have a scan sent to it
+ * Outputs : Status update to current buffer, MTX is activated
+ * Returns : Errorcode
+ * Description : Associates the empty buffer with the inactive MTX and then
+ * starts a scan, with output to be sent to the buffer.
+ ************************************************************************************/
+
+IMG_ERRORCODE SubmitScanToMTX(TOPAZSC_JPEG_ENCODER_CONTEXT *pContext,
+ IMG_UINT16 ui16BCnt,
+ IMG_INT8 i8MTXNumber,
+ IMG_UINT32 ui32NoMCUsToEncode)
+{
+ /*IMG_ENC_CONTEXT * pEncContext = (IMG_ENC_CONTEXT*)hContext;
+ TOPAZSC_JPEG_ENCODER_CONTEXT *pContext = pEncContext->psJpegHC;*/
+
+
+#if 0
+ // Submit a scan and buffer to the appropriate MTX unit
+ IMG_UINT32 ui32NoMCUsToEncode;
+
+ if (pContext->sScan_Encode_Info.ui16SScan == 0) {
+ // Final scan, may need fewer MCUs than buffer size, calculate the remainder
+ ui32NoMCUsToEncode = pContext->sScan_Encode_Info.ui32NumberMCUsToEncode % pContext->sScan_Encode_Info.ui32NumberMCUsToEncodePerScan;
+ if (ui32NoMCUsToEncode == 0) ui32NoMCUsToEncode = pContext->sScan_Encode_Info.ui32NumberMCUsToEncodePerScan;
+ } else
+ ui32NoMCUsToEncode = pContext->sScan_Encode_Info.ui32NumberMCUsToEncodePerScan;
+#endif
+ //Set the buffer returned size to -1
+ pContext->sScan_Encode_Info.aBufferTable[ui16BCnt].ui32DataBufferUsedBytes = ((BUFFER_HEADER*)(pContext->sScan_Encode_Info.aBufferTable[ui16BCnt].pMemInfo))->ui32BytesUsed = -1; // Won't be necessary with SC Peek commands enabled
+ IssueBufferToHW(pContext, &(pContext->sScan_Encode_Info.aBufferTable[ui16BCnt]), ui16BCnt, ui32NoMCUsToEncode, i8MTXNumber);
+
+ psb__information_message("Submitting scan %i to MTX %i and Buffer %i\n", pContext->sScan_Encode_Info.aBufferTable[ui16BCnt].ui16ScanNumber, i8MTXNumber, ui16BCnt);
+ return IMG_ERR_OK;
+}
+
+
+void pnw_jpeg_set_default_qmatix(void *pMemInfoTableBlock)
+{
+ JPEG_MTX_QUANT_TABLE *pQTable = pMemInfoTableBlock;
+ memcpy(pQTable->aui8LumaQuantParams, gQuantLuma, QUANT_TABLE_SIZE_BYTES);
+ memcpy(pQTable->aui8ChromaQuantParams, gQuantChroma, QUANT_TABLE_SIZE_BYTES);
+ return;
+}
diff --git a/src/pnw_hostjpeg.h b/src/pnw_hostjpeg.h
new file mode 100644
index 0000000..363d291
--- /dev/null
+++ b/src/pnw_hostjpeg.h
@@ -0,0 +1,675 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ * Elaine Wang <elaine.wang@intel.com>
+ *
+ */
+
+
+#ifndef _PNW_HOST_JPEG_H_
+#define _PNW_HOST_JPEG_H_
+
+#include <img_types.h>
+
+#define QUANT_TABLE_SIZE_BYTES (64) //!<JPEG input quantization table size
+
+#define MTX_MAX_COMPONENTS (3) //<!JPEG input parameter sizes
+
+#define PNW_JPEG_COMPONENTS_NUM (3)
+
+#define PNW_JPEG_HEADER_MAX_SIZE (1024)
+/*Limit the scan size to maximum useable (due to it being used as the
+ * 16 bit field for Restart Intervals) = 0xFFFF MCUs
+ * In reality, worst case allocatable bytes is less than this, something
+ * around 0x159739C == 0x4b96 MCUs = 139 x 139 MCUS = 2224 * 2224 pixels, approx.
+ * We'll give this upper limit some margin for error, and limit our
+ * MCUsPerScan to 2000 * 2000 pixels = 125 * 125 MCUS = 0x3D09 MCUS
+ * = 0x116F322 bytes (1170 worst case per MCU)*/
+#define JPEG_MAX_MCU_PER_SCAN 0x3D09
+
+#define JPEG_MCU_NUMBER(width, height, eFormat) \
+ ((((width) + 15) / 16) * (((height) + 15) / 16) * \
+ (((eFormat) == IMG_CODEC_YV16) ? 2 : 1))
+
+#define JPEG_MCU_PER_CORE(width, height, core, eFormat) \
+ ((core) > 1 ? ((JPEG_MCU_NUMBER(width, height, eFormat) + (core) - 1) / (core))\
+ :JPEG_MCU_NUMBER(width, height, eFormat))
+
+#define JPEG_SCANNING_COUNT(width, height, core, eFormat) \
+ ((JPEG_MCU_PER_CORE(width, height, core, eFormat) > JPEG_MAX_MCU_PER_SCAN) ? \
+ ((JPEG_MCU_NUMBER(width, height, eFormat) + JPEG_MAX_MCU_PER_SCAN - 1) \
+ / JPEG_MAX_MCU_PER_SCAN) \
+ : (core))
+
+#define JPEG_MCU_PER_SCAN(width, height, core, eFormat) \
+ ((JPEG_MCU_PER_CORE(width, height, core, eFormat) > JPEG_MAX_MCU_PER_SCAN) ? \
+ JPEG_MAX_MCU_PER_SCAN : JPEG_MCU_PER_CORE(width, height, core, eFormat))
+
+/*The start address of every segment must align 128bits -- DMA burst width*/
+#define JPEG_CODED_BUF_SEGMENT_SIZE(total, width, height, core, eFormat) \
+ (((total) - PNW_JPEG_HEADER_MAX_SIZE) / \
+ JPEG_SCANNING_COUNT(ctx->Width, ctx->Height, ctx->NumCores, eFormat) \
+ & (~0xf))
+
+/*pContext->sScan_Encode_Info.ui32NumberMCUsToEncodePerScan=(pContext->sScan_Encode_Info.ui32NumberMCUsToEncode+pEncContext->i32NumCores-1)/pEncContext->i32NumCores;
+ *pContext->sScan_Encode_Info.aBufferTable[ui8Loop].ui32DataBufferSizeBytes = (DATA_BUFFER_SIZE(pContext->sScan_Encode_Info.ui32NumberMCUsToEncodePerScan) +sizeof(BUFFER_HEADER)) + 3 & ~3;
+ ui32NumberMCUsToEncode is equal (width/16) * (height/16)
+ MAX_MCU_SIZE is 1170
+ For 352x288, size of data buffer is 231676.
+ The number of data buffer is equal to the number of cores minus one*/
+#define PNW_JPEG_CODED_BUF_SIZE(width, height, NumCores) ((((((width) + 15) / 16) * (((height) + 15) / 16) * MAX_MCU_SIZE ) + 0xf) & ~0xf)
+
+
+typedef struct {
+ unsigned int ui32Width; //!< Width of the image component
+ unsigned int ui32Stride; //!< Stride of the image component
+ unsigned int ui32Step; //!< Step of the image component
+ unsigned int ui32Height; //!< Height of the image component
+
+} COMP_INFO;
+
+typedef struct {
+ unsigned int ui32OutputWidth; //!< Width of the JPEG image
+ unsigned int ui32OutputHeight; //!< Height of the JPEG image
+ unsigned int ui32Components; //!< Number of components in the image ( 1 or 3 )
+ COMP_INFO sCompInfo[3]; //!< Array containing component info
+
+} IMG_JPEG_INFO;
+
+typedef enum _img_format_ {
+ IMG_CODEC_IYUV, /* IYUV */
+ IMG_CODEC_IMC2, /* IMC2 */
+ IMG_CODEC_PL8,
+ IMG_CODEC_PL12,
+ IMG_CODEC_NV12,
+ IMG_CODEC_YV16,
+} IMG_FORMAT;
+
+typedef struct {
+ IMG_UINT32 ui32BytesUsed; //!<
+ IMG_UINT32 ui32BytesEncoded; //!<
+ IMG_UINT32 ui32BytesToEncode; //!<
+ IMG_UINT32 ui32Reserved3; //!<
+
+} BUFFER_HEADER;
+
+typedef enum {
+ IMG_ERR_OK = 0, //!< OK
+ IMG_ERR_SURFACE_LOCKED = 1, //!< The requested surface was locked
+ IMG_ERR_MEMORY = 2, //!< A memory error occured
+ IMG_ERR_FILE = 3, //!< A file error occured
+ IMG_ERR_NOBUFFERAVAILABLE = 4, //!< No buffer was available
+ IMG_ERR_COMPLETE = 5, //!< Command is complete
+ IMG_ERR_INVALID_CONTEXT = 6, //!< An invalid context was given
+ IMG_ERR_INVALID_SIZE = 7, //!< An invalid size was given
+ IMG_ERR_TIMEOUT = 8, //!< Timeout
+ IMG_ERR_UNDEFINED = -1
+
+} IMG_ERRORCODE;
+
+/*!
+ * *****************************************************************************
+ *
+ * @details Struct sent with the MTX_CMDID_ISSUEBUFF command detailing
+ * where a scan encode should begin (calculated from the total count of MCUs)
+ * and how many MCU's should be processed in this scan.
+ *
+ * @brief JPEG structure defining scan start position and how many MCUs to process
+ *
+ ****************************************************************************/
+typedef struct {
+ IMG_UINT32 ui32CurrentMTXScanMCUPosition; //!< Scan start position in MCUs
+ IMG_UINT32 ui32MCUCntAndResetFlag; //!< [32:2] Number of MCU's to encode or decode, [1] Reset predictors (1=Reset, 0=No Reset)
+
+} MTX_ISSUE_BUFFERS;
+/*!
+ * *****************************************************************************
+ *
+ * @details Struct describing surface component info
+ *
+ * @brief Surface component info
+ *
+ *****************************************************************************/
+typedef struct {
+ IMG_UINT32 ui32Step;
+ IMG_UINT32 ui32Width;
+ IMG_UINT32 ui32Height;
+ IMG_UINT32 ui32PhysWidth;
+ IMG_UINT32 ui32PhysHeight;
+
+} IMG_SURF_COMPONENT_INFO;
+
+/*!
+ * *****************************************************************************
+ *
+ * @details Enum describing buffer lock status
+ *
+ * @brief Buffer lock status
+ *
+ ****************************************************************************/
+typedef enum {
+ BUFFER_FREE = 1, //!< Buffer is not locked
+ HW_LOCK, //!< Buffer is locked by hardware
+ SW_LOCK, //!< Buffer is locked by software
+ NOTDEVICEMEMORY, //!< Buffer is not a device memory buffer
+} LOCK_STATUS;
+
+
+/*!v
+ * *****************************************************************************
+ *
+ * @details Struct describing a coded data buffer
+ *
+ * @brief Coded data buffer
+ *
+ * ****************************************************************************/
+typedef struct {
+ void* pMemInfo; //!< Pointer to the memory handle for the buffer
+ LOCK_STATUS sLock; //!< Lock status for the buffer
+ IMG_UINT32 ui32Size; //!< Size in bytes of the buffer
+ IMG_UINT32 ui32BytesWritten; //!< Number of bytes written into buffer
+} IMG_BUFFER, IMG_CODED_BUFFER;
+
+
+
+/*!
+ * *****************************************************************************
+ *
+ * @details Struct describing a frame
+ *
+ * @brief Frame information
+ *
+ ****************************************************************************/
+typedef struct {
+ IMG_BUFFER *psBuffer; //!< pointer to the image buffer
+ IMG_UINT32 ui32Width; //!< stride of pBuffer
+ IMG_UINT32 ui32Height; //!< height of picture in pBuffer
+
+ IMG_UINT32 ui32ComponentCount; //!< number of colour components used
+ IMG_FORMAT eFormat; //!< Format of the surface
+
+ IMG_UINT32 aui32ComponentOffset[3]; //!< Offset of the planes within the surface
+ IMG_SURF_COMPONENT_INFO aui32ComponentInfo[3]; //!< Component plane information
+
+} IMG_FRAME, JPEG_SOURCE_SURFACE;
+#define MAX_NUMBER_OF_MTX_UNITS 4 // Number of MTX units
+/* Number of buffers for encode coded data*/
+#define NUMBER_OF_BUFFS 3 // Should be at least equal to number of MTX's for optimal performance
+#define SIM_TEST_NUMBER_OF_BUFFS 3 // Should be at least equal to number of MTX's for optimal performance
+#define BLOCKCOUNTMAXPERCOLOURPLANE 6 // Would be 10 for max theoretically possible.. 6 is our actual max
+#define MAX_MCU_SIZE (((8*8)+1)*3 * BLOCKCOUNTMAXPERCOLOURPLANE)
+#define SIM_TEST_MCUS_IN_BUFFER 22
+#define RL_END_OF_BLOCK 0xff
+#define DATA_BUFFER_SIZE(mcus_in_buffer) (MAX_MCU_SIZE*mcus_in_buffer)
+#define DMEMORYMCUSATSIXSEVENTY_ESTIMATE 55488
+
+#define C_INTERLEAVE 1
+#define LC_UVINTERLEAVE 2
+#define LC_VUINTERLEAVE 3
+
+//#define ISCHROMAINTERLEAVED(eSurfaceFormat) ((IMG_UINT) (eSurfaceFormat==IMG_CODEC_Y0UY1V_8888)*LC_UVINTERLEAVE)+((IMG_UINT) (eSurfaceFormat==IMG_CODEC_Y0VY1U_8888)*LC_VUINTERLEAVE)+((IMG_UINT) (eSurfaceFormat==IMG_CODEC_PL12 || eSurfaceFormat==IMG_CODEC_422_PL12)*C_INTERLEAVE)
+
+#define ISCHROMAINTERLEAVED(eSurfaceFormat) ((IMG_UINT) (eSurfaceFormat==IMG_CODEC_PL12 || eSurfaceFormat==IMG_CODEC_NV12)*C_INTERLEAVE)
+/*****************************************************************************/
+/* \brief MAX_COMP_IN_SCAN */
+/* */
+/* Maximum components that can be encoded in a scan as specified by the */
+/* JPEG specification. */
+/*****************************************************************************/
+#define MAX_COMP_IN_SCAN 4
+//#define MTX_CMD_BUF_SIZE (32)
+//#define MTX_MAX_COMPONENTS (3)
+#define PERF 1
+
+/******************************************************************************
+ General definitions for static header offsets (used for MJPEG A headers)
+ ******************************************************************************/
+#define H_QT_OFFSET 46
+#define H_HT_OFFSET 184
+#define H_SOF_OFFSET 622
+#define H_SOS_OFFSET 642
+#define H_SOI_OFFSET 656
+
+
+
+/******************************************************************************
+ General definitions
+ ******************************************************************************/
+#define BYTE 8
+#define BYTES_IN_INT 4
+#define BITS_IN_INT 32
+#define BLOCK_SIZE 8
+#define PELS_IN_BLOCK 64
+
+/******************************************************************************
+ MJPEG A marker definitions
+ ******************************************************************************/
+#define MJPEG_APP1 0xFFE1
+
+/******************************************************************************
+ JPEG marker definitions
+ ******************************************************************************/
+#define START_OF_IMAGE 0xFFD8
+#define SOF_BASELINE_DCT 0xFFC0
+#define END_OF_IMAGE 0xFFD9
+#define START_OF_SCAN 0xFFDA
+
+
+
+
+/* Definitions for the huffman table specification in the Marker segment */
+#define DHT_MARKER 0xFFC4
+#define LH_DC 0x001F
+#define LH_AC 0x00B5
+#define LEVEL_SHIFT 128
+
+/* Definitions for the quantization table specification in the Marker segment */
+#define DQT_MARKER 0xFFDB
+#define ACMAX 0x03FF
+#define DCMAX 0x07FF
+/* Length and precision of the quantization table parameters */
+#define LQPQ 0x00430
+#define QMAX 255
+#define CLIP(Number,Max,Min) if((Number) > (Max)) (Number) = (Max); \
+ else if((Number) < (Min)) (Number) = (Min)
+#define AVAILABLE ( 0 )
+#define JPEG_ENCODE_LOCK ( 0x20 )
+
+
+
+//////////////////////////////////////////////////////////////////////////////////////////////
+// Structures unchanged by TopazSc
+//////////////////////////////////////////////////////////////////////////////////////////////
+
+//typedef struct
+//{
+// IMG_UINT32 ui32BytesUsed;
+// IMG_UINT32 ui32BytesEncoded;
+// IMG_UINT32 ui32Reserved2;
+// IMG_UINT32 ui32Reserved3;
+//} BUFFER_HEADER;
+
+/*****************************************************************************/
+/* STREAMTYPEW */
+/* Container to store the stream context */
+/*****************************************************************************/
+typedef struct {
+ IMG_UINT8 *Buffer; /*!< Ptr to the bitstream buffer */
+ IMG_UINT32 Offset; /*!< Offset in the bitstream buffer */
+ IMG_UINT32 Limit;
+} STREAMTYPEW;
+
+//typedef struct
+//{
+// IMG_UINT32 ui32WidthBlocks ; /* Width in pixels, shall be a multiple of 8*/
+// IMG_UINT32 ui32HeightBlocks ; /* Height in pixels, shall be a multiple of 8*/
+// IMG_UINT32 ui32XLimit; /* Blocks will not be encoded beyond this */
+// IMG_UINT32 ui32YLimit; /* Blocks will not be encoded beyond this */
+//} MCUCOMPONENT;
+//
+//typedef struct
+//{
+// IMG_UINT32 ui32PhysAddr; /* Physical address Component plane in shared memory*/
+// IMG_UINT32 ui32Stride; /* Stride of source plane */
+// IMG_UINT32 ui32Height; /* Height of avaliable data in plane. shall be a minumum of one MCU high */
+//} COMPONENTPLANE;
+//
+//
+//typedef struct
+//{
+///// The following values are DMA'd straight across from host
+// COMPONENTPLANE ComponentPlane[MTX_MAX_COMPONENTS];
+// MCUCOMPONENT MCUComponent[MTX_MAX_COMPONENTS];
+// IMG_UINT32 ui32ComponentsInScan; /* Number of compnents */
+// IMG_UINT32 ui32TableA; /* Quantisation table for Luma component*/
+// IMG_UINT32 ui32DataInterleaveStatus; /*What kind of interleaving is required*/
+//} JPEG_MTX_DMA_SETUP;
+
+
+//typedef struct
+//{
+//// IMG_UINT32 ui32BufferPhysAddr; /* Physical address of buffer table in shared memory*/
+// IMG_UINT32 ui32CurrentMTXScanMCUPosition; // Scan start position in MCUs
+// IMG_UINT32 ui32SizeAndProcMCUCount;/* [31:16] Valid data in bytes
+// [15:0] Number of MCU's to encode or decode */
+//} MTX_ISSUE_BUFFERS;
+
+
+
+
+//////////////////////////////////////////////////////////////////////////////////////////////
+// Old Topaz structures (retained for backward compatibility with sim tests)
+//////////////////////////////////////////////////////////////////////////////////////////////
+
+typedef struct {
+ IMG_UINT32 ui32BytesPendingEDMA;
+ IMG_UINT32 ui32BytesEncoded;
+ IMG_UINT32 ui32BlocksEncoded;
+} LEGACY_ENCODE_HEADER;
+
+typedef enum {
+ BUFF_BUSY_IN_HW_0, /* Indicates that this buffer is in use by the hardware */
+ BUFF_BUSY_IN_SW, /* Indicates that this buffer is in use by sw */
+ BUFF_AVALIABLE, /* Indicates this buffer can be submitted to hw */
+} LEGACY_BUFFER_STATUS;
+
+/*****************************************************************************/
+/* \brief _EncType */
+/* */
+/* JPEG low level encoder context structure */
+/*****************************************************************************/
+typedef struct {
+ // STREAMTYPEW streamW; /*!< Ptr to the stream context */
+ const IMG_UINT16 *ACCode[2]; /*!< Ptr to the huffman tables to code AC coeffs */
+ const IMG_UINT8 *ACSize[2]; /*!< Ptr to the huffman tables to code AC coeffs */
+ const IMG_UINT16 *DCCode[2]; /*!< Ptr to the huffman tables to code DC coeffs */
+ const IMG_UINT8 *DCSize[2]; /*!< Ptr to the huffman tables to code DC coeffs */
+
+ IMG_UINT8 *Qmatrix[MAX_COMP_IN_SCAN];/*!< Ptr to the Quant tables */
+ IMG_UINT8 uc_num_mcu_x; /*!< Number of MCUs in the horizontal direction */
+ IMG_UINT8 uc_num_mcu_y; /*!< Number of MCUs in the vertical direction */
+
+ IMG_UINT8 aui8QuantTable[MAX_COMP_IN_SCAN][64]; /* Area for creating tables */
+} LEGACY_ENCTYPE;
+
+typedef struct {
+ IMG_UINT8* pData;
+ IMG_UINT32 ui32DataBufferSize;
+ IMG_UINT32 OpNum;
+ IMG_UINT32 ui32numberOfMCUs;
+ LEGACY_BUFFER_STATUS eBufferStatus;
+ struct MEMORY_INFO_TAG* pMemInfo;
+
+ IMG_UINT32 ui32CurrentIndexAccessPos;
+ IMG_UINT32 ui32CurrentIndexHeaderPos;
+#ifdef PERF
+ IMG_UINT32 ui32IssueTime;
+#endif
+
+} LEGACY_BUFFERINFO;
+
+
+/*****************************************************************************/
+/* LEGACY_JPEGENC_ITTIAM_PARAMS */
+/* */
+/* Pointer to the JPEG encoder parameter context. This structure is used by */
+/* the sample application to pass configuration parameters to the encoder. */
+/*****************************************************************************/
+typedef struct {
+ IMG_UINT8 uc_num_q_tables; /*!< Number of Q tables */
+ IMG_UINT16 ui16_q_factor; /*!< Quality factor */
+ IMG_UINT8 puc_q_table_id[4]; /*!< Q table ID */
+ IMG_UINT8 puc_q_table[4][64]; /*!< Q tables */
+ IMG_UINT8 uc_isAbbreviated; /*!< 0: Interchange ; 1: Abbreviated */
+ IMG_UINT8 uc_num_comp_in_scan; /*!< Number of components in scan (<= 3) */
+ IMG_UINT8 puc_comp_id[MAX_COMP_IN_SCAN]; /*!< Component identifier */
+ IMG_UINT16 ui16_width; /*!< Width of the JPEG image */
+ IMG_UINT16 ui16_height; /*!< Height of the JPEG image */
+} LEGACY_JPEGENC_ITTIAM_PARAMS;
+
+typedef struct {
+ IMG_UINT8 uc_num_comp_in_img; /*!< Number of components in image */
+ IMG_UINT8 puc_comp_id[255]; /*!< Component identifier */
+ IMG_UINT8 puc_q_table_id[255]; /*!< Q table id to use */
+ IMG_UINT8 puc_huff_table_id[255];/*!< Huff table id to use */
+ IMG_UINT8 *puc_comp_buff[255]; /*!< Ptr to the component buff */
+ IMG_UINT16 pui16_comp_width[255]; /*!< Width of the component buff */
+ IMG_UINT16 pui16_comp_height[255];/*!< Height of the component buff */
+ IMG_UINT8 puc_horiz_scale[MAX_COMP_IN_SCAN];/*!< Component horizontal scale factor */
+ IMG_UINT8 puc_vert_scale[MAX_COMP_IN_SCAN]; /*!< Component vertical scale factor */
+
+ IMG_UINT8 CompIdtoIndex[MAX_COMP_IN_SCAN];
+
+} LEGACY_JPEGENC_ITTIAM_COMPONENT;
+
+typedef enum {
+ LEGACY_JPEG_API_CURRENT_ACTIVE_NONE,
+ LEGACY_JPEG_API_CURRENT_ACTIVE_ENCODE,
+ LEGACY_JPEG_API_CURRENT_ACTIVE_DECODE,
+
+} LEGACY_JPEG_API_CURRENT_ACTIVE;
+
+
+/*!
+ * *****************************************************************************
+ *
+ * @details Struct describing Minimum Coded Unit information for a single JPEG component plane.
+ * Details the size of blocks to be taken from the plane and the maximum block positions.
+ * Send to firmware in the MTX_CMDID_SETUP command as part of the JPEG_MTX_DMA_SETUP structure
+ *
+ * @brief JPEG Minimum Coded Unit Information
+ *
+ *****************************************************************************/
+typedef struct {
+ IMG_UINT32 ui32WidthBlocks; //!< Width in pixels, shall be a multiple of 8
+ IMG_UINT32 ui32HeightBlocks; //!< Height in pixels, shall be a multiple of 8
+ IMG_UINT32 ui32XLimit; //!< Blocks will not be encoded beyond this
+ IMG_UINT32 ui32YLimit; //!< Blocks will not be encoded beyond this
+
+} MCUCOMPONENT;
+
+
+/*!
+ * *****************************************************************************
+ *
+ * @details Struct describing essential information about a single JPEG component plane, defines the
+ * Physical address of the colour plane, its stride and its height.
+ * Send to firmware in the MTX_CMDID_SETUP command as part of the JPEG_MTX_DMA_SETUP structure.
+ *
+ * @brief Basic information for a single JPEG component plane, passed to firmware.
+ *
+ *****************************************************************************/
+typedef struct {
+ IMG_UINT32 ui32PhysAddr; //!< Physical address Component plane in shared memory
+ IMG_UINT32 ui32Stride; //!< Stride of source plane */
+ IMG_UINT32 ui32Height; //!< Height of avaliable data in plane. shall be a minumum of one MCU high
+
+} COMPONENTPLANE;
+
+
+/*!
+ * *****************************************************************************
+ *
+ * @details Struct describing essential information required by firmware to encode a scan.
+ * Send to firmware in the MTX_CMDID_SETUP command.
+ *
+ * @brief Setup information for a single JPEG scan.
+ *
+ *****************************************************************************/
+typedef struct {
+ COMPONENTPLANE ComponentPlane[MTX_MAX_COMPONENTS]; //!< Array of component plane source information (detailing physical address, stride and height)
+ MCUCOMPONENT MCUComponent[MTX_MAX_COMPONENTS]; //!< Array of Minimum Coded Unit information for each component plane
+ IMG_UINT32 ui32ComponentsInScan; //!< Number of components
+ IMG_UINT32 ui32TableA; //!< Quantisation table for Luma component
+ IMG_UINT32 ui32DataInterleaveStatus; //!< Source component interleave status (0, C_INTERLEAVE, LC_UVINTERLEAVE or LC_VUINTERLEAVE)
+
+} JPEG_MTX_DMA_SETUP;
+
+/* JPEG HW Interface state structure */
+typedef struct {
+ struct MEMORY_INFO_TAG* pMemInfoMTXSetup;
+ JPEG_MTX_DMA_SETUP* pMTXSetup;
+
+ struct MEMORY_INFO_TAG* pMemInfoTableBlock;
+ IMG_UINT8 *pui8TablesBlock;
+
+ LEGACY_ENCODE_HEADER* pLastEncodeHeader;
+
+ LEGACY_BUFFERINFO asRLCBuffers[SIM_TEST_NUMBER_OF_BUFFS];
+
+ IMG_UINT8* pLocalMemBuffer;
+
+ IMG_UINT32 ui32CurrentIndex;
+
+ /* These are used by by encode */
+ IMG_UINT32 rlcWriteIndex;
+ IMG_UINT32 rlcReadIndex;
+
+ /* It would be nice to get rid of this */
+ LEGACY_BUFFERINFO* pCurrBuff;
+ IMG_UINT8* pReadFromRLE;
+
+ IMG_UINT32 uiLastDCValue;
+
+ IMG_BOOL bNeedRestart;
+
+#ifdef PERF
+ IMG_UINT32 ui32PendingBufferTime;
+ IMG_UINT32 ui32ProccessDelay;
+ IMG_UINT32 ui32TotalBytesTX;
+ IMG_UINT32 ui32TotalTXTime;
+#endif
+
+} LEGACY_MTXJPEG_HOST_STATE;
+
+typedef struct {
+ LEGACY_JPEGENC_ITTIAM_PARAMS JPEGEncoderParams;
+ LEGACY_JPEGENC_ITTIAM_COMPONENT sJPEGEncoderComp;
+ IMG_UINT32 BytesUsed;
+ IMG_UINT8* pui8ByteBuffer;
+ IMG_JPEG_INFO sJpegInfo ;
+ LEGACY_ENCTYPE* pvLowLevelEncContext;
+ LEGACY_JPEG_API_CURRENT_ACTIVE eCurrentActive;
+ struct MEMORY_INFO_TAG *pHWSync;
+ LEGACY_MTXJPEG_HOST_STATE* gpMTXHostState;
+ IMG_UINT32 ui32MCUsWaitingToBeSentToHW;
+ IMG_UINT32 ui32MCUsPendingHWEnc;
+ IMG_UINT32 ui32BlocksHWEncoded;
+ IMG_UINT8 ui32JPEGBytesWritten;
+ IMG_UINT32 MCUsToDo;
+ IMG_UINT16 ui16Quality;
+ IMG_HANDLE ui32Handles[MTX_MAX_COMPONENTS];
+ IMG_UINT32 ui32Offsets[MTX_MAX_COMPONENTS];
+ JPEG_SOURCE_SURFACE sSurf;
+
+} LEGACY_JPEG_ENCODER_CONTEXT;
+
+
+
+//////////////////////////////////////////////////////////////////////////////////////////////
+// New TopazSc structures
+//////////////////////////////////////////////////////////////////////////////////////////////
+
+typedef struct {
+ void * pMemInfo;
+ IMG_UINT16 ui16ScanNumber;
+ IMG_UINT32 ui32WriteBackVal;
+ IMG_INT8 i8MTXNumber; // Doubles as status indicator ( <0 = Awaiting output to CB, 0 = Idle, >0 = Being filled by MTX)
+ IMG_UINT32 MTXOpNum; // Handle returned from MTX issuebuff command, can be used to check for completion
+ IMG_UINT32 ui32DataBufferSizeBytes;
+ IMG_UINT32 ui32DataBufferUsedBytes;
+} TOPAZSC_JPEG_BUFFER_INFO;
+
+typedef struct {
+ IMG_UINT16 ui16CScan; /*The number of scans to be done, ui32NumberMCUsToEncode / ui32NumberMCUsToEncodePerScan*/
+ IMG_UINT16 ui16SScan; /*The current index of scan*/
+ IMG_UINT16 ui16ScansInImage;
+ IMG_UINT8 ui8MTXIdleCnt;
+ IMG_UINT8 aui8MTXIdleTable[MAX_NUMBER_OF_MTX_UNITS];
+ TOPAZSC_JPEG_BUFFER_INFO *aBufferTable;
+ IMG_UINT32 ui32NumberMCUsX; /* Width / 16*/
+ IMG_UINT32 ui32NumberMCUsY; /* Height / 16*/
+ IMG_UINT32 ui32NumberMCUsToEncode; /*Total number of MCUs to encode*/
+ IMG_UINT32 ui32NumberMCUsToEncodePerScan; /*Number of MCUs per scan, should be ui32NumberMCUsX * ui32NumberMCUsY*/
+ IMG_UINT8 ui8NumberOfCodedBuffers;
+ IMG_UINT32 ui32CurMCUsOffset;
+} TOPAZSC_SCAN_ENCODE_INFO;
+
+typedef struct {
+ IMG_UINT8 aui8LumaQuantParams[QUANT_TABLE_SIZE_BYTES]; //!< Luma quant params
+ IMG_UINT8 aui8ChromaQuantParams[QUANT_TABLE_SIZE_BYTES]; //!< Chroma quant params
+
+} JPEG_MTX_QUANT_TABLE;
+
+typedef struct context_jpeg_ENC_s {
+
+ IMG_FORMAT eFormat;
+ /*IMG_UINT16 ui16Quality;*/
+ IMG_UINT32 ui32OutputWidth;
+ IMG_UINT32 ui32OutputHeight;
+ IMG_UINT32 ui32InitialCBOffset;
+
+ object_surface_p pSourceSurface;
+ void * pMemInfoMTXSetup;
+ JPEG_MTX_DMA_SETUP* pMTXSetup;
+
+ void * pMemInfoTableBlock;
+ JPEG_MTX_QUANT_TABLE *psTablesBlock;
+
+ IMG_UINT32 ui32Offsets[MTX_MAX_COMPONENTS];
+
+ TOPAZSC_SCAN_ENCODE_INFO sScan_Encode_Info;
+
+ IMG_CODED_BUFFER jpeg_coded_buf;
+
+ void *ctx;
+ IMG_UINT32 ui32SizePerCodedBuffer;
+ IMG_UINT8 ui8ScanNum;
+} TOPAZSC_JPEG_ENCODER_CONTEXT;
+
+//////////////////////////////////////////////////////
+//Function Declarations unchanged by TopazSC
+//////////////////////////////////////////////////////
+void SetCompInfoFromFormat(IMG_FORMAT eFormat, IMG_UINT32 ui32Width, IMG_UINT32 ui32Height, IMG_JPEG_INFO *psJpegInfo);
+/* This function will copy data from one buffer to another where the destination has a different stride */
+void APP_CopyToWithStride(IMG_UINT8* pSrc, IMG_UINT8* pDest , IMG_UINT32 ui32SrcWidth, IMG_UINT32 ui32SrcPhysWidth, IMG_UINT32 ui32SrcStep, IMG_UINT32 ui32SrcHeight, IMG_UINT32 ui32DestPhysWidth, IMG_UINT32 ui32DestPhysHeight);
+IMG_ERRORCODE SetupJPEGSourceSurface(IMG_FORMAT eSurfaceFormat, IMG_UINT32 ui32FrameWidth, IMG_UINT32 ui32FrameHeight, JPEG_SOURCE_SURFACE *pSurf);
+//void FlushByteAlignedBuffer(IMG_UINT32 *pui_buff, IMG_UINT32 *ui_bytes_to_flush, FILE *pf_out);
+
+//////////////////////////////////////////////////////
+//Legacy function declarations - most of these will eventually be removed
+//////////////////////////////////////////////////////
+IMG_ERRORCODE Legacy_PrepareHeader(LEGACY_JPEG_ENCODER_CONTEXT * pContext, IMG_CODED_BUFFER *pCBuffer);
+//IMG_ERRORCODE Legacy_AllocateCodedDataBuffers(LEGACY_JPEG_ENCODER_CONTEXT *pContext);
+//IMG_ERRORCODE Legacy_host_InitialiseHardware(LEGACY_JPEG_ENCODER_CONTEXT *pContext);
+//IMG_ERRORCODE Legacy_IMG_JPEG_EndPicture(IMG_HENC_CONTEXT hEncContext, IMG_CODED_BUFFER *pCBuffer);
+//IMG_ERRORCODE Legacy_IMG_JPEG_FreeBuffer(LEGACY_JPEG_ENCODER_CONTEXT * pContext, IMG_CODED_BUFFER **ppCBuffer);
+//IMG_ERRORCODE Legacy_IMG_JPEG_DeAllocateFrames(LEGACY_JPEG_ENCODER_CONTEXT *pContext,IMG_FRAME_ARRAY **pFrameArray);
+//IMG_ERRORCODE Legacy_IMG_JPEG_EncoderInitialise(IMG_UINT16 ui16Width, IMG_UINT16 ui16Height, IMG_FORMAT eFormat, LEGACY_JPEG_ENCODER_CONTEXT ** ppContext);
+//IMG_ERRORCODE Legacy_IMG_JPEG_EncoderDeInitialise(LEGACY_JPEG_ENCODER_CONTEXT * pContext);
+//IMG_ERRORCODE Legacy_IMG_JPEG_AllocateFrames(LEGACY_JPEG_ENCODER_CONTEXT *pContext, IMG_UINT16 ui16ArraySize,IMG_FRAME_ARRAY **ppFrameArray);
+//IMG_ERRORCODE Legacy_IMG_JPEG_AllocateCodedBuffer(LEGACY_JPEG_ENCODER_CONTEXT * pContext, IMG_UINT32 ui32CBufferSize, IMG_CODED_BUFFER **ppCBuffer);
+//IMG_ERRORCODE Legacy_IMG_JPEG_StartPicture(IMG_HENC_CONTEXT hEncContext, IMG_UINT16 ui16Quality, IMG_CODED_BUFFER *pCBuffer,IMG_FRAME *pTFrame);
+
+//////////////////////////////////////////////////////
+//TopazSc Function Declarations
+//////////////////////////////////////////////////////
+IMG_ERRORCODE PrepareHeader(TOPAZSC_JPEG_ENCODER_CONTEXT * pContext, IMG_CODED_BUFFER *pCBuffer, IMG_UINT32 ui32StartOffset, IMG_BOOL bIncludeHuffmanTables);
+IMG_ERRORCODE AllocateCodedDataBuffers(TOPAZSC_JPEG_ENCODER_CONTEXT *pContext);
+//IMG_ERRORCODE IMG_JPEG_EndPicture(IMG_HENC_CONTEXT hEncContext, IMG_CODED_BUFFER *pCBuffer);
+//IMG_ERRORCODE IMG_JPEG_FreeBuffer(TOPAZSC_JPEG_ENCODER_CONTEXT * pContext, IMG_CODED_BUFFER **ppCBuffer);
+//IMG_ERRORCODE IMG_JPEG_DeAllocateFrames(TOPAZSC_JPEG_ENCODER_CONTEXT *pContext,IMG_FRAME_ARRAY **pFrameArray);
+//IMG_ERRORCODE IMG_JPEG_EncoderInitialise(IMG_HENC_CONTEXT hEncContext,IMG_UINT16 ui16Width, IMG_UINT16 ui16Height, IMG_FORMAT eFormat, TOPAZSC_JPEG_ENCODER_CONTEXT ** ppContext);
+//IMG_ERRORCODE IMG_JPEG_EncoderDeInitialise(TOPAZSC_JPEG_ENCODER_CONTEXT * pContext);
+//IMG_ERRORCODE IMG_JPEG_AllocateFrames(TOPAZSC_JPEG_ENCODER_CONTEXT *pContext, IMG_UINT32 ui32ArraySize,IMG_FRAME_ARRAY **ppFrameArray);
+IMG_ERRORCODE IMG_JPEG_AllocateCodedBuffer(IMG_UINT32 ui32CBufferSize, IMG_CODED_BUFFER **ppCBuffer);
+//IMG_ERRORCODE IMG_JPEG_StartPicture(IMG_HENC_CONTEXT hEncContext, IMG_UINT16 ui16Quality, IMG_CODED_BUFFER *pCBuffer,IMG_FRAME *pTFrame, IMG_UINT32 ui32StartOffset, IMG_BOOL bIncludeHuffmanTables);
+
+IMG_ERRORCODE InitializeJpegEncode(TOPAZSC_JPEG_ENCODER_CONTEXT * pContext, object_surface_p pTFrame);
+IMG_ERRORCODE SetupJPEGTables(TOPAZSC_JPEG_ENCODER_CONTEXT * pContext, IMG_CODED_BUFFER *pCBuffer, object_surface_p pTFrame);
+IMG_ERRORCODE SubmitScanToMTX(TOPAZSC_JPEG_ENCODER_CONTEXT *pContext, IMG_UINT16 ui16BCnt, IMG_INT8 i8MTXNumber, IMG_UINT32 ui32NoMCUsToEncode);
+void pnw_jpeg_set_default_qmatix(void *pMemInfoTableBlock);
+void fPutBitsToBuffer(STREAMTYPEW *BitStream, IMG_UINT8 NoOfBytes, IMG_UINT32 ActualBits);
+#endif /*_HOST_JPEG_H_*/
diff --git a/src/pnw_jpeg.c b/src/pnw_jpeg.c
new file mode 100644
index 0000000..4138a5e
--- /dev/null
+++ b/src/pnw_jpeg.c
@@ -0,0 +1,568 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ * Elaine Wang <elaine.wang@intel.com>
+ *
+ */
+
+
+#include <stdlib.h>
+#include <stdint.h>
+#include <string.h>
+
+#include "psb_def.h"
+#include "psb_surface.h"
+#include "psb_cmdbuf.h"
+#include "pnw_jpeg.h"
+#include "pnw_hostcode.h"
+#include "pnw_hostheader.h"
+#include "pnw_hostjpeg.h"
+
+#define INIT_CONTEXT_JPEG context_ENC_p ctx = (context_ENC_p) obj_context->format_data
+#define SURFACE(id) ((object_surface_p) object_heap_lookup( &ctx->obj_context->driver_data->surface_heap, id ))
+#define BUFFER(id) ((object_buffer_p) object_heap_lookup( &ctx->obj_context->driver_data->buffer_heap, id ))
+
+static const uint32_t aui32_jpg_mtx_num[PNW_JPEG_MAX_SCAN_NUM] = {0x1, 0x1, 0x1, 0x5, 0x15, 0x15, 0x55};
+
+static void pnw_jpeg_QueryConfigAttributes(
+ VAProfile profile,
+ VAEntrypoint entrypoint,
+ VAConfigAttrib *attrib_list,
+ int num_attribs)
+{
+ int i;
+
+ psb__information_message("pnw_jpeg_QueryConfigAttributes\n");
+
+ /* RateControl attributes */
+ for (i = 0; i < num_attribs; i++) {
+ switch (attrib_list[i].type) {
+ case VAConfigAttribRTFormat:
+ break;
+ default:
+ attrib_list[i].value = VA_ATTRIB_NOT_SUPPORTED;
+ break;
+ }
+ }
+
+ return;
+}
+
+
+static VAStatus pnw_jpeg_ValidateConfig(
+ object_config_p obj_config)
+{
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ psb__information_message("pnw_jpeg_ValidateConfig\n");
+
+ return vaStatus;
+
+}
+
+/*Init JPEG context. Ported from IMG_JPEG_EncoderInitialise*/
+static VAStatus pnw_jpeg_CreateContext(
+ object_context_p obj_context,
+ object_config_p obj_config)
+{
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ context_ENC_p ctx;
+ TOPAZSC_JPEG_ENCODER_CONTEXT *jpeg_ctx_p;
+ int i;
+
+ psb__information_message("pnw_jpeg_CreateContext\n");
+
+ vaStatus = pnw_CreateContext(obj_context, obj_config, 1);
+ if (VA_STATUS_SUCCESS != vaStatus)
+ return VA_STATUS_ERROR_ALLOCATION_FAILED;
+
+ ctx = (context_ENC_p) obj_context->format_data;
+
+ ctx->eCodec = IMG_CODEC_JPEG;
+
+ for (i = 0; i < obj_config->attrib_count; i++) {
+ if (VAConfigAttribRTFormat == obj_config->attrib_list[i].type) {
+ switch (obj_config->attrib_list[i].value) {
+ case VA_RT_FORMAT_YUV420:
+ ctx->eFormat = IMG_CODEC_PL12;
+ psb__information_message("JPEG encoding: Choose NV12 format\n");
+ break;
+ case VA_RT_FORMAT_YUV422:
+ ctx->eFormat = IMG_CODEC_YV16;
+ psb__information_message("JPEG encoding: Choose YV16 format\n");
+ break;
+ default:
+ psb__error_message("JPEG encoding: unsupported YUV format!\n");
+ ctx->eFormat = IMG_CODEC_PL12;
+ break;
+ }
+ break;
+ }
+ }
+
+ ctx->Slices = 2;
+ ctx->ParallelCores = 2;
+ ctx->NumCores = 2;
+ ctx->jpeg_ctx = (TOPAZSC_JPEG_ENCODER_CONTEXT *)calloc(1, sizeof(TOPAZSC_JPEG_ENCODER_CONTEXT));
+
+ if (NULL == ctx->jpeg_ctx)
+ return VA_STATUS_ERROR_ALLOCATION_FAILED;
+
+ jpeg_ctx_p = ctx->jpeg_ctx;
+ jpeg_ctx_p->eFormat = ctx->eFormat;
+
+ /*Chroma sampling step x_step X y_step*/
+ jpeg_ctx_p->ui8ScanNum = JPEG_SCANNING_COUNT(ctx->Width, ctx->Height, ctx->NumCores, jpeg_ctx_p->eFormat);
+
+ if (jpeg_ctx_p->ui8ScanNum < 2 || jpeg_ctx_p->ui8ScanNum > PNW_JPEG_MAX_SCAN_NUM) {
+ psb__error_message("JPEG MCU scanning number(%d) is wrong!\n", jpeg_ctx_p->ui8ScanNum);
+ free(ctx->jpeg_ctx);
+ ctx->jpeg_ctx = NULL;
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ jpeg_ctx_p->sScan_Encode_Info.ui8NumberOfCodedBuffers = jpeg_ctx_p->ui8ScanNum;
+
+ psb__information_message(" JPEG Scanning Number %d\n", jpeg_ctx_p->ui8ScanNum);
+ jpeg_ctx_p->sScan_Encode_Info.aBufferTable =
+ (TOPAZSC_JPEG_BUFFER_INFO *)calloc(1, sizeof(TOPAZSC_JPEG_BUFFER_INFO)
+ * jpeg_ctx_p->sScan_Encode_Info.ui8NumberOfCodedBuffers);
+
+ if (NULL == jpeg_ctx_p->sScan_Encode_Info.aBufferTable)
+ return VA_STATUS_ERROR_ALLOCATION_FAILED;
+ jpeg_ctx_p->ui32OutputWidth = ctx->Width;
+ jpeg_ctx_p->ui32OutputHeight = ctx->Height;
+
+ /*It will be figured out when known the size of whole coded buffer.*/
+ jpeg_ctx_p->ui32SizePerCodedBuffer = 0;
+
+ jpeg_ctx_p->ctx = ctx;
+ /*Reuse header_mem(76*4 bytes) and pic_params_size(256 bytes)
+ * as pMemInfoMTXSetup(JPEG_MTX_DMA_SETUP 24x4 bytes) and
+ * pMemInfoTableBlock JPEG_MTX_QUANT_TABLE(128byes)*/
+ return vaStatus;
+}
+
+
+static void pnw_jpeg_DestroyContext(
+ object_context_p obj_context)
+{
+ context_ENC_p ctx;
+
+ psb__information_message("pnw_jpeg_DestroyPicture\n");
+
+ ctx = (context_ENC_p)(obj_context->format_data);
+
+ if (ctx->jpeg_ctx) {
+ if (ctx->jpeg_ctx->sScan_Encode_Info.aBufferTable) {
+ free(ctx->jpeg_ctx->sScan_Encode_Info.aBufferTable);
+ ctx->jpeg_ctx->sScan_Encode_Info.aBufferTable = NULL;
+ }
+
+ free(ctx->jpeg_ctx);
+ }
+ pnw_DestroyContext(obj_context);
+
+}
+
+static VAStatus pnw_jpeg_BeginPicture(
+ object_context_p obj_context)
+{
+ INIT_CONTEXT_JPEG;
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ int ret;
+ pnw_cmdbuf_p cmdbuf;
+
+ psb__information_message("pnw_jpeg_BeginPicture: Frame %d\n", ctx->obj_context->frame_count);
+
+ ctx->src_surface = ctx->obj_context->current_render_target;
+
+ /* Initialise the command buffer */
+ ret = pnw_context_get_next_cmdbuf(ctx->obj_context);
+ if (ret) {
+ psb__information_message("get next cmdbuf fail\n");
+ vaStatus = VA_STATUS_ERROR_UNKNOWN;
+ return vaStatus;
+ }
+ cmdbuf = ctx->obj_context->pnw_cmdbuf;
+
+ /* map start_pic param */
+ vaStatus = psb_buffer_map(&cmdbuf->pic_params, &cmdbuf->pic_params_p);
+ if (vaStatus) {
+ return vaStatus;
+ }
+ vaStatus = psb_buffer_map(&cmdbuf->header_mem, &cmdbuf->header_mem_p);
+ if (vaStatus) {
+ psb_buffer_unmap(&cmdbuf->pic_params);
+ return vaStatus;
+ }
+
+ memset(ctx->jpeg_ctx->sScan_Encode_Info.aBufferTable, 0,
+ sizeof(TOPAZSC_JPEG_BUFFER_INFO) * ctx->jpeg_ctx->sScan_Encode_Info.ui8NumberOfCodedBuffers);
+
+ /*Store the QMatrix data*/
+ ctx->jpeg_ctx->pMemInfoTableBlock = cmdbuf->pic_params_p;
+ ctx->jpeg_ctx->psTablesBlock = (JPEG_MTX_QUANT_TABLE *)ctx->jpeg_ctx->pMemInfoTableBlock;
+
+ /*Store MTX_SETUP data*/
+ ctx->jpeg_ctx->pMemInfoMTXSetup = cmdbuf->header_mem_p;
+ ctx->jpeg_ctx->pMTXSetup = (JPEG_MTX_DMA_SETUP*)ctx->jpeg_ctx->pMemInfoMTXSetup;
+
+ ctx->jpeg_ctx->pMTXSetup->ui32ComponentsInScan = PNW_JPEG_COMPONENTS_NUM;
+
+ if (ctx->obj_context->frame_count == 0) { /* first picture */
+
+ psb_driver_data_p driver_data = ctx->obj_context->driver_data;
+
+ *cmdbuf->cmd_idx++ = ((MTX_CMDID_SW_NEW_CODEC & MTX_CMDWORD_ID_MASK) << MTX_CMDWORD_ID_SHIFT) |
+ (((driver_data->drm_context & MTX_CMDWORD_COUNT_MASK) << MTX_CMDWORD_COUNT_SHIFT));
+ pnw_cmdbuf_insert_command_param(ctx->eCodec);
+ pnw_cmdbuf_insert_command_param((ctx->Width << 16) | ctx->Height);
+ }
+
+ pnw_jpeg_set_default_qmatix(ctx->jpeg_ctx->pMemInfoTableBlock);
+
+ InitializeJpegEncode(ctx->jpeg_ctx, ctx->src_surface);
+
+ return vaStatus;
+}
+
+static VAStatus pnw__jpeg_process_picture_param(context_ENC_p ctx, object_buffer_p obj_buffer)
+{
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ VAEncPictureParameterBufferJPEG *pBuffer;
+ pnw_cmdbuf_p cmdbuf = ctx->obj_context->pnw_cmdbuf;
+ BUFFER_HEADER *pBufHeader;
+ //unsigned long *pPictureHeaderMem;
+ //MTX_HEADER_PARAMS *psPicHeader;
+ int i;
+ TOPAZSC_JPEG_ENCODER_CONTEXT *jpeg_ctx = ctx->jpeg_ctx;
+ IMG_ERRORCODE rc;
+
+ ASSERT(obj_buffer->type == VAEncPictureParameterBufferType);
+
+ if ((obj_buffer->num_elements != 1) ||
+ (obj_buffer->size != sizeof(VAEncPictureParameterBufferJPEG))) {
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ /* Transfer ownership of VAEncPictureParameterBufferMPEG4 data */
+ pBuffer = (VAEncPictureParameterBufferJPEG *) obj_buffer->buffer_data;
+ obj_buffer->buffer_data = NULL;
+ obj_buffer->size = 0;
+
+ ASSERT(ctx->Width == pBuffer->picture_width);
+ ASSERT(ctx->Height == pBuffer->picture_height);
+
+ ctx->coded_buf = BUFFER(pBuffer->coded_buf);
+
+ free(pBuffer);
+
+ if (NULL == ctx->coded_buf) {
+ psb__error_message("%s L%d Invalid coded buffer handle\n", __FUNCTION__, __LINE__);
+ return VA_STATUS_ERROR_INVALID_BUFFER;
+ }
+
+ psb__information_message("Set Quant Tables\n");
+ /*Set Quant Tables*/
+ for (i = ctx->NumCores - 1; i >= 0; i--)
+ pnw_cmdbuf_insert_command_package(ctx->obj_context,
+ i,
+ MTX_CMDID_SETQUANT,
+ &cmdbuf->pic_params,
+ 0);
+
+ psb__information_message("Quant Table \n");
+
+ for (i = 0; i < 128 ; i++) {
+ psb__information_message("%d \t", *((unsigned char *)cmdbuf->pic_params_p + i));
+ if (((i + 1) % 8) == 0)
+ psb__information_message("\n");
+ }
+
+ jpeg_ctx->ui32SizePerCodedBuffer =
+ JPEG_CODED_BUF_SEGMENT_SIZE(ctx->coded_buf->size,
+ ctx->Width, ctx->Height, ctx->NumCores, jpeg_ctx->eFormat);
+
+ psb__information_message("Coded buffer total size is %d,"
+ "coded segment size per scan is %d\n",
+ ctx->coded_buf->size, jpeg_ctx->ui32SizePerCodedBuffer);
+
+ vaStatus = psb_buffer_map(ctx->coded_buf->psb_buffer, &jpeg_ctx->jpeg_coded_buf.pMemInfo);
+ if (vaStatus) {
+ psb__error_message("ERROR: Map coded_buf failed!");
+ return vaStatus;
+ }
+ jpeg_ctx->jpeg_coded_buf.ui32Size = ctx->coded_buf->size;
+ jpeg_ctx->jpeg_coded_buf.sLock = BUFFER_FREE;
+ jpeg_ctx->jpeg_coded_buf.ui32BytesWritten = 0;
+
+ psb__information_message("Setup JPEG Tables\n");
+ rc = SetupJPEGTables(ctx->jpeg_ctx, &jpeg_ctx->jpeg_coded_buf, ctx->src_surface);
+
+ if (rc != IMG_ERR_OK)
+ return VA_STATUS_ERROR_UNKNOWN;
+
+ psb__information_message("Write JPEG Headers to coded buf\n");
+
+ pBufHeader = (BUFFER_HEADER *)jpeg_ctx->jpeg_coded_buf.pMemInfo;
+ pBufHeader->ui32BytesUsed = 0; /* Not include BUFFER_HEADER*/
+ rc = PrepareHeader(jpeg_ctx, &jpeg_ctx->jpeg_coded_buf, sizeof(BUFFER_HEADER), IMG_TRUE);
+ if (rc != IMG_ERR_OK)
+ return VA_STATUS_ERROR_UNKNOWN;
+
+ pBufHeader->ui32Reserved3 = PNW_JPEG_HEADER_MAX_SIZE;//Next coded buffer offset
+ pBufHeader->ui32BytesUsed = jpeg_ctx->jpeg_coded_buf.ui32BytesWritten - sizeof(BUFFER_HEADER);
+
+ psb__information_message("JPEG Buffer Header size: %d, File Header size :%d, next codef buffer offset: %d\n",
+ sizeof(BUFFER_HEADER), pBufHeader->ui32BytesUsed, pBufHeader->ui32Reserved3);
+ return vaStatus;
+}
+
+static VAStatus pnw__jpeg_process_qmatrix_param(context_ENC_p ctx, object_buffer_p obj_buffer)
+{
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ VAQMatrixBufferJPEG *pBuffer;
+ JPEG_MTX_QUANT_TABLE* pQMatrix = (JPEG_MTX_QUANT_TABLE *)
+ (ctx->jpeg_ctx->pMemInfoTableBlock);
+
+ ASSERT(obj_buffer->type == VAQMatrixBufferType);
+
+ pBuffer = (VAQMatrixBufferJPEG *) obj_buffer->buffer_data;
+
+ if (0 != pBuffer->load_lum_quantiser_matrix) {
+ memcpy(pQMatrix->aui8LumaQuantParams,
+ pBuffer->lum_quantiser_matrix,
+ QUANT_TABLE_SIZE_BYTES);
+ }
+
+ if (0 != pBuffer->load_chroma_quantiser_matrix) {
+ memcpy(pQMatrix->aui8ChromaQuantParams,
+ pBuffer->chroma_quantiser_matrix,
+ QUANT_TABLE_SIZE_BYTES);
+ }
+
+ free(obj_buffer->buffer_data);
+ obj_buffer->buffer_data = NULL;
+
+ return vaStatus;
+}
+
+
+static VAStatus pnw_jpeg_RenderPicture(
+ object_context_p obj_context,
+ object_buffer_p *buffers,
+ int num_buffers)
+{
+ INIT_CONTEXT_JPEG;
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ int i;
+
+ psb__information_message("pnw_jpeg_RenderPicture\n");
+
+ for (i = 0; i < num_buffers; i++) {
+ object_buffer_p obj_buffer = buffers[i];
+
+ switch (obj_buffer->type) {
+ case VAQMatrixBufferType:
+ psb__information_message("pnw_jpeg_RenderPicture got VAEncSliceParameterBufferType\n");
+ vaStatus = pnw__jpeg_process_qmatrix_param(ctx, obj_buffer);
+ DEBUG_FAILURE;
+ break;
+ case VAEncPictureParameterBufferType:
+ psb__information_message("pnw_jpeg_RenderPicture got VAEncPictureParameterBufferType\n");
+ vaStatus = pnw__jpeg_process_picture_param(ctx, obj_buffer);
+ DEBUG_FAILURE;
+ break;
+ default:
+ vaStatus = VA_STATUS_ERROR_UNKNOWN;
+ DEBUG_FAILURE;
+ }
+ }
+
+ return vaStatus;
+}
+
+/* Add Restart interval termination (RSTm)to coded buf 1 ~ NumCores-1*/
+static inline VAStatus pnw_OutputResetIntervalToCB(IMG_UINT8 *pui8Buf, IMG_UINT8 ui8_marker)
+{
+ if (NULL == pui8Buf)
+ return VA_STATUS_ERROR_UNKNOWN;
+ /*Refer to CCITT Rec. T.81 (1992 E), B.2.1*/
+ /*RSTm: Restart marker conditional marker which is placed between
+ * entropy-coded segments only if restartis enabled. There are 8 unique
+ * restart markers (m = 0 - 7) which repeat in sequence from 0 to 7, starting with
+ * zero for each scan, to provide a modulo 8 restart interval count*/
+ *pui8Buf++ = 0xff;
+ *pui8Buf = (ui8_marker | 0xd0);
+ return 0;
+}
+
+
+static VAStatus pnw_jpeg_EndPicture(
+ object_context_p obj_context)
+{
+ INIT_CONTEXT_JPEG;
+ IMG_UINT16 ui16BCnt;
+ TOPAZSC_JPEG_ENCODER_CONTEXT *pContext = ctx->jpeg_ctx;
+ IMG_UINT32 rc = 0;
+ pnw_cmdbuf_p cmdbuf = (pnw_cmdbuf_p)ctx->obj_context->pnw_cmdbuf;
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ IMG_UINT32 ui32NoMCUsToEncode;
+ IMG_UINT32 ui32RemainMCUs;
+
+ psb__information_message("pnw_jpeg_EndPicture\n");
+
+ ui32RemainMCUs = pContext->sScan_Encode_Info.ui32NumberMCUsToEncode;
+
+ for (ui16BCnt = 0; ui16BCnt < pContext->sScan_Encode_Info.ui8NumberOfCodedBuffers
+ && pContext->sScan_Encode_Info.ui16SScan > 0; ui16BCnt++) {
+ pContext->sScan_Encode_Info.aBufferTable[ui16BCnt].ui16ScanNumber =
+ pContext->sScan_Encode_Info.ui16SScan--;
+ /*i8MTXNumber is the core number.*/
+ pContext->sScan_Encode_Info.aBufferTable[ui16BCnt].i8MTXNumber =
+ (aui32_jpg_mtx_num[pContext->sScan_Encode_Info.ui8NumberOfCodedBuffers - 2]
+ >> ui16BCnt) & 0x1;
+
+ if (pContext->sScan_Encode_Info.ui16SScan == 0) {
+ ui32NoMCUsToEncode = ui32RemainMCUs;
+ // Final scan, may need fewer MCUs than buffer size, calculate the remainder
+ } else
+ ui32NoMCUsToEncode = pContext->sScan_Encode_Info.ui32NumberMCUsToEncodePerScan;
+
+ pContext->sScan_Encode_Info.ui32CurMCUsOffset =
+ pContext->sScan_Encode_Info.ui32NumberMCUsToEncode - ui32RemainMCUs;
+
+ rc = SubmitScanToMTX(pContext, ui16BCnt,
+ pContext->sScan_Encode_Info.aBufferTable[ui16BCnt].i8MTXNumber, ui32NoMCUsToEncode);
+ if (rc != IMG_ERR_OK) {
+ vaStatus = VA_STATUS_ERROR_UNKNOWN;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ ui32RemainMCUs -= ui32NoMCUsToEncode;
+ }
+
+ psb_buffer_unmap(&cmdbuf->pic_params);
+ cmdbuf->pic_params_p = NULL;
+ psb_buffer_unmap(&cmdbuf->header_mem);
+ cmdbuf->header_mem_p = NULL;
+ /*psb_buffer_unmap(&cmdbuf->slice_params);
+ cmdbuf->slice_params_p = NULL;*/
+ psb_buffer_unmap(ctx->coded_buf->psb_buffer);
+ pContext->jpeg_coded_buf.pMemInfo = NULL;
+ if (pnw_context_flush_cmdbuf(ctx->obj_context)) {
+ vaStatus = VA_STATUS_ERROR_UNKNOWN;
+ return vaStatus;
+ }
+
+ ctx->obj_context->frame_count++;
+ return VA_STATUS_SUCCESS;
+}
+
+VAStatus pnw_jpeg_AppendMarkers(object_context_p obj_context, void *raw_coded_buf)
+{
+ INIT_CONTEXT_JPEG;
+ IMG_UINT16 ui16BCnt;
+ TOPAZSC_JPEG_ENCODER_CONTEXT *pContext = ctx->jpeg_ctx;
+ BUFFER_HEADER* pBufHeader;
+ STREAMTYPEW s_streamW;
+ void *pSegStart = raw_coded_buf;
+
+ if (pSegStart == NULL) {
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ pBufHeader = (BUFFER_HEADER *)pSegStart;
+
+ psb__information_message("Number of Coded buffers %d, Per Coded Buffer size : %d\n",
+ pContext->sScan_Encode_Info.ui8NumberOfCodedBuffers, pContext->ui32SizePerCodedBuffer);
+
+ /*The first part of coded buffer contains JPEG headers*/
+ pBufHeader->ui32Reserved3 = PNW_JPEG_HEADER_MAX_SIZE;
+
+ pContext->jpeg_coded_buf.ui32BytesWritten = 0;
+
+ for (ui16BCnt = 0;
+ ui16BCnt < pContext->sScan_Encode_Info.ui8NumberOfCodedBuffers;
+ ui16BCnt++) {
+ pBufHeader = (BUFFER_HEADER *)pSegStart;
+ pBufHeader->ui32Reserved3 =
+ PNW_JPEG_HEADER_MAX_SIZE + pContext->ui32SizePerCodedBuffer * ui16BCnt ;
+
+ psb__information_message("Coded Buffer Part %d, size %d, next part offset: %d\n",
+ ui16BCnt, pBufHeader->ui32BytesUsed, pBufHeader->ui32Reserved3);
+
+ if (ui16BCnt > 0 && pContext->sScan_Encode_Info.ui8NumberOfCodedBuffers > 1) {
+ psb__information_message("Append 2 bytes Reset Interval %d "
+ "to Coded Buffer Part %d\n", ui16BCnt - 1, ui16BCnt);
+
+ pnw_OutputResetIntervalToCB(
+ (IMG_UINT8 *)(pSegStart +
+ sizeof(BUFFER_HEADER) + pBufHeader->ui32BytesUsed),
+ ui16BCnt - 1);
+
+ pBufHeader->ui32BytesUsed += 2;
+ }
+
+ pContext->jpeg_coded_buf.ui32BytesWritten += pBufHeader->ui32BytesUsed;
+ pSegStart = raw_coded_buf + pBufHeader->ui32Reserved3;
+ }
+ pBufHeader = (BUFFER_HEADER *)pSegStart;
+ pBufHeader->ui32Reserved3 = 0; /*Last Part of Coded Buffer*/
+ pContext->jpeg_coded_buf.ui32BytesWritten += pBufHeader->ui32BytesUsed;
+
+ psb__information_message("Coded Buffer Part %d, size %d, next part offset: %d\n",
+ ui16BCnt, pBufHeader->ui32BytesUsed, pBufHeader->ui32Reserved3);
+
+ s_streamW.Buffer = pSegStart;
+ s_streamW.Offset = (sizeof(BUFFER_HEADER) + pBufHeader->ui32BytesUsed);
+
+ fPutBitsToBuffer(&s_streamW, 2, END_OF_IMAGE);
+
+ pBufHeader->ui32BytesUsed += 2;
+ pContext->jpeg_coded_buf.ui32BytesWritten += 2;
+
+ psb__information_message("Add two bytes to last part of coded buffer,"
+ " total: %d\n", pContext->jpeg_coded_buf.ui32BytesWritten);
+ return VA_STATUS_SUCCESS;
+}
+
+struct format_vtable_s pnw_JPEG_vtable = {
+queryConfigAttributes:
+ pnw_jpeg_QueryConfigAttributes,
+validateConfig:
+ pnw_jpeg_ValidateConfig,
+createContext:
+ pnw_jpeg_CreateContext,
+destroyContext:
+ pnw_jpeg_DestroyContext,
+beginPicture:
+ pnw_jpeg_BeginPicture,
+renderPicture:
+ pnw_jpeg_RenderPicture,
+endPicture:
+ pnw_jpeg_EndPicture
+};
diff --git a/src/pnw_jpeg.h b/src/pnw_jpeg.h
new file mode 100644
index 0000000..2ddf87f
--- /dev/null
+++ b/src/pnw_jpeg.h
@@ -0,0 +1,39 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ * Elaine Wang <elaine.wang@intel.com>
+ *
+ */
+
+#ifndef _PNW_JPEG_H_
+#define _PNW_JPEG_H_
+
+#include "psb_drv_video.h"
+
+#define PNW_JPEG_MAX_SCAN_NUM 7
+extern struct format_vtable_s pnw_JPEG_vtable;
+extern VAStatus pnw_jpeg_AppendMarkers(object_context_p obj_context, void *raw_coded_buf);
+
+#endif /* _PNW_MPEG4ES_H_ */
diff --git a/src/psb_H264.c b/src/psb_H264.c
new file mode 100644
index 0000000..62243c4
--- /dev/null
+++ b/src/psb_H264.c
@@ -0,0 +1,1926 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ * Waldo Bastian <waldo.bastian@intel.com>
+ *
+ */
+
+#include "psb_H264.h"
+#include "psb_def.h"
+#include "psb_surface.h"
+#include "psb_cmdbuf.h"
+
+#include "hwdefs/reg_io2.h"
+#include "hwdefs/msvdx_offsets.h"
+#include "hwdefs/msvdx_cmds_io2.h"
+#include "hwdefs/msvdx_core_regs_io2.h"
+#include "hwdefs/msvdx_vec_reg_io2.h"
+#include "hwdefs/msvdx_vec_h264_reg_io2.h"
+#include "hwdefs/dxva_fw_ctrl.h"
+
+#include <stdlib.h>
+#include <stdint.h>
+#include <string.h>
+#include <stdio.h>
+
+
+#define GET_SURFACE_INFO_is_used(psb_surface) ((int) (psb_surface->extra_info[0]))
+#define SET_SURFACE_INFO_is_used(psb_surface, val) psb_surface->extra_info[0] = (uint32_t) val;
+#define GET_SURFACE_INFO_col_pic_params(psb_surface) (psb_surface->extra_info[1])
+#define SET_SURFACE_INFO_col_pic_params(psb_surface, val) psb_surface->extra_info[1] = val;
+#define GET_SURFACE_INFO_dpb_idx(psb_surface) (psb_surface->extra_info[2])
+#define SET_SURFACE_INFO_dpb_idx(psb_surface, val) psb_surface->extra_info[2] = val;
+#define GET_SURFACE_INFO_colocated_index(psb_surface) ((int) (psb_surface->extra_info[3]))
+#define SET_SURFACE_INFO_colocated_index(psb_surface, val) psb_surface->extra_info[3] = (uint32_t) val;
+
+#define IS_USED_AS_REFERENCE(pic_flags) ( pic_flags & (VA_PICTURE_H264_SHORT_TERM_REFERENCE | VA_PICTURE_H264_LONG_TERM_REFERENCE) )
+
+/* Truncates a signed integer to 17 bits */
+#define SIGNTRUNC( x ) ((( (x) >> 15) & 0x10000) | ( (x) & 0xffff))
+
+#define MSVDX_VEC_REGS_BASE_MTX 0x0800
+#define MSVDX_COMMANDS_BASE_MTX 0x1000
+#define MSVDX_IQRAM_BASE_MTX 0x700
+
+#define SLICEDATA_BUFFER_TYPE(type) ((type==VASliceDataBufferType)?"VASliceDataBufferType":"VAProtectedSliceDataBufferType")
+
+typedef enum {
+ PICT_NONE,
+ PICT_FRAME,
+ PICT_TOP,
+ PICT_BOTTOM,
+ PICT_PAIR
+} PICTYPE;
+
+typedef enum {
+ H264_BASELINE_PROFILE = 0,
+ H264_MAIN_PROFILE = 1,
+ H264_HIGH_PROFILE = 2
+} PROFILE;
+
+const char *profile2str[] = {
+ "H264_BASELINE_PROFILE",
+ "H264_MAIN_PROFILE",
+ "H264_HIGH_PROFILE"
+};
+
+typedef enum {
+ ST_P,
+ ST_B ,
+ ST_I ,
+ ST_SP ,
+ ST_SI
+} SLICE_TYPE;
+
+IMG_UINT8 aSliceTypeVAtoMsvdx[] = { 1 , 2 , 0, 1, 0 };
+
+const char *slice2str[] = {
+ "ST_P",
+ "ST_B",
+ "ST_I",
+ "ST_SP",
+ "ST_SI"
+};
+
+struct context_H264_s {
+ object_context_p obj_context; /* back reference */
+
+ uint32_t profile; // ENTDEC BE_PROFILE & FE_PROFILE
+ uint32_t profile_idc; // BE_PROFILEIDC
+
+ /* Picture parameters */
+ VAPictureParameterBufferH264 *pic_params;
+ object_surface_p forward_ref_surface;
+ object_surface_p backward_ref_surface;
+
+ uint32_t coded_picture_width; /* in pixels */
+ uint32_t coded_picture_height; /* in pixels */
+
+ uint32_t picture_width_mb; /* in macroblocks */
+ uint32_t picture_height_mb; /* in macroblocks */
+ uint32_t size_mb; /* in macroblocks */
+
+ uint32_t first_mb_x;
+ uint32_t first_mb_y;
+
+ uint32_t mb_width_c; /* Chroma macroblock width */
+ uint32_t mb_height_c; /* Chroma macroblock height */
+
+ uint32_t bit_depth_l; /* Luma bit depth */
+ uint32_t qp_bd_offset_l;
+ uint32_t bit_depth_c; /* Chroma bit depth */
+ uint32_t qp_bd_offset_c;
+
+ uint32_t raw_mb_bits; /* Number of bits per macroblock */
+
+ uint32_t picture_width_samples_l;
+ uint32_t picture_height_samples_l;
+ uint32_t picture_width_samples_c;
+ uint32_t picture_height_samples_c;
+
+ uint32_t picture_height_map_units;
+ uint32_t picture_size_map_units;
+
+ PICTYPE pic_type;
+ uint32_t field_type;
+
+ uint32_t long_term_frame_flags;
+ uint32_t two_pass_mode;
+ uint32_t slice_count;
+
+ /* Registers */
+ uint32_t reg_SPS0;
+ uint32_t reg_PPS0;
+ uint32_t reg_PIC0;
+
+ uint32_t slice0_params;
+ uint32_t slice1_params;
+
+ /* Split buffers */
+ int split_buffer_pending;
+
+ /* List of VASliceParameterBuffers */
+ object_buffer_p *slice_param_list;
+ int slice_param_list_size;
+ int slice_param_list_idx;
+
+ /* VLC packed data */
+ struct psb_buffer_s vlc_packed_table;
+
+ /* Preload buffer */
+ struct psb_buffer_s preload_buffer;
+
+ /* Slice Group Map buffer */
+ psb_buffer_p slice_group_map_buffer;
+
+ /* IQ matrix */
+ VAIQMatrixBufferH264 *iq_matrix;
+
+ /* Reference Cache */
+ struct psb_buffer_s reference_cache;
+
+ uint32_t *p_slice_params; /* pointer to ui32SliceParams in CMD_HEADER */
+ /* CoLocated buffers - aka ParamMemInfo */
+ struct psb_buffer_s *colocated_buffers;
+ int colocated_buffers_size;
+ int colocated_buffers_idx;
+};
+
+typedef struct context_H264_s *context_H264_p;
+
+#define INIT_CONTEXT_H264 context_H264_p ctx = (context_H264_p) obj_context->format_data;
+
+#define SURFACE(id) ((object_surface_p) object_heap_lookup( &ctx->obj_context->driver_data->surface_heap, id ))
+
+#define CACHE_REF_OFFSET 72
+#define CACHE_ROW_OFFSET 4
+
+#define REFERENCE_CACHE_SIZE (512 * 1024)
+
+#define MAX_PRELOAD_CMDS (40*2)
+typedef struct {
+ IMG_UINT8 ui8Address[MAX_PRELOAD_CMDS]; /* Address = (ui8Address << 1 | 0x400 ) */
+ IMG_UINT32 ui32Value[MAX_PRELOAD_CMDS];
+} ADDRDATA;
+
+typedef struct {
+ IMG_UINT32 ui32ContextId;
+ IMG_UINT32 ui32PreloadBufferSize;
+ ADDRDATA aData;
+} PRELOAD;
+
+
+
+/* **************************************************************************************************************** */
+/* Prepacked H264 VLC Tables */
+/* **************************************************************************************************************** */
+static const IMG_UINT16 ui16H264VLCTableData[] = {
+ 0x4000, 0x4205, 0x440a, 0x2204, 0x2206, 0x0208, 0x040b, 0x400f,
+ 0x4204, 0x4209, 0x4013, 0x420e, 0x4217, 0x421b, 0x4212, 0x420d,
+ 0x4208, 0x2a08, 0x0232, 0x0035, 0x0036, 0x441f, 0x4416, 0x4411,
+ 0x440c, 0x0407, 0x040e, 0x0415, 0x041c, 0x0223, 0x4a35, 0x3a00,
+ 0x4420, 0x4426, 0x4421, 0x441c, 0x442b, 0x4422, 0x441d, 0x4418,
+ 0x4433, 0x442e, 0x4429, 0x4428, 0x442f, 0x442a, 0x4425, 0x4424,
+ 0x443b, 0x4436, 0x4431, 0x4430, 0x4437, 0x4432, 0x442d, 0x442c,
+ 0x4443, 0x443e, 0x443d, 0x4438, 0x443f, 0x443a, 0x4439, 0x4434,
+ 0x4240, 0x4242, 0x4241, 0x423c, 0x4227, 0x421e, 0x4219, 0x4214,
+ 0x4023, 0x401a, 0x4015, 0x4010, 0x0410, 0x0249, 0x024c, 0x004f,
+ 0x4613, 0x460f, 0x440a, 0x440a, 0x4205, 0x4205, 0x4205, 0x4205,
+ 0x4200, 0x4200, 0x4200, 0x4200, 0x2a08, 0x0231, 0x0034, 0x0035,
+ 0x4423, 0x4416, 0x4415, 0x440c, 0x0407, 0x040e, 0x0415, 0x121c,
+ 0x0222, 0x4a3f, 0x3a00, 0x442f, 0x4426, 0x4425, 0x4420, 0x442b,
+ 0x4422, 0x4421, 0x441c, 0x442c, 0x442e, 0x442d, 0x4428, 0x4433,
+ 0x442a, 0x4429, 0x4424, 0x443b, 0x4436, 0x4435, 0x4434, 0x4437,
+ 0x4432, 0x4431, 0x4430, 0x0203, 0x423a, 0x4238, 0x423d, 0x423c,
+ 0x423e, 0x4239, 0x4243, 0x4242, 0x4241, 0x4240, 0x4227, 0x421e,
+ 0x421d, 0x4218, 0x4014, 0x401a, 0x4019, 0x4010, 0x421f, 0x4212,
+ 0x4211, 0x4208, 0x421b, 0x420e, 0x420d, 0x4204, 0x4017, 0x4009,
+ 0x2210, 0x0432, 0x0239, 0x023c, 0x600a, 0x6008, 0x003d, 0x003e,
+ 0x461f, 0x461b, 0x4617, 0x4613, 0x460f, 0x460a, 0x4605, 0x4600,
+ 0x0403, 0x040a, 0x0611, 0x4433, 0x442e, 0x4429, 0x4424, 0x442f,
+ 0x442a, 0x4425, 0x4420, 0x4430, 0x4436, 0x4431, 0x442c, 0x4437,
+ 0x4432, 0x442d, 0x4428, 0x3600, 0x4640, 0x4643, 0x4642, 0x4641,
+ 0x463c, 0x463f, 0x463e, 0x463d, 0x4638, 0x463b, 0x463a, 0x4639,
+ 0x4634, 0x4435, 0x4435, 0x441c, 0x4418, 0x4426, 0x4414, 0x442b,
+ 0x4422, 0x4421, 0x4410, 0x420c, 0x421e, 0x421d, 0x4208, 0x4227,
+ 0x421a, 0x4219, 0x4204, 0x400d, 0x4023, 0x400e, 0x4009, 0x2208,
+ 0x5406, 0x540a, 0x540e, 0x5412, 0x5416, 0x541a, 0x541e, 0x5204,
+ 0x0002, 0x5002, 0x3000, 0x4000, 0x4005, 0x4200, 0x440a, 0x0401,
+ 0x1208, 0x000a, 0x4410, 0x440c, 0x4408, 0x440f, 0x4409, 0x4404,
+ 0x4013, 0x4212, 0x4211, 0x400e, 0x400d, 0x4000, 0x4205, 0x440a,
+ 0x0404, 0x480f, 0x4a13, 0x2609, 0x441b, 0x4417, 0x4412, 0x440e,
+ 0x440d, 0x4409, 0x4408, 0x4404, 0x0205, 0x0208, 0x020b, 0x020e,
+ 0x1411, 0x4216, 0x4211, 0x4210, 0x420c, 0x421f, 0x421a, 0x4215,
+ 0x4214, 0x4223, 0x421e, 0x4219, 0x4218, 0x4222, 0x4221, 0x421d,
+ 0x421c, 0x3400, 0x3400, 0x3400, 0x4420, 0x4000, 0x0006, 0x0007,
+ 0x0008, 0x0009, 0x000a, 0x040b, 0x4002, 0x4001, 0x4004, 0x4003,
+ 0x4006, 0x4005, 0x4008, 0x4007, 0x400a, 0x4009, 0x3400, 0x440f,
+ 0x440e, 0x440d, 0x420c, 0x420c, 0x420b, 0x420b, 0x1208, 0x000e,
+ 0x000f, 0x4404, 0x4403, 0x4402, 0x4401, 0x4400, 0x0203, 0x420a,
+ 0x4209, 0x420e, 0x420d, 0x420c, 0x420b, 0x4008, 0x4007, 0x4006,
+ 0x4005, 0x0208, 0x000d, 0x000e, 0x4407, 0x4406, 0x4403, 0x4402,
+ 0x4401, 0x0004, 0x420c, 0x420a, 0x4209, 0x400d, 0x400b, 0x4008,
+ 0x4005, 0x4004, 0x4000, 0x0208, 0x000b, 0x000c, 0x4408, 0x4406,
+ 0x4405, 0x4404, 0x4401, 0x420c, 0x420b, 0x420a, 0x4200, 0x4009,
+ 0x4007, 0x4003, 0x4002, 0x2208, 0x000a, 0x000b, 0x4407, 0x4406,
+ 0x4405, 0x4404, 0x4403, 0x400a, 0x4209, 0x420b, 0x4008, 0x4002,
+ 0x4001, 0x4000, 0x2408, 0x4409, 0x4407, 0x4406, 0x4405, 0x4404,
+ 0x4403, 0x4402, 0x4008, 0x4201, 0x4400, 0x440a, 0x2408, 0x4408,
+ 0x4406, 0x4404, 0x4403, 0x4402, 0x4205, 0x4205, 0x4007, 0x4201,
+ 0x4400, 0x4409, 0x2604, 0x0008, 0x4205, 0x4204, 0x4007, 0x4201,
+ 0x4402, 0x4600, 0x4608, 0x4006, 0x4003, 0x2604, 0x4206, 0x4204,
+ 0x4203, 0x4005, 0x4202, 0x4407, 0x4600, 0x4601, 0x2404, 0x4205,
+ 0x4204, 0x4203, 0x4002, 0x4206, 0x4400, 0x4401, 0x4004, 0x0003,
+ 0x4402, 0x5000, 0x4003, 0x4005, 0x4003, 0x4202, 0x4404, 0x5000,
+ 0x4002, 0x4203, 0x5000, 0x5000, 0x4002, 0x4000, 0x4001, 0x4000,
+ 0x4201, 0x4402, 0x4403, 0x4000, 0x4201, 0x4202, 0x4001, 0x4000,
+ 0x4001, 0x4000, 0x4000, 0x4201, 0x4202, 0x4203, 0x4202, 0x4201,
+ 0x4200, 0x0004, 0x4202, 0x4201, 0x4200, 0x4004, 0x4003, 0x0203,
+ 0x4201, 0x4200, 0x4205, 0x4204, 0x4203, 0x4202, 0x4401, 0x4402,
+ 0x4404, 0x4403, 0x4406, 0x4405, 0x4200, 0x4200, 0x2a08, 0x4406,
+ 0x4405, 0x4404, 0x4403, 0x4402, 0x4401, 0x4400, 0x4007, 0x4208,
+ 0x4409, 0x460a, 0x480b, 0x4a0c, 0x2201, 0x400d, 0x420e, 0x3200,
+};
+
+/* Set bottom field flag in bit 7 and DPB index in bits 0:3 */
+static uint32_t PICTURE2INDEX(context_H264_p ctx, VAPictureH264 *pic)
+{
+ uint32_t result = 0xff; /* unused */
+ object_surface_p ref_surface = SURFACE(pic->picture_id);
+ if (ref_surface) {
+ result = GET_SURFACE_INFO_dpb_idx(ref_surface->psb_surface);
+ }
+ if (pic->flags & VA_PICTURE_H264_BOTTOM_FIELD) {
+ result |= 0x80; /* Set bit 7 */
+ }
+ return result;
+}
+
+static void psb_H264_QueryConfigAttributes(
+ VAProfile profile,
+ VAEntrypoint entrypoint,
+ VAConfigAttrib *attrib_list,
+ int num_attribs)
+{
+ /* No H264 specific attributes */
+}
+
+static VAStatus psb_H264_ValidateConfig(
+ object_config_p obj_config)
+{
+ int i;
+ /* Check all attributes */
+ for (i = 0; i < obj_config->attrib_count; i++) {
+ switch (obj_config->attrib_list[i].type) {
+ case VAConfigAttribRTFormat:
+ /* Ignore */
+ break;
+
+ default:
+ return VA_STATUS_ERROR_ATTR_NOT_SUPPORTED;
+ }
+ }
+
+ return VA_STATUS_SUCCESS;
+}
+
+static VAStatus psb__H264_check_legal_picture(object_context_p obj_context, object_config_p obj_config)
+{
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+
+ if (NULL == obj_context) {
+ vaStatus = VA_STATUS_ERROR_INVALID_CONTEXT;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ if (NULL == obj_config) {
+ vaStatus = VA_STATUS_ERROR_INVALID_CONFIG;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ /* MSVDX decode capability for H.264:
+ * BP@L3
+ * MP@L4.1
+ * HP@L4.1
+ *
+ * Refer to Table A-6 (Maximum frame rates for some example frame sizes) of ISO/IEC 14496-10:2005 (E).
+ */
+ switch (obj_config->profile) {
+ case VAProfileH264Baseline:
+ if ((obj_context->picture_width <= 0) || (obj_context->picture_width > 720)
+ || (obj_context->picture_height <= 0) || (obj_context->picture_height > 576)) {
+ vaStatus = VA_STATUS_ERROR_RESOLUTION_NOT_SUPPORTED;
+ }
+ break;
+
+ case VAProfileH264Main:
+ case VAProfileH264High:
+ case VAProfileH264ConstrainedBaseline:
+ if ((obj_context->picture_width <= 0) || (obj_context->picture_width > 1920)
+ || (obj_context->picture_height <= 0) || (obj_context->picture_height > 1088)) {
+ vaStatus = VA_STATUS_ERROR_RESOLUTION_NOT_SUPPORTED;
+ }
+ break;
+
+ default:
+ vaStatus = VA_STATUS_ERROR_UNSUPPORTED_PROFILE;
+ break;
+ }
+
+ return vaStatus;
+}
+
+static void psb_H264_DestroyContext(object_context_p obj_context);
+
+static VAStatus psb_H264_CreateContext(
+ object_context_p obj_context,
+ object_config_p obj_config)
+{
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ context_H264_p ctx;
+ /* Validate flag */
+ /* Validate picture dimensions */
+ vaStatus = psb__H264_check_legal_picture(obj_context, obj_config);
+ if (VA_STATUS_SUCCESS != vaStatus) {
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ ctx = (context_H264_p) calloc(1, sizeof(struct context_H264_s));
+ if (NULL == ctx) {
+ vaStatus = VA_STATUS_ERROR_ALLOCATION_FAILED;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ obj_context->format_data = (void*) ctx;
+ ctx->obj_context = obj_context;
+ ctx->pic_params = NULL;
+
+ ctx->split_buffer_pending = FALSE;
+
+ ctx->slice_param_list_size = 8;
+ ctx->slice_param_list = (object_buffer_p*) calloc(1, sizeof(object_buffer_p) * ctx->slice_param_list_size);
+ ctx->slice_param_list_idx = 0;
+
+ if (NULL == ctx->slice_param_list) {
+ vaStatus = VA_STATUS_ERROR_ALLOCATION_FAILED;
+ DEBUG_FAILURE;
+ }
+
+ ctx->colocated_buffers_size = obj_context->num_render_targets;
+ ctx->colocated_buffers_idx = 0;
+ ctx->colocated_buffers = (psb_buffer_p) calloc(1, sizeof(struct psb_buffer_s) * ctx->colocated_buffers_size);
+ if (NULL == ctx->colocated_buffers) {
+ vaStatus = VA_STATUS_ERROR_ALLOCATION_FAILED;
+ DEBUG_FAILURE;
+ }
+
+ switch (obj_config->profile) {
+ case VAProfileH264Baseline:
+ case VAProfileH264ConstrainedBaseline:
+ ctx->profile = H264_BASELINE_PROFILE;
+ ctx->profile_idc = 0;
+ break;
+
+ case VAProfileH264Main:
+ ctx->profile = H264_MAIN_PROFILE;
+ ctx->profile_idc = 1;
+ break;
+
+ case VAProfileH264High:
+ ctx->profile = H264_HIGH_PROFILE;
+ ctx->profile_idc = 3;
+ break;
+
+ default:
+ ASSERT(0);
+ vaStatus = VA_STATUS_ERROR_UNKNOWN;
+ }
+
+
+ // TODO
+ if (vaStatus == VA_STATUS_SUCCESS) {
+ vaStatus = psb_buffer_create(obj_context->driver_data,
+ sizeof(PRELOAD),
+ psb_bt_vpu_only,
+ &ctx->preload_buffer);
+ DEBUG_FAILURE;
+ }
+
+ if (vaStatus == VA_STATUS_SUCCESS) {
+ vaStatus = psb_buffer_create(obj_context->driver_data,
+ REFERENCE_CACHE_SIZE,
+ psb_bt_vpu_only,
+ &ctx->reference_cache);
+ DEBUG_FAILURE;
+ }
+
+ if (vaStatus == VA_STATUS_SUCCESS) {
+ vaStatus = psb_buffer_create(obj_context->driver_data,
+ sizeof(ui16H264VLCTableData),
+ psb_bt_cpu_vpu,
+ &ctx->vlc_packed_table);
+ DEBUG_FAILURE;
+ }
+ if (vaStatus == VA_STATUS_SUCCESS) {
+ void *vlc_packed_data_address;
+ if (0 == psb_buffer_map(&ctx->vlc_packed_table, &vlc_packed_data_address)) {
+ memcpy(vlc_packed_data_address, ui16H264VLCTableData, sizeof(ui16H264VLCTableData));
+ psb_buffer_unmap(&ctx->vlc_packed_table);
+ } else {
+ vaStatus = VA_STATUS_ERROR_ALLOCATION_FAILED;
+ DEBUG_FAILURE;
+ }
+ }
+ /* allocate in-loop targets for oold */
+ if (obj_context->is_oold) {
+ int i;
+ for (i = 0; i < obj_context->num_render_targets; i++) {
+ object_surface_p obj_surface = SURFACE(obj_context->render_targets[i]);
+ psb_surface_p psb_surface;
+
+ if (NULL == obj_surface) {
+ vaStatus = VA_STATUS_ERROR_INVALID_SURFACE;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ psb_surface = obj_surface->psb_surface;
+
+ psb_surface->in_loop_buf = calloc(1, sizeof(struct psb_buffer_s));
+ if (NULL == psb_surface->in_loop_buf) {
+ vaStatus = VA_STATUS_ERROR_ALLOCATION_FAILED;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ /* FIXME: For RAR surface, need allocate RAR buffer */
+ vaStatus = psb_buffer_create(obj_context->driver_data,
+ psb_surface->size,
+ psb_bt_surface,
+ psb_surface->in_loop_buf);
+ }
+
+ }
+
+ if (vaStatus != VA_STATUS_SUCCESS) {
+ psb_H264_DestroyContext(obj_context);
+ }
+
+ return vaStatus;
+}
+
+static void psb_H264_DestroyContext(
+ object_context_p obj_context)
+{
+ INIT_CONTEXT_H264
+ int i;
+
+ psb_buffer_destroy(&ctx->reference_cache);
+ psb_buffer_destroy(&ctx->preload_buffer);
+ psb_buffer_destroy(&ctx->vlc_packed_table);
+
+ if (ctx->pic_params) {
+ free(ctx->pic_params);
+ ctx->pic_params = NULL;
+ }
+ if (ctx->iq_matrix) {
+ free(ctx->iq_matrix);
+ ctx->iq_matrix = NULL;
+ }
+
+ if (ctx->slice_param_list) {
+ free(ctx->slice_param_list);
+ ctx->slice_param_list = NULL;
+ }
+
+ if (ctx->colocated_buffers) {
+ for (i = 0; i < ctx->colocated_buffers_idx; ++i)
+ psb_buffer_destroy(&(ctx->colocated_buffers[i]));
+
+ free(ctx->colocated_buffers);
+ ctx->colocated_buffers = NULL;
+ }
+
+ free(obj_context->format_data);
+ obj_context->format_data = NULL;
+}
+
+static VAStatus psb__H264_allocate_colocated_buffer(context_H264_p ctx, object_surface_p obj_surface, uint32_t size)
+{
+ psb_surface_p surface = obj_surface->psb_surface;
+
+ psb__information_message("psb_H264: Allocating colocated buffer for surface %08x size = %08x\n", surface, size);
+
+ if (!GET_SURFACE_INFO_colocated_index(surface)) {
+ VAStatus vaStatus;
+ psb_buffer_p buf;
+ int index = ctx->colocated_buffers_idx;
+ if (index >= ctx->colocated_buffers_size) {
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+ buf = &(ctx->colocated_buffers[index]);
+ vaStatus = psb_buffer_create(ctx->obj_context->driver_data, size, psb_bt_vpu_only, buf);
+ if (VA_STATUS_SUCCESS != vaStatus) {
+ return vaStatus;
+ }
+ ctx->colocated_buffers_idx++;
+ SET_SURFACE_INFO_colocated_index(surface, index + 1); /* 0 means unset, index is offset by 1 */
+ }
+ return VA_STATUS_SUCCESS;
+}
+
+static psb_buffer_p psb__H264_lookup_colocated_buffer(context_H264_p ctx, psb_surface_p surface)
+{
+ psb__information_message("psb_H264: Looking up colocated buffer for surface %08x\n", surface);
+ int index = GET_SURFACE_INFO_colocated_index(surface);
+ if (!index) {
+ return NULL;
+ }
+ return &(ctx->colocated_buffers[index-1]); /* 0 means unset, index is offset by 1 */
+}
+
+#ifdef DEBUG_TRACE
+#define P(x) psb__trace_message("PARAMS: " #x "\t= %08x (%d)\n", p->x, p->x)
+static void psb__H264_trace_pic_params(VAPictureParameterBufferH264 *p)
+{
+ P(CurrPic);
+ P(picture_width_in_mbs_minus1);
+ P(picture_height_in_mbs_minus1);
+ P(bit_depth_luma_minus8);
+ P(bit_depth_chroma_minus8);
+ P(num_ref_frames);
+ P(seq_fields);
+ P(num_slice_groups_minus1);
+ P(slice_group_map_type);
+ P(pic_init_qp_minus26);
+ P(chroma_qp_index_offset);
+ P(second_chroma_qp_index_offset);
+ P(pic_fields);
+ P(frame_num);
+}
+#endif
+
+
+static VAStatus psb__H264_process_picture_param(context_H264_p ctx, object_buffer_p obj_buffer)
+{
+ psb_surface_p target_surface = ctx->obj_context->current_render_target->psb_surface;
+ uint32_t reg_value;
+ VAStatus vaStatus;
+ psb_driver_data_p driver_data = ctx->obj_context->driver_data;
+
+ ASSERT(obj_buffer->type == VAPictureParameterBufferType);
+ ASSERT(obj_buffer->num_elements == 1);
+ ASSERT(obj_buffer->size == sizeof(VAPictureParameterBufferH264));
+ ASSERT(target_surface);
+
+ if ((obj_buffer->num_elements != 1) ||
+ (obj_buffer->size != sizeof(VAPictureParameterBufferH264)) ||
+ (NULL == target_surface)) {
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ /* Transfer ownership of VAPictureParameterBufferH264 data */
+ VAPictureParameterBufferH264 *pic_params = (VAPictureParameterBufferH264 *) obj_buffer->buffer_data;
+ if (ctx->pic_params) {
+ free(ctx->pic_params);
+ }
+ ctx->pic_params = pic_params;
+ obj_buffer->buffer_data = NULL;
+ obj_buffer->size = 0;
+
+#ifdef DEBUG_TRACE
+ psb__H264_trace_pic_params(pic_params);
+#endif
+
+ /* Table 6-1 */
+ uint32_t sub_width_c = (pic_params->seq_fields.bits.chroma_format_idc > 2) ? 1 : 2;
+ uint32_t sub_height_c = (pic_params->seq_fields.bits.chroma_format_idc > 1) ? 1 : 2;
+
+ if (pic_params->seq_fields.bits.chroma_format_idc == 0) {
+ ctx->mb_width_c = 0;
+ ctx->mb_height_c = 0;
+ } else {
+ ctx->mb_width_c = 16 / sub_width_c; /* 6-1 */
+ ctx->mb_height_c = 16 / sub_height_c; /* 6-2 */
+ }
+
+ ctx->bit_depth_l = 8 + pic_params->bit_depth_luma_minus8; /* (7-1) */
+ ctx->qp_bd_offset_l = 6 * pic_params->bit_depth_luma_minus8; /* (7-2) */
+
+ ctx->bit_depth_c = 8 + pic_params->bit_depth_chroma_minus8; /* (7-3) */
+ ctx->qp_bd_offset_c = 6 * (pic_params->bit_depth_chroma_minus8 + pic_params->seq_fields.bits.residual_colour_transform_flag); /* (7-4) */
+
+ ctx->picture_width_mb = pic_params->picture_width_in_mbs_minus1 + 1;
+ ctx->picture_height_mb = pic_params->picture_height_in_mbs_minus1 + 1;
+
+ ctx->size_mb = ctx->picture_width_mb * ctx->picture_height_mb; /* (7-25) */
+
+ //uint32_t colocated_size = (ctx->picture_width_mb + extra_size) * (ctx->picture_height_mb + extra_size) * 192;
+ uint32_t colocated_size = ((ctx->size_mb + 100) * 128 + 0xfff) & ~0xfff;
+
+ vaStatus = psb__H264_allocate_colocated_buffer(ctx, ctx->obj_context->current_render_target, colocated_size);
+ if (VA_STATUS_SUCCESS != vaStatus) {
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ ctx->raw_mb_bits = 256 * ctx->bit_depth_l + 2 * ctx->mb_width_c * ctx->mb_height_c * ctx->bit_depth_c; /* (7-5) */
+
+ ctx->picture_width_samples_l = ctx->picture_width_mb * 16;
+ ctx->picture_width_samples_c = ctx->picture_width_mb * ctx->mb_width_c;
+
+ ctx->picture_height_samples_l = ctx->picture_height_mb * 16;
+ ctx->picture_height_samples_c = ctx->picture_height_mb * ctx->mb_height_c;
+
+ // BECAUSE OF
+ // sps->FrameHeightInMbs = ( 2 - sps->seq_fields.bits.frame_mbs_only_flag ) * sps->PicHeightInMapUnits; /* (7-15) */
+ ctx->picture_height_map_units = 1 + ctx->picture_height_mb / (2 - pic_params->seq_fields.bits.frame_mbs_only_flag);
+ ctx->picture_size_map_units = ctx->picture_width_mb * ctx->picture_height_map_units;/* (7-14) */
+
+ /* record just what type of picture we are */
+ if (pic_params->pic_fields.bits.field_pic_flag) {
+ if (pic_params->CurrPic.flags & VA_PICTURE_H264_BOTTOM_FIELD) {
+ ctx->pic_type = PICT_BOTTOM;
+ ctx->field_type = 1;
+ } else {
+ ctx->pic_type = PICT_TOP;
+ ctx->field_type = 0;
+ }
+ } else {
+ ctx->pic_type = PICT_FRAME;
+ ctx->field_type = pic_params->seq_fields.bits.mb_adaptive_frame_field_flag ? 3 : 2;
+ }
+
+ uint32_t i;
+ ctx->long_term_frame_flags = 0;
+ /* We go from high to low so that we are left with the lowest index */
+ for (i = pic_params->num_ref_frames; i--;) {
+ object_surface_p ref_surface = SURFACE(pic_params->ReferenceFrames[i].picture_id);
+ if (pic_params->ReferenceFrames[i].flags & VA_PICTURE_H264_BOTTOM_FIELD) {
+ ctx->long_term_frame_flags |= 0x01 << i;
+ }
+ if (ref_surface) {
+ SET_SURFACE_INFO_dpb_idx(ref_surface->psb_surface, i);
+ }
+ }
+
+ /* If the MB are not guarenteed to be consecutive - we must do a 2pass */
+ ctx->two_pass_mode = (pic_params->num_slice_groups_minus1 > 0);
+
+ ctx->reg_SPS0 = 0;
+ REGIO_WRITE_FIELD_LITE(ctx->reg_SPS0, MSVDX_VEC_H264, CR_VEC_H264_BE_SPS0, H264_BE_SPS0_DEFAULT_MATRIX_FLAG, (ctx->profile == H264_BASELINE_PROFILE)); /* Always use suplied matrix non baseline otherwise use default*/
+ REGIO_WRITE_FIELD_LITE(ctx->reg_SPS0, MSVDX_VEC_H264, CR_VEC_H264_BE_SPS0, H264_BE_SPS0_2PASS_FLAG, ctx->two_pass_mode); /* Always 0 for VA - we cant handle otherwise yet */
+ /* Assume SGM_8BIT */
+ REGIO_WRITE_FIELD_LITE(ctx->reg_SPS0, MSVDX_VEC_H264, CR_VEC_H264_FE_SPS0, H264_FE_SPS0_4BIT_SGM_FLAG, 0);
+ REGIO_WRITE_FIELD_LITE(ctx->reg_SPS0, MSVDX_VEC_H264, CR_VEC_H264_BE_SPS0, BE_PROFILEIDC, ctx->profile_idc);
+ REGIO_WRITE_FIELD_LITE(ctx->reg_SPS0, MSVDX_VEC_H264, CR_VEC_H264_FE_SPS0, MIN_LUMA_BIPRED_SIZE_8X8, pic_params->seq_fields.bits.MinLumaBiPredSize8x8);
+ REGIO_WRITE_FIELD_LITE(ctx->reg_SPS0, MSVDX_VEC_H264, CR_VEC_H264_FE_SPS0, DIRECT_8X8_INFERENCE_FLAG, pic_params->seq_fields.bits.direct_8x8_inference_flag);
+ REGIO_WRITE_FIELD_LITE(ctx->reg_SPS0, MSVDX_VEC_H264, CR_VEC_H264_FE_SPS0, CHROMA_FORMAT_IDC, pic_params->seq_fields.bits.chroma_format_idc);
+ REGIO_WRITE_FIELD_LITE(ctx->reg_SPS0, MSVDX_VEC_H264, CR_VEC_H264_FE_SPS0, FRAME_MBS_ONLY_FLAG, pic_params->seq_fields.bits.frame_mbs_only_flag);
+ REGIO_WRITE_FIELD_LITE(ctx->reg_SPS0, MSVDX_VEC_H264, CR_VEC_H264_FE_SPS0, PICWIDTHINMBSLESS1, ctx->picture_width_mb - 1);
+
+ ctx->reg_PPS0 = 0;
+ REGIO_WRITE_FIELD_LITE(ctx->reg_PPS0, MSVDX_VEC_H264, CR_VEC_H264_FE_PPS0, TRANSFORM_8X8_MODE_FLAG, pic_params->pic_fields.bits.transform_8x8_mode_flag);
+ REGIO_WRITE_FIELD_LITE(ctx->reg_PPS0, MSVDX_VEC_H264, CR_VEC_H264_FE_PPS0, CONSTRAINED_INTRA_PRED_FLAG, pic_params->pic_fields.bits.constrained_intra_pred_flag);
+ REGIO_WRITE_FIELD_LITE(ctx->reg_PPS0, MSVDX_VEC_H264, CR_VEC_H264_FE_PPS0, ENTROPY_CODING_MODE_FLAG, pic_params->pic_fields.bits.entropy_coding_mode_flag);
+ REGIO_WRITE_FIELD_LITE(ctx->reg_PPS0, MSVDX_VEC_H264, CR_VEC_H264_FE_PPS0, NUM_SLICE_GROUPS_MINUS1, pic_params->num_slice_groups_minus1);
+ REGIO_WRITE_FIELD_LITE(ctx->reg_PPS0, MSVDX_VEC_H264, CR_VEC_H264_BE_PPS0, BE_WEIGHTED_BIPRED_IDC, pic_params->pic_fields.bits.weighted_bipred_idc);
+ REGIO_WRITE_FIELD_MASKEDLITE(ctx->reg_PPS0, MSVDX_VEC_H264, CR_VEC_H264_BE_PPS0, BE_CHROMA_QP_INDEX_OFFSET, pic_params->chroma_qp_index_offset);
+ REGIO_WRITE_FIELD_MASKEDLITE(ctx->reg_PPS0, MSVDX_VEC_H264, CR_VEC_H264_BE_PPS0, BE_SECOND_CHROMA_QP_INDEX_OFFSET, pic_params->second_chroma_qp_index_offset);
+
+ uint32_t PicHeightInMbs = ctx->picture_height_mb >> pic_params->pic_fields.bits.field_pic_flag; /* (7-23) */
+ uint32_t PicSizeInMbs = ctx->picture_width_mb * PicHeightInMbs; /* (7-26) */
+
+ ctx->reg_PIC0 = 0;
+ REGIO_WRITE_FIELD_LITE(ctx->reg_PIC0, MSVDX_VEC_H264, CR_VEC_H264_FE_CUR_PIC0, PICSIZEINMBSLESS1, PicSizeInMbs - 1);
+ REGIO_WRITE_FIELD_LITE(ctx->reg_PIC0, MSVDX_VEC_H264, CR_VEC_H264_FE_CUR_PIC0, PICHEIGHTINMBSLESS1, PicHeightInMbs - 1);
+ /* TODO */
+ REGIO_WRITE_FIELD_LITE(ctx->reg_PIC0, MSVDX_VEC_H264, CR_VEC_H264_BE_CUR_PIC0, BE_REFERENCE_FLAG, IS_USED_AS_REFERENCE(pic_params->CurrPic.flags) ? 1 : 0);
+ REGIO_WRITE_FIELD_LITE(ctx->reg_PIC0, MSVDX_VEC_H264, CR_VEC_H264_FE_CUR_PIC0, MBAFFFRAMEFLAG, pic_params->seq_fields.bits.mb_adaptive_frame_field_flag);
+ REGIO_WRITE_FIELD_LITE(ctx->reg_PIC0, MSVDX_VEC_H264, CR_VEC_H264_FE_CUR_PIC0, FIELD_PIC_FLAG, pic_params->pic_fields.bits.field_pic_flag);
+ REGIO_WRITE_FIELD_LITE(ctx->reg_PIC0, MSVDX_VEC_H264, CR_VEC_H264_FE_CUR_PIC0, BOTTOM_FIELD_FLAG, pic_params->CurrPic.flags & VA_PICTURE_H264_BOTTOM_FIELD ? 1 : 0);
+
+ /* Record some info about current picture */
+ reg_value = 0;
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_H264, CR_VEC_H264_BE_COL_PIC0, COL_NOTFRAMEFLAG, (PICT_FRAME != ctx->pic_type) ? 1 : 0);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_H264, CR_VEC_H264_BE_COL_PIC0, COL_MBAFFFRAMEFLAG, pic_params->seq_fields.bits.mb_adaptive_frame_field_flag);
+ SET_SURFACE_INFO_col_pic_params(target_surface, reg_value);
+
+ if (pic_params->seq_fields.bits.chroma_format_idc == 0) {
+ vaStatus = psb_surface_set_chroma(target_surface, 128);
+ if (VA_STATUS_SUCCESS != vaStatus) {
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+ }
+
+ if (driver_data->ec_enabled && IS_MRST(driver_data)) {
+ psb_context_get_next_cmdbuf(ctx->obj_context);
+ psb_context_submit_frame_info(ctx->obj_context, &target_surface->buf,
+ target_surface->stride, target_surface->size,
+ ctx->picture_width_mb, ctx->size_mb);
+ }
+
+ return VA_STATUS_SUCCESS;
+}
+
+static VAStatus psb__H264_process_iq_matrix(context_H264_p ctx, object_buffer_p obj_buffer)
+{
+ ASSERT(obj_buffer->type == VAIQMatrixBufferType);
+ ASSERT(obj_buffer->num_elements == 1);
+ ASSERT(obj_buffer->size == sizeof(VAIQMatrixBufferH264));
+
+ if ((obj_buffer->num_elements != 1) ||
+ (obj_buffer->size != sizeof(VAIQMatrixBufferH264))) {
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ /* Transfer ownership of VAIQMatrixBufferH264 data */
+ if (ctx->iq_matrix) {
+ free(ctx->iq_matrix);
+ }
+ ctx->iq_matrix = (VAIQMatrixBufferH264 *) obj_buffer->buffer_data;
+ obj_buffer->buffer_data = NULL;
+ obj_buffer->size = 0;
+
+ return VA_STATUS_SUCCESS;
+}
+
+static VAStatus psb__H264_process_slice_group_map(context_H264_p ctx, object_buffer_p obj_buffer)
+{
+ ASSERT(obj_buffer->type == VASliceGroupMapBufferType);
+ ASSERT(obj_buffer->num_elements == 1);
+// ASSERT(obj_buffer->size == ...);
+
+ if (obj_buffer->num_elements != 1) {
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ ctx->slice_group_map_buffer = obj_buffer->psb_buffer;
+
+ return VA_STATUS_SUCCESS;
+}
+
+#define SCALING_LIST_4x4_SIZE ((4*4))
+#define SCALING_LIST_8x8_SIZE ((8*8))
+
+static void psb__H264_build_SCA_chunk(context_H264_p ctx)
+{
+ VAIQMatrixBufferH264 dummy_iq_matrix;
+ psb_cmdbuf_p cmdbuf = ctx->obj_context->cmdbuf;
+
+ VAIQMatrixBufferH264 *iq_matrix = ctx->iq_matrix;
+
+ if (!iq_matrix) {
+ psb__information_message("H264: No IQ matrix received for frame. Sending dummy IQ matrix.\n");
+ iq_matrix = &dummy_iq_matrix;
+ memset(iq_matrix, 0, sizeof(VAIQMatrixBufferH264));
+ }
+
+ psb_cmdbuf_rendec_start_chunk(cmdbuf, REG_MSVDX_VEC_IQRAM_OFFSET);
+
+ /* 8x8 Inter Y */
+ psb_cmdbuf_rendec_write_block(cmdbuf, iq_matrix->ScalingList8x8[1], SCALING_LIST_8x8_SIZE);
+
+ /* 8x8 Intra Y */
+ psb_cmdbuf_rendec_write_block(cmdbuf, iq_matrix->ScalingList8x8[0], SCALING_LIST_8x8_SIZE);
+
+ /* 4x4 Intra Y */
+ psb_cmdbuf_rendec_write_block(cmdbuf, iq_matrix->ScalingList4x4[0], SCALING_LIST_4x4_SIZE);
+
+ /* 4x4 Inter Y */
+ psb_cmdbuf_rendec_write_block(cmdbuf, iq_matrix->ScalingList4x4[3], SCALING_LIST_4x4_SIZE);
+
+ /* 4x4 Inter Cb */
+ psb_cmdbuf_rendec_write_block(cmdbuf, iq_matrix->ScalingList4x4[4], SCALING_LIST_4x4_SIZE);
+
+ /* 4x4 Intra Cb */
+ psb_cmdbuf_rendec_write_block(cmdbuf, iq_matrix->ScalingList4x4[1], SCALING_LIST_4x4_SIZE);
+
+ /* 4x4 Inter Cr */
+ psb_cmdbuf_rendec_write_block(cmdbuf, iq_matrix->ScalingList4x4[5], SCALING_LIST_4x4_SIZE);
+
+ /* 4x4 Intra Cr */
+ psb_cmdbuf_rendec_write_block(cmdbuf, iq_matrix->ScalingList4x4[2], SCALING_LIST_4x4_SIZE);
+
+ psb_cmdbuf_rendec_end_chunk(cmdbuf);
+}
+
+static void psb__H264_build_picture_order_chunk(context_H264_p ctx)
+{
+ psb_cmdbuf_p cmdbuf = ctx->obj_context->cmdbuf;
+ VAPictureParameterBufferH264 *pic_params = ctx->pic_params;
+ uint32_t reg_value;
+ int i;
+
+ /* CHUNK: POC */
+ /* send Picture Order Counts (b frame only?) */
+ /* maybe need a state variable to track if this has already been sent for the frame */
+ psb_cmdbuf_rendec_start_chunk(cmdbuf, RENDEC_REGISTER_OFFSET(MSVDX_VEC, H264_CR_VEC_H264_BE_FOC0));
+
+ reg_value = 0;
+ REGIO_WRITE_FIELD_LITE(reg_value, MSVDX_VEC_H264, CR_VEC_H264_BE_FOC0, TOPFIELDORDERCNT_CURR,
+ SIGNTRUNC(pic_params->CurrPic.TopFieldOrderCnt));
+ psb_cmdbuf_rendec_write(cmdbuf, reg_value);
+
+ reg_value = 0;
+ REGIO_WRITE_FIELD_LITE(reg_value, MSVDX_VEC_H264, CR_VEC_H264_BE_FOC1, BOTTOMFIELDORDERCNT_CURR,
+ SIGNTRUNC(pic_params->CurrPic.BottomFieldOrderCnt));
+ psb_cmdbuf_rendec_write(cmdbuf, reg_value);
+
+ if (pic_params->num_ref_frames > 16) {
+ psb__error_message("Invalid reference number %d, set to 16\n", pic_params->num_ref_frames);
+ pic_params->num_ref_frames = 16;
+ }
+
+ for (i = 0; i < pic_params->num_ref_frames; i++) {
+ reg_value = 0;
+ REGIO_WRITE_FIELD_LITE(reg_value, MSVDX_VEC_H264, CR_VEC_H264_BE_TOP_FOC, TOPFIELDORDERCNT,
+ SIGNTRUNC(pic_params->ReferenceFrames[i].TopFieldOrderCnt));
+ psb_cmdbuf_rendec_write(cmdbuf, reg_value);
+
+ reg_value = 0;
+ REGIO_WRITE_FIELD_LITE(reg_value, MSVDX_VEC_H264, CR_VEC_H264_BE_BOT_FOC, BOTTOMFIELDORDERCNT,
+ SIGNTRUNC(pic_params->ReferenceFrames[i].BottomFieldOrderCnt));
+ psb_cmdbuf_rendec_write(cmdbuf, reg_value);
+ }
+
+ psb_cmdbuf_rendec_end_chunk(cmdbuf);
+}
+
+static void psb__H264_build_B_slice_chunk(context_H264_p ctx, VASliceParameterBufferH264 *slice_param)
+{
+ psb_cmdbuf_p cmdbuf = ctx->obj_context->cmdbuf;
+ VAPictureParameterBufferH264 *pic_params = ctx->pic_params;
+ uint32_t reg_value;
+ int i;
+
+ psb_cmdbuf_rendec_start_chunk(cmdbuf, RENDEC_REGISTER_OFFSET(MSVDX_VEC, H264_CR_VEC_H264_BE_COL_PIC0));
+
+ /* Colocated picture is picture 0 in list 1*/
+ object_surface_p colocated_surface = SURFACE(slice_param->RefPicList1[0].picture_id);
+ if (colocated_surface) {
+ uint32_t bottom_field_flag;
+ if (pic_params->pic_fields.bits.field_pic_flag) {
+ bottom_field_flag = (slice_param->RefPicList1[0].flags & VA_PICTURE_H264_BOTTOM_FIELD) ? 1 : 0;
+ } else {
+ /* when current pic is a frame col bottom field flag is different */
+ IMG_INT32 i32Cur;
+ IMG_INT32 i32Top, i32Bot;
+ IMG_INT32 i32TopAbsDiffPoc, i32BotAbsDiffPoc;
+
+ /* current pic */
+ i32Top = pic_params->CurrPic.TopFieldOrderCnt;
+ i32Bot = pic_params->CurrPic.BottomFieldOrderCnt;
+ i32Cur = (i32Top < i32Bot) ? i32Top : i32Bot;
+
+ /* col pic */
+ i32Top = slice_param->RefPicList1[0].TopFieldOrderCnt;
+ i32Bot = slice_param->RefPicList1[0].BottomFieldOrderCnt;
+
+ i32TopAbsDiffPoc = (i32Cur < i32Top) ? i32Top - i32Cur : i32Cur - i32Top;
+ i32BotAbsDiffPoc = (i32Cur < i32Bot) ? i32Bot - i32Cur : i32Cur - i32Bot;
+
+ bottom_field_flag = (i32TopAbsDiffPoc < i32BotAbsDiffPoc) ? 0 : 1;
+ }
+
+ reg_value = GET_SURFACE_INFO_col_pic_params(colocated_surface->psb_surface);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_H264, CR_VEC_H264_BE_COL_PIC0, COL_BOTTOM_FIELD_FLAG, bottom_field_flag);
+ psb_cmdbuf_rendec_write(cmdbuf, reg_value);
+
+ psb_buffer_p colocated_target_buffer = psb__H264_lookup_colocated_buffer(ctx, colocated_surface->psb_surface);
+ ASSERT(colocated_target_buffer);
+ if (colocated_target_buffer) {
+ psb_cmdbuf_rendec_write_address(cmdbuf, colocated_target_buffer, 0);
+ } else {
+ /* This is an error */
+ psb_cmdbuf_rendec_write(cmdbuf, 0);
+ }
+ } else {
+ /* Need some better error handling here */
+ psb_cmdbuf_rendec_write(cmdbuf, 0);
+ psb_cmdbuf_rendec_write(cmdbuf, 0xDEADBEEF);
+ }
+
+ /* Calculate inverse index for reference pictures */
+ {
+ IMG_UINT8 list0_inverse[32];
+ memset(list0_inverse, 0xff, 32); /* Unused entries get 0xff */
+
+ if (slice_param->num_ref_idx_l0_active_minus1 + 1 > 32) {
+ psb__error_message("num_ref_idx_l0_active_minus1(%d) is too big. Set it with 31\n",
+ slice_param->num_ref_idx_l0_active_minus1);
+ slice_param->num_ref_idx_l0_active_minus1 = 31;
+ }
+
+ if (slice_param->num_ref_idx_l0_active_minus1 > 30)
+ slice_param->num_ref_idx_l0_active_minus1 = 30;
+ for (i = slice_param->num_ref_idx_l0_active_minus1 + 1; i--;) {
+ object_surface_p surface = SURFACE(slice_param->RefPicList0[i].picture_id);
+ if (surface) {
+ uint32_t dpb_idx = GET_SURFACE_INFO_dpb_idx(surface->psb_surface);
+ if (dpb_idx < 16) {
+ if (slice_param->RefPicList0[i].flags & VA_PICTURE_H264_BOTTOM_FIELD) {
+ dpb_idx |= 0x10;
+ }
+ list0_inverse[dpb_idx] = i;
+ }
+ }
+ }
+ for (i = 0; i < 32; i += 4) {
+ reg_value = 0;
+ reg_value |= list0_inverse[i];
+ reg_value |= list0_inverse[i+1] << 8;
+ reg_value |= list0_inverse[i+2] << 16;
+ reg_value |= list0_inverse[i+3] << 24;
+ psb_cmdbuf_rendec_write(cmdbuf, reg_value);
+ }
+ }
+
+ if (slice_param->num_ref_idx_l1_active_minus1 > 28)
+ slice_param->num_ref_idx_l1_active_minus1 = 28;
+
+ /* Write Ref List 1 - but only need the valid ones */
+ for (i = 0; i <= slice_param->num_ref_idx_l1_active_minus1; i += 4) {
+ reg_value = 0;
+ reg_value |= PICTURE2INDEX(ctx, &slice_param->RefPicList1[i]);
+ reg_value |= PICTURE2INDEX(ctx, &slice_param->RefPicList1[i+1]) << 8;
+ reg_value |= PICTURE2INDEX(ctx, &slice_param->RefPicList1[i+2]) << 16;
+ reg_value |= PICTURE2INDEX(ctx, &slice_param->RefPicList1[i+3]) << 24;
+ psb_cmdbuf_rendec_write(cmdbuf, reg_value);
+ }
+
+ psb_cmdbuf_rendec_end_chunk(cmdbuf);
+}
+
+static void psb__H264_build_register(context_H264_p ctx, VASliceParameterBufferH264 *slice_param)
+{
+ psb_cmdbuf_p cmdbuf = ctx->obj_context->cmdbuf;
+ uint32_t reg_value;
+
+ psb_cmdbuf_reg_start_block(cmdbuf);
+
+ reg_value = 0;
+ REGIO_WRITE_FIELD_LITE(reg_value, MSVDX_VEC, CR_VEC_ENTDEC_FE_CONTROL, ENTDEC_FE_PROFILE, ctx->profile);
+ REGIO_WRITE_FIELD_LITE(reg_value, MSVDX_VEC, CR_VEC_ENTDEC_FE_CONTROL, ENTDEC_FE_MODE, 1); /* 1 - H.264 */
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC, CR_VEC_ENTDEC_FE_CONTROL), reg_value);
+
+ /* write the FE registers */
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC_H264, CR_VEC_H264_FE_SPS0), ctx->reg_SPS0);
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC_H264, CR_VEC_H264_FE_PPS0), ctx->reg_PPS0);
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC_H264, CR_VEC_H264_FE_CUR_PIC0), ctx->reg_PIC0;);
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC_H264, CR_VEC_H264_FE_SLICE0), ctx->slice0_params);
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC_H264, CR_VEC_H264_FE_SLICE1), ctx->slice1_params);
+
+ reg_value = 0;
+ REGIO_WRITE_FIELD_LITE(reg_value, MSVDX_VEC_H264, CR_VEC_H264_FE_SLICE2, FIRST_MB_IN_SLICE, slice_param->first_mb_in_slice);
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC_H264, CR_VEC_H264_FE_SLICE2), reg_value);
+
+ if (ctx->pic_params->num_slice_groups_minus1 >= 1) {
+ ASSERT(ctx->slice_group_map_buffer);
+ if (ctx->slice_group_map_buffer) {
+ psb_cmdbuf_reg_set_address(cmdbuf, REGISTER_OFFSET(MSVDX_VEC_H264, CR_VEC_H264_FE_BASE_ADDR_SGM),
+ ctx->slice_group_map_buffer, 0);
+ }
+ }
+ psb_cmdbuf_reg_end_block(cmdbuf);
+}
+
+/* Programme the Alt output if there is a rotation*/
+static void psb__H264_setup_alternative_frame(context_H264_p ctx)
+{
+ uint32_t cmd;
+ psb_cmdbuf_p cmdbuf = ctx->obj_context->cmdbuf;
+ psb_surface_p rotate_surface = ctx->obj_context->current_render_target->psb_surface_rotate;
+ object_context_p obj_context = ctx->obj_context;
+
+ if (rotate_surface->extra_info[5] != obj_context->rotate)
+ psb__error_message("Display rotate mode does not match surface rotate mode!\n");
+
+
+ /* CRendecBlock RendecBlk( mCtrlAlloc , RENDEC_REGISTER_OFFSET(MSVDX_CMDS, VC1_LUMA_RANGE_MAPPING_BASE_ADDRESS) ); */
+ psb_cmdbuf_rendec_start_chunk(cmdbuf, RENDEC_REGISTER_OFFSET(MSVDX_CMDS, VC1_LUMA_RANGE_MAPPING_BASE_ADDRESS));
+
+ psb_cmdbuf_rendec_write_address(cmdbuf, &rotate_surface->buf, rotate_surface->buf.buffer_ofs);
+ psb_cmdbuf_rendec_write_address(cmdbuf, &rotate_surface->buf, rotate_surface->buf.buffer_ofs + rotate_surface->chroma_offset);
+
+ psb_cmdbuf_rendec_end_chunk(cmdbuf);
+
+ /* Set the rotation registers */
+ psb_cmdbuf_rendec_start_chunk(cmdbuf, RENDEC_REGISTER_OFFSET(MSVDX_CMDS, ALTERNATIVE_OUTPUT_PICTURE_ROTATION));
+ cmd = 0;
+ REGIO_WRITE_FIELD_LITE(cmd, MSVDX_CMDS, ALTERNATIVE_OUTPUT_PICTURE_ROTATION , ALT_PICTURE_ENABLE, 1);
+ REGIO_WRITE_FIELD_LITE(cmd, MSVDX_CMDS, ALTERNATIVE_OUTPUT_PICTURE_ROTATION , ROTATION_ROW_STRIDE, rotate_surface->stride_mode);
+ REGIO_WRITE_FIELD_LITE(cmd, MSVDX_CMDS, ALTERNATIVE_OUTPUT_PICTURE_ROTATION , RECON_WRITE_DISABLE, 0); /* FIXME Always generate Rec */
+ REGIO_WRITE_FIELD_LITE(cmd, MSVDX_CMDS, ALTERNATIVE_OUTPUT_PICTURE_ROTATION , ROTATION_MODE, rotate_surface->extra_info[5]);
+
+ psb_cmdbuf_rendec_write(cmdbuf, cmd);
+
+ psb_cmdbuf_rendec_end_chunk(cmdbuf);
+}
+
+
+static void psb__H264_build_rendec_params(context_H264_p ctx, VASliceParameterBufferH264 *slice_param)
+{
+ psb_cmdbuf_p cmdbuf = ctx->obj_context->cmdbuf;
+ psb_surface_p target_surface = ctx->obj_context->current_render_target->psb_surface;
+ VAPictureParameterBufferH264 *pic_params = ctx->pic_params;
+ uint32_t reg_value;
+ int i;
+
+ psb_cmdbuf_rendec_start_block(cmdbuf);
+
+ /* CHUNK: Entdec back-end profile and level */
+ {
+ psb_cmdbuf_rendec_start_chunk(cmdbuf, RENDEC_REGISTER_OFFSET(MSVDX_VEC, CR_VEC_ENTDEC_BE_CONTROL));
+
+ reg_value = 0;
+ REGIO_WRITE_FIELD_LITE(reg_value, MSVDX_VEC, CR_VEC_ENTDEC_BE_CONTROL, ENTDEC_BE_PROFILE, ctx->profile);
+ REGIO_WRITE_FIELD_LITE(reg_value, MSVDX_VEC, CR_VEC_ENTDEC_BE_CONTROL, ENTDEC_BE_MODE, 1); /* 1 - H.264 */
+ psb_cmdbuf_rendec_write(cmdbuf, reg_value);
+
+ psb_cmdbuf_rendec_end_chunk(cmdbuf);
+ }
+
+ /* CHUNK: SEQ Registers */
+ /* send Slice Data for every slice */
+ /* MUST be the last slice sent */
+ psb_cmdbuf_rendec_start_chunk(cmdbuf, RENDEC_REGISTER_OFFSET(MSVDX_VEC, H264_CR_VEC_H264_BE_SPS0));
+
+ psb_cmdbuf_rendec_write(cmdbuf, ctx->reg_SPS0);
+ psb_cmdbuf_rendec_write(cmdbuf, ctx->reg_PPS0);
+ psb_cmdbuf_rendec_write(cmdbuf, ctx->reg_PIC0);
+ psb_cmdbuf_rendec_write(cmdbuf, ctx->slice0_params);
+ psb_cmdbuf_rendec_write(cmdbuf, ctx->slice1_params);
+
+ /* 5.5.75. VEC_H264_BE_BASE_ADDR_CUR_PIC */
+ psb_buffer_p colocated_target_buffer = psb__H264_lookup_colocated_buffer(ctx, target_surface);
+ ASSERT(colocated_target_buffer);
+ if (colocated_target_buffer) {
+ psb_cmdbuf_rendec_write_address(cmdbuf, colocated_target_buffer, colocated_target_buffer->buffer_ofs);
+ } else {
+ /* This is an error */
+ psb_cmdbuf_rendec_write(cmdbuf, 0);
+ }
+
+ reg_value = 0;
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_H264, CR_VEC_H264_BE_REF0, BE_LONGTERMFRAMEFLAG, ctx->long_term_frame_flags);
+ psb_cmdbuf_rendec_write(cmdbuf, reg_value);
+
+ psb_cmdbuf_rendec_end_chunk(cmdbuf);
+
+#warning "TODO: MUST be done after fe slice1 (which gives MB address) "
+ /* REGIO_WRITE_REGISTER(0, MSVDX_VEC_H264, CR_VEC_H264_FE_BASE_ADDR_SGM, gui32SliceGroupType6BaseAddressHack); */
+
+ /* CHUNK: SCA */
+ /* send Scaling Lists in High Profile for first slice*/
+ if (ctx->profile == H264_HIGH_PROFILE) {
+ psb__H264_build_SCA_chunk(ctx);
+ }
+
+ /* CHUNK: POC */
+ /* send Picture Order Counts (b frame only?) */
+ /* maybe need a state variable to track if this has already been sent for the frame */
+ if (slice_param->slice_type == ST_B) {
+ psb__H264_build_picture_order_chunk(ctx);
+ }
+
+ /* CHUNK: BIN */
+ /* send B-slice information for B-slices */
+ if (slice_param->slice_type == ST_B) {
+ psb__H264_build_B_slice_chunk(ctx, slice_param);
+ }
+
+ /* CHUNK: PIN */
+ /* send P+B-slice information for P and B slices */
+ if (slice_param->slice_type == ST_B || slice_param->slice_type == ST_P) {
+ psb_cmdbuf_rendec_start_chunk(cmdbuf, RENDEC_REGISTER_OFFSET(MSVDX_VEC, H264_CR_VEC_H264_BE_LIST0));
+
+ if (slice_param->num_ref_idx_l0_active_minus1 > (32 - 4)) {
+ psb__error_message("num_ref_idx_l0_active_minus1(%d) is too big. Set it with 28\n",
+ slice_param->num_ref_idx_l0_active_minus1);
+ slice_param->num_ref_idx_l0_active_minus1 = 28;
+ }
+
+ for (i = 0; i <= slice_param->num_ref_idx_l0_active_minus1; i += 4) {
+ reg_value = 0;
+ reg_value |= PICTURE2INDEX(ctx, &slice_param->RefPicList0[i]);
+ reg_value |= PICTURE2INDEX(ctx, &slice_param->RefPicList0[i+1]) << 8;
+ reg_value |= PICTURE2INDEX(ctx, &slice_param->RefPicList0[i+2]) << 16;
+ reg_value |= PICTURE2INDEX(ctx, &slice_param->RefPicList0[i+3]) << 24;
+ psb_cmdbuf_rendec_write(cmdbuf, reg_value);
+ }
+
+ psb_cmdbuf_rendec_end_chunk(cmdbuf);
+ }
+
+ /* CHUNK: DPB */
+ /* send DPB information (for P and B slices?) only needed once per frame */
+// if ( sh->slice_type == ST_B || sh->slice_type == ST_P )
+ if (pic_params->num_ref_frames > 0) {
+ int i;
+ IMG_BOOL is_used[16];
+ psb_cmdbuf_rendec_start_chunk(cmdbuf, RENDEC_REGISTER_OFFSET(MSVDX_CMDS, REFERENCE_PICTURE_BASE_ADDRESSES));
+
+ /* Mark all surfaces as unused */
+ memset(is_used, 0, sizeof(is_used));
+
+ if (slice_param->num_ref_idx_l0_active_minus1 > 31)
+ slice_param->num_ref_idx_l0_active_minus1 = 31;
+ /* Mark onlys frame that are actualy used */
+ for (i = 0; i <= slice_param->num_ref_idx_l0_active_minus1; i++) {
+ object_surface_p ref_surface = SURFACE(slice_param->RefPicList0[i].picture_id);
+ if (ref_surface) {
+ uint32_t idx = GET_SURFACE_INFO_dpb_idx(ref_surface->psb_surface);
+ if (idx < 16) {
+ is_used[idx] = IMG_TRUE;
+ }
+ }
+ }
+
+ if (slice_param->num_ref_idx_l1_active_minus1 > 31)
+ slice_param->num_ref_idx_l1_active_minus1 = 31;
+
+ /* Mark onlys frame that are actualy used */
+ for (i = 0; i <= slice_param->num_ref_idx_l1_active_minus1; i++) {
+ object_surface_p ref_surface = SURFACE(slice_param->RefPicList1[i].picture_id);
+ if (ref_surface) {
+ uint32_t idx = GET_SURFACE_INFO_dpb_idx(ref_surface->psb_surface);
+ if (idx < 16) {
+ is_used[idx] = IMG_TRUE;
+ }
+ }
+ }
+
+ if (pic_params->num_ref_frames > 16)
+ pic_params->num_ref_frames = 16;
+ /* Only load used surfaces */
+ for (i = 0; i < pic_params->num_ref_frames; i++) {
+ object_surface_p ref_surface = SURFACE(pic_params->ReferenceFrames[i].picture_id);
+ psb_buffer_p buffer;
+
+ if (NULL == ref_surface) {
+ psb__information_message("%s L%d Invalide reference surface handle, but still continue\n",
+ __FUNCTION__, __LINE__);
+ /* return; */
+ }
+
+ psb__information_message("pic_params->ReferenceFrames[%d] = %08x --> %08x frame_idx:0x%08x flags:%02x TopFieldOrderCnt: 0x%08x BottomFieldOrderCnt: 0x%08x %s\n",
+ i,
+ pic_params->ReferenceFrames[i].picture_id,
+ ref_surface,
+ pic_params->ReferenceFrames[i].frame_idx,
+ pic_params->ReferenceFrames[i].flags,
+ pic_params->ReferenceFrames[i].TopFieldOrderCnt,
+ pic_params->ReferenceFrames[i].BottomFieldOrderCnt,
+ is_used[i] ? "used" : "");
+
+ if (ref_surface && is_used[i])
+ // GET_SURFACE_INFO_is_used(ref_surface->psb_surface))
+ {
+ buffer = ref_surface->psb_surface->ref_buf;
+ psb_cmdbuf_rendec_write_address(cmdbuf, buffer,
+ buffer->buffer_ofs);
+ psb_cmdbuf_rendec_write_address(cmdbuf, buffer,
+ buffer->buffer_ofs +
+ ref_surface->psb_surface->chroma_offset);
+ } else {
+ psb_cmdbuf_rendec_write(cmdbuf, 0xdeadbeef);
+ psb_cmdbuf_rendec_write(cmdbuf, 0xdeadbeef);
+ }
+ }
+ psb_cmdbuf_rendec_end_chunk(cmdbuf);
+ }
+
+ /* CHUNK: MVA and MVB */
+ /* works as long as weighted factors A and B commands remain the same */
+ if ((pic_params->pic_fields.bits.weighted_pred_flag && (slice_param->slice_type == ST_P)) ||
+ ((pic_params->pic_fields.bits.weighted_bipred_idc != 0) && (slice_param->slice_type == ST_B))) {
+ IMG_UINT32 num_ref_0 = slice_param->num_ref_idx_l0_active_minus1;
+
+ psb_cmdbuf_rendec_start_chunk(cmdbuf, RENDEC_REGISTER_OFFSET(MSVDX_CMDS, H264_WEIGHTED_FACTORS_A));
+
+ if (num_ref_0 > 31)
+ num_ref_0 = 31;
+
+ /* weighted factors */
+ for (i = 0; i <= num_ref_0; i++) {
+ reg_value = 0;
+ REGIO_WRITE_FIELD_MASKEDLITE(reg_value, MSVDX_CMDS, H264_WEIGHTED_FACTORS_A, CR_WEIGHT_A, slice_param->chroma_weight_l0[i][1]);/* Cr - 1 */
+ REGIO_WRITE_FIELD_MASKEDLITE(reg_value, MSVDX_CMDS, H264_WEIGHTED_FACTORS_A, CB_WEIGHT_A, slice_param->chroma_weight_l0[i][0]);/* Cb - 0 */
+ REGIO_WRITE_FIELD_MASKEDLITE(reg_value, MSVDX_CMDS, H264_WEIGHTED_FACTORS_A, Y_WEIGHT_A, slice_param->luma_weight_l0[i]);
+
+ psb_cmdbuf_rendec_write(cmdbuf, reg_value);
+ }
+ /* pad remainder */
+ for (; i < 32; i++) {
+ psb_cmdbuf_rendec_write(cmdbuf, 0);
+ }
+
+ /* weighted offsets */
+ for (i = 0; i <= num_ref_0; i++) {
+ reg_value = 0;
+ REGIO_WRITE_FIELD_MASKEDLITE(reg_value, MSVDX_CMDS, H264_WEIGHTED_OFFSET_A, CR_OFFSET_A, slice_param->chroma_offset_l0[i][1]);/* Cr - 1 */
+ REGIO_WRITE_FIELD_MASKEDLITE(reg_value, MSVDX_CMDS, H264_WEIGHTED_OFFSET_A, CB_OFFSET_A, slice_param->chroma_offset_l0[i][0]);/* Cb - 0 */
+ REGIO_WRITE_FIELD_MASKEDLITE(reg_value, MSVDX_CMDS, H264_WEIGHTED_OFFSET_A, Y_OFFSET_A, slice_param->luma_offset_l0[i]);
+
+ psb_cmdbuf_rendec_write(cmdbuf, reg_value);
+ }
+ /* pad remainder */
+ for (; i < 32; i++) {
+ psb_cmdbuf_rendec_write(cmdbuf, 0);
+ }
+ psb_cmdbuf_rendec_end_chunk(cmdbuf);
+
+ if (slice_param->slice_type == ST_B) {
+ IMG_UINT32 num_ref_1 = slice_param->num_ref_idx_l1_active_minus1;
+
+ psb_cmdbuf_rendec_start_chunk(cmdbuf, RENDEC_REGISTER_OFFSET(MSVDX_CMDS, H264_WEIGHTED_FACTORS_B));
+
+ if (num_ref_1 > 31) {
+ psb__error_message("num_ref_1 shouldn't be larger than 31\n");
+ num_ref_1 = 31;
+ }
+
+ /* weighted factors */
+ for (i = 0; i <= num_ref_1; i++) {
+ reg_value = 0;
+ REGIO_WRITE_FIELD_MASKEDLITE(reg_value, MSVDX_CMDS, H264_WEIGHTED_FACTORS_B, CR_WEIGHT_B, slice_param->chroma_weight_l1[i][1]);/* Cr - 1 */
+ REGIO_WRITE_FIELD_MASKEDLITE(reg_value, MSVDX_CMDS, H264_WEIGHTED_FACTORS_B, CB_WEIGHT_B, slice_param->chroma_weight_l1[i][0]);/* Cb - 0 */
+ REGIO_WRITE_FIELD_MASKEDLITE(reg_value, MSVDX_CMDS, H264_WEIGHTED_FACTORS_B, Y_WEIGHT_B, slice_param->luma_weight_l1[i]);
+
+ psb_cmdbuf_rendec_write(cmdbuf, reg_value);
+ }
+ /* pad remainder */
+ for (; i < 32; i++) {
+ psb_cmdbuf_rendec_write(cmdbuf, 0);
+ }
+
+ /* weighted offsets */
+ for (i = 0; i <= num_ref_1; i++) {
+ reg_value = 0;
+ REGIO_WRITE_FIELD_MASKEDLITE(reg_value, MSVDX_CMDS, H264_WEIGHTED_OFFSET_B, CR_OFFSET_B, slice_param->chroma_offset_l1[i][1]);/* Cr - 1 */
+ REGIO_WRITE_FIELD_MASKEDLITE(reg_value, MSVDX_CMDS, H264_WEIGHTED_OFFSET_B, CB_OFFSET_B, slice_param->chroma_offset_l1[i][0]);/* Cb - 0 */
+ REGIO_WRITE_FIELD_MASKEDLITE(reg_value, MSVDX_CMDS, H264_WEIGHTED_OFFSET_B, Y_OFFSET_B, slice_param->luma_offset_l1[i]);
+
+ psb_cmdbuf_rendec_write(cmdbuf, reg_value);
+ }
+ /* pad remainder */
+ for (; i < 32; i++) {
+ psb_cmdbuf_rendec_write(cmdbuf, 0);
+ }
+ psb_cmdbuf_rendec_end_chunk(cmdbuf);
+ }
+ }
+
+ /* If this a two pass mode deblock, then we will perform the rotation as part of the
+ * 2nd pass deblock procedure
+ */
+ if (/*!ctx->two_pass_mode &&*/ ctx->obj_context->rotate != VA_ROTATION_NONE) /* FIXME field coded should not issue */
+ psb__H264_setup_alternative_frame(ctx);
+
+ /* CHUNK: SEQ Commands 1 */
+ /* send Slice Data for every slice */
+ /* MUST be the last slice sent */
+ psb_cmdbuf_rendec_start_chunk(cmdbuf, RENDEC_REGISTER_OFFSET(MSVDX_CMDS, DISPLAY_PICTURE_SIZE));
+
+ reg_value = 0;
+ REGIO_WRITE_FIELD_LITE(reg_value, MSVDX_CMDS, DISPLAY_PICTURE_SIZE, DISPLAY_PICTURE_HEIGHT, (ctx->picture_height_mb * 16) - 1);
+ REGIO_WRITE_FIELD_LITE(reg_value, MSVDX_CMDS, DISPLAY_PICTURE_SIZE, DISPLAY_PICTURE_WIDTH, (ctx->picture_width_mb * 16) - 1);
+ psb_cmdbuf_rendec_write(cmdbuf, reg_value);
+
+ reg_value = 0;
+ REGIO_WRITE_FIELD_LITE(reg_value, MSVDX_CMDS, CODED_PICTURE_SIZE, CODED_PICTURE_HEIGHT, (ctx->picture_height_mb * 16) - 1);
+ REGIO_WRITE_FIELD_LITE(reg_value, MSVDX_CMDS, CODED_PICTURE_SIZE, CODED_PICTURE_WIDTH, (ctx->picture_width_mb * 16) - 1);
+ psb_cmdbuf_rendec_write(cmdbuf, reg_value);
+
+ reg_value = 0;
+ // TODO: Must check how these should be set
+ REGIO_WRITE_FIELD_LITE(reg_value, MSVDX_CMDS, OPERATING_MODE, CHROMA_INTERLEAVED, 0);
+ REGIO_WRITE_FIELD_LITE(reg_value, MSVDX_CMDS, OPERATING_MODE, ROW_STRIDE, target_surface->stride_mode);
+ REGIO_WRITE_FIELD_LITE(reg_value, MSVDX_CMDS, OPERATING_MODE, CODEC_PROFILE, ctx->profile);
+ REGIO_WRITE_FIELD_LITE(reg_value, MSVDX_CMDS, OPERATING_MODE, CODEC_MODE, 1); /* H.264 */
+ REGIO_WRITE_FIELD_LITE(reg_value, MSVDX_CMDS, OPERATING_MODE, ASYNC_MODE, ctx->two_pass_mode);
+ REGIO_WRITE_FIELD_LITE(reg_value, MSVDX_CMDS, OPERATING_MODE, CHROMA_FORMAT, pic_params->seq_fields.bits.chroma_format_idc);
+ psb_cmdbuf_rendec_write(cmdbuf, reg_value);
+
+ ctx->obj_context->operating_mode = reg_value;
+
+ if (ctx->obj_context->is_oold && !ctx->two_pass_mode) { /* Need to mark which buf is to be used as ref*/
+ /* LUMA_RECONSTRUCTED_PICTURE_BASE_ADDRESSES */
+ psb_cmdbuf_rendec_write_address(cmdbuf, target_surface->in_loop_buf, target_surface->in_loop_buf->buffer_ofs);
+
+ /* CHROMA_RECONSTRUCTED_PICTURE_BASE_ADDRESSES */
+ psb_cmdbuf_rendec_write_address(cmdbuf, target_surface->in_loop_buf, target_surface->in_loop_buf->buffer_ofs + target_surface->chroma_offset);
+ target_surface->ref_buf = target_surface->in_loop_buf;
+ } else {
+ psb_cmdbuf_rendec_write_address(cmdbuf, &target_surface->buf, target_surface->buf.buffer_ofs);
+ psb_cmdbuf_rendec_write_address(cmdbuf, &target_surface->buf, target_surface->buf.buffer_ofs + target_surface->chroma_offset);
+ target_surface->ref_buf = &target_surface->buf;
+ }
+ /* Aux Msb Buffer base address: H.264 does not use this command */
+ reg_value = 0;
+ psb_cmdbuf_rendec_write(cmdbuf, reg_value);
+
+ /* Intra Reference Cache */
+ psb_cmdbuf_rendec_write_address(cmdbuf, &ctx->reference_cache, 0);
+
+ reg_value = 0;
+ REGIO_WRITE_FIELD_LITE(reg_value, MSVDX_CMDS, MC_CACHE_CONFIGURATION, CONFIG_REF_OFFSET, CACHE_REF_OFFSET);
+ REGIO_WRITE_FIELD_LITE(reg_value, MSVDX_CMDS, MC_CACHE_CONFIGURATION, CONFIG_ROW_OFFSET, CACHE_ROW_OFFSET);
+ psb_cmdbuf_rendec_write(cmdbuf, reg_value);
+
+ /* Vc1 Intensity compensation: H.264 does not use this command */
+ reg_value = 0;
+ psb_cmdbuf_rendec_write(cmdbuf, reg_value);
+
+ reg_value = 0;
+ REGIO_WRITE_FIELD_LITE(reg_value, MSVDX_CMDS, H264_WEIGHTED_FACTOR_DENOMINATOR, C_LOG2_WEIGHT_DENOM, slice_param->chroma_log2_weight_denom);
+ REGIO_WRITE_FIELD_LITE(reg_value, MSVDX_CMDS, H264_WEIGHTED_FACTOR_DENOMINATOR, Y_LOG2_WEIGHT_DENOM, slice_param->luma_log2_weight_denom);
+ psb_cmdbuf_rendec_write(cmdbuf, reg_value);
+
+ psb_cmdbuf_rendec_end_chunk(cmdbuf);
+
+ /* CHUNK: SEQ Commands 2 */
+ /* send Slice Data for every slice */
+ /* MUST be the last slice sent */
+ {
+ IMG_UINT32 ui32Mode = pic_params->pic_fields.bits.weighted_pred_flag | (pic_params->pic_fields.bits.weighted_bipred_idc << 1);
+
+ psb_cmdbuf_rendec_start_chunk(cmdbuf, RENDEC_REGISTER_OFFSET(MSVDX_CMDS, SLICE_PARAMS));
+
+ reg_value = 0;
+ REGIO_WRITE_FIELD_LITE(reg_value, MSVDX_CMDS, SLICE_PARAMS, CONSTRAINED_INTRA_PRED, pic_params->pic_fields.bits.constrained_intra_pred_flag);
+ REGIO_WRITE_FIELD_LITE(reg_value, MSVDX_CMDS, SLICE_PARAMS, MODE_CONFIG, ui32Mode);
+ REGIO_WRITE_FIELD_LITE(reg_value, MSVDX_CMDS, SLICE_PARAMS, DISABLE_DEBLOCK_FILTER_IDC, slice_param->disable_deblocking_filter_idc);
+ REGIO_WRITE_FIELD_MASKEDLITE(reg_value, MSVDX_CMDS, SLICE_PARAMS, SLICE_ALPHA_CO_OFFSET_DIV2, slice_param->slice_alpha_c0_offset_div2);
+ REGIO_WRITE_FIELD_MASKEDLITE(reg_value, MSVDX_CMDS, SLICE_PARAMS, SLICE_BETA_OFFSET_DIV2, slice_param->slice_beta_offset_div2);
+ REGIO_WRITE_FIELD_LITE(reg_value, MSVDX_CMDS, SLICE_PARAMS, SLICE_FIELD_TYPE, ctx->field_type);
+ REGIO_WRITE_FIELD_LITE(reg_value, MSVDX_CMDS, SLICE_PARAMS, SLICE_CODE_TYPE, aSliceTypeVAtoMsvdx[slice_param->slice_type % 5]);
+ psb_cmdbuf_rendec_write(cmdbuf, reg_value);
+
+ /* Store slice parameters in header */
+ *(ctx->p_slice_params) = reg_value;
+
+ psb_cmdbuf_rendec_end_chunk(cmdbuf);
+ }
+
+
+ psb_cmdbuf_rendec_end_block(cmdbuf);
+}
+
+/*
+ * Adds a VASliceParameterBuffer to the list of slice params
+ */
+static VAStatus psb__H264_add_slice_param(context_H264_p ctx, object_buffer_p obj_buffer)
+{
+ ASSERT(obj_buffer->type == VASliceParameterBufferType);
+ if (ctx->slice_param_list_idx >= ctx->slice_param_list_size) {
+ void *new_list;
+ ctx->slice_param_list_size += 8;
+ new_list = realloc(ctx->slice_param_list,
+ sizeof(object_buffer_p) * ctx->slice_param_list_size);
+ if (NULL == new_list) {
+ return VA_STATUS_ERROR_ALLOCATION_FAILED;
+ }
+ ctx->slice_param_list = (object_buffer_p*) new_list;
+ }
+ ctx->slice_param_list[ctx->slice_param_list_idx] = obj_buffer;
+ ctx->slice_param_list_idx++;
+ return VA_STATUS_SUCCESS;
+}
+
+static void psb__H264_write_kick(context_H264_p ctx, VASliceParameterBufferH264 *slice_param)
+{
+ psb_cmdbuf_p cmdbuf = ctx->obj_context->cmdbuf;
+
+ (void) slice_param; /* Unused for now */
+
+ *cmdbuf->cmd_idx++ = CMD_COMPLETION;
+}
+
+static void psb__H264_FE_state(context_H264_p ctx)
+{
+ uint32_t lldma_record_offset;
+ psb_cmdbuf_p cmdbuf = ctx->obj_context->cmdbuf;
+
+ /* See RENDER_BUFFER_HEADER */
+ *cmdbuf->cmd_idx++ = CMD_HEADER;
+
+ ctx->p_slice_params = cmdbuf->cmd_idx;
+ *cmdbuf->cmd_idx++ = 0; /* ui32SliceParams */
+
+ lldma_record_offset = psb_cmdbuf_lldma_create(cmdbuf, &(ctx->preload_buffer), 0,
+ sizeof(PRELOAD), 0, LLDMA_TYPE_H264_PRELOAD_SAVE);
+ RELOC(*cmdbuf->cmd_idx, lldma_record_offset, &(cmdbuf->buf));
+ cmdbuf->cmd_idx++;
+
+ lldma_record_offset = psb_cmdbuf_lldma_create(cmdbuf, &(ctx->preload_buffer), 0,
+ sizeof(PRELOAD), 0, LLDMA_TYPE_H264_PRELOAD_RESTORE);
+ RELOC(*cmdbuf->cmd_idx, lldma_record_offset, &(cmdbuf->buf));
+ cmdbuf->cmd_idx++;
+}
+
+static void psb__H264_preprocess_slice(context_H264_p ctx,
+ VASliceParameterBufferH264 *slice_param)
+{
+ VAPictureParameterBufferH264 *pic_params = ctx->pic_params;
+ uint32_t slice_qpy;
+
+ ctx->first_mb_x = slice_param->first_mb_in_slice % ctx->picture_width_mb;
+ ctx->first_mb_y = slice_param->first_mb_in_slice / ctx->picture_width_mb;
+ ctx->slice0_params = 0;
+ ctx->slice1_params = 0;
+
+ ASSERT(pic_params);
+ if (!pic_params) {
+ /* This is an error */
+ return;
+ }
+
+ if (!pic_params->pic_fields.bits.field_pic_flag && pic_params->seq_fields.bits.mb_adaptive_frame_field_flag) {
+ /* If in MBAFF mode multiply MB y-address by 2 */
+ ctx->first_mb_y *= 2;
+ }
+
+ slice_qpy = 26 + pic_params->pic_init_qp_minus26 + slice_param->slice_qp_delta; /* (7-27) */
+
+ REGIO_WRITE_FIELD_LITE(ctx->slice0_params, MSVDX_VEC_H264, CR_VEC_H264_BE_SLICE0, BE_DIRECT_SPATIAL_MV_PRED_FLAG, slice_param->direct_spatial_mv_pred_flag);
+ REGIO_WRITE_FIELD_LITE(ctx->slice0_params, MSVDX_VEC_H264, CR_VEC_H264_BE_SLICE0, H264_BE_SLICE0_DISABLE_DEBLOCK_FILTER_IDC, slice_param->disable_deblocking_filter_idc);
+ REGIO_WRITE_FIELD_MASKEDLITE(ctx->slice0_params, MSVDX_VEC_H264, CR_VEC_H264_BE_SLICE0, H264_BE_SLICE0_ALPHA_CO_OFFSET_DIV2, slice_param->slice_alpha_c0_offset_div2);
+ REGIO_WRITE_FIELD_MASKEDLITE(ctx->slice0_params, MSVDX_VEC_H264, CR_VEC_H264_BE_SLICE0, H264_BE_SLICE0_BETA_OFFSET_DIV2, slice_param->slice_beta_offset_div2);
+ REGIO_WRITE_FIELD_LITE(ctx->slice0_params, MSVDX_VEC_H264, CR_VEC_H264_BE_SLICE0, H264_BE_SLICE0_FIELD_TYPE, ctx->field_type);
+ REGIO_WRITE_FIELD_LITE(ctx->slice0_params, MSVDX_VEC_H264, CR_VEC_H264_FE_SLICE0, SLICETYPE, aSliceTypeVAtoMsvdx[ slice_param->slice_type % 5]);
+ REGIO_WRITE_FIELD_LITE(ctx->slice0_params, MSVDX_VEC_H264, CR_VEC_H264_FE_SLICE0, CABAC_INIT_IDC, slice_param->cabac_init_idc);
+ REGIO_WRITE_FIELD_LITE(ctx->slice0_params, MSVDX_VEC_H264, CR_VEC_H264_FE_SLICE0, SLICECOUNT, ctx->slice_count);
+
+ REGIO_WRITE_FIELD_LITE(ctx->slice1_params, MSVDX_VEC_H264, CR_VEC_H264_FE_SLICE1, FIRST_MB_IN_SLICE_X, ctx->first_mb_x);
+ REGIO_WRITE_FIELD_LITE(ctx->slice1_params, MSVDX_VEC_H264, CR_VEC_H264_FE_SLICE1, FIRST_MB_IN_SLICE_Y, ctx->first_mb_y);
+ REGIO_WRITE_FIELD_LITE(ctx->slice1_params, MSVDX_VEC_H264, CR_VEC_H264_FE_SLICE1, SLICEQPY, slice_qpy);
+ REGIO_WRITE_FIELD_LITE(ctx->slice1_params, MSVDX_VEC_H264, CR_VEC_H264_FE_SLICE1, NUM_REF_IDX_L0_ACTIVE_MINUS1, slice_param->num_ref_idx_l0_active_minus1);
+ REGIO_WRITE_FIELD_LITE(ctx->slice1_params, MSVDX_VEC_H264, CR_VEC_H264_FE_SLICE1, NUM_REF_IDX_L1_ACTIVE_MINUS1, slice_param->num_ref_idx_l1_active_minus1);
+}
+
+/* **************************************************************************************************************** */
+/* Prepacked calculates VLC table offsets and reg address */
+/* **************************************************************************************************************** */
+static const IMG_UINT32 ui32H264VLCTableRegValPair[] = {
+ (REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR0) + 0x00000000), 0x00026000,
+ (REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR0) + 0x00000004), 0x000738a0,
+ (REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR0) + 0x00000008), 0x000828f4,
+ (REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR0) + 0x0000000c), 0x000a312d,
+ (REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR0) + 0x00000010), 0x000b5959,
+ (REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR0) + 0x00000014), 0x000c517b,
+ (REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR0) + 0x00000018), 0x000d1196,
+ (REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR0) + 0x0000001c), 0x000db1ad,
+ (REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR0) + 0x00000020), 0x000e21be,
+ (REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR0) + 0x00000024), 0x000e59c8,
+ (REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR0) + 0x00000028), 0x000e79cd,
+ (REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR0) + 0x0000002c), 0x000eb1d3,
+ (REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR0) + 0x00000030), 0x000ed1d8,
+ (REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR0) + 0x00000034), 0x000f09dd,
+ (REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR0) + 0x00000038), 0x000f71e7,
+ (REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR0) + 0x0000003c), 0x000001f6,
+ (REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR0) + 0x00000040), 0x1256a4dd,
+ (REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR0) + 0x00000044), 0x01489292,
+ (REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR0) + 0x00000048), 0x11248050,
+ (REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR0) + 0x0000004c), 0x00000002,
+ (REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR0) + 0x00000050), 0x00002a02,
+ (REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR0) + 0x00000054), 0x0108282a,
+};
+
+
+static void psb__H264_write_VLC_tables(context_H264_p ctx)
+{
+ psb_cmdbuf_p cmdbuf = ctx->obj_context->cmdbuf;
+ int i;
+
+ psb_cmdbuf_skip_start_block(cmdbuf, SKIP_ON_CONTEXT_SWITCH);
+
+ /* VLC Table */
+ /* Write a LLDMA Cmd to transfer VLD Table data */
+ psb_cmdbuf_lldma_write_cmdbuf(cmdbuf, &ctx->vlc_packed_table, 0,
+ sizeof(ui16H264VLCTableData),
+ 0, LLDMA_TYPE_VLC_TABLE);
+
+ /* Writes the VLD offsets. mtx need only do this on context switch*/
+ psb_cmdbuf_reg_start_block(cmdbuf);
+
+ for (i = 0; i < (sizeof(ui32H264VLCTableRegValPair) / sizeof(ui32H264VLCTableRegValPair[0])) ; i += 2) {
+ psb_cmdbuf_reg_set(cmdbuf, ui32H264VLCTableRegValPair[i] , ui32H264VLCTableRegValPair[i + 1]);
+ }
+
+ psb_cmdbuf_reg_end_block(cmdbuf);
+
+ psb_cmdbuf_skip_end_block(cmdbuf);
+}
+
+static void psb__set_macroblock_parameters(context_H264_p ctx, unsigned int value, unsigned int size)
+{
+ psb_cmdbuf_p cmdbuf = ctx->obj_context->cmdbuf;
+ psb_surface_p target_surface = ctx->obj_context->current_render_target->psb_surface;
+ psb_buffer_p colocated_target_buffer = psb__H264_lookup_colocated_buffer(ctx, target_surface);
+
+ if (NULL == colocated_target_buffer) {
+ psb__error_message("%s can't find colocated buffer for target surface!\n", __func__);
+ return;
+ }
+
+ psb_cmdbuf_reg_start_block(cmdbuf);
+ psb_cmdbuf_reg_set(cmdbuf, (REG_MSVDX_VEC_RAM_OFFSET + 0xcc0) , value);
+ psb_cmdbuf_reg_end_block(cmdbuf);
+
+ psb_cmdbuf_lldma_write_cmdbuf(cmdbuf, colocated_target_buffer, colocated_target_buffer->buffer_ofs,
+ size,
+ 0, LLDMA_TYPE_MEM_SET);
+}
+
+static VAStatus psb__H264_process_slice(context_H264_p ctx,
+ VASliceParameterBufferH264 *slice_param,
+ object_buffer_p obj_buffer)
+{
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+
+ ASSERT((obj_buffer->type == VASliceDataBufferType) || (obj_buffer->type == VAProtectedSliceDataBufferType));
+
+ psb__information_message("H264 process slice %d\n", ctx->slice_count);
+ psb__information_message(" profile = %s\n", profile2str[ctx->profile]);
+ psb__information_message(" size = %08x offset = %08x\n", slice_param->slice_data_size, slice_param->slice_data_offset);
+ psb__information_message(" first mb = %d macroblock offset = %d\n", slice_param->first_mb_in_slice, slice_param->slice_data_bit_offset);
+ psb__information_message(" slice_data_flag = %d\n", slice_param->slice_data_flag);
+ psb__information_message(" coded size = %dx%d\n", ctx->picture_width_mb, ctx->picture_height_mb);
+ psb__information_message(" slice type = %s\n", slice2str[(slice_param->slice_type % 5)]);
+ psb__information_message(" weighted_pred_flag = %d weighted_bipred_idc = %d\n", ctx->pic_params->pic_fields.bits.weighted_pred_flag, ctx->pic_params->pic_fields.bits.weighted_bipred_idc);
+
+ if ((slice_param->slice_data_flag == VA_SLICE_DATA_FLAG_BEGIN) ||
+ (slice_param->slice_data_flag == VA_SLICE_DATA_FLAG_ALL)) {
+ if (0 == slice_param->slice_data_size) {
+ vaStatus = VA_STATUS_ERROR_UNKNOWN;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+ ASSERT(!ctx->split_buffer_pending);
+
+ psb__H264_preprocess_slice(ctx, slice_param);
+
+ /* Initialise the command buffer */
+ /* TODO: Reuse current command buffer until full */
+ psb_context_get_next_cmdbuf(ctx->obj_context);
+ /* Add slice data buffer to the buffer list */
+ psb_cmdbuf_buffer_ref(ctx->obj_context->cmdbuf, obj_buffer->psb_buffer);
+
+ psb__H264_FE_state(ctx);
+
+ psb__H264_write_VLC_tables(ctx);
+
+ psb_cmdbuf_lldma_write_bitstream(ctx->obj_context->cmdbuf,
+ obj_buffer->psb_buffer,
+ obj_buffer->psb_buffer->buffer_ofs + slice_param->slice_data_offset,
+ slice_param->slice_data_size,
+ slice_param->slice_data_bit_offset,
+ CMD_ENABLE_RBDU_EXTRACTION);
+
+ if (slice_param->slice_data_flag == VA_SLICE_DATA_FLAG_BEGIN) {
+ ctx->split_buffer_pending = TRUE;
+ }
+ } else {
+ ASSERT(ctx->split_buffer_pending);
+ ASSERT(0 == slice_param->slice_data_offset);
+ /* Create LLDMA chain to continue buffer */
+ if (slice_param->slice_data_size) {
+ psb_cmdbuf_lldma_write_bitstream_chained(ctx->obj_context->cmdbuf,
+ obj_buffer->psb_buffer,
+ slice_param->slice_data_size);
+ }
+ }
+
+ if ((slice_param->slice_data_flag == VA_SLICE_DATA_FLAG_ALL) ||
+ (slice_param->slice_data_flag == VA_SLICE_DATA_FLAG_END)) {
+ if (slice_param->slice_data_flag == VA_SLICE_DATA_FLAG_END) {
+ ASSERT(ctx->split_buffer_pending);
+ }
+#if 0
+ if (ctx->slice_count == 0) {
+ const unsigned int size = (((ctx->size_mb + 100) * 128 + 0xfff) & ~0xfff);
+
+ /* this code only works for progressive frames, for interlaced, a 2d dma is required to
+ set only one of the fields data to 0 */
+ ASSERT(ctx->pic_params->pic_fields.bits.field_pic_flag == 0);
+
+ /* Set the macroblock parameters to 0 */
+ psb__set_macroblock_parameters(ctx, 0, size);
+ }
+#endif
+ psb__H264_build_register(ctx, slice_param);
+
+ psb__H264_build_rendec_params(ctx, slice_param);
+
+ psb__H264_write_kick(ctx, slice_param);
+
+ ctx->split_buffer_pending = FALSE;
+ ctx->obj_context->video_op = psb_video_vld;
+ ctx->obj_context->flags = 0;
+ if (ctx->slice_count == 0) {
+ ctx->obj_context->flags |= FW_VA_RENDER_IS_FIRST_SLICE;
+ }
+ if (ctx->pic_params->seq_fields.bits.mb_adaptive_frame_field_flag) {
+ ctx->obj_context->flags |= FW_VA_RENDER_IS_H264_MBAFF;
+ }
+ if (ctx->two_pass_mode) {
+ ctx->obj_context->flags |= FW_VA_RENDER_IS_TWO_PASS_DEBLOCK;
+ }
+
+ if (ctx->obj_context->driver_data->ec_enabled)
+ ctx->obj_context->flags |= (FW_ERROR_DETECTION_AND_RECOVERY); /* FW_ERROR_DETECTION_AND_RECOVERY */
+
+ ctx->obj_context->first_mb = (ctx->first_mb_y << 8) | ctx->first_mb_x;
+ ctx->obj_context->last_mb = (((ctx->picture_height_mb >> ctx->pic_params->pic_fields.bits.field_pic_flag) - 1) << 8) | (ctx->picture_width_mb - 1);
+ if (psb_context_submit_cmdbuf(ctx->obj_context)) {
+ vaStatus = VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ ctx->slice_count++;
+ }
+ return vaStatus;
+}
+
+static VAStatus psb__H264_process_slice_data(context_H264_p ctx, object_buffer_p obj_buffer)
+{
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ VASliceParameterBufferH264 *slice_param;
+ int buffer_idx = 0;
+ int element_idx = 0;
+
+ ASSERT((obj_buffer->type == VASliceDataBufferType) || (obj_buffer->type == VAProtectedSliceDataBufferType));
+
+ ASSERT(ctx->pic_params);
+ ASSERT(ctx->slice_param_list_idx);
+
+ if (!ctx->pic_params) {
+ /* Picture params missing */
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+ if ((NULL == obj_buffer->psb_buffer) ||
+ (0 == obj_buffer->size)) {
+ /* We need to have data in the bitstream buffer */
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ while (buffer_idx < ctx->slice_param_list_idx) {
+ object_buffer_p slice_buf = ctx->slice_param_list[buffer_idx];
+ if (element_idx >= slice_buf->num_elements) {
+ /* Move to next buffer */
+ element_idx = 0;
+ buffer_idx++;
+ continue;
+ }
+
+ slice_param = (VASliceParameterBufferH264 *) slice_buf->buffer_data;
+ slice_param += element_idx;
+ element_idx++;
+ vaStatus = psb__H264_process_slice(ctx, slice_param, obj_buffer);
+ if (vaStatus != VA_STATUS_SUCCESS) {
+ DEBUG_FAILURE;
+ break;
+ }
+ }
+ ctx->slice_param_list_idx = 0;
+
+ return vaStatus;
+}
+
+static VAStatus psb_H264_BeginPicture(
+ object_context_p obj_context)
+{
+ INIT_CONTEXT_H264
+
+ if (ctx->pic_params) {
+ free(ctx->pic_params);
+ ctx->pic_params = NULL;
+ }
+ if (ctx->iq_matrix) {
+ free(ctx->iq_matrix);
+ ctx->iq_matrix = NULL;
+ }
+ ctx->slice_count = 0;
+ ctx->slice_group_map_buffer = NULL;
+ return VA_STATUS_SUCCESS;
+}
+
+static VAStatus psb_H264_RenderPicture(
+ object_context_p obj_context,
+ object_buffer_p *buffers,
+ int num_buffers)
+{
+ int i;
+ INIT_CONTEXT_H264
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+
+ for (i = 0; i < num_buffers; i++) {
+ object_buffer_p obj_buffer = buffers[i];
+
+ switch (obj_buffer->type) {
+ case VAPictureParameterBufferType:
+ psb__information_message("psb_H264_RenderPicture got VAPictureParameterBuffer\n");
+ vaStatus = psb__H264_process_picture_param(ctx, obj_buffer);
+ DEBUG_FAILURE;
+ break;
+
+ case VAIQMatrixBufferType:
+ psb__information_message("psb_H264_RenderPicture got VAIQMatrixBufferType\n");
+ vaStatus = psb__H264_process_iq_matrix(ctx, obj_buffer);
+ DEBUG_FAILURE;
+ break;
+
+ case VASliceGroupMapBufferType:
+ psb__information_message("psb_H264_RenderPicture got VASliceGroupMapBufferType\n");
+ vaStatus = psb__H264_process_slice_group_map(ctx, obj_buffer);
+ DEBUG_FAILURE;
+ break;
+
+ case VASliceParameterBufferType:
+ psb__information_message("psb_H264_RenderPicture got VASliceParameterBufferType\n");
+ vaStatus = psb__H264_add_slice_param(ctx, obj_buffer);
+ DEBUG_FAILURE;
+ break;
+
+ case VASliceDataBufferType:
+ case VAProtectedSliceDataBufferType:
+ psb__information_message("psb_H264_RenderPicture got %s\n", SLICEDATA_BUFFER_TYPE(obj_buffer->type));
+ vaStatus = psb__H264_process_slice_data(ctx, obj_buffer);
+ DEBUG_FAILURE;
+ break;
+
+ default:
+ vaStatus = VA_STATUS_ERROR_UNKNOWN;
+ DEBUG_FAILURE;
+ }
+ if (vaStatus != VA_STATUS_SUCCESS) {
+ break;
+ }
+ }
+
+ return vaStatus;
+}
+
+static VAStatus psb_H264_EndPicture(
+ object_context_p obj_context)
+{
+ INIT_CONTEXT_H264
+ psb_driver_data_p driver_data = obj_context->driver_data;
+ psb_surface_p target_surface = ctx->obj_context->current_render_target->psb_surface;
+
+ if (obj_context->is_oold && !ctx->two_pass_mode) {
+
+ psb_buffer_p colocated_target_buffer = psb__H264_lookup_colocated_buffer(ctx, target_surface);
+
+ psb_context_submit_oold(ctx->obj_context,
+ target_surface->in_loop_buf,
+ &target_surface->buf,
+ colocated_target_buffer,
+ ctx->picture_width_mb,
+ ctx->picture_height_mb,
+ ctx->field_type,
+ target_surface->chroma_offset);
+ }
+
+ driver_data->decode_info.num_surface = ctx->obj_context->num_render_targets;
+ driver_data->decode_info.surface_id = obj_context->current_render_surface_id;
+
+ if (driver_data->ec_enabled && IS_MRST(driver_data)) {
+ psb_context_submit_host_be_opp(ctx->obj_context, &target_surface->buf,
+ target_surface->stride, target_surface->size,
+ ctx->picture_width_mb, ctx->size_mb);
+ }
+
+ if (psb_context_flush_cmdbuf(ctx->obj_context)) {
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+
+#if 0
+ if (driver_data->ec_enabled && IS_MRST(driver_data)) {
+ psb_context_get_next_cmdbuf(ctx->obj_context);
+ psb_context_submit_host_be_opp(ctx->obj_context, &target_surface->buf,
+ target_surface->stride, target_surface->size,
+ ctx->picture_width_mb, ctx->size_mb);
+ if (psb_context_flush_cmdbuf(ctx->obj_context))
+ psb__information_message("psb_H264: flush deblock cmdbuf error\n");
+
+ }
+#endif
+
+ if (ctx->two_pass_mode && (ctx->obj_context->rotate == VA_ROTATION_NONE)) {
+ void *pMbData = NULL;
+
+ psb_surface_p target_surface = ctx->obj_context->current_render_target->psb_surface;
+ psb_buffer_p colocated_target_buffer = psb__H264_lookup_colocated_buffer(ctx, target_surface);
+
+ psb__information_message("psb_H264_EndPicture got two pass mode frame\n");
+
+ psb_surface_sync(target_surface);
+
+ psb_context_get_next_cmdbuf(ctx->obj_context);
+
+ if ((NULL == colocated_target_buffer)
+ || psb_buffer_map(colocated_target_buffer, &pMbData)) {
+ psb__information_message("psb_H264: map colocated buffer error!\n");
+ } else {
+ int ret;
+ pMbData += colocated_target_buffer->buffer_ofs;
+
+ ret = psb_cmdbuf_second_pass(ctx->obj_context,
+ ctx->obj_context->operating_mode, /* Write RegIO pairs into cmdbuf->buf */
+ pMbData,
+ ctx->picture_width_mb,
+ ctx->picture_height_mb,
+ &target_surface->buf,
+ target_surface->chroma_offset);
+
+ psb_buffer_unmap(colocated_target_buffer);
+
+ //printf("Ret of psb_cmdbuf_second_pass is %d\n", ret);
+ if (!ret) {
+ //printf("Submit deblock msg and flush cmdbuf\n");
+ psb_context_submit_deblock(ctx->obj_context);
+
+ if (psb_context_flush_cmdbuf(ctx->obj_context))
+ psb__information_message("psb_H264: flush deblock cmdbuf error\n");
+ }
+ }
+ }
+
+ if (ctx->pic_params) {
+ free(ctx->pic_params);
+ ctx->pic_params = NULL;
+ }
+
+ if (ctx->iq_matrix) {
+ free(ctx->iq_matrix);
+ ctx->iq_matrix = NULL;
+ }
+
+ return VA_STATUS_SUCCESS;
+}
+
+struct format_vtable_s psb_H264_vtable = {
+queryConfigAttributes:
+ psb_H264_QueryConfigAttributes,
+validateConfig:
+ psb_H264_ValidateConfig,
+createContext:
+ psb_H264_CreateContext,
+destroyContext:
+ psb_H264_DestroyContext,
+beginPicture:
+ psb_H264_BeginPicture,
+renderPicture:
+ psb_H264_RenderPicture,
+endPicture:
+ psb_H264_EndPicture
+};
diff --git a/src/psb_H264.h b/src/psb_H264.h
new file mode 100644
index 0000000..df57f63
--- /dev/null
+++ b/src/psb_H264.h
@@ -0,0 +1,37 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ * Waldo Bastian <waldo.bastian@intel.com>
+ *
+ */
+
+#ifndef _PSB_H264_H_
+#define _PSB_H264_H_
+
+#include "psb_drv_video.h"
+
+extern struct format_vtable_s psb_H264_vtable;
+
+#endif /* _PSB_H264_H_ */
diff --git a/src/psb_MPEG2.c b/src/psb_MPEG2.c
new file mode 100644
index 0000000..af2a577
--- /dev/null
+++ b/src/psb_MPEG2.c
@@ -0,0 +1,1611 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ * Waldo Bastian <waldo.bastian@intel.com>
+ *
+ */
+
+
+#include "psb_MPEG2.h"
+#include "psb_def.h"
+#include "psb_surface.h"
+#include "psb_cmdbuf.h"
+
+#include "hwdefs/reg_io2.h"
+#include "hwdefs/msvdx_offsets.h"
+#include "hwdefs/msvdx_cmds_io2.h"
+#include "hwdefs/msvdx_vec_reg_io2.h"
+#include "hwdefs/msvdx_vec_mpeg2_reg_io2.h"
+#include "hwdefs/dxva_fw_ctrl.h"
+
+#include <stdlib.h>
+#include <stdint.h>
+#include <string.h>
+
+#define GET_SURFACE_INFO_is_defined(psb_surface) ((int) (psb_surface->extra_info[0]))
+#define SET_SURFACE_INFO_is_defined(psb_surface, val) psb_surface->extra_info[0] = (uint32_t) val;
+#define GET_SURFACE_INFO_picture_structure(psb_surface) (psb_surface->extra_info[1])
+#define SET_SURFACE_INFO_picture_structure(psb_surface, val) psb_surface->extra_info[1] = val;
+#define GET_SURFACE_INFO_picture_coding_type(psb_surface) ((int) (psb_surface->extra_info[2]))
+#define SET_SURFACE_INFO_picture_coding_type(psb_surface, val) psb_surface->extra_info[2] = (uint32_t) val;
+
+
+#define SLICEDATA_BUFFER_TYPE(type) ((type==VASliceDataBufferType)?"VASliceDataBufferType":"VAProtectedSliceDataBufferType")
+
+/*
+ * Frame types - format dependant!
+ */
+#define PICTURE_CODING_I 0x01
+#define PICTURE_CODING_P 0x02
+#define PICTURE_CODING_B 0x03
+#define PICTURE_CODING_D 0x04
+
+
+/************************************************************************************/
+/* Variable length codes in 'packed' format */
+/************************************************************************************/
+
+/* Format is: opcode, width, symbol. All VLC tables are concatenated. Index */
+/* infomation is stored in gui16mpeg2VlcIndexData[] */
+#define VLC_PACK(a,b,c) ( ( (a) << 12 ) | ( (b) << 9 ) | (c) )
+const static IMG_UINT16 gaui16mpeg2VlcTableDataPacked[] = {
+ VLC_PACK(6 , 0 , 0) ,
+ VLC_PACK(0 , 0 , 6) ,
+ VLC_PACK(4 , 2 , 4) ,
+ VLC_PACK(4 , 3 , 5) ,
+ VLC_PACK(4 , 4 , 6) ,
+ VLC_PACK(4 , 5 , 7) ,
+ VLC_PACK(1 , 1 , 3) ,
+ VLC_PACK(4 , 0 , 0) ,
+ VLC_PACK(4 , 0 , 3) ,
+ VLC_PACK(4 , 0 , 8) ,
+ VLC_PACK(4 , 1 , 9) ,
+ VLC_PACK(5 , 0 , 5) ,
+ VLC_PACK(5 , 0 , 0) ,
+ VLC_PACK(4 , 1 , 2) ,
+ VLC_PACK(4 , 2 , 3) ,
+ VLC_PACK(4 , 3 , 4) ,
+ VLC_PACK(4 , 4 , 5) ,
+ VLC_PACK(4 , 5 , 6) ,
+ VLC_PACK(1 , 2 , 1) ,
+ VLC_PACK(4 , 0 , 7) ,
+ VLC_PACK(4 , 1 , 8) ,
+ VLC_PACK(4 , 2 , 9) ,
+ VLC_PACK(5 , 0 , 5) ,
+ VLC_PACK(0 , 2 , 16) ,
+ VLC_PACK(0 , 1 , 87) ,
+ VLC_PACK(2 , 3 , 90) ,
+ VLC_PACK(0 , 0 , 98) ,
+ VLC_PACK(5 , 0 , 253) ,
+ VLC_PACK(5 , 0 , 366) ,
+ VLC_PACK(4 , 3 , 380) ,
+ VLC_PACK(4 , 3 , 381) ,
+ VLC_PACK(4 , 1 , 508) ,
+ VLC_PACK(4 , 1 , 508) ,
+ VLC_PACK(4 , 1 , 508) ,
+ VLC_PACK(4 , 1 , 508) ,
+ VLC_PACK(4 , 1 , 509) ,
+ VLC_PACK(4 , 1 , 509) ,
+ VLC_PACK(4 , 1 , 509) ,
+ VLC_PACK(4 , 1 , 509) ,
+ VLC_PACK(0 , 4 , 8) ,
+ VLC_PACK(0 , 2 , 63) ,
+ VLC_PACK(4 , 1 , 255) ,
+ VLC_PACK(4 , 1 , 255) ,
+ VLC_PACK(5 , 0 , 365) ,
+ VLC_PACK(5 , 0 , 470) ,
+ VLC_PACK(5 , 0 , 251) ,
+ VLC_PACK(5 , 0 , 471) ,
+ VLC_PACK(3 , 4 , 0) ,
+ VLC_PACK(0 , 1 , 31) ,
+ VLC_PACK(0 , 0 , 40) ,
+ VLC_PACK(2 , 2 , 41) ,
+ VLC_PACK(5 , 2 , 224) ,
+ VLC_PACK(5 , 2 , 228) ,
+ VLC_PACK(5 , 2 , 232) ,
+ VLC_PACK(5 , 2 , 236) ,
+ VLC_PACK(5 , 1 , 437) ,
+ VLC_PACK(0 , 0 , 39) ,
+ VLC_PACK(0 , 0 , 40) ,
+ VLC_PACK(0 , 0 , 41) ,
+ VLC_PACK(5 , 1 , 241) ,
+ VLC_PACK(0 , 0 , 41) ,
+ VLC_PACK(5 , 1 , 454) ,
+ VLC_PACK(5 , 1 , 456) ,
+ VLC_PACK(5 , 0 , 244) ,
+ VLC_PACK(5 , 0 , 439) ,
+ VLC_PACK(5 , 0 , 348) ,
+ VLC_PACK(5 , 0 , 245) ,
+ VLC_PACK(5 , 0 , 363) ,
+ VLC_PACK(5 , 0 , 325) ,
+ VLC_PACK(5 , 0 , 458) ,
+ VLC_PACK(5 , 0 , 459) ,
+ VLC_PACK(5 , 0 , 246) ,
+ VLC_PACK(5 , 0 , 460) ,
+ VLC_PACK(5 , 0 , 461) ,
+ VLC_PACK(5 , 0 , 186) ,
+ VLC_PACK(5 , 0 , 356) ,
+ VLC_PACK(5 , 0 , 247) ,
+ VLC_PACK(5 , 0 , 333) ,
+ VLC_PACK(5 , 0 , 462) ,
+ VLC_PACK(5 , 2 , 173) ,
+ VLC_PACK(2 , 1 , 3) ,
+ VLC_PACK(1 , 1 , 5) ,
+ VLC_PACK(5 , 2 , 449) ,
+ VLC_PACK(5 , 1 , 432) ,
+ VLC_PACK(5 , 0 , 431) ,
+ VLC_PACK(5 , 0 , 332) ,
+ VLC_PACK(5 , 1 , 434) ,
+ VLC_PACK(5 , 0 , 436) ,
+ VLC_PACK(5 , 0 , 448) ,
+ VLC_PACK(5 , 2 , 215) ,
+ VLC_PACK(5 , 2 , 219) ,
+ VLC_PACK(5 , 2 , 180) ,
+ VLC_PACK(5 , 1 , 178) ,
+ VLC_PACK(5 , 0 , 177) ,
+ VLC_PACK(5 , 0 , 223) ,
+ VLC_PACK(5 , 0 , 340) ,
+ VLC_PACK(5 , 0 , 355) ,
+ VLC_PACK(5 , 0 , 362) ,
+ VLC_PACK(5 , 0 , 184) ,
+ VLC_PACK(5 , 0 , 185) ,
+ VLC_PACK(5 , 0 , 240) ,
+ VLC_PACK(5 , 0 , 243) ,
+ VLC_PACK(5 , 0 , 453) ,
+ VLC_PACK(5 , 0 , 463) ,
+ VLC_PACK(5 , 0 , 341) ,
+ VLC_PACK(5 , 0 , 248) ,
+ VLC_PACK(5 , 0 , 364) ,
+ VLC_PACK(5 , 0 , 187) ,
+ VLC_PACK(5 , 0 , 464) ,
+ VLC_PACK(5 , 0 , 465) ,
+ VLC_PACK(5 , 0 , 349) ,
+ VLC_PACK(5 , 0 , 326) ,
+ VLC_PACK(5 , 0 , 334) ,
+ VLC_PACK(5 , 0 , 189) ,
+ VLC_PACK(5 , 0 , 342) ,
+ VLC_PACK(5 , 0 , 252) ,
+ VLC_PACK(0 , 1 , 4) ,
+ VLC_PACK(5 , 1 , 467) ,
+ VLC_PACK(5 , 0 , 249) ,
+ VLC_PACK(5 , 0 , 466) ,
+ VLC_PACK(5 , 0 , 357) ,
+ VLC_PACK(5 , 0 , 188) ,
+ VLC_PACK(5 , 0 , 250) ,
+ VLC_PACK(5 , 0 , 469) ,
+ VLC_PACK(5 , 0 , 350) ,
+ VLC_PACK(5 , 0 , 358) ,
+ VLC_PACK(0 , 2 , 16) ,
+ VLC_PACK(0 , 1 , 87) ,
+ VLC_PACK(2 , 3 , 90) ,
+ VLC_PACK(0 , 0 , 98) ,
+ VLC_PACK(5 , 0 , 253) ,
+ VLC_PACK(5 , 0 , 366) ,
+ VLC_PACK(4 , 3 , 380) ,
+ VLC_PACK(4 , 3 , 381) ,
+ VLC_PACK(4 , 1 , 254) ,
+ VLC_PACK(4 , 1 , 254) ,
+ VLC_PACK(4 , 1 , 254) ,
+ VLC_PACK(4 , 1 , 254) ,
+ VLC_PACK(4 , 2 , 508) ,
+ VLC_PACK(4 , 2 , 508) ,
+ VLC_PACK(4 , 2 , 509) ,
+ VLC_PACK(4 , 2 , 509) ,
+ VLC_PACK(0 , 4 , 8) ,
+ VLC_PACK(0 , 2 , 63) ,
+ VLC_PACK(4 , 1 , 255) ,
+ VLC_PACK(4 , 1 , 255) ,
+ VLC_PACK(5 , 0 , 365) ,
+ VLC_PACK(5 , 0 , 470) ,
+ VLC_PACK(5 , 0 , 251) ,
+ VLC_PACK(5 , 0 , 471) ,
+ VLC_PACK(3 , 4 , 0) ,
+ VLC_PACK(0 , 1 , 31) ,
+ VLC_PACK(0 , 0 , 40) ,
+ VLC_PACK(2 , 2 , 41) ,
+ VLC_PACK(5 , 2 , 224) ,
+ VLC_PACK(5 , 2 , 228) ,
+ VLC_PACK(5 , 2 , 232) ,
+ VLC_PACK(5 , 2 , 236) ,
+ VLC_PACK(5 , 1 , 437) ,
+ VLC_PACK(0 , 0 , 39) ,
+ VLC_PACK(0 , 0 , 40) ,
+ VLC_PACK(0 , 0 , 41) ,
+ VLC_PACK(5 , 1 , 241) ,
+ VLC_PACK(0 , 0 , 41) ,
+ VLC_PACK(5 , 1 , 454) ,
+ VLC_PACK(5 , 1 , 456) ,
+ VLC_PACK(5 , 0 , 244) ,
+ VLC_PACK(5 , 0 , 439) ,
+ VLC_PACK(5 , 0 , 348) ,
+ VLC_PACK(5 , 0 , 245) ,
+ VLC_PACK(5 , 0 , 363) ,
+ VLC_PACK(5 , 0 , 325) ,
+ VLC_PACK(5 , 0 , 458) ,
+ VLC_PACK(5 , 0 , 459) ,
+ VLC_PACK(5 , 0 , 246) ,
+ VLC_PACK(5 , 0 , 460) ,
+ VLC_PACK(5 , 0 , 461) ,
+ VLC_PACK(5 , 0 , 186) ,
+ VLC_PACK(5 , 0 , 356) ,
+ VLC_PACK(5 , 0 , 247) ,
+ VLC_PACK(5 , 0 , 333) ,
+ VLC_PACK(5 , 0 , 462) ,
+ VLC_PACK(5 , 2 , 173) ,
+ VLC_PACK(2 , 1 , 3) ,
+ VLC_PACK(1 , 1 , 5) ,
+ VLC_PACK(5 , 2 , 449) ,
+ VLC_PACK(5 , 1 , 432) ,
+ VLC_PACK(5 , 0 , 431) ,
+ VLC_PACK(5 , 0 , 332) ,
+ VLC_PACK(5 , 1 , 434) ,
+ VLC_PACK(5 , 0 , 436) ,
+ VLC_PACK(5 , 0 , 448) ,
+ VLC_PACK(5 , 2 , 215) ,
+ VLC_PACK(5 , 2 , 219) ,
+ VLC_PACK(5 , 2 , 180) ,
+ VLC_PACK(5 , 1 , 178) ,
+ VLC_PACK(5 , 0 , 177) ,
+ VLC_PACK(5 , 0 , 223) ,
+ VLC_PACK(5 , 0 , 340) ,
+ VLC_PACK(5 , 0 , 355) ,
+ VLC_PACK(5 , 0 , 362) ,
+ VLC_PACK(5 , 0 , 184) ,
+ VLC_PACK(5 , 0 , 185) ,
+ VLC_PACK(5 , 0 , 240) ,
+ VLC_PACK(5 , 0 , 243) ,
+ VLC_PACK(5 , 0 , 453) ,
+ VLC_PACK(5 , 0 , 463) ,
+ VLC_PACK(5 , 0 , 341) ,
+ VLC_PACK(5 , 0 , 248) ,
+ VLC_PACK(5 , 0 , 364) ,
+ VLC_PACK(5 , 0 , 187) ,
+ VLC_PACK(5 , 0 , 464) ,
+ VLC_PACK(5 , 0 , 465) ,
+ VLC_PACK(5 , 0 , 349) ,
+ VLC_PACK(5 , 0 , 326) ,
+ VLC_PACK(5 , 0 , 334) ,
+ VLC_PACK(5 , 0 , 189) ,
+ VLC_PACK(5 , 0 , 342) ,
+ VLC_PACK(5 , 0 , 252) ,
+ VLC_PACK(0 , 1 , 4) ,
+ VLC_PACK(5 , 1 , 467) ,
+ VLC_PACK(5 , 0 , 249) ,
+ VLC_PACK(5 , 0 , 466) ,
+ VLC_PACK(5 , 0 , 357) ,
+ VLC_PACK(5 , 0 , 188) ,
+ VLC_PACK(5 , 0 , 250) ,
+ VLC_PACK(5 , 0 , 469) ,
+ VLC_PACK(5 , 0 , 350) ,
+ VLC_PACK(5 , 0 , 358) ,
+ VLC_PACK(2 , 2 , 32) ,
+ VLC_PACK(0 , 1 , 87) ,
+ VLC_PACK(5 , 1 , 248) ,
+ VLC_PACK(0 , 0 , 89) ,
+ VLC_PACK(1 , 2 , 90) ,
+ VLC_PACK(5 , 0 , 366) ,
+ VLC_PACK(5 , 0 , 189) ,
+ VLC_PACK(5 , 0 , 358) ,
+ VLC_PACK(4 , 3 , 380) ,
+ VLC_PACK(4 , 3 , 380) ,
+ VLC_PACK(4 , 3 , 381) ,
+ VLC_PACK(4 , 3 , 381) ,
+ VLC_PACK(4 , 3 , 254) ,
+ VLC_PACK(4 , 3 , 254) ,
+ VLC_PACK(4 , 4 , 504) ,
+ VLC_PACK(4 , 4 , 505) ,
+ VLC_PACK(4 , 2 , 508) ,
+ VLC_PACK(4 , 2 , 508) ,
+ VLC_PACK(4 , 2 , 508) ,
+ VLC_PACK(4 , 2 , 508) ,
+ VLC_PACK(4 , 2 , 509) ,
+ VLC_PACK(4 , 2 , 509) ,
+ VLC_PACK(4 , 2 , 509) ,
+ VLC_PACK(4 , 2 , 509) ,
+ VLC_PACK(4 , 3 , 506) ,
+ VLC_PACK(4 , 3 , 506) ,
+ VLC_PACK(4 , 3 , 507) ,
+ VLC_PACK(4 , 3 , 507) ,
+ VLC_PACK(5 , 0 , 251) ,
+ VLC_PACK(5 , 0 , 250) ,
+ VLC_PACK(0 , 1 , 71) ,
+ VLC_PACK(0 , 2 , 74) ,
+ VLC_PACK(4 , 0 , 255) ,
+ VLC_PACK(0 , 1 , 3) ,
+ VLC_PACK(0 , 2 , 8) ,
+ VLC_PACK(0 , 3 , 17) ,
+ VLC_PACK(5 , 0 , 341) ,
+ VLC_PACK(5 , 0 , 465) ,
+ VLC_PACK(0 , 0 , 2) ,
+ VLC_PACK(5 , 0 , 464) ,
+ VLC_PACK(5 , 0 , 363) ,
+ VLC_PACK(5 , 0 , 463) ,
+ VLC_PACK(5 , 1 , 438) ,
+ VLC_PACK(5 , 1 , 348) ,
+ VLC_PACK(5 , 1 , 324) ,
+ VLC_PACK(5 , 1 , 458) ,
+ VLC_PACK(5 , 1 , 459) ,
+ VLC_PACK(5 , 1 , 461) ,
+ VLC_PACK(5 , 1 , 356) ,
+ VLC_PACK(0 , 0 , 1) ,
+ VLC_PACK(5 , 0 , 333) ,
+ VLC_PACK(5 , 0 , 462) ,
+ VLC_PACK(3 , 3 , 0) ,
+ VLC_PACK(0 , 1 , 15) ,
+ VLC_PACK(0 , 0 , 24) ,
+ VLC_PACK(2 , 2 , 25) ,
+ VLC_PACK(5 , 2 , 224) ,
+ VLC_PACK(5 , 2 , 228) ,
+ VLC_PACK(5 , 2 , 232) ,
+ VLC_PACK(5 , 2 , 236) ,
+ VLC_PACK(5 , 1 , 437) ,
+ VLC_PACK(0 , 0 , 23) ,
+ VLC_PACK(0 , 0 , 24) ,
+ VLC_PACK(5 , 1 , 185) ,
+ VLC_PACK(3 , 3 , 0) ,
+ VLC_PACK(5 , 1 , 452) ,
+ VLC_PACK(5 , 1 , 454) ,
+ VLC_PACK(5 , 1 , 456) ,
+ VLC_PACK(5 , 2 , 173) ,
+ VLC_PACK(2 , 1 , 3) ,
+ VLC_PACK(1 , 1 , 5) ,
+ VLC_PACK(5 , 2 , 449) ,
+ VLC_PACK(5 , 1 , 432) ,
+ VLC_PACK(5 , 0 , 431) ,
+ VLC_PACK(5 , 0 , 332) ,
+ VLC_PACK(5 , 1 , 434) ,
+ VLC_PACK(5 , 0 , 436) ,
+ VLC_PACK(5 , 0 , 448) ,
+ VLC_PACK(5 , 2 , 215) ,
+ VLC_PACK(5 , 2 , 219) ,
+ VLC_PACK(5 , 2 , 180) ,
+ VLC_PACK(5 , 1 , 178) ,
+ VLC_PACK(5 , 0 , 177) ,
+ VLC_PACK(5 , 0 , 223) ,
+ VLC_PACK(5 , 0 , 340) ,
+ VLC_PACK(5 , 0 , 355) ,
+ VLC_PACK(5 , 0 , 362) ,
+ VLC_PACK(5 , 0 , 184) ,
+ VLC_PACK(5 , 0 , 326) ,
+ VLC_PACK(5 , 0 , 471) ,
+ VLC_PACK(5 , 0 , 334) ,
+ VLC_PACK(5 , 0 , 365) ,
+ VLC_PACK(5 , 0 , 350) ,
+ VLC_PACK(5 , 0 , 342) ,
+ VLC_PACK(2 , 1 , 4) ,
+ VLC_PACK(5 , 1 , 466) ,
+ VLC_PACK(5 , 0 , 357) ,
+ VLC_PACK(5 , 0 , 187) ,
+ VLC_PACK(5 , 1 , 244) ,
+ VLC_PACK(5 , 0 , 468) ,
+ VLC_PACK(5 , 0 , 186) ,
+ VLC_PACK(5 , 0 , 470) ,
+ VLC_PACK(5 , 0 , 188) ,
+ VLC_PACK(5 , 0 , 469) ,
+ VLC_PACK(5 , 0 , 247) ,
+ VLC_PACK(4 , 2 , 492) ,
+ VLC_PACK(4 , 2 , 493) ,
+ VLC_PACK(5 , 0 , 243) ,
+ VLC_PACK(5 , 0 , 242) ,
+ VLC_PACK(5 , 0 , 364) ,
+ VLC_PACK(5 , 0 , 349) ,
+ VLC_PACK(5 , 0 , 241) ,
+ VLC_PACK(5 , 0 , 240) ,
+ VLC_PACK(4 , 0 , 30) ,
+ VLC_PACK(5 , 0 , 14) ,
+ VLC_PACK(5 , 0 , 13) ,
+ VLC_PACK(5 , 0 , 12) ,
+ VLC_PACK(0 , 0 , 3) ,
+ VLC_PACK(2 , 2 , 4) ,
+ VLC_PACK(0 , 1 , 7) ,
+ VLC_PACK(5 , 1 , 9) ,
+ VLC_PACK(5 , 0 , 11) ,
+ VLC_PACK(5 , 0 , 8) ,
+ VLC_PACK(5 , 1 , 6) ,
+ VLC_PACK(5 , 0 , 5) ,
+ VLC_PACK(5 , 1 , 3) ,
+ VLC_PACK(3 , 1 , 0) ,
+ VLC_PACK(2 , 2 , 3) ,
+ VLC_PACK(3 , 1 , 0) ,
+ VLC_PACK(2 , 1 , 5) ,
+ VLC_PACK(3 , 2 , 0) ,
+ VLC_PACK(3 , 2 , 0) ,
+ VLC_PACK(3 , 2 , 0) ,
+ VLC_PACK(4 , 2 , 226) ,
+ VLC_PACK(5 , 1 , 1) ,
+ VLC_PACK(5 , 0 , 0) ,
+ VLC_PACK(5 , 0 , 31) ,
+ VLC_PACK(4 , 0 , 62) ,
+ VLC_PACK(5 , 0 , 30) ,
+ VLC_PACK(5 , 0 , 29) ,
+ VLC_PACK(5 , 0 , 28) ,
+ VLC_PACK(0 , 0 , 3) ,
+ VLC_PACK(2 , 2 , 4) ,
+ VLC_PACK(1 , 1 , 7) ,
+ VLC_PACK(5 , 1 , 25) ,
+ VLC_PACK(5 , 0 , 27) ,
+ VLC_PACK(5 , 0 , 24) ,
+ VLC_PACK(5 , 1 , 22) ,
+ VLC_PACK(5 , 0 , 21) ,
+ VLC_PACK(5 , 1 , 19) ,
+ VLC_PACK(3 , 1 , 0) ,
+ VLC_PACK(3 , 1 , 0) ,
+ VLC_PACK(5 , 2 , 15)
+};
+
+#define MAX_QUANT_TABLES (2) /* only 2 tables for 4:2:0 decode */
+
+static int scan0[64] = { // spec, fig 7-2
+ /*u 0 ..... 7*/
+ 0, 1, 5, 6, 14, 15, 27, 28, /* v = 0 */
+ 2, 4, 7, 13, 16, 26, 29, 42,
+ 3, 8, 12, 17, 25, 30, 41, 43,
+ 9, 11, 18, 24, 31, 40, 44, 53,
+ 10, 19, 23, 32, 39, 45, 52, 54,
+ 20, 22, 33, 38, 46, 51, 55, 60,
+ 21, 34, 37, 47, 50, 56, 59, 61,
+ 35, 36, 48, 49, 57, 58, 62, 63 /* v = 7 */
+};
+
+typedef enum {
+ NONINTRA_LUMA_Q = 0,
+ INTRA_LUMA_Q = 1
+} QUANT_IDX;
+
+struct context_MPEG2_s {
+ object_context_p obj_context; /* back reference */
+
+ /* Picture parameters */
+ VAPictureParameterBufferMPEG2 *pic_params;
+ object_surface_p forward_ref_surface;
+ object_surface_p backward_ref_surface;
+
+ uint32_t coded_picture_width; /* in pixels */
+ uint32_t coded_picture_height; /* in pixels */
+
+ uint32_t picture_width_mb; /* in macroblocks */
+ uint32_t picture_height_mb; /* in macroblocks */
+ uint32_t size_mb; /* in macroblocks */
+
+ uint32_t coded_picture_size; /* MSVDX format */
+ uint32_t display_picture_size; /* MSVDX format */
+
+ uint32_t BE_PPS0;
+ uint32_t BE_PPS1;
+ uint32_t BE_PPS2;
+ uint32_t BE_SPS0;
+ uint32_t BE_SPS1;
+ uint32_t FE_PPS0;
+ uint32_t FE_PPS1;
+
+ /* IQ Matrix */
+ uint32_t qmatrix_data[MAX_QUANT_TABLES][16];
+ int got_iq_matrix;
+
+ /* Split buffers */
+ int split_buffer_pending;
+
+ /* List of VASliceParameterBuffers */
+ object_buffer_p *slice_param_list;
+ int slice_param_list_size;
+ int slice_param_list_idx;
+
+ /* VLC packed data */
+ struct psb_buffer_s vlc_packed_table;
+
+ /* Misc */
+ unsigned int previous_slice_vertical_position;
+
+ uint32_t *p_slice_params; /* pointer to ui32SliceParams in CMD_HEADER */
+};
+
+typedef struct context_MPEG2_s *context_MPEG2_p;
+
+#define INIT_CONTEXT_MPEG2 context_MPEG2_p ctx = (context_MPEG2_p) obj_context->format_data;
+
+#define SURFACE(id) ((object_surface_p) object_heap_lookup( &ctx->obj_context->driver_data->surface_heap, id ))
+
+
+static void psb_MPEG2_QueryConfigAttributes(
+ VAProfile profile,
+ VAEntrypoint entrypoint,
+ VAConfigAttrib *attrib_list,
+ int num_attribs)
+{
+ /* No MPEG2 specific attributes */
+}
+
+static VAStatus psb_MPEG2_ValidateConfig(
+ object_config_p obj_config)
+{
+ int i;
+ /* Check all attributes */
+ for (i = 0; i < obj_config->attrib_count; i++) {
+ switch (obj_config->attrib_list[i].type) {
+ case VAConfigAttribRTFormat:
+ /* Ignore */
+ break;
+
+ default:
+ return VA_STATUS_ERROR_ATTR_NOT_SUPPORTED;
+ }
+ }
+
+ return VA_STATUS_SUCCESS;
+}
+
+static VAStatus psb__MPEG2_check_legal_picture(object_context_p obj_context, object_config_p obj_config)
+{
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+
+ if (NULL == obj_context) {
+ vaStatus = VA_STATUS_ERROR_INVALID_CONTEXT;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ if (NULL == obj_config) {
+ vaStatus = VA_STATUS_ERROR_INVALID_CONFIG;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ /* MSVDX decode capability for MPEG2:
+ * MP@HL
+ *
+ * Refer to Table 8-11 (Upper bounds for luminance sample rate) of ISO/IEC 13818-2: 1995(E),
+ * and the "MSVDX MPEG2 decode capability" table of "Poulsbo Media Software Overview"
+ */
+
+ switch (obj_config->profile) {
+ case VAProfileMPEG2Simple:
+ if ((obj_context->picture_width <= 0) || (obj_context->picture_width > 352)
+ || (obj_context->picture_height <= 0) || (obj_context->picture_height > 288)) {
+ vaStatus = VA_STATUS_ERROR_RESOLUTION_NOT_SUPPORTED;
+ }
+ break;
+
+ case VAProfileMPEG2Main:
+ if ((obj_context->picture_width <= 0) || (obj_context->picture_width > 1920)
+ || (obj_context->picture_height <= 0) || (obj_context->picture_height > 1088)) {
+ vaStatus = VA_STATUS_ERROR_RESOLUTION_NOT_SUPPORTED;
+ }
+ break;
+
+ default:
+ vaStatus = VA_STATUS_ERROR_UNSUPPORTED_PROFILE;
+ break;
+ }
+
+ return vaStatus;
+}
+
+static void psb_MPEG2_DestroyContext(object_context_p obj_context);
+
+static VAStatus psb_MPEG2_CreateContext(
+ object_context_p obj_context,
+ object_config_p obj_config)
+{
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ context_MPEG2_p ctx;
+ /* Validate flag */
+ /* Validate picture dimensions */
+ vaStatus = psb__MPEG2_check_legal_picture(obj_context, obj_config);
+ if (VA_STATUS_SUCCESS != vaStatus) {
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ if (obj_context->num_render_targets < 1) {
+ vaStatus = VA_STATUS_ERROR_UNKNOWN;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+ ctx = (context_MPEG2_p) calloc(1, sizeof(struct context_MPEG2_s));
+ if (NULL == ctx) {
+ vaStatus = VA_STATUS_ERROR_ALLOCATION_FAILED;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ obj_context->format_data = (void*) ctx;
+ ctx->obj_context = obj_context;
+ ctx->pic_params = NULL;
+ ctx->got_iq_matrix = FALSE;
+ ctx->previous_slice_vertical_position = ~1;
+
+ ctx->split_buffer_pending = FALSE;
+
+ ctx->slice_param_list_size = 8;
+ ctx->slice_param_list = (object_buffer_p*) calloc(1, sizeof(object_buffer_p) * ctx->slice_param_list_size);
+ ctx->slice_param_list_idx = 0;
+
+ if (NULL == ctx->slice_param_list) {
+ vaStatus = VA_STATUS_ERROR_ALLOCATION_FAILED;
+ DEBUG_FAILURE;
+ }
+
+ if (vaStatus == VA_STATUS_SUCCESS) {
+ vaStatus = psb_buffer_create(obj_context->driver_data,
+ sizeof(gaui16mpeg2VlcTableDataPacked),
+ psb_bt_cpu_vpu,
+ &ctx->vlc_packed_table);
+ DEBUG_FAILURE;
+ }
+ if (vaStatus == VA_STATUS_SUCCESS) {
+ void *vlc_packed_data_address;
+ if (0 == psb_buffer_map(&ctx->vlc_packed_table, &vlc_packed_data_address)) {
+ memcpy(vlc_packed_data_address, gaui16mpeg2VlcTableDataPacked, sizeof(gaui16mpeg2VlcTableDataPacked));
+ psb_buffer_unmap(&ctx->vlc_packed_table);
+ } else {
+ vaStatus = VA_STATUS_ERROR_ALLOCATION_FAILED;
+ DEBUG_FAILURE;
+ }
+ }
+
+ if (vaStatus != VA_STATUS_SUCCESS) {
+ psb_MPEG2_DestroyContext(obj_context);
+ }
+
+ return vaStatus;
+}
+
+static void psb_MPEG2_DestroyContext(
+ object_context_p obj_context)
+{
+ INIT_CONTEXT_MPEG2
+
+ psb_buffer_destroy(&ctx->vlc_packed_table);
+
+ if (ctx->pic_params) {
+ free(ctx->pic_params);
+ ctx->pic_params = NULL;
+ }
+
+ if (ctx->slice_param_list) {
+ free(ctx->slice_param_list);
+ ctx->slice_param_list = NULL;
+ }
+
+ free(obj_context->format_data);
+ obj_context->format_data = NULL;
+}
+
+static VAStatus psb__MPEG2_process_picture_param(context_MPEG2_p ctx, object_buffer_p obj_buffer)
+{
+ ASSERT(obj_buffer->type == VAPictureParameterBufferType);
+ ASSERT(obj_buffer->num_elements == 1);
+ ASSERT(obj_buffer->size == sizeof(VAPictureParameterBufferMPEG2));
+
+ if ((obj_buffer->num_elements != 1) ||
+ (obj_buffer->size != sizeof(VAPictureParameterBufferMPEG2))) {
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ /* Transfer ownership of VAPictureParameterBufferMPEG2 data */
+ if (ctx->pic_params) {
+ free(ctx->pic_params);
+ }
+ ctx->pic_params = (VAPictureParameterBufferMPEG2 *) obj_buffer->buffer_data;
+ obj_buffer->buffer_data = NULL;
+ obj_buffer->size = 0;
+
+ /* Lookup surfaces for backward/forward references */
+ switch (ctx->pic_params->picture_coding_type) {
+ case PICTURE_CODING_I:
+ ctx->forward_ref_surface = NULL;
+ ctx->backward_ref_surface = NULL;
+ break;
+
+ case PICTURE_CODING_P:
+ ctx->forward_ref_surface = SURFACE(ctx->pic_params->forward_reference_picture);
+ ctx->backward_ref_surface = NULL;
+ if (NULL == ctx->forward_ref_surface) {
+ return VA_STATUS_ERROR_INVALID_SURFACE;
+ }
+ break;
+
+ case PICTURE_CODING_B:
+ ctx->forward_ref_surface = SURFACE(ctx->pic_params->forward_reference_picture);
+ ctx->backward_ref_surface = SURFACE(ctx->pic_params->backward_reference_picture);
+ if ((NULL == ctx->forward_ref_surface) ||
+ (NULL == ctx->backward_ref_surface)) {
+ return VA_STATUS_ERROR_INVALID_SURFACE;
+ }
+ break;
+
+ default:
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ ctx->picture_width_mb = (ctx->pic_params->horizontal_size + 15) / 16;
+ if (ctx->obj_context->va_flags & VA_PROGRESSIVE) {
+ ctx->picture_height_mb = (ctx->pic_params->vertical_size + 15) / 16;
+ } else {
+ ctx->picture_height_mb = (ctx->pic_params->vertical_size + 31) / 32;
+ ctx->picture_height_mb *= 2;
+ }
+ ctx->coded_picture_width = ctx->picture_width_mb * 16;
+ ctx->coded_picture_height = ctx->picture_height_mb * 16;
+
+ ctx->size_mb = ctx->picture_width_mb * ctx->picture_height_mb;
+
+ /* Display picture size */
+ ctx->display_picture_size = 0;
+ /*
+ * coded_picture_width/height is aligned to the size of a macroblock..
+ * Both coded_picture_height or vertical_size can be used for DISPLAY_SIZE and both give correct results,
+ * however Vista driver / test app uses the aligned value that's in coded_picture_height so we do too.
+ * See e.g. low4.m2v for an example clip where vertical_size will differ from coded_picture_height
+ */
+#if 0
+ REGIO_WRITE_FIELD_LITE(ctx->display_picture_size, MSVDX_CMDS, DISPLAY_PICTURE_SIZE, DISPLAY_PICTURE_HEIGHT, ctx->pic_params->vertical_size - 1);
+ REGIO_WRITE_FIELD_LITE(ctx->display_picture_size, MSVDX_CMDS, DISPLAY_PICTURE_SIZE, DISPLAY_PICTURE_WIDTH, ctx->pic_params->horizontal_size - 1);
+#else
+ REGIO_WRITE_FIELD_LITE(ctx->display_picture_size, MSVDX_CMDS, DISPLAY_PICTURE_SIZE, DISPLAY_PICTURE_HEIGHT, ctx->coded_picture_height - 1);
+ REGIO_WRITE_FIELD_LITE(ctx->display_picture_size, MSVDX_CMDS, DISPLAY_PICTURE_SIZE, DISPLAY_PICTURE_WIDTH, ctx->coded_picture_width - 1);
+#endif
+
+ /* Coded picture size */
+ ctx->coded_picture_size = 0;
+ REGIO_WRITE_FIELD_LITE(ctx->coded_picture_size, MSVDX_CMDS, CODED_PICTURE_SIZE, CODED_PICTURE_HEIGHT, ctx->coded_picture_height - 1);
+ REGIO_WRITE_FIELD_LITE(ctx->coded_picture_size, MSVDX_CMDS, CODED_PICTURE_SIZE, CODED_PICTURE_WIDTH, ctx->coded_picture_width - 1);
+
+ ctx->BE_SPS0 = 0;
+ REGIO_WRITE_FIELD_LITE(ctx->BE_SPS0, MSVDX_VEC_MPEG2, CR_VEC_MPEG2_BE_SPS0, BE_HORIZONTAL_SIZE_MINUS1, ctx->picture_width_mb - 1);
+
+ ctx->BE_SPS1 = 0;
+ REGIO_WRITE_FIELD_LITE(ctx->BE_SPS1, MSVDX_VEC_MPEG2, CR_VEC_MPEG2_BE_SPS1, BE_VERTICAL_SIZE_MINUS1, ctx->picture_height_mb - 1);
+
+ ctx->FE_PPS0 = 0;
+ REGIO_WRITE_FIELD_LITE(ctx->FE_PPS0, MSVDX_VEC_MPEG2, CR_VEC_MPEG2_FE_PPS0, FE_ALTERNATE_SCAN, !!(ctx->pic_params->picture_coding_extension.bits.alternate_scan));
+ REGIO_WRITE_FIELD_LITE(ctx->FE_PPS0, MSVDX_VEC_MPEG2, CR_VEC_MPEG2_FE_PPS0, FE_Q_SCALE_TYPE, !!(ctx->pic_params->picture_coding_extension.bits.q_scale_type));
+ REGIO_WRITE_FIELD_LITE(ctx->FE_PPS0, MSVDX_VEC_MPEG2, CR_VEC_MPEG2_FE_PPS0, FE_INTRA_DC_PRECISION, ctx->pic_params->picture_coding_extension.bits.intra_dc_precision);
+ REGIO_WRITE_FIELD_LITE(ctx->FE_PPS0, MSVDX_VEC_MPEG2, CR_VEC_MPEG2_FE_PPS0, FE_TOP_FIELD_FIRST, !!(ctx->pic_params->picture_coding_extension.bits.top_field_first));
+ REGIO_WRITE_FIELD_LITE(ctx->FE_PPS0, MSVDX_VEC_MPEG2, CR_VEC_MPEG2_FE_PPS0, FE_CONCEALMENT_MOTION_VECTORS, !!(ctx->pic_params->picture_coding_extension.bits.concealment_motion_vectors));
+ REGIO_WRITE_FIELD_LITE(ctx->FE_PPS0, MSVDX_VEC_MPEG2, CR_VEC_MPEG2_FE_PPS0, FE_FRAME_PRED_FRAME_DCT, !!(ctx->pic_params->picture_coding_extension.bits.frame_pred_frame_dct));
+ REGIO_WRITE_FIELD_LITE(ctx->FE_PPS0, MSVDX_VEC_MPEG2, CR_VEC_MPEG2_FE_PPS0, FE_PICTURE_STRUCTURE, ctx->pic_params->picture_coding_extension.bits.picture_structure);
+ REGIO_WRITE_FIELD_LITE(ctx->FE_PPS0, MSVDX_VEC_MPEG2, CR_VEC_MPEG2_FE_PPS0, FE_INTRA_VLC_FORMAT, !!(ctx->pic_params->picture_coding_extension.bits.intra_vlc_format));
+
+ ctx->FE_PPS1 = 0;
+ REGIO_WRITE_FIELD_LITE(ctx->FE_PPS1, MSVDX_VEC_MPEG2, CR_VEC_MPEG2_FE_PPS1, FE_PICTURE_CODING_TYPE, ctx->pic_params->picture_coding_type);
+ REGIO_WRITE_FIELD_LITE(ctx->FE_PPS1, MSVDX_VEC_MPEG2, CR_VEC_MPEG2_FE_PPS1, FE_F_CODE00, (ctx->pic_params->f_code >> 12) & 0x0F);
+ REGIO_WRITE_FIELD_LITE(ctx->FE_PPS1, MSVDX_VEC_MPEG2, CR_VEC_MPEG2_FE_PPS1, FE_F_CODE01, (ctx->pic_params->f_code >> 8) & 0x0F);
+ REGIO_WRITE_FIELD_LITE(ctx->FE_PPS1, MSVDX_VEC_MPEG2, CR_VEC_MPEG2_FE_PPS1, FE_F_CODE10, (ctx->pic_params->f_code >> 4) & 0x0F);
+ REGIO_WRITE_FIELD_LITE(ctx->FE_PPS1, MSVDX_VEC_MPEG2, CR_VEC_MPEG2_FE_PPS1, FE_F_CODE11, (ctx->pic_params->f_code >> 0) & 0x0F);
+
+ /* VEC Control register: Back-End MPEG2 PPS0 */
+ ctx->BE_PPS0 = 0;
+ REGIO_WRITE_FIELD_LITE(ctx->BE_PPS0, MSVDX_VEC_MPEG2, CR_VEC_MPEG2_BE_PPS0, BE_FRAME_PRED_FRAME_DCT, !!(ctx->pic_params->picture_coding_extension.bits.frame_pred_frame_dct));
+ REGIO_WRITE_FIELD_LITE(ctx->BE_PPS0, MSVDX_VEC_MPEG2, CR_VEC_MPEG2_BE_PPS0, BE_INTRA_DC_PRECISION, ctx->pic_params->picture_coding_extension.bits.intra_dc_precision);
+ REGIO_WRITE_FIELD_LITE(ctx->BE_PPS0, MSVDX_VEC_MPEG2, CR_VEC_MPEG2_BE_PPS0, BE_Q_SCALE_TYPE, !!(ctx->pic_params->picture_coding_extension.bits.q_scale_type));
+ REGIO_WRITE_FIELD_LITE(ctx->BE_PPS0, MSVDX_VEC_MPEG2, CR_VEC_MPEG2_BE_PPS0, BE_ALTERNATE_SCAN, !!(ctx->pic_params->picture_coding_extension.bits.alternate_scan));
+
+ ctx->BE_PPS1 = 0;
+ REGIO_WRITE_FIELD_LITE(ctx->BE_PPS1, MSVDX_VEC_MPEG2, CR_VEC_MPEG2_BE_PPS1, BE_F_CODE00, (ctx->pic_params->f_code >> 12) & 0x0F);
+ REGIO_WRITE_FIELD_LITE(ctx->BE_PPS1, MSVDX_VEC_MPEG2, CR_VEC_MPEG2_BE_PPS1, BE_F_CODE01, (ctx->pic_params->f_code >> 8) & 0x0F);
+ REGIO_WRITE_FIELD_LITE(ctx->BE_PPS1, MSVDX_VEC_MPEG2, CR_VEC_MPEG2_BE_PPS1, BE_F_CODE10, (ctx->pic_params->f_code >> 4) & 0x0F);
+ REGIO_WRITE_FIELD_LITE(ctx->BE_PPS1, MSVDX_VEC_MPEG2, CR_VEC_MPEG2_BE_PPS1, BE_F_CODE11, (ctx->pic_params->f_code >> 0) & 0x0F);
+
+ /* VEC Control register: Back-End MPEG2 PPS2 */
+ ctx->BE_PPS2 = 0;
+ REGIO_WRITE_FIELD_LITE(ctx->BE_PPS2, MSVDX_VEC_MPEG2, CR_VEC_MPEG2_BE_PPS2, BE_PICTURE_CODING_TYPE, ctx->pic_params->picture_coding_type);
+ REGIO_WRITE_FIELD_LITE(ctx->BE_PPS2, MSVDX_VEC_MPEG2, CR_VEC_MPEG2_BE_PPS2, BE_TOP_FIELD_FIRST, !!(ctx->pic_params->picture_coding_extension.bits.top_field_first));
+ REGIO_WRITE_FIELD_LITE(ctx->BE_PPS2, MSVDX_VEC_MPEG2, CR_VEC_MPEG2_BE_PPS2, BE_CONCEALMENT_MOTION_VECTORS, !!(ctx->pic_params->picture_coding_extension.bits.concealment_motion_vectors));
+ REGIO_WRITE_FIELD_LITE(ctx->BE_PPS2, MSVDX_VEC_MPEG2, CR_VEC_MPEG2_BE_PPS2, BE_PICTURE_STRUCTURE, ctx->pic_params->picture_coding_extension.bits.picture_structure);
+
+ ctx->obj_context->operating_mode = 0;
+ REGIO_WRITE_FIELD_LITE(ctx->obj_context->operating_mode, MSVDX_CMDS, OPERATING_MODE, CHROMA_INTERLEAVED, 0);
+ REGIO_WRITE_FIELD_LITE(ctx->obj_context->operating_mode, MSVDX_CMDS, OPERATING_MODE, ROW_STRIDE, ctx->obj_context->current_render_target->psb_surface->stride_mode);
+ REGIO_WRITE_FIELD_LITE(ctx->obj_context->operating_mode, MSVDX_CMDS, OPERATING_MODE, CODEC_PROFILE, 1); /* MPEG2 profile */
+ REGIO_WRITE_FIELD_LITE(ctx->obj_context->operating_mode, MSVDX_CMDS, OPERATING_MODE, CODEC_MODE, 3); /* MPEG2 mode */
+ REGIO_WRITE_FIELD_LITE(ctx->obj_context->operating_mode, MSVDX_CMDS, OPERATING_MODE, ASYNC_MODE, 1); /* VDMC only */
+ REGIO_WRITE_FIELD_LITE(ctx->obj_context->operating_mode, MSVDX_CMDS, OPERATING_MODE, CHROMA_FORMAT, 1);
+
+ return VA_STATUS_SUCCESS;
+}
+
+static void psb__MPEG2_convert_iq_matrix(uint32_t *dest32, unsigned char *src)
+{
+ int i;
+ int *idx = scan0;
+ uint8_t *dest8 = (uint8_t*) dest32;
+
+ for (i = 0; i < 64; i++) {
+ *dest8++ = src[*idx++];
+ }
+}
+
+static VAStatus psb__MPEG2_process_iq_matrix(context_MPEG2_p ctx, object_buffer_p obj_buffer)
+{
+ VAIQMatrixBufferMPEG2 *iq_matrix = (VAIQMatrixBufferMPEG2 *) obj_buffer->buffer_data;
+ ASSERT(obj_buffer->type == VAIQMatrixBufferType);
+ ASSERT(obj_buffer->num_elements == 1);
+ ASSERT(obj_buffer->size == sizeof(VAIQMatrixBufferMPEG2));
+
+ if ((obj_buffer->num_elements != 1) ||
+ (obj_buffer->size != sizeof(VAIQMatrixBufferMPEG2))) {
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ /* Only update the qmatrix data if the load flag is set */
+ if (iq_matrix->load_non_intra_quantiser_matrix) {
+ psb__MPEG2_convert_iq_matrix(ctx->qmatrix_data[NONINTRA_LUMA_Q], iq_matrix->non_intra_quantiser_matrix);
+ }
+ if (iq_matrix->load_intra_quantiser_matrix) {
+ psb__MPEG2_convert_iq_matrix(ctx->qmatrix_data[INTRA_LUMA_Q], iq_matrix->intra_quantiser_matrix);
+ }
+ /* We ignore the Chroma tables because those are not supported with VA_RT_FORMAT_YUV420 */
+ ctx->got_iq_matrix = TRUE;
+
+ return VA_STATUS_SUCCESS;
+}
+
+/*
+ * Adds a VASliceParameterBuffer to the list of slice params
+ */
+static VAStatus psb__MPEG2_add_slice_param(context_MPEG2_p ctx, object_buffer_p obj_buffer)
+{
+ ASSERT(obj_buffer->type == VASliceParameterBufferType);
+ if (ctx->slice_param_list_idx >= ctx->slice_param_list_size) {
+ void *new_list;
+ ctx->slice_param_list_size += 8;
+ new_list = realloc(ctx->slice_param_list,
+ sizeof(object_buffer_p) * ctx->slice_param_list_size);
+ if (NULL == new_list) {
+ return VA_STATUS_ERROR_ALLOCATION_FAILED;
+ }
+ ctx->slice_param_list = (object_buffer_p*) new_list;
+ }
+ ctx->slice_param_list[ctx->slice_param_list_idx] = obj_buffer;
+ ctx->slice_param_list_idx++;
+ return VA_STATUS_SUCCESS;
+}
+
+/* Precalculated values */
+#define ADDR0 (0x00006000)
+#define ADDR1 (0x0003f017)
+#define ADDR2 (0x000ab0e5)
+#define ADDR3 (0x0000016e)
+#define WIDTH0 (0x0016c6ed)
+#define OPCODE0 (0x00002805)
+
+static void psb__MPEG2_write_VLC_tables(context_MPEG2_p ctx)
+{
+ psb_cmdbuf_p cmdbuf = ctx->obj_context->cmdbuf;
+
+ /* Write the vec registers with the index data for each of the tables and then write */
+ /* the actual table data. */
+ psb_cmdbuf_reg_start_block(cmdbuf);
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR0), ADDR0);
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR1), ADDR1);
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR2), ADDR2);
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR3), ADDR3);
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_INITIAL_WIDTH0), WIDTH0);
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_INITIAL_OPCODE0), OPCODE0);
+ psb_cmdbuf_reg_end_block(cmdbuf);
+
+ /* VLC Table */
+ /* Write a LLDMA Cmd to transfer VLD Table data */
+ psb_cmdbuf_lldma_write_cmdbuf(cmdbuf, &ctx->vlc_packed_table, 0,
+ sizeof(gaui16mpeg2VlcTableDataPacked),
+ 0, LLDMA_TYPE_VLC_TABLE);
+}
+
+/* Programme the Alt output if there is a rotation*/
+static void psb__MPEG2_setup_alternative_frame(context_MPEG2_p ctx)
+{
+ uint32_t cmd;
+ psb_cmdbuf_p cmdbuf = ctx->obj_context->cmdbuf;
+ psb_surface_p rotate_surface = ctx->obj_context->current_render_target->psb_surface_rotate;
+ object_context_p obj_context = ctx->obj_context;
+
+ if (rotate_surface->extra_info[5] != obj_context->rotate)
+ psb__error_message("Display rotate mode does not match surface rotate mode!\n");
+
+
+ /* CRendecBlock RendecBlk( mCtrlAlloc , RENDEC_REGISTER_OFFSET(MSVDX_CMDS, VC1_LUMA_RANGE_MAPPING_BASE_ADDRESS) ); */
+ psb_cmdbuf_rendec_start_chunk(cmdbuf, RENDEC_REGISTER_OFFSET(MSVDX_CMDS, VC1_LUMA_RANGE_MAPPING_BASE_ADDRESS));
+
+ psb_cmdbuf_rendec_write_address(cmdbuf, &rotate_surface->buf, rotate_surface->buf.buffer_ofs);
+ psb_cmdbuf_rendec_write_address(cmdbuf, &rotate_surface->buf, rotate_surface->buf.buffer_ofs + rotate_surface->chroma_offset);
+
+ psb_cmdbuf_rendec_end_chunk(cmdbuf);
+
+ /* Set the rotation registers */
+ psb_cmdbuf_rendec_start_chunk(cmdbuf, RENDEC_REGISTER_OFFSET(MSVDX_CMDS, ALTERNATIVE_OUTPUT_PICTURE_ROTATION));
+ cmd = 0;
+ REGIO_WRITE_FIELD_LITE(cmd, MSVDX_CMDS, ALTERNATIVE_OUTPUT_PICTURE_ROTATION , ALT_PICTURE_ENABLE, 1);
+ REGIO_WRITE_FIELD_LITE(cmd, MSVDX_CMDS, ALTERNATIVE_OUTPUT_PICTURE_ROTATION , ROTATION_ROW_STRIDE, rotate_surface->stride_mode);
+ REGIO_WRITE_FIELD_LITE(cmd, MSVDX_CMDS, ALTERNATIVE_OUTPUT_PICTURE_ROTATION , RECON_WRITE_DISABLE, 0); /* FIXME Always generate Rec */
+ REGIO_WRITE_FIELD_LITE(cmd, MSVDX_CMDS, ALTERNATIVE_OUTPUT_PICTURE_ROTATION , ROTATION_MODE, rotate_surface->extra_info[5]);
+
+ psb_cmdbuf_rendec_write(cmdbuf, cmd);
+
+ psb_cmdbuf_rendec_end_chunk(cmdbuf);
+}
+
+static void psb__MPEG2_set_operating_mode(context_MPEG2_p ctx)
+{
+ psb_cmdbuf_p cmdbuf = ctx->obj_context->cmdbuf;
+ psb_surface_p target_surface = ctx->obj_context->current_render_target->psb_surface;
+
+ psb_cmdbuf_rendec_start_block(cmdbuf);
+
+ if (ctx->obj_context->rotate != VA_ROTATION_NONE)
+ psb__MPEG2_setup_alternative_frame(ctx);
+
+ psb_cmdbuf_rendec_start_chunk(cmdbuf, RENDEC_REGISTER_OFFSET(MSVDX_CMDS, DISPLAY_PICTURE_SIZE));
+ psb_cmdbuf_rendec_write(cmdbuf, ctx->display_picture_size);
+ psb_cmdbuf_rendec_write(cmdbuf, ctx->coded_picture_size);
+ psb_cmdbuf_rendec_write(cmdbuf, ctx->obj_context->operating_mode);
+
+ /* LUMA_RECONSTRUCTED_PICTURE_BASE_ADDRESSES */
+ psb_cmdbuf_rendec_write_address(cmdbuf, &target_surface->buf, target_surface->buf.buffer_ofs);
+
+ /* CHROMA_RECONSTRUCTED_PICTURE_BASE_ADDRESSES */
+ psb_cmdbuf_rendec_write_address(cmdbuf, &target_surface->buf, target_surface->buf.buffer_ofs + target_surface->chroma_offset);
+
+ psb_cmdbuf_rendec_end_chunk(cmdbuf);
+ psb_cmdbuf_rendec_end_block(cmdbuf);
+}
+
+static void psb__MPEG2_set_reference_pictures(context_MPEG2_p ctx)
+{
+ psb_cmdbuf_p cmdbuf = ctx->obj_context->cmdbuf;
+ psb_surface_p target_surface = ctx->obj_context->current_render_target->psb_surface;
+
+ psb_cmdbuf_rendec_start_block(cmdbuf);
+ psb_cmdbuf_rendec_start_chunk(cmdbuf, RENDEC_REGISTER_OFFSET(MSVDX_CMDS, REFERENCE_PICTURE_BASE_ADDRESSES));
+
+ /* In MPEG2, the registers at N=0 are always used to store the base address of the luma and chroma buffers
+ of the most recently decoded reference picture. The registers at N=1 are used to store the base address
+ of the luma and chroma buffers of the older reference picture, if more than one reference picture is used.
+ This means that when decoding a P picture the forward reference picture’s address is at index 0.
+ When decoding a B-picture the backward reference picture’s address is at index 0 and the address of the
+ forward reference picture – which was decoded earlier than the backward reference – is at index 1.
+ */
+
+ switch (ctx->pic_params->picture_coding_type) {
+ case PICTURE_CODING_I:
+ psb__information_message(" I-Frame\n");
+ /* No reference pictures */
+ psb_cmdbuf_rendec_write(cmdbuf, 0);
+ psb_cmdbuf_rendec_write(cmdbuf, 0);
+ psb_cmdbuf_rendec_write(cmdbuf, 0);
+ psb_cmdbuf_rendec_write(cmdbuf, 0);
+ break;
+
+ case PICTURE_CODING_P:
+ psb__information_message(" P-Frame\n");
+ if (ctx->pic_params->picture_coding_extension.bits.is_first_field) {
+ /* forward reference picture */
+ /* LUMA_RECONSTRUCTED_PICTURE_BASE_ADDRESSES */
+ psb_cmdbuf_rendec_write_address(cmdbuf, &ctx->forward_ref_surface->psb_surface->buf, ctx->forward_ref_surface->psb_surface->buf.buffer_ofs);
+
+ /* CHROMA_RECONSTRUCTED_PICTURE_BASE_ADDRESSES */
+ psb_cmdbuf_rendec_write_address(cmdbuf, &ctx->forward_ref_surface->psb_surface->buf, ctx->forward_ref_surface->psb_surface\
+ ->buf.buffer_ofs + ctx->forward_ref_surface->psb_surface->chroma_offset);
+
+ /* No backward reference picture */
+ psb_cmdbuf_rendec_write(cmdbuf, 0);
+ psb_cmdbuf_rendec_write(cmdbuf, 0);
+ } else {
+ /* backward reference picture */
+ /* LUMA_RECONSTRUCTED_PICTURE_BASE_ADDRESSES */
+ psb_cmdbuf_rendec_write_address(cmdbuf, &target_surface->buf, target_surface->buf.buffer_ofs);
+
+ /* CHROMA_RECONSTRUCTED_PICTURE_BASE_ADDRESSES */
+ psb_cmdbuf_rendec_write_address(cmdbuf, &target_surface->buf, target_surface->buf.buffer_ofs + target_surface->chroma_offset);
+
+ /* forward reference picture */
+ /* LUMA_RECONSTRUCTED_PICTURE_BASE_ADDRESSES */
+ psb_cmdbuf_rendec_write_address(cmdbuf, &ctx->forward_ref_surface->psb_surface->buf, ctx->forward_ref_surface->psb_surface->buf.buffer_ofs);
+
+ /* CHROMA_RECONSTRUCTED_PICTURE_BASE_ADDRESSES */
+ psb_cmdbuf_rendec_write_address(cmdbuf, &ctx->forward_ref_surface->psb_surface->buf, ctx->forward_ref_surface->psb_surface->buf.buffer_ofs + ctx->forward_ref_surface->psb_surface->chroma_offset);
+ }
+ break;
+
+ case PICTURE_CODING_B:
+ psb__information_message(" B-Frame\n");
+ /* backward reference picture */
+ /* LUMA_RECONSTRUCTED_PICTURE_BASE_ADDRESSES */
+ psb_cmdbuf_rendec_write_address(cmdbuf, &ctx->backward_ref_surface->psb_surface->buf, ctx->backward_ref_surface->psb_surface->buf.buffer_ofs);
+
+ /* CHROMA_RECONSTRUCTED_PICTURE_BASE_ADDRESSES */
+ psb_cmdbuf_rendec_write_address(cmdbuf, &ctx->backward_ref_surface->psb_surface->buf, ctx->backward_ref_surface->psb_surface->buf.buffer_ofs + ctx->backward_ref_surface->psb_surface->chroma_offset);
+
+ /* forward reference picture */
+ /* LUMA_RECONSTRUCTED_PICTURE_BASE_ADDRESSES */
+ psb_cmdbuf_rendec_write_address(cmdbuf, &ctx->forward_ref_surface->psb_surface->buf, ctx->forward_ref_surface->psb_surface->buf.buffer_ofs);
+
+ /* CHROMA_RECONSTRUCTED_PICTURE_BASE_ADDRESSES */
+ psb_cmdbuf_rendec_write_address(cmdbuf, &ctx->forward_ref_surface->psb_surface->buf, ctx->forward_ref_surface->psb_surface->buf.buffer_ofs + ctx->forward_ref_surface->psb_surface->chroma_offset);
+ break;
+ }
+
+ psb_cmdbuf_rendec_end_chunk(cmdbuf);
+ psb_cmdbuf_rendec_end_block(cmdbuf);
+}
+
+static void psb__MPEG2_set_picture_header(context_MPEG2_p ctx, VASliceParameterBufferMPEG2 *slice_param)
+{
+ psb_cmdbuf_p cmdbuf = ctx->obj_context->cmdbuf;
+ psb_surface_p target_surface = ctx->obj_context->current_render_target->psb_surface;
+ uint32_t FE_slice;
+ uint32_t BE_slice;
+
+ psb_cmdbuf_reg_start_block(cmdbuf);
+
+ /* VEC Control register: Front-End MPEG2 PPS0 */
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC_MPEG2, CR_VEC_MPEG2_FE_PPS0) , ctx->FE_PPS0);
+
+ /* VEC Control register: Front-End MPEG2 PPS1 */
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC_MPEG2, CR_VEC_MPEG2_FE_PPS1) , ctx->FE_PPS1);
+
+ /* Slice level */
+ FE_slice = 0;
+ REGIO_WRITE_FIELD(FE_slice,
+ MSVDX_VEC_MPEG2,
+ CR_VEC_MPEG2_FE_SLICE,
+ FE_FIRST_IN_ROW,
+ (ctx->previous_slice_vertical_position != slice_param->slice_vertical_position));
+
+ REGIO_WRITE_FIELD(FE_slice,
+ MSVDX_VEC_MPEG2,
+ CR_VEC_MPEG2_FE_SLICE,
+ FE_SLICE_VERTICAL_POSITION_MINUS1,
+ slice_param->slice_vertical_position);
+
+ REGIO_WRITE_FIELD(FE_slice,
+ MSVDX_VEC_MPEG2,
+ CR_VEC_MPEG2_FE_SLICE,
+ FE_QUANTISER_SCALE_CODE,
+ slice_param->quantiser_scale_code);
+
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC_MPEG2, CR_VEC_MPEG2_FE_SLICE) , FE_slice);
+
+ psb_cmdbuf_reg_end_block(cmdbuf);
+
+
+ /* BE Section */
+ psb_cmdbuf_rendec_start_block(cmdbuf);
+ psb_cmdbuf_rendec_start_chunk(cmdbuf, RENDEC_REGISTER_OFFSET(MSVDX_VEC, MPEG2_CR_VEC_MPEG2_BE_SPS0));
+
+ psb_cmdbuf_rendec_write(cmdbuf, ctx->BE_SPS0);
+ psb_cmdbuf_rendec_write(cmdbuf, ctx->BE_SPS1);
+ psb_cmdbuf_rendec_write(cmdbuf, ctx->BE_PPS0); /* VEC Control register: Back-End MPEG2 PPS0 */
+ psb_cmdbuf_rendec_write(cmdbuf, ctx->BE_PPS1); /* VEC Control register: Back-End MPEG2 PPS1 */
+ psb_cmdbuf_rendec_write(cmdbuf, ctx->BE_PPS2); /* VEC Control register: Back-End MPEG2 PPS2 */
+
+ BE_slice = 0;
+ if (!ctx->pic_params->picture_coding_extension.bits.is_first_field) {
+ /*
+ BE_IP_PAIR_FLAG is 1 if the current picture_data is a P-coded field which is the 2nd field of a frame,
+ and which uses the first field of the frame (which was I-coded) as a reference. 0 otherwise.
+ BE_IP_PAIR_FLAG will only be 1 if BE_SECOND_FIELD_FLAG is 1, and the condition
+ of "this is a P-field which uses the accompanying I-field as a reference" is met.
+ */
+ if (ctx->pic_params->picture_coding_type == PICTURE_CODING_P) {
+ if (GET_SURFACE_INFO_picture_coding_type(target_surface) == PICTURE_CODING_I) {
+ REGIO_WRITE_FIELD_LITE(BE_slice,
+ MSVDX_VEC_MPEG2,
+ CR_VEC_MPEG2_BE_SLICE,
+ BE_IP_PAIR_FLAG, 1);
+ }
+ }
+
+ REGIO_WRITE_FIELD_LITE(BE_slice,
+ MSVDX_VEC_MPEG2,
+ CR_VEC_MPEG2_BE_SLICE,
+ BE_SECOND_FIELD_FLAG, 1);
+
+ } else {
+ // BE_IP_PAIR_FLAG = 0;
+ // BE_SECOND_FIELD_FLAG = 0;
+
+ /* Update with current settings first field */
+ SET_SURFACE_INFO_is_defined(target_surface, TRUE);
+ SET_SURFACE_INFO_picture_structure(target_surface, ctx->pic_params->picture_coding_extension.bits.picture_structure);
+ SET_SURFACE_INFO_picture_coding_type(target_surface, ctx->pic_params->picture_coding_type);
+ }
+
+ REGIO_WRITE_FIELD_LITE(BE_slice,
+ MSVDX_VEC_MPEG2,
+ CR_VEC_MPEG2_BE_SLICE,
+ BE_FIRST_IN_ROW,
+ (ctx->previous_slice_vertical_position != slice_param->slice_vertical_position));
+
+ REGIO_WRITE_FIELD_LITE(BE_slice,
+ MSVDX_VEC_MPEG2,
+ CR_VEC_MPEG2_BE_SLICE,
+ BE_SLICE_VERTICAL_POSITION_MINUS1,
+ slice_param->slice_vertical_position);
+
+ REGIO_WRITE_FIELD_LITE(BE_slice,
+ MSVDX_VEC_MPEG2,
+ CR_VEC_MPEG2_BE_SLICE,
+ BE_QUANTISER_SCALE_CODE,
+ slice_param->quantiser_scale_code);
+
+ psb__information_message("BE_slice = %08x first_field = %d\n", BE_slice, ctx->pic_params->picture_coding_extension.bits.is_first_field);
+
+ psb_cmdbuf_rendec_write(cmdbuf, BE_slice);
+
+ psb_cmdbuf_rendec_end_chunk(cmdbuf);
+ psb_cmdbuf_rendec_end_block(cmdbuf);
+
+ ctx->previous_slice_vertical_position = slice_param->slice_vertical_position;
+}
+
+static void psb__MPEG2_set_slice_params(context_MPEG2_p ctx)
+{
+ psb_cmdbuf_p cmdbuf = ctx->obj_context->cmdbuf;
+
+ uint32_t cmd_data;
+
+ psb_cmdbuf_rendec_start_block(cmdbuf);
+ psb_cmdbuf_rendec_start_chunk(cmdbuf, RENDEC_REGISTER_OFFSET(MSVDX_CMDS, SLICE_PARAMS));
+
+ cmd_data = 0; /* Build slice parameters */
+ REGIO_WRITE_FIELD(cmd_data,
+ MSVDX_CMDS,
+ SLICE_PARAMS,
+ SLICE_FIELD_TYPE,
+ ctx->pic_params->picture_coding_extension.bits.picture_structure - 1);
+
+ REGIO_WRITE_FIELD(cmd_data,
+ MSVDX_CMDS,
+ SLICE_PARAMS,
+ SLICE_CODE_TYPE,
+ PICTURE_CODING_D == ctx->pic_params->picture_coding_type ? 0 : ctx->pic_params->picture_coding_type - 1);
+
+ psb_cmdbuf_rendec_write(cmdbuf, cmd_data);
+
+ *ctx->p_slice_params = cmd_data;
+
+ psb_cmdbuf_rendec_end_chunk(cmdbuf);
+ psb_cmdbuf_rendec_end_block(cmdbuf);
+}
+
+static void psb__MPEG2_write_qmatrices(context_MPEG2_p ctx)
+{
+ psb_cmdbuf_p cmdbuf = ctx->obj_context->cmdbuf;
+ int i;
+
+ /* Since we only decode 4:2:0 We only need to the Intra tables.
+ Chroma quant tables are only used in Mpeg 4:2:2 and 4:4:4.
+ The hardware wants non-intra followed by intra */
+ psb_cmdbuf_rendec_start_block(cmdbuf);
+ psb_cmdbuf_rendec_start_chunk(cmdbuf, REG_MSVDX_VEC_IQRAM_OFFSET);
+
+ /* todo : optimisation here is to only load the need table */
+
+ /* NONINTRA_LUMA_Q --> REG_MSVDX_VEC_IQRAM_OFFSET + 0 */
+ for (i = 0; i < 16; i++) {
+ psb_cmdbuf_rendec_write(cmdbuf, ctx->qmatrix_data[NONINTRA_LUMA_Q][i]);
+// psb__information_message("NONINTRA_LUMA_Q[i] = %08x\n", ctx->qmatrix_data[NONINTRA_LUMA_Q][i]);
+ }
+ /* INTRA_LUMA_Q --> REG_MSVDX_VEC_IQRAM_OFFSET + (16*4) */
+ for (i = 0; i < 16; i++) {
+ psb_cmdbuf_rendec_write(cmdbuf, ctx->qmatrix_data[INTRA_LUMA_Q][i]);
+// psb__information_message("INTRA_LUMA_Q[i] = %08x\n", ctx->qmatrix_data[INTRA_LUMA_Q][i]);
+ }
+
+ psb_cmdbuf_rendec_end_chunk(cmdbuf);
+ psb_cmdbuf_rendec_end_block(cmdbuf);
+}
+
+static void psb__MPEG2_set_ent_dec(context_MPEG2_p ctx)
+{
+ psb_cmdbuf_p cmdbuf = ctx->obj_context->cmdbuf;
+
+ uint32_t cmd_data;
+
+ psb_cmdbuf_reg_start_block(cmdbuf);
+
+ cmd_data = 0; /* Entdec Front-End controls */
+ REGIO_WRITE_FIELD_LITE(cmd_data, MSVDX_VEC, CR_VEC_ENTDEC_FE_CONTROL, ENTDEC_FE_PROFILE, 1); /* MPEG2 Main Profile */
+ REGIO_WRITE_FIELD_LITE(cmd_data, MSVDX_VEC, CR_VEC_ENTDEC_FE_CONTROL, ENTDEC_FE_MODE, 3); /* Set MPEG2 mode */
+
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC, CR_VEC_ENTDEC_FE_CONTROL), cmd_data);
+
+ psb_cmdbuf_reg_end_block(cmdbuf);
+
+ psb_cmdbuf_rendec_start_block(cmdbuf);
+ psb_cmdbuf_rendec_start_chunk(cmdbuf, RENDEC_REGISTER_OFFSET(MSVDX_VEC, CR_VEC_ENTDEC_BE_CONTROL));
+
+ cmd_data = 0; /* Entdec Back-End controls */
+ REGIO_WRITE_FIELD(cmd_data,
+ MSVDX_VEC,
+ CR_VEC_ENTDEC_BE_CONTROL,
+ ENTDEC_BE_PROFILE,
+ 1); /* MPEG2 Main Profile */
+
+ REGIO_WRITE_FIELD(cmd_data,
+ MSVDX_VEC,
+ CR_VEC_ENTDEC_BE_CONTROL,
+ ENTDEC_BE_MODE,
+ 3); /* Set MPEG2 mode */
+
+ psb_cmdbuf_rendec_write(cmdbuf, cmd_data);
+
+ psb_cmdbuf_rendec_end_chunk(cmdbuf);
+ psb_cmdbuf_rendec_end_block(cmdbuf);
+}
+
+static void psb__MPEG2_write_kick(context_MPEG2_p ctx, VASliceParameterBufferMPEG2 *slice_param)
+{
+ psb_cmdbuf_p cmdbuf = ctx->obj_context->cmdbuf;
+
+ (void) slice_param; /* Unused for now */
+
+ *cmdbuf->cmd_idx++ = CMD_COMPLETION;
+}
+
+static void psb__MPEG2_FE_state(context_MPEG2_p ctx)
+{
+ psb_cmdbuf_p cmdbuf = ctx->obj_context->cmdbuf;
+
+ /* See RENDER_BUFFER_HEADER */
+ *cmdbuf->cmd_idx++ = CMD_HEADER;
+
+ ctx->p_slice_params = cmdbuf->cmd_idx;
+ *cmdbuf->cmd_idx++ = 0; /* ui32SliceParams */
+
+ cmdbuf->cmd_idx++; /* skip two lldma addr field */
+
+ cmdbuf->cmd_idx++;
+}
+
+static VAStatus psb__MPEG2_process_slice(context_MPEG2_p ctx,
+ VASliceParameterBufferMPEG2 *slice_param,
+ object_buffer_p obj_buffer)
+{
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+
+ ASSERT((obj_buffer->type == VASliceDataBufferType) || (obj_buffer->type == VAProtectedSliceDataBufferType));
+
+ psb__information_message("MPEG2 process slice\n");
+ psb__information_message(" size = %08x offset = %08x\n", slice_param->slice_data_size, slice_param->slice_data_offset);
+ psb__information_message(" vertical pos = %d\n", slice_param->slice_vertical_position);
+ psb__information_message(" slice_data_flag = %d\n", slice_param->slice_data_flag);
+ psb__information_message(" coded size = %dx%d\n", ctx->picture_width_mb, ctx->picture_height_mb);
+
+ if ((slice_param->slice_data_flag == VA_SLICE_DATA_FLAG_BEGIN) ||
+ (slice_param->slice_data_flag == VA_SLICE_DATA_FLAG_ALL)) {
+ if (0 == slice_param->slice_data_size) {
+ vaStatus = VA_STATUS_ERROR_UNKNOWN;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ ASSERT(!ctx->split_buffer_pending);
+
+ /* Initialise the command buffer */
+ psb_context_get_next_cmdbuf(ctx->obj_context);
+
+ psb__MPEG2_FE_state(ctx);
+ psb__MPEG2_write_VLC_tables(ctx);
+
+ psb_cmdbuf_lldma_write_bitstream(ctx->obj_context->cmdbuf,
+ obj_buffer->psb_buffer,
+ obj_buffer->psb_buffer->buffer_ofs + slice_param->slice_data_offset,
+ slice_param->slice_data_size,
+ slice_param->macroblock_offset,
+ 0);
+
+ if (slice_param->slice_data_flag == VA_SLICE_DATA_FLAG_BEGIN) {
+ ctx->split_buffer_pending = TRUE;
+ }
+ } else {
+ ASSERT(ctx->split_buffer_pending);
+ ASSERT(0 == slice_param->slice_data_offset);
+ /* Create LLDMA chain to continue buffer */
+ if (slice_param->slice_data_size) {
+ psb_cmdbuf_lldma_write_bitstream_chained(ctx->obj_context->cmdbuf,
+ obj_buffer->psb_buffer,
+ slice_param->slice_data_size);
+ }
+ }
+
+ if ((slice_param->slice_data_flag == VA_SLICE_DATA_FLAG_ALL) ||
+ (slice_param->slice_data_flag == VA_SLICE_DATA_FLAG_END)) {
+ if (slice_param->slice_data_flag == VA_SLICE_DATA_FLAG_END) {
+ ASSERT(ctx->split_buffer_pending);
+ }
+
+ psb__MPEG2_set_operating_mode(ctx);
+
+ psb__MPEG2_set_reference_pictures(ctx);
+
+ psb__MPEG2_set_picture_header(ctx, slice_param);
+
+ psb__MPEG2_set_slice_params(ctx);
+
+ psb__MPEG2_write_qmatrices(ctx);
+
+ psb__MPEG2_set_ent_dec(ctx);
+
+ psb__MPEG2_write_kick(ctx, slice_param);
+
+ ctx->split_buffer_pending = FALSE;
+ ctx->obj_context->video_op = psb_video_vld;
+ ctx->obj_context->flags = 0;
+ ctx->obj_context->first_mb = 0;
+ ctx->obj_context->last_mb = ((ctx->picture_height_mb - 1) << 8) | (ctx->picture_width_mb - 1);
+ if (psb_context_submit_cmdbuf(ctx->obj_context)) {
+ vaStatus = VA_STATUS_ERROR_UNKNOWN;
+ }
+ }
+ return vaStatus;
+}
+
+static VAStatus psb__MPEG2_process_slice_data(context_MPEG2_p ctx, object_buffer_p obj_buffer)
+{
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ VASliceParameterBufferMPEG2 *slice_param;
+ int buffer_idx = 0;
+ int element_idx = 0;
+
+ ASSERT((obj_buffer->type == VASliceDataBufferType) || (obj_buffer->type == VAProtectedSliceDataBufferType));
+
+ ASSERT(ctx->got_iq_matrix);
+ ASSERT(ctx->pic_params);
+ ASSERT(ctx->slice_param_list_idx);
+
+ if (!ctx->got_iq_matrix || !ctx->pic_params) {
+ /* IQ matrix or Picture params missing */
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+ if ((NULL == obj_buffer->psb_buffer) ||
+ (0 == obj_buffer->size)) {
+ /* We need to have data in the bitstream buffer */
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ while (buffer_idx < ctx->slice_param_list_idx) {
+ object_buffer_p slice_buf = ctx->slice_param_list[buffer_idx];
+ if (element_idx >= slice_buf->num_elements) {
+ /* Move to next buffer */
+ element_idx = 0;
+ buffer_idx++;
+ continue;
+ }
+
+ slice_param = (VASliceParameterBufferMPEG2 *) slice_buf->buffer_data;
+ slice_param += element_idx;
+ element_idx++;
+ vaStatus = psb__MPEG2_process_slice(ctx, slice_param, obj_buffer);
+ if (vaStatus != VA_STATUS_SUCCESS) {
+ DEBUG_FAILURE;
+ break;
+ }
+ }
+ ctx->slice_param_list_idx = 0;
+
+ return vaStatus;
+}
+
+static void psb__MEPG2_send_highlevel_cmd(context_MPEG2_p ctx)
+{
+ uint32_t cmd;
+ psb_cmdbuf_p cmdbuf = ctx->obj_context->cmdbuf;
+ psb_surface_p target_surface = ctx->obj_context->current_render_target->psb_surface;
+
+ psb_cmdbuf_reg_start_block(cmdbuf);
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_CMDS, DISPLAY_PICTURE_SIZE), ctx->display_picture_size);
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_CMDS, CODED_PICTURE_SIZE), ctx->coded_picture_size);
+
+ cmd = 0;
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, OPERATING_MODE, CHROMA_FORMAT, 1);
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, OPERATING_MODE, ASYNC_MODE, 1); // 0 = VDMC and VDEB active. 1 = VDEB pass-thru.
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, OPERATING_MODE, CODEC_MODE, 3); // MPEG2
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, OPERATING_MODE, CODEC_PROFILE, 1); // MAIN
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, OPERATING_MODE, ROW_STRIDE, target_surface->stride_mode);
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_CMDS, OPERATING_MODE), cmd);
+
+ psb_cmdbuf_reg_set_RELOC(cmdbuf, REGISTER_OFFSET(MSVDX_CMDS, LUMA_RECONSTRUCTED_PICTURE_BASE_ADDRESSES),
+ &target_surface->buf, target_surface->buf.buffer_ofs);
+
+ psb_cmdbuf_reg_set_RELOC(cmdbuf, REGISTER_OFFSET(MSVDX_CMDS, CHROMA_RECONSTRUCTED_PICTURE_BASE_ADDRESSES),
+ &target_surface->buf, target_surface->buf.buffer_ofs + target_surface->chroma_offset);
+
+ psb_cmdbuf_reg_set_RELOC(cmdbuf, REGISTER_OFFSET(MSVDX_CMDS, REFERENCE_PICTURE_BASE_ADDRESSES) + (0 * 8),
+ &target_surface->buf, target_surface->buf.buffer_ofs);
+
+ psb_cmdbuf_reg_set_RELOC(cmdbuf, REGISTER_OFFSET(MSVDX_CMDS, REFERENCE_PICTURE_BASE_ADDRESSES) + 4 + (0 * 8),
+ &target_surface->buf, target_surface->buf.buffer_ofs + target_surface->chroma_offset);
+
+ psb_cmdbuf_reg_set_RELOC(cmdbuf, REGISTER_OFFSET(MSVDX_CMDS, REFERENCE_PICTURE_BASE_ADDRESSES) + (1 * 8),
+ &target_surface->buf, target_surface->buf.buffer_ofs);
+
+ psb_cmdbuf_reg_set_RELOC(cmdbuf, REGISTER_OFFSET(MSVDX_CMDS, REFERENCE_PICTURE_BASE_ADDRESSES) + 4 + (1 * 8),
+ &target_surface->buf, target_surface->buf.buffer_ofs + target_surface->chroma_offset);
+
+ cmd = 0;
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, SLICE_PARAMS, SLICE_FIELD_TYPE, 2); /* FRAME PICTURE -- ui8SliceFldType */
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, SLICE_PARAMS, SLICE_CODE_TYPE, 1); /* P PICTURE -- (ui8PicType == WMF_PTYPE_BI) ? WMF_PTYPE_I : (ui8PicType & 0x3) */
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_CMDS, SLICE_PARAMS), cmd);
+ *ctx->p_slice_params = cmd;
+ psb_cmdbuf_reg_end_block(cmdbuf);
+
+
+ psb_cmdbuf_reg_start_block(cmdbuf);
+ psb_cmdbuf_reg_set_RELOC(cmdbuf, REGISTER_OFFSET(MSVDX_CMDS, VC1_LUMA_RANGE_MAPPING_BASE_ADDRESS),
+ &target_surface->buf, target_surface->buf.buffer_ofs);
+
+ psb_cmdbuf_reg_set_RELOC(cmdbuf, REGISTER_OFFSET(MSVDX_CMDS, VC1_CHROMA_RANGE_MAPPING_BASE_ADDRESS),
+ &target_surface->buf, target_surface->buf.buffer_ofs + target_surface->chroma_offset);
+ psb_cmdbuf_reg_end_block(cmdbuf);
+
+}
+
+static void psb__MEPG2_send_blit_cmd(context_MPEG2_p ctx)
+{
+ uint32_t cmd;
+ psb_cmdbuf_p cmdbuf = ctx->obj_context->cmdbuf;
+ psb_surface_p rotate_surface = ctx->obj_context->current_render_target->psb_surface_rotate;
+
+ psb_cmdbuf_reg_start_block(cmdbuf);
+ cmd = 0;
+ REGIO_WRITE_FIELD_LITE(cmd, MSVDX_CMDS, ALTERNATIVE_OUTPUT_PICTURE_ROTATION , ALT_PICTURE_ENABLE, 1);
+ REGIO_WRITE_FIELD_LITE(cmd, MSVDX_CMDS, ALTERNATIVE_OUTPUT_PICTURE_ROTATION , ROTATION_ROW_STRIDE, rotate_surface->stride_mode);
+ REGIO_WRITE_FIELD_LITE(cmd, MSVDX_CMDS, ALTERNATIVE_OUTPUT_PICTURE_ROTATION , RECON_WRITE_DISABLE, 0);
+ REGIO_WRITE_FIELD_LITE(cmd, MSVDX_CMDS, ALTERNATIVE_OUTPUT_PICTURE_ROTATION , ROTATION_MODE, rotate_surface->extra_info[5]);
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_CMDS, ALTERNATIVE_OUTPUT_PICTURE_ROTATION), cmd);
+ psb_cmdbuf_reg_end_block(cmdbuf);
+
+ *cmdbuf->cmd_idx++ = 0x40000000; /* CMD_BLIT_CMD */
+ *cmdbuf->cmd_idx++ = ctx->picture_width_mb;
+ *cmdbuf->cmd_idx++ = ctx->picture_height_mb * 2; /* FIXME */
+}
+
+static void psb__MPEG2_insert_blit_cmd_to_rotate(context_MPEG2_p ctx)
+{
+ psb_cmdbuf_p cmdbuf = ctx->obj_context->cmdbuf;
+
+ /* See RENDER_BUFFER_HEADER */
+ *cmdbuf->cmd_idx++ = CMD_HEADER; /* FIXME use CMD_HEADER_VC1? */
+
+ ctx->p_slice_params = cmdbuf->cmd_idx;
+ *cmdbuf->cmd_idx++ = 0; /* ui32SliceParams */
+
+ cmdbuf->cmd_idx++; /* skip two lldma addr field */
+ cmdbuf->cmd_idx++;
+
+ psb__MEPG2_send_highlevel_cmd(ctx);
+ psb__MEPG2_send_blit_cmd(ctx);
+}
+
+static VAStatus psb_MPEG2_BeginPicture(
+ object_context_p obj_context)
+{
+ INIT_CONTEXT_MPEG2
+
+ psb__information_message("psb_MPEG2_BeginPicture\n");
+ if (ctx->pic_params) {
+ free(ctx->pic_params);
+ ctx->pic_params = NULL;
+ }
+ ctx->previous_slice_vertical_position = ~1;
+
+ return VA_STATUS_SUCCESS;
+}
+
+static VAStatus psb_MPEG2_RenderPicture(
+ object_context_p obj_context,
+ object_buffer_p *buffers,
+ int num_buffers)
+{
+ int i;
+ INIT_CONTEXT_MPEG2
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+
+ for (i = 0; i < num_buffers; i++) {
+ object_buffer_p obj_buffer = buffers[i];
+
+ switch (obj_buffer->type) {
+ case VAPictureParameterBufferType:
+ psb__information_message("psb_MPEG2_RenderPicture got VAPictureParameterBuffer\n");
+ vaStatus = psb__MPEG2_process_picture_param(ctx, obj_buffer);
+ DEBUG_FAILURE;
+ break;
+
+ case VAIQMatrixBufferType:
+ psb__information_message("psb_MPEG2_RenderPicture got VAIQMatrixBufferType\n");
+ vaStatus = psb__MPEG2_process_iq_matrix(ctx, obj_buffer);
+ DEBUG_FAILURE;
+ break;
+
+ case VASliceParameterBufferType:
+ psb__information_message("psb_MPEG2_RenderPicture got VASliceParameterBufferType\n");
+ vaStatus = psb__MPEG2_add_slice_param(ctx, obj_buffer);
+ DEBUG_FAILURE;
+ break;
+
+ case VASliceDataBufferType:
+ case VAProtectedSliceDataBufferType:
+
+ psb__information_message("psb_MPEG2_RenderPicture got %s\n", SLICEDATA_BUFFER_TYPE(obj_buffer->type));
+ vaStatus = psb__MPEG2_process_slice_data(ctx, obj_buffer);
+ DEBUG_FAILURE;
+ break;
+
+ default:
+ vaStatus = VA_STATUS_ERROR_UNKNOWN;
+ DEBUG_FAILURE;
+ }
+ if (vaStatus != VA_STATUS_SUCCESS) {
+ break;
+ }
+ }
+
+ return vaStatus;
+}
+
+static VAStatus psb_MPEG2_EndPicture(
+ object_context_p obj_context)
+{
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ INIT_CONTEXT_MPEG2
+
+ psb__information_message("psb_MPEG2_EndPicture\n");
+
+ if (ctx->obj_context->rotate != VA_ROTATION_NONE) {
+ if (!(ctx->pic_params->picture_coding_extension.bits.progressive_frame) &&
+ !(ctx->pic_params->picture_coding_extension.bits.is_first_field))
+ psb__MPEG2_insert_blit_cmd_to_rotate(ctx);
+ }
+
+ if (psb_context_flush_cmdbuf(ctx->obj_context)) {
+ vaStatus = VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ if (ctx->pic_params) {
+ free(ctx->pic_params);
+ ctx->pic_params = NULL;
+ }
+
+ return vaStatus;
+}
+
+struct format_vtable_s psb_MPEG2_vtable = {
+queryConfigAttributes:
+ psb_MPEG2_QueryConfigAttributes,
+validateConfig:
+ psb_MPEG2_ValidateConfig,
+createContext:
+ psb_MPEG2_CreateContext,
+destroyContext:
+ psb_MPEG2_DestroyContext,
+beginPicture:
+ psb_MPEG2_BeginPicture,
+renderPicture:
+ psb_MPEG2_RenderPicture,
+endPicture:
+ psb_MPEG2_EndPicture
+};
diff --git a/src/psb_MPEG2.h b/src/psb_MPEG2.h
new file mode 100644
index 0000000..af06632
--- /dev/null
+++ b/src/psb_MPEG2.h
@@ -0,0 +1,38 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ * Waldo Bastian <waldo.bastian@intel.com>
+ *
+ */
+
+#ifndef _PSB_MPEG2_H_
+#define _PSB_MPEG2_H_
+
+#include "psb_drv_video.h"
+
+extern struct format_vtable_s psb_MPEG2_vtable;
+extern struct format_vtable_s psb_MPEG2MC_vtable;
+
+#endif /* _PSB_MPEG2_H_ */
diff --git a/src/psb_MPEG2MC.c b/src/psb_MPEG2MC.c
new file mode 100644
index 0000000..a75a01a
--- /dev/null
+++ b/src/psb_MPEG2MC.c
@@ -0,0 +1,1476 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ * Shengquan Yuan <shengquan.yuan@intel.com>
+ *
+ */
+
+#include "psb_MPEG2.h"
+#include "psb_def.h"
+#include "psb_surface.h"
+#include "psb_cmdbuf.h"
+
+#include "hwdefs/reg_io2.h"
+#include "hwdefs/msvdx_offsets.h"
+#include "hwdefs/msvdx_cmds_io2.h"
+#include "hwdefs/msvdx_vdmc_reg_io2.h"
+#include "hwdefs/msvdx_vec_reg_io2.h"
+#include "hwdefs/msvdx_vec_mpeg2_reg_io2.h"
+#include "hwdefs/dxva_fw_ctrl.h"
+
+#include <stdlib.h>
+#include <stdint.h>
+#include <string.h>
+
+
+/* TODO: for interlace
+ * bit 0: first vector forward
+ * bit 1: first vector backward
+ * bit 2: second vector forward
+ * bit 3: second vector backward
+ */
+#define MBPARAM_MvertFieldSel_3(ptr) (((ptr)->motion_vertical_field_select & 0x8) >> 3)
+#define MBPARAM_MvertFieldSel_2(ptr) (((ptr)->motion_vertical_field_select & 0x4) >> 2)
+#define MBPARAM_MvertFieldSel_1(ptr) (((ptr)->motion_vertical_field_select & 0x2) >> 1)
+#define MBPARAM_MvertFieldSel_0(ptr) (((ptr)->motion_vertical_field_select & 0x1) >> 0)
+#define MBPARAM_MotionType(ptr) (((ptr)->macroblock_modes.bits.frame_motion_type << 1) | (ptr)->macroblock_modes.bits.field_motion_type)
+#define MBPARAM_MotionBackward(ptr) (((ptr)->macroblock_type & VA_MB_TYPE_MOTION_BACKWARD)?1:0)
+#define MBPARAM_MotionForward(ptr) (((ptr)->macroblock_type & VA_MB_TYPE_MOTION_FORWARD)?1:0)
+#define MBPARAM_IntraMacroblock(ptr) ((ptr)->macroblock_type & VA_MB_TYPE_MOTION_INTRA )
+#define MBPARAM_CodedBlockPattern(ptr) ((ptr)->coded_block_pattern << 6) /* align with VA code */
+#define MBPARAM_MBskipsFollowing(ptr) ((ptr)->num_skipped_macroblocks)
+
+typedef enum { MB_CODE_TYPE_I , MB_CODE_TYPE_P , MB_CODE_TYPE_B , MB_CODE_TYPE_GMC } eMB_CODE_TYPE;
+
+/* Constants */
+#define PICTURE_CODING_I 0x01
+#define PICTURE_CODING_P 0x02
+#define PICTURE_CODING_B 0x03
+
+#define CODEC_MODE_MPEG2 3
+#define CODEC_PROFILE_MPEG2_MAIN 1
+
+/* picture structure */
+#define TOP_FIELD 1
+#define BOTTOM_FIELD 2
+#define FRAME_PICTURE 3
+
+#define INTRA_MB_WORST_CASE 6
+#define INTER_MB_WORST_CASE 100
+
+static const uint32_t pict_libva2msvdx[] = {0,/* Invalid picture type */
+ 0,/* I picture */
+ 1,/* P picture */
+ 2,/* B pricture */
+ 3
+ };/* Invalid picture type */
+
+
+static const uint32_t ft_libva2msvdx[] = {0,/* Invalid picture type */
+ 0,/* Top field */
+ 1,/* Bottom field */
+ 2
+ };/* Frame picture */
+
+
+struct context_MPEG2MC_s {
+ object_context_p obj_context; /* back reference */
+
+ VAMacroblockParameterBufferMPEG2 *mb_param ; /* Pointer to the mbCtrl structure */
+ uint32_t mb_in_buffer; /* Number of MBs in current buffer */
+ uint32_t mb_first_addr; /* MB address of first mb in buffer */
+
+ uint32_t picture_coding_type;
+ uint32_t picture_structure;
+
+ uint32_t coded_picture_width;
+ uint32_t coded_picture_height;
+
+ uint32_t picture_width_mb; /* in macroblocks */
+ uint32_t picture_height_mb; /* in macroblocks */
+ uint32_t size_mb; /* in macroblocks */
+
+ VAPictureParameterBufferMPEG2 *pic_params;
+
+ object_surface_p forward_ref_surface;
+ object_surface_p backward_ref_surface;
+
+ uint32_t ref_indexA;
+ uint32_t ref_indexB;
+
+ uint32_t coded_picture_size;
+ uint32_t display_picture_size;
+ uint32_t operation_mode;
+
+ uint32_t *lldma_idx; /* Index in command stream for LLDMA pointer */
+ uint32_t residual_pendingDMA;
+ IMG_INT32 residual_sent;
+
+ psb_buffer_p residual_buf;
+ uint32_t blk_in_buffer;/* buffer elements */
+ uint32_t blk_size;/* buffer elements size */
+
+ uint32_t fstmb_slice;
+};
+
+typedef struct context_MPEG2MC_s *context_MPEG2MC_p;
+
+#define INIT_CONTEXT_MPEG2MC context_MPEG2MC_p ctx = (context_MPEG2MC_p) obj_context->format_data
+#define SURFACE(id) ((object_surface_p) object_heap_lookup( &ctx->obj_context->driver_data->surface_heap, id ))
+
+static void psb__MPEG2MC_send_interPB_prediction(
+ context_MPEG2MC_p ctx,
+ psb_cmdbuf_p const cmdbuf,
+ VAMacroblockParameterBufferMPEG2 * const mb_param,
+ int second_pred
+)
+{
+ uint32_t cmd;
+ uint32_t blk_size;
+ uint32_t pred_offset;
+
+ /* Determine residual data's block size (16x8 or 16x16) */
+ if (FRAME_PICTURE == ctx->picture_structure) {
+ if ((1 == MBPARAM_MotionType(mb_param)) || /* Field MC */
+ (3 == MBPARAM_MotionType(mb_param))) { /* Dual Prime */
+ blk_size = 1; /* 16 x 8 */
+ } else {
+ blk_size = 0; /* 16 x 16 */
+ }
+ } else {
+ if (2 == MBPARAM_MotionType(mb_param)) { /* Non-Frame MC */
+ blk_size = 1; /* 16 x 8 */
+ } else {
+ blk_size = 0; /* 16 x 16 */
+ }
+ }
+
+ /* Determine whether this is for 1st MV or 2nd MV */
+ if (TRUE == second_pred) {
+ pred_offset = 8;
+ } else {
+ pred_offset = 0;
+ }
+
+ cmd = 0;
+
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, INTER_BLOCK_PREDICTION, INTER_PRED_BLOCK_SIZE, blk_size);
+
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, INTER_BLOCK_PREDICTION, REF_INDEX_A, ctx->ref_indexA);
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, INTER_BLOCK_PREDICTION, REF_INDEX_B, ctx->ref_indexB);
+
+ if (3 == MBPARAM_MotionType(mb_param)) { /* Dual Prime */
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, INTER_BLOCK_PREDICTION, REF_INDEX_A_VALID, 1);
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, INTER_BLOCK_PREDICTION, REF_INDEX_B_VALID, 1);
+ } else {
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, INTER_BLOCK_PREDICTION, REF_INDEX_A_VALID,
+ MBPARAM_MotionForward(mb_param));
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, INTER_BLOCK_PREDICTION, REF_INDEX_B_VALID,
+ MBPARAM_MotionBackward(mb_param));
+ }
+
+ if (FRAME_PICTURE == ctx->picture_structure) {
+ /* Frame picture processing */
+ if ((1 == MBPARAM_MotionType(mb_param)) || /* Field MC */
+ (3 == MBPARAM_MotionType(mb_param))) { /* Dual Prime */
+ if ((1 == MBPARAM_MotionForward(mb_param)) ||
+ (3 == MBPARAM_MotionType(mb_param))) { /* Dual Prime */
+ if (second_pred) {
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, INTER_BLOCK_PREDICTION,
+ REF_INDEX_FIELD_A, MBPARAM_MvertFieldSel_2(mb_param));
+ } else {
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, INTER_BLOCK_PREDICTION,
+ REF_INDEX_FIELD_A, MBPARAM_MvertFieldSel_0(mb_param));
+ }
+ }
+
+ if ((1 == MBPARAM_MotionBackward(mb_param)) ||
+ (3 == MBPARAM_MotionType(mb_param))) { /* Dual Prime */
+ if (second_pred) {
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, INTER_BLOCK_PREDICTION,
+ REF_INDEX_FIELD_B, MBPARAM_MvertFieldSel_3(mb_param));
+ } else {
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, INTER_BLOCK_PREDICTION,
+ REF_INDEX_FIELD_B, MBPARAM_MvertFieldSel_1(mb_param));
+ }
+ }
+ }
+ } else {
+ /* Field picture processing */
+ if ((0 == MBPARAM_MotionForward(mb_param)) &&
+ (0 == MBPARAM_MotionBackward(mb_param))) {
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, INTER_BLOCK_PREDICTION, REF_INDEX_A, ctx->ref_indexA);
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, INTER_BLOCK_PREDICTION, REF_INDEX_B, ctx->ref_indexB);
+ }
+
+ if (1 == MBPARAM_MotionForward(mb_param)) {
+ if (second_pred) {
+ if ((0 == MBPARAM_MvertFieldSel_2(mb_param)) &&
+ (PICTURE_CODING_P == ctx->picture_coding_type)) { /* Top field of this frame */
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, INTER_BLOCK_PREDICTION, REF_INDEX_A, ctx->ref_indexB);
+ } else { /* Bottom field of previous frame*/
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, INTER_BLOCK_PREDICTION, REF_INDEX_A, ctx->ref_indexA);
+ }
+
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, INTER_BLOCK_PREDICTION, REF_INDEX_FIELD_A,
+ MBPARAM_MvertFieldSel_2(mb_param));
+ } else {
+ if (((ctx->picture_structure == BOTTOM_FIELD) != MBPARAM_MvertFieldSel_0(mb_param)) &&
+ (PICTURE_CODING_P == ctx->picture_coding_type)) { /* Top field of this frame */
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, INTER_BLOCK_PREDICTION, REF_INDEX_A, ctx->ref_indexB);
+ } else { /* Bottom field of previous frame*/
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, INTER_BLOCK_PREDICTION, REF_INDEX_A, ctx->ref_indexA);
+ }
+
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, INTER_BLOCK_PREDICTION, REF_INDEX_FIELD_A,
+ MBPARAM_MvertFieldSel_0(mb_param));
+ }
+ }
+
+
+ if (1 == MBPARAM_MotionBackward(mb_param)) {
+ if (second_pred) {
+ if ((1 == MBPARAM_MvertFieldSel_3(mb_param)) &&
+ (PICTURE_CODING_P == ctx->picture_coding_type)) { /* Top field of this frame */
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, INTER_BLOCK_PREDICTION, REF_INDEX_B, ctx->ref_indexA);
+ } else { /* Bottom field of previous frame*/
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, INTER_BLOCK_PREDICTION, REF_INDEX_B, ctx->ref_indexB);
+ }
+
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, INTER_BLOCK_PREDICTION, REF_INDEX_FIELD_B,
+ MBPARAM_MvertFieldSel_3(mb_param));
+ } else {
+ if ((1 == MBPARAM_MvertFieldSel_1(mb_param)) &&
+ (PICTURE_CODING_P == ctx->picture_coding_type)) { /* Top field of this frame */
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, INTER_BLOCK_PREDICTION, REF_INDEX_B, ctx->ref_indexA);
+ } else { /* Bottom field of previous frame*/
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, INTER_BLOCK_PREDICTION, REF_INDEX_B, ctx->ref_indexB);
+ }
+
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, INTER_BLOCK_PREDICTION, REF_INDEX_FIELD_B,
+ MBPARAM_MvertFieldSel_1(mb_param));
+ }
+ }
+ }
+
+ /* Dual Prime */
+ if (3 == MBPARAM_MotionType(mb_param) && (ctx->picture_structure != FRAME_PICTURE)) {
+ if (ctx->picture_structure == TOP_FIELD) {
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, INTER_BLOCK_PREDICTION, REF_INDEX_A, 0);
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, INTER_BLOCK_PREDICTION, REF_INDEX_FIELD_A, 0);
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, INTER_BLOCK_PREDICTION, REF_INDEX_FIELD_B, 1);
+ } else {
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, INTER_BLOCK_PREDICTION, REF_INDEX_A, 1);
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, INTER_BLOCK_PREDICTION, REF_INDEX_FIELD_A, 1);
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, INTER_BLOCK_PREDICTION, REF_INDEX_FIELD_B, 0);
+ }
+ }
+
+ psb_cmdbuf_reg_set(cmdbuf , REGISTER_OFFSET(MSVDX_CMDS, INTER_BLOCK_PREDICTION) + pred_offset, cmd);
+}
+
+typedef struct _PSB_MVvalue {
+ short horz;
+ short vert;
+} psb_MVvalue, *psb_MVvalue_p;
+
+#define MV_LIBVA2PSB(mb_param) \
+do { \
+ MVector[0].horz = mb_param->PMV[0][0][0]; \
+ MVector[0].vert = mb_param->PMV[0][0][1]; \
+ \
+ MVector[1].horz = mb_param->PMV[0][1][0]; \
+ MVector[1].vert = mb_param->PMV[0][1][1]; \
+ \
+ MVector[2].horz = mb_param->PMV[1][0][0]; \
+ MVector[2].vert = mb_param->PMV[1][0][1]; \
+ \
+ MVector[3].horz = mb_param->PMV[1][1][0]; \
+ MVector[3].vert = mb_param->PMV[1][1][1]; \
+} while (0)
+
+static void psb__MPEG2MC_send_motion_vectores(
+ context_MPEG2MC_p const ctx,
+ psb_cmdbuf_p cmdbuf,
+ VAMacroblockParameterBufferMPEG2 * const mb_param
+)
+{
+ uint32_t cmd = 0;
+ uint32_t MV1Address = 0;
+ uint32_t MV2Address = 0;
+
+ psb_MVvalue MVector[4];
+
+ MV_LIBVA2PSB(mb_param);
+
+ MV1Address = 0x00;
+ MV2Address = 0x00;
+
+ if (FRAME_PICTURE == ctx->picture_structure) {
+ /* FRAME PICTURE PROCESSING */
+ if (2 == MBPARAM_MotionType(mb_param)) { /* Frame MC */
+ if ((0 == MBPARAM_MotionForward(mb_param)) &&
+ (0 == MBPARAM_MotionBackward(mb_param))) {
+ cmd = 0;
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, MOTION_VECTOR, MV_X, 0);
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, MOTION_VECTOR, MV_Y, 0);
+ psb_cmdbuf_reg_set(cmdbuf , REGISTER_OFFSET(MSVDX_CMDS, MOTION_VECTOR) , cmd);
+ } else {
+ if (1 == MBPARAM_MotionForward(mb_param)) {
+ cmd = 0;
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, MOTION_VECTOR, MV_X, MVector[0].horz << 1);
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, MOTION_VECTOR, MV_Y, MVector[0].vert << 1);
+ psb_cmdbuf_reg_set(cmdbuf , REGISTER_OFFSET(MSVDX_CMDS, MOTION_VECTOR) , cmd);
+ }
+
+ if (1 == MBPARAM_MotionBackward(mb_param)) {
+ cmd = 0;
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, MOTION_VECTOR, MV_X, MVector[1].horz << 1);
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, MOTION_VECTOR, MV_Y, MVector[1].vert << 1);
+ psb_cmdbuf_reg_set(cmdbuf , REGISTER_OFFSET(MSVDX_CMDS, MOTION_VECTOR) + 0x10 , cmd);
+ }
+ }
+ } else {
+ if ((1 == MBPARAM_MotionType(mb_param)) || /* Field MC */
+ (3 == MBPARAM_MotionType(mb_param))) { /* Dual Prime */
+ /*
+ * Vertical motion vectors for fields located in frame pictures
+ * should be divided by 2 (MPEG-2 7.6.3.1). Thus the original value
+ * contained in the stream is equivalent to 1/4-pel format; the
+ * resolution required by MSVDX.
+ */
+ if ((1 == MBPARAM_MotionForward(mb_param)) ||
+ (3 == MBPARAM_MotionType(mb_param))) { /* Dual Prime */
+ cmd = 0;
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, MOTION_VECTOR, MV_X, MVector[0].horz << 1);
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, MOTION_VECTOR, MV_Y, MVector[0].vert);
+ psb_cmdbuf_reg_set(cmdbuf , REGISTER_OFFSET(MSVDX_CMDS, MOTION_VECTOR) , cmd);
+ }
+
+ if ((1 == MBPARAM_MotionBackward(mb_param)) ||
+ (3 == MBPARAM_MotionType(mb_param))) { /* Dual Prime */
+ cmd = 0;
+
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, MOTION_VECTOR, MV_X, MVector[1].horz << 1);
+
+ if (3 == MBPARAM_MotionType(mb_param)) { /* Dual Prime */
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, MOTION_VECTOR, MV_Y, MVector[1].vert << 1);
+ } else {
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, MOTION_VECTOR, MV_Y, MVector[1].vert);
+ }
+ psb_cmdbuf_reg_set(cmdbuf , REGISTER_OFFSET(MSVDX_CMDS, MOTION_VECTOR) + 0x10 , cmd);
+ }
+
+ /* Fields and Dual Prime are 16x8 and need 2nd inter_block_pred cmd */
+ psb__MPEG2MC_send_interPB_prediction(ctx, cmdbuf, mb_param, IMG_TRUE);
+
+ if ((1 == MBPARAM_MotionForward(mb_param)) ||
+ (3 == MBPARAM_MotionType(mb_param))) { /* Dual Prime */
+ cmd = 0;
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, MOTION_VECTOR, MV_X, MVector[2].horz << 1);
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, MOTION_VECTOR, MV_Y, MVector[2].vert);
+ psb_cmdbuf_reg_set(cmdbuf , REGISTER_OFFSET(MSVDX_CMDS, MOTION_VECTOR) + 0x40 , cmd);
+ }
+
+ if ((1 == MBPARAM_MotionBackward(mb_param)) ||
+ (3 == MBPARAM_MotionType(mb_param))) { /* Dual Prime */
+ cmd = 0;
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, MOTION_VECTOR, MV_X, MVector[3].horz << 1);
+ if (3 == MBPARAM_MotionType(mb_param)) { /* Dual Prime */
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, MOTION_VECTOR, MV_Y, MVector[3].vert << 1);
+ } else {
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, MOTION_VECTOR, MV_Y, MVector[3].vert);
+ }
+ psb_cmdbuf_reg_set(cmdbuf , REGISTER_OFFSET(MSVDX_CMDS, MOTION_VECTOR) + 0x50 , cmd);
+ }
+ }
+ }
+ } else {
+ /* FIELD PICTURE PROCESSING */
+ int MV0index = 0, MV1index = 1;
+
+ if ((ctx->picture_structure == BOTTOM_FIELD) && (3 == MBPARAM_MotionType(mb_param))) {
+ MV0index = 1;
+ MV1index = 0;
+ }
+
+ if ((1 == MBPARAM_MotionForward(mb_param)) || /* Forward MV */
+ (3 == MBPARAM_MotionType(mb_param))) { /* Dual Prime */
+ cmd = 0;
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, MOTION_VECTOR, MV_X, MVector[MV0index].horz << 1);
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, MOTION_VECTOR, MV_Y, MVector[MV0index].vert << 1);
+ psb_cmdbuf_reg_set(cmdbuf , REGISTER_OFFSET(MSVDX_CMDS, MOTION_VECTOR) , cmd);
+
+ }
+
+ if ((1 == MBPARAM_MotionBackward(mb_param)) || /* Backward MV */
+ (3 == MBPARAM_MotionType(mb_param))) { /* Dual Prime */
+ cmd = 0;
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, MOTION_VECTOR, MV_X, MVector[MV1index].horz << 1);
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, MOTION_VECTOR, MV_Y, MVector[MV1index].vert << 1);
+ psb_cmdbuf_reg_set(cmdbuf , REGISTER_OFFSET(MSVDX_CMDS, MOTION_VECTOR) + 0x10, cmd);
+ }
+
+ if (2 == MBPARAM_MotionType(mb_param)) { /* 16x8 MC */
+ psb__MPEG2MC_send_interPB_prediction(ctx, cmdbuf, mb_param, IMG_TRUE);
+
+ if ((1 == MBPARAM_MotionForward(mb_param)) || /* Forward MV */
+ (3 == MBPARAM_MotionType(mb_param))) { /* Dual Prime */
+ cmd = 0;
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, MOTION_VECTOR, MV_X, MVector[2].horz << 1);
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, MOTION_VECTOR, MV_Y, MVector[2].vert << 1);
+ psb_cmdbuf_reg_set(cmdbuf , REGISTER_OFFSET(MSVDX_CMDS, MOTION_VECTOR) + 0x40, cmd);
+ }
+
+ if ((1 == MBPARAM_MotionBackward(mb_param)) || /* Backward MV */
+ (3 == MBPARAM_MotionType(mb_param))) { /* Dual Prime */
+ cmd = 0;
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, MOTION_VECTOR, MV_X, MVector[3].horz << 1);
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, MOTION_VECTOR, MV_Y, MVector[3].vert << 1);
+
+ psb_cmdbuf_reg_set(cmdbuf , REGISTER_OFFSET(MSVDX_CMDS, MOTION_VECTOR) + 0x50, cmd);
+ }
+ }
+ }
+}
+
+
+/* Send macroblock_number command to MSVDX. */
+static void psb__MPEG2MC_send_mb_number(
+ context_MPEG2MC_p const ctx,
+ psb_cmdbuf_p cmdbuf,
+ const uint32_t mb_addr,
+ const uint32_t motion_type,
+ const eMB_CODE_TYPE MB_coding_type
+)
+{
+ uint32_t cmd;
+ uint32_t mb_x;
+
+ /* 3.3.21. Macroblock Number */
+ cmd = 0;
+
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, MACROBLOCK_NUMBER, MB_ERROR_FLAG, 0);
+
+ /*
+ MB_FIELD_CODE (MC + VDEB): Indicate if the macroblock is field predicted (when = 1),
+ or frame predicted (when VDEB = 0).
+ MPEG2: For Interlaced frame, derived from ‘frame_motion_type’, else same
+ frame/filed type as SLICE_FIELD_TYPE
+
+ */
+ if (FRAME_PICTURE == ctx->picture_structure) {
+ if ((0 == motion_type) ||
+ (2 == motion_type)) {
+ /* MB is frame predicted */
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, MACROBLOCK_NUMBER, MB_FIELD_CODE, 0);
+ } else { /* MB is field predicted */
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, MACROBLOCK_NUMBER, MB_FIELD_CODE, 1);
+ }
+ } else { /* MB is field predicted */
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, MACROBLOCK_NUMBER, MB_FIELD_CODE, 1);
+ }
+
+ ASSERT((0 != ctx->picture_coding_type) && (4 != ctx->picture_coding_type));
+
+ /*
+ MB_CODE_TYPE (MC + VDEB): Indicate macroblock type is I, P, B or MPEG4 S(GMC).
+ 0x0: I or SI macroblock
+ 0x1: P or SP macroblock
+ 0x2: B macroblock
+ 0x3: MPEG4 GMC
+ MPEG2: Derived from ‘macroblock_type’
+ */
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, MACROBLOCK_NUMBER, MB_CODE_TYPE, (uint32_t) MB_coding_type);
+
+
+ /*
+ MB_NO_Y (MC + VDEB): Vertical offset of current Macroblock (where 0 = topmost macroblock of picture)
+ Derived from macroblock number divided by picture width in macroblocks.
+ MB_NO_X (MC + VDEB): Horizontal offset of current Macroblock (where 0 = leftmost macroblock of picture)
+ Derived from macroblock number mod picture width in macroblocks.
+ */
+ if ((FRAME_PICTURE != ctx->picture_structure) &&
+ (mb_addr / ctx->picture_width_mb)) {
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, MACROBLOCK_NUMBER, MB_NO_Y, (mb_addr / ctx->picture_width_mb) * 2);
+ } else {
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, MACROBLOCK_NUMBER, MB_NO_Y, mb_addr / ctx->picture_width_mb);
+ }
+
+ mb_x = mb_addr % ctx->picture_width_mb;
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, MACROBLOCK_NUMBER, MB_NO_X, mb_x);
+ /*
+ Only defined for current MB, set to 0 for above1 and above2.
+ Indicate if MB is on Left Hand Side of slice or picture
+ 0: MB is not on left hand side of slice or picture
+ 1: MB is on left hand side of slice or picture
+ */
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, MACROBLOCK_NUMBER , MB_SLICE_LHS, ctx->fstmb_slice || (mb_x == 0));
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, MACROBLOCK_NUMBER , MB_SLICE_TOP, 1);
+
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_CMDS, MACROBLOCK_NUMBER) , cmd);
+}
+
+static void psb__MPEG2MC_finalise_residDMA(
+ context_MPEG2MC_p const ctx
+)
+{
+ uint32_t *save_idx = ctx->obj_context->cmdbuf->cmd_idx;
+ ctx->obj_context->cmdbuf->cmd_idx = ctx->lldma_idx;
+ if (ctx->residual_pendingDMA) {
+#if 0
+ if (ctx->residual_pendingDMA != (ctx->blk_size * ctx->blk_in_buffer)) {
+ psb__error_message("psb__MPEG2MC_finalise_residDMA:residual_pendingDMA=%d(block:%d),"
+ "actual data size=%d (block:%d)\n",
+ ctx->residual_pendingDMA, ctx->residual_pendingDMA / ctx->blk_size,
+ ctx->blk_size * ctx->blk_in_buffer,
+ ctx->blk_in_buffer);
+ }
+#endif
+
+ psb_cmdbuf_lldma_write_cmdbuf(ctx->obj_context->cmdbuf,
+ ctx->residual_buf,
+ ctx->residual_sent,
+ ctx->residual_pendingDMA,
+ 0,
+ LLDMA_TYPE_RESIDUAL);
+ } else {
+ //*ctx->obj_context->cmdbuf->cmd_idx = CMD_NOP;
+ *ctx->obj_context->cmdbuf->cmd_idx = 0xf000000;
+ }
+ ctx->obj_context->cmdbuf->cmd_idx = save_idx;
+ ctx->residual_sent += ctx->residual_pendingDMA;
+ ctx->residual_pendingDMA = 0;
+}
+
+static void psb__MPEG2MC_check_segment_residDMA(
+ context_MPEG2MC_p const ctx,
+ uint32_t min_space
+)
+{
+ if (psb_cmdbuf_segment_space(ctx->obj_context->cmdbuf) < min_space) {
+ psb__MPEG2MC_finalise_residDMA(ctx);
+
+ psb_cmdbuf_next_segment(ctx->obj_context->cmdbuf);
+
+ ctx->lldma_idx = ctx->obj_context->cmdbuf->cmd_idx++; /* Insert the LLDMA record here later */
+ }
+}
+
+
+/* Send residual difference data to MSVDX. */
+static void psb__MPEG2MC_send_residual(
+ context_MPEG2MC_p ctx,
+ uint32_t pattern_code)
+{
+ uint8_t pattern_code_byte = (uint8_t)(pattern_code >> 6);
+ uint8_t blocks = 0;
+
+ while (pattern_code_byte) {
+ blocks += (pattern_code_byte & 1);
+ pattern_code_byte >>= 1;
+ }
+
+ if (PICTURE_CODING_I == ctx->picture_coding_type) {
+ ctx->residual_pendingDMA += blocks * (8 * 8); /* 8bit */
+ } else {
+ /* We do not suport ConfigSpatialResid8==1 */
+ /* ASSERT(ConfigSpatialResid8 == 0); */
+ ctx->residual_pendingDMA += blocks * (8 * 8) * 2;/* 16 bit */
+ }
+}
+
+
+static void psb__MPEG2MC_send_slice_parameters(
+ context_MPEG2MC_p const ctx
+)
+{
+ psb_cmdbuf_p cmdbuf = ctx->obj_context->cmdbuf;
+ uint32_t cmd;
+
+ ctx->lldma_idx = ctx->obj_context->cmdbuf->cmd_idx++; /* Insert the LLDMA record here later */
+
+ psb_cmdbuf_reg_start_block(cmdbuf);
+
+ /* 3.3.19. Slice Params*/
+ /*
+ 3:2 SLICE_FIELD_TYPE (MC+VDEB) Indicate if slice is a frame, top fie
+ 0x0: Top field picture
+ 0x1: Bottom field picture
+ 0x2: Frame picture
+ 1:0 SLICE_CODE_TYPE (MC+VDEB) Indicate if it is an I, P, B slice
+ 0x0: I slice
+ 0x1: P slice
+ 0x2: B slice
+ 0x3: S(GMC) (MPEG4 only)
+ */
+ cmd = 0;
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, SLICE_PARAMS, SLICE_FIELD_TYPE,
+ ft_libva2msvdx[ctx->picture_structure]);
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, SLICE_PARAMS, SLICE_CODE_TYPE,
+ pict_libva2msvdx[ctx->picture_coding_type]);
+ psb_cmdbuf_reg_set(cmdbuf , REGISTER_OFFSET(MSVDX_CMDS, SLICE_PARAMS), cmd);
+
+ psb_cmdbuf_reg_end_block(cmdbuf);
+}
+
+static void psb__MPEG2MC_send_slice_picture_endcommand(
+ context_MPEG2MC_p const ctx,
+ int end_picture
+)
+{
+ psb_cmdbuf_p cmdbuf = ctx->obj_context->cmdbuf;
+ uint32_t cmd;
+
+ /*
+ 3.3.22. End Slice/Picture
+ Offset: 0x0404
+ This command is sent at the end of a slice or picture. The final macroblock of slice/picture will not be
+ processed until this command is sent. The End Slice/Picture commands can be sent more than once
+ at the end of a slice (provided no other commands are interleaved).
+ If the command is sent more than once at the end of a slice, the first command should indicate the
+ end of the slice (no data bits set) with repeat commands used to indicate end of slice, flushing VDEB
+ buffers or picture end. The FLUSH_VDEB_BUFFERS bit should not be set in any repeat commands
+ sent after a command in which the PICTURE_END bit is set.
+ 31:2 - Reserved
+ 1 FLUSH_VDEB_BUFFERS(VDEB) If set, indicates VDEB should flush its internal buffers to system memory
+ when slice processing is complete
+ 0 PICTURE_END(MC + VDEB) If set, indicates both Picture and Slice end, otherwise Slice end
+ */
+ psb_cmdbuf_reg_start_block(cmdbuf);
+
+ psb_cmdbuf_reg_set(cmdbuf , REGISTER_OFFSET(MSVDX_CMDS, END_SLICE_PICTURE), 0);
+
+ if (end_picture) {
+ cmd = 0;
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, END_SLICE_PICTURE, PICTURE_END, end_picture);
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_CMDS, END_SLICE_PICTURE), cmd);
+ }
+
+ psb_cmdbuf_reg_end_block(cmdbuf);
+}
+
+static void psb__MPEG2MC_send_highlevel_commands(
+ context_MPEG2MC_p const ctx
+)
+{
+ psb_cmdbuf_p cmdbuf = ctx->obj_context->cmdbuf;
+ psb_surface_p target_surface = ctx->obj_context->current_render_target->psb_surface;
+
+ psb_cmdbuf_reg_start_block(cmdbuf);
+
+ /* 3.3.1. Display Picture Size */
+ psb_cmdbuf_reg_set(cmdbuf , REGISTER_OFFSET(MSVDX_CMDS, DISPLAY_PICTURE_SIZE), ctx->display_picture_size);
+
+ /* 3.3.2. Coded Picture Size*/
+ psb_cmdbuf_reg_set(cmdbuf , REGISTER_OFFSET(MSVDX_CMDS, CODED_PICTURE_SIZE), ctx->coded_picture_size);
+
+ /* 3.3.3. Operating Mode */
+ psb_cmdbuf_reg_set(cmdbuf , REGISTER_OFFSET(MSVDX_CMDS, OPERATING_MODE), ctx->obj_context->operating_mode);
+
+ /* 3.3.4. Luma Reconstructed Picture Base Address */
+ psb_cmdbuf_reg_set_RELOC(cmdbuf , REGISTER_OFFSET(MSVDX_CMDS, LUMA_RECONSTRUCTED_PICTURE_BASE_ADDRESSES),
+ &target_surface->buf, 0);
+
+ /* 3.3.5. Chroma Reconstructed Picture Base Address */
+ psb_cmdbuf_reg_set_RELOC(cmdbuf , REGISTER_OFFSET(MSVDX_CMDS, CHROMA_RECONSTRUCTED_PICTURE_BASE_ADDRESSES),
+ &target_surface->buf, target_surface->chroma_offset);
+
+ /* 3.3.13. Reference Picture Base Addresses */
+ /*
+ Reference Picture Base Addresses
+ Offset: 0x0100 + N*8 = Luma base addresses
+ Offset: 0x0104 + N*8 = Chroma base addresses
+ This register can store up to 16 luma picture base addresses and 16 chroma picture base addresses.
+ Luma and chroma ref base registers are interleaved.
+
+ Bit Symbol Used Description
+ 31:12 LUMA_REF_BASE_ADDR MC Luma picture base byte address [31:12]
+ 11:0 - Reserved
+ Bit Symbol Used Description
+ 31:12 CHROMA_REF_BASE_ADDR MC Chroma picture base byte address [31:12]
+ 11:0 - Reserved
+ - In MPEG2, the registers at N=0 are always used to store the base address of the luma and
+ chroma buffers of the most recently decoded reference picture. The registers at N=1 are used
+ to store the base address of the luma and chroma buffers of the older reference picture, if
+ more than one reference picture is used. This means that when decoding a P picture the
+ forward reference picture’s address is at index 0. When decoding a B-picture the backward
+ reference picture’s address is at index 0 and the address of the forward reference picture –
+ which was decoded earlier than the backward reference – is at index 1.
+ */
+
+ /* WABA: backward / forward refs are always set, even when they aren't strictly needed */
+ psb_surface_p forward_surface = ctx->forward_ref_surface->psb_surface;
+ psb_surface_p backward_surface = ctx->backward_ref_surface->psb_surface;
+
+ if (backward_surface) {
+ psb_cmdbuf_reg_set_RELOC(cmdbuf , REGISTER_OFFSET(MSVDX_CMDS, REFERENCE_PICTURE_BASE_ADDRESSES) + (0 * 8),
+ &backward_surface->buf, 0);
+
+ psb_cmdbuf_reg_set_RELOC(cmdbuf , REGISTER_OFFSET(MSVDX_CMDS, REFERENCE_PICTURE_BASE_ADDRESSES) + 4 + (0 * 8),
+ &backward_surface->buf, backward_surface->chroma_offset);
+ }
+ if (forward_surface) {
+ psb_cmdbuf_reg_set_RELOC(cmdbuf , REGISTER_OFFSET(MSVDX_CMDS, REFERENCE_PICTURE_BASE_ADDRESSES) + (1 * 8),
+ &forward_surface->buf, 0);
+
+ psb_cmdbuf_reg_set_RELOC(cmdbuf , REGISTER_OFFSET(MSVDX_CMDS, REFERENCE_PICTURE_BASE_ADDRESSES) + 4 + (1 * 8),
+ &forward_surface->buf, forward_surface->chroma_offset);
+ }
+
+ /*
+ * VDMC_RESIDUAL_DIRECT_INSERT_CONTROL, spec p 159
+ * 0 VDMC_RESIDUAL_DIRECT_CONTROL (VDMC) residual direct insert control.
+ * Control insertion of spatial residual data. When set to 1 residual
+ * data taken from writes to VDMC_RESIDUAL_DIRECT_INSERT_DATA
+ * when set to 0, residual data taken from vEC
+ */
+ psb_cmdbuf_reg_set(cmdbuf , REGISTER_OFFSET(MSVDX_VDMC, CR_VDMC_RESIDUAL_DIRECT_INSERT_CONTROL), 1);
+
+ psb_cmdbuf_reg_end_block(cmdbuf);
+}
+
+
+
+/* Control building of the MSVDX command buffer for a B and P pictures.*/
+static void psb__MPEG2MC_interPB_mb(
+ context_MPEG2MC_p const ctx,
+ VAMacroblockParameterBufferMPEG2 * const mb_param
+)
+{
+ psb_cmdbuf_p cmdbuf = ctx->obj_context->cmdbuf;
+ uint32_t cmd;
+
+ psb_cmdbuf_reg_start_block(cmdbuf);
+
+ /* 3.3.21. Macroblock Number */
+ psb__MPEG2MC_send_mb_number(ctx, cmdbuf, mb_param->macroblock_address, MBPARAM_MotionType(mb_param),
+ MBPARAM_IntraMacroblock(mb_param) ? MB_CODE_TYPE_I : pict_libva2msvdx[ctx->picture_coding_type]
+ );
+
+ cmd = 0;
+ /* Only used for direct insert of residual data;-
+ 00 = 8-bit signed data
+ 01 = 8-bit unsigned data
+ 10 = 16-bit signed
+ 11 = Reserved
+ */
+ /* TODO:: ASSERT(ConfigSpatialResid8==0 ); */
+ if (MBPARAM_IntraMacroblock(mb_param)) {
+ if (1/* TODO:: ConfigIntraResidUnsigned == 0 */) {
+ /* sent as as 16 bit signed relative to 128*/
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, MACROBLOCK_RESIDUAL_FORMAT, VA_ADD_128, 1);
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, MACROBLOCK_RESIDUAL_FORMAT, VA_DATA_FORMAT, 2);
+ } else { /* ConfigIntraResidUnsigned == 1 */
+ /* 16 bit unsigned unsigned relative to 0*/
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, MACROBLOCK_RESIDUAL_FORMAT, VA_ADD_128, 0);
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, MACROBLOCK_RESIDUAL_FORMAT, VA_DATA_FORMAT, 2);
+ }
+ } else {
+ /* For non-intra in Inter frames : 16 bit signed */
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, MACROBLOCK_RESIDUAL_FORMAT, VA_ADD_128, 0);
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, MACROBLOCK_RESIDUAL_FORMAT, VA_DATA_FORMAT, 2);
+ }
+
+
+ if (FRAME_PICTURE == ctx->picture_structure) {
+ /* mb_param->macroblock_modes.bits.dct_type =1: field DCT */
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, MACROBLOCK_RESIDUAL_FORMAT, RESIDUAL_FIELD_CODED, mb_param->macroblock_modes.bits.dct_type ? 1 : 0);
+ } else {
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, MACROBLOCK_RESIDUAL_FORMAT, RESIDUAL_FIELD_CODED, 1);
+ }
+
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, MACROBLOCK_RESIDUAL_FORMAT, CR_FROM_VEC,
+ ((MBPARAM_CodedBlockPattern(mb_param) & 0x40) ? 1 : 0));
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, MACROBLOCK_RESIDUAL_FORMAT, CB_FROM_VEC,
+ ((MBPARAM_CodedBlockPattern(mb_param) & 0x80) ? 1 : 0));
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, MACROBLOCK_RESIDUAL_FORMAT, Y3_FROM_VEC,
+ ((MBPARAM_CodedBlockPattern(mb_param) & 0x100) ? 1 : 0));
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, MACROBLOCK_RESIDUAL_FORMAT, Y2_FROM_VEC,
+ ((MBPARAM_CodedBlockPattern(mb_param) & 0x200) ? 1 : 0));
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, MACROBLOCK_RESIDUAL_FORMAT, Y1_FROM_VEC,
+ ((MBPARAM_CodedBlockPattern(mb_param) & 0x400) ? 1 : 0));
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, MACROBLOCK_RESIDUAL_FORMAT, Y0_FROM_VEC,
+ ((MBPARAM_CodedBlockPattern(mb_param) & 0x800) ? 1 : 0));
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_CMDS, MACROBLOCK_RESIDUAL_FORMAT) , cmd);
+
+ /* Send Residuals */
+ if (MBPARAM_IntraMacroblock(mb_param)) {
+ cmd = 0;
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, INTRA_BLOCK_PREDICTION, INTRA_PRED_MODE0, 0);
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, INTRA_BLOCK_PREDICTION, INTRA_PRED_MODE1, 0);
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, INTRA_BLOCK_PREDICTION, INTRA_PRED_MODE2, 0);
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, INTRA_BLOCK_PREDICTION, INTRA_PRED_MODE3, 0);
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_CMDS, INTRA_BLOCK_PREDICTION) , cmd);
+
+ psb__MPEG2MC_send_residual(ctx, MBPARAM_CodedBlockPattern(mb_param));
+ } else {
+ psb__MPEG2MC_send_interPB_prediction(ctx, cmdbuf, mb_param, IMG_FALSE);
+
+ /* Send motion vectors */
+ psb__MPEG2MC_send_motion_vectores(ctx, cmdbuf, mb_param);
+
+ psb__MPEG2MC_send_residual(ctx, MBPARAM_CodedBlockPattern(mb_param));
+ }
+
+ psb_cmdbuf_reg_end_block(cmdbuf);
+}
+
+
+
+/* Process Macroblocks of a B or P picture.*/
+static VAStatus psb__MPEG2MC_process_mbs_interPB(
+ context_MPEG2MC_p const ctx
+)
+{
+ uint32_t skip_count = 0;
+ VAMacroblockParameterBufferMPEG2 *mb_param = NULL;
+ VAMacroblockParameterBufferMPEG2 mbparam_skip;
+
+ uint32_t mb_pending = ctx->mb_in_buffer;
+ uint32_t mb_addr = ctx->mb_first_addr;
+ uint32_t mb_last = mb_addr + mb_pending;
+ mb_param = (VAMacroblockParameterBufferMPEG2 *) ctx->mb_param;
+
+ /* Proccess all VA_MBctrl_P_HostResidDiff_1 structure in the buffer
+ * - this may genererate more macroblocks due to skipped
+ */
+ while (mb_pending || skip_count) {
+ uint32_t mb_in_buffer = (ctx->picture_width_mb);
+ psb_cmdbuf_p cmdbuf;
+ void *cmd_start;
+
+ ctx->fstmb_slice = IMG_TRUE;
+
+ psb_context_get_next_cmdbuf(ctx->obj_context);
+ cmdbuf = ctx->obj_context->cmdbuf;
+ cmd_start = (void *) cmdbuf->cmd_idx;
+
+ /* Build the high-level commands */
+ psb__MPEG2MC_send_highlevel_commands(ctx);
+
+ psb__MPEG2MC_send_slice_parameters(ctx);
+
+ /* Process all the macroblocks in the slice */
+ while ((mb_pending || skip_count) && mb_in_buffer--) {
+ /* Check for segment space - do we have space for at least one more
+ * worst case InterMB plus completion
+ */
+ psb__MPEG2MC_check_segment_residDMA(ctx, INTER_MB_WORST_CASE + 2);
+
+ if (skip_count) { /* Skipped macroblock processing */
+ mbparam_skip.macroblock_address++;
+
+ ASSERT(mb_param->macroblock_address < ctx->size_mb);
+ ASSERT(mbparam_skip.macroblock_address == mb_addr);
+
+ psb__MPEG2MC_interPB_mb(ctx, &mbparam_skip);
+
+ skip_count--;
+ } else {
+ ASSERT(mb_pending);
+ ASSERT(mb_param->macroblock_address < ctx->size_mb);
+ ASSERT(mb_param->macroblock_address == mb_addr);
+
+ psb__MPEG2MC_interPB_mb(ctx, mb_param);
+
+ skip_count = MBPARAM_MBskipsFollowing(mb_param);
+ if (skip_count) {
+ memcpy(&mbparam_skip, mb_param, sizeof(mbparam_skip));
+ }
+
+ mb_param++;
+ mb_pending--;
+ }
+
+ ctx->fstmb_slice = IMG_FALSE;
+
+ mb_addr++;
+ }
+
+ /* Tell hardware we're done */
+ psb__MPEG2MC_send_slice_picture_endcommand(ctx, (mb_pending == 0) && (skip_count == 0) && (ctx->size_mb == mb_last));
+ psb__MPEG2MC_finalise_residDMA(ctx);
+
+ /* write_kick */
+ *cmdbuf->cmd_idx++ = CMD_COMPLETION;
+
+ ctx->obj_context->video_op = psb_video_mc;
+ ctx->obj_context->flags = (mb_pending == 0) && (skip_count == 0) && (ctx->size_mb == mb_last) ? FW_VA_RENDER_IS_LAST_SLICE : 0;
+ ctx->obj_context->first_mb = 0;
+ ctx->obj_context->last_mb = 0;
+ psb_context_submit_cmdbuf(ctx->obj_context);
+
+ /* check if the remained cmdbuf size can fill the commands of next slice */
+ if (1 || (cmdbuf->lldma_base - (void *) cmdbuf->cmd_idx) < ((void *) cmdbuf->cmd_idx - cmd_start))
+ psb_context_flush_cmdbuf(ctx->obj_context);
+ }
+
+ return VA_STATUS_SUCCESS;
+}
+
+
+static void psb__MPEG2MC_intra_mb(
+ context_MPEG2MC_p const ctx,
+ const VAMacroblockParameterBufferMPEG2* const mb_param
+)
+{
+ psb_cmdbuf_p cmdbuf = ctx->obj_context->cmdbuf;
+ uint32_t cmd;
+
+ psb_cmdbuf_reg_start_block(cmdbuf);
+
+ /* 3.3.21. Macroblock Number */
+ psb__MPEG2MC_send_mb_number(ctx, cmdbuf, mb_param->macroblock_address, MBPARAM_MotionType(mb_param), MB_CODE_TYPE_I);
+
+ /*3.3.25. Macroblock Residual Format */
+ cmd = 0;
+
+ /* In INTRA pictures, spatial-blocks are always 8bit when BBP is 8 */
+ /* 00 = 8-bit signed data
+ * 01 = 8-bit unsigned data
+ */
+ if (1/* TODO:: ConfigIntraResidUnsigned==0 */) {
+ /* spec p67:
+ * VA_ADD_128 MC Only used for direct insert of residual data;-
+ * 0: add 0 to residual data input
+ * 1: indicates 128 should be added to residual data input
+ *
+ * VA_DATA_FORMAT:Only used for direct insert of residual data;-
+ * 0x0: 8-bit signed data
+ * 0x1: 8-bit unsigned data
+ * 0x2: 16-bit signed
+ */
+ /* Sent as 8 bit signed relative to 128 */
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, MACROBLOCK_RESIDUAL_FORMAT, VA_DATA_FORMAT, 0); /* ok ish */
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, MACROBLOCK_RESIDUAL_FORMAT, VA_ADD_128, 1); /* ok ish */
+ } else {
+ /* Sent as 8 bit unsigned relative to 0 */
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, MACROBLOCK_RESIDUAL_FORMAT, VA_DATA_FORMAT, 1);
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, MACROBLOCK_RESIDUAL_FORMAT, VA_ADD_128, 0);
+ }
+
+ if (FRAME_PICTURE == ctx->picture_structure) {
+ /*
+ * RESIDUAL_FIELD_CODED MC
+ * 0: residual data frame coded
+ * 1: (luma)residual data field coded
+ * N.B. For VC1, MPEG4 and MPEG2, if SLICE_FIELD_TYPE =
+ * frame, chroma residual will be frame coded, even if the luma
+ * residual is field coded.
+ */
+ /*
+ * (VA:wMBType bit 5: FieldResidual, wMBtype & 0x20)/libVA(dct_type:1 field DCT):
+ * Indicates whether the residual difference blocks use a field IDCT structure as specified in MPEG-2.
+ *
+ * Must be 1 if the bPicStructure member of VA_PictureParameters is 1 or 2. When used for MPEG-2,
+ * FieldResidual must be zero if the frame_pred_frame_DCT variable in the MPEG-2 syntax is 1, and
+ * must be equal to the dct_type variable in the MPEG-2 syntax if dct_type is present for the macroblock.
+ */
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, MACROBLOCK_RESIDUAL_FORMAT,
+ RESIDUAL_FIELD_CODED, ((mb_param->macroblock_modes.bits.dct_type) ? 1 : 0));
+ } else {
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, MACROBLOCK_RESIDUAL_FORMAT, RESIDUAL_FIELD_CODED, 1);
+ }
+
+ /* CR_FROM_VEC MC 0: constant zero residual
+ 1: block Cr provided by VEC
+ (If REVERSE_FLAG_ORDER=1, this bit indicates if Y0 provided)
+ CB_FROM_VEC MC 0: constant zero residual
+ 1: block Cb provided by VEC
+ (If REVERSE_FLAG_ORDER=1, this bit indicates if Y1 provided)
+ Y3_FROM_VEC MC 0: constant zero residual
+ 1: block Y3 provided by VEC
+ (If REVERSE_FLAG_ORDER=1, this bit indicates if Y2 provided)
+ Y2_FROM_VEC MC 0: constant zero residual
+ 1: block Y2 provided by VEC
+ (If REVERSE_FLAG_ORDER=1, this bit indicates if Y3 provided)
+ Y1_FROM_VEC MC 0: constant zero residual
+ 1: block Y1 provided by VEC
+ (If REVERSE_FLAG_ORDER=1, this bit indicates if Cb provided)
+ Y0_FROM_VEC MC 0: constant zero residual
+ 1: block Y0 provided by VEC
+ (If REVERSE_FLAG_ORDER=1, this bit indicates if Cr provided)
+ */
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, MACROBLOCK_RESIDUAL_FORMAT, CR_FROM_VEC,
+ ((MBPARAM_CodedBlockPattern(mb_param) & 0x40) ? 1 : 0));
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, MACROBLOCK_RESIDUAL_FORMAT, CB_FROM_VEC,
+ ((MBPARAM_CodedBlockPattern(mb_param) & 0x80) ? 1 : 0));
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, MACROBLOCK_RESIDUAL_FORMAT, Y3_FROM_VEC,
+ ((MBPARAM_CodedBlockPattern(mb_param) & 0x100) ? 1 : 0));
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, MACROBLOCK_RESIDUAL_FORMAT, Y2_FROM_VEC,
+ ((MBPARAM_CodedBlockPattern(mb_param) & 0x200) ? 1 : 0));
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, MACROBLOCK_RESIDUAL_FORMAT, Y1_FROM_VEC,
+ ((MBPARAM_CodedBlockPattern(mb_param) & 0x400) ? 1 : 0));
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, MACROBLOCK_RESIDUAL_FORMAT, Y0_FROM_VEC,
+ ((MBPARAM_CodedBlockPattern(mb_param) & 0x800) ? 1 : 0));
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_CMDS, MACROBLOCK_RESIDUAL_FORMAT) , cmd);
+
+ /* Send Residuals, spec p69,h264 only */
+ cmd = 0;
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, INTRA_BLOCK_PREDICTION, INTRA_PRED_MODE0, 0);
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, INTRA_BLOCK_PREDICTION, INTRA_PRED_MODE1, 0);
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, INTRA_BLOCK_PREDICTION, INTRA_PRED_MODE2, 0);
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, INTRA_BLOCK_PREDICTION, INTRA_PRED_MODE3, 0);
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_CMDS, INTRA_BLOCK_PREDICTION) , cmd);
+
+ psb__MPEG2MC_send_residual(ctx, MBPARAM_CodedBlockPattern(mb_param));
+
+ psb_cmdbuf_reg_end_block(cmdbuf);
+}
+
+
+static VAStatus psb__MPEG2MC_process_mbs_intra(
+ context_MPEG2MC_p const ctx
+)
+{
+ const VAMacroblockParameterBufferMPEG2* mb_param = NULL;
+ uint32_t mb_pending = ctx->mb_in_buffer;
+ uint32_t mb_addr = ctx->mb_first_addr;
+ uint32_t mb_last = mb_addr + mb_pending;
+
+ mb_param = (VAMacroblockParameterBufferMPEG2*) ctx->mb_param;
+
+ while (mb_pending) { /* one slice per loop */
+ uint32_t mb_in_buffer = min(mb_pending, ctx->picture_width_mb);
+ psb_cmdbuf_p cmdbuf;
+ void *cmd_start;
+
+ mb_pending -= mb_in_buffer;
+
+ psb_context_get_next_cmdbuf(ctx->obj_context);
+ cmdbuf = ctx->obj_context->cmdbuf;
+ cmd_start = (void *) cmdbuf->cmd_idx;
+
+ ctx->fstmb_slice = IMG_TRUE;
+
+ /* Build the high-level commands */
+ psb__MPEG2MC_send_highlevel_commands(ctx);
+
+ psb__MPEG2MC_send_slice_parameters(ctx);
+
+ /* Process all the macroblocks in the slice */
+ while (mb_in_buffer--) { /* for every MB */
+ ASSERT(mb_param->macroblock_address < ctx->size_mb);
+ ASSERT(mb_param->macroblock_address == mb_addr);
+
+ /* Check for segment space - do we have space for at least one more
+ * worst case IntraMB plus completion
+ */
+ psb__MPEG2MC_check_segment_residDMA(ctx, INTRA_MB_WORST_CASE + 2);
+
+ psb__MPEG2MC_intra_mb(ctx, mb_param);
+
+ mb_param++; /* next macroblock parameter */
+ mb_addr++;
+
+ ctx->fstmb_slice = IMG_FALSE;
+ }
+
+ psb__MPEG2MC_send_slice_picture_endcommand(ctx, (mb_pending == 0) && (ctx->size_mb == mb_last)); /* Tell hardware we're done */
+
+ psb__MPEG2MC_finalise_residDMA(ctx);
+
+ /* write_kick */
+ *cmdbuf->cmd_idx++ = CMD_COMPLETION;
+
+ ctx->obj_context->video_op = psb_video_mc;
+ ctx->obj_context->flags = (mb_pending == 0) && (ctx->size_mb == mb_last) ? FW_VA_RENDER_IS_LAST_SLICE : 0;
+ ctx->obj_context->first_mb = 0;
+ ctx->obj_context->last_mb = 0;
+ psb_context_submit_cmdbuf(ctx->obj_context);
+
+ /* check if the remained cmdbuf size can fill the commands of next slice */
+ if (1 || (cmdbuf->lldma_base - (void *) cmdbuf->cmd_idx) < ((void *) cmdbuf->cmd_idx - cmd_start))
+ psb_context_flush_cmdbuf(ctx->obj_context);
+ }
+
+ //ASSERT(ctx->residual_bytes == 0); /* There should be no more data left */
+
+ return VA_STATUS_SUCCESS;
+}
+
+
+static VAStatus psb__MPEG2MC_process_picture_param(context_MPEG2MC_p ctx, object_buffer_p obj_buffer)
+{
+ int coded_pic_height;
+
+ /* Take a copy of the picture parameters */
+ ctx->pic_params = (VAPictureParameterBufferMPEG2 *) obj_buffer->buffer_data;
+ obj_buffer->buffer_data = NULL;
+ obj_buffer->size = 0;
+
+ ctx->picture_coding_type = ctx->pic_params->picture_coding_type;
+ ctx->picture_structure = ctx->pic_params->picture_coding_extension.bits.picture_structure;
+
+ ctx->forward_ref_surface = SURFACE(ctx->pic_params->forward_reference_picture);
+ ctx->backward_ref_surface = SURFACE(ctx->pic_params->backward_reference_picture);
+
+ /* Set picture type and reference indices for reference frames */
+ if (ctx->picture_coding_type != PICTURE_CODING_I) {
+ if (ctx->pic_params->picture_coding_extension.bits.is_first_field) { /* first field */
+ if (ctx->backward_ref_surface) {
+ ctx->picture_coding_type = PICTURE_CODING_B;
+ ctx->ref_indexA = 0x01;/* Forward reference frame*/
+ ctx->ref_indexB = 0x00;/* Backward reference frame*/
+ } else {
+ ctx->picture_coding_type = PICTURE_CODING_P;
+ ctx->ref_indexA = 0x00; /* Always reference frame 0*/
+ }
+ } else {
+ if ((PICTURE_CODING_B == ctx->picture_coding_type) && (ctx->backward_ref_surface)) {
+ ctx->picture_coding_type = PICTURE_CODING_B;
+ ctx->ref_indexA = 0x01; /* Forward reference frame*/
+ ctx->ref_indexB = 0x00;/* Backward reference frame */
+ } else {
+ ctx->picture_coding_type = PICTURE_CODING_P;
+ if (ctx->forward_ref_surface) {
+ ctx->ref_indexA = 0x00;
+ } else {
+ ctx->ref_indexA = 0x01;
+ ctx->ref_indexB = 0x00;
+ }
+ }
+ }
+ }
+ ctx->pic_params->picture_coding_type = ctx->picture_coding_type;
+
+ /* residual data size per element */
+ if (ctx->picture_coding_type == PICTURE_CODING_I) {
+ ctx->blk_size = 64; /* unsigned char */
+ } else {
+ ctx->blk_size = 2 * 64; /* unsigned short */
+ }
+
+ if (ctx->picture_coding_type != PICTURE_CODING_I) {
+ if (ctx->backward_ref_surface) {
+ if (ctx->forward_ref_surface == NULL)
+ ctx->forward_ref_surface = ctx->backward_ref_surface;
+ } else {
+ ctx->backward_ref_surface = ctx->forward_ref_surface;
+ }
+ }
+ if (NULL == ctx->backward_ref_surface) {
+ ctx->backward_ref_surface = ctx->obj_context->current_render_target;
+ }
+ if (NULL == ctx->forward_ref_surface) {
+ ctx->forward_ref_surface = ctx->obj_context->current_render_target;
+ }
+
+ ctx->coded_picture_width = ctx->pic_params->horizontal_size;
+ ctx->coded_picture_height = ctx->pic_params->vertical_size;
+ ctx->picture_width_mb = ctx->pic_params->horizontal_size / 16;
+ if (ctx->pic_params->picture_coding_extension.bits.progressive_frame == 1) /* should be progressive_sequence? */
+ ctx->picture_height_mb = (ctx->coded_picture_height + 15) / 16;
+ else {
+ if (FRAME_PICTURE != ctx->picture_structure) { /*Interlaced Field Pictures */
+ ctx->picture_height_mb = ((ctx->coded_picture_height + 31) / 32);
+ } else {
+ ctx->picture_height_mb = 2 * ((ctx->coded_picture_height + 31) / 32);
+ }
+ }
+ coded_pic_height = (ctx->picture_structure != FRAME_PICTURE) ?
+ ((ctx->picture_height_mb) * 32) : ((ctx->picture_height_mb) * 16);
+ ctx->size_mb = ctx->picture_width_mb * (coded_pic_height >> 4);
+
+ ctx->display_picture_size = 0;
+ REGIO_WRITE_FIELD_LITE(ctx->display_picture_size, MSVDX_CMDS,
+ DISPLAY_PICTURE_SIZE, DISPLAY_PICTURE_HEIGHT, ctx->coded_picture_height - 1);
+ REGIO_WRITE_FIELD_LITE(ctx->display_picture_size, MSVDX_CMDS,
+ DISPLAY_PICTURE_SIZE, DISPLAY_PICTURE_WIDTH, ctx->coded_picture_width - 1);
+
+ ctx->coded_picture_size = 0;
+ REGIO_WRITE_FIELD_LITE(ctx->coded_picture_size, MSVDX_CMDS,
+ CODED_PICTURE_SIZE, CODED_PICTURE_HEIGHT, ctx->coded_picture_height - 1);
+ REGIO_WRITE_FIELD_LITE(ctx->coded_picture_size, MSVDX_CMDS,
+ CODED_PICTURE_SIZE, CODED_PICTURE_WIDTH, ctx->coded_picture_width - 1);
+
+ ctx->obj_context->operating_mode = 0;
+ REGIO_WRITE_FIELD(ctx->obj_context->operating_mode, MSVDX_CMDS, OPERATING_MODE, CHROMA_FORMAT, 1);
+ REGIO_WRITE_FIELD(ctx->obj_context->operating_mode, MSVDX_CMDS, OPERATING_MODE, ASYNC_MODE, 1);
+ /* 0 = VDMC and VDEB active. 1 = VDEB pass-thru. */
+ REGIO_WRITE_FIELD(ctx->obj_context->operating_mode, MSVDX_CMDS, OPERATING_MODE,
+ CODEC_MODE, CODEC_MODE_MPEG2);
+ REGIO_WRITE_FIELD(ctx->obj_context->operating_mode, MSVDX_CMDS, OPERATING_MODE,
+ CODEC_PROFILE, CODEC_PROFILE_MPEG2_MAIN);
+ REGIO_WRITE_FIELD(ctx->obj_context->operating_mode, MSVDX_CMDS, OPERATING_MODE,
+ ROW_STRIDE, (ctx->obj_context->current_render_target->psb_surface->stride_mode));
+
+ return VA_STATUS_SUCCESS;
+}
+
+
+
+static void psb_MPEG2MC_QueryConfigAttributes(
+ VAProfile profile,
+ VAEntrypoint entrypoint,
+ VAConfigAttrib *attrib_list,
+ int num_attribs)
+{
+ /* No MPEG2 specific attributes */
+}
+
+static VAStatus psb_MPEG2MC_ValidateConfig(
+ object_config_p obj_config)
+{
+ int i;
+ /* Check all attributes */
+ for (i = 0; i < obj_config->attrib_count; i++) {
+ switch (obj_config->attrib_list[i].type) {
+ case VAConfigAttribRTFormat:
+ /* Ignore */
+ break;
+
+ default:
+ return VA_STATUS_ERROR_ATTR_NOT_SUPPORTED;
+ }
+ }
+
+ return VA_STATUS_SUCCESS;
+}
+
+static VAStatus psb__MPEG2MC_check_legal_picture(object_context_p obj_context, object_config_p obj_config)
+{
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+
+ if (NULL == obj_context) {
+ vaStatus = VA_STATUS_ERROR_INVALID_CONTEXT;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ if (NULL == obj_config) {
+ vaStatus = VA_STATUS_ERROR_INVALID_CONFIG;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ /* MSVDX decode capability for MPEG2:
+ * MP@HL
+ *
+ * Refer to Table 8-11 (Upper bounds for luminance sample rate) of ISO/IEC 13818-2: 1995(E),
+ * and the "MSVDX MPEG2 decode capability" table of "Poulsbo Media Software Overview"
+ */
+
+ switch (obj_config->profile) {
+ case VAProfileMPEG2Simple:
+ if ((obj_context->picture_width <= 0) || (obj_context->picture_width > 352)
+ || (obj_context->picture_height <= 0) || (obj_context->picture_height > 288)) {
+ vaStatus = VA_STATUS_ERROR_RESOLUTION_NOT_SUPPORTED;
+ }
+ break;
+
+ case VAProfileMPEG2Main:
+ if ((obj_context->picture_width <= 0) || (obj_context->picture_width > 1920)
+ || (obj_context->picture_height <= 0) || (obj_context->picture_height > 1088)) {
+ vaStatus = VA_STATUS_ERROR_RESOLUTION_NOT_SUPPORTED;
+ }
+ break;
+
+ default:
+ vaStatus = VA_STATUS_ERROR_UNSUPPORTED_PROFILE;
+ break;
+ }
+
+ return vaStatus;
+}
+
+static VAStatus psb_MPEG2MC_CreateContext(
+ object_context_p obj_context,
+ object_config_p obj_config)
+{
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ context_MPEG2MC_p ctx;
+
+ /* Validate flag */
+ /* Validate picture dimensions */
+ vaStatus = psb__MPEG2MC_check_legal_picture(obj_context, obj_config);
+ if (VA_STATUS_SUCCESS != vaStatus) {
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ if (obj_context->num_render_targets < 1) {
+ vaStatus = VA_STATUS_ERROR_UNKNOWN;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ ctx = (context_MPEG2MC_p) calloc(1, sizeof(struct context_MPEG2MC_s));
+ if (NULL == ctx) {
+ vaStatus = VA_STATUS_ERROR_ALLOCATION_FAILED;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ /* TODO: initialize ctx content */
+ obj_context->format_data = (void*) ctx;
+ ctx->obj_context = obj_context;
+ ctx->pic_params = NULL;
+ /* TODO create and map buffer */
+
+ return vaStatus;
+}
+
+
+static void psb_MPEG2MC_DestroyContext(
+ object_context_p obj_context)
+{
+ INIT_CONTEXT_MPEG2MC;
+
+ /* TODO:unmap and destroy buffers */
+ if (ctx->pic_params) {
+ free(ctx->pic_params);
+ ctx->pic_params = NULL;
+ }
+
+ free(obj_context->format_data);
+ obj_context->format_data = NULL;
+}
+
+static VAStatus psb_MPEG2MC_BeginPicture(
+ object_context_p obj_context)
+{
+ INIT_CONTEXT_MPEG2MC;
+
+#if 0 /* clear surface for debugging */
+ void *surface_data = NULL;
+ static psb_surface_p target_surface = NULL;
+ psb_surface_p tmp = ctx->obj_context->current_render_target->psb_surface;
+ if (target_surface != tmp) { /* for field picture, only reset one time */
+ target_surface = tmp;
+
+ int ret = psb_buffer_map(&target_surface->buf, &surface_data);
+ if (ret) {
+ goto out;
+ }
+ memset(surface_data, 0x33, target_surface->size);
+ psb_buffer_unmap(&target_surface->buf);
+ }
+out:
+#endif
+
+ if (ctx->pic_params) {
+ free(ctx->pic_params);
+ ctx->pic_params = NULL;
+ }
+
+ /* TODO: others */
+ return VA_STATUS_SUCCESS;
+}
+
+
+static VAStatus psb_MPEG2MC_RenderPicture(
+ object_context_p obj_context,
+ object_buffer_p *buffers,
+ int num_buffers)
+{
+ int i;
+ INIT_CONTEXT_MPEG2MC;
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+
+ ctx->mb_param = NULL; /* Init. compressed buffer pointers */
+ ctx->residual_buf = NULL;
+
+ for (i = 0; i < num_buffers; i++) {
+ object_buffer_p obj_buffer = buffers[i];
+
+ switch (obj_buffer->type) {
+ /* Picture parameters processing */
+ case VAPictureParameterBufferType: {
+ vaStatus = psb__MPEG2MC_process_picture_param(ctx, obj_buffer);
+ DEBUG_FAILURE;
+ break;
+ }
+ /* Macroblock Data processing */
+ case VAMacroblockParameterBufferType: {
+ ctx->mb_param = (VAMacroblockParameterBufferMPEG2 *)obj_buffer->buffer_data;
+ ctx->mb_first_addr = ctx->mb_param->macroblock_address;
+ ctx->mb_in_buffer = obj_buffer->num_elements;
+ /* psb__information_message("Macroblock count %d\n",ctx->mb_in_buffer); */
+ break;
+ }
+ /* Residual Difference Data processing */
+ case VAResidualDataBufferType: {
+ /* store the data after VLD+IDCT */
+ ctx->residual_buf = obj_buffer->psb_buffer;
+ ctx->blk_in_buffer = obj_buffer->num_elements;
+ break;
+ }
+ default:
+ psb__information_message("Unhandled buffer type 0x%x\n", obj_buffer->type);
+ break;
+ }
+ }
+
+ /* Assuming residual and MB control buffers have been located */
+ if (ctx->residual_buf && ctx->mb_param) {
+ ctx->residual_sent = 0;
+ ctx->residual_pendingDMA = 0;
+
+ if (ctx->picture_coding_type == PICTURE_CODING_I) {
+ psb__MPEG2MC_process_mbs_intra(ctx);
+ } else {
+ psb__MPEG2MC_process_mbs_interPB(ctx);
+ }
+ ctx->mb_param = NULL;
+ }
+
+ return VA_STATUS_SUCCESS;
+}
+
+
+static VAStatus psb_MPEG2MC_EndPicture(
+ object_context_p obj_context)
+{
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ INIT_CONTEXT_MPEG2MC;
+
+ psb__information_message("psb_MPEG2MC_EndPicture\n");
+
+ if (psb_context_flush_cmdbuf(ctx->obj_context)) {
+ vaStatus = VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ return vaStatus;
+}
+
+/* TODO: integrate with VLD */
+struct format_vtable_s psb_MPEG2MC_vtable = {
+queryConfigAttributes:
+ psb_MPEG2MC_QueryConfigAttributes,
+validateConfig:
+ psb_MPEG2MC_ValidateConfig,
+createContext:
+ psb_MPEG2MC_CreateContext,
+destroyContext:
+ psb_MPEG2MC_DestroyContext,
+beginPicture:
+ psb_MPEG2MC_BeginPicture,
+renderPicture:
+ psb_MPEG2MC_RenderPicture,
+endPicture:
+ psb_MPEG2MC_EndPicture
+};
diff --git a/src/psb_MPEG4.c b/src/psb_MPEG4.c
new file mode 100644
index 0000000..c86650c
--- /dev/null
+++ b/src/psb_MPEG4.c
@@ -0,0 +1,1471 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ * Waldo Bastian <waldo.bastian@intel.com>
+ *
+ */
+
+#include "psb_MPEG4.h"
+#include "psb_def.h"
+#include "psb_surface.h"
+#include "psb_cmdbuf.h"
+
+#include "hwdefs/reg_io2.h"
+#include "hwdefs/msvdx_offsets.h"
+#include "hwdefs/msvdx_cmds_io2.h"
+#include "hwdefs/msvdx_vec_reg_io2.h"
+#include "hwdefs/msvdx_vec_mpeg4_reg_io2.h"
+#include "hwdefs/dxva_fw_ctrl.h"
+
+#include <stdlib.h>
+#include <stdint.h>
+#include <string.h>
+
+#define GET_SURFACE_INFO_is_defined(psb_surface) ((int) (psb_surface->extra_info[0]))
+#define SET_SURFACE_INFO_is_defined(psb_surface, val) psb_surface->extra_info[0] = (uint32_t) val;
+#define GET_SURFACE_INFO_picture_structure(psb_surface) (psb_surface->extra_info[1])
+#define SET_SURFACE_INFO_picture_structure(psb_surface, val) psb_surface->extra_info[1] = val;
+#define GET_SURFACE_INFO_picture_coding_type(psb_surface) ((int) (psb_surface->extra_info[2]))
+#define SET_SURFACE_INFO_picture_coding_type(psb_surface, val) psb_surface->extra_info[2] = (uint32_t) val;
+#define GET_SURFACE_INFO_colocated_index(psb_surface) ((int) (psb_surface->extra_info[3]))
+#define SET_SURFACE_INFO_colocated_index(psb_surface, val) psb_surface->extra_info[3] = (uint32_t) val;
+
+#define SLICEDATA_BUFFER_TYPE(type) ((type==VASliceDataBufferType)?"VASliceDataBufferType":"VAProtectedSliceDataBufferType")
+
+#define PIXELS_TO_MB(x) ((x + 15) / 16)
+
+/*
+ * Frame types - format dependant!
+ */
+#define PICTURE_CODING_I 0x00
+#define PICTURE_CODING_P 0x01
+#define PICTURE_CODING_B 0x02
+#define PICTURE_CODING_S 0x03
+
+
+#define FE_STATE_BUFFER_SIZE 4096
+#define FE_STATE_SAVE_SIZE ( 0xB40 - 0x700 )
+
+#define MPEG4_PROFILE_SIMPLE 0
+#define MPEG4_PROFILE_ASP 2
+
+/* Table V2-2 ISO/IEC 14496-2:2001(E) - sprite enable codewords */
+typedef enum {
+ SPRITE_NOT_USED = 0,
+ STATIC,
+ GMC,
+} MPEG4_eSpriteEnable;
+
+
+#define MAX_QUANT_TABLES (2) /* only 2 tables for 4:2:0 decode */
+
+static int scan0[64] = { // spec, fig 7-2
+ /*u 0 ..... 7*/
+ 0, 1, 5, 6, 14, 15, 27, 28, /* v = 0 */
+ 2, 4, 7, 13, 16, 26, 29, 42,
+ 3, 8, 12, 17, 25, 30, 41, 43,
+ 9, 11, 18, 24, 31, 40, 44, 53,
+ 10, 19, 23, 32, 39, 45, 52, 54,
+ 20, 22, 33, 38, 46, 51, 55, 60,
+ 21, 34, 37, 47, 50, 56, 59, 61,
+ 35, 36, 48, 49, 57, 58, 62, 63 /* v = 7 */
+};
+
+typedef enum {
+ NONINTRA_LUMA_Q = 0,
+ INTRA_LUMA_Q = 1
+} QUANT_IDX;
+
+/************************************************************************************/
+/* Variable length codes in 'packed' format */
+/************************************************************************************/
+
+/* Format is: opcode, width, symbol. All VLC tables are concatenated. */
+#define VLC_PACK(a,b,c) ( ( (a) << 12 ) | ( (b) << 9 ) | (c) )
+const static IMG_UINT16 gaui16mpeg4VlcTableDataPacked[] = {
+ VLC_PACK(4 , 0 , 12), VLC_PACK(5 , 0 , 7), VLC_PACK(4 , 2 , 13), VLC_PACK(4 , 3 , 16), VLC_PACK(5 , 0 , 9), VLC_PACK(4 , 5 , 17),
+ VLC_PACK(2 , 2 , 1), VLC_PACK(3 , 2 , 0), VLC_PACK(3 , 2 , 0), VLC_PACK(4 , 2 , 36), VLC_PACK(3 , 2 , 0), VLC_PACK(4 , 0 , 0),
+ VLC_PACK(0 , 0 , 6), VLC_PACK(0 , 0 , 7), VLC_PACK(2 , 1 , 8), VLC_PACK(0 , 1 , 10), VLC_PACK(2 , 1 , 13), VLC_PACK(0 , 2 , 15),
+ VLC_PACK(4 , 0 , 8), VLC_PACK(4 , 0 , 4), VLC_PACK(4 , 0 , 2), VLC_PACK(4 , 0 , 1), VLC_PACK(4 , 0 , 12), VLC_PACK(4 , 1 , 3),
+ VLC_PACK(4 , 1 , 16), VLC_PACK(4 , 1 , 10), VLC_PACK(4 , 1 , 9), VLC_PACK(4 , 1 , 6), VLC_PACK(4 , 1 , 5), VLC_PACK(4 , 0 , 15),
+ VLC_PACK(4 , 1 , 11), VLC_PACK(4 , 1 , 13), VLC_PACK(3 , 2 , 0), VLC_PACK(4 , 2 , 36), VLC_PACK(4 , 2 , 19), VLC_PACK(4 , 2 , 18),
+ VLC_PACK(4 , 2 , 17), VLC_PACK(4 , 2 , 7), VLC_PACK(4 , 1 , 14), VLC_PACK(4 , 1 , 14), VLC_PACK(1 , 1 , 16), VLC_PACK(0 , 0 , 18),
+ VLC_PACK(0 , 0 , 19), VLC_PACK(4 , 3 , 0), VLC_PACK(4 , 3 , 12), VLC_PACK(4 , 3 , 10), VLC_PACK(4 , 3 , 14), VLC_PACK(4 , 3 , 5),
+ VLC_PACK(4 , 3 , 13), VLC_PACK(4 , 3 , 3), VLC_PACK(4 , 3 , 11), VLC_PACK(4 , 3 , 7), VLC_PACK(4 , 1 , 15), VLC_PACK(4 , 1 , 15),
+ VLC_PACK(4 , 1 , 15), VLC_PACK(4 , 1 , 15), VLC_PACK(3 , 1 , 0), VLC_PACK(4 , 1 , 6), VLC_PACK(4 , 1 , 9), VLC_PACK(4 , 0 , 8),
+ VLC_PACK(4 , 0 , 4), VLC_PACK(4 , 0 , 2), VLC_PACK(4 , 0 , 1), VLC_PACK(1 , 1 , 16), VLC_PACK(0 , 0 , 18), VLC_PACK(6 , 0 , 6),
+ VLC_PACK(4 , 3 , 15), VLC_PACK(4 , 3 , 3), VLC_PACK(4 , 3 , 5), VLC_PACK(4 , 3 , 1), VLC_PACK(4 , 3 , 10), VLC_PACK(4 , 3 , 2),
+ VLC_PACK(4 , 3 , 12), VLC_PACK(4 , 3 , 4), VLC_PACK(4 , 3 , 8), VLC_PACK(4 , 1 , 0), VLC_PACK(4 , 1 , 0), VLC_PACK(4 , 1 , 0),
+ VLC_PACK(4 , 1 , 0), VLC_PACK(3 , 1 , 0), VLC_PACK(4 , 1 , 9), VLC_PACK(4 , 1 , 6), VLC_PACK(4 , 0 , 7), VLC_PACK(4 , 0 , 11),
+ VLC_PACK(4 , 0 , 0), VLC_PACK(4 , 1 , 1), VLC_PACK(4 , 1 , 2), VLC_PACK(4 , 0 , 0), VLC_PACK(4 , 1 , 1), VLC_PACK(4 , 2 , 2),
+ VLC_PACK(4 , 3 , 3), VLC_PACK(3 , 3 , 0), VLC_PACK(4 , 0 , 0), VLC_PACK(4 , 1 , 4), VLC_PACK(4 , 1 , 2), VLC_PACK(4 , 0 , 0),
+ VLC_PACK(5 , 0 , 1), VLC_PACK(5 , 0 , 2), VLC_PACK(5 , 0 , 3), VLC_PACK(2 , 1 , 3), VLC_PACK(2 , 3 , 5), VLC_PACK(0 , 3 , 11),
+ VLC_PACK(5 , 0 , 4), VLC_PACK(5 , 0 , 5), VLC_PACK(5 , 0 , 6), VLC_PACK(5 , 0 , 7), VLC_PACK(0 , 0 , 4), VLC_PACK(5 , 0 , 10),
+ VLC_PACK(5 , 0 , 11), VLC_PACK(5 , 0 , 12), VLC_PACK(5 , 0 , 9), VLC_PACK(5 , 0 , 8), VLC_PACK(1 , 1 , 16), VLC_PACK(0 , 0 , 18),
+ VLC_PACK(0 , 0 , 19), VLC_PACK(0 , 0 , 20), VLC_PACK(5 , 0 , 24), VLC_PACK(5 , 0 , 23), VLC_PACK(5 , 0 , 22), VLC_PACK(5 , 0 , 21),
+ VLC_PACK(5 , 0 , 20), VLC_PACK(5 , 0 , 19), VLC_PACK(5 , 0 , 18), VLC_PACK(5 , 0 , 17), VLC_PACK(5 , 0 , 16), VLC_PACK(5 , 0 , 15),
+ VLC_PACK(5 , 0 , 14), VLC_PACK(5 , 0 , 13), VLC_PACK(3 , 1 , 0), VLC_PACK(5 , 0 , 32), VLC_PACK(5 , 0 , 31), VLC_PACK(5 , 0 , 30),
+ VLC_PACK(5 , 0 , 29), VLC_PACK(5 , 0 , 28), VLC_PACK(5 , 0 , 27), VLC_PACK(5 , 0 , 26), VLC_PACK(5 , 0 , 25), VLC_PACK(2 , 5 , 4),
+ VLC_PACK(0 , 0 , 14), VLC_PACK(4 , 1 , 2), VLC_PACK(4 , 1 , 1), VLC_PACK(4 , 0 , 4), VLC_PACK(4 , 1 , 5), VLC_PACK(4 , 2 , 6),
+ VLC_PACK(4 , 3 , 7), VLC_PACK(4 , 4 , 8), VLC_PACK(4 , 5 , 9), VLC_PACK(2 , 2 , 1), VLC_PACK(4 , 0 , 10), VLC_PACK(4 , 1 , 11),
+ VLC_PACK(4 , 2 , 12), VLC_PACK(3 , 2 , 0), VLC_PACK(4 , 0 , 3), VLC_PACK(4 , 0 , 0), VLC_PACK(2 , 5 , 4), VLC_PACK(4 , 1 , 2),
+ VLC_PACK(4 , 1 , 1), VLC_PACK(4 , 1 , 0), VLC_PACK(4 , 0 , 3), VLC_PACK(4 , 1 , 4), VLC_PACK(4 , 2 , 5), VLC_PACK(4 , 3 , 6),
+ VLC_PACK(4 , 4 , 7), VLC_PACK(4 , 5 , 8), VLC_PACK(2 , 3 , 1), VLC_PACK(4 , 0 , 9), VLC_PACK(4 , 1 , 10), VLC_PACK(4 , 2 , 11),
+ VLC_PACK(4 , 3 , 12), VLC_PACK(3 , 3 , 0), VLC_PACK(2 , 1 , 16), VLC_PACK(0 , 3 , 77), VLC_PACK(0 , 2 , 96), VLC_PACK(0 , 1 , 103),
+ VLC_PACK(2 , 1 , 106), VLC_PACK(2 , 1 , 108), VLC_PACK(5 , 1 , 250), VLC_PACK(7 , 0 , 254), VLC_PACK(4 , 2 , 508), VLC_PACK(4 , 2 , 508),
+ VLC_PACK(4 , 2 , 509), VLC_PACK(4 , 2 , 509), VLC_PACK(4 , 3 , 506), VLC_PACK(4 , 3 , 507), VLC_PACK(5 , 0 , 222), VLC_PACK(5 , 0 , 252),
+ VLC_PACK(0 , 3 , 3), VLC_PACK(2 , 1 , 18), VLC_PACK(0 , 3 , 44), VLC_PACK(5 , 1 , 237), VLC_PACK(7 , 0 , 433), VLC_PACK(7 , 0 , 434),
+ VLC_PACK(7 , 0 , 435), VLC_PACK(7 , 0 , 436), VLC_PACK(7 , 0 , 437), VLC_PACK(7 , 0 , 221), VLC_PACK(7 , 0 , 251), VLC_PACK(5 , 0 , 435),
+ VLC_PACK(5 , 0 , 436), VLC_PACK(5 , 0 , 29), VLC_PACK(5 , 0 , 61), VLC_PACK(5 , 0 , 93), VLC_PACK(5 , 0 , 156), VLC_PACK(5 , 0 , 188),
+ VLC_PACK(5 , 0 , 217), VLC_PACK(4 , 0 , 255), VLC_PACK(0 , 3 , 2), VLC_PACK(0 , 2 , 17), VLC_PACK(5 , 0 , 230), VLC_PACK(5 , 0 , 229),
+ VLC_PACK(5 , 0 , 228), VLC_PACK(5 , 0 , 214), VLC_PACK(5 , 0 , 60), VLC_PACK(5 , 0 , 213), VLC_PACK(5 , 0 , 186), VLC_PACK(5 , 0 , 28),
+ VLC_PACK(5 , 0 , 433), VLC_PACK(7 , 0 , 247), VLC_PACK(7 , 0 , 93), VLC_PACK(7 , 0 , 61), VLC_PACK(7 , 0 , 430), VLC_PACK(7 , 0 , 429),
+ VLC_PACK(7 , 0 , 428), VLC_PACK(7 , 0 , 427), VLC_PACK(5 , 0 , 232), VLC_PACK(5 , 0 , 231), VLC_PACK(5 , 0 , 215), VLC_PACK(5 , 0 , 374),
+ VLC_PACK(7 , 0 , 157), VLC_PACK(7 , 0 , 125), VLC_PACK(7 , 0 , 432), VLC_PACK(7 , 0 , 431), VLC_PACK(3 , 3 , 0), VLC_PACK(3 , 3 , 0),
+ VLC_PACK(7 , 1 , 248), VLC_PACK(5 , 1 , 233), VLC_PACK(7 , 0 , 189), VLC_PACK(7 , 0 , 220), VLC_PACK(7 , 0 , 250), VLC_PACK(5 , 0 , 434),
+ VLC_PACK(5 , 0 , 92), VLC_PACK(5 , 0 , 375), VLC_PACK(5 , 0 , 124), VLC_PACK(5 , 0 , 155), VLC_PACK(5 , 0 , 187), VLC_PACK(5 , 0 , 216),
+ VLC_PACK(5 , 0 , 235), VLC_PACK(5 , 0 , 236), VLC_PACK(0 , 0 , 16), VLC_PACK(0 , 0 , 17), VLC_PACK(5 , 1 , 241), VLC_PACK(7 , 0 , 439),
+ VLC_PACK(7 , 0 , 30), VLC_PACK(7 , 0 , 62), VLC_PACK(7 , 0 , 252), VLC_PACK(5 , 0 , 437), VLC_PACK(5 , 0 , 438), VLC_PACK(5 , 0 , 439),
+ VLC_PACK(7 , 0 , 438), VLC_PACK(5 , 0 , 157), VLC_PACK(5 , 0 , 219), VLC_PACK(5 , 0 , 243), VLC_PACK(5 , 0 , 244), VLC_PACK(5 , 0 , 245),
+ VLC_PACK(5 , 0 , 218), VLC_PACK(5 , 0 , 239), VLC_PACK(5 , 0 , 125), VLC_PACK(5 , 0 , 240), VLC_PACK(7 , 0 , 126), VLC_PACK(7 , 0 , 158),
+ VLC_PACK(5 , 0 , 62), VLC_PACK(7 , 0 , 94), VLC_PACK(5 , 0 , 30), VLC_PACK(5 , 0 , 189), VLC_PACK(5 , 0 , 220), VLC_PACK(5 , 0 , 246),
+ VLC_PACK(7 , 0 , 253), VLC_PACK(5 , 0 , 94), VLC_PACK(7 , 0 , 190), VLC_PACK(7 , 0 , 222), VLC_PACK(5 , 1 , 247), VLC_PACK(5 , 0 , 158),
+ VLC_PACK(5 , 0 , 126), VLC_PACK(5 , 0 , 190), VLC_PACK(5 , 0 , 249), VLC_PACK(5 , 0 , 221), VLC_PACK(2 , 4 , 16), VLC_PACK(2 , 3 , 68),
+ VLC_PACK(0 , 2 , 84), VLC_PACK(0 , 1 , 91), VLC_PACK(1 , 1 , 94), VLC_PACK(2 , 1 , 96), VLC_PACK(0 , 0 , 98), VLC_PACK(7 , 0 , 254),
+ VLC_PACK(4 , 2 , 508), VLC_PACK(4 , 2 , 508), VLC_PACK(4 , 2 , 509), VLC_PACK(4 , 2 , 509), VLC_PACK(4 , 3 , 444), VLC_PACK(4 , 3 , 445),
+ VLC_PACK(5 , 0 , 190), VLC_PACK(5 , 0 , 253), VLC_PACK(2 , 3 , 6), VLC_PACK(2 , 1 , 14), VLC_PACK(0 , 2 , 40), VLC_PACK(7 , 2 , 419),
+ VLC_PACK(2 , 1 , 46), VLC_PACK(3 , 4 , 0), VLC_PACK(2 , 2 , 5), VLC_PACK(7 , 2 , 426), VLC_PACK(7 , 1 , 424), VLC_PACK(7 , 0 , 423),
+ VLC_PACK(5 , 1 , 246), VLC_PACK(5 , 2 , 427), VLC_PACK(5 , 1 , 425), VLC_PACK(7 , 0 , 253), VLC_PACK(7 , 0 , 430), VLC_PACK(4 , 0 , 255),
+ VLC_PACK(0 , 3 , 2), VLC_PACK(0 , 2 , 17), VLC_PACK(5 , 0 , 217), VLC_PACK(5 , 0 , 187), VLC_PACK(5 , 0 , 124), VLC_PACK(5 , 0 , 92),
+ VLC_PACK(5 , 0 , 60), VLC_PACK(5 , 0 , 373), VLC_PACK(5 , 0 , 422), VLC_PACK(5 , 0 , 421), VLC_PACK(7 , 0 , 414), VLC_PACK(7 , 0 , 413),
+ VLC_PACK(7 , 0 , 412), VLC_PACK(7 , 0 , 411), VLC_PACK(7 , 0 , 410), VLC_PACK(7 , 0 , 409), VLC_PACK(7 , 0 , 408), VLC_PACK(7 , 0 , 407),
+ VLC_PACK(5 , 0 , 243), VLC_PACK(5 , 0 , 218), VLC_PACK(5 , 0 , 424), VLC_PACK(5 , 0 , 423), VLC_PACK(7 , 0 , 418), VLC_PACK(7 , 0 , 417),
+ VLC_PACK(7 , 0 , 416), VLC_PACK(7 , 0 , 415), VLC_PACK(5 , 0 , 374), VLC_PACK(5 , 0 , 375), VLC_PACK(5 , 0 , 29), VLC_PACK(5 , 0 , 61),
+ VLC_PACK(5 , 0 , 93), VLC_PACK(5 , 0 , 156), VLC_PACK(5 , 0 , 188), VLC_PACK(5 , 0 , 219), VLC_PACK(5 , 1 , 244), VLC_PACK(7 , 0 , 252),
+ VLC_PACK(7 , 0 , 221), VLC_PACK(0 , 2 , 5), VLC_PACK(7 , 2 , 432), VLC_PACK(0 , 0 , 11), VLC_PACK(0 , 0 , 12), VLC_PACK(5 , 1 , 431),
+ VLC_PACK(7 , 0 , 436), VLC_PACK(7 , 0 , 437), VLC_PACK(7 , 0 , 438), VLC_PACK(5 , 0 , 433), VLC_PACK(5 , 0 , 434), VLC_PACK(5 , 0 , 189),
+ VLC_PACK(5 , 0 , 220), VLC_PACK(5 , 0 , 250), VLC_PACK(5 , 1 , 248), VLC_PACK(7 , 0 , 431), VLC_PACK(5 , 0 , 125), VLC_PACK(5 , 0 , 157),
+ VLC_PACK(7 , 0 , 439), VLC_PACK(7 , 0 , 30), VLC_PACK(7 , 0 , 62), VLC_PACK(7 , 0 , 94), VLC_PACK(5 , 0 , 435), VLC_PACK(5 , 0 , 436),
+ VLC_PACK(5 , 0 , 437), VLC_PACK(5 , 0 , 251), VLC_PACK(7 , 0 , 126), VLC_PACK(7 , 0 , 158), VLC_PACK(7 , 0 , 190), VLC_PACK(7 , 0 , 222),
+ VLC_PACK(5 , 1 , 438), VLC_PACK(5 , 0 , 30), VLC_PACK(5 , 0 , 62), VLC_PACK(5 , 0 , 94), VLC_PACK(5 , 0 , 252), VLC_PACK(5 , 0 , 221),
+ VLC_PACK(5 , 0 , 126), VLC_PACK(5 , 0 , 158), VLC_PACK(5 , 0 , 255), VLC_PACK(5 , 0 , 222), VLC_PACK(0 , 0 , 14), VLC_PACK(0 , 1 , 15),
+ VLC_PACK(0 , 0 , 44), VLC_PACK(0 , 1 , 45), VLC_PACK(0 , 1 , 74), VLC_PACK(0 , 2 , 103), VLC_PACK(0 , 1 , 230), VLC_PACK(0 , 0 , 256),
+ VLC_PACK(5 , 0 , 252), VLC_PACK(7 , 0 , 254), VLC_PACK(4 , 3 , 508), VLC_PACK(4 , 3 , 509), VLC_PACK(4 , 3 , 506), VLC_PACK(4 , 3 , 507),
+ VLC_PACK(5 , 0 , 190), VLC_PACK(5 , 0 , 158), VLC_PACK(5 , 0 , 126), VLC_PACK(5 , 0 , 94), VLC_PACK(0 , 0 , 2), VLC_PACK(0 , 1 , 3),
+ VLC_PACK(5 , 0 , 62), VLC_PACK(5 , 0 , 30), VLC_PACK(5 , 0 , 439), VLC_PACK(5 , 0 , 438), VLC_PACK(0 , 0 , 2), VLC_PACK(0 , 1 , 3),
+ VLC_PACK(5 , 0 , 437), VLC_PACK(5 , 0 , 93), VLC_PACK(5 , 0 , 436), VLC_PACK(5 , 0 , 435), VLC_PACK(0 , 0 , 2), VLC_PACK(0 , 1 , 3),
+ VLC_PACK(5 , 0 , 434), VLC_PACK(5 , 0 , 374), VLC_PACK(5 , 0 , 373), VLC_PACK(5 , 0 , 123), VLC_PACK(0 , 0 , 2), VLC_PACK(0 , 1 , 3),
+ VLC_PACK(5 , 0 , 433), VLC_PACK(5 , 0 , 432), VLC_PACK(5 , 0 , 431), VLC_PACK(5 , 0 , 430), VLC_PACK(0 , 0 , 2), VLC_PACK(3 , 1 , 0),
+ VLC_PACK(5 , 0 , 228), VLC_PACK(5 , 0 , 150), VLC_PACK(5 , 0 , 221), VLC_PACK(5 , 0 , 251), VLC_PACK(5 , 0 , 250), VLC_PACK(5 , 0 , 249),
+ VLC_PACK(0 , 0 , 2), VLC_PACK(0 , 1 , 3), VLC_PACK(5 , 0 , 189), VLC_PACK(5 , 0 , 220), VLC_PACK(5 , 0 , 157), VLC_PACK(5 , 0 , 125),
+ VLC_PACK(0 , 0 , 2), VLC_PACK(0 , 1 , 3), VLC_PACK(5 , 0 , 188), VLC_PACK(5 , 0 , 156), VLC_PACK(5 , 0 , 61), VLC_PACK(5 , 0 , 29),
+ VLC_PACK(0 , 0 , 2), VLC_PACK(0 , 1 , 3), VLC_PACK(5 , 0 , 92), VLC_PACK(5 , 0 , 60), VLC_PACK(5 , 0 , 91), VLC_PACK(5 , 0 , 59),
+ VLC_PACK(0 , 0 , 2), VLC_PACK(0 , 1 , 3), VLC_PACK(5 , 0 , 372), VLC_PACK(5 , 0 , 311), VLC_PACK(5 , 0 , 429), VLC_PACK(5 , 0 , 503),
+ VLC_PACK(0 , 0 , 2), VLC_PACK(3 , 1 , 0), VLC_PACK(5 , 0 , 58), VLC_PACK(5 , 0 , 26), VLC_PACK(7 , 0 , 158), VLC_PACK(7 , 0 , 126),
+ VLC_PACK(0 , 0 , 2), VLC_PACK(0 , 1 , 3), VLC_PACK(5 , 0 , 248), VLC_PACK(7 , 0 , 30), VLC_PACK(5 , 0 , 219), VLC_PACK(5 , 0 , 218),
+ VLC_PACK(0 , 0 , 2), VLC_PACK(0 , 1 , 3), VLC_PACK(5 , 0 , 217), VLC_PACK(5 , 0 , 245), VLC_PACK(5 , 0 , 375), VLC_PACK(5 , 0 , 124),
+ VLC_PACK(0 , 0 , 2), VLC_PACK(0 , 1 , 3), VLC_PACK(5 , 0 , 28), VLC_PACK(5 , 0 , 155), VLC_PACK(5 , 0 , 154), VLC_PACK(5 , 0 , 122),
+ VLC_PACK(0 , 0 , 2), VLC_PACK(0 , 1 , 3), VLC_PACK(5 , 0 , 310), VLC_PACK(5 , 0 , 27), VLC_PACK(5 , 0 , 90), VLC_PACK(5 , 0 , 121),
+ VLC_PACK(0 , 0 , 2), VLC_PACK(3 , 1 , 0), VLC_PACK(5 , 0 , 502), VLC_PACK(5 , 0 , 371), VLC_PACK(7 , 0 , 439), VLC_PACK(7 , 0 , 438),
+ VLC_PACK(0 , 0 , 6), VLC_PACK(0 , 1 , 7), VLC_PACK(0 , 0 , 27), VLC_PACK(0 , 1 , 28), VLC_PACK(0 , 1 , 48), VLC_PACK(0 , 2 , 68),
+ VLC_PACK(5 , 0 , 247), VLC_PACK(5 , 0 , 246), VLC_PACK(5 , 0 , 244), VLC_PACK(7 , 0 , 221), VLC_PACK(0 , 0 , 2), VLC_PACK(0 , 1 , 3),
+ VLC_PACK(5 , 0 , 187), VLC_PACK(5 , 0 , 216), VLC_PACK(5 , 0 , 186), VLC_PACK(5 , 0 , 185), VLC_PACK(0 , 0 , 2), VLC_PACK(0 , 1 , 3),
+ VLC_PACK(5 , 0 , 213), VLC_PACK(5 , 0 , 237), VLC_PACK(5 , 0 , 153), VLC_PACK(5 , 0 , 184), VLC_PACK(0 , 0 , 2), VLC_PACK(2 , 1 , 3),
+ VLC_PACK(5 , 0 , 89), VLC_PACK(5 , 0 , 152), VLC_PACK(3 , 1 , 0), VLC_PACK(7 , 0 , 218), VLC_PACK(5 , 0 , 428), VLC_PACK(7 , 0 , 253),
+ VLC_PACK(7 , 0 , 435), VLC_PACK(7 , 0 , 432), VLC_PACK(7 , 0 , 431), VLC_PACK(0 , 0 , 2), VLC_PACK(0 , 1 , 3), VLC_PACK(5 , 0 , 243),
+ VLC_PACK(5 , 0 , 242), VLC_PACK(5 , 0 , 215), VLC_PACK(5 , 0 , 214), VLC_PACK(0 , 0 , 2), VLC_PACK(0 , 1 , 3), VLC_PACK(5 , 0 , 236),
+ VLC_PACK(5 , 0 , 233), VLC_PACK(5 , 0 , 183), VLC_PACK(5 , 0 , 182), VLC_PACK(0 , 0 , 2), VLC_PACK(2 , 1 , 3), VLC_PACK(5 , 0 , 151),
+ VLC_PACK(5 , 0 , 181), VLC_PACK(3 , 1 , 0), VLC_PACK(7 , 0 , 370), VLC_PACK(7 , 0 , 188), VLC_PACK(7 , 0 , 430), VLC_PACK(7 , 0 , 429),
+ VLC_PACK(0 , 0 , 2), VLC_PACK(0 , 1 , 3), VLC_PACK(5 , 0 , 241), VLC_PACK(7 , 0 , 426), VLC_PACK(5 , 0 , 240), VLC_PACK(5 , 0 , 239),
+ VLC_PACK(0 , 0 , 2), VLC_PACK(0 , 1 , 3), VLC_PACK(7 , 0 , 220), VLC_PACK(7 , 0 , 157), VLC_PACK(5 , 0 , 212), VLC_PACK(5 , 0 , 235),
+ VLC_PACK(0 , 0 , 2), VLC_PACK(2 , 1 , 3), VLC_PACK(5 , 0 , 180), VLC_PACK(5 , 0 , 211), VLC_PACK(3 , 1 , 0), VLC_PACK(7 , 0 , 405),
+ VLC_PACK(7 , 0 , 406), VLC_PACK(7 , 0 , 425), VLC_PACK(7 , 0 , 424), VLC_PACK(0 , 0 , 6), VLC_PACK(0 , 1 , 7), VLC_PACK(0 , 0 , 18),
+ VLC_PACK(0 , 1 , 19), VLC_PACK(0 , 1 , 27), VLC_PACK(2 , 2 , 35), VLC_PACK(5 , 0 , 238), VLC_PACK(7 , 0 , 252), VLC_PACK(7 , 0 , 125),
+ VLC_PACK(7 , 0 , 418), VLC_PACK(0 , 0 , 2), VLC_PACK(0 , 1 , 3), VLC_PACK(5 , 0 , 234), VLC_PACK(5 , 0 , 232), VLC_PACK(5 , 0 , 210),
+ VLC_PACK(5 , 0 , 231), VLC_PACK(0 , 0 , 2), VLC_PACK(3 , 1 , 0), VLC_PACK(7 , 0 , 404), VLC_PACK(7 , 0 , 403), VLC_PACK(7 , 0 , 189),
+ VLC_PACK(7 , 0 , 421), VLC_PACK(7 , 0 , 417), VLC_PACK(7 , 0 , 416), VLC_PACK(0 , 0 , 2), VLC_PACK(2 , 1 , 3), VLC_PACK(7 , 0 , 251),
+ VLC_PACK(7 , 0 , 93), VLC_PACK(3 , 1 , 0), VLC_PACK(5 , 0 , 229), VLC_PACK(5 , 0 , 230), VLC_PACK(7 , 0 , 415), VLC_PACK(7 , 0 , 414),
+ VLC_PACK(0 , 0 , 2), VLC_PACK(2 , 1 , 3), VLC_PACK(7 , 0 , 61), VLC_PACK(7 , 0 , 29), VLC_PACK(3 , 1 , 0), VLC_PACK(7 , 0 , 219),
+ VLC_PACK(7 , 0 , 250), VLC_PACK(2 , 2 , 4), VLC_PACK(2 , 1 , 7), VLC_PACK(7 , 0 , 374), VLC_PACK(7 , 0 , 375), VLC_PACK(3 , 2 , 0),
+ VLC_PACK(3 , 2 , 0), VLC_PACK(7 , 0 , 409), VLC_PACK(7 , 0 , 371), VLC_PACK(3 , 1 , 0), VLC_PACK(7 , 0 , 372), VLC_PACK(7 , 0 , 373),
+ VLC_PACK(0 , 1 , 4), VLC_PACK(0 , 0 , 24), VLC_PACK(7 , 0 , 94), VLC_PACK(7 , 0 , 62), VLC_PACK(0 , 1 , 4), VLC_PACK(0 , 0 , 18),
+ VLC_PACK(7 , 0 , 434), VLC_PACK(7 , 0 , 433), VLC_PACK(0 , 1 , 4), VLC_PACK(0 , 0 , 12), VLC_PACK(7 , 0 , 423), VLC_PACK(7 , 0 , 422),
+ VLC_PACK(1 , 1 , 4), VLC_PACK(0 , 0 , 6), VLC_PACK(7 , 0 , 413), VLC_PACK(7 , 0 , 412), VLC_PACK(3 , 1 , 0), VLC_PACK(7 , 0 , 408),
+ VLC_PACK(7 , 0 , 407), VLC_PACK(7 , 0 , 411), VLC_PACK(7 , 0 , 410), VLC_PACK(7 , 0 , 420), VLC_PACK(7 , 0 , 419), VLC_PACK(7 , 0 , 428),
+ VLC_PACK(7 , 0 , 427), VLC_PACK(7 , 0 , 437), VLC_PACK(7 , 0 , 436), VLC_PACK(7 , 0 , 222), VLC_PACK(7 , 0 , 190), VLC_PACK(5 , 0 , 255),
+ VLC_PACK(5 , 0 , 253), VLC_PACK(0 , 0 , 14), VLC_PACK(0 , 1 , 15), VLC_PACK(0 , 0 , 44), VLC_PACK(0 , 1 , 45), VLC_PACK(0 , 1 , 74),
+ VLC_PACK(0 , 2 , 103), VLC_PACK(0 , 1 , 230), VLC_PACK(0 , 0 , 256), VLC_PACK(5 , 0 , 190), VLC_PACK(7 , 0 , 254), VLC_PACK(4 , 3 , 508),
+ VLC_PACK(4 , 3 , 509), VLC_PACK(4 , 3 , 444), VLC_PACK(4 , 3 , 445), VLC_PACK(5 , 0 , 252), VLC_PACK(5 , 0 , 158), VLC_PACK(5 , 0 , 221),
+ VLC_PACK(5 , 0 , 62), VLC_PACK(0 , 0 , 2), VLC_PACK(0 , 1 , 3), VLC_PACK(5 , 0 , 251), VLC_PACK(5 , 0 , 189), VLC_PACK(5 , 0 , 250),
+ VLC_PACK(5 , 0 , 249), VLC_PACK(0 , 0 , 2), VLC_PACK(0 , 1 , 3), VLC_PACK(5 , 0 , 248), VLC_PACK(5 , 0 , 219), VLC_PACK(5 , 0 , 247),
+ VLC_PACK(5 , 0 , 246), VLC_PACK(0 , 0 , 2), VLC_PACK(0 , 1 , 3), VLC_PACK(5 , 0 , 245), VLC_PACK(5 , 0 , 244), VLC_PACK(5 , 0 , 243),
+ VLC_PACK(5 , 0 , 216), VLC_PACK(0 , 0 , 2), VLC_PACK(0 , 1 , 3), VLC_PACK(5 , 0 , 242), VLC_PACK(5 , 0 , 241), VLC_PACK(5 , 0 , 238),
+ VLC_PACK(5 , 0 , 237), VLC_PACK(0 , 0 , 2), VLC_PACK(3 , 1 , 0), VLC_PACK(5 , 0 , 236), VLC_PACK(5 , 0 , 152), VLC_PACK(5 , 0 , 126),
+ VLC_PACK(5 , 0 , 94), VLC_PACK(5 , 0 , 30), VLC_PACK(5 , 0 , 439), VLC_PACK(0 , 0 , 2), VLC_PACK(0 , 1 , 3), VLC_PACK(5 , 0 , 438),
+ VLC_PACK(5 , 0 , 437), VLC_PACK(5 , 0 , 220), VLC_PACK(5 , 0 , 157), VLC_PACK(0 , 0 , 2), VLC_PACK(0 , 1 , 3), VLC_PACK(5 , 0 , 188),
+ VLC_PACK(5 , 0 , 93), VLC_PACK(5 , 0 , 218), VLC_PACK(5 , 0 , 156), VLC_PACK(0 , 0 , 2), VLC_PACK(0 , 1 , 3), VLC_PACK(5 , 0 , 217),
+ VLC_PACK(5 , 0 , 187), VLC_PACK(5 , 0 , 186), VLC_PACK(5 , 0 , 155), VLC_PACK(0 , 0 , 2), VLC_PACK(0 , 1 , 3), VLC_PACK(5 , 0 , 240),
+ VLC_PACK(5 , 0 , 239), VLC_PACK(5 , 0 , 214), VLC_PACK(5 , 0 , 213), VLC_PACK(0 , 0 , 2), VLC_PACK(3 , 1 , 0), VLC_PACK(5 , 0 , 122),
+ VLC_PACK(5 , 0 , 27), VLC_PACK(7 , 0 , 158), VLC_PACK(7 , 0 , 126), VLC_PACK(0 , 0 , 2), VLC_PACK(0 , 1 , 3), VLC_PACK(5 , 0 , 436),
+ VLC_PACK(7 , 0 , 30), VLC_PACK(5 , 0 , 125), VLC_PACK(5 , 0 , 435), VLC_PACK(0 , 0 , 2), VLC_PACK(0 , 1 , 3), VLC_PACK(5 , 0 , 432),
+ VLC_PACK(5 , 0 , 431), VLC_PACK(5 , 0 , 61), VLC_PACK(5 , 0 , 29), VLC_PACK(0 , 0 , 2), VLC_PACK(0 , 1 , 3), VLC_PACK(5 , 0 , 124),
+ VLC_PACK(5 , 0 , 92), VLC_PACK(5 , 0 , 60), VLC_PACK(5 , 0 , 28), VLC_PACK(0 , 0 , 2), VLC_PACK(0 , 1 , 3), VLC_PACK(5 , 0 , 215),
+ VLC_PACK(5 , 0 , 154), VLC_PACK(5 , 0 , 185), VLC_PACK(5 , 0 , 184), VLC_PACK(0 , 0 , 2), VLC_PACK(3 , 1 , 0), VLC_PACK(5 , 0 , 366),
+ VLC_PACK(5 , 0 , 410), VLC_PACK(7 , 0 , 439), VLC_PACK(7 , 0 , 438), VLC_PACK(0 , 0 , 6), VLC_PACK(0 , 1 , 7), VLC_PACK(0 , 0 , 27),
+ VLC_PACK(0 , 1 , 28), VLC_PACK(0 , 1 , 48), VLC_PACK(0 , 2 , 68), VLC_PACK(5 , 0 , 434), VLC_PACK(5 , 0 , 433), VLC_PACK(5 , 0 , 430),
+ VLC_PACK(7 , 0 , 221), VLC_PACK(0 , 0 , 2), VLC_PACK(0 , 1 , 3), VLC_PACK(5 , 0 , 375), VLC_PACK(5 , 0 , 374), VLC_PACK(5 , 0 , 373),
+ VLC_PACK(5 , 0 , 426), VLC_PACK(0 , 0 , 2), VLC_PACK(0 , 1 , 3), VLC_PACK(5 , 0 , 372), VLC_PACK(5 , 0 , 420), VLC_PACK(5 , 0 , 123),
+ VLC_PACK(5 , 0 , 91), VLC_PACK(0 , 0 , 2), VLC_PACK(2 , 1 , 3), VLC_PACK(5 , 0 , 153), VLC_PACK(5 , 0 , 59), VLC_PACK(3 , 1 , 0),
+ VLC_PACK(7 , 0 , 218), VLC_PACK(5 , 0 , 409), VLC_PACK(7 , 0 , 253), VLC_PACK(7 , 0 , 435), VLC_PACK(7 , 0 , 432), VLC_PACK(7 , 0 , 431),
+ VLC_PACK(0 , 0 , 2), VLC_PACK(0 , 1 , 3), VLC_PACK(5 , 0 , 429), VLC_PACK(5 , 0 , 428), VLC_PACK(5 , 0 , 425), VLC_PACK(5 , 0 , 424),
+ VLC_PACK(0 , 0 , 2), VLC_PACK(0 , 1 , 3), VLC_PACK(5 , 0 , 419), VLC_PACK(5 , 0 , 418), VLC_PACK(5 , 0 , 311), VLC_PACK(5 , 0 , 371),
+ VLC_PACK(0 , 0 , 2), VLC_PACK(2 , 1 , 3), VLC_PACK(5 , 0 , 310), VLC_PACK(5 , 0 , 370), VLC_PACK(3 , 1 , 0), VLC_PACK(7 , 0 , 370),
+ VLC_PACK(7 , 0 , 188), VLC_PACK(7 , 0 , 430), VLC_PACK(7 , 0 , 429), VLC_PACK(0 , 0 , 2), VLC_PACK(0 , 1 , 3), VLC_PACK(5 , 0 , 427),
+ VLC_PACK(7 , 0 , 426), VLC_PACK(5 , 0 , 423), VLC_PACK(5 , 0 , 422), VLC_PACK(0 , 0 , 2), VLC_PACK(0 , 1 , 3), VLC_PACK(7 , 0 , 220),
+ VLC_PACK(7 , 0 , 157), VLC_PACK(5 , 0 , 417), VLC_PACK(5 , 0 , 416), VLC_PACK(0 , 0 , 2), VLC_PACK(2 , 1 , 3), VLC_PACK(5 , 0 , 369),
+ VLC_PACK(5 , 0 , 368), VLC_PACK(3 , 1 , 0), VLC_PACK(7 , 0 , 405), VLC_PACK(7 , 0 , 406), VLC_PACK(7 , 0 , 425), VLC_PACK(7 , 0 , 424),
+ VLC_PACK(0 , 0 , 6), VLC_PACK(0 , 1 , 7), VLC_PACK(0 , 0 , 18), VLC_PACK(0 , 1 , 19), VLC_PACK(0 , 1 , 27), VLC_PACK(2 , 2 , 35),
+ VLC_PACK(5 , 0 , 421), VLC_PACK(7 , 0 , 252), VLC_PACK(7 , 0 , 125), VLC_PACK(7 , 0 , 418), VLC_PACK(0 , 0 , 2), VLC_PACK(0 , 1 , 3),
+ VLC_PACK(5 , 0 , 415), VLC_PACK(5 , 0 , 414), VLC_PACK(5 , 0 , 367), VLC_PACK(5 , 0 , 413), VLC_PACK(0 , 0 , 2), VLC_PACK(3 , 1 , 0),
+ VLC_PACK(7 , 0 , 404), VLC_PACK(7 , 0 , 403), VLC_PACK(7 , 0 , 189), VLC_PACK(7 , 0 , 421), VLC_PACK(7 , 0 , 417), VLC_PACK(7 , 0 , 416),
+ VLC_PACK(0 , 0 , 2), VLC_PACK(2 , 1 , 3), VLC_PACK(7 , 0 , 251), VLC_PACK(7 , 0 , 93), VLC_PACK(3 , 1 , 0), VLC_PACK(5 , 0 , 411),
+ VLC_PACK(5 , 0 , 412), VLC_PACK(7 , 0 , 415), VLC_PACK(7 , 0 , 414), VLC_PACK(0 , 0 , 2), VLC_PACK(2 , 1 , 3), VLC_PACK(7 , 0 , 61),
+ VLC_PACK(7 , 0 , 29), VLC_PACK(3 , 1 , 0), VLC_PACK(7 , 0 , 219), VLC_PACK(7 , 0 , 250), VLC_PACK(2 , 2 , 4), VLC_PACK(2 , 1 , 7),
+ VLC_PACK(7 , 0 , 374), VLC_PACK(7 , 0 , 375), VLC_PACK(3 , 2 , 0), VLC_PACK(3 , 2 , 0), VLC_PACK(7 , 0 , 409), VLC_PACK(7 , 0 , 371),
+ VLC_PACK(3 , 1 , 0), VLC_PACK(7 , 0 , 372), VLC_PACK(7 , 0 , 373), VLC_PACK(0 , 1 , 4), VLC_PACK(0 , 0 , 24), VLC_PACK(7 , 0 , 94),
+ VLC_PACK(7 , 0 , 62), VLC_PACK(0 , 1 , 4), VLC_PACK(0 , 0 , 18), VLC_PACK(7 , 0 , 434), VLC_PACK(7 , 0 , 433), VLC_PACK(0 , 1 , 4),
+ VLC_PACK(0 , 0 , 12), VLC_PACK(7 , 0 , 423), VLC_PACK(7 , 0 , 422), VLC_PACK(1 , 1 , 4), VLC_PACK(0 , 0 , 6), VLC_PACK(7 , 0 , 413),
+ VLC_PACK(7 , 0 , 412), VLC_PACK(3 , 1 , 0), VLC_PACK(7 , 0 , 408), VLC_PACK(7 , 0 , 407), VLC_PACK(7 , 0 , 411), VLC_PACK(7 , 0 , 410),
+ VLC_PACK(7 , 0 , 420), VLC_PACK(7 , 0 , 419), VLC_PACK(7 , 0 , 428), VLC_PACK(7 , 0 , 427), VLC_PACK(7 , 0 , 437), VLC_PACK(7 , 0 , 436),
+ VLC_PACK(7 , 0 , 222), VLC_PACK(7 , 0 , 190), VLC_PACK(4 , 0 , 0), VLC_PACK(5 , 0 , 1), VLC_PACK(5 , 0 , 2), VLC_PACK(5 , 0 , 3),
+ VLC_PACK(5 , 0 , 4), VLC_PACK(5 , 0 , 5), VLC_PACK(1 , 5 , 1), VLC_PACK(5 , 0 , 6), VLC_PACK(5 , 0 , 7), VLC_PACK(5 , 0 , 8),
+ VLC_PACK(5 , 0 , 9), VLC_PACK(5 , 0 , 10), VLC_PACK(5 , 0 , 11), VLC_PACK(1 , 3 , 1), VLC_PACK(5 , 0 , 12), VLC_PACK(5 , 0 , 13),
+ VLC_PACK(5 , 0 , 14), VLC_PACK(5 , 0 , 15), VLC_PACK(5 , 1 , 16), VLC_PACK(5 , 0 , 1), VLC_PACK(5 , 0 , 2), VLC_PACK(5 , 0 , 3),
+ VLC_PACK(5 , 0 , 4), VLC_PACK(5 , 0 , 5), VLC_PACK(5 , 0 , 6), VLC_PACK(1 , 5 , 1), VLC_PACK(5 , 0 , 7), VLC_PACK(5 , 0 , 8),
+ VLC_PACK(5 , 0 , 9), VLC_PACK(5 , 0 , 10), VLC_PACK(5 , 0 , 11), VLC_PACK(5 , 0 , 12), VLC_PACK(1 , 2 , 1), VLC_PACK(5 , 0 , 13),
+ VLC_PACK(5 , 0 , 14), VLC_PACK(5 , 0 , 15), VLC_PACK(5 , 1 , 16), VLC_PACK(4 , 0 , 1), VLC_PACK(4 , 1 , 2), VLC_PACK(4 , 1 , 4),
+ VLC_PACK(0 , 0 , 2),
+};
+
+
+struct context_MPEG4_s {
+ object_context_p obj_context; /* back reference */
+
+ uint32_t profile;
+
+ /* Picture parameters */
+ VAPictureParameterBufferMPEG4 *pic_params;
+ object_surface_p forward_ref_surface;
+ object_surface_p backward_ref_surface;
+
+ uint32_t display_picture_width; /* in pixels */
+ uint32_t display_picture_height; /* in pixels */
+
+ uint32_t coded_picture_width; /* in pixels */
+ uint32_t coded_picture_height; /* in pixels */
+
+ uint32_t picture_width_mb; /* in macroblocks */
+ uint32_t picture_height_mb; /* in macroblocks */
+ uint32_t size_mb; /* in macroblocks */
+
+ uint32_t FEControl;
+ uint32_t FE_SPS0;
+ uint32_t FE_VOP_PPS0;
+ uint32_t FE_VOP_SPS0;
+ uint32_t FE_PICSH_PPS0;
+
+ uint32_t BE_SPS0;
+ uint32_t BE_SPS1;
+ uint32_t BE_VOP_PPS0;
+ uint32_t BE_VOP_SPS0;
+ uint32_t BE_VOP_SPS1;
+ uint32_t BE_PICSH_PPS0;
+
+ /* IQ Matrix */
+ uint32_t qmatrix_data[MAX_QUANT_TABLES][16];
+ int load_non_intra_quant_mat;
+ int load_intra_quant_mat;
+
+ /* Split buffers */
+ int split_buffer_pending;
+
+ /* List of VASliceParameterBuffers */
+ object_buffer_p *slice_param_list;
+ int slice_param_list_size;
+ int slice_param_list_idx;
+
+ /* VLC packed data */
+ struct psb_buffer_s vlc_packed_table;
+
+ /* FE state buffer */
+ struct psb_buffer_s FE_state_buffer;
+
+ /* CoLocated buffers */
+ struct psb_buffer_s *colocated_buffers;
+ int colocated_buffers_size;
+ int colocated_buffers_idx;
+
+ uint32_t *p_slice_params; /* pointer to ui32SliceParams in CMD_HEADER */
+};
+
+typedef struct context_MPEG4_s *context_MPEG4_p;
+
+#define INIT_CONTEXT_MPEG4 context_MPEG4_p ctx = (context_MPEG4_p) obj_context->format_data;
+
+#define SURFACE(id) ((object_surface_p) object_heap_lookup( &ctx->obj_context->driver_data->surface_heap, id ))
+
+static const char *psb__debug_picture_coding_str(unsigned char vop_coding_type)
+{
+ switch (vop_coding_type) {
+ case PICTURE_CODING_I:
+ return ("PICTURE_CODING_I");
+ case PICTURE_CODING_P:
+ return ("PICTURE_CODING_P");
+ case PICTURE_CODING_B:
+ return ("PICTURE_CODING_B");
+ case PICTURE_CODING_S:
+ return ("PICTURE_CODING_S");
+ }
+ return ("UNKNOWN!!!");
+}
+
+
+static void psb_MPEG4_QueryConfigAttributes(
+ VAProfile profile,
+ VAEntrypoint entrypoint,
+ VAConfigAttrib *attrib_list,
+ int num_attribs)
+{
+ /* No MPEG4 specific attributes */
+}
+
+static VAStatus psb_MPEG4_ValidateConfig(
+ object_config_p obj_config)
+{
+ int i;
+ /* Check all attributes */
+ for (i = 0; i < obj_config->attrib_count; i++) {
+ switch (obj_config->attrib_list[i].type) {
+ case VAConfigAttribRTFormat:
+ /* Ignore */
+ break;
+
+ default:
+ return VA_STATUS_ERROR_ATTR_NOT_SUPPORTED;
+ }
+ }
+
+ return VA_STATUS_SUCCESS;
+}
+
+static VAStatus psb__MPEG4_check_legal_picture(object_context_p obj_context, object_config_p obj_config)
+{
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+
+ if (NULL == obj_context) {
+ vaStatus = VA_STATUS_ERROR_INVALID_CONTEXT;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ if (NULL == obj_config) {
+ vaStatus = VA_STATUS_ERROR_INVALID_CONFIG;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ /* MSVDX decode capability for MPEG4:
+ * SP@L3
+ * ASP@L5
+ *
+ * Refer to the "MSVDX MPEG4 decode capability" table of "Poulsbo Media Software Overview".
+ */
+ switch (obj_config->profile) {
+ case VAProfileMPEG4Simple:
+ case VAProfileMPEG4AdvancedSimple:
+ if ((obj_context->picture_width <= 0) || (obj_context->picture_height <= 0)) {
+ vaStatus = VA_STATUS_ERROR_RESOLUTION_NOT_SUPPORTED;
+ }
+ break;
+
+ default:
+ vaStatus = VA_STATUS_ERROR_UNSUPPORTED_PROFILE;
+ break;
+ }
+
+ return vaStatus;
+}
+
+static void psb_MPEG4_DestroyContext(object_context_p obj_context);
+
+static VAStatus psb_MPEG4_CreateContext(
+ object_context_p obj_context,
+ object_config_p obj_config)
+{
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ context_MPEG4_p ctx;
+ /* Validate flag */
+ /* Validate picture dimensions */
+ vaStatus = psb__MPEG4_check_legal_picture(obj_context, obj_config);
+ if (VA_STATUS_SUCCESS != vaStatus) {
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ ctx = (context_MPEG4_p) calloc(1, sizeof(struct context_MPEG4_s));
+ if (NULL == ctx) {
+ vaStatus = VA_STATUS_ERROR_ALLOCATION_FAILED;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ obj_context->format_data = (void*) ctx;
+ ctx->obj_context = obj_context;
+ ctx->pic_params = NULL;
+ ctx->load_non_intra_quant_mat = FALSE;
+ ctx->load_intra_quant_mat = FALSE;
+
+ ctx->split_buffer_pending = FALSE;
+
+ ctx->slice_param_list_size = 8;
+ ctx->slice_param_list = (object_buffer_p*) calloc(1, sizeof(object_buffer_p) * ctx->slice_param_list_size);
+ ctx->slice_param_list_idx = 0;
+
+ if (NULL == ctx->slice_param_list) {
+ vaStatus = VA_STATUS_ERROR_ALLOCATION_FAILED;
+ DEBUG_FAILURE;
+ }
+
+ ctx->colocated_buffers_size = obj_context->num_render_targets;
+ ctx->colocated_buffers_idx = 0;
+ ctx->colocated_buffers = (psb_buffer_p) calloc(1, sizeof(struct psb_buffer_s) * ctx->colocated_buffers_size);
+ if (NULL == ctx->colocated_buffers) {
+ vaStatus = VA_STATUS_ERROR_ALLOCATION_FAILED;
+ DEBUG_FAILURE;
+ }
+
+ switch (obj_config->profile) {
+ case VAProfileMPEG4Simple:
+ psb__information_message("MPEG4_PROFILE_SIMPLE\n");
+ ctx->profile = MPEG4_PROFILE_SIMPLE;
+ break;
+
+ case VAProfileMPEG4AdvancedSimple:
+ psb__information_message("MPEG4_PROFILE_ASP\n");
+ ctx->profile = MPEG4_PROFILE_ASP;
+ break;
+
+ default:
+ ASSERT(0 == 1);
+ vaStatus = VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ // TODO
+
+ if (vaStatus == VA_STATUS_SUCCESS) {
+ vaStatus = psb_buffer_create(obj_context->driver_data,
+ FE_STATE_BUFFER_SIZE,
+ psb_bt_vpu_only,
+ &ctx->FE_state_buffer);
+ DEBUG_FAILURE;
+ }
+
+ if (vaStatus == VA_STATUS_SUCCESS) {
+ vaStatus = psb_buffer_create(obj_context->driver_data,
+ sizeof(gaui16mpeg4VlcTableDataPacked),
+ psb_bt_cpu_vpu,
+ &ctx->vlc_packed_table);
+ DEBUG_FAILURE;
+ }
+ if (vaStatus == VA_STATUS_SUCCESS) {
+ void *vlc_packed_data_address;
+ if (0 == psb_buffer_map(&ctx->vlc_packed_table, &vlc_packed_data_address)) {
+ memcpy(vlc_packed_data_address, gaui16mpeg4VlcTableDataPacked, sizeof(gaui16mpeg4VlcTableDataPacked));
+ psb_buffer_unmap(&ctx->vlc_packed_table);
+ } else {
+ vaStatus = VA_STATUS_ERROR_ALLOCATION_FAILED;
+ DEBUG_FAILURE;
+ }
+ }
+
+ if (vaStatus != VA_STATUS_SUCCESS) {
+ psb_MPEG4_DestroyContext(obj_context);
+ }
+
+ return vaStatus;
+}
+
+static void psb_MPEG4_DestroyContext(
+ object_context_p obj_context)
+{
+ INIT_CONTEXT_MPEG4
+ int i;
+
+ psb_buffer_destroy(&ctx->vlc_packed_table);
+ psb_buffer_destroy(&ctx->FE_state_buffer);
+
+ if (ctx->pic_params) {
+ free(ctx->pic_params);
+ ctx->pic_params = NULL;
+ }
+
+ if (ctx->colocated_buffers) {
+ for (i = 0; i < ctx->colocated_buffers_idx; ++i)
+ psb_buffer_destroy(&(ctx->colocated_buffers[i]));
+
+ free(ctx->colocated_buffers);
+ ctx->colocated_buffers = NULL;
+ }
+ if (ctx->slice_param_list) {
+ free(ctx->slice_param_list);
+ ctx->slice_param_list = NULL;
+ }
+
+ free(obj_context->format_data);
+ obj_context->format_data = NULL;
+}
+
+static VAStatus psb__MPEG4_allocate_colocated_buffer(context_MPEG4_p ctx, object_surface_p obj_surface, uint32_t size)
+{
+ psb_surface_p surface = obj_surface->psb_surface;
+
+ if (!GET_SURFACE_INFO_colocated_index(surface)) {
+ VAStatus vaStatus;
+ psb_buffer_p buf;
+ int index = ctx->colocated_buffers_idx;
+ if (index >= ctx->colocated_buffers_size) {
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+ buf = &(ctx->colocated_buffers[index]);
+ vaStatus = psb_buffer_create(ctx->obj_context->driver_data, size, psb_bt_vpu_only, buf);
+ if (VA_STATUS_SUCCESS != vaStatus) {
+ return vaStatus;
+ }
+ ctx->colocated_buffers_idx++;
+ SET_SURFACE_INFO_colocated_index(surface, index + 1); /* 0 means unset, index is offset by 1 */
+ }
+ return VA_STATUS_SUCCESS;
+}
+
+static psb_buffer_p psb__MPEG4_lookup_colocated_buffer(context_MPEG4_p ctx, psb_surface_p surface)
+{
+ int index = GET_SURFACE_INFO_colocated_index(surface);
+ if (!index) {
+ return NULL;
+ }
+ return &(ctx->colocated_buffers[index-1]); /* 0 means unset, index is offset by 1 */
+}
+
+static VAStatus psb__MPEG4_process_picture_param(context_MPEG4_p ctx, object_buffer_p obj_buffer)
+{
+ VAStatus vaStatus;
+ ASSERT(obj_buffer->type == VAPictureParameterBufferType);
+ ASSERT(obj_buffer->num_elements == 1);
+ ASSERT(obj_buffer->size == sizeof(VAPictureParameterBufferMPEG4));
+
+ if ((obj_buffer->num_elements != 1) ||
+ (obj_buffer->size != sizeof(VAPictureParameterBufferMPEG4))) {
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ /* Transfer ownership of VAPictureParameterBufferMPEG4 data */
+ if (ctx->pic_params) {
+ free(ctx->pic_params);
+ }
+ ctx->pic_params = (VAPictureParameterBufferMPEG4 *) obj_buffer->buffer_data;
+ obj_buffer->buffer_data = NULL;
+ obj_buffer->size = 0;
+
+
+ /* Lookup surfaces for backward/forward references */
+ /* Lookup surfaces for backward/forward references */
+ switch (ctx->pic_params->vop_fields.bits.vop_coding_type) {
+ case PICTURE_CODING_I:
+ ctx->forward_ref_surface = NULL;
+ ctx->backward_ref_surface = NULL;
+ psb__information_message("PICTURE_CODING_I\nTarget surface = %08x (%08x)\n", ctx->obj_context->current_render_target->psb_surface, ctx->obj_context->current_render_target->base.id);
+ psb__information_message("Forward ref = NULL\n");
+ psb__information_message("Backward ref = NULL\n");
+ break;
+
+ case PICTURE_CODING_P:
+ ctx->forward_ref_surface = SURFACE(ctx->pic_params->forward_reference_picture);
+ ctx->backward_ref_surface = NULL;
+ if (NULL == ctx->forward_ref_surface) {
+ return VA_STATUS_ERROR_INVALID_SURFACE;
+ }
+ psb__information_message("PICTURE_CODING_P\nTarget surface = %08x (%08x)\n", ctx->obj_context->current_render_target->psb_surface, ctx->obj_context->current_render_target->base.id);
+ psb__information_message("Forward ref = %08x (%08x)\n", ctx->forward_ref_surface->psb_surface, ctx->pic_params->forward_reference_picture);
+ psb__information_message("Backward ref = NULL\n");
+ break;
+
+ case PICTURE_CODING_B:
+ ctx->forward_ref_surface = SURFACE(ctx->pic_params->forward_reference_picture);
+ ctx->backward_ref_surface = SURFACE(ctx->pic_params->backward_reference_picture);
+ if ((NULL == ctx->forward_ref_surface) ||
+ (NULL == ctx->backward_ref_surface)) {
+ return VA_STATUS_ERROR_INVALID_SURFACE;
+ }
+ psb__information_message("PICTURE_CODING_B\nTarget surface = %08x (%08x)\n", ctx->obj_context->current_render_target->psb_surface, ctx->obj_context->current_render_target->base.id);
+ psb__information_message("Forward ref = %08x (%08x)\n", ctx->forward_ref_surface->psb_surface, ctx->pic_params->forward_reference_picture);
+ psb__information_message("Backward ref = %08x (%08x)\n", ctx->backward_ref_surface->psb_surface, ctx->pic_params->backward_reference_picture);
+ break;
+
+ case PICTURE_CODING_S:
+ ctx->forward_ref_surface = SURFACE(ctx->pic_params->forward_reference_picture);
+ ctx->backward_ref_surface = SURFACE(ctx->pic_params->backward_reference_picture);
+ psb__information_message("PICTURE_CODING_S\nTarget surface = %08x (%08x)\n", ctx->obj_context->current_render_target->psb_surface, ctx->obj_context->current_render_target->base.id);
+ psb__information_message("Forward ref = %08x (%08x)\n", ctx->forward_ref_surface ? ctx->forward_ref_surface->psb_surface : 0, ctx->pic_params->forward_reference_picture);
+ psb__information_message("Backward ref = %08x (%08x)\n", ctx->backward_ref_surface ? ctx->backward_ref_surface->psb_surface : 0, ctx->pic_params->backward_reference_picture);
+ break;
+
+ default:
+ psb__error_message("Unhandled MPEG4 vop_coding_type '%d'\n", ctx->pic_params->vop_fields.bits.vop_coding_type);
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ if (NULL == ctx->forward_ref_surface) {
+ /* for mmu fault protection */
+ ctx->forward_ref_surface = ctx->obj_context->current_render_target;
+ }
+ if (NULL == ctx->backward_ref_surface) {
+ /* for mmu fault protection */
+ ctx->backward_ref_surface = ctx->obj_context->current_render_target;
+ }
+
+ ctx->display_picture_width = ctx->pic_params->vop_width;
+ ctx->display_picture_height = ctx->pic_params->vop_height;
+ ctx->picture_width_mb = PIXELS_TO_MB(ctx->display_picture_width);
+ ctx->picture_height_mb = PIXELS_TO_MB(ctx->display_picture_height);
+ ctx->coded_picture_width = ctx->picture_width_mb * 16;
+ ctx->coded_picture_height = ctx->picture_height_mb * 16;
+ ctx->size_mb = ctx->picture_width_mb * ctx->picture_height_mb;
+
+ uint32_t mbInPic = ctx->picture_width_mb * ctx->picture_height_mb;
+
+ mbInPic += 4;
+
+ uint32_t colocated_size = ((mbInPic * 200) + 0xfff) & ~0xfff;
+
+ vaStatus = psb__MPEG4_allocate_colocated_buffer(ctx, ctx->obj_context->current_render_target, colocated_size);
+ if (VA_STATUS_SUCCESS != vaStatus) {
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+ vaStatus = psb__MPEG4_allocate_colocated_buffer(ctx, ctx->forward_ref_surface, colocated_size);
+ if (VA_STATUS_SUCCESS != vaStatus) {
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ ctx->FEControl = 0;
+ REGIO_WRITE_FIELD_LITE(ctx->FEControl ,
+ MSVDX_VEC,
+ CR_VEC_ENTDEC_FE_CONTROL,
+ ENTDEC_FE_PROFILE,
+ ctx->profile); /* MPEG4 SP / ASP profile */
+
+ REGIO_WRITE_FIELD_LITE(ctx->FEControl ,
+ MSVDX_VEC,
+ CR_VEC_ENTDEC_FE_CONTROL,
+ ENTDEC_FE_MODE,
+ 4); /* Set MPEG4 mode */
+
+ /* FE_SPS0 */
+ ctx->FE_SPS0 = 0;
+ REGIO_WRITE_FIELD_LITE(ctx->FE_SPS0, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_FE_SPS0, FE_VOP_WIDTH_IN_MBS_LESS_1, ctx->picture_width_mb - 1);
+ REGIO_WRITE_FIELD_LITE(ctx->FE_SPS0, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_FE_SPS0, FE_SHORT_HEADER_FLAG, ctx->pic_params->vol_fields.bits.short_video_header);
+ REGIO_WRITE_FIELD_LITE(ctx->FE_SPS0, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_FE_SPS0, FE_PROFILE, ctx->profile);
+
+ /* FE_VOP_SPS0 */
+ ctx->FE_VOP_SPS0 = 0;
+ REGIO_WRITE_FIELD_LITE(ctx->FE_VOP_SPS0, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_FE_VOP_SPS0, FE_VOP_HEIGHT_IN_MBS_LESS_1, ctx->picture_height_mb - 1);
+ REGIO_WRITE_FIELD_LITE(ctx->FE_VOP_SPS0, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_FE_VOP_SPS0, QUANT_PRECISION, ctx->pic_params->quant_precision);
+ REGIO_WRITE_FIELD_LITE(ctx->FE_VOP_SPS0, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_FE_VOP_SPS0, FE_NO_OF_GMC_WARPING_POINTS, ctx->pic_params->no_of_sprite_warping_points);
+ REGIO_WRITE_FIELD_LITE(ctx->FE_VOP_SPS0, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_FE_VOP_SPS0, FE_GMC_ENABLE, (ctx->pic_params->vol_fields.bits.sprite_enable == GMC));
+ REGIO_WRITE_FIELD_LITE(ctx->FE_VOP_SPS0, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_FE_VOP_SPS0, REVERSIBLE_VLC, ctx->pic_params->vol_fields.bits.reversible_vlc);
+ REGIO_WRITE_FIELD_LITE(ctx->FE_VOP_SPS0, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_FE_VOP_SPS0, FE_DATA_PARTITIONED, ctx->pic_params->vol_fields.bits.data_partitioned);
+ REGIO_WRITE_FIELD_LITE(ctx->FE_VOP_SPS0, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_FE_VOP_SPS0, FE_INTERLACED, ctx->pic_params->vol_fields.bits.interlaced);
+
+ if (ctx->pic_params->vol_fields.bits.short_video_header) {
+ /* FE_PICSH_PPS0 */
+ ctx->FE_PICSH_PPS0 = 0;
+ REGIO_WRITE_FIELD_LITE(ctx->FE_PICSH_PPS0, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_FE_PICSH_PPS0, NUM_MBS_IN_GOB, ctx->pic_params->num_macroblocks_in_gob);
+ REGIO_WRITE_FIELD_LITE(ctx->FE_PICSH_PPS0, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_FE_PICSH_PPS0, NUM_GOBS_IN_VOP, ctx->pic_params->num_gobs_in_vop);
+ REGIO_WRITE_FIELD_LITE(ctx->FE_PICSH_PPS0, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_FE_PICSH_PPS0, FE_PICSH_CODING_TYPE, ctx->pic_params->vop_fields.bits.vop_coding_type);
+ }
+
+ /* FE_VOP_PPS0 */
+ ctx->FE_VOP_PPS0 = 0;
+ REGIO_WRITE_FIELD_LITE(ctx->FE_VOP_PPS0, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_FE_VOP_PPS0, BACKWARD_REF_VOP_CODING_TYPE, ctx->pic_params->vop_fields.bits.backward_reference_vop_coding_type);
+ REGIO_WRITE_FIELD_LITE(ctx->FE_VOP_PPS0, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_FE_VOP_PPS0, FE_FCODE_BACKWARD, ctx->pic_params->vop_fcode_backward);
+ REGIO_WRITE_FIELD_LITE(ctx->FE_VOP_PPS0, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_FE_VOP_PPS0, FE_FCODE_FORWARD, ctx->pic_params->vop_fcode_forward);
+ REGIO_WRITE_FIELD_LITE(ctx->FE_VOP_PPS0, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_FE_VOP_PPS0, INTRA_DC_VLC_THR, ctx->pic_params->vop_fields.bits.intra_dc_vlc_thr);
+ REGIO_WRITE_FIELD_LITE(ctx->FE_VOP_PPS0, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_FE_VOP_PPS0, FE_VOP_CODING_TYPE, ctx->pic_params->vop_fields.bits.vop_coding_type);
+
+ /* BE_SPS0 */
+ /* Common for VOPs and pictures with short header */
+ ctx->BE_SPS0 = 0;
+ REGIO_WRITE_FIELD_LITE(ctx->BE_SPS0, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_BE_SPS0, BE_SHORT_HEADER_FLAG, ctx->pic_params->vol_fields.bits.short_video_header);
+ REGIO_WRITE_FIELD_LITE(ctx->BE_SPS0, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_BE_SPS0, BE_PROFILE, ctx->profile);
+
+ /* BE_SPS1 */
+ /* Common for VOPs and pictures with short header */
+ ctx->BE_SPS1 = 0;
+ REGIO_WRITE_FIELD_LITE(ctx->BE_SPS1, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_BE_SPS1, BE_VOP_WIDTH_IN_MBS_LESS_1, ctx->picture_width_mb - 1);
+ REGIO_WRITE_FIELD_LITE(ctx->BE_SPS1, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_BE_SPS1, VOP_HEIGHT_IN_MBS_LESS_1, ctx->picture_height_mb - 1);
+
+ if (0 == ctx->pic_params->vol_fields.bits.short_video_header) {
+ /* BE_VOP_SPS0 */
+ ctx->BE_VOP_SPS0 = 0;
+ REGIO_WRITE_FIELD_LITE(ctx->BE_VOP_SPS0, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_BE_VOP_SPS0, QUANT_TYPE, ctx->pic_params->vol_fields.bits.quant_type);
+ REGIO_WRITE_FIELD_LITE(ctx->BE_VOP_SPS0, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_BE_VOP_SPS0, OBMC_DISABLE, ctx->pic_params->vol_fields.bits.obmc_disable);
+ REGIO_WRITE_FIELD_LITE(ctx->BE_VOP_SPS0, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_BE_VOP_SPS0, QUARTER_SAMPLE, ctx->pic_params->vol_fields.bits.quarter_sample);
+
+ /* BE_VOP_SPS1 */
+ ctx->BE_VOP_SPS1 = 0;
+ REGIO_WRITE_FIELD_LITE(ctx->BE_VOP_SPS1, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_BE_VOP_SPS1, GMC_WARPING_ACCURACY, ctx->pic_params->vol_fields.bits.sprite_warping_accuracy);
+ REGIO_WRITE_FIELD_LITE(ctx->BE_VOP_SPS1, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_BE_VOP_SPS1, BE_NO_OF_GMC_WARPING_POINTS, ctx->pic_params->no_of_sprite_warping_points);
+ REGIO_WRITE_FIELD_LITE(ctx->BE_VOP_SPS1, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_BE_VOP_SPS1, BE_GMC_ENABLE, (ctx->pic_params->vol_fields.bits.sprite_enable == GMC));
+ REGIO_WRITE_FIELD_LITE(ctx->BE_VOP_SPS1, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_BE_VOP_SPS1, BE_DATA_PARTITIONED, ctx->pic_params->vol_fields.bits.data_partitioned);
+ REGIO_WRITE_FIELD_LITE(ctx->BE_VOP_SPS1, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_BE_VOP_SPS1, BE_INTERLACED, ctx->pic_params->vol_fields.bits.interlaced);
+
+ /* BE_VOP_PPS0 */
+ ctx->BE_VOP_PPS0 = 0;
+ REGIO_WRITE_FIELD_LITE(ctx->BE_VOP_PPS0, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_BE_VOP_PPS0, BE_FCODE_BACKWARD, ctx->pic_params->vop_fcode_backward);
+ REGIO_WRITE_FIELD_LITE(ctx->BE_VOP_PPS0, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_BE_VOP_PPS0, BE_FCODE_FORWARD, ctx->pic_params->vop_fcode_forward);
+ REGIO_WRITE_FIELD_LITE(ctx->BE_VOP_PPS0, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_BE_VOP_PPS0, ALTERNATE_VERTICAL_SCAN_FLAG, ctx->pic_params->vop_fields.bits.alternate_vertical_scan_flag);
+ REGIO_WRITE_FIELD_LITE(ctx->BE_VOP_PPS0, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_BE_VOP_PPS0, TOP_FIELD_FIRST, ctx->pic_params->vop_fields.bits.top_field_first);
+ REGIO_WRITE_FIELD_LITE(ctx->BE_VOP_PPS0,
+ MSVDX_VEC_MPEG4,
+ CR_VEC_MPEG4_BE_VOP_PPS0,
+ ROUNDING_TYPE,
+ ((PICTURE_CODING_I == ctx->pic_params->vop_fields.bits.vop_coding_type ||
+ PICTURE_CODING_B == ctx->pic_params->vop_fields.bits.vop_coding_type) ?
+ 0 : ctx->pic_params->vop_fields.bits.vop_rounding_type));
+ REGIO_WRITE_FIELD_LITE(ctx->BE_VOP_PPS0, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_BE_VOP_PPS0, BE_VOP_CODING_TYPE, ctx->pic_params->vop_fields.bits.vop_coding_type);
+ } else {
+ /* BE_VOP_PPS0 */
+ ctx->BE_VOP_PPS0 = 0;
+ REGIO_WRITE_FIELD_LITE(ctx->BE_VOP_PPS0, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_BE_VOP_PPS0, BE_FCODE_FORWARD, 1); // Always 1 in short header mode 6.3.5.2
+ REGIO_WRITE_FIELD_LITE(ctx->BE_VOP_PPS0, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_BE_VOP_PPS0, ALTERNATE_VERTICAL_SCAN_FLAG, ctx->pic_params->vop_fields.bits.alternate_vertical_scan_flag);
+ REGIO_WRITE_FIELD_LITE(ctx->BE_VOP_PPS0, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_BE_VOP_PPS0, TOP_FIELD_FIRST, ctx->pic_params->vop_fields.bits.top_field_first);
+ REGIO_WRITE_FIELD_LITE(ctx->BE_VOP_PPS0, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_BE_VOP_PPS0, ROUNDING_TYPE, 0); // Always 0 in short header mode 6.3.5.2
+ REGIO_WRITE_FIELD_LITE(ctx->BE_VOP_PPS0, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_BE_VOP_PPS0, BE_VOP_CODING_TYPE, ctx->pic_params->vop_fields.bits.vop_coding_type);
+
+ /* BE_PICSH_PPS0 */
+ ctx->BE_PICSH_PPS0 = 0;
+ REGIO_WRITE_FIELD_LITE(ctx->BE_PICSH_PPS0, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_BE_PICSH_PPS0, BE_PICSH_CODING_TYPE, ctx->pic_params->vop_fields.bits.vop_coding_type);
+ }
+
+ return VA_STATUS_SUCCESS;
+}
+
+static void psb__MPEG4_convert_iq_matrix(uint32_t *dest32, unsigned char *src)
+{
+ int i;
+ int *idx = scan0;
+ uint8_t *dest8 = (uint8_t*) dest32;
+
+ for (i = 0; i < 64; i++) {
+ *dest8++ = src[*idx++];
+ }
+}
+
+static VAStatus psb__MPEG4_process_iq_matrix(context_MPEG4_p ctx, object_buffer_p obj_buffer)
+{
+ VAIQMatrixBufferMPEG4 *iq_matrix = (VAIQMatrixBufferMPEG4 *) obj_buffer->buffer_data;
+ ASSERT(obj_buffer->type == VAIQMatrixBufferType);
+ ASSERT(obj_buffer->num_elements == 1);
+ ASSERT(obj_buffer->size == sizeof(VAIQMatrixBufferMPEG4));
+
+ if ((obj_buffer->num_elements != 1) ||
+ (obj_buffer->size != sizeof(VAIQMatrixBufferMPEG4))) {
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ if (iq_matrix->load_non_intra_quant_mat) {
+ psb__MPEG4_convert_iq_matrix(ctx->qmatrix_data[NONINTRA_LUMA_Q], iq_matrix->non_intra_quant_mat);
+ }
+ if (iq_matrix->load_intra_quant_mat) {
+ psb__MPEG4_convert_iq_matrix(ctx->qmatrix_data[INTRA_LUMA_Q], iq_matrix->intra_quant_mat);
+ }
+ ctx->load_non_intra_quant_mat = iq_matrix->load_non_intra_quant_mat;
+ ctx->load_intra_quant_mat = iq_matrix->load_intra_quant_mat;
+
+ return VA_STATUS_SUCCESS;
+}
+
+static void psb__MPEG4_write_qmatrices(context_MPEG4_p ctx)
+{
+ psb_cmdbuf_p cmdbuf = ctx->obj_context->cmdbuf;
+ int i;
+
+ // TODO: Verify that this is indeed the same as MPEG2
+
+ /* Since we only decode 4:2:0 We only need to the Intra tables.
+ Chroma quant tables are only used in Mpeg 4:2:2 and 4:4:4.
+ The hardware wants non-intra followed by intra */
+ psb_cmdbuf_rendec_start_block(cmdbuf);
+ psb_cmdbuf_rendec_start_chunk(cmdbuf, REG_MSVDX_VEC_IQRAM_OFFSET);
+
+ /* todo : optimisation here is to only load the need table */
+ if (ctx->load_non_intra_quant_mat) {
+ /* NONINTRA_LUMA_Q --> REG_MSVDX_VEC_IQRAM_OFFSET + 0 */
+ for (i = 0; i < 16; i++) {
+ psb_cmdbuf_rendec_write(cmdbuf, ctx->qmatrix_data[NONINTRA_LUMA_Q][i]);
+ }
+ } else {
+ for (i = 0; i < 16; i++) {
+ psb_cmdbuf_rendec_write(cmdbuf, 0);
+ }
+ }
+ if (ctx->load_intra_quant_mat) {
+ /* INTRA_LUMA_Q --> REG_MSVDX_VEC_IQRAM_OFFSET + (16*4) */
+ for (i = 0; i < 16; i++) {
+ psb_cmdbuf_rendec_write(cmdbuf, ctx->qmatrix_data[INTRA_LUMA_Q][i]);
+ }
+ } else {
+ for (i = 0; i < 16; i++) {
+ psb_cmdbuf_rendec_write(cmdbuf, 0);
+ }
+ }
+
+ psb_cmdbuf_rendec_end_chunk(cmdbuf);
+ psb_cmdbuf_rendec_end_block(cmdbuf);
+}
+
+
+/*
+ * Adds a VASliceParameterBuffer to the list of slice params
+ */
+static VAStatus psb__MPEG4_add_slice_param(context_MPEG4_p ctx, object_buffer_p obj_buffer)
+{
+ ASSERT(obj_buffer->type == VASliceParameterBufferType);
+ if (ctx->slice_param_list_idx >= ctx->slice_param_list_size) {
+ void *new_list;
+ ctx->slice_param_list_size += 8;
+ new_list = realloc(ctx->slice_param_list,
+ sizeof(object_buffer_p) * ctx->slice_param_list_size);
+ if (NULL == new_list) {
+ return VA_STATUS_ERROR_ALLOCATION_FAILED;
+ }
+ ctx->slice_param_list = (object_buffer_p*) new_list;
+ }
+ ctx->slice_param_list[ctx->slice_param_list_idx] = obj_buffer;
+ ctx->slice_param_list_idx++;
+ return VA_STATUS_SUCCESS;
+}
+
+/* Precalculated values */
+#define ADDR0 (0x00005800)
+#define ADDR1 (0x0001f828)
+#define ADDR2 (0x0002b854)
+#define ADDR3 (0x0002f85c)
+#define ADDR4 (0x0004d089)
+#define ADDR5 (0x0008f0aa)
+#define ADDR6 (0x00149988)
+#define ADDR7 (0x001d8b9e)
+#define ADDR8 (0x000003c3)
+#define WIDTH0 (0x09a596ed)
+#define WIDTH1 (0x0006d6db)
+#define OPCODE0 (0x50009a0a)
+#define OPCODE1 (0x00000001)
+
+static void psb__MPEG4_write_VLC_tables(context_MPEG4_p ctx)
+{
+ psb_cmdbuf_p cmdbuf = ctx->obj_context->cmdbuf;
+
+ /* Write the vec registers with the index data for each of the tables and then write */
+ /* the actual table data. */
+ psb_cmdbuf_reg_start_block(cmdbuf);
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR0), ADDR0);
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR1), ADDR1);
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR2), ADDR2);
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR3), ADDR3);
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR4), ADDR4);
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR5), ADDR5);
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR6), ADDR6);
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR7), ADDR7);
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR8), ADDR8);
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_INITIAL_WIDTH0), WIDTH0);
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_INITIAL_WIDTH1), WIDTH1);
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_INITIAL_OPCODE0), OPCODE0);
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_INITIAL_OPCODE1), OPCODE1);
+ psb_cmdbuf_reg_end_block(cmdbuf);
+
+ /* VLC Table */
+ /* Write a LLDMA Cmd to transfer VLD Table data */
+ psb_cmdbuf_lldma_write_cmdbuf(cmdbuf, &ctx->vlc_packed_table, 0,
+ sizeof(gaui16mpeg4VlcTableDataPacked),
+ 0, LLDMA_TYPE_VLC_TABLE);
+}
+
+
+static void psb__MPEG4_write_kick(context_MPEG4_p ctx, VASliceParameterBufferMPEG4 *slice_param)
+{
+ psb_cmdbuf_p cmdbuf = ctx->obj_context->cmdbuf;
+
+ (void) slice_param; /* Unused for now */
+
+ *cmdbuf->cmd_idx++ = CMD_COMPLETION;
+}
+
+/* Programme the Alt output if there is a rotation*/
+static void psb__MPEG4_setup_alternative_frame(context_MPEG4_p ctx)
+{
+ uint32_t cmd;
+ psb_cmdbuf_p cmdbuf = ctx->obj_context->cmdbuf;
+ psb_surface_p rotate_surface = ctx->obj_context->current_render_target->psb_surface_rotate;
+ object_context_p obj_context = ctx->obj_context;
+
+ if (rotate_surface->extra_info[5] != obj_context->rotate)
+ psb__error_message("Display rotate mode does not match surface rotate mode!\n");
+
+
+ /* CRendecBlock RendecBlk( mCtrlAlloc , RENDEC_REGISTER_OFFSET(MSVDX_CMDS, VC1_LUMA_RANGE_MAPPING_BASE_ADDRESS) ); */
+ psb_cmdbuf_rendec_start_chunk(cmdbuf, RENDEC_REGISTER_OFFSET(MSVDX_CMDS, VC1_LUMA_RANGE_MAPPING_BASE_ADDRESS));
+
+ psb_cmdbuf_rendec_write_address(cmdbuf, &rotate_surface->buf, rotate_surface->buf.buffer_ofs);
+ psb_cmdbuf_rendec_write_address(cmdbuf, &rotate_surface->buf, rotate_surface->buf.buffer_ofs + rotate_surface->chroma_offset);
+
+ psb_cmdbuf_rendec_end_chunk(cmdbuf);
+
+ /* Set the rotation registers */
+ psb_cmdbuf_rendec_start_chunk(cmdbuf, RENDEC_REGISTER_OFFSET(MSVDX_CMDS, ALTERNATIVE_OUTPUT_PICTURE_ROTATION));
+ cmd = 0;
+ REGIO_WRITE_FIELD_LITE(cmd, MSVDX_CMDS, ALTERNATIVE_OUTPUT_PICTURE_ROTATION , ALT_PICTURE_ENABLE, 1);
+ REGIO_WRITE_FIELD_LITE(cmd, MSVDX_CMDS, ALTERNATIVE_OUTPUT_PICTURE_ROTATION , ROTATION_ROW_STRIDE, rotate_surface->stride_mode);
+ REGIO_WRITE_FIELD_LITE(cmd, MSVDX_CMDS, ALTERNATIVE_OUTPUT_PICTURE_ROTATION , RECON_WRITE_DISABLE, 0); /* FIXME Always generate Rec */
+ REGIO_WRITE_FIELD_LITE(cmd, MSVDX_CMDS, ALTERNATIVE_OUTPUT_PICTURE_ROTATION , ROTATION_MODE, rotate_surface->extra_info[5]);
+
+ psb_cmdbuf_rendec_write(cmdbuf, cmd);
+
+ psb_cmdbuf_rendec_end_chunk(cmdbuf);
+}
+
+static void psb__MPEG4_set_picture_params(context_MPEG4_p ctx, VASliceParameterBufferMPEG4 *slice_param)
+{
+ uint32_t cmd;
+ psb_cmdbuf_p cmdbuf = ctx->obj_context->cmdbuf;
+ psb_surface_p target_surface = ctx->obj_context->current_render_target->psb_surface;
+
+ psb_buffer_p colocated_target_buffer = psb__MPEG4_lookup_colocated_buffer(ctx, target_surface);
+ psb_buffer_p colocated_ref_buffer = psb__MPEG4_lookup_colocated_buffer(ctx, ctx->forward_ref_surface->psb_surface); /* FIXME DE2.0 use backward ref surface */
+ ASSERT(colocated_target_buffer);
+ ASSERT(colocated_ref_buffer);
+
+ psb_cmdbuf_rendec_start_block(cmdbuf);
+
+ /* BE_PARAM_BASE_ADDR */
+ psb_cmdbuf_rendec_start_chunk(cmdbuf, RENDEC_REGISTER_OFFSET(MSVDX_VEC, MPEG4_CR_VEC_MPEG4_BE_PARAM_BASE_ADDR));
+ if (colocated_target_buffer) {
+ psb_cmdbuf_rendec_write_address(cmdbuf, colocated_target_buffer, 0);
+ } else {
+ /* This is an error */
+ psb_cmdbuf_rendec_write(cmdbuf, 0);
+ }
+ psb_cmdbuf_rendec_end_chunk(cmdbuf);
+
+ /* PARAM_BASE_ADDRESS */
+ psb_cmdbuf_rendec_start_chunk(cmdbuf, RENDEC_REGISTER_OFFSET(MSVDX_VEC, MPEG4_CR_VEC_MPEG4_BE_COLPARAM_BASE_ADDR));
+ if (colocated_ref_buffer) {
+ psb_cmdbuf_rendec_write_address(cmdbuf, colocated_ref_buffer, 0);
+ } else {
+ /* This is an error */
+ psb_cmdbuf_rendec_write(cmdbuf, 0);
+ }
+ psb_cmdbuf_rendec_end_chunk(cmdbuf);
+
+ if (ctx->obj_context->rotate != VA_ROTATION_NONE)
+ psb__MPEG4_setup_alternative_frame(ctx);
+
+ /* Send VDMC and VDEB commands */
+ psb_cmdbuf_rendec_start_chunk(cmdbuf, RENDEC_REGISTER_OFFSET(MSVDX_CMDS, DISPLAY_PICTURE_SIZE));
+
+ /* Display picture size cmd */
+ cmd = 0;
+ REGIO_WRITE_FIELD_LITE(cmd, MSVDX_CMDS, DISPLAY_PICTURE_SIZE, DISPLAY_PICTURE_HEIGHT, ctx->coded_picture_height - 1);
+ REGIO_WRITE_FIELD_LITE(cmd, MSVDX_CMDS, DISPLAY_PICTURE_SIZE, DISPLAY_PICTURE_WIDTH, ctx->coded_picture_width - 1);
+ psb_cmdbuf_rendec_write(cmdbuf, cmd);
+
+ /* Coded picture size cmd */
+ cmd = 0;
+ REGIO_WRITE_FIELD_LITE(cmd, MSVDX_CMDS, CODED_PICTURE_SIZE, CODED_PICTURE_HEIGHT, ctx->coded_picture_height - 1);
+ REGIO_WRITE_FIELD_LITE(cmd, MSVDX_CMDS, CODED_PICTURE_SIZE, CODED_PICTURE_WIDTH, ctx->coded_picture_width - 1);
+ psb_cmdbuf_rendec_write(cmdbuf, cmd);
+
+ /* Operating mode cmd */
+ cmd = 0;
+ REGIO_WRITE_FIELD_LITE(cmd, MSVDX_CMDS, OPERATING_MODE, CHROMA_INTERLEAVED, 0); /* 0 = CbCr, 1 = CrCb */
+ REGIO_WRITE_FIELD_LITE(cmd, MSVDX_CMDS, OPERATING_MODE, ROW_STRIDE, ctx->obj_context->current_render_target->psb_surface->stride_mode);
+ REGIO_WRITE_FIELD_LITE(cmd, MSVDX_CMDS, OPERATING_MODE, CODEC_PROFILE, ctx->profile); /* MPEG4 SP / ASP profile */
+ REGIO_WRITE_FIELD_LITE(cmd, MSVDX_CMDS, OPERATING_MODE, CODEC_MODE, 4); /* MPEG4 */
+ REGIO_WRITE_FIELD_LITE(cmd, MSVDX_CMDS, OPERATING_MODE, ASYNC_MODE, 1); /* VDMC only */
+ REGIO_WRITE_FIELD_LITE(cmd, MSVDX_CMDS, OPERATING_MODE, CHROMA_FORMAT, 1);
+ REGIO_WRITE_FIELD_LITE(cmd, MSVDX_CMDS, OPERATING_MODE, INTERLACED, ctx->pic_params->vol_fields.bits.interlaced);
+ psb_cmdbuf_rendec_write(cmdbuf, cmd);
+ ctx->obj_context->operating_mode = cmd;
+
+ psb__information_message(" vop_coding_type = %s\n", psb__debug_picture_coding_str(ctx->pic_params->vop_fields.bits.vop_coding_type));
+ psb__information_message(" backward ref vop_coding_type = %s\n", psb__debug_picture_coding_str(ctx->pic_params->vop_fields.bits.backward_reference_vop_coding_type));
+
+ /* LUMA_RECONSTRUCTED_PICTURE_BASE_ADDRESSES */
+ psb_cmdbuf_rendec_write_address(cmdbuf, &target_surface->buf, target_surface->buf.buffer_ofs);
+ /* CHROMA_RECONSTRUCTED_PICTURE_BASE_ADDRESSES */
+ psb_cmdbuf_rendec_write_address(cmdbuf, &target_surface->buf, target_surface->buf.buffer_ofs + target_surface->chroma_offset);
+
+ psb_cmdbuf_rendec_end_chunk(cmdbuf);
+
+ /* Reference pictures base addresses */
+ psb_cmdbuf_rendec_start_chunk(cmdbuf, RENDEC_REGISTER_OFFSET(MSVDX_CMDS, REFERENCE_PICTURE_BASE_ADDRESSES));
+
+//psb__information_message("Target surface = %08x\n", target_surface);
+//psb__information_message("Forward ref = %08x\n", ctx->forward_ref_surface->psb_surface);
+//psb__information_message("Backward ref = %08x\n", ctx->backward_ref_surface->psb_surface);
+
+ /* forward reference picture */
+ /* LUMA_RECONSTRUCTED_PICTURE_BASE_ADDRESSES */
+ psb_cmdbuf_rendec_write_address(cmdbuf, &ctx->forward_ref_surface->psb_surface->buf, ctx->forward_ref_surface->psb_surface->buf.buffer_ofs);
+ /* CHROMA_RECONSTRUCTED_PICTURE_BASE_ADDRESSES */
+ psb_cmdbuf_rendec_write_address(cmdbuf, &ctx->forward_ref_surface->psb_surface->buf, ctx->forward_ref_surface->psb_surface->buf.buffer_ofs + ctx->forward_ref_surface->psb_surface->chroma_offset);
+
+ /* backward reference picture */
+ /* LUMA_RECONSTRUCTED_PICTURE_BASE_ADDRESSES */
+ psb_cmdbuf_rendec_write_address(cmdbuf, &ctx->backward_ref_surface->psb_surface->buf, ctx->backward_ref_surface->psb_surface->buf.buffer_ofs);
+ /* CHROMA_RECONSTRUCTED_PICTURE_BASE_ADDRESSES */
+ psb_cmdbuf_rendec_write_address(cmdbuf, &ctx->backward_ref_surface->psb_surface->buf, ctx->backward_ref_surface->psb_surface->buf.buffer_ofs + ctx->backward_ref_surface->psb_surface->chroma_offset);
+
+ psb_cmdbuf_rendec_end_chunk(cmdbuf);
+ psb_cmdbuf_rendec_end_block(cmdbuf);
+}
+
+static void psb__MPEG4_set_backend_registers(context_MPEG4_p ctx, VASliceParameterBufferMPEG4 *slice_param)
+{
+ psb_cmdbuf_p cmdbuf = ctx->obj_context->cmdbuf;
+ uint32_t cmd;
+ unsigned short width_mb = PIXELS_TO_MB(ctx->pic_params->vop_width);
+
+ psb_cmdbuf_rendec_start_block(cmdbuf);
+
+ /* Write Back-End EntDec registers */
+ psb_cmdbuf_rendec_start_chunk(cmdbuf, RENDEC_REGISTER_OFFSET(MSVDX_VEC, MPEG4_CR_VEC_MPEG4_BE_SPS0));
+ /* BE_SPS0 */
+ /* Common for VOPs and pictures with short header */
+ psb_cmdbuf_rendec_write(cmdbuf, ctx->BE_SPS0);
+ /* BE_SPS1 */
+ /* Common for VOPs and pictures with short header */
+ psb_cmdbuf_rendec_write(cmdbuf, ctx->BE_SPS1);
+ psb_cmdbuf_rendec_end_chunk(cmdbuf);
+
+ psb_cmdbuf_rendec_start_chunk(cmdbuf, RENDEC_REGISTER_OFFSET(MSVDX_VEC, MPEG4_CR_VEC_MPEG4_BE_VOP_SPS0));
+ if (0 == ctx->pic_params->vol_fields.bits.short_video_header) {
+ /* BE_VOP_SPS0 */
+ psb_cmdbuf_rendec_write(cmdbuf, ctx->BE_VOP_SPS0);
+ /* BE_VOP_SPS1 */
+ psb_cmdbuf_rendec_write(cmdbuf, ctx->BE_VOP_SPS1);
+ /* BE_VOP_PPS0 */
+ psb_cmdbuf_rendec_write(cmdbuf, ctx->BE_VOP_PPS0);
+ } else { /* Short-header mode */
+ /* BE_VOP_SPS0 */
+ psb_cmdbuf_rendec_write(cmdbuf, 0);
+ /* BE_VOP_SPS1 */
+ psb_cmdbuf_rendec_write(cmdbuf, 0);
+ /* BE_VOP_PPS0 */
+ psb_cmdbuf_rendec_write(cmdbuf, ctx->BE_VOP_PPS0);
+ /* BE_PICSH_PPS0 */
+ psb_cmdbuf_rendec_write(cmdbuf, ctx->BE_PICSH_PPS0);
+ }
+ psb_cmdbuf_rendec_end_chunk(cmdbuf);
+
+ if (0 == ctx->pic_params->vol_fields.bits.short_video_header) {
+ if ((GMC == ctx->pic_params->vol_fields.bits.sprite_enable) &&
+ (PICTURE_CODING_S == ctx->pic_params->vop_fields.bits.vop_coding_type)) {
+ psb_cmdbuf_rendec_start_chunk(cmdbuf, RENDEC_REGISTER_OFFSET(MSVDX_VEC, MPEG4_CR_VEC_MPEG4_BE_GMC_X));
+
+ /* TODO: GMC Motion Vectors */
+ /* It is still needed to specify the precision of the motion vectors (should they be in */
+ /* half-sample, quarter-sample...?) and how much processing is done on the firmware on */
+ /* the values of the warping points. */
+
+ // TODO: Which index to use?
+ int sprite_index = (ctx->pic_params->sprite_trajectory_du[0] || ctx->pic_params->sprite_trajectory_dv[0]) ? 0 : 1;
+
+ /* BE_GMC_X */
+ cmd = 0;
+ REGIO_WRITE_FIELD_LITE(cmd, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_BE_GMC_X, GMC_X, ctx->pic_params->sprite_trajectory_du[sprite_index] & 0x3FFF);
+ psb_cmdbuf_rendec_write(cmdbuf, cmd);
+
+ /* BE_GMC_Y */
+ cmd = 0;
+ REGIO_WRITE_FIELD_LITE(cmd, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_BE_GMC_Y, GMC_Y, ctx->pic_params->sprite_trajectory_dv[sprite_index] & 0x3FFF);
+ psb_cmdbuf_rendec_write(cmdbuf, cmd);
+
+ psb_cmdbuf_rendec_end_chunk(cmdbuf);
+ }
+ }
+
+ psb_cmdbuf_rendec_start_chunk(cmdbuf, RENDEC_REGISTER_OFFSET(MSVDX_VEC, MPEG4_CR_VEC_MPEG4_BE_SLICE0));
+
+ /* BE_SLICE0 */
+ cmd = 0;
+ REGIO_WRITE_FIELD_LITE(cmd, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_BE_SLICE0, BE_FIRST_MB_IN_SLICE_Y, slice_param->macroblock_number / width_mb);
+ REGIO_WRITE_FIELD_LITE(cmd, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_BE_SLICE0, BE_FIRST_MB_IN_SLICE_X, slice_param->macroblock_number % width_mb);
+ psb_cmdbuf_rendec_write(cmdbuf, cmd);
+
+ /* CR_VEC_MPEG4_BE_VOP_TR */
+ cmd = 0;
+ REGIO_WRITE_FIELD_LITE(cmd, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_BE_VOP_TRB, BE_TRB, ctx->pic_params->TRB);
+ psb_cmdbuf_rendec_write(cmdbuf, cmd);
+
+ cmd = 0;
+ REGIO_WRITE_FIELD_LITE(cmd, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_BE_VOP_TRD, BE_TRD, ctx->pic_params->TRD);
+ psb_cmdbuf_rendec_write(cmdbuf, cmd);
+
+ psb_cmdbuf_rendec_end_chunk(cmdbuf);
+
+
+ /* Send Slice Data for every slice */
+ /* MUST be the last slice sent */
+ psb_cmdbuf_rendec_start_chunk(cmdbuf, RENDEC_REGISTER_OFFSET(MSVDX_CMDS, SLICE_PARAMS));
+
+ /* Slice params command */
+ cmd = 0;
+ REGIO_WRITE_FIELD_LITE(cmd,
+ MSVDX_CMDS,
+ SLICE_PARAMS,
+ RND_CTL_BIT,
+ ((PICTURE_CODING_I == ctx->pic_params->vop_fields.bits.vop_coding_type ||
+ PICTURE_CODING_B == ctx->pic_params->vop_fields.bits.vop_coding_type) ?
+ 0 : ctx->pic_params->vop_fields.bits.vop_rounding_type));
+ REGIO_WRITE_FIELD_LITE(cmd, MSVDX_CMDS, SLICE_PARAMS, MODE_CONFIG, ctx->pic_params->vol_fields.bits.sprite_warping_accuracy);
+ REGIO_WRITE_FIELD_LITE(cmd, MSVDX_CMDS, SLICE_PARAMS, SUBPEL_FILTER_MODE, ctx->pic_params->vol_fields.bits.quarter_sample);
+ /* SP and ASP profiles don't support field coding in different VOPs */
+ REGIO_WRITE_FIELD_LITE(cmd, MSVDX_CMDS, SLICE_PARAMS, SLICE_FIELD_TYPE, 2);
+ REGIO_WRITE_FIELD_LITE(cmd, MSVDX_CMDS, SLICE_PARAMS, SLICE_CODE_TYPE, ctx->pic_params->vop_fields.bits.vop_coding_type);
+ psb_cmdbuf_rendec_write(cmdbuf, cmd);
+
+ psb_cmdbuf_rendec_end_chunk(cmdbuf);
+
+ *ctx->p_slice_params = cmd;
+
+ /* CHUNK: Entdec back-end profile and level */
+ psb_cmdbuf_rendec_start_chunk(cmdbuf, RENDEC_REGISTER_OFFSET(MSVDX_VEC, CR_VEC_ENTDEC_BE_CONTROL));
+
+ cmd = 0;
+ REGIO_WRITE_FIELD_LITE(cmd, MSVDX_VEC, CR_VEC_ENTDEC_BE_CONTROL, ENTDEC_BE_PROFILE, ctx->profile); /* MPEG4 SP / ASP profile*/
+ REGIO_WRITE_FIELD_LITE(cmd, MSVDX_VEC, CR_VEC_ENTDEC_BE_CONTROL, ENTDEC_BE_MODE, 4); /* 4 - MPEG4 */
+ psb_cmdbuf_rendec_write(cmdbuf, cmd);
+
+ psb_cmdbuf_rendec_end_chunk(cmdbuf);
+ psb_cmdbuf_rendec_end_block(cmdbuf);
+
+ /* Send IQ matrices to Rendec */
+ psb__MPEG4_write_qmatrices(ctx);
+}
+
+static void psb__MPEG4_set_frontend_registers(context_MPEG4_p ctx, VASliceParameterBufferMPEG4 *slice_param)
+{
+ psb_cmdbuf_p cmdbuf = ctx->obj_context->cmdbuf;
+ uint32_t FE_slice0;
+ unsigned short width_mb = PIXELS_TO_MB(ctx->pic_params->vop_width);
+
+ psb_cmdbuf_reg_start_block(cmdbuf);
+
+ /* FE_SLICE0 */
+ FE_slice0 = 0;
+ REGIO_WRITE_FIELD_LITE(FE_slice0, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_FE_SLICE0, FE_VOP_QUANT, slice_param->quant_scale);
+ REGIO_WRITE_FIELD_LITE(FE_slice0, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_FE_SLICE0, FE_FIRST_MB_IN_SLICE_Y, slice_param->macroblock_number / width_mb);
+ REGIO_WRITE_FIELD_LITE(FE_slice0, MSVDX_VEC_MPEG4, CR_VEC_MPEG4_FE_SLICE0, FE_FIRST_MB_IN_SLICE_X, slice_param->macroblock_number % width_mb);
+
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC_MPEG4, CR_VEC_MPEG4_FE_SLICE0) , FE_slice0);
+
+ /* Entdec Front-End controls*/
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC, CR_VEC_ENTDEC_FE_CONTROL) , ctx->FEControl);
+
+ /* FE_SPS0 */
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC_MPEG4, CR_VEC_MPEG4_FE_SPS0) , ctx->FE_SPS0);
+
+ /* FE_VOP_SPS0 */
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC_MPEG4, CR_VEC_MPEG4_FE_VOP_SPS0) , ctx->FE_VOP_SPS0);
+
+
+ if (ctx->pic_params->vol_fields.bits.short_video_header) {
+ /* FE_PICSH_PPS0 */
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC_MPEG4, CR_VEC_MPEG4_FE_PICSH_PPS0) , ctx->FE_PICSH_PPS0);
+ }
+
+ /* FE_VOP_PPS0 */
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC_MPEG4, CR_VEC_MPEG4_FE_VOP_PPS0) , ctx->FE_VOP_PPS0);
+
+ psb_cmdbuf_reg_end_block(cmdbuf);
+}
+
+static void psb__MPEG4_FE_state(context_MPEG4_p ctx)
+{
+ uint32_t lldma_record_offset;
+ psb_cmdbuf_p cmdbuf = ctx->obj_context->cmdbuf;
+
+ /* See RENDER_BUFFER_HEADER */
+ *cmdbuf->cmd_idx++ = CMD_HEADER;
+
+ ctx->p_slice_params = cmdbuf->cmd_idx;
+ *cmdbuf->cmd_idx++ = 0; /* ui32SliceParams */
+
+ lldma_record_offset = psb_cmdbuf_lldma_create(cmdbuf, &(ctx->FE_state_buffer), 0,
+ FE_STATE_SAVE_SIZE, 0, LLDMA_TYPE_MPEG4_FESTATE_SAVE);
+ RELOC(*cmdbuf->cmd_idx, lldma_record_offset, &(cmdbuf->buf));
+ cmdbuf->cmd_idx++;
+
+ lldma_record_offset = psb_cmdbuf_lldma_create(cmdbuf, &(ctx->FE_state_buffer), 0,
+ FE_STATE_SAVE_SIZE, 0, LLDMA_TYPE_MPEG4_FESTATE_RESTORE);
+ RELOC(*cmdbuf->cmd_idx, lldma_record_offset, &(cmdbuf->buf));
+ cmdbuf->cmd_idx++;
+}
+
+static VAStatus psb__MPEG4_process_slice(context_MPEG4_p ctx,
+ VASliceParameterBufferMPEG4 *slice_param,
+ object_buffer_p obj_buffer)
+{
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+
+ ASSERT((obj_buffer->type == VASliceDataBufferType) || (obj_buffer->type == VAProtectedSliceDataBufferType));
+
+ psb__information_message("MPEG4 process slice\n");
+ psb__information_message(" size = %08x offset = %08x\n", slice_param->slice_data_size, slice_param->slice_data_offset);
+ psb__information_message(" macroblock nr = %d offset = %d\n", slice_param->macroblock_number, slice_param->macroblock_offset);
+ psb__information_message(" slice_data_flag = %d\n", slice_param->slice_data_flag);
+ psb__information_message(" interlaced = %d\n", ctx->pic_params->vol_fields.bits.interlaced);
+ psb__information_message(" coded size = %dx%d\n", ctx->picture_width_mb, ctx->picture_height_mb);
+
+ if ((slice_param->slice_data_flag == VA_SLICE_DATA_FLAG_BEGIN) ||
+ (slice_param->slice_data_flag == VA_SLICE_DATA_FLAG_ALL)) {
+ if (0 == slice_param->slice_data_size) {
+ vaStatus = VA_STATUS_ERROR_UNKNOWN;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+ ASSERT(!ctx->split_buffer_pending);
+
+ /* Initialise the command buffer */
+ /* TODO: Reuse current command buffer until full */
+ psb_context_get_next_cmdbuf(ctx->obj_context);
+
+ psb_cmdbuf_lldma_write_bitstream(ctx->obj_context->cmdbuf,
+ obj_buffer->psb_buffer,
+ obj_buffer->psb_buffer->buffer_ofs + slice_param->slice_data_offset,
+ slice_param->slice_data_size,
+ slice_param->macroblock_offset,
+ 0);
+
+ if (slice_param->slice_data_flag == VA_SLICE_DATA_FLAG_BEGIN) {
+ ctx->split_buffer_pending = TRUE;
+ }
+ } else {
+ ASSERT(ctx->split_buffer_pending);
+ ASSERT(0 == slice_param->slice_data_offset);
+ /* Create LLDMA chain to continue buffer */
+ if (slice_param->slice_data_size) {
+ psb_cmdbuf_lldma_write_bitstream_chained(ctx->obj_context->cmdbuf,
+ obj_buffer->psb_buffer,
+ slice_param->slice_data_size);
+ }
+ }
+
+ if ((slice_param->slice_data_flag == VA_SLICE_DATA_FLAG_ALL) ||
+ (slice_param->slice_data_flag == VA_SLICE_DATA_FLAG_END)) {
+ if (slice_param->slice_data_flag == VA_SLICE_DATA_FLAG_END) {
+ ASSERT(ctx->split_buffer_pending);
+ }
+
+ psb__MPEG4_FE_state(ctx);
+
+ psb__MPEG4_write_VLC_tables(ctx);
+
+ psb__MPEG4_set_picture_params(ctx, slice_param);
+
+ psb__MPEG4_set_frontend_registers(ctx, slice_param);
+
+ psb__MPEG4_set_backend_registers(ctx, slice_param);
+
+ psb__MPEG4_write_kick(ctx, slice_param);
+
+ ctx->split_buffer_pending = FALSE;
+ ctx->obj_context->video_op = psb_video_vld;
+ ctx->obj_context->flags = 0;
+ ctx->obj_context->first_mb = 0;
+ ctx->obj_context->last_mb = ((ctx->picture_height_mb - 1) << 8) | (ctx->picture_width_mb - 1);
+ if (psb_context_submit_cmdbuf(ctx->obj_context)) {
+ vaStatus = VA_STATUS_ERROR_UNKNOWN;
+ }
+ }
+ return vaStatus;
+}
+
+static VAStatus psb__MPEG4_process_slice_data(context_MPEG4_p ctx, object_buffer_p obj_buffer)
+{
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ VASliceParameterBufferMPEG4 *slice_param;
+ int buffer_idx = 0;
+ int element_idx = 0;
+
+
+ ASSERT((obj_buffer->type == VASliceDataBufferType) || (obj_buffer->type == VAProtectedSliceDataBufferType));
+
+ ASSERT(ctx->pic_params);
+ ASSERT(ctx->slice_param_list_idx);
+
+ if (!ctx->pic_params) {
+ /* Picture params missing */
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+ if ((NULL == obj_buffer->psb_buffer) ||
+ (0 == obj_buffer->size)) {
+ /* We need to have data in the bitstream buffer */
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ while (buffer_idx < ctx->slice_param_list_idx) {
+ object_buffer_p slice_buf = ctx->slice_param_list[buffer_idx];
+ if (element_idx >= slice_buf->num_elements) {
+ /* Move to next buffer */
+ element_idx = 0;
+ buffer_idx++;
+ continue;
+ }
+
+ slice_param = (VASliceParameterBufferMPEG4 *) slice_buf->buffer_data;
+ slice_param += element_idx;
+ element_idx++;
+ vaStatus = psb__MPEG4_process_slice(ctx, slice_param, obj_buffer);
+ if (vaStatus != VA_STATUS_SUCCESS) {
+ DEBUG_FAILURE;
+ break;
+ }
+ }
+ ctx->slice_param_list_idx = 0;
+
+ return vaStatus;
+}
+
+static VAStatus psb_MPEG4_BeginPicture(
+ object_context_p obj_context)
+{
+ INIT_CONTEXT_MPEG4
+
+ if (ctx->pic_params) {
+ free(ctx->pic_params);
+ ctx->pic_params = NULL;
+ }
+ ctx->load_non_intra_quant_mat = FALSE;
+ ctx->load_intra_quant_mat = FALSE;
+
+ return VA_STATUS_SUCCESS;
+}
+
+static VAStatus psb_MPEG4_RenderPicture(
+ object_context_p obj_context,
+ object_buffer_p *buffers,
+ int num_buffers)
+{
+ int i;
+ INIT_CONTEXT_MPEG4
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+
+ for (i = 0; i < num_buffers; i++) {
+ object_buffer_p obj_buffer = buffers[i];
+
+ switch (obj_buffer->type) {
+ case VAPictureParameterBufferType:
+ psb__information_message("psb_MPEG4_RenderPicture got VAPictureParameterBuffer\n");
+ vaStatus = psb__MPEG4_process_picture_param(ctx, obj_buffer);
+ DEBUG_FAILURE;
+ break;
+
+ case VAIQMatrixBufferType:
+ psb__information_message("psb_MPEG4_RenderPicture got VAIQMatrixBufferType\n");
+ vaStatus = psb__MPEG4_process_iq_matrix(ctx, obj_buffer);
+ DEBUG_FAILURE;
+ break;
+
+ case VASliceParameterBufferType:
+ psb__information_message("psb_MPEG4_RenderPicture got VASliceParameterBufferType\n");
+ vaStatus = psb__MPEG4_add_slice_param(ctx, obj_buffer);
+ DEBUG_FAILURE;
+ break;
+
+ case VASliceDataBufferType:
+ case VAProtectedSliceDataBufferType:
+
+ psb__information_message("psb_MPEG4_RenderPicture got %s\n", SLICEDATA_BUFFER_TYPE(obj_buffer->type));
+ vaStatus = psb__MPEG4_process_slice_data(ctx, obj_buffer);
+ DEBUG_FAILURE;
+ break;
+
+ default:
+ vaStatus = VA_STATUS_ERROR_UNKNOWN;
+ DEBUG_FAILURE;
+ }
+ if (vaStatus != VA_STATUS_SUCCESS) {
+ break;
+ }
+ }
+
+ return vaStatus;
+}
+
+static VAStatus psb_MPEG4_EndPicture(
+ object_context_p obj_context)
+{
+ INIT_CONTEXT_MPEG4
+
+ if (psb_context_flush_cmdbuf(ctx->obj_context)) {
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ if (ctx->pic_params) {
+ free(ctx->pic_params);
+ ctx->pic_params = NULL;
+ }
+
+ return VA_STATUS_SUCCESS;
+}
+
+struct format_vtable_s psb_MPEG4_vtable = {
+queryConfigAttributes:
+ psb_MPEG4_QueryConfigAttributes,
+validateConfig:
+ psb_MPEG4_ValidateConfig,
+createContext:
+ psb_MPEG4_CreateContext,
+destroyContext:
+ psb_MPEG4_DestroyContext,
+beginPicture:
+ psb_MPEG4_BeginPicture,
+renderPicture:
+ psb_MPEG4_RenderPicture,
+endPicture:
+ psb_MPEG4_EndPicture
+};
diff --git a/src/psb_MPEG4.h b/src/psb_MPEG4.h
new file mode 100644
index 0000000..a044526
--- /dev/null
+++ b/src/psb_MPEG4.h
@@ -0,0 +1,37 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ * Waldo Bastian <waldo.bastian@intel.com>
+ *
+ */
+
+#ifndef _PSB_MPEG4_H_
+#define _PSB_MPEG4_H_
+
+#include "psb_drv_video.h"
+
+extern struct format_vtable_s psb_MPEG4_vtable;
+
+#endif /* _PSB_MPEG4_H_ */
diff --git a/src/psb_VC1.c b/src/psb_VC1.c
new file mode 100644
index 0000000..80a6d05
--- /dev/null
+++ b/src/psb_VC1.c
@@ -0,0 +1,2761 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ * Waldo Bastian <waldo.bastian@intel.com>
+ *
+ */
+
+
+#include "psb_VC1.h"
+#include "psb_def.h"
+#include "psb_surface.h"
+#include "psb_cmdbuf.h"
+
+#include "vc1_header.h"
+#include "vc1_defs.h"
+
+#include "hwdefs/reg_io2.h"
+#include "hwdefs/msvdx_offsets.h"
+#include "hwdefs/msvdx_cmds_io2.h"
+#include "hwdefs/msvdx_vec_reg_io2.h"
+#include "hwdefs/msvdx_vec_vc1_reg_io2.h"
+#include "hwdefs/msvdx_rendec_vc1_reg_io2.h"
+#include "hwdefs/dxva_fw_ctrl.h"
+
+#include <stdlib.h>
+#include <stdint.h>
+#include <string.h>
+
+#define GET_SURFACE_INFO_is_defined(psb_surface) ((int) (psb_surface->extra_info[0]))
+#define SET_SURFACE_INFO_is_defined(psb_surface, val) psb_surface->extra_info[0] = (uint32_t) val;
+#define GET_SURFACE_INFO_picture_structure(psb_surface) (psb_surface->extra_info[1])
+#define SET_SURFACE_INFO_picture_structure(psb_surface, val) psb_surface->extra_info[1] = val;
+#define GET_SURFACE_INFO_picture_coding_type(psb_surface) ((int) (psb_surface->extra_info[2]))
+#define SET_SURFACE_INFO_picture_coding_type(psb_surface, val) psb_surface->extra_info[2] = (uint32_t) val;
+#define GET_SURFACE_INFO_colocated_index(psb_surface) ((int) (psb_surface->extra_info[3]))
+#define SET_SURFACE_INFO_colocated_index(psb_surface, val) psb_surface->extra_info[3] = (uint32_t) val;
+
+#define SLICEDATA_BUFFER_TYPE(type) ((type==VASliceDataBufferType)?"VASliceDataBufferType":"VAProtectedSliceDataBufferType")
+
+#define PIXELS_TO_MB(x) ((x + 15) / 16)
+
+#define PRELOAD_BUFFER_SIZE (4*1024)
+#define AUXMSB_BUFFER_SIZE (1024*1024)
+
+
+typedef struct {
+ IMG_UINT32 ui32ContextId;
+ IMG_UINT32 ui32SliceParams;
+ IMG_UINT32 ui32MacroblockNumber;
+} VC1PRELOAD;
+
+/*!
+******************************************************************************
+ @LUTs VLC table selection Look-up Tables
+******************************************************************************/
+
+typedef enum {
+ VC1_VLC_Code_3x2_2x3_tiles = 0x0,
+ VC1_VLC_FourMV_Pattern_0,
+ VC1_VLC_FourMV_Pattern_1,
+ VC1_VLC_FourMV_Pattern_2,
+ VC1_VLC_FourMV_Pattern_3,
+ VC1_VLC_High_Mot_Chroma_DC_Diff_VLC,
+ VC1_VLC_High_Mot_Inter_VLC,
+ VC1_VLC_High_Mot_Intra_VLC,
+ VC1_VLC_High_Mot_Luminance_DC_Diff_VLC,
+ VC1_VLC_High_Rate_Inter_VLC,
+ VC1_VLC_High_Rate_Intra_VLC,
+ VC1_VLC_High_Rate_SUBBLKPAT,
+ VC1_VLC_High_Rate_TTBLK,
+ VC1_VLC_High_Rate_TTMB,
+ VC1_VLC_I_Picture_CBPCY_VLC,
+ VC1_VLC_Interlace_2_MVP_Pattern_0,
+ VC1_VLC_Interlace_2_MVP_Pattern_1,
+ VC1_VLC_Interlace_2_MVP_Pattern_2,
+ VC1_VLC_Interlace_2_MVP_Pattern_3,
+ VC1_VLC_Interlace_4MV_MB_0,
+ VC1_VLC_Interlace_4MV_MB_1,
+ VC1_VLC_Interlace_4MV_MB_2,
+ VC1_VLC_Interlace_4MV_MB_3,
+ VC1_VLC_Interlace_Non_4MV_MB_0,
+ VC1_VLC_Interlace_Non_4MV_MB_1,
+ VC1_VLC_Interlace_Non_4MV_MB_2,
+ VC1_VLC_Interlace_Non_4MV_MB_3,
+ VC1_VLC_Interlaced_CBPCY_0,
+ VC1_VLC_Interlaced_CBPCY_1,
+ VC1_VLC_Interlaced_CBPCY_2,
+ VC1_VLC_Interlaced_CBPCY_3,
+ VC1_VLC_Interlaced_CBPCY_4,
+ VC1_VLC_Interlaced_CBPCY_5,
+ VC1_VLC_Interlaced_CBPCY_6,
+ VC1_VLC_Interlaced_CBPCY_7,
+ VC1_VLC_Low_Mot_Chroma_DC_Diff_VLC,
+ VC1_VLC_Low_Mot_Inter_VLC,
+ VC1_VLC_Low_Mot_Intra_VLC,
+ VC1_VLC_Low_Mot_Luminance_DC_Diff_VLC,
+ VC1_VLC_Low_Rate_SUBBLKPAT,
+ VC1_VLC_Low_Rate_TTBLK,
+ VC1_VLC_Low_Rate_TTMB,
+ VC1_VLC_Medium_Rate_SUBBLKPAT,
+ VC1_VLC_Medium_Rate_TTBLK,
+ VC1_VLC_Medium_Rate_TTMB,
+ VC1_VLC_Mid_Rate_Inter_VLC,
+ VC1_VLC_Mid_Rate_Intra_VLC,
+ VC1_VLC_Mixed_MV_MB_0,
+ VC1_VLC_Mixed_MV_MB_1,
+ VC1_VLC_Mixed_MV_MB_2,
+ VC1_VLC_Mixed_MV_MB_3,
+ VC1_VLC_Mixed_MV_MB_4,
+ VC1_VLC_Mixed_MV_MB_5,
+ VC1_VLC_Mixed_MV_MB_6,
+ VC1_VLC_Mixed_MV_MB_7,
+ VC1_VLC_Mot_Vector_Diff_VLC_0,
+ VC1_VLC_Mot_Vector_Diff_VLC_1,
+ VC1_VLC_Mot_Vector_Diff_VLC_2,
+ VC1_VLC_Mot_Vector_Diff_VLC_3,
+ VC1_VLC_One_Field_Ref_Ilace_MV_0,
+ VC1_VLC_One_Field_Ref_Ilace_MV_1,
+ VC1_VLC_One_Field_Ref_Ilace_MV_2,
+ VC1_VLC_One_Field_Ref_Ilace_MV_3,
+ VC1_VLC_One_MV_MB_0,
+ VC1_VLC_One_MV_MB_1,
+ VC1_VLC_One_MV_MB_2,
+ VC1_VLC_One_MV_MB_3,
+ VC1_VLC_One_MV_MB_4,
+ VC1_VLC_One_MV_MB_5,
+ VC1_VLC_One_MV_MB_6,
+ VC1_VLC_One_MV_MB_7,
+ VC1_VLC_P_Picture_CBPCY_VLC_0,
+ VC1_VLC_P_Picture_CBPCY_VLC_1,
+ VC1_VLC_P_Picture_CBPCY_VLC_2,
+ VC1_VLC_P_Picture_CBPCY_VLC_3,
+ VC1_VLC_Two_Field_Ref_Ilace_MV_0,
+ VC1_VLC_Two_Field_Ref_Ilace_MV_1,
+ VC1_VLC_Two_Field_Ref_Ilace_MV_2,
+ VC1_VLC_Two_Field_Ref_Ilace_MV_3,
+ VC1_VLC_Two_Field_Ref_Ilace_MV_4,
+ VC1_VLC_Two_Field_Ref_Ilace_MV_5,
+ VC1_VLC_Two_Field_Ref_Ilace_MV_6,
+ VC1_VLC_Two_Field_Ref_Ilace_MV_7,
+
+} VC1_eVLCTables;
+
+static IMG_UINT8 MBMODETableFLDI[][2] = {
+ {VC1_VLC_One_MV_MB_0, VC1_VLC_Mixed_MV_MB_0},
+ {VC1_VLC_One_MV_MB_1, VC1_VLC_Mixed_MV_MB_1},
+ {VC1_VLC_One_MV_MB_2, VC1_VLC_Mixed_MV_MB_2},
+ {VC1_VLC_One_MV_MB_3, VC1_VLC_Mixed_MV_MB_3},
+ {VC1_VLC_One_MV_MB_4, VC1_VLC_Mixed_MV_MB_4},
+ {VC1_VLC_One_MV_MB_5, VC1_VLC_Mixed_MV_MB_5},
+ {VC1_VLC_One_MV_MB_6, VC1_VLC_Mixed_MV_MB_6},
+ {VC1_VLC_One_MV_MB_7, VC1_VLC_Mixed_MV_MB_7},
+};
+
+static IMG_UINT8 MBMODETableFRMI[][2] = {
+ {VC1_VLC_Interlace_4MV_MB_0, VC1_VLC_Interlace_Non_4MV_MB_0},
+ {VC1_VLC_Interlace_4MV_MB_1, VC1_VLC_Interlace_Non_4MV_MB_1},
+ {VC1_VLC_Interlace_4MV_MB_2, VC1_VLC_Interlace_Non_4MV_MB_2},
+ {VC1_VLC_Interlace_4MV_MB_3, VC1_VLC_Interlace_Non_4MV_MB_3},
+};
+
+static IMG_UINT8 CBPCYTableProg[] = {
+ VC1_VLC_P_Picture_CBPCY_VLC_0,
+ VC1_VLC_P_Picture_CBPCY_VLC_1,
+ VC1_VLC_P_Picture_CBPCY_VLC_2,
+ VC1_VLC_P_Picture_CBPCY_VLC_3,
+};
+
+static IMG_UINT8 CBPCYTableInterlaced[] = {
+ VC1_VLC_Interlaced_CBPCY_0,
+ VC1_VLC_Interlaced_CBPCY_1,
+ VC1_VLC_Interlaced_CBPCY_2,
+ VC1_VLC_Interlaced_CBPCY_3,
+ VC1_VLC_Interlaced_CBPCY_4,
+ VC1_VLC_Interlaced_CBPCY_5,
+ VC1_VLC_Interlaced_CBPCY_6,
+ VC1_VLC_Interlaced_CBPCY_7,
+};
+
+static IMG_UINT8 FourMVTable[] = {
+ VC1_VLC_FourMV_Pattern_0,
+ VC1_VLC_FourMV_Pattern_1,
+ VC1_VLC_FourMV_Pattern_2,
+ VC1_VLC_FourMV_Pattern_3,
+};
+
+static IMG_UINT8 Interlace2MVTable[] = {
+ VC1_VLC_Interlace_2_MVP_Pattern_0,
+ VC1_VLC_Interlace_2_MVP_Pattern_1,
+ VC1_VLC_Interlace_2_MVP_Pattern_2,
+ VC1_VLC_Interlace_2_MVP_Pattern_3,
+};
+
+static IMG_UINT8 ProgressiveMVTable[] = {
+ VC1_VLC_Mot_Vector_Diff_VLC_0,
+ VC1_VLC_Mot_Vector_Diff_VLC_1,
+ VC1_VLC_Mot_Vector_Diff_VLC_2,
+ VC1_VLC_Mot_Vector_Diff_VLC_3,
+};
+
+static IMG_UINT8 Interlaced1RefMVTable[] = {
+ VC1_VLC_One_Field_Ref_Ilace_MV_0,
+ VC1_VLC_One_Field_Ref_Ilace_MV_1,
+ VC1_VLC_One_Field_Ref_Ilace_MV_2,
+ VC1_VLC_One_Field_Ref_Ilace_MV_3,
+};
+
+static IMG_UINT8 MVTable2RefIlace[] = {
+ VC1_VLC_Two_Field_Ref_Ilace_MV_0,
+ VC1_VLC_Two_Field_Ref_Ilace_MV_1,
+ VC1_VLC_Two_Field_Ref_Ilace_MV_2,
+ VC1_VLC_Two_Field_Ref_Ilace_MV_3,
+ VC1_VLC_Two_Field_Ref_Ilace_MV_4,
+ VC1_VLC_Two_Field_Ref_Ilace_MV_5,
+ VC1_VLC_Two_Field_Ref_Ilace_MV_6,
+ VC1_VLC_Two_Field_Ref_Ilace_MV_7,
+};
+
+static IMG_UINT8 IntraTablePQIndexLT9[] = {
+ VC1_VLC_High_Rate_Intra_VLC,
+ VC1_VLC_High_Mot_Intra_VLC,
+ VC1_VLC_Mid_Rate_Intra_VLC,
+};
+
+static IMG_UINT8 InterTablePQIndexLT9[] = {
+ VC1_VLC_High_Rate_Inter_VLC,
+ VC1_VLC_High_Mot_Inter_VLC,
+ VC1_VLC_Mid_Rate_Inter_VLC,
+};
+
+static IMG_UINT8 IntraTablePQIndexGT8[] = {
+ VC1_VLC_Low_Mot_Intra_VLC,
+ VC1_VLC_High_Mot_Intra_VLC,
+ VC1_VLC_Mid_Rate_Intra_VLC,
+};
+
+static IMG_UINT8 InterTablePQIndexGT8[] = {
+ VC1_VLC_Low_Mot_Inter_VLC,
+ VC1_VLC_High_Mot_Inter_VLC,
+ VC1_VLC_Mid_Rate_Inter_VLC,
+};
+
+/* TODO: Make tables const, don't polute namespace */
+extern IMG_UINT16 gaui16vc1VlcTableData[];
+extern const IMG_UINT16 gui16vc1VlcTableSize;
+extern IMG_UINT16 gaui16vc1VlcIndexData[VLC_INDEX_TABLE_SIZE][3];
+extern const IMG_UINT8 gui8vc1VlcIndexSize;
+
+
+static IMG_UINT16 gaui16Inverse[] = {256, 128, 85, 64, 51, 43, 37, 32}; /* figure 66 */
+static IMG_BOOL gDMVRANGE_ExtHorizontal_RemapTable[] = {0, 1, 0, 1};
+static IMG_BOOL gDMVRANGE_ExtVertical_RemapTable[] = {0, 0, 1, 1};
+static IMG_BYTE gBFRACTION_DenRemapTable[] = {2, 3, 3, 4, 4, 5, 5, 5, 5, 6, 6, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 255, 255};
+static IMG_BYTE gBFRACTION_NumRemapTable[] = {1, 1, 2, 1, 3, 1, 2, 3, 4, 1, 5, 1, 2, 3, 4, 5, 6, 1, 3, 5, 7, 255, 255};
+
+
+#define INIT_CONTEXT_VC1 context_VC1_p ctx = (context_VC1_p) obj_context->format_data;
+
+#define SURFACE(id) ((object_surface_p) object_heap_lookup( &ctx->obj_context->driver_data->surface_heap, id ))
+
+
+static void psb_VC1_QueryConfigAttributes(
+ VAProfile profile,
+ VAEntrypoint entrypoint,
+ VAConfigAttrib *attrib_list,
+ int num_attribs)
+{
+ /* No VC1 specific attributes */
+}
+
+static VAStatus psb_VC1_ValidateConfig(
+ object_config_p obj_config)
+{
+ int i;
+ /* Check all attributes */
+ for (i = 0; i < obj_config->attrib_count; i++) {
+ switch (obj_config->attrib_list[i].type) {
+ case VAConfigAttribRTFormat:
+ /* Ignore */
+ break;
+
+ default:
+ return VA_STATUS_ERROR_ATTR_NOT_SUPPORTED;
+ }
+ }
+
+ return VA_STATUS_SUCCESS;
+}
+
+
+static void psb__VC1_pack_vlc_tables(uint16_t *vlc_packed_data,
+ uint16_t *gaui16vc1VlcTableData,
+ int gui16vc1VlcTableSize)
+{
+ int i, j;
+ /************************************************************************************/
+ /* Pack the VLC tables into 32-bit format ready for DMA into 15-bit wide RAM. */
+ /************************************************************************************/
+ for (i = 0; i < gui16vc1VlcTableSize; i++) {
+ j = i * 3;
+
+ /* opcode 14:12 *//* width 11:9 *//* symbol 8:0 */
+ vlc_packed_data[i] = ((gaui16vc1VlcTableData[j + 0]) << 12) |
+ ((gaui16vc1VlcTableData[j + 1]) << 9) |
+ (gaui16vc1VlcTableData[j + 2]);
+ }
+}
+
+static void psb__VC1_pack_index_table_info(uint32_t *packed_index_table,
+ uint16_t index_data[VLC_INDEX_TABLE_SIZE][3])
+{
+ uint32_t start = 0, end = 0, length = 0, opcode = 0, width = 0;
+ int i;
+
+ for (i = 0; i < VLC_INDEX_TABLE_SIZE; i++) {
+ start = index_data[i][2];
+ if (i < (VLC_INDEX_TABLE_SIZE - 1)) { //Make sure we don't exceed the bound
+ end = index_data[i+1][2];
+ } else {
+ end = start + 500;
+ }
+ length = end - start;
+ width = index_data[i][1];
+ opcode = index_data[i][0];
+
+ psb__information_message("packed_index_table[%02d]->start = %08x length = %08x (%d)\n", i, start * 2, length * 2, length * 2);
+
+ packed_index_table[i] = opcode;
+ packed_index_table[i] <<= 3;
+ packed_index_table[i] |= width;
+ packed_index_table[i] <<= 9;
+ packed_index_table[i] |= length;
+ packed_index_table[i] <<= 16;
+ packed_index_table[i] |= start;
+ }
+}
+
+static VAStatus psb__VC1_check_legal_picture(object_context_p obj_context, object_config_p obj_config)
+{
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+
+ if (NULL == obj_context) {
+ vaStatus = VA_STATUS_ERROR_INVALID_CONTEXT;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ if (NULL == obj_config) {
+ vaStatus = VA_STATUS_ERROR_INVALID_CONFIG;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ /* MSVDX decode capability for VC-1:
+ * SP@ML
+ * MP@HL
+ * AP@L3
+ *
+ * Refer to Table 253 (Limitations of profiles and levels) of SMPTE-421M
+ */
+ switch (obj_config->profile) {
+ case VAProfileVC1Simple:
+ if ((obj_context->picture_width <= 0) || (obj_context->picture_width > 352)
+ || (obj_context->picture_height <= 0) || (obj_context->picture_height > 288)) {
+ vaStatus = VA_STATUS_ERROR_RESOLUTION_NOT_SUPPORTED;
+ }
+ break;
+
+ case VAProfileVC1Main:
+ if ((obj_context->picture_width <= 0) || (obj_context->picture_width > 1920)
+ || (obj_context->picture_height <= 0) || (obj_context->picture_height > 1088)) {
+ vaStatus = VA_STATUS_ERROR_RESOLUTION_NOT_SUPPORTED;
+ }
+ break;
+
+ case VAProfileVC1Advanced:
+ if ((obj_context->picture_width <= 0) || (obj_context->picture_width > 2048)
+ || (obj_context->picture_height <= 0) || (obj_context->picture_height > 2048)) {
+ vaStatus = VA_STATUS_ERROR_RESOLUTION_NOT_SUPPORTED;
+ }
+ break;
+
+ default:
+ vaStatus = VA_STATUS_ERROR_UNSUPPORTED_PROFILE;
+ break;
+ }
+
+ return vaStatus;
+}
+
+static void psb_VC1_DestroyContext(object_context_p obj_context);
+
+static VAStatus psb_VC1_CreateContext(
+ object_context_p obj_context,
+ object_config_p obj_config)
+{
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ context_VC1_p ctx;
+ /* Validate flag */
+ /* Validate picture dimensions */
+ vaStatus = psb__VC1_check_legal_picture(obj_context, obj_config);
+ if (VA_STATUS_SUCCESS != vaStatus) {
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ ctx = (context_VC1_p) calloc(1, sizeof(struct context_VC1_s));
+ if (NULL == ctx) {
+ vaStatus = VA_STATUS_ERROR_ALLOCATION_FAILED;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ obj_context->format_data = (void*) ctx;
+ ctx->obj_context = obj_context;
+ ctx->pic_params = NULL;
+
+ ctx->split_buffer_pending = FALSE;
+
+ ctx->slice_param_list_size = 8;
+ ctx->slice_param_list = (object_buffer_p*) calloc(1, sizeof(object_buffer_p) * ctx->slice_param_list_size);
+ ctx->slice_param_list_idx = 0;
+
+ if (NULL == ctx->slice_param_list) {
+ vaStatus = VA_STATUS_ERROR_ALLOCATION_FAILED;
+ DEBUG_FAILURE;
+ }
+
+ ctx->colocated_buffers_size = obj_context->num_render_targets;
+ ctx->colocated_buffers_idx = 0;
+ ctx->colocated_buffers = (psb_buffer_p) calloc(1, sizeof(struct psb_buffer_s) * ctx->colocated_buffers_size);
+ if (NULL == ctx->colocated_buffers) {
+ vaStatus = VA_STATUS_ERROR_ALLOCATION_FAILED;
+ DEBUG_FAILURE;
+ }
+
+ switch (obj_config->profile) {
+ case VAProfileVC1Simple:
+ ctx->profile = WMF_PROFILE_SIMPLE;
+ break;
+
+ case VAProfileVC1Main:
+ ctx->profile = WMF_PROFILE_MAIN;
+ break;
+
+ case VAProfileVC1Advanced:
+ ctx->profile = WMF_PROFILE_ADVANCED;
+ break;
+
+ default:
+ ASSERT(0 == 1);
+ vaStatus = VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ // TODO
+
+ if (vaStatus == VA_STATUS_SUCCESS) {
+ vaStatus = psb_buffer_create(obj_context->driver_data,
+ PRELOAD_BUFFER_SIZE,
+ psb_bt_vpu_only,
+ &ctx->preload_buffer);
+ DEBUG_FAILURE;
+ }
+
+ if (vaStatus == VA_STATUS_SUCCESS) {
+ vaStatus = psb_buffer_create(obj_context->driver_data,
+ AUXMSB_BUFFER_SIZE,
+ psb_bt_vpu_only,
+ &ctx->aux_msb_buffer);
+ DEBUG_FAILURE;
+ }
+
+ if (vaStatus == VA_STATUS_SUCCESS) {
+ vaStatus = psb_buffer_create(obj_context->driver_data,
+ gui16vc1VlcTableSize * sizeof(IMG_UINT16),
+ psb_bt_cpu_vpu,
+ &ctx->vlc_packed_table);
+ DEBUG_FAILURE;
+ }
+ if (vaStatus == VA_STATUS_SUCCESS) {
+ void *vlc_packed_data_address;
+ if (0 == psb_buffer_map(&ctx->vlc_packed_table, &vlc_packed_data_address)) {
+ psb__VC1_pack_vlc_tables(vlc_packed_data_address, gaui16vc1VlcTableData, gui16vc1VlcTableSize);
+ psb_buffer_unmap(&ctx->vlc_packed_table);
+ psb__VC1_pack_index_table_info(ctx->vlc_packed_index_table, gaui16vc1VlcIndexData);
+ } else {
+ vaStatus = VA_STATUS_ERROR_ALLOCATION_FAILED;
+ DEBUG_FAILURE;
+ }
+ }
+
+ if (vaStatus != VA_STATUS_SUCCESS) {
+ psb_VC1_DestroyContext(obj_context);
+ }
+
+ return vaStatus;
+}
+
+static void psb_VC1_DestroyContext(
+ object_context_p obj_context)
+{
+ INIT_CONTEXT_VC1
+ int i;
+
+ psb_buffer_destroy(&ctx->vlc_packed_table);
+ psb_buffer_destroy(&ctx->aux_msb_buffer);
+ psb_buffer_destroy(&ctx->preload_buffer);
+
+ if (ctx->pic_params) {
+ free(ctx->pic_params);
+ ctx->pic_params = NULL;
+ }
+
+ if (ctx->slice_param_list) {
+ free(ctx->slice_param_list);
+ ctx->slice_param_list = NULL;
+ }
+
+ if (ctx->colocated_buffers) {
+ for (i = 0; i < ctx->colocated_buffers_idx; ++i)
+ psb_buffer_destroy(&(ctx->colocated_buffers[i]));
+
+ free(ctx->colocated_buffers);
+ ctx->colocated_buffers = NULL;
+ }
+
+ free(obj_context->format_data);
+ obj_context->format_data = NULL;
+}
+
+static VAStatus psb__VC1_allocate_colocated_buffer(context_VC1_p ctx, object_surface_p obj_surface, uint32_t size)
+{
+ psb_surface_p surface = obj_surface->psb_surface;
+
+ psb__information_message("psb_VC1: Allocationg colocated buffer for surface %08x\n", surface);
+
+ if (!GET_SURFACE_INFO_colocated_index(surface)) {
+ VAStatus vaStatus;
+ psb_buffer_p buf;
+ int index = ctx->colocated_buffers_idx;
+ if (index >= ctx->colocated_buffers_size) {
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+ buf = &(ctx->colocated_buffers[index]);
+ vaStatus = psb_buffer_create(ctx->obj_context->driver_data, size, psb_bt_vpu_only, buf);
+ if (VA_STATUS_SUCCESS != vaStatus) {
+ return vaStatus;
+ }
+ ctx->colocated_buffers_idx++;
+ SET_SURFACE_INFO_colocated_index(surface, index + 1); /* 0 means unset, index is offset by 1 */
+ }
+ return VA_STATUS_SUCCESS;
+}
+
+static psb_buffer_p psb__VC1_lookup_colocated_buffer(context_VC1_p ctx, psb_surface_p surface)
+{
+ psb__information_message("psb_VC1: Looking up colocated buffer for surface %08x\n", surface);
+ int index = GET_SURFACE_INFO_colocated_index(surface);
+ if (!index) {
+ return NULL;
+ }
+ return &(ctx->colocated_buffers[index-1]); /* 0 means unset, index is offset by 1 */
+}
+
+static uint32_t psb__vc1_get_izz_scan_index(context_VC1_p ctx)
+{
+ if (ctx->pic_params->picture_fields.bits.frame_coding_mode == VC1_FCM_FRMI) {
+ // P_PICTURE_ADV_FRAME_INTERLACE
+ return 3;
+ }
+ if (PIC_TYPE_IS_INTRA(ctx->pic_params->picture_fields.bits.picture_type)) {
+ // I-picture tables
+ return 4;
+ } else {
+ /* Assume P frame */
+ if ((ctx->profile == WMF_PROFILE_SIMPLE) ||
+ (ctx->profile == WMF_PROFILE_MAIN)) {
+ // P-picture Simple/Main tables
+ return 0;
+ } else { /* Advanced profile */
+ if (ctx->pic_params->picture_fields.bits.frame_coding_mode == VC1_FCM_P) {
+ // P-picture Advanced Progressive tables
+ return 1;
+ } else { /* Interlaced Field */
+ // P-picture Advanced Field Interlaced tables
+ return 2;
+ }
+ }
+ }
+}
+
+
+#ifdef DEBUG_TRACE
+#define psb__trace_message(...)
+
+#define P(x) psb__trace_message("PARAMS: " #x "\t= %d\n", p->x)
+static void psb__VC1_trace_pic_params(VAPictureParameterBufferVC1 *p)
+{
+#define P0(x) psb__trace_message("PARAMS: " #x "\t= %d\n", p->sequence_fields.bits.x)
+ P0(interlace);
+ P0(syncmarker);
+ P0(overlap);
+
+ P(coded_width);
+ P(coded_height);
+
+#define P2(x) psb__trace_message("PARAMS: " #x "\t= %d\n", p->picture_fields.bits.x)
+ /* picture_fields */
+ P2(picture_type);
+ P2(frame_coding_mode);
+ P2(top_field_first);
+ P2(is_first_field);
+ P2(intensity_compensation);
+
+#define P4(x) psb__trace_message("PARAMS: " #x "\t= %d\n", p->entrypoint_fields.bits.x)
+ P4(closed_entry);
+ P4(broken_link);
+ P4(loopfilter);
+
+ P(conditional_overlap_flag);
+ P(fast_uvmc_flag);
+
+#define P3(x) psb__trace_message("PARAMS: " #x "\t= %d\n", p->range_mapping_fields.bits.x)
+ /* range_mapping_fields */
+ P3(luma_flag);
+ P3(luma);
+ P3(chroma_flag);
+ P3(chroma);
+
+ P(b_picture_fraction);
+ P(cbp_table);
+ P(mb_mode_table);
+ P(range_reduction_frame);
+ P(rounding_control);
+ P(post_processing);
+ P(picture_resolution_index);
+ P(luma_scale);
+ P(luma_shift);
+
+ P(raw_coding.value);
+ P(bitplane_present.value);
+
+#define P4(x) psb__trace_message("PARAMS: " #x "\t= %d\n", p->reference_fields.bits.x)
+ P4(reference_distance_flag);
+ P4(reference_distance);
+ P4(num_reference_pictures);
+ P4(reference_field_pic_indicator);
+
+#define P5(x) psb__trace_message("PARAMS: " #x "\t= %d\n", p->mv_fields.bits.x)
+ P5(mv_mode);
+ P5(mv_mode2);
+
+ P5(mv_table);
+ P5(two_mv_block_pattern_table);
+ P5(four_mv_switch);
+ P5(four_mv_block_pattern_table);
+ P5(extended_mv_flag);
+ P5(extended_mv_range);
+ P5(extended_dmv_flag);
+ P5(extended_dmv_range);
+
+#define P6(x) psb__trace_message("PARAMS: " #x "\t= %d\n", p->pic_quantizer_fields.bits.x)
+
+ P6(dquant);
+ P6(quantizer);
+ P6(half_qp);
+ P6(pic_quantizer_scale);
+ P6(pic_quantizer_type);
+ P6(dq_frame);
+ P6(dq_profile);
+ P6(dq_sb_edge);
+ P6(dq_db_edge);
+ P6(dq_binary_level);
+ P6(alt_pic_quantizer);
+
+#define P7(x) psb__trace_message("PARAMS: " #x "\t= %d\n", p->transform_fields.bits.x)
+
+ P7(variable_sized_transform_flag);
+ P7(mb_level_transform_type_flag);
+ P7(frame_level_transform_type);
+ P7(transform_ac_codingset_idx1);
+ P7(transform_ac_codingset_idx2);
+ P7(intra_transform_dc_table);
+}
+#endif
+
+static VAStatus psb__VC1_process_picture_param(context_VC1_p ctx, object_buffer_p obj_buffer)
+{
+ VAStatus vaStatus;
+ VAPictureParameterBufferVC1 *pic_params;
+ IMG_UINT8 ui8LumaScale1 = 0, ui8LumaShift1 = 0, ui8LumaScale2 = 0, ui8LumaShift2 = 0;
+
+ ASSERT(obj_buffer->type == VAPictureParameterBufferType);
+ ASSERT(obj_buffer->num_elements == 1);
+ ASSERT(obj_buffer->size == sizeof(VAPictureParameterBufferVC1));
+
+ if ((obj_buffer->num_elements != 1) ||
+ (obj_buffer->size != sizeof(VAPictureParameterBufferVC1))) {
+ vaStatus = VA_STATUS_ERROR_UNKNOWN;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ /* Transfer ownership of VAPictureParameterBufferVC1 data */
+ pic_params = (VAPictureParameterBufferVC1 *) obj_buffer->buffer_data;
+ if (ctx->pic_params) {
+ free(ctx->pic_params);
+ }
+ ctx->pic_params = pic_params;
+ obj_buffer->buffer_data = NULL;
+ obj_buffer->size = 0;
+
+#ifdef DEBUG_TRACE
+ psb__VC1_trace_pic_params(pic_params);
+#endif
+
+ if (pic_params->pic_quantizer_fields.bits.quantizer == 0) {
+ /* Non uniform quantizer indicates PQINDEX > 8 */
+ ctx->pqindex_gt8 = (pic_params->pic_quantizer_fields.bits.pic_quantizer_type == 0);
+ } else {
+ /* PQUANT (pic_quantizer_scale) == PQINDEX */
+ ctx->pqindex_gt8 = (pic_params->pic_quantizer_fields.bits.pic_quantizer_scale > 8);
+ }
+
+ /*
+ * We decode to ctx->decoded_surface
+ * the out of loop decoded picture is stored in ctx->obj_context->current_render_target
+ */
+ if (pic_params->inloop_decoded_picture == VA_INVALID_SURFACE) {
+ /* No out of loop deblocking */
+ ctx->decoded_surface = ctx->obj_context->current_render_target;
+ } else {
+ ctx->decoded_surface = SURFACE(pic_params->inloop_decoded_picture);
+ if (NULL == ctx->decoded_surface) {
+ vaStatus = VA_STATUS_ERROR_INVALID_SURFACE;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+ }
+ /* Lookup surfaces for backward/forward references */
+ ctx->forward_ref_surface = NULL;
+ ctx->backward_ref_surface = NULL;
+ if (pic_params->forward_reference_picture != VA_INVALID_SURFACE) {
+ ctx->forward_ref_surface = SURFACE(pic_params->forward_reference_picture);
+ }
+ if (pic_params->backward_reference_picture != VA_INVALID_SURFACE) {
+ ctx->backward_ref_surface = SURFACE(pic_params->backward_reference_picture);
+ }
+
+#if 0
+ if (NULL == ctx->forward_ref_surface) {
+ /* for mmu fault protection */
+ ctx->forward_ref_surface = ctx->decoded_surface;
+ }
+ if (NULL == ctx->backward_ref_surface) {
+ /* for mmu fault protection */
+ ctx->backward_ref_surface = ctx->decoded_surface;
+ }
+#endif
+
+ psb__information_message("Target ref = %08x ID = %08x\n", ctx->obj_context->current_render_target->psb_surface, ctx->obj_context->current_render_target->surface_id);
+ psb__information_message("Decoded ref = %08x ID = %08x\n", ctx->decoded_surface->psb_surface, pic_params->inloop_decoded_picture);
+ psb__information_message("Forward ref = %08x ID = %08x\n", ctx->forward_ref_surface ? ctx->forward_ref_surface->psb_surface : 0, pic_params->forward_reference_picture);
+ psb__information_message("Backwrd ref = %08x ID = %08x\n", ctx->backward_ref_surface ? ctx->backward_ref_surface->psb_surface : 0, pic_params->backward_reference_picture);
+
+ // NOTE: coded_width and coded_height do not have to be an exact multiple of MBs
+
+ ctx->display_picture_width = pic_params->coded_width;
+ ctx->display_picture_height = pic_params->coded_height;
+ ctx->picture_width_mb = PIXELS_TO_MB(ctx->display_picture_width);
+ ctx->picture_height_mb = PIXELS_TO_MB(ctx->display_picture_height);
+ ctx->coded_picture_width = ctx->picture_width_mb * 16;
+ ctx->coded_picture_height = ctx->picture_height_mb * 16;
+ if ((WMF_PROFILE_ADVANCED == ctx->profile) && (VC1_FCM_FLDI == pic_params->picture_fields.bits.frame_coding_mode)) {
+ ctx->picture_height_mb /= 2;
+ ctx->coded_picture_height = ctx->picture_height_mb * 16 * 2;
+ }
+
+ ctx->size_mb = ctx->picture_width_mb * ctx->picture_height_mb;
+
+ uint32_t colocated_size = (ctx->size_mb + 1) * 2 * VC1_MB_PARAM_STRIDE + 0x2000;
+
+ vaStatus = psb__VC1_allocate_colocated_buffer(ctx, ctx->decoded_surface, colocated_size);
+ vaStatus = psb__VC1_allocate_colocated_buffer(ctx, ctx->obj_context->current_render_target, colocated_size);
+
+ if (VA_STATUS_SUCCESS != vaStatus) {
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ /* TODO: Store top_field_first and frame_coding_mode (or even all of pic_params) for the current frame
+ * so that it can be referenced when the same frame is used as reference frame
+ */
+
+ if (ctx->profile != WMF_PROFILE_ADVANCED) {
+ /* Simple and Main profiles always use progressive pictures*/
+ pic_params->picture_fields.bits.frame_coding_mode = VC1_FCM_P;
+ }
+
+ if ((pic_params->picture_fields.bits.frame_coding_mode == VC1_FCM_P) || (pic_params->picture_fields.bits.frame_coding_mode == VC1_FCM_FRMI)) {
+ pic_params->picture_fields.bits.top_field_first = 1;
+ }
+
+ ctx->bitplane_present = 0;
+ switch (pic_params->picture_fields.bits.picture_type) {
+ case WMF_PTYPE_I:
+ case WMF_PTYPE_BI:
+ ctx->bitplane_present |= (pic_params->bitplane_present.flags.bp_overflags && !pic_params->raw_coding.flags.overflags) ? 0x04 : 0;
+ ctx->bitplane_present |= (pic_params->bitplane_present.flags.bp_ac_pred && !pic_params->raw_coding.flags.ac_pred) ? 0x02 : 0;
+ ctx->bitplane_present |= (pic_params->bitplane_present.flags.bp_field_tx && !pic_params->raw_coding.flags.field_tx) ? 0x01 : 0;
+ break;
+
+ case WMF_PTYPE_P:
+ ctx->bitplane_present |= (pic_params->bitplane_present.flags.bp_mv_type_mb && !pic_params->raw_coding.flags.mv_type_mb) ? 0x04 : 0;
+ ctx->bitplane_present |= (pic_params->bitplane_present.flags.bp_skip_mb && !pic_params->raw_coding.flags.skip_mb) ? 0x02 : 0;
+ break;
+
+ case WMF_PTYPE_B: /* B picture */
+ ctx->bitplane_present |= (pic_params->bitplane_present.flags.bp_forward_mb && !pic_params->raw_coding.flags.forward_mb) ? 0x04 : 0;
+ ctx->bitplane_present |= (pic_params->bitplane_present.flags.bp_skip_mb && !pic_params->raw_coding.flags.skip_mb) ? 0x02 : 0;
+ ctx->bitplane_present |= (pic_params->bitplane_present.flags.bp_direct_mb && !pic_params->raw_coding.flags.direct_mb) ? 0x01 : 0;
+ break;
+
+ default:
+ break;
+ }
+ psb__information_message("bitplane_present_flag = %02x raw_coding_flag = %02x bitplane_present = %02x\n",
+ pic_params->bitplane_present.value, pic_params->raw_coding.value, ctx->bitplane_present);
+
+ if (pic_params->reference_fields.bits.reference_distance_flag == 0) {
+ pic_params->reference_fields.bits.reference_distance = 0;
+ }
+
+ /* conditional_overlap_flag is not always defined, but MSVDX expects it to be set in those cases anyway */
+ if (ctx->profile == WMF_PROFILE_ADVANCED) {
+ if (pic_params->sequence_fields.bits.overlap == FALSE) {
+ ctx->condover = 0; /* No overlap smoothing */
+ } else if (pic_params->pic_quantizer_fields.bits.pic_quantizer_scale < 9) {
+ ctx->condover = pic_params->conditional_overlap_flag;
+ } else {
+ ctx->condover = 2;
+ }
+ } else {
+ if ((pic_params->picture_fields.bits.picture_type == WMF_PTYPE_B) || (pic_params->sequence_fields.bits.overlap == FALSE) || (pic_params->pic_quantizer_fields.bits.pic_quantizer_scale < 9)) {
+ ctx->condover = 0; /* No overlap smoothing */
+ } else {
+ ctx->condover = 2;
+ }
+ }
+
+ /************************** Calculate the IZZ scan index ****************************/
+ ctx->scan_index = psb__vc1_get_izz_scan_index(ctx);
+ /************************************************************************************/
+
+ /**************************** Calculate MVMODE and MVMODE2 **************************/
+ ctx->mv_mode = pic_params->mv_fields.bits.mv_mode;
+ if (ctx->mv_mode == WMF_MVMODE_INTENSITY_COMPENSATION) {
+ ctx->mv_mode = pic_params->mv_fields.bits.mv_mode2;
+ }
+
+ /* Neither MVMODE nor MVMODE2 are signaled at the picture level for interlaced frame pictures,
+ but MVMODE can be determine for P pictures depending on the value of MV4SWITCH, and for B
+ pictures it is by default 1MV mode. */
+ if ((pic_params->picture_fields.bits.frame_coding_mode == VC1_FCM_FRMI) && PIC_TYPE_IS_INTER(pic_params->picture_fields.bits.picture_type)) {
+ if ((pic_params->picture_fields.bits.picture_type == WMF_PTYPE_P) && (pic_params->mv_fields.bits.four_mv_switch == 1)) {
+ ctx->mv_mode = WMF_MVMODE_MIXED_MV;
+ pic_params->mv_fields.bits.mv_mode = WMF_MVMODE_MIXED_MV;
+ } else {
+ ctx->mv_mode = WMF_MVMODE_1MV;
+ pic_params->mv_fields.bits.mv_mode = WMF_MVMODE_1MV;
+ }
+ }
+ /************************************************************************************/
+
+
+ /******************************** Calculate HALFPEL *********************************/
+ if ((ctx->mv_mode == WMF_MVMODE_1MV) || (ctx->mv_mode == WMF_MVMODE_MIXED_MV)) {
+ ctx->half_pel = 0;
+ } else {
+ ctx->half_pel = 1;
+ }
+ /************************************************************************************/
+
+ /* TODO: Are we using the correct size for this ? */
+ ctx->pull_back_x = COMPUTE_PULLBACK(pic_params->coded_width);
+ ctx->pull_back_y = COMPUTE_PULLBACK(pic_params->coded_height);
+
+ if (pic_params->mv_fields.bits.extended_dmv_flag == 1) {
+ ctx->extend_x = gDMVRANGE_ExtHorizontal_RemapTable[pic_params->mv_fields.bits.extended_dmv_range];
+ ctx->extend_y = gDMVRANGE_ExtVertical_RemapTable[pic_params->mv_fields.bits.extended_dmv_range];
+ } else {
+ ctx->extend_x = IMG_FALSE;
+ ctx->extend_y = IMG_FALSE;
+ }
+
+ /* B interlaced field picture and ...?? */
+ ctx->ui32ScaleFactor = 0;
+ ctx->i8FwrdRefFrmDist = 0;
+ ctx->i8BckwrdRefFrmDist = 0;
+ if (pic_params->picture_fields.bits.picture_type == WMF_PTYPE_B) {
+ IMG_UINT32 ui32BFractionDen;
+ IMG_UINT32 ui32BFractionNum;
+
+ IMG_UINT32 ui32FrameReciprocal;
+
+ if (pic_params->b_picture_fraction > (sizeof(gBFRACTION_DenRemapTable) / sizeof(IMG_BYTE) - 1))
+ pic_params->b_picture_fraction = sizeof(gBFRACTION_DenRemapTable) / sizeof(IMG_BYTE) - 1;
+
+ ui32BFractionDen = gBFRACTION_DenRemapTable[pic_params->b_picture_fraction];
+ ui32BFractionNum = gBFRACTION_NumRemapTable[pic_params->b_picture_fraction];
+
+ if (ui32BFractionDen > (sizeof(gaui16Inverse) / sizeof(IMG_UINT16)))
+ ui32BFractionDen = sizeof(gaui16Inverse) / sizeof(IMG_UINT16);
+
+ if (ui32BFractionDen == 0) {
+ psb__error_message("Invalid ui32BFractionDen value %d\n", ui32BFractionDen);
+ ui32BFractionDen = 1;
+ }
+
+ ui32FrameReciprocal = gaui16Inverse[ui32BFractionDen - 1];
+ ctx->ui32ScaleFactor = ui32BFractionNum * ui32FrameReciprocal;
+
+ if (pic_params->picture_fields.bits.frame_coding_mode == VC1_FCM_FLDI) {
+ ctx->i8FwrdRefFrmDist = (IMG_INT8)((ctx->ui32ScaleFactor * pic_params->reference_fields.bits.reference_distance) >> 8); /* 10.4.6.2 */
+ ctx->i8BckwrdRefFrmDist = pic_params->reference_fields.bits.reference_distance - ctx->i8FwrdRefFrmDist - 1;
+
+ if (ctx->i8BckwrdRefFrmDist < 0) {
+ ctx->i8BckwrdRefFrmDist = 0;
+ }
+ }
+ }
+
+ /* Compute the mode config parameter */
+ /*
+ MODE_CONFIG[1:0] =
+ VC-1 intensity compensation flag, derived from MVMODE = Intensity compensation, and INTCOMPFIELD
+ 00 – No intensity compensation
+ 01 – Intensity compensation for top field
+ 10 – Intensity compensation for bottom field
+ 11 – Intensity compensation for the frame
+
+ MODE_CONFIG[3:2] =
+ VC-1 reference range scaling, derived from RANGERED, RANGEREDFRM for current frame and reference frame.
+ 00 – No scaling
+ 01 – Scale down
+ 10 – Scale up
+ 11 – No scaling
+ */
+
+ /****************************** INTENSITY COMPENSATION ******************************/
+ /* For each NEW reference frame, rotate IC history */
+ if (PIC_TYPE_IS_REF(pic_params->picture_fields.bits.picture_type) &&
+ pic_params->picture_fields.bits.is_first_field &&
+ (pic_params->picture_fields.bits.frame_coding_mode == VC1_FCM_FLDI)) {
+ /*
+ This is the first field picture of a new frame, so move the IC params for both field
+ pictures of the last frame (from position [1][0] for the first field and position [1][1] for
+ the second field to positions [0][0] and [0][1] respectevely).
+ */
+ memcpy(&ctx->sICparams[0][0], &ctx->sICparams[1][0], sizeof(IC_PARAM));
+ memcpy(&ctx->sICparams[0][1], &ctx->sICparams[1][1], sizeof(IC_PARAM));
+
+ memset(&ctx->sICparams[1][0], 0, sizeof(IC_PARAM));
+ memset(&ctx->sICparams[1][1], 0, sizeof(IC_PARAM));
+ }
+
+ if (pic_params->picture_fields.bits.picture_type == WMF_PTYPE_P) {
+ ctx->ui8CurrLumaScale1 = 0;
+ ctx->ui8CurrLumaShift1 = 0;
+ ctx->ui8CurrLumaScale2 = 0;
+ ctx->ui8CurrLumaShift2 = 0;
+
+ if (pic_params->picture_fields.bits.frame_coding_mode != VC1_FCM_FRMI) {
+ if (pic_params->picture_fields.bits.intensity_compensation) {
+ /* Intensity compensation of reference */
+ if (pic_params->picture_fields.bits.frame_coding_mode != VC1_FCM_FLDI) { // progressive picture
+ ctx->mode_config = 0x3;
+
+ ui8LumaScale1 = pic_params->luma_scale & 0x3F;
+ ui8LumaShift1 = pic_params->luma_shift & 0x3F;
+
+ if (ui8LumaScale1 != 0 || ui8LumaShift1 != 0) {
+ ctx->ui8CurrLumaScale1 = ui8LumaScale1;
+ ctx->ui8CurrLumaShift1 = ui8LumaShift1;
+ }
+ } else { // field interlaced picture
+ // top field
+ ui8LumaScale1 = pic_params->luma_scale & 0x3F;
+ ui8LumaShift1 = pic_params->luma_shift & 0x3F;
+
+ // bottom field
+ ui8LumaScale2 = ui8LumaScale1; /* TODO: How to keep track of top/bottom field intensity comp? */
+ ui8LumaShift2 = ui8LumaShift1; /* TODO: How to keep track of top/bottom field intensity comp? */
+
+ /* Check what fields undergo intensity compensation */
+ ctx->ui8IntCompField = 0;
+ if (ui8LumaScale1 != 0 || ui8LumaShift1 != 0) {
+ ctx->ui8IntCompField = 1;
+ }
+ if (ui8LumaScale2 != 0 || ui8LumaShift2 != 0) {
+ ctx->ui8IntCompField |= 2;
+ }
+
+ switch (ctx->ui8IntCompField) {
+ case 0: /* none */
+ ctx->mode_config = 0x0;
+ break;
+
+ case 1: /* top */
+ ctx->mode_config = 0x1;
+
+ // IC parameters for top field
+ ctx->ui8CurrLumaScale1 = ui8LumaScale1;
+ ctx->ui8CurrLumaShift1 = ui8LumaShift1;
+ break;
+
+ case 2: /* bottom */
+ ctx->mode_config = 0x2;
+
+ // IC parameters for bottom field
+ ctx->ui8CurrLumaScale2 = ui8LumaScale2;
+ ctx->ui8CurrLumaShift2 = ui8LumaShift2;
+ break;
+
+ case 3: /* both */
+ ctx->mode_config = 0x3;
+
+ // IC parameters for top field
+ ctx->ui8CurrLumaScale1 = ui8LumaScale1;
+ ctx->ui8CurrLumaShift1 = ui8LumaShift1;
+
+ // IC parameters for bottom field
+ ctx->ui8CurrLumaScale2 = ui8LumaScale2;
+ ctx->ui8CurrLumaShift2 = ui8LumaShift2;
+ break;
+ }
+ }
+ } else {
+ ctx->mode_config = 0;
+ }
+ } else { // interlaced frame P picture
+ if (pic_params->picture_fields.bits.intensity_compensation) { /* iINSO */
+ ctx->mode_config = 0x3; // intensity compensate whole frame
+ } else {
+ ctx->mode_config = 0;
+ }
+ }
+ } else if (PIC_TYPE_IS_INTRA(pic_params->picture_fields.bits.picture_type)) {
+ ctx->mode_config = 0;
+ }
+
+ /*
+ 10.3.8 Intensity Compensation:
+ If intensity compensation is performed on a reference field, then after decoding the field,
+ the post-compensated pixel values shall be retained and shall be used when decoding the next
+ field. If the next field indicates that the field that was intensity compensated by the
+ previous field is to have intensity compensation performed again then the post-compensated
+ field shall be used. Therefore, when a reference field has intensity compensation performed
+ twice, the result of the first intensity compensation operation shall be used as input
+ for the second intensity compensation.
+ */
+ /*
+ Don't forget point 9.1.1.4 in VC1 Spec:
+
+ If the current frame, coded as two interlace field pictures, contains at least one P or B
+ field, and if this P or B field uses one or both field in another frame as a reference, where
+ the reference frame was also coded as a interlace field pictue, then the TFF of the current
+ frame and reference frame shall be the same.
+ */
+ if ((pic_params->picture_fields.bits.picture_type == WMF_PTYPE_P) && (pic_params->picture_fields.bits.frame_coding_mode == VC1_FCM_FLDI)) {
+ if (pic_params->picture_fields.bits.top_field_first) { // top field first
+ if (!pic_params->picture_fields.bits.is_first_field) { // this is the second field picture (and bottom)
+ if (ctx->ui8IntCompField & 0x1) {
+ /* The second and bottom field picture of the current frame
+ intensity compensates the top field of the current frame. */
+ ctx->sICparams[1][0].ui8LumaScale1 = ui8LumaScale1;
+ ctx->sICparams[1][0].ui8LumaShift1 = ui8LumaShift1;
+ ctx->sICparams[1][0].ui8IC1 = 1;
+ }
+ if (ctx->ui8IntCompField & 0x2) {
+ /* The second and bottom field picture of the current frame
+ intensity compensates the bottom field of the previous frame. */
+ ctx->sICparams[0][1].ui8LumaScale2 = ui8LumaScale2;
+ ctx->sICparams[0][1].ui8LumaShift2 = ui8LumaShift2;
+ ctx->sICparams[0][1].ui8IC2 = 2;
+ }
+ } else { // first field picture (and top)
+ if (ctx->ui8IntCompField & 0x1) {
+ /* The first and top field picture of the current frame
+ intensity compensates the top field of the previous frame. */
+ ctx->sICparams[0][0].ui8LumaScale2 = ui8LumaScale1;
+ ctx->sICparams[0][0].ui8LumaShift2 = ui8LumaShift1;
+ ctx->sICparams[0][0].ui8IC2 = 1;
+ }
+ if (ctx->ui8IntCompField & 0x2) {
+ /* The first and top field picture of the current frame
+ intensity compensates the bottom field of the previous frame. */
+ ctx->sICparams[0][1].ui8LumaScale1 = ui8LumaScale2;
+ ctx->sICparams[0][1].ui8LumaShift1 = ui8LumaShift2;
+ ctx->sICparams[0][1].ui8IC1 = 2;
+ }
+ }
+ } else { // bottom field first
+ if (!pic_params->picture_fields.bits.is_first_field) { // this is the second field picture (and top)
+ if (ctx->ui8IntCompField & 0x2) {
+ /* The second and top field picture of the current frame
+ intensity compensates the bottom field of the current frame. */
+ ctx->sICparams[1][1].ui8LumaScale1 = ui8LumaScale2;
+ ctx->sICparams[1][1].ui8LumaShift1 = ui8LumaShift2;
+ ctx->sICparams[1][1].ui8IC1 = 2;
+ }
+ if (ctx->ui8IntCompField & 0x1) {
+ /* The second and top field picture of the current frame
+ intensity compensates the top field of the previous frame. */
+ ctx->sICparams[0][0].ui8LumaScale2 = ui8LumaScale1;
+ ctx->sICparams[0][0].ui8LumaShift2 = ui8LumaShift1;
+ ctx->sICparams[0][0].ui8IC2 = 1;
+ }
+ } else { // first field picture (and bottom)
+ if (ctx->ui8IntCompField & 0x1) {
+ /* The first and bottom field picture of the current frame
+ intensity compensates the top field of the previous frame. */
+ ctx->sICparams[0][0].ui8LumaScale1 = ui8LumaScale1;
+ ctx->sICparams[0][0].ui8LumaShift1 = ui8LumaShift1;
+ ctx->sICparams[0][0].ui8IC1 = 1;
+ }
+ if (ctx->ui8IntCompField & 0x2) {
+ /* The first and bottom field picture of the current frame
+ intensity compensates the bottom field of the previous frame. */
+ ctx->sICparams[0][1].ui8LumaScale2 = ui8LumaScale2;
+ ctx->sICparams[0][1].ui8LumaShift2 = ui8LumaShift2;
+ ctx->sICparams[0][1].ui8IC2 = 2;
+ }
+ }
+ }
+ }
+ /************************************************************************************/
+
+ /********************************* RANGE REDUCTION **********************************/
+ /* Determine the difference between the range reduction of current and reference picture */
+ if (ctx->profile == WMF_PROFILE_MAIN) {
+ /* Range Reduction is only enabled for Main Profile */
+ /* The RANGEREDFRM values from the reference pictures are;
+ psVLDContext->bRef0RangeRed
+ psVLDContext->bRef1RangeRed */
+
+ switch (pic_params->picture_fields.bits.picture_type) {
+ case WMF_PTYPE_I:
+ case WMF_PTYPE_BI:
+ /* no reference picture scaling */
+ break;
+
+ case WMF_PTYPE_P: /* P picture */
+ /*
+ 8.3.4.11 also need to scale the previously reconstructed anchor frame prior to using it for MC if:
+ - RANGEREDFRM == 1 and ref RANGEREDFRM flag is not signalled scale down previous reconstructed frame.
+ - RANGEREDFRM == 0 and ref RANGEREDFRM flag is set scale up previous reconstructed frame.
+ */
+ if (ctx->pic_params->range_reduction_frame && !ctx->bRef0RangeRed) {
+ ctx->mode_config |= (0x1 << 2); // scale down previous reconstructed frame
+ } else if (!ctx->pic_params->range_reduction_frame && ctx->bRef0RangeRed) {
+ ctx->mode_config |= (0x2 << 2); // scale up previous reconstructed frame
+ } else { /* neither or both are set */
+ ctx->mode_config |= (0x0 << 2); // no scaling of reference
+ }
+ break;
+
+ case WMF_PTYPE_B: /* B picture */
+ /*
+ 8.4.4.14 RANGEREDFRM shall be the same as for the temporally subsequent anchor frame (display order)
+ If this is set then the current decoded frame shall be scalled up similar to P frame.
+ Scaling for the temporally (display order) preceeding frame will be applied as for P frames
+ */
+ if (ctx->bRef0RangeRed && !ctx->bRef1RangeRed) {
+ ctx->mode_config |= (0x1 << 2);
+ } else if (!ctx->bRef0RangeRed && ctx->bRef1RangeRed) {
+ ctx->mode_config |= (0x2 << 2);
+ } else { /* neither or both are set */
+ ctx->mode_config |= (0x0 << 2); // no scaling of reference
+ }
+ break;
+
+ default:
+ break;
+ }
+ } else {
+ ctx->mode_config |= (0x0 << 2);
+ }
+ /************************************************************************************/
+
+ /********************************** Slice structure *********************************/
+ if (VC1_FCM_FLDI == pic_params->picture_fields.bits.frame_coding_mode) {
+ if ((pic_params->picture_fields.bits.top_field_first && pic_params->picture_fields.bits.is_first_field) ||
+ (!pic_params->picture_fields.bits.top_field_first && !pic_params->picture_fields.bits.is_first_field)) {
+ // Top field
+ ctx->slice_field_type = 0;
+ ctx->bottom_field = 0;
+ } else {
+ // Bottom field
+ ctx->slice_field_type = 1;
+ ctx->bottom_field = 1;
+ }
+ } else {
+ // progressive or interlaced frame
+ ctx->slice_field_type = 2;
+ ctx->bottom_field = 1;
+ }
+ /************************************************************************************/
+
+ /************************* FCM for the reference pictures ***************************/
+ if (PIC_TYPE_IS_REF(pic_params->picture_fields.bits.picture_type) ||
+ ((pic_params->picture_fields.bits.picture_type == WMF_PTYPE_B) && /* The second B field picture in an */
+ (ctx->pic_params->picture_fields.bits.frame_coding_mode == VC1_FCM_FLDI) && /* interlaced field coded frame shall */
+ !pic_params->picture_fields.bits.is_first_field)) { /* reference the first field picture. */
+ if (ctx->pic_params->picture_fields.bits.frame_coding_mode == VC1_FCM_FLDI && !pic_params->picture_fields.bits.is_first_field) {
+ /* The current picture is the second field of the frame, then the previous field picture
+ is in the same frame. Therefore the FCM of the first field is the same as the FCM of the
+ current field and the first field will be reference 0. */
+ ctx->ui8FCM_Ref0Pic = ctx->pic_params->picture_fields.bits.frame_coding_mode;
+ } else if (ctx->pic_params->picture_fields.bits.frame_coding_mode == VC1_FCM_FLDI && pic_params->picture_fields.bits.is_first_field) {
+ /* The current picture is the first field of the frame, then the previous field picture
+ is in a different frame and will be reference 1. */
+ ctx->ui8FCM_Ref1Pic = ctx->ui8FCM_Ref2Pic;
+ } else { // progresive or interlaced frame picture
+ ctx->ui8FCM_Ref1Pic = ctx->ui8FCM_Ref2Pic;
+ }
+ }
+ /************************************************************************************/
+
+ /************************* TFF for the reference pictures ***************************/
+ if (PIC_TYPE_IS_REF(pic_params->picture_fields.bits.picture_type) &&
+ ((ctx->pic_params->picture_fields.bits.frame_coding_mode != VC1_FCM_FLDI) ||
+ pic_params->picture_fields.bits.is_first_field)) {
+ ctx->bTFF_FwRefFrm = ctx->bTFF_BwRefFrm;
+ }
+ /************************************************************************************/
+
+ return VA_STATUS_SUCCESS;
+}
+
+static VAStatus psb__VC1_process_bitplane(context_VC1_p ctx, object_buffer_p obj_buffer)
+{
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ ASSERT(obj_buffer->type == VABitPlaneBufferType);
+ ASSERT(ctx->pic_params);
+
+ if ((NULL == obj_buffer->psb_buffer) ||
+ (0 == obj_buffer->size)) {
+ /* We need to have data in the bitplane buffer */
+ vaStatus = VA_STATUS_ERROR_UNKNOWN;
+ return vaStatus;
+ }
+
+ ctx->bitplane_buffer = obj_buffer->psb_buffer;
+ ctx->has_bitplane = TRUE;
+ return vaStatus;
+}
+
+/*
+ * Adds a VASliceParameterBuffer to the list of slice params
+ */
+static VAStatus psb__VC1_add_slice_param(context_VC1_p ctx, object_buffer_p obj_buffer)
+{
+ ASSERT(obj_buffer->type == VASliceParameterBufferType);
+ if (ctx->slice_param_list_idx >= ctx->slice_param_list_size) {
+ void *new_list;
+ ctx->slice_param_list_size += 8;
+ new_list = realloc(ctx->slice_param_list,
+ sizeof(object_buffer_p) * ctx->slice_param_list_size);
+ if (NULL == new_list) {
+ return VA_STATUS_ERROR_ALLOCATION_FAILED;
+ }
+ ctx->slice_param_list = (object_buffer_p*) new_list;
+ }
+ ctx->slice_param_list[ctx->slice_param_list_idx] = obj_buffer;
+ ctx->slice_param_list_idx++;
+ return VA_STATUS_SUCCESS;
+}
+
+
+/*
+ * This function extracts the information about a given table from the index of VLC tables.
+ */
+static void psb__VC1_extract_table_info(context_VC1_p ctx, sTableData *psInfo, int idx)
+{
+ IMG_UINT32 tmp;
+
+ if (idx >= VLC_INDEX_TABLE_SIZE)
+ idx = VLC_INDEX_TABLE_SIZE - 1;
+
+ tmp = ctx->vlc_packed_index_table[idx];
+ psInfo->aui16StartLocation = (IMG_UINT16)(tmp & 0xffff);
+ psInfo->aui16VLCTableLength = (IMG_UINT16)((tmp >> 16) & 0x1ff);
+ psInfo->aui16InitialWidth = (IMG_UINT16)((tmp >> 25) & 0x7);
+ psInfo->aui16InitialOpcode = (IMG_UINT16)((tmp >> 28) & 0x3);
+}
+
+/*
+ * This function selects the VLD tables from the picture layer parameters.
+ */
+static void psb__VC1_write_VLC_tables(context_VC1_p ctx)
+{
+ VAPictureParameterBufferVC1 *pic_params = ctx->pic_params;
+ IMG_UINT16 ui16Table = 0, ui16IntraTable = 0, ui16InterTable = 0, aui16Table[3];
+ IMG_UINT32 i, ui32TableNum = 0;
+
+ /* select the required table from the n different types
+ A - vc1DEC_I_Picture_CBPCY_VLC (1) ¬
+ B - vc1DEC_P_Picture_CBPCY_VLC_N (4) |
+ C - vc1DEC_Interlaced_CBPCY_N (8) |
+ D - vc1DEC_FourMV_Pattern_N (4) |
+ E - vc1DEC_INTERLACE_2_MVP_Pattern_N (4) |
+ F - vc1DEC_Mot_Vector_Diff_VLC_N (4) | MB Layer
+ G - vc1DEC_One_Field_Ref_Ilace_MV_N (4) |
+ H - vc1DEC_Two_Field_Ref_Ilace_MV_N (8) |
+ I - vc1DEC_Mixed_MV_MB_N (8) |
+ J - vc1DEC_One_MV_MB_N (8) |
+ K - vc1DEC_INTERLACE_4MV_MB_N (4) |
+ L - vc1DEC_INTERLACE_Non_4MV_MB_N (4) |
+ M - vc1DEC_X_Rate_TTMB (3) -
+ N - vc1DEC_X_Rate_TTBLK (3) ¬
+ O - vc1DEC_X_Rate_SUBBLKPAT (3) |
+ P - vc1DEC_X_X_Inter_VLC (4) | Block Layer
+ Q - vc1DEC_X_X_Intra_VLC (4) |
+ R - vc1DEC_X_Mot_Luminance_DC_Diff_VLC (2) |
+ S - vc1DEC_X_Mot_Chroma_DC_Diff_VLC (2) -
+
+ X - vc1DEC_Code_3x2_2x3_tiles (1) NOT USED */
+
+ /*!
+ ***********************************************************************************
+ @ Table A,B,C VLC CBPCY Tables
+
+ [VC1] 7.1.3.1 Coded Block Pattern (CBPCY) (Variable size)[I, P,B]
+
+ CBPCY is a variable-sized syntax element that shall be present in all
+ I and BI picture macroblocks, and may be present in P and B picture
+ macroblocks. In P and B pictures, CBPCY shall be decoded using
+ the VLC table specified by the CBPTAB syntax element as described in
+ section 7.1.1.39. The CBP tables for P and B pictures are listed in
+ section 11.6.
+
+
+ [VC1] 9.1.3.2 Coded Block Pattern (CBPCY) (Variable size)[I, P,B]
+
+ Table 102: ICBPTAB code-table
+
+ A vc1DEC_I_Picture_CBPCY_VLC (1)
+ B vc1DEC_P_Picture_CBPCY_VLC_N (4)
+ C vc1DEC_Interlaced_CBPCY_N (8)
+
+ ***********************************************************************************/
+
+ if ((!pic_params->sequence_fields.bits.interlace) || (pic_params->picture_fields.bits.frame_coding_mode == VC1_FCM_P)) {
+ if (PIC_TYPE_IS_INTRA(pic_params->picture_fields.bits.picture_type)) {
+ ui16Table = VC1_VLC_I_Picture_CBPCY_VLC;
+ } else if (PIC_TYPE_IS_INTER(pic_params->picture_fields.bits.picture_type)) {
+ psb__bounds_check(pic_params->cbp_table, 4);
+ ui16Table = CBPCYTableProg[pic_params->cbp_table];
+ }
+ } else { /* Interlaced */
+ if (PIC_TYPE_IS_INTRA(pic_params->picture_fields.bits.picture_type)) {
+ ui16Table = VC1_VLC_I_Picture_CBPCY_VLC;
+ } else {
+ psb__bounds_check(pic_params->cbp_table, 8);
+ ui16Table = CBPCYTableInterlaced[pic_params->cbp_table]; /* LUT */
+ }
+ }
+
+ psb__VC1_extract_table_info(ctx, &ctx->sTableInfo[ui32TableNum], ui16Table);
+ ui32TableNum++;
+
+ /*!
+ ************************************************************
+ @ Table D VLC 4MV Pattern
+
+ [VC1] Table 104: 4MVBP code-table
+
+ Tables 116-119
+
+ D vc1DEC_FourMV_Pattern_N (4)
+ ************************************************************/
+ psb__bounds_check(pic_params->mv_fields.bits.four_mv_block_pattern_table, 4);
+ ui16Table = FourMVTable[pic_params->mv_fields.bits.four_mv_block_pattern_table];
+
+ psb__VC1_extract_table_info(ctx, &ctx->sTableInfo[ui32TableNum], ui16Table);
+ ui32TableNum++;
+
+ /*!
+ ************************************************************************************
+ @ Table E VLC 2MVBP Tables
+
+
+ Table 103: 2MVBP code-table
+
+ for Tables 120-123
+
+ E vc1DEC_INTERLACE_2_MVP_Pattern_N (4)
+ ***********************************************************************************/
+ psb__bounds_check(pic_params->mv_fields.bits.two_mv_block_pattern_table, 4);
+ ui16Table = Interlace2MVTable[pic_params->mv_fields.bits.two_mv_block_pattern_table];
+
+ psb__VC1_extract_table_info(ctx, &ctx->sTableInfo[ui32TableNum], ui16Table);
+ ui32TableNum++;
+
+ /*!
+ ************************************************************************************
+ @ Table F,G,H VLC MV Tables
+
+ [VC1] MVDATA Variable size vlclbf 7.1.3.8
+
+ 7.1.3.8 Motion Vector Data (MVDATA)(Variable size)[P]
+
+ MVDATA is a variable sized syntax element that may be present in P picture
+ macroblocks. This syntax element decodes to the motion vector(s) for the
+ macroblock. The table used to decode this syntax element is specified by the
+ MVTAB syntax element in the picture layer as specified in section 7.1.1.38.
+
+ F vc1DEC_Mot_Vector_Diff_VLC_N (4)
+
+ [VC1] 9.1.1.34 INTERLACE Motion Vector Table (IMVTAB) (2 or 3 bits)
+
+ Table 100: IMVTAB code-table for P INTERLACE field picture with NUMREF = 0,
+ and for P/B INTERLACE frame pictures
+
+ IMVTAB Motion Vector Table
+ 00 1-Reference Table 0
+ 01 1-Reference Table 1
+ 10 1-Reference Table 2
+ 11 1-Reference Table 3
+
+ Table 101: IMVTAB code-table for P INTERLACE field pictures with NUMREF = 1,
+ and for B INTERLACE field pictures
+
+ IMVTAB Motion Vector Table
+ 000 2-Reference Table 0
+ 001 2-Reference Table 1
+ 010 2-Reference Table 2
+ 011 2-Reference Table 3
+ 100 2-Reference Table 4
+ 101 2-Reference Table 5
+ 110 2-Reference Table 6
+ 111 2-Reference Table 7
+
+ G vc1DEC_One_Field_Ref_Ilace_MV_N (4)
+ H vc1DEC_Two_Field_Ref_Ilace_MV_N (8)
+
+ ***********************************************************************************/
+ if ((!pic_params->sequence_fields.bits.interlace) || (pic_params->picture_fields.bits.frame_coding_mode == VC1_FCM_P)) {
+ psb__bounds_check(pic_params->mv_fields.bits.mv_table, 4);
+ ui16Table = ProgressiveMVTable[pic_params->mv_fields.bits.mv_table];
+ } else {
+ if (
+ (
+ PIC_TYPE_IS_INTER(pic_params->picture_fields.bits.picture_type) &&
+ (pic_params->picture_fields.bits.frame_coding_mode == VC1_FCM_FRMI)
+ )
+ ||
+ (
+ (pic_params->picture_fields.bits.picture_type == WMF_PTYPE_P) &&
+ (pic_params->picture_fields.bits.frame_coding_mode == VC1_FCM_FLDI) &&
+ (pic_params->reference_fields.bits.num_reference_pictures == 0)
+ )
+ ) {
+ /* One field */
+ psb__bounds_check(pic_params->mv_fields.bits.mv_table, 4);
+ ui16Table = Interlaced1RefMVTable[pic_params->mv_fields.bits.mv_table];
+ } else { /*if (((FCM == VC1_FCM_FLDI) && (NUMREF == 0) && (PTYPE == WMF_PTYPE_P)) || ((PTYPE == WMF_PTYPE_B) && (FCM == VC1_FCM_FLDI))) */
+ /* two field */
+ psb__bounds_check(pic_params->mv_fields.bits.mv_table, 8);
+ ui16Table = MVTable2RefIlace[pic_params->mv_fields.bits.mv_table]; /* LUT */
+ }
+ }
+
+ psb__VC1_extract_table_info(ctx, &ctx->sTableInfo[ui32TableNum], ui16Table);
+ ui32TableNum++;
+
+ /*!
+ ************************************************************************************
+ @ Table I,J,K,L VLC MBMODE Tables
+
+ I vc1DEC_Mixed_MV_MB_N (8)
+ J vc1DEC_One_MV_MB_N (8)
+ K vc1DEC_INTERLACE_4MV_MB_N (4)
+ L vc1DEC_INTERLACE_Non_4MV_MB_N (4)
+ ***********************************************************************************/
+ ui16Table = 0;
+ if (pic_params->sequence_fields.bits.interlace && (pic_params->picture_fields.bits.frame_coding_mode > VC1_FCM_P)) {
+ if (PIC_TYPE_IS_INTER(pic_params->picture_fields.bits.picture_type)) {
+ if (pic_params->picture_fields.bits.frame_coding_mode == VC1_FCM_FLDI) {
+ psb__bounds_check(pic_params->mb_mode_table, 8);
+ /* 9.1.1.33 use MBMODETAB and MVMODE to select field interlaced tables */
+ ui16Table = MBMODETableFLDI[pic_params->mb_mode_table][(pic_params->mv_fields.bits.mv_mode == WMF_MVMODE_MIXED_MV) ? 1 : 0];
+ } else if (pic_params->picture_fields.bits.frame_coding_mode == VC1_FCM_FRMI) {
+ psb__bounds_check(pic_params->mb_mode_table, 4);
+ /* 9.1.1.33 use MBMODETAB and MV4SWITCH to select frame interlaced tables */
+ ui16Table = MBMODETableFRMI[pic_params->mb_mode_table][(pic_params->mv_fields.bits.four_mv_switch) ? 0 : 1];
+ }
+ }
+ }
+
+ psb__VC1_extract_table_info(ctx, &ctx->sTableInfo[ui32TableNum], ui16Table);
+ ui32TableNum++;
+
+ /*!
+ ************************************************************************************
+ @ Table M,N,O VLC PQUANT Tables
+
+ [WMV9] 3.2.2.10 MB-level Transform Type (TTMB)(Variable size)[P,B]
+ [WMV9] 3.2.3.15 Block-level Transform Type (TTBLK)(Variable size)[inter]
+
+ [WMV9] 3.2.3.16 Transform sub-block pattern (SUBBLKPAT)(Variable size)[inter]
+
+ M vc1DEC_X_Rate_TTMB (3)
+ N vc1DEC_X_Rate_TTBLK (3)
+ O vc1DEC_X_Rate_SUBBLKPAT (3)
+
+ TTBLK and TTMB P and B Pictures only
+
+ ***********************************************************************************/
+ aui16Table[0] = 0;
+ aui16Table[1] = 0;
+ aui16Table[2] = 0;
+
+ if (pic_params->pic_quantizer_fields.bits.pic_quantizer_scale <= 4) { /* high rate */
+ aui16Table[2] = VC1_VLC_High_Rate_SUBBLKPAT;
+ aui16Table[1] = VC1_VLC_High_Rate_TTBLK;
+ aui16Table[0] = VC1_VLC_High_Rate_TTMB;
+ } else if (pic_params->pic_quantizer_fields.bits.pic_quantizer_scale <= 12) { /* med rate */
+ aui16Table[2] = VC1_VLC_Medium_Rate_SUBBLKPAT;
+ aui16Table[1] = VC1_VLC_Medium_Rate_TTBLK;
+ aui16Table[0] = VC1_VLC_Medium_Rate_TTMB;
+ } else { /* low rate */
+ aui16Table[2] = VC1_VLC_Low_Rate_SUBBLKPAT;
+ aui16Table[1] = VC1_VLC_Low_Rate_TTBLK;
+ aui16Table[0] = VC1_VLC_Low_Rate_TTMB;
+ }
+
+ for (i = ui32TableNum; i < ui32TableNum + 3; i++) {
+ psb__VC1_extract_table_info(ctx, &ctx->sTableInfo[i], aui16Table[i-ui32TableNum]);
+ }
+
+ ui32TableNum = ui32TableNum + 3;
+
+ {
+ /*!
+ ***********************************************************************************************
+ Inter Coded Blocks
+
+ Table 54: Index/Coding Set Correspondence for PQINDEX <= 7
+ Y, Cb and Cr blocks
+
+ Index Table
+ 0 High Rate Inter
+ 1 High Motion Inter
+ 2 Mid Rate Inter
+
+ Table 55: Index/Coding Set Correspondence for PQINDEX > 7
+ Y, Cb and Cr blocks
+
+ Index Table
+ 0 Low Motion Inter
+ 1 High Motion Inter
+ 2 Mid Rate Inter
+
+ ----------------------------------------------------------------------------------
+ Intra Blocks
+
+ 8 AC Coeff Coding Sets:
+ 4 x INTRA, 4 x INTER
+
+ Y use Intra, CrCb use Inter
+
+ Table 38: Coding Set Correspondence for PQINDEX <= 7
+
+ Y blocks Cb and Cr blocks
+ Index Table Index Table
+ 0 High Rate Intra 0 High Rate Inter
+ 1 High Motion Intra 1 High Motion Inter
+ 2 Mid Rate Intra 2 Mid Rate Inter
+
+ Table 39: Coding Set Correspondence for PQINDEX > 7
+
+ Y blocks Cb and Cr blocks
+ Index Table Index Table
+ 0 Low Motion Intra 0 Low Motion Inter
+ 1 High Motion Intra 1 High Motion Inter
+ 2 Mid Rate Intra 2 Mid Rate Inter
+
+ The value decoded from the DCTACFRM2 syntax element shall be used
+ as the coding set index for Y blocks and the value decoded from the
+ DCTACFRM syntax element shall be used as the coding set
+ index for Cb and Cr blocks.
+
+ P vc1DEC_X_X_Inter_VLC
+ Q vc1DEC_X_X_Intra_VLC
+
+
+ for I pictures TRANSACFRM specifies the Inter Coding set
+ TRANSACFRM2 specifies the Intra Coding set
+
+ for P pictures TRANSACFRM specifies Inter and Intra Coding set
+
+
+ ***************************************************************************************************/
+ IMG_UINT32 ui32IntraCodingSetIndex = PIC_TYPE_IS_INTRA(pic_params->picture_fields.bits.picture_type)
+ ? pic_params->transform_fields.bits.transform_ac_codingset_idx2
+ : pic_params->transform_fields.bits.transform_ac_codingset_idx1;
+
+ IMG_UINT32 ui32InterCodingSetIndex = pic_params->transform_fields.bits.transform_ac_codingset_idx1;
+
+ /* For PQINDEX < 9 the uniform quantizer should be used, as indicated by PQUANTIZER == 1 */
+ if (!ctx->pqindex_gt8) {
+ ui16IntraTable = IntraTablePQIndexLT9[ui32IntraCodingSetIndex];
+ ui16InterTable = InterTablePQIndexLT9[ui32InterCodingSetIndex];
+ } else {
+ ui16IntraTable = IntraTablePQIndexGT8[ui32IntraCodingSetIndex];
+ ui16InterTable = InterTablePQIndexGT8[ui32InterCodingSetIndex];
+ }
+
+ psb__VC1_extract_table_info(ctx, &ctx->sTableInfo[ui32TableNum], ui16IntraTable);
+ ui32TableNum++;
+
+ psb__VC1_extract_table_info(ctx, &ctx->sTableInfo[ui32TableNum], ui16InterTable);
+ ui32TableNum++;
+ }
+
+ /*!
+ ************************************************************************************
+ @ Table R & S VLC TRANSDCTAB Tables
+
+ R vc1DEC_X_Mot_Luminance_DC_Diff_VLC (2)
+ S vc1DEC_X_Mot_Chroma_DC_Diff_VLC (2)
+
+ [VC1] 8.1.1.2 Intra Transform DC Table
+ TRANSDCTAB is a one-bit syntax element that shall specify which of two
+ tables is used to decode the Transform DC coefficients in intra-coded blocks.
+ If TRANSDCTAB = 0, then the low motion table of Section 11.7 shall be used.
+ If TRANSDCTAB = 1, then the high motion table of Section 11.7 shall be used.
+
+ [VC1] 8.1.1.2 Intra Transform DC Table
+ TRANSDCTAB is a one-bit syntax element that shall specify which of two
+ tables is used to decode the Transform DC coefficients in intra-coded blocks.
+ If TRANSDCTAB = 0, then the low motion table of Section 11.7 shall be used.
+ If TRANSDCTAB = 1, then the high motion table of Section 11.7 shall be used.
+
+ ***********************************************************************************/
+ if (pic_params->transform_fields.bits.intra_transform_dc_table == 0) {
+ /* low motion */
+
+ /* VC1_VLC_Low_Mot_Luminance_DC_Diff_VLC */
+ ui16IntraTable = VC1_VLC_Low_Mot_Luminance_DC_Diff_VLC;
+
+ /* VC1_VLC_Low_Mot_Chroma_DC_Diff_VLC */
+ ui16InterTable = VC1_VLC_Low_Mot_Chroma_DC_Diff_VLC;
+ } else { /* TRANSDCTAB == 1 */
+ /* high motion */
+ /* VC1_VLC_High_Mot_Luminance_DC_Diff_VLC */
+ ui16IntraTable = VC1_VLC_High_Mot_Luminance_DC_Diff_VLC;
+
+ /* VC1_VLC_High_Mot_Chroma_DC_Diff_VLC */
+ ui16InterTable = VC1_VLC_High_Mot_Chroma_DC_Diff_VLC;
+ }
+
+ psb__VC1_extract_table_info(ctx, &ctx->sTableInfo[ui32TableNum], ui16IntraTable);
+ ui32TableNum++;
+
+ psb__VC1_extract_table_info(ctx, &ctx->sTableInfo[ui32TableNum], ui16InterTable);
+ ui32TableNum++;
+
+ /* at the end determine how many tables have been chosen
+ this should be constant and equal 12 */
+ ctx->ui32NumTables = ui32TableNum;
+ ASSERT(ctx->ui32NumTables == 12);
+}
+
+static void psb__VC1_build_VLC_tables(context_VC1_p ctx)
+{
+ psb_cmdbuf_p cmdbuf = ctx->obj_context->cmdbuf;
+ unsigned int i;
+ uint16_t RAM_location = 0;
+ uint32_t reg_value;
+
+ for (i = 0; i < ctx->ui32NumTables; i++) {
+ if (RAM_location & 0x03) {
+ /* Align */
+ RAM_location += 4 - (RAM_location & 0x03);
+ }
+ ctx->sTableInfo[i].aui16RAMLocation = RAM_location;
+
+ /* VLC Table */
+ /* Write a LLDMA Cmd to transfer VLD Table data */
+
+ psb_cmdbuf_lldma_write_cmdbuf(cmdbuf, &ctx->vlc_packed_table,
+ ctx->sTableInfo[i].aui16StartLocation * sizeof(IMG_UINT16), /* origin */
+ ctx->sTableInfo[i].aui16VLCTableLength * sizeof(IMG_UINT16), /* size */
+ RAM_location * sizeof(IMG_UINT32), /* destination */
+ LLDMA_TYPE_VLC_TABLE);
+ psb__information_message("table[%02d] start_loc = %08x RAM_location = %08x | %08x\n", i, ctx->sTableInfo[i].aui16StartLocation * sizeof(IMG_UINT16), RAM_location, RAM_location * sizeof(IMG_UINT32));
+ RAM_location += ctx->sTableInfo[i].aui16VLCTableLength;
+ }
+
+ /* Write the vec registers with the index data for each of the tables */
+ psb_cmdbuf_reg_start_block(cmdbuf);
+
+ reg_value = 0;
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR0, VLC_TABLE_ADDR0, ctx->sTableInfo[0].aui16RAMLocation);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR0, VLC_TABLE_ADDR1, ctx->sTableInfo[1].aui16RAMLocation);
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR0), reg_value);
+
+ reg_value = 0;
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR1, VLC_TABLE_ADDR2, ctx->sTableInfo[2].aui16RAMLocation);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR1, VLC_TABLE_ADDR3, ctx->sTableInfo[3].aui16RAMLocation);
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR1), reg_value);
+
+ reg_value = 0;
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR2, VLC_TABLE_ADDR4, ctx->sTableInfo[4].aui16RAMLocation);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR2, VLC_TABLE_ADDR5, ctx->sTableInfo[5].aui16RAMLocation);
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR2), reg_value);
+
+ reg_value = 0;
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR3, VLC_TABLE_ADDR6, ctx->sTableInfo[6].aui16RAMLocation);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR3, VLC_TABLE_ADDR7, ctx->sTableInfo[7].aui16RAMLocation);
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR3), reg_value);
+
+ reg_value = 0;
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR4, VLC_TABLE_ADDR8, ctx->sTableInfo[8].aui16RAMLocation);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR4, VLC_TABLE_ADDR9, ctx->sTableInfo[9].aui16RAMLocation);
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR4), reg_value);
+
+ reg_value = 0;
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR5, VLC_TABLE_ADDR10, ctx->sTableInfo[10].aui16RAMLocation);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR5, VLC_TABLE_ADDR11, ctx->sTableInfo[11].aui16RAMLocation);
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_ADDR5), reg_value);
+
+ reg_value = 0;
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC, CR_VEC_VLC_TABLE_INITIAL_WIDTH0, VLC_TABLE_INITIAL_WIDTH0, ctx->sTableInfo[0].aui16InitialWidth);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC, CR_VEC_VLC_TABLE_INITIAL_WIDTH0, VLC_TABLE_INITIAL_WIDTH1, ctx->sTableInfo[1].aui16InitialWidth);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC, CR_VEC_VLC_TABLE_INITIAL_WIDTH0, VLC_TABLE_INITIAL_WIDTH2, ctx->sTableInfo[2].aui16InitialWidth);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC, CR_VEC_VLC_TABLE_INITIAL_WIDTH0, VLC_TABLE_INITIAL_WIDTH3, ctx->sTableInfo[3].aui16InitialWidth);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC, CR_VEC_VLC_TABLE_INITIAL_WIDTH0, VLC_TABLE_INITIAL_WIDTH4, ctx->sTableInfo[4].aui16InitialWidth);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC, CR_VEC_VLC_TABLE_INITIAL_WIDTH0, VLC_TABLE_INITIAL_WIDTH5, ctx->sTableInfo[5].aui16InitialWidth);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC, CR_VEC_VLC_TABLE_INITIAL_WIDTH0, VLC_TABLE_INITIAL_WIDTH6, ctx->sTableInfo[6].aui16InitialWidth);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC, CR_VEC_VLC_TABLE_INITIAL_WIDTH0, VLC_TABLE_INITIAL_WIDTH7, ctx->sTableInfo[7].aui16InitialWidth);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC, CR_VEC_VLC_TABLE_INITIAL_WIDTH0, VLC_TABLE_INITIAL_WIDTH8, ctx->sTableInfo[8].aui16InitialWidth);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC, CR_VEC_VLC_TABLE_INITIAL_WIDTH0, VLC_TABLE_INITIAL_WIDTH9, ctx->sTableInfo[9].aui16InitialWidth);
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_INITIAL_WIDTH0), reg_value);
+
+ reg_value = 0;
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC, CR_VEC_VLC_TABLE_INITIAL_WIDTH1, VLC_TABLE_INITIAL_WIDTH10, ctx->sTableInfo[10].aui16InitialWidth);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC, CR_VEC_VLC_TABLE_INITIAL_WIDTH1, VLC_TABLE_INITIAL_WIDTH11, ctx->sTableInfo[11].aui16InitialWidth);
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_INITIAL_WIDTH1), reg_value);
+
+ reg_value = 0;
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC, CR_VEC_VLC_TABLE_INITIAL_OPCODE0, VLC_TABLE_INITIAL_OPCODE0, ctx->sTableInfo[0].aui16InitialOpcode);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC, CR_VEC_VLC_TABLE_INITIAL_OPCODE0, VLC_TABLE_INITIAL_OPCODE1, ctx->sTableInfo[1].aui16InitialOpcode);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC, CR_VEC_VLC_TABLE_INITIAL_OPCODE0, VLC_TABLE_INITIAL_OPCODE2, ctx->sTableInfo[2].aui16InitialOpcode);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC, CR_VEC_VLC_TABLE_INITIAL_OPCODE0, VLC_TABLE_INITIAL_OPCODE3, ctx->sTableInfo[3].aui16InitialOpcode);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC, CR_VEC_VLC_TABLE_INITIAL_OPCODE0, VLC_TABLE_INITIAL_OPCODE4, ctx->sTableInfo[4].aui16InitialOpcode);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC, CR_VEC_VLC_TABLE_INITIAL_OPCODE0, VLC_TABLE_INITIAL_OPCODE5, ctx->sTableInfo[5].aui16InitialOpcode);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC, CR_VEC_VLC_TABLE_INITIAL_OPCODE0, VLC_TABLE_INITIAL_OPCODE6, ctx->sTableInfo[6].aui16InitialOpcode);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC, CR_VEC_VLC_TABLE_INITIAL_OPCODE0, VLC_TABLE_INITIAL_OPCODE7, ctx->sTableInfo[7].aui16InitialOpcode);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC, CR_VEC_VLC_TABLE_INITIAL_OPCODE0, VLC_TABLE_INITIAL_OPCODE8, ctx->sTableInfo[8].aui16InitialOpcode);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC, CR_VEC_VLC_TABLE_INITIAL_OPCODE0, VLC_TABLE_INITIAL_OPCODE9, ctx->sTableInfo[9].aui16InitialOpcode);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC, CR_VEC_VLC_TABLE_INITIAL_OPCODE0, VLC_TABLE_INITIAL_OPCODE10, ctx->sTableInfo[10].aui16InitialOpcode);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC, CR_VEC_VLC_TABLE_INITIAL_OPCODE0, VLC_TABLE_INITIAL_OPCODE11, ctx->sTableInfo[11].aui16InitialOpcode);
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC, CR_VEC_VLC_TABLE_INITIAL_OPCODE0), reg_value);
+
+ psb_cmdbuf_reg_end_block(cmdbuf);
+}
+
+
+static void psb__VC1_write_kick(context_VC1_p ctx, VASliceParameterBufferVC1 *slice_param)
+{
+ psb_cmdbuf_p cmdbuf = ctx->obj_context->cmdbuf;
+
+ (void) slice_param; /* Unused for now */
+
+ *cmdbuf->cmd_idx++ = CMD_COMPLETION;
+}
+
+/* Programme the Alt output if there is a rotation*/
+static void psb__VC1_setup_alternative_frame(context_VC1_p ctx)
+{
+ uint32_t cmd;
+ psb_cmdbuf_p cmdbuf = ctx->obj_context->cmdbuf;
+ psb_surface_p rotate_surface = ctx->obj_context->current_render_target->psb_surface_rotate;
+ object_context_p obj_context = ctx->obj_context;
+
+ if (rotate_surface->extra_info[5] != obj_context->rotate)
+ psb__error_message("Display rotate mode does not match surface rotate mode!\n");
+
+
+ /* CRendecBlock RendecBlk( mCtrlAlloc , RENDEC_REGISTER_OFFSET(MSVDX_CMDS, VC1_LUMA_RANGE_MAPPING_BASE_ADDRESS) ); */
+ psb_cmdbuf_rendec_start_chunk(cmdbuf, RENDEC_REGISTER_OFFSET(MSVDX_CMDS, VC1_LUMA_RANGE_MAPPING_BASE_ADDRESS));
+
+ psb_cmdbuf_rendec_write_address(cmdbuf, &rotate_surface->buf, rotate_surface->buf.buffer_ofs);
+ psb_cmdbuf_rendec_write_address(cmdbuf, &rotate_surface->buf, rotate_surface->buf.buffer_ofs + rotate_surface->chroma_offset);
+
+ psb_cmdbuf_rendec_end_chunk(cmdbuf);
+
+ /* Set the rotation registers */
+ psb_cmdbuf_rendec_start_chunk(cmdbuf, RENDEC_REGISTER_OFFSET(MSVDX_CMDS, ALTERNATIVE_OUTPUT_PICTURE_ROTATION));
+ cmd = 0;
+ REGIO_WRITE_FIELD_LITE(cmd, MSVDX_CMDS, ALTERNATIVE_OUTPUT_PICTURE_ROTATION , ALT_PICTURE_ENABLE, 1);
+ REGIO_WRITE_FIELD_LITE(cmd, MSVDX_CMDS, ALTERNATIVE_OUTPUT_PICTURE_ROTATION , ROTATION_ROW_STRIDE, rotate_surface->stride_mode);
+ REGIO_WRITE_FIELD_LITE(cmd, MSVDX_CMDS, ALTERNATIVE_OUTPUT_PICTURE_ROTATION , RECON_WRITE_DISABLE, 0); /* FIXME Always generate Rec */
+ REGIO_WRITE_FIELD_LITE(cmd, MSVDX_CMDS, ALTERNATIVE_OUTPUT_PICTURE_ROTATION , ROTATION_MODE, rotate_surface->extra_info[5]);
+
+ psb_cmdbuf_rendec_write(cmdbuf, cmd);
+
+ psb_cmdbuf_rendec_end_chunk(cmdbuf);
+}
+
+static void psb__VC1_send_rendec_params(context_VC1_p ctx, VASliceParameterBufferVC1 *slice_param)
+{
+ VAPictureParameterBufferVC1 *pic_params = ctx->pic_params;
+ psb_cmdbuf_p cmdbuf = ctx->obj_context->cmdbuf;
+ psb_surface_p deblock_surface = ctx->decoded_surface->psb_surface;
+ psb_surface_p target_surface = ctx->obj_context->current_render_target->psb_surface;
+
+ uint32_t cmd;
+ IMG_UINT32 ui32MBParamMemOffset;
+ IMG_UINT8 ui8PrevLumaScale = 0, ui8PrevLumaShift = 0;
+ IMG_UINT8 ui8BackLumaScale = 0, ui8BackLumaShift = 0;
+ IMG_UINT8 ui8PrevBotLumaShift = 0, ui8PrevBotLumaScale = 0;
+ IMG_UINT8 ui8PrevIC = 0, ui8BackIC = 0, ui8PrevBotIC = 0;
+
+ /* Align MB Parameter memory */
+ ui32MBParamMemOffset = ((pic_params->picture_fields.bits.frame_coding_mode == VC1_FCM_FLDI) && (!pic_params->picture_fields.bits.is_first_field)) ?
+ (ctx->size_mb * VC1_MB_PARAM_STRIDE) : 0;
+ ui32MBParamMemOffset += 0x00000fff;
+ ui32MBParamMemOffset &= 0xfffff000;
+
+ /****************************** INTENSITY COMPENSATION ******************************/
+ if (pic_params->picture_fields.bits.frame_coding_mode == VC1_FCM_FLDI) {
+ if (pic_params->picture_fields.bits.picture_type == WMF_PTYPE_P) {
+ if (pic_params->picture_fields.bits.top_field_first) { // top field first
+ if (!pic_params->picture_fields.bits.is_first_field) { // this is the second field picture (and bottom)
+ if (ctx->sICparams[0][1].ui8IC1 == 2) {
+ /* The first and top field picture of the current frame
+ intensity compensates the bottom field of the previous frame. */
+ ui8PrevLumaScale = ctx->sICparams[0][1].ui8LumaScale1;
+ ui8PrevLumaShift = ctx->sICparams[0][1].ui8LumaShift1;
+ ui8PrevIC = 2;
+ }
+ } else { // first field picture (and top)
+ if (ctx->sICparams[0][0].ui8IC1 == 1) {
+ /* The second and bottom field picture of the previous frame
+ intensity compensates the top field of the previous frame. */
+ ui8PrevLumaScale = ctx->sICparams[0][0].ui8LumaScale1;
+ ui8PrevLumaShift = ctx->sICparams[0][0].ui8LumaShift1;
+ ui8PrevIC = 1;
+ }
+ }
+ } else { // botom field first
+ if (!pic_params->picture_fields.bits.is_first_field) { // this is the second field picture (and top)
+ if (ctx->sICparams[0][0].ui8IC1 == 1) {
+ /* The first and bottom field picture of the current frame
+ intensity compensates the top field of the previous frame. */
+ ui8PrevLumaScale = ctx->sICparams[0][0].ui8LumaScale1;
+ ui8PrevLumaShift = ctx->sICparams[0][0].ui8LumaShift1;
+ ui8PrevIC = 1;
+ }
+ } else { // first field picture (and bottom)
+ if (ctx->sICparams[0][1].ui8IC1 == 2) {
+ /* The second and top field picture of the previous frame
+ intensity compensates the bottom field of the previous frame. */
+ ui8PrevLumaScale = ctx->sICparams[0][1].ui8LumaScale1;
+ ui8PrevLumaShift = ctx->sICparams[0][1].ui8LumaShift1;
+ ui8PrevIC = 2;
+ }
+ }
+ }
+ } else if (pic_params->picture_fields.bits.picture_type == WMF_PTYPE_B) {
+ /*
+ First frame - second temporally closest reference frame to the B frame
+ Second frame - first temporally closest reference frame to the B frame
+ */
+ if (pic_params->picture_fields.bits.top_field_first) { // top field first
+ if (ctx->sICparams[0][0].ui8IC1 == 1) {
+ /* The second and bottom field of the first reference frame intensity
+ compensates the first and top field of the first reference frame. */
+ ui8PrevLumaScale = ctx->sICparams[0][0].ui8LumaScale1;
+ ui8PrevLumaShift = ctx->sICparams[0][0].ui8LumaShift1;
+ ui8PrevIC = 1;
+ }
+ if (ctx->sICparams[0][0].ui8IC2 == 1) {
+ /* The first and top field of the second reference frame intensity
+ compensates the first and top field of the first reference frame. */
+ ui8BackLumaScale = ctx->sICparams[0][0].ui8LumaScale2;
+ ui8BackLumaShift = ctx->sICparams[0][0].ui8LumaShift2;
+ ui8BackIC = 1;
+ }
+ if (ctx->sICparams[0][1].ui8IC2 == 2) {
+ /* The first and top field of the second reference frame intensity
+ compensates the second and bottom field of the first reference frame. */
+ ui8PrevBotLumaScale = ctx->sICparams[0][1].ui8LumaScale2;
+ ui8PrevBotLumaShift = ctx->sICparams[0][1].ui8LumaShift2;
+ ui8PrevBotIC = 2;
+ }
+ } else { // botom field first
+ if (ctx->sICparams[0][1].ui8IC1 == 2) {
+ /* The second and top field of the first reference frame intensity
+ compensates the first and bottom field of the first reference frame. */
+ ui8BackLumaScale = ctx->sICparams[0][1].ui8LumaScale1;
+ ui8BackLumaShift = ctx->sICparams[0][1].ui8LumaShift1;
+ ui8BackIC = 2;
+ }
+ if (ctx->sICparams[0][1].ui8IC2 == 2) {
+ /* The first and bottom field of the second reference frame intensity
+ compensates the first and bottom field of the first reference frame. */
+ ui8PrevBotLumaScale = ctx->sICparams[0][1].ui8LumaScale2;
+ ui8PrevBotLumaShift = ctx->sICparams[0][1].ui8LumaShift2;
+ ui8PrevBotIC = 2;
+ }
+ if (ctx->sICparams[0][0].ui8IC1 == 1) {
+ /* The first and bottom field of the second reference frame intensity
+ compensates the second and top field of the first reference frame. */
+ ui8PrevLumaScale = ctx->sICparams[0][0].ui8LumaScale1;
+ ui8PrevLumaShift = ctx->sICparams[0][0].ui8LumaShift1;
+ ui8PrevIC = 1;
+ }
+ }
+ }
+ }
+ /************************************************************************************/
+
+ psb_cmdbuf_rendec_start_block(cmdbuf);
+
+ if (ctx->obj_context->rotate != VA_ROTATION_NONE) /* FIXME field coded should not issue */
+ psb__VC1_setup_alternative_frame(ctx);
+
+ /* CHUNK: 1 - VC1SEQUENCE00 */
+ psb_cmdbuf_rendec_start_chunk(cmdbuf, RENDEC_REGISTER_OFFSET(MSVDX_CMDS, DISPLAY_PICTURE_SIZE));
+
+ /* VC1SEQUENCE00 Command: Display Picture Size (sequence) */
+ cmd = 0;
+ /* TODO: Can "display size" and "coded size" be different? */
+ REGIO_WRITE_FIELD(cmd, VC1_RENDEC_CMD, VC1SEQUENCE00, PICTURE_HEIGHT, (ctx->display_picture_height - 1)); /* display picture size - 1 */
+ REGIO_WRITE_FIELD(cmd, VC1_RENDEC_CMD, VC1SEQUENCE00, PICTURE_WIDTH, (ctx->display_picture_width - 1));
+ psb_cmdbuf_rendec_write(cmdbuf, cmd);
+
+ /* VC1SEQUENCE00 Command: Coded Picture Size (sequence) */
+ cmd = 0;
+ REGIO_WRITE_FIELD(cmd, VC1_RENDEC_CMD, VC1SEQUENCE00, PICTURE_HEIGHT, (ctx->coded_picture_height - 1)); /* coded picture size - 1 */
+ REGIO_WRITE_FIELD(cmd, VC1_RENDEC_CMD, VC1SEQUENCE00, PICTURE_WIDTH, (ctx->coded_picture_width - 1));
+ psb_cmdbuf_rendec_write(cmdbuf, cmd);
+
+ /* VC1SEQUENCE01 Command: Operating Mode (sequence) */
+ cmd = 0;
+ REGIO_WRITE_FIELD(cmd, VC1_RENDEC_CMD, VC1SEQUENCE01, CHROMA_INTERLEAVED, 0); /* 0 = CbCr - MSVDX default */
+ REGIO_WRITE_FIELD(cmd, VC1_RENDEC_CMD, VC1SEQUENCE01, ROW_STRIDE, target_surface->stride_mode);
+ REGIO_WRITE_FIELD(cmd, VC1_RENDEC_CMD, VC1SEQUENCE01, CODEC_MODE, 2); /* MODE_VC1 */
+ REGIO_WRITE_FIELD(cmd, VC1_RENDEC_CMD, VC1SEQUENCE01, CODEC_PROFILE, ctx->profile);
+ REGIO_WRITE_FIELD(cmd, VC1_RENDEC_CMD, VC1SEQUENCE01, ASYNC_MODE, 0/*((pPicParams->bPicDeblocked & 0x02) ? 0:1)*/); // @TODO: async mode should be synchronous or pre-load for VC1
+ REGIO_WRITE_FIELD(cmd, VC1_RENDEC_CMD, VC1SEQUENCE01, CHROMA_FORMAT, 1);
+ REGIO_WRITE_FIELD(cmd, VC1_RENDEC_CMD, VC1SEQUENCE01, INTERLACED, ((pic_params->picture_fields.bits.frame_coding_mode & 0x02) >> 1)); /* if progressive, INTERLACE is always 0 */
+ REGIO_WRITE_FIELD(cmd, VC1_RENDEC_CMD, VC1SEQUENCE01, VC1_OVERLAP, pic_params->sequence_fields.bits.overlap);
+ REGIO_WRITE_FIELD(cmd, VC1_RENDEC_CMD, VC1SEQUENCE01, PIC_CONDOVER, ctx->condover);
+ REGIO_WRITE_FIELD(cmd, VC1_RENDEC_CMD, VC1SEQUENCE01, PIC_QUANT, pic_params->pic_quantizer_fields.bits.pic_quantizer_scale);
+ ctx->obj_context->operating_mode = cmd;
+ psb_cmdbuf_rendec_write(cmdbuf, cmd);
+
+ /* LUMA_RECONSTRUCTED_PICTURE_BASE_ADDRESSES */
+ psb_cmdbuf_rendec_write_address(cmdbuf, &target_surface->buf, target_surface->buf.buffer_ofs);
+
+ /* CHROMA_RECONSTRUCTED_PICTURE_BASE_ADDRESSES */
+ psb_cmdbuf_rendec_write_address(cmdbuf, &target_surface->buf, target_surface->buf.buffer_ofs + target_surface->chroma_offset);
+
+ /* Aux MSB buffer */
+ psb_cmdbuf_rendec_write_address(cmdbuf, &ctx->aux_msb_buffer, 0);
+
+ psb_cmdbuf_rendec_end_chunk(cmdbuf);
+
+ /* CHUNK: 2 - VC1SLICE00 */
+ psb_cmdbuf_rendec_start_chunk(cmdbuf, RENDEC_REGISTER_OFFSET(MSVDX_CMDS, MC_CACHE_CONFIGURATION));
+
+ /* VC1SLICE00 Command: Cache Configuration (picture?) */
+ cmd = 0;
+ REGIO_WRITE_FIELD(cmd, VC1_RENDEC_CMD, VC1SLICE00, CONFIG_REF_OFFSET, 72);
+ REGIO_WRITE_FIELD(cmd, VC1_RENDEC_CMD, VC1SLICE00, CONFIG_ROW_OFFSET, 4);
+ psb_cmdbuf_rendec_write(cmdbuf, cmd);
+
+ /* VC1SLICE01 Command: VC1 Intensity Compensation Parameter (picture or slice) */
+ cmd = 0;
+ REGIO_WRITE_FIELD(cmd, VC1_RENDEC_CMD, VC1SLICE01, VC1_LUMSHIFT2, ctx->ui8CurrLumaShift2); /* INTERLACE field P pictures */
+ REGIO_WRITE_FIELD(cmd, VC1_RENDEC_CMD, VC1SLICE01, VC1_LUMSCALE2, ctx->ui8CurrLumaScale2); /* INTERLACE field P pictures */
+ REGIO_WRITE_FIELD(cmd, VC1_RENDEC_CMD, VC1SLICE01, VC1_LUMSHIFT1, ctx->ui8CurrLumaShift1);
+ REGIO_WRITE_FIELD(cmd, VC1_RENDEC_CMD, VC1SLICE01, VC1_LUMSCALE1, ctx->ui8CurrLumaScale1);
+ psb_cmdbuf_rendec_write(cmdbuf, cmd);
+
+ psb_cmdbuf_rendec_end_chunk(cmdbuf);
+
+ /* CHUNK: 3 */
+ psb_cmdbuf_rendec_start_chunk(cmdbuf, RENDEC_REGISTER_OFFSET(MSVDX_CMDS, VC1_LUMA_RANGE_MAPPING_BASE_ADDRESS));
+
+ /* VC1 Luma Range Mapping Base Address */
+ psb_cmdbuf_rendec_write_address(cmdbuf, &deblock_surface->buf, deblock_surface->buf.buffer_ofs);
+
+ /* VC1 Chroma Range Mapping Base Address */
+ psb_cmdbuf_rendec_write_address(cmdbuf, &deblock_surface->buf, deblock_surface->chroma_offset + deblock_surface->buf.buffer_ofs);
+
+ /* VC1SLICE03 Range Map Control (current picture) */
+ cmd = 0;
+ REGIO_WRITE_FIELD(cmd, VC1_RENDEC_CMD, VC1SLICE03, RANGE_MAPUV_FLAG, pic_params->range_mapping_fields.bits.chroma_flag /*RANGE_MAPUV_FLAG*/);
+ REGIO_WRITE_FIELD(cmd, VC1_RENDEC_CMD, VC1SLICE03, RANGE_MAPUV, pic_params->range_mapping_fields.bits.chroma);
+ REGIO_WRITE_FIELD(cmd, VC1_RENDEC_CMD, VC1SLICE03, RANGE_MAPY_FLAG, pic_params->range_mapping_fields.bits.luma_flag /*RANGE_MAPY_FLAG*/);
+ REGIO_WRITE_FIELD(cmd, VC1_RENDEC_CMD, VC1SLICE03, RANGE_MAPY, pic_params->range_mapping_fields.bits.luma);
+ psb_cmdbuf_rendec_write(cmdbuf, cmd);
+
+ /* Store VC1SLICE03 bits in lower bits of Range Mapping Base Address */
+ /* VC1 Luma Range Mapping Base Address */
+ RELOC(*ctx->p_range_mapping_base, cmd + deblock_surface->buf.buffer_ofs, &deblock_surface->buf);
+
+ /* VC1 Intensity Compensation Backward/Previous */
+ /*
+ 3.3.10 VC1 Intensity Compensation Backward/Previous:
+ The parameters applied in VC1 Intensity Compensation Parameters are the Intensity Compensation
+ applied to forward prediction. In the case of Interlaced P field pictures, the second field can
+ be Intensity Compensated relative to the first P field picture. If this is done, when decoding
+ B pictures the first field backward MV reference to P picture needs to be Intensity Compensated
+ with VC1_LUMSCALE_BACK and VC1_LUMSHIFT_BACK. (The command should contain the Intensity
+ Compensation parameters that were used for opposite parity field when decoding 2nd P field picture).
+
+ The parameters will only be used if VC1_BACK_INT_COMP in Slice Params command indicates
+ Backward Intensity Compensation is used.
+ */
+ cmd = 0;
+ REGIO_WRITE_FIELD(cmd, VC1_RENDEC_CMD, VC1SLICE04, VC1_LUMSHIFT_PREV, ui8PrevLumaShift);
+ REGIO_WRITE_FIELD(cmd, VC1_RENDEC_CMD, VC1SLICE04, VC1_LUMSCALE_PREV, ui8PrevLumaScale);
+ REGIO_WRITE_FIELD(cmd, VC1_RENDEC_CMD, VC1SLICE04, VC1_LUMSHIFT_BACK, ui8BackLumaShift);
+ REGIO_WRITE_FIELD(cmd, VC1_RENDEC_CMD, VC1SLICE04, VC1_LUMSCALE_BACK, ui8BackLumaScale);
+ psb_cmdbuf_rendec_write(cmdbuf, cmd);
+
+#if 0
+ /* VC1 Intensity Compensation Previous Bottom */
+ if (ui8PrevBotIC) {
+ /*
+ The VDMC dynamically applies intensity compensation when generating reference predicted data
+ for P/B fields/frames. In the case of Interlaced B field pictures, both the top field and
+ bottom field could be Intensity Compensated twice (if all previous P field pictures applied
+ separate top and bottom Intensity Compensation). If this is the case, the VC1 previous field
+ defined in 3.3.10 should apply to top field, whilst the parameters defined in this register
+ apply to the bottom field. The VC1_PREV_BOT_INT_COMP field of Slice Params command indicates
+ if the fields in this register are used.
+ */
+ cmd = 0;
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, VC1_INTENSITY_COMPENSATION_, VC1_LUMSHIFT_PREV_BOT, ui8PrevBotLumaShift);
+ REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, VC1_INTENSITY_COMPENSATION_, VC1_LUMSCALE_PREV_BOT, ui8PrevBotLumaScale);
+ pcmdBuffer[i++] = REGISTER_OFFSET(MSVDX_CMDS, VC1_INTENSITY_COMPENSATION_);
+ pcmdBuffer[i++] = cmd;
+ }
+#endif
+ psb_cmdbuf_rendec_end_chunk(cmdbuf);
+
+ /*
+ Reference Picture Base Addresses
+
+ The reference picture pointers always include the current picture at first location (0) and
+ the oldest reference in the next location (1). For B pictures the subsequent reference
+ frame (display order) is 2.
+ */
+ if ((pic_params->picture_fields.bits.picture_type != WMF_PTYPE_I) && (pic_params->picture_fields.bits.picture_type != WMF_PTYPE_BI)) {
+ /* CHUNK: 4 */
+ psb_cmdbuf_rendec_start_chunk(cmdbuf, RENDEC_REGISTER_OFFSET(MSVDX_CMDS, REFERENCE_PICTURE_BASE_ADDRESSES));
+
+ /********************** CURRENT PICTURE **********************/
+ psb_cmdbuf_rendec_write_address(cmdbuf, &target_surface->buf, target_surface->buf.buffer_ofs);
+ psb_cmdbuf_rendec_write_address(cmdbuf, &target_surface->buf, target_surface->buf.buffer_ofs + target_surface->chroma_offset);
+
+ /*************** FORWARD REFERENCE *****************/
+ if (ctx->forward_ref_surface) {
+ /*
+ In VC1, if a P field picture references both top field and bottom field, but the two fields
+ are stored in different frame stores, then the most recently decoded field will use reference
+ index 0, and the other field will use reference index 1.
+
+ Progressive P pictures use always reference index 1.
+ */
+ psb_cmdbuf_rendec_write_address(cmdbuf, &ctx->forward_ref_surface->psb_surface->buf, ctx->forward_ref_surface->psb_surface->buf.buffer_ofs);
+ psb_cmdbuf_rendec_write_address(cmdbuf, &ctx->forward_ref_surface->psb_surface->buf, ctx->forward_ref_surface->psb_surface->\
+ buf.buffer_ofs + ctx->forward_ref_surface->psb_surface->chroma_offset);
+ }
+
+ /*************** BACKWARD REFERENCE *****************/
+ if (ctx->backward_ref_surface) {
+ psb_cmdbuf_rendec_write_address(cmdbuf, &ctx->backward_ref_surface->psb_surface->buf, ctx->backward_ref_surface->psb_surface->buf.buffer_ofs);
+ psb_cmdbuf_rendec_write_address(cmdbuf, &ctx->backward_ref_surface->psb_surface->buf, ctx->backward_ref_surface->psb_surface\
+ ->buf.buffer_ofs + ctx->backward_ref_surface->psb_surface->chroma_offset);
+ }
+ psb_cmdbuf_rendec_end_chunk(cmdbuf);
+ }
+
+ /* CHUNK: 5 - VC1SLICE02 */
+ psb_cmdbuf_rendec_start_chunk(cmdbuf, RENDEC_REGISTER_OFFSET(MSVDX_CMDS, SLICE_PARAMS));
+
+ /* VC1SLICE02 Command: Slice Params (picture or slice) */
+ cmd = 0;
+
+ //REGIO_WRITE_FIELD(cmd, MSVDX_CMDS, SLICE_PARAMS, VC1_PREV_BOT_INT_COMP, ui8PrevBotIC);
+ REGIO_WRITE_FIELD(cmd, VC1_RENDEC_CMD, VC1SLICE02, VC1_PREV_INT_COMP, ui8PrevIC);
+ REGIO_WRITE_FIELD(cmd, VC1_RENDEC_CMD, VC1SLICE02, VC1_BACK_INT_COMP, ui8BackIC);
+ REGIO_WRITE_FIELD(cmd, VC1_RENDEC_CMD, VC1SLICE02, RND_CTRL_BIT, pic_params->rounding_control);
+ REGIO_WRITE_FIELD(cmd, VC1_RENDEC_CMD, VC1SLICE02, MODE_CONFIG, ctx->mode_config);
+ REGIO_WRITE_FIELD(cmd, VC1_RENDEC_CMD, VC1SLICE02, SUBPEL_FILTER_MODE, ((ctx->mv_mode == WMF_MVMODE_1MV_HALF_PEL_BILINEAR) && !(pic_params->picture_fields.bits.frame_coding_mode == VC1_FCM_FRMI)) ? 0 : 1);
+ REGIO_WRITE_FIELD(cmd, VC1_RENDEC_CMD, VC1SLICE02, VC1_FASTUVMC, pic_params->fast_uvmc_flag);
+ REGIO_WRITE_FIELD(cmd, VC1_RENDEC_CMD, VC1SLICE02, VC1_LOOPFILTER, pic_params->entrypoint_fields.bits.loopfilter);
+ REGIO_WRITE_FIELD(cmd, VC1_RENDEC_CMD, VC1SLICE02, SLICE_FIELD_TYPE, ctx->slice_field_type);
+ REGIO_WRITE_FIELD(cmd, VC1_RENDEC_CMD, VC1SLICE02, SLICE_CODE_TYPE, (pic_params->picture_fields.bits.picture_type == WMF_PTYPE_BI) ? 0 : (pic_params->picture_fields.bits.picture_type & 0x3)); /* BI is sent as I */
+ psb_cmdbuf_rendec_write(cmdbuf, cmd);
+
+ psb_cmdbuf_rendec_end_chunk(cmdbuf);
+
+ *ctx->p_slice_params = cmd;
+
+ /* ------------------------------- Back-End Registers --------------------------------- */
+
+ /* CHUNK: 6 (Back-end registers) */
+ psb_cmdbuf_rendec_start_chunk(cmdbuf, RENDEC_REGISTER_OFFSET(MSVDX_VEC, VC1_CR_VEC_VC1_BE_SPS0));
+
+ /* CR_VEC_VC1_BE_SPS0 */
+ cmd = 0;
+ REGIO_WRITE_FIELD(cmd, MSVDX_VEC_VC1, CR_VEC_VC1_BE_SPS0, VC1_BE_EXTENDED_DMV, pic_params->mv_fields.bits.extended_dmv_flag);
+ REGIO_WRITE_FIELD(cmd, MSVDX_VEC_VC1, CR_VEC_VC1_BE_SPS0, VC1_BE_EXTENDED_MV, pic_params->mv_fields.bits.extended_mv_flag);
+ REGIO_WRITE_FIELD(cmd, MSVDX_VEC_VC1, CR_VEC_VC1_BE_SPS0, VC1_BE_FASTUVMC, pic_params->fast_uvmc_flag);
+ REGIO_WRITE_FIELD(cmd, MSVDX_VEC_VC1, CR_VEC_VC1_BE_SPS0, VC1_BE_INTERLACE, pic_params->sequence_fields.bits.interlace);
+ //REGIO_WRITE_FIELD(cmd, MSVDX_VEC_VC1, CR_VEC_VC1_BE_SPS0, VC1_BE_PROFILE, ctx->profile);
+ psb_cmdbuf_rendec_write(cmdbuf, cmd);
+
+ /* CR_VEC_VC1_BE_SPS1 */
+ cmd = 0;
+ REGIO_WRITE_FIELD(cmd, MSVDX_VEC_VC1, CR_VEC_VC1_BE_SPS1, VC1_BE_PIC_HEIGHT_IN_MBS_LESS1, ctx->picture_height_mb - 1);
+ psb_cmdbuf_rendec_write(cmdbuf, cmd);
+
+ /* CR_VEC_VC1_BE_SPS2 */
+ cmd = 0;
+ REGIO_WRITE_FIELD(cmd, MSVDX_VEC_VC1, CR_VEC_VC1_BE_SPS2, VC1_BE_PIC_WIDTH_IN_MBS_LESS1, ctx->picture_width_mb - 1);
+ psb_cmdbuf_rendec_write(cmdbuf, cmd);
+
+ psb_cmdbuf_rendec_end_chunk(cmdbuf);
+
+ /* CHUNK: 6b (Back-end registers) */
+ psb_cmdbuf_rendec_start_chunk(cmdbuf, RENDEC_REGISTER_OFFSET(MSVDX_VEC, VC1_CR_VEC_VC1_BE_PPS2));
+
+ /* CR_VEC_VC1_BE_PPS2 */
+ cmd = 0;
+ REGIO_WRITE_FIELD(cmd, MSVDX_VEC_VC1, CR_VEC_VC1_BE_PPS2, VC1_BE_FCM_REF2, ctx->ui8FCM_Ref2Pic);
+ REGIO_WRITE_FIELD(cmd, MSVDX_VEC_VC1, CR_VEC_VC1_BE_PPS2, VC1_BE_FCM_REF1, ctx->ui8FCM_Ref1Pic);
+ REGIO_WRITE_FIELD(cmd, MSVDX_VEC_VC1, CR_VEC_VC1_BE_PPS2, VC1_BE_FCM_REF0, ctx->ui8FCM_Ref0Pic);
+ REGIO_WRITE_FIELD(cmd, MSVDX_VEC_VC1, CR_VEC_VC1_BE_PPS2, VC1_BE_COLLOCATED_SKIPPED, 0); // @TODO: Really need this?
+ psb_cmdbuf_rendec_write(cmdbuf, cmd);
+
+ /* CR_VEC_VC1_BE_PPS0 */
+ cmd = 0;
+ REGIO_WRITE_FIELD(cmd, MSVDX_VEC_VC1, CR_VEC_VC1_BE_PPS0, VC1_BE_IQ_OVERLAP, ((pic_params->picture_fields.bits.picture_type == WMF_PTYPE_B) || (ctx->condover == 0)) ? 0 : 1);
+ REGIO_WRITE_FIELD(cmd, MSVDX_VEC_VC1, CR_VEC_VC1_BE_PPS0, VC1_BE_UNIFORM_QUANTIZER, pic_params->pic_quantizer_fields.bits.pic_quantizer_type);
+ REGIO_WRITE_FIELD(cmd, MSVDX_VEC_VC1, CR_VEC_VC1_BE_PPS0, VC1_BE_TFF_FWD, ctx->bTFF_FwRefFrm);
+ REGIO_WRITE_FIELD(cmd, MSVDX_VEC_VC1, CR_VEC_VC1_BE_PPS0, VC1_BE_TFF_BWD, ctx->bTFF_BwRefFrm);
+ REGIO_WRITE_FIELD(cmd, MSVDX_VEC_VC1, CR_VEC_VC1_BE_PPS0, VC1_BE_TFF, pic_params->picture_fields.bits.top_field_first);
+ REGIO_WRITE_FIELD(cmd, MSVDX_VEC_VC1, CR_VEC_VC1_BE_PPS0, VC1_BE_SECOND_FIELD, !pic_params->picture_fields.bits.is_first_field);
+ REGIO_WRITE_FIELD(cmd, MSVDX_VEC_VC1, CR_VEC_VC1_BE_PPS0, VC1_BE_HALFQP, pic_params->pic_quantizer_fields.bits.half_qp);
+ REGIO_WRITE_FIELD(cmd, MSVDX_VEC_VC1, CR_VEC_VC1_BE_PPS0, VC1_BE_BFRACTION, pic_params->b_picture_fraction);
+ REGIO_WRITE_FIELD(cmd, MSVDX_VEC_VC1, CR_VEC_VC1_BE_PPS0, VC1_BE_FCM, pic_params->picture_fields.bits.frame_coding_mode);
+ REGIO_WRITE_FIELD(cmd, MSVDX_VEC_VC1, CR_VEC_VC1_BE_PPS0, VC1_BE_RNDCTRL, pic_params->rounding_control);
+ psb_cmdbuf_rendec_write(cmdbuf, cmd);
+
+ /* CR_VEC_VC1_BE_PPS1 */
+ cmd = 0;
+ REGIO_WRITE_FIELD(cmd, MSVDX_VEC_VC1, CR_VEC_VC1_BE_PPS1, VC1_BE_EXTEND_Y, ctx->extend_y);
+ REGIO_WRITE_FIELD(cmd, MSVDX_VEC_VC1, CR_VEC_VC1_BE_PPS1, VC1_BE_EXTEND_X, ctx->extend_x);
+ REGIO_WRITE_FIELD(cmd, MSVDX_VEC_VC1, CR_VEC_VC1_BE_PPS1, VC1_BE_QUANTIZER, (pic_params->pic_quantizer_fields.bits.pic_quantizer_type ? 0x03 /* uniform */ : 0x02 /* non-uniform */));
+ REGIO_WRITE_FIELD(cmd, MSVDX_VEC_VC1, CR_VEC_VC1_BE_PPS1, VC1_BE_PQUANT, pic_params->pic_quantizer_fields.bits.pic_quantizer_scale);
+ REGIO_WRITE_FIELD(cmd, MSVDX_VEC_VC1, CR_VEC_VC1_BE_PPS1, VC1_BE_MVMODE, pic_params->mv_fields.bits.mv_mode);
+ REGIO_WRITE_FIELD(cmd, MSVDX_VEC_VC1, CR_VEC_VC1_BE_PPS1, VC1_BE_MVMODE2, pic_params->mv_fields.bits.mv_mode2);
+ REGIO_WRITE_FIELD(cmd, MSVDX_VEC_VC1, CR_VEC_VC1_BE_PPS1, VC1_BE_PTYPE, pic_params->picture_fields.bits.picture_type);
+ psb_cmdbuf_rendec_write(cmdbuf, cmd);
+
+ /* CR_VEC_VC1_BE_MVD0 */
+ cmd = 0;
+ REGIO_WRITE_FIELD(cmd, MSVDX_VEC_VC1, CR_VEC_VC1_BE_MVD0, VC1_BE_BRPD, ctx->i8BckwrdRefFrmDist); /* 10.4.6.2 */
+ REGIO_WRITE_FIELD(cmd, MSVDX_VEC_VC1, CR_VEC_VC1_BE_MVD0, VC1_BE_FRPD, ctx->i8FwrdRefFrmDist);
+ psb_cmdbuf_rendec_write(cmdbuf, cmd);
+
+ /* CR_VEC_VC1_BE_MVD1 */
+ cmd = 0;
+ REGIO_WRITE_FIELD(cmd, MSVDX_VEC_VC1, CR_VEC_VC1_BE_MVD1, VC1_BE_SCALEFACTOR, ctx->ui32ScaleFactor); /* figure 66 */
+ psb_cmdbuf_rendec_write(cmdbuf, cmd);
+
+ /* CR_VEC_VC1_BE_MVD2 */
+ cmd = 0;
+ REGIO_WRITE_FIELD(cmd, MSVDX_VEC_VC1, CR_VEC_VC1_BE_MVD2, VC1_BE_PULLBACK_X, ctx->pull_back_x);
+ psb_cmdbuf_rendec_write(cmdbuf, cmd);
+
+ /* CR_VEC_VC1_BE_MVD3 */
+ cmd = 0;
+ REGIO_WRITE_FIELD(cmd, MSVDX_VEC_VC1, CR_VEC_VC1_BE_MVD3, VC1_BE_PULLBACK_Y, ctx->pull_back_y);
+ psb_cmdbuf_rendec_write(cmdbuf, cmd);
+
+ /* CR_VEC_VC1_BE_MVD4 */
+ cmd = 0;
+ REGIO_WRITE_FIELD(cmd, MSVDX_VEC_VC1, CR_VEC_VC1_BE_MVD4, VC1_BE_FIRST_MB_IN_SLICE_Y, slice_param->slice_vertical_position);
+ psb_cmdbuf_rendec_write(cmdbuf, cmd);
+
+ /* CR_VEC_VC1_BE_MVD5 */
+ cmd = 0;
+ REGIO_WRITE_FIELD(cmd, MSVDX_VEC_VC1, CR_VEC_VC1_BE_MVD5, VC1_BE_REFDIST, pic_params->reference_fields.bits.reference_distance);
+ REGIO_WRITE_FIELD(cmd, MSVDX_VEC_VC1, CR_VEC_VC1_BE_MVD5, VC1_BE_NUMREF, pic_params->reference_fields.bits.num_reference_pictures);
+ REGIO_WRITE_FIELD(cmd, MSVDX_VEC_VC1, CR_VEC_VC1_BE_MVD5, VC1_BE_REFFIELD, pic_params->reference_fields.bits.reference_field_pic_indicator);
+ REGIO_WRITE_FIELD(cmd, MSVDX_VEC_VC1, CR_VEC_VC1_BE_MVD5, VC1_BE_MVRANGE, pic_params->mv_fields.bits.extended_mv_range);
+ REGIO_WRITE_FIELD(cmd, MSVDX_VEC_VC1, CR_VEC_VC1_BE_MVD5, VC1_BE_HALFPEL_FLAG, ctx->half_pel);
+ //REGIO_WRITE_FIELD(cmd, MSVDX_VEC_VC1, CR_VEC_VC1_BE_MVD5, VC1_BE_FRAME_CODING_MODE, pic_params->picture_fields.bits.frame_coding_mode);
+ REGIO_WRITE_FIELD(cmd, MSVDX_VEC_VC1, CR_VEC_VC1_BE_MVD5, VC1_BE_BOTTOM_FIELD_FLAG, ctx->bottom_field);
+ REGIO_WRITE_FIELD(cmd, MSVDX_VEC_VC1, CR_VEC_VC1_BE_MVD5, VC1_BE_ADVANCED_PROFILE, (ctx->profile == WMF_PROFILE_ADVANCED) ? 1 : 0);
+ REGIO_WRITE_FIELD(cmd, MSVDX_VEC_VC1, CR_VEC_VC1_BE_MVD5, VC1_BE_SCAN_INDEX, ctx->scan_index);
+ psb_cmdbuf_rendec_write(cmdbuf, cmd);
+
+ psb_cmdbuf_rendec_end_chunk(cmdbuf);
+
+ /* CHUNK: 6c (Back-end registers) */
+ psb_cmdbuf_rendec_start_chunk(cmdbuf, RENDEC_REGISTER_OFFSET(MSVDX_VEC, VC1_CR_VEC_VC1_BE_PARAM_BASE_ADDR));
+
+ psb__information_message("psb_VC1: picture_type = %d\n", pic_params->picture_fields.bits.picture_type);
+
+ if (PIC_TYPE_IS_INTRA(pic_params->picture_fields.bits.picture_type) || (pic_params->picture_fields.bits.picture_type == WMF_PTYPE_P)) {
+ psb_buffer_p colocated_target_buffer = psb__VC1_lookup_colocated_buffer(ctx, target_surface);
+ ASSERT(colocated_target_buffer);
+ if (colocated_target_buffer) {
+ psb_cmdbuf_rendec_write_address(cmdbuf, colocated_target_buffer, ui32MBParamMemOffset);
+ } else {
+ /* This is an error */
+ psb_cmdbuf_rendec_write(cmdbuf, 0);
+ }
+ } else if (pic_params->picture_fields.bits.picture_type == WMF_PTYPE_B) {
+ ASSERT(ctx->forward_ref_surface);
+ psb_buffer_p colocated_forward_ref_buffer = ctx->forward_ref_surface ? psb__VC1_lookup_colocated_buffer(ctx, ctx->forward_ref_surface->psb_surface) : 0;
+ ASSERT(colocated_forward_ref_buffer);
+ if (colocated_forward_ref_buffer) {
+ psb_cmdbuf_rendec_write_address(cmdbuf, colocated_forward_ref_buffer, ui32MBParamMemOffset);
+ } else {
+ /* This is an error */
+ psb_cmdbuf_rendec_write(cmdbuf, 0);
+ }
+ }
+ psb_cmdbuf_rendec_end_chunk(cmdbuf);
+
+ if (!PIC_TYPE_IS_INTRA(pic_params->picture_fields.bits.picture_type)) {
+ /* CHUNK: 6d (Back-end registers) */
+ psb_cmdbuf_rendec_start_chunk(cmdbuf, RENDEC_REGISTER_OFFSET(MSVDX_VEC, VC1_CR_VEC_VC1_BE_COLPARAM_BASE_ADDR));
+
+ if (pic_params->picture_fields.bits.picture_type == WMF_PTYPE_P) {
+ /* CR_VEC_VC1_BE_COLPARAM_BASE_ADDR */
+ ASSERT(ctx->forward_ref_surface);
+ psb_buffer_p colocated_forward_ref_buffer = ctx->forward_ref_surface ? psb__VC1_lookup_colocated_buffer(ctx, ctx->forward_ref_surface->psb_surface) : NULL;
+ ASSERT(colocated_forward_ref_buffer);
+ if (colocated_forward_ref_buffer) {
+ psb_cmdbuf_rendec_write_address(cmdbuf, colocated_forward_ref_buffer, ui32MBParamMemOffset);
+ } else {
+ /* This is an error */
+ psb_cmdbuf_rendec_write(cmdbuf, 0);
+ }
+ } else if (pic_params->picture_fields.bits.picture_type == WMF_PTYPE_B) {
+ /* CR_VEC_VC1_BE_COLPARAM_BASE_ADDR */
+ ASSERT(ctx->backward_ref_surface);
+ psb_buffer_p colocated_backward_ref_buffer;
+
+ if (NULL == ctx->backward_ref_surface) {
+ psb__error_message("%s L%d Invalid backward_ref_surface handle\n", __FUNCTION__, __LINE__);
+ return;
+ }
+
+ colocated_backward_ref_buffer = ctx->backward_ref_surface->psb_surface ? psb__VC1_lookup_colocated_buffer(ctx, ctx->backward_ref_surface->psb_surface) : NULL;
+ ASSERT(colocated_backward_ref_buffer);
+ if (colocated_backward_ref_buffer) {
+ psb_cmdbuf_rendec_write_address(cmdbuf, colocated_backward_ref_buffer, ui32MBParamMemOffset);
+ } else {
+ /* This is an error */
+ psb_cmdbuf_rendec_write(cmdbuf, 0);
+ }
+ }
+
+ psb_cmdbuf_rendec_end_chunk(cmdbuf);
+ }
+
+ psb_cmdbuf_rendec_end_block(cmdbuf);
+}
+
+
+static void psb__VC1_load_sequence_registers(context_VC1_p ctx)
+{
+ psb_cmdbuf_p cmdbuf = ctx->obj_context->cmdbuf;
+ uint32_t reg_value;
+
+ psb_cmdbuf_reg_start_block(cmdbuf);
+
+ /* FE_CONTROL */
+ reg_value = 0;
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC, CR_VEC_ENTDEC_FE_CONTROL, ENTDEC_FE_PROFILE, ctx->profile);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC, CR_VEC_ENTDEC_FE_CONTROL, ENTDEC_FE_MODE, 2); /* 2 - VC1 */
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC, CR_VEC_ENTDEC_FE_CONTROL), reg_value);
+
+ /* FE_SPS0 */
+ reg_value = 0;
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_VC1, CR_VEC_VC1_FE_SPS0, VC1_FE_SYNCMARKER, ctx->pic_params->sequence_fields.bits.syncmarker);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_VC1, CR_VEC_VC1_FE_SPS0, VC1_FE_VSTRANSFORM, ctx->pic_params->transform_fields.bits.variable_sized_transform_flag);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_VC1, CR_VEC_VC1_FE_SPS0, VC1_FE_INTERLACE, ctx->pic_params->sequence_fields.bits.interlace);
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC_VC1, CR_VEC_VC1_FE_SPS0), reg_value);
+
+ psb_cmdbuf_reg_end_block(cmdbuf);
+
+ psb_cmdbuf_rendec_start_block(cmdbuf);
+ /* CHUNK: Entdec back-end profile and level */
+ psb_cmdbuf_rendec_start_chunk(cmdbuf, RENDEC_REGISTER_OFFSET(MSVDX_VEC, CR_VEC_ENTDEC_BE_CONTROL));
+
+ reg_value = 0;
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC, CR_VEC_ENTDEC_BE_CONTROL, ENTDEC_BE_PROFILE, ctx->profile);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC, CR_VEC_ENTDEC_BE_CONTROL, ENTDEC_BE_MODE, 2); /* 2 - VC1 */
+
+ psb_cmdbuf_rendec_write(cmdbuf, reg_value);
+ psb_cmdbuf_rendec_end_chunk(cmdbuf);
+ psb_cmdbuf_rendec_end_block(cmdbuf);
+}
+
+static void psb__VC1_load_picture_registers(context_VC1_p ctx, VASliceParameterBufferVC1 *slice_param)
+{
+ VAPictureParameterBufferVC1 *pic_params = ctx->pic_params;
+ psb_cmdbuf_p cmdbuf = ctx->obj_context->cmdbuf;
+ uint32_t reg_value;
+ int bEnableMVDLite = FALSE;
+ psb_cmdbuf_reg_start_block(cmdbuf);
+
+ /* Enable MVD lite for Progressive or FLDI P */
+ if (
+ (
+ (pic_params->sequence_fields.bits.interlace && (pic_params->picture_fields.bits.frame_coding_mode == VC1_FCM_FLDI)) ||
+ (!pic_params->sequence_fields.bits.interlace) ||
+ (pic_params->sequence_fields.bits.interlace && (pic_params->picture_fields.bits.frame_coding_mode == VC1_FCM_P))
+ ) &&
+ (pic_params->picture_fields.bits.picture_type == WMF_PTYPE_P)
+ ) {
+ bEnableMVDLite = TRUE;
+ }
+
+ /* FE_PPS0 */
+ reg_value = 0;
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_VC1, CR_VEC_VC1_FE_PPS0, VC1_FE_PIC_WIDTH_IN_MBS_LESS1, ctx->picture_width_mb - 1);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_VC1, CR_VEC_VC1_FE_PPS0, VC1_FE_PIC_HEIGHT_IN_MBS_LESS1, ctx->picture_height_mb - 1);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_VC1, CR_VEC_VC1_FE_PPS0, VC1_FE_FIRST_MB_IN_SLICE_Y, slice_param->slice_vertical_position);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_VC1, CR_VEC_VC1_FE_PPS0, VC1_FE_PTYPE, pic_params->picture_fields.bits.picture_type);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_VC1, CR_VEC_VC1_FE_PPS0, VC1_FE_FCM, pic_params->picture_fields.bits.frame_coding_mode);
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC_VC1, CR_VEC_VC1_FE_PPS0), reg_value);
+
+ /* FE_PPS1 */
+ reg_value = 0;
+#if VC1_INTERLEAVED_BITPLANE
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_VC1, CR_VEC_VC1_FE_PPS1, VC1_FE_BP_FORMAT, IMG_FALSE); // interleaved format
+#else
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_VC1, CR_VEC_VC1_FE_PPS1, VC1_FE_BP_FORMAT, IMG_TRUE); // non-interleaved format
+#endif
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_VC1, CR_VEC_VC1_FE_PPS1, VC1_FE_BP_PRESENT, ctx->bitplane_present);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_VC1, CR_VEC_VC1_FE_PPS1, VC1_FE_RAWCODINGFLAG, (pic_params->raw_coding.value & 0x7F)); /* 7-bits */
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_VC1, CR_VEC_VC1_FE_PPS1, VC1_FE_MVMODE, pic_params->mv_fields.bits.mv_mode);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_VC1, CR_VEC_VC1_FE_PPS1, VC1_FE_MVMODE2, pic_params->mv_fields.bits.mv_mode2);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_VC1, CR_VEC_VC1_FE_PPS1, VC1_FE_TTMBF, pic_params->transform_fields.bits.mb_level_transform_type_flag);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_VC1, CR_VEC_VC1_FE_PPS1, VC1_FE_TTFRM, pic_params->transform_fields.bits.frame_level_transform_type);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_VC1, CR_VEC_VC1_FE_PPS1, VC1_FE_BFRACTION, pic_params->b_picture_fraction);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_VC1, CR_VEC_VC1_FE_PPS1, VC1_FE_CONDOVER, ctx->condover);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_VC1, CR_VEC_VC1_FE_PPS1, VC1_FE_EXTEND_X, ctx->extend_x);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_VC1, CR_VEC_VC1_FE_PPS1, VC1_FE_EXTEND_Y, ctx->extend_y);
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC_VC1, CR_VEC_VC1_FE_PPS1), reg_value);
+
+ /* FE_PPS2 */
+ reg_value = 0;
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_VC1, CR_VEC_VC1_FE_PPS2, VC1_FE_DQXBEDGE, (pic_params->pic_quantizer_fields.bits.dq_profile == 1) ? pic_params->pic_quantizer_fields.bits.dq_db_edge : pic_params->pic_quantizer_fields.bits.dq_sb_edge);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_VC1, CR_VEC_VC1_FE_PPS2, VC1_FE_DQUANT, pic_params->pic_quantizer_fields.bits.dquant);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_VC1, CR_VEC_VC1_FE_PPS2, VC1_FE_PQUANT, pic_params->pic_quantizer_fields.bits.pic_quantizer_scale);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_VC1, CR_VEC_VC1_FE_PPS2, VC1_FE_HALFQP, pic_params->pic_quantizer_fields.bits.half_qp);
+ /* Is this correct? */
+ // Write to the VC1_FE_VOPDQUANT_PRESENT register according to PowerVR decoder's implementation.
+ if (((ctx->profile == WMF_PROFILE_ADVANCED) && (pic_params->pic_quantizer_fields.bits.dquant != 0))
+ || (((ctx->profile != WMF_PROFILE_ADVANCED) && ((pic_params->picture_fields.bits.picture_type == WMF_PTYPE_B) || (pic_params->picture_fields.bits.picture_type == WMF_PTYPE_P))) && (pic_params->pic_quantizer_fields.bits.dquant != 0))) {
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_VC1, CR_VEC_VC1_FE_PPS2, VC1_FE_VOPDQUANT_PRESENT, 1);
+ } else {
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_VC1, CR_VEC_VC1_FE_PPS2, VC1_FE_VOPDQUANT_PRESENT, 0);
+ }
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_VC1, CR_VEC_VC1_FE_PPS2, VC1_FE_DQUANTFRM, pic_params->pic_quantizer_fields.bits.dq_frame);
+ {
+ IMG_BOOL DQUANT_INFRAME = (pic_params->pic_quantizer_fields.bits.dquant == 2) ||
+ ((pic_params->pic_quantizer_fields.bits.dquant == 1) && pic_params->pic_quantizer_fields.bits.dq_frame) ||
+ ((pic_params->pic_quantizer_fields.bits.dquant == 3) && pic_params->pic_quantizer_fields.bits.dq_frame);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_VC1, CR_VEC_VC1_FE_PPS2, VC1_FE_DQUANT_INFRAME, DQUANT_INFRAME);
+ }
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_VC1, CR_VEC_VC1_FE_PPS2, VC1_FE_ALTPQUANT, pic_params->pic_quantizer_fields.bits.alt_pic_quantizer);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_VC1, CR_VEC_VC1_FE_PPS2, VC1_FE_DQPROFILE, pic_params->pic_quantizer_fields.bits.dq_profile);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_VC1, CR_VEC_VC1_FE_PPS2, VC1_FE_DQBILEVEL, pic_params->pic_quantizer_fields.bits.dq_binary_level);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_VC1, CR_VEC_VC1_FE_PPS2, VC1_FE_PQINDEX_GT8, ctx->pqindex_gt8);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_VC1, CR_VEC_VC1_FE_PPS2, VC1_FE_TRANSACFRM, pic_params->transform_fields.bits.transform_ac_codingset_idx1);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_VC1, CR_VEC_VC1_FE_PPS2, VC1_FE_TRANSACFRM2, pic_params->transform_fields.bits.transform_ac_codingset_idx2);
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC_VC1, CR_VEC_VC1_FE_PPS2), reg_value);
+
+ /* MVD_LITE0 */
+ reg_value = 0;
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_VC1, CR_VEC_VC1_FE_MVD_LITE0, VC1_FE_MVD_LITE_ENABLE, bEnableMVDLite);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_VC1, CR_VEC_VC1_FE_MVD_LITE0, VC1_FE_PULLBACK_X, ctx->pull_back_x);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_VC1, CR_VEC_VC1_FE_MVD_LITE0, VC1_FE_PULLBACK_Y, ctx->pull_back_y);
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC_VC1, CR_VEC_VC1_FE_MVD_LITE0), reg_value);
+
+ /* MVD_LITE1 */
+ reg_value = 0;
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_VC1, CR_VEC_VC1_FE_MVD_LITE1, VC1_FE_TFF, pic_params->picture_fields.bits.top_field_first);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_VC1, CR_VEC_VC1_FE_MVD_LITE1, VC1_FE_REFDIST, pic_params->reference_fields.bits.reference_distance);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_VC1, CR_VEC_VC1_FE_MVD_LITE1, VC1_FE_NUMREF, pic_params->reference_fields.bits.num_reference_pictures);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_VC1, CR_VEC_VC1_FE_MVD_LITE1, VC1_FE_REFFIELD, pic_params->reference_fields.bits.reference_field_pic_indicator);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_VC1, CR_VEC_VC1_FE_MVD_LITE1, VC1_FE_MVRANGE, pic_params->mv_fields.bits.extended_mv_range);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_VC1, CR_VEC_VC1_FE_MVD_LITE1, VC1_FE_HALFPEL_FLAG, ctx->half_pel);
+ //REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_VC1, CR_VEC_VC1_FE_MVD_LITE1, VC1_FE_FRAME_CODING_MODE, pic_params->picture_fields.bits.frame_coding_mode);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_VC1, CR_VEC_VC1_FE_MVD_LITE1, VC1_FE_BOTTOM_FIELD_FLAG, ctx->bottom_field);
+ REGIO_WRITE_FIELD(reg_value, MSVDX_VEC_VC1, CR_VEC_VC1_FE_MVD_LITE1, VC1_FE_ADVANCED_PROFILE, (ctx->profile == WMF_PROFILE_ADVANCED) ? 1 : 0);
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC_VC1, CR_VEC_VC1_FE_MVD_LITE1), reg_value);
+
+ psb_cmdbuf_reg_end_block(cmdbuf);
+}
+
+static void psb__VC1_setup_bitplane(context_VC1_p ctx)
+{
+ psb_cmdbuf_p cmdbuf = ctx->obj_context->cmdbuf;
+
+ psb_cmdbuf_reg_start_block(cmdbuf);
+
+ /* Bitplanes Data Buffer Base Address */
+ if (ctx->bitplane_present) {
+ ASSERT(ctx->has_bitplane);
+ psb_cmdbuf_reg_set_address(cmdbuf, REGISTER_OFFSET(MSVDX_VEC_VC1, CR_VEC_VC1_FE_BITPLANES_BASE_ADDR0),
+ ctx->bitplane_buffer, 0);
+#ifdef DEBUG_TRACE
+ //psb__debug_schedule_hexdump("Bitplane buffer", ctx->bitplane_buffer, 0, (ctx->size_mb + 1) / 2);
+#endif
+
+ } else {
+ psb_cmdbuf_reg_set(cmdbuf, REGISTER_OFFSET(MSVDX_VEC_VC1, CR_VEC_VC1_FE_BITPLANES_BASE_ADDR0), 0);
+ }
+
+ psb_cmdbuf_reg_end_block(cmdbuf);
+}
+
+static void psb__VC1_FE_state(context_VC1_p ctx)
+{
+ uint32_t lldma_record_offset;
+ psb_cmdbuf_p cmdbuf = ctx->obj_context->cmdbuf;
+ psb_surface_p deblock_surface = ctx->decoded_surface->psb_surface;
+
+ /* See RENDER_BUFFER_HEADER */
+ *cmdbuf->cmd_idx++ = CMD_HEADER_VC1;
+
+ ctx->p_range_mapping_base = cmdbuf->cmd_idx++; /* Fill Luma Range Mapping Base later */
+
+ /* VC1 Chroma Range Mapping Base Address */
+ RELOC(*cmdbuf->cmd_idx++, deblock_surface->buf.buffer_ofs + deblock_surface->chroma_offset, &deblock_surface->buf);
+
+ ctx->p_slice_params = cmdbuf->cmd_idx;
+ *cmdbuf->cmd_idx++ = 0; /* ui32SliceParams */
+
+ lldma_record_offset = psb_cmdbuf_lldma_create(cmdbuf, &ctx->preload_buffer, 0,
+ sizeof(VC1PRELOAD), 0, LLDMA_TYPE_VC1_PRELOAD_SAVE);
+ RELOC(*cmdbuf->cmd_idx, lldma_record_offset, &(cmdbuf->buf));
+ cmdbuf->cmd_idx++;
+
+ lldma_record_offset = psb_cmdbuf_lldma_create(cmdbuf, &ctx->preload_buffer, 0,
+ sizeof(VC1PRELOAD), 0, LLDMA_TYPE_VC1_PRELOAD_RESTORE);
+ RELOC(*cmdbuf->cmd_idx, lldma_record_offset, &(cmdbuf->buf));
+ cmdbuf->cmd_idx++;
+}
+
+static VAStatus psb__VC1_process_slice(context_VC1_p ctx,
+ VASliceParameterBufferVC1 *slice_param,
+ object_buffer_p obj_buffer)
+{
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+
+ ASSERT((obj_buffer->type == VASliceDataBufferType) || (obj_buffer->type == VAProtectedSliceDataBufferType));
+
+ psb__information_message("VC1 process slice\n");
+ psb__information_message(" size = %08x offset = %08x\n", slice_param->slice_data_size, slice_param->slice_data_offset);
+ psb__information_message(" vertical pos = %d offset = %d\n", slice_param->slice_vertical_position, slice_param->macroblock_offset);
+ psb__information_message(" slice_data_flag = %d\n", slice_param->slice_data_flag);
+
+ if ((slice_param->slice_data_flag == VA_SLICE_DATA_FLAG_BEGIN) ||
+ (slice_param->slice_data_flag == VA_SLICE_DATA_FLAG_ALL)) {
+ if (0 == slice_param->slice_data_size) {
+ vaStatus = VA_STATUS_ERROR_UNKNOWN;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+ ASSERT(!ctx->split_buffer_pending);
+
+ /* Initialise the command buffer */
+ /* TODO: Reuse current command buffer until full */
+ psb_context_get_next_cmdbuf(ctx->obj_context);
+
+ psb__VC1_FE_state(ctx);
+
+ /* TODO: Optimize? */
+ psb__VC1_write_VLC_tables(ctx);
+
+ psb__VC1_build_VLC_tables(ctx);
+
+ psb_cmdbuf_lldma_write_bitstream(ctx->obj_context->cmdbuf,
+ obj_buffer->psb_buffer,
+ obj_buffer->psb_buffer->buffer_ofs + slice_param->slice_data_offset,
+ slice_param->slice_data_size,
+ slice_param->macroblock_offset,
+ (ctx->profile == WMF_PROFILE_ADVANCED) ? CMD_ENABLE_RBDU_EXTRACTION : 0);
+
+ if (slice_param->slice_data_flag == VA_SLICE_DATA_FLAG_BEGIN) {
+ ctx->split_buffer_pending = TRUE;
+ }
+ } else {
+ ASSERT(ctx->split_buffer_pending);
+ ASSERT(0 == slice_param->slice_data_offset);
+ /* Create LLDMA chain to continue buffer */
+ if (slice_param->slice_data_size) {
+ psb_cmdbuf_lldma_write_bitstream_chained(ctx->obj_context->cmdbuf,
+ obj_buffer->psb_buffer,
+ slice_param->slice_data_size);
+ }
+ }
+
+ if ((slice_param->slice_data_flag == VA_SLICE_DATA_FLAG_ALL) ||
+ (slice_param->slice_data_flag == VA_SLICE_DATA_FLAG_END)) {
+ if (slice_param->slice_data_flag == VA_SLICE_DATA_FLAG_END) {
+ ASSERT(ctx->split_buffer_pending);
+ }
+
+ psb__VC1_load_sequence_registers(ctx);
+
+ psb__VC1_load_picture_registers(ctx, slice_param);
+
+ psb__VC1_setup_bitplane(ctx);
+
+ psb__VC1_send_rendec_params(ctx, slice_param);
+
+ psb__VC1_write_kick(ctx, slice_param);
+
+ ctx->split_buffer_pending = FALSE;
+ ctx->obj_context->video_op = psb_video_vld;
+ ctx->obj_context->first_mb = 0;
+ ctx->obj_context->flags = 0;
+ if (ctx->is_first_slice) {
+ ctx->obj_context->flags |= FW_VA_RENDER_IS_FIRST_SLICE;
+ }
+ if (ctx->bitplane_present) {
+ ctx->obj_context->flags |= FW_VA_RENDER_VC1_BITPLANE_PRESENT;
+ }
+ ctx->obj_context->last_mb = ((ctx->picture_height_mb - 1) << 8) | (ctx->picture_width_mb - 1);
+
+#ifdef DEBUG_TRACE_VERBOSE
+ psb__debug_schedule_hexdump("Preload buffer", &ctx->preload_buffer, 0, PRELOAD_BUFFER_SIZE);
+ psb__debug_schedule_hexdump("AUXMSB buffer", &ctx->aux_msb_buffer, 0, 0x8000 /* AUXMSB_BUFFER_SIZE */);
+ psb__debug_schedule_hexdump("VLC Table", &ctx->vlc_packed_table, 0, gui16vc1VlcTableSize * sizeof(IMG_UINT16));
+#endif
+
+ if (psb_context_submit_cmdbuf(ctx->obj_context)) {
+ vaStatus = VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ ctx->is_first_slice = FALSE; /* Reset */
+ }
+ return vaStatus;
+}
+
+static VAStatus psb__VC1_process_slice_data(context_VC1_p ctx, object_buffer_p obj_buffer)
+{
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ VASliceParameterBufferVC1 *slice_param;
+ int buffer_idx = 0;
+ int element_idx = 0;
+
+ ASSERT((obj_buffer->type == VASliceDataBufferType) || (obj_buffer->type == VAProtectedSliceDataBufferType));
+
+ ASSERT(ctx->pic_params);
+ ASSERT(ctx->slice_param_list_idx);
+
+ if (!ctx->pic_params) {
+ /* Picture params missing */
+ vaStatus = VA_STATUS_ERROR_UNKNOWN;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+ if ((NULL == obj_buffer->psb_buffer) ||
+ (0 == obj_buffer->size)) {
+ /* We need to have data in the bitstream buffer */
+ vaStatus = VA_STATUS_ERROR_UNKNOWN;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ while (buffer_idx < ctx->slice_param_list_idx) {
+ object_buffer_p slice_buf = ctx->slice_param_list[buffer_idx];
+ if (element_idx >= slice_buf->num_elements) {
+ /* Move to next buffer */
+ element_idx = 0;
+ buffer_idx++;
+ continue;
+ }
+
+ slice_param = (VASliceParameterBufferVC1 *) slice_buf->buffer_data;
+ slice_param += element_idx;
+ element_idx++;
+ vaStatus = psb__VC1_process_slice(ctx, slice_param, obj_buffer);
+ if (vaStatus != VA_STATUS_SUCCESS) {
+ DEBUG_FAILURE;
+ break;
+ }
+ }
+ ctx->slice_param_list_idx = 0;
+
+ return vaStatus;
+}
+
+static VAStatus psb_VC1_BeginPicture(
+ object_context_p obj_context)
+{
+ INIT_CONTEXT_VC1
+
+ if (ctx->pic_params) {
+ free(ctx->pic_params);
+ ctx->pic_params = NULL;
+ }
+ ctx->is_first_slice = TRUE;
+
+ return VA_STATUS_SUCCESS;
+}
+
+static VAStatus psb_VC1_RenderPicture(
+ object_context_p obj_context,
+ object_buffer_p *buffers,
+ int num_buffers)
+{
+ int i;
+ INIT_CONTEXT_VC1
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+
+ for (i = 0; i < num_buffers; i++) {
+ object_buffer_p obj_buffer = buffers[i];
+
+ switch (obj_buffer->type) {
+ case VAPictureParameterBufferType:
+ psb__information_message("psb_VC1_RenderPicture got VAPictureParameterBuffer\n");
+ vaStatus = psb__VC1_process_picture_param(ctx, obj_buffer);
+ DEBUG_FAILURE;
+ break;
+
+ case VABitPlaneBufferType:
+ psb__information_message("psb_VC1_RenderPicture got VABitPlaneBuffer\n");
+ vaStatus = psb__VC1_process_bitplane(ctx, obj_buffer);
+ DEBUG_FAILURE;
+ break;
+
+ case VASliceParameterBufferType:
+ psb__information_message("psb_VC1_RenderPicture got VASliceParameterBufferType\n");
+ vaStatus = psb__VC1_add_slice_param(ctx, obj_buffer);
+ DEBUG_FAILURE;
+ break;
+
+ case VASliceDataBufferType:
+ case VAProtectedSliceDataBufferType:
+
+ psb__information_message("psb_VC1_RenderPicture got %s\n", SLICEDATA_BUFFER_TYPE(obj_buffer->type));
+ vaStatus = psb__VC1_process_slice_data(ctx, obj_buffer);
+ DEBUG_FAILURE;
+ break;
+
+ default:
+ vaStatus = VA_STATUS_ERROR_UNKNOWN;
+ DEBUG_FAILURE;
+ }
+ if (vaStatus != VA_STATUS_SUCCESS) {
+ break;
+ }
+ }
+
+ return vaStatus;
+}
+
+static VAStatus psb_VC1_EndPicture(
+ object_context_p obj_context)
+{
+ INIT_CONTEXT_VC1
+
+ if (psb_context_flush_cmdbuf(ctx->obj_context)) {
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ ASSERT(ctx->pic_params);
+ if (!ctx->pic_params) {
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ /********* Keep some picture parameters of the previously decoded picture ***********/
+ if (PIC_TYPE_IS_REF(ctx->pic_params->picture_fields.bits.picture_type)) { // I or P
+ /* Assume that the picture that we just decoded (the picture previous to the one that
+ is about to be decoded) is the backward reference picture for a B picture. */
+ /* TODO: Make this more robust */
+ ctx->ui8FCM_Ref2Pic = ctx->pic_params->picture_fields.bits.frame_coding_mode;
+
+ /* For interlaced field pictures only */
+ if ((ctx->pic_params->picture_fields.bits.frame_coding_mode != VC1_FCM_FLDI) || !ctx->pic_params->picture_fields.bits.is_first_field) {
+ ctx->bTFF_BwRefFrm = ctx->pic_params->picture_fields.bits.top_field_first;
+ }
+ }
+
+ ctx->bRef1RangeRed = ctx->bRef0RangeRed;
+ if (PIC_TYPE_IS_REF(ctx->pic_params->picture_fields.bits.picture_type)) {
+ ctx->bRef0RangeRed = ctx->pic_params->range_reduction_frame;
+ }
+ /***********************************************************************************/
+
+ free(ctx->pic_params);
+ ctx->pic_params = NULL;
+
+ return VA_STATUS_SUCCESS;
+}
+
+struct format_vtable_s psb_VC1_vtable = {
+queryConfigAttributes:
+ psb_VC1_QueryConfigAttributes,
+validateConfig:
+ psb_VC1_ValidateConfig,
+createContext:
+ psb_VC1_CreateContext,
+destroyContext:
+ psb_VC1_DestroyContext,
+beginPicture:
+ psb_VC1_BeginPicture,
+renderPicture:
+ psb_VC1_RenderPicture,
+endPicture:
+ psb_VC1_EndPicture
+};
diff --git a/src/psb_VC1.h b/src/psb_VC1.h
new file mode 100644
index 0000000..070ba2c
--- /dev/null
+++ b/src/psb_VC1.h
@@ -0,0 +1,37 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ * Waldo Bastian <waldo.bastian@intel.com>
+ *
+ */
+
+#ifndef _PSB_VC1_H_
+#define _PSB_VC1_H_
+
+#include "psb_drv_video.h"
+
+extern struct format_vtable_s psb_VC1_vtable;
+
+#endif /* _PSB_VC1_H_ */
diff --git a/src/psb_buffer.c b/src/psb_buffer.c
new file mode 100644
index 0000000..4230215
--- /dev/null
+++ b/src/psb_buffer.c
@@ -0,0 +1,467 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ * Waldo Bastian <waldo.bastian@intel.com>
+ *
+ */
+
+#include "psb_buffer.h"
+
+#include <errno.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <wsbm/wsbm_manager.h>
+
+#include "psb_drm.h"
+#include "psb_def.h"
+
+#include <pnw_cmdbuf.h>
+
+#include "pnw_jpeg.h"
+#include "pnw_H264ES.h"
+#include "lnc_H264ES.h"
+
+/*
+ * Create buffer
+ */
+VAStatus psb_buffer_create(psb_driver_data_p driver_data,
+ unsigned int size,
+ psb_buffer_type_t type,
+ psb_buffer_p buf
+ )
+{
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ int allignment;
+ uint32_t placement;
+ int ret;
+
+ /* reset rar_handle to NULL */
+ buf->rar_handle = 0;
+ buf->buffer_ofs = 0;
+
+ buf->type = type;
+ buf->driver_data = driver_data; /* only for RAR buffers */
+
+ /* TODO: Mask values are a guess */
+ switch (type) {
+ case psb_bt_cpu_vpu:
+ allignment = 1;
+ placement = DRM_PSB_FLAG_MEM_MMU;
+ break;
+ case psb_bt_cpu_vpu_shared:
+ allignment = 1;
+ placement = DRM_PSB_FLAG_MEM_MMU | WSBM_PL_FLAG_SHARED;
+ break;
+ case psb_bt_surface:
+ allignment = 0;
+ /* Xvideo will share surface buffer, set SHARED flag
+ */
+ if (getenv("PSB_VIDEO_SURFACE_MMU")) {
+ psb__information_message("Allocate surface from MMU heap\n");
+ placement = DRM_PSB_FLAG_MEM_MMU | WSBM_PL_FLAG_SHARED;
+ } else {
+ psb__information_message("Allocate surface from TT heap\n");
+ placement = WSBM_PL_FLAG_TT | WSBM_PL_FLAG_SHARED;
+ }
+ break;
+ case psb_bt_vpu_only:
+ allignment = 1;
+ placement = DRM_PSB_FLAG_MEM_MMU;
+ break;
+
+ case psb_bt_cpu_only:
+ allignment = 1;
+ placement = WSBM_PL_FLAG_SYSTEM | WSBM_PL_FLAG_CACHED;
+ break;
+ case psb_bt_camera:
+ allignment = 1;
+ placement = DRM_PSB_FLAG_MEM_CI | WSBM_PL_FLAG_SHARED;
+ break;
+ case psb_bt_rar:
+ allignment = 1;
+ placement = DRM_PSB_FLAG_MEM_RAR | WSBM_PL_FLAG_SHARED;
+ break;
+ default:
+ vaStatus = VA_STATUS_ERROR_UNKNOWN;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+ ret = LOCK_HARDWARE(driver_data);
+ if (ret) {
+ UNLOCK_HARDWARE(driver_data);
+ vaStatus = VA_STATUS_ERROR_ALLOCATION_FAILED;
+ DEBUG_FAILURE_RET;
+ return vaStatus;
+ }
+
+#ifdef VA_EMULATOR
+ placement |= WSBM_PL_FLAG_SHARED;
+#endif
+
+#ifdef MSVDX_VA_EMULATOR
+ placement |= WSBM_PL_FLAG_SHARED;
+#endif
+
+ allignment = 4096; /* temporily more safe */
+
+ //psb__error_message("FIXME: should use geetpagesize() ?\n");
+ ret = wsbmGenBuffers(driver_data->main_pool, 1, &buf->drm_buf,
+ allignment, placement);
+ if (!buf->drm_buf) {
+ psb__error_message("failed to gen wsbm buffers\n");
+ UNLOCK_HARDWARE(driver_data);
+ return VA_STATUS_ERROR_ALLOCATION_FAILED;
+ }
+
+ /* here use the placement when gen buffer setted */
+ ret = wsbmBOData(buf->drm_buf, size, NULL, NULL, 0);
+ UNLOCK_HARDWARE(driver_data);
+ if (ret) {
+ psb__error_message("failed to alloc wsbm buffers\n");
+ return VA_STATUS_ERROR_ALLOCATION_FAILED;
+ }
+
+ if (placement & WSBM_PL_FLAG_TT)
+ psb__information_message("Create BO with TT placement (%d byte),BO GPU offset hint=0x%08x\n",
+ size, wsbmBOOffsetHint(buf->drm_buf));
+
+ buf->pl_flags = placement;
+ buf->status = psb_bs_ready;
+ buf->wsbm_synccpu_flag = 0;
+
+ return VA_STATUS_SUCCESS;
+}
+
+
+/*
+ * buffer setstatus
+ *
+ * Returns 0 on success
+ */
+int psb_buffer_setstatus(psb_buffer_p buf, uint32_t set_placement, uint32_t clr_placement)
+{
+ int ret = 0;
+
+ ASSERT(buf);
+ ASSERT(buf->driver_data);
+
+ ret = wsbmBOSetStatus(buf->drm_buf, set_placement, clr_placement);
+ if (ret == 0)
+ buf->pl_flags = set_placement;
+
+ return ret;
+}
+
+
+VAStatus psb_buffer_reference(psb_driver_data_p driver_data,
+ psb_buffer_p buf,
+ psb_buffer_p reference_buf
+ )
+{
+ int ret = 0;
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+
+ memcpy(buf, reference_buf, sizeof(*buf));
+ buf->drm_buf = NULL;
+
+ ret = LOCK_HARDWARE(driver_data);
+ if (ret) {
+ UNLOCK_HARDWARE(driver_data);
+ vaStatus = VA_STATUS_ERROR_ALLOCATION_FAILED;
+ DEBUG_FAILURE_RET;
+ return vaStatus;
+ }
+
+ ret = wsbmGenBuffers(driver_data->main_pool,
+ 1,
+ &buf->drm_buf,
+ 4096, /* page alignment */
+ 0);
+ if (!buf->drm_buf) {
+ psb__error_message("failed to gen wsbm buffers\n");
+ UNLOCK_HARDWARE(driver_data);
+ return VA_STATUS_ERROR_ALLOCATION_FAILED;
+ }
+
+ ret = wsbmBOSetReferenced(buf->drm_buf, wsbmKBufHandle(wsbmKBuf(reference_buf->drm_buf)));
+ UNLOCK_HARDWARE(driver_data);
+ if (ret) {
+ psb__error_message("failed to alloc wsbm buffers\n");
+ return VA_STATUS_ERROR_ALLOCATION_FAILED;
+ }
+
+ return VA_STATUS_SUCCESS;
+}
+
+
+/*
+ * Destroy buffer
+ */
+void psb_buffer_destroy(psb_buffer_p buf)
+{
+ ASSERT(buf);
+ if (buf->drm_buf == NULL)
+ return;
+ if (psb_bs_unfinished != buf->status) {
+ ASSERT(buf->driver_data);
+ wsbmBOUnreference(&buf->drm_buf);
+ if (buf->rar_handle)
+ psb_buffer_destroy_rar(buf->driver_data, buf);
+ buf->driver_data = NULL;
+ buf->status = psb_bs_unfinished;
+ }
+}
+
+/*
+ * Map buffer
+ *
+ * Returns 0 on success
+ */
+int psb_buffer_map(psb_buffer_p buf, void **address /* out */)
+{
+ int ret;
+
+ ASSERT(buf);
+ ASSERT(buf->driver_data);
+
+ /* multiple mapping not allowed */
+ if (buf->wsbm_synccpu_flag) {
+ psb__information_message("Multiple mapping request detected, unmap previous mapping\n");
+ psb__information_message("Need to fix application to unmap at first, then request second mapping request\n");
+
+ psb_buffer_unmap(buf);
+ }
+
+ /* don't think TG deal with READ/WRITE differently */
+ buf->wsbm_synccpu_flag = WSBM_SYNCCPU_READ | WSBM_SYNCCPU_WRITE;
+#ifdef DEBUG_TRACE
+ wsbmBOWaitIdle(buf->drm_buf, 0);
+#else
+ ret = wsbmBOSyncForCpu(buf->drm_buf, buf->wsbm_synccpu_flag);
+ if (ret) {
+ psb__error_message("faild to sync bo for cpu\n");
+ return ret;
+ }
+#endif
+
+ if (buf->type == psb_bt_user_buffer)
+ *address = buf->user_ptr;
+ else
+ *address = wsbmBOMap(buf->drm_buf, buf->wsbm_synccpu_flag);
+
+ if (*address == NULL) {
+ psb__error_message("failed to map buffer\n");
+ return -1;
+ }
+
+ return 0;
+
+}
+
+/*
+ * Unmap buffer
+ *
+ * Returns 0 on success
+ */
+int psb_buffer_unmap(psb_buffer_p buf)
+{
+ ASSERT(buf);
+ ASSERT(buf->driver_data);
+
+ if (buf->wsbm_synccpu_flag)
+ (void) wsbmBOReleaseFromCpu(buf->drm_buf, buf->wsbm_synccpu_flag);
+
+ buf->wsbm_synccpu_flag = 0;
+
+ if (buf->type != psb_bt_user_buffer)
+ wsbmBOUnmap(buf->drm_buf);
+
+ return 0;
+}
+
+
+/*
+ * Return special data structure for codedbuffer
+ *
+ * Returns 0 on success
+ */
+#define CONFIG(id) ((object_config_p) object_heap_lookup( &driver_data->config_heap, id ))
+#define INIT_DRIVER_DATA psb_driver_data_p driver_data = (psb_driver_data_p) ctx->pDriverData;
+int psb_codedbuf_map_mangle(
+ VADriverContextP ctx,
+ object_buffer_p obj_buffer,
+ void **pbuf /* out */
+)
+{
+ object_context_p obj_context = obj_buffer->context;
+ INIT_DRIVER_DATA;
+ VACodedBufferSegment *p = &obj_buffer->codedbuf_mapinfo[0];
+ void *raw_codedbuf;
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ unsigned int next_buf_off;
+ int i;
+
+ if (NULL == pbuf) {
+ vaStatus = VA_STATUS_ERROR_INVALID_PARAMETER;
+ return vaStatus;
+ }
+
+ if (NULL == obj_context) {
+ vaStatus = VA_STATUS_ERROR_ALLOCATION_FAILED;
+ DEBUG_FAILURE;
+
+ psb_buffer_unmap(obj_buffer->psb_buffer);
+ obj_buffer->buffer_data = NULL;
+
+ return vaStatus;
+ }
+
+ raw_codedbuf = *pbuf;
+ /* reset the mapinfo */
+ memset(obj_buffer->codedbuf_mapinfo, 0, sizeof(obj_buffer->codedbuf_mapinfo));
+
+ *pbuf = p = &obj_buffer->codedbuf_mapinfo[0];
+ if (IS_MRST(driver_data)) {
+ /* one segment */
+ p->size = *((unsigned long *) raw_codedbuf); /* 1st DW is the size */
+ p->status = *((unsigned long *) raw_codedbuf + 1); /* 2nd DW
+ * is rc status */
+ p->reserved = 0;
+ p->buf = (void *)((unsigned long *) raw_codedbuf + 4); /* skip 4DWs */
+ lnc_H264_append_aux_info(obj_context,
+ obj_buffer,
+ (unsigned char *)p->buf,
+ &(p->size));
+ } else { /* MFLD */
+ object_config_p obj_config = CONFIG(obj_context->config_id);
+
+ if (NULL == obj_config) {
+ vaStatus = VA_STATUS_ERROR_ALLOCATION_FAILED;
+ DEBUG_FAILURE;
+
+ psb_buffer_unmap(obj_buffer->psb_buffer);
+ obj_buffer->buffer_data = NULL;
+
+ return vaStatus;
+ }
+
+ if (VAProfileJPEGBaseline != obj_config->profile
+ && (*((unsigned long *) raw_codedbuf + 1) & SKIP_NEXT_FRAME) != 0) {
+ /*Set frame skip flag*/
+ pnw_set_frame_skip_flag(obj_context);
+ }
+ switch (obj_config->profile) {
+ case VAProfileMPEG4Simple:
+ case VAProfileMPEG4AdvancedSimple:
+ case VAProfileMPEG4Main:
+ /* one segment */
+ p->size = *((unsigned long *) raw_codedbuf);
+ p->buf = (void *)((unsigned long *) raw_codedbuf + 4); /* skip 4DWs */
+ psb__information_message("coded buffer size %d\n", p->size);
+ break;
+
+ case VAProfileH264Baseline:
+ case VAProfileH264Main:
+ case VAProfileH264High:
+ case VAProfileH264ConstrainedBaseline:
+ /* 1st segment */
+ p->size = *((unsigned long *) raw_codedbuf);
+ p->buf = (void *)((unsigned long *) raw_codedbuf + 4); /* skip 4DWs */
+
+ psb__information_message("1st segment coded buffer size %d\n", p->size);
+ if (pnw_get_parallel_core_number(obj_context) == 2) {
+ /*The second part of coded buffer which generated by core 2 is the
+ * first part of encoded clip, while the first part of coded buffer
+ * is the second part of encoded clip.*/
+ next_buf_off = ~0xf & (obj_buffer->size / pnw_get_parallel_core_number(obj_context));
+ p->next = &p[1];
+ p[1].size = p->size;
+ p[1].buf = p->buf;
+ p[1].next = NULL;
+ p->size = *(unsigned long *)((unsigned long)raw_codedbuf + next_buf_off);
+ p->buf = (void *)(((unsigned long *)((unsigned long)raw_codedbuf + next_buf_off)) + 4); /* skip 4DWs */
+ psb__information_message("2nd segment coded buffer offset: 0x%08x, size: %d\n",
+ next_buf_off, p->size);
+ } else
+ p->next = NULL;
+ break;
+
+ case VAProfileH263Baseline:
+ /* one segment */
+ p->size = *((unsigned long *) raw_codedbuf);
+ p->buf = (void *)((unsigned long *) raw_codedbuf + 4); /* skip 4DWs */
+ psb__information_message("coded buffer size %d\n", p->size);
+ break;
+
+ case VAProfileJPEGBaseline:
+ /* 3~6 segment
+ */
+ pnw_jpeg_AppendMarkers(obj_context, raw_codedbuf);
+ next_buf_off = 0;
+ /*Max resolution 4096x4096 use 6 segments*/
+ for (i = 0; i < PNW_JPEG_MAX_SCAN_NUM + 1; i++) {
+ p->size = *(unsigned long *)((unsigned long)raw_codedbuf + next_buf_off);
+ p->buf = (void *)((unsigned long *)((unsigned long)raw_codedbuf + next_buf_off) + 4); /* skip 4DWs */
+ next_buf_off = *((unsigned long *)((unsigned long)raw_codedbuf + next_buf_off) + 3);
+
+ psb__information_message("JPEG coded buffer segment %d size: %d\n", i, p->size);
+ psb__information_message("JPEG coded buffer next segment %d offset: %d\n", i + 1, next_buf_off);
+
+ if (next_buf_off == 0) {
+ p->next = NULL;
+ break;
+ } else
+ p->next = &p[1];
+ p++;
+ }
+ break;
+
+ default:
+ psb__error_message("unexpected case\n");
+
+ psb_buffer_unmap(obj_buffer->psb_buffer);
+ obj_buffer->buffer_data = NULL;
+ break;
+ }
+ }
+
+ return 0;
+}
+
+int psb_buffer_sync(psb_buffer_p buf)
+{
+ int ret;
+
+ ASSERT(buf);
+ ASSERT(buf->driver_data);
+
+ ret = wsbmBOSyncForCpu(buf->drm_buf, buf->wsbm_synccpu_flag);
+ if (ret) {
+ psb__error_message("faild to sync bo for cpu\n");
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ return VA_STATUS_SUCCESS;
+}
diff --git a/src/psb_buffer.h b/src/psb_buffer.h
new file mode 100644
index 0000000..c8d4f8e
--- /dev/null
+++ b/src/psb_buffer.h
@@ -0,0 +1,184 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ * Waldo Bastian <waldo.bastian@intel.com>
+ *
+ */
+
+#ifndef _PSB_BUFFER_H_
+#define _PSB_BUFFER_H_
+
+#include "psb_drv_video.h"
+
+#include <RAR/rar.h>
+
+//#include "xf86mm.h"
+
+/* For TopazSC, it indicates the next frame should be skipped */
+#define SKIP_NEXT_FRAME 0x800
+
+typedef struct psb_buffer_s *psb_buffer_p;
+
+/* VPU = MSVDX */
+typedef enum psb_buffer_type_e {
+ psb_bt_cpu_vpu = 0, /* Shared between CPU & Video PU */
+ psb_bt_cpu_vpu_shared, /* CPU/VPU can access, and can shared by other process */
+ psb_bt_surface, /* Tiled surface */
+ psb_bt_vpu_only, /* Only used by Video PU */
+ psb_bt_cpu_only, /* Only used by CPU */
+ psb_bt_camera, /* memory is camera device memory */
+ psb_bt_rar, /* global RAR buffer */
+ psb_bt_rar_surface, /* memory is RAR device memory for protected surface*/
+ psb_bt_rar_slice, /* memory is RAR device memory for slice data */
+ psb_bt_user_buffer /* memory is from user buffers */
+} psb_buffer_type_t;
+
+typedef enum psb_buffer_status_e {
+ psb_bs_unfinished = 0,
+ psb_bs_ready,
+ psb_bs_queued,
+ psb_bs_abandoned
+} psb_buffer_status_t;
+
+struct psb_buffer_s {
+ struct _WsbmBufferObject *drm_buf;
+ int wsbm_synccpu_flag;
+ uint64_t pl_flags;
+
+ psb_buffer_type_t type;
+ psb_buffer_status_t status;
+ uint32_t rar_handle;
+ unsigned int buffer_ofs; /* several buffers may share one BO (camera/RAR), and use offset to distinguish it */
+ struct psb_buffer_s *next;
+ void *user_ptr; /* user pointer for user buffers */
+ psb_driver_data_p driver_data; /* for RAR buffer release */
+};
+
+/*
+ * Create buffer
+ */
+VAStatus psb_buffer_create(psb_driver_data_p driver_data,
+ unsigned int size,
+ psb_buffer_type_t type,
+ psb_buffer_p buf
+ );
+
+/*
+ * Setstatus Buffer
+ */
+int psb_buffer_setstatus(psb_buffer_p buf, uint32_t set_placement, uint32_t clr_placement);
+
+
+/*
+ * Reference buffer
+ */
+VAStatus psb_buffer_reference(psb_driver_data_p driver_data,
+ psb_buffer_p buf,
+ psb_buffer_p reference_buf
+ );
+
+/*
+ * Suspend buffer
+ */
+void psb__suspend_buffer(psb_driver_data_p driver_data, object_buffer_p obj_buffer);
+
+/*
+ * Destroy buffer
+ */
+void psb_buffer_destroy(psb_buffer_p buf);
+
+/*
+ * Map buffer
+ *
+ * Returns 0 on success
+ */
+int psb_buffer_map(psb_buffer_p buf, void **address /* out */);
+
+int psb_buffer_sync(psb_buffer_p buf);
+
+int psb_codedbuf_map_mangle(
+ VADriverContextP ctx,
+ object_buffer_p obj_buffer,
+ void **pbuf /* out */
+);
+
+
+/*
+ * Unmap buffer
+ *
+ * Returns 0 on success
+ */
+int psb_buffer_unmap(psb_buffer_p buf);
+
+/*
+ * Create buffer from camera device memory
+ */
+VAStatus psb_buffer_create_camera(psb_driver_data_p driver_data,
+ psb_buffer_p buf,
+ int is_v4l2,
+ int id_or_ofs
+ );
+
+/*
+ * Create RAR buffer
+ */
+VAStatus psb_buffer_create_rar(psb_driver_data_p driver_data,
+ unsigned int size,
+ psb_buffer_p buf
+ );
+
+/*
+ * Destroy RAR buffer
+ */
+VAStatus psb_buffer_destroy_rar(psb_driver_data_p driver_data,
+ psb_buffer_p buf
+ );
+
+/*
+ * Reference one RAR buffer from handle
+ */
+VAStatus psb_buffer_reference_rar(psb_driver_data_p driver_data,
+ uint32_t rar_handle,
+ psb_buffer_p buf
+ );
+/*
+ * Create one buffer from user buffer
+ * id_or_ofs is CI frame ID (actually now is frame offset), or V4L2 buffer offset
+ * user_ptr :virtual address of user buffer start.
+ */
+VAStatus psb_buffer_create_camera_from_ub(psb_driver_data_p driver_data,
+ psb_buffer_p buf,
+ int id_or_ofs,
+ int size,
+ const unsigned long * user_ptr);
+#ifdef ANDROID
+#define DRM_PSB_FLAG_MEM_CI (1<<9)
+#define DRM_PSB_FLAG_MEM_RAR (1<<10)
+#else
+#define DRM_PSB_FLAG_MEM_CI (1 << 3) /* TTM_PL_FLAG_PRIV0 */
+#define DRM_PSB_FLAG_MEM_RAR (1 << 5) /* TTM_PL_FLAG_PRIV2 */
+#endif
+
+#endif /* _PSB_BUFFER_H_ */
diff --git a/src/psb_buffer_dm.c b/src/psb_buffer_dm.c
new file mode 100644
index 0000000..ec06dda
--- /dev/null
+++ b/src/psb_buffer_dm.c
@@ -0,0 +1,482 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ * Shengquan Yuan <shengquan.yuan@intel.com>
+ * Forrest Zhang <forrest.zhang@intel.com>
+ *
+ */
+
+#include "psb_buffer.h"
+
+#include <errno.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <wsbm/wsbm_manager.h>
+/* #include <linux/rar_register.h> */
+
+#include "psb_drm.h"
+#include "psb_def.h"
+
+
+static VAStatus psb_buffer_offset_camerav4l2(psb_driver_data_p driver_data,
+ psb_buffer_p buf,
+ unsigned int v4l2_buf_offset,
+ unsigned int *bo_offset
+ )
+{
+ *bo_offset = v4l2_buf_offset;
+ return VA_STATUS_SUCCESS;
+}
+
+
+static VAStatus psb_buffer_offset_cameraci(psb_driver_data_p driver_data,
+ psb_buffer_p buf,
+ unsigned int ci_frame_offset_or_handle,
+ unsigned int *bo_offset
+ )
+{
+ *bo_offset = ci_frame_offset_or_handle;
+
+ return VA_STATUS_SUCCESS;
+}
+
+
+static int psb_buffer_info_ci(psb_driver_data_p driver_data)
+{
+ struct drm_lnc_video_getparam_arg arg;
+ unsigned long camera_info[2] = {0, 0};
+ int ret = 0;
+
+ driver_data->camera_phyaddr = driver_data->camera_size = 0;
+
+ arg.key = LNC_VIDEO_GETPARAM_CI_INFO;
+ arg.value = (uint64_t)((unsigned long) & camera_info[0]);
+ ret = drmCommandWriteRead(driver_data->drm_fd, driver_data->getParamIoctlOffset,
+ &arg, sizeof(arg));
+ if (ret == 0) {
+ driver_data->camera_phyaddr = camera_info[0];
+ driver_data->camera_size = camera_info[1];
+ psb__information_message("CI region physical address = 0x%08x, size=%dK\n",
+ driver_data->camera_phyaddr, driver_data->camera_size / 1024);
+
+ return ret;
+ }
+
+ psb__information_message("CI region get_info failed\n");
+ return ret;
+}
+
+/*
+ * Allocate global BO which maps camear device memory as encode MMU memory
+ * the global BO shared by several encode surfaces created from camear memory
+ */
+static VAStatus psb_buffer_init_camera(psb_driver_data_p driver_data)
+{
+ int ret = 0;
+
+ /* hasn't grab camera device memory region
+ * grab the whole 4M camera device memory
+ */
+ driver_data->camera_bo = calloc(1, sizeof(struct psb_buffer_s));
+ if (driver_data->camera_bo == NULL)
+ return VA_STATUS_ERROR_ALLOCATION_FAILED;
+
+ psb__information_message("Grab whole camera device memory\n");
+ ret = psb_buffer_create(driver_data, driver_data->camera_size, psb_bt_camera, (psb_buffer_p) driver_data->camera_bo);
+
+ if (ret != VA_STATUS_SUCCESS) {
+ free(driver_data->camera_bo);
+ driver_data->camera_bo = NULL;
+
+ psb__error_message("Grab camera device memory failed\n");
+ }
+
+ return ret;
+}
+
+
+/*
+ * Create one buffer from camera device memory
+ * is_v4l2 means if the buffer is V4L2 buffer
+ * id_or_ofs is CI frame ID (actually now is frame offset), or V4L2 buffer offset
+ */
+VAStatus psb_buffer_create_camera(psb_driver_data_p driver_data,
+ psb_buffer_p buf,
+ int is_v4l2,
+ int id_or_ofs
+ )
+{
+ VAStatus vaStatus;
+ int ret = 0;
+ unsigned int camera_offset = 0;
+
+ if (driver_data->camera_bo == NULL) {
+ if (psb_buffer_info_ci(driver_data)) {
+ psb__error_message("Can't get CI region information\n");
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ vaStatus = psb_buffer_init_camera(driver_data);
+ if (vaStatus != VA_STATUS_SUCCESS) {
+ psb__error_message("Grab camera device memory failed\n");
+ return ret;
+ }
+ }
+
+ /* reference the global camear BO */
+ ret = psb_buffer_reference(driver_data, buf, (psb_buffer_p) driver_data->camera_bo);
+ if (ret != VA_STATUS_SUCCESS) {
+ psb__error_message("Reference camera device memory failed\n");
+ return ret;
+ }
+
+ if (is_v4l2)
+ ret = psb_buffer_offset_camerav4l2(driver_data, buf, id_or_ofs, &camera_offset);
+ else
+ ret = psb_buffer_offset_cameraci(driver_data, buf, id_or_ofs, &camera_offset);
+
+ buf->buffer_ofs = camera_offset;
+
+ return ret;
+}
+
+/*
+ * Create one buffer from user buffer
+ * id_or_ofs is CI frame ID (actually now is frame offset), or V4L2 buffer offset
+ * user_ptr :virtual address of user buffer start.
+ */
+VAStatus psb_buffer_create_camera_from_ub(psb_driver_data_p driver_data,
+ psb_buffer_p buf,
+ int id_or_ofs,
+ int size,
+ const unsigned long * user_ptr)
+{
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ int allignment;
+ uint32_t placement;
+ int ret;
+
+ buf->rar_handle = 0;
+ buf->buffer_ofs = 0;
+ buf->type = psb_bt_user_buffer;
+ buf->user_ptr = (void *)user_ptr;
+ buf->driver_data = driver_data;
+
+ allignment = 4096;
+ placement = DRM_PSB_FLAG_MEM_MMU | WSBM_PL_FLAG_TT | WSBM_PL_FLAG_CACHED | WSBM_PL_FLAG_SHARED ;
+ ret = LOCK_HARDWARE(driver_data);
+ if (ret) {
+ UNLOCK_HARDWARE(driver_data);
+ vaStatus = VA_STATUS_ERROR_ALLOCATION_FAILED;
+ DEBUG_FAILURE_RET;
+ return vaStatus;
+ }
+ ret = wsbmGenBuffers(driver_data->main_pool, 1, &buf->drm_buf,
+ allignment, placement);
+ if (!buf->drm_buf) {
+ psb__error_message("failed to gen wsbm buffers\n");
+ UNLOCK_HARDWARE(driver_data);
+ return VA_STATUS_ERROR_ALLOCATION_FAILED;
+ }
+
+#ifndef ANDROID
+ extern int wsbmBODataUB(struct _WsbmBufferObject * buf,
+ unsigned size, const void * data,
+ struct _WsbmBufferPool * newPool, uint32_t placement, const unsigned long * user_ptr);
+
+ /* here use the placement when gen buffer setted */
+ ret = wsbmBODataUB(buf->drm_buf, size, NULL, NULL, 0, user_ptr);
+ UNLOCK_HARDWARE(driver_data);
+ if (ret) {
+ psb__error_message("failed to alloc wsbm buffers\n");
+ return VA_STATUS_ERROR_ALLOCATION_FAILED;
+ }
+ psb__information_message("Create BO from user buffer 0x%08x (%d byte),BO GPU offset hint=0x%08x\n",
+ user_ptr, size, wsbmBOOffsetHint(buf->drm_buf));
+
+#endif
+
+ buf->pl_flags = placement;
+ buf->status = psb_bs_ready;
+ buf->wsbm_synccpu_flag = 0;
+
+ return VA_STATUS_SUCCESS;
+}
+
+
+static int psb_buffer_info_rar(psb_driver_data_p driver_data)
+{
+ struct drm_lnc_video_getparam_arg arg;
+ unsigned long rar_info[2] = {0, 0};
+ int ret = 0;
+
+ driver_data->rar_phyaddr = driver_data->rar_size = 0;
+
+ arg.key = LNC_VIDEO_GETPARAM_RAR_INFO;
+ arg.value = (uint64_t)((unsigned long) & rar_info[0]);
+ ret = drmCommandWriteRead(driver_data->drm_fd, driver_data->getParamIoctlOffset,
+ &arg, sizeof(arg));
+ if (ret == 0) {
+ driver_data->rar_phyaddr = rar_info[0];
+ driver_data->rar_size = rar_info[1];
+ psb__information_message("RAR region physical address = 0x%08x, size=%dK\n",
+ driver_data->rar_phyaddr, driver_data->rar_size / 1024);
+
+ return ret;
+ }
+
+ psb__information_message("RAR region get size failed\n");
+ return ret;
+}
+
+
+static int psb_buffer_offset_rar(psb_driver_data_p driver_data,
+ psb_buffer_p buf,
+ uint32_t rar_handle,
+ unsigned int *bo_offset
+ )
+{
+ struct drm_lnc_video_getparam_arg arg;
+ unsigned long offset;
+ int ret = 0;
+
+ *bo_offset = 0;
+
+ arg.key = LNC_VIDEO_GETPARAM_RAR_HANDLER_OFFSET;
+ arg.arg = (uint64_t)((unsigned long) & rar_handle);
+ arg.value = (uint64_t)((unsigned long) & offset);
+ ret = drmCommandWriteRead(driver_data->drm_fd, driver_data->getParamIoctlOffset,
+ &arg, sizeof(arg));
+ if (ret == 0) {
+ *bo_offset = offset;
+
+ return ret;
+ }
+
+ psb__information_message("RAR buffer 0x%08x, get offset failed\n", rar_handle);
+ return ret;
+}
+
+
+static VAStatus psb_buffer_init_rar(psb_driver_data_p driver_data)
+{
+ int ret = 0;
+ RAR_desc_t *rar_rd;
+
+ /* hasn't grab RAR device memory region
+ * grab the whole 8M RAR device memory
+ */
+ driver_data->rar_bo = calloc(1, sizeof(struct psb_buffer_s));
+ if (driver_data->rar_bo == NULL)
+ goto exit_error;
+
+ driver_data->rar_rd = calloc(1, sizeof(RAR_desc_t));
+ if (driver_data->rar_rd == NULL)
+ goto exit_error;
+
+ memset(driver_data->rar_rd, 0, sizeof(RAR_desc_t));
+
+ psb__information_message("Init RAR device\n");
+
+ ret = RAR_init(driver_data->rar_rd);
+ if (ret != 0) {
+ psb__error_message("RAR device init failed\n");
+ goto exit_error;
+ }
+
+ if (psb_buffer_info_rar(driver_data)) {
+ psb__error_message("Get RAR region size failed\n");
+ goto exit_error;
+ }
+
+ psb__information_message("Grab whole camera device memory\n");
+ ret = psb_buffer_create(driver_data, driver_data->rar_size, psb_bt_rar, (psb_buffer_p) driver_data->rar_bo);
+
+ if (ret != VA_STATUS_SUCCESS) {
+ psb__error_message("Grab RAR device memory failed\n");
+ goto exit_error;
+ }
+
+ return VA_STATUS_SUCCESS;
+
+exit_error:
+ rar_rd = driver_data->rar_rd;
+
+ if (rar_rd) {
+ if (rar_rd->mrfd)
+ RAR_fini(driver_data->rar_rd);
+ free(rar_rd);
+ }
+
+ if (driver_data->rar_bo)
+ free(driver_data->rar_bo);
+
+ driver_data->rar_bo = NULL;
+ driver_data->rar_rd = NULL;
+
+ return VA_STATUS_ERROR_ALLOCATION_FAILED;
+}
+
+
+
+/*
+ * Create RAR buffer
+ * Only used when create a protected surface
+ */
+VAStatus psb_buffer_create_rar(psb_driver_data_p driver_data,
+ unsigned int size,
+ psb_buffer_p buf
+ )
+{
+ VAStatus vaStatus;
+ uint32_t rar_handle = 0;
+ unsigned int rar_offset = 0;
+ RAR_desc_t *rar_rd;
+ int ret;
+
+ if (driver_data->rar_rd == NULL) {
+ vaStatus = psb_buffer_init_rar(driver_data);
+ if (vaStatus != VA_STATUS_SUCCESS) {
+ psb__error_message("RAR init failed!\n");
+ return vaStatus;
+ }
+ }
+
+ rar_rd = driver_data->rar_rd;
+
+ /* Call RAR interface to allocate RAR buffers */
+ ret = RAR_reserve(rar_rd, size, RAR_TYPE_VIDEO, &rar_handle);
+ if (ret != 0) {
+ psb__error_message("RAR reserver memory failed\n");
+ RAR_fini(rar_rd);
+
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ ret = psb_buffer_offset_rar(driver_data, buf, rar_handle, &rar_offset);
+ if (ret != 0) {
+ psb__error_message("Get buffer offset of RAR device memory failed!\n");
+ return ret;
+ }
+
+ /* reference the global RAR BO */
+ ret = psb_buffer_reference(driver_data, buf, (psb_buffer_p) driver_data->rar_bo);
+ if (ret != VA_STATUS_SUCCESS) {
+ psb__error_message("Reference RAR device memory failed\n");
+ return ret;
+ }
+
+ buf->rar_handle = rar_handle;
+ buf->buffer_ofs = rar_offset;
+
+ /* reference the global RAR buffer, reset buffer type */
+ buf->type = psb_bt_rar_surface; /* need RAR_release */
+
+ psb__information_message("Create RAR buffer, handle 0x%08x, RAR region offset =0x%08x, RAR BO GPU offset hint=0x%08x\n",
+ rar_handle, rar_offset, wsbmBOOffsetHint(buf->drm_buf));
+
+ return VA_STATUS_SUCCESS;
+}
+
+
+/*
+ * Destroy RAR buffer
+ */
+VAStatus psb_buffer_destroy_rar(psb_driver_data_p driver_data,
+ psb_buffer_p buf
+ )
+{
+ RAR_desc_t *rar_rd;
+ int ret;
+
+ ASSERT(driver_data->rar_rd);
+
+ if (buf->type == psb_bt_rar_slice) {
+ psb__information_message("return RAR slice buffer to application\n");
+ buf->rar_handle = 0;
+ return VA_STATUS_SUCCESS;
+ }
+
+
+ rar_rd = driver_data->rar_rd;
+
+ ret = RAR_release(rar_rd, buf->rar_handle);
+ if (ret != 0)
+ psb__error_message("RAR release memory failed\n");
+
+ buf->rar_handle = 0;
+
+ return VA_STATUS_SUCCESS;
+}
+
+/*
+ * Reference one RAR buffer from handle
+ * only used to reference a slice RAR buffer which is created outside of video driver
+ */
+VAStatus psb_buffer_reference_rar(psb_driver_data_p driver_data,
+ uint32_t rar_handle,
+ psb_buffer_p buf
+ )
+{
+ VAStatus vaStatus;
+ unsigned int rar_offset = 0;
+ int ret;
+
+ if (driver_data->rar_rd == NULL) {
+ vaStatus = psb_buffer_init_rar(driver_data);
+ if (vaStatus != VA_STATUS_SUCCESS) {
+ psb__error_message("RAR init failed!\n");
+ return vaStatus;
+ }
+ }
+
+ /* don't need to assign the handle to buffer
+ * so that when destroy the buffer, we just
+ * need to unreference
+ */
+ /* buf->rar_handle = rar_handle; */
+
+ ret = psb_buffer_offset_rar(driver_data, buf, rar_handle, &rar_offset);
+ if (ret != VA_STATUS_SUCCESS) {
+ psb__error_message("Get surfae offset of RAR device memory failed!\n");
+ return ret;
+ }
+
+ /* reference the global RAR BO */
+ ret = psb_buffer_reference(driver_data, buf, (psb_buffer_p) driver_data->rar_bo);
+ if (ret != VA_STATUS_SUCCESS) {
+ psb__error_message("Reference RAR device memory failed\n");
+ return ret;
+ }
+
+ buf->rar_handle = rar_handle;
+ buf->buffer_ofs = rar_offset;
+ /* reference the global RAR buffer, reset buffer type */
+ buf->type = psb_bt_rar_slice; /* don't need to RAR_release */
+
+ psb__information_message("Reference RAR buffer, handle 0x%08x, RAR region offset =0x%08x, RAR BO GPU offset hint=0x%08x\n",
+ rar_handle, rar_offset, wsbmBOOffsetHint(buf->drm_buf));
+
+ return VA_STATUS_SUCCESS;
+}
diff --git a/src/psb_cmdbuf.c b/src/psb_cmdbuf.c
new file mode 100644
index 0000000..a4eb6ba
--- /dev/null
+++ b/src/psb_cmdbuf.c
@@ -0,0 +1,2042 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ * Waldo Bastian <waldo.bastian@intel.com>
+ *
+ */
+
+
+#include "psb_cmdbuf.h"
+
+#include <unistd.h>
+#include <stdio.h>
+
+#include "hwdefs/mem_io.h"
+#include "hwdefs/msvdx_offsets.h"
+#include "hwdefs/dma_api.h"
+#include "hwdefs/reg_io2.h"
+#include "hwdefs/msvdx_vec_reg_io2.h"
+#include "hwdefs/msvdx_vdmc_reg_io2.h"
+#include "hwdefs/msvdx_mtx_reg_io2.h"
+#include "hwdefs/msvdx_dmac_linked_list.h"
+#include "hwdefs/msvdx_rendec_mtx_slice_cntrl_reg_io2.h"
+#include "hwdefs/dxva_cmdseq_msg.h"
+#include "hwdefs/dxva_fw_ctrl.h"
+#include "hwdefs/fwrk_msg_mem_io.h"
+#include "hwdefs/dxva_msg.h"
+#include "hwdefs/msvdx_cmds_io2.h"
+#include <stdlib.h>
+#include <errno.h>
+#include <string.h>
+#include <sys/time.h>
+
+#include "psb_def.h"
+#include "psb_ws_driver.h"
+
+#include <wsbm/wsbm_pool.h>
+#include <wsbm/wsbm_manager.h>
+#include <wsbm/wsbm_util.h>
+#include <wsbm/wsbm_fencemgr.h>
+
+
+/*
+ * Buffer layout:
+ * cmd_base <= cmd_idx < CMD_END() == lldma_base
+ * lldma_base <= lldma_idx < LLDMA_END() == (cmd_base + size)
+ *
+ * Reloc buffer layout:
+ * MTX_msg < reloc_base == MTX_msg + MTXMSG_SIZE
+ * reloc_base <= reloc_idx < RELOC_END() == (MTX_msg + reloc_size)
+ */
+#define MTXMSG_END(cmdbuf) (cmdbuf->reloc_base)
+#define RELOC_END(cmdbuf) (cmdbuf->MTX_msg + cmdbuf->reloc_size)
+
+#define CMD_END(cmdbuf) (cmdbuf->lldma_base)
+#define LLDMA_END(cmdbuf) (cmdbuf->cmd_base + cmdbuf->size)
+
+#define MTXMSG_SIZE (0x1000)
+#define RELOC_SIZE (0x3000)
+
+#define CMD_SIZE (0x3000)
+#define LLDMA_SIZE (0x2000)
+
+#define MTXMSG_MARGIN (0x0040)
+#define RELOC_MARGIN (0x0800)
+
+#define CMD_MARGIN (0x0400)
+#define LLDMA_MARGIN (0x0400)
+
+
+#define MAX_CMD_COUNT 12
+
+#define MTX_SEG_SIZE (0x0800)
+
+#define PSB_TIMEOUT_USEC 990000
+
+static void psb_cmdbuf_lldma_create_internal(psb_cmdbuf_p cmdbuf,
+ LLDMA_CMD *pLLDMACmd,
+ psb_buffer_p bitstream_buf,
+ uint32_t buffer_offset,
+ uint32_t size,
+ uint32_t dest_offset,
+ LLDMA_TYPE cmd);
+
+/*
+ * Create command buffer
+ */
+VAStatus psb_cmdbuf_create(object_context_p obj_context, psb_driver_data_p driver_data,
+ psb_cmdbuf_p cmdbuf
+ )
+{
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ unsigned int size = CMD_SIZE + LLDMA_SIZE;
+ unsigned int reloc_size = MTXMSG_SIZE + RELOC_SIZE;
+ unsigned int regio_size = (obj_context->picture_width >> 4) * (obj_context->picture_height >> 4) * 172;
+
+ cmdbuf->size = 0;
+ cmdbuf->reloc_size = 0;
+ cmdbuf->regio_size = 0;
+ cmdbuf->MTX_msg = NULL;
+ cmdbuf->cmd_base = NULL;
+ cmdbuf->regio_base = NULL;
+ cmdbuf->cmd_idx = NULL;
+ cmdbuf->regio_idx = NULL;
+ cmdbuf->cmd_bitstream_size = NULL;
+ cmdbuf->lldma_base = NULL;
+ cmdbuf->lldma_idx = NULL;
+ cmdbuf->reloc_base = NULL;
+ cmdbuf->reloc_idx = NULL;
+ cmdbuf->reg_start = NULL;
+ cmdbuf->rendec_block_start = NULL;
+ cmdbuf->rendec_chunk_start = NULL;
+ cmdbuf->skip_block_start = NULL;
+ cmdbuf->last_next_segment_cmd = NULL;
+ cmdbuf->buffer_refs_count = 0;
+ cmdbuf->buffer_refs_allocated = 10;
+ cmdbuf->buffer_refs = (psb_buffer_p *) calloc(1, sizeof(psb_buffer_p) * cmdbuf->buffer_refs_allocated);
+ if (NULL == cmdbuf->buffer_refs) {
+ cmdbuf->buffer_refs_allocated = 0;
+ vaStatus = VA_STATUS_ERROR_ALLOCATION_FAILED;
+ }
+ if (VA_STATUS_SUCCESS == vaStatus) {
+ vaStatus = psb_buffer_create(driver_data, size, psb_bt_cpu_vpu, &cmdbuf->buf);
+ cmdbuf->size = size;
+ }
+ if (VA_STATUS_SUCCESS == vaStatus) {
+ vaStatus = psb_buffer_create(driver_data, reloc_size, psb_bt_cpu_only, &cmdbuf->reloc_buf);
+ cmdbuf->reloc_size = reloc_size;
+ }
+ if (VA_STATUS_SUCCESS == vaStatus) {
+ vaStatus = psb_buffer_create(driver_data, regio_size, psb_bt_cpu_only, &cmdbuf->regio_buf);
+ cmdbuf->regio_size = regio_size;
+ }
+
+ if (VA_STATUS_SUCCESS != vaStatus) {
+ psb_cmdbuf_destroy(cmdbuf);
+ }
+ return vaStatus;
+}
+
+/*
+ * Destroy buffer
+ */
+void psb_cmdbuf_destroy(psb_cmdbuf_p cmdbuf)
+{
+ if (cmdbuf->size) {
+ psb_buffer_destroy(&cmdbuf->buf);
+ cmdbuf->size = 0;
+ }
+ if (cmdbuf->reloc_size) {
+ psb_buffer_destroy(&cmdbuf->reloc_buf);
+ cmdbuf->reloc_size = 0;
+ }
+ if (cmdbuf->regio_size) {
+ psb_buffer_destroy(&cmdbuf->regio_buf);
+ cmdbuf->regio_size = 0;
+ }
+ if (cmdbuf->buffer_refs_allocated) {
+ free(cmdbuf->buffer_refs);
+ cmdbuf->buffer_refs = NULL;
+ cmdbuf->buffer_refs_allocated = 0;
+ }
+}
+
+/*
+ * Reset buffer & map
+ *
+ * Returns 0 on success
+ */
+int psb_cmdbuf_reset(psb_cmdbuf_p cmdbuf)
+{
+ int ret;
+
+ cmdbuf->MTX_msg = NULL;
+ cmdbuf->cmd_base = NULL;
+ cmdbuf->cmd_idx = NULL;
+ cmdbuf->cmd_bitstream_size = NULL;
+ cmdbuf->lldma_base = NULL;
+ cmdbuf->lldma_idx = NULL;
+ cmdbuf->reloc_base = NULL;
+ cmdbuf->reloc_idx = NULL;
+ cmdbuf->last_next_segment_cmd = NULL;
+
+ cmdbuf->buffer_refs_count = 0;
+ cmdbuf->cmd_count = 0;
+ cmdbuf->deblock_count = 0;
+ cmdbuf->oold_count = 0;
+ cmdbuf->host_be_opp_count = 0;
+ cmdbuf->frame_info_count = 0;
+
+ ret = psb_buffer_map(&cmdbuf->buf, &cmdbuf->cmd_base);
+ if (ret) {
+ return ret;
+ }
+ ret = psb_buffer_map(&cmdbuf->reloc_buf, &cmdbuf->MTX_msg);
+ if (ret) {
+ psb_buffer_unmap(&cmdbuf->buf);
+ return ret;
+ }
+
+ cmdbuf->cmd_start = cmdbuf->cmd_base;
+ cmdbuf->cmd_idx = (uint32_t *) cmdbuf->cmd_base;
+ cmdbuf->cmd_bitstream_size = NULL;
+ cmdbuf->lldma_base = cmdbuf->cmd_base + CMD_SIZE;
+ cmdbuf->lldma_idx = cmdbuf->lldma_base;
+
+ cmdbuf->reloc_base = cmdbuf->MTX_msg + MTXMSG_SIZE;
+ cmdbuf->reloc_idx = (struct drm_psb_reloc *) cmdbuf->reloc_base;
+
+ /* Add ourselves to the buffer list */
+ psb_cmdbuf_buffer_ref(cmdbuf, &cmdbuf->reloc_buf); /* reloc buf == 0 */
+ psb_cmdbuf_buffer_ref(cmdbuf, &cmdbuf->buf); /* cmd buf == 1 */
+ return ret;
+}
+
+/*
+ * Unmap buffer
+ *
+ * Returns 0 on success
+ */
+int psb_cmdbuf_unmap(psb_cmdbuf_p cmdbuf)
+{
+ cmdbuf->MTX_msg = NULL;
+ cmdbuf->cmd_base = NULL;
+ cmdbuf->cmd_start = NULL;
+ cmdbuf->cmd_idx = NULL;
+ cmdbuf->cmd_bitstream_size = NULL;
+ cmdbuf->lldma_base = NULL;
+ cmdbuf->lldma_idx = NULL;
+ cmdbuf->reloc_base = NULL;
+ cmdbuf->reloc_idx = NULL;
+ cmdbuf->cmd_count = 0;
+ psb_buffer_unmap(&cmdbuf->buf);
+ psb_buffer_unmap(&cmdbuf->reloc_buf);
+ return 0;
+}
+
+
+/*
+ * Reference an addtional buffer "buf" in the command stream
+ * Returns a reference index that can be used to refer to "buf" in
+ * relocation records, -1 on error
+ */
+int psb_cmdbuf_buffer_ref(psb_cmdbuf_p cmdbuf, psb_buffer_p buf)
+{
+ int item_loc = 0;
+
+ // buf->next = NULL; /* buf->next only used for buffer list validation */
+
+ while ((item_loc < cmdbuf->buffer_refs_count)
+ && (wsbmKBufHandle(wsbmKBuf(cmdbuf->buffer_refs[item_loc]->drm_buf))
+ != wsbmKBufHandle(wsbmKBuf(buf->drm_buf)))) {
+ item_loc++;
+ }
+ if (item_loc == cmdbuf->buffer_refs_count) {
+ /* Add new entry */
+ if (item_loc >= cmdbuf->buffer_refs_allocated) {
+ /* Allocate more entries */
+ int new_size = cmdbuf->buffer_refs_allocated + 10;
+ psb_buffer_p *new_array;
+ new_array = (psb_buffer_p *) calloc(1, sizeof(psb_buffer_p) * new_size);
+ if (NULL == new_array) {
+ return -1; /* Allocation failure */
+ }
+ memcpy(new_array, cmdbuf->buffer_refs, sizeof(psb_buffer_p) * cmdbuf->buffer_refs_allocated);
+ free(cmdbuf->buffer_refs);
+ cmdbuf->buffer_refs_allocated = new_size;
+ cmdbuf->buffer_refs = new_array;
+ }
+ cmdbuf->buffer_refs[item_loc] = buf;
+ cmdbuf->buffer_refs_count++;
+ buf->status = psb_bs_queued;
+
+ buf->next = NULL;
+ }
+
+ /* only for RAR buffers */
+ if ((cmdbuf->buffer_refs[item_loc] != buf)
+ && (buf->rar_handle != 0)) {
+ psb_buffer_p tmp = cmdbuf->buffer_refs[item_loc];
+ psb__information_message("RAR: found same drm buffer with different psb buffer, link them\n",
+ tmp, buf);
+ while ((tmp->next != NULL)) {
+ tmp = tmp->next;
+ if (tmp == buf) /* found same buffer */
+ break;
+ }
+
+ if (tmp != buf) {
+ tmp->next = buf; /* link it */
+ buf->status = psb_bs_queued;
+ buf->next = NULL;
+ } else {
+ psb__information_message("RAR: buffer aleady in the list, skip\n",
+ tmp, buf);
+ }
+ }
+
+ return item_loc;
+}
+
+/* Creates a relocation record for a DWORD in the mapped "cmdbuf" at address
+ * "addr_in_cmdbuf"
+ * The relocation is based on the device virtual address of "ref_buffer"
+ * "buf_offset" is be added to the device virtual address, and the sum is then
+ * right shifted with "align_shift".
+ * "mask" determines which bits of the target DWORD will be updated with the so
+ * constructed address. The remaining bits will be filled with bits from "background".
+ */
+void psb_cmdbuf_add_relocation(psb_cmdbuf_p cmdbuf,
+ uint32_t *addr_in_cmdbuf,
+ psb_buffer_p ref_buffer,
+ uint32_t buf_offset,
+ uint32_t mask,
+ uint32_t background,
+ uint32_t align_shift,
+ uint32_t dst_buffer) /* 0 = reloc buf, 1 = cmdbuf, 2 = for host reloc */
+{
+ struct drm_psb_reloc *reloc = cmdbuf->reloc_idx;
+ uint64_t presumed_offset = wsbmBOOffsetHint(ref_buffer->drm_buf);
+
+ /* Check that address is within buffer range */
+ if (dst_buffer) {
+ ASSERT(((void *)(addr_in_cmdbuf)) >= cmdbuf->cmd_base);
+ ASSERT(((void *)(addr_in_cmdbuf)) < LLDMA_END(cmdbuf));
+ reloc->where = addr_in_cmdbuf - (uint32_t *) cmdbuf->cmd_base; /* Location in DWORDs */
+ } else {
+ ASSERT(((void *)(addr_in_cmdbuf)) >= cmdbuf->MTX_msg);
+ ASSERT(((void *)(addr_in_cmdbuf)) < MTXMSG_END(cmdbuf));
+ reloc->where = addr_in_cmdbuf - (uint32_t *) cmdbuf->MTX_msg; /* Location in DWORDs */
+ }
+
+ reloc->buffer = psb_cmdbuf_buffer_ref(cmdbuf, ref_buffer);
+ ASSERT(reloc->buffer != -1);
+
+ reloc->reloc_op = PSB_RELOC_OP_OFFSET;
+
+#ifdef DEBUG_TRACE
+ //psb__trace_message("[RE] Reloc at offset %08x (%08x), offset = %08x background = %08x buffer = %d (%08x)\n", reloc->where, reloc->where << 2, buf_offset, background, reloc->buffer, presumed_offset);
+#endif
+
+ if (presumed_offset) {
+ uint32_t new_val = presumed_offset + buf_offset;
+ new_val = ((new_val >> align_shift) << (align_shift << PSB_RELOC_ALSHIFT_SHIFT));
+ new_val = (background & ~mask) | (new_val & mask);
+ *addr_in_cmdbuf = new_val;
+ } else {
+ *addr_in_cmdbuf = PSB_RELOC_MAGIC;
+ }
+
+ reloc->mask = mask;
+ reloc->shift = align_shift << PSB_RELOC_ALSHIFT_SHIFT;
+ reloc->pre_add = buf_offset;
+ reloc->background = background;
+ reloc->dst_buffer = dst_buffer;
+ cmdbuf->reloc_idx++;
+
+ ASSERT(((void *)(cmdbuf->reloc_idx)) < RELOC_END(cmdbuf));
+}
+
+/*
+ * Advances "obj_context" to the next cmdbuf
+ *
+ * Returns 0 on success
+ */
+int psb_context_get_next_cmdbuf(object_context_p obj_context)
+{
+ psb_cmdbuf_p cmdbuf;
+ int ret;
+
+ if (obj_context->cmdbuf) {
+ return 0;
+ }
+
+ obj_context->cmdbuf_current++;
+ if (obj_context->cmdbuf_current >= PSB_MAX_CMDBUFS) {
+ obj_context->cmdbuf_current = 0;
+ }
+ cmdbuf = obj_context->cmdbuf_list[obj_context->cmdbuf_current];
+ ret = psb_cmdbuf_reset(cmdbuf);
+ if (!ret) {
+ /* Success */
+ obj_context->cmdbuf = cmdbuf;
+ }
+ return ret;
+}
+
+
+static unsigned
+psbTimeDiff(struct timeval *now, struct timeval *then)
+{
+ long long val;
+
+ val = now->tv_sec - then->tv_sec;
+ val *= 1000000LL;
+ val += now->tv_usec;
+ val -= then->tv_usec;
+ if (val < 1LL)
+ val = 1LL;
+
+ return (unsigned) val;
+}
+
+/*
+ * This is the user-space do-it-all interface to the drm cmdbuf ioctl.
+ * It allows different buffers as command- and reloc buffer. A list of
+ * cliprects to apply and whether to copy the clipRect content to all
+ * scanout buffers (damage = 1).
+ */
+/*
+ * Don't add debug statements in this function, it gets called with the
+ * DRM lock held and output to an X terminal can cause X to deadlock
+ */
+static int
+psbDRMCmdBuf(int fd, int ioctl_offset, psb_buffer_p *buffer_list, int buffer_count, unsigned cmdBufHandle,
+ unsigned cmdBufOffset, unsigned cmdBufSize,
+ unsigned relocBufHandle, unsigned relocBufOffset,
+ unsigned numRelocs, drm_clip_rect_t * clipRects, int damage,
+ unsigned engine, unsigned fence_flags, struct psb_ttm_fence_rep *fence_arg)
+{
+ drm_psb_cmdbuf_arg_t ca;
+ struct psb_validate_arg *arg_list;
+ int i;
+ int ret;
+ struct timeval then, now;
+ Bool have_then = FALSE;
+ uint64_t mask = PSB_GPU_ACCESS_MASK;
+
+ arg_list = (struct psb_validate_arg *) calloc(1, sizeof(struct psb_validate_arg) * buffer_count);
+ if (arg_list == NULL) {
+ psb__error_message("Malloc failed \n");
+ return -ENOMEM;
+ }
+
+ for (i = 0; i < buffer_count; i++) {
+ struct psb_validate_arg *arg = &(arg_list[i]);
+ struct psb_validate_req *req = &arg->d.req;
+
+ memset(arg, 0, sizeof(*arg));
+ req->next = (unsigned long) & (arg_list[i+1]);
+
+ req->buffer_handle = wsbmKBufHandle(wsbmKBuf(buffer_list[i]->drm_buf));
+ req->group = 0;
+ req->set_flags = (PSB_GPU_ACCESS_READ | PSB_GPU_ACCESS_WRITE) & mask;
+ req->clear_flags = (~(PSB_GPU_ACCESS_READ | PSB_GPU_ACCESS_WRITE)) & mask;
+
+ req->presumed_gpu_offset = (uint64_t)wsbmBOOffsetHint(buffer_list[i]->drm_buf);
+ req->presumed_flags = PSB_USE_PRESUMED;
+ req->pad64 = (uint32_t)buffer_list[i]->pl_flags;
+ }
+ arg_list[buffer_count-1].d.req.next = 0;
+
+ ca.buffer_list = (uint64_t)((unsigned long)arg_list);
+ ca.clip_rects = (uint64_t)((unsigned long)clipRects);
+ ca.scene_arg = 0;
+ ca.fence_arg = (uint64_t)((unsigned long)fence_arg);
+
+ ca.ta_flags = 0;
+
+ ca.ta_handle = 0;
+ ca.ta_offset = 0;
+ ca.ta_size = 0;
+
+ ca.oom_handle = 0;
+ ca.oom_offset = 0;
+ ca.oom_size = 0;
+
+ ca.cmdbuf_handle = cmdBufHandle;
+ ca.cmdbuf_offset = cmdBufOffset;
+ ca.cmdbuf_size = cmdBufSize;
+
+ ca.reloc_handle = relocBufHandle;
+ ca.reloc_offset = relocBufOffset;
+ ca.num_relocs = numRelocs;
+
+ ca.damage = damage;
+ ca.fence_flags = fence_flags;
+ ca.engine = engine;
+
+ ca.feedback_ops = 0;
+ ca.feedback_handle = 0;
+ ca.feedback_offset = 0;
+ ca.feedback_breakpoints = 0;
+ ca.feedback_size = 0;
+
+#if 1
+ psb__information_message("PSB submit: buffer_list = %08x\n", ca.buffer_list);
+ psb__information_message("PSB submit: clip_rects = %08x\n", ca.clip_rects);
+ psb__information_message("PSB submit: cmdbuf_handle = %08x\n", ca.cmdbuf_handle);
+ psb__information_message("PSB submit: cmdbuf_offset = %08x\n", ca.cmdbuf_offset);
+ psb__information_message("PSB submit: cmdbuf_size = %08x\n", ca.cmdbuf_size);
+ psb__information_message("PSB submit: reloc_handle = %08x\n", ca.reloc_handle);
+ psb__information_message("PSB submit: reloc_offset = %08x\n", ca.reloc_offset);
+ psb__information_message("PSB submit: num_relocs = %08x\n", ca.num_relocs);
+ psb__information_message("PSB submit: engine = %08x\n", ca.engine);
+ psb__information_message("PSB submit: fence_flags = %08x\n", ca.fence_flags);
+#endif
+
+ /*
+ * X server Signals will clobber the kernel time out mechanism.
+ * we need a user-space timeout as well.
+ */
+ do {
+ ret = drmCommandWrite(fd, ioctl_offset, &ca, sizeof(ca));
+ if (ret == EAGAIN) {
+ if (!have_then) {
+ if (gettimeofday(&then, NULL)) {
+ psb__error_message("Gettimeofday error.\n");
+ break;
+ }
+
+ have_then = TRUE;
+ }
+ if (gettimeofday(&now, NULL)) {
+ psb__error_message("Gettimeofday error.\n");
+ break;
+ }
+
+ }
+ } while ((ret == EAGAIN) && (psbTimeDiff(&now, &then) < PSB_TIMEOUT_USEC));
+
+ psb__information_message("command write return is %d\n", ret);
+
+ if (ret) {
+ psb__information_message("command write return is %d\n", ret);
+ goto out;
+ }
+
+ for (i = 0; i < buffer_count; i++) {
+ struct psb_validate_arg *arg = &(arg_list[i]);
+ struct psb_validate_rep *rep = &arg->d.rep;
+
+ if (!arg->handled) {
+ ret = -EFAULT;
+ goto out;
+ }
+ if (arg->ret != 0) {
+ ret = arg->ret;
+ goto out;
+ }
+ wsbmUpdateKBuf(wsbmKBuf(buffer_list[i]->drm_buf),
+ rep->gpu_offset, rep->placement, rep->fence_type_mask);
+ }
+
+out:
+ free(arg_list);
+ for (i = 0; i < buffer_count; i++) {
+ /*
+ * Buffer no longer queued in userspace
+ */
+ psb_buffer_p tmp = buffer_list[i];
+
+ /*
+ * RAR slice buffer/surface buffer are share one BO, and then only one in
+ * buffer_list, but they are linked in psb_cmdbuf_buffer_ref
+
+ */
+ if (buffer_list[i]->rar_handle == 0)
+ tmp->next = NULL; /* don't loop for non RAR buffer, "next" may be not initialized */
+
+ do {
+ psb_buffer_p p = tmp;
+
+ tmp = tmp->next;
+ switch (p->status) {
+ case psb_bs_queued:
+ p->status = psb_bs_ready;
+ break;
+
+ case psb_bs_abandoned:
+ psb_buffer_destroy(p);
+ free(p);
+ break;
+
+ default:
+ /* Not supposed to happen */
+ ASSERT(0);
+ }
+ } while (tmp);
+ }
+
+ return ret;
+}
+
+#ifdef DEBUG_TRACE
+
+#define DBH(fmt, arg...) psb__trace_message(fmt, ##arg)
+#define DB(fmt, arg1, arg...) psb__trace_message("[%08x] %08x = " fmt, ((void *) arg1) - cmd_start, *arg1, ##arg)
+
+/* See also MsvdxGpuSim() in msvdxgpu.c */
+static void debug_dump_cmdbuf(uint32_t *cmd_idx, uint32_t cmd_size_in_bytes)
+{
+ uint32_t cmd_size = cmd_size_in_bytes / sizeof(uint32_t);
+ uint32_t *cmd_end = cmd_idx + cmd_size;
+ void *cmd_start = cmd_idx;
+ struct {
+ unsigned int start;
+ unsigned int end;
+ char *name;
+ } msvdx_regs[10] = {{0x04800000, 0x048003FF, "MTX_MTX"},
+ {0x04800400, 0x0480047F, "VDMC_MTX"},
+ {0x04800480, 0x048004FF, "VDEB_MTX"},
+ {0x04800500, 0x048005FF, "DMAC_MTX"},
+ {0x04800600, 0x048006FF, "SYS_MTX"},
+ {0x04800700, 0x048007FF, "VEC_IQRAM_MTX"},
+ {0x04800800, 0x04800FFF, "VEC_MTX"},
+ {0x04801000, 0x04801FFF, "CMD_MTX"},
+ {0x04802000, 0x04802FFF, "VEC_RAM_MTX"},
+ {0x04803000, 0x04804FFF, "VEC_VLC_M"}
+ };
+
+ DBH("CMD BUFFER [%08x] - [%08x], %08x bytes, %08x dwords\n", (uint32_t) cmd_idx, cmd_end, cmd_size_in_bytes, cmd_size);
+ while (cmd_idx < cmd_end) {
+ uint32_t cmd = *cmd_idx;
+ /* What about CMD_MAGIC_BEGIN ?*/
+ switch (cmd & CMD_MASK) {
+ case CMD_NOP: {
+ DB("CMD_NOPE\n", cmd_idx);
+ cmd_idx++;
+ break;
+ }
+
+ case CMD_HEADER: {
+ uint32_t context = cmd & CMD_HEADER_CONTEXT_MASK;
+ DB("CMD_HEADER context = %08x\n", cmd_idx, context);
+ cmd_idx++;
+ DB("StatusBufferAddress\n", cmd_idx);
+ cmd_idx++;
+ DB("PreloadSave\n", cmd_idx);
+ cmd_idx++;
+ DB("PreloadRestore\n", cmd_idx);
+ cmd_idx++;
+ break;
+ }
+ case CMD_REGVALPAIR_WRITE: {
+ uint32_t count = (cmd & CMD_REGVALPAIR_COUNT_MASK) >> CMD_REGVALPAIR_COUNT_SHIFT;
+ DB("CMD_REGVALPAIR_WRITE count = %08x\n", cmd_idx, count);
+ cmd_idx++;
+
+ while (count--) {
+ int i;
+ for (i = 0; i < 10; i++) {
+ if ((*cmd_idx >= msvdx_regs[i].start) &&
+ (*cmd_idx <= msvdx_regs[i].end))
+ break;
+ }
+ DB("%s_%04x\n", cmd_idx, msvdx_regs[i].name, *cmd_idx & 0xffff);
+ cmd_idx++;
+ DB("value\n", cmd_idx);
+ cmd_idx++;
+ }
+ break;
+ }
+ case CMD_RENDEC_WRITE: {
+ uint32_t encoding;
+ uint32_t count = (cmd & CMD_RENDEC_COUNT_MASK) >> CMD_RENDEC_COUNT_SHIFT;
+ DB("CMD_RENDEC_WRITE count = %08x\n", cmd_idx, count);
+ cmd_idx++;
+
+ DB("RENDEC_SL_HDR\n", cmd_idx);
+ cmd_idx++;
+
+ DB("RENDEC_SL_NULL\n", cmd_idx);
+ cmd_idx++;
+
+ do {
+ uint32_t chk_hdr = *cmd_idx;
+ count = 1 + ((chk_hdr & 0x07FF0000) >> 16);
+ uint32_t start_address = (chk_hdr & 0x0000FFF0) >> 4;
+ encoding = (chk_hdr & 0x07);
+ if ((count == 1) && (encoding == 7)) {
+ count = 0;
+ DB("SLICE_SEPARATOR\n", cmd_idx);
+ } else {
+ DB("RENDEC_CK_HDR #symbols = %d address = %08x encoding = %01x\n", cmd_idx, count, start_address, encoding);
+ }
+ cmd_idx++;
+
+ while (count && (count < 0x1000)) {
+ DB("value\n", cmd_idx);
+ cmd_idx++;
+
+ count -= 2;
+ }
+ } while (encoding != 0x07);
+
+ break;
+ }
+ case CMD_COMPLETION: {
+ if (*cmd_idx == PSB_RELOC_MAGIC) {
+ DB("CMD_(S)LLDMA (assumed)\n", cmd_idx);
+ cmd_idx++;
+
+ } else {
+ DB("CMD_COMPLETION\n", cmd_idx);
+ cmd_idx++;
+
+// DB("interrupt\n", cmd_idx);
+// cmd_idx++;
+ }
+ break;
+ }
+ case CMD_LLDMA: {
+ DB("CMD_LLDMA\n", cmd_idx);
+ cmd_idx++;
+ break;
+ }
+ case CMD_SLLDMA: {
+ DB("CMD_SLLDMA\n", cmd_idx);
+ cmd_idx++;
+ break;
+ }
+ case CMD_SR_SETUP: {
+ DB("CMD_SR_SETUP\n", cmd_idx);
+ cmd_idx++;
+ DB("offset in bits\n", cmd_idx);
+ cmd_idx++;
+ DB("size in bytes\n", cmd_idx);
+ cmd_idx++;
+ break;
+ }
+ default:
+ if (*cmd_idx == PSB_RELOC_MAGIC) {
+ DB("CMD_(S)LLDMA (assumed)\n", cmd_idx);
+ cmd_idx++;
+
+ } else {
+ DB("*** Unknown command ***\n", cmd_idx);
+ cmd_idx++;
+ }
+ break;
+ } /* switch */
+ } /* while */
+}
+#endif
+
+
+int psb_fence_destroy(struct _WsbmFenceObject *pFence)
+{
+ wsbmFenceUnreference(&pFence);
+
+ return 0;
+}
+
+struct _WsbmFenceObject *
+psb_fence_wait(psb_driver_data_p driver_data,
+ struct psb_ttm_fence_rep *fence_rep, int *status)
+
+{
+ struct _WsbmFenceObject *fence = NULL;
+ int ret = -1;
+
+ /* copy fence information */
+ if (fence_rep->error != 0) {
+ psb__error_message("drm failed to create a fence"
+ " and has idled the HW\n");
+ DEBUG_FAILURE_RET;
+ return NULL;
+ }
+
+ fence = wsbmFenceCreate(driver_data->fence_mgr, fence_rep->fence_class,
+ fence_rep->fence_type,
+ (void *)fence_rep->handle,
+ 0);
+ if (fence)
+ *status = wsbmFenceFinish(fence, fence_rep->fence_type, 0);
+
+ return fence;
+}
+
+
+#ifdef DEBUG_TRACE
+uint32_t debug_cmd_start[MAX_CMD_COUNT];
+uint32_t debug_cmd_size[MAX_CMD_COUNT];
+uint32_t debug_cmd_count;
+uint32_t debug_lldma_count;
+uint32_t debug_lldma_start;
+
+#define MAX_DUMP_COUNT 20
+const char * debug_dump_name[MAX_DUMP_COUNT];
+psb_buffer_p debug_dump_buf[MAX_DUMP_COUNT];
+uint32_t debug_dump_offset[MAX_DUMP_COUNT];
+uint32_t debug_dump_size[MAX_DUMP_COUNT];
+uint32_t debug_dump_count = 0;
+#endif
+
+#ifdef DEBUG_TRACE
+#define DW(wd, sym, to, from) psb__debug_w(((uint32_t *)pasDmaList)[wd], "LLDMA: " #sym " = %d\n", to, from);
+#define DWH(wd, sym, to, from) psb__debug_w(((uint32_t *)pasDmaList)[wd], "LLDMA: " #sym " = %08x\n", to, from);
+static void psb__debug_w(uint32_t val, char *fmt, uint32_t bit_to, uint32_t bit_from)
+{
+ if (bit_to < 31) {
+ val &= ~(0xffffffff << (bit_to + 1));
+ }
+ val = val >> bit_from;
+ psb__trace_message(fmt, val);
+}
+
+static uint32_t g_hexdump_offset = 0;
+
+static void psb__hexdump2(unsigned char *p, int offset, int size)
+{
+ if (offset + size > 8)
+ size = 8 - offset;
+ psb__trace_message("[%04x]", g_hexdump_offset);
+ g_hexdump_offset += offset;
+ g_hexdump_offset += size;
+ while (offset-- > 0) {
+ psb__trace_message(" --");
+ }
+ while (size-- > 0) {
+ psb__trace_message(" %02x", *p++);
+ }
+ psb__trace_message("\n");
+}
+
+static void psb__hexdump(void *addr, int size)
+{
+ unsigned char *p = (unsigned char *) addr;
+
+ int offset = g_hexdump_offset % 8;
+ g_hexdump_offset -= offset;
+ if (offset) {
+ psb__hexdump2(p, offset, size);
+ size -= 8 - offset;
+ p += 8 - offset;
+ }
+
+ while (1) {
+ if (size < 8) {
+ if (size > 0) {
+ psb__hexdump2(p, 0, size);
+ }
+ return;
+ }
+ psb__trace_message("[%04x] %02x %02x %02x %02x %02x %02x %02x %02x\n", g_hexdump_offset, p[0], p[1], p[2], p[3], p[4], p[5], p[6], p[7]);
+ p += 8;
+ size -= 8;
+ g_hexdump_offset += 8;
+ }
+}
+
+void psb__debug_schedule_hexdump(const char *name, psb_buffer_p buf, uint32_t offset, uint32_t size)
+{
+ ASSERT(debug_dump_count < MAX_DUMP_COUNT);
+ debug_dump_name[debug_dump_count] = name;
+ debug_dump_buf[debug_dump_count] = buf;
+ debug_dump_offset[debug_dump_count] = offset;
+ debug_dump_size[debug_dump_count] = size;
+ debug_dump_count++;
+}
+
+#endif
+
+
+/*
+ * Closes the last segment
+ */
+static void psb_cmdbuf_close_segment(psb_cmdbuf_p cmdbuf)
+{
+ uint32_t bytes_used = ((void *) cmdbuf->cmd_idx - cmdbuf->cmd_start) % MTX_SEG_SIZE;
+ void *segment_start = (void *) cmdbuf->cmd_idx - bytes_used;
+ uint32_t lldma_record_offset = psb_cmdbuf_lldma_create(cmdbuf,
+ &(cmdbuf->buf), (segment_start - cmdbuf->cmd_base) /* offset */,
+ bytes_used,
+ 0 /* destination offset */,
+ LLDMA_TYPE_RENDER_BUFF_MC);
+ uint32_t cmd = CMD_NEXT_SEG;
+ RELOC_SHIFT4(*cmdbuf->last_next_segment_cmd, lldma_record_offset, cmd, &(cmdbuf->buf));
+ *(cmdbuf->last_next_segment_cmd + 1) = bytes_used;
+}
+
+int psb_context_submit_deblock(object_context_p obj_context)
+{
+ psb_cmdbuf_p cmdbuf = obj_context->cmdbuf;
+ uint32_t msg_size = FW_VA_DEBLOCK_SIZE;
+ uint32_t *msg = cmdbuf->MTX_msg;
+ DEBLOCKPARAMS* pdbParams;
+
+ psb__information_message("Send two pass deblock cmd\n");
+ if (cmdbuf->cmd_count) {
+ psb__information_message("two pass deblock cmdbuf has render msg!\n");
+ return 1;
+ }
+
+ cmdbuf->deblock_count++;
+ memset(msg, 0, msg_size);
+
+ MEMIO_WRITE_FIELD(msg, FWRK_GENMSG_SIZE, 16); /* Deblock message size is 16 bytes */
+ MEMIO_WRITE_FIELD(msg, FWRK_GENMSG_ID, VA_MSGID_DEBLOCK);
+
+ MEMIO_WRITE_FIELD(msg, FW_VA_DEBLOCK_CONTEXT, obj_context->msvdx_context);
+ MEMIO_WRITE_FIELD(msg, FW_VA_DEBLOCK_FLAGS, FW_VA_RENDER_HOST_INT);
+
+ pdbParams = (DEBLOCKPARAMS*)(msg + 16 / sizeof(uint32_t));
+
+ pdbParams->handle = wsbmKBufHandle(wsbmKBuf(cmdbuf->regio_buf.drm_buf));
+ /* printf("regio buffer size is 0x%x\n", cmdbuf->regio_size); */
+ pdbParams->buffer_size = cmdbuf->regio_size;
+ pdbParams->ctxid = (obj_context->msvdx_context & 0xfff);
+
+ return 0;
+}
+
+/* Issue deblock cmd, HW will do deblock instead of host */
+int psb_context_submit_hw_deblock(object_context_p obj_context,
+ psb_buffer_p buf_a,
+ psb_buffer_p buf_b,
+ psb_buffer_p colocate_buffer,
+ uint32_t picture_widht_mb,
+ uint32_t frame_height_mb,
+ uint32_t rotation_flags,
+ uint32_t field_type,
+ uint32_t ext_stride_a,
+ uint32_t chroma_offset_a,
+ uint32_t chroma_offset_b,
+ uint32_t is_oold)
+{
+ psb_cmdbuf_p cmdbuf = obj_context->cmdbuf;
+ psb_driver_data_p driver_data = obj_context->driver_data;
+ uint32_t msg_size = FW_DEVA_DEBLOCK_SIZE;
+ unsigned int item_size; /* Size of a render/deocde msg */
+ FW_VA_DEBLOCK_MSG *deblock_msg;
+
+ if (IS_MFLD(driver_data))
+ item_size = FW_DEVA_DECODE_SIZE;
+ else
+ item_size = FW_VA_RENDER_SIZE;
+
+ uint32_t *msg = cmdbuf->MTX_msg + item_size * cmdbuf->cmd_count;
+
+ memset(msg, 0, sizeof(FW_VA_DEBLOCK_MSG));
+ deblock_msg = (FW_VA_DEBLOCK_MSG *)msg;
+
+ deblock_msg->header.bits.msg_size = msg_size;
+ if (is_oold)
+ deblock_msg->header.bits.msg_type = VA_MSGID_OOLD_MFLD;
+ else
+ deblock_msg->header.bits.msg_type = VA_MSGID_DEBLOCK_MFLD;
+ deblock_msg->flags.bits.flags = FW_VA_RENDER_HOST_INT | FW_VA_RENDER_IS_LAST_SLICE;
+ deblock_msg->flags.bits.slice_type = field_type;
+ deblock_msg->operating_mode = obj_context->operating_mode;
+ deblock_msg->mmu_context.bits.context = (uint8_t)(obj_context->msvdx_context);
+ deblock_msg->pic_size.bits.frame_height_mb = (uint16_t)frame_height_mb;
+ deblock_msg->pic_size.bits.pic_width_mb = (uint16_t)picture_widht_mb;
+ deblock_msg->ext_stride_a = ext_stride_a;
+ deblock_msg->rotation_flags = rotation_flags;
+
+ RELOC_MSG(deblock_msg->address_a0, buf_a->buffer_ofs, buf_a);
+ RELOC_MSG(deblock_msg->address_a1, buf_a->buffer_ofs + chroma_offset_a, buf_a);
+ if (buf_b) {
+ RELOC_MSG(deblock_msg->address_b0, buf_b->buffer_ofs, buf_b);
+ RELOC_MSG(deblock_msg->address_b1, buf_b->buffer_ofs + chroma_offset_b, buf_b);
+ }
+
+ RELOC_MSG(deblock_msg->mb_param_address, colocate_buffer->buffer_ofs, colocate_buffer);
+ cmdbuf->deblock_count++;
+ return 0;
+}
+
+int psb_context_submit_oold(object_context_p obj_context,
+ psb_buffer_p src_buf,
+ psb_buffer_p dst_buf,
+ psb_buffer_p colocate_buffer,
+ uint32_t picture_width_in_mb,
+ uint32_t frame_height_in_mb,
+ uint32_t field_type,
+ uint32_t chroma_offset)
+{
+ psb_cmdbuf_p cmdbuf = obj_context->cmdbuf;
+ uint32_t msg_size = FW_VA_OOLD_SIZE;
+ uint32_t *msg = cmdbuf->MTX_msg + cmdbuf->cmd_count * FW_VA_RENDER_SIZE;
+ FW_VA_OOLD_MSG *oold_msg;
+
+ if (NULL == src_buf || NULL == dst_buf || NULL == colocate_buffer) {
+ psb__error_message("%s L%d Invalide src_buf, dst_buf or colocate_buffer\n",
+ __FUNCTION__, __LINE__);
+ return VA_STATUS_ERROR_INVALID_BUFFER;
+ }
+
+ psb__information_message("Send out of loop deblock cmd\n");
+
+ cmdbuf->oold_count++;
+ memset(msg, 0, msg_size);
+ oold_msg = (FW_VA_OOLD_MSG *) msg;
+
+ MEMIO_WRITE_FIELD(msg, FWRK_GENMSG_SIZE, FW_VA_OOLD_SIZE);
+ MEMIO_WRITE_FIELD(msg, FWRK_GENMSG_ID, VA_MSGID_OOLD);
+ MEMIO_WRITE_FIELD(msg, FW_VA_DEBLOCK_CONTEXT, obj_context->msvdx_context);
+
+ MEMIO_WRITE_FIELD(msg, FW_VA_OOLD_OPERATING_MODE, obj_context->operating_mode);
+ MEMIO_WRITE_FIELD(msg, FW_VA_OOLD_FRAME_HEIGHT_MBS, frame_height_in_mb);
+ MEMIO_WRITE_FIELD(msg, FW_VA_OOLD_PIC_WIDTH_MBS, picture_width_in_mb);
+
+ RELOC_MSG(oold_msg->SOURCE_LUMA_BUFFER_ADDRESS, src_buf->buffer_ofs, src_buf);
+ RELOC_MSG(oold_msg->SOURCE_CHROMA_BUFFER_ADDRESS, src_buf->buffer_ofs + chroma_offset, src_buf);
+ RELOC_MSG(oold_msg->TARGET_LUMA_BUFFER_ADDRESS, dst_buf->buffer_ofs, dst_buf);
+ RELOC_MSG(oold_msg->TARGET_CHROMA_BUFFER_ADDRESS, dst_buf->buffer_ofs + chroma_offset, dst_buf);
+
+ RELOC_MSG(oold_msg->SOURCE_MB_PARAM_ADDRESS, colocate_buffer->buffer_ofs, colocate_buffer);
+
+ MEMIO_WRITE_FIELD(msg, FW_VA_OOLD_SLICE_FIELD_TYPE, field_type);
+
+ return 0;
+}
+
+int psb_context_submit_host_be_opp(object_context_p obj_context, psb_buffer_p dst_buf,
+ uint32_t stride, uint32_t size,
+ uint32_t picture_width_mb,
+ uint32_t size_mb)
+{
+ psb_cmdbuf_p cmdbuf = obj_context->cmdbuf;
+ uint32_t msg_size = FW_VA_HOST_BE_OPP_SIZE;
+
+ if ((NULL == cmdbuf) || ((0 == cmdbuf->cmd_count) && (0 == cmdbuf->host_be_opp_count) &&
+ (0 == cmdbuf->deblock_count) || (0 == cmdbuf->frame_info_count))) {
+ psb_context_get_next_cmdbuf(obj_context);
+ cmdbuf = obj_context->cmdbuf;
+ }
+ uint32_t *msg = cmdbuf->MTX_msg + cmdbuf->cmd_count * FW_VA_RENDER_SIZE +
+ cmdbuf->oold_count * FW_VA_OOLD_SIZE + cmdbuf->frame_info_count * FW_VA_FRAME_INFO_SIZE;
+
+ psb__information_message("Send host be opp cmd\n");
+
+ cmdbuf->host_be_opp_count++;
+ memset(msg, 0, msg_size);
+
+ MEMIO_WRITE_FIELD(msg, FWRK_GENMSG_SIZE, 16); /* Deblock message size is 16 bytes */
+ MEMIO_WRITE_FIELD(msg, FWRK_GENMSG_ID, DAVA_MSGID_HOST_BE_OPP);
+
+ MEMIO_WRITE_FIELD(msg, FW_VA_HOST_BE_OPP_CONTEXT, ((obj_context->msvdx_context >> 8) | 0x1));
+ MEMIO_WRITE_FIELD(msg, FW_VA_HOST_BE_OPP_FLAGS, FW_VA_RENDER_HOST_INT | FW_ERROR_DETECTION_AND_RECOVERY);
+
+ return 0;
+}
+
+int psb_context_submit_frame_info(object_context_p obj_context, psb_buffer_p dst_buf,
+ uint32_t stride, uint32_t size,
+ uint32_t picture_width_mb,
+ uint32_t size_mb)
+{
+ FRAME_INFO_PARAMS* frame_info;
+ psb_cmdbuf_p cmdbuf = obj_context->cmdbuf;
+ uint32_t msg_size = FW_VA_FRAME_INFO_SIZE;
+
+ uint32_t *msg = cmdbuf->MTX_msg;
+
+ psb__information_message("Send frame info cmd\n");
+
+ cmdbuf->frame_info_count++;
+ memset(msg, 0, msg_size);
+ /*first word is used to store message id and message size*/
+ MEMIO_WRITE_FIELD(msg, FWRK_GENMSG_SIZE, FW_VA_FRAME_INFO_SIZE); /* Deblock message size is 16 bytes */
+ MEMIO_WRITE_FIELD(msg, FWRK_GENMSG_ID, VA_MSGID_FRAME_INFO);
+
+ frame_info = (FRAME_INFO_PARAMS*)(msg + 4 / sizeof(uint32_t));
+
+ frame_info->handle = wsbmKBufHandle(wsbmKBuf(dst_buf->drm_buf));
+ frame_info->buffer_size = size;
+ frame_info->buffer_stride = stride;
+ frame_info->picture_width_mb = picture_width_mb;
+ frame_info->size_mb = size_mb;
+ return 0;
+}
+
+/*
+ * Submits the current cmdbuf
+ *
+ * Returns 0 on success
+ */
+int psb_context_submit_cmdbuf(object_context_p obj_context)
+{
+ psb_cmdbuf_p cmdbuf = obj_context->cmdbuf;
+ psb_driver_data_p driver_data = obj_context->driver_data;
+ unsigned int item_size; /* Size of a render/deocde msg */
+
+ if (IS_MFLD(driver_data))
+ item_size = FW_DEVA_DECODE_SIZE;
+ else
+ item_size = FW_VA_RENDER_SIZE;
+
+ uint32_t cmdbuffer_size = (void *) cmdbuf->cmd_idx - cmdbuf->cmd_start; // In bytes
+
+ if (cmdbuf->last_next_segment_cmd) {
+ cmdbuffer_size = cmdbuf->first_segment_size;
+ psb_cmdbuf_close_segment(cmdbuf);
+ }
+
+ uint32_t msg_size = item_size;
+ uint32_t *msg = cmdbuf->MTX_msg + cmdbuf->cmd_count * msg_size + cmdbuf->frame_info_count * FW_VA_FRAME_INFO_SIZE;
+
+#ifdef DEBUG_TRACE
+ debug_cmd_start[cmdbuf->cmd_count] = cmdbuf->cmd_start - cmdbuf->cmd_base;
+ debug_cmd_size[cmdbuf->cmd_count] = (void *) cmdbuf->cmd_idx - cmdbuf->cmd_start;
+ debug_cmd_count = cmdbuf->cmd_count + 1;
+#endif
+
+#define DUMP_CMDBUF 0
+
+#if DUMP_CMDBUF
+ static int c = 0;
+ static char pFileName[30];
+
+
+ sprintf(pFileName , "cmdbuf%i.txt", c++);
+ FILE* pF = fopen(pFileName, "w");
+
+ fwrite(cmdbuf->cmd_start, 1, cmdbuffer_size, pF);
+ fclose(pF);
+#endif
+
+ cmdbuf->cmd_count++;
+ memset(msg, 0, msg_size);
+
+ *cmdbuf->cmd_idx = 0; // Add a trailing 0 just in case.
+ ASSERT(cmdbuffer_size < CMD_SIZE);
+ ASSERT((void *) cmdbuf->cmd_idx < CMD_END(cmdbuf));
+
+ MEMIO_WRITE_FIELD(msg, FWRK_GENMSG_SIZE, msg_size);
+ MEMIO_WRITE_FIELD(msg, FWRK_GENMSG_ID, VA_MSGID_RENDER);
+
+ if (!IS_MFLD(driver_data)) {
+ /* TODO: Need to make context more unique */
+ if (driver_data->ec_enabled) { /* ec firmware hw issue, unknown reason */
+ MEMIO_WRITE_FIELD(msg, FW_VA_RENDER_CONTEXT, ((obj_context->msvdx_context >> 8) | 0x1));
+ } else {
+ MEMIO_WRITE_FIELD(msg, FW_VA_RENDER_CONTEXT, obj_context->msvdx_context);
+ }
+
+ /* Point to CMDBUFFER */
+ uint32_t lldma_record_offset = psb_cmdbuf_lldma_create(cmdbuf,
+ &(cmdbuf->buf), (cmdbuf->cmd_start - cmdbuf->cmd_base) /* offset */,
+ cmdbuffer_size,
+ 0 /* destination offset */,
+ (obj_context->video_op == psb_video_vld) ? LLDMA_TYPE_RENDER_BUFF_VLD : LLDMA_TYPE_RENDER_BUFF_MC);
+ /* This is the last relocation */
+ RELOC_MSG(*(msg + (FW_VA_RENDER_LLDMA_ADDRESS_OFFSET / sizeof(uint32_t))),
+ lldma_record_offset, &(cmdbuf->buf));
+
+ MEMIO_WRITE_FIELD(msg, FW_VA_RENDER_BUFFER_SIZE, cmdbuffer_size); // In bytes
+ MEMIO_WRITE_FIELD(msg, FW_VA_RENDER_OPERATING_MODE, obj_context->operating_mode);
+ MEMIO_WRITE_FIELD(msg, FW_VA_RENDER_LAST_MB_IN_FRAME, obj_context->last_mb);
+ MEMIO_WRITE_FIELD(msg, FW_VA_RENDER_FIRST_MB_IN_SLICE, obj_context->first_mb);
+ MEMIO_WRITE_FIELD(msg, FW_VA_RENDER_FLAGS, obj_context->flags);
+ } else {
+ MEMIO_WRITE_FIELD(msg, FW_DEVA_DECODE_CONTEXT, (obj_context->msvdx_context)); /* context is 8 bits */
+
+ /* Point to CMDBUFFER */
+ uint32_t lldma_record_offset = psb_cmdbuf_lldma_create(cmdbuf,
+ &(cmdbuf->buf), (cmdbuf->cmd_start - cmdbuf->cmd_base) /* offset */,
+ cmdbuffer_size,
+ 0 /* destination offset */,
+ (obj_context->video_op == psb_video_vld) ? LLDMA_TYPE_RENDER_BUFF_VLD : LLDMA_TYPE_RENDER_BUFF_MC);
+ /* This is the last relocation */
+ RELOC_MSG(*(msg + (FW_DEVA_DECODE_LLDMA_ADDRESS_OFFSET / sizeof(uint32_t))),
+ lldma_record_offset, &(cmdbuf->buf));
+
+ MEMIO_WRITE_FIELD(msg, FW_DEVA_DECODE_BUFFER_SIZE, cmdbuffer_size / 4); // In dwords
+ MEMIO_WRITE_FIELD(msg, FW_DEVA_DECODE_OPERATING_MODE, obj_context->operating_mode);
+ MEMIO_WRITE_FIELD(msg, FW_DEVA_DECODE_FLAGS, obj_context->flags);
+ }
+#ifdef DEBUG_TRACE
+ debug_lldma_count = (cmdbuf->lldma_idx - cmdbuf->lldma_base) / sizeof(DMA_sLinkedList);
+ debug_lldma_start = cmdbuf->lldma_base - cmdbuf->cmd_base;
+ /* Indicate last LLDMA record (for debugging) */
+ ((uint32_t *)cmdbuf->lldma_idx)[1] = 0;
+#endif
+
+ cmdbuf->cmd_start = cmdbuf->cmd_idx;
+
+#ifdef DEBUG_TRACE
+ return psb_context_flush_cmdbuf(obj_context);
+#else
+ if ((cmdbuf->cmd_count >= MAX_CMD_COUNT) ||
+ (MTXMSG_END(cmdbuf) - (void *) msg < MTXMSG_MARGIN) ||
+ (CMD_END(cmdbuf) - (void *) cmdbuf->cmd_idx < CMD_MARGIN) ||
+ (LLDMA_END(cmdbuf) - cmdbuf->lldma_idx < LLDMA_MARGIN) ||
+ (RELOC_END(cmdbuf) - (void *) cmdbuf->reloc_idx < RELOC_MARGIN)) {
+ return psb_context_flush_cmdbuf(obj_context);
+ }
+#endif
+ return 0;
+}
+
+/*
+ * Flushes all cmdbufs
+ */
+int psb_context_flush_cmdbuf(object_context_p obj_context)
+{
+ psb_cmdbuf_p cmdbuf = obj_context->cmdbuf;
+ psb_driver_data_p driver_data = obj_context->driver_data;
+ unsigned int fence_flags;
+ /* unsigned int fence_handle = 0; */
+ struct psb_ttm_fence_rep fence_rep;
+ unsigned int reloc_offset;
+ unsigned int num_relocs;
+ int ret;
+ unsigned int item_size; /* Size of a render/deocde msg */
+
+ if (IS_MFLD(driver_data))
+ item_size = FW_DEVA_DECODE_SIZE;
+ else
+ item_size = FW_VA_RENDER_SIZE;
+
+ if ((NULL == cmdbuf) ||
+ (0 == (cmdbuf->cmd_count + cmdbuf->deblock_count + cmdbuf->host_be_opp_count + cmdbuf->frame_info_count))) {
+ return 0; // Nothing to do
+ }
+
+ uint32_t msg_size = 0;
+ uint32_t *msg = cmdbuf->MTX_msg;
+ int i;
+
+ /* LOCK */
+ ret = LOCK_HARDWARE(driver_data);
+ if (ret) {
+ UNLOCK_HARDWARE(driver_data);
+ DEBUG_FAILURE_RET;
+ return ret;
+ }
+
+ for (i = 1; i <= cmdbuf->frame_info_count; i++) {
+ msg_size += FW_VA_FRAME_INFO_SIZE;
+ msg += FW_VA_FRAME_INFO_SIZE / sizeof(uint32_t);
+ }
+
+ for (i = 1; i <= cmdbuf->cmd_count; i++) {
+ uint32_t flags;
+
+ if (IS_MFLD(driver_data))
+ flags = MEMIO_READ_FIELD(msg, FW_DEVA_DECODE_FLAGS);
+ else
+ flags = MEMIO_READ_FIELD(msg, FW_VA_RENDER_FLAGS);
+
+ /* Update flags */
+ int bBatchEnd = (i == (cmdbuf->cmd_count + cmdbuf->deblock_count + cmdbuf->oold_count
+ + cmdbuf->host_be_opp_count));
+ flags |=
+ (bBatchEnd ? FW_VA_RENDER_HOST_INT : FW_VA_RENDER_NO_RESPONCE_MSG) |
+ (obj_context->video_op == psb_video_vld ? FW_VA_RENDER_IS_VLD_NOT_MC : 0);
+
+ if (driver_data->ec_enabled && IS_MRST(driver_data))
+ flags |= FW_ERROR_DETECTION_AND_RECOVERY;
+
+ if (IS_MFLD(driver_data)) {
+ flags &= ~FW_VA_RENDER_IS_VLD_NOT_MC;
+ MEMIO_WRITE_FIELD(msg, FW_DEVA_DECODE_FLAGS, flags);
+ } else {
+ MEMIO_WRITE_FIELD(msg, FW_VA_RENDER_FLAGS, flags);
+ }
+
+#ifdef DEBUG_TRACE
+ if (!IS_MFLD(driver_data)) {
+ psb__trace_message("MSG BUFFER_SIZE = %08x\n", MEMIO_READ_FIELD(msg, FW_VA_RENDER_BUFFER_SIZE));
+ psb__trace_message("MSG OPERATING_MODE = %08x\n", MEMIO_READ_FIELD(msg, FW_VA_RENDER_OPERATING_MODE));
+ psb__trace_message("MSG LAST_MB_IN_FRAME = %08x\n", MEMIO_READ_FIELD(msg, FW_VA_RENDER_LAST_MB_IN_FRAME));
+ psb__trace_message("MSG FIRST_MB_IN_SLICE = %08x\n", MEMIO_READ_FIELD(msg, FW_VA_RENDER_FIRST_MB_IN_SLICE));
+ psb__trace_message("MSG FLAGS = %08x\n", MEMIO_READ_FIELD(msg, FW_VA_RENDER_FLAGS));
+
+ psb__information_message("MSG BUFFER_SIZE = %08x\n", MEMIO_READ_FIELD(msg, FW_VA_RENDER_BUFFER_SIZE));
+ psb__information_message("MSG OPERATING_MODE = %08x\n", MEMIO_READ_FIELD(msg, FW_VA_RENDER_OPERATING_MODE));
+ psb__information_message("MSG LAST_MB_IN_FRAME = %08x\n", MEMIO_READ_FIELD(msg, FW_VA_RENDER_LAST_MB_IN_FRAME));
+ psb__information_message("MSG FIRST_MB_IN_SLICE = %08x\n", MEMIO_READ_FIELD(msg, FW_VA_RENDER_FIRST_MB_IN_SLICE));
+ psb__information_message("MSG FLAGS = %08x\n", MEMIO_READ_FIELD(msg, FW_VA_RENDER_FLAGS));
+ } else {
+ psb__trace_message("MSG BUFFER_SIZE = %08x\n", MEMIO_READ_FIELD(msg, FW_DEVA_DECODE_BUFFER_SIZE));
+ psb__trace_message("MSG OPERATING_MODE = %08x\n", MEMIO_READ_FIELD(msg, FW_DEVA_DECODE_OPERATING_MODE));
+ psb__trace_message("MSG FLAGS = %08x\n", MEMIO_READ_FIELD(msg, FW_DEVA_DECODE_FLAGS));
+
+ psb__information_message("MSG BUFFER_SIZE = %08x\n", MEMIO_READ_FIELD(msg, FW_DEVA_DECODE_BUFFER_SIZE));
+ psb__information_message("MSG OPERATING_MODE = %08x\n", MEMIO_READ_FIELD(msg, FW_DEVA_DECODE_OPERATING_MODE));
+ psb__information_message("MSG FLAGS = %08x\n", MEMIO_READ_FIELD(msg, FW_DEVA_DECODE_FLAGS));
+ }
+#endif
+
+#if 0 /* todo */
+ /* Update SAREA */
+ driver_data->psb_sarea->msvdx_context = obj_context->msvdx_context;
+#endif
+ msg += item_size / sizeof(uint32_t);
+ msg_size += item_size;
+ }
+
+ /* Assume deblock message is following render messages and no more render message behand deblock message */
+ for (i = 1; i <= cmdbuf->deblock_count; i++) {
+ if (!IS_MFLD(driver_data))
+ msg_size += FW_VA_DEBLOCK_SIZE;
+ else
+ msg_size += FW_DEVA_DEBLOCK_SIZE;
+ }
+
+ for (i = 1; i <= cmdbuf->oold_count; i++) {
+ msg_size += FW_VA_OOLD_SIZE;
+ }
+
+ for (i = 1; i <= cmdbuf->host_be_opp_count; i++) {
+ msg_size += FW_VA_HOST_BE_OPP_SIZE;
+ }
+
+ /* Now calculate the total number of relocations */
+ reloc_offset = cmdbuf->reloc_base - cmdbuf->MTX_msg;
+ num_relocs = (((void *) cmdbuf->reloc_idx) - cmdbuf->reloc_base) / sizeof(struct drm_psb_reloc);
+
+#ifdef DEBUG_TRACE
+ psb__information_message("Cmdbuf MTXMSG size = %08x [%08x]\n", msg_size, MTXMSG_SIZE);
+ psb__information_message("Cmdbuf CMD size = %08x - %d[%08x]\n", (void *) cmdbuf->cmd_idx - cmdbuf->cmd_base, cmdbuf->cmd_count, CMD_SIZE);
+ psb__information_message("Cmdbuf LLDMA size = %08x [%08x]\n", cmdbuf->lldma_idx - cmdbuf->lldma_base, LLDMA_SIZE);
+ psb__information_message("Cmdbuf RELOC size = %08x [%08x]\n", num_relocs * sizeof(struct drm_psb_reloc), RELOC_SIZE);
+#endif
+
+ psb_cmdbuf_unmap(cmdbuf);
+
+#ifdef DEBUG_TRACE
+ psb__trace_message(NULL); /* Flush trace */
+#endif
+
+ ASSERT(NULL == cmdbuf->MTX_msg);
+ ASSERT(NULL == cmdbuf->reloc_base);
+
+#ifdef DEBUG_TRACE
+ fence_flags = 0;
+#else
+ fence_flags = DRM_PSB_FENCE_NO_USER;
+#endif
+
+ /* cmdbuf will be validated as part of the buffer list */
+ /* Submit */
+#if 1
+ wsbmWriteLockKernelBO();
+ ret = psbDRMCmdBuf(driver_data->drm_fd, driver_data->execIoctlOffset, cmdbuf->buffer_refs,
+ cmdbuf->buffer_refs_count,
+ wsbmKBufHandle(wsbmKBuf(cmdbuf->reloc_buf.drm_buf)),
+ 0, msg_size,
+ wsbmKBufHandle(wsbmKBuf(cmdbuf->reloc_buf.drm_buf)),
+ reloc_offset, num_relocs,
+ 0 /* clipRects */, 0, PSB_ENGINE_VIDEO, fence_flags, &fence_rep);
+ wsbmWriteUnlockKernelBO();
+ UNLOCK_HARDWARE(driver_data);
+#else
+ ret = 1;
+#endif
+ if (ret) {
+ obj_context->cmdbuf = NULL;
+ obj_context->slice_count++;
+
+ DEBUG_FAILURE_RET;
+ return ret;
+ }
+
+
+#ifdef DEBUG_TRACE
+ static int error_count = 0;
+ int status = 0;
+ struct _WsbmFenceObject *fence = NULL;
+#if 0
+ fence = psb_fence_wait(driver_data, &fence_rep, &status);
+ psb__information_message("psb_fence_wait returns: %d (fence=0x%08x)\n", status, fence);
+#endif
+
+ psb_buffer_map(&cmdbuf->buf, &cmdbuf->cmd_base);
+ psb_buffer_map(&cmdbuf->reloc_buf, &cmdbuf->MTX_msg);
+
+ if (getenv("PSB_VIDEO_TRACE_LLDMA")) {
+ psb__trace_message("lldma_count = %d, vitual=0x%08x\n",
+ debug_lldma_count, wsbmBOOffsetHint(cmdbuf->buf.drm_buf) + CMD_SIZE);
+ for (i = 0; i < debug_lldma_count; i++) {
+ DMA_sLinkedList* pasDmaList = (DMA_sLinkedList*)(cmdbuf->cmd_base + debug_lldma_start);
+ pasDmaList += i;
+
+ psb__trace_message("\nLLDMA record at offset %08x\n", ((void*)pasDmaList) - cmdbuf->cmd_base);
+ DW(0, BSWAP, 31, 31)
+ DW(0, DIR, 30, 30)
+ DW(0, PW, 29, 28)
+ DW(1, List_FIN, 31, 31)
+ DW(1, List_INT, 30, 30)
+ DW(1, PI, 18, 17)
+ DW(1, INCR, 16, 16)
+ DW(1, LEN, 15, 0)
+ DWH(2, ADDR, 22, 0)
+ DW(3, ACC_DEL, 31, 29)
+ DW(3, BURST, 28, 26)
+ DWH(3, EXT_SA, 3, 0)
+ DW(4, 2D_MODE, 16, 16)
+ DW(4, REP_COUNT, 10, 0)
+ DWH(5, LINE_ADD_OFF, 25, 16)
+ DW(5, ROW_LENGTH, 9, 0)
+ DWH(6, SA, 31, 0)
+ DWH(7, LISTPTR, 27, 0)
+ }
+ }
+
+
+
+ psb__trace_message("debug_dump_count = %d\n", debug_dump_count);
+ for (i = 0; i < debug_dump_count; i++) {
+ void *buf_addr;
+ psb__trace_message("Buffer %d = '%s' offset = %08x size = %08x\n", i, debug_dump_name[i], debug_dump_offset[i], debug_dump_size[i]);
+ if (debug_dump_buf[i]->rar_handle
+ || (psb_buffer_map(debug_dump_buf[i], &buf_addr) != 0)) {
+ psb__trace_message("Unmappable buffer,e.g. RAR buffer\n");
+ continue;
+ }
+
+ g_hexdump_offset = 0;
+ psb__hexdump(buf_addr + debug_dump_offset[i], debug_dump_size[i]);
+ psb_buffer_unmap(debug_dump_buf[i]);
+ }
+ debug_dump_count = 0;
+
+ psb__trace_message("cmd_count = %d, virtual=0x%08x\n",
+ debug_cmd_count, wsbmBOOffsetHint(cmdbuf->buf.drm_buf));
+ for (i = 0; i < debug_cmd_count; i++) {
+ uint32_t *msg = cmdbuf->MTX_msg + i * item_size;
+ int j;
+ psb__information_message("start = %08x size = %08x\n", debug_cmd_start[i], debug_cmd_size[i]);
+ debug_dump_cmdbuf((uint32_t *)(cmdbuf->cmd_base + debug_cmd_start[i]), debug_cmd_size[i]);
+
+ for (j = 0; j < item_size / 4; j++) {
+ psb__trace_message("MTX msg[%d] = 0x%08x", j, *(msg + j));
+ switch (j) {
+ case 0:
+ psb__trace_message("[BufferSize|ID|MSG_SIZE]\n");
+ break;
+ case 1:
+ psb__trace_message("[MMUPTD]\n");
+ break;
+ case 2:
+ psb__trace_message("[LLDMA_address]\n");
+ break;
+ case 3:
+ psb__trace_message("[Context]\n");
+ break;
+ case 4:
+ psb__trace_message("[Fence_Value]\n");
+ break;
+ case 5:
+ psb__trace_message("[Operating_Mode]\n");
+ break;
+ case 6:
+ psb__trace_message("[LastMB|FirstMB]\n");
+ break;
+ case 7:
+ psb__trace_message("[Flags]\n");
+ break;
+ default:
+ psb__trace_message("[overflow]\n");
+ break;
+ }
+ }
+ }
+ psb_buffer_unmap(&cmdbuf->buf);
+ psb_buffer_unmap(&cmdbuf->reloc_buf);
+
+ cmdbuf->cmd_base = NULL;
+
+ if (status) {
+ psb__error_message("RENDERING ERROR FRAME=%03d SLICE=%02d status=%d\n", obj_context->frame_count, obj_context->slice_count, status);
+ error_count++;
+ ASSERT(status != 2);
+ ASSERT(error_count < 40); /* Exit on 40 errors */
+ }
+ if (fence)
+ psb_fence_destroy(fence);
+#endif
+
+ obj_context->cmdbuf = NULL;
+ obj_context->slice_count++;
+
+ return 0;
+}
+
+
+typedef enum {
+ MMU_GROUP0 = 0,
+ MMU_GROUP1 = 1,
+} MMU_GROUP;
+
+typedef enum {
+ HOST_TO_MSVDX = 0,
+ MSXDX_TO_HOST = 1,
+} DMA_DIRECTION;
+
+typedef struct {
+ IMG_UINT32 ui32DevDestAddr ; /* destination address */
+ DMA_ePW ePeripheralWidth;
+ DMA_ePeriphIncrSize ePeriphIncrSize;
+ DMA_ePeriphIncr ePeriphIncr;
+ IMG_BOOL bSynchronous;
+ MMU_GROUP eMMUGroup;
+ DMA_DIRECTION eDMADir;
+ DMA_eBurst eDMA_eBurst;
+} DMA_DETAIL_LOOKUP;
+
+
+static const DMA_DETAIL_LOOKUP DmaDetailLookUp[] = {
+ /* LLDMA_TYPE_VLC_TABLE */ {
+ REG_MSVDX_VEC_VLC_OFFSET ,
+ DMA_PWIDTH_16_BIT, /* 16 bit wide data*/
+ DMA_PERIPH_INCR_4, /* Incrament the dest by 32 bits */
+ DMA_PERIPH_INCR_ON,
+ IMG_TRUE,
+ MMU_GROUP0,
+ HOST_TO_MSVDX,
+ DMA_BURST_2
+ },
+ /* LLDMA_TYPE_BITSTREAM */ {
+ (REG_MSVDX_VEC_OFFSET + MSVDX_VEC_CR_VEC_SHIFTREG_STREAMIN_OFFSET),
+ DMA_PWIDTH_8_BIT,
+ DMA_PERIPH_INCR_1,
+ DMA_PERIPH_INCR_OFF,
+ IMG_FALSE,
+ MMU_GROUP0,
+ HOST_TO_MSVDX,
+ DMA_BURST_4
+ },
+ /*LLDMA_TYPE_RESIDUAL*/ {
+ (REG_MSVDX_VDMC_OFFSET + MSVDX_VDMC_CR_VDMC_RESIDUAL_DIRECT_INSERT_DATA_OFFSET),
+ DMA_PWIDTH_32_BIT,
+ DMA_PERIPH_INCR_1,
+ DMA_PERIPH_INCR_OFF,
+ IMG_FALSE,
+ MMU_GROUP1,
+ HOST_TO_MSVDX,
+ DMA_BURST_4
+ },
+
+ /*LLDMA_TYPE_RENDER_BUFF_MC*/{
+ (REG_MSVDX_MTX_OFFSET + MTX_CORE_CR_MTX_SYSC_CDMAT_OFFSET),
+ DMA_PWIDTH_32_BIT,
+ DMA_PERIPH_INCR_1,
+ DMA_PERIPH_INCR_OFF,
+ IMG_TRUE,
+ MMU_GROUP1,
+ HOST_TO_MSVDX,
+ DMA_BURST_1 /* Into MTX */
+ },
+ /*LLDMA_TYPE_RENDER_BUFF_VLD*/{
+ (REG_MSVDX_MTX_OFFSET + MTX_CORE_CR_MTX_SYSC_CDMAT_OFFSET),
+ DMA_PWIDTH_32_BIT,
+ DMA_PERIPH_INCR_1,
+ DMA_PERIPH_INCR_OFF,
+ IMG_TRUE,
+ MMU_GROUP0,
+ HOST_TO_MSVDX,
+ DMA_BURST_1 /* Into MTX */
+ },
+ /*LLDMA_TYPE_MPEG4_FESTATE_SAVE*/{
+ (REG_MSVDX_VEC_RAM_OFFSET + 0xB90),
+ DMA_PWIDTH_32_BIT,
+ DMA_PERIPH_INCR_4,
+ DMA_PERIPH_INCR_ON,
+ IMG_TRUE,
+ MMU_GROUP0,
+ MSXDX_TO_HOST,
+ DMA_BURST_2 /* From VLR */
+ },
+ /*LLDMA_TYPE_MPEG4_FESTATE_RESTORE*/{
+ (REG_MSVDX_VEC_RAM_OFFSET + 0xB90),
+ DMA_PWIDTH_32_BIT,
+ DMA_PERIPH_INCR_4,
+ DMA_PERIPH_INCR_ON,
+ IMG_TRUE,
+ MMU_GROUP0,
+ HOST_TO_MSVDX,
+ DMA_BURST_2 /* Into VLR */
+ },
+ /*LLDMA_TYPE_H264_PRELOAD_SAVE*/{
+ (REG_MSVDX_MTX_OFFSET + MTX_CORE_CR_MTX_SYSC_CDMAT_OFFSET),
+ DMA_PWIDTH_32_BIT,
+ DMA_PERIPH_INCR_1,
+ DMA_PERIPH_INCR_OFF,
+ IMG_TRUE, /* na */
+ MMU_GROUP1,
+ MSXDX_TO_HOST,
+ DMA_BURST_1 /* From MTX */
+ },
+ /*LLDMA_TYPE_H264_PRELOAD_RESTORE*/{
+ (REG_MSVDX_MTX_OFFSET + MTX_CORE_CR_MTX_SYSC_CDMAT_OFFSET),
+ DMA_PWIDTH_32_BIT,
+ DMA_PERIPH_INCR_1,
+ DMA_PERIPH_INCR_OFF,
+ IMG_TRUE, /* na */
+ MMU_GROUP1,
+ HOST_TO_MSVDX,
+ DMA_BURST_1 /* Into MTX */
+ },
+ /*LLDMA_TYPE_VC1_PRELOAD_SAVE*/{
+ (REG_MSVDX_MTX_OFFSET + MTX_CORE_CR_MTX_SYSC_CDMAT_OFFSET),
+ DMA_PWIDTH_32_BIT,
+ DMA_PERIPH_INCR_1,
+ DMA_PERIPH_INCR_OFF,
+ IMG_TRUE, /* na */
+ MMU_GROUP0,
+ MSXDX_TO_HOST,
+ DMA_BURST_1 //2 /* From MTX */
+ },
+ /*LLDMA_TYPE_VC1_PRELOAD_RESTORE*/{
+ (REG_MSVDX_MTX_OFFSET + MTX_CORE_CR_MTX_SYSC_CDMAT_OFFSET),
+ DMA_PWIDTH_32_BIT,
+ DMA_PERIPH_INCR_1,
+ DMA_PERIPH_INCR_OFF,
+ IMG_TRUE, /* na */
+ MMU_GROUP0,
+ HOST_TO_MSVDX,
+ DMA_BURST_1 /* Into MTX */
+ },
+ /*LLDMA_TYPE_MEM_SET */{
+ (REG_MSVDX_VEC_RAM_OFFSET + 0xCC0),
+ DMA_PWIDTH_32_BIT,
+ DMA_PERIPH_INCR_4,
+ DMA_PERIPH_INCR_OFF,
+ IMG_TRUE, /* na */
+ MMU_GROUP0,
+ MSXDX_TO_HOST,
+ DMA_BURST_4 /* From VLR */
+ },
+
+};
+
+#define MAX_DMA_LEN ( 0xffff )
+
+
+void psb_cmdbuf_lldma_write_cmdbuf(psb_cmdbuf_p cmdbuf,
+ psb_buffer_p bitstream_buf,
+ uint32_t buffer_offset,
+ uint32_t size,
+ uint32_t dest_offset,
+ LLDMA_TYPE cmd)
+{
+ LLDMA_CMD *pLLDMACmd = (LLDMA_CMD*) cmdbuf->cmd_idx++;
+ psb_cmdbuf_lldma_create_internal(cmdbuf, pLLDMACmd, bitstream_buf, buffer_offset, size,
+ dest_offset, cmd);
+}
+
+uint32_t psb_cmdbuf_lldma_create(psb_cmdbuf_p cmdbuf,
+ psb_buffer_p bitstream_buf,
+ uint32_t buffer_offset,
+ uint32_t size,
+ uint32_t dest_offset,
+ LLDMA_TYPE cmd)
+{
+ uint32_t lldma_record_offset = (((void*)cmdbuf->lldma_idx) - ((void *) cmdbuf->cmd_base));
+ psb_cmdbuf_lldma_create_internal(cmdbuf, 0, bitstream_buf, buffer_offset, size,
+ dest_offset, cmd);
+ return lldma_record_offset;
+}
+
+/*
+ * Write a CMD_SR_SETUP referencing a bitstream buffer to the command buffer
+ */
+void psb_cmdbuf_lldma_write_bitstream(psb_cmdbuf_p cmdbuf,
+ psb_buffer_p bitstream_buf,
+ uint32_t buffer_offset,
+ uint32_t size_in_bytes,
+ uint32_t offset_in_bits,
+ uint32_t flags)
+{
+ /*
+ * We use byte alignment instead of 32bit alignment.
+ * The third frame of sa10164.vc1 results in the following bitstream
+ * patttern:
+ * [0000] 00 00 03 01 76 dc 04 8d
+ * with offset_in_bits = 0x1e
+ * This causes an ENTDEC failure because 00 00 03 is a start code
+ * By byte aligning the datastream the start code will be eliminated.
+ */
+//don't need to change the offset_in_bits, size_in_bytes and buffer_offset
+#if 0
+#define ALIGNMENT sizeof(uint8_t)
+ uint32_t bs_offset_in_dwords = ((offset_in_bits / 8) / ALIGNMENT);
+ size_in_bytes -= bs_offset_in_dwords * ALIGNMENT;
+ offset_in_bits -= bs_offset_in_dwords * 8 * ALIGNMENT;
+ buffer_offset += bs_offset_in_dwords * ALIGNMENT;
+#endif
+
+ *cmdbuf->cmd_idx++ = CMD_SR_SETUP | flags;
+ *cmdbuf->cmd_idx++ = offset_in_bits;
+ cmdbuf->cmd_bitstream_size = cmdbuf->cmd_idx;
+ *cmdbuf->cmd_idx++ = size_in_bytes;
+
+ psb_cmdbuf_lldma_write_cmdbuf(cmdbuf, bitstream_buf, buffer_offset,
+ size_in_bytes, 0, LLDMA_TYPE_BITSTREAM);
+
+#ifdef DEBUG_TRACE
+ //psb__debug_schedule_hexdump("Bitstream", bitstream_buf, buffer_offset, size_in_bytes);
+#endif
+}
+
+/*
+ * Chain a LLDMA bitstream command to the previous one
+ */
+void psb_cmdbuf_lldma_write_bitstream_chained(psb_cmdbuf_p cmdbuf,
+ psb_buffer_p bitstream_buf,
+ uint32_t size_in_bytes)
+{
+ DMA_sLinkedList* pasDmaList = (DMA_sLinkedList*) cmdbuf->lldma_last;
+ uint32_t lldma_record_offset = psb_cmdbuf_lldma_create(cmdbuf, bitstream_buf, bitstream_buf->buffer_ofs,
+ size_in_bytes, 0, LLDMA_TYPE_BITSTREAM);
+ /* Update WD7 of last LLDMA record to point to this one */
+ RELOC_SHIFT4(pasDmaList->ui32Word_7, lldma_record_offset, 0, &(cmdbuf->buf));
+ /* This touches WD1 */
+ MEMIO_WRITE_FIELD(pasDmaList, DMAC_LL_LIST_FIN, 0);
+
+#ifdef DEBUG_TRACE
+ //psb__debug_schedule_hexdump("Bitstream (chained)", bitstream_buf, 0, size_in_bytes);
+#endif
+
+ *(cmdbuf->cmd_bitstream_size) += size_in_bytes;
+}
+
+static void psb_cmdbuf_lldma_create_internal(psb_cmdbuf_p cmdbuf,
+ LLDMA_CMD *pLLDMACmd,
+ psb_buffer_p bitstream_buf,
+ uint32_t buffer_offset,
+ uint32_t size,
+ uint32_t dest_offset,
+ LLDMA_TYPE cmd)
+{
+ const DMA_DETAIL_LOOKUP* pDmaDetail;
+ IMG_UINT32 ui32DMACount, ui32LLDMA_Offset, ui32DMADestAddr, ui32Cmd;
+ DMA_sLinkedList* pasDmaList;
+ static IMG_UINT32 lu[] = {4, 2, 1};
+
+ /* See if we will fit */
+ ASSERT(cmdbuf->lldma_idx + sizeof(DMA_sLinkedList) < LLDMA_END(cmdbuf));
+
+ pDmaDetail = &DmaDetailLookUp[cmd];
+
+ ui32DMACount = size / lu[pDmaDetail->ePeripheralWidth];
+
+ /* DMA list must be 16byte alligned if it is done in Hw */
+ pasDmaList = (DMA_sLinkedList*)(cmdbuf->lldma_idx) ;
+ // psaDmaList = (DMA_sLinkedList*) ((( cmdbuf->lldma_idx )+0x0f) & ~0x0f );
+
+ /* Offset of LLDMA record in cmdbuf */
+ ui32LLDMA_Offset = (IMG_UINT32)(((IMG_UINT8*)pasDmaList) - ((IMG_UINT8*) cmdbuf->cmd_base));
+
+ ASSERT(0 == (ui32LLDMA_Offset & 0xf));
+
+ ui32DMADestAddr = pDmaDetail->ui32DevDestAddr + dest_offset;
+
+ /* Write the header */
+ if (pLLDMACmd) {
+ ui32Cmd = ((pDmaDetail->bSynchronous) ? CMD_SLLDMA : CMD_LLDMA);
+ RELOC_SHIFT4(pLLDMACmd->ui32CmdAndDevLinAddr, ui32LLDMA_Offset, ui32Cmd, &(cmdbuf->buf));
+ }
+
+ while (ui32DMACount) {
+ memset(pasDmaList , 0 , sizeof(DMA_sLinkedList));
+
+ DMA_LL_SET_WD2(pasDmaList, ui32DMADestAddr);
+
+ /* DMA_LL_SET_WD6 with relocation */
+ ASSERT(DMAC_LL_SA_SHIFT == 0);
+
+ RELOC(pasDmaList->ui32Word_6, buffer_offset, bitstream_buf);
+
+ if (ui32DMACount > MAX_DMA_LEN) {
+ ui32LLDMA_Offset += sizeof(DMA_sLinkedList);
+
+ /* DMA_LL_SET_WD7 with relocation */
+ ASSERT(DMAC_LL_LISTPTR_SHIFT == 0);
+ RELOC_SHIFT4(pasDmaList->ui32Word_7, ui32LLDMA_Offset, 0, &(cmdbuf->buf));
+ /* This touches WD1 */
+ MEMIO_WRITE_FIELD(pasDmaList, DMAC_LL_LIST_FIN, 0);
+
+ DMA_LL_SET_WD1(pasDmaList, pDmaDetail->ePeriphIncr, pDmaDetail->ePeriphIncrSize, MAX_DMA_LEN); /* size */
+
+ ui32DMACount -= MAX_DMA_LEN;
+
+ if (pDmaDetail->ePeriphIncr == DMA_PERIPH_INCR_ON) {
+ /* Update Destination pointers */
+ ui32DMADestAddr += ((MAX_DMA_LEN) * lu[pDmaDetail->ePeriphIncrSize]);
+ }
+
+ /* Update Source Pointer */
+ buffer_offset += ((MAX_DMA_LEN) * lu[pDmaDetail->ePeripheralWidth]);
+ } else {
+ /* This also set LIST_FIN in WD1 to 1*/
+ DMA_LL_SET_WD7(pasDmaList, IMG_NULL); // next linked list
+ DMA_LL_SET_WD1(pasDmaList, pDmaDetail->ePeriphIncr, pDmaDetail->ePeriphIncrSize, ui32DMACount); /* size */
+
+ ui32DMACount = 0;
+ }
+
+ /* Keep pointer in case we need to chain another LLDMA command */
+ cmdbuf->lldma_last = (void *) pasDmaList;
+
+ DMA_LL_SET_WD0(pasDmaList, DMA_BSWAP_NO_SWAP,
+ (pDmaDetail->eDMADir == HOST_TO_MSVDX) ? DMA_DIR_MEM_TO_PERIPH : DMA_DIR_PERIPH_TO_MEM ,
+ pDmaDetail->ePeripheralWidth);
+
+ DMA_LL_SET_WD3(pasDmaList, DMA_ACC_DEL_0, pDmaDetail->eDMA_eBurst, pDmaDetail->eMMUGroup);
+ DMA_LL_SET_WD4(pasDmaList, DMA_MODE_2D_OFF, 0); // 2d
+ DMA_LL_SET_WD5(pasDmaList, 0, 0); // 2d
+
+
+ pasDmaList++;
+ }
+
+ /* there can be up to 3 Bytes of padding after header */
+ cmdbuf->lldma_idx = (void *)pasDmaList;
+}
+
+
+/*
+ * Create a command to set registers
+ */
+void psb_cmdbuf_reg_start_block(psb_cmdbuf_p cmdbuf)
+{
+ ASSERT(NULL == cmdbuf->rendec_block_start); /* Can't have both */
+
+ cmdbuf->reg_start = cmdbuf->cmd_idx++;
+ *cmdbuf->reg_start = 0;
+}
+
+void psb_cmdbuf_reg_start_block_flag(psb_cmdbuf_p cmdbuf, uint32_t flags)
+{
+ ASSERT(NULL == cmdbuf->rendec_block_start); /* Can't have both */
+
+ cmdbuf->reg_start = cmdbuf->cmd_idx++;
+ *cmdbuf->reg_start = flags;
+}
+
+void psb_cmdbuf_reg_set_address(psb_cmdbuf_p cmdbuf,
+ uint32_t reg,
+ psb_buffer_p buffer,
+ uint32_t buffer_offset)
+{
+ *cmdbuf->cmd_idx++ = reg;
+ RELOC(*cmdbuf->cmd_idx++, buffer_offset, buffer);
+}
+
+/*
+ * Finish a command to set registers
+ */
+void psb_cmdbuf_reg_end_block(psb_cmdbuf_p cmdbuf)
+{
+ uint32_t reg_count = ((cmdbuf->cmd_idx - cmdbuf->reg_start) - 1) / 2;
+
+ *cmdbuf->reg_start |= CMD_REGVALPAIR_WRITE | reg_count;
+ cmdbuf->reg_start = NULL;
+}
+
+typedef enum {
+ MTX_CTRL_HEADER = 0,
+ RENDEC_SL_HDR,
+ RENDEC_SL_NULL,
+ RENDEC_CK_HDR,
+} RENDEC_CHUNK_OFFSETS;
+
+/*
+ * Create a RENDEC command block
+ */
+void psb_cmdbuf_rendec_start_block(psb_cmdbuf_p cmdbuf)
+{
+ ASSERT(NULL == cmdbuf->rendec_block_start); /* Can't have both */
+ cmdbuf->rendec_block_start = cmdbuf->cmd_idx;
+
+ cmdbuf->rendec_block_start[RENDEC_SL_HDR] = 0;
+ REGIO_WRITE_FIELD_LITE(cmdbuf->rendec_block_start[RENDEC_SL_HDR], RENDEC_SLICE_INFO, SL_HDR_CK_START, SL_ROUTING_INFO, 1);
+ REGIO_WRITE_FIELD_LITE(cmdbuf->rendec_block_start[RENDEC_SL_HDR], RENDEC_SLICE_INFO, SL_HDR_CK_START, SL_ENCODING_METHOD, 3);
+ REGIO_WRITE_FIELD_LITE(cmdbuf->rendec_block_start[RENDEC_SL_HDR], RENDEC_SLICE_INFO, SL_HDR_CK_START, SL_NUM_SYMBOLS_LESS1, 1);
+
+ cmdbuf->rendec_block_start[RENDEC_SL_NULL] = 0; /* empty */
+
+ cmdbuf->cmd_idx += RENDEC_CK_HDR;
+}
+
+/*
+ * Start a new chunk in a RENDEC command block
+ */
+void psb_cmdbuf_rendec_start_chunk(psb_cmdbuf_p cmdbuf, uint32_t dest_address)
+{
+ ASSERT(NULL != cmdbuf->rendec_block_start); /* Must have a RENDEC block open */
+ cmdbuf->rendec_chunk_start = cmdbuf->cmd_idx++;
+
+ *cmdbuf->rendec_chunk_start = 0;
+ REGIO_WRITE_FIELD_LITE(*cmdbuf->rendec_chunk_start, RENDEC_SLICE_INFO, CK_HDR, CK_ENCODING_METHOD, 3);
+ REGIO_WRITE_FIELD_LITE(*cmdbuf->rendec_chunk_start, RENDEC_SLICE_INFO, CK_HDR, CK_START_ADDRESS, (dest_address >> 2));
+}
+
+/*
+ * Start a new rendec block of another format
+ */
+void psb_cmdbuf_rendec_start(psb_cmdbuf_p cmdbuf, uint32_t dest_address)
+{
+ ASSERT(((dest_address >> 2)& ~0xfff) == 0);
+ cmdbuf->rendec_chunk_start = cmdbuf->cmd_idx++;
+
+ *cmdbuf->rendec_chunk_start = CMD_RENDEC_BLOCK | ((dest_address >> 2) << 4);
+}
+
+void psb_cmdbuf_rendec_write_block(psb_cmdbuf_p cmdbuf,
+ unsigned char *block,
+ uint32_t size)
+{
+ ASSERT((size & 0x3) == 0);
+ int i;
+ for (i = 0; i < size; i += 4) {
+ uint32_t val = block[i] | (block[i+1] << 8) | (block[i+2] << 16) | (block[i+3] << 24);
+ psb_cmdbuf_rendec_write(cmdbuf, val);
+ }
+}
+
+void psb_cmdbuf_rendec_write_address(psb_cmdbuf_p cmdbuf,
+ psb_buffer_p buffer,
+ uint32_t buffer_offset)
+{
+ RELOC(*cmdbuf->cmd_idx++, buffer_offset, buffer);
+}
+
+/*
+ * Finish a RENDEC chunk
+ */
+void psb_cmdbuf_rendec_end_chunk(psb_cmdbuf_p cmdbuf)
+{
+ ASSERT(NULL != cmdbuf->rendec_block_start); /* Must have an open RENDEC block */
+ ASSERT(NULL != cmdbuf->rendec_chunk_start); /* Must have an open RENDEC chunk */
+ uint32_t dword_count = (cmdbuf->cmd_idx - cmdbuf->rendec_chunk_start) - 1;
+
+ REGIO_WRITE_FIELD_LITE(*cmdbuf->rendec_chunk_start,
+ RENDEC_SLICE_INFO,
+ CK_HDR,
+ CK_NUM_SYMBOLS_LESS1,
+ (2 * dword_count) - 1); /* Number of 16-bit symbols, minus 1.*/
+
+ cmdbuf->rendec_chunk_start = NULL;
+}
+
+/*
+ * Finish a RENDEC block
+ */
+void psb_cmdbuf_rendec_end(psb_cmdbuf_p cmdbuf)
+{
+ ASSERT(NULL != cmdbuf->rendec_chunk_start); /* Must have an open RENDEC chunk */
+ uint32_t dword_count = cmdbuf->cmd_idx - cmdbuf->rendec_chunk_start;
+
+ ASSERT((dword_count - 1) <= 0xff);
+
+ *cmdbuf->rendec_chunk_start += ((dword_count - 1) << 16);
+ cmdbuf->rendec_chunk_start = NULL;
+}
+
+/*
+ * Finish a RENDEC block
+ */
+void psb_cmdbuf_rendec_end_block(psb_cmdbuf_p cmdbuf)
+{
+ ASSERT(NULL != cmdbuf->rendec_block_start); /* Must have an open RENDEC block */
+ ASSERT(NULL == cmdbuf->rendec_chunk_start); /* All chunks must be closed */
+
+ uint32_t block_size = cmdbuf->cmd_idx - cmdbuf->rendec_block_start; /* Include separator but not mtx block header*/
+
+ /* Write separator (footer-type thing) */
+ *cmdbuf->cmd_idx = 0;
+ REGIO_WRITE_FIELD(*cmdbuf->cmd_idx, RENDEC_SLICE_INFO, SLICE_SEPARATOR, SL_SEP_SUFFIX, 7);
+ cmdbuf->cmd_idx++;
+
+ /* Write CMD Header */
+ cmdbuf->rendec_block_start[MTX_CTRL_HEADER] = CMD_RENDEC_WRITE | block_size;
+
+ cmdbuf->rendec_block_start = NULL;
+}
+
+/*
+ * Returns the number of words left in the current segment
+ */
+uint32_t psb_cmdbuf_segment_space(psb_cmdbuf_p cmdbuf)
+{
+ uint32_t bytes_used = (void *) cmdbuf->cmd_idx - cmdbuf->cmd_start;
+ return (MTX_SEG_SIZE - (bytes_used % MTX_SEG_SIZE)) / sizeof(uint32_t);
+}
+
+/*
+ * Forwards the command buffer index to the next segment
+ */
+void psb_cmdbuf_next_segment(psb_cmdbuf_p cmdbuf)
+{
+ uint32_t *next_segment_cmd = cmdbuf->cmd_idx;
+ cmdbuf->cmd_idx += 2;
+ uint32_t words_free = psb_cmdbuf_segment_space(cmdbuf);
+
+ if (cmdbuf->last_next_segment_cmd) {
+ psb_cmdbuf_close_segment(cmdbuf);
+ } else {
+ cmdbuf->first_segment_size = (void *) cmdbuf->cmd_idx - cmdbuf->cmd_start;
+ }
+
+ cmdbuf->cmd_idx += words_free; /* move pui32CmdBuffer to start of next segment */
+
+ cmdbuf->last_next_segment_cmd = next_segment_cmd;
+}
+
+/*
+ * Create a conditional SKIP block
+ */
+void psb_cmdbuf_skip_start_block(psb_cmdbuf_p cmdbuf, uint32_t skip_condition)
+{
+ ASSERT(NULL == cmdbuf->rendec_block_start); /* Can't be inside a rendec block */
+ ASSERT(NULL == cmdbuf->reg_start); /* Can't be inside a reg block */
+ ASSERT(NULL == cmdbuf->skip_block_start); /* Can't be inside another skip block (limitation of current sw design)*/
+
+ cmdbuf->skip_condition = skip_condition;
+ cmdbuf->skip_block_start = cmdbuf->cmd_idx++;
+}
+
+/*
+ * Terminate a conditional SKIP block
+ */
+void psb_cmdbuf_skip_end_block(psb_cmdbuf_p cmdbuf)
+{
+ ASSERT(NULL == cmdbuf->rendec_block_start); /* Rendec block must be closed */
+ ASSERT(NULL == cmdbuf->reg_start); /* Reg block must be closed */
+ ASSERT(NULL != cmdbuf->skip_block_start); /* Skip block must still be open */
+
+ uint32_t block_size = cmdbuf->cmd_idx - (cmdbuf->skip_block_start + 1);
+
+ *cmdbuf->skip_block_start = CMD_CONDITIONAL_SKIP | (cmdbuf->skip_condition << 20) | block_size;
+ cmdbuf->skip_block_start = NULL;
+}
diff --git a/src/psb_cmdbuf.h b/src/psb_cmdbuf.h
new file mode 100644
index 0000000..d7bc481
--- /dev/null
+++ b/src/psb_cmdbuf.h
@@ -0,0 +1,355 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ * Waldo Bastian <waldo.bastian@intel.com>
+ *
+ */
+
+#ifndef _PSB_CMDBUF_H_
+#define _PSB_CMDBUF_H_
+
+#include "psb_drv_video.h"
+#include "psb_buffer.h"
+//#include "xf86mm.h"
+#include "psb_drm.h"
+
+#include "hwdefs/lldma_defs.h"
+
+#include <stdint.h>
+
+
+#ifdef ANDROID
+#define Bool int
+#endif
+
+typedef struct psb_cmdbuf_s *psb_cmdbuf_p;
+
+struct psb_cmdbuf_s {
+ struct psb_buffer_s buf;
+ unsigned int size;
+ struct psb_buffer_s reloc_buf;
+ unsigned int reloc_size;
+
+ struct psb_buffer_s regio_buf;
+ unsigned int regio_size;
+ void * regio_base;
+ uint32_t *regio_idx;
+
+ /* MTX msg */
+ void *MTX_msg;
+ /* Relocation records */
+ void *reloc_base;
+ struct drm_psb_reloc *reloc_idx;
+
+ /* CMD stream data */
+ int cmd_count;
+ int deblock_count;
+ int oold_count;
+ int host_be_opp_count;
+ int frame_info_count;
+ void *cmd_base;
+ void *cmd_start;
+ uint32_t *cmd_idx;
+ uint32_t *cmd_bitstream_size; /* Pointer to bitstream size field in last SR_SETUP */
+ /* LLDMA records */
+ void *lldma_base;
+ void *lldma_idx;
+ void *lldma_last; /* Pointer to last LLDMA record */
+
+ /* Referenced buffers */
+ psb_buffer_p *buffer_refs;
+
+ int buffer_refs_count;
+ int buffer_refs_allocated;
+ /* Pointer for Register commands */
+ uint32_t *reg_start;
+ /* Pointer for Rendec Block commands */
+ uint32_t *rendec_block_start;
+ uint32_t *rendec_chunk_start;
+ /* Pointer for Segment commands */
+ uint32_t *last_next_segment_cmd;
+ uint32_t first_segment_size;
+ /* Pointer for Skip block commands */
+ uint32_t *skip_block_start;
+ uint32_t skip_condition;
+};
+
+/*
+ * Create command buffer
+ */
+VAStatus psb_cmdbuf_create(
+ object_context_p obj_context,
+ psb_driver_data_p driver_data,
+ psb_cmdbuf_p cmdbuf);
+
+/*
+ * Destroy buffer
+ */
+void psb_cmdbuf_destroy(psb_cmdbuf_p cmdbuf);
+
+/*
+ * Reset buffer & map
+ *
+ * Returns 0 on success
+ */
+int psb_cmdbuf_reset(psb_cmdbuf_p cmdbuf);
+
+/*
+ * Unmap buffer
+ *
+ * Returns 0 on success
+ */
+int psb_cmdbuf_unmap(psb_cmdbuf_p cmdbuf);
+
+/*
+ * Reference an addtional buffer "buf" in the command stream
+ * Returns a reference index that can be used to refer to "buf" in
+ * relocation records, on error -1 is returned.
+ */
+int psb_cmdbuf_buffer_ref(psb_cmdbuf_p cmdbuf, psb_buffer_p buf);
+
+/* Creates a relocation record for a DWORD in the mapped "cmdbuf" at address
+ * "addr_in_cmdbuf"
+ * The relocation is based on the device virtual address of "ref_buffer"
+ * "buf_offset" is be added to the device virtual address, and the sum is then
+ * right shifted with "align_shift".
+ * "mask" determines which bits of the target DWORD will be updated with the so
+ * constructed address. The remaining bits will be filled with bits from "background".
+ */
+void psb_cmdbuf_add_relocation(psb_cmdbuf_p cmdbuf,
+ uint32_t *addr_in_cmdbuf,
+ psb_buffer_p ref_buffer,
+ uint32_t buf_offset,
+ uint32_t mask,
+ uint32_t background,
+ uint32_t align_shift,
+ uint32_t dst_buffer);
+
+#define RELOC(dest, offset, buf) psb_cmdbuf_add_relocation(cmdbuf, (uint32_t*) &dest, buf, offset, 0XFFFFFFFF, 0, 0, 1)
+#define RELOC_MSG(dest, offset, buf) psb_cmdbuf_add_relocation(cmdbuf, (uint32_t*) &dest, buf, offset, 0XFFFFFFFF, 0, 0, 0)
+#define RELOC_SHIFT4(dest, offset, background, buf) psb_cmdbuf_add_relocation(cmdbuf, (uint32_t*) &dest, buf, offset, 0X0FFFFFFF, background, 4, 1)
+#define RELOC_REGIO(dest, offset, buf, dst) psb_cmdbuf_add_relocation(cmdbuf, (uint32_t*) &dest, buf, offset, 0XFFFFFFFF, 0, 0, dst)
+
+/*
+ * Advances "obj_context" to the next cmdbuf
+ *
+ * Returns 0 on success
+ */
+int psb_context_get_next_cmdbuf(object_context_p obj_context);
+
+int psb_context_submit_deblock(object_context_p obj_context);
+
+int psb_context_submit_oold(object_context_p obj_context,
+ psb_buffer_p src_buf,
+ psb_buffer_p dst_buf,
+ psb_buffer_p colocate_buffer,
+ uint32_t picture_width_in_mb,
+ uint32_t frame_height_in_mb,
+ uint32_t field_type,
+ uint32_t chroma_offset);
+
+int psb_context_submit_host_be_opp(object_context_p obj_context, psb_buffer_p dst_buf,
+ uint32_t stride, uint32_t size,
+ uint32_t picture_width_mb,
+ uint32_t size_mb);
+
+int psb_context_submit_frame_info(object_context_p obj_context, psb_buffer_p dst_buf,
+ uint32_t stride, uint32_t size,
+ uint32_t picture_width_mb,
+ uint32_t size_mb);
+
+int psb_context_submit_hw_deblock(object_context_p obj_context,
+ psb_buffer_p buf_a,
+ psb_buffer_p buf_b,
+ psb_buffer_p colocate_buffer,
+ uint32_t picture_widht_mb,
+ uint32_t frame_height_mb,
+ uint32_t rotation_flags,
+ uint32_t field_type,
+ uint32_t ext_stride_a,
+ uint32_t chroma_offset_a,
+ uint32_t chroma_offset_b,
+ uint32_t is_oold);
+
+/*
+ * Submits the current cmdbuf
+ *
+ * Returns 0 on success
+ */
+int psb_context_submit_cmdbuf(object_context_p obj_context);
+
+/*
+ * Flushes the pending cmdbuf
+ *
+ * Return 0 on success
+ */
+int psb_context_flush_cmdbuf(object_context_p obj_context);
+
+/*
+ * Write a SR_SETUP_CMD referencing a bitstream buffer to the command buffer
+ *
+ * The slice data runs from buffer_offset_in_bytes to buffer_offset_in_bytes + size_in_bytes
+ * The first bit to be processed is buffer_offset_in_bytes + offset_in_bits
+ *
+ * TODO: Return something
+ */
+void psb_cmdbuf_lldma_write_bitstream(psb_cmdbuf_p cmdbuf,
+ psb_buffer_p bitstream_buf,
+ uint32_t buffer_offset,
+ uint32_t size_in_bytes,
+ uint32_t offset_in_bits,
+ uint32_t flags);
+
+/* Chain a bitstream buffer to the last one */
+void psb_cmdbuf_lldma_write_bitstream_chained(psb_cmdbuf_p cmdbuf,
+ psb_buffer_p bitstream_buf,
+ uint32_t size_in_bytes);
+
+
+/* Write a LLDMA_CMD to the cmdbuf */
+void psb_cmdbuf_lldma_write_cmdbuf(psb_cmdbuf_p cmdbuf,
+ psb_buffer_p bitstream_buf,
+ uint32_t buffer_offset,
+ uint32_t size,
+ uint32_t dest_offset,
+ LLDMA_TYPE cmd);
+
+/* Create a LLDMA record and return the offset to LLDMA record in bytes relative to the start of cmdbuf */
+uint32_t psb_cmdbuf_lldma_create(psb_cmdbuf_p cmdbuf,
+ psb_buffer_p bitstream_buf,
+ uint32_t buffer_offset,
+ uint32_t size,
+ uint32_t dest_offset,
+ LLDMA_TYPE cmd);
+
+/*
+ * Create a command to set registers
+ */
+void psb_cmdbuf_reg_start_block(psb_cmdbuf_p cmdbuf);
+
+/*
+ * Create a command to set registers
+ */
+void psb_cmdbuf_reg_start_block_flag(psb_cmdbuf_p cmdbuf, uint32_t flags);
+
+#define psb_cmdbuf_reg_set( cmdbuf, reg, val ) \
+ do { *cmdbuf->cmd_idx++ = reg; *cmdbuf->cmd_idx++ = val; } while (0)
+
+#define psb_cmdbuf_reg_set_RELOC( cmdbuf, reg, buffer,buffer_offset) \
+ do { *cmdbuf->cmd_idx++ = reg; RELOC(*cmdbuf->cmd_idx++, buffer_offset, buffer); } while (0)
+
+void psb_cmdbuf_reg_set_address(psb_cmdbuf_p cmdbuf,
+ uint32_t reg,
+ psb_buffer_p buffer,
+ uint32_t buffer_offset);
+
+/*
+ * Finish a command to set registers
+ */
+void psb_cmdbuf_reg_end_block(psb_cmdbuf_p cmdbuf);
+
+/*
+ * Create a RENDEC command block
+ */
+void psb_cmdbuf_rendec_start_block(psb_cmdbuf_p cmdbuf);
+
+/*
+ * Create a RENDEC command block
+ */
+void psb_cmdbuf_rendec_start(psb_cmdbuf_p cmdbuf, uint32_t dest_address);
+/*
+ * Start a new chunk in a RENDEC command block
+ */
+void psb_cmdbuf_rendec_start_chunk(psb_cmdbuf_p cmdbuf, uint32_t dest_address);
+
+#define psb_cmdbuf_rendec_write( cmdbuf, val ) \
+ do { *cmdbuf->cmd_idx++ = val; } while(0)
+
+void psb_cmdbuf_rendec_write_block(psb_cmdbuf_p cmdbuf,
+ unsigned char *block,
+ uint32_t size);
+
+void psb_cmdbuf_rendec_write_address(psb_cmdbuf_p cmdbuf,
+ psb_buffer_p buffer,
+ uint32_t buffer_offset);
+
+/*
+ * Finish a RENDEC chunk
+ */
+void psb_cmdbuf_rendec_end_chunk(psb_cmdbuf_p cmdbuf);
+
+/*
+ * Finish a RENDEC block
+ */
+void psb_cmdbuf_rendec_end_block(psb_cmdbuf_p cmdbuf);
+
+/*
+ * Returns the number of words left in the current segment
+ */
+uint32_t psb_cmdbuf_segment_space(psb_cmdbuf_p cmdbuf);
+
+/*
+ * Forwards the command buffer index to the next segment
+ */
+void psb_cmdbuf_next_segment(psb_cmdbuf_p cmdbuf);
+
+typedef enum {
+ SKIP_ON_CONTEXT_SWITCH = 1,
+} E_SKIP_CONDITION;
+
+/*
+ * Create a conditional SKIP block
+ */
+void psb_cmdbuf_skip_start_block(psb_cmdbuf_p cmdbuf, uint32_t skip_condition);
+
+/*
+ * Terminate a conditional SKIP block
+ */
+void psb_cmdbuf_skip_end_block(psb_cmdbuf_p cmdbuf);
+
+/*
+ * Terminate a conditional SKIP block
+ */
+void psb_cmdbuf_rendec_end(psb_cmdbuf_p cmdbuf);
+/*
+ * Write RegIO record into buffer
+ */
+int psb_cmdbuf_second_pass(object_context_p obj_context,
+ uint32_t OperatingModeCmd,
+ void * pvParamBase,
+ uint32_t PicWidthInMbs,
+ uint32_t FrameHeightInMbs,
+ psb_buffer_p target_buffer,
+ uint32_t chroma_offset
+ );
+
+#ifdef DEBUG_TRACE
+/*
+ * Dump contents of buffer object after command submission
+ */
+void psb__debug_schedule_hexdump(const char *name, psb_buffer_p buf, uint32_t offset, uint32_t size);
+#endif
+
+#endif /* _PSB_CMDBUF_H_ */
diff --git a/src/psb_deblock.c b/src/psb_deblock.c
new file mode 100644
index 0000000..5c7137d
--- /dev/null
+++ b/src/psb_deblock.c
@@ -0,0 +1,604 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ * Zeng Li <zeng.li@intel.com>
+ *
+ */
+
+#include "psb_cmdbuf.h"
+
+#include <unistd.h>
+#include <stdio.h>
+
+#include "hwdefs/mem_io.h"
+#include "hwdefs/msvdx_offsets.h"
+#include "hwdefs/reg_io2.h"
+#include "hwdefs/msvdx_vec_reg_io2.h"
+#include "hwdefs/msvdx_vdmc_reg_io2.h"
+#include "hwdefs/msvdx_mtx_reg_io2.h"
+#include "hwdefs/msvdx_dmac_linked_list.h"
+#include "hwdefs/msvdx_rendec_mtx_slice_cntrl_reg_io2.h"
+#include "hwdefs/msvdx_core_regs_io2.h"
+#include "hwdefs/h264_macroblock_mem_io.h"
+#include "hwdefs/dxva_cmdseq_msg.h"
+#include "hwdefs/dxva_fw_ctrl.h"
+#include "hwdefs/fwrk_msg_mem_io.h"
+#include "hwdefs/dxva_msg.h"
+#include "hwdefs/msvdx_cmds_io2.h"
+#include <stdlib.h>
+#include <errno.h>
+#include <string.h>
+
+#include "psb_def.h"
+
+#define H264_MACROBLOCK_DATA_SIZE 0x80
+
+#define MSVDX_CMDS_BASE 0x1000
+#define MSVDX_CORE_BASE 0x600
+#define MSVDX_VEC_BASE 0x800
+
+#define MSVDX_DEBLOCK_REG_SET 0x10000000
+#define MSVDX_DEBLOCK_REG_GET 0x20000000
+#define MSVDX_DEBLOCK_REG_POLLn 0x30000000
+#define MSVDX_DEBLOCK_REG_POLLx 0x40000000
+
+static int reg_set_count = 0;
+static int reg_get_count = 0;
+static int reg_poll_x = 0;
+static int reg_poll_n = 0;
+
+#define psb_deblock_reg_set(group, reg, value) \
+ *cmdbuf->regio_idx++ = (group##_##reg##_##OFFSET + group##_##BASE) | MSVDX_DEBLOCK_REG_SET; \
+ *cmdbuf->regio_idx++ = value; reg_set_count++;
+
+#define psb_deblock_reg_set_RELOC( group, reg, buffer, buffer_offset, dst) \
+ *cmdbuf->regio_idx++ = (group##_##reg##_##OFFSET + group##_##BASE) | MSVDX_DEBLOCK_REG_SET; \
+ RELOC_REGIO(*cmdbuf->regio_idx++, buffer_offset, buffer, dst); reg_set_count++;
+
+#define psb_deblock_reg_table_set(group, reg, index, value) \
+ *cmdbuf->regio_idx++ = ( (group##_##reg##_OFFSET + group##_##BASE + index*group##_##reg##_STRIDE) | MSVDX_DEBLOCK_REG_SET); \
+ *cmdbuf->regio_idx++ = value; reg_set_count++;
+
+#define psb_deblock_reg_get(group, reg) \
+ *cmdbuf->regio_idx++ = (group##_##reg##_##OFFSET + group##_##BASE) | MSVDX_DEBLOCK_REG_GET; reg_get_count++;
+
+#if 1
+#define h264_pollForSpaceForNCommands(NumCommands)\
+ *cmdbuf->regio_idx++ = (MSVDX_CORE_CR_MSVDX_COMMAND_SPACE_OFFSET + MSVDX_CORE_BASE) | MSVDX_DEBLOCK_REG_POLLn; \
+ *cmdbuf->regio_idx++ = NumCommands; reg_poll_n++;
+#else
+#define h264_pollForSpaceForNCommands(NumCommands) /* Seems not needed, so just define it null */
+#endif
+
+#define PollForSpaceForXCommands \
+ *cmdbuf->regio_idx++ = (MSVDX_CORE_CR_MSVDX_COMMAND_SPACE_OFFSET + MSVDX_CORE_BASE) | MSVDX_DEBLOCK_REG_POLLx; reg_poll_x++;
+
+typedef enum {
+ H264_BLOCKSIZE_16X16 = 0, /* 1 block */
+ H264_BLOCKSIZE_16X8 = 1, /* 2 blocks */
+ H264_BLOCKSIZE_8X16 = 2,
+ H264_BLOCKSIZE_8X8 = 3, /* 4 blocks */
+ H264_BLOCKSIZE_8X4 = 4,
+ H264_BLOCKSIZE_4X8 = 5,
+ H264_BLOCKSIZE_4X4 = 6
+
+} h264_eBlockSize;
+
+static uint32_t BlockDownsizeMap[] = {
+ 1, 1, 3, 3, 3, 5, 5
+};
+
+static uint32_t BlocksToSendMap[] = {
+ 1, 2, 2, 4, 4, 4, 4
+};
+
+static uint32_t BlockAddressMap[7][4] = {
+ { 0 }, /* 16x16 */
+ { 0, 2 }, /* 16x8 */
+ { 0, 1 }, /* 8x16 */
+ { 0, 1, 2, 3 }, /* 8x8 */
+ { 0, 1, 2, 3 }, /* 8x4 */
+ { 0, 1, 2, 3 }, /* 4x8 */
+ { 0, 1, 2, 3 } /* 4x4 */
+};
+
+static uint32_t VectorsToSendMap[] = {
+ 1, 1, 1, 1, 2, 2, 4
+};
+
+static uint32_t VectorOffsetMap[7][4] = {
+ { 0 }, /* 16x16 */
+ { 0 }, /* 16x8 */
+ { 0 }, /* 8x16 */
+ { 0 }, /* 8x8 */
+ { 0, 2 }, /* 8x4 */
+ { 0, 1 }, /* 4x8 */
+ { 0, 1, 2, 3 } /* 4x4 */
+};
+
+
+static uint32_t Above1AboveTileMap[] = {
+ /* 9, 12, 8, 13 */
+ 13, 12, 9, 8
+};
+
+static uint32_t CurrentAboveTileMap[] = {
+ /* 11, 14, 10, 15 */
+ 15, 14, 11, 10
+};
+
+static uint32_t CurrentColTileMap[] = {
+ 10, 15, 0, 5, 8, 13, 2, 7, 1, 4, 3, 6, 9, 12
+};
+
+
+static uint32_t ColBlockMap[] = {
+ 2, 3, 0, 1
+};
+
+void
+h264_above1InterBlockSequence(psb_cmdbuf_p cmdbuf, uint8_t* MbData)
+{
+ uint32_t i, BlockNum, Mv, MvAddr, Value;
+ uint32_t Block8x8, blockType;
+ uint32_t InterBlockCmd;
+ uint32_t MotionVecCmd[16];
+ uint32_t BlockType[4] = {0};
+ uint32_t DpbIdx[4];
+
+ /* set MV vars to 0 */
+ for (i = 0; i < 16; i++) {
+ MotionVecCmd[i] = 0;
+ }
+
+ /* Read the size of blocks 2 and 3 and resize them so they are all ?x8 */
+ Value = MEMIO_READ_FIELD(MbData, MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_ASO_BLOCK2_PREDICTION_SIZE);
+ if (Value > (sizeof(BlockDownsizeMap) / sizeof(uint32_t) - 1))
+ Value = sizeof(BlockDownsizeMap) / sizeof(uint32_t) - 1;
+ BlockType[2] = BlockDownsizeMap[Value];
+ Value = MEMIO_READ_FIELD(MbData, MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_ASO_BLOCK3_PREDICTION_SIZE);
+ if (Value > (sizeof(BlockDownsizeMap) / sizeof(uint32_t) - 1))
+ Value = sizeof(BlockDownsizeMap) / sizeof(uint32_t) - 1;
+ BlockType[3] = BlockDownsizeMap[Value];
+
+ /* read motion vectors for the bottom row, but store them in the correct locn. for ?x8 blocks */
+ for (i = 0; i < 4; i++) {
+ Value = MEMIO_READ_TABLE_FIELD(MbData, MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_COMP_X_ABOVE, i);
+ REGIO_WRITE_FIELD(MotionVecCmd[Above1AboveTileMap[i]], MSVDX_CMDS, MOTION_VECTOR, MV_X, Value);
+ Value = MEMIO_READ_TABLE_FIELD(MbData, MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_COMP_Y_ABOVE, i);
+ REGIO_WRITE_FIELD(MotionVecCmd[Above1AboveTileMap[i]], MSVDX_CMDS, MOTION_VECTOR, MV_Y, Value);
+ }
+
+ /* read DPB index for blocks 2 and 3 */
+ for (i = 0; i < 2; i++) {
+ DpbIdx[ColBlockMap[i]] = MEMIO_READ_TABLE_FIELD(MbData, MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_DPB_IDX_COL, i);
+ }
+
+ /* Send commands required blocks */
+ for (BlockNum = BlocksToSendMap[BlockType[2]] / 2;
+ BlockNum < BlocksToSendMap[BlockType[2]];
+ BlockNum++) {
+ /* block address */
+ Block8x8 = BlockAddressMap[BlockType[2]][BlockNum];
+ /* block type */
+ blockType = BlockType[Block8x8];
+
+ InterBlockCmd = 0;
+ REGIO_WRITE_FIELD(InterBlockCmd, MSVDX_CMDS, INTER_BLOCK_PREDICTION, INTER_PRED_BLOCK_SIZE, blockType);
+ REGIO_WRITE_FIELD(InterBlockCmd, MSVDX_CMDS, INTER_BLOCK_PREDICTION, REF_INDEX_A_VALID, 1);
+ REGIO_WRITE_FIELD(InterBlockCmd, MSVDX_CMDS, INTER_BLOCK_PREDICTION, REF_INDEX_A, DpbIdx[Block8x8]);
+
+ /* send commands */
+ h264_pollForSpaceForNCommands(1 + VectorsToSendMap[blockType]);
+ psb_deblock_reg_table_set(MSVDX_CMDS, INTER_BLOCK_PREDICTION_ABOVE1, Block8x8, InterBlockCmd);
+
+ for (i = 0; i < VectorsToSendMap[blockType]; i++) {
+ /* only send forward MVs in baseline */
+ MvAddr = (2 * 4 * Block8x8) + VectorOffsetMap[blockType][i];
+ Mv = (4 * Block8x8) + VectorOffsetMap[blockType][i];
+ psb_deblock_reg_table_set(MSVDX_CMDS, MOTION_VECTOR_ABOVE1, MvAddr, MotionVecCmd[Mv]);
+ }
+ }
+}
+
+void
+h264_currentInterBlockSequence(psb_cmdbuf_p cmdbuf, uint8_t * MbData)
+{
+ uint32_t i, BlockNum, Mv, MvAddr, Value;
+ uint32_t Block8x8, blockType;
+ uint32_t InterBlockCmd;
+ uint32_t MotionVecCmd[16];
+ uint32_t BlockType[4];
+ uint32_t DpbIdx[4];
+
+ /* set MV vars to 0 */
+ for (i = 0; i < 16; i++) {
+ MotionVecCmd[i] = 0;
+ }
+
+ /* read block size */
+ BlockType[0] = MEMIO_READ_FIELD(MbData, MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_ASO_BLOCK0_PREDICTION_SIZE);
+ BlockType[1] = MEMIO_READ_FIELD(MbData, MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_ASO_BLOCK1_PREDICTION_SIZE);
+ BlockType[2] = MEMIO_READ_FIELD(MbData, MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_ASO_BLOCK2_PREDICTION_SIZE);
+ BlockType[3] = MEMIO_READ_FIELD(MbData, MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_ASO_BLOCK3_PREDICTION_SIZE);
+
+ /* read motion vectors in all 16 4x4 sub-blocks*/
+ for (i = 1; i < 3; i++) { /* get blocks 11 and 14 */
+ Value = MEMIO_READ_TABLE_FIELD(MbData, MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_COMP_X_ABOVE, i);
+ REGIO_WRITE_FIELD(MotionVecCmd[CurrentAboveTileMap[i]], MSVDX_CMDS, MOTION_VECTOR, MV_X, Value);
+ Value = MEMIO_READ_TABLE_FIELD(MbData, MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_COMP_Y_ABOVE, i);
+ REGIO_WRITE_FIELD(MotionVecCmd[CurrentAboveTileMap[i]], MSVDX_CMDS, MOTION_VECTOR, MV_Y, Value);
+ }
+ for (i = 0; i < 14; i++) {
+ Value = MEMIO_READ_TABLE_FIELD(MbData, MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_COMP_X_COL, i);
+ REGIO_WRITE_FIELD(MotionVecCmd[CurrentColTileMap[i]], MSVDX_CMDS, MOTION_VECTOR, MV_X, Value);
+ Value = MEMIO_READ_TABLE_FIELD(MbData, MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_COMP_Y_COL, i);
+ REGIO_WRITE_FIELD(MotionVecCmd[CurrentColTileMap[i]], MSVDX_CMDS, MOTION_VECTOR, MV_Y, Value);
+ }
+
+ /* read DPB index for all 4 blocks */
+ for (i = 0; i < 4; i++) {
+ DpbIdx[ColBlockMap[i]] = MEMIO_READ_TABLE_FIELD(MbData, MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_DPB_IDX_COL, i);
+ }
+
+ /* Send commands required blocks */
+ for (BlockNum = 0;
+ BlockNum < BlocksToSendMap[BlockType[0]];
+ BlockNum++) {
+ /* block address */
+ Block8x8 = BlockAddressMap[BlockType[0]][BlockNum];
+ /* block type */
+ blockType = BlockType[Block8x8];
+
+ InterBlockCmd = 0;
+ REGIO_WRITE_FIELD(InterBlockCmd, MSVDX_CMDS, INTER_BLOCK_PREDICTION, INTER_PRED_BLOCK_SIZE, blockType);
+ REGIO_WRITE_FIELD(InterBlockCmd, MSVDX_CMDS, INTER_BLOCK_PREDICTION, REF_INDEX_A_VALID, 1);
+ REGIO_WRITE_FIELD(InterBlockCmd, MSVDX_CMDS, INTER_BLOCK_PREDICTION, REF_INDEX_A, DpbIdx[Block8x8]);
+
+ /* send commands */
+ h264_pollForSpaceForNCommands(1 + VectorsToSendMap[blockType]);
+ psb_deblock_reg_table_set(MSVDX_CMDS, INTER_BLOCK_PREDICTION, Block8x8, InterBlockCmd);
+
+ for (i = 0; i < VectorsToSendMap[blockType]; i++) {
+ /* only send forward MVs in baseline */
+ MvAddr = (2 * 4 * Block8x8) + VectorOffsetMap[blockType][i];
+ Mv = (4 * Block8x8) + VectorOffsetMap[blockType][i];
+ psb_deblock_reg_table_set(MSVDX_CMDS, MOTION_VECTOR, MvAddr, MotionVecCmd[Mv]);
+ }
+ }
+}
+
+void
+h264_currentIntraBlockPrediction(psb_cmdbuf_p cmdbuf, uint8_t * MbData, int bMbIsIPCM)
+{
+ uint32_t BlockSizeY, BlockSizeC;
+ uint32_t IntraCmdY, IntraCmdC;
+
+ /* select block size I_PCM or I_16x16 */
+ BlockSizeY = (1 == bMbIsIPCM) ? 3 : 0;
+ /* select block size I_PCM or I_8x8 */
+ BlockSizeC = (1 == bMbIsIPCM) ? 3 : 1;
+
+ IntraCmdY = IntraCmdC = 0;
+
+ REGIO_WRITE_FIELD(
+ IntraCmdY,
+ MSVDX_CMDS, INTRA_BLOCK_PREDICTION,
+ INTRA_PRED_BLOCK_SIZE,
+ BlockSizeY);
+ REGIO_WRITE_FIELD(
+ IntraCmdC,
+ MSVDX_CMDS, INTRA_BLOCK_PREDICTION,
+ INTRA_PRED_BLOCK_SIZE,
+ BlockSizeC);
+
+ h264_pollForSpaceForNCommands(2);
+ psb_deblock_reg_table_set(MSVDX_CMDS, INTRA_BLOCK_PREDICTION, 0, IntraCmdY);
+ psb_deblock_reg_table_set(MSVDX_CMDS, INTRA_BLOCK_PREDICTION, 4, IntraCmdC);
+}
+
+void
+h264_above1IntraBlockPrediction(psb_cmdbuf_p cmdbuf, uint8_t * MbData, int bMbIsIPCM)
+{
+ uint32_t BlockSizeY;
+ uint32_t IntraCmdY;
+
+ /* select block size I_PCM or I_16x16 */
+ BlockSizeY = (1 == bMbIsIPCM) ? 3 : 0;
+ IntraCmdY = 0;
+
+ REGIO_WRITE_FIELD(
+ IntraCmdY,
+ MSVDX_CMDS, INTRA_BLOCK_PREDICTION_ABOVE1,
+ INTRA_PRED_BLOCK_SIZE_ABOVE1,
+ BlockSizeY);
+
+ h264_pollForSpaceForNCommands(1);
+ psb_deblock_reg_table_set(MSVDX_CMDS, INTRA_BLOCK_PREDICTION_ABOVE1, 0, IntraCmdY);
+}
+
+void
+h264_macroblockCmdSequence(psb_cmdbuf_p cmdbuf, uint8_t * MbData, uint32_t X, uint32_t Y, int bCurrent)
+{
+ int bMbIsIPCM;
+ uint32_t MbType;
+ uint32_t Value;
+ uint32_t MbNumberCmd, MbQuantCmd, MbTransZeroCmd;
+
+ /* Macroblock Type */
+ MbType = MEMIO_READ_FIELD(MbData, MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_MBTYPE);
+
+ /* Macroblock Number */
+ /* no need for MB_ERROR_FLAG as error info is not stored */
+ /* no need for MB_FIELD_CODE as basline is always frame based */
+ MbNumberCmd = 0;
+
+ Value = (3 == MbType) ? 0 : MbType;
+ REGIO_WRITE_FIELD(MbNumberCmd, MSVDX_CMDS, MACROBLOCK_NUMBER, MB_CODE_TYPE, Value);
+
+ REGIO_WRITE_FIELD(MbNumberCmd, MSVDX_CMDS, MACROBLOCK_NUMBER, MB_NO_Y, Y);
+ REGIO_WRITE_FIELD(MbNumberCmd, MSVDX_CMDS, MACROBLOCK_NUMBER, MB_NO_X, X);
+
+ /* H264 Quant */
+ /* TRANSFORM_SIZE_8X8 always false in basline */
+ MbQuantCmd = 0;
+
+ Value = MEMIO_READ_FIELD(MbData, MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_QP_CR);
+ REGIO_WRITE_FIELD(MbQuantCmd, MSVDX_CMDS, MACROBLOCK_H264_QUANT, MB_QUANT_CHROMA_CR, Value);
+
+ Value = MEMIO_READ_FIELD(MbData, MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_QP_CB);
+ REGIO_WRITE_FIELD(MbQuantCmd, MSVDX_CMDS, MACROBLOCK_H264_QUANT, MB_QUANT_CHROMA_CB, Value);
+
+ Value = MEMIO_READ_FIELD(MbData, MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_QP);
+ REGIO_WRITE_FIELD(MbQuantCmd, MSVDX_CMDS, MACROBLOCK_H264_QUANT, MB_QUANT_LUMA, Value);
+
+ /* send 2 commands */
+ h264_pollForSpaceForNCommands(2);
+ if (1 == bCurrent) {
+ /* Top and Left available flags are only sent for current MB */
+ Value = MEMIO_READ_FIELD(MbData, MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_MB_AVAILABLE_TOP_FLAG);
+ Value = (1 == Value) ? 0 : 1;
+ REGIO_WRITE_FIELD(MbNumberCmd, MSVDX_CMDS, MACROBLOCK_NUMBER, MB_SLICE_TOP, Value);
+
+ Value = MEMIO_READ_FIELD(MbData, MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_MB_AVAILABLE_LEFT_FLAG);
+ Value = (1 == Value) ? 0 : 1;
+ REGIO_WRITE_FIELD(MbNumberCmd, MSVDX_CMDS, MACROBLOCK_NUMBER, MB_SLICE_LHS, Value);
+
+ psb_deblock_reg_set(MSVDX_CMDS, MACROBLOCK_NUMBER, MbNumberCmd);
+ psb_deblock_reg_set(MSVDX_CMDS, MACROBLOCK_H264_QUANT, MbQuantCmd);
+ } else {
+ psb_deblock_reg_set(MSVDX_CMDS, MACROBLOCK_NUMBER_ABOVE1, MbNumberCmd);
+ psb_deblock_reg_set(MSVDX_CMDS, MACROBLOCK_H264_QUANT_ABOVE1, MbQuantCmd);
+ }
+
+ /* Prediction Block Sequence */
+ bMbIsIPCM = 0;
+ switch (MbType) {
+ case 3: /* IPCM */
+ bMbIsIPCM = 1;
+ /* deliberate drop through */
+ case 0: /* I */
+ if (1 == bCurrent) {
+ h264_currentIntraBlockPrediction(cmdbuf, MbData, bMbIsIPCM);
+ } else {
+ h264_above1IntraBlockPrediction(cmdbuf, MbData, bMbIsIPCM);
+ }
+ break;
+ case 1: /* P */
+ if (1 == bCurrent) {
+ h264_currentInterBlockSequence(cmdbuf, MbData);
+ } else {
+ h264_above1InterBlockSequence(cmdbuf, MbData);
+ }
+ break;
+ case 2: /* B */
+ default:
+ /* invalid MB type */
+ //IMG_ASSERT( 0 );
+ break;
+ }
+
+ /* Trasform Zero */
+ MbTransZeroCmd = 0;
+ Value = MEMIO_READ_FIELD(MbData, MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_ASO_MB_TRANSFORM_ZERO);
+ REGIO_WRITE_FIELD(MbTransZeroCmd, MSVDX_CMDS, MACROBLOCK_BLOCK_TRANSFORM_ZERO, MB_BLOCK_TRANSFORM_ZERO, Value);
+
+ /* write last command */
+ h264_pollForSpaceForNCommands(1);
+ if (1 == bCurrent) {
+ psb_deblock_reg_set(MSVDX_CMDS, MACROBLOCK_BLOCK_TRANSFORM_ZERO, MbTransZeroCmd);
+ } else {
+ MbTransZeroCmd &= 0x0000CC00; /* only send for sub-blocks 10,11,14 and 15 */
+ psb_deblock_reg_set(MSVDX_CMDS, MACROBLOCK_BLOCK_TRANSFORM_ZERO_ABOVE1, MbTransZeroCmd);
+ }
+}
+
+uint32_t
+h264_getCurrentSliceCmd(uint8_t* MbData)
+{
+ uint32_t Value, Cmd;
+
+ Cmd = 0;
+
+ /* unpack data from stored MB + repack in command */
+ Value = MEMIO_READ_FIELD(MbData, MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_COPY_DISABLE_DEBLOCK_FILTER_IDC);
+ REGIO_WRITE_FIELD(Cmd, MSVDX_CMDS, SLICE_PARAMS, DISABLE_DEBLOCK_FILTER_IDC, Value);
+
+ Value = MEMIO_READ_FIELD(MbData, MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_COPY_H264_BE_SLICE0_ALPHA_CO_OFFSET_DIV2);
+ REGIO_WRITE_FIELD(Cmd, MSVDX_CMDS, SLICE_PARAMS, SLICE_ALPHA_CO_OFFSET_DIV2, Value);
+
+ Value = MEMIO_READ_FIELD(MbData, MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_COPY_H264_BE_SLICE0_BETA_OFFSET_DIV2);
+ REGIO_WRITE_FIELD(Cmd, MSVDX_CMDS, SLICE_PARAMS, SLICE_BETA_OFFSET_DIV2, Value);
+
+ Value = MEMIO_READ_FIELD(MbData, MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_COPY_H264_BE_SLICE0_FIELD_TYPE);
+ REGIO_WRITE_FIELD(Cmd, MSVDX_CMDS, SLICE_PARAMS, SLICE_FIELD_TYPE, Value);
+
+ Value = MEMIO_READ_FIELD(MbData, MSVDX_VEC_ENTDEC_VLRIF_H264_MB_UNIT_COPY_H264_BE_SLICE0_CODE_TYPE);
+ REGIO_WRITE_FIELD(Cmd, MSVDX_CMDS, SLICE_PARAMS, SLICE_CODE_TYPE, Value);
+
+ return Cmd;
+}
+
+int h264_secondPass(
+ psb_cmdbuf_p cmdbuf,
+ uint8_t * MbData,
+ uint32_t OperatingModeCmd,
+ uint32_t Width,
+ uint32_t Height
+)
+{
+ uint32_t i, PicSize;
+ uint32_t EndOfPictureCmd;
+ uint32_t EndOfSliceCmd;
+ uint32_t SliceCmd, OldSliceCmd;
+ uint32_t EnableReg;
+ uint8_t * CurrMb;
+ uint8_t * Above1Mb;
+ int bRetCode = 0;
+
+ PicSize = Width * Height;
+
+ /* End of Slice command */
+ EndOfSliceCmd = 0;
+ REGIO_WRITE_FIELD(EndOfSliceCmd, MSVDX_CMDS, END_SLICE_PICTURE, PICTURE_END, 0);
+
+
+ /* put vdeb into second pass mode */
+ /* send operating mode command for VDEB only */
+ REGIO_WRITE_FIELD(OperatingModeCmd, MSVDX_CMDS, OPERATING_MODE, ASYNC_MODE, 2); /* VDEB only */
+ h264_pollForSpaceForNCommands(1);
+ psb_deblock_reg_get(MSVDX_CORE, CR_MSVDX_COMMAND_SPACE);
+ psb_deblock_reg_set(MSVDX_CMDS, OPERATING_MODE, OperatingModeCmd);
+
+ PollForSpaceForXCommands;
+
+ /* Send Slice Command */
+ SliceCmd = h264_getCurrentSliceCmd(MbData);
+ h264_pollForSpaceForNCommands(2);
+ psb_deblock_reg_set(MSVDX_CMDS, SLICE_PARAMS, SliceCmd);
+ psb_deblock_reg_set(MSVDX_CMDS, SLICE_PARAMS_ABOVE1, SliceCmd);
+ /* process top row */
+ for (i = 0, CurrMb = MbData;
+ i < Width;
+ i++, CurrMb += H264_MACROBLOCK_DATA_SIZE) {
+ OldSliceCmd = SliceCmd;
+ SliceCmd = h264_getCurrentSliceCmd(CurrMb);
+ if (OldSliceCmd != SliceCmd) {
+ h264_pollForSpaceForNCommands(2);
+ psb_deblock_reg_set(MSVDX_CMDS, END_SLICE_PICTURE, EndOfSliceCmd);
+ psb_deblock_reg_set(MSVDX_CMDS, SLICE_PARAMS, SliceCmd);
+ }
+
+ h264_macroblockCmdSequence(cmdbuf, CurrMb, i, 0, 1);
+ }
+
+ /* process rest of picture */
+ for (Above1Mb = MbData;
+ i < PicSize;
+ i++, CurrMb += H264_MACROBLOCK_DATA_SIZE, Above1Mb += H264_MACROBLOCK_DATA_SIZE) {
+ OldSliceCmd = SliceCmd;
+ SliceCmd = h264_getCurrentSliceCmd(CurrMb);
+ if (OldSliceCmd != SliceCmd) {
+ h264_pollForSpaceForNCommands(2);
+ psb_deblock_reg_set(MSVDX_CMDS, END_SLICE_PICTURE, EndOfSliceCmd);
+ psb_deblock_reg_set(MSVDX_CMDS, SLICE_PARAMS, SliceCmd);
+ }
+
+ h264_macroblockCmdSequence(cmdbuf, Above1Mb, (i % Width), (i / Width) - 1, 0);
+ h264_macroblockCmdSequence(cmdbuf, CurrMb, (i % Width), (i / Width), 1);
+ }
+
+ /* send end of pic + restart back end */
+ EndOfPictureCmd = 0;
+ EnableReg = 0;
+ REGIO_WRITE_FIELD(EndOfPictureCmd, MSVDX_CMDS, END_SLICE_PICTURE, PICTURE_END, 1);
+ REGIO_WRITE_FIELD(EnableReg, MSVDX_VEC, CR_VEC_CONTROL, ENTDEC_ENABLE_BE, 1);
+
+ h264_pollForSpaceForNCommands(2);
+ psb_deblock_reg_set(MSVDX_CMDS, END_SLICE_PICTURE, EndOfSliceCmd);
+ psb_deblock_reg_set(MSVDX_CMDS, END_SLICE_PICTURE, EndOfPictureCmd);
+ //psb_deblock_reg_set( MSVDX_VEC, CR_VEC_CONTROL, EnableReg); /* this is not a command */
+ return bRetCode;
+}
+
+int psb_cmdbuf_second_pass(object_context_p obj_context,
+ uint32_t OperatingModeCmd,
+ void * pvParamBase,
+ uint32_t PicWidthInMbs,
+ uint32_t FrameHeightInMbs,
+ psb_buffer_p target_buffer,
+ uint32_t chroma_offset
+ )
+{
+ int bRetVal = 1;
+ uint32_t Cmd, item_loc;
+ uint32_t *cmd_size;
+ psb_cmdbuf_p cmdbuf = obj_context->cmdbuf;
+
+ if (psb_buffer_map(&cmdbuf->regio_buf, &cmdbuf->regio_base)) {
+ //printf("map cmdbuf->regio_buf error\n");
+ return bRetVal;
+ }
+
+ item_loc = psb_cmdbuf_buffer_ref(cmdbuf, &cmdbuf->regio_buf);
+
+ cmdbuf->regio_idx = cmdbuf->regio_base;
+ cmd_size = cmdbuf->regio_idx++;
+
+ h264_pollForSpaceForNCommands(4);
+
+ psb_deblock_reg_set_RELOC(MSVDX_CMDS, LUMA_RECONSTRUCTED_PICTURE_BASE_ADDRESSES, target_buffer, target_buffer->buffer_ofs, item_loc);
+ psb_deblock_reg_set_RELOC(MSVDX_CMDS, CHROMA_RECONSTRUCTED_PICTURE_BASE_ADDRESSES, target_buffer, target_buffer->buffer_ofs + chroma_offset, item_loc);
+
+ Cmd = 0;
+ REGIO_WRITE_FIELD_LITE(Cmd, MSVDX_CMDS, DISPLAY_PICTURE_SIZE, DISPLAY_PICTURE_HEIGHT, (FrameHeightInMbs * 16) - 1);
+ REGIO_WRITE_FIELD_LITE(Cmd, MSVDX_CMDS, DISPLAY_PICTURE_SIZE, DISPLAY_PICTURE_WIDTH, (PicWidthInMbs * 16) - 1);
+ psb_deblock_reg_set(MSVDX_CMDS, DISPLAY_PICTURE_SIZE, Cmd);
+
+
+ Cmd = 0;
+ REGIO_WRITE_FIELD_LITE(Cmd, MSVDX_CMDS, CODED_PICTURE_SIZE, CODED_PICTURE_HEIGHT, (FrameHeightInMbs * 16) - 1);
+ REGIO_WRITE_FIELD_LITE(Cmd, MSVDX_CMDS, CODED_PICTURE_SIZE, CODED_PICTURE_WIDTH, (PicWidthInMbs * 16) - 1);
+ psb_deblock_reg_set(MSVDX_CMDS, CODED_PICTURE_SIZE, Cmd);
+
+ /* BRN25312 */
+ psb_deblock_reg_set(MSVDX_CMDS, VC1_LUMA_RANGE_MAPPING_BASE_ADDRESS, 0);
+ psb_deblock_reg_set(MSVDX_CMDS, VC1_CHROMA_RANGE_MAPPING_BASE_ADDRESS, 0);
+ psb_deblock_reg_set(MSVDX_CMDS, VC1_RANGE_MAPPING_FLAGS, 0);
+
+ /* process second pass */
+ bRetVal = h264_secondPass(cmdbuf,
+ (uint8_t*)pvParamBase,
+ OperatingModeCmd,
+ PicWidthInMbs,
+ FrameHeightInMbs);
+
+ *cmd_size = (cmdbuf->regio_idx - (uint32_t *)cmdbuf->regio_base - 1);
+
+ psb__information_message("DEBLOCK: REGIO size is %d\n", (uint32_t)(cmdbuf->regio_idx - (uint32_t *)cmdbuf->regio_base) - 1);
+ //printf("DEBLOCK: REGIO size is %d\n", (uint32_t)(cmdbuf->regio_idx - (uint32_t *)cmdbuf->regio_base) - 1);
+ psb_buffer_unmap(&cmdbuf->regio_buf);
+ return bRetVal;
+}
diff --git a/src/psb_def.h b/src/psb_def.h
new file mode 100644
index 0000000..e1b3d97
--- /dev/null
+++ b/src/psb_def.h
@@ -0,0 +1,82 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ * Waldo Bastian <waldo.bastian@intel.com>
+ *
+ */
+
+#ifndef _PSB_DEF_H_
+#define _PSB_DEF_H_
+
+#include <assert.h>
+#include <string.h>
+
+/* #define VA_EMULATOR 1 */
+
+/* #define DEBUG_TRACE */
+/* #define DEBUG_TRACE_VERBOSE */
+
+
+#ifdef DEBUG_TRACE
+
+#ifndef ASSERT
+#define ASSERT assert
+#endif
+
+#ifndef IMG_ASSERT
+#define IMG_ASSERT assert
+#endif
+
+#else /* DEBUG_TRACE */
+
+#undef ASSERT
+#undef IMG_ASSERT
+
+#define ASSERT(x)
+#define IMG_ASSERT(x)
+
+#endif /* DEBUG_TRACE */
+
+#ifndef FALSE
+#define FALSE 0
+#endif
+
+#ifndef TRUE
+#define TRUE 1
+#endif
+
+
+void psb__error_message(const char *msg, ...);
+void psb__information_message(const char *msg, ...);
+void psb__trace_message(const char *msg, ...);
+
+
+#define DEBUG_FAILURE while(vaStatus) {psb__information_message("%s fails with '%d' at %s:%d\n", __FUNCTION__, vaStatus, __FILE__, __LINE__);break;}
+#define DEBUG_FAILURE_RET while(ret) {psb__information_message("%s fails with '%s' at %s:%d\n", __FUNCTION__, strerror(ret < 0 ? -ret : ret), __FILE__, __LINE__);break;}
+
+
+#ifndef VA_FOURCC_YV16
+#define VA_FOURCC_YV16 0x36315659
+#endif
+#endif /* _PSB_DEF_H_ */
diff --git a/src/psb_drv_video.c b/src/psb_drv_video.c
new file mode 100644
index 0000000..5ea21e2
--- /dev/null
+++ b/src/psb_drv_video.c
@@ -0,0 +1,3389 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ * Waldo Bastian <waldo.bastian@intel.com>
+ *
+ */
+
+#include <va/va_backend.h>
+#include <va/va_backend_tpi.h>
+#include <va/va_backend_egl.h>
+#include <va/va_dricommon.h>
+
+#include "psb_drv_video.h"
+#include "psb_cmdbuf.h"
+#include "lnc_cmdbuf.h"
+#include "pnw_cmdbuf.h"
+#include "psb_surface.h"
+#include "psb_MPEG2.h"
+#include "psb_MPEG4.h"
+#include "psb_H264.h"
+#include "psb_VC1.h"
+#include "pnw_MPEG2.h"
+#include "pnw_MPEG4.h"
+#include "pnw_H264.h"
+#include "pnw_VC1.h"
+#include "lnc_MPEG4ES.h"
+#include "lnc_H264ES.h"
+#include "lnc_H263ES.h"
+#include "pnw_MPEG4ES.h"
+#include "pnw_H264ES.h"
+#include "pnw_H263ES.h"
+#include "pnw_jpeg.h"
+#include "psb_output.h"
+#include "lnc_ospm.h"
+#include "psb_texstreaming.h"
+#include <stdio.h>
+#include <string.h>
+#include <stdarg.h>
+#include <time.h>
+#include <unistd.h>
+#include <wsbm/wsbm_pool.h>
+#include <wsbm/wsbm_manager.h>
+#include <wsbm/wsbm_util.h>
+#include <wsbm/wsbm_fencemgr.h>
+#include <linux/videodev2.h>
+#include <sys/mman.h>
+
+#include "psb_def.h"
+#include "psb_ws_driver.h"
+#include "ci_va.h"
+
+#ifndef PSB_PACKAGE_VERSION
+#define PSB_PACKAGE_VERSION "Undefined"
+#endif
+
+#define PSB_DRV_VERSION PSB_PACKAGE_VERSION
+#define PSB_CHG_REVISION "(0X0000005E)"
+
+#define PSB_STR_VENDOR_MRST "Intel GMA500-MRST-" PSB_DRV_VERSION " " PSB_CHG_REVISION
+#define PSB_STR_VENDOR_MFLD "Intel GMA500-MFLD-" PSB_DRV_VERSION " " PSB_CHG_REVISION
+
+#define MAX_UNUSED_BUFFERS 16
+
+#define PSB_MAX_FLIP_DELAY (1000/30/10)
+
+#ifdef DEBUG_TRACE
+#include <signal.h>
+#endif
+
+#define EXPORT __attribute__ ((visibility("default")))
+
+#define INIT_DRIVER_DATA psb_driver_data_p driver_data = (psb_driver_data_p) ctx->pDriverData;
+#define INIT_FORMAT_VTABLE format_vtable_p format_vtable = ((profile < PSB_MAX_PROFILES) && (entrypoint < PSB_MAX_ENTRYPOINTS)) ? driver_data->profile2Format[profile][entrypoint] : NULL;
+
+#define CONFIG(id) ((object_config_p) object_heap_lookup( &driver_data->config_heap, id ))
+#define CONTEXT(id) ((object_context_p) object_heap_lookup( &driver_data->context_heap, id ))
+#define SURFACE(id) ((object_surface_p) object_heap_lookup( &driver_data->surface_heap, id ))
+#define BUFFER(id) ((object_buffer_p) object_heap_lookup( &driver_data->buffer_heap, id ))
+
+#define CONFIG_ID_OFFSET 0x01000000
+#define CONTEXT_ID_OFFSET 0x02000000
+#define SURFACE_ID_OFFSET 0x03000000
+#define BUFFER_ID_OFFSET 0x04000000
+#define IMAGE_ID_OFFSET 0x05000000
+#define SUBPIC_ID_OFFSET 0x06000000
+
+static int psb_get_device_info(VADriverContextP ctx);
+
+/*
+ * read a config "env" for libva.conf or from environment setting
+ * liva.conf has higher priority
+ * return 0: the "env" is set, and the value is copied into env_value
+ * 1: the env is not set
+ */
+int psb_parse_config(char *env, char *env_value)
+{
+ char *token, *value, *saveptr;
+ char oneline[1024];
+ FILE *fp = NULL;
+ char *env_ptr;
+
+ if (env_value == NULL)
+ return 1;
+
+ fp = fopen("/etc/psbvideo.conf", "r");
+ while (fp && (fgets(oneline, 1024, fp) != NULL)) {
+ if (strlen(oneline) == 1)
+ continue;
+ token = strtok_r(oneline, "=\n", &saveptr);
+ value = strtok_r(NULL, "=\n", &saveptr);
+
+ if (NULL == token || NULL == value)
+ continue;
+
+ if (strcmp(token, env) == 0) {
+ if (env_value)
+ strcpy(env_value, value);
+
+ fclose(fp);
+
+ return 0;
+ }
+ }
+ if (fp)
+ fclose(fp);
+
+ env_ptr = getenv(env);
+ if (env_ptr) {
+ if (env_value)
+ strncpy(env_value, env_ptr, strlen(env_ptr));
+
+ return 0;
+ }
+
+ return 1;
+}
+
+static FILE *psb_video_debug_fp = NULL;
+
+static void psb__open_log(void)
+{
+ char log_fn[1024];
+
+ if (psb_parse_config("PSB_VIDEO_DEBUG", &log_fn[0]) == 0) {
+ unsigned int suffix = 0xffff & ((unsigned int)time(NULL));
+ if (strcmp(log_fn, "/dev/stdout") != 0)
+ sprintf(log_fn + strlen(log_fn), ".%d", suffix);
+ psb_video_debug_fp = fopen(log_fn, "w");
+ }
+}
+
+static void psb__close_log(void)
+{
+ if (psb_video_debug_fp != NULL)
+ fclose(psb_video_debug_fp);
+}
+
+void psb__error_message(const char *msg, ...)
+{
+ va_list args;
+ FILE *fp;
+
+ if (psb_video_debug_fp == NULL) /* not set the debug */
+ fp = stderr;
+ else
+ fp = psb_video_debug_fp;
+
+ fprintf(fp, "[0x%08lx]psb_drv_video error(%d:0x%08lx) ",
+ GetTickCount(), getpid(), pthread_self());
+ va_start(args, msg);
+ vfprintf(fp, msg, args);
+ va_end(args);
+
+ fflush(fp);
+ fsync(fileno(fp));
+}
+
+void psb__information_message(const char *msg, ...)
+{
+ if (psb_video_debug_fp) {
+ va_list args;
+
+ fprintf(psb_video_debug_fp, "[0x%08lx]psb_drv_video(%d:0x%08lx) ",
+ GetTickCount(), getpid(), pthread_self());
+ va_start(args, msg);
+ vfprintf(psb_video_debug_fp, msg, args);
+ va_end(args);
+ fflush(psb_video_debug_fp);
+ fsync(fileno(psb_video_debug_fp));
+ }
+}
+
+static int Angle2Rotation(int angle)
+{
+ angle %= 360;
+ switch (angle) {
+ case 0:
+ return VA_ROTATION_NONE;
+ case 90:
+ return VA_ROTATION_90;
+ case 180:
+ return VA_ROTATION_180;
+ case 270:
+ return VA_ROTATION_270;
+ default:
+ return -1;
+ }
+}
+
+static int Rotation2Angle(int rotation)
+{
+ switch (rotation) {
+ case VA_ROTATION_NONE:
+ return 0;
+ case VA_ROTATION_90:
+ return 90;
+ case VA_ROTATION_180:
+ return 180;
+ case VA_ROTATION_270:
+ return 270;
+ default:
+ return -1;
+ }
+}
+
+#ifdef DEBUG_TRACE
+void psb__trace_message(const char *msg, ...)
+{
+ va_list args;
+ static const char *trace_file = 0;
+ static FILE *trace = 0;
+
+ if (!trace_file) {
+ char trace_fn[1024];
+
+ if (psb_parse_config("PSB_VIDEO_TRACE", &trace_fn[0]) == 0)
+ trace_file = trace_fn;
+
+ if (getenv("PSB_VIDEO_TRACE"))
+ trace_file = getenv("PSB_VIDEO_TRACE");
+
+ if (trace_file) {
+ trace = fopen(trace_file, "w");
+ if (trace) {
+ time_t curtime;
+ time(&curtime);
+ fprintf(trace, "---- %s\n---- Start Trace ----\n", ctime(&curtime));
+ }
+ } else {
+ trace_file = "none";
+ }
+ }
+ if (trace) {
+ if (msg) {
+ va_start(args, msg);
+ vfprintf(trace, msg, args);
+ va_end(args);
+ } else {
+ fflush(trace);
+ }
+ }
+}
+#endif
+
+VAStatus psb_QueryConfigProfiles(
+ VADriverContextP ctx,
+ VAProfile *profile_list, /* out */
+ int *num_profiles /* out */
+)
+{
+ (void) ctx; /* unused */
+ int i = 0;
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ INIT_DRIVER_DATA
+
+ if (NULL == profile_list) {
+ vaStatus = VA_STATUS_ERROR_INVALID_PARAMETER;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+ if (NULL == num_profiles) {
+ vaStatus = VA_STATUS_ERROR_INVALID_PARAMETER;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+// profile_list[i++] = VAProfileMPEG2Simple;
+ profile_list[i++] = VAProfileMPEG2Main;
+ profile_list[i++] = VAProfileMPEG4Simple;
+ profile_list[i++] = VAProfileMPEG4AdvancedSimple;
+// profile_list[i++] = VAProfileMPEG4Main;
+ profile_list[i++] = VAProfileH264Baseline;
+ profile_list[i++] = VAProfileH264Main;
+ profile_list[i++] = VAProfileH264High;
+ profile_list[i++] = VAProfileVC1Simple;
+ profile_list[i++] = VAProfileVC1Main;
+ profile_list[i++] = VAProfileVC1Advanced;
+
+ if (IS_MFLD(driver_data)) {
+ profile_list[i++] = VAProfileH263Baseline;
+ profile_list[i++] = VAProfileJPEGBaseline;
+ } else if (IS_MRST(driver_data))
+ profile_list[i++] = VAProfileH263Baseline;
+ profile_list[i++] = VAProfileH264ConstrainedBaseline;
+
+ /* If the assert fails then PSB_MAX_PROFILES needs to be bigger */
+ ASSERT(i <= PSB_MAX_PROFILES);
+ *num_profiles = i;
+
+ return VA_STATUS_SUCCESS;
+}
+
+
+VAStatus psb_QueryConfigEntrypoints(
+ VADriverContextP ctx,
+ VAProfile profile,
+ VAEntrypoint *entrypoint_list, /* out */
+ int *num_entrypoints /* out */
+)
+{
+ INIT_DRIVER_DATA
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ format_vtable_p * format_vtable = ((profile < PSB_MAX_PROFILES)) ? driver_data->profile2Format[profile] : NULL;
+ int entrypoints = 0;
+
+ if (NULL == entrypoint_list) {
+ vaStatus = VA_STATUS_ERROR_INVALID_PARAMETER;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+ if (NULL == num_entrypoints) {
+ vaStatus = VA_STATUS_ERROR_INVALID_PARAMETER;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+ if (format_vtable)
+
+ {
+ int i;
+
+ for (i = 0; i < PSB_MAX_ENTRYPOINTS; i++) {
+ if (format_vtable[i]) {
+ entrypoints++;
+ *entrypoint_list++ = i;
+ }
+ }
+ }
+
+ /* If the assert fails then PSB_MAX_ENTRYPOINTS needs to be bigger */
+ ASSERT(entrypoints <= PSB_MAX_ENTRYPOINTS);
+
+ if (0 == entrypoints) {
+ return VA_STATUS_ERROR_UNSUPPORTED_PROFILE;
+ }
+
+ *num_entrypoints = entrypoints;
+ return VA_STATUS_SUCCESS;
+}
+
+/*
+ * Figure out if we should return VA_STATUS_ERROR_UNSUPPORTED_PROFILE
+ * or VA_STATUS_ERROR_UNSUPPORTED_ENTRYPOINT
+ */
+static VAStatus psb__error_unsupported_profile_entrypoint(psb_driver_data_p driver_data, VAProfile profile, VAEntrypoint entrypoint)
+{
+ format_vtable_p * format_vtable = ((profile < PSB_MAX_PROFILES)) ? driver_data->profile2Format[profile] : NULL;
+
+ /* Does the driver support _any_ entrypoint for this profile? */
+ if (format_vtable) {
+ int i;
+
+ for (i = 0; i < PSB_MAX_ENTRYPOINTS; i++) {
+ if (format_vtable[i]) {
+ /* There is an entrypoint, so the profile is supported */
+ return VA_STATUS_ERROR_UNSUPPORTED_ENTRYPOINT;
+ }
+ }
+ }
+ return VA_STATUS_ERROR_UNSUPPORTED_PROFILE;
+}
+
+VAStatus psb_GetConfigAttributes(
+ VADriverContextP ctx,
+ VAProfile profile,
+ VAEntrypoint entrypoint,
+ VAConfigAttrib *attrib_list, /* in/out */
+ int num_attribs
+)
+{
+ INIT_DRIVER_DATA
+ INIT_FORMAT_VTABLE
+ int i;
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ if (NULL == format_vtable) {
+ return psb__error_unsupported_profile_entrypoint(driver_data, profile, entrypoint);
+ }
+ if (NULL == attrib_list) {
+ vaStatus = VA_STATUS_ERROR_INVALID_PARAMETER;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+ if (num_attribs <= 0) {
+ return VA_STATUS_ERROR_INVALID_PARAMETER;
+ }
+
+ /* Generic attributes */
+ for (i = 0; i < num_attribs; i++) {
+ switch (attrib_list[i].type) {
+ case VAConfigAttribRTFormat:
+ attrib_list[i].value = VA_RT_FORMAT_YUV420;
+ if (entrypoint == VAEntrypointEncPicture)
+ attrib_list[i].value |= VA_RT_FORMAT_YUV422;
+ break;
+
+ default:
+ attrib_list[i].value = VA_ATTRIB_NOT_SUPPORTED;
+ break;
+ }
+ }
+ /* format specific attributes */
+ format_vtable->queryConfigAttributes(profile, entrypoint, attrib_list, num_attribs);
+
+ return VA_STATUS_SUCCESS;
+}
+
+static VAStatus psb__update_attribute(object_config_p obj_config, VAConfigAttrib *attrib)
+{
+ int i;
+ /* Check existing attributes */
+ for (i = 0; i < obj_config->attrib_count; i++) {
+ if (obj_config->attrib_list[i].type == attrib->type) {
+ /* Update existing attribute */
+ obj_config->attrib_list[i].value = attrib->value;
+ return VA_STATUS_SUCCESS;
+ }
+ }
+ if (obj_config->attrib_count < PSB_MAX_CONFIG_ATTRIBUTES) {
+ i = obj_config->attrib_count;
+ obj_config->attrib_list[i].type = attrib->type;
+ obj_config->attrib_list[i].value = attrib->value;
+ obj_config->attrib_count++;
+ return VA_STATUS_SUCCESS;
+ }
+ return VA_STATUS_ERROR_MAX_NUM_EXCEEDED;
+}
+
+static VAStatus psb__validate_config(object_config_p obj_config)
+{
+ int i;
+ /* Check all attributes */
+ for (i = 0; i < obj_config->attrib_count; i++) {
+ switch (obj_config->attrib_list[i].type) {
+ case VAConfigAttribRTFormat:
+ if (!(obj_config->attrib_list[i].value == VA_RT_FORMAT_YUV420
+ || (obj_config->attrib_list[i].value == VA_RT_FORMAT_YUV422 &&
+ obj_config->entrypoint == VAEntrypointEncPicture))) {
+ return VA_STATUS_ERROR_UNSUPPORTED_RT_FORMAT;
+ }
+ break;
+
+ default:
+ /*
+ * Ignore unknown attributes here, it
+ * may be format specific.
+ */
+ break;
+ }
+ }
+ return VA_STATUS_SUCCESS;
+}
+
+VAStatus psb_CreateConfig(
+ VADriverContextP ctx,
+ VAProfile profile,
+ VAEntrypoint entrypoint,
+ VAConfigAttrib *attrib_list,
+ int num_attribs,
+ VAConfigID *config_id /* out */
+)
+{
+ INIT_DRIVER_DATA
+ INIT_FORMAT_VTABLE
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ int configID;
+ object_config_p obj_config;
+ int i;
+
+ /*echo 8 > /sys/module/pvrsrvkm/parameters/no_ec will disable error concealment*/
+ if ((profile == VAProfileH264ConstrainedBaseline) && (VAEntrypointVLD == entrypoint)) {
+ char ec_disable[2];
+ FILE *ec_fp = fopen("/sys/module/pvrsrvkm/parameters/no_ec", "r");
+ if (ec_fp) {
+ if (fgets(ec_disable, 2, ec_fp) != NULL) {
+ /* force profile to VAProfileH264High */
+ if (strcmp(ec_disable, "8") == 0) {
+ psb__information_message("disabled error concealment by setting profile to VAProfileH264High\n");
+ profile = VAProfileH264High;
+ }
+ }
+ fclose(ec_fp);
+ }
+ }
+
+ if (num_attribs < 0) {
+ vaStatus = VA_STATUS_ERROR_INVALID_PARAMETER;
+ }
+
+ if (NULL == format_vtable) {
+ vaStatus = psb__error_unsupported_profile_entrypoint(driver_data, profile, entrypoint);
+ }
+
+ if (VA_STATUS_SUCCESS != vaStatus) {
+ return vaStatus;
+ }
+
+ configID = object_heap_allocate(&driver_data->config_heap);
+ obj_config = CONFIG(configID);
+ if (NULL == obj_config) {
+ vaStatus = VA_STATUS_ERROR_ALLOCATION_FAILED;
+ return vaStatus;
+ }
+ MEMSET_OBJECT(obj_config, struct object_config_s);
+
+ obj_config->profile = profile;
+ obj_config->format_vtable = format_vtable;
+ obj_config->entrypoint = entrypoint;
+ obj_config->attrib_list[0].type = VAConfigAttribRTFormat;
+ obj_config->attrib_list[0].value = VA_RT_FORMAT_YUV420;
+ obj_config->attrib_count = 1;
+
+ for (i = 0; i < num_attribs; i++) {
+ if (attrib_list[i].type < VAConfigAttribRTFormat || attrib_list[i].type > VAConfigAttribRateControl)
+ return VA_STATUS_ERROR_ATTR_NOT_SUPPORTED;
+
+ vaStatus = psb__update_attribute(obj_config, &(attrib_list[i]));
+ if (VA_STATUS_SUCCESS != vaStatus) {
+ break;
+ }
+ }
+
+ if (VA_STATUS_SUCCESS == vaStatus) {
+ vaStatus = psb__validate_config(obj_config);
+ }
+
+ if (VA_STATUS_SUCCESS == vaStatus) {
+ vaStatus = format_vtable->validateConfig(obj_config);
+ }
+
+ /* Error recovery */
+ if (VA_STATUS_SUCCESS != vaStatus) {
+ object_heap_free(&driver_data->config_heap, (object_base_p) obj_config);
+ } else {
+ *config_id = configID;
+ }
+
+ /* only VAProfileH264ConstrainedBaseline profile enable error concealment*/
+ if ((getenv("PSB_VIDEO_NOEC") == NULL) && (profile == VAProfileH264ConstrainedBaseline)) {
+ psb__information_message("profile is VAProfileH264ConstrainedBaseline, error concealment is enabled. \n");
+ driver_data->ec_enabled = 1;
+ } else {
+ driver_data->ec_enabled = 0;
+ }
+ return vaStatus;
+}
+
+VAStatus psb_DestroyConfig(
+ VADriverContextP ctx,
+ VAConfigID config_id
+)
+{
+ INIT_DRIVER_DATA
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ object_config_p obj_config;
+
+ obj_config = CONFIG(config_id);
+ if (NULL == obj_config) {
+ vaStatus = VA_STATUS_ERROR_INVALID_CONFIG;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ object_heap_free(&driver_data->config_heap, (object_base_p) obj_config);
+ return vaStatus;
+}
+
+VAStatus psb_QueryConfigAttributes(
+ VADriverContextP ctx,
+ VAConfigID config_id,
+ VAProfile *profile, /* out */
+ VAEntrypoint *entrypoint, /* out */
+ VAConfigAttrib *attrib_list, /* out */
+ int *num_attribs /* out */
+)
+{
+ INIT_DRIVER_DATA
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ object_config_p obj_config;
+ int i;
+
+ if (NULL == profile) {
+ vaStatus = VA_STATUS_ERROR_INVALID_PARAMETER;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+ if (NULL == entrypoint) {
+ vaStatus = VA_STATUS_ERROR_INVALID_PARAMETER;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+ if (NULL == attrib_list) {
+ vaStatus = VA_STATUS_ERROR_INVALID_PARAMETER;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+ if (NULL == num_attribs) {
+ vaStatus = VA_STATUS_ERROR_INVALID_PARAMETER;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+ obj_config = CONFIG(config_id);
+ if (NULL == obj_config) {
+ vaStatus = VA_STATUS_ERROR_INVALID_CONFIG;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ *profile = obj_config->profile;
+ *entrypoint = obj_config->entrypoint;
+ *num_attribs = obj_config->attrib_count;
+ for (i = 0; i < obj_config->attrib_count; i++) {
+ attrib_list[i] = obj_config->attrib_list[i];
+ }
+
+ return vaStatus;
+}
+
+static void psb__destroy_surface(psb_driver_data_p driver_data, object_surface_p obj_surface)
+{
+ if (NULL != obj_surface) {
+ /* delete subpicture association */
+ psb_SurfaceDeassociateSubpict(driver_data, obj_surface);
+
+ psb_surface_destroy(obj_surface->psb_surface);
+
+ if (obj_surface->psb_surface_rotate) {
+ psb_surface_destroy(obj_surface->psb_surface_rotate);
+ }
+
+ free(obj_surface->psb_surface);
+ object_heap_free(&driver_data->surface_heap, (object_base_p) obj_surface);
+ }
+}
+
+static
+VAStatus psb__checkSurfaceDimensions(psb_driver_data_p driver_data, int width, int height)
+{
+ if (driver_data->video_sd_disabled) {
+ return VA_STATUS_ERROR_RESOLUTION_NOT_SUPPORTED;
+ }
+ if ((width <= 0) || (width > 5120) || (height <= 0) || (height > 5120)) {
+ return VA_STATUS_ERROR_RESOLUTION_NOT_SUPPORTED;
+ }
+ if (driver_data->video_hd_disabled) {
+ if ((width > 1024) || (height > 576)) {
+ return VA_STATUS_ERROR_RESOLUTION_NOT_SUPPORTED;
+ }
+ }
+
+ return VA_STATUS_SUCCESS;
+}
+
+
+VAStatus psb_CreateSurfaces(
+ VADriverContextP ctx,
+ int width,
+ int height,
+ int format,
+ int num_surfaces,
+ VASurfaceID *surface_list /* out */
+)
+{
+ INIT_DRIVER_DATA
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ int i, height_origin, buffer_stride = 0;
+ unsigned long fourcc;
+
+ if (num_surfaces <= 0) {
+ vaStatus = VA_STATUS_ERROR_INVALID_PARAMETER;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+ if (NULL == surface_list) {
+ vaStatus = VA_STATUS_ERROR_INVALID_SURFACE;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ /* We only support one format */
+ if ((VA_RT_FORMAT_YUV420 != format)
+ && (VA_RT_FORMAT_YUV422 != format)) {
+ vaStatus = VA_STATUS_ERROR_UNSUPPORTED_RT_FORMAT;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ vaStatus = psb__checkSurfaceDimensions(driver_data, width, height);
+ if (VA_STATUS_SUCCESS != vaStatus) {
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ /* Adjust height to be a multiple of 32 (height of macroblock in interlaced mode) */
+ height_origin = height;
+ height = (height + 0x1f) & ~0x1f;
+
+ for (i = 0; i < num_surfaces; i++) {
+ int surfaceID;
+ object_surface_p obj_surface;
+ psb_surface_p psb_surface;
+
+ surfaceID = object_heap_allocate(&driver_data->surface_heap);
+ obj_surface = SURFACE(surfaceID);
+ if (NULL == obj_surface) {
+ vaStatus = VA_STATUS_ERROR_ALLOCATION_FAILED;
+ DEBUG_FAILURE;
+ break;
+ }
+ MEMSET_OBJECT(obj_surface, struct object_surface_s);
+
+ obj_surface->surface_id = surfaceID;
+ surface_list[i] = surfaceID;
+ obj_surface->context_id = -1;
+ obj_surface->width = width;
+ obj_surface->height = height;
+ obj_surface->width_r = width;
+ obj_surface->height_r = height;
+ obj_surface->height_origin = height_origin;
+
+ psb_surface = (psb_surface_p) calloc(1, sizeof(struct psb_surface_s));
+ if (NULL == psb_surface) {
+ object_heap_free(&driver_data->surface_heap, (object_base_p) obj_surface);
+ obj_surface->surface_id = VA_INVALID_SURFACE;
+
+ vaStatus = VA_STATUS_ERROR_ALLOCATION_FAILED;
+
+ DEBUG_FAILURE;
+ break;
+ }
+
+ switch (format) {
+ case VA_RT_FORMAT_YUV422:
+ fourcc = VA_FOURCC_YV16;
+ break;
+ case VA_RT_FORMAT_YUV420:
+ default:
+ fourcc = VA_FOURCC_NV12;
+ break;
+ }
+
+ vaStatus = psb_surface_create(driver_data, width, height, fourcc,
+ (VA_RT_FORMAT_PROTECTED & format), psb_surface
+ );
+
+ if (VA_STATUS_SUCCESS != vaStatus) {
+ free(psb_surface);
+ object_heap_free(&driver_data->surface_heap, (object_base_p) obj_surface);
+ obj_surface->surface_id = VA_INVALID_SURFACE;
+
+ DEBUG_FAILURE;
+ break;
+ }
+ buffer_stride = psb_surface->stride;
+ /* by default, surface fourcc is NV12 */
+ memset(psb_surface->extra_info, 0, sizeof(psb_surface->extra_info));
+ psb_surface->extra_info[4] = fourcc;
+
+ obj_surface->psb_surface = psb_surface;
+
+ /* Allocate alternative output surface */
+ if (driver_data->rotate != VA_ROTATION_NONE) {
+ psb__information_message("Try to allocate surface for alternative rotate output\n");
+ psb_surface = (psb_surface_p) calloc(1, sizeof(struct psb_surface_s));
+ if (NULL == psb_surface) {
+ psb_surface_destroy(obj_surface->psb_surface);
+ obj_surface->surface_id = VA_INVALID_SURFACE;
+ /* object_heap_free( &driver_data->surface_heap, (object_base_p) obj_surface); */
+
+ vaStatus = VA_STATUS_ERROR_ALLOCATION_FAILED;
+
+ DEBUG_FAILURE;
+ break;
+ }
+
+ if (driver_data->rotate == VA_ROTATION_180)
+ vaStatus = psb_surface_create(driver_data, width, height, VA_FOURCC_NV12,
+ (VA_RT_FORMAT_PROTECTED & format), psb_surface);
+ else {
+ vaStatus = psb_surface_create(driver_data, height_origin, ((width + 0x1f) & ~0x1f), VA_FOURCC_NV12,
+ (VA_RT_FORMAT_PROTECTED & format), psb_surface
+ );
+ obj_surface->width_r = height_origin;
+ obj_surface->height_r = ((width + 0x1f) & ~0x1f);
+ }
+ if (VA_STATUS_SUCCESS != vaStatus) {
+ free(psb_surface);
+ object_heap_free(&driver_data->surface_heap, (object_base_p) obj_surface);
+ obj_surface->surface_id = VA_INVALID_SURFACE;
+ psb_surface_destroy(obj_surface->psb_surface);
+
+ DEBUG_FAILURE;
+ break;
+ }
+ /* by default, surface fourcc is NV12 */
+ memset(psb_surface->extra_info, 0, sizeof(psb_surface->extra_info));
+ psb_surface->extra_info[4] = VA_FOURCC_NV12;
+ psb_surface->extra_info[5] = driver_data->rotate;
+
+ obj_surface->psb_surface_rotate = psb_surface;
+ }
+ }
+
+ /* Error recovery */
+ if (VA_STATUS_SUCCESS != vaStatus) {
+ /* surface_list[i-1] was the last successful allocation */
+ for (; i--;) {
+ object_surface_p obj_surface = SURFACE(surface_list[i]);
+ psb__destroy_surface(driver_data, obj_surface);
+ surface_list[i] = VA_INVALID_SURFACE;
+ }
+ }
+
+ vaStatus = psb_register_video_bcd(ctx, width, height, buffer_stride, num_surfaces, surface_list);
+
+ return vaStatus;
+}
+
+
+VAStatus psb_CreateSurfaceFromCIFrame(
+ VADriverContextP ctx,
+ unsigned long frame_id,
+ VASurfaceID *surface /* out */
+)
+{
+ INIT_DRIVER_DATA
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ int surfaceID;
+ object_surface_p obj_surface;
+ psb_surface_p psb_surface;
+ struct ci_frame_info frame_info;
+ int ret = 0, fd = -1;
+ char *camera_dev = NULL;
+
+ if (IS_MRST(driver_data) == 0)
+ return VA_STATUS_ERROR_UNKNOWN;
+
+ camera_dev = getenv("PSB_VIDEO_CAMERA_DEVNAME");
+
+ if (camera_dev)
+ fd = open_device(camera_dev);
+ else
+ fd = open_device("/dev/video0");
+ if (fd == -1)
+ return VA_STATUS_ERROR_UNKNOWN;
+
+ frame_info.frame_id = frame_id;
+ ret = ci_get_frame_info(fd, &frame_info);
+ close_device(fd);
+
+ if (ret != 0)
+ return VA_STATUS_ERROR_UNKNOWN;
+
+ psb__information_message("CI Frame: id=0x%08x, %dx%d, stride=%d, offset=0x%08x, fourcc=0x%08x\n",
+ frame_info.frame_id, frame_info.width, frame_info.height,
+ frame_info.stride, frame_info.offset, frame_info.fourcc);
+
+ if (frame_info.stride & 0x3f) {
+ psb__error_message("CI Frame must be 64byte aligned!\n");
+ /* return VA_STATUS_ERROR_UNKNOWN; */
+ }
+
+ if (frame_info.fourcc != VA_FOURCC_NV12) {
+ psb__error_message("CI Frame must be NV12 format!\n");
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+ if (frame_info.offset & 0xfff) {
+ psb__error_message("CI Frame offset must be page aligned!\n");
+ /* return VA_STATUS_ERROR_UNKNOWN; */
+ }
+
+ /* all sanity check passed */
+ surfaceID = object_heap_allocate(&driver_data->surface_heap);
+ obj_surface = SURFACE(surfaceID);
+ if (NULL == obj_surface) {
+ vaStatus = VA_STATUS_ERROR_ALLOCATION_FAILED;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ MEMSET_OBJECT(obj_surface, struct object_surface_s);
+
+ obj_surface->surface_id = surfaceID;
+ *surface = surfaceID;
+ obj_surface->context_id = -1;
+ obj_surface->width = frame_info.width;
+ obj_surface->height = frame_info.height;
+
+ psb_surface = (psb_surface_p) calloc(1, sizeof(struct psb_surface_s));
+ if (NULL == psb_surface) {
+ object_heap_free(&driver_data->surface_heap, (object_base_p) obj_surface);
+ obj_surface->surface_id = VA_INVALID_SURFACE;
+
+ vaStatus = VA_STATUS_ERROR_ALLOCATION_FAILED;
+
+ DEBUG_FAILURE;
+
+ object_heap_free(&driver_data->surface_heap, (object_base_p) obj_surface);
+ obj_surface->surface_id = VA_INVALID_SURFACE;
+
+ return vaStatus;
+ }
+
+ vaStatus = psb_surface_create_camera(driver_data, frame_info.width, frame_info.height,
+ frame_info.stride, frame_info.stride * frame_info.height,
+ psb_surface,
+ 0, /* not V4L2 */
+ frame_info.offset);
+ if (VA_STATUS_SUCCESS != vaStatus) {
+ free(psb_surface);
+ object_heap_free(&driver_data->surface_heap, (object_base_p) obj_surface);
+ obj_surface->surface_id = VA_INVALID_SURFACE;
+
+ DEBUG_FAILURE;
+
+ return vaStatus;
+ }
+
+ memset(psb_surface->extra_info, 0, sizeof(psb_surface->extra_info));
+ psb_surface->extra_info[4] = VA_FOURCC_NV12;
+
+ obj_surface->psb_surface = psb_surface;
+
+ /* Error recovery */
+ if (VA_STATUS_SUCCESS != vaStatus) {
+ object_surface_p obj_surface = SURFACE(*surface);
+ psb__destroy_surface(driver_data, obj_surface);
+ *surface = VA_INVALID_SURFACE;
+ }
+
+ return vaStatus;
+}
+
+VAStatus psb_DestroySurfaces(
+ VADriverContextP ctx,
+ VASurfaceID *surface_list,
+ int num_surfaces
+)
+{
+ INIT_DRIVER_DATA
+ int i;
+
+ if (num_surfaces <= 0) {
+ return VA_STATUS_ERROR_INVALID_PARAMETER;
+ }
+
+ if (NULL == surface_list) {
+ return VA_STATUS_ERROR_INVALID_SURFACE;
+ }
+
+ if (driver_data->bcd_registered != 0)
+ if (VA_STATUS_SUCCESS != psb_release_video_bcd(ctx))
+ return VA_STATUS_ERROR_UNKNOWN;
+
+ /* This is work around.
+ Add sufficient delay for gfx to release surface pages,
+ Avoid page leak message in TTM */
+ usleep(1000*100);
+
+ /* Make validation happy */
+ for (i = 0; i < num_surfaces; i++) {
+ object_surface_p obj_surface = SURFACE(surface_list[i]);
+ if (obj_surface == NULL) {
+ return VA_STATUS_ERROR_INVALID_SURFACE;
+ }
+ if (obj_surface->derived_imgcnt > 0) {
+ psb__error_message("Some surface is deriving by images\n");
+ return VA_STATUS_ERROR_OPERATION_FAILED;
+ }
+ }
+
+ for (i = 0; i < num_surfaces; i++) {
+ object_surface_p obj_surface = SURFACE(surface_list[i]);
+
+ if (driver_data->cur_displaying_surface == surface_list[i]) {
+ /* Surface is being displaying. Need to stop overlay here */
+ }
+
+ psb__destroy_surface(driver_data, obj_surface);
+ surface_list[i] = VA_INVALID_SURFACE;
+ }
+
+ return VA_STATUS_SUCCESS;
+}
+
+int psb_new_context(psb_driver_data_p driver_data, int ctx_type)
+{
+ struct drm_lnc_video_getparam_arg arg;
+ int ret = 0;
+
+ arg.key = IMG_VIDEO_NEW_CONTEXT;
+ arg.value = (uint64_t)((unsigned long) & ctx_type);
+ ret = drmCommandWriteRead(driver_data->drm_fd, driver_data->getParamIoctlOffset,
+ &arg, sizeof(arg));
+ if (ret != 0)
+ psb__error_message("Set context %d failed\n", ctx_type);
+
+ return ret;
+}
+
+int psb_rm_context(psb_driver_data_p driver_data)
+{
+ struct drm_lnc_video_getparam_arg arg;
+ int tmp;
+ int ret = 0;
+
+ arg.key = IMG_VIDEO_RM_CONTEXT;
+ arg.value = (uint64_t)((unsigned long) & tmp); /* value is ignored */
+ ret = drmCommandWriteRead(driver_data->drm_fd, driver_data->getParamIoctlOffset,
+ &arg, sizeof(arg));
+ if (ret != 0)
+ psb__error_message("Remove context failed\n");
+
+ return ret;
+}
+
+VAStatus psb_CreateContext(
+ VADriverContextP ctx,
+ VAConfigID config_id,
+ int picture_width,
+ int picture_height,
+ int flag,
+ VASurfaceID *render_targets,
+ int num_render_targets,
+ VAContextID *context /* out */
+)
+{
+ INIT_DRIVER_DATA
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ object_config_p obj_config;
+ int cmdbuf_num, encode = 0;
+ int i;
+
+ if (num_render_targets <= 0) {
+ vaStatus = VA_STATUS_ERROR_INVALID_PARAMETER;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ if (NULL == render_targets) {
+ vaStatus = VA_STATUS_ERROR_INVALID_SURFACE;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+ if (NULL == context) {
+ vaStatus = VA_STATUS_ERROR_INVALID_CONTEXT;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ vaStatus = psb__checkSurfaceDimensions(driver_data, picture_width, picture_height);
+ if (VA_STATUS_SUCCESS != vaStatus) {
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ obj_config = CONFIG(config_id);
+ if (NULL == obj_config) {
+ vaStatus = VA_STATUS_ERROR_INVALID_CONFIG;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ int contextID = object_heap_allocate(&driver_data->context_heap);
+ object_context_p obj_context = CONTEXT(contextID);
+ if (NULL == obj_context) {
+ vaStatus = VA_STATUS_ERROR_ALLOCATION_FAILED;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ *context = contextID;
+
+ MEMSET_OBJECT(obj_context, struct object_context_s);
+
+ obj_context->driver_data = driver_data;
+ obj_context->current_render_target = NULL;
+ obj_context->is_oold = driver_data->is_oold;
+ obj_context->rotate = driver_data->rotate;
+
+ obj_context->context_id = contextID;
+ obj_context->config_id = config_id;
+ obj_context->picture_width = picture_width;
+ obj_context->picture_height = picture_height;
+ obj_context->num_render_targets = num_render_targets;
+ obj_context->render_targets = (VASurfaceID *) calloc(1, num_render_targets * sizeof(VASurfaceID));
+ if (obj_context->render_targets == NULL) {
+ vaStatus = VA_STATUS_ERROR_ALLOCATION_FAILED;
+ DEBUG_FAILURE;
+
+ object_heap_free(&driver_data->context_heap, (object_base_p) obj_context);
+
+ return vaStatus;
+ }
+
+ /* allocate buffer points for vaRenderPicture */
+ obj_context->num_buffers = 10;
+ obj_context->buffer_list = (object_buffer_p *) calloc(1, sizeof(object_buffer_p) * obj_context->num_buffers);
+ if (obj_context->buffer_list == NULL) {
+ vaStatus = VA_STATUS_ERROR_ALLOCATION_FAILED;
+ DEBUG_FAILURE;
+
+ free(obj_context->render_targets);
+ object_heap_free(&driver_data->context_heap, (object_base_p) obj_context);
+
+ return vaStatus;
+ }
+
+ memset(obj_context->buffers_unused, 0, sizeof(obj_context->buffers_unused));
+ memset(obj_context->buffers_unused_count, 0, sizeof(obj_context->buffers_unused_count));
+ memset(obj_context->buffers_unused_tail, 0, sizeof(obj_context->buffers_unused_tail));
+ memset(obj_context->buffers_active, 0, sizeof(obj_context->buffers_active));
+
+ if (obj_config->entrypoint == VAEntrypointEncSlice
+ || obj_config->entrypoint == VAEntrypointEncPicture) {
+ encode = 1;
+ cmdbuf_num = LNC_MAX_CMDBUFS_ENCODE;
+ } else
+ cmdbuf_num = PSB_MAX_CMDBUFS;
+
+ for (i = 0; i < num_render_targets; i++) {
+ object_surface_p obj_surface = SURFACE(render_targets[i]);
+ psb_surface_p psb_surface;
+ unsigned char *p;
+ int ret;
+
+ if (NULL == obj_surface) {
+ vaStatus = VA_STATUS_ERROR_INVALID_SURFACE;
+ DEBUG_FAILURE;
+ break;
+ }
+
+ psb_surface = obj_surface->psb_surface;
+
+ /* Clear format specific surface info */
+ obj_context->render_targets[i] = render_targets[i];
+ obj_surface->context_id = contextID; /* Claim ownership of surface */
+#if 0
+ /* for decode, move the surface into |TT */
+ if ((encode == 0) && /* decode */
+ ((psb_surface->buf.pl_flags & DRM_PSB_FLAG_MEM_RAR) == 0)) /* surface not in RAR */
+ psb_buffer_setstatus(&obj_surface->psb_surface->buf,
+ WSBM_PL_FLAG_TT | WSBM_PL_FLAG_SHARED, DRM_PSB_FLAG_MEM_MMU);
+#endif
+ }
+
+ obj_context->va_flags = flag;
+ obj_context->format_vtable = obj_config->format_vtable;
+ obj_context->format_data = NULL;
+
+ if (VA_STATUS_SUCCESS == vaStatus) {
+ vaStatus = obj_context->format_vtable->createContext(obj_context, obj_config);
+ }
+
+ /* Error recovery */
+ if (VA_STATUS_SUCCESS != vaStatus) {
+ obj_context->context_id = -1;
+ obj_context->config_id = -1;
+ obj_context->picture_width = 0;
+ obj_context->picture_height = 0;
+ free(obj_context->render_targets);
+ free(obj_context->buffer_list);
+ obj_context->num_buffers = 0;
+ obj_context->render_targets = NULL;
+ obj_context->num_render_targets = 0;
+ obj_context->va_flags = 0;
+ object_heap_free(&driver_data->context_heap, (object_base_p) obj_context);
+
+ return vaStatus;
+ }
+
+ /* initialize cmdbuf */
+ for (i = 0; i < LNC_MAX_CMDBUFS_ENCODE; i++) {
+ obj_context->lnc_cmdbuf_list[i] = NULL;
+ }
+
+ for (i = 0; i < PNW_MAX_CMDBUFS_ENCODE; i++) {
+ obj_context->pnw_cmdbuf_list[i] = NULL;
+ }
+
+ for (i = 0; i < PSB_MAX_CMDBUFS; i++) {
+ obj_context->cmdbuf_list[i] = NULL;
+ }
+
+ for (i = 0; i < cmdbuf_num; i++) {
+ void *cmdbuf;
+
+ if (encode) { /* Topaz encode context */
+ if (IS_MFLD(obj_context->driver_data))
+ cmdbuf = calloc(1, sizeof(struct pnw_cmdbuf_s));
+ else
+ cmdbuf = calloc(1, sizeof(struct lnc_cmdbuf_s));
+ } else /* MSVDX decode context */
+ cmdbuf = calloc(1, sizeof(struct psb_cmdbuf_s));
+
+ if (NULL == cmdbuf) {
+ vaStatus = VA_STATUS_ERROR_ALLOCATION_FAILED;
+ DEBUG_FAILURE;
+ break;
+ }
+
+ if (encode) { /* Topaz encode context */
+ if (IS_MFLD(obj_context->driver_data))
+ vaStatus = pnw_cmdbuf_create(obj_context, driver_data, (pnw_cmdbuf_p)cmdbuf);
+ else
+ vaStatus = lnc_cmdbuf_create(obj_context, driver_data, (lnc_cmdbuf_p)cmdbuf);
+ } else /* MSVDX decode context */
+ vaStatus = psb_cmdbuf_create(obj_context, driver_data, (psb_cmdbuf_p)cmdbuf);
+
+ if (VA_STATUS_SUCCESS != vaStatus) {
+ free(cmdbuf);
+ DEBUG_FAILURE;
+ break;
+ }
+ if (encode) {
+ if (IS_MFLD(obj_context->driver_data))
+ obj_context->pnw_cmdbuf_list[i] = (pnw_cmdbuf_p)cmdbuf;
+ else
+ obj_context->lnc_cmdbuf_list[i] = (lnc_cmdbuf_p)cmdbuf;
+ } else
+ obj_context->cmdbuf_list[i] = (psb_cmdbuf_p)cmdbuf;
+ }
+ obj_context->cmdbuf_current = -1;
+ obj_context->cmdbuf = NULL;
+ obj_context->lnc_cmdbuf = NULL;
+ obj_context->pnw_cmdbuf = NULL;
+ obj_context->frame_count = 0;
+ obj_context->slice_count = 0;
+ obj_context->msvdx_context = ((driver_data->msvdx_context_base & 0xff0000) >> 16) |
+ ((contextID & 0xff000000) >> 16);
+
+ obj_context->entry_point = obj_config->entrypoint;
+
+ /* Error recovery */
+ if (VA_STATUS_SUCCESS != vaStatus) {
+ if (cmdbuf_num > LNC_MAX_CMDBUFS_ENCODE)
+ cmdbuf_num = LNC_MAX_CMDBUFS_ENCODE;
+ for (i = 0; i < cmdbuf_num; i++) {
+ if (obj_context->lnc_cmdbuf_list[i]) {
+ lnc_cmdbuf_destroy(obj_context->lnc_cmdbuf_list[i]);
+ free(obj_context->lnc_cmdbuf_list[i]);
+ obj_context->lnc_cmdbuf_list[i] = NULL;
+ }
+ if (obj_context->pnw_cmdbuf_list[i]) {
+ pnw_cmdbuf_destroy(obj_context->pnw_cmdbuf_list[i]);
+ free(obj_context->pnw_cmdbuf_list[i]);
+ obj_context->pnw_cmdbuf_list[i] = NULL;
+ }
+ if (obj_context->cmdbuf_list[i]) {
+ psb_cmdbuf_destroy(obj_context->cmdbuf_list[i]);
+ free(obj_context->cmdbuf_list[i]);
+ obj_context->cmdbuf_list[i] = NULL;
+ }
+ }
+
+ obj_context->cmdbuf = NULL;
+ obj_context->lnc_cmdbuf = NULL;
+
+ obj_context->context_id = -1;
+ obj_context->config_id = -1;
+ obj_context->picture_width = 0;
+ obj_context->picture_height = 0;
+ free(obj_context->render_targets);
+ free(obj_context->buffer_list);
+ obj_context->num_buffers = 0;
+ obj_context->render_targets = NULL;
+ obj_context->num_render_targets = 0;
+ obj_context->va_flags = 0;
+ object_heap_free(&driver_data->context_heap, (object_base_p) obj_context);
+ } else
+ lnc_ospm_start(driver_data, encode);
+
+ psb_new_context(driver_data, (obj_config->profile << 8) | obj_config->entrypoint);
+
+ return vaStatus;
+}
+
+static VAStatus psb__allocate_malloc_buffer(object_buffer_p obj_buffer, int size)
+{
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+
+ obj_buffer->buffer_data = realloc(obj_buffer->buffer_data, size);
+ if (NULL == obj_buffer->buffer_data) {
+ vaStatus = VA_STATUS_ERROR_ALLOCATION_FAILED;
+ DEBUG_FAILURE;
+ }
+ return vaStatus;
+}
+
+static VAStatus psb__unmap_buffer(object_buffer_p obj_buffer);
+
+static VAStatus psb__allocate_BO_buffer(psb_driver_data_p driver_data, object_buffer_p obj_buffer, int size, void *data, VABufferType type)
+{
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+
+ ASSERT(NULL == obj_buffer->buffer_data);
+
+ if (obj_buffer->psb_buffer && (psb_bs_queued == obj_buffer->psb_buffer->status)) {
+ psb__information_message("Abandoning BO for buffer %08x type %s\n", obj_buffer->base.id,
+ buffer_type_to_string(obj_buffer->type));
+ /* need to set psb_buffer aside and get another one */
+ obj_buffer->psb_buffer->status = psb_bs_abandoned;
+ obj_buffer->psb_buffer = NULL;
+ obj_buffer->size = 0;
+ obj_buffer->alloc_size = 0;
+ }
+
+ if (type == VAProtectedSliceDataBufferType) {
+ if (obj_buffer->psb_buffer) {
+ psb__information_message("RAR: old RAR slice buffer with RAR handle 0%08x, current RAR handle 0x%08x\n",
+ obj_buffer->psb_buffer->rar_handle, (uint32_t)data);
+ psb__information_message("RAR: force old RAR buffer destroy and new buffer re-allocation by set size=0\n");
+ obj_buffer->alloc_size = 0;
+ }
+ }
+
+ if (obj_buffer->alloc_size < size) {
+ psb__information_message("Buffer size mismatch: Need %d, currently have %d\n", size, obj_buffer->alloc_size);
+ if (obj_buffer->psb_buffer) {
+ if (obj_buffer->buffer_data) {
+ psb__unmap_buffer(obj_buffer);
+ }
+ psb_buffer_destroy(obj_buffer->psb_buffer);
+ obj_buffer->alloc_size = 0;
+ } else {
+ obj_buffer->psb_buffer = (psb_buffer_p) calloc(1, sizeof(struct psb_buffer_s));
+ if (NULL == obj_buffer->psb_buffer) {
+ vaStatus = VA_STATUS_ERROR_ALLOCATION_FAILED;
+ DEBUG_FAILURE;
+ }
+ }
+ if (VA_STATUS_SUCCESS == vaStatus) {
+ psb__information_message("Allocate new GPU buffers for vaCreateBuffer:type=%s,size=%d.\n",
+ buffer_type_to_string(obj_buffer->type), size);
+
+ size = (size + 0x7fff) & ~0x7fff; /* Round up */
+ if (obj_buffer->type == VAImageBufferType) /* Xserver side PutSurface, Image/subpicture buffer
+ * should be shared between two process
+ */
+ vaStatus = psb_buffer_create(driver_data, size, psb_bt_cpu_vpu_shared, obj_buffer->psb_buffer);
+ else if (obj_buffer->type == VAProtectedSliceDataBufferType)
+ vaStatus = psb_buffer_reference_rar(driver_data, (uint32_t)data, obj_buffer->psb_buffer);
+ else
+ vaStatus = psb_buffer_create(driver_data, size, psb_bt_cpu_vpu, obj_buffer->psb_buffer);
+ if (VA_STATUS_SUCCESS != vaStatus) {
+ free(obj_buffer->psb_buffer);
+ obj_buffer->psb_buffer = NULL;
+ DEBUG_FAILURE;
+ } else {
+ obj_buffer->alloc_size = size;
+ }
+ }
+ }
+ return vaStatus;
+}
+
+static VAStatus psb__map_buffer(object_buffer_p obj_buffer)
+{
+ if (obj_buffer->psb_buffer) {
+ return psb_buffer_map(obj_buffer->psb_buffer, &obj_buffer->buffer_data);
+ }
+ return VA_STATUS_SUCCESS;
+}
+
+static VAStatus psb__unmap_buffer(object_buffer_p obj_buffer)
+{
+ if (obj_buffer->psb_buffer) {
+ obj_buffer->buffer_data = NULL;
+ return psb_buffer_unmap(obj_buffer->psb_buffer);
+ }
+ return VA_STATUS_SUCCESS;
+}
+
+static void psb__destroy_buffer(psb_driver_data_p driver_data, object_buffer_p obj_buffer)
+{
+ if (obj_buffer->psb_buffer) {
+ if (obj_buffer->buffer_data) {
+ psb__unmap_buffer(obj_buffer);
+ }
+ psb_buffer_destroy(obj_buffer->psb_buffer);
+ free(obj_buffer->psb_buffer);
+ obj_buffer->psb_buffer = NULL;
+ }
+
+ if (NULL != obj_buffer->buffer_data) {
+ free(obj_buffer->buffer_data);
+ obj_buffer->buffer_data = NULL;
+ obj_buffer->size = 0;
+ }
+
+ object_heap_free(&driver_data->buffer_heap, (object_base_p) obj_buffer);
+}
+
+void psb__suspend_buffer(psb_driver_data_p driver_data, object_buffer_p obj_buffer)
+{
+ if (obj_buffer->context) {
+ VABufferType type = obj_buffer->type;
+ object_context_p obj_context = obj_buffer->context;
+
+ /* Remove buffer from active list */
+ *obj_buffer->pptr_prev_next = obj_buffer->ptr_next;
+
+ /* Add buffer to tail of unused list */
+ obj_buffer->ptr_next = NULL;
+ obj_buffer->last_used = obj_context->frame_count;
+ if (obj_context->buffers_unused_tail[type]) {
+ obj_buffer->pptr_prev_next = &(obj_context->buffers_unused_tail[type]->ptr_next);
+ } else {
+ obj_buffer->pptr_prev_next = &(obj_context->buffers_unused[type]);
+ }
+ *obj_buffer->pptr_prev_next = obj_buffer;
+ obj_context->buffers_unused_tail[type] = obj_buffer;
+ obj_context->buffers_unused_count[type]++;
+
+ psb__information_message("Adding buffer %08x type %s to unused list. unused count = %d\n", obj_buffer->base.id,
+ buffer_type_to_string(obj_buffer->type), obj_context->buffers_unused_count[type]);
+
+ object_heap_suspend_object((object_base_p) obj_buffer, 1); /* suspend */
+ return;
+ }
+
+ if (obj_buffer->psb_buffer && (psb_bs_queued == obj_buffer->psb_buffer->status)) {
+ /* need to set psb_buffer aside */
+ obj_buffer->psb_buffer->status = psb_bs_abandoned;
+ obj_buffer->psb_buffer = NULL;
+ }
+
+ psb__destroy_buffer(driver_data, obj_buffer);
+}
+
+static void psb__destroy_context(psb_driver_data_p driver_data, object_context_p obj_context)
+{
+ int encode, i;
+
+ if (obj_context->entry_point == VAEntrypointEncSlice)
+ encode = 1;
+ else
+ encode = 0;
+
+ lnc_ospm_stop(driver_data, encode);
+
+ obj_context->format_vtable->destroyContext(obj_context);
+
+ for (i = 0; i < PSB_MAX_BUFFERTYPES; i++) {
+ object_buffer_p obj_buffer;
+ obj_buffer = obj_context->buffers_active[i];
+ for (; obj_buffer; obj_buffer = obj_buffer->ptr_next) {
+ psb__information_message("%s: destroying active buffer %08x\n", __FUNCTION__, obj_buffer->base.id);
+ psb__destroy_buffer(driver_data, obj_buffer);
+ }
+ obj_buffer = obj_context->buffers_unused[i];
+ for (; obj_buffer; obj_buffer = obj_buffer->ptr_next) {
+ psb__information_message("%s: destroying unused buffer %08x\n", __FUNCTION__, obj_buffer->base.id);
+ psb__destroy_buffer(driver_data, obj_buffer);
+ }
+ obj_context->buffers_unused_count[i] = 0;
+ }
+
+ for (i = 0; i < LNC_MAX_CMDBUFS_ENCODE; i++) {
+ if (obj_context->lnc_cmdbuf_list[i]) {
+ lnc_cmdbuf_destroy(obj_context->lnc_cmdbuf_list[i]);
+ free(obj_context->lnc_cmdbuf_list[i]);
+ obj_context->lnc_cmdbuf_list[i] = NULL;
+ }
+ }
+
+ for (i = 0; i < PSB_MAX_CMDBUFS; i++) {
+ if (obj_context->cmdbuf_list[i]) {
+ psb_cmdbuf_destroy(obj_context->cmdbuf_list[i]);
+ free(obj_context->cmdbuf_list[i]);
+ obj_context->cmdbuf_list[i] = NULL;
+ }
+ }
+ obj_context->cmdbuf = NULL;
+ obj_context->lnc_cmdbuf = NULL;
+
+ obj_context->context_id = -1;
+ obj_context->config_id = -1;
+ obj_context->picture_width = 0;
+ obj_context->picture_height = 0;
+ if (obj_context->render_targets)
+ free(obj_context->render_targets);
+ obj_context->render_targets = NULL;
+ obj_context->num_render_targets = 0;
+ obj_context->va_flags = 0;
+
+ obj_context->current_render_target = NULL;
+ if (obj_context->buffer_list)
+ free(obj_context->buffer_list);
+ obj_context->num_buffers = 0;
+
+ object_heap_free(&driver_data->context_heap, (object_base_p) obj_context);
+
+ psb_rm_context(driver_data);
+}
+
+VAStatus psb_DestroyContext(
+ VADriverContextP ctx,
+ VAContextID context
+)
+{
+ INIT_DRIVER_DATA
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ object_context_p obj_context = CONTEXT(context);
+ if (NULL == obj_context) {
+ vaStatus = VA_STATUS_ERROR_INVALID_CONTEXT;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ psb__destroy_context(driver_data, obj_context);
+
+ return vaStatus;
+}
+
+VAStatus psb__CreateBuffer(
+ psb_driver_data_p driver_data,
+ object_context_p obj_context, /* in */
+ VABufferType type, /* in */
+ unsigned int size, /* in */
+ unsigned int num_elements, /* in */
+ void *data, /* in */
+ VABufferID *buf_desc /* out */
+)
+{
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ int bufferID;
+ object_buffer_p obj_buffer = obj_context ? obj_context->buffers_unused[type] : NULL;
+ int unused_count = obj_context ? obj_context->buffers_unused_count[type] : 0;
+
+
+ /*
+ * Buffer Management
+ * For each buffer type, maintain
+ * - a LRU sorted list of unused buffers
+ * - a list of active buffers
+ * We only create a new buffer when
+ * - no unused buffers are available
+ * - the last unused buffer is still queued
+ * - the last unused buffer was used very recently and may still be fenced
+ * - used recently is defined as within the current frame_count (subject to tweaks)
+ *
+ * The buffer that is returned will be moved to the list of active buffers
+ * - vaDestroyBuffer and vaRenderPicture will move the active buffer back to the list of unused buffers
+ */
+ psb__information_message("Requesting buffer creation, size=%d,elements=%d,type=%s\n", size, num_elements,
+ buffer_type_to_string(type));
+
+ if ((type == VAProtectedSliceDataBufferType) && (data == NULL)) {
+ psb__error_message("RAR: Create protected slice buffer, but RAR handle is NULL\n");
+ return VA_STATUS_ERROR_UNSUPPORTED_BUFFERTYPE ;
+ }
+
+ if (obj_buffer && obj_buffer->psb_buffer) {
+ if (psb_bs_queued == obj_buffer->psb_buffer->status) {
+ /* Buffer is still queued, allocate new buffer instead */
+ psb__information_message("Skipping idle buffer %08x, still queued\n", obj_buffer->base.id);
+ obj_buffer = NULL;
+ } else if ((obj_buffer->last_used == obj_context->frame_count) && (unused_count < MAX_UNUSED_BUFFERS)) {
+ /* Buffer was used for this frame, allocate new buffer instead */
+ psb__information_message("Skipping idle buffer %08x, recently used. Unused = %d\n", obj_buffer->base.id, unused_count);
+ obj_buffer = NULL;
+ }
+ }
+
+ if (obj_buffer) {
+ bufferID = obj_buffer->base.id;
+ psb__information_message("Reusing buffer %08x type %s from unused list. Unused = %d\n", bufferID,
+ buffer_type_to_string(type), unused_count);
+
+ /* Remove from unused list */
+ obj_context->buffers_unused[type] = obj_buffer->ptr_next;
+ if (obj_context->buffers_unused[type]) {
+ obj_context->buffers_unused[type]->pptr_prev_next = &(obj_context->buffers_unused[type]);
+ ASSERT(obj_context->buffers_unused_tail[type] != obj_buffer);
+ } else {
+ ASSERT(obj_context->buffers_unused_tail[type] == obj_buffer);
+ obj_context->buffers_unused_tail[type] = 0;
+ }
+ obj_context->buffers_unused_count[type]--;
+
+ object_heap_suspend_object((object_base_p)obj_buffer, 0); /* Make BufferID valid again */
+ ASSERT(type == obj_buffer->type);
+ ASSERT(obj_context == obj_buffer->context);
+ } else {
+ bufferID = object_heap_allocate(&driver_data->buffer_heap);
+ obj_buffer = BUFFER(bufferID);
+ if (NULL == obj_buffer) {
+ vaStatus = VA_STATUS_ERROR_ALLOCATION_FAILED;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ MEMSET_OBJECT(obj_buffer, struct object_buffer_s);
+
+ psb__information_message("Allocating new buffer %08x type %s.\n", bufferID, buffer_type_to_string(type));
+ obj_buffer->type = type;
+ obj_buffer->buffer_data = NULL;
+ obj_buffer->psb_buffer = NULL;
+ obj_buffer->size = 0;
+ obj_buffer->max_num_elements = 0;
+ obj_buffer->alloc_size = 0;
+ obj_buffer->context = obj_context;
+ }
+ if (obj_context) {
+ /* Add to front of active list */
+ obj_buffer->ptr_next = obj_context->buffers_active[type];
+ if (obj_buffer->ptr_next) {
+ obj_buffer->ptr_next->pptr_prev_next = &(obj_buffer->ptr_next);
+ }
+ obj_buffer->pptr_prev_next = &(obj_context->buffers_active[type]);
+ *obj_buffer->pptr_prev_next = obj_buffer;
+ }
+
+ switch (obj_buffer->type) {
+ case VABitPlaneBufferType:
+ case VASliceDataBufferType:
+ case VAResidualDataBufferType:
+ case VAImageBufferType:
+ case VASliceGroupMapBufferType:
+ case VAEncCodedBufferType:
+ case VAProtectedSliceDataBufferType:
+ vaStatus = psb__allocate_BO_buffer(driver_data, obj_buffer, size * num_elements, data, obj_buffer->type);
+ DEBUG_FAILURE;
+ break;
+ case VAPictureParameterBufferType:
+ case VAIQMatrixBufferType:
+ case VASliceParameterBufferType:
+ case VAMacroblockParameterBufferType:
+ case VADeblockingParameterBufferType:
+ case VAEncSequenceParameterBufferType:
+ case VAEncPictureParameterBufferType:
+ case VAEncSliceParameterBufferType:
+ case VAQMatrixBufferType:
+ case VAEncMiscParameterBufferType:
+ psb__information_message("Allocate new malloc buffers for vaCreateBuffer:type=%s,size=%d, buffer_data=%p.\n",
+ buffer_type_to_string(type), size, obj_buffer->buffer_data);
+ vaStatus = psb__allocate_malloc_buffer(obj_buffer, size * num_elements);
+ DEBUG_FAILURE;
+ break;
+
+ default:
+ vaStatus = VA_STATUS_ERROR_UNSUPPORTED_BUFFERTYPE;
+ DEBUG_FAILURE;
+ break;;
+ }
+
+ if (VA_STATUS_SUCCESS == vaStatus) {
+ obj_buffer->size = size;
+ obj_buffer->max_num_elements = num_elements;
+ obj_buffer->num_elements = num_elements;
+ if (data && (obj_buffer->type != VAProtectedSliceDataBufferType)) {
+ vaStatus = psb__map_buffer(obj_buffer);
+ if (VA_STATUS_SUCCESS == vaStatus) {
+ memcpy(obj_buffer->buffer_data, data, size * num_elements);
+
+ psb__unmap_buffer(obj_buffer);
+ }
+ }
+ }
+ if (VA_STATUS_SUCCESS == vaStatus) {
+ *buf_desc = bufferID;
+ } else {
+ psb__destroy_buffer(driver_data, obj_buffer);
+ }
+
+ return vaStatus;
+}
+
+VAStatus psb_CreateBuffer(
+ VADriverContextP ctx,
+ VAContextID context, /* in */
+ VABufferType type, /* in */
+ unsigned int size, /* in */
+ unsigned int num_elements, /* in */
+ void *data, /* in */
+ VABufferID *buf_desc /* out */
+)
+{
+ INIT_DRIVER_DATA
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+
+ if (num_elements <= 0) {
+ vaStatus = VA_STATUS_ERROR_INVALID_PARAMETER;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ switch (type) {
+ case VABitPlaneBufferType:
+ case VASliceDataBufferType:
+ case VAProtectedSliceDataBufferType:
+ case VAResidualDataBufferType:
+ case VASliceGroupMapBufferType:
+ case VAPictureParameterBufferType:
+ case VAIQMatrixBufferType:
+ case VASliceParameterBufferType:
+ case VAMacroblockParameterBufferType:
+ case VADeblockingParameterBufferType:
+ case VAEncCodedBufferType:
+ case VAEncSequenceParameterBufferType:
+ case VAEncPictureParameterBufferType:
+ case VAEncSliceParameterBufferType:
+ case VAQMatrixBufferType:
+ case VAEncMiscParameterBufferType:
+ break;
+
+ default:
+ vaStatus = VA_STATUS_ERROR_UNSUPPORTED_BUFFERTYPE;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ object_context_p obj_context = CONTEXT(context);
+ if (NULL == obj_context) {
+ vaStatus = VA_STATUS_ERROR_INVALID_CONTEXT;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+ if (NULL == buf_desc) {
+ vaStatus = VA_STATUS_ERROR_INVALID_PARAMETER;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ return psb__CreateBuffer(driver_data, obj_context, type, size, num_elements, data, buf_desc);
+}
+
+
+VAStatus psb_BufferInfo(
+ VADriverContextP ctx,
+ VAContextID context, /* in */
+ VABufferID buf_id, /* in */
+ VABufferType *type, /* out */
+ unsigned int *size, /* out */
+ unsigned int *num_elements /* out */
+)
+{
+ INIT_DRIVER_DATA
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+
+ object_buffer_p obj_buffer = BUFFER(buf_id);
+ if (NULL == obj_buffer) {
+ vaStatus = VA_STATUS_ERROR_INVALID_BUFFER;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ *type = obj_buffer->type;
+ *size = obj_buffer->size;
+ *num_elements = obj_buffer->num_elements;
+ return VA_STATUS_SUCCESS;
+}
+
+
+VAStatus psb_BufferSetNumElements(
+ VADriverContextP ctx,
+ VABufferID buf_id, /* in */
+ unsigned int num_elements /* in */
+)
+{
+ INIT_DRIVER_DATA
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ object_buffer_p obj_buffer = BUFFER(buf_id);
+ if (NULL == obj_buffer) {
+ vaStatus = VA_STATUS_ERROR_INVALID_BUFFER;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ if ((num_elements <= 0) || (num_elements > obj_buffer->max_num_elements)) {
+ vaStatus = VA_STATUS_ERROR_INVALID_PARAMETER;
+ }
+ if (VA_STATUS_SUCCESS == vaStatus) {
+ obj_buffer->num_elements = num_elements;
+ }
+
+ return vaStatus;
+}
+
+VAStatus psb_MapBuffer(
+ VADriverContextP ctx,
+ VABufferID buf_id, /* in */
+ void **pbuf /* out */
+)
+{
+ INIT_DRIVER_DATA
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ object_buffer_p obj_buffer = BUFFER(buf_id);
+ if (NULL == obj_buffer) {
+ vaStatus = VA_STATUS_ERROR_INVALID_BUFFER;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+
+ if (NULL == pbuf) {
+ vaStatus = VA_STATUS_ERROR_INVALID_PARAMETER;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ vaStatus = psb__map_buffer(obj_buffer);
+ if (VA_STATUS_SUCCESS != vaStatus) {
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ if (NULL != obj_buffer->buffer_data) {
+ *pbuf = obj_buffer->buffer_data;
+
+ /* specifically for Topaz encode
+ * write validate coded data offset in CodedBuffer
+ */
+ if (obj_buffer->type == VAEncCodedBufferType)
+ psb_codedbuf_map_mangle(ctx, obj_buffer, pbuf);
+ /* *(IMG_UINT32 *)((void *)obj_buffer->buffer_data + 4) = 16; */
+ } else {
+ vaStatus = VA_STATUS_ERROR_ALLOCATION_FAILED;
+ }
+ return vaStatus;
+}
+
+VAStatus psb_UnmapBuffer(
+ VADriverContextP ctx,
+ VABufferID buf_id /* in */
+)
+{
+ INIT_DRIVER_DATA
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ object_buffer_p obj_buffer = BUFFER(buf_id);
+ if (NULL == obj_buffer) {
+ vaStatus = VA_STATUS_ERROR_INVALID_BUFFER;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ vaStatus = psb__unmap_buffer(obj_buffer);
+
+ return vaStatus;
+}
+
+
+VAStatus psb_DestroyBuffer(
+ VADriverContextP ctx,
+ VABufferID buffer_id
+)
+{
+ INIT_DRIVER_DATA
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ object_buffer_p obj_buffer = BUFFER(buffer_id);
+
+ if (NULL == obj_buffer) {
+ vaStatus = VA_STATUS_ERROR_INVALID_BUFFER;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ psb__suspend_buffer(driver_data, obj_buffer);
+ return vaStatus;
+}
+
+static VAStatus psb__create_surface_rotation(VADriverContextP ctx, object_surface_p obj_surface, int protected)
+{
+ INIT_DRIVER_DATA
+ int width, height;
+ psb_surface_p psb_surface = (psb_surface_p) calloc(1, sizeof(struct psb_surface_s));
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+
+ psb__information_message("Try to allocate surface for alternative rotate output\n");
+
+ if (NULL == psb_surface) {
+ vaStatus = VA_STATUS_ERROR_ALLOCATION_FAILED;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ width = obj_surface->width;
+ height = obj_surface->height;
+
+ if (driver_data->rotate == VA_ROTATION_180) {
+ vaStatus = psb_surface_create(driver_data, width, height, VA_FOURCC_NV12,
+ protected, psb_surface);
+ obj_surface->width_r = width;
+ obj_surface->height_r = height;
+ } else {
+ vaStatus = psb_surface_create(driver_data, obj_surface->height_origin, ((width + 0x1f) & ~0x1f), VA_FOURCC_NV12,
+ protected, psb_surface
+ );
+ obj_surface->width_r = obj_surface->height_origin;
+ obj_surface->height_r = ((width + 0x1f) & ~0x1f);
+ }
+ if (VA_STATUS_SUCCESS != vaStatus) {
+ free(psb_surface);
+ vaStatus = VA_STATUS_ERROR_ALLOCATION_FAILED;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+ /* by default, surface fourcc is NV12 */
+ memset(psb_surface->extra_info, 0, sizeof(psb_surface->extra_info));
+ psb_surface->extra_info[4] = VA_FOURCC_NV12;
+ psb_surface->extra_info[5] = driver_data->rotate;
+
+ obj_surface->psb_surface_rotate = psb_surface;
+ return vaStatus;
+}
+
+VAStatus psb_BeginPicture(
+ VADriverContextP ctx,
+ VAContextID context,
+ VASurfaceID render_target
+)
+{
+ INIT_DRIVER_DATA
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ object_context_p obj_context;
+ object_surface_p obj_surface;
+ object_config_p obj_config;
+
+ obj_context = CONTEXT(context);
+ if (NULL == obj_context) {
+ vaStatus = VA_STATUS_ERROR_INVALID_CONTEXT;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ /* Must not be within BeginPicture / EndPicture already */
+ ASSERT(obj_context->current_render_target == NULL);
+
+ obj_surface = SURFACE(render_target);
+ if (NULL == obj_surface) {
+ vaStatus = VA_STATUS_ERROR_INVALID_SURFACE;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ obj_context->current_render_surface_id = render_target;
+ obj_context->current_render_target = obj_surface;
+ obj_context->slice_count = 0;
+
+ obj_config = CONFIG(obj_context->config_id);
+ /* if the surface is decode render target, and in displaying */
+ if (obj_config &&
+ (obj_config->entrypoint != VAEntrypointEncSlice) &&
+ (driver_data->cur_displaying_surface == render_target))
+ psb__error_message("WARNING: rendering a displaying surface, may see tearing\n");
+
+ if (VA_STATUS_SUCCESS == vaStatus) {
+ vaStatus = obj_context->format_vtable->beginPicture(obj_context);
+ }
+
+ if (driver_data->xrandr_dirty & PSB_NEW_ROTATION) {
+ int angle;
+ angle = Rotation2Angle(driver_data->video_rotate) + Rotation2Angle(driver_data->mipi0_rotation);
+ driver_data->local_rotation = Angle2Rotation(angle);
+ angle = Rotation2Angle(driver_data->video_rotate) + Rotation2Angle(driver_data->hdmi_rotation);
+ driver_data->extend_rotation = Angle2Rotation(angle);
+#ifndef ANDROID
+ if ((driver_data->mipi1_rotation != VA_ROTATION_NONE) ||
+ ((driver_data->local_rotation != VA_ROTATION_NONE) &&
+ (driver_data->extend_rotation != VA_ROTATION_NONE) &&
+ (driver_data->local_rotation != driver_data->extend_rotation))) {
+ driver_data->rotate = driver_data->video_rotate;
+ /*fallback to texblit path*/
+ driver_data->output_method = PSB_PUTSURFACE_CTEXTURE;
+ } else {
+ if (driver_data->output_method != PSB_PUTSURFACE_FORCE_CTEXTURE) {
+ driver_data->output_method = PSB_PUTSURFACE_COVERLAY;
+ driver_data->rotate = (driver_data->local_rotation == 0) ? driver_data->extend_rotation : driver_data->local_rotation;
+ }
+ }
+#endif
+ if (driver_data->rotate == VA_ROTATION_270)
+ driver_data->rotate = 3; /* Match with hw definition */
+
+ driver_data->xrandr_dirty &= ~PSB_NEW_ROTATION;
+ }
+ /* Create surface for rotation if needed */
+ if (driver_data->rotate == VA_ROTATION_NONE && obj_surface->psb_surface_rotate) {
+ psb_surface_destroy(obj_surface->psb_surface_rotate);
+ obj_surface->psb_surface_rotate = NULL;
+ obj_surface->width_r = obj_surface->width;
+ obj_surface->height_r = obj_surface->height;
+ obj_context->rotate = driver_data->rotate;
+ } else if (driver_data->rotate != VA_ROTATION_NONE &&
+ (!obj_surface->psb_surface_rotate ? 1 : (obj_surface->psb_surface_rotate->extra_info[5] != driver_data->rotate))) {
+ if (!obj_surface->psb_surface_rotate) {
+ psb__create_surface_rotation(ctx, obj_surface, obj_surface->psb_surface->buf.type == psb_bt_rar_surface);
+ } else {
+ psb_surface_destroy(obj_surface->psb_surface_rotate);
+ free(obj_surface->psb_surface_rotate);
+ psb__create_surface_rotation(ctx, obj_surface, obj_surface->psb_surface->buf.type == psb_bt_rar_surface);
+ }
+ obj_context->rotate = driver_data->rotate;
+ }
+
+ if (driver_data->is_oold && !obj_surface->psb_surface->in_loop_buf) {
+ psb_surface_p psb_surface = obj_surface->psb_surface;
+
+ psb_surface->in_loop_buf = calloc(1, sizeof(struct psb_buffer_s));
+ if (NULL == psb_surface->in_loop_buf) {
+ vaStatus = VA_STATUS_ERROR_ALLOCATION_FAILED;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ /* FIXME: For RAR surface, need allocate RAR buffer */
+ vaStatus = psb_buffer_create(obj_context->driver_data,
+ psb_surface->size,
+ psb_bt_surface,
+ psb_surface->in_loop_buf);
+ } else if (!driver_data->is_oold && obj_surface->psb_surface->in_loop_buf) {
+ psb_surface_p psb_surface = obj_surface->psb_surface;
+
+ psb_buffer_destroy(psb_surface->in_loop_buf);
+ free(psb_surface->in_loop_buf);
+ psb_surface->in_loop_buf = NULL;
+ }
+ obj_context->is_oold = driver_data->is_oold;
+
+ psb__information_message("---BeginPicture 0x%08x for frame %d --\n",
+ render_target, obj_context->frame_count);
+#ifdef DEBUG_TRACE
+ psb__trace_message("------Trace frame %d------\n", obj_context->frame_count);
+#endif
+
+ return vaStatus;
+}
+
+VAStatus psb_RenderPicture(
+ VADriverContextP ctx,
+ VAContextID context,
+ VABufferID *buffers,
+ int num_buffers
+)
+{
+ INIT_DRIVER_DATA
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ object_context_p obj_context;
+ object_buffer_p *buffer_list;
+ int i;
+
+ obj_context = CONTEXT(context);
+ if (NULL == obj_context) {
+ vaStatus = VA_STATUS_ERROR_INVALID_CONTEXT;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ if (num_buffers <= 0) {
+ vaStatus = VA_STATUS_ERROR_INVALID_PARAMETER;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ if (NULL == buffers) {
+ /* Don't crash on NULL pointers */
+ vaStatus = VA_STATUS_ERROR_INVALID_BUFFER;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+ /* Must be within BeginPicture / EndPicture */
+ ASSERT(obj_context->current_render_target != NULL);
+
+ if (num_buffers > obj_context->num_buffers) {
+ free(obj_context->buffer_list);
+
+ obj_context->buffer_list = (object_buffer_p *) calloc(1, sizeof(object_buffer_p) * num_buffers);
+ if (obj_context->buffer_list == NULL) {
+ vaStatus = VA_STATUS_ERROR_ALLOCATION_FAILED;
+ obj_context->num_buffers = 0;
+ }
+
+ obj_context->num_buffers = num_buffers;
+ }
+ buffer_list = obj_context->buffer_list;
+
+ if (VA_STATUS_SUCCESS == vaStatus) {
+ /* Lookup buffer references */
+ for (i = 0; i < num_buffers; i++) {
+ object_buffer_p obj_buffer = BUFFER(buffers[i]);
+ if (NULL == obj_buffer) {
+ vaStatus = VA_STATUS_ERROR_INVALID_BUFFER;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+ buffer_list[i] = obj_buffer;
+ }
+ }
+
+ if (VA_STATUS_SUCCESS == vaStatus) {
+ vaStatus = obj_context->format_vtable->renderPicture(obj_context, buffer_list, num_buffers);
+ }
+
+ if (buffer_list) {
+ /* Release buffers */
+ for (i = 0; i < num_buffers; i++) {
+ if (buffer_list[i]) {
+ psb__suspend_buffer(driver_data, buffer_list[i]);
+ }
+ }
+ }
+
+ return vaStatus;
+}
+
+VAStatus psb_EndPicture(
+ VADriverContextP ctx,
+ VAContextID context
+)
+{
+ INIT_DRIVER_DATA
+ VAStatus vaStatus;
+ object_context_p obj_context;
+
+ obj_context = CONTEXT(context);
+ if (NULL == obj_context) {
+ vaStatus = VA_STATUS_ERROR_INVALID_CONTEXT;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ vaStatus = obj_context->format_vtable->endPicture(obj_context);
+
+ psb__information_message("---EndPicture for frame %d --\n", obj_context->frame_count);
+
+ obj_context->current_render_target = NULL;
+ obj_context->frame_count++;
+#ifdef DEBUG_TRACE
+ psb__trace_message("FrameCount = %03d\n", obj_context->frame_count);
+ psb__information_message("FrameCount = %03d\n", obj_context->frame_count);
+ psb__trace_message(NULL);
+#endif
+
+ return vaStatus;
+}
+
+
+static void psb__surface_usage(
+ psb_driver_data_p driver_data,
+ object_surface_p obj_surface,
+ int *decode, int *encode, int *rc_enable
+)
+{
+ object_context_p obj_context;
+ object_config_p obj_config;
+ VAEntrypoint tmp;
+ unsigned int eRCmode;
+ int i;
+
+
+ *decode = 0;
+ *encode = 0;
+ *rc_enable = 0;
+
+ obj_context = CONTEXT(obj_surface->context_id);
+ if (NULL == obj_context) /* not associate with a context */
+ return;
+
+ obj_config = CONFIG(obj_context->config_id);
+ if (NULL == obj_config) /* not have a validate context */
+ return;
+
+ tmp = obj_config->entrypoint;
+
+ *encode = (tmp == VAEntrypointEncSlice) || (tmp == VAEntrypointEncPicture);
+ *decode = (VAEntrypointVLD <= tmp) && (tmp <= VAEntrypointDeblocking);
+
+ if (*encode) {
+ for (i = 0; i < obj_config->attrib_count; i++) {
+ if (obj_config->attrib_list[i].type == VAConfigAttribRateControl)
+ break;
+ }
+
+ if (i >= obj_config->attrib_count)
+ eRCmode = VA_RC_NONE;
+ else
+ eRCmode = obj_config->attrib_list[i].value;
+
+ if (eRCmode == VA_RC_NONE)
+ *rc_enable = 0;
+ else
+ *rc_enable = 1;
+ }
+}
+
+VAStatus psb_SyncSurface(
+ VADriverContextP ctx,
+ VASurfaceID render_target
+)
+{
+ INIT_DRIVER_DATA
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ object_surface_p obj_surface;
+ int decode = 0, encode = 0, rc_enable = 0;
+
+ obj_surface = SURFACE(render_target);
+ if (NULL == obj_surface) {
+ vaStatus = VA_STATUS_ERROR_INVALID_SURFACE;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ /* The cur_displaying_surface indicates the surface being displayed by overlay.
+ * The diaplay_timestamp records the time point of put surface, which would
+ * be set to zero while using texture blit.*/
+
+ /* don't use mutex here for performance concern... */
+ //pthread_mutex_lock(&output->output_mutex);
+ if (render_target == driver_data->cur_displaying_surface)
+ vaStatus = VA_STATUS_ERROR_SURFACE_IN_DISPLAYING;
+ else if ((VA_INVALID_SURFACE != driver_data->cur_displaying_surface) /* use overlay */
+ && (render_target == driver_data->last_displaying_surface)) { /* It's the last displaying surface*/
+ object_surface_p cur_obj_surface = SURFACE(driver_data->cur_displaying_surface);
+ /* The flip operation on current displaying surface could be delayed to
+ * next VBlank and hadn't been finished yet. Then, the last displaying
+ * surface shouldn't be freed, because the hardware may not
+ * complete loading data of it. Any change of the last surface could
+ * have a impect on the scrren.*/
+ if (NULL != cur_obj_surface) {
+ while ((GetTickCount() - cur_obj_surface->display_timestamp) < PSB_MAX_FLIP_DELAY)
+ usleep(PSB_MAX_FLIP_DELAY * 1000);
+ }
+ }
+ //pthread_mutex_unlock(&output->output_mutex);
+
+ if (vaStatus != VA_STATUS_ERROR_SURFACE_IN_DISPLAYING)
+ vaStatus = psb_surface_sync(obj_surface->psb_surface);
+
+ /* report any error of decode for Android */
+ psb__surface_usage(driver_data, obj_surface, &decode, &encode, &rc_enable);
+
+ if (decode && IS_MRST(driver_data)) {
+ struct drm_lnc_video_getparam_arg arg;
+ uint32_t ret, handle, fw_status = 0;
+ handle = wsbmKBufHandle(wsbmKBuf(obj_surface->psb_surface->buf.drm_buf));
+ arg.key = IMG_VIDEO_DECODE_STATUS;
+ arg.arg = (uint64_t)((unsigned long) & handle);
+ arg.value = (uint64_t)((unsigned long) & fw_status);
+ ret = drmCommandWriteRead(driver_data->drm_fd, driver_data->getParamIoctlOffset,
+ &arg, sizeof(arg));
+ if (ret == 0) {
+ if (fw_status != 0)
+ vaStatus = VA_STATUS_ERROR_DECODING_ERROR;
+ } else {
+ psb__information_message("IMG_VIDEO_DECODE_STATUS ioctl return failed.\n");
+ vaStatus = VA_STATUS_ERROR_UNKNOWN;
+ }
+ }
+ DEBUG_FAILURE;
+ return vaStatus;
+}
+
+
+VAStatus psb_QuerySurfaceStatus(
+ VADriverContextP ctx,
+ VASurfaceID render_target,
+ VASurfaceStatus *status /* out */
+)
+{
+ INIT_DRIVER_DATA
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ object_surface_p obj_surface;
+ VASurfaceStatus surface_status;
+ int frame_skip = 0, encode = 0, decode = 0, rc_enable = 0;
+
+ obj_surface = SURFACE(render_target);
+ if (NULL == obj_surface) {
+ vaStatus = VA_STATUS_ERROR_INVALID_SURFACE;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+ if (NULL == status) {
+ vaStatus = VA_STATUS_ERROR_INVALID_PARAMETER;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ vaStatus = psb_surface_query_status(obj_surface->psb_surface, &surface_status);
+
+ /* The cur_displaying_surface indicates the surface being displayed by overlay.
+ * The diaplay_timestamp records the time point of put surface, which would
+ * be set to zero while using texture blit.*/
+ pthread_mutex_lock(&driver_data->output_mutex);
+ if (render_target == driver_data->cur_displaying_surface)
+ surface_status = VASurfaceDisplaying;
+ else if ((VA_INVALID_SURFACE != driver_data->cur_displaying_surface) /* use overlay */
+ && (render_target == driver_data->last_displaying_surface)) { /* It's the last displaying surface*/
+ object_surface_p cur_obj_surface = SURFACE(driver_data->cur_displaying_surface);
+ /*The flip operation on current displaying surface could be delayed to
+ * next VBlank and hadn't been finished yet. Then, the last displaying
+ * surface shouldn't be freed, because the hardware may not
+ * complete loading data of it. Any change of the last surface could
+ * have a impect on the scrren.*/
+ if ((NULL != cur_obj_surface)
+ && ((GetTickCount() - cur_obj_surface->display_timestamp) < PSB_MAX_FLIP_DELAY)) {
+ surface_status = VASurfaceDisplaying;
+ }
+ }
+ pthread_mutex_unlock(&driver_data->output_mutex);
+
+ /* try to get frameskip flag for encode */
+ psb__surface_usage(driver_data, obj_surface, &decode, &encode, &rc_enable);
+ if (encode && rc_enable) {
+ if (IS_MRST(driver_data))
+ lnc_surface_get_frameskip(driver_data, obj_surface->psb_surface, &frame_skip);
+ else
+ pnw_surface_get_frameskip(driver_data, obj_surface->psb_surface, &frame_skip);
+
+ if (frame_skip == 1)
+ surface_status = surface_status | VASurfaceSkipped;
+ }
+
+ *status = surface_status;
+
+ return vaStatus;
+}
+
+VAStatus psb_QuerySurfaceError(
+ VADriverContextP ctx,
+ VASurfaceID render_target,
+ VAStatus error_status,
+ void **error_info /*out*/
+)
+{
+ INIT_DRIVER_DATA
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ object_surface_p obj_surface;
+ uint32_t i;
+
+ obj_surface = SURFACE(render_target);
+ if (NULL == obj_surface) {
+ vaStatus = VA_STATUS_ERROR_INVALID_SURFACE;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ if (!IS_MRST(driver_data) || (driver_data->ec_enabled == 0)) {
+ psb__information_message("error concealment is not supported for this profile.\n");
+ error_info = NULL;
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ if (error_status == VA_STATUS_ERROR_DECODING_ERROR) {
+ drm_psb_msvdx_decode_status_t *decode_status = driver_data->msvdx_decode_status;
+ struct drm_lnc_video_getparam_arg arg;
+ uint32_t ret, handle;
+ handle = wsbmKBufHandle(wsbmKBuf(obj_surface->psb_surface->buf.drm_buf));
+
+ arg.key = IMG_VIDEO_MB_ERROR;
+ arg.arg = (uint64_t)((unsigned long) & handle);
+ arg.value = (uint64_t)decode_status;
+ ret = drmCommandWriteRead(driver_data->drm_fd, driver_data->getParamIoctlOffset,
+ &arg, sizeof(arg));
+
+ if (decode_status->num_error_slice > MAX_MB_ERRORS) {
+ psb__information_message("too much mb errors are reported.\n");
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+ i = 0;
+ for (i = 0; i < decode_status->num_error_slice; ++i) {
+ driver_data->surface_mb_error[i].status = 1;
+ driver_data->surface_mb_error[i].start_mb = decode_status->start_error_mb_list[i];
+ driver_data->surface_mb_error[i].end_mb = decode_status->end_error_mb_list[i];
+ driver_data->surface_mb_error[i].decode_error_type = decode_status->slice_missing_or_error[i];
+ }
+ driver_data->surface_mb_error[i].status = -1;
+ *error_info = driver_data->surface_mb_error;
+
+ return vaStatus;
+ } else {
+ error_info = NULL;
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+}
+
+VAStatus psb_LockSurface(
+ VADriverContextP ctx,
+ VASurfaceID surface,
+ unsigned int *fourcc, /* following are output argument */
+ unsigned int *luma_stride,
+ unsigned int *chroma_u_stride,
+ unsigned int *chroma_v_stride,
+ unsigned int *luma_offset,
+ unsigned int *chroma_u_offset,
+ unsigned int *chroma_v_offset,
+ unsigned int *buffer_name,
+ void **buffer
+)
+{
+ INIT_DRIVER_DATA
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ void *surface_data;
+ int ret;
+
+ object_surface_p obj_surface = SURFACE(surface);
+ psb_surface_p psb_surface;
+ if (NULL == obj_surface) {
+ vaStatus = VA_STATUS_ERROR_INVALID_SURFACE;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ psb_surface = obj_surface->psb_surface;
+ if (buffer_name) {
+ /* todo */
+ }
+
+ if (buffer) { /* map the surface buffer */
+ uint32_t srf_buf_ofs = 0;
+ ret = psb_buffer_map(&psb_surface->buf, &surface_data);
+ if (ret) {
+ *buffer = NULL;
+ vaStatus = VA_STATUS_ERROR_UNKNOWN;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+ srf_buf_ofs = psb_surface->buf.buffer_ofs;
+ *buffer = surface_data + srf_buf_ofs;
+ }
+
+ *fourcc = VA_FOURCC_NV12;
+ *luma_stride = psb_surface->stride;
+ *chroma_u_stride = psb_surface->stride;
+ *chroma_v_stride = psb_surface->stride;
+ *luma_offset = 0;
+ *chroma_u_offset = obj_surface->height * psb_surface->stride;
+ *chroma_v_offset = obj_surface->height * psb_surface->stride + 1;
+
+ return vaStatus;
+}
+
+
+VAStatus psb_UnlockSurface(
+ VADriverContextP ctx,
+ VASurfaceID surface
+)
+{
+ INIT_DRIVER_DATA
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+
+ object_surface_p obj_surface = SURFACE(surface);
+ if (NULL == obj_surface) {
+ vaStatus = VA_STATUS_ERROR_INVALID_SURFACE;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ psb_surface_p psb_surface = obj_surface->psb_surface;
+
+ psb_buffer_unmap(&psb_surface->buf);
+
+ return VA_STATUS_SUCCESS;
+}
+
+VAStatus psb_GetEGLClientBufferFromSurface(
+ VADriverContextP ctx,
+ VASurfaceID surface,
+ void **buffer
+)
+{
+ INIT_DRIVER_DATA
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+
+ object_surface_p obj_surface = SURFACE(surface);
+ if (NULL == obj_surface) {
+ vaStatus = VA_STATUS_ERROR_INVALID_SURFACE;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ psb_surface_p psb_surface = obj_surface->psb_surface;
+ *buffer = (void *)psb_surface->bc_buffer;
+
+ return vaStatus;
+}
+
+VAStatus psb_CreateSurfaceFromV4L2Buf(
+ VADriverContextP ctx,
+ int v4l2_fd, /* file descriptor of V4L2 device */
+ struct v4l2_format *v4l2_fmt, /* format of V4L2 */
+ struct v4l2_buffer *v4l2_buf, /* V4L2 buffer */
+ VASurfaceID *surface /* out */
+)
+{
+ INIT_DRIVER_DATA;
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ int surfaceID;
+ object_surface_p obj_surface;
+ psb_surface_p psb_surface;
+ int width, height, buf_stride, buf_offset, size;
+ unsigned long *user_ptr = NULL;
+
+ if (IS_MRST(driver_data) == 0 && IS_MFLD(driver_data) == 0) {
+ psb__error_message("CreateSurfaceFromV4L2Buf isn't supported on non-MRST platform\n");
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ /* Todo:
+ * sanity check if the v4l2 device on MRST is supported
+ */
+ if (V4L2_MEMORY_USERPTR == v4l2_buf->memory) {
+ unsigned long tmp = (unsigned long)(v4l2_buf->m.userptr);
+
+ if (tmp & 0xfff) {
+ psb__error_message("The buffer address 0x%08x must be page aligned\n", tmp);
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+ }
+
+ surfaceID = object_heap_allocate(&driver_data->surface_heap);
+ obj_surface = SURFACE(surfaceID);
+ if (NULL == obj_surface) {
+ vaStatus = VA_STATUS_ERROR_ALLOCATION_FAILED;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+ MEMSET_OBJECT(obj_surface, struct object_surface_s);
+
+ width = v4l2_fmt->fmt.pix.width;
+ height = v4l2_fmt->fmt.pix.height;
+
+ buf_stride = width; /* ? */
+ buf_offset = v4l2_buf->m.offset;
+ size = v4l2_buf->length;
+
+ psb__information_message("Create Surface from V4L2 buffer: %dx%d, stride=%d, buffer offset=0x%08x, size=%d\n",
+ width, height, buf_stride, buf_offset, size);
+
+ obj_surface->surface_id = surfaceID;
+ *surface = surfaceID;
+ obj_surface->context_id = -1;
+ obj_surface->width = width;
+ obj_surface->height = height;
+ obj_surface->subpictures = NULL;
+ obj_surface->subpic_count = 0;
+ obj_surface->derived_imgcnt = 0;
+ obj_surface->display_timestamp = 0;
+
+ psb_surface = (psb_surface_p) calloc(1, sizeof(struct psb_surface_s));
+ if (NULL == psb_surface) {
+ object_heap_free(&driver_data->surface_heap, (object_base_p) obj_surface);
+ obj_surface->surface_id = VA_INVALID_SURFACE;
+
+ vaStatus = VA_STATUS_ERROR_ALLOCATION_FAILED;
+
+ DEBUG_FAILURE;
+
+ return vaStatus;
+ }
+
+ /* current assume it is NV12 */
+ if (IS_MRST(driver_data))
+ vaStatus = psb_surface_create_camera(driver_data, width, height, buf_stride, size, psb_surface, 1, buf_offset);
+ else {
+ if (V4L2_MEMORY_USERPTR == v4l2_buf->memory)
+ user_ptr = (unsigned long *)(v4l2_buf->m.userptr);
+ else {
+ user_ptr = mmap(NULL /* start anywhere */ ,
+ v4l2_buf->length,
+ PROT_READ ,
+ MAP_SHARED /* recommended */ ,
+ v4l2_fd, v4l2_buf->m.offset);
+ }
+
+ if (NULL != user_ptr && MAP_FAILED != user_ptr)
+ vaStatus = psb_surface_create_camera_from_ub(driver_data, width, height,
+ buf_stride, size, psb_surface, 1, buf_offset, user_ptr);
+ else {
+ DEBUG_FAILURE;
+ vaStatus = VA_STATUS_ERROR_UNKNOWN;
+ }
+ }
+
+ if (VA_STATUS_SUCCESS != vaStatus) {
+ free(psb_surface);
+ object_heap_free(&driver_data->surface_heap, (object_base_p) obj_surface);
+ obj_surface->surface_id = VA_INVALID_SURFACE;
+
+ DEBUG_FAILURE;
+
+ return vaStatus;
+ }
+
+ memset(psb_surface->extra_info, 0, sizeof(psb_surface->extra_info));
+ psb_surface->extra_info[4] = VA_FOURCC_NV12; /* temp treat is as IYUV */
+
+ obj_surface->psb_surface = psb_surface;
+
+ /* Error recovery */
+ if (VA_STATUS_SUCCESS != vaStatus) {
+ object_surface_p obj_surface = SURFACE(*surface);
+ psb__destroy_surface(driver_data, obj_surface);
+ *surface = VA_INVALID_SURFACE;
+ }
+
+ return vaStatus;
+}
+
+
+VAStatus psb_CreateSurfacesForUserPtr(
+ VADriverContextP ctx,
+ int width,
+ int height,
+ int format,
+ int num_surfaces,
+ VASurfaceID *surface_list, /* out */
+ unsigned size, /* total buffer size need to be allocated */
+ unsigned int fourcc, /* expected fourcc */
+ unsigned int luma_stride, /* luma stride, could be width aligned with a special value */
+ unsigned int chroma_u_stride, /* chroma stride */
+ unsigned int chroma_v_stride,
+ unsigned int luma_offset, /* could be 0 */
+ unsigned int chroma_u_offset, /* UV offset from the beginning of the memory */
+ unsigned int chroma_v_offset
+)
+{
+ INIT_DRIVER_DATA
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ int i, height_origin;
+ unsigned long buffer_stride;
+
+ psb__information_message("Create surface: width %d, height %d, format 0x%08x"
+ "\n\t\t\t\t\tnum_surface %d, buffer size %d, fourcc 0x%08x"
+ "\n\t\t\t\t\tluma_stride %d, chroma u stride %d, chroma v stride %d"
+ "\n\t\t\t\t\tluma_offset %d, chroma u offset %d, chroma v offset %d\n",
+ width, height, format,
+ num_surfaces, size, fourcc,
+ luma_stride, chroma_u_stride, chroma_v_stride,
+ luma_offset, chroma_u_offset, chroma_v_offset);
+
+ if (num_surfaces <= 0) {
+ vaStatus = VA_STATUS_ERROR_INVALID_PARAMETER;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ if (NULL == surface_list) {
+ vaStatus = VA_STATUS_ERROR_INVALID_SURFACE;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ /* We only support one format */
+ if ((VA_RT_FORMAT_YUV420 != format)
+ && (VA_RT_FORMAT_YUV422 != format)) {
+ vaStatus = VA_STATUS_ERROR_UNSUPPORTED_RT_FORMAT;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ vaStatus = psb__checkSurfaceDimensions(driver_data, width, height);
+ if (VA_STATUS_SUCCESS != vaStatus) {
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ if ((size < width * height * 1.5) ||
+ (luma_stride < width) ||
+ (chroma_u_stride * 2 < width) ||
+ (chroma_v_stride * 2 < width) ||
+ (chroma_u_offset < luma_offset + width * height) ||
+ (chroma_v_offset < luma_offset + width * height)) {
+
+ vaStatus = VA_STATUS_ERROR_INVALID_PARAMETER;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ height_origin = height;
+
+ for (i = 0; i < num_surfaces; i++) {
+ int surfaceID;
+ object_surface_p obj_surface;
+ psb_surface_p psb_surface;
+
+ surfaceID = object_heap_allocate(&driver_data->surface_heap);
+ obj_surface = SURFACE(surfaceID);
+ if (NULL == obj_surface) {
+ vaStatus = VA_STATUS_ERROR_ALLOCATION_FAILED;
+ DEBUG_FAILURE;
+ break;
+ }
+ MEMSET_OBJECT(obj_surface, struct object_surface_s);
+
+ obj_surface->surface_id = surfaceID;
+ surface_list[i] = surfaceID;
+ obj_surface->context_id = -1;
+ obj_surface->width = width;
+ obj_surface->height = height;
+ obj_surface->width_r = width;
+ obj_surface->height_r = height;
+ obj_surface->height_origin = height_origin;
+
+ psb_surface = (psb_surface_p) calloc(1, sizeof(struct psb_surface_s));
+ if (NULL == psb_surface) {
+ object_heap_free(&driver_data->surface_heap, (object_base_p) obj_surface);
+ obj_surface->surface_id = VA_INVALID_SURFACE;
+
+ vaStatus = VA_STATUS_ERROR_ALLOCATION_FAILED;
+
+ DEBUG_FAILURE;
+ break;
+ }
+
+ switch (format) {
+ case VA_RT_FORMAT_YUV422:
+ fourcc = VA_FOURCC_YV16;
+ break;
+ case VA_RT_FORMAT_YUV420:
+ default:
+ fourcc = VA_FOURCC_NV12;
+ break;
+ }
+
+ vaStatus = psb_surface_create_for_userptr(driver_data, width, height,
+ size,
+ fourcc,
+ luma_stride,
+ chroma_u_stride,
+ chroma_v_stride,
+ luma_offset,
+ chroma_u_offset,
+ chroma_v_offset,
+ psb_surface
+ );
+
+ if (VA_STATUS_SUCCESS != vaStatus) {
+ free(psb_surface);
+ object_heap_free(&driver_data->surface_heap, (object_base_p) obj_surface);
+ obj_surface->surface_id = VA_INVALID_SURFACE;
+
+ DEBUG_FAILURE;
+ break;
+ }
+ buffer_stride = psb_surface->stride;
+ /* by default, surface fourcc is NV12 */
+ memset(psb_surface->extra_info, 0, sizeof(psb_surface->extra_info));
+ psb_surface->extra_info[4] = fourcc;
+
+ obj_surface->psb_surface = psb_surface;
+ }
+
+ /* Error recovery */
+ if (VA_STATUS_SUCCESS != vaStatus) {
+ /* surface_list[i-1] was the last successful allocation */
+ for (; i--;) {
+ object_surface_p obj_surface = SURFACE(surface_list[i]);
+ psb__destroy_surface(driver_data, obj_surface);
+ surface_list[i] = VA_INVALID_SURFACE;
+ }
+ }
+
+
+ return vaStatus;
+}
+
+
+
+int LOCK_HARDWARE(psb_driver_data_p driver_data)
+{
+ char ret = 0;
+
+ if (driver_data->dri2 || driver_data->dri_dummy)
+ return 0;
+
+ pthread_mutex_lock(&driver_data->drm_mutex);
+ DRM_CAS(driver_data->drm_lock, driver_data->drm_context,
+ (DRM_LOCK_HELD | driver_data->drm_context), ret);
+ if (ret) {
+ ret = drmGetLock(driver_data->drm_fd, driver_data->drm_context, 0);
+ /* driver_data->contended_lock=1; */
+ }
+
+ return ret;
+}
+
+int UNLOCK_HARDWARE(psb_driver_data_p driver_data)
+{
+ /* driver_data->contended_lock=0; */
+ if (driver_data->dri2 || driver_data->dri_dummy)
+ return 0;
+
+ DRM_UNLOCK(driver_data->drm_fd, driver_data->drm_lock, driver_data->drm_context);
+ pthread_mutex_unlock(&driver_data->drm_mutex);
+
+ return 0;
+}
+
+
+static void psb__deinitDRM(VADriverContextP ctx)
+{
+ INIT_DRIVER_DATA
+
+ if (driver_data->main_pool) {
+ driver_data->main_pool->takeDown(driver_data->main_pool);
+ driver_data->main_pool = NULL;
+ }
+ if (driver_data->fence_mgr) {
+ wsbmFenceMgrTTMTakedown(driver_data->fence_mgr);
+ driver_data->fence_mgr = NULL;
+ }
+
+ if (wsbmIsInitialized())
+ wsbmTakedown();
+
+ close(driver_data->drm_fd);
+ driver_data->drm_fd = -1;
+}
+
+
+static VAStatus psb__initDRI(VADriverContextP ctx)
+{
+ INIT_DRIVER_DATA
+ struct dri_state *dri_state = (struct dri_state *)ctx->dri_state;
+
+ assert(dri_state);
+ assert(dri_state->driConnectedFlag == VA_DRI2 ||
+ dri_state->driConnectedFlag == VA_DUMMY);
+
+ driver_data->drm_fd = dri_state->fd;
+ driver_data->dri_dummy = (dri_state->driConnectedFlag == VA_DUMMY);
+ driver_data->dri2 = (dri_state->driConnectedFlag == VA_DRI2);
+ driver_data->ws_priv = NULL;
+ driver_data->bus_id = NULL;
+
+ return VA_STATUS_SUCCESS;
+}
+
+
+static VAStatus psb__initTTM(VADriverContextP ctx)
+{
+ INIT_DRIVER_DATA
+
+ const char drm_ext[] = "psb_ttm_placement_alphadrop";
+ union drm_psb_extension_arg arg;
+ struct _WsbmBufferPool *pool;
+ int ret;
+ const char exec_ext[] = "psb_ttm_execbuf_alphadrop";
+ union drm_psb_extension_arg exec_arg;
+ const char lncvideo_getparam_ext[] = "lnc_video_getparam";
+ union drm_psb_extension_arg lncvideo_getparam_arg;
+
+ /* init wsbm */
+ ret = wsbmInit(wsbmNullThreadFuncs(), psbVNodeFuncs());
+ if (ret) {
+ psb__error_message("failed initializing libwsbm.\n");
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ strncpy(arg.extension, drm_ext, sizeof(arg.extension));
+ /* FIXME: should check dri enabled?
+ * it seems not init dri here at all
+ */
+ ret = drmCommandWriteRead(driver_data->drm_fd, DRM_PSB_EXTENSION,
+ &arg, sizeof(arg));
+ if (ret != 0 || !arg.rep.exists) {
+ psb__error_message("failed to detect DRM extension \"%s\".\n",
+ drm_ext);
+ driver_data->main_pool = NULL;
+ return VA_STATUS_ERROR_UNKNOWN;
+ } else {
+ pool = wsbmTTMPoolInit(driver_data->drm_fd,
+ arg.rep.driver_ioctl_offset);
+ if (pool == NULL) {
+ psb__error_message("failed to get ttm pool\n");
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+ driver_data->main_pool = pool;
+ }
+
+ strncpy(exec_arg.extension, exec_ext, sizeof(exec_arg.extension));
+ ret = drmCommandWriteRead(driver_data->drm_fd, DRM_PSB_EXTENSION, &exec_arg,
+ sizeof(exec_arg));
+ if (ret != 0 || !exec_arg.rep.exists) {
+ psb__error_message("failed to detect DRM extension \"%s\".\n",
+ exec_ext);
+ return FALSE;
+ }
+ driver_data->execIoctlOffset = exec_arg.rep.driver_ioctl_offset;
+
+ strncpy(lncvideo_getparam_arg.extension, lncvideo_getparam_ext, sizeof(lncvideo_getparam_arg.extension));
+ ret = drmCommandWriteRead(driver_data->drm_fd, DRM_PSB_EXTENSION, &lncvideo_getparam_arg,
+ sizeof(lncvideo_getparam_arg));
+ if (ret != 0 || !lncvideo_getparam_arg.rep.exists) {
+ psb__error_message("failed to detect DRM extension \"%s\".\n",
+ lncvideo_getparam_ext);
+ /* return FALSE; */ /* not reture FALSE, so it still can run */
+ }
+ driver_data->getParamIoctlOffset = lncvideo_getparam_arg.rep.driver_ioctl_offset;
+ return VA_STATUS_SUCCESS;
+}
+
+static VAStatus psb__initDRM(VADriverContextP ctx)
+{
+ VAStatus vaStatus;
+
+ vaStatus = psb__initDRI(ctx);
+
+ if (vaStatus == VA_STATUS_SUCCESS)
+ return psb__initTTM(ctx);
+ else
+ return vaStatus;
+}
+
+VAStatus psb_Terminate(VADriverContextP ctx)
+{
+ INIT_DRIVER_DATA
+ object_subpic_p obj_subpic;
+ object_image_p obj_image;
+ object_buffer_p obj_buffer;
+ object_surface_p obj_surface;
+ object_context_p obj_context;
+ object_config_p obj_config;
+ object_heap_iterator iter;
+
+ psb__information_message("vaTerminate: begin to tear down\n");
+
+ if (driver_data->bcd_registered != 0)
+ if (VA_STATUS_SUCCESS != psb_release_video_bcd(ctx))
+ return VA_STATUS_ERROR_UNKNOWN;
+
+ /* Clean up left over contexts */
+ obj_context = (object_context_p) object_heap_first(&driver_data->context_heap, &iter);
+ while (obj_context) {
+ psb__information_message("vaTerminate: contextID %08x still allocated, destroying\n", obj_context->base.id);
+ psb__destroy_context(driver_data, obj_context);
+ obj_context = (object_context_p) object_heap_next(&driver_data->context_heap, &iter);
+ }
+ object_heap_destroy(&driver_data->context_heap);
+
+ /* Clean up SubpicIDs */
+ obj_subpic = (object_subpic_p) object_heap_first(&driver_data->subpic_heap, &iter);
+ while (obj_subpic) {
+ psb__information_message("vaTerminate: subpictureID %08x still allocated, destroying\n", obj_subpic->base.id);
+ psb__destroy_subpicture(driver_data, obj_subpic);
+ obj_subpic = (object_subpic_p) object_heap_next(&driver_data->subpic_heap, &iter);
+ }
+ object_heap_destroy(&driver_data->subpic_heap);
+
+ /* Clean up ImageIDs */
+ obj_image = (object_image_p) object_heap_first(&driver_data->image_heap, &iter);
+ while (obj_image) {
+ psb__information_message("vaTerminate: imageID %08x still allocated, destroying\n", obj_image->base.id);
+ psb__destroy_image(driver_data, obj_image);
+ obj_image = (object_image_p) object_heap_next(&driver_data->image_heap, &iter);
+ }
+ object_heap_destroy(&driver_data->image_heap);
+
+ /* Clean up left over buffers */
+ obj_buffer = (object_buffer_p) object_heap_first(&driver_data->buffer_heap, &iter);
+ while (obj_buffer) {
+ psb__information_message("vaTerminate: bufferID %08x still allocated, destroying\n", obj_buffer->base.id);
+ psb__destroy_buffer(driver_data, obj_buffer);
+ obj_buffer = (object_buffer_p) object_heap_next(&driver_data->buffer_heap, &iter);
+ }
+ object_heap_destroy(&driver_data->buffer_heap);
+
+ /* Clean up left over surfaces */
+ obj_surface = (object_surface_p) object_heap_first(&driver_data->surface_heap, &iter);
+ while (obj_surface) {
+ psb__information_message("vaTerminate: surfaceID %08x still allocated, destroying\n", obj_surface->base.id);
+ psb__destroy_surface(driver_data, obj_surface);
+ obj_surface = (object_surface_p) object_heap_next(&driver_data->surface_heap, &iter);
+ }
+ object_heap_destroy(&driver_data->surface_heap);
+
+ /* Clean up configIDs */
+ obj_config = (object_config_p) object_heap_first(&driver_data->config_heap, &iter);
+ while (obj_config) {
+ object_heap_free(&driver_data->config_heap, (object_base_p) obj_config);
+ obj_config = (object_config_p) object_heap_next(&driver_data->config_heap, &iter);
+ }
+ object_heap_destroy(&driver_data->config_heap);
+
+
+ if (driver_data->camera_bo) {
+ psb__information_message("vaTerminate: clearup camera global BO\n");
+
+ psb_buffer_destroy((psb_buffer_p)driver_data->camera_bo);
+ free(driver_data->camera_bo);
+ driver_data->camera_bo = NULL;
+ }
+
+ if (driver_data->rar_bo) {
+ psb__information_message("vaTerminate: clearup RAR global BO\n");
+
+ psb_buffer_destroy((psb_buffer_p)driver_data->rar_bo);
+ free(driver_data->rar_bo);
+ driver_data->rar_bo = NULL;
+ }
+
+ if (driver_data->rar_rd) {
+ RAR_desc_t *rar_rd = driver_data->rar_rd;
+
+ psb__information_message("vaTerminate: tear down RAR device\n");
+
+ RAR_fini(rar_rd);
+ free(driver_data->rar_rd);
+ driver_data->rar_rd = NULL;
+ }
+
+ if (driver_data->ws_priv) {
+ psb__information_message("vaTerminate: tear down output portion\n");
+
+ psb_deinitOutput(ctx);
+ driver_data->ws_priv = NULL;
+ }
+
+ psb__information_message("vaTerminate: de-initialized DRM\n");
+
+ psb__deinitDRM(ctx);
+
+ if (driver_data->msvdx_decode_status)
+ free(driver_data->msvdx_decode_status);
+
+ if (driver_data->surface_mb_error)
+ free(driver_data->surface_mb_error);
+
+ free(ctx->pDriverData);
+ ctx->pDriverData = NULL;
+ psb__information_message("vaTerminate: cleanup successfully, goodbye\n\n");
+
+ psb__close_log();
+
+ return VA_STATUS_SUCCESS;
+}
+
+EXPORT VAStatus __vaDriverInit_0_31(VADriverContextP ctx)
+{
+ psb_driver_data_p driver_data;
+ struct VADriverVTableTPI *tpi;
+ struct VADriverVTableEGL *va_egl;
+ int result;
+
+#ifdef DEBUG_TRACE
+ /* make gdb always stop here */
+ signal(SIGUSR1, SIG_IGN);
+ kill(getpid(), SIGUSR1);
+#endif
+
+ psb__open_log();
+
+ psb__information_message("vaInitilize: start the journey\n");
+
+ ctx->version_major = 0;
+ ctx->version_minor = 31;
+
+ ctx->max_profiles = PSB_MAX_PROFILES;
+ ctx->max_entrypoints = PSB_MAX_ENTRYPOINTS;
+ ctx->max_attributes = PSB_MAX_CONFIG_ATTRIBUTES;
+ ctx->max_image_formats = PSB_MAX_IMAGE_FORMATS;
+ ctx->max_subpic_formats = PSB_MAX_SUBPIC_FORMATS;
+ ctx->max_display_attributes = PSB_MAX_DISPLAY_ATTRIBUTES;
+
+ ctx->vtable->vaTerminate = psb_Terminate;
+ ctx->vtable->vaQueryConfigEntrypoints = psb_QueryConfigEntrypoints;
+ ctx->vtable->vaTerminate = psb_Terminate;
+ ctx->vtable->vaQueryConfigProfiles = psb_QueryConfigProfiles;
+ ctx->vtable->vaQueryConfigEntrypoints = psb_QueryConfigEntrypoints;
+ ctx->vtable->vaQueryConfigAttributes = psb_QueryConfigAttributes;
+ ctx->vtable->vaCreateConfig = psb_CreateConfig;
+ ctx->vtable->vaDestroyConfig = psb_DestroyConfig;
+ ctx->vtable->vaGetConfigAttributes = psb_GetConfigAttributes;
+ ctx->vtable->vaCreateSurfaces = psb_CreateSurfaces;
+ ctx->vtable->vaDestroySurfaces = psb_DestroySurfaces;
+ ctx->vtable->vaCreateContext = psb_CreateContext;
+ ctx->vtable->vaDestroyContext = psb_DestroyContext;
+ ctx->vtable->vaCreateBuffer = psb_CreateBuffer;
+ ctx->vtable->vaBufferSetNumElements = psb_BufferSetNumElements;
+ ctx->vtable->vaMapBuffer = psb_MapBuffer;
+ ctx->vtable->vaUnmapBuffer = psb_UnmapBuffer;
+ ctx->vtable->vaDestroyBuffer = psb_DestroyBuffer;
+ ctx->vtable->vaBeginPicture = psb_BeginPicture;
+ ctx->vtable->vaRenderPicture = psb_RenderPicture;
+ ctx->vtable->vaEndPicture = psb_EndPicture;
+ ctx->vtable->vaSyncSurface = psb_SyncSurface;
+ ctx->vtable->vaQuerySurfaceStatus = psb_QuerySurfaceStatus;
+ ctx->vtable->vaQuerySurfaceError = psb_QuerySurfaceError;
+ ctx->vtable->vaPutSurface = psb_PutSurface;
+ ctx->vtable->vaQueryImageFormats = psb_QueryImageFormats;
+ ctx->vtable->vaCreateImage = psb_CreateImage;
+ ctx->vtable->vaDeriveImage = psb_DeriveImage;
+ ctx->vtable->vaDestroyImage = psb_DestroyImage;
+ ctx->vtable->vaSetImagePalette = psb_SetImagePalette;
+ ctx->vtable->vaGetImage = psb_GetImage;
+ ctx->vtable->vaPutImage = psb_PutImage;
+ ctx->vtable->vaQuerySubpictureFormats = psb_QuerySubpictureFormats;
+ ctx->vtable->vaCreateSubpicture = psb_CreateSubpicture;
+ ctx->vtable->vaDestroySubpicture = psb_DestroySubpicture;
+ ctx->vtable->vaSetSubpictureImage = psb_SetSubpictureImage;
+ ctx->vtable->vaSetSubpictureChromakey = psb_SetSubpictureChromakey;
+ ctx->vtable->vaSetSubpictureGlobalAlpha = psb_SetSubpictureGlobalAlpha;
+ ctx->vtable->vaAssociateSubpicture = psb_AssociateSubpicture;
+ ctx->vtable->vaDeassociateSubpicture = psb_DeassociateSubpicture;
+ ctx->vtable->vaQueryDisplayAttributes = psb_QueryDisplayAttributes;
+ ctx->vtable->vaGetDisplayAttributes = psb_GetDisplayAttributes;
+ ctx->vtable->vaSetDisplayAttributes = psb_SetDisplayAttributes;
+ ctx->vtable->vaBufferInfo = psb_BufferInfo;
+ ctx->vtable->vaLockSurface = psb_LockSurface;
+ ctx->vtable->vaUnlockSurface = psb_UnlockSurface;
+ ctx->vtable_tpi = calloc(1, sizeof(struct VADriverVTableTPI));
+ if (NULL == ctx->vtable_tpi)
+ return VA_STATUS_ERROR_ALLOCATION_FAILED;
+
+ tpi = (struct VADriverVTableTPI *)ctx->vtable_tpi;
+ tpi->vaCreateSurfaceFromCIFrame = psb_CreateSurfaceFromCIFrame;
+ tpi->vaCreateSurfaceFromV4L2Buf = psb_CreateSurfaceFromV4L2Buf;
+ tpi->vaCreateSurfacesForUserPtr = psb_CreateSurfacesForUserPtr;
+
+#ifdef ANDROID
+ tpi->vaPutSurfaceBuf = psb_PutSurfaceBuf;
+#endif
+
+ ctx->vtable_egl = calloc(1, sizeof(struct VADriverVTableEGL));
+ if (NULL == ctx->vtable_egl)
+ return VA_STATUS_ERROR_ALLOCATION_FAILED;
+
+ va_egl = (struct VADriverVTableEGL *)ctx->vtable_egl;
+ va_egl->vaGetEGLClientBufferFromSurface = psb_GetEGLClientBufferFromSurface;
+
+ driver_data = (psb_driver_data_p) calloc(1, sizeof(*driver_data));
+ ctx->pDriverData = (void *) driver_data;
+ if (NULL == driver_data) {
+ if (ctx->vtable_tpi)
+ free(ctx->vtable_tpi);
+ if (ctx->vtable_egl)
+ free(ctx->vtable_egl);
+ return VA_STATUS_ERROR_ALLOCATION_FAILED;
+ }
+
+ if (VA_STATUS_SUCCESS != psb__initDRM(ctx)) {
+ free(ctx->pDriverData);
+ ctx->pDriverData = NULL;
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ pthread_mutex_init(&driver_data->drm_mutex, NULL);
+
+ /*
+ * To read PBO.MSR.CCF Mode and Status Register C-Spec -p112
+ */
+#define PCI_PORT5_REG80_VIDEO_SD_DISABLE 0x0008
+#define PCI_PORT5_REG80_VIDEO_HD_DISABLE 0x0010
+
+#if 0
+ struct drm_psb_hw_info hw_info;
+ do {
+ result = drmCommandRead(driver_data->drm_fd, DRM_PSB_HW_INFO, &hw_info, sizeof(hw_info));
+ } while (result == EAGAIN);
+
+ if (result != 0) {
+ psb__deinitDRM(ctx);
+ free(ctx->pDriverData);
+ ctx->pDriverData = NULL;
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ driver_data->video_sd_disabled = !!(hw_info.caps & PCI_PORT5_REG80_VIDEO_SD_DISABLE);
+ driver_data->video_hd_disabled = !!(hw_info.caps & PCI_PORT5_REG80_VIDEO_HD_DISABLE);
+ psb__information_message("hw_info: rev_id = %08x capabilities = %08x\n", hw_info.rev_id, hw_info.caps);
+ psb__information_message("hw_info: video_sd_disable=%d,video_hd_disable=%d\n",
+ driver_data->video_sd_disabled, driver_data->video_hd_disabled);
+ if (driver_data->video_sd_disabled != 0) {
+ psb__error_message("MRST: hw_info shows video_sd_disable is true,fix it manually\n");
+ driver_data->video_sd_disabled = 0;
+ }
+ if (driver_data->video_hd_disabled != 0) {
+ psb__error_message("MRST: hw_info shows video_hd_disable is true,fix it manually\n");
+ driver_data->video_hd_disabled = 0;
+ }
+#endif
+
+ if (0 != psb_get_device_info(ctx)) {
+ psb__error_message("ERROR: failed to get video device info\n");
+ driver_data->encode_supported = 1;
+ driver_data->decode_supported = 1;
+ driver_data->hd_encode_supported = 1;
+ driver_data->hd_decode_supported = 1;
+ }
+
+ driver_data->use_xrandr_thread = 0;
+ driver_data->xrandr_thread_id = 0;
+ driver_data->rotate = VA_ROTATION_NONE;
+ driver_data->video_rotate = VA_ROTATION_NONE;
+ driver_data->xrandr_dirty = 0;
+ driver_data->xrandr_update = 0;
+ struct dri_state *dri_state = (struct dri_state *)ctx->dri_state;
+ if (dri_state->driConnectedFlag == VA_DRI1 ||
+ dri_state->driConnectedFlag == VA_DRI2 ||
+ dri_state->driConnectedFlag == VA_DUMMY) {
+ if (VA_STATUS_SUCCESS != psb_initOutput(ctx)) {
+ psb__deinitDRM(ctx);
+ free(ctx->pDriverData);
+ ctx->pDriverData = NULL;
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+ }
+
+ driver_data->msvdx_context_base = (((unsigned int) getpid()) & 0xffff) << 16;
+
+ // driver_data->profile2Format[VAProfileMPEG2Simple] = &psb_MPEG2_vtable;
+ driver_data->profile2Format[VAProfileMPEG2Main][VAEntrypointVLD] = &psb_MPEG2_vtable;
+ driver_data->profile2Format[VAProfileMPEG2Main][VAEntrypointMoComp] = &psb_MPEG2MC_vtable;
+
+ driver_data->profile2Format[VAProfileMPEG4Simple][VAEntrypointVLD] = &psb_MPEG4_vtable;
+ driver_data->profile2Format[VAProfileMPEG4AdvancedSimple][VAEntrypointVLD] = &psb_MPEG4_vtable;
+ // driver_data->profile2Format[VAProfileMPEG4Main][VAEntrypointVLD] = &psb_MPEG4_vtable;
+
+ driver_data->profile2Format[VAProfileH264Baseline][VAEntrypointVLD] = &psb_H264_vtable;
+ driver_data->profile2Format[VAProfileH264Main][VAEntrypointVLD] = &psb_H264_vtable;
+ driver_data->profile2Format[VAProfileH264High][VAEntrypointVLD] = &psb_H264_vtable;
+ driver_data->profile2Format[VAProfileH264ConstrainedBaseline][VAEntrypointVLD] = &psb_H264_vtable;
+
+ driver_data->profile2Format[VAProfileVC1Simple][VAEntrypointVLD] = &psb_VC1_vtable;
+ driver_data->profile2Format[VAProfileVC1Main][VAEntrypointVLD] = &psb_VC1_vtable;
+ driver_data->profile2Format[VAProfileVC1Advanced][VAEntrypointVLD] = &psb_VC1_vtable;
+ driver_data->profile2Format[VAProfileH264ConstrainedBaseline][VAEntrypointVLD] = &psb_H264_vtable;
+
+ if (IS_MFLD(driver_data)) {
+ driver_data->profile2Format[VAProfileH263Baseline][VAEntrypointEncSlice] = &pnw_H263ES_vtable;
+ driver_data->profile2Format[VAProfileH264Baseline][VAEntrypointEncSlice] = &pnw_H264ES_vtable;
+ driver_data->profile2Format[VAProfileH264Main][VAEntrypointEncSlice] = &pnw_H264ES_vtable;
+ driver_data->profile2Format[VAProfileMPEG4Simple][VAEntrypointEncSlice] = &pnw_MPEG4ES_vtable;
+ driver_data->profile2Format[VAProfileMPEG4AdvancedSimple][VAEntrypointEncSlice] = &pnw_MPEG4ES_vtable;
+ driver_data->profile2Format[VAProfileJPEGBaseline][VAEntrypointEncPicture] = &pnw_JPEG_vtable;
+
+ driver_data->profile2Format[VAProfileMPEG2Main][VAEntrypointVLD] = &pnw_MPEG2_vtable;
+
+ driver_data->profile2Format[VAProfileMPEG4Simple][VAEntrypointVLD] = &pnw_MPEG4_vtable;
+ driver_data->profile2Format[VAProfileMPEG4AdvancedSimple][VAEntrypointVLD] = &pnw_MPEG4_vtable;
+
+ driver_data->profile2Format[VAProfileH264Baseline][VAEntrypointVLD] = &pnw_H264_vtable;
+ driver_data->profile2Format[VAProfileH264Main][VAEntrypointVLD] = &pnw_H264_vtable;
+ driver_data->profile2Format[VAProfileH264High][VAEntrypointVLD] = &pnw_H264_vtable;
+
+ driver_data->profile2Format[VAProfileVC1Simple][VAEntrypointVLD] = &pnw_VC1_vtable;
+ driver_data->profile2Format[VAProfileVC1Main][VAEntrypointVLD] = &pnw_VC1_vtable;
+ driver_data->profile2Format[VAProfileVC1Advanced][VAEntrypointVLD] = &pnw_VC1_vtable;
+ driver_data->profile2Format[VAProfileH264ConstrainedBaseline][VAEntrypointVLD] = &pnw_H264_vtable;
+ } else if (IS_MRST(driver_data) && driver_data->encode_supported) {
+ driver_data->profile2Format[VAProfileH263Baseline][VAEntrypointEncSlice] = &lnc_H263ES_vtable;
+ driver_data->profile2Format[VAProfileH264Baseline][VAEntrypointEncSlice] = &lnc_H264ES_vtable;
+ driver_data->profile2Format[VAProfileH264Main][VAEntrypointEncSlice] = &lnc_H264ES_vtable;
+ driver_data->profile2Format[VAProfileMPEG4Simple][VAEntrypointEncSlice] = &lnc_MPEG4ES_vtable;
+ driver_data->profile2Format[VAProfileMPEG4AdvancedSimple][VAEntrypointEncSlice] = &lnc_MPEG4ES_vtable;
+ }
+
+ result = object_heap_init(&driver_data->config_heap, sizeof(struct object_config_s), CONFIG_ID_OFFSET);
+ ASSERT(result == 0);
+
+ result = object_heap_init(&driver_data->context_heap, sizeof(struct object_context_s), CONTEXT_ID_OFFSET);
+ ASSERT(result == 0);
+
+ result = object_heap_init(&driver_data->surface_heap, sizeof(struct object_surface_s), SURFACE_ID_OFFSET);
+ ASSERT(result == 0);
+
+ result = object_heap_init(&driver_data->buffer_heap, sizeof(struct object_buffer_s), BUFFER_ID_OFFSET);
+ ASSERT(result == 0);
+
+ result = object_heap_init(&driver_data->image_heap, sizeof(struct object_image_s), IMAGE_ID_OFFSET);
+ ASSERT(result == 0);
+
+ result = object_heap_init(&driver_data->subpic_heap, sizeof(struct object_subpic_s), SUBPIC_ID_OFFSET);
+ ASSERT(result == 0);
+
+ driver_data->cur_displaying_surface = VA_INVALID_SURFACE;
+ driver_data->last_displaying_surface = VA_INVALID_SURFACE;
+
+ driver_data->clear_color = 0;
+ driver_data->blend_color = 0;
+ driver_data->blend_mode = 0;
+ driver_data->overlay_auto_paint_color_key = 0;
+
+ if (IS_MFLD(driver_data))
+ ctx->str_vendor = PSB_STR_VENDOR_MFLD;
+ else
+ ctx->str_vendor = PSB_STR_VENDOR_MRST;
+
+ psb__information_message("vaInitilize: succeeded!\n\n");
+
+ driver_data->msvdx_decode_status = calloc(1, sizeof(drm_psb_msvdx_decode_status_t));
+ if (NULL == driver_data->msvdx_decode_status) {
+ return VA_STATUS_ERROR_ALLOCATION_FAILED;
+ }
+ driver_data->surface_mb_error = calloc(MAX_MB_ERRORS, sizeof(VASurfaceDecodeMBErrors));
+ if (NULL == driver_data->surface_mb_error) {
+ return VA_STATUS_ERROR_ALLOCATION_FAILED;
+ }
+
+ return VA_STATUS_SUCCESS;
+}
+
+
+EXPORT VAStatus __vaDriverInit_0_32(VADriverContextP ctx)
+{
+ return __vaDriverInit_0_31(ctx);
+}
+
+
+
+static int psb_get_device_info(VADriverContextP ctx)
+{
+ INIT_DRIVER_DATA;
+ struct drm_lnc_video_getparam_arg arg;
+ unsigned long device_info;
+ int ret = 0;
+ unsigned long video_capability;
+ unsigned long pci_device;
+
+ driver_data->dev_id = 0x4100; /* by default MRST */
+
+ arg.key = LNC_VIDEO_DEVICE_INFO;
+ arg.value = (uint64_t)((unsigned long) & device_info);
+ ret = drmCommandWriteRead(driver_data->drm_fd, driver_data->getParamIoctlOffset,
+ &arg, sizeof(arg));
+ if (ret == 0) {
+ pci_device = (device_info >> 16) & 0xffff;
+ video_capability = device_info & 0xffff;
+
+ driver_data->dev_id = pci_device;
+ psb__information_message("Retrieve Device ID 0x%04x\n", driver_data->dev_id);
+
+ if ((IS_MRST(driver_data) && (pci_device != 0x4101)) ||
+ IS_MFLD(driver_data))
+ driver_data->encode_supported = 1;
+ else /* 0x4101 or other device hasn't encode support */
+ driver_data->encode_supported = 0;
+
+ driver_data->decode_supported = !(video_capability & 0x2);
+ driver_data->hd_decode_supported = !(video_capability & 0x3);
+ driver_data->hd_encode_supported = !(video_capability & 0x4);
+
+ psb__information_message("video capability: decode %s, HD decode %s\n",
+ driver_data->decode_supported ? "support" : "not support",
+ driver_data->hd_decode_supported ? "support" : "not support");
+
+ psb__information_message("video capability: encode %s, HD encode %s\n",
+ driver_data->encode_supported ? "support" : "not support",
+ driver_data->hd_encode_supported ? "support" : "not support");
+
+
+ return ret;
+ }
+
+ psb__information_message("failed to get video device info\n");
+
+ return ret;
+}
diff --git a/src/psb_drv_video.h b/src/psb_drv_video.h
new file mode 100644
index 0000000..727d538
--- /dev/null
+++ b/src/psb_drv_video.h
@@ -0,0 +1,469 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ * Waldo Bastian <waldo.bastian@intel.com>
+ *
+ */
+
+#ifndef _PSB_DRV_VIDEO_H_
+#define _PSB_DRV_VIDEO_H_
+
+#include <pthread.h> /* POSIX threads headers */
+
+#include <va/va_backend.h>
+#include <va/va.h>
+#include "object_heap.h"
+#include "psb_def.h"
+#include "xf86drm.h"
+#include "psb_drm.h"
+#include "psb_overlay.h"
+#include "psb_texture.h"
+#include <stdint.h>
+#ifndef ANDROID
+#include <X11/Xlibint.h>
+#include <X11/X.h>
+#include <X11/extensions/Xv.h>
+#include <X11/extensions/Xvlib.h>
+#include <X11/Xlib.h>
+#else
+#define XID unsigned int
+#define INT16 unsigned int
+#endif
+#include "hwdefs/dxva_fw_flags.h"
+#include <wsbm/wsbm_pool.h>
+
+#ifndef min
+#define min(a, b) ((a) < (b)) ? (a) : (b)
+#endif
+
+#ifndef max
+#define max(a, b) ((a) > (b)) ? (a) : (b)
+#endif
+/*
+ * WORKAROUND_DMA_OFF_BY_ONE: LLDMA requests may access one additional byte which can cause
+ * a MMU fault if the next byte after the buffer end is on a different page that isn't mapped.
+ */
+#define WORKAROUND_DMA_OFF_BY_ONE
+#define FOURCC_XVVA (('A' << 24) + ('V' << 16) + ('V' << 8) + 'X')
+
+#define PSB_MAX_PROFILES 14
+#define PSB_MAX_ENTRYPOINTS 8
+#define PSB_MAX_CONFIG_ATTRIBUTES 10
+#define PSB_MAX_BUFFERTYPES 32
+
+/* Max # of command submission buffers */
+#define PSB_MAX_CMDBUFS 10
+#define LNC_MAX_CMDBUFS_ENCODE 4
+#define PNW_MAX_CMDBUFS_ENCODE 4
+
+#define PSB_SURFACE_DISPLAYING_F (0x1U<<0)
+#define PSB_SURFACE_IS_FLAG_SET(flags, mask) (((flags)& PSB_SURFACE_DISPLAYING_F) != 0)
+
+/*xrandr dirty flag*/
+#define PSB_NEW_ROTATION 1
+#define PSB_NEW_EXTVIDEO 2
+
+#define MAX_SLICES_PER_PICTURE 72
+#define MAX_MB_ERRORS 72
+
+typedef struct object_config_s *object_config_p;
+typedef struct object_context_s *object_context_p;
+typedef struct object_surface_s *object_surface_p;
+typedef struct object_buffer_s *object_buffer_p;
+typedef struct object_image_s *object_image_p;
+typedef struct object_subpic_s *object_subpic_p;
+typedef struct format_vtable_s *format_vtable_p;
+typedef struct psb_driver_data_s *psb_driver_data_p;
+
+/* post-processing data structure */
+enum psb_output_method_t {
+ PSB_PUTSURFACE_NONE = 0,
+ PSB_PUTSURFACE_X11,/* use x11 method */
+ PSB_PUTSURFACE_TEXTURE,/* texture xvideo */
+ PSB_PUTSURFACE_OVERLAY,/* overlay xvideo */
+ PSB_PUTSURFACE_COVERLAY,/* client overlay */
+ PSB_PUTSURFACE_CTEXTURE,/* client textureblit */
+ PSB_PUTSURFACE_TEXSTREAMING,/* texsteaming */
+
+ PSB_PUTSURFACE_FORCE_TEXTURE,/* force texture xvideo */
+ PSB_PUTSURFACE_FORCE_OVERLAY,/* force overlay xvideo */
+ PSB_PUTSURFACE_FORCE_CTEXTURE,/* force client textureblit */
+ PSB_PUTSURFACE_FORCE_COVERLAY,/* force client overlay */
+ PSB_PUTSURFACE_FORCE_TEXSTREAMING,/* force texstreaming */
+};
+
+typedef struct psb_decode_info {
+ uint32_t num_surface;
+ uint32_t surface_id;
+} psb_decode_info_t;
+typedef struct msvdx_decode_info *psb_decode_info_p;
+
+struct psb_driver_data_s {
+ struct object_heap_s config_heap;
+ struct object_heap_s context_heap;
+ struct object_heap_s surface_heap;
+ struct object_heap_s buffer_heap;
+ struct object_heap_s image_heap;
+ struct object_heap_s subpic_heap;
+ char * bus_id;
+ uint32_t dev_id;
+ int drm_fd;
+ /* PM_QoS */
+ int pm_qos_fd;
+ int dri2;
+ int dri_dummy;
+ XID context_id;
+ drm_context_t drm_context;
+ drmLock *drm_lock;
+ int contended_lock;
+ pthread_mutex_t drm_mutex;
+ format_vtable_p profile2Format[PSB_MAX_PROFILES][PSB_MAX_ENTRYPOINTS];
+ uint32_t msvdx_context_base;
+ int video_sd_disabled;
+ int video_hd_disabled;
+ void * camera_bo;
+ uint32_t camera_phyaddr;
+ uint32_t camera_size;
+ void * rar_bo;
+ uint32_t rar_phyaddr;
+ uint32_t rar_size;
+ void * rar_rd;
+
+ int encode_supported;
+ int decode_supported;
+ int hd_encode_supported;
+ int hd_decode_supported;
+
+ int execIoctlOffset;
+ int getParamIoctlOffset;
+
+ struct _WsbmBufferPool *main_pool;
+ struct _WsbmFenceMgr *fence_mgr;
+
+ enum psb_output_method_t output_method;
+
+ /* whether the post-processing use client overlay or not */
+ int coverlay;
+ PsbPortPrivRec coverlay_priv;
+
+
+ /* whether the post-processing use client textureblit or not */
+ int ctexture;
+ struct psb_texture_s ctexture_priv;
+
+ /*
+ //whether the post-processing use texstreaing or not
+ int ctexstreaing;
+ struct psb_texstreaing ctexstreaing_priv;
+ */
+
+ void *ws_priv; /* window system related data structure */
+
+
+ VASurfaceID cur_displaying_surface;
+ VASurfaceID last_displaying_surface;
+
+ VADisplayAttribute ble_black_mode;
+ VADisplayAttribute ble_white_mode;
+
+ VADisplayAttribute blueStretch_gain;
+ VADisplayAttribute skinColorCorrection_gain;
+
+ VADisplayAttribute brightness;
+ VADisplayAttribute hue;
+ VADisplayAttribute contrast;
+ VADisplayAttribute saturation;
+ /*Save RenderMode and RenderRect attribute
+ * for medfield android extend video mode.*/
+ uint32_t render_device;
+ uint32_t render_mode;
+ VARectangle render_rect;
+
+ unsigned int clear_color;
+
+ int is_oold;
+
+ unsigned int load_csc_matrix;
+ signed int csc_matrix[3][3];
+
+ /* subpic number current buffers support */
+ unsigned int max_subpic;
+
+ /* for multi-thread safe */
+ int use_xrandr_thread;
+ pthread_mutex_t output_mutex;
+ pthread_t xrandr_thread_id;
+ int extend_fullscreen;
+
+ int rotate;
+ int video_rotate;
+ int drawable_info;
+ int dummy_putsurface;
+ int fixed_fps;
+ unsigned int frame_count;
+
+ uint32_t blend_mode;
+ uint32_t blend_color;
+ uint32_t overlay_auto_paint_color_key;
+ uint32_t color_key;
+
+ /*output rotation info*/
+ int mipi0_rotation;
+ int mipi1_rotation;
+ int hdmi_rotation;
+ int local_rotation;
+ int extend_rotation;
+ uint32_t bcd_id;
+ uint32_t bcd_ioctrl_num;
+ uint32_t bcd_registered;
+ uint32_t xrandr_dirty;
+ uint32_t xrandr_update;
+ /*only VAProfileH264ConstrainedBaseline profile enable error concealment*/
+ uint32_t ec_enabled;
+
+ uint32_t pre_surfaceid;
+ psb_decode_info_t decode_info;
+ drm_psb_msvdx_decode_status_t *msvdx_decode_status;
+ VASurfaceDecodeMBErrors *surface_mb_error;
+};
+
+#define IS_MRST(driver_data) ((driver_data->dev_id & 0xFFFC) == 0x4100)
+#define IS_MFLD(driver_data) ((driver_data->dev_id & 0xFFFC) == 0x0130)
+
+struct object_config_s {
+ struct object_base_s base;
+ VAProfile profile;
+ VAEntrypoint entrypoint;
+ VAConfigAttrib attrib_list[PSB_MAX_CONFIG_ATTRIBUTES];
+ int attrib_count;
+ format_vtable_p format_vtable;
+};
+
+struct object_context_s {
+ struct object_base_s base;
+ VAContextID context_id;
+ VAConfigID config_id;
+ VAEntrypoint entry_point;
+ int picture_width;
+ int picture_height;
+ int num_render_targets;
+ VASurfaceID *render_targets;
+ int va_flags;
+
+ object_surface_p current_render_target;
+ VASurfaceID current_render_surface_id;
+ psb_driver_data_p driver_data;
+ format_vtable_p format_vtable;
+ void *format_data;
+ struct psb_cmdbuf_s *cmdbuf_list[PSB_MAX_CMDBUFS];
+ struct lnc_cmdbuf_s *lnc_cmdbuf_list[LNC_MAX_CMDBUFS_ENCODE];
+ struct pnw_cmdbuf_s *pnw_cmdbuf_list[PNW_MAX_CMDBUFS_ENCODE];
+
+ struct psb_cmdbuf_s *cmdbuf; /* Current cmd buffer */
+ struct lnc_cmdbuf_s *lnc_cmdbuf;
+ struct pnw_cmdbuf_s *pnw_cmdbuf;
+
+ int cmdbuf_current;
+
+ /* Buffers */
+ object_buffer_p buffers_unused[PSB_MAX_BUFFERTYPES]; /* Linked lists (HEAD) of unused buffers for each buffer type */
+ int buffers_unused_count[PSB_MAX_BUFFERTYPES]; /* Linked lists (HEAD) of unused buffers for each buffer type */
+ object_buffer_p buffers_unused_tail[PSB_MAX_BUFFERTYPES]; /* Linked lists (TAIL) of unused buffers for each buffer type */
+ object_buffer_p buffers_active[PSB_MAX_BUFFERTYPES]; /* Linked lists of active buffers for each buffer type */
+
+ object_buffer_p *buffer_list; /* for vaRenderPicture */
+ int num_buffers;
+
+ enum {
+ psb_video_none = 0,
+ psb_video_mc,
+ psb_video_vld,
+ psb_video_deblock
+ } video_op;
+
+ uint32_t operating_mode;
+ uint32_t flags; /* See render flags below */
+ uint32_t first_mb;
+ uint32_t last_mb;
+
+ int is_oold;
+ int rotate;
+
+ uint32_t msvdx_context;
+
+ /* Debug */
+ uint32_t frame_count;
+ uint32_t slice_count;
+};
+
+struct object_surface_s {
+ struct object_base_s base;
+ VASurfaceID surface_id;
+ VAContextID context_id;
+ int width;
+ int height;
+ int height_origin;
+ int width_r;
+ int height_r;
+ struct psb_surface_s *psb_surface;
+ struct psb_surface_s *psb_surface_rotate; /* Alternative output surface for rotation */
+ void *subpictures;/* if not NULL, have subpicture information */
+ unsigned int subpic_count; /* to ensure output have enough space for PDS & RAST */
+ unsigned int derived_imgcnt; /* is the surface derived by a VAImage? */
+ unsigned long display_timestamp; /* record the time point of put surface*/
+};
+
+struct object_buffer_s {
+ struct object_base_s base;
+ object_buffer_p ptr_next; /* Generic ptr for linked list */
+ object_buffer_p *pptr_prev_next; /* Generic ptr for linked list */
+ struct psb_buffer_s *psb_buffer;
+ void *buffer_data;
+ VACodedBufferSegment codedbuf_mapinfo[8]; /* for VAEncCodedBufferType */
+ unsigned int size;
+ unsigned int alloc_size;
+ int max_num_elements;
+ int num_elements;
+ object_context_p context;
+ VABufferType type;
+ uint32_t last_used;
+};
+
+struct object_image_s {
+ struct object_base_s base;
+ VAImage image;
+ unsigned int palette[16];
+ int subpic_ref;
+ VASurfaceID derived_surface;
+};
+
+struct object_subpic_s {
+ struct object_base_s base;
+ VASubpictureID subpic_id;
+
+ VAImageID image_id;
+
+ /* chromakey range */
+ unsigned int chromakey_min;
+ unsigned int chromakey_max;
+ unsigned int chromakey_mask;
+
+ /* global alpha */
+ unsigned int global_alpha;
+
+ /* flags */
+ unsigned int flags; /* see below */
+
+ void *surfaces; /* surfaces, associated with this subpicture */
+};
+
+#define MEMSET_OBJECT(ptr, data_struct) \
+ memset((void *)ptr + sizeof(struct object_base_s),\
+ 0, \
+ sizeof(data_struct) - sizeof(struct object_base_s))
+
+struct format_vtable_s {
+ void (*queryConfigAttributes)(
+ VAProfile profile,
+ VAEntrypoint entrypoint,
+ VAConfigAttrib *attrib_list,
+ int num_attribs
+ );
+ VAStatus(*validateConfig)(
+ object_config_p obj_config
+ );
+ VAStatus(*createContext)(
+ object_context_p obj_context,
+ object_config_p obj_config
+ );
+ void (*destroyContext)(
+ object_context_p obj_context
+ );
+ VAStatus(*beginPicture)(
+ object_context_p obj_context
+ );
+ VAStatus(*renderPicture)(
+ object_context_p obj_context,
+ object_buffer_p *buffers,
+ int num_buffers
+ );
+ VAStatus(*endPicture)(
+ object_context_p obj_context
+ );
+};
+
+
+#define psb__bounds_check(x, max) \
+ do { ASSERT(x < max); if (x >= max) x = max - 1; } while(0);
+
+static inline unsigned long GetTickCount()
+{
+ struct timeval tv;
+ if (gettimeofday(&tv, NULL))
+ return 0;
+ return tv.tv_usec / 1000 + tv.tv_sec * 1000;
+}
+
+inline static char * buffer_type_to_string(int type)
+{
+ switch (type) {
+ case VAPictureParameterBufferType:
+ return "VAPictureParameterBufferType";
+ case VAIQMatrixBufferType:
+ return "VAIQMatrixBufferType";
+ case VABitPlaneBufferType:
+ return "VABitPlaneBufferType";
+ case VASliceGroupMapBufferType:
+ return "VASliceGroupMapBufferType";
+ case VASliceParameterBufferType:
+ return "VASliceParameterBufferType";
+ case VASliceDataBufferType:
+ return "VASliceDataBufferType";
+ case VAProtectedSliceDataBufferType:
+ return "VAProtectedSliceDataBufferType";
+ case VAMacroblockParameterBufferType:
+ return "VAMacroblockParameterBufferType";
+ case VAResidualDataBufferType:
+ return "VAResidualDataBufferType";
+ case VADeblockingParameterBufferType:
+ return "VADeblockingParameterBufferType";
+ case VAImageBufferType:
+ return "VAImageBufferType";
+ case VAEncCodedBufferType:
+ return "VAEncCodedBufferType";
+ case VAEncSequenceParameterBufferType:
+ return "VAEncSequenceParameterBufferType";
+ case VAEncPictureParameterBufferType:
+ return "VAEncPictureParameterBufferType";
+ case VAEncSliceParameterBufferType:
+ return "VAEncSliceParameterBufferType";
+ default:
+ return "UnknowBuffer";
+ }
+}
+
+int LOCK_HARDWARE(psb_driver_data_p driver_data);
+int UNLOCK_HARDWARE(psb_driver_data_p driver_data);
+
+#endif /* _PSB_DRV_VIDEO_H_ */
diff --git a/src/psb_output.c b/src/psb_output.c
new file mode 100644
index 0000000..bf8732a
--- /dev/null
+++ b/src/psb_output.c
@@ -0,0 +1,2058 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ * Shengquan Yuan <shengquan.yuan@intel.com>
+ * Zhaohan Ren <zhaohan.ren@intel.com>
+ * Jason Hu <jason.hu@intel.com>
+ *
+ */
+
+#ifndef ANDROID
+#include <X11/Xutil.h>
+#include <X11/extensions/Xrandr.h>
+#include "x11/psb_x11.h"
+#include "x11/psb_xrandr.h"
+#endif
+#include <va/va_backend.h>
+#include <dlfcn.h>
+#include <stdlib.h>
+#include "psb_output.h"
+#include "psb_surface.h"
+#include "psb_buffer.h"
+#include "psb_surface_ext.h"
+#include <stdio.h>
+#include <string.h>
+#include <stdarg.h>
+#include <wsbm/wsbm_manager.h>
+
+#include <string.h>
+#include <unistd.h>
+#include <sys/ioctl.h>
+
+#define INIT_DRIVER_DATA psb_driver_data_p driver_data = (psb_driver_data_p) ctx->pDriverData;
+#ifndef ANDROID
+#define INIT_OUTPUT_PRIV psb_x11_output_p output = (psb_x11_output_p)(((psb_driver_data_p)ctx->pDriverData)->ws_priv)
+#endif
+
+#define SURFACE(id) ((object_surface_p) object_heap_lookup( &driver_data->surface_heap, id ))
+#define BUFFER(id) ((object_buffer_p) object_heap_lookup( &driver_data->buffer_heap, id ))
+#define IMAGE(id) ((object_image_p) object_heap_lookup( &driver_data->image_heap, id ))
+#define SUBPIC(id) ((object_subpic_p) object_heap_lookup( &driver_data->subpic_heap, id ))
+#define CONTEXT(id) ((object_context_p) object_heap_lookup( &driver_data->context_heap, id ))
+
+
+/* surfaces link list associated with a subpicture */
+typedef struct _subpic_surface {
+ VASurfaceID surface_id;
+ struct _subpic_surface *next;
+} subpic_surface_s, *subpic_surface_p;
+
+
+static VAImageFormat psb__SubpicFormat[] = {
+ psb__ImageRGBA,
+ psb__ImageAYUV,
+ psb__ImageAI44
+};
+
+static VAImageFormat psb__CreateImageFormat[] = {
+ psb__ImageNV12,
+ psb__ImageRGBA,
+ psb__ImageAYUV,
+ psb__ImageAI44,
+ psb__ImageYV16
+};
+
+void *psb_x11_output_init(VADriverContextP ctx);
+VAStatus psb_x11_output_deinit(VADriverContextP ctx);
+void *psb_android_output_init(VADriverContextP ctx);
+VAStatus psb_android_output_deinit(VADriverContextP ctx);
+
+int psb_coverlay_init(VADriverContextP ctx);
+int psb_coverlay_deinit(VADriverContextP ctx);
+
+VAStatus psb_initOutput(VADriverContextP ctx)
+{
+ INIT_DRIVER_DATA;
+ void *ws_priv = NULL;
+ char *fps = NULL;
+
+ pthread_mutex_init(&driver_data->output_mutex, NULL);
+
+ if (getenv("PSB_VIDEO_PUTSURFACE_DUMMY")) {
+ psb__information_message("vaPutSurface: dummy mode, return directly\n");
+ driver_data->dummy_putsurface = 0;
+
+ return VA_STATUS_SUCCESS;
+ }
+
+ if (getenv("PSB_VIDEO_EXTEND_FULLSCREEN")) {
+ driver_data->extend_fullscreen = 1;
+ }
+
+ if (getenv("PSB_VIDEO_NOTRD") || IS_MRST(driver_data)) {
+ psb__information_message("Force not to start psb xrandr thread.\n");
+ driver_data->use_xrandr_thread = 0;
+ } else {
+ psb__information_message("By default, use psb xrandr thread.\n");
+ driver_data->use_xrandr_thread = 1;
+ }
+
+ fps = getenv("PSB_VIDEO_FPS");
+ if (fps != NULL) {
+ driver_data->fixed_fps = atoi(fps);
+ psb__information_message("Throttling at FPS=%d\n", driver_data->fixed_fps);
+ } else
+ driver_data->fixed_fps = 0;
+
+ driver_data->cur_displaying_surface = VA_INVALID_SURFACE;
+ driver_data->last_displaying_surface = VA_INVALID_SURFACE;
+
+#ifdef ANDROID
+ ws_priv = psb_android_output_init(ctx);
+#else
+ ws_priv = psb_x11_output_init(ctx);
+#endif
+ driver_data->ws_priv = ws_priv;
+
+ /* use client overlay */
+ if (driver_data->coverlay == 1) {
+#ifndef ANDROID
+ psb_x11_output_p output = (psb_x11_output_p)(((psb_driver_data_p)ctx->pDriverData)->ws_priv);
+ output->pClipBoxList = NULL;
+ output->ui32NumClipBoxList = 0;
+ output->frame_count = 0;
+ output->bIsVisible = 0;
+#endif
+ psb_coverlay_init(ctx);
+ }
+
+ //use client textureblit
+ if (driver_data->ctexture == 1)
+ psb_ctexture_init(ctx);
+
+ /*
+ //use texture streaming
+ if (driver_data->ctexstreaming == 1)
+ psb_ctexstreaing_init(ctx);
+ */
+
+ return VA_STATUS_SUCCESS;
+}
+
+VAStatus psb_deinitOutput(
+ VADriverContextP ctx
+)
+{
+ INIT_DRIVER_DATA;
+
+ //use client textureblit
+ if (driver_data->ctexture == 1) {
+ psb_ctexture_deinit(ctx);
+ }
+
+#ifndef ANDROID
+ INIT_OUTPUT_PRIV;
+
+ if (driver_data->coverlay == 1) {
+ psb_x11_freeWindowClipBoxList(output->pClipBoxList);
+ psb_coverlay_deinit(ctx);
+ }
+
+ psb_x11_output_deinit(ctx);
+#else
+ psb_android_output_deinit(ctx);
+#endif
+
+ /* free here, but allocate in window system specific */
+ free(driver_data->ws_priv);
+ /*
+ //use texture streaming
+ if (driver_data->ctexstreaming == 1)
+ psb_ctexstreaing_deinit(ctx);
+ */
+
+ pthread_mutex_destroy(&driver_data->output_mutex);
+
+ return VA_STATUS_SUCCESS;
+}
+
+#ifndef VA_STATUS_ERROR_INVALID_IMAGE_FORMAT
+#define VA_STATUS_ERROR_INVALID_IMAGE_FORMAT VA_STATUS_ERROR_UNKNOWN
+#endif
+
+static VAImageFormat *psb__VAImageCheckFourCC(
+ VAImageFormat *src_format,
+ VAImageFormat *dst_format,
+ int dst_num
+)
+{
+ int i;
+ if (NULL == src_format || dst_format == NULL) {
+ return NULL;
+ }
+
+ /* check VAImage at first */
+ for (i = 0; i < dst_num; i++) {
+ if (dst_format[i].fourcc == src_format->fourcc)
+ return &dst_format[i];
+ }
+
+ psb__error_message("Unsupport fourcc 0x%x\n", src_format->fourcc);
+ return NULL;
+}
+
+static void psb__VAImageCheckRegion(
+ object_surface_p surface,
+ VAImage *image,
+ int *src_x,
+ int *src_y,
+ int *dest_x,
+ int *dest_y,
+ unsigned int *width,
+ unsigned int *height
+)
+{
+ /* check for image */
+ if (*src_x < 0) *src_x = 0;
+ if (*src_x > image->width) *src_x = image->width - 1;
+ if (*src_y < 0) *src_y = 0;
+ if (*src_y > image->height) *src_y = image->height - 1;
+
+ if (((*width) + (*src_x)) > image->width) *width = image->width - *src_x;
+ if (((*height) + (*src_y)) > image->height) *height = image->height - *src_x;
+
+ /* check for surface */
+ if (*dest_x < 0) *dest_x = 0;
+ if (*dest_x > surface->width) *dest_x = surface->width - 1;
+ if (*dest_y < 0) *dest_y = 0;
+ if (*dest_y > surface->height) *dest_y = surface->height - 1;
+
+ if (((*width) + (*dest_x)) > surface->width) *width = surface->width - *dest_x;
+ if (((*height) + (*dest_y)) > surface->height) *height = surface->height - *dest_x;
+}
+
+
+VAStatus psb_QueryImageFormats(
+ VADriverContextP ctx,
+ VAImageFormat *format_list, /* out */
+ int *num_formats /* out */
+)
+{
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+
+ if (NULL == format_list) {
+ vaStatus = VA_STATUS_ERROR_INVALID_PARAMETER;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+ if (NULL == num_formats) {
+ vaStatus = VA_STATUS_ERROR_INVALID_PARAMETER;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+ memcpy(format_list, psb__CreateImageFormat, sizeof(psb__CreateImageFormat));
+ *num_formats = PSB_MAX_IMAGE_FORMATS;
+
+ return VA_STATUS_SUCCESS;
+}
+
+inline int min_POT(int n)
+{
+ if ((n & (n - 1)) == 0) /* already POT */
+ return n;
+
+ return n |= n >> 16, n |= n >> 8, n |= n >> 4, n |= n >> 2, n |= n >> 1, n + 1;
+ /* return ((((n |= n>>16) |= n>>8) |= n>>4) |= n>>2) |= n>>1, n + 1; */
+}
+
+VAStatus psb_CreateImage(
+ VADriverContextP ctx,
+ VAImageFormat *format,
+ int width,
+ int height,
+ VAImage *image /* out */
+)
+{
+ INIT_DRIVER_DATA;
+ VAImageID imageID;
+ object_image_p obj_image;
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ VAImageFormat *img_fmt;
+ int pitch_pot;
+
+ (void)driver_data;
+
+ img_fmt = psb__VAImageCheckFourCC(format, psb__CreateImageFormat,
+ sizeof(psb__CreateImageFormat) / sizeof(VAImageFormat));
+ if (img_fmt == NULL)
+ return VA_STATUS_ERROR_UNKNOWN;
+
+ imageID = object_heap_allocate(&driver_data->image_heap);
+ obj_image = IMAGE(imageID);
+ if (NULL == obj_image) {
+ vaStatus = VA_STATUS_ERROR_ALLOCATION_FAILED;
+ return vaStatus;
+ }
+
+ MEMSET_OBJECT(obj_image, struct object_image_s);
+
+ obj_image->image.image_id = imageID;
+ obj_image->image.format = *img_fmt;
+ obj_image->subpic_ref = 0;
+
+ pitch_pot = min_POT(width);
+
+ switch (format->fourcc) {
+ case VA_FOURCC_NV12: {
+ obj_image->image.width = width;
+ obj_image->image.height = height;
+ obj_image->image.data_size = pitch_pot * height /*Y*/ + 2 * (pitch_pot / 2) * (height / 2);/*UV*/
+ obj_image->image.num_planes = 2;
+ obj_image->image.pitches[0] = pitch_pot;
+ obj_image->image.pitches[1] = pitch_pot;
+ obj_image->image.offsets[0] = 0;
+ obj_image->image.offsets[1] = pitch_pot * height;
+ obj_image->image.num_palette_entries = 0;
+ obj_image->image.entry_bytes = 0;
+ obj_image->image.component_order[0] = 'Y';
+ obj_image->image.component_order[1] = 'U';/* fixed me: packed UV packed here! */
+ obj_image->image.component_order[2] = 'V';
+ obj_image->image.component_order[3] = '\0';
+ break;
+ }
+ case VA_FOURCC_AYUV: {
+ obj_image->image.width = width;
+ obj_image->image.height = height;
+ obj_image->image.data_size = 4 * pitch_pot * height;
+ obj_image->image.num_planes = 1;
+ obj_image->image.pitches[0] = 4 * pitch_pot;
+ obj_image->image.num_palette_entries = 0;
+ obj_image->image.entry_bytes = 0;
+ obj_image->image.component_order[0] = 'V';
+ obj_image->image.component_order[1] = 'U';
+ obj_image->image.component_order[2] = 'Y';
+ obj_image->image.component_order[3] = 'A';
+ break;
+ }
+ case VA_FOURCC_RGBA: {
+ obj_image->image.width = width;
+ obj_image->image.height = height;
+ obj_image->image.data_size = 4 * pitch_pot * height;
+ obj_image->image.num_planes = 1;
+ obj_image->image.pitches[0] = 4 * pitch_pot;
+ obj_image->image.num_palette_entries = 0;
+ obj_image->image.entry_bytes = 0;
+ obj_image->image.component_order[0] = 'R';
+ obj_image->image.component_order[1] = 'G';
+ obj_image->image.component_order[2] = 'B';
+ obj_image->image.component_order[3] = 'A';
+ break;
+ }
+ case VA_FOURCC_AI44: {
+ obj_image->image.width = width;
+ obj_image->image.height = height;
+ obj_image->image.data_size = pitch_pot * height;/* one byte one element */
+ obj_image->image.num_planes = 1;
+ obj_image->image.pitches[0] = pitch_pot;
+ obj_image->image.num_palette_entries = 16;
+ obj_image->image.entry_bytes = 4; /* AYUV */
+ obj_image->image.component_order[0] = 'I';
+ obj_image->image.component_order[1] = 'A';
+ obj_image->image.component_order[2] = '\0';
+ obj_image->image.component_order[3] = '\0';
+ break;
+ }
+ case VA_FOURCC_IYUV: {
+ obj_image->image.width = width;
+ obj_image->image.height = height;
+ obj_image->image.data_size = pitch_pot * height /*Y*/ + 2 * (pitch_pot / 2) * (height / 2);/*UV*/
+ obj_image->image.num_planes = 3;
+ obj_image->image.pitches[0] = pitch_pot;
+ obj_image->image.pitches[1] = pitch_pot / 2;
+ obj_image->image.pitches[2] = pitch_pot / 2;
+ obj_image->image.offsets[0] = 0;
+ obj_image->image.offsets[1] = pitch_pot * height;
+ obj_image->image.offsets[2] = pitch_pot * height + (pitch_pot / 2) * (height / 2);
+ obj_image->image.num_palette_entries = 0;
+ obj_image->image.entry_bytes = 0;
+ obj_image->image.component_order[0] = 'Y';
+ obj_image->image.component_order[1] = 'U';
+ obj_image->image.component_order[2] = 'V';
+ obj_image->image.component_order[3] = '\0';
+ break;
+ }
+ default: {
+ vaStatus = VA_STATUS_ERROR_INVALID_IMAGE_FORMAT;
+ break;
+ }
+ }
+
+ if (VA_STATUS_SUCCESS == vaStatus) {
+ /* create the buffer */
+ vaStatus = psb__CreateBuffer(driver_data, NULL, VAImageBufferType,
+ obj_image->image.data_size, 1, NULL, &obj_image->image.buf);
+ }
+
+ obj_image->derived_surface = 0;
+
+ if (VA_STATUS_SUCCESS != vaStatus) {
+ object_heap_free(&driver_data->image_heap, (object_base_p) obj_image);
+ } else {
+ memcpy(image, &obj_image->image, sizeof(VAImage));
+ }
+
+ return vaStatus;
+}
+
+VAStatus psb_DeriveImage(
+ VADriverContextP ctx,
+ VASurfaceID surface,
+ VAImage *image /* out */
+)
+{
+ INIT_DRIVER_DATA;
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ VABufferID bufferID;
+ object_buffer_p obj_buffer;
+ VAImageID imageID;
+ object_image_p obj_image;
+ object_surface_p obj_surface = SURFACE(surface);
+ unsigned int fourcc, fourcc_index = ~0, i;
+ uint32_t srf_buf_ofs = 0;
+
+ if (NULL == obj_surface) {
+ vaStatus = VA_STATUS_ERROR_INVALID_SURFACE;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ fourcc = obj_surface->psb_surface->extra_info[4];
+ for (i = 0; i < PSB_MAX_IMAGE_FORMATS; i++) {
+ if (psb__CreateImageFormat[i].fourcc == fourcc) {
+ fourcc_index = i;
+ break;
+ }
+ }
+ if (i == PSB_MAX_IMAGE_FORMATS) {
+ psb__error_message("Can't support the Fourcc\n");
+ vaStatus = VA_STATUS_ERROR_OPERATION_FAILED;
+ return vaStatus;
+ }
+
+ /* create the image */
+ imageID = object_heap_allocate(&driver_data->image_heap);
+ obj_image = IMAGE(imageID);
+ if (NULL == obj_image) {
+ vaStatus = VA_STATUS_ERROR_ALLOCATION_FAILED;
+ return vaStatus;
+ }
+
+ MEMSET_OBJECT(obj_image, struct object_image_s);
+
+ /* create a buffer to represent surface buffer */
+ bufferID = object_heap_allocate(&driver_data->buffer_heap);
+ obj_buffer = BUFFER(bufferID);
+ if (NULL == obj_buffer) {
+ object_heap_free(&driver_data->image_heap, (object_base_p) obj_image);
+ vaStatus = VA_STATUS_ERROR_ALLOCATION_FAILED;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+ MEMSET_OBJECT(obj_buffer, struct object_buffer_s);
+
+ obj_buffer->type = VAImageBufferType;
+ obj_buffer->buffer_data = NULL;
+ obj_buffer->psb_buffer = &obj_surface->psb_surface->buf;
+ obj_buffer->size = obj_surface->psb_surface->size;
+ obj_buffer->max_num_elements = 0;
+ obj_buffer->alloc_size = obj_buffer->size;
+
+ /* fill obj_image data structure */
+ obj_image->image.image_id = imageID;
+ obj_image->image.format = psb__CreateImageFormat[fourcc_index];
+ obj_image->subpic_ref = 0;
+
+ obj_image->image.buf = bufferID;
+ obj_image->image.width = obj_surface->width;
+ obj_image->image.height = obj_surface->height;
+ obj_image->image.data_size = obj_surface->psb_surface->size;
+
+ srf_buf_ofs = obj_surface->psb_surface->buf.buffer_ofs;
+
+ switch (fourcc) {
+ case VA_FOURCC_NV12: {
+ obj_image->image.num_planes = 2;
+ obj_image->image.pitches[0] = obj_surface->psb_surface->stride;
+ obj_image->image.pitches[1] = obj_surface->psb_surface->stride;
+
+ obj_image->image.offsets[0] = srf_buf_ofs;
+ obj_image->image.offsets[1] = srf_buf_ofs + obj_surface->height * obj_surface->psb_surface->stride;
+ obj_image->image.num_palette_entries = 0;
+ obj_image->image.entry_bytes = 0;
+ obj_image->image.component_order[0] = 'Y';
+ obj_image->image.component_order[1] = 'U';/* fixed me: packed UV packed here! */
+ obj_image->image.component_order[2] = 'V';
+ obj_image->image.component_order[3] = '\0';
+ break;
+ }
+ case VA_FOURCC_YV16: {
+ obj_image->image.num_planes = 3;
+ obj_image->image.pitches[0] = obj_surface->psb_surface->stride;
+ obj_image->image.pitches[1] = obj_surface->psb_surface->stride / 2;
+ obj_image->image.pitches[2] = obj_surface->psb_surface->stride / 2;
+
+ obj_image->image.offsets[0] = srf_buf_ofs;
+ obj_image->image.offsets[1] = srf_buf_ofs + obj_surface->height * obj_surface->psb_surface->stride;
+ obj_image->image.offsets[2] = srf_buf_ofs + obj_surface->height * obj_surface->psb_surface->stride * 3 / 2;
+ obj_image->image.num_palette_entries = 0;
+ obj_image->image.entry_bytes = 0;
+ obj_image->image.component_order[0] = 'Y';
+ obj_image->image.component_order[1] = 'V';/* fixed me: packed UV packed here! */
+ obj_image->image.component_order[2] = 'U';
+ obj_image->image.component_order[3] = '\0';
+ break;
+ }
+ default:
+ break;
+ }
+
+ obj_image->derived_surface = surface; /* this image is derived from a surface */
+ obj_surface->derived_imgcnt++;
+
+ memcpy(image, &obj_image->image, sizeof(VAImage));
+
+ return vaStatus;
+}
+
+VAStatus psb__destroy_image(psb_driver_data_p driver_data, object_image_p obj_image)
+{
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+
+ if (obj_image->subpic_ref > 0) {
+ vaStatus = VA_STATUS_ERROR_OPERATION_FAILED;
+ return vaStatus;
+ }
+
+ object_surface_p obj_surface = SURFACE(obj_image->derived_surface);
+
+ if (obj_surface == NULL) { /* destroy the buffer */
+ object_buffer_p obj_buffer = BUFFER(obj_image->image.buf);
+ if (NULL == obj_buffer) {
+ vaStatus = VA_STATUS_ERROR_INVALID_BUFFER;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+ psb__suspend_buffer(driver_data, obj_buffer);
+ } else {
+ object_buffer_p obj_buffer = BUFFER(obj_image->image.buf);
+ object_heap_free(&driver_data->buffer_heap, &obj_buffer->base);
+ obj_surface->derived_imgcnt--;
+ }
+ object_heap_free(&driver_data->image_heap, (object_base_p) obj_image);
+
+ return VA_STATUS_SUCCESS;
+}
+
+VAStatus psb_DestroyImage(
+ VADriverContextP ctx,
+ VAImageID image
+)
+{
+ INIT_DRIVER_DATA
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ object_image_p obj_image;
+
+ obj_image = IMAGE(image);
+ if (NULL == obj_image) {
+ vaStatus = VA_STATUS_ERROR_INVALID_IMAGE;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+ return psb__destroy_image(driver_data, obj_image);
+}
+
+VAStatus psb_SetImagePalette(
+ VADriverContextP ctx,
+ VAImageID image,
+ /*
+ * pointer to an array holding the palette data. The size of the array is
+ * num_palette_entries * entry_bytes in size. The order of the components
+ * in the palette is described by the component_order in VAImage struct
+ */
+ unsigned char *palette
+)
+{
+ INIT_DRIVER_DATA;
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+
+ object_image_p obj_image = IMAGE(image);
+ if (NULL == obj_image) {
+ vaStatus = VA_STATUS_ERROR_INVALID_IMAGE;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ if (obj_image->image.format.fourcc != VA_FOURCC_AI44) {
+ /* only support AI44 palette */
+ vaStatus = VA_STATUS_ERROR_OPERATION_FAILED;
+ return vaStatus;
+ }
+
+ if (obj_image->image.num_palette_entries > 16) {
+ psb__error_message("image.num_palette_entries(%d) is too big\n", obj_image->image.num_palette_entries);
+ memcpy(obj_image->palette, palette, 16);
+ } else
+ memcpy(obj_image->palette, palette, obj_image->image.num_palette_entries * sizeof(unsigned int));
+
+ return vaStatus;
+}
+
+static VAStatus lnc_unpack_topaz_rec(int src_width, int src_height,
+ unsigned char *p_srcY, unsigned char *p_srcUV,
+ unsigned char *p_dstY, unsigned char *p_dstU, unsigned char *p_dstV,
+ int dstY_stride, int dstU_stride, int dstV_stride,
+ int surface_height)
+{
+ unsigned char *tmp_dstY = NULL;
+ unsigned char *tmp_dstUV = NULL;
+
+ int n, i, index;
+
+ psb__information_message("Unpack reconstructed frame to image\n");
+
+ /* do this one column at a time. */
+ tmp_dstY = (unsigned char *)calloc(1, 16 * src_height);
+ if (tmp_dstY == NULL)
+ return VA_STATUS_ERROR_ALLOCATION_FAILED;
+
+ tmp_dstUV = (unsigned char*)calloc(1, 16 * src_height / 2);
+ if (tmp_dstUV == NULL) {
+ free(tmp_dstY);
+ return VA_STATUS_ERROR_ALLOCATION_FAILED;
+ }
+
+ /* Copy Y data */
+ for (n = 0; n < src_width / 16; n++) {
+ memcpy((void*)tmp_dstY, p_srcY, 16 * src_height);
+ p_srcY += (16 * surface_height);
+ for (i = 0; i < src_height; i++) {
+ memcpy(p_dstY + dstY_stride * i + n * 16, tmp_dstY + 16 * i, 16);
+ }
+ }
+
+ /* Copy U/V data */
+ for (n = 0; n < src_width / 16; n++) {
+ memcpy((void*)tmp_dstUV, p_srcUV, 16 * src_height / 2);
+ p_srcUV += (16 * surface_height / 2);
+ for (i = 0; i < src_height / 2; i++) {
+ for (index = 0; index < 8; index++) {
+ p_dstU[i*dstU_stride + n*8 + index] = tmp_dstUV[index*2 + i*16];
+ p_dstV[i*dstV_stride + n*8 + index] = tmp_dstUV[index*2 + i*16+1];
+ }
+ }
+ }
+ if (tmp_dstY)
+ free(tmp_dstY);
+ if (tmp_dstUV)
+ free(tmp_dstUV);
+
+ return VA_STATUS_SUCCESS;
+}
+
+
+VAStatus psb_GetImage(
+ VADriverContextP ctx,
+ VASurfaceID surface,
+ int x, /* coordinates of the upper left source pixel */
+ int y,
+ unsigned int width, /* width and height of the region */
+ unsigned int height,
+ VAImageID image_id
+)
+{
+ INIT_DRIVER_DATA;
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ int ret, src_x = 0, src_y = 0, dest_x = 0, dest_y = 0;
+
+ (void)driver_data;
+ (void)lnc_unpack_topaz_rec;
+
+ object_image_p obj_image = IMAGE(image_id);
+ if (NULL == obj_image) {
+ psb__error_message("Invalidate Image\n");
+
+ vaStatus = VA_STATUS_ERROR_INVALID_IMAGE;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ if (obj_image->image.format.fourcc != VA_FOURCC_NV12) {
+ psb__error_message("target VAImage fourcc should be NV12 or IYUV\n");
+ vaStatus = VA_STATUS_ERROR_OPERATION_FAILED;
+ return vaStatus;
+ }
+
+ object_surface_p obj_surface = SURFACE(surface);
+ if (NULL == obj_surface) {
+ vaStatus = VA_STATUS_ERROR_INVALID_SURFACE;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ psb__VAImageCheckRegion(obj_surface, &obj_image->image, &src_x, &src_y, &dest_x, &dest_y, &width, &height);
+
+ psb_surface_p psb_surface = obj_surface->psb_surface;
+ void *surface_data;
+ ret = psb_buffer_map(&psb_surface->buf, &surface_data);
+ if (ret) {
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ object_buffer_p obj_buffer = BUFFER(obj_image->image.buf);
+ if (NULL == obj_buffer) {
+ vaStatus = VA_STATUS_ERROR_INVALID_BUFFER;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ void *image_data;
+ ret = psb_buffer_map(obj_buffer->psb_buffer, &image_data);
+ if (ret) {
+ psb__error_message("Map buffer failed\n");
+
+ psb_buffer_unmap(&psb_surface->buf);
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ image_data += obj_surface->psb_surface->buf.buffer_ofs;
+
+ switch (obj_image->image.format.fourcc) {
+ case VA_FOURCC_NV12: {
+ unsigned char *source_y, *src_uv, *dst_y, *dst_uv;
+ int i;
+ /* copy Y plane */
+ dst_y = image_data;
+ source_y = surface_data + y * psb_surface->stride + x;
+ for (i = 0; i < height; i++) {
+ memcpy(dst_y, source_y, width);
+ dst_y += obj_image->image.pitches[0];
+ source_y += psb_surface->stride;
+ }
+
+ /* copy UV plane */
+ dst_uv = image_data + obj_image->image.offsets[1];
+ src_uv = surface_data + psb_surface->stride * obj_surface->height + (y / 2) * psb_surface->stride + x;;
+ for (i = 0; i < obj_image->image.height / 2; i++) {
+ memcpy(dst_uv, src_uv, width);
+ dst_uv += obj_image->image.pitches[1];
+ src_uv += psb_surface->stride;
+ }
+ break;
+ }
+#if 0
+ case VA_FOURCC_IYUV: {
+ unsigned char *source_y, *dst_y;
+ unsigned char *source_uv, *source_u, *source_v, *dst_u, *dst_v;
+ unsigned int i;
+
+ if (psb_surface->extra_info[4] == VA_FOURCC_IREC) {
+ /* copy Y plane */
+ dst_y = image_data + obj_image->image.offsets[0] + src_y * obj_image->image.pitches[0] + src_x;
+ dst_u = image_data + obj_image->image.offsets[1] + src_y * obj_image->image.pitches[1] + src_x;
+ dst_v = image_data + obj_image->image.offsets[2] + src_y * obj_image->image.pitches[2] + src_x;
+
+ source_y = surface_data + dest_y * psb_surface->stride + dest_x;
+ source_uv = surface_data + obj_surface->height * psb_surface->stride
+ + dest_y * (psb_surface->stride / 2) + dest_x;
+
+ vaStatus = lnc_unpack_topaz_rec(width, height, source_y, source_uv,
+ dst_y, dst_u, dst_v,
+ obj_image->image.pitches[0],
+ obj_image->image.pitches[1],
+ obj_image->image.pitches[2],
+ obj_surface->height);
+ }
+
+ break;
+ }
+#endif
+ default:
+ break;
+ }
+ psb_buffer_unmap(obj_buffer->psb_buffer);
+ psb_buffer_unmap(&psb_surface->buf);
+
+ return vaStatus;
+}
+
+static VAStatus psb_PutImage2(
+ VADriverContextP ctx,
+ VASurfaceID surface,
+ VAImageID image_id,
+ int src_x,
+ int src_y,
+ unsigned int width,
+ unsigned int height,
+ int dest_x,
+ int dest_y
+)
+{
+ INIT_DRIVER_DATA;
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ int ret;
+
+ object_image_p obj_image = IMAGE(image_id);
+ if (NULL == obj_image) {
+ vaStatus = VA_STATUS_ERROR_INVALID_IMAGE;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ object_surface_p obj_surface = SURFACE(surface);
+ if (NULL == obj_surface) {
+ vaStatus = VA_STATUS_ERROR_INVALID_SURFACE;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ if (obj_image->image.format.fourcc != VA_FOURCC_NV12) {
+ psb__error_message("target VAImage fourcc should be NV12 or IYUV\n");
+ vaStatus = VA_STATUS_ERROR_OPERATION_FAILED;
+ return vaStatus;
+ }
+
+ psb__VAImageCheckRegion(obj_surface, &obj_image->image, &src_x, &src_y, &dest_x, &dest_y, &width, &height);
+
+ psb_surface_p psb_surface = obj_surface->psb_surface;
+ void *surface_data;
+ ret = psb_buffer_map(&psb_surface->buf, &surface_data);
+ if (ret) {
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ object_buffer_p obj_buffer = BUFFER(obj_image->image.buf);
+ if (NULL == obj_buffer) {
+ vaStatus = VA_STATUS_ERROR_INVALID_BUFFER;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ void *image_data;
+ ret = psb_buffer_map(obj_buffer->psb_buffer, &image_data);
+ if (ret) {
+ psb_buffer_unmap(&psb_surface->buf);
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ image_data += obj_surface->psb_surface->buf.buffer_ofs;
+
+ switch (obj_image->image.format.fourcc) {
+ case VA_FOURCC_NV12: {
+ char *source_y, *src_uv, *dst_y, *dst_uv;
+ unsigned int i;
+
+ /* copy Y plane */
+ source_y = image_data + obj_image->image.offsets[0] + src_y * obj_image->image.pitches[0] + src_x;
+ dst_y = surface_data + dest_y * psb_surface->stride + dest_x;
+ for (i = 0; i < height; i++) {
+ memcpy(dst_y, source_y, width);
+ source_y += obj_image->image.pitches[0];
+ dst_y += psb_surface->stride;
+ }
+
+ /* copy UV plane */
+ src_uv = image_data + obj_image->image.offsets[1] + (src_y / 2) * obj_image->image.pitches[1] + src_x;
+ dst_uv = surface_data + psb_surface->stride * obj_surface->height + (dest_y / 2) * psb_surface->stride + dest_x;
+ for (i = 0; i < obj_image->image.height / 2; i++) {
+ memcpy(dst_uv, src_uv, width);
+ src_uv += obj_image->image.pitches[1];
+ dst_uv += psb_surface->stride;
+ }
+ break;
+ }
+#if 0
+ case VA_FOURCC_IYUV: {
+ char *source_y, *dst_y;
+ char *source_u, *source_v, *dst_u, *dst_v;
+ unsigned int i;
+
+ /* copy Y plane */
+ source_y = image_data + obj_image->image.offsets[0] + src_y * obj_image->image.pitches[0] + src_x;
+ source_u = image_data + obj_image->image.offsets[1] + src_y * obj_image->image.pitches[1] + src_x;
+ source_v = image_data + obj_image->image.offsets[2] + src_y * obj_image->image.pitches[2] + src_x;
+
+ dst_y = surface_data + dest_y * psb_surface->stride + dest_x;
+ dst_u = surface_data + obj_surface->height * psb_surface->stride
+ + dest_y * (psb_surface->stride / 2) + dest_x;
+ dst_v = surface_data + obj_surface->height * psb_surface->stride
+ + (obj_surface->height / 2) * (psb_surface->stride / 2)
+ + dest_y * (psb_surface->stride / 2) + dest_x;
+
+ for (i = 0; i < height; i++) {
+ memcpy(dst_y, source_y, width);
+ source_y += obj_image->image.pitches[0];
+ dst_y += psb_surface->stride;
+ }
+
+ /* copy UV plane */
+ for (i = 0; i < obj_image->image.height / 2; i++) {
+ memcpy(dst_u, source_u, width);
+ memcpy(dst_v, source_v, width);
+
+ source_u += obj_image->image.pitches[1];
+ source_v += obj_image->image.pitches[2];
+
+ dst_u += psb_surface->stride / 2;
+ dst_v += psb_surface->stride / 2;
+ }
+ break;
+ }
+#endif
+ default:
+ break;
+ }
+
+ psb_buffer_unmap(obj_buffer->psb_buffer);
+ psb_buffer_unmap(&psb_surface->buf);
+
+ return VA_STATUS_SUCCESS;
+}
+
+
+static void psb__VAImageCheckRegion2(
+ object_surface_p surface,
+ VAImage *image,
+ int *src_x,
+ int *src_y,
+ unsigned int *src_width,
+ unsigned int *src_height,
+ int *dest_x,
+ int *dest_y,
+ unsigned int *dest_width,
+ unsigned int *dest_height
+)
+{
+ /* check for image */
+ if (*src_x < 0) *src_x = 0;
+ if (*src_x > image->width) *src_x = image->width - 1;
+ if (*src_y < 0) *src_y = 0;
+ if (*src_y > image->height) *src_y = image->height - 1;
+
+ if (((*src_width) + (*src_x)) > image->width) *src_width = image->width - *src_x;
+ if (((*src_height) + (*src_y)) > image->height) *src_height = image->height - *src_x;
+
+ /* check for surface */
+ if (*dest_x < 0) *dest_x = 0;
+ if (*dest_x > surface->width) *dest_x = surface->width - 1;
+ if (*dest_y < 0) *dest_y = 0;
+ if (*dest_y > surface->height) *dest_y = surface->height - 1;
+
+ if (((*dest_width) + (*dest_x)) > surface->width) *dest_width = surface->width - *dest_x;
+ if (((*dest_height) + (*dest_y)) > surface->height) *dest_height = surface->height - *dest_x;
+}
+
+VAStatus psb_PutImage(
+ VADriverContextP ctx,
+ VASurfaceID surface,
+ VAImageID image_id,
+ int src_x,
+ int src_y,
+ unsigned int src_width,
+ unsigned int src_height,
+ int dest_x,
+ int dest_y,
+ unsigned int dest_width,
+ unsigned int dest_height
+)
+{
+ INIT_DRIVER_DATA;
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ int ret;
+
+ if ((src_width == dest_width) && (src_height == dest_height)) {
+ /* Shortcut if scaling is not required */
+ return psb_PutImage2(ctx, surface, image_id, src_x, src_y, src_width, src_height, dest_x, dest_y);
+ }
+
+ object_image_p obj_image = IMAGE(image_id);
+ if (NULL == obj_image) {
+ vaStatus = VA_STATUS_ERROR_INVALID_IMAGE;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ if (obj_image->image.format.fourcc != VA_FOURCC_NV12) {
+ /* only support NV12 getImage/putImage */
+ vaStatus = VA_STATUS_ERROR_OPERATION_FAILED;
+ return vaStatus;
+ }
+
+ object_surface_p obj_surface = SURFACE(surface);
+ if (NULL == obj_surface) {
+ vaStatus = VA_STATUS_ERROR_INVALID_SURFACE;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ psb__VAImageCheckRegion2(obj_surface, &obj_image->image,
+ &src_x, &src_y, &src_width, &src_height,
+ &dest_x, &dest_y, &dest_width, &dest_height);
+
+ psb_surface_p psb_surface = obj_surface->psb_surface;
+ void *surface_data;
+ ret = psb_buffer_map(&psb_surface->buf, &surface_data);
+ if (ret) {
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ object_buffer_p obj_buffer = BUFFER(obj_image->image.buf);
+ if (NULL == obj_buffer) {
+ vaStatus = VA_STATUS_ERROR_INVALID_BUFFER;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ void *image_data;
+ ret = psb_buffer_map(obj_buffer->psb_buffer, &image_data);
+ if (ret) {
+ psb_buffer_unmap(&psb_surface->buf);
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ /* just a prototype, the algorithm is ugly and not optimized */
+ switch (obj_image->image.format.fourcc) {
+ case VA_FOURCC_NV12: {
+ unsigned char *source_y, *dst_y;
+ unsigned short *source_uv, *dst_uv;
+ unsigned int i, j;
+ float xratio = (float) src_width / dest_width;
+ float yratio = (float) src_height / dest_height;
+
+ /* dst_y/dst_uv: Y/UV plane of destination */
+ dst_y = surface_data + dest_y * psb_surface->stride + dest_x;
+ dst_uv = surface_data + psb_surface->stride * obj_surface->height
+ + (dest_y / 2) * psb_surface->stride + dest_x;
+
+ for (j = 0; j < dest_height; j++) {
+ unsigned char *dst_y_tmp = dst_y;
+ unsigned short *dst_uv_tmp = dst_uv;
+
+ for (i = 0; i < dest_width; i++) {
+ int x = (int)(i * xratio);
+ int y = (int)(j * yratio);
+
+ source_y = image_data + obj_image->image.offsets[0]
+ + (src_y + y) * obj_image->image.pitches[0]
+ + (src_x + x);
+ *dst_y_tmp = *source_y;
+ dst_y_tmp++;
+
+ if (((i & 1) == 0)) {
+ source_uv = (unsigned short *)(image_data + obj_image->image.offsets[1]
+ + ((src_y + y) / 2) * obj_image->image.pitches[1])
+ + ((src_x + x) / 2);
+ *dst_uv_tmp = *source_uv;
+ dst_uv_tmp++;
+ }
+ }
+ dst_y += psb_surface->stride;
+
+ if (j & 1)
+ dst_uv = (unsigned short *)((void *)dst_uv + psb_surface->stride);
+ }
+ break;
+ }
+ default:/* will not reach here */
+ break;
+ }
+
+ psb_buffer_unmap(obj_buffer->psb_buffer);
+ psb_buffer_unmap(&psb_surface->buf);
+
+ return VA_STATUS_SUCCESS;
+}
+
+/*
+ * Link supbicture into one surface, when update is zero, not need to
+ * update the location information
+ * The image informatio and its BO of subpicture will copied to surface
+ * so need to update it when a vaSetSubpictureImage is called
+ */
+static VAStatus psb__LinkSubpictIntoSurface(
+ psb_driver_data_p driver_data,
+ object_surface_p obj_surface,
+ object_subpic_p obj_subpic,
+ short src_x,
+ short src_y,
+ unsigned short src_w,
+ unsigned short src_h,
+ short dest_x,
+ short dest_y,
+ unsigned short dest_w,
+ unsigned short dest_h,
+ int update /* update subpicture location */
+)
+{
+ PsbVASurfaceRec *surface_subpic;
+ object_image_p obj_image = IMAGE(obj_subpic->image_id);
+ if (NULL == obj_image) {
+ return VA_STATUS_ERROR_INVALID_IMAGE;
+ }
+
+ VAImage *image = &obj_image->image;
+ object_buffer_p obj_buffer = BUFFER(image->buf);
+ if (NULL == obj_buffer) {
+ return VA_STATUS_ERROR_INVALID_BUFFER;
+ }
+
+ int found = 0;
+
+ if (obj_surface->subpictures != NULL) {
+ surface_subpic = (PsbVASurfaceRec *)obj_surface->subpictures;
+ do {
+ if (surface_subpic->subpic_id == obj_subpic->subpic_id) {
+ found = 1;
+ break;
+ } else
+ surface_subpic = surface_subpic->next;
+ } while (surface_subpic);
+ }
+
+ if (found == 0) { /* new node */
+ if (obj_surface->subpic_count >= PSB_SUBPIC_MAX_NUM) {
+ psb__error_message("can't support so many sub-pictures for the surface\n");
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ surface_subpic = (PsbVASurfaceRec *)calloc(1, sizeof(*surface_subpic));
+ if (NULL == surface_subpic)
+ return VA_STATUS_ERROR_ALLOCATION_FAILED;
+ }
+
+ surface_subpic->subpic_id = obj_subpic->subpic_id;
+ surface_subpic->fourcc = image->format.fourcc;
+ surface_subpic->size = image->data_size;
+ surface_subpic->bo = obj_buffer->psb_buffer->drm_buf;
+ surface_subpic->bufid = wsbmKBufHandle(wsbmKBuf(obj_buffer->psb_buffer->drm_buf));
+ surface_subpic->pl_flags = obj_buffer->psb_buffer->pl_flags;
+ surface_subpic->subpic_flags = obj_subpic->flags;
+
+ surface_subpic->width = image->width;
+ surface_subpic->height = image->height;
+ switch (surface_subpic->fourcc) {
+ case VA_FOURCC_AYUV:
+ surface_subpic->stride = image->pitches[0] / 4;
+ break;
+ case VA_FOURCC_RGBA:
+ surface_subpic->stride = image->pitches[0] / 4;
+ break;
+ case VA_FOURCC_AI44:
+ surface_subpic->stride = image->pitches[0];
+ /* point to Image palette */
+ surface_subpic->palette_ptr = (PsbAYUVSample8 *) & obj_image->palette[0];
+ break;
+ }
+
+ if (update) {
+ surface_subpic->subpic_srcx = src_x;
+ surface_subpic->subpic_srcy = src_y;
+ surface_subpic->subpic_dstx = dest_x;
+ surface_subpic->subpic_dsty = dest_y;
+ surface_subpic->subpic_srcw = src_w;
+ surface_subpic->subpic_srch = src_h;
+ surface_subpic->subpic_dstw = dest_w;
+ surface_subpic->subpic_dsth = dest_h;
+ }
+
+ if (found == 0) { /* new node, link into the list */
+ if (NULL == obj_surface->subpictures) {
+ obj_surface->subpictures = surface_subpic;
+ } else { /* insert as the head */
+ surface_subpic->next = obj_surface->subpictures;
+ obj_surface->subpictures = surface_subpic;
+ }
+ obj_surface->subpic_count++;
+ }
+
+ return VA_STATUS_SUCCESS;
+}
+
+
+static VAStatus psb__LinkSurfaceIntoSubpict(
+ object_subpic_p obj_subpic,
+ VASurfaceID surface_id
+)
+{
+ subpic_surface_s *subpic_surface;
+ int found = 0;
+
+ if (obj_subpic->surfaces != NULL) {
+ subpic_surface = (subpic_surface_s *)obj_subpic->surfaces;
+ do {
+ if (subpic_surface->surface_id == surface_id) {
+ found = 1;
+ return VA_STATUS_SUCCESS; /* reture directly */
+ } else
+ subpic_surface = subpic_surface->next;
+ } while (subpic_surface);
+ }
+
+ /* not found */
+ subpic_surface = (subpic_surface_s *)calloc(1, sizeof(*subpic_surface));
+ if (NULL == subpic_surface)
+ return VA_STATUS_ERROR_ALLOCATION_FAILED;
+
+ subpic_surface->surface_id = surface_id;
+ subpic_surface->next = NULL;
+
+ if (NULL == obj_subpic->surfaces) {
+ obj_subpic->surfaces = subpic_surface;
+ } else { /* insert as the head */
+ subpic_surface->next = obj_subpic->surfaces;
+ obj_subpic->surfaces = subpic_surface;
+ }
+
+ return VA_STATUS_SUCCESS;
+}
+
+static VAStatus psb__DelinkSubpictFromSurface(
+ object_surface_p obj_surface,
+ VASubpictureID subpic_id
+)
+{
+ PsbVASurfaceRec *surface_subpic, *pre_surface_subpic = NULL;
+ int found = 0;
+
+ if (obj_surface->subpictures != NULL) {
+ surface_subpic = (PsbVASurfaceRec *)obj_surface->subpictures;
+ do {
+ if (surface_subpic->subpic_id == subpic_id) {
+ found = 1;
+ break;
+ } else {
+ pre_surface_subpic = surface_subpic;
+ surface_subpic = surface_subpic->next;
+ }
+ } while (surface_subpic);
+ }
+
+ if (found == 1) {
+ if (pre_surface_subpic == NULL) { /* remove the first node */
+ obj_surface->subpictures = surface_subpic->next;
+ } else {
+ pre_surface_subpic->next = surface_subpic->next;
+ }
+ free(surface_subpic);
+ obj_surface->subpic_count--;
+ }
+
+ return VA_STATUS_SUCCESS;
+}
+
+
+static VAStatus psb__DelinkSurfaceFromSubpict(
+ object_subpic_p obj_subpic,
+ VASurfaceID surface_id
+)
+{
+ subpic_surface_s *subpic_surface, *pre_subpic_surface = NULL;
+ int found = 0;
+
+ if (obj_subpic->surfaces != NULL) {
+ subpic_surface = (subpic_surface_s *)obj_subpic->surfaces;
+ do {
+ if (subpic_surface->surface_id == surface_id) {
+ found = 1;
+ break;
+ } else {
+ pre_subpic_surface = subpic_surface;
+ subpic_surface = subpic_surface->next;
+ }
+ } while (subpic_surface);
+ }
+
+ if (found == 1) {
+ if (pre_subpic_surface == NULL) { /* remove the first node */
+ obj_subpic->surfaces = subpic_surface->next;
+ } else {
+ pre_subpic_surface->next = subpic_surface->next;
+ }
+ free(subpic_surface);
+ }
+
+ return VA_STATUS_SUCCESS;
+}
+
+
+VAStatus psb_QuerySubpictureFormats(
+ VADriverContextP ctx,
+ VAImageFormat *format_list, /* out */
+ unsigned int *flags, /* out */
+ unsigned int *num_formats /* out */
+)
+{
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+
+ if (NULL == format_list) {
+ vaStatus = VA_STATUS_ERROR_INVALID_PARAMETER;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+ if (NULL == flags) {
+ vaStatus = VA_STATUS_ERROR_INVALID_PARAMETER;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+ if (NULL == num_formats) {
+ vaStatus = VA_STATUS_ERROR_INVALID_PARAMETER;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+ memcpy(format_list, psb__SubpicFormat, sizeof(psb__SubpicFormat));
+ *num_formats = PSB_MAX_SUBPIC_FORMATS;
+ *flags = PSB_SUPPORTED_SUBPIC_FLAGS;
+
+ return VA_STATUS_SUCCESS;
+}
+
+
+VAStatus psb_CreateSubpicture(
+ VADriverContextP ctx,
+ VAImageID image,
+ VASubpictureID *subpicture /* out */
+)
+{
+ INIT_DRIVER_DATA;
+ VASubpictureID subpicID;
+ object_subpic_p obj_subpic;
+ object_image_p obj_image;
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ VAImageFormat *img_fmt;
+
+ obj_image = IMAGE(image);
+
+ if (NULL == subpicture) {
+ vaStatus = VA_STATUS_ERROR_INVALID_SUBPICTURE;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ if (NULL == obj_image) {
+ vaStatus = VA_STATUS_ERROR_INVALID_IMAGE;
+ return vaStatus;
+ }
+
+ img_fmt = psb__VAImageCheckFourCC(&obj_image->image.format, psb__SubpicFormat,
+ sizeof(psb__SubpicFormat) / sizeof(VAImageFormat));
+ if (img_fmt == NULL)
+ return VA_STATUS_ERROR_UNKNOWN;
+
+ subpicID = object_heap_allocate(&driver_data->subpic_heap);
+ obj_subpic = SUBPIC(subpicID);
+ if (NULL == obj_subpic) {
+ vaStatus = VA_STATUS_ERROR_ALLOCATION_FAILED;
+ return vaStatus;
+ }
+ MEMSET_OBJECT(obj_subpic, struct object_subpic_s);
+
+ obj_subpic->subpic_id = subpicID;
+ obj_subpic->image_id = obj_image->image.image_id;
+ obj_subpic->surfaces = NULL;
+
+ obj_image->subpic_ref ++;
+
+ *subpicture = subpicID;
+
+ return VA_STATUS_SUCCESS;
+}
+
+
+
+VAStatus psb__destroy_subpicture(psb_driver_data_p driver_data, object_subpic_p obj_subpic)
+{
+ subpic_surface_s *subpic_surface = (subpic_surface_s *)obj_subpic->surfaces;
+ VASubpictureID subpicture = obj_subpic->subpic_id;
+
+ if (subpic_surface) {
+ do {
+ subpic_surface_s *tmp = subpic_surface;
+ object_surface_p obj_surface = SURFACE(subpic_surface->surface_id);
+
+ if (obj_surface) { /* remove subpict from surface */
+ psb__DelinkSubpictFromSurface(obj_surface, subpicture);
+ }
+ subpic_surface = subpic_surface->next;
+ free(tmp);
+ } while (subpic_surface);
+ }
+
+ object_heap_free(&driver_data->subpic_heap, (object_base_p) obj_subpic);
+ return VA_STATUS_SUCCESS;
+}
+
+
+VAStatus psb_DestroySubpicture(
+ VADriverContextP ctx,
+ VASubpictureID subpicture
+)
+{
+ INIT_DRIVER_DATA;
+ object_subpic_p obj_subpic;
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+
+ obj_subpic = SUBPIC(subpicture);
+ if (NULL == obj_subpic) {
+ vaStatus = VA_STATUS_ERROR_INVALID_SUBPICTURE;
+ return vaStatus;
+ }
+
+
+ return psb__destroy_subpicture(driver_data, obj_subpic);
+}
+
+VAStatus psb_SetSubpictureImage(
+ VADriverContextP ctx,
+ VASubpictureID subpicture,
+ VAImageID image
+)
+{
+ INIT_DRIVER_DATA;
+ object_subpic_p obj_subpic;
+ object_image_p obj_image;
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ subpic_surface_s *subpic_surface;
+ VAImageFormat *img_fmt;
+
+ obj_image = IMAGE(image);
+ if (NULL == obj_image) {
+ vaStatus = VA_STATUS_ERROR_INVALID_IMAGE;
+ return vaStatus;
+ }
+
+ img_fmt = psb__VAImageCheckFourCC(&obj_image->image.format,
+ psb__SubpicFormat,
+ sizeof(psb__SubpicFormat) / sizeof(VAImageFormat));
+ if (img_fmt == NULL)
+ return VA_STATUS_ERROR_INVALID_IMAGE;
+
+ obj_subpic = SUBPIC(subpicture);
+ if (NULL == obj_subpic) {
+ vaStatus = VA_STATUS_ERROR_INVALID_SUBPICTURE;
+ return vaStatus;
+ }
+
+ object_image_p old_obj_image = IMAGE(obj_subpic->image_id);
+ if (old_obj_image) {
+ old_obj_image->subpic_ref--;/* decrease reference count */
+ }
+
+ /* reset the image */
+ obj_subpic->image_id = obj_image->image.image_id;
+ obj_image->subpic_ref ++;
+
+ /* relink again */
+ if (obj_subpic->surfaces != NULL) {
+ /* the subpicture already linked into surfaces
+ * so not check the return value of psb__LinkSubpictIntoSurface
+ */
+ subpic_surface = (subpic_surface_s *)obj_subpic->surfaces;
+ do {
+ object_surface_p obj_surface = SURFACE(subpic_surface->surface_id);
+ if (NULL == obj_surface) {
+ vaStatus = VA_STATUS_ERROR_INVALID_SURFACE;
+ return vaStatus;
+ }
+
+ psb__LinkSubpictIntoSurface(driver_data, obj_surface, obj_subpic,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0 /* not update location */
+ );
+ subpic_surface = subpic_surface->next;
+ } while (subpic_surface);
+ }
+
+
+ return VA_STATUS_SUCCESS;
+}
+
+
+VAStatus psb_SetSubpictureChromakey(
+ VADriverContextP ctx,
+ VASubpictureID subpicture,
+ unsigned int chromakey_min,
+ unsigned int chromakey_max,
+ unsigned int chromakey_mask
+)
+{
+ INIT_DRIVER_DATA;
+ (void)driver_data;
+ /* TODO */
+ return VA_STATUS_ERROR_UNKNOWN;
+}
+
+VAStatus psb_SetSubpictureGlobalAlpha(
+ VADriverContextP ctx,
+ VASubpictureID subpicture,
+ float global_alpha
+)
+{
+ INIT_DRIVER_DATA;
+ (void)driver_data;
+ /* TODO */
+ return VA_STATUS_ERROR_UNKNOWN;
+}
+
+
+VAStatus psb__AssociateSubpicture(
+ VADriverContextP ctx,
+ VASubpictureID subpicture,
+ VASurfaceID *target_surfaces,
+ int num_surfaces,
+ short src_x, /* upper left offset in subpicture */
+ short src_y,
+ unsigned short src_w,
+ unsigned short src_h,
+ short dest_x, /* upper left offset in surface */
+ short dest_y,
+ unsigned short dest_w,
+ unsigned short dest_h,
+ /*
+ * whether to enable chroma-keying or global-alpha
+ * see VA_SUBPICTURE_XXX values
+ */
+ unsigned int flags
+)
+{
+ INIT_DRIVER_DATA;
+
+ object_subpic_p obj_subpic;
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ int i;
+
+ if (num_surfaces <= 0) {
+ vaStatus = VA_STATUS_ERROR_INVALID_PARAMETER;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ obj_subpic = SUBPIC(subpicture);
+ if (NULL == obj_subpic) {
+ vaStatus = VA_STATUS_ERROR_INVALID_SUBPICTURE;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ if (NULL == target_surfaces) {
+ vaStatus = VA_STATUS_ERROR_INVALID_SURFACE;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ if (flags & ~PSB_SUPPORTED_SUBPIC_FLAGS) {
+#ifdef VA_STATUS_ERROR_FLAG_NOT_SUPPORTED
+ vaStatus = VA_STATUS_ERROR_FLAG_NOT_SUPPORTED;
+#else
+ vaStatus = VA_STATUS_ERROR_UNKNOWN;
+#endif
+ DEBUG_FAILURE;
+ return vaStatus;
+ } else {
+
+ /* If flags are ok, copy them to the subpicture object */
+ obj_subpic->flags = flags;
+
+ }
+
+ /* Validate input params */
+ for (i = 0; i < num_surfaces; i++) {
+ object_surface_p obj_surface = SURFACE(target_surfaces[i]);
+ if (NULL == obj_surface) {
+ vaStatus = VA_STATUS_ERROR_INVALID_SURFACE;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+ }
+
+ VASurfaceID *surfaces = target_surfaces;
+ for (i = 0; i < num_surfaces; i++) {
+ object_surface_p obj_surface = SURFACE(*surfaces);
+ if (obj_surface) {
+ vaStatus = psb__LinkSubpictIntoSurface(driver_data, obj_surface, obj_subpic,
+ src_x, src_y, src_w, src_h,
+ dest_x, dest_y, dest_w, dest_h, 1);
+ if (VA_STATUS_SUCCESS == vaStatus) {
+ vaStatus = psb__LinkSurfaceIntoSubpict(obj_subpic, *surfaces);
+ }
+ if (VA_STATUS_SUCCESS != vaStatus) { /* failed with malloc */
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+ } else {
+ /* Should never get here */
+ psb__error_message("Invalid surfaces,SurfaceID=0x%x\n", *surfaces);
+ }
+
+ surfaces++;
+ }
+
+ return VA_STATUS_SUCCESS;
+}
+
+
+VAStatus psb_AssociateSubpicture(
+ VADriverContextP ctx,
+ VASubpictureID subpicture,
+ VASurfaceID *target_surfaces,
+ int num_surfaces,
+ short src_x, /* upper left offset in subpicture */
+ short src_y,
+ unsigned short src_width,
+ unsigned short src_height,
+ short dest_x, /* upper left offset in surface */
+ short dest_y,
+ unsigned short dest_width,
+ unsigned short dest_height,
+ /*
+ * whether to enable chroma-keying or global-alpha
+ * see VA_SUBPICTURE_XXX values
+ */
+ unsigned int flags
+)
+{
+ return psb__AssociateSubpicture(ctx, subpicture, target_surfaces, num_surfaces,
+ src_x, src_y, src_width, src_height,
+ dest_x, dest_y, dest_width, dest_height,
+ flags
+ );
+}
+
+
+VAStatus psb_DeassociateSubpicture(
+ VADriverContextP ctx,
+ VASubpictureID subpicture,
+ VASurfaceID *target_surfaces,
+ int num_surfaces
+)
+{
+ INIT_DRIVER_DATA;
+
+ object_subpic_p obj_subpic;
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ object_image_p obj_image;
+ int i;
+
+ if (num_surfaces <= 0) {
+ vaStatus = VA_STATUS_ERROR_INVALID_PARAMETER;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ obj_subpic = SUBPIC(subpicture);
+ if (NULL == obj_subpic) {
+ vaStatus = VA_STATUS_ERROR_INVALID_SUBPICTURE;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ if (NULL == target_surfaces) {
+ vaStatus = VA_STATUS_ERROR_INVALID_SURFACE;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ VASurfaceID *surfaces = target_surfaces;
+ for (i = 0; i < num_surfaces; i++) {
+ object_surface_p obj_surface = SURFACE(*surfaces);
+
+ if (obj_surface) {
+ psb__DelinkSubpictFromSurface(obj_surface, subpicture);
+ psb__DelinkSurfaceFromSubpict(obj_subpic, obj_surface->surface_id);
+ } else {
+ psb__error_message("vaDeassociateSubpicture: Invalid surface, VASurfaceID=0x%08x\n", *surfaces);
+ }
+
+ surfaces++;
+ }
+
+ obj_image = IMAGE(obj_subpic->image_id);
+ if (obj_image)
+ obj_image->subpic_ref--;/* decrease reference count */
+
+ return VA_STATUS_SUCCESS;
+}
+
+
+void psb_SurfaceDeassociateSubpict(
+ psb_driver_data_p driver_data,
+ object_surface_p obj_surface
+)
+{
+ PsbVASurfaceRec *surface_subpic = (PsbVASurfaceRec *)obj_surface->subpictures;
+
+ if (surface_subpic != NULL) {
+ do {
+ PsbVASurfaceRec *tmp = surface_subpic;
+ object_subpic_p obj_subpic = SUBPIC(surface_subpic->subpic_id);
+ if (obj_subpic)
+ psb__DelinkSurfaceFromSubpict(obj_subpic, obj_surface->surface_id);
+ surface_subpic = surface_subpic->next;
+ free(tmp);
+ } while (surface_subpic);
+ }
+}
+
+
+static VADisplayAttribute psb__DisplayAttribute[] = {
+ {
+ VADisplayAttribBrightness,
+ BRIGHTNESS_MIN,
+ BRIGHTNESS_MAX,
+ BRIGHTNESS_DEFAULT_VALUE,
+ VA_DISPLAY_ATTRIB_GETTABLE | VA_DISPLAY_ATTRIB_SETTABLE
+ },
+
+ {
+ VADisplayAttribContrast,
+ CONTRAST_MIN,
+ CONTRAST_MAX,
+ CONTRAST_DEFAULT_VALUE,
+ VA_DISPLAY_ATTRIB_GETTABLE | VA_DISPLAY_ATTRIB_SETTABLE
+ },
+
+ {
+ VADisplayAttribHue,
+ HUE_MIN,
+ HUE_MAX,
+ HUE_DEFAULT_VALUE,
+ VA_DISPLAY_ATTRIB_GETTABLE | VA_DISPLAY_ATTRIB_SETTABLE
+ },
+
+ {
+ VADisplayAttribSaturation,
+ SATURATION_MIN,
+ SATURATION_MAX,
+ SATURATION_DEFAULT_VALUE,
+ VA_DISPLAY_ATTRIB_GETTABLE | VA_DISPLAY_ATTRIB_SETTABLE
+ },
+ {
+ VADisplayAttribBackgroundColor,
+ 0x00000000,
+ 0xffffffff,
+ 0x00000000,
+ VA_DISPLAY_ATTRIB_GETTABLE | VA_DISPLAY_ATTRIB_SETTABLE
+ },
+};
+
+/*
+ * Query display attributes
+ * The caller must provide a "attr_list" array that can hold at
+ * least vaMaxNumDisplayAttributes() entries. The actual number of attributes
+ * returned in "attr_list" is returned in "num_attributes".
+ */
+VAStatus psb_QueryDisplayAttributes(
+ VADriverContextP ctx,
+ VADisplayAttribute *attr_list, /* out */
+ int *num_attributes /* out */
+)
+{
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+
+ if (NULL == attr_list) {
+ vaStatus = VA_STATUS_ERROR_INVALID_PARAMETER;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+ if (NULL == num_attributes) {
+ vaStatus = VA_STATUS_ERROR_INVALID_PARAMETER;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+ *num_attributes = min(*num_attributes, PSB_MAX_DISPLAY_ATTRIBUTES);
+ memcpy(attr_list, psb__DisplayAttribute, *num_attributes);
+
+ return VA_STATUS_SUCCESS;
+}
+
+/*
+ * Get display attributes
+ * This function returns the current attribute values in "attr_list".
+ * Only attributes returned with VA_DISPLAY_ATTRIB_GETTABLE set in the "flags" field
+ * from vaQueryDisplayAttributes() can have their values retrieved.
+ */
+VAStatus psb_GetDisplayAttributes(
+ VADriverContextP ctx,
+ VADisplayAttribute *attr_list, /* in/out */
+ int num_attributes
+)
+{
+ INIT_DRIVER_DATA;
+ VADisplayAttribute *p = attr_list;
+ int i;
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+
+ if (NULL == attr_list) {
+ vaStatus = VA_STATUS_ERROR_INVALID_PARAMETER;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ if (num_attributes <= 0) {
+ return VA_STATUS_ERROR_INVALID_PARAMETER;
+ }
+
+ for (i = 0; i < num_attributes; i++) {
+ switch (p->type) {
+ case VADisplayAttribBrightness:
+ /* -50*(1<<10) ~ 50*(1<<10) ==> 0~100*/
+ p->value = (driver_data->brightness.value / (1 << 10)) + 50;
+ p->min_value = 0;
+ p->max_value = 100;
+ break;
+ case VADisplayAttribContrast:
+ /* 0 ~ 2*(1<<25) ==> 0~100 */
+ p->value = (driver_data->contrast.value / (1 << 25)) * 50;
+ p->min_value = 0;
+ p->max_value = 100;
+ break;
+ case VADisplayAttribHue:
+ /* -30*(1<<25) ~ 30*(1<<25) ==> 0~100*/
+ p->value = ((driver_data->hue.value / (1 << 25)) + 30) * 10 / 6;
+ p->min_value = 0;
+ p->max_value = 100;
+ break;
+ case VADisplayAttribSaturation:
+ /* 0 ~ 2*(1<<25) ==> 0~100 */
+ p->value = (driver_data->saturation.value / (1 << 25)) * 50;
+ p->min_value = 0;
+ p->max_value = 100;
+ break;
+ case VADisplayAttribBackgroundColor:
+ p->value = driver_data->clear_color;
+ break;
+ case VADisplayAttribBlendColor:
+ p->value = driver_data->blend_color;
+ break;
+ case VADisplayAttribOverlayColorKey:
+ p->value = driver_data->color_key;
+ p->min_value = 0;
+ p->max_value = 0xFFFFFF;
+ break;
+ case VADisplayAttribOverlayAutoPaintColorKey:
+ p->value = driver_data->overlay_auto_paint_color_key;
+ p->min_value = 0;
+ p->max_value = 1;
+ break;
+ default:
+ break;
+ }
+ p++;
+ }
+
+ return VA_STATUS_SUCCESS;
+}
+
+static int Angle2Rotation(int angle)
+{
+ angle %= 360;
+ switch (angle) {
+ case 0:
+ return VA_ROTATION_NONE;
+ case 90:
+ return VA_ROTATION_90;
+ case 180:
+ return VA_ROTATION_180;
+ case 270:
+ return VA_ROTATION_270;
+ default:
+ return -1;
+ }
+}
+
+static int Rotation2Angle(int rotation)
+{
+ switch (rotation) {
+ case VA_ROTATION_NONE:
+ return 0;
+ case VA_ROTATION_90:
+ return 90;
+ case VA_ROTATION_180:
+ return 180;
+ case VA_ROTATION_270:
+ return 270;
+ default:
+ return -1;
+ }
+}
+
+/*
+ * Set display attributes
+ * Only attributes returned with VA_DISPLAY_ATTRIB_SETTABLE set in the "flags" field
+ * from vaQueryDisplayAttributes() can be set. If the attribute is not settable or
+ * the value is out of range, the function returns VA_STATUS_ERROR_ATTR_NOT_SUPPORTED
+ */
+#define CLAMP_ATTR(a,max,min) (a>max?max:(a<min?min:a))
+VAStatus psb_SetDisplayAttributes(
+ VADriverContextP ctx,
+ VADisplayAttribute *attr_list,
+ int num_attributes
+)
+{
+ INIT_DRIVER_DATA;
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ struct psb_texture_s *texture_priv = &driver_data->ctexture_priv;
+ PsbPortPrivPtr overlay_priv = (PsbPortPrivPtr)(&driver_data->coverlay_priv);
+
+ if (NULL == attr_list) {
+ vaStatus = VA_STATUS_ERROR_INVALID_PARAMETER;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ VADisplayAttribute *p = attr_list;
+ int i, update_coeffs = 0;
+ int angle;
+
+ if (num_attributes <= 0) {
+ return VA_STATUS_ERROR_INVALID_PARAMETER;
+ }
+
+ for (i = 0; i < num_attributes; i++) {
+ switch (p->type) {
+ case VADisplayAttribBrightness:
+ /* 0~100 ==> -50*(1<<10) ~ 50*(1<<10)*/
+ driver_data->brightness.value = (p->value - 50) * (1 << 10);
+ /* 0~100 ==> -50~50 */
+ overlay_priv->brightness.Value = texture_priv->brightness.Value = p->value - 50;
+ update_coeffs = 1;
+ break;
+ case VADisplayAttribContrast:
+ /* 0~100 ==> 0 ~ 2*(1<<25) */
+ driver_data->contrast.value = (p->value / 50) * (1 << 25);
+ /* 0~100 ==> -100~100 */
+ overlay_priv->contrast.Value = texture_priv->contrast.Value = p->value * 2 - 100;
+ update_coeffs = 1;
+ break;
+ case VADisplayAttribHue:
+ /* 0~100 ==> -30*(1<<25) ~ 30*(1<<25) */
+ driver_data->hue.value = ((p->value * 2 - 100) * 3 / 10) * (1 << 25);
+ /* 0~100 ==> -30~30 */
+ overlay_priv->hue.Value = texture_priv->hue.Value = (p->value * 2 - 100) * 3 / 10;
+ update_coeffs = 1;
+ break;
+ case VADisplayAttribSaturation:
+ /* 0~100 ==> 0 ~ 2*(1<<25) */
+ driver_data->contrast.value = (p->value / 50) * (1 << 25);
+ /* 0~100 ==> 100~200 */
+ overlay_priv->saturation.Value = texture_priv->saturation.Value = p->value + 100;
+ update_coeffs = 1;
+ break;
+ case VADisplayAttribBLEBlackMode:
+ driver_data->ble_black_mode.value = p->value;
+ update_coeffs = 1;
+ break;
+ case VADisplayAttribBLEWhiteMode:
+ driver_data->ble_white_mode.value = p->value;
+ update_coeffs = 1;
+ break;
+ case VADisplayAttribBlueStretch:
+ driver_data->blueStretch_gain.value = p->value;
+ update_coeffs = 1;
+ break;
+ case VADisplayAttribSkinColorCorrection:
+ driver_data->skinColorCorrection_gain.value = p->value;
+ update_coeffs = 1;
+ break;
+ case VADisplayAttribBackgroundColor:
+ driver_data->clear_color = p->value;
+ break;
+ case VADisplayAttribOutofLoopDeblock:
+ driver_data->is_oold = p->value;
+ break;
+ case VADisplayAttribRotation:
+ driver_data->video_rotate = p->value;
+ angle = Rotation2Angle(driver_data->video_rotate) + Rotation2Angle(driver_data->mipi0_rotation);
+ driver_data->local_rotation = Angle2Rotation(angle);
+ angle = Rotation2Angle(driver_data->video_rotate) + Rotation2Angle(driver_data->hdmi_rotation);
+ driver_data->extend_rotation = Angle2Rotation(angle);
+#ifndef ANDROID
+ if (driver_data->local_rotation == driver_data->extend_rotation) {
+ driver_data->rotate = driver_data->local_rotation;
+ } else {
+ driver_data->rotate = driver_data->video_rotate;
+ /*fallback to texblit path*/
+ driver_data->output_method = PSB_PUTSURFACE_FORCE_CTEXTURE;
+ }
+#endif
+ if (driver_data->rotate == VA_ROTATION_270)
+ driver_data->rotate = 3; /* Match with hw definition */
+ break;
+ case VADisplayAttribCSCMatrix:
+ driver_data->load_csc_matrix = 1;
+ memcpy(&(driver_data->csc_matrix[0][0]), (void *)p->value, sizeof(signed int) * 9);
+ break;
+ case VADisplayAttribBlendColor:
+ driver_data->blend_color = p->value;
+ break;
+ case VADisplayAttribOverlayColorKey:
+ driver_data->color_key = p->value;
+ break;
+ case VADisplayAttribOverlayAutoPaintColorKey:
+ driver_data->overlay_auto_paint_color_key = p->value;
+ break;
+ case VADisplayAttribRenderDevice:
+ driver_data->render_device = p->value & VA_RENDER_DEVICE_MASK;
+ case VADisplayAttribRenderMode:
+ if (p->value & VA_RENDER_MODE_EXTERNAL_GPU) {
+ psb__error_message("%s:Invalid parameter.VARenderModeExternalGPU is not supported.\n", __FUNCTION__);
+ return VA_STATUS_ERROR_INVALID_PARAMETER;
+ }
+ if (((p->value & VA_RENDER_MODE_LOCAL_OVERLAY) && (p->value & VA_RENDER_MODE_LOCAL_GPU)) ||
+ ((p->value & VA_RENDER_MODE_EXTERNAL_OVERLAY) && (p->value & VA_RENDER_MODE_EXTERNAL_GPU))) {
+ psb__error_message("%s:Invalid parameter. Conflict setting for VADisplayAttribRenderMode.\n", __FUNCTION__);
+ return VA_STATUS_ERROR_INVALID_PARAMETER;
+ }
+ driver_data->render_mode = p->value & VA_RENDER_MODE_MASK;
+ break;
+ case VADisplayAttribRenderRect:
+ driver_data->render_rect.x = ((VARectangle *)(p->value))->x;
+ driver_data->render_rect.y = ((VARectangle *)(p->value))->y;
+ driver_data->render_rect.width = ((VARectangle *)(p->value))->width;
+ driver_data->render_rect.height = ((VARectangle *)(p->value))->height;
+ break;
+ default:
+ break;
+ }
+ p++;
+ }
+
+ if (update_coeffs) {
+ /* TODO */
+#ifndef ANDROID
+ texture_priv->update_coeffs = 1;
+#endif
+ }
+
+ return VA_STATUS_SUCCESS;
+}
+
diff --git a/src/psb_output.h b/src/psb_output.h
new file mode 100644
index 0000000..0c7fa29
--- /dev/null
+++ b/src/psb_output.h
@@ -0,0 +1,379 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ * Shengquan Yuan <shengquan.yuan@intel.com>
+ * Zhaohan Ren <zhaohan.ren@intel.com>
+ * Jason Hu <jason.hu@intel.com>
+ *
+ */
+
+#ifndef _PSB_OUTPUT_H_
+#define _PSB_OUTPUT_H_
+#include <inttypes.h>
+#include "psb_drv_video.h"
+#include "psb_drm.h"
+#include "psb_surface.h"
+#include "hwdefs/img_types.h"
+#include <va/va.h>
+#include <linux/fb.h>
+#include <fcntl.h>
+
+#ifndef ANDROID
+#include <va/va_x11.h>
+#else
+#define Drawable unsigned int
+#define Bool int
+#define LOG_TAG "pvr_drv_video"
+#endif
+
+#define PSB_MAX_IMAGE_FORMATS 5 /* sizeof(psb__CreateImageFormat)/sizeof(VAImageFormat) */
+#define PSB_MAX_SUBPIC_FORMATS 3 /* sizeof(psb__SubpicFormat)/sizeof(VAImageFormat) */
+#define PSB_MAX_DISPLAY_ATTRIBUTES 6 /* sizeof(psb__DisplayAttribute)/sizeof(VADisplayAttribute) */
+
+#define VA_SUBPICTURE_DESTINATION_IS_SCREEN_COORD 0x0004
+#define PSB_SUPPORTED_SUBPIC_FLAGS VA_SUBPICTURE_DESTINATION_IS_SCREEN_COORD /* No alpha or chroma key support */
+
+
+#define CLAMP(_X) ( (_X)= ((_X)<0?0:((_X)>255?255:(_X)) ) )
+
+#define HUE_DEFAULT_VALUE 0
+#define HUE_MIN -180
+#define HUE_MAX 180
+#define HUE_STEPSIZE 0.1
+
+#define BRIGHTNESS_DEFAULT_VALUE 0
+#define BRIGHTNESS_MIN -100
+#define BRIGHTNESS_MAX 100
+#define BRIGHTNESS_STEPSIZE 0.1
+
+#define CONTRAST_DEFAULT_VALUE 1
+#define CONTRAST_MIN 0
+#define CONTRAST_MAX 2
+#define CONTRAST_STEPSIZE 0.0001
+
+#define SATURATION_DEFAULT_VALUE 1
+#define SATURATION_MIN 0
+#define SATURATION_MAX 3
+#define SATURATION_STEPSIZE 0.0001
+
+#define VA_RENDER_MODE_MASK 0x0f
+#define VA_RENDER_DEVICE_MASK 0x03
+
+#define PSB_DRIDDX_VERSION_MAJOR 0
+#define PSB_DRIDDX_VERSION_MINOR 1
+#define PSB_DRIDDX_VERSION_PATCH 0
+
+#define psb__ImageNV12 \
+{ \
+ VA_FOURCC_NV12, \
+ VA_LSB_FIRST, \
+ 16, \
+ 0, \
+ 0, \
+ 0, \
+ 0, \
+ 0 \
+}
+
+#define psb__ImageAYUV \
+{ \
+ VA_FOURCC_AYUV, \
+ VA_LSB_FIRST, \
+ 32, \
+ 0, \
+ 0, \
+ 0, \
+ 0, \
+ 0 \
+}
+
+#define psb__ImageAI44 \
+{ \
+ VA_FOURCC_AI44, \
+ VA_LSB_FIRST, \
+ 16, \
+ 0, \
+ 0, \
+ 0, \
+ 0, \
+ 0, \
+}
+
+#define psb__ImageRGBA \
+{ \
+ VA_FOURCC_RGBA, \
+ VA_LSB_FIRST, \
+ 32, \
+ 32, \
+ 0xff, \
+ 0xff00, \
+ 0xff0000, \
+ 0xff000000 \
+}
+
+#define psb__ImageYV16 \
+{ \
+ VA_FOURCC_YV16, \
+ VA_LSB_FIRST, \
+ 16, \
+ 0, \
+ 0, \
+ 0, \
+ 0, \
+ 0, \
+}
+
+VAStatus psb__destroy_subpicture(psb_driver_data_p driver_data, object_subpic_p obj_subpic);
+VAStatus psb__destroy_image(psb_driver_data_p driver_data, object_image_p obj_image);
+
+/*
+ * VAImage call these buffer routines
+ */
+VAStatus psb__CreateBuffer(
+ psb_driver_data_p driver_data,
+ object_context_p obj_context, /* in */
+ VABufferType type, /* in */
+ unsigned int size, /* in */
+ unsigned int num_elements, /* in */
+ void *data, /* in */
+ VABufferID *buf_desc /* out */
+);
+
+VAStatus psb_DestroyBuffer(
+ VADriverContextP ctx,
+ VABufferID buffer_id
+);
+
+VAStatus psb_initOutput(
+ VADriverContextP ctx
+);
+
+
+VAStatus psb_deinitOutput(
+ VADriverContextP ctx
+);
+
+VAStatus psb_PutSurfaceBuf(
+ VADriverContextP ctx,
+ VASurfaceID surface,
+ unsigned char* data,
+ int* data_len,
+ short srcx,
+ short srcy,
+ unsigned short srcw,
+ unsigned short srch,
+ short destx,
+ short desty,
+ unsigned short destw,
+ unsigned short desth,
+ VARectangle *cliprects, /* client supplied clip list */
+ unsigned int number_cliprects, /* number of clip rects in the clip list */
+ unsigned int flags /* de-interlacing flags */
+);
+
+VAStatus psb_PutSurface(
+ VADriverContextP ctx,
+ VASurfaceID surface,
+ void* draw, /* X Drawable */
+ short srcx,
+ short srcy,
+ unsigned short srcw,
+ unsigned short srch,
+ short destx,
+ short desty,
+ unsigned short destw,
+ unsigned short desth,
+ VARectangle *cliprects, /* client supplied clip list */
+ unsigned int number_cliprects, /* number of clip rects in the clip list */
+ unsigned int flags /* de-interlacing flags */
+);
+
+VAStatus psb_QueryImageFormats(
+ VADriverContextP ctx,
+ VAImageFormat *format_list, /* out */
+ int *num_formats /* out */
+);
+
+VAStatus psb_CreateImage(
+ VADriverContextP ctx,
+ VAImageFormat *format,
+ int width,
+ int height,
+ VAImage *image /* out */
+);
+
+VAStatus psb_DeriveImage(
+ VADriverContextP ctx,
+ VASurfaceID surface,
+ VAImage *image /* out */
+);
+
+VAStatus psb_DestroyImage(
+ VADriverContextP ctx,
+ VAImageID image
+);
+
+VAStatus psb_SetImagePalette(
+ VADriverContextP ctx,
+ VAImageID image,
+ /*
+ * pointer to an array holding the palette data. The size of the array is
+ * num_palette_entries * entry_bytes in size. The order of the components
+ * in the palette is described by the component_order in VAImage struct
+ */
+ unsigned char *palette
+);
+
+VAStatus psb_GetImage(
+ VADriverContextP ctx,
+ VASurfaceID surface,
+ int x, /* coordinates of the upper left source pixel */
+ int y,
+ unsigned int width, /* width and height of the region */
+ unsigned int height,
+ VAImageID image
+);
+
+VAStatus psb_PutImage(
+ VADriverContextP ctx,
+ VASurfaceID surface,
+ VAImageID image,
+ int src_x,
+ int src_y,
+ unsigned int src_width,
+ unsigned int src_height,
+ int dest_x,
+ int dest_y,
+ unsigned int dest_width,
+ unsigned int dest_height
+);
+
+VAStatus psb_QuerySubpictureFormats(
+ VADriverContextP ctx,
+ VAImageFormat *format_list, /* out */
+ unsigned int *flags, /* out */
+ unsigned int *num_formats /* out */
+);
+
+VAStatus psb_CreateSubpicture(
+ VADriverContextP ctx,
+ VAImageID image,
+ VASubpictureID *subpicture /* out */
+);
+
+VAStatus psb_DestroySubpicture(
+ VADriverContextP ctx,
+ VASubpictureID subpicture
+);
+
+VAStatus psb_SetSubpictureImage(
+ VADriverContextP ctx,
+ VASubpictureID subpicture,
+ VAImageID image
+);
+
+
+VAStatus psb_SetSubpictureChromakey(
+ VADriverContextP ctx,
+ VASubpictureID subpicture,
+ unsigned int chromakey_min,
+ unsigned int chromakey_max,
+ unsigned int chromakey_mask
+);
+
+VAStatus psb_SetSubpictureGlobalAlpha(
+ VADriverContextP ctx,
+ VASubpictureID subpicture,
+ float global_alpha
+);
+
+VAStatus psb_AssociateSubpicture(
+ VADriverContextP ctx,
+ VASubpictureID subpicture,
+ VASurfaceID *target_surfaces,
+ int num_surfaces,
+ short src_x, /* upper left offset in subpicture */
+ short src_y,
+ unsigned short src_width,
+ unsigned short src_height,
+ short dest_x, /* upper left offset in surface */
+ short dest_y,
+ unsigned short dest_width,
+ unsigned short dest_height,
+ /*
+ * whether to enable chroma-keying or global-alpha
+ * see VA_SUBPICTURE_XXX values
+ */
+ unsigned int flags
+);
+
+VAStatus psb_DeassociateSubpicture(
+ VADriverContextP ctx,
+ VASubpictureID subpicture,
+ VASurfaceID *target_surfaces,
+ int num_surfaces
+);
+
+void psb_SurfaceDeassociateSubpict(
+ psb_driver_data_p driver_data,
+ object_surface_p obj_surface
+);
+
+/*
+ * Query display attributes
+ * The caller must provide a "attr_list" array that can hold at
+ * least vaMaxNumDisplayAttributes() entries. The actual number of attributes
+ * returned in "attr_list" is returned in "num_attributes".
+ */
+VAStatus psb_QueryDisplayAttributes(
+ VADriverContextP ctx,
+ VADisplayAttribute *attr_list, /* out */
+ int *num_attributes /* out */
+);
+
+/*
+ * Get display attributes
+ * This function returns the current attribute values in "attr_list".
+ * Only attributes returned with VA_DISPLAY_ATTRIB_GETTABLE set in the "flags" field
+ * from vaQueryDisplayAttributes() can have their values retrieved.
+ */
+VAStatus psb_GetDisplayAttributes(
+ VADriverContextP ctx,
+ VADisplayAttribute *attr_list, /* in/out */
+ int num_attributes
+);
+
+/*
+ * Set display attributes
+ * Only attributes returned with VA_DISPLAY_ATTRIB_SETTABLE set in the "flags" field
+ * from vaQueryDisplayAttributes() can be set. If the attribute is not settable or
+ * the value is out of range, the function returns VA_STATUS_ERROR_ATTR_NOT_SUPPORTED
+ */
+VAStatus psb_SetDisplayAttributes(
+ VADriverContextP ctx,
+ VADisplayAttribute *attr_list,
+ int num_attributes
+);
+
+#endif /* _PSB_OUTPUT_H_ */
diff --git a/src/psb_overlay.c b/src/psb_overlay.c
new file mode 100644
index 0000000..40fcc21
--- /dev/null
+++ b/src/psb_overlay.c
@@ -0,0 +1,1334 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ * Shengquan Yuan <shengquan.yuan@intel.com>
+ * Binglin Chen <binglin.chen@intel.com>
+ * Jason Hu <jason.hu@intel.com>
+ * Zeng Li <zeng.li@intel.com>
+ */
+
+/*
+ * Most of rendering codes are ported from xf86-video-i810/src/i810_overlay.c
+ */
+
+#include <errno.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <math.h>
+#include <va/va_backend.h>
+#include <wsbm/wsbm_manager.h>
+#include <psb_drm.h>
+#include "psb_drv_video.h"
+#include "psb_output.h"
+#include "psb_overlay.h"
+
+#ifdef ANDROID
+#define psb_xrandr_single_mode() 1
+#endif
+
+#define INIT_DRIVER_DATA psb_driver_data_p driver_data = (psb_driver_data_p) ctx->pDriverData
+#define SURFACE(id) ((object_surface_p) object_heap_lookup( &driver_data->surface_heap, id ))
+#define CONTEXT(id) ((object_context_p) object_heap_lookup( &driver_data->context_heap, id ))
+
+#ifndef VA_FOURCC_I420
+#define VA_FOURCC_I420 0x30323449
+#endif
+
+/**********************************************************************************************
+ * I830ResetVideo
+ *
+ * Description: Use this function to reset the overlay register back buffer to its default
+ * values. Note that this function does not actually apply these values. To do so, please
+ * write to OVADD.
+ **********************************************************************************************/
+static void
+I830ResetVideo(VADriverContextP ctx, PsbPortPrivPtr pPriv)
+{
+ INIT_DRIVER_DATA;
+ I830OverlayRegPtr overlayA = (I830OverlayRegPtr)(pPriv->regmap[0]);
+ I830OverlayRegPtr overlayC = (I830OverlayRegPtr)(pPriv->regmap[1]);
+ long offsetA = wsbmBOOffsetHint(pPriv->wsbo[0]) & 0x0FFFFFFF;
+ long offsetC = wsbmBOOffsetHint(pPriv->wsbo[1]) & 0x0FFFFFFF;
+ struct drm_psb_register_rw_arg regs;
+
+ memset(overlayA, 0, sizeof(*overlayA));
+ memset(overlayC, 0, sizeof(*overlayC));
+ memset(&regs, 0, sizeof(regs));
+
+ overlayA->OCLRC0 = (pPriv->contrast.Value << 18) | (pPriv->brightness.Value & 0xff);
+ overlayA->OCLRC1 = pPriv->saturation.Value;
+
+ overlayC->OCLRC0 = (pPriv->contrast.Value << 18) | (pPriv->brightness.Value & 0xff);
+ overlayC->OCLRC1 = pPriv->saturation.Value;
+
+#if USE_DCLRK
+ /* case bit depth 16 */
+ overlayA->DCLRKV = pPriv->colorKey;
+ overlayA->DCLRKM |= DEST_KEY_ENABLE;
+ overlayA->DCLRKM &= ~CONST_ALPHA_ENABLE;
+
+ overlayC->DCLRKV = pPriv->colorKey;
+ overlayC->DCLRKM |= DEST_KEY_ENABLE;
+ overlayC->DCLRKM &= ~CONST_ALPHA_ENABLE;
+#else
+ overlayA->DCLRKM &= ~DEST_KEY_ENABLE;
+ overlayC->DCLRKM &= ~DEST_KEY_ENABLE;
+#endif
+ overlayA->DWINSZ = 0x00000000;
+ overlayA->OCONFIG = CC_OUT_8BIT;
+
+ overlayC->DWINSZ = 0x00000000;
+ overlayC->OCONFIG = CC_OUT_8BIT;
+ regs.overlay_read_mask = OVC_REGRWBITS_OVADD;
+ drmCommandWriteRead(driver_data->drm_fd, DRM_PSB_REGISTER_RW, &regs, sizeof(regs));
+ regs.overlay_read_mask = 0;
+ regs.overlay_write_mask = OVC_REGRWBITS_OVADD;
+ regs.overlay.OVADD &= ~(0xffff << 16);
+ regs.overlay.OVADD |= offsetC;
+ drmCommandWriteRead(driver_data->drm_fd, DRM_PSB_REGISTER_RW, &regs, sizeof(regs));
+
+ memset(&regs, 0, sizeof(regs));
+ regs.overlay_read_mask = OV_REGRWBITS_OVADD;
+ drmCommandWriteRead(driver_data->drm_fd, DRM_PSB_REGISTER_RW, &regs, sizeof(regs));
+ regs.overlay_read_mask = 0;
+ regs.overlay_write_mask = OV_REGRWBITS_OVADD;
+ regs.overlay.OVADD &= ~(0xffff << 16);
+ regs.overlay.OVADD |= offsetA;
+ drmCommandWriteRead(driver_data->drm_fd, DRM_PSB_REGISTER_RW, &regs, sizeof(regs));
+}
+
+static uint32_t I830BoundGammaElt(uint32_t elt, uint32_t eltPrev)
+{
+ elt &= 0xff;
+ eltPrev &= 0xff;
+ if (elt < eltPrev)
+ elt = eltPrev;
+ else if ((elt - eltPrev) > 0x7e)
+ elt = eltPrev + 0x7e;
+ return elt;
+}
+
+static uint32_t I830BoundGamma(uint32_t gamma, uint32_t gammaPrev)
+{
+ return (I830BoundGammaElt(gamma >> 24, gammaPrev >> 24) << 24 |
+ I830BoundGammaElt(gamma >> 16, gammaPrev >> 16) << 16 |
+ I830BoundGammaElt(gamma >> 8, gammaPrev >> 8) << 8 |
+ I830BoundGammaElt(gamma , gammaPrev));
+}
+
+static void
+I830UpdateGamma(VADriverContextP ctx, PsbPortPrivPtr pPriv)
+{
+ INIT_DRIVER_DATA;
+ uint32_t gamma0 = pPriv->gamma0;
+ uint32_t gamma1 = pPriv->gamma1;
+ uint32_t gamma2 = pPriv->gamma2;
+ uint32_t gamma3 = pPriv->gamma3;
+ uint32_t gamma4 = pPriv->gamma4;
+ uint32_t gamma5 = pPriv->gamma5;
+ struct drm_psb_register_rw_arg regs;
+
+ gamma1 = I830BoundGamma(gamma1, gamma0);
+ gamma2 = I830BoundGamma(gamma2, gamma1);
+ gamma3 = I830BoundGamma(gamma3, gamma2);
+ gamma4 = I830BoundGamma(gamma4, gamma3);
+ gamma5 = I830BoundGamma(gamma5, gamma4);
+
+ memset(&regs, 0, sizeof(regs));
+ if (pPriv->is_mfld)
+ regs.overlay_write_mask |= OV_REGRWBITS_OGAM_ALL | OVC_REGRWBITS_OGAM_ALL;
+ else
+ regs.overlay_write_mask |= OV_REGRWBITS_OGAM_ALL;
+ regs.overlay.OGAMC0 = gamma0;
+ regs.overlay.OGAMC1 = gamma1;
+ regs.overlay.OGAMC2 = gamma2;
+ regs.overlay.OGAMC3 = gamma3;
+ regs.overlay.OGAMC4 = gamma4;
+ regs.overlay.OGAMC5 = gamma5;
+ drmCommandWriteRead(driver_data->drm_fd, DRM_PSB_REGISTER_RW, &regs, sizeof(regs));
+}
+
+static void I830StopVideo(VADriverContextP ctx)
+{
+ INIT_DRIVER_DATA;
+ PsbPortPrivPtr pPriv = (PsbPortPrivPtr)(&driver_data->coverlay_priv);
+ long offsetA = wsbmBOOffsetHint(pPriv->wsbo[0]) & 0x0FFFFFFF;
+ I830OverlayRegPtr overlayA = (I830OverlayRegPtr)(pPriv->regmap[0]);
+ I830OverlayRegPtr overlayC = (I830OverlayRegPtr)(pPriv->regmap[1]);
+ struct drm_psb_register_rw_arg regs;
+
+#if 0
+ REGION_EMPTY(pScrn->pScreen, &pPriv->clip);
+#endif
+
+ memset(&regs, 0, sizeof(regs));
+ if (pPriv->subpicture_enabled) {
+ regs.subpicture_disable_mask = pPriv->subpicture_enable_mask;
+ pPriv->subpicture_enabled = 0;
+ drmCommandWriteRead(driver_data->drm_fd, DRM_PSB_REGISTER_RW, &regs, sizeof(regs));
+ }
+
+ memset(&regs, 0, sizeof(regs));
+
+ if (pPriv->is_mfld && psb_xrandr_single_mode() == 0) {
+ if (pPriv->overlayC_enabled) {
+ regs.overlay_read_mask = OVC_REGRWBITS_OVADD;
+ drmCommandWriteRead(driver_data->drm_fd, DRM_PSB_REGISTER_RW, &regs, sizeof(regs));
+
+ overlayC->OCMD &= ~OVERLAY_ENABLE;
+ regs.overlay_read_mask = 0;
+ regs.overlay_write_mask = OVC_REGRWBITS_OVADD;
+ drmCommandWriteRead(driver_data->drm_fd, DRM_PSB_REGISTER_RW, &regs, sizeof(regs));
+
+ memset(&regs, 0, sizeof(regs));
+ pPriv->overlayC_enabled = 0;
+ }
+ if (pPriv->overlayA_enabled) {
+ regs.overlay_read_mask = OV_REGRWBITS_OVADD;
+ drmCommandWriteRead(driver_data->drm_fd, DRM_PSB_REGISTER_RW, &regs, sizeof(regs));
+
+ overlayA->OCMD &= ~OVERLAY_ENABLE;
+ regs.overlay_read_mask = 0;
+ regs.overlay_write_mask = OV_REGRWBITS_OVADD;
+ drmCommandWriteRead(driver_data->drm_fd, DRM_PSB_REGISTER_RW, &regs, sizeof(regs));
+ pPriv->overlayA_enabled = 0;
+ }
+ } else {
+ regs.overlay_write_mask = OV_REGRWBITS_OVADD;
+ regs.overlay.OVADD = offsetA;
+ pPriv->overlayA_enabled = 0;
+ drmCommandWriteRead(driver_data->drm_fd, DRM_PSB_REGISTER_RW, &regs, sizeof(regs));
+ }
+}
+
+static void I830SwitchPipe(VADriverContextP ctx , int overlayId, int pipeId)
+{
+ INIT_DRIVER_DATA;
+ PsbPortPrivPtr pPriv = (PsbPortPrivPtr)(&driver_data->coverlay_priv);
+ I830OverlayRegPtr overlay = (I830OverlayRegPtr)(pPriv->regmap[overlayId]);
+ struct drm_psb_register_rw_arg regs;
+ uint32_t overlay_mask;
+
+ if ((overlayId == OVERLAY_A) && pPriv->overlayA_enabled)
+ overlay_mask = OV_REGRWBITS_OVADD;
+ else if ((overlayId == OVERLAY_C) && pPriv->overlayC_enabled)
+ overlay_mask = OVC_REGRWBITS_OVADD;
+ else
+ return; /*No overlay enabled, do nothing.*/
+
+ psb__information_message("Overlay %d switch to pipe %d\n", overlayId, pipeId);
+ memset(&regs, 0, sizeof(regs));
+ memset(overlay, 0, sizeof(*overlay));
+ overlay->OCLRC0 = (pPriv->contrast.Value << 18) | (pPriv->brightness.Value & 0xff);
+ overlay->OCLRC1 = pPriv->saturation.Value;
+
+ /* case bit depth 16 */
+ overlay->DCLRKV = pPriv->colorKey;
+ overlay->DCLRKM |= DEST_KEY_ENABLE;
+ overlay->DCLRKM &= ~CONST_ALPHA_ENABLE;
+ overlay->DWINSZ = 0x00000000;
+ overlay->OCONFIG = CC_OUT_8BIT;
+
+ regs.overlay_read_mask = overlay_mask;
+ drmCommandWriteRead(driver_data->drm_fd, DRM_PSB_REGISTER_RW, &regs, sizeof(regs));
+
+ switch (pipeId) {
+ case PIPEA:
+ overlay->OCONFIG |= OVERLAY_C_PIPE_A;
+ break;
+ case PIPEB:
+ overlay->OCONFIG |= OVERLAY_C_PIPE_B;
+ break;
+ case PIPEC:
+ overlay->OCONFIG |= OVERLAY_C_PIPE_C;
+ break;
+ }
+ regs.overlay_read_mask = 0;
+ regs.overlay_write_mask = overlay_mask;
+ regs.overlay.b_wait_vblank = 1;
+ drmCommandWriteRead(driver_data->drm_fd, DRM_PSB_REGISTER_RW, &regs, sizeof(regs));
+}
+
+static int
+i830_swidth(unsigned int offset, unsigned int width, unsigned int mask, int shift)
+{
+ int swidth = ((offset + width + mask) >> shift) - (offset >> shift);
+ swidth <<= 1;
+ swidth -= 1;
+ return swidth << 2;
+}
+
+static Bool
+SetCoeffRegs(double *coeff, int mantSize, coeffPtr pCoeff, int pos)
+{
+ int maxVal, icoeff, res;
+ int sign;
+ double c;
+
+ sign = 0;
+ maxVal = 1 << mantSize;
+ c = *coeff;
+ if (c < 0.0) {
+ sign = 1;
+ c = -c;
+ }
+
+ res = 12 - mantSize;
+ if ((icoeff = (int)(c * 4 * maxVal + 0.5)) < maxVal) {
+ pCoeff[pos].exponent = 3;
+ pCoeff[pos].mantissa = icoeff << res;
+ *coeff = (double)icoeff / (double)(4 * maxVal);
+ } else if ((icoeff = (int)(c * 2 * maxVal + 0.5)) < maxVal) {
+ pCoeff[pos].exponent = 2;
+ pCoeff[pos].mantissa = icoeff << res;
+ *coeff = (double)icoeff / (double)(2 * maxVal);
+ } else if ((icoeff = (int)(c * maxVal + 0.5)) < maxVal) {
+ pCoeff[pos].exponent = 1;
+ pCoeff[pos].mantissa = icoeff << res;
+ *coeff = (double)icoeff / (double)(maxVal);
+ } else if ((icoeff = (int)(c * maxVal * 0.5 + 0.5)) < maxVal) {
+ pCoeff[pos].exponent = 0;
+ pCoeff[pos].mantissa = icoeff << res;
+ *coeff = (double)icoeff / (double)(maxVal / 2);
+ } else {
+ /* Coeff out of range */
+ return FALSE;
+ }
+
+ pCoeff[pos].sign = sign;
+ if (sign)
+ *coeff = -(*coeff);
+ return TRUE;
+}
+
+static void
+UpdateCoeff(int taps, double fCutoff, Bool isHoriz, Bool isY, coeffPtr pCoeff)
+{
+ int i, j, j1, num, pos, mantSize;
+ double pi = 3.1415926535, val, sinc, window, sum;
+ double rawCoeff[MAX_TAPS * 32], coeffs[N_PHASES][MAX_TAPS];
+ double diff;
+ int tapAdjust[MAX_TAPS], tap2Fix;
+ Bool isVertAndUV;
+
+ if (isHoriz)
+ mantSize = 7;
+ else
+ mantSize = 6;
+
+ isVertAndUV = !isHoriz && !isY;
+ num = taps * 16;
+ for (i = 0; i < num * 2; i++) {
+ val = (1.0 / fCutoff) * taps * pi * (i - num) / (2 * num);
+ if (val == 0.0)
+ sinc = 1.0;
+ else
+ sinc = sin(val) / val;
+
+ /* Hamming window */
+ window = (0.5 - 0.5 * cos(i * pi / num));
+ rawCoeff[i] = sinc * window;
+ }
+
+ for (i = 0; i < N_PHASES; i++) {
+ /* Normalise the coefficients. */
+ sum = 0.0;
+ for (j = 0; j < taps; j++) {
+ pos = i + j * 32;
+ sum += rawCoeff[pos];
+ }
+ for (j = 0; j < taps; j++) {
+ pos = i + j * 32;
+ coeffs[i][j] = rawCoeff[pos] / sum;
+ }
+
+ /* Set the register values. */
+ for (j = 0; j < taps; j++) {
+ pos = j + i * taps;
+ if ((j == (taps - 1) / 2) && !isVertAndUV)
+ SetCoeffRegs(&coeffs[i][j], mantSize + 2, pCoeff, pos);
+ else
+ SetCoeffRegs(&coeffs[i][j], mantSize, pCoeff, pos);
+ }
+
+ tapAdjust[0] = (taps - 1) / 2;
+ for (j = 1, j1 = 1; j <= tapAdjust[0]; j++, j1++) {
+ tapAdjust[j1] = tapAdjust[0] - j;
+ tapAdjust[++j1] = tapAdjust[0] + j;
+ }
+
+ /* Adjust the coefficients. */
+ sum = 0.0;
+ for (j = 0; j < taps; j++)
+ sum += coeffs[i][j];
+ if (sum != 1.0) {
+ for (j1 = 0; j1 < taps; j1++) {
+ tap2Fix = tapAdjust[j1];
+ diff = 1.0 - sum;
+ coeffs[i][tap2Fix] += diff;
+ pos = tap2Fix + i * taps;
+ if ((tap2Fix == (taps - 1) / 2) && !isVertAndUV)
+ SetCoeffRegs(&coeffs[i][tap2Fix], mantSize + 2, pCoeff, pos);
+ else
+ SetCoeffRegs(&coeffs[i][tap2Fix], mantSize, pCoeff, pos);
+
+ sum = 0.0;
+ for (j = 0; j < taps; j++)
+ sum += coeffs[i][j];
+ if (sum == 1.0)
+ break;
+ }
+ }
+ }
+}
+
+static void
+i830_display_video(
+ VADriverContextP ctx, PsbPortPrivPtr pPriv, VASurfaceID surface,
+ int id, short width, short height,
+ int dstPitch, int srcPitch, int x1, int y1, int x2, int y2, BoxPtr dstBox,
+ short src_w, short src_h, short drw_w, short drw_h,
+ unsigned int flags, int overlayId, int pipeId)
+{
+ INIT_DRIVER_DATA;
+ unsigned int swidth, swidthy, swidthuv;
+ unsigned int mask, shift, offsety, offsetu;
+ int tmp;
+ uint32_t OCMD;
+ Bool scaleChanged = FALSE;
+ unsigned int offset = wsbmBOOffsetHint(pPriv->wsbo[overlayId]) & 0x0FFFFFFF;
+ I830OverlayRegPtr overlay = (I830OverlayRegPtr)(pPriv->regmap[overlayId]);
+ struct drm_psb_register_rw_arg regs;
+ int i32EnableIEP = 0;
+ int i32EnableIEPBLE = 0;
+
+#if 0
+ if (drw_w >= 800) {
+ x2 = x2 / 4;
+ y2 = y2 / 4;
+ dstBox->x2 = dstBox->x2 / 4;
+ dstBox->y2 = dstBox->y2 / 4;
+ drw_w = drw_w / 4;
+ drw_h = drw_h / 4;
+ }
+#endif
+ overlay->DCLRKM &= ~CONST_ALPHA_ENABLE;
+ if (pPriv->subpicture_enabled)
+ overlay->DCLRKM &= ~DEST_KEY_ENABLE;
+ else
+ overlay->DCLRKM |= DEST_KEY_ENABLE;
+
+ overlay->DCLRKV = pPriv->colorKey;
+#if USE_ROTATION_FUNC
+ if (((pipeId == PIPEA) && (driver_data->mipi0_rotation != VA_ROTATION_NONE)) ||
+ ((pipeId == PIPEB) && (driver_data->hdmi_rotation != VA_ROTATION_NONE))) {
+ switch (pPriv->rotation) {
+ case VA_ROTATION_NONE:
+ break;
+ case VA_ROTATION_270:
+ tmp = dstBox->x1;
+ dstBox->x1 = dstBox->y1;
+ dstBox->y1 = pPriv->height_save - tmp;
+ tmp = dstBox->x2;
+ dstBox->x2 = dstBox->y2;
+ dstBox->y2 = pPriv->height_save - tmp;
+ tmp = dstBox->y1;
+ dstBox->y1 = dstBox->y2;
+ dstBox->y2 = tmp;
+ tmp = drw_w;
+ drw_w = drw_h;
+ drw_h = tmp;
+ break;
+ case VA_ROTATION_180:
+ tmp = dstBox->x1;
+ dstBox->x1 = pPriv->width_save - dstBox->x2;
+ dstBox->x2 = pPriv->width_save - tmp;
+ tmp = dstBox->y1;
+ dstBox->y1 = pPriv->height_save - dstBox->y2;
+ dstBox->y2 = pPriv->height_save - tmp;
+ break;
+ case VA_ROTATION_90:
+ tmp = dstBox->x1;
+ dstBox->x1 = pPriv->width_save - dstBox->y1;
+ dstBox->y1 = tmp;
+ tmp = dstBox->x2;
+ dstBox->x2 = pPriv->width_save - dstBox->y2;
+ dstBox->y2 = tmp;
+ tmp = dstBox->x1;
+ dstBox->x1 = dstBox->x2;
+ dstBox->x2 = tmp;
+ tmp = drw_w;
+ drw_w = drw_h;
+ drw_h = tmp;
+ break;
+ }
+ }
+#endif
+
+ if (pPriv->oneLineMode) {
+ /* change the coordinates with panel fitting active */
+ dstBox->y1 = (((dstBox->y1 - 1) * pPriv->scaleRatio) >> 16) + 1;
+ dstBox->y2 = ((dstBox->y2 * pPriv->scaleRatio) >> 16) + 1;
+
+ /* Now, alter the height, so we scale to the correct size */
+ drw_h = ((drw_h * pPriv->scaleRatio) >> 16) + 1;
+ }
+
+ shift = 6;
+ mask = 0x3f;
+
+ if (pPriv->curBuf == 0) {
+ offsety = pPriv->YBuf0offset;
+ offsetu = pPriv->UBuf0offset;
+ } else {
+ offsety = pPriv->YBuf1offset;
+ offsetu = pPriv->UBuf1offset;
+ }
+
+ switch (id) {
+ case VA_FOURCC_NV12:
+ overlay->SWIDTH = width | ((width / 2 & 0x7ff) << 16);
+ swidthy = i830_swidth(offsety, width, mask, shift);
+ swidthuv = i830_swidth(offsetu, width / 2, mask, shift);
+ overlay->SWIDTHSW = (swidthy) | (swidthuv << 16);
+ overlay->SHEIGHT = height | ((height / 2) << 16);
+ break;
+ case VA_FOURCC_YV12:
+ case VA_FOURCC_I420:
+ overlay->SWIDTH = width | ((width / 2 & 0x7ff) << 16);
+ swidthy = i830_swidth(offsety, width, mask, shift);
+ swidthuv = i830_swidth(offsetu, width / 2, mask, shift);
+ overlay->SWIDTHSW = (swidthy) | (swidthuv << 16);
+ overlay->SHEIGHT = height | ((height / 2) << 16);
+ break;
+ case VA_FOURCC_UYVY:
+ case VA_FOURCC_YUY2:
+ default:
+ overlay->SWIDTH = width;
+ swidth = ((offsety + (width << 1) + mask) >> shift) -
+ (offsety >> shift);
+
+ swidth <<= 1;
+ swidth -= 1;
+ swidth <<= 2;
+
+ overlay->SWIDTHSW = swidth;
+ overlay->SHEIGHT = height;
+ break;
+ }
+
+ overlay->DWINPOS = (dstBox->y1 << 16) | dstBox->x1;
+
+ overlay->DWINSZ = (((dstBox->y2 - dstBox->y1) << 16) |
+ (dstBox->x2 - dstBox->x1));
+
+ /* buffer locations */
+ overlay->OBUF_0Y = pPriv->YBuf0offset;
+ overlay->OBUF_0U = pPriv->UBuf0offset;
+ overlay->OBUF_0V = pPriv->VBuf0offset;
+ overlay->OBUF_1Y = pPriv->YBuf1offset;
+ overlay->OBUF_1U = pPriv->UBuf1offset;
+ overlay->OBUF_1V = pPriv->VBuf1offset;
+
+ /*
+ * Calculate horizontal and vertical scaling factors and polyphase
+ * coefficients.
+ */
+
+ if (1) {
+ int xscaleInt, xscaleFract, yscaleInt, yscaleFract;
+ int xscaleIntUV, xscaleFractUV;
+ int yscaleIntUV, yscaleFractUV;
+ /* UV is half the size of Y -- YUV420 */
+ int uvratio = 2;
+ uint32_t newval;
+ coeffRec xcoeffY[N_HORIZ_Y_TAPS * N_PHASES];
+ coeffRec xcoeffUV[N_HORIZ_UV_TAPS * N_PHASES];
+ int i, j, pos;
+ int deinterlace_factor;
+
+ /*
+ * Y down-scale factor as a multiple of 4096.
+ */
+ if ((id == VA_FOURCC_NV12) && (0 != (flags & (VA_TOP_FIELD | VA_BOTTOM_FIELD))))
+ deinterlace_factor = 2;
+ else
+ deinterlace_factor = 1;
+
+ /* deinterlace requires twice of VSCALE setting*/
+ if (src_w == drw_w && src_h == drw_h) {
+ xscaleFract = 1 << 12;
+ yscaleFract = (1 << 12) / deinterlace_factor;
+ } else {
+ xscaleFract = ((src_w - 1) << 12) / drw_w;
+ yscaleFract = ((src_h - 1) << 12) / (deinterlace_factor * drw_h);
+ }
+
+ /* Calculate the UV scaling factor. */
+ xscaleFractUV = xscaleFract / uvratio;
+ yscaleFractUV = yscaleFract / uvratio;
+
+ /*
+ * To keep the relative Y and UV ratios exact, round the Y scales
+ * to a multiple of the Y/UV ratio.
+ */
+ xscaleFract = xscaleFractUV * uvratio;
+ yscaleFract = yscaleFractUV * uvratio;
+
+ /* Integer (un-multiplied) values. */
+ xscaleInt = xscaleFract >> 12;
+ yscaleInt = yscaleFract >> 12;
+
+ xscaleIntUV = xscaleFractUV >> 12;
+ yscaleIntUV = yscaleFractUV >> 12;
+
+ /* shouldn't get here */
+ if (xscaleInt > 7) {
+ return;
+ }
+
+ /* shouldn't get here */
+ if (xscaleIntUV > 7) {
+ return;
+ }
+
+ if (pPriv->is_mfld)
+ newval = (xscaleInt << 15) |
+ ((xscaleFract & 0xFFF) << 3) | ((yscaleFract & 0xFFF) << 20);
+ else
+ newval = (xscaleInt << 16) |
+ ((xscaleFract & 0xFFF) << 3) | ((yscaleFract & 0xFFF) << 20);
+
+ if (newval != overlay->YRGBSCALE) {
+ scaleChanged = TRUE;
+ overlay->YRGBSCALE = newval;
+ }
+
+ if (pPriv->is_mfld)
+ newval = (xscaleIntUV << 15) | ((xscaleFractUV & 0xFFF) << 3) |
+ ((yscaleFractUV & 0xFFF) << 20);
+ else
+ newval = (xscaleIntUV << 16) | ((xscaleFractUV & 0xFFF) << 3) |
+ ((yscaleFractUV & 0xFFF) << 20);
+
+ if (newval != overlay->UVSCALE) {
+ scaleChanged = TRUE;
+ overlay->UVSCALE = newval;
+ }
+
+ newval = yscaleInt << 16 | yscaleIntUV;
+ if (newval != overlay->UVSCALEV) {
+ scaleChanged = TRUE;
+ overlay->UVSCALEV = newval;
+ }
+
+ /* Recalculate coefficients if the scaling changed. */
+
+ /*
+ * Only Horizontal coefficients so far.
+ */
+ if (scaleChanged) {
+ double fCutoffY;
+ double fCutoffUV;
+
+ fCutoffY = xscaleFract / 4096.0;
+ fCutoffUV = xscaleFractUV / 4096.0;
+
+ /* Limit to between 1.0 and 3.0. */
+ if (fCutoffY < MIN_CUTOFF_FREQ)
+ fCutoffY = MIN_CUTOFF_FREQ;
+ if (fCutoffY > MAX_CUTOFF_FREQ)
+ fCutoffY = MAX_CUTOFF_FREQ;
+ if (fCutoffUV < MIN_CUTOFF_FREQ)
+ fCutoffUV = MIN_CUTOFF_FREQ;
+ if (fCutoffUV > MAX_CUTOFF_FREQ)
+ fCutoffUV = MAX_CUTOFF_FREQ;
+
+ UpdateCoeff(N_HORIZ_Y_TAPS, fCutoffY, TRUE, TRUE, xcoeffY);
+ UpdateCoeff(N_HORIZ_UV_TAPS, fCutoffUV, TRUE, FALSE, xcoeffUV);
+
+ for (i = 0; i < N_PHASES; i++) {
+ for (j = 0; j < N_HORIZ_Y_TAPS; j++) {
+ pos = i * N_HORIZ_Y_TAPS + j;
+ overlay->Y_HCOEFS[pos] = (xcoeffY[pos].sign << 15 |
+ xcoeffY[pos].exponent << 12 |
+ xcoeffY[pos].mantissa);
+ }
+ }
+ for (i = 0; i < N_PHASES; i++) {
+ for (j = 0; j < N_HORIZ_UV_TAPS; j++) {
+ pos = i * N_HORIZ_UV_TAPS + j;
+ overlay->UV_HCOEFS[pos] = (xcoeffUV[pos].sign << 15 |
+ xcoeffUV[pos].exponent << 12 |
+ xcoeffUV[pos].mantissa);
+ }
+ }
+ }
+ }
+
+ OCMD = OVERLAY_ENABLE;
+
+ switch (id) {
+ case VA_FOURCC_NV12:
+ overlay->OSTRIDE = dstPitch | (dstPitch << 16);
+ OCMD &= ~SOURCE_FORMAT;
+ OCMD &= ~OV_BYTE_ORDER;
+ OCMD |= NV12;//in the spec, there are two NV12, which to use?
+ break;
+ case VA_FOURCC_YV12:
+ case VA_FOURCC_I420:
+ /* set UV vertical phase to -0.25 */
+ /* overlay->UV_VPH = 0x30003000; */
+ overlay->OSTRIDE = (dstPitch * 2) | (dstPitch << 16);
+ OCMD &= ~SOURCE_FORMAT;
+ OCMD &= ~OV_BYTE_ORDER;
+ OCMD |= YUV_420;
+ break;
+ case VA_FOURCC_UYVY:
+ case VA_FOURCC_YUY2:
+ overlay->OSTRIDE = dstPitch;
+ OCMD &= ~SOURCE_FORMAT;
+ OCMD |= YUV_422;
+ OCMD &= ~OV_BYTE_ORDER;
+ if (id == VA_FOURCC_UYVY)
+ OCMD |= Y_SWAP;
+ break;
+ }
+
+ if (flags & (VA_TOP_FIELD | VA_BOTTOM_FIELD)) {
+ OCMD |= BUF_TYPE_FIELD;
+ OCMD &= ~FIELD_SELECT;
+
+ if (flags & VA_BOTTOM_FIELD) {
+ OCMD |= FIELD1;
+ overlay->OBUF_0Y = pPriv->YBuf0offset - srcPitch;
+ overlay->OBUF_0U = pPriv->UBuf0offset - srcPitch;
+ overlay->OBUF_0V = pPriv->VBuf0offset - srcPitch;
+ overlay->OBUF_1Y = pPriv->YBuf1offset - srcPitch;
+ overlay->OBUF_1U = pPriv->UBuf1offset - srcPitch;
+ overlay->OBUF_1V = pPriv->VBuf1offset - srcPitch;
+ } else
+ OCMD |= FIELD0;
+ } else {
+ OCMD &= ~(FIELD_SELECT);
+ OCMD &= ~BUF_TYPE_FIELD;
+ }
+
+ OCMD &= ~(BUFFER_SELECT);
+
+ if (pPriv->curBuf == 0)
+ OCMD |= BUFFER0;
+ else
+ OCMD |= BUFFER1;
+
+ overlay->OCMD = OCMD;
+
+ memset(&regs, 0, sizeof(regs));
+ switch (overlayId) {
+ case OVERLAY_A:
+ pPriv->overlayA_enabled = 1;
+ regs.overlay_write_mask = OV_REGRWBITS_OVADD;
+ break;
+ case OVERLAY_C:
+ pPriv->overlayC_enabled = 1;
+ regs.overlay_write_mask = OVC_REGRWBITS_OVADD;
+ break;
+ }
+
+ if (pPriv->is_mfld) {
+ i32EnableIEP = 0;
+
+ i32EnableIEPBLE = 0;
+
+ if (i32EnableIEP == 0) {
+ overlay->OCONFIG = CC_OUT_8BIT;
+ overlay->OCONFIG &= OVERLAY_C_PIPE_A | (~OVERLAY_C_PIPE_MASK);
+ overlay->OCONFIG |= IEP_LITE_BYPASS;
+ regs.overlay.OVADD = offset | 1;
+ regs.overlay.IEP_ENABLED = 0;
+ }
+ } else {
+ overlay->OCONFIG = CC_OUT_8BIT;
+ overlay->OCONFIG |= IEP_LITE_BYPASS;
+ regs.overlay.OVADD = offset | 1;
+ }
+
+ if (pPriv->is_mfld) {
+ switch (pipeId) {
+ case PIPEA:
+ overlay->OCONFIG |= OVERLAY_C_PIPE_A;
+ overlay->OCONFIG |= ZORDER_TOP;
+ break;
+ case PIPEB:
+ overlay->OCONFIG |= OVERLAY_C_PIPE_B;
+ overlay->OCONFIG |= ZORDER_TOP;
+ regs.overlay.OVADD |= 0x80;
+ break;
+ case PIPEC:
+ overlay->OCONFIG |= OVERLAY_C_PIPE_C;
+ overlay->OCONFIG |= ZORDER_TOP;
+ regs.overlay.OVADD |= 0x40;
+ break;
+ }
+ overlay->OCONFIG |= ZORDER_TOP;
+ } else
+ overlay->OCONFIG |= pipeId << 18; /* mrst */
+
+ drmCommandWriteRead(driver_data->drm_fd, DRM_PSB_REGISTER_RW, &regs, sizeof(regs));
+
+ if (pPriv->is_mfld) {
+ if (regs.overlay.IEP_ENABLED) {
+#if 0
+ printf("regs.overlay BLE minmax 0x%x, BSSCC control 0x%x\n",
+ regs.overlay.IEP_BLE_MINMAX, regs.overlay.IEP_BSSCC_CONTROL);
+#endif
+ *(unsigned int *)((unsigned int)&(overlay->IEP_SPACE[0]) + 0x804) = regs.overlay.IEP_BLE_MINMAX;
+ }
+ }
+}
+
+/*
+ * The source rectangle of the video is defined by (src_x, src_y, src_w, src_h).
+ * The dest rectangle of the video is defined by (drw_x, drw_y, drw_w, drw_h).
+ * id is a fourcc code for the format of the video.
+ * buf is the pointer to the source data in system memory.
+ * width and height are the w/h of the source data.
+ * If "sync" is TRUE, then we must be finished with *buf at the point of return
+ * (which we always are).
+ * clipBoxes is the clipping region in screen space.
+ * data is a pointer to our port private.
+ * pDraw is a Drawable, which might not be the screen in the case of
+ * compositing. It's a new argument to the function in the 1.1 server.
+ */
+static int I830PutImage(
+ VADriverContextP ctx,
+ VASurfaceID surface,
+ short src_x, short src_y,
+ short src_w, short src_h,
+ short drw_x, short drw_y,
+ short drw_w, short drw_h,
+ int fourcc, int flags,
+ int overlayId,
+ int pipeId)
+{
+ INIT_DRIVER_DATA;
+ int x1, x2, y1, y2;
+ int width, height;
+ int top, left, npixels;
+ int pitch = 0, pitch2 = 0;
+ short tmp;
+ unsigned int pre_add;
+ unsigned int gtt_ofs;
+ struct _WsbmBufferObject *drm_buf;
+ BoxRec dstBox;
+ PsbPortPrivPtr pPriv;
+ object_surface_p obj_surface = SURFACE(surface);
+ psb_surface_p psb_surface = NULL;
+
+ /* silent kw */
+ if (NULL == obj_surface)
+ return 1;
+
+#if 0
+ if (pipeId == 0) {
+ psb_surface = obj_surface->psb_surface_rotate;
+ psb_buffer_p buf = &psb_surface->buf;
+ unsigned char *data, *chroma, *buffer, *header;
+ static FILE *pf = NULL;
+ int ret, i;
+ if (!psb_surface)
+ goto dump_out;
+ if (pf == NULL)
+ if ((pf = fopen("/home/dump.yuv", "w+")) == NULL)
+ printf("Open yuv file fails\n");
+
+ ret = psb_buffer_map(buf, &data);
+
+ if (ret)
+ printf("Map buffer fail\n");
+
+ for (i = 0; i < obj_surface->height_r; i++) {
+ fwrite(data, 1, obj_surface->width_r, pf);
+ data += psb_surface->stride;
+ }
+
+ buffer = malloc(obj_surface->height_r * obj_surface->width_r);
+ if (!buffer)
+ printf("Alloc chroma buffer fail\n");
+
+ header = buffer;
+ chroma = data;
+ for (i = 0; i < obj_surface->height_r / 2; i++) {
+ int j;
+ for (j = 0; j < obj_surface->width_r / 2; j++) {
+ *buffer++ = data[j*2];
+ }
+ data += psb_surface->stride;
+ }
+
+ data = chroma;
+ for (i = 0; i < obj_surface->height_r / 2; i++) {
+ int j;
+ for (j = 0; j < obj_surface->width_r / 2; j++) {
+ *buffer++ = data[j*2 + 1];
+ }
+ data += psb_surface->stride;
+ }
+
+ fwrite(header, obj_surface->height_r / 2, obj_surface->width_r, pf);
+ free(header);
+ psb_buffer_unmap(buf);
+dump_out:
+ ;
+ }
+#endif
+ pPriv = (PsbPortPrivPtr)(&driver_data->coverlay_priv);
+
+ switch (fourcc) {
+ case VA_FOURCC_NV12:
+ width = obj_surface->width;
+ height = obj_surface->height;
+ break;
+ default:
+ width = obj_surface->width;
+ height = obj_surface->height;
+ break;
+ }
+
+ /* rotate support here: more check?
+ * and for oold also?
+ */
+ psb_surface = obj_surface->psb_surface;
+
+ if (pipeId == PIPEA) {
+ if (driver_data->local_rotation != VA_ROTATION_NONE) {
+ psb_surface = obj_surface->psb_surface_rotate;
+ width = obj_surface->width_r;
+ height = obj_surface->height_r;
+ if (driver_data->local_rotation != VA_ROTATION_180) {
+ tmp = src_w;
+ src_w = src_h;
+ src_h = tmp;
+ }
+ }
+ if ((driver_data->mipi0_rotation == VA_ROTATION_NONE) ||
+ (driver_data->mipi0_rotation == VA_ROTATION_180)) {
+ pPriv->width_save = pPriv->display_width;
+ pPriv->height_save = pPriv->display_height;
+ } else {
+ pPriv->width_save = pPriv->display_height;
+ pPriv->height_save = pPriv->display_width;
+ }
+ pPriv->rotation = driver_data->mipi0_rotation;
+ } else if (pipeId == PIPEB) {
+ if (driver_data->extend_rotation != VA_ROTATION_NONE) {
+ psb_surface = obj_surface->psb_surface_rotate;
+ width = obj_surface->width_r;
+ height = obj_surface->height_r;
+ if (driver_data->extend_rotation != VA_ROTATION_180) {
+ tmp = src_w;
+ src_w = src_h;
+ src_h = tmp;
+ }
+ }
+ if ((driver_data->hdmi_rotation == VA_ROTATION_NONE) ||
+ (driver_data->hdmi_rotation == VA_ROTATION_180)) {
+ pPriv->width_save = pPriv->extend_display_width;
+ pPriv->height_save = pPriv->extend_display_height;
+ } else {
+ pPriv->width_save = pPriv->extend_display_height;
+ pPriv->height_save = pPriv->extend_display_width;
+ }
+ pPriv->rotation = driver_data->hdmi_rotation;
+ }
+
+ if (!psb_surface)
+ psb_surface = obj_surface->psb_surface;
+
+ width = (width <= 1920) ? width : 1920;
+
+ /* If dst width and height are less than 1/8th the src size, the
+ * src/dst scale factor becomes larger than 8 and doesn't fit in
+ * the scale register.
+ */
+ if (src_w >= (drw_w * 8))
+ drw_w = src_w / 7;
+
+ if (src_h >= (drw_h * 8))
+ drw_h = src_h / 7;
+
+ /* Clip */
+ x1 = src_x;
+ x2 = src_x + src_w;
+ y1 = src_y;
+ y2 = src_y + src_h;
+
+ dstBox.x1 = drw_x;
+ dstBox.x2 = drw_x + drw_w;
+ dstBox.y1 = drw_y;
+ dstBox.y2 = drw_y + drw_h;
+
+#if USE_CLIP_FUNC
+ if (!i830_get_crtc(pScrn, &crtc, &dstBox))
+ return Success;
+
+ /*
+ *Update drw_* and 'clipBoxes' according to current downscale/upscale state
+ * Make sure the area determined by drw_* is in 'clipBoxes'
+ */
+ if (crtc->rotation & (RR_Rotate_90 | RR_Rotate_270)) {
+ h_ratio = (float)pScrn->pScreen->height / pPriv->width_save;
+ v_ratio = (float)pScrn->pScreen->width / pPriv->height_save;
+ } else {
+ h_ratio = (float)pScrn->pScreen->width / pPriv->width_save;
+ v_ratio = (float)pScrn->pScreen->height / pPriv->height_save;
+ }
+
+ /* Horizontal downscale/upscale */
+ if ((int)h_ratio)
+ clipBoxes->extents.x1 /= h_ratio;
+ else if (!(int)h_ratio)
+ clipBoxes->extents.x2 /= h_ratio;
+
+ /* Vertical downscale/upscale */
+ if ((int)v_ratio)
+ clipBoxes->extents.y1 /= v_ratio;
+ else if (!(int)v_ratio)
+ clipBoxes->extents.y2 /= v_ratio;
+
+ drw_x /= h_ratio;
+ drw_y /= v_ratio;
+ drw_w /= h_ratio;
+ drw_h /= v_ratio;
+
+ dstBox.x1 = drw_x;
+ dstBox.x2 = drw_x + drw_w;
+ dstBox.y1 = drw_y;
+ dstBox.y2 = drw_y + drw_h;
+
+ /* Count in client supplied clipboxes */
+ clipRegion = clipBoxes;
+ psb_perform_clip(pScrn, vaPtr->clipbox, vaPtr->num_clipbox, clipBoxes, clipRegion, pDraw);
+
+ if (!i830_clip_video_helper(pScrn,
+ &crtc,
+ &dstBox, &x1, &x2, &y1, &y2, clipRegion,
+ width, height)) {
+ xf86DrvMsg(pScrn->scrnIndex, X_WARNING, "%s: Fail to clip video to any crtc!\n", __FUNCTION__);
+ return 0;
+ }
+#endif
+
+ switch (fourcc) {
+ case VA_FOURCC_NV12:
+ pitch = (width + 0x3) & ~0x3;
+ pitch2 = psb_surface->stride;
+ break;
+ case VA_FOURCC_YV12:
+ case VA_FOURCC_I420:
+ pitch = (width + 0x3) & ~0x3;
+ break;
+#if USE_DISPLAY_C_SPRITE
+ case FOURCC_RGBA:
+ pitch = width << 2;
+ break;
+#endif
+ case VA_FOURCC_UYVY:
+ case VA_FOURCC_YUY2:
+ default:
+ pitch = width << 1;
+ break;
+ }
+
+ top = (y1) & ~1;
+ left = (x1) & ~1;
+ npixels = ((((x2 + 0xffff) >> 16) + 1) & ~1) - left;
+
+ if (fourcc == VA_FOURCC_NV12) {
+ pre_add = psb_surface->buf.buffer_ofs;
+ drm_buf = psb_surface->buf.drm_buf;
+ gtt_ofs = wsbmBOOffsetHint(drm_buf) & 0x0FFFFFFF;
+
+ pPriv->YBuf0offset = pre_add + gtt_ofs + top * pitch2 + left;
+ pPriv->YBuf1offset = pPriv->YBuf0offset;
+ pPriv->UBuf0offset = pre_add + gtt_ofs + (pitch2 * height) + top * (pitch2 / 2) + left;
+ pPriv->VBuf0offset = pPriv->UBuf0offset;
+ pPriv->UBuf1offset = pPriv->UBuf0offset;
+ pPriv->VBuf1offset = pPriv->UBuf0offset;
+ } else {
+ //TBD
+ //pPriv->YBuf0offset = pPriv->videoBuf0_gtt_offset << PAGE_SHIFT;
+ //pPriv->YBuf1offset = pPriv->videoBuf1_gtt_offset << PAGE_SHIFT;
+ if (pPriv->rotation & (RR_Rotate_90 | RR_Rotate_270)) {
+ pPriv->UBuf0offset = pPriv->YBuf0offset + (pitch2 * width);
+ pPriv->VBuf0offset = pPriv->UBuf0offset + (pitch2 * width / 2);
+ pPriv->UBuf1offset = pPriv->YBuf1offset + (pitch2 * width);
+ pPriv->VBuf1offset = pPriv->UBuf1offset + (pitch2 * width / 2);
+ } else {
+ pPriv->UBuf0offset = pPriv->YBuf0offset + (pitch2 * height);
+ pPriv->VBuf0offset = pPriv->UBuf0offset + (pitch2 * height / 2);
+ pPriv->UBuf1offset = pPriv->YBuf1offset + (pitch2 * height);
+ pPriv->VBuf1offset = pPriv->UBuf1offset + (pitch2 * height / 2);
+ }
+ }
+
+#if USE_DISPLAY_C_SPRITE
+ if (fourcc == FOURCC_RGBA \
+ || (fourcc == FOURCC_XVVA \
+ && (pPriv->rotation != RR_Rotate_0) \
+ && (vaPtr->dst_srf.fourcc == VA_FOURCC_RGBA)))
+ i830_display_video_sprite(pScrn, crtc, width, height, dstPitch,
+ &dstBox, sprite_offset);
+ else
+#endif
+ i830_display_video(ctx, pPriv, surface, fourcc, src_w, src_h, pitch2, pitch,
+ x1, y1, x2, y2, &dstBox, src_w, src_h,
+ drw_w, drw_h, flags, overlayId, pipeId);
+
+ // FIXME : do I use two buffers here really?
+ // pPriv->curBuf = (pPriv->curBuf + 1) & 1;
+
+ return Success;
+}
+
+
+
+static void psbPortPrivCreate(PsbPortPrivPtr pPriv)
+{
+#if 0
+ REGION_NULL(pScreen, &pPriv->clip);
+#endif
+
+ /* coeffs defaut value */
+ pPriv->brightness.Value = OV_BRIGHTNESS_DEFAULT_VALUE;
+ pPriv->brightness.Fraction = 0;
+
+ pPriv->contrast.Value = OV_CONTRAST_DEFAULT_VALUE;
+ pPriv->contrast.Fraction = 0;
+
+ pPriv->hue.Value = OV_HUE_DEFAULT_VALUE;
+ pPriv->hue.Fraction = 0;
+
+ pPriv->saturation.Value = OV_SATURATION_DEFAULT_VALUE;
+ pPriv->saturation.Fraction = 0;
+ pPriv->subpicture_enabled = 0;
+ pPriv->subpicture_enable_mask = 0;
+ pPriv->overlayA_enabled = 0;
+ pPriv->overlayC_enabled = 0;
+ pPriv->overlayA_pipeId = PIPEA;
+ pPriv->overlayC_pipeId = PIPEB;
+
+ /* FIXME: is this right? set up to current screen size */
+#if 1
+ pPriv->width_save = 1024;
+ pPriv->height_save = 600;
+#endif
+}
+
+static void
+psbPortPrivDestroy(VADriverContextP ctx, PsbPortPrivPtr pPriv)
+{
+ if (pPriv->overlayA_enabled)
+ I830StopVideo(ctx);
+
+ wsbmBOUnmap(pPriv->wsbo[0]);
+ wsbmBOUnreference(&pPriv->wsbo[0]);
+ wsbmBOUnmap(pPriv->wsbo[1]);
+ wsbmBOUnreference(&pPriv->wsbo[1]);
+ if (pPriv->is_mfld) {
+ if (pPriv->p_iep_lite_context)
+ free(pPriv->p_iep_lite_context);
+ }
+ pPriv->p_iep_lite_context = NULL;
+}
+
+static PsbPortPrivPtr
+psbSetupImageVideoOverlay(VADriverContextP ctx, PsbPortPrivPtr pPriv)
+{
+ INIT_DRIVER_DATA;
+ I830OverlayRegPtr overlayA = NULL;
+ I830OverlayRegPtr overlayC = NULL;
+ int ret;
+ psbPortPrivCreate(pPriv);
+
+
+ /* use green as color key by default for android media player */
+ pPriv->colorKey = driver_data->color_key/*0x0440*/;
+ pPriv->brightness.Value = -19; /* (255/219) * -16 */
+ pPriv->contrast.Value = 75; /* 255/219 * 64 */
+ pPriv->saturation.Value = 146; /* 128/112 * 128 */
+ pPriv->gamma5 = 0xc0c0c0;
+ pPriv->gamma4 = 0x808080;
+ pPriv->gamma3 = 0x404040;
+ pPriv->gamma2 = 0x202020;
+ pPriv->gamma1 = 0x101010;
+ pPriv->gamma0 = 0x080808;
+
+ pPriv->rotation = VA_ROTATION_NONE;
+ pPriv->subpic_clear_flag = 1;
+#if 0
+ /* gotta uninit this someplace */
+ REGION_NULL(pScreen, &pPriv->clip);
+#endif
+
+ /* With LFP's we need to detect whether we're in One Line Mode, which
+ * essentially means a resolution greater than 1024x768, and fix up
+ * the scaler accordingly.
+ */
+ pPriv->scaleRatio = 0x10000;
+ pPriv->oneLineMode = FALSE;
+
+ ret = wsbmGenBuffers(driver_data->main_pool, 2,
+ &pPriv->wsbo[0], 64 * 1024, /* 64k alignment */
+ WSBM_PL_FLAG_TT);
+ if (ret)
+ goto out_err;
+
+ ret = wsbmBOData(pPriv->wsbo[0],
+ 5 * 4096,
+ NULL, NULL,
+ WSBM_PL_FLAG_TT);
+ if (ret)
+ goto out_err_bo0;
+
+ pPriv->regmap[0] = wsbmBOMap(pPriv->wsbo[0], WSBM_ACCESS_READ | WSBM_ACCESS_WRITE);
+ if (!pPriv->regmap[0]) {
+ goto out_err_bo0;
+ }
+
+ ret = wsbmBOData(pPriv->wsbo[1],
+ 5 * 4096,
+ NULL, NULL,
+ WSBM_PL_FLAG_TT);
+ if (ret)
+ goto out_err_bo1;
+
+ pPriv->regmap[1] = wsbmBOMap(pPriv->wsbo[1], WSBM_ACCESS_READ | WSBM_ACCESS_WRITE);
+ if (!pPriv->regmap[1]) {
+ goto out_err_bo1;
+ }
+
+ overlayA = (I830OverlayRegPtr)(pPriv->regmap[0]);
+ overlayC = (I830OverlayRegPtr)(pPriv->regmap[1]);
+
+ if (pPriv->is_mfld) {
+ driver_data->ble_black_mode.value = 1;
+ driver_data->ble_white_mode.value = 3;
+ driver_data->blueStretch_gain.value = 200;
+ driver_data->skinColorCorrection_gain.value = 100;
+ driver_data->hue.value = (5.25f * (1 << 25));
+ driver_data->saturation.value = (1.07f * (1 << 25));
+ driver_data->brightness.value = (-10.1f * (1 << 10));
+ driver_data->contrast.value = (0.99f * (1 << 25));
+ }
+
+ return 0;
+
+out_err_bo1:
+ wsbmBOUnreference(&pPriv->wsbo[1]);
+out_err_bo0:
+ wsbmBOUnreference(&pPriv->wsbo[0]);
+
+out_err:
+ return 0;
+}
+
+int psb_coverlay_init(VADriverContextP ctx)
+{
+ INIT_DRIVER_DATA;
+ PsbPortPrivPtr pPriv = &driver_data->coverlay_priv;
+
+ memset(pPriv, 0, sizeof(PsbPortPrivRec));
+ pPriv->is_mfld = IS_MFLD(driver_data);
+ psbSetupImageVideoOverlay(ctx, pPriv);
+
+ I830ResetVideo(ctx, pPriv);
+ I830UpdateGamma(ctx, pPriv);
+
+ return 0;
+}
+
+int psb_coverlay_stop(VADriverContextP ctx)
+{
+ I830StopVideo(ctx);
+ return 0;
+}
+
+int psb_coverlay_deinit(VADriverContextP ctx)
+{
+ INIT_DRIVER_DATA;
+ PsbPortPrivPtr pPriv = &driver_data->coverlay_priv;
+
+ psbPortPrivDestroy(ctx, pPriv);
+
+ return 0;
+}
+
+VAStatus psb_putsurface_overlay(
+ VADriverContextP ctx,
+ VASurfaceID surface,
+ short srcx,
+ short srcy,
+ unsigned short srcw,
+ unsigned short srch,
+ short destx,
+ short desty,
+ unsigned short destw,
+ unsigned short desth,
+ unsigned int flags, /* de-interlacing flags */
+ int overlayId,
+ int pipeId
+)
+{
+ INIT_DRIVER_DATA;
+ object_surface_p obj_surface = SURFACE(surface);
+ PsbPortPrivPtr pPriv = (PsbPortPrivPtr)(&driver_data->coverlay_priv);
+
+ if ((overlayId == OVERLAY_A) && (pPriv->overlayA_pipeId != pipeId)) {
+ pPriv->overlayA_pipeId = pipeId;
+ I830SwitchPipe(ctx, OVERLAY_A, pipeId);
+ psb__information_message("OverlayA switch pipe to %d, stop overlayA first.\n", pipeId);
+ } else if ((overlayId == OVERLAY_C) && (pPriv->overlayC_pipeId != pipeId)) {
+ pPriv->overlayC_pipeId = pipeId;
+ I830SwitchPipe(ctx, OVERLAY_C, pipeId);
+ psb__information_message("OverlayC switch pipe to %d, stop overlayC first.\n", pipeId);
+ }
+ I830PutImage(ctx, surface, srcx, srcy, srcw, srch,
+ destx, desty, destw, desth,
+ VA_FOURCC_NV12, flags, overlayId, pipeId);
+
+ /* current surface is being displayed */
+ if (driver_data->cur_displaying_surface != VA_INVALID_SURFACE)
+ driver_data->last_displaying_surface = driver_data->cur_displaying_surface;
+
+ if (obj_surface == NULL) {
+ psb__error_message("Invalid surface ID: 0x%08x\n", surface);
+ return VA_STATUS_ERROR_INVALID_SURFACE;
+ }
+
+ obj_surface->display_timestamp = GetTickCount();
+ driver_data->cur_displaying_surface = surface;
+
+ return VA_STATUS_SUCCESS;
+}
diff --git a/src/psb_overlay.h b/src/psb_overlay.h
new file mode 100644
index 0000000..c37c99c
--- /dev/null
+++ b/src/psb_overlay.h
@@ -0,0 +1,357 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ * Shengquan Yuan <shengquan.yuan@intel.com>
+ * Binglin Chen <binglin.chen@intel.com>
+ * Jason Hu <jason.hu@intel.com>
+ * Zeng Li <zeng.li@intel.com>
+ */
+
+#ifndef _PSB_OVERLAY_H_
+#define _PSB_OVERLAY_H_
+
+#include <va/va.h>
+#define USE_OVERLAY 1
+#define USE_DISPLAY_C_SPRITE 0
+
+/*
+ * NOTE: Destination keying when enabled forces the overlay surface
+ * Z order to be below the primary display. Pixels that match the key
+ * value become transparent and the overlay becomes visible at that
+ * pixel.
+ */
+#define USE_DCLRK 1
+/*
+ * NOTE: This is only for media player output
+ */
+#define USE_CLIP_FUNC 0
+#define USE_SCALE_FUNC 1
+#define USE_ROTATION_FUNC 1
+
+#define Success 0
+
+/* FIXME this will be removed later after using pvr2d */
+#if 1
+#define RR_Rotate_0 1
+#define RR_Rotate_90 2
+#define RR_Rotate_180 4
+#define RR_Rotate_270 8
+#endif
+
+#define OV_HUE_DEFAULT_VALUE 0
+#define OV_HUE_MIN -30
+#define OV_HUE_MAX 30
+
+#define OV_BRIGHTNESS_DEFAULT_VALUE 0
+#define OV_BRIGHTNESS_MIN -50
+#define OV_BRIGHTNESS_MAX 50
+
+#define OV_CONTRAST_DEFAULT_VALUE 0
+#define OV_CONTRAST_MIN -100
+#define OV_CONTRAST_MAX 100
+
+#define OV_SATURATION_DEFAULT_VALUE 100
+#define OV_SATURATION_MIN 0
+#define OV_SATURATION_MAX 200
+
+#define CLAMP_ATTR(a,max,min) (a>max?max:(a<min?min:a))
+
+/*
+ * OCMD - Overlay Command Register
+ */
+#define OCMD_REGISTER 0x30168
+#define MIRROR_MODE (0x3<<17)
+#define MIRROR_HORIZONTAL (0x1<<17)
+#define MIRROR_VERTICAL (0x2<<17)
+#define MIRROR_BOTH (0x3<<17)
+#define OV_BYTE_ORDER (0x3<<14)
+#define UV_SWAP (0x1<<14)
+#define Y_SWAP (0x2<<14)
+#define Y_AND_UV_SWAP (0x3<<14)
+#define SOURCE_FORMAT (0xf<<10)
+#define RGB_888 (0x1<<10)
+#define RGB_555 (0x2<<10)
+#define RGB_565 (0x3<<10)
+#define NV12 (0xb<<10)
+#define YUV_422 (0x8<<10)
+#define YUV_411 (0x9<<10)
+#define YUV_420 (0xc<<10)
+#define YUV_422_PLANAR (0xd<<10)
+#define YUV_410 (0xe<<10)
+#define TVSYNC_FLIP_PARITY (0x1<<9)
+#define TVSYNC_FLIP_ENABLE (0x1<<7)
+#define BUF_TYPE (0x1<<5)
+#define BUF_TYPE_FRAME (0x0<<5)
+#define BUF_TYPE_FIELD (0x1<<5)
+#define TEST_MODE (0x1<<4)
+#define BUFFER_SELECT (0x3<<2)
+#define BUFFER0 (0x0<<2)
+#define BUFFER1 (0x1<<2)
+#define FIELD_SELECT (0x1<<1)
+#define FIELD0 (0x0<<1)
+#define FIELD1 (0x1<<1)
+#define OVERLAY_ENABLE 0x1
+
+#define OFC_UPDATE 0x1
+
+/*
+* OVADD - Overlay Register Update Address Register
+*/
+#define OVADD_PIPE_A (0x0<<6)
+#define OVADD_PIPE_B (0x2<<6)
+#define OVADD_PIPE_C (0x1<<6)
+#define LOAD_IEP_BW_EXPANSION (0x1<<4)
+#define LOAD_IEP_BS_SCC (0x1<<3)
+#define LOAD_IEP_CSC (0x1<<2)
+#define LOAD_IEP_DEBUG (0x1<<1)
+#define LOAD_COEFFICEINT (0x1<<0)
+
+/* OCONFIG register */
+#define CC_OUT_8BIT (0x1<<3)
+#define OVERLAY_PIPE_MASK (0x1<<18)
+#define OVERLAY_PIPE_A (0x0<<18)
+#define OVERLAY_PIPE_B (0x1<<18)
+#define IEP_LITE_BYPASS (0x1<<27)
+#define OVERLAY_C_PIPE_MASK (0x3<<17)
+#define OVERLAY_C_PIPE_A (0x0<<17)
+#define OVERLAY_C_PIPE_B (0x2<<17)
+#define OVERLAY_C_PIPE_C (0x1<<17)
+#define GAMMA2_ENBL (0x1<<16)
+#define ZORDER_TOP (0x0<<15)
+#define ZORDER_BOTTOM (0x1<<15)
+#define CSC_MODE_BT709 (0x1<<5)
+#define CSC_MODE_BT601 (0x0<<5)
+#define CSC_BYPASS (0x1<<4)
+#define THREE_LINE_BUFFERS (0x1<<0)
+#define TWO_LINE_BUFFERS (0x0<<0)
+
+/* DCLRKM register */
+#define DEST_KEY_ENABLE (0x1<<31)
+#define CONST_ALPHA_ENABLE (0x1<<30)
+
+/* Polyphase filter coefficients */
+#define N_HORIZ_Y_TAPS 5
+#define N_VERT_Y_TAPS 3
+#define N_HORIZ_UV_TAPS 3
+#define N_VERT_UV_TAPS 3
+#define N_PHASES 17
+#define MAX_TAPS 5
+
+/* Filter cutoff frequency limits. */
+#define MIN_CUTOFF_FREQ 1.0
+#define MAX_CUTOFF_FREQ 3.0
+
+#define RGB16ToColorKey(c) \
+(((c & 0xF800) << 8) | ((c & 0x07E0) << 5) | ((c & 0x001F) << 3))
+
+#define RGB15ToColorKey(c) \
+(((c & 0x7c00) << 9) | ((c & 0x03E0) << 6) | ((c & 0x001F) << 3))
+
+typedef struct {
+ uint32_t x1;
+ uint32_t x2;
+ uint32_t y1;
+ uint32_t y2;
+} BoxRec, *BoxPtr;
+
+typedef struct {
+ uint32_t OBUF_0Y;
+ uint32_t OBUF_1Y;
+ uint32_t OBUF_0U;
+ uint32_t OBUF_0V;
+ uint32_t OBUF_1U;
+ uint32_t OBUF_1V;
+ uint32_t OSTRIDE;
+ uint32_t YRGB_VPH;
+ uint32_t UV_VPH;
+ uint32_t HORZ_PH;
+ uint32_t INIT_PHS;
+ uint32_t DWINPOS;
+ uint32_t DWINSZ;
+ uint32_t SWIDTH;
+ uint32_t SWIDTHSW;
+ uint32_t SHEIGHT;
+ uint32_t YRGBSCALE;
+ uint32_t UVSCALE;
+ uint32_t OCLRC0;
+ uint32_t OCLRC1;
+ uint32_t DCLRKV;
+ uint32_t DCLRKM;
+ uint32_t SCHRKVH;
+ uint32_t SCHRKVL;
+ uint32_t SCHRKEN;
+ uint32_t OCONFIG;
+ uint32_t OCMD;
+ uint32_t RESERVED1; /* 0x6C */
+ uint32_t OSTART_0Y; /* for i965 */
+ uint32_t OSTART_1Y; /* for i965 */
+ uint32_t OSTART_0U;
+ uint32_t OSTART_0V;
+ uint32_t OSTART_1U;
+ uint32_t OSTART_1V;
+ uint32_t OTILEOFF_0Y;
+ uint32_t OTILEOFF_1Y;
+ uint32_t OTILEOFF_0U;
+ uint32_t OTILEOFF_0V;
+ uint32_t OTILEOFF_1U;
+ uint32_t OTILEOFF_1V;
+ uint32_t FASTHSCALE; /* 0xA0 */
+ uint32_t UVSCALEV; /* 0xA4 */
+
+ uint32_t RESERVEDC[(0x200 - 0xA8) / 4]; /* 0xA8 - 0x1FC */
+ uint16_t Y_VCOEFS[N_VERT_Y_TAPS * N_PHASES]; /* 0x200 */
+ uint16_t RESERVEDD[0x100 / 2 - N_VERT_Y_TAPS * N_PHASES];
+ uint16_t Y_HCOEFS[N_HORIZ_Y_TAPS * N_PHASES]; /* 0x300 */
+ uint16_t RESERVEDE[0x200 / 2 - N_HORIZ_Y_TAPS * N_PHASES];
+ uint16_t UV_VCOEFS[N_VERT_UV_TAPS * N_PHASES]; /* 0x500 */
+ uint16_t RESERVEDF[0x100 / 2 - N_VERT_UV_TAPS * N_PHASES];
+ uint16_t UV_HCOEFS[N_HORIZ_UV_TAPS * N_PHASES]; /* 0x600 */
+ uint16_t RESERVEDG[0xa00 / 2 - N_HORIZ_UV_TAPS * N_PHASES];
+ uint32_t IEP_SPACE[(0x3401c - 0x31000)/4];
+} I830OverlayRegRec, *I830OverlayRegPtr;
+
+
+#define Degree (2*PI / 360.0)
+#define PI 3.1415927
+
+
+typedef struct {
+ uint8_t sign;
+ uint16_t mantissa;
+ uint8_t exponent;
+} coeffRec, *coeffPtr;
+
+typedef struct _ov_psb_fixed32 {
+ union {
+ struct {
+ unsigned short Fraction;
+ short Value;
+ };
+ long ll;
+ };
+} ov_psb_fixed32;
+
+typedef struct _psb_subpictureKeyRec {
+ struct _psb_subpictureKeyRec *next;
+ unsigned int subpic_id;
+
+ int subpic_dstx;
+ int subpic_dsty;
+ int subpic_dstw;
+ int subpic_dsth;
+} psb_subpictureKeyRec, *psb_subpictureKeyPtr;
+
+typedef struct _PsbPortPrivRec {
+ int curBuf;
+ int is_mfld;
+ /*subpicture*/
+ int subpicture_enabled;
+ int subpic_clear_flag;
+ unsigned int subpicture_enable_mask;
+ psb_subpictureKeyRec clear_key[6];
+
+ /*overlay status*/
+ int overlayA_pipeId;
+ int overlayC_pipeId;
+ int overlayA_enabled;
+ int overlayC_enabled;
+
+ /*window attribute*/
+ int last_num_clipbox;
+ VARectangle last_clipbox[16];
+ int x11_window_width;
+ int x11_window_height;
+ int display_width;
+ int display_height;
+ int extend_display_width;
+ int extend_display_height;
+
+ /* used to check downscale*/
+ short width_save;
+ short height_save;
+
+ /* information of display attribute */
+ ov_psb_fixed32 brightness;
+ ov_psb_fixed32 contrast;
+ ov_psb_fixed32 saturation;
+ ov_psb_fixed32 hue;
+
+ void * p_iep_lite_context;
+
+ /* hwoverlay */
+ uint32_t gamma0;
+ uint32_t gamma1;
+ uint32_t gamma2;
+ uint32_t gamma3;
+ uint32_t gamma4;
+ uint32_t gamma5;
+ uint32_t colorKey;
+
+ int oneLineMode;
+ int scaleRatio;
+ int rotation;
+
+ struct _WsbmBufferObject *wsbo[2];
+ uint32_t YBuf0offset;
+ uint32_t UBuf0offset;
+ uint32_t VBuf0offset;
+ uint32_t YBuf1offset;
+ uint32_t UBuf1offset;
+ uint32_t VBuf1offset;
+ unsigned char *regmap[2];
+} PsbPortPrivRec, *PsbPortPrivPtr;
+
+
+int psb_coverlay_init(VADriverContextP ctx);
+int psb_coverlay_stop(VADriverContextP ctx);
+int psb_coverlay_exit(VADriverContextP ctx);
+
+VAStatus psb_putsurface_overlay(
+ VADriverContextP ctx,
+ VASurfaceID surface,
+ short srcx,
+ short srcy,
+ unsigned short srcw,
+ unsigned short srch,
+ short destx,
+ short desty,
+ unsigned short destw,
+ unsigned short desth,
+ unsigned int flags, /* de-interlacing flags */
+ int overlayId,
+ int pipeId
+);
+
+enum pipe_id_t {
+ PIPEA = 0,
+ PIPEB,
+ PIPEC,
+};
+
+enum overlay_id_t {
+ OVERLAY_A = 0,
+ OVERLAY_C,
+};
+
+#endif /* _PSB_OVERLAY_H_ */
diff --git a/src/psb_surface.c b/src/psb_surface.c
new file mode 100644
index 0000000..7cd3544
--- /dev/null
+++ b/src/psb_surface.c
@@ -0,0 +1,264 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ * Waldo Bastian <waldo.bastian@intel.com>
+ *
+ */
+
+#include <wsbm/wsbm_manager.h>
+
+#include "psb_def.h"
+#include "psb_surface.h"
+
+#include <RAR/rar.h>
+
+
+/*
+ * Create surface
+ */
+VAStatus psb_surface_create(psb_driver_data_p driver_data,
+ int width, int height, int fourcc, int protected,
+ psb_surface_p psb_surface /* out */
+ )
+{
+ int ret;
+
+ if (fourcc == VA_FOURCC_NV12) {
+ if ((width <= 0) || (width > 5120) || (height <= 0) || (height > 5120)) {
+ return VA_STATUS_ERROR_ALLOCATION_FAILED;
+ }
+
+ if (0) {
+ ;
+ } else if (512 >= width) {
+ psb_surface->stride_mode = STRIDE_512;
+ psb_surface->stride = 512;
+ } else if (1024 >= width) {
+ psb_surface->stride_mode = STRIDE_1024;
+ psb_surface->stride = 1024;
+ } else if (1280 >= width) {
+ psb_surface->stride_mode = STRIDE_1280;
+ psb_surface->stride = 1280;
+ } else if (2048 >= width) {
+ psb_surface->stride_mode = STRIDE_2048;
+ psb_surface->stride = 2048;
+ } else if (4096 >= width) {
+ psb_surface->stride_mode = STRIDE_4096;
+ psb_surface->stride = 4096;
+ } else {
+ psb_surface->stride_mode = STRIDE_NA;
+ psb_surface->stride = (width + 0x1f) & ~0x1f;
+ }
+
+ psb_surface->luma_offset = 0;
+ psb_surface->chroma_offset = psb_surface->stride * height;
+ psb_surface->size = (psb_surface->stride * height * 3) / 2;
+ psb_surface->extra_info[4] = VA_FOURCC_NV12;
+ } else if (fourcc == VA_FOURCC_RGBA) {
+ unsigned int pitchAlignMask = 63;
+ psb_surface->stride_mode = STRIDE_NA;
+ psb_surface->stride = (width * 4 + pitchAlignMask) & ~pitchAlignMask;;
+ psb_surface->luma_offset = 0;
+ psb_surface->chroma_offset = 0;
+ psb_surface->size = psb_surface->stride * height;
+ psb_surface->extra_info[4] = VA_FOURCC_RGBA;
+ } else if (fourcc == VA_FOURCC_YV16) {
+ psb_surface->stride_mode = STRIDE_NA;
+ psb_surface->stride = (width + 1) & ~0x1;
+
+ psb_surface->luma_offset = 0;
+ psb_surface->chroma_offset = psb_surface->stride * height;
+ psb_surface->size = psb_surface->stride * height * 2;
+ psb_surface->extra_info[4] = VA_FOURCC_YV16;
+ }
+
+ if (protected == 0)
+ ret = psb_buffer_create(driver_data, psb_surface->size, psb_bt_surface, &psb_surface->buf);
+ else
+ ret = psb_buffer_create_rar(driver_data, psb_surface->size, &psb_surface->buf);
+
+ return ret ? VA_STATUS_ERROR_ALLOCATION_FAILED : VA_STATUS_SUCCESS;
+}
+
+
+VAStatus psb_surface_create_for_userptr(
+ psb_driver_data_p driver_data,
+ int width, int height,
+ unsigned size, /* total buffer size need to be allocated */
+ unsigned int fourcc, /* expected fourcc */
+ unsigned int luma_stride, /* luma stride, could be width aligned with a special value */
+ unsigned int chroma_u_stride, /* chroma stride */
+ unsigned int chroma_v_stride,
+ unsigned int luma_offset, /* could be 0 */
+ unsigned int chroma_u_offset, /* UV offset from the beginning of the memory */
+ unsigned int chroma_v_offset,
+ psb_surface_p psb_surface /* out */
+)
+{
+ int ret;
+
+ if ((width <= 0) || (width > 5120) || (height <= 0) || (height > 5120))
+ return VA_STATUS_ERROR_ALLOCATION_FAILED;
+
+ psb_surface->stride_mode = STRIDE_NA;
+ psb_surface->stride = luma_stride;
+
+
+ psb_surface->luma_offset = luma_offset;
+ psb_surface->chroma_offset = chroma_u_offset;
+ psb_surface->size = size;
+ psb_surface->extra_info[4] = VA_FOURCC_NV12;
+
+ ret = psb_buffer_create(driver_data, psb_surface->size, psb_bt_surface, &psb_surface->buf);
+
+ return ret ? VA_STATUS_ERROR_ALLOCATION_FAILED : VA_STATUS_SUCCESS;
+}
+
+
+/* id_or_ofs: it is frame ID or frame offset in camear device memory
+ * for CI frame: it it always frame offset currently
+ * for v4l2 buf: it is offset used in V4L2 buffer mmap
+ */
+VAStatus psb_surface_create_camera(psb_driver_data_p driver_data,
+ int width, int height, int stride, int size,
+ psb_surface_p psb_surface, /* out */
+ int is_v4l2,
+ unsigned int id_or_ofs
+ )
+{
+ int ret;
+
+ if ((width <= 0) || (width > 4096) || (height <= 0) || (height > 4096)) {
+ return VA_STATUS_ERROR_ALLOCATION_FAILED;
+ }
+
+ psb_surface->stride = stride;
+ if ((width == 640) && (height == 360)) {
+ psb__information_message("CI Frame is 640x360, and allocated as 640x368,adjust chroma_offset\n");
+ psb_surface->chroma_offset = psb_surface->stride * 368;
+ } else
+ psb_surface->chroma_offset = psb_surface->stride * height;
+ psb_surface->size = (psb_surface->stride * height * 3) / 2;
+
+ ret = psb_buffer_create_camera(driver_data, &psb_surface->buf,
+ is_v4l2, id_or_ofs);
+
+ if (ret != VA_STATUS_SUCCESS) {
+ psb_surface_destroy(psb_surface);
+
+ psb__error_message("Get surfae offset of camear device memory failed!\n");
+ return ret;
+ }
+
+ return VA_STATUS_SUCCESS;
+}
+
+/* id_or_ofs: it is frame ID or frame offset in camear device memory
+ * for CI frame: it it always frame offset currently
+ * for v4l2 buf: it is offset used in V4L2 buffer mmap
+ * user_ptr: virtual address of user buffer.
+ */
+VAStatus psb_surface_create_camera_from_ub(psb_driver_data_p driver_data,
+ int width, int height, int stride, int size,
+ psb_surface_p psb_surface, /* out */
+ int is_v4l2,
+ unsigned int id_or_ofs,
+ const unsigned long *user_ptr)
+{
+ int ret;
+
+ if ((width <= 0) || (width > 4096) || (height <= 0) || (height > 4096)) {
+ return VA_STATUS_ERROR_ALLOCATION_FAILED;
+ }
+
+ psb_surface->stride = stride;
+ psb_surface->chroma_offset = psb_surface->stride * height;
+ psb_surface->size = (psb_surface->stride * height * 3) / 2;
+
+ ret = psb_buffer_create_camera_from_ub(driver_data, &psb_surface->buf,
+ is_v4l2, psb_surface->size, user_ptr);
+
+ if (ret != VA_STATUS_SUCCESS) {
+ psb_surface_destroy(psb_surface);
+
+ psb__error_message("Get surfae offset of camear device memory failed!\n");
+ return ret;
+ }
+
+ return VA_STATUS_SUCCESS;
+}
+
+
+/*
+ * Temporarily map surface and set all chroma values of surface to 'chroma'
+ */
+VAStatus psb_surface_set_chroma(psb_surface_p psb_surface, int chroma)
+{
+ void *surface_data;
+ int ret = psb_buffer_map(&psb_surface->buf, &surface_data);
+
+ if (ret) return VA_STATUS_ERROR_UNKNOWN;
+
+ memset(surface_data + psb_surface->chroma_offset, chroma, psb_surface->size - psb_surface->chroma_offset);
+
+ psb_buffer_unmap(&psb_surface->buf);
+
+ return VA_STATUS_SUCCESS;
+}
+
+/*
+ * Destroy surface
+ */
+void psb_surface_destroy(psb_surface_p psb_surface)
+{
+ psb_buffer_destroy(&psb_surface->buf);
+
+ if (NULL != psb_surface->in_loop_buf)
+ psb_buffer_destroy(psb_surface->in_loop_buf);
+
+}
+
+VAStatus psb_surface_sync(psb_surface_p psb_surface)
+{
+ wsbmBOWaitIdle(psb_surface->buf.drm_buf, 0);
+
+ return VA_STATUS_SUCCESS;
+}
+
+VAStatus psb_surface_query_status(psb_surface_p psb_surface, VASurfaceStatus *status)
+{
+ int ret;
+ uint32_t synccpu_flag = WSBM_SYNCCPU_READ | WSBM_SYNCCPU_WRITE | WSBM_SYNCCPU_DONT_BLOCK;
+
+ ret = wsbmBOSyncForCpu(psb_surface->buf.drm_buf, synccpu_flag);
+ (void) wsbmBOReleaseFromCpu(psb_surface->buf.drm_buf, synccpu_flag);
+
+ if (ret == 0)
+ *status = VASurfaceReady;
+ else
+ *status = VASurfaceRendering;
+
+ return VA_STATUS_SUCCESS;
+}
diff --git a/src/psb_surface.h b/src/psb_surface.h
new file mode 100644
index 0000000..53c11f8
--- /dev/null
+++ b/src/psb_surface.h
@@ -0,0 +1,133 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ * Waldo Bastian <waldo.bastian@intel.com>
+ */
+
+#ifndef _PSB_SURFACE_H_
+#define _PSB_SURFACE_H_
+
+#include <va/va.h>
+#include "psb_buffer.h"
+//#include "xf86mm.h"
+
+/* MSVDX specific */
+typedef enum {
+ STRIDE_352 = 0,
+ STRIDE_720 = 1,
+ STRIDE_1280 = 2,
+ STRIDE_1920 = 3,
+ STRIDE_512 = 4,
+ STRIDE_1024 = 5,
+ STRIDE_2048 = 6,
+ STRIDE_4096 = 7,
+ STRIDE_NA,
+ STRIDE_UNDEFINED,
+} psb_surface_stride_t;
+
+typedef struct psb_surface_s *psb_surface_p;
+
+struct psb_surface_s {
+ struct psb_buffer_s buf;
+ struct psb_buffer_s *in_loop_buf;
+ struct psb_buffer_s *ref_buf;
+ psb_surface_stride_t stride_mode;
+ int stride;
+ unsigned int luma_offset;
+ unsigned int chroma_offset;
+ /* Used to store driver private data, e.g. decoder specific intermediate status data
+ * extra_info[0-3]: used for decode
+ * extra_info[4]: surface fourcc
+ * extra_info[5]: surface skippeded or not for encode
+ */
+ int extra_info[6];
+ int size;
+ unsigned int bc_buffer;
+};
+
+/*
+ * Create surface
+ */
+VAStatus psb_surface_create(psb_driver_data_p driver_data,
+ int width, int height, int fourcc, int protected,
+ psb_surface_p psb_surface /* out */
+ );
+
+VAStatus psb_surface_create_for_userptr(
+ psb_driver_data_p driver_data,
+ int width, int height,
+ unsigned size, /* total buffer size need to be allocated */
+ unsigned int fourcc, /* expected fourcc */
+ unsigned int luma_stride, /* luma stride, could be width aligned with a special value */
+ unsigned int chroma_u_stride, /* chroma stride */
+ unsigned int chroma_v_stride,
+ unsigned int luma_offset, /* could be 0 */
+ unsigned int chroma_u_offset, /* UV offset from the beginning of the memory */
+ unsigned int chroma_v_offset,
+ psb_surface_p psb_surface /* out */
+);
+
+
+
+VAStatus psb_surface_create_camera(psb_driver_data_p driver_data,
+ int width, int height, int stride, int size,
+ psb_surface_p psb_surface, /* out */
+ int is_v4l2,
+ unsigned int id_or_ofs
+ );
+
+/* id_or_ofs: it is frame ID or frame offset in camear device memory
+ * for CI frame: it it always frame offset currently
+ * for v4l2 buf: it is offset used in V4L2 buffer mmap
+ * user_ptr: virtual address of user buffer.
+ */
+VAStatus psb_surface_create_camera_from_ub(psb_driver_data_p driver_data,
+ int width, int height, int stride, int size,
+ psb_surface_p psb_surface, /* out */
+ int is_v4l2,
+ unsigned int id_or_ofs,
+ const unsigned long *user_ptr);
+
+/*
+ * Temporarily map surface and set all chroma values of surface to 'chroma'
+ */
+VAStatus psb_surface_set_chroma(psb_surface_p psb_surface, int chroma);
+
+/*
+ * Destroy surface
+ */
+void psb_surface_destroy(psb_surface_p psb_surface);
+
+/*
+ * Wait for surface to become idle
+ */
+VAStatus psb_surface_sync(psb_surface_p psb_surface);
+
+/*
+ * Return surface status
+ */
+VAStatus psb_surface_query_status(psb_surface_p psb_surface, VASurfaceStatus *status);
+
+#endif /* _PSB_SURFACE_H_ */
diff --git a/src/psb_surface_ext.h b/src/psb_surface_ext.h
new file mode 100644
index 0000000..fc98f5a
--- /dev/null
+++ b/src/psb_surface_ext.h
@@ -0,0 +1,181 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ * Shengquan Yuan <shengquan.yuan@intel.com>
+ * Zhaohan Ren <zhaohan.ren@intel.com>
+ */
+
+#ifndef _PSB_XVVA_H
+#define _PSB_XVVA_H
+
+#include <pthread.h>
+#include <stdint.h>
+
+
+#ifndef MAKEFOURCC
+
+#define MAKEFOURCC(ch0, ch1, ch2, ch3) \
+ ((unsigned long)(unsigned char) (ch0) | ((unsigned long)(unsigned char) (ch1) << 8) | \
+ ((unsigned long)(unsigned char) (ch2) << 16) | ((unsigned long)(unsigned char) (ch3) << 24 ))
+
+/* a few common FourCCs */
+#define VA_FOURCC_AI44 0x34344149
+#define VA_FOURCC_UYVY 0x59565955
+#define VA_FOURCC_YUY2 0x32595559
+#define VA_FOURCC_AYUV 0x56555941
+#define VA_FOURCC_NV11 0x3131564e
+#define VA_FOURCC_YV12 0x32315659
+#define VA_FOURCC_P208 0x38303250
+#define VA_FOURCC_IYUV 0x56555949
+#define VA_FOURCC_I420 0x30323449
+
+#endif
+
+/* XvDrawable information */
+#define XVDRAWABLE_NORMAL 0x00
+#define XVDRAWABLE_PIXMAP 0x01
+#define XVDRAWABLE_ROTATE_90 0x02
+#define XVDRAWABLE_ROTATE_180 0x04
+#define XVDRAWABLE_ROTATE_270 0x08
+#define XVDRAWABLE_REDIRECT_WINDOW 0x10
+#define XVDRAWABLE_SCALE 0x20
+
+#define XVDRAWABLE_INVALID_DRAWABLE 0x8000
+
+typedef struct _PsbAYUVSample8 {
+ unsigned char Cr;
+ unsigned char Cb;
+ unsigned char Y;
+ unsigned char Alpha;
+} PsbAYUVSample8;
+
+typedef struct _VaClipBox {
+ short x;
+ short y;
+ unsigned short width;
+ unsigned short height;
+} VaClipBox;
+
+
+struct _PsbVASurface {
+ struct _PsbVASurface *next; /* next subpicture, only used by client */
+
+ struct _WsbmBufferObject *bo;
+ uint32_t bufid;
+ uint64_t pl_flags; /* placement */
+ uint32_t size;
+
+ unsigned int fourcc;
+ unsigned int planar;
+ unsigned int width;
+ unsigned int height;
+ unsigned int bytes_pp;
+ unsigned int stride;
+ unsigned int pre_add;
+ unsigned int reserved_phyaddr; /* for reserved memory, e.g. CI/RAR */
+
+ unsigned int clear_color;
+
+ unsigned int subpic_id; /* subpic id, only used by client */
+ unsigned int subpic_flags;/* flags for subpictures
+ * #define VA_SUBPICTURE_CHROMA_KEYING 0x0001
+ * #define VA_SUBPICTURE_GLOBAL_ALPHA 0x0002
+ *#define VA_SUBPICTURE_DESTINATION_IS_SCREEN_COORD 0x0004
+ */
+ float global_alpha;
+ unsigned int chromakey_min;
+ unsigned int chromakey_max;
+ unsigned int chromakey_mask;
+
+ PsbAYUVSample8 *palette_ptr; /* point to image palette */
+ union {
+ uint32_t palette[16]; /* used to pass palette to server */
+ PsbAYUVSample8 constant[16]; /* server convert palette into SGX constants */
+ };
+ int subpic_srcx;
+ int subpic_srcy;
+ int subpic_srcw;
+ int subpic_srch;
+
+ int subpic_dstx;
+ int subpic_dsty;
+ int subpic_dstw;
+ int subpic_dsth;
+
+ /* only used by server side */
+ unsigned int num_constant;
+ unsigned int *constants;
+
+ unsigned int mem_layout;
+ unsigned int tex_fmt;
+ unsigned int pack_mode;
+
+ unsigned int fragment_start;
+ unsigned int fragment_end;
+};
+
+typedef struct _PsbVASurface PsbVASurfaceRec;
+typedef struct _PsbVASurface *PsbVASurfacePtr;
+
+
+#ifndef VA_FRAME_PICTURE
+
+/* de-interlace flags for vaPutSurface */
+#define VA_FRAME_PICTURE 0x00000000
+#define VA_TOP_FIELD 0x00000001
+#define VA_BOTTOM_FIELD 0x00000002
+/*
+ * clears the drawable with background color.
+ * for hardware overlay based implementation this flag
+ * can be used to turn off the overlay
+ */
+#define VA_CLEAR_DRAWABLE 0x00000008
+
+/* color space conversion flags for vaPutSurface */
+#define VA_SRC_BT601 0x00000010
+#define VA_SRC_BT709 0x00000020
+
+#endif /* end for _VA_X11_H_ */
+
+
+
+#define PSB_SUBPIC_MAX_NUM 6
+#define PSB_CLIPBOX_MAX_NUM 6
+
+typedef struct _PsbXvVAPutSurface {
+ uint32_t flags;/* #define VA_FRAME_PICTURE 0x00000000
+ * #define VA_TOP_FIELD 0x00000001
+ * #define VA_BOTTOM_FIELD 0x00000002
+ */
+ unsigned int num_subpicture;
+ unsigned int num_clipbox;
+
+ PsbVASurfaceRec dst_srf; /* filled by Xserver */
+ PsbVASurfaceRec src_srf; /* provided by VA client */
+ PsbVASurfaceRec subpic_srf[PSB_SUBPIC_MAX_NUM];
+ VaClipBox clipbox[PSB_CLIPBOX_MAX_NUM];
+} PsbXvVAPutSurfaceRec, *PsbXvVAPutSurfacePtr;
+
+#endif
diff --git a/src/psb_texstreaming.c b/src/psb_texstreaming.c
new file mode 100644
index 0000000..793228d
--- /dev/null
+++ b/src/psb_texstreaming.c
@@ -0,0 +1,144 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ * Fei Jiang <fei.jiang@intel.com>
+ */
+
+#include <va/va.h>
+#include <va/va_backend.h>
+
+#ifdef ANDROID
+#include "android/psb_android_glue.h"
+#endif
+
+#include "psb_drv_video.h"
+#include "psb_surface.h"
+#include "psb_texstreaming.h"
+
+#define INIT_DRIVER_DATA psb_driver_data_p driver_data = (psb_driver_data_p) ctx->pDriverData;
+#define SURFACE(id) ((object_surface_p) object_heap_lookup( &driver_data->surface_heap, id ))
+
+VAStatus psb_register_video_bcd(
+ VADriverContextP ctx,
+ int width,
+ int height,
+ int stride,
+ int num_surfaces,
+ VASurfaceID *surface_list
+)
+{
+ INIT_DRIVER_DATA
+ int i;
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+
+ BC_Video_ioctl_package ioctl_package;
+ bc_buf_params_t buf_param;
+
+ buf_param.count = num_surfaces;
+ buf_param.width = width;
+ buf_param.stride = stride;
+ buf_param.height = height;
+ buf_param.fourcc = BC_PIX_FMT_NV12;
+ buf_param.type = BC_MEMORY_USERPTR;
+#ifdef ANDROID
+ driver_data->bcd_ioctrl_num = IS_MFLD(driver_data) ? 0x32 : 0x2c;
+#else
+ driver_data->bcd_ioctrl_num = 0x32;
+#endif
+
+ psb__information_message("In psb_register_video_bcd, call BC_Video_ioctl_request_buffers to request buffers in BCD driver.\n");
+ psb__information_message("buffer count is %d, width is %d, stride is %d, height is %d.\n", num_surfaces, width, stride, height);
+ ioctl_package.ioctl_cmd = BC_Video_ioctl_request_buffers;
+ ioctl_package.inputparam = (int)(&buf_param);
+ if (drmCommandWriteRead(driver_data->drm_fd, driver_data->bcd_ioctrl_num, &ioctl_package, sizeof(ioctl_package)) != 0) {
+ psb__error_message("Failed to request buffers from buffer class video driver.\n");
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+ driver_data->bcd_id = ioctl_package.outputparam;
+ driver_data->bcd_registered = 1;
+ psb__information_message("In psb_register_video_bcd, the allocated bc device id is %d.\n", driver_data->bcd_id);
+ psb__information_message("In psb_register_video_bcd, call BC_Video_ioctl_get_buffer_count to get buffer count.\n");
+ ioctl_package.ioctl_cmd = BC_Video_ioctl_get_buffer_count;
+ ioctl_package.device_id = driver_data->bcd_id;
+ if (drmCommandWriteRead(driver_data->drm_fd, driver_data->bcd_ioctrl_num, &ioctl_package, sizeof(ioctl_package)) != 0) {
+ psb__error_message("Failed to get buffer count from buffer class video driver.\n");
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ if (ioctl_package.outputparam != num_surfaces) {
+ psb__error_message("buffer count is not correct.\n");
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ psb__information_message("In psb_register_video_bcd, call BC_Video_ioctl_set_buffer_phyaddr to bind buffer id with physical address.\n");
+ bc_buf_ptr_t buf_pa;
+
+ for (i = 0; i < num_surfaces; i++) {
+ psb_surface_p psb_surface;
+ object_surface_p obj_surface = SURFACE(surface_list[i]);
+ psb_surface = obj_surface->psb_surface;
+ psb_surface->bc_buffer = (i & 0xffff) | ((driver_data->bcd_id & 0xffff) << 16);
+
+ /*get ttm buffer handle*/
+ buf_pa.handle = wsbmKBufHandle(wsbmKBuf(psb_surface->buf.drm_buf));
+ buf_pa.index = i;
+ ioctl_package.ioctl_cmd = BC_Video_ioctl_set_buffer_phyaddr;
+ ioctl_package.device_id = driver_data->bcd_id;
+ ioctl_package.inputparam = (int)(&buf_pa);
+ /*bind bcd buffer index with ttm buffer handle and set buffer phyaddr in kernel driver*/
+ if (drmCommandWriteRead(driver_data->drm_fd, driver_data->bcd_ioctrl_num, &ioctl_package, sizeof(ioctl_package)) != 0) {
+ psb__error_message("Failed to set buffer phyaddr from buffer class video driver.\n");
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+ }
+ psb__information_message("num_surface = %d, bcd_id = %d\n", num_surfaces, driver_data->bcd_id);
+ return vaStatus;
+}
+
+VAStatus psb_release_video_bcd(VADriverContextP ctx)
+{
+ INIT_DRIVER_DATA
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+
+ /*destroyTextureStreamSource can be called by LayerBuffer::unregisterBuffers automatically
+ *But h264vld will not that destroyTextureStreamSource, so still keep it here
+ *otherwise, will get "Erroneous page count" error.
+ */
+#ifdef ANDROID
+ psb__information_message("In psb_release_video_bcd, call psb_android_texture_streaming_destroy to destroy texture streaming source.\n");
+ psb_android_texture_streaming_destroy();
+#endif
+ BC_Video_ioctl_package ioctl_package;
+ psb__information_message("In psb_release_video_bcd, call BC_Video_ioctl_release_buffer_device to release video buffer device id.\n");
+ ioctl_package.ioctl_cmd = BC_Video_ioctl_release_buffer_device;
+ ioctl_package.device_id = driver_data->bcd_id;
+ if (drmCommandWriteRead(driver_data->drm_fd, driver_data->bcd_ioctrl_num, &ioctl_package, sizeof(ioctl_package)) != 0) {
+ psb__error_message("Failed to release video buffer class device.\n");
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+ driver_data->bcd_registered = 0;
+
+ return vaStatus;
+}
diff --git a/src/psb_texstreaming.h b/src/psb_texstreaming.h
new file mode 100644
index 0000000..d4de665
--- /dev/null
+++ b/src/psb_texstreaming.h
@@ -0,0 +1,97 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ * Fei Jiang <fei.jiang@intel.com>
+ */
+
+#ifndef _PSB_TEXSTREAMING_H_
+#define _PSB_TEXSTREAMING_H_
+#include <va/va.h>
+#include <va/va_backend.h>
+
+#define BC_FOURCC(a,b,c,d) \
+ ((unsigned long) ((a) | (b)<<8 | (c)<<16 | (d)<<24))
+
+#define BC_PIX_FMT_NV12 BC_FOURCC('N', 'V', '1', '2') /*YUV 4:2:0*/
+#define BC_PIX_FMT_UYVY BC_FOURCC('U', 'Y', 'V', 'Y') /*YUV 4:2:2*/
+#define BC_PIX_FMT_YUYV BC_FOURCC('Y', 'U', 'Y', 'V') /*YUV 4:2:2*/
+#define BC_PIX_FMT_RGB565 BC_FOURCC('R', 'G', 'B', 'P') /*RGB 5:6:5*/
+
+typedef struct BC_Video_ioctl_package_TAG {
+ int ioctl_cmd;
+ int device_id;
+ int inputparam;
+ int outputparam;
+} BC_Video_ioctl_package;
+
+typedef struct bc_buf_ptr {
+ unsigned int index;
+ int size;
+ unsigned long pa;
+ unsigned long handle;
+} bc_buf_ptr_t;
+
+#define BC_Video_ioctl_fill_buffer 0
+#define BC_Video_ioctl_get_buffer_count 1
+#define BC_Video_ioctl_get_buffer_phyaddr 2 /*get physical address by index*/
+#define BC_Video_ioctl_get_buffer_index 3 /*get index by physical address*/
+#define BC_Video_ioctl_request_buffers 4
+#define BC_Video_ioctl_set_buffer_phyaddr 5
+#define BC_Video_ioctl_release_buffer_device 6
+
+enum BC_memory {
+ BC_MEMORY_MMAP = 1,
+ BC_MEMORY_USERPTR = 2,
+};
+
+/*
+ * the following types are tested for fourcc in struct bc_buf_params_t
+ * NV12
+ * UYVY
+ * RGB565 - not tested yet
+ * YUYV
+ */
+typedef struct bc_buf_params {
+ int count; /*number of buffers, [in/out]*/
+ int width; /*buffer width in pixel, multiple of 8 or 32*/
+ int height; /*buffer height in pixel*/
+ int stride;
+ unsigned int fourcc; /*buffer pixel format*/
+ enum BC_memory type;
+} bc_buf_params_t;
+
+VAStatus psb_register_video_bcd(
+ VADriverContextP ctx,
+ int width,
+ int height,
+ int stride,
+ int num_surfaces,
+ VASurfaceID *surface_list
+);
+
+VAStatus psb_release_video_bcd(VADriverContextP ctx);
+
+/*add for texture streaming end*/
+#endif /*_PSB_TEXSTREAMING_H*/
diff --git a/src/psb_texture.c b/src/psb_texture.c
new file mode 100644
index 0000000..97729c2
--- /dev/null
+++ b/src/psb_texture.c
@@ -0,0 +1,1065 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ * Binglin Chen <binglin.chen@intel.com>
+ * Zhaohan Ren <zhaohan.ren@intel.com>
+ * Shengquan Yuan <shengquan.yuan@intel.com>
+ */
+
+#include <stdio.h>
+#include <math.h>
+
+#include <psb_drm.h>
+#include <va/va_backend.h>
+#include <va/va_dricommon.h>
+
+#include <wsbm/wsbm_manager.h>
+
+#ifndef ANDROID
+#include <X11/Xlib.h>
+#include "x11/psb_xrandr.h"
+#include "x11/psb_x11.h"
+#endif
+
+#include "pvr2d.h"
+
+#include "psb_drv_video.h"
+#include "psb_output.h"
+#include "psb_surface_ext.h"
+
+#include "psb_texture.h"
+
+#define INIT_DRIVER_DATA psb_driver_data_p driver_data = (psb_driver_data_p) ctx->pDriverData;
+#define INIT_OUTPUT_PRIV psb_x11_output_p output = (psb_x11_output_p)(((psb_driver_data_p)ctx->pDriverData)->ws_priv)
+#define SURFACE(id) ((object_surface_p) object_heap_lookup( &driver_data->surface_heap, id ))
+
+#define Degree (2*PI / 360.0)
+#define PI 3.1415927
+
+#define OV_HUE_DEFAULT_VALUE 0
+#define OV_HUE_MIN -30
+#define OV_HUE_MAX 30
+
+#define OV_BRIGHTNESS_DEFAULT_VALUE 0
+#define OV_BRIGHTNESS_MIN -50
+#define OV_BRIGHTNESS_MAX 50
+
+#define OV_CONTRAST_DEFAULT_VALUE 0
+#define OV_CONTRAST_MIN -100
+#define OV_CONTRAST_MAX 100
+
+#define OV_SATURATION_DEFAULT_VALUE 100
+#define OV_SATURATION_MIN 0
+#define OV_SATURATION_MAX 200
+
+typedef struct _psb_transform_coeffs_ {
+ double rY, rCb, rCr;
+ double gY, gCb, gCr;
+ double bY, bCb, bCr;
+} psb_transform_coeffs;
+
+typedef enum _psb_videotransfermatrix {
+ PSB_VideoTransferMatrixMask = 0x07,
+ PSB_VideoTransferMatrix_Unknown = 0,
+ PSB_VideoTransferMatrix_BT709 = 1,
+ PSB_VideoTransferMatrix_BT601 = 2,
+ PSB_VideoTransferMatrix_SMPTE240M = 3
+} psb_videotransfermatrix;
+
+typedef enum _psb_nominalrange {
+ PSB_NominalRangeMask = 0x07,
+ PSB_NominalRange_Unknown = 0,
+ PSB_NominalRange_Normal = 1,
+ PSB_NominalRange_Wide = 2,
+ /* explicit range forms */
+ PSB_NominalRange_0_255 = 1,
+ PSB_NominalRange_16_235 = 2,
+ PSB_NominalRange_48_208 = 3
+} psb_nominalrange;
+
+/*
+ * ITU-R BT.601, BT.709 and SMPTE 240M transfer matrices from VA 2.0
+ * Video Color Field definitions Design Spec(Version 0.03).
+ * [R', G', B'] values are in the range [0, 1], Y' is in the range [0,1]
+ * and [Pb, Pr] components are in the range [-0.5, 0.5].
+ */
+static psb_transform_coeffs s601 = {
+ 1, -0.000001, 1.402,
+ 1, -0.344136, -0.714136,
+ 1, 1.772, 0
+};
+
+static psb_transform_coeffs s709 = {
+ 1, 0, 1.5748,
+ 1, -0.187324, -0.468124,
+ 1, 1.8556, 0
+};
+
+static psb_transform_coeffs s240M = {
+ 1, -0.000657, 1.575848,
+ 1, -0.226418, -0.476529,
+ 1, 1.825958, 0.000378
+};
+
+static void psb_setup_coeffs(struct psb_texture_s * pPriv);
+static void psb_scale_transfermatrix(psb_transform_coeffs * transfer_matrix,
+ double YColumScale, double CbColumScale,
+ double CrColumnScale);
+static void psb_select_transfermatrix(struct psb_texture_s * pPriv,
+ psb_transform_coeffs * transfer_matrix,
+ double *Y_offset, double *CbCr_offset,
+ double *RGB_offset);
+static void psb_create_coeffs(double yOff, double uOff, double vOff, double rgbOff,
+ double yScale, double uScale, double vScale,
+ double brightness, double contrast,
+ double *pYCoeff, double *pUCoeff, double *pVCoeff,
+ double *pConstant);
+static void psb_convert_coeffs(double Ycoeff, double Ucoeff, double Vcoeff,
+ double ConstantTerm, signed char *pY, signed char *pU,
+ signed char *pV, signed short *constant,
+ unsigned char *pShift);
+static int psb_check_coeffs(double Ycoeff, double Ucoeff, double Vcoeff,
+ double ConstantTerm, signed char byShift);
+static void
+psb_transform_sathuecoeffs(psb_transform_coeffs * dest,
+ const psb_transform_coeffs * const source,
+ double fHue, double fSat);
+
+static unsigned long PVRCalculateStride(unsigned long widthInPixels, unsigned int bitsPerPixel, unsigned int stride_alignment)
+{
+ int ulActiveLinelenInPixels = (widthInPixels + (stride_alignment - 1)) & ~(stride_alignment - 1);
+ return ((ulActiveLinelenInPixels * bitsPerPixel) + 7) >> 3;
+}
+
+static int pvr_context_create(void **pvr_ctx)
+{
+ int ret = 0;
+ int pvr_devices = PVR2DEnumerateDevices(0);
+ PVR2DDEVICEINFO *pvr_devs = NULL;
+
+ if ((pvr_devices < PVR2D_OK) || (pvr_devices == 0)) {
+ psb__error_message("%s(): PowerVR device not found", __func__);
+ goto out;
+ }
+
+ pvr_devs = calloc(1, pvr_devices * sizeof(*pvr_devs));
+ if (!pvr_devs) {
+ psb__error_message("%s(): not enough memory", __func__);
+ goto out;
+ }
+
+ ret = PVR2DEnumerateDevices(pvr_devs);
+ if (ret != PVR2D_OK) {
+ psb__error_message("%s(): PVR2DEnumerateDevices() failed(%d)", __func__,
+ ret);
+ goto out;
+ }
+
+ /* Choose the first display device */
+ ret = PVR2DCreateDeviceContext(pvr_devs[0].ulDevID, (PVR2DCONTEXTHANDLE *)pvr_ctx, 0);
+ if (ret != PVR2D_OK) {
+ psb__error_message("%s(): PVR2DCreateDeviceContext() failed(%d)", __func__,
+ ret);
+ goto out;
+ }
+
+out:
+ if (pvr_devs)
+ free(pvr_devs);
+
+ return ret;
+}
+
+void psb_ctexture_init(VADriverContextP ctx)
+{
+ INIT_DRIVER_DATA;
+#ifndef ANDROID
+ INIT_OUTPUT_PRIV;
+#endif
+
+ struct psb_texture_s *texture_priv = &driver_data->ctexture_priv;
+ int i, ret;
+
+ ret = pvr_context_create(&texture_priv->hPVR2DContext);
+ if (ret != PVR2D_OK) {
+ psb__error_message("%s(): null PVR context!!", __func__);
+ }
+
+ texture_priv->video_transfermatrix = PSB_VideoTransferMatrix_BT709;
+ texture_priv->src_nominalrange = PSB_NominalRange_0_255;
+ texture_priv->dst_nominalrange = PSB_NominalRange_0_255;
+
+ texture_priv->brightness.Value = OV_BRIGHTNESS_DEFAULT_VALUE;
+ texture_priv->brightness.Fraction = 0;
+ texture_priv->contrast.Value = OV_CONTRAST_DEFAULT_VALUE;
+ texture_priv->contrast.Fraction = 0;
+ texture_priv->hue.Value = OV_HUE_DEFAULT_VALUE;
+ texture_priv->hue.Fraction = 0;
+ texture_priv->saturation.Value = OV_SATURATION_DEFAULT_VALUE;
+ texture_priv->saturation.Fraction = 0;
+
+ texture_priv->gamma5 = 0xc0c0c0;
+ texture_priv->gamma4 = 0x808080;
+ texture_priv->gamma3 = 0x404040;
+ texture_priv->gamma2 = 0x202020;
+ texture_priv->gamma1 = 0x101010;
+ texture_priv->gamma0 = 0x080808;
+#ifndef ANDROID
+ texture_priv->dri_init_flag = 0;
+ texture_priv->drawable_update_flag = 0;
+ texture_priv->extend_dri_init_flag = 0;
+ texture_priv->current_blt_buffer = 0;
+ texture_priv->extend_current_blt_buffer = 0;
+ texture_priv->adjust_window_flag = 0;
+ texture_priv->destw_save = 0;
+ texture_priv->desth_save = 0;
+ texture_priv->local_rotation_save = -1;
+ texture_priv->extend_rotation_save = -1;
+ output->output_drawable = 0;
+ output->extend_drawable = 0;
+ for (i = 0; i < VIDEO_BUFFER_NUM; i++) {
+ texture_priv->videoBuf[i] = NULL;
+ texture_priv->subpicBuf[i] = NULL;
+ texture_priv->wrapped_surface_id[i] = -1;
+ texture_priv->wrapped_subpic_id[i] = -1;
+ }
+
+ for (i = 0; i < DRI2_BLIT_BUFFERS_NUM; i++) {
+ texture_priv->blt_meminfo[i] = NULL;
+ texture_priv->extend_blt_meminfo[i] = NULL;
+ }
+
+ for (i = 0; i < DRI2_FLIP_BUFFERS_NUM; i++)
+ texture_priv->flip_meminfo[i] = NULL;
+
+ texture_priv->blt_meminfo_pixmap = NULL;
+#endif
+ for (i = 0; i < 6; i++)
+ texture_priv->pal_meminfo[i] = NULL;
+
+ psb_setup_coeffs(texture_priv);
+}
+
+void psb_ctexture_deinit(VADriverContextP ctx)
+{
+ INIT_DRIVER_DATA;
+#ifndef ANDROID
+ INIT_OUTPUT_PRIV;
+#endif
+ PVR2DERROR ePVR2DStatus;
+ int i;
+
+ struct psb_texture_s *texture_priv = &driver_data->ctexture_priv;
+#ifndef ANDROID
+ for (i = 0; i < VIDEO_BUFFER_NUM; i++) {
+ if (texture_priv->videoBuf[i]) {
+ ePVR2DStatus = PVR2DMemFree(texture_priv->hPVR2DContext, texture_priv->videoBuf[i]);
+ if (ePVR2DStatus != PVR2D_OK)
+ psb__error_message("%s: PVR2DMemFree error %d\n", __FUNCTION__, ePVR2DStatus);
+ }
+
+ if (texture_priv->subpicBuf[i]) {
+ ePVR2DStatus = PVR2DMemFree(texture_priv->hPVR2DContext, texture_priv->subpicBuf[i]);
+ if (ePVR2DStatus != PVR2D_OK)
+ psb__error_message("%s: PVR2DMemFree error %d\n", __FUNCTION__, ePVR2DStatus);
+ }
+
+ texture_priv->wrapped_surface_id[i] = -1;
+ texture_priv->wrapped_subpic_id[i] = -1;
+ }
+
+ if (texture_priv->blt_meminfo_pixmap) {
+ ePVR2DStatus = PVR2DMemFree(texture_priv->hPVR2DContext, texture_priv->blt_meminfo_pixmap);
+ if (ePVR2DStatus != PVR2D_OK)
+ psb__error_message("%s: PVR2DMemFree error %d\n", __FUNCTION__, ePVR2DStatus);
+ }
+
+ for (i = 0; i < DRI2_BLIT_BUFFERS_NUM; i++) {
+ if (texture_priv->blt_meminfo[i]) {
+ ePVR2DStatus = PVR2DMemFree(texture_priv->hPVR2DContext, texture_priv->blt_meminfo[i]);
+ if (ePVR2DStatus != PVR2D_OK)
+ psb__error_message("%s: PVR2DMemFree error %d\n", __FUNCTION__, ePVR2DStatus);
+ texture_priv->blt_meminfo[i] = NULL;
+ }
+ }
+
+ for (i = 0; i < DRI2_FLIP_BUFFERS_NUM; i++) {
+ if (texture_priv->flip_meminfo[i]) {
+ ePVR2DStatus = PVR2DMemFree(texture_priv->hPVR2DContext, texture_priv->flip_meminfo[i]);
+ if (ePVR2DStatus != PVR2D_OK)
+ psb__error_message("%s: PVR2DMemFree error %d\n", __FUNCTION__, ePVR2DStatus);
+ texture_priv->flip_meminfo[i] = NULL;
+ }
+ }
+
+ for (i = 0; i < DRI2_BLIT_BUFFERS_NUM; i++) {
+ if (texture_priv->extend_blt_meminfo[i]) {
+ ePVR2DStatus = PVR2DMemFree(texture_priv->hPVR2DContext, texture_priv->extend_blt_meminfo[i]);
+ if (ePVR2DStatus != PVR2D_OK)
+ psb__error_message("%s: PVR2DMemFree error %d\n", __FUNCTION__, ePVR2DStatus);
+ texture_priv->extend_blt_meminfo[i] = NULL;
+ }
+ }
+
+ if (output->extend_drawable) {
+ XDestroyWindow(ctx->native_dpy, output->extend_drawable);
+ output->extend_drawable = 0;
+ }
+#endif
+
+ for (i = 0; i < 6; i++) {
+ if (texture_priv->pal_meminfo[i]) {
+ ePVR2DStatus = PVR2DMemFree(texture_priv->hPVR2DContext, texture_priv->pal_meminfo[i]);
+ if (ePVR2DStatus != PVR2D_OK)
+ psb__error_message("%s: PVR2DMemFree error %d\n", __FUNCTION__, ePVR2DStatus);
+ texture_priv->pal_meminfo[i] = NULL;
+ }
+ }
+
+#ifndef ANDROID
+ if (texture_priv->hPVR2DContext) {
+ ePVR2DStatus = PVR2DDestroyDeviceContext(texture_priv->hPVR2DContext);
+ if (ePVR2DStatus != PVR2D_OK)
+ psb__error_message("%s: PVR2DMemFree error %d\n", __FUNCTION__, ePVR2DStatus);
+ texture_priv->hPVR2DContext = NULL;
+ }
+#endif
+
+ (void)texture_priv;
+
+}
+
+/* calculate subpicture size according to the downscale situation of both main and subpicture bitstream */
+static void psb_calculate_subpic_size(int surf_width, int surf_height, int dst_w, int dst_h, PsbVASurfaceRec *surface_subpic)
+{
+ float src_h_ratio, src_v_ratio;
+ float subpic_h_ratio, subpic_v_ratio;
+ float subpic_h_dest_ratio, subpic_v_dest_ratio;
+
+ src_h_ratio = (float)surf_width / dst_w;
+ src_v_ratio = (float)surf_height / dst_h;
+
+ subpic_h_ratio = (float)surface_subpic->subpic_srcw / surface_subpic->subpic_dstw;
+ subpic_v_ratio = (float)surface_subpic->subpic_srch / surface_subpic->subpic_dsth;
+
+ subpic_h_dest_ratio = (float)dst_w / surface_subpic->subpic_dstw;
+ subpic_v_dest_ratio = (float)dst_h / surface_subpic->subpic_dsth;
+
+ if (!(surface_subpic->subpic_flags & VA_SUBPICTURE_DESTINATION_IS_SCREEN_COORD)) {
+ /* If coordinates are video relative then scale subpicture with video */
+ surface_subpic->subpic_dstx /= src_h_ratio;
+ surface_subpic->subpic_dsty /= src_v_ratio;
+ surface_subpic->subpic_dstx /= subpic_h_ratio;
+ surface_subpic->subpic_dsty /= subpic_v_ratio;
+
+ surface_subpic->subpic_dstw /= src_h_ratio;
+ surface_subpic->subpic_dsth /= src_v_ratio;
+ surface_subpic->subpic_dstw /= subpic_h_ratio;
+ surface_subpic->subpic_dsth /= subpic_v_ratio;
+ }
+}
+
+static PPVR2DMEMINFO psb_check_subpic_buffer(psb_driver_data_p driver_data, PsbVASurfaceRec* surface_subpic)
+{
+ int i, j;
+ unsigned char* tmp_buffer;
+ unsigned char tmp;
+
+ struct psb_texture_s *texture_priv = &driver_data->ctexture_priv;
+ PVR2DERROR ePVR2DStatus;
+
+ /* Find and return the wrapped buffer index */
+ for (i = 0; i < VIDEO_BUFFER_NUM; i++) {
+ if (texture_priv->wrapped_subpic_id[i] == surface_subpic->subpic_id && texture_priv->subpicBuf[i]) {
+ return texture_priv->subpicBuf[i];
+ }
+ }
+
+ /* Wrap a un-wrapped buffer and return */
+ for (i = 0; i < VIDEO_BUFFER_NUM; i++) {
+ if (texture_priv->wrapped_subpic_id[i] == -1) {
+ tmp_buffer = NULL;
+ tmp_buffer = wsbmBOMap(surface_subpic->bo, WSBM_ACCESS_READ | WSBM_ACCESS_WRITE);
+ for (j = 0; j < surface_subpic->size; j = j + 4096) {
+ tmp = *(tmp_buffer + j);
+ if (tmp == 0)
+ *(tmp_buffer + j) = 0;
+ }
+
+ ePVR2DStatus = PVR2DMemWrap(texture_priv->hPVR2DContext,
+ tmp_buffer,
+ 0,
+ surface_subpic->size,
+ NULL,
+ &texture_priv->subpicBuf[i]);
+ if (ePVR2DStatus != PVR2D_OK) {
+ psb__error_message("%s: PVR2DMemWrap error %d\n", __FUNCTION__, ePVR2DStatus);
+ }
+
+ texture_priv->wrapped_subpic_id[i] = surface_subpic->subpic_id;
+ return texture_priv->subpicBuf[i];
+ }
+ }
+
+ if (i == VIDEO_BUFFER_NUM - 1) {
+ psb__error_message("%s: Out of warpped subpic buffer memory\n", __FUNCTION__);
+ return NULL;
+ }
+
+ return NULL;
+}
+
+static PPVR2DMEMINFO psb_check_video_buffer(psb_driver_data_p driver_data, VASurfaceID surface)
+{
+ int i, j;
+ unsigned char* tmp_buffer;
+ unsigned char tmp;
+
+ struct psb_texture_s *texture_priv = &driver_data->ctexture_priv;
+ object_surface_p obj_surface = SURFACE(surface);
+ psb_surface_p psb_surface = obj_surface->psb_surface;
+ PVR2DERROR ePVR2DStatus;
+
+ /* Find and return the wrapped buffer index */
+ for (i = 0; i < VIDEO_BUFFER_NUM; i++) {
+ if (texture_priv->wrapped_surface_id[i] == surface && texture_priv->videoBuf[i]) {
+ return texture_priv->videoBuf[i];
+ }
+ }
+
+ /* Wrap a un-wrapped buffer and return */
+ for (i = 0; i < VIDEO_BUFFER_NUM; i++) {
+ if (texture_priv->wrapped_surface_id[i] == -1) {
+ tmp_buffer = NULL;
+ tmp_buffer = wsbmBOMap(psb_surface->buf.drm_buf, WSBM_ACCESS_READ | WSBM_ACCESS_WRITE);
+ for (j = 0; j < psb_surface->size; j = j + 4096) {
+ tmp = *(tmp_buffer + j);
+ if (tmp == 0)
+ *(tmp_buffer + j) = 0;
+ }
+
+ ePVR2DStatus = PVR2DMemWrap(texture_priv->hPVR2DContext,
+ tmp_buffer,
+ 0,
+ psb_surface->size,
+ NULL,
+ &texture_priv->videoBuf[i]);
+ if (ePVR2DStatus != PVR2D_OK) {
+ psb__error_message("%s: PVR2DMemWrap error %d\n", __FUNCTION__, ePVR2DStatus);
+ }
+
+ texture_priv->wrapped_surface_id[i] = surface;
+ return texture_priv->videoBuf[i];
+ }
+ }
+
+ if (i == VIDEO_BUFFER_NUM - 1) {
+ psb__error_message("%s: Out of warpped buffer memory\n", __FUNCTION__);
+ return NULL;
+ }
+
+ return NULL;
+}
+
+#ifndef ANDROID
+void psb_putsurface_textureblit(
+ VADriverContextP ctx, PPVR2DMEMINFO pDstMeminfo, VASurfaceID surface, int src_x, int src_y, int src_w,
+ int src_h, int dst_x, int dst_y, int dst_w, int dst_h, unsigned int subtitle,
+ int width, int height,
+ int src_pitch, struct _WsbmBufferObject * src_buf,
+ unsigned int placement)
+#else
+void psb_putsurface_textureblit(
+ VADriverContextP ctx, unsigned char * data, VASurfaceID surface, int src_x, int src_y, int src_w,
+ int src_h, int dst_x, int dst_y, int dst_w, int dst_h,
+ int width, int height,
+ int src_pitch, struct _WsbmBufferObject * src_buf,
+ unsigned int placement)
+#endif
+{
+#ifndef ANDROID
+ INIT_DRIVER_DATA;
+ int i;
+ unsigned char *tmp_palette;
+ struct psb_texture_s *texture_priv = &driver_data->ctexture_priv;
+ object_surface_p obj_surface;
+ PsbVASurfaceRec *surface_subpic = NULL;
+ obj_surface = SURFACE(surface);
+
+ PVR2D_VPBLT sBltVP;
+ PVR2DERROR ePVR2DStatus;
+ PPVR2DMEMINFO pVaVideoSubpicMemInfo;
+ PPVR2DMEMINFO pVaVideoMemInfo;
+
+ src_pitch = (src_pitch + 0x3) & ~0x3;
+
+ if (NULL == obj_surface) {
+ psb__error_message("%s: Invalid surface ID 0x%08x!\n", __func__, surface);
+ return;
+ }
+ surface_subpic = (PsbVASurfaceRec *)obj_surface->subpictures;
+ /* check whether we need to update coeffs */
+ if ((height > 576) &&
+ (texture_priv->video_transfermatrix != PSB_VideoTransferMatrix_BT709)) {
+ texture_priv->video_transfermatrix = PSB_VideoTransferMatrix_BT709;
+ texture_priv->update_coeffs = 1;
+ } else if ((height <= 576) &&
+ (texture_priv->video_transfermatrix != PSB_VideoTransferMatrix_BT601)) {
+ texture_priv->video_transfermatrix = PSB_VideoTransferMatrix_BT601;
+ texture_priv->update_coeffs = 1;
+ }
+
+ /* prepare coeffs if needed */
+ memset(&sBltVP, 0, sizeof(PVR2D_VPBLT));
+ if (texture_priv->update_coeffs == 1) {
+ psb_setup_coeffs(texture_priv);
+ sBltVP.psYUVCoeffs = (PPVR2D_YUVCOEFFS) & texture_priv->coeffs;
+ /* FIXME: is it right? */
+ sBltVP.bCoeffsGiven = 1;
+ }
+
+ pVaVideoMemInfo = psb_check_video_buffer(driver_data, surface);
+ if (!pVaVideoMemInfo)
+ psb__error_message("%s: Failed to get source PVR2DMEMINFO!\n", __func__);
+
+ /* wrap the dest source */
+ /* FIXME: this is wrap for rgb565 */
+#ifdef ANDROID
+ PVR2DMEMINFO *pDstMeminfo;
+ ePVR2DStatus = PVR2DMemWrap(texture_priv->hPVR2DContext,
+ data,
+ 0,
+ (dst_w * dst_h * 2),
+ NULL,
+ &pDstMeminfo);
+ if (ePVR2DStatus != PVR2D_OK) {
+ psb__error_message("%s: PVR2DMemWrap error %d\n", __FUNCTION__, ePVR2DStatus);
+ }
+#endif
+ sBltVP.sDst.pSurfMemInfo = pDstMeminfo;
+ sBltVP.sDst.SurfOffset = 0;
+#ifndef ANDROID
+ if (IS_MFLD(driver_data))
+ sBltVP.sDst.Stride = PVRCalculateStride(dst_w, 32, 8);
+ if (IS_MRST(driver_data))
+ sBltVP.sDst.Stride = PVRCalculateStride(dst_w, 32, 32);
+ sBltVP.sDst.Format = PVR2D_ARGB8888;
+#else
+ /* FIXME: this wrong, how to get system pitch */
+ sBltVP.sDst.Stride = dst_w * 2;//align_to(dst_w, 64);
+ sBltVP.sDst.Format = PVR2D_RGB565;
+#endif
+ sBltVP.sDst.SurfWidth = dst_w;
+ sBltVP.sDst.SurfHeight = dst_h;
+
+ /* Y plane UV plane */
+ sBltVP.uiNumLayers = 1;
+ sBltVP.sSrc->Stride = src_pitch;
+ sBltVP.sSrc->Format = VA_FOURCC_NV12;
+ sBltVP.sSrc->SurfWidth = width;
+ sBltVP.sSrc->SurfHeight = height;
+ sBltVP.sSrc[0].pSurfMemInfo = pVaVideoMemInfo;
+
+ /* FIXME: check for top-bottom */
+ sBltVP.sSrc->SurfOffset = 0;
+
+ /* FIXME: check rotation setting */
+ /* FIXME: use PVR define */
+ sBltVP.RotationValue = 1;
+
+ /* clip box */
+ sBltVP.rcDest.left = dst_x;
+ sBltVP.rcDest.right = dst_x + dst_w;
+ sBltVP.rcDest.top = dst_y;
+ sBltVP.rcDest.bottom = dst_y + dst_h;
+
+ sBltVP.rcSource->left = src_x;
+ sBltVP.rcSource->right = src_x + src_w;
+ sBltVP.rcSource->top = src_y;
+ sBltVP.rcSource->bottom = src_y + src_h;
+
+#ifdef ANDROID
+ if (obj_surface->subpic_count) {
+#else
+ if (subtitle == 1 && obj_surface->subpic_count) {
+#endif
+ for (i = 0; i < obj_surface->subpic_count; i++) {
+
+ sBltVP.uiNumLayers += 1;
+
+ psb_calculate_subpic_size(obj_surface->width, obj_surface->height, dst_w, dst_h, surface_subpic);
+
+ pVaVideoSubpicMemInfo = psb_check_subpic_buffer(driver_data, surface_subpic);
+ if (!pVaVideoSubpicMemInfo)
+ psb__error_message("%s: Failed to get subpic PVR2DMEMINFO!\n", __func__);
+
+ sBltVP.sSrcSubpic[i].pSurfMemInfo = pVaVideoSubpicMemInfo;
+ sBltVP.sSrcSubpic[i].SurfOffset = 0;
+ sBltVP.sSrcSubpic[i].Stride = surface_subpic->stride;
+
+ if (surface_subpic->fourcc == VA_FOURCC_AI44)
+ sBltVP.sSrcSubpic[i].Format = MAKEFOURCC('A', 'I' , '4', '4');
+ else
+ sBltVP.sSrcSubpic[i].Format = surface_subpic->fourcc;
+
+ sBltVP.sSrcSubpic[i].SurfWidth = surface_subpic->subpic_srcw;
+ sBltVP.sSrcSubpic[i].SurfHeight = surface_subpic->subpic_srch;
+
+ sBltVP.rcSubpicSource[i].left = surface_subpic->subpic_srcx;
+ sBltVP.rcSubpicSource[i].right = surface_subpic->subpic_srcx + surface_subpic->subpic_srcw;
+ sBltVP.rcSubpicSource[i].top = surface_subpic->subpic_srcy;
+ sBltVP.rcSubpicSource[i].bottom = surface_subpic->subpic_srcy + surface_subpic->subpic_srch;
+
+ sBltVP.rcSubpicDest[i].left = surface_subpic->subpic_dstx;
+ sBltVP.rcSubpicDest[i].right = surface_subpic->subpic_dstx + surface_subpic->subpic_dstw;
+ sBltVP.rcSubpicDest[i].top = surface_subpic->subpic_dsty;
+ sBltVP.rcSubpicDest[i].bottom = surface_subpic->subpic_dsty + surface_subpic->subpic_dsth;
+
+ //only allocate memory once for palette
+ if (surface_subpic->fourcc == VA_FOURCC_AI44) {
+ if (!texture_priv->pal_meminfo[i]) {
+ ePVR2DStatus = PVR2DMemAlloc(texture_priv->hPVR2DContext, 16 * sizeof(unsigned int), 0, 0, &texture_priv->pal_meminfo[i]);
+ if (ePVR2DStatus != PVR2D_OK) {
+ psb__error_message("%s: PVR2DMemAlloc error %d\n", __FUNCTION__, ePVR2DStatus);
+ return;
+ }
+ }
+
+ sBltVP.pPalMemInfo[i] = texture_priv->pal_meminfo[i];
+ tmp_palette = sBltVP.pPalMemInfo[i]->pBase;
+ memcpy(tmp_palette, surface_subpic->palette_ptr, 16 * sizeof(unsigned int));
+ sBltVP.PalOffset[i] = 0;
+ }
+ surface_subpic = surface_subpic->next;
+ }
+ }
+
+ ePVR2DStatus = PVR2DBltVideo(texture_priv->hPVR2DContext, &sBltVP);
+ if (ePVR2DStatus != PVR2D_OK) {
+ psb__error_message("%s: failed to do PVR2DBltVideo with error code %d\n",
+ __FUNCTION__, ePVR2DStatus);
+ }
+
+#ifdef ANDROID
+ ePVR2DStatus = PVR2DMemFree(texture_priv->hPVR2DContext, pDstMeminfo);
+ if (ePVR2DStatus != PVR2D_OK) {
+ psb__error_message("%s: PVR2DMemFree error %d\n", __FUNCTION__, ePVR2DStatus);
+ }
+#endif
+#endif
+}
+
+static void
+psb_setup_coeffs(struct psb_texture_s * pPriv)
+{
+ double yCoeff, uCoeff, vCoeff, Constant;
+ double fContrast;
+ double Y_offset, CbCr_offset, RGB_offset;
+ int bright_off = 0;
+ psb_transform_coeffs coeffs, transfer_matrix;
+ memset(&coeffs, 0, sizeof(psb_transform_coeffs));
+ memset(&transfer_matrix, 0, sizeof(psb_transform_coeffs));
+
+ /* Offsets in the input and output ranges are
+ * included in the constant of the transform equation
+ */
+ psb_select_transfermatrix(pPriv, &transfer_matrix,
+ &Y_offset, &CbCr_offset, &RGB_offset);
+
+ /*
+ * It is at this point we should adjust the parameters for the procamp:
+ * - Brightness is handled as an offset of the Y parameter.
+ * - Contrast is an adjustment of the Y scale.
+ * - Saturation is a scaling of the U anc V parameters.
+ * - Hue is a rotation of the U and V parameters.
+ */
+
+ bright_off = pPriv->brightness.Value;
+ fContrast = (pPriv->contrast.Value + 100) / 100.0;
+
+ /* Apply hue and saturation correction to transfer matrix */
+ psb_transform_sathuecoeffs(&coeffs,
+ &transfer_matrix,
+ pPriv->hue.Value * Degree,
+ pPriv->saturation.Value / 100.0);
+
+ /* Create coefficients to get component R
+ * (including brightness and contrast correction)
+ */
+ psb_create_coeffs(-1 * Y_offset, -1 * CbCr_offset, -1 * CbCr_offset,
+ RGB_offset, coeffs.rY, coeffs.rCb, coeffs.rCr,
+ bright_off, fContrast, &yCoeff, &uCoeff, &vCoeff,
+ &Constant);
+
+ /* Convert transform operation from floating point to fixed point */
+ psb_convert_coeffs(yCoeff, uCoeff, vCoeff, Constant, /* input coefficients */
+ &pPriv->coeffs.rY, &pPriv->coeffs.rU,
+ &pPriv->coeffs.rV, &pPriv->coeffs.rConst,
+ &pPriv->coeffs.rShift);
+
+ /* Create coefficients to get component G
+ * (including brightness and contrast correction)
+ */
+ psb_create_coeffs(-1 * Y_offset, -1 * CbCr_offset, -1 * CbCr_offset,
+ RGB_offset, coeffs.gY, coeffs.gCb, coeffs.gCr,
+ bright_off, fContrast, &yCoeff, &uCoeff, &vCoeff,
+ &Constant);
+
+ /* Convert transform operation from floating point to fixed point */
+ psb_convert_coeffs(yCoeff, uCoeff, vCoeff, Constant,
+ /* tranfer matrix coefficients for G */
+ &pPriv->coeffs.gY, &pPriv->coeffs.gU,
+ &pPriv->coeffs.gV, &pPriv->coeffs.gConst,
+ &pPriv->coeffs.gShift);
+
+ /* Create coefficients to get component B
+ * (including brightness and contrast correction)
+ */
+ psb_create_coeffs(-1 * Y_offset, -1 * CbCr_offset, -1 * CbCr_offset,
+ RGB_offset, coeffs.bY, coeffs.bCb, coeffs.bCr,
+ bright_off, fContrast, &yCoeff, &uCoeff, &vCoeff,
+ &Constant);
+
+ /* Convert transform operation from floating point to fixed point */
+ psb_convert_coeffs(yCoeff, uCoeff, vCoeff, Constant,
+ /* tranfer matrix coefficients for B */
+ &pPriv->coeffs.bY, &pPriv->coeffs.bU,
+ &pPriv->coeffs.bV, &pPriv->coeffs.bConst,
+ &pPriv->coeffs.bShift);
+}
+
+/*
+ These are the corresponding matrices when using NominalRange_16_235
+ for the input surface and NominalRange_0_255 for the outpur surface:
+
+ static const psb_transform_coeffs s601 = {
+ 1.164, 0, 1.596,
+ 1.164, -0.391, -0.813,
+ 1.164, 2.018, 0
+ };
+
+ static const psb_transform_coeffs s709 = {
+ 1.164, 0, 1.793,
+ 1.164, -0.213, -0.534,
+ 1.164, 2.115, 0
+ };
+
+ static const psb_transform_coeffs s240M = {
+ 1.164, -0.0007, 1.793,
+ 1.164, -0.257, -0.542,
+ 1.164, 2.078, 0.0004
+ };
+*/
+
+/**
+ * Select which transfer matrix to use in the YUV->RGB conversion.
+ */
+static void
+psb_select_transfermatrix(struct psb_texture_s * pPriv,
+ psb_transform_coeffs * transfer_matrix,
+ double *Y_offset, double *CbCr_offset,
+ double *RGB_offset)
+{
+ double RGB_scale, Y_scale, Cb_scale, Cr_scale;
+
+ /*
+ * Depending on the nominal ranges of the input YUV surface and the output RGB
+ * surface, it might be needed to perform some scaling on the transfer matrix.
+ * The excursion in the YUV values implies that the first column of the matrix
+ * must be divided by the Y excursion, and the second and third columns be
+ * divided by the U and V excursions respectively. The offset does not affect
+ * the values of the matrix.
+ * The excursion in the RGB values implies that all the values in the transfer
+ * matrix must be multiplied by the value of the excursion.
+ *
+ * Example: Conversion of the SMPTE 240M transfer matrix.
+ *
+ * Conversion from [Y', Pb, Pr] to [R', G', B'] in the range of [0, 1]. Y' is in
+ * the range of [0, 1] and Pb and Pr in the range of [-0.5, 0.5].
+ *
+ * R' 1 -0.000657 1.575848 Y'
+ * G' = 1 -0.226418 -0.476529 * Pb
+ * B' 1 1.825958 0.000378 Pr
+ *
+ * Conversion from [Y', Cb, Cr] to {R', G', B'] in the range of [0, 1]. Y' has an
+ * excursion of 219 and an offset of +16, and CB and CR have excursions of +/-112
+ * and offset of +128, for a range of 16 through 240 inclusive.
+ *
+ * R' 1/219 -0.000657/224 1.575848/224 Y' 16
+ * G' = 1/219 -0.226418/224 -0.476529/224 * Cb - 128
+ * B' 1/219 1.825958/224 0.000378/224 Cr 128
+ *
+ * Conversion from [Y', Cb, Cr] to R'G'B' in the range [0, 255].
+ *
+ * R' 1/219 -0.000657/224 1.575848/224 Y' 16
+ * G' = 255 * 1/219 -0.226418/224 -0.476529/224 * Cb - 128
+ * B' 1/219 1.825958/224 0.000378/224 Cr 128
+ */
+
+ switch (pPriv->src_nominalrange) {
+ case PSB_NominalRange_0_255:
+ /* Y has a range of [0, 255], U and V have a range of [0, 255] */
+ {
+ double tmp = 0.0;
+
+ (void)tmp;
+ } /* workaroud for float point bug? */
+ Y_scale = 255.0;
+ *Y_offset = 0;
+ Cb_scale = Cr_scale = 255;
+ *CbCr_offset = 128;
+ break;
+ case PSB_NominalRange_16_235:
+ case PSB_NominalRange_Unknown:
+ /* Y has a range of [16, 235] and Cb, Cr have a range of [16, 240] */
+ Y_scale = 219;
+ *Y_offset = 16;
+ Cb_scale = Cr_scale = 224;
+ *CbCr_offset = 128;
+ break;
+ case PSB_NominalRange_48_208:
+ /* Y has a range of [48, 208] and Cb, Cr have a range of [48, 208] */
+ Y_scale = 160;
+ *Y_offset = 48;
+ Cb_scale = Cr_scale = 160;
+ *CbCr_offset = 128;
+ break;
+
+ default:
+ /* Y has a range of [0, 1], U and V have a range of [-0.5, 0.5] */
+ Y_scale = 1;
+ *Y_offset = 0;
+ Cb_scale = Cr_scale = 1;
+ *CbCr_offset = 0;
+ break;
+ }
+
+ /*
+ * 8-bit computer RGB, also known as sRGB or "full-scale" RGB, and studio
+ * video RGB, or "RGB with head-room and toe-room." These are defined as follows:
+ *
+ * - Computer RGB uses 8 bits for each sample of red, green, and blue. Black
+ * is represented by R = G = B = 0, and white is represented by R = G = B = 255.
+ * - Studio video RGB uses some number of bits N for each sample of red, green,
+ * and blue, where N is 8 or more. Studio video RGB uses a different scaling
+ * factor than computer RGB, and it has an offset. Black is represented by
+ * R = G = B = 16*2^(N-8), and white is represented by R = G = B = 235*2^(N-8).
+ * However, actual values may fall outside this range.
+ */
+ switch (pPriv->dst_nominalrange) {
+ case PSB_NominalRange_0_255: // for sRGB
+ case PSB_NominalRange_Unknown:
+ /* R, G and B have a range of [0, 255] */
+ RGB_scale = 255;
+ *RGB_offset = 0;
+ break;
+ case PSB_NominalRange_16_235: // for stRGB
+ /* R, G and B have a range of [16, 235] */
+ RGB_scale = 219;
+ *RGB_offset = 16;
+ break;
+ case PSB_NominalRange_48_208: // for Bt.1361 RGB
+ /* R, G and B have a range of [48, 208] */
+ RGB_scale = 160;
+ *RGB_offset = 48;
+ break;
+ default:
+ /* R, G and B have a range of [0, 1] */
+ RGB_scale = 1;
+ *RGB_offset = 0;
+ break;
+ }
+
+ switch (pPriv->video_transfermatrix) {
+ case PSB_VideoTransferMatrix_BT709:
+ memcpy(transfer_matrix, &s709, sizeof(psb_transform_coeffs));
+ break;
+ case PSB_VideoTransferMatrix_BT601:
+ memcpy(transfer_matrix, &s601, sizeof(psb_transform_coeffs));
+ break;
+ case PSB_VideoTransferMatrix_SMPTE240M:
+ memcpy(transfer_matrix, &s240M, sizeof(psb_transform_coeffs));
+ break;
+ case PSB_VideoTransferMatrix_Unknown:
+ /*
+ * Specifies that the video transfer matrix is not specified.
+ * The default value is BT601 for standard definition (SD) video and BT709
+ * for high definition (HD) video.
+ */
+ if (1 /*pPriv->sVideoDesc.SampleWidth < 720 */) { /* TODO, width selection */
+ memcpy(transfer_matrix, &s601, sizeof(psb_transform_coeffs));
+ } else {
+ memcpy(transfer_matrix, &s709, sizeof(psb_transform_coeffs));
+ }
+ break;
+ default:
+ break;
+ }
+
+ if (Y_scale != 1 || Cb_scale != 1 || Cr_scale != 1) {
+ /* Each column of the transfer matrix has to
+ * be scaled by the excursion of each component
+ */
+ psb_scale_transfermatrix(transfer_matrix, 1 / Y_scale, 1 / Cb_scale,
+ 1 / Cr_scale);
+ }
+ if (RGB_scale != 1) {
+ /* All the values in the transfer matrix have to be multiplied
+ * by the excursion of the RGB components
+ */
+ psb_scale_transfermatrix(transfer_matrix, RGB_scale, RGB_scale,
+ RGB_scale);
+ }
+}
+
+static void
+psb_scale_transfermatrix(psb_transform_coeffs * transfer_matrix,
+ double YColumScale, double CbColumScale,
+ double CrColumnScale)
+{
+ /* First column of the transfer matrix */
+ transfer_matrix->rY *= YColumScale;
+ transfer_matrix->gY *= YColumScale;
+ transfer_matrix->bY *= YColumScale;
+
+ /* Second column of the transfer matrix */
+ transfer_matrix->rCb *= CbColumScale;
+ transfer_matrix->gCb *= CbColumScale;
+ transfer_matrix->bCb *= CbColumScale;
+
+ /* Third column of the transfer matrix */
+ transfer_matrix->rCr *= CrColumnScale;
+ transfer_matrix->gCr *= CrColumnScale;
+ transfer_matrix->bCr *= CrColumnScale;
+}
+
+/*
+ * Calculates the coefficintes of a YUV->RGB conversion based on
+ * the provided basis coefficients (already had HUe and Satu applied).
+ * Performs brightness and contrast adjustment as well as the required
+ * offsets to put into correct range for hardware conversion.
+ */
+static void
+psb_create_coeffs(double yOff, double uOff, double vOff, double rgbOff,
+ double yScale, double uScale, double vScale,
+ double brightness, double contrast,
+ double *pYCoeff, double *pUCoeff, double *pVCoeff,
+ double *pConstant)
+{
+ *pYCoeff = yScale * contrast;
+ *pUCoeff = uScale * contrast;
+ *pVCoeff = vScale * contrast;
+
+ *pConstant = (((yOff + brightness) * yScale)
+ + (uOff * uScale) + (vOff * vScale)) * contrast + rgbOff;
+}
+
+/*
+ * Converts a floating point function in the form
+ * a*yCoeff + b*uCoeff + c * vCoeff + d
+ * Into a fixed point function of the forrm
+ * (a*pY + b * pU + c * pV + constant)>>pShift
+ */
+static void
+psb_convert_coeffs(double Ycoeff, double Ucoeff, double Vcoeff,
+ double ConstantTerm, signed char *pY, signed char *pU,
+ signed char *pV, signed short *constant,
+ unsigned char *pShift)
+{
+ *pShift = 0;
+
+ Ycoeff *= 256;
+ Ucoeff *= 256;
+ Vcoeff *= 256;
+ ConstantTerm *= 256;
+ *pShift = 8;
+
+ /*
+ * What we want to do is scale up the coefficients so that they just fit into their
+ * allowed bits, so we are using signed maths giving us coefficients can be between +-128.
+ * The constant can be between =- 32767.
+ * The divide can be between 0 and 256 (on powers of two only).
+ * A mathematical approach would be nice, but for simplicity do an iterative compare
+ * and divide. Until something fits.
+ */
+ while (psb_check_coeffs(Ycoeff, Ucoeff, Vcoeff, ConstantTerm, *pShift)) {
+ Ycoeff /= 2;
+ Ucoeff /= 2;
+ Vcoeff /= 2;
+ ConstantTerm /= 2;
+ (*pShift)--;
+ }
+ *pY = (signed char)(Ycoeff + 0.5);
+ *pU = (signed char)(Ucoeff + 0.5);
+ *pV = (signed char)(Vcoeff + 0.5);
+ *constant = (signed short)(ConstantTerm + 0.5);
+}
+
+/**
+ * Checks if the specified coefficients are within the ranges required
+ * and returns true if they are else false.
+ */
+static int
+psb_check_coeffs(double Ycoeff, double Ucoeff, double Vcoeff,
+ double ConstantTerm, signed char byShift)
+{
+ if ((Ycoeff > 127) || (Ycoeff < -128)) {
+ return 1;
+ }
+ if ((Ucoeff > 127) || (Ucoeff < -128)) {
+ return 1;
+ }
+ if ((Vcoeff > 127) || (Vcoeff < -128)) {
+ return 1;
+ }
+ if ((ConstantTerm > 32766) || (ConstantTerm < -32767)) {
+ return 1;
+ }
+ return 0;
+}
+
+static void
+psb_transform_sathuecoeffs(psb_transform_coeffs * dest,
+ const psb_transform_coeffs * const source,
+ double fHue, double fSat)
+{
+ double fHueSatSin, fHueSatCos;
+
+ fHueSatSin = sin(fHue) * fSat;
+ fHueSatCos = cos(fHue) * fSat;
+
+ dest->rY = source->rY;
+ dest->rCb = source->rCb * fHueSatCos - source->rCr * fHueSatSin;
+ dest->rCr = source->rCr * fHueSatCos + source->rCb * fHueSatSin;
+
+ dest->gY = source->gY;
+ dest->gCb = source->gCb * fHueSatCos - source->gCr * fHueSatSin;
+ dest->gCr = source->gCr * fHueSatCos + source->gCb * fHueSatSin;
+
+ dest->bY = source->bY;
+ dest->bCb = source->bCb * fHueSatCos - source->bCr * fHueSatSin;
+ dest->bCr = source->bCr * fHueSatCos + source->bCb * fHueSatSin;
+}
+
diff --git a/src/psb_texture.h b/src/psb_texture.h
new file mode 100644
index 0000000..76d7b18
--- /dev/null
+++ b/src/psb_texture.h
@@ -0,0 +1,159 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ * Binglin Chen <binglin.chen@intel.com>
+ * Zhaohan Ren <zhaohan.ren@intel.com>
+ * Shengquan Yuan <shengquan.yuan@intel.com>
+ *
+ */
+
+#ifndef PSB_TEXTURE_H_
+# define PSB_TEXTURE_H_
+
+#include "pvr2d.h"
+#include <img_types.h>
+
+#define DRI2_BACK_BUFFER_EXPORT_TYPE_BUFFERS 1
+#define DRI2_BACK_BUFFER_EXPORT_TYPE_SWAPCHAIN 2
+
+#define DRI2_FLIP_BUFFERS_NUM 2
+#define DRI2_BLIT_BUFFERS_NUM 2
+#define DRI2_MAX_BUFFERS_NUM MAX( DRI2_FLIP_BUFFERS_NUM, DRI2_BLIT_BUFFERS_NUM )
+#define VIDEO_BUFFER_NUM 20
+
+typedef struct _psb_coeffs_ {
+ signed char rY;
+ signed char rU;
+ signed char rV;
+ signed char gY;
+ signed char gU;
+ signed char gV;
+ signed char bY;
+ signed char bU;
+ signed char bV;
+ unsigned char rShift;
+ unsigned char gShift;
+ unsigned char bShift;
+ signed short rConst;
+ signed short gConst;
+ signed short bConst;
+} psb_coeffs_s, *psb_coeffs_p;
+
+typedef struct _sgx_psb_fixed32 {
+ union {
+ struct {
+ unsigned short Fraction;
+ short Value;
+ };
+ long ll;
+ };
+} sgx_psb_fixed32;
+
+typedef struct _PVRDRI2BackBuffersExport_ {
+ IMG_UINT32 ui32Type;
+ //pixmap handles
+ PVR2D_HANDLE hBuffers[3];
+
+ IMG_UINT32 ui32BuffersCount;
+ IMG_UINT32 ui32SwapChainID;
+} PVRDRI2BackBuffersExport;
+
+struct psb_texture_s {
+ void *hPVR2DContext;
+
+ struct _WsbmBufferObject *vaSrf;
+
+ unsigned int video_transfermatrix;
+ unsigned int src_nominalrange;
+ unsigned int dst_nominalrange;
+
+ uint32_t gamma0;
+ uint32_t gamma1;
+ uint32_t gamma2;
+ uint32_t gamma3;
+ uint32_t gamma4;
+ uint32_t gamma5;
+
+ sgx_psb_fixed32 brightness;
+ sgx_psb_fixed32 contrast;
+ sgx_psb_fixed32 saturation;
+ sgx_psb_fixed32 hue;
+
+ psb_coeffs_s coeffs;
+ PVR2DMEMINFO *pal_meminfo[6];
+ uint32_t wrapped_surface_id[VIDEO_BUFFER_NUM];
+ uint32_t wrapped_subpic_id[VIDEO_BUFFER_NUM];
+ PVR2DMEMINFO *videoBuf[VIDEO_BUFFER_NUM];
+ PVR2DMEMINFO *subpicBuf[VIDEO_BUFFER_NUM];
+#ifndef ANDROID
+ uint32_t update_coeffs;
+ PVRDRI2BackBuffersExport dri2_bb_export;
+ PVRDRI2BackBuffersExport extend_dri2_bb_export;
+ struct dri_drawable *extend_dri_drawable;
+ struct dri_drawable *dri_drawable;
+ uint32_t dri_init_flag;
+ uint32_t extend_dri_init_flag;
+ uint32_t adjust_window_flag;
+ uint32_t current_blt_buffer;
+
+ uint32_t extend_current_blt_buffer;
+ uint32_t destw_save;
+ uint32_t desth_save;
+ uint32_t drawable_update_flag; /* drawable resize or switch between window <==> pixmap */
+ uint32_t local_rotation_save;
+ uint32_t extend_rotation_save;
+
+ PVR2DMEMINFO *blt_meminfo_pixmap;
+ PVR2DMEMINFO *blt_meminfo[DRI2_BLIT_BUFFERS_NUM];
+ PVR2DMEMINFO *flip_meminfo[DRI2_FLIP_BUFFERS_NUM];
+ PVR2DMEMINFO *extend_blt_meminfo[DRI2_BLIT_BUFFERS_NUM];
+#endif
+};
+
+void psb_ctexture_init(VADriverContextP ctx);
+
+void psb_ctexture_deinit(VADriverContextP ctx);
+
+void blit_texture_to_buf(VADriverContextP ctx, unsigned char * data, int src_x, int src_y, int src_w,
+ int src_h, int dst_x, int dst_y, int dst_w, int dst_h,
+ int width, int height, int src_pitch, struct _WsbmBufferObject * src_buf,
+ unsigned int placement);
+#ifndef ANDROID
+void psb_putsurface_textureblit(
+ VADriverContextP ctx, PPVR2DMEMINFO pDstMeminfo, VASurfaceID surface, int src_x, int src_y, int src_w,
+ int src_h, int dst_x, int dst_y, int dst_w, int dst_h, unsigned int subtitle,
+ int width, int height,
+ int src_pitch, struct _WsbmBufferObject * src_buf,
+ unsigned int placement);
+#else
+void psb_putsurface_textureblit(
+ VADriverContextP ctx, unsigned char * data, VASurfaceID surface, int src_x, int src_y, int src_w,
+ int src_h, int dst_x, int dst_y, int dst_w, int dst_h,
+ int width, int height,
+ int src_pitch, struct _WsbmBufferObject * src_buf,
+ unsigned int placement);
+#endif
+
+#endif /* !PSB_TEXTURE_H_ */
diff --git a/src/psb_ws_driver.c b/src/psb_ws_driver.c
new file mode 100644
index 0000000..0a1ed21
--- /dev/null
+++ b/src/psb_ws_driver.c
@@ -0,0 +1,102 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ * Binglin Chen <binglin.chen@intel.com>
+ *
+ */
+
+#include "psb_def.h"
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <linux/types.h>
+#include <stdlib.h>
+#include <string.h>
+#include "psb_ws_driver.h"
+
+static struct _ValidateNode *
+psb_alloc(struct _WsbmVNodeFuncs *func, int type_id) {
+ if (type_id == 0) {
+ struct _PsbDrmValidateNode *vNode = malloc(sizeof(*vNode));
+
+ if (vNode == NULL) return NULL;
+
+ vNode->base.func = func;
+ vNode->base.type_id = 0;
+ return &vNode->base;
+ } else {
+ struct _ValidateNode *node = malloc(sizeof(*node));
+
+ if (node == NULL) return NULL;
+
+ node->func = func;
+ node->type_id = 1;
+ return node;
+ }
+}
+
+/*
+ * Free an allocated validate list node.
+ */
+
+static void
+psb_free(struct _ValidateNode *node)
+{
+ if (node->type_id == 0)
+ free(containerOf(node, struct _PsbDrmValidateNode, base));
+
+ else
+ free(node);
+}
+
+/*
+ * Clear the private part of the validate list node. This happens when
+ * the list node is newly allocated or is being reused. Since we only have
+ * a private part when node->type_id == 0 we only care to clear in that
+ * case. We want to clear the drm ioctl argument.
+ */
+
+static void
+psb_clear(struct _ValidateNode *node)
+{
+ if (node->type_id == 0) {
+ struct _PsbDrmValidateNode *vNode =
+ containerOf(node, struct _PsbDrmValidateNode, base);
+
+ memset(&vNode->val_arg.d.req, 0, sizeof(vNode->val_arg.d.req));
+ }
+}
+
+static struct _WsbmVNodeFuncs psbVNode = {
+ .alloc = psb_alloc,
+ .free = psb_free,
+ .clear = psb_clear,
+};
+
+struct _WsbmVNodeFuncs *
+psbVNodeFuncs(void) {
+ return &psbVNode;
+}
diff --git a/src/psb_ws_driver.h b/src/psb_ws_driver.h
new file mode 100644
index 0000000..343a23f
--- /dev/null
+++ b/src/psb_ws_driver.h
@@ -0,0 +1,52 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ *
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ * Binglin Chen <binglin.chen@intel.com>
+ *
+ */
+
+#ifndef _PSB_WS_DRIVER_H_
+#define _PSB_WS_DRIVER_H_
+
+#include <linux/types.h>
+#include <wsbm/wsbm_util.h>
+#include <wsbm/wsbm_driver.h>
+#include "psb_drm.h"
+
+struct _PsbDrmValidateNode {
+ struct _ValidateNode base;
+ struct psb_validate_arg val_arg;
+};
+
+extern struct _WsbmVNodeFuncs *psbVNodeFuncs(void);
+
+static inline struct psb_validate_req *
+psbValReq(struct _ValidateNode *node) {
+ return &(containerOf(node, struct _PsbDrmValidateNode, base)->
+ val_arg.d.req);
+}
+
+
+#endif /* _PSB_WS_DRIVER_H_ */
diff --git a/src/pvr2d.h b/src/pvr2d.h
new file mode 100644
index 0000000..5fe95b1
--- /dev/null
+++ b/src/pvr2d.h
@@ -0,0 +1,726 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+#ifndef _PVR2D_H_
+#define _PVR2D_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+ /* PVR2D Platform-specific definitions */
+#if defined (__linux__)
+#define PVR2D_EXPORT __attribute__((visibility("default")))
+#define PVR2D_IMPORT
+#else
+#define PVR2D_EXPORT
+#define PVR2D_IMPORT
+#endif
+
+ /* PVR2D header revision */
+#define PVR2D_REV_MAJOR 3
+#define PVR2D_REV_MINOR 5
+
+ /* Basic types */
+ typedef enum {
+ PVR2D_FALSE = 0,
+ PVR2D_TRUE
+ }
+ PVR2D_BOOL;
+
+ typedef void* PVR2D_HANDLE;
+
+ typedef char PVR2D_CHAR, *PVR2D_PCHAR;
+ typedef unsigned char PVR2D_UCHAR, *PVR2D_PUCHAR;
+ typedef int PVR2D_INT, *PVR2D_PINT;
+ typedef unsigned int PVR2D_UINT, *PVR2D_PUINT;
+ typedef long PVR2D_LONG, *PVR2D_PLONG;
+ typedef unsigned long PVR2D_ULONG, *PVR2D_PULONG;
+
+ typedef void PVR2D_VOID, *PVR2D_PVOID;
+
+
+ /* error codes */
+ typedef enum {
+ PVR2D_OK = 0,
+ PVR2DERROR_INVALID_PARAMETER = -1,
+ PVR2DERROR_DEVICE_UNAVAILABLE = -2,
+ PVR2DERROR_INVALID_CONTEXT = -3,
+ PVR2DERROR_MEMORY_UNAVAILABLE = -4,
+ PVR2DERROR_DEVICE_NOT_PRESENT = -5,
+ PVR2DERROR_IOCTL_ERROR = -6,
+ PVR2DERROR_GENERIC_ERROR = -7,
+ PVR2DERROR_BLT_NOTCOMPLETE = -8,
+ PVR2DERROR_HW_FEATURE_NOT_SUPPORTED = -9,
+ PVR2DERROR_NOT_YET_IMPLEMENTED = -10,
+ PVR2DERROR_MAPPING_FAILED = -11
+ } PVR2DERROR;
+
+ /* 32 bit PVR2D pixel format specifier */
+ typedef unsigned long PVR2DFORMAT;
+
+ /* Standard PVR2D pixel formats */
+#define PVR2D_1BPP 0x00UL // 1bpp mask surface or palletized 1 bit source with 2x32 bit CLUT
+#define PVR2D_RGB565 0x01UL // Common rgb 565 format
+#define PVR2D_ARGB4444 0x02UL // Common argb 4444 format
+#define PVR2D_RGB888 0x03UL // Common rgb 888 format (not supported)
+#define PVR2D_ARGB8888 0x04UL // Common argb 8888 format
+#define PVR2D_ARGB1555 0x05UL // Common argb 1555 format
+#define PVR2D_ALPHA8 0x06UL // Alpha-only 8 bit per pixel (used with a constant fill colour)
+#define PVR2D_ALPHA4 0x07UL // Alpha-only 4 bits per pixel (used with a constant fill colour)
+#define PVR2D_PAL2 0x08UL // Palletized 2 bit format (requires 4x32 bit CLUT)
+#define PVR2D_PAL4 0x09UL // Palletized 4 bit format (requires 16x32 bit CLUT)
+#define PVR2D_PAL8 0x0AUL // Palletized 8 bit format (requires 256x32 bit CLUT)
+#define PVR2D_U8 0x10UL // monochrome unsigned 8 bit
+#define PVR2D_U88 0x11UL // monochrome unsigned 16 bit
+#define PVR2D_S8 0x12UL // signed 8 bit
+#define PVR2D_YUV422_YUYV 0x13UL // YUV 422 low-high byte order Y0UY1V
+#define PVR2D_YUV422_UYVY 0x14UL // YUV 422 low-high byte order UY0VY1
+#define PVR2D_YUV422_YVYU 0x15UL // YUV 422 low-high byte order Y0VY1U
+#define PVR2D_YUV422_VYUY 0x16UL // YUV 422 low-high byte order VY0UY1
+#define PVR2D_YUV420_2PLANE 0x17UL // YUV420 2 Plane
+#define PVR2D_YUV420_3PLANE 0x18UL // YUV420 3 Plane
+#define PVR2D_2101010ARGB 0x19UL // 32 bit 2 10 10 10
+#define PVR2D_888RSGSBS 0x1AUL
+#define PVR2D_16BPP_RAW 0x1BUL // 16 bit raw (no format conversion)
+#define PVR2D_32BPP_RAW 0x1CUL // 32 bit raw
+#define PVR2D_64BPP_RAW 0x1DUL // 64 bit raw
+#define PVR2D_128BPP_RAW 0x1EUL // 128 bit raw
+#define PVR2D_RGBA8888 0x1FUL // Common rgba 888 format
+#define PVR2D_NV12_U8V8 0x20UL // NV12 Plane U8V8
+
+#define PVR2D_NO_OF_FORMATS 0x21UL
+
+ /* Format modifier bit field (DstFormat and SrcFormat bits 16..23) */
+#define PVR2D_FORMAT_MASK 0x0000FFFFUL // PVR2D Format bits
+#define PVR2D_FORMAT_LAYOUT_MASK 0x000F0000UL // Format layout (strided / twiddled / tiled)
+#define PVR2D_FORMAT_FLAGS_MASK 0x0FF00000UL // Surface Flags mask
+
+ /* Layout */
+#define PVR2D_FORMAT_LAYOUT_SHIFT 16
+#define PVR2D_FORMAT_LAYOUT_STRIDED 0x00000000UL
+#define PVR2D_FORMAT_LAYOUT_TILED 0x00010000UL
+#define PVR2D_FORMAT_LAYOUT_TWIDDLED 0x00020000UL
+
+ /*
+ PVR2D_SURFACE_PDUMP
+ This flag requests a surface pdump, to capture the pixel state after host writes.
+ Not needed if the surface state has resulted from previous SGX 2D/3D core writes.
+ */
+#define PVR2D_SURFACE_PDUMP 0x00100000UL // calls PVRSRVPDumpMem to capture the surface (pdump builds only)
+
+ /*
+ Low level 3D format extension - for blts via the 3D core only.
+ If the top bit of the format field is set then PVR2D reads it as a PVRSRV_PIXEL_FORMAT.
+ The outcome is hardware dependant.
+ There is no guarantee that any specific PVRSRV format will be supported.
+ */
+#define PVR2D_FORMAT_PVRSRV 0x80000000
+
+ /* wrap surface type */
+ typedef enum {
+ PVR2D_WRAPFLAG_NONCONTIGUOUS = 0,
+ PVR2D_WRAPFLAG_CONTIGUOUS = 1,
+
+ } PVR2DWRAPFLAGS;
+
+#define PVR2D_CONTEXT_FLAGS_PRIORITY_MASK 0x00000003
+
+#define PVR2D_CONTEXT_FLAGS_LOW_PRIORITY_CONTEXT 1
+#define PVR2D_CONTEXT_FLAGS_NORMAL_PRIORITY_CONTEXT 0
+#define PVR2D_CONTEXT_FLAGS_HIGH_PRIORITY_CONTEXT 2
+
+ /* flags for control information of additional blits */
+ typedef enum {
+ PVR2D_BLIT_DISABLE_ALL = 0x00000000, /* disable all additional controls */
+ PVR2D_BLIT_CK_ENABLE = 0x00000001, /* enable colour key */
+ PVR2D_BLIT_GLOBAL_ALPHA_ENABLE = 0x00000002, /* enable standard global alpha */
+ PVR2D_BLIT_PERPIXEL_ALPHABLEND_ENABLE = 0x00000004, /* enable per-pixel alpha bleding */
+ PVR2D_BLIT_PAT_SURFACE_ENABLE = 0x00000008, /* enable pattern surf (disable fill) */
+ PVR2D_BLIT_FULLY_SPECIFIED_ALPHA_ENABLE = 0x00000010, /* enable fully specified alpha */
+ PVR2D_BLIT_ROT_90 = 0x00000020, /* apply 90 degree rotation to the blt */
+ PVR2D_BLIT_ROT_180 = 0x00000040, /* apply 180 degree rotation to the blt */
+ PVR2D_BLIT_ROT_270 = 0x00000080, /* apply 270 degree rotation to the blt */
+ PVR2D_BLIT_COPYORDER_TL2BR = 0x00000100, /* copy order overrides */
+ PVR2D_BLIT_COPYORDER_BR2TL = 0x00000200,
+ PVR2D_BLIT_COPYORDER_TR2BL = 0x00000400,
+ PVR2D_BLIT_COPYORDER_BL2TR = 0x00000800,
+ PVR2D_BLIT_COLKEY_SOURCE = 0x00001000, /* Key colour is on the source surface */
+ PVR2D_BLIT_COLKEY_DEST = 0x00002000, /* Key colour is on the destination surface */
+ PVR2D_BLIT_COLKEY_MASKED = 0x00004000, /* Mask enabled for colour key */
+ PVR2D_BLIT_COLKEY_OP_PASS = 0x00008000, /* Colour key op = pass */
+ PVR2D_BLIT_COLKEY_OP_REJECT = 0x00010000, /* Colour key op = reject */
+ PVR2D_BLIT_PATH_2DCORE = 0x00100000, /* Blt via dedicated 2D Core or PTLA */
+ PVR2D_BLIT_PATH_3DCORE = 0x00200000, /* Blt via 3D Core */
+ PVR2D_BLIT_PATH_SWBLT = 0x00400000, /* Blt via host software */
+ PVR2D_BLIT_NO_SRC_SYNC_INFO = 0x00800000, /* Dont send a source sync info*/
+ PVR2D_BLIT_ISSUE_STATUS_UPDATES = 0x01000000, /* Issue status updates */
+ PVR2D_BLIT_FORCE_ALPHA_FF = 0x02000000, /* set the alpha channel to 0xFF */
+
+ } PVR2DBLITFLAGS;
+
+ /* standard alpha-blending functions, AlphaBlendingFunc field of PVR2DBLTINFO */
+ typedef enum {
+ PVR2D_ALPHA_OP_SRC_DSTINV = 1, /* source alpha : Cdst = Csrc*Asrc + Cdst*(1-Asrc) */
+ PVR2D_ALPHA_OP_SRCP_DSTINV = 2 /* premultiplied source alpha : Cdst = Csrc + Cdst*(1-Asrc) */
+ } PVR2D_ALPHABLENDFUNC;
+
+ /* blend ops for fully specified alpha (SGX 2D Core only) */
+ typedef enum {
+ PVR2D_BLEND_OP_ZERO = 0,
+ PVR2D_BLEND_OP_ONE = 1,
+ PVR2D_BLEND_OP_SRC = 2,
+ PVR2D_BLEND_OP_DST = 3,
+ PVR2D_BLEND_OP_GLOBAL = 4,
+ PVR2D_BLEND_OP_SRC_PLUS_GLOBAL = 5,
+ PVR2D_BLEND_OP_DST_PLUS_GLOBAL = 6
+ } PVR2D_BLEND_OP;
+
+ /* SGX 2D Core Fully specified alpha blend : pAlpha field of PVR2DBLTINFO structure */
+ /* a fully specified Alpha Blend operation is defined as */
+ /* DST (ALPHA) = (ALPHA_1 * SRC (ALPHA)) + (ALPHA_3 * DST (ALPHA)) */
+ /* DST (RGB) = (ALPHA_2 * SRC (RGB)) + (ALPHA_4 * DST (RGB)) */
+ /* if the pre-multiplication stage is enabled then the equations become the following: */
+ /* PRE_MUL = ((SRC(A)) * (Global Alpha Value)) */
+ /* DST (ALPHA) = (ALPHA_1 * SRC (ALPHA)) + (PRE_MUL * DST (ALPHA)) */
+ /* DST (RGB) = (ALPHA_2 * SRC (RGB)) + (PRE_MUL * DST (RGB)) */
+ /* if the transparent source alpha stage is enabled then a source alpha of zero forces the */
+ /* source to be transparent for that pixel regardless of the blend equation being used. */
+ typedef struct _PVR2D_ALPHABLT {
+ PVR2D_BLEND_OP eAlpha1;
+ PVR2D_BOOL bAlpha1Invert;
+ PVR2D_BLEND_OP eAlpha2;
+ PVR2D_BOOL bAlpha2Invert;
+ PVR2D_BLEND_OP eAlpha3;
+ PVR2D_BOOL bAlpha3Invert;
+ PVR2D_BLEND_OP eAlpha4;
+ PVR2D_BOOL bAlpha4Invert;
+ PVR2D_BOOL bPremulAlpha; /* enable pre-multiplication stage */
+ PVR2D_BOOL bTransAlpha; /* enable transparent source alpha stage */
+ PVR2D_BOOL bUpdateAlphaLookup; /* enable and update the 1555-Lookup alpha table */
+ PVR2D_UCHAR uAlphaLookup0; /* 8 bit alpha when A=0 in a 1555-Lookup surface */
+ PVR2D_UCHAR uAlphaLookup1; /* 8 bit alpha when A=1 in a 1555-Lookup surface */
+ PVR2D_UCHAR uGlobalRGB; /* Global Alpha Value for RGB, 0=transparent 255=opaque */
+ PVR2D_UCHAR uGlobalA; /* Global Alpha Value for Alpha */
+
+ } PVR2D_ALPHABLT, *PPVR2D_ALPHABLT;
+
+
+ /* surface memory info structure */
+ typedef struct _PVR2DMEMINFO {
+ PVR2D_VOID *pBase;
+ PVR2D_ULONG ui32MemSize;
+ PVR2D_ULONG ui32DevAddr;
+ PVR2D_ULONG ulFlags;
+ PVR2D_VOID *hPrivateData;
+ PVR2D_VOID *hPrivateMapData;
+
+ } PVR2DMEMINFO, *PPVR2DMEMINFO;
+
+
+#define PVR2D_MAX_DEVICE_NAME 20
+
+ typedef struct _PVR2DDEVICEINFO {
+ PVR2D_ULONG ulDevID;
+ PVR2D_CHAR szDeviceName[PVR2D_MAX_DEVICE_NAME];
+ } PVR2DDEVICEINFO;
+
+
+ typedef struct _PVR2DISPLAYINFO {
+ PVR2D_ULONG ulMaxFlipChains;
+ PVR2D_ULONG ulMaxBuffersInChain;
+ PVR2DFORMAT eFormat;
+ PVR2D_ULONG ulWidth;
+ PVR2D_ULONG ulHeight;
+ PVR2D_LONG lStride;
+ PVR2D_ULONG ulMinFlipInterval;
+ PVR2D_ULONG ulMaxFlipInterval;
+
+ } PVR2DDISPLAYINFO;
+
+
+ typedef struct _PVR2MISCDISPLAYINFO {
+ PVR2D_ULONG ulPhysicalWidthmm;
+ PVR2D_ULONG ulPhysicalHeightmm;
+ PVR2D_ULONG ulUnused[10];
+
+ } PVR2DMISCDISPLAYINFO;
+
+ typedef struct _PVR2D_YUVPLANE {
+ PPVR2DMEMINFO pMem;
+ PVR2D_ULONG MemOffset;
+ PVR2D_LONG XStart, YStart;
+
+ } PVR2D_YUVPLANE, *PPVR2D_YUVPLANE;
+
+ /* these are the coefficients to be used in the FIRH instruction */
+ typedef struct _PVR2D_YUVCOEFFS {
+ PVR2D_CHAR rY;
+ PVR2D_CHAR rU;
+ PVR2D_CHAR rV;
+ PVR2D_CHAR gY;
+ PVR2D_CHAR gU;
+ PVR2D_CHAR gV;
+ PVR2D_CHAR bY;
+ PVR2D_CHAR bU;
+ PVR2D_CHAR bV;
+ PVR2D_UCHAR rShift;
+ PVR2D_UCHAR gShift;
+ PVR2D_UCHAR bShift;
+ signed short rConst;
+ signed short gConst;
+ signed short bConst;
+
+ } PVR2D_YUVCOEFFS, *PPVR2D_YUVCOEFFS;
+
+ typedef struct _PVR2D_AYUVsample8 {
+ PVR2D_UCHAR Cr;
+ PVR2D_UCHAR Cb;
+ PVR2D_UCHAR Y;
+ PVR2D_UCHAR Alpha;
+ } PVR2D_AYUVSample8;
+
+ typedef struct _PVR2DBLTINFO {
+ PVR2D_ULONG CopyCode; /* rop code */
+ PVR2D_ULONG Colour; /* fill colour */
+ PVR2D_ULONG ColourKey; /* colour key argb8888 (see CKEY_ defs below) */
+ PVR2D_UCHAR GlobalAlphaValue; /* global alpha blending */
+ PVR2D_UCHAR AlphaBlendingFunc; /* per-pixel alpha-blending function */
+
+ PVR2DBLITFLAGS BlitFlags; /* additional blit control information */
+
+ PVR2DMEMINFO *pDstMemInfo; /* destination memory */
+ PVR2D_ULONG DstOffset; /* byte offset from start of allocation to destination surface pixel 0,0 */
+ PVR2D_LONG DstStride; /* signed stride, the number of bytes from pixel 0,0 to 0,1 */
+ PVR2D_LONG DstX, DstY; /* pixel offset from start of dest surface to start of blt rectangle */
+ PVR2D_LONG DSizeX, DSizeY; /* blt size */
+ PVR2DFORMAT DstFormat; /* dest format */
+ PVR2D_ULONG DstSurfWidth; /* size of dest surface in pixels */
+ PVR2D_ULONG DstSurfHeight; /* size of dest surface in pixels */
+
+ PVR2DMEMINFO *pSrcMemInfo; /* source mem, (source fields are also used for patterns) */
+ PVR2D_ULONG SrcOffset; /* byte offset from start of allocation to src/pat surface pixel 0,0 */
+ PVR2D_LONG SrcStride; /* signed stride, the number of bytes from pixel 0,0 to 0,1 */
+ PVR2D_LONG SrcX, SrcY; /* pixel offset from start of surface to start of source rectangle */
+ /* for patterns this is the start offset within the pattern */
+ PVR2D_LONG SizeX, SizeY; /* source rectangle size or pattern size in pixels */
+ PVR2DFORMAT SrcFormat; /* source/pattern format */
+ PVR2DMEMINFO *pPalMemInfo; /* source/pattern palette memory containing argb8888 colour table */
+ PVR2D_ULONG PalOffset; /* byte offset from start of allocation to start of palette */
+ PVR2D_ULONG SrcSurfWidth; /* size of source surface in pixels */
+ PVR2D_ULONG SrcSurfHeight; /* size of source surface in pixels */
+
+ PVR2DMEMINFO *pMaskMemInfo; /* mask memory, 1bpp format implied */
+ PVR2D_ULONG MaskOffset; /* byte offset from start of allocation to mask surface pixel 0,0 */
+ PVR2D_LONG MaskStride; /* signed stride, the number of bytes from pixel 0,0 to 0,1 */
+ PVR2D_LONG MaskX, MaskY; /* mask rect top left (mask size = blt size) */
+ PVR2D_ULONG MaskSurfWidth; /* size of mask surface in pixels */
+ PVR2D_ULONG MaskSurfHeight; /* size of mask surface in pixels */
+
+ PPVR2D_ALPHABLT pAlpha; /* fully specified alpha blend (2DCore only) */
+
+ PVR2D_ULONG uSrcChromaPlane1; /* mem offset from start of source alloc to chroma plane 1 */
+ PVR2D_ULONG uSrcChromaPlane2; /* mem offset from start of source alloc to chroma plane 2 */
+ PVR2D_ULONG uDstChromaPlane1; /* mem offset from start of dest alloc to chroma plane 1 */
+ PVR2D_ULONG uDstChromaPlane2; /* mem offset from start of dest alloc to chroma plane 2 */
+
+ PVR2D_ULONG ColourKeyMask; /* 32 bit colour key mask, only valid when PVR2D_BLIT_COLKEY_MASKED is set */
+
+ } PVR2DBLTINFO, *PPVR2DBLTINFO;
+
+ typedef struct _PVR2DRECT {
+ PVR2D_LONG left, top;
+ PVR2D_LONG right, bottom;
+ } PVR2DRECT;
+
+ typedef struct {
+ PVR2DMEMINFO *pSurfMemInfo; /* surface memory */
+ PVR2D_ULONG SurfOffset; /* byte offset from start of allocation to destination surface pixel 0,0 */
+ PVR2D_LONG Stride; /* signed stride */
+ PVR2DFORMAT Format; /* format */
+ PVR2D_ULONG SurfWidth; /* surface width in pixels */
+ PVR2D_ULONG SurfHeight; /* surface height in pixels */
+
+ } PVR2D_SURFACE, *PPVR2D_SURFACE;
+
+ typedef struct {
+ PVR2D_ULONG uChromaPlane1; /* YUV multiplane - byte offset from start of alloc to chroma plane 1 */
+ PVR2D_ULONG uChromaPlane2; /* YUV multiplane - byte offset from start of alloc to chroma plane 2 */
+ PVR2D_LONG Reserved[2]; /* Reserved, must be zero */
+
+ } PVR2D_SURFACE_EXT, *PPVR2D_SURFACE_EXT;
+
+ typedef struct {
+ PVR2D_ULONG *pUseCode; /* USSE code */
+ PVR2D_ULONG UseCodeSize; /* usse code size in bytes */
+
+ } PVR2D_USECODE, *PPVR2D_USECODE;
+
+ typedef struct {
+ PVR2D_SURFACE sDst; /* destination surface */
+ PVR2D_SURFACE sSrc; /* source surface */
+ PVR2DRECT rcDest; /* destination rectangle */
+ PVR2DRECT rcSource; /* source rectangle */
+ PVR2D_HANDLE hUseCode; /* custom USE code (NULL implies source copy) */
+ PVR2D_ULONG UseParams[2]; /* per-blt params for use code */
+ PVR2D_UCHAR RotationValue; /* Rotation setting */
+ } PVR2D_3DBLT, *PPVR2D_3DBLT;
+
+ typedef struct {
+ PVR2D_SURFACE sDst; /* destination surface */
+ PVR2DRECT rcDest; /* destination rectangle; scaling is supported */
+ PVR2D_SURFACE sSrc; /* source surface */
+ PVR2DRECT rcSource; /* source rectangle; scaling is supported */
+ PPVR2D_SURFACE pSrc2; /* optional second source surface (NULL if not required) */
+ PVR2DRECT* prcSource2; /* optional pSrc2 rectangle */
+ PVR2D_HANDLE hUseCode; /* custom USSE shader code (NULL implies default source copy) */
+ PVR2D_ULONG UseParams[2]; /* per-blt params for usse code */
+ PVR2D_ULONG uiNumTemporaryRegisters; /* no. of temporary registers used in custom shader code */
+ PVR2D_BOOL bDisableDestInput; /* set true if the destination is output only */
+ PPVR2D_SURFACE_EXT pDstExt; /* Extended format params for dest */
+ PPVR2D_SURFACE_EXT pSrcExt[2]; /* Extended format params for source 1 and 2 */
+ PVR2D_LONG Reserved[4]; /* Reserved, must be zero */
+
+ } PVR2D_3DBLT_EXT, *PPVR2D_3DBLT_EXT;
+
+ typedef struct {
+ PVR2D_SURFACE sDst; /* destination surface */
+ PVR2D_SURFACE sSrc[3]; /* source surface */
+ PVR2DRECT rcDest; /* destination rectangle */
+ PVR2DRECT rcSource[3]; /* source rectangle */
+ PVR2D_UCHAR GlobalAlphaValue; /* global alpha blending */
+ PVR2D_UCHAR AlphaBlendingFunc; /* per-pixel alpha-blending function */
+ PVR2D_UCHAR bCoeffsGiven; /* passing custom coeffs to VPB */
+ PPVR2D_YUVCOEFFS psYUVCoeffs; /* YUV Coeffs needed for RGB conversion */
+ PVR2D_UINT uiNumLayers; /* no. of YUV planes */
+ PVR2D_UCHAR RotationValue; /* Rotation setting */
+ PVR2D_SURFACE sSrcSubpic[6]; /* subpic source surfaces */
+ PVR2DRECT rcSubpicSource[6]; /* source rectangle */
+ PVR2DRECT rcSubpicDest[6]; /* subpicture destination rectangle */
+ PPVR2DMEMINFO pPalMemInfo[6]; /* source/pattern palette memory containing argb8888 color table */
+ PVR2D_ULONG PalOffset[6]; /* byte offset from start of allocation to start of palette */
+ } PVR2D_VPBLT, *PPVR2D_VPBLT;
+
+ typedef struct {
+ PVR2D_SURFACE sDst; /* destination surface */
+ PVR2DRECT rcDest; /* destination rectangle */
+ PVR2DRECT rcSource; /* source rectangle */
+ PVR2D_UINT RotationValue; /* rotation angle 0/90/180/270 */
+ } PVR2D_WIDIBLT, *PPVR2D_WIDIBLT;
+
+#define MAKE_COPY_BLIT(src,soff,dest,doff,sx,sy,dx,dy,sz)
+
+ typedef void* PVR2DCONTEXTHANDLE;
+ typedef void* PVR2DFLIPCHAINHANDLE;
+
+
+// CopyCode field of PVR2DBLTINFO structure:
+// the CopyCode field of the PVR2DBLTINFO structure should contain a rop3 or rop4 code.
+// a rop3 is an 8 bit code that describes a blt with three inputs : source dest and pattern
+// rop4 is a 16 bit code that describes a blt with four inputs : source dest pattern and mask
+// common rop3 codes are defined below
+// a colour fill blt is processed in the pattern channel as a constant colour with a rop code of 0xF0
+// PVR2D_BLIT_PAT_SURFACE_ENABLE defines whether the pattern channel is a surface or a fill colour.
+// a rop4 is defined by two rop3 codes, and the 1 bit-per-pixel mask surface defines which is used.
+// a common rop4 is 0xAAF0 which is the mask copy blt used for text glyphs.
+// CopyCode is taken to be a rop4 when pMaskMemInfo is non zero, otherwise it is assumed to be a rop3
+// use the PVR2DMASKROP4 macro below to construct a rop4 from two rop3's
+// rop3a is the rop used when mask pixel = 1, and rop3b when mask = 0
+#define PVR2DROP4(rop3b, rop3a) ((rop3b<<8)|rop3a)
+
+ /* common rop codes */
+#define PVR2DROPclear 0x00 /* 0 (whiteness) */
+#define PVR2DROPset 0xFF /* 1 (blackness) */
+#define PVR2DROPnoop 0xAA /* dst (used for masked blts) */
+
+ /* source and dest rop codes */
+#define PVR2DROPand 0x88 /* src AND dst */
+#define PVR2DROPandReverse 0x44 /* src AND NOT dst */
+#define PVR2DROPcopy 0xCC /* src (used for source copy and alpha blts) */
+#define PVR2DROPandInverted 0x22 /* NOT src AND dst */
+#define PVR2DROPxor 0x66 /* src XOR dst */
+#define PVR2DROPor 0xEE /* src OR dst */
+#define PVR2DROPnor 0x11 /* NOT src AND NOT dst */
+#define PVR2DROPequiv 0x99 /* NOT src XOR dst */
+#define PVR2DROPinvert 0x55 /* NOT dst */
+#define PVR2DROPorReverse 0xDD /* src OR NOT dst */
+#define PVR2DROPcopyInverted 0x33 /* NOT src */
+#define PVR2DROPorInverted 0xBB /* NOT src OR dst */
+#define PVR2DROPnand 0x77 /* NOT src OR NOT dst */
+
+ /* pattern rop codes */
+#define PVR2DPATROPand 0xA0 /* pat AND dst */
+#define PVR2DPATROPandReverse 0x50 /* pat AND NOT dst */
+#define PVR2DPATROPcopy 0xF0 /* pat (used for solid color fills and pattern blts) */
+#define PVR2DPATROPandInverted 0x0A /* NOT pat AND dst */
+#define PVR2DPATROPxor 0x5A /* pat XOR dst */
+#define PVR2DPATROPor 0xFA /* pat OR dst */
+#define PVR2DPATROPnor 0x05 /* NOT pat AND NOT dst */
+#define PVR2DPATROPequiv 0xA5 /* NOT pat XOR dst */
+#define PVR2DPATROPinvert 0x55 /* NOT dst */
+#define PVR2DPATROPorReverse 0xF5 /* pat OR NOT dst */
+#define PVR2DPATROPcopyInverted 0x0F /* NOT pat */
+#define PVR2DPATROPorInverted 0xAF /* NOT pat OR dst */
+#define PVR2DPATROPnand 0x5F /* NOT pat OR NOT dst */
+
+ /* common rop4 codes */
+#define PVR2DROP4MaskedCopy PVR2DROP4(PVR2DROPnoop,PVR2DROPcopy) /* masked source copy blt (used for rounded window corners etc) */
+#define PVR2DROP4MaskedFill PVR2DROP4(PVR2DROPnoop,PVR2DPATROPcopy) /* masked colour fill blt (used for text) */
+
+ /* Legacy support */
+#define PVR2DROP3_PATMASK PVR2DPATROPcopy
+#define PVR2DROP3_SRCMASK PVR2DROPcopy
+
+ /* pixmap memory alignment */
+#define PVR2D_ALIGNMENT_4 4 /* DWORD alignment */
+#define PVR2D_ALIGNMENT_ANY 0 /* no alignment */
+#define PVR2D_ALIGNMENT_PALETTE 16 /* 16 byte alignment is required for palettes */
+
+ /* Heap number for PVR2DGetFrameBuffer */
+#define PVR2D_FB_PRIMARY_SURFACE 0
+
+#define PVR2D_PRESENT_PROPERTY_SRCSTRIDE (1UL << 0)
+#define PVR2D_PRESENT_PROPERTY_DSTSIZE (1UL << 1)
+#define PVR2D_PRESENT_PROPERTY_DSTPOS (1UL << 2)
+#define PVR2D_PRESENT_PROPERTY_CLIPRECTS (1UL << 3)
+#define PVR2D_PRESENT_PROPERTY_INTERVAL (1UL << 4)
+
+#define PVR2D_CREATE_FLIPCHAIN_SHARED (1UL << 0)
+#define PVR2D_CREATE_FLIPCHAIN_QUERY (1UL << 1)
+#define PVR2D_CREATE_FLIPCHAIN_OEMOVERLAY (1UL << 2)
+#define PVR2D_CREATE_FLIPCHAIN_AS_BLITCHAIN (1UL << 3)
+
+ /* Colour-key colour must be translated into argb8888 format */
+#define CKEY_8888(P) (P)
+#define CKEY_4444(P) (((P&0xF000UL)<<16) | ((P&0x0F00UL)<<12) | ((P&0x00F0UL)<<8) | ((P&0x000FUL)<<4))
+#define CKEY_1555(P) (((P&0x8000UL)<<16) | ((P&0x7C00UL)<<9) | ((P&0x3E0UL)<<6) | ((P&0x1FUL)<<3))
+#define CKEY_565(P) (((P&0xF800UL)<<8) | ((P&0x7E0UL)<<5) | ((P&0x1FUL)<<3))
+#define CKEY_MASK_8888 0x00FFFFFFUL
+#define CKEY_MASK_4444 0x00F0F0F0UL
+#define CKEY_MASK_1555 0x00F8F8F8UL /* Alpha is not normally included in the key test */
+#define CKEY_MASK_565 0x00F8FCF8UL
+
+ /* Fill colours must be translated into argb8888 format */
+#define CFILL_4444(P) (((P&0xF000UL)<<16) | ((P&0x0F00UL)<<12) | ((P&0x00F0UL)<<8) | ((P&0x000FUL)<<4))
+#define CFILL_1555(P) (((P&0x8000UL)<<16) | ((P&0x7C00UL)<<9) | ((P&0x3E0UL)<<6) | ((P&0x1FUL)<<3))
+#define CFILL_565(P) (((P&0xF800UL)<<8) | ((P&0x7E0UL)<<5) | ((P&0x1FUL)<<3))
+
+ /* PVR2DCreateDeviceContext flags */
+#define PVR2D_XSERVER_PROC 0x00000001UL /*!< Set for the Xserver connection */
+
+ /* PVR2DMemAlloc flags */
+#define PVR2D_MEM_UNCACHED 0x00000000UL /* Default */
+#define PVR2D_MEM_CACHED 0x00000001UL /* Caller must flush and sync when necessary */
+#define PVR2D_MEM_WRITECOMBINE 0x00000002UL
+#define PVR2D_MEM_NOUSERVIRTUAL 0x00000004UL
+
+ /* Functions that the library exports */
+
+ PVR2D_IMPORT
+ int PVR2DEnumerateDevices(PVR2DDEVICEINFO *pDevInfo);
+
+ PVR2D_IMPORT
+ PVR2DERROR PVR2DCreateDeviceContext(PVR2D_ULONG ulDevID,
+ PVR2DCONTEXTHANDLE* phContext,
+ PVR2D_ULONG ulFlags);
+
+ PVR2D_IMPORT
+ PVR2DERROR PVR2DDestroyDeviceContext(PVR2DCONTEXTHANDLE hContext);
+
+ PVR2D_IMPORT
+ PVR2DERROR PVR2DGetDeviceInfo(PVR2DCONTEXTHANDLE hContext,
+ PVR2DDISPLAYINFO *pDisplayInfo);
+
+ PVR2D_IMPORT
+ PVR2DERROR PVR2DGetMiscDisplayInfo(PVR2DCONTEXTHANDLE hContext,
+ PVR2DMISCDISPLAYINFO *pMiscDisplayInfo);
+
+ PVR2D_IMPORT
+ PVR2DERROR PVR2DGetScreenMode(PVR2DCONTEXTHANDLE hContext,
+ PVR2DFORMAT *pFormat,
+ PVR2D_LONG *plWidth,
+ PVR2D_LONG *plHeight,
+ PVR2D_LONG *plStride,
+ PVR2D_INT *piRefreshRate);
+
+ PVR2D_IMPORT
+ PVR2DERROR PVR2DGetFrameBuffer(PVR2DCONTEXTHANDLE hContext,
+ PVR2D_INT nHeap,
+ PVR2DMEMINFO **ppsMemInfo);
+
+ PVR2D_IMPORT
+ PVR2DERROR PVR2DMemAlloc(PVR2DCONTEXTHANDLE hContext,
+ PVR2D_ULONG ulBytes,
+ PVR2D_ULONG ulAlign,
+ PVR2D_ULONG ulFlags,
+ PVR2DMEMINFO **ppsMemInfo);
+
+ PVR2D_IMPORT
+ PVR2DERROR PVR2DMemExport(PVR2DCONTEXTHANDLE hContext,
+ PVR2D_ULONG ulFlags,
+ PVR2DMEMINFO *psMemInfo,
+ PVR2D_HANDLE *phMemHandle);
+
+ PVR2D_IMPORT
+ PVR2DERROR PVR2DMemWrap(PVR2DCONTEXTHANDLE hContext,
+ PVR2D_VOID *pMem,
+ PVR2D_ULONG ulFlags,
+ PVR2D_ULONG ulBytes,
+ PVR2D_ULONG alPageAddress[],
+ PVR2DMEMINFO **ppsMemInfo);
+
+ PVR2D_IMPORT
+ PVR2DERROR PVR2DMemMap(PVR2DCONTEXTHANDLE hContext,
+ PVR2D_ULONG ulFlags,
+ PVR2D_HANDLE hMemHandle,
+ PVR2DMEMINFO **ppsDstMem);
+
+ PVR2D_IMPORT
+ PVR2DERROR PVR2DMemFree(PVR2DCONTEXTHANDLE hContext,
+ PVR2DMEMINFO *psMemInfo);
+
+ PVR2D_IMPORT
+ PVR2DERROR PVR2DBlt(PVR2DCONTEXTHANDLE hContext,
+ PVR2DBLTINFO *pBltInfo);
+
+ PVR2D_IMPORT
+ PVR2DERROR PVR2DBltClipped(PVR2DCONTEXTHANDLE hContext,
+ PVR2DBLTINFO *pBltInfo,
+ PVR2D_ULONG ulNumClipRects,
+ PVR2DRECT *pClipRects);
+
+ PVR2D_EXPORT
+ PVR2DERROR PVR2DSet1555Alpha(PVR2DCONTEXTHANDLE hContext,
+ PVR2D_UCHAR Alpha0, PVR2D_UCHAR Alpha1);
+
+ PVR2D_IMPORT
+ PVR2DERROR PVR2DQueryBlitsComplete(PVR2DCONTEXTHANDLE hContext,
+ const PVR2DMEMINFO *pMemInfo,
+ PVR2D_UINT uiWaitForComplete);
+
+ PVR2D_IMPORT
+ PVR2DERROR PVR2DSetPresentBltProperties(PVR2DCONTEXTHANDLE hContext,
+ PVR2D_ULONG ulPropertyMask,
+ PVR2D_LONG lSrcStride,
+ PVR2D_ULONG ulDstWidth,
+ PVR2D_ULONG ulDstHeight,
+ PVR2D_LONG lDstXPos,
+ PVR2D_LONG lDstYPos,
+ PVR2D_ULONG ulNumClipRects,
+ PVR2DRECT *pClipRects,
+ PVR2D_ULONG ulSwapInterval);
+
+ PVR2D_IMPORT
+ PVR2DERROR PVR2DPresentBlt(PVR2DCONTEXTHANDLE hContext,
+ PVR2DMEMINFO *pMemInfo,
+ PVR2D_LONG lRenderID);
+
+ PVR2D_IMPORT
+ PVR2DERROR PVR2DCreateFlipChain(PVR2DCONTEXTHANDLE hContext,
+ PVR2D_ULONG ulFlags,
+ PVR2D_ULONG ulNumBuffers,
+ PVR2D_ULONG ulWidth,
+ PVR2D_ULONG ulHeight,
+ PVR2DFORMAT eFormat,
+ PVR2D_LONG *plStride,
+ PVR2D_ULONG *pulFlipChainID,
+ PVR2DFLIPCHAINHANDLE *phFlipChain);
+
+ PVR2D_IMPORT
+ PVR2DERROR PVR2DDestroyFlipChain(PVR2DCONTEXTHANDLE hContext,
+ PVR2DFLIPCHAINHANDLE hFlipChain);
+
+ PVR2D_IMPORT
+ PVR2DERROR PVR2DGetFlipChainBuffers(PVR2DCONTEXTHANDLE hContext,
+ PVR2DFLIPCHAINHANDLE hFlipChain,
+ PVR2D_ULONG *pulNumBuffers,
+ PVR2DMEMINFO *psMemInfo[]);
+
+ PVR2D_IMPORT
+ PVR2DERROR PVR2DSetPresentFlipProperties(PVR2DCONTEXTHANDLE hContext,
+ PVR2DFLIPCHAINHANDLE hFlipChain,
+ PVR2D_ULONG ulPropertyMask,
+ PVR2D_LONG lDstXPos,
+ PVR2D_LONG lDstYPos,
+ PVR2D_ULONG ulNumClipRects,
+ PVR2DRECT *pClipRects,
+ PVR2D_ULONG ulSwapInterval);
+
+ PVR2D_IMPORT
+ PVR2DERROR PVR2DPresentFlip(PVR2DCONTEXTHANDLE hContext,
+ PVR2DFLIPCHAINHANDLE hFlipChain,
+ PVR2DMEMINFO *psMemInfo,
+ PVR2D_LONG lRenderID);
+
+ PVR2D_IMPORT
+ PVR2DERROR PVR2DGetAPIRev(PVR2D_LONG *lRevMajor, PVR2D_LONG *lRevMinor);
+
+ PVR2D_IMPORT
+ PVR2DERROR PVR2DLoadUseCode(const PVR2DCONTEXTHANDLE hContext, const PVR2D_UCHAR *pUseCode,
+ const PVR2D_ULONG UseCodeSize, PVR2D_HANDLE *pUseCodeHandle);
+ PVR2D_IMPORT
+ PVR2DERROR PVR2DFreeUseCode(const PVR2DCONTEXTHANDLE hContext, const PVR2D_HANDLE hUseCodeHandle);
+
+ PVR2D_IMPORT
+ PVR2DERROR PVR2DBlt3D(const PVR2DCONTEXTHANDLE hContext, const PPVR2D_3DBLT pBlt3D);
+
+ PVR2D_IMPORT
+ PVR2DERROR PVR2DBlt3DExt(const PVR2DCONTEXTHANDLE hContext, const PPVR2D_3DBLT_EXT pBlt3D);
+
+ PVR2D_IMPORT
+ PVR2DERROR PVR2DBltVideo(const PVR2DCONTEXTHANDLE hContext, const PPVR2D_VPBLT pBltVP);
+
+ PVR2D_IMPORT
+ PVR2DERROR PVR2DScaleBltEx(const PVR2DCONTEXTHANDLE hContext, const PPVR2D_3DBLT pBlt3D,
+ const PVR2D_ULONG color, const PVR2D_INT isFixedSize, const PVR2DRECT *pFillRect);
+
+ PVR2D_EXPORT
+ PVR2DERROR PVR2D_GetSrcRect(PVR2DRECT *pSrc, PVR2DRECT *pDest,
+ PVR2D_INT tgtXOffset, PVR2D_INT tgtYOffset,
+ PVR2D_UINT tgtWidth, PVR2D_UINT tgtHeight,
+ PVR2D_UINT winWidth, PVR2D_UINT winHeight);
+
+ PVR2D_IMPORT
+ PVR2DERROR PVR2DBltWidi(const PVR2DCONTEXTHANDLE hContext, const PPVR2D_WIDIBLT pBltWidi);
+
+ PVR2D_IMPORT void PVRHideTransparent(void);
+ PVR2D_IMPORT void PVRUnhideTransparent(void);
+ PVR2D_IMPORT PVR2D_BOOL PVRTransparentUnhidden(void);
+
+ PVR2D_IMPORT
+ PVR2DERROR PVR2DMemLock(PVR2DCONTEXTHANDLE hContext, PVR2DMEMINFO *psMemInfo);
+
+ PVR2D_IMPORT
+ PVR2DERROR PVR2DMemUnlock(PVR2DCONTEXTHANDLE hContext, PVR2DMEMINFO *psMemInfo);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _PVR2D_H_ */
+
+/******************************************************************************
+ End of file (pvr2d.h)
+******************************************************************************/
diff --git a/src/vc1_defs.h b/src/vc1_defs.h
new file mode 100644
index 0000000..cfe210b
--- /dev/null
+++ b/src/vc1_defs.h
@@ -0,0 +1,206 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+
+/*
+******************************************************************************
+ Profile calculation masks
+******************************************************************************/
+#define iWMVA_MASK (0x08)
+#define iWMV9_MASK (0x80)
+
+/* system environment dependent switches */
+//! Pack decoded bitplane bits into bytes (instead of 1-bit per byte)
+//#define BITPLANE_PACKED_BYTES
+
+//! Generate bitplane test vectors
+#define BITPLANE_TEST_VECTORS (0)
+
+//! Measure bitplane decode time
+#define BITPLANE_DECODE_TIME (0)
+
+//! Measure time spent parsing the picture header
+#define PARSE_HEADER_TIME (0)
+
+//! Use VC1 reference decoder implementation for bitplane decoding
+#define REFDEC_BITPLANE_DECODER (0)
+
+//! Interleave individual bitplanes into packed format
+#define VC1_INTERLEAVED_BITPLANE (1)
+
+//! Use MSVDX hardware for bitplane decoding
+#define VC1_BITPLANE_HARDWARE (0)
+
+/*****************************************************************************/
+#if VC1_BITPLANE_HARDWARE
+//! VC1_INTERLEAVED_BITPLANE must be set to 0 when using MSVDX hardware for bitplane decoding
+#if VC1_INTERLEAVED_BITPLANE
+#error VC1_INTERLEAVED_BITPLANE must not be defined together with VC1_BITPLANE_HARDWARE
+#endif
+#endif
+/*****************************************************************************/
+
+/*
+Possible combinations for bitplane decoding operation:
+
++ To use the hardware bitplane decoder, define VC1_BITPLANE_HARDWARE in the
+preprocessor definitions of um_drivers, set REFDEC_BITPLANE_DECODER to 1 and
+VC1_INTERLEAVED_BITPLANE to 0.
++ To use the software bitplane decoder, don't define VC1_BITPLANE_HARDWARE.
+There are two implementations of the decoder:
+ - To use the VC1 reference decoder implementation, set
+ REFDEC_BITPLANE_DECODER to 1.
+ - Otherwise, set REFDEC_BITPLANE_DECODER to 0.
++ When using the software bitplane decoder, the data can be sent to
+the hardware in two formats.
+ - Set VC1_INTERLEAVED_BITPLANE to 1, if using the three-plane
+ interleaved format.
+ - Otherwise, set VC1_INTERLEAVED_BITPLANE to 0.
+*/
+
+/*!
+******************************************************************************
+ This enumeration defines PTYPE [All]
+******************************************************************************/
+typedef enum {
+ WMF_PTYPE_I = 0, //!< I Picture
+ WMF_PTYPE_P = 1, //!< P Picture
+ WMF_PTYPE_B = 2, //!< B Picture
+ WMF_PTYPE_BI = 3, //!< BI Picture
+ WMF_PTYPE_SKIPPED = 4 //!< Skipped Picture
+
+} WMF_ePTYPE;
+
+/*!
+******************************************************************************
+ This enumeration defines the stream profile
+******************************************************************************/
+typedef enum {
+ WMF_PROFILE_SIMPLE = 0, //!< Simple profile
+ WMF_PROFILE_MAIN = 1, //!< Main profile
+ WMF_PROFILE_ADVANCED = 2, //!< Advanced profile (VC1 Only)
+ WMF_PROFILE_UNDEFINED = 3, //!< Undefined profile
+
+} WMF_eProfile;
+
+/*!
+******************************************************************************
+ This enumeration defines MVMODE [All] Tables 46-50 MVMODE and MVMODE2
+******************************************************************************/
+typedef enum {
+ WMF_MVMODE_1MV = 0, //!< 1 MV
+ WMF_MVMODE_1MV_HALF_PEL_BILINEAR = 1, //!< 1 MV Half-pel bilinear
+ WMF_MVMODE_1MV_HALF_PEL = 2, //!< 1 MV Half-pel
+ WMF_MVMODE_MIXED_MV = 3, //!< Mixed MV
+ WMF_MVMODE_INTENSITY_COMPENSATION = 4, //!< Intensity Compensation
+ WMF_MVMODE_QUARTER_PEL_BICUBIC = 5, //!< Quarter pel bicubic
+
+} WMF_eMVMODE;
+
+/*!
+******************************************************************************
+ This enumeration defines FCM [Advanced Profile Only] Table 41 gFCM_VlcTable
+******************************************************************************/
+typedef enum {
+ VC1_FCM_P = 0, //!< 0 Progressive
+ VC1_FCM_FRMI = 2, //!< 10 Frame-Interlace
+ VC1_FCM_FLDI = 3, //!< 11 Field-Interlace
+
+} VC1_eFCM;
+
+/*!
+******************************************************************************
+ This enumeration defines the BDU Start Code Suffixes \n
+ 0x00 - 0x09 SMPTE Reserved \n
+ 0x20 - 0x7F SMPTE Reserved \n
+ 0x80 -0xFF Forbidden
+******************************************************************************/
+typedef enum {
+ VC1_SCS_ENDOFSEQU = 0x0A, //!< End of sequence
+ VC1_SCS_SLICE = 0x0B, //!< Slice
+ VC1_SCS_FIELD = 0x0C, //!< Field
+ VC1_SCS_PIC_LAYER = 0x0D, //!< Frame
+ VC1_SCS_ENTRYPNT_LAYER = 0x0E, //!< Entry-point Header
+ VC1_SCS_SEQ_LAYER = 0x0F, //!< Sequence Header
+ VC1_SCS_SLICELVL_USERDATA = 0x1B, //!< Slice Level User Data
+ VC1_SCS_FIELDLVL_USERDATA = 0x1C, //!< Field Level User Data
+ VC1_SCS_PICLVL_USERDATA = 0x1D, //!< Frame Level User Data
+ VC1_SCS_ENTRYPNTLVL_USERDATA = 0x1E, //!< Entry-point Level User Data
+ VC1_SCS_SEQLVL_USERDATA = 0x1F, //!< Sequence Level User Data
+
+} VC1_eSCS;
+
+/*! Test if picture type is a reference (I or P) */
+#define PIC_TYPE_IS_REF(Type) ((Type) == WMF_PTYPE_I || (Type) == WMF_PTYPE_P)
+
+/*! Test if picture type is intra (I or BI) */
+#define PIC_TYPE_IS_INTRA(Type) ((Type) == WMF_PTYPE_I || (Type) == WMF_PTYPE_BI)
+
+/*! Test if picture type is inter (P or B) */
+#define PIC_TYPE_IS_INTER(Type) ((Type) == WMF_PTYPE_P || (Type) == WMF_PTYPE_B)
+
+//! Maximum number of VLC tables for MB/block layer decode
+#define MAX_VLC_TABLES (12)
+
+#define COMPUTE_PULLBACK(s) (VC1_MB_SIZE*((s+15)/VC1_MB_SIZE)*4 - 4) /* 8.4.5.8 */
+
+//! VC1 MB Parameter Stride
+#define VC1_MB_PARAM_STRIDE (128)
+
+#define VC1_MAX_NUM_BITPLANES (3)
+
+#define CABAC_RAM_WIDTH_IN_BITS (16)
+
+/*
+******************************************************************************
+ Frame Dimension Parameters
+******************************************************************************/
+
+//! Number of pixels in each MB dimension
+#define VC1_MB_SIZE (16)
+
+//! Maximum resolution in frame width (X)
+#define VC1_MAX_X (4096) // 1920
+
+//! Maximum resolution in frame height (Y)
+#define VC1_MAX_Y (2048) // 1080
+
+//! Maximum resolution of frame
+#define VC1_MAX_RES (VC1_MAX_X*VC1_MAX_Y)
+
+//! Maximum number of MBs in frame width (X)
+#define VC1_MAX_NO_MBS_X ((VC1_MAX_X + VC1_MB_SIZE - 1)/VC1_MB_SIZE)
+
+//! Maximum number of MBs in frame height (Y)
+#define VC1_MAX_NO_MBS_Y ((VC1_MAX_Y + VC1_MB_SIZE - 1)/VC1_MB_SIZE)
+
+//! Maximum number of MBs in frame
+#define VC1_MAX_NO_MBS ((VC1_MAX_RES + (VC1_MB_SIZE*VC1_MB_SIZE) - 1) /(VC1_MB_SIZE*VC1_MB_SIZE))
+
+//! Maximum number of bytes in bitplane
+#define BITPLANE_BYTES VC1_MAX_NO_MBS
+
+//! Maximum number of pan/scan windows per frame (VC1 Specification: 7.1.1.20)
+#define VC1_MAX_PANSCAN_WINDOWS (4)
diff --git a/src/vc1_header.h b/src/vc1_header.h
new file mode 100644
index 0000000..cb2213e
--- /dev/null
+++ b/src/vc1_header.h
@@ -0,0 +1,401 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ * Waldo Bastian <waldo.bastian@intel.com>
+ *
+ */
+
+#ifndef _VC1_HEADER_H_
+#define _VC1_HEADER_H_
+
+#include "psb_VC1.h"
+#include "psb_def.h"
+#include "psb_surface.h"
+#include "psb_cmdbuf.h"
+
+#include <img_types.h>
+
+
+/* Picture header parameters */
+typedef struct _vc1PicHeader_ {
+ /* TTMBF signals whether transform type coding is enabled at the frame or macroblock level. */
+ IMG_UINT8 TTMBF; /* PICTURE_LAYER::TTMBF - 1 bit */
+ /* TTFRM signals the transform type used to transform the 8x8 pixel error signal in predicted blocks. */
+ IMG_UINT8 TTFRM; /* PICTURE_LAYER::TTFRM - 2 bits */
+ /*
+ BFRACTION signals a fraction that may take on a limited set of fractional values between 0 and 1,
+ denoting the relative temporal position of the B frame within the interval formed by its anchors.
+ */
+ IMG_UINT8 BFRACTION; /* PICTURE_LAYER::BFRACTION - 2 bits */
+ /*
+ CONDOVER affects overlap smoothing in advanced profile.
+ */
+ IMG_UINT8 CONDOVER; /* PICTURE_LAYER::CONDOVER - 2 bits */
+
+ /*
+ TRANSACFRM shall provide the index that selects the coding set used to decode the
+ Transform AC coefficients for the Cb, Cr blocks.
+ */
+ IMG_UINT8 TRANSACFRM; /* PICTURE_LAYER::TRANSACFRM - 2 bits */
+ /*
+ TRANSACFRM2 shall provide the index that selects the coding set used to decode the
+ Transform AC coefficients for the Y blocks.
+ */
+ IMG_UINT8 TRANSACFRM2; /* PICTURE_LAYER::TRANSACFRM2 - 2 bits */
+ /*
+ MVMODE syntax element shall signal one of four motion vector coding modes,
+ or the intensity compensation mode.
+ */
+ IMG_UINT8 MVMODE; /* PICTURE_LAYER::MVMODE - 2 bits */
+ IMG_UINT8 MVMODE2; /* PICTURE_LAYER::MVMODE2 - 2 bits */
+
+ /* These are needed just for finding out what VLC tables are used in the current picture */
+ IMG_UINT8 MV4SWITCH; /* PICTURE_LAYER::MV4SWITCH - 1 bit */
+ IMG_UINT8 CBPTAB; /* PICTURE_LAYER::CBPTAB - 2 bits */
+ IMG_UINT8 ICBPTAB; /* PICTURE_LAYER::ICBPTAB - 3 bits */
+ IMG_UINT8 MVTAB; /* PICTURE_LAYER::MVTAB - 2 bits */
+ IMG_UINT8 IMVTAB; /* PICTURE_LAYER::IMVTAB - 3 bits */
+ IMG_UINT8 MV4BPTAB; /* PICTURE_LAYER::4MVBPTAB - 2 bits */
+ IMG_UINT8 MV2BPTAB; /* PICTURE_LAYER::2MVBPTAB - 2 bits */
+ IMG_UINT8 MBMODETAB; /* PICTURE_LAYER::MBMODETAB - 3 bits */
+ IMG_UINT8 TRANSDCTAB; /* PICTURE_LAYER::TRANSDCTAB - 1 bits */
+
+ /* PQINDEX is used in VLD and the hardware actually only needs to know if it is greater than 8 or not. */
+ IMG_UINT8 PQINDEX; /* PICTURE_LAYER::PQINDEX - 5 bits */
+ /*
+ HALFQP syntax element allows the picture quantizer to be expressed in half step increments.
+ If HALFQP == 1, then the picture quantizer step size shall be equal to PQUANT + 1/2. If
+ HALFQP == 0, then the picture quantizer step size shall be equal to PQUANT.
+ */
+ IMG_UINT8 HALFQP; /* PICTURE_LAYER::HALFQP - 1 bit */
+
+ IMG_UINT8 bNonUniformQuantizer;
+ IMG_UINT8 VOPDQUANT_Present;
+ IMG_UINT8 bDQUANT_InFrame; // Indicates whether quantisation can be specified at a MB level
+ /* If DQUANTFRM == 0, then the current picture shall only be quantized with PQUANT. */
+ IMG_UINT8 DQUANTFRM; /* VOPDQUANT::DQUANTFRM - 1 bit */
+ /* DQPROFILE specifies where it is allowable to change quantization step sizes within the current picture. */
+ IMG_UINT8 DQPROFILE; /* VOPDQUANT::DQPROFILE - 2 bits */
+ /*
+ DQBILEVEL determines the number of possible quantization step sizes which can be
+ used by each macroblock in the frame.
+ */
+ IMG_UINT8 DQBILEVEL; /* VOPDQUANT::DQBILEVEL - 1 bit */
+ /* DQDBEDGE specifies which two edges will be quantized with ALTPQUANT when DQPROFILE == 'Double Edge'. */
+ IMG_UINT8 DQDBEDGE; /* VOPDQUANT::DQDBEDGE - 2 bits */
+ /* DQSBEDGE specifies which edge will be quantized with ALTPQUANT when DQPROFILE == 'Single Edge'. */
+ IMG_UINT8 DQSBEDGE; /* VOPDQUANT::DQSBEDGE - 2 bits */
+ IMG_UINT8 ALTPQUANT; /* VOPDQUANT::ALTPQUANT - 5 bits */
+
+ /* REFDIST defines the number of frames between the current frame and the reference frame. */
+ IMG_UINT8 REFDIST; /* PICTURE_LAYER::REFDIST - 1 bit */
+ /*
+ If NUMREF == 0, then the current interlace P field picture shall reference one field. If
+ NUMREF == 1, then the current interlace P field picture shall reference the two temporally
+ closest (in display order) I or P field pictures.
+ */
+ IMG_UINT8 NUMREF; /* PICTURE_LAYER::NUMREF - 1 bit */
+ /*
+ If REFFIELD == 1, then the second most temporally recent interlace I or P field picture
+ shall be used as reference.
+ */
+ IMG_UINT8 REFFIELD; /* PICTURE_LAYER::REFFIELD - 1 bit */
+
+ /* MVRANGE specifies the motion vector range. */
+ IMG_UINT8 MVRANGE; /* PICTURE_LAYER::MVRANGE - 2 bits */
+ /*
+ DMVRANGE indicates if the extended range for motion vector differential is used in the
+ vertical, horizontal, both or none of the components of the motion vector.
+ */
+ IMG_UINT8 DMVRANGE; /* PICTURE_LAYER::DMVRANGE - 2 bits */
+
+ /* BitplanePresent indicates which bitplanes are present in the picture header */
+ IMG_UINT8 BP_PRESENT;
+ /* RawCodingFlag signals whether the bitplanes are coded in raw mode (bit set to 1) or not (set to 0) */
+ IMG_UINT8 RAWCODINGFLAG;
+
+} vc1PicHeader;
+
+/* Sequence header parameters */
+typedef struct _vc1SeqHeader_ {
+ IMG_UINT8 POSTPROCFLAG;
+ IMG_UINT8 PULLDOWN;
+ IMG_UINT8 INTERLACE;
+ IMG_UINT8 TFCNTRFLAG;
+ IMG_UINT8 FINTERPFLAG;
+ IMG_UINT8 PSF;
+ IMG_UINT8 EXTENDED_DMV;
+
+ IMG_UINT8 PANSCAN_FLAG;
+ IMG_UINT8 REFDIST_FLAG;
+ IMG_UINT8 LOOPFILTER;
+ IMG_UINT8 FASTUVMC;
+ IMG_UINT8 EXTENDED_MV;
+ IMG_UINT8 DQUANT;
+ IMG_UINT8 VSTRANSFORM;
+
+ IMG_UINT8 QUANTIZER;
+ IMG_UINT8 MULTIRES;
+ IMG_UINT8 SYNCMARKER;
+ IMG_UINT8 RANGERED;
+ IMG_UINT8 MAXBFRAMES;
+
+ IMG_UINT8 OVERLAP;
+
+ IMG_UINT8 PROFILE;
+
+} vc1SeqHeader;
+
+//! Maximum number of VLC tables for MB/block layer decode
+#define MAX_VLC_TABLES (12)
+
+typedef struct { // Information about VLC tables
+ IMG_UINT16 aui16StartLocation; //!< Byte offset within the packed VLC tables array
+ IMG_UINT16 aui16VLCTableLength; //!< Length of the table in number of bytes
+ IMG_UINT16 aui16RAMLocation; //!< Location of the VLC table in the destination buffer
+ IMG_UINT16 aui16InitialWidth;
+ IMG_UINT16 aui16InitialOpcode;
+
+} sTableData;
+
+typedef struct { // Information about the intensity compensation history of previous pictures
+ IMG_UINT8 ui8LumaScale1;
+ IMG_UINT8 ui8LumaShift1;
+
+ IMG_UINT8 ui8LumaScale2;
+ IMG_UINT8 ui8LumaShift2;
+
+ /* Indication of what fields undergo intensity compensation */
+ IMG_UINT8 ui8IC1; // 1 - IC top field, 2 - IC bottom field, 3 - IC both fields
+ IMG_UINT8 ui8IC2;
+
+} IC_PARAM;
+
+
+#define VLC_INDEX_TABLE_SIZE 83
+
+struct context_VC1_s {
+ object_context_p obj_context; /* back reference */
+
+ uint32_t profile;
+
+ /* Picture parameters */
+ VAPictureParameterBufferVC1 *pic_params;
+ object_surface_p forward_ref_surface;
+ object_surface_p backward_ref_surface;
+ object_surface_p decoded_surface;
+
+ uint32_t display_picture_width; /* in pixels */
+ uint32_t display_picture_height; /* in pixels */
+ uint32_t coded_picture_width; /* in pixels */
+ uint32_t coded_picture_height; /* in pixels */
+
+ uint32_t picture_width_mb; /* in macroblocks */
+ uint32_t picture_height_mb; /* in macroblocks */
+ uint32_t size_mb; /* in macroblocks */
+
+ IMG_BOOL is_first_slice;
+
+ uint32_t scan_index;
+ uint32_t slice_field_type;
+ uint8_t bitplane_present; /* Required bitplanes */
+ IMG_BOOL has_bitplane; /* Whether a bitplane was passed to the driver */
+ IMG_BOOL bottom_field;
+ IMG_BOOL half_pel;
+ IMG_BOOL extend_x;
+ IMG_BOOL extend_y;
+ uint8_t mode_config;
+ uint32_t pull_back_x;
+ uint32_t pull_back_y;
+ uint8_t condover; /* Adjusted local version of conditional_overlap_flag */
+ uint8_t mv_mode; /* Adjusted local version of mv_mode / mv_mode2 */
+ IMG_BOOL pqindex_gt8; /* Flag to indicate PQINDEX > 8 */
+
+ /* TODO:
+ LOOPFILTER
+ */
+
+
+
+ /*
+ CurrPic is the picture currently being decoded.
+ Ref0Pic is the most recent forward reference picture (only used when decoding interlaced field pictures and
+ the reference picture is in the same frame as the current picture).
+ Ref1Pic can either be the most recent forward reference picture (when decoding interlaced frame or
+ progressive pictures) or the 2nd most recent reference picture (when decoding interlaced field pictures).
+ Ref2Pic is the most recent backward reference picture (only used when decoding B pictures).
+ */
+ IMG_UINT8 ui8FCM_Ref0Pic; /* Used */
+ IMG_UINT8 ui8FCM_Ref1Pic; /* Used */
+ IMG_UINT8 ui8FCM_Ref2Pic; /* Used */
+
+ IMG_BOOL bTFF_FwRefFrm; /* Used */
+ IMG_BOOL bTFF_BwRefFrm; /* Used */
+ IMG_BOOL bRef0RangeRed; /* RangeRed flag */
+ IMG_BOOL bRef1RangeRed;
+
+ IMG_UINT8 ui8IntCompField; /* Used, replace with local var? */
+ IMG_UINT8 ui8MVmode; /* TODO: Fix, differs slightly from pic_params->mv_mode! */
+ IMG_INT8 i8FwrdRefFrmDist; /* Used */
+ IMG_INT8 i8BckwrdRefFrmDist; /* Used */
+ IMG_UINT32 ui32ScaleFactor; /* Used */
+
+ /* IC parameters in current picture */
+ IMG_UINT8 ui8CurrLumaScale1;
+ IMG_UINT8 ui8CurrLumaShift1;
+ IMG_UINT8 ui8CurrLumaScale2;
+ IMG_UINT8 ui8CurrLumaShift2;
+ /* Information about the intensity compensation history of previous pictures */
+ IC_PARAM sICparams[2][2];
+
+
+ /* VLC table information */
+ IMG_UINT32 ui32NumTables; /* VLC table accumulator */
+ sTableData sTableInfo[MAX_VLC_TABLES]; /* structure of VLC table information */
+
+ /* Split buffers */
+ int split_buffer_pending;
+
+ /* List of VASliceParameterBuffers */
+ object_buffer_p *slice_param_list;
+ int slice_param_list_size;
+ int slice_param_list_idx;
+
+ /* VLC packed data */
+ struct psb_buffer_s vlc_packed_table;
+ uint32_t vlc_packed_index_table[VLC_INDEX_TABLE_SIZE];
+
+ /* Preload buffer */
+ struct psb_buffer_s preload_buffer;
+
+ /* CoLocated buffers */
+ struct psb_buffer_s *colocated_buffers;
+ int colocated_buffers_size;
+ int colocated_buffers_idx;
+
+ /* Aux MSB buffer */
+ struct psb_buffer_s aux_msb_buffer;
+ psb_buffer_p bitplane_buffer;
+ struct psb_buffer_s bitplane_hw_buffer; /* For hw parase */
+
+ uint32_t *p_range_mapping_base; /* pointer to ui32RangeMappingBase in CMD_HEADER_VC1 */
+ uint32_t *p_range_mapping_base1;
+ uint32_t *p_slice_params; /* pointer to ui32SliceParams in CMD_HEADER_VC1 */
+ uint32_t *slice_first_pic_last;
+ uint32_t *alt_output_flags;
+};
+
+typedef struct context_VC1_s *context_VC1_p;
+
+/* VC1 Sequence Header Data Bit Positions Within 32 bit Command Word */
+#define VC1_SEQHDR_EXTENDED_DMV 0
+#define VC1_SEQHDR_PSF 1
+#define VC1_SEQHDR_SECONDFIELD 2
+#define VC1_SEQHDR_FINTERPFLAG 3
+#define VC1_SEQHDR_TFCNTRFLAG 4
+#define VC1_SEQHDR_INTERLACE 5
+#define VC1_SEQHDR_PULLDOWN 6
+#define VC1_SEQHDR_POSTPROCFLAG 7
+#define VC1_SEQHDR_VSTRANSFORM 8
+#define VC1_SEQHDR_DQUANT 9
+#define VC1_SEQHDR_EXTENDED_MV 11
+#define VC1_SEQHDR_FASTUVMC 12
+#define VC1_SEQHDR_LOOPFILTER 13
+#define VC1_SEQHDR_REFDIST_FLAG 14
+#define VC1_SEQHDR_PANSCAN_FLAG 15
+#define VC1_SEQHDR_MAXBFRAMES 16
+#define VC1_SEQHDR_RANGERED 19
+#define VC1_SEQHDR_SYNCMARKER 20
+#define VC1_SEQHDR_MULTIRES 21
+#define VC1_SEQHDR_QUANTIZER 22
+#define VC1_SEQHDR_OVERLAP 24
+#define VC1_SEQHDR_PROFILE 25
+#define VC1_SEQHDR_PICTYPE 27
+#define VC1_SEQHDR_ICFLAG 29
+#define VC1_SEQHDR_FCM_CURRPIC 30
+
+
+#if 0
+/****************************************************************************************/
+/* Local Context */
+/****************************************************************************************/
+
+typedef struct {
+ VA_CONTEXT sVAContext; /* Must be the first Item */
+
+ const char *pszHandleType;
+
+ VA_PictureParameters sPicParamVC1;
+ vc1PicHeader sPicHdr;
+ vc1SeqHeader sSeqHdr;
+
+ VA_SliceInfo *pSliceCtrl;
+ PVRSRV_CLIENT_MEM_INFO *psAuxMSBBuffer;
+ PVRSRV_CLIENT_MEM_INFO *hVlcPackedTableData;
+ PVRSRV_CLIENT_MEM_INFO *psCoLocatedData;
+ PVRSRV_CLIENT_MEM_INFO *psPreloadBuffer;
+
+#if (!VC1_INTERLEAVED_BITPLANE || VC1_BITPLANE_HARDWARE)
+ PVRSRV_CLIENT_MEM_INFO *hBitplaneData[3];
+ IMG_UINT8 *pui8BitplaneData[3];
+#else
+ PVRSRV_CLIENT_MEM_INFO *hBitplaneData;
+ IMG_UINT8 *pui8BitplaneData;
+#endif
+#ifdef VC1_LLDMA
+ CMD_BUFFER sCmdBuff;
+#else
+ PVRSRV_CLIENT_MEM_INFO *psRenderCommandBuffer;
+#endif
+ PVRSRV_CLIENT_MEM_INFO *psStatusBuffer;
+ IMG_UINT32 *pui32CmdBuffer;
+ IMG_UINT32 *pui32CmdBufferBase;
+ IMG_UINT32 ui32CoLocatedSlot;
+
+
+ /* Status report */
+ IMG_BOOL bBetweenBeginAndEnd;
+ IMG_UINT32 ui32StatusWof;
+ IMG_UINT32 ui32StatusRof;
+ IMG_UINT32 ui32DevPhysStatusAddr;
+
+ SGX_DDSURFDATA* psDecodeSurfData;
+ SGX_DDSURFDATA* psDeblockSurfData;
+ SGX_DDSURFDATA* psForwardRefSurfData;
+ SGX_DDSURFDATA* psBackwardRefSurfData;
+
+
+} VC1VLDContext;
+#endif
+
+/*
+******************************************************************************
+ Extern global variables
+******************************************************************************/
+
+extern vc1PicHeader *psPicHdr;
+extern vc1SeqHeader *psSeqHdr;
+
+#endif /* _VC1_HEADER_H_ */
diff --git a/src/vc1_idx.c b/src/vc1_idx.c
new file mode 100644
index 0000000..6974fc6
--- /dev/null
+++ b/src/vc1_idx.c
@@ -0,0 +1,127 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ * Waldo Bastian <waldo.bastian@intel.com>
+ *
+ */
+
+
+/* format is: inital_opcode, initial_width, address */
+/* for each table in gui16vc1VlcTableData[] */
+
+
+
+#include <img_types.h>
+
+IMG_UINT16 gaui16vc1VlcIndexData[83][3] = {
+ {0, 3, 0}, /* vc1DEC_Code_3x2_2x3_tiles.out */
+ {0, 2, 91}, /* vc1DEC_FourMV_Pattern_0.out */
+ {0, 3, 110}, /* vc1DEC_FourMV_Pattern_1.out */
+ {0, 3, 130}, /* vc1DEC_FourMV_Pattern_2.out */
+ {0, 3, 148}, /* vc1DEC_FourMV_Pattern_3.out */
+ {0, 3, 168}, /* vc1DEC_High_Mot_Chroma_DC_Diff_VLC.out */
+ {0, 4, 245}, /* vc1DEC_High_Mot_Inter_VLC.out */
+ {0, 4, 742}, /* vc1DEC_High_Mot_Intra_VLC.out */
+ {0, 3, 1010}, /* vc1DEC_High_Mot_Luminance_DC_Diff_VLC.out */
+ {0, 4, 1121}, /* vc1DEC_High_Rate_Inter_VLC.out */
+ {0, 4, 1367}, /* vc1DEC_High_Rate_Intra_VLC.out */
+ {0, 4, 1837}, /* vc1DEC_High_Rate_SUBBLKPAT.out */
+ {0, 1, 1871}, /* vc1DEC_High_Rate_TTBLK.out */
+ {0, 2, 1879}, /* vc1DEC_High_Rate_TTMB.out */
+ {0, 3, 1901}, /* vc1DEC_I_Picture_CBPCY_VLC.out */
+ {0, 1, 1994}, /* vc1DEC_Interlace_2_MVP_Pattern_0.out */
+ {2, 1, 1998}, /* vc1DEC_Interlace_2_MVP_Pattern_1.out */
+ {2, 1, 2001}, /* vc1DEC_Interlace_2_MVP_Pattern_2.out */
+ {2, 1, 2006}, /* vc1DEC_Interlace_2_MVP_Pattern_3.out */
+ {0, 4, 2011}, /* vc1DEC_Interlace_4MV_MB_0.out */
+ {0, 4, 2054}, /* vc1DEC_Interlace_4MV_MB_1.out */
+ {0, 4, 2091}, /* vc1DEC_Interlace_4MV_MB_2.out */
+ {0, 4, 2126}, /* vc1DEC_Interlace_4MV_MB_3.out */
+ {0, 1, 2169}, /* vc1DEC_Interlace_Non_4MV_MB_0.out */
+ {0, 2, 2180}, /* vc1DEC_Interlace_Non_4MV_MB_1.out */
+ {0, 1, 2193}, /* vc1DEC_Interlace_Non_4MV_MB_2.out */
+ {2, 1, 2204}, /* vc1DEC_Interlace_Non_4MV_MB_3.out */
+ {0, 2, 2215}, /* vc1DEC_Interlaced_CBPCY_0.out */
+ {0, 4, 2281}, /* vc1DEC_Interlaced_CBPCY_1.out */
+ {0, 4, 2360}, /* vc1DEC_Interlaced_CBPCY_2.out */
+ {0, 4, 2441}, /* vc1DEC_Interlaced_CBPCY_3.out */
+ {0, 4, 2511}, /* vc1DEC_Interlaced_CBPCY_4.out */
+ {0, 4, 2588}, /* vc1DEC_Interlaced_CBPCY_5.out */
+ {0, 4, 2656}, /* vc1DEC_Interlaced_CBPCY_6.out */
+ {0, 4, 2734}, /* vc1DEC_Interlaced_CBPCY_7.out */
+ {0, 4, 2813}, /* vc1DEC_Low_Mot_Chroma_DC_Diff_VLC.out */
+ {0, 4, 2905}, /* vc1DEC_Low_Mot_Inter_VLC.out */
+ {0, 4, 3335}, /* vc1DEC_Low_Mot_Intra_VLC.out */
+ {2, 5, 3655}, /* vc1DEC_Low_Mot_Luminance_DC_Diff_VLC.out */
+ {0, 3, 3735}, /* vc1DEC_Low_Rate_SUBBLKPAT.out */
+ {0, 1, 3757}, /* vc1DEC_Low_Rate_TTBLK.out */
+ {0, 2, 3764}, /* vc1DEC_Low_Rate_TTMB.out */
+ {0, 3, 3784}, /* vc1DEC_Medium_Rate_SUBBLKPAT.out */
+ {0, 2, 3806}, /* vc1DEC_Medium_Rate_TTBLK.out */
+ {0, 3, 3814}, /* vc1DEC_Medium_Rate_TTMB.out */
+ {0, 4, 3838}, /* vc1DEC_Mid_Rate_Inter_VLC.out */
+ {0, 4, 3989}, /* vc1DEC_Mid_Rate_Intra_VLC.out */
+ {0, 4, 4146}, /* vc1DEC_Mixed_MV_MB_0.out */
+ {0, 4, 4180}, /* vc1DEC_Mixed_MV_MB_1.out */
+ {0, 4, 4212}, /* vc1DEC_Mixed_MV_MB_2.out */
+ {0, 4, 4246}, /* vc1DEC_Mixed_MV_MB_3.out */
+ {0, 4, 4280}, /* vc1DEC_Mixed_MV_MB_4.out */
+ {0, 4, 4314}, /* vc1DEC_Mixed_MV_MB_5.out */
+ {0, 4, 4348}, /* vc1DEC_Mixed_MV_MB_6.out */
+ {0, 4, 4380}, /* vc1DEC_Mixed_MV_MB_7.out */
+ {0, 4, 4414}, /* vc1DEC_Mot_Vector_Diff_VLC_0.out */
+ {0, 4, 4503}, /* vc1DEC_Mot_Vector_Diff_VLC_1.out */
+ {0, 4, 4588}, /* vc1DEC_Mot_Vector_Diff_VLC_2.out */
+ {0, 4, 4640}, /* vc1DEC_Mot_Vector_Diff_VLC_3.out */
+ {0, 4, 4736}, /* vc1DEC_One_Field_Ref_Ilace_MV_0.out */
+ {0, 4, 4834}, /* vc1DEC_One_Field_Ref_Ilace_MV_1.out */
+ {0, 4, 4932}, /* vc1DEC_One_Field_Ref_Ilace_MV_2.out */
+ {0, 4, 5033}, /* vc1DEC_One_Field_Ref_Ilace_MV_3.out */
+ {2, 4, 5128}, /* vc1DEC_One_MV_MB_0.out */
+ {2, 4, 5134}, /* vc1DEC_One_MV_MB_1.out */
+ {0, 4, 5140}, /* vc1DEC_One_MV_MB_2.out */
+ {0, 4, 5172}, /* vc1DEC_One_MV_MB_3.out */
+ {0, 3, 5204}, /* vc1DEC_One_MV_MB_4.out */
+ {0, 3, 5220}, /* vc1DEC_One_MV_MB_5.out */
+ {2, 4, 5236}, /* vc1DEC_One_MV_MB_6.out */
+ {0, 4, 5242}, /* vc1DEC_One_MV_MB_7.out */
+ {0, 4, 5274}, /* vc1DEC_P_Picture_CBPCY_VLC_0.out */
+ {0, 4, 5369}, /* vc1DEC_P_Picture_CBPCY_VLC_1.out */
+ {0, 4, 5457}, /* vc1DEC_P_Picture_CBPCY_VLC_2.out */
+ {0, 3, 5547}, /* vc1DEC_P_Picture_CBPCY_VLC_3.out */
+ {0, 4, 5627}, /* vc1DEC_Two_Field_Ref_Ilace_MV_0.out */
+ {0, 4, 5803}, /* vc1DEC_Two_Field_Ref_Ilace_MV_1.out */
+ {0, 4, 5983}, /* vc1DEC_Two_Field_Ref_Ilace_MV_2.out */
+ {0, 4, 6156}, /* vc1DEC_Two_Field_Ref_Ilace_MV_3.out */
+ {0, 4, 6339}, /* vc1DEC_Two_Field_Ref_Ilace_MV_4.out */
+ {0, 4, 6518}, /* vc1DEC_Two_Field_Ref_Ilace_MV_5.out */
+ {0, 3, 6696}, /* vc1DEC_Two_Field_Ref_Ilace_MV_6.out */
+ {0, 4, 6869}, /* vc1DEC_Two_Field_Ref_Ilace_MV_7.out */
+};
+
+
+const IMG_UINT8 gui8vc1VlcIndexSize = 83;
+
+/* EOF */
diff --git a/src/vc1_vlc.c b/src/vc1_vlc.c
new file mode 100644
index 0000000..c168a87
--- /dev/null
+++ b/src/vc1_vlc.c
@@ -0,0 +1,7169 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ * Waldo Bastian <waldo.bastian@intel.com>
+ *
+ */
+
+
+/* format is: opcode, width, symbol */
+/* all VLC tables are concatenated */
+/* index infomation is stored in gui16vc1VlcIndexData[][] */
+
+#include <img_types.h>
+
+IMG_UINT16 gaui16vc1VlcTableData[] = {
+ /* vc1DEC_Code_3x2_2x3_tiles.out */
+ 0, 3, 16,
+ 1, 1, 31,
+ 4, 3, 1,
+ 4, 3, 2,
+ 4, 3, 4,
+ 4, 3, 8,
+ 4, 3, 16,
+ 4, 3, 32,
+ 4, 0, 0,
+ 4, 0, 0,
+ 4, 0, 0,
+ 4, 0, 0,
+ 4, 0, 0,
+ 4, 0, 0,
+ 4, 0, 0,
+ 4, 0, 0,
+ 4, 3, 3,
+ 4, 3, 5,
+ 4, 3, 6,
+ 4, 3, 9,
+ 4, 3, 10,
+ 4, 3, 12,
+ 4, 3, 17,
+ 4, 3, 18,
+ 4, 3, 20,
+ 4, 3, 24,
+ 4, 3, 33,
+ 4, 3, 34,
+ 4, 3, 36,
+ 4, 3, 40,
+ 4, 3, 48,
+ 3, 3, 0,
+ 0, 4, 3,
+ 0, 2, 34,
+ 4, 1, 63,
+ 3, 4, 0,
+ 3, 4, 0,
+ 3, 4, 0,
+ 4, 4, 35,
+ 3, 4, 0,
+ 4, 4, 37,
+ 4, 4, 38,
+ 4, 4, 7,
+ 3, 4, 0,
+ 4, 4, 41,
+ 4, 4, 42,
+ 4, 4, 11,
+ 4, 4, 44,
+ 4, 4, 13,
+ 4, 4, 14,
+ 3, 4, 0,
+ 3, 4, 0,
+ 4, 4, 49,
+ 4, 4, 50,
+ 4, 4, 19,
+ 4, 4, 52,
+ 4, 4, 21,
+ 4, 4, 22,
+ 3, 4, 0,
+ 4, 4, 56,
+ 4, 4, 25,
+ 4, 4, 26,
+ 3, 4, 0,
+ 4, 4, 28,
+ 3, 4, 0,
+ 3, 4, 0,
+ 3, 4, 0,
+ 0, 3, 8,
+ 3, 2, 0,
+ 4, 2, 62,
+ 4, 2, 61,
+ 4, 2, 59,
+ 4, 2, 55,
+ 4, 2, 47,
+ 4, 2, 31,
+ 4, 3, 60,
+ 4, 3, 58,
+ 4, 3, 57,
+ 4, 3, 54,
+ 4, 3, 53,
+ 4, 3, 51,
+ 4, 3, 46,
+ 4, 3, 45,
+ 4, 3, 43,
+ 4, 3, 39,
+ 4, 3, 30,
+ 4, 3, 29,
+ 4, 3, 27,
+ 4, 3, 23,
+ 4, 3, 15,
+ 3, 3, 0,
+ /* vc1DEC_FourMV_Pattern_0.out */
+ 4, 2, 11,
+ 4, 2, 13,
+ 4, 2, 14,
+ 0, 1, 5,
+ 4, 1, 15,
+ 4, 1, 15,
+ 0, 1, 6,
+ 2, 1, 9,
+ 4, 1, 4,
+ 4, 1, 8,
+ 4, 1, 0,
+ 4, 1, 6,
+ 4, 1, 9,
+ 4, 1, 3,
+ 4, 1, 5,
+ 4, 1, 10,
+ 4, 0, 7,
+ 6, 0, 0,
+ 4, 1, 12,
+ /* vc1DEC_FourMV_Pattern_1.out */
+ 4, 1, 15,
+ 4, 1, 15,
+ 4, 1, 15,
+ 4, 1, 15,
+ 4, 3, 3,
+ 4, 3, 5,
+ 4, 3, 10,
+ 4, 3, 12,
+ 4, 3, 0,
+ 6, 0, 0,
+ 0, 0, 6,
+ 4, 3, 7,
+ 4, 3, 11,
+ 4, 3, 13,
+ 4, 3, 14,
+ 0, 0, 3,
+ 4, 0, 4,
+ 4, 0, 8,
+ 4, 0, 6,
+ 4, 0, 9,
+ /* vc1DEC_FourMV_Pattern_2.out */
+ 4, 2, 15,
+ 4, 2, 15,
+ 4, 3, 3,
+ 4, 3, 5,
+ 4, 3, 10,
+ 4, 3, 12,
+ 4, 3, 1,
+ 4, 3, 2,
+ 4, 3, 4,
+ 4, 3, 7,
+ 4, 3, 8,
+ 4, 3, 11,
+ 4, 3, 13,
+ 4, 3, 14,
+ 0, 0, 2,
+ 4, 3, 0,
+ 4, 0, 6,
+ 4, 0, 9,
+ /* vc1DEC_FourMV_Pattern_3.out */
+ 4, 1, 0,
+ 4, 1, 0,
+ 4, 1, 0,
+ 4, 1, 0,
+ 4, 3, 3,
+ 4, 3, 5,
+ 4, 3, 10,
+ 4, 3, 12,
+ 0, 0, 8,
+ 6, 0, 6,
+ 4, 3, 15,
+ 4, 3, 1,
+ 4, 3, 2,
+ 4, 3, 4,
+ 4, 3, 8,
+ 0, 0, 3,
+ 4, 0, 7,
+ 4, 0, 11,
+ 4, 0, 6,
+ 4, 0, 9,
+ /* vc1DEC_High_Mot_Chroma_DC_Diff_VLC.out */
+ 4, 1, 0,
+ 4, 1, 0,
+ 4, 1, 0,
+ 4, 1, 0,
+ 4, 1, 1,
+ 4, 1, 1,
+ 4, 1, 1,
+ 4, 1, 1,
+ 4, 2, 2,
+ 4, 2, 2,
+ 2, 1, 6,
+ 4, 3, 4,
+ 1, 3, 17,
+ 4, 3, 5,
+ 4, 2, 3,
+ 4, 2, 3,
+ 4, 0, 6,
+ 1, 2, 2,
+ 4, 1, 7,
+ 4, 0, 10,
+ 4, 1, 13,
+ 2, 1, 2,
+ 4, 2, 16,
+ 4, 0, 19,
+ 2, 1, 2,
+ 4, 1, 21,
+ 4, 0, 26,
+ 4, 1, 29,
+ 6, 0, 15,
+ 1, 4, 5,
+ 4, 1, 9,
+ 4, 2, 12,
+ 1, 3, 38,
+ 4, 3, 15,
+ 4, 0, 8,
+ 4, 1, 11,
+ 4, 2, 14,
+ 4, 3, 17,
+ 1, 1, 2,
+ 6, 0, 11,
+ 4, 0, 22,
+ 4, 1, 27,
+ 0, 2, 1,
+ 4, 2, 37,
+ 2, 2, 7,
+ 5, 0, 20,
+ 0, 0, 22,
+ 5, 0, 22,
+ 4, 2, 33,
+ 4, 2, 42,
+ 4, 2, 38,
+ 4, 0, 39,
+ 4, 1, 46,
+ 0, 2, 2,
+ 4, 2, 47,
+ 1, 3, 8,
+ 5, 2, 24,
+ 5, 2, 28,
+ 5, 2, 32,
+ 5, 2, 36,
+ 5, 2, 40,
+ 5, 2, 44,
+ 5, 2, 48,
+ 5, 2, 52,
+ 5, 1, 56,
+ 5, 0, 58,
+ 4, 3, 118,
+ 4, 3, 254,
+ 4, 0, 36,
+ 4, 0, 43,
+ 4, 0, 18,
+ 4, 1, 20,
+ 4, 2, 25,
+ 0, 0, 2,
+ 4, 3, 28,
+ 5, 0, 17,
+ 4, 0, 30,
+ /* vc1DEC_High_Mot_Inter_VLC.out */
+ 4, 3, 0,
+ 4, 3, 0,
+ 4, 3, 1,
+ 4, 3, 1,
+ 0, 4, 28,
+ 5, 0, 34,
+ 4, 4, 2,
+ 4, 4, 3,
+ 4, 4, 46,
+ 4, 4, 47,
+ 0, 3, 110,
+ 5, 0, 2,
+ 4, 3, 198,
+ 4, 3, 198,
+ 4, 3, 199,
+ 4, 3, 199,
+ 0, 4, 120,
+ 5, 0, 117,
+ 4, 4, 216,
+ 4, 4, 217,
+ 0, 4, 185,
+ 0, 0, 250,
+ 0, 4, 251,
+ 0, 4, 336,
+ 5, 0, 42,
+ 5, 0, 121,
+ 4, 4, 226,
+ 4, 4, 227,
+ 0, 4, 387,
+ 5, 0, 124,
+ 5, 0, 24,
+ 0, 0, 464,
+ 4, 2, 264,
+ 4, 2, 264,
+ 4, 2, 264,
+ 4, 2, 264,
+ 4, 2, 265,
+ 4, 2, 265,
+ 4, 2, 265,
+ 4, 2, 265,
+ 4, 4, 146,
+ 4, 4, 147,
+ 5, 0, 44,
+ 5, 0, 76,
+ 4, 3, 126,
+ 4, 3, 126,
+ 4, 3, 127,
+ 4, 3, 127,
+ 5, 0, 147,
+ 0, 2, 15,
+ 4, 4, 72,
+ 4, 4, 73,
+ 4, 3, 86,
+ 4, 3, 86,
+ 4, 3, 87,
+ 4, 3, 87,
+ 4, 3, 276,
+ 4, 3, 276,
+ 4, 3, 277,
+ 4, 3, 277,
+ 0, 4, 12,
+ 0, 3, 43,
+ 4, 4, 100,
+ 4, 4, 101,
+ 4, 2, 306,
+ 4, 2, 307,
+ 5, 0, 39,
+ 5, 0, 111,
+ 5, 0, 162,
+ 5, 0, 52,
+ 4, 2, 262,
+ 4, 2, 263,
+ 4, 1, 310,
+ 4, 1, 310,
+ 4, 1, 310,
+ 4, 1, 310,
+ 4, 1, 310,
+ 4, 1, 310,
+ 4, 1, 310,
+ 4, 1, 310,
+ 4, 1, 311,
+ 4, 1, 311,
+ 4, 1, 311,
+ 4, 1, 311,
+ 4, 1, 311,
+ 4, 1, 311,
+ 4, 1, 311,
+ 4, 1, 311,
+ 4, 4, 138,
+ 4, 4, 139,
+ 4, 4, 94,
+ 4, 4, 95,
+ 4, 3, 130,
+ 4, 3, 130,
+ 4, 3, 131,
+ 4, 3, 131,
+ 4, 3, 30,
+ 4, 3, 30,
+ 4, 3, 31,
+ 4, 3, 31,
+ 5, 0, 48,
+ 5, 0, 112,
+ 4, 4, 278,
+ 4, 4, 279,
+ 4, 1, 142,
+ 4, 1, 142,
+ 4, 1, 142,
+ 4, 1, 142,
+ 4, 1, 143,
+ 4, 1, 143,
+ 4, 1, 143,
+ 4, 1, 143,
+ 4, 2, 148,
+ 4, 2, 148,
+ 4, 2, 149,
+ 4, 2, 149,
+ 5, 0, 160,
+ 5, 0, 40,
+ 4, 3, 154,
+ 4, 3, 155,
+ 4, 1, 6,
+ 4, 1, 6,
+ 4, 1, 6,
+ 4, 1, 6,
+ 4, 1, 7,
+ 4, 1, 7,
+ 4, 1, 7,
+ 4, 1, 7,
+ 4, 3, 218,
+ 4, 3, 219,
+ 4, 3, 280,
+ 4, 3, 281,
+ 5, 0, 7,
+ 5, 0, 114,
+ 4, 3, 284,
+ 4, 3, 285,
+ 4, 2, 70,
+ 4, 2, 70,
+ 4, 2, 70,
+ 4, 2, 70,
+ 4, 2, 71,
+ 4, 2, 71,
+ 4, 2, 71,
+ 4, 2, 71,
+ 5, 0, 79,
+ 1, 1, 23,
+ 5, 0, 9,
+ 0, 4, 24,
+ 4, 3, 140,
+ 4, 3, 140,
+ 4, 3, 141,
+ 4, 3, 141,
+ 4, 2, 50,
+ 4, 2, 50,
+ 4, 2, 50,
+ 4, 2, 50,
+ 4, 2, 51,
+ 4, 2, 51,
+ 4, 2, 51,
+ 4, 2, 51,
+ 5, 0, 150,
+ 0, 0, 42,
+ 5, 0, 149,
+ 5, 0, 122,
+ 4, 4, 110,
+ 4, 4, 111,
+ 5, 0, 152,
+ 5, 0, 60,
+ 5, 0, 51,
+ 5, 0, 115,
+ 5, 0, 13,
+ 4, 3, 208,
+ 4, 3, 208,
+ 4, 3, 209,
+ 4, 3, 209,
+ 4, 4, 36,
+ 4, 4, 37,
+ 4, 4, 64,
+ 4, 4, 65,
+ 4, 2, 178,
+ 4, 2, 178,
+ 4, 2, 178,
+ 4, 2, 178,
+ 4, 2, 179,
+ 4, 2, 179,
+ 4, 2, 179,
+ 4, 2, 179,
+ 4, 3, 114,
+ 4, 3, 114,
+ 4, 3, 115,
+ 4, 3, 115,
+ 5, 0, 107,
+ 5, 0, 21,
+ 4, 4, 322,
+ 4, 4, 323,
+ 4, 3, 274,
+ 4, 3, 274,
+ 4, 3, 275,
+ 4, 3, 275,
+ 4, 3, 32,
+ 4, 3, 32,
+ 4, 3, 33,
+ 4, 3, 33,
+ 5, 0, 11,
+ 5, 0, 92,
+ 4, 3, 288,
+ 4, 3, 288,
+ 4, 3, 289,
+ 4, 3, 289,
+ 4, 3, 134,
+ 4, 3, 134,
+ 4, 3, 135,
+ 4, 3, 135,
+ 4, 3, 12,
+ 4, 3, 12,
+ 4, 3, 13,
+ 4, 3, 13,
+ 0, 0, 20,
+ 0, 4, 21,
+ 5, 0, 102,
+ 5, 0, 37,
+ 4, 1, 98,
+ 4, 1, 98,
+ 4, 1, 98,
+ 4, 1, 98,
+ 4, 1, 98,
+ 4, 1, 98,
+ 4, 1, 98,
+ 4, 1, 98,
+ 4, 1, 99,
+ 4, 1, 99,
+ 4, 1, 99,
+ 4, 1, 99,
+ 4, 1, 99,
+ 4, 1, 99,
+ 4, 1, 99,
+ 4, 1, 99,
+ 5, 0, 166,
+ 5, 0, 156,
+ 4, 3, 290,
+ 4, 3, 290,
+ 4, 3, 291,
+ 4, 3, 291,
+ 5, 0, 120,
+ 5, 0, 98,
+ 4, 4, 252,
+ 4, 4, 253,
+ 4, 2, 266,
+ 4, 2, 266,
+ 4, 2, 266,
+ 4, 2, 266,
+ 4, 2, 267,
+ 4, 2, 267,
+ 4, 2, 267,
+ 4, 2, 267,
+ 4, 1, 90,
+ 4, 1, 90,
+ 4, 1, 90,
+ 4, 1, 90,
+ 4, 1, 90,
+ 4, 1, 90,
+ 4, 1, 90,
+ 4, 1, 90,
+ 4, 1, 91,
+ 4, 1, 91,
+ 4, 1, 91,
+ 4, 1, 91,
+ 4, 1, 91,
+ 4, 1, 91,
+ 4, 1, 91,
+ 4, 1, 91,
+ 5, 0, 100,
+ 5, 0, 127,
+ 4, 2, 118,
+ 4, 2, 118,
+ 4, 2, 118,
+ 4, 2, 118,
+ 4, 2, 119,
+ 4, 2, 119,
+ 4, 2, 119,
+ 4, 2, 119,
+ 4, 2, 272,
+ 4, 2, 272,
+ 4, 2, 272,
+ 4, 2, 272,
+ 4, 2, 273,
+ 4, 2, 273,
+ 4, 2, 273,
+ 4, 2, 273,
+ 4, 4, 302,
+ 4, 4, 303,
+ 4, 3, 508,
+ 4, 3, 508,
+ 0, 4, 12,
+ 2, 1, 43,
+ 4, 4, 236,
+ 4, 4, 237,
+ 4, 3, 52,
+ 4, 3, 52,
+ 4, 3, 53,
+ 4, 3, 53,
+ 4, 4, 16,
+ 4, 4, 17,
+ 1, 1, 37,
+ 0, 3, 39,
+ 4, 1, 112,
+ 4, 1, 112,
+ 4, 1, 112,
+ 4, 1, 112,
+ 4, 1, 112,
+ 4, 1, 112,
+ 4, 1, 112,
+ 4, 1, 112,
+ 4, 1, 113,
+ 4, 1, 113,
+ 4, 1, 113,
+ 4, 1, 113,
+ 4, 1, 113,
+ 4, 1, 113,
+ 4, 1, 113,
+ 4, 1, 113,
+ 4, 3, 62,
+ 4, 3, 62,
+ 4, 3, 63,
+ 4, 3, 63,
+ 4, 3, 330,
+ 4, 3, 330,
+ 4, 3, 331,
+ 4, 3, 331,
+ 4, 4, 232,
+ 4, 4, 233,
+ 5, 0, 129,
+ 5, 0, 78,
+ 4, 4, 38,
+ 4, 4, 39,
+ 5, 0, 22,
+ 5, 0, 88,
+ 5, 0, 85,
+ 5, 0, 159,
+ 5, 0, 14,
+ 5, 0, 128,
+ 5, 0, 135,
+ 5, 0, 93,
+ 4, 1, 136,
+ 4, 1, 136,
+ 4, 1, 136,
+ 4, 1, 136,
+ 4, 1, 137,
+ 4, 1, 137,
+ 4, 1, 137,
+ 4, 1, 137,
+ 5, 0, 94,
+ 5, 0, 106,
+ 4, 3, 246,
+ 4, 3, 247,
+ 4, 2, 238,
+ 4, 2, 238,
+ 4, 2, 239,
+ 4, 2, 239,
+ 4, 4, 292,
+ 4, 4, 293,
+ 5, 0, 10,
+ 5, 0, 64,
+ 0, 3, 28,
+ 0, 2, 43,
+ 4, 4, 54,
+ 4, 4, 55,
+ 4, 2, 10,
+ 4, 2, 10,
+ 4, 2, 10,
+ 4, 2, 10,
+ 4, 2, 11,
+ 4, 2, 11,
+ 4, 2, 11,
+ 4, 2, 11,
+ 4, 1, 260,
+ 4, 1, 260,
+ 4, 1, 260,
+ 4, 1, 260,
+ 4, 1, 260,
+ 4, 1, 260,
+ 4, 1, 260,
+ 4, 1, 260,
+ 4, 1, 261,
+ 4, 1, 261,
+ 4, 1, 261,
+ 4, 1, 261,
+ 4, 1, 261,
+ 4, 1, 261,
+ 4, 1, 261,
+ 4, 1, 261,
+ 5, 0, 66,
+ 5, 0, 53,
+ 4, 3, 144,
+ 4, 3, 145,
+ 5, 0, 164,
+ 5, 0, 33,
+ 4, 3, 326,
+ 4, 3, 327,
+ 4, 1, 24,
+ 4, 1, 24,
+ 4, 1, 24,
+ 4, 1, 24,
+ 4, 1, 25,
+ 4, 1, 25,
+ 4, 1, 25,
+ 4, 1, 25,
+ 4, 2, 60,
+ 4, 2, 61,
+ 5, 0, 17,
+ 5, 1, 95,
+ 4, 1, 76,
+ 4, 1, 76,
+ 4, 1, 77,
+ 4, 1, 77,
+ 4, 1, 108,
+ 4, 1, 108,
+ 4, 1, 108,
+ 4, 1, 108,
+ 4, 1, 108,
+ 4, 1, 108,
+ 4, 1, 108,
+ 4, 1, 108,
+ 4, 1, 109,
+ 4, 1, 109,
+ 4, 1, 109,
+ 4, 1, 109,
+ 4, 1, 109,
+ 4, 1, 109,
+ 4, 1, 109,
+ 4, 1, 109,
+ 4, 3, 202,
+ 4, 3, 202,
+ 4, 3, 203,
+ 4, 3, 203,
+ 5, 0, 125,
+ 5, 0, 28,
+ 0, 2, 10,
+ 1, 1, 17,
+ 5, 0, 110,
+ 5, 0, 81,
+ 2, 1, 17,
+ 0, 0, 19,
+ 4, 4, 296,
+ 4, 4, 297,
+ 5, 0, 83,
+ 0, 4, 17,
+ 4, 1, 316,
+ 4, 1, 316,
+ 4, 1, 317,
+ 4, 1, 317,
+ 5, 0, 82,
+ 5, 0, 141,
+ 4, 2, 286,
+ 4, 2, 287,
+ 5, 0, 29,
+ 5, 0, 157,
+ 5, 0, 46,
+ 5, 0, 103,
+ 5, 0, 90,
+ 5, 0, 91,
+ 5, 0, 154,
+ 5, 0, 87,
+ 4, 4, 40,
+ 4, 4, 41,
+ 5, 0, 41,
+ 5, 0, 86,
+ 4, 4, 116,
+ 4, 4, 117,
+ 4, 4, 168,
+ 4, 4, 169,
+ 4, 3, 210,
+ 4, 3, 210,
+ 4, 3, 211,
+ 4, 3, 211,
+ 4, 4, 150,
+ 4, 4, 151,
+ 4, 4, 194,
+ 4, 4, 195,
+ 4, 2, 122,
+ 4, 2, 122,
+ 4, 2, 122,
+ 4, 2, 122,
+ 4, 2, 123,
+ 4, 2, 123,
+ 4, 2, 123,
+ 4, 2, 123,
+ 4, 3, 160,
+ 4, 3, 160,
+ 4, 3, 161,
+ 4, 3, 161,
+ 4, 4, 334,
+ 4, 4, 335,
+ 4, 4, 124,
+ 4, 4, 125,
+ 5, 0, 134,
+ 5, 0, 4,
+ /* vc1DEC_High_Mot_Intra_VLC.out */
+ 4, 4, 38,
+ 4, 4, 39,
+ 0, 2, 30,
+ 5, 0, 34,
+ 0, 1, 63,
+ 0, 2, 86,
+ 1, 1, 132,
+ 1, 2, 142,
+ 4, 2, 0,
+ 4, 2, 0,
+ 4, 2, 0,
+ 4, 2, 0,
+ 4, 2, 1,
+ 4, 2, 1,
+ 4, 2, 1,
+ 4, 2, 1,
+ 5, 0, 20,
+ 0, 1, 174,
+ 5, 0, 3,
+ 5, 0, 46,
+ 4, 3, 2,
+ 4, 3, 2,
+ 4, 3, 3,
+ 4, 3, 3,
+ 1, 1, 193,
+ 5, 0, 125,
+ 4, 4, 4,
+ 4, 4, 5,
+ 4, 4, 238,
+ 4, 4, 239,
+ 2, 1, 192,
+ 0, 3, 194,
+ 4, 2, 42,
+ 4, 2, 43,
+ 1, 1, 6,
+ 5, 0, 6,
+ 0, 0, 15,
+ 5, 0, 143,
+ 1, 3, 15,
+ 5, 0, 145,
+ 5, 0, 58,
+ 1, 4, 2,
+ 5, 0, 37,
+ 5, 0, 59,
+ 5, 0, 27,
+ 0, 0, 4,
+ 5, 0, 114,
+ 5, 0, 45,
+ 5, 0, 140,
+ 5, 0, 71,
+ 5, 0, 182,
+ 5, 0, 126,
+ 5, 0, 23,
+ 5, 0, 93,
+ 1, 2, 4,
+ 5, 1, 171,
+ 2, 1, 8,
+ 5, 0, 168,
+ 5, 0, 38,
+ 0, 0, 3,
+ 5, 0, 66,
+ 5, 0, 41,
+ 5, 0, 78,
+ 5, 0, 178,
+ 5, 0, 15,
+ 5, 0, 17,
+ 5, 0, 133,
+ 0, 0, 4,
+ 5, 0, 35,
+ 0, 1, 4,
+ 5, 0, 68,
+ 5, 0, 22,
+ 5, 0, 80,
+ 5, 0, 90,
+ 1, 4, 3,
+ 4, 1, 508,
+ 5, 0, 8,
+ 5, 0, 96,
+ 2, 1, 5,
+ 2, 1, 7,
+ 5, 0, 92,
+ 5, 0, 101,
+ 5, 0, 137,
+ 5, 0, 13,
+ 5, 0, 175,
+ 5, 0, 146,
+ 5, 0, 128,
+ 0, 0, 2,
+ 5, 0, 43,
+ 5, 0, 32,
+ 5, 0, 103,
+ 0, 1, 8,
+ 2, 4, 17,
+ 4, 2, 10,
+ 4, 2, 11,
+ 5, 0, 147,
+ 5, 0, 157,
+ 1, 3, 23,
+ 5, 0, 149,
+ 5, 0, 73,
+ 2, 2, 3,
+ 5, 0, 131,
+ 5, 0, 99,
+ 5, 0, 166,
+ 0, 0, 3,
+ 5, 0, 109,
+ 5, 0, 110,
+ 5, 0, 29,
+ 5, 0, 156,
+ 5, 0, 64,
+ 5, 0, 135,
+ 0, 0, 4,
+ 5, 0, 106,
+ 1, 1, 4,
+ 5, 0, 52,
+ 5, 0, 169,
+ 5, 0, 107,
+ 5, 0, 31,
+ 5, 0, 56,
+ 5, 0, 105,
+ 1, 2, 5,
+ 0, 0, 12,
+ 5, 0, 127,
+ 1, 1, 12,
+ 5, 0, 132,
+ 5, 0, 10,
+ 5, 0, 12,
+ 1, 2, 2,
+ 5, 0, 170,
+ 5, 0, 97,
+ 5, 0, 117,
+ 5, 0, 118,
+ 5, 0, 33,
+ 5, 0, 88,
+ 5, 0, 85,
+ 5, 0, 123,
+ 5, 0, 115,
+ 5, 0, 44,
+ 5, 0, 57,
+ 2, 3, 2,
+ 5, 0, 72,
+ 5, 0, 84,
+ 5, 0, 48,
+ 2, 1, 3,
+ 5, 0, 165,
+ 5, 0, 65,
+ 5, 0, 91,
+ 5, 0, 40,
+ 5, 0, 74,
+ 5, 0, 4,
+ 0, 1, 3,
+ 1, 2, 34,
+ 5, 0, 7,
+ 0, 1, 4,
+ 5, 0, 159,
+ 5, 0, 161,
+ 0, 2, 13,
+ 5, 0, 26,
+ 2, 2, 3,
+ 5, 0, 102,
+ 0, 1, 5,
+ 5, 0, 142,
+ 5, 0, 89,
+ 5, 0, 61,
+ 5, 0, 67,
+ 5, 0, 113,
+ 5, 0, 111,
+ 5, 0, 177,
+ 5, 0, 181,
+ 5, 0, 176,
+ 0, 0, 7,
+ 5, 0, 14,
+ 5, 0, 136,
+ 5, 0, 173,
+ 5, 0, 28,
+ 2, 2, 4,
+ 0, 0, 7,
+ 5, 0, 148,
+ 5, 0, 86,
+ 5, 0, 152,
+ 5, 0, 75,
+ 5, 0, 98,
+ 5, 0, 62,
+ 5, 0, 112,
+ 5, 0, 42,
+ 5, 0, 69,
+ 5, 0, 94,
+ 0, 0, 2,
+ 5, 0, 167,
+ 5, 0, 51,
+ 5, 0, 100,
+ 5, 0, 138,
+ 5, 0, 120,
+ 2, 4, 2,
+ 1, 1, 12,
+ 5, 0, 151,
+ 0, 0, 5,
+ 5, 0, 163,
+ 5, 0, 50,
+ 1, 1, 4,
+ 5, 0, 60,
+ 5, 0, 49,
+ 5, 0, 25,
+ 5, 0, 154,
+ 5, 0, 79,
+ 5, 0, 116,
+ 5, 0, 153,
+ 1, 4, 2,
+ 5, 0, 9,
+ 5, 0, 81,
+ 5, 0, 122,
+ 5, 0, 144,
+ 0, 0, 3,
+ 5, 0, 83,
+ 5, 0, 124,
+ 5, 0, 184,
+ 5, 0, 129,
+ 5, 0, 130,
+ 0, 0, 2,
+ 5, 0, 141,
+ 5, 0, 36,
+ 5, 0, 87,
+ 5, 0, 63,
+ 5, 0, 76,
+ 5, 0, 47,
+ 2, 1, 16,
+ 2, 1, 18,
+ 1, 1, 22,
+ 5, 0, 121,
+ 5, 0, 24,
+ 1, 3, 26,
+ 4, 3, 310,
+ 4, 3, 311,
+ 4, 1, 268,
+ 4, 1, 268,
+ 4, 1, 268,
+ 4, 1, 268,
+ 4, 1, 269,
+ 4, 1, 269,
+ 4, 1, 269,
+ 4, 1, 269,
+ 5, 0, 77,
+ 5, 0, 70,
+ 5, 0, 158,
+ 5, 0, 11,
+ 0, 0, 2,
+ 5, 0, 104,
+ 5, 0, 108,
+ 5, 0, 174,
+ 5, 0, 164,
+ 0, 1, 2,
+ 5, 0, 139,
+ 5, 1, 54,
+ 5, 0, 30,
+ 5, 0, 53,
+ 5, 0, 180,
+ 1, 3, 5,
+ 5, 0, 95,
+ 5, 0, 82,
+ 5, 0, 179,
+ 5, 0, 160,
+ 5, 0, 39,
+ 0, 0, 4,
+ 5, 0, 162,
+ 5, 0, 18,
+ 5, 0, 183,
+ 5, 0, 150,
+ 5, 0, 16,
+ /* vc1DEC_High_Mot_Luminance_DC_Diff_VLC.out */
+ 2, 1, 16,
+ 2, 2, 77,
+ 4, 3, 3,
+ 0, 1, 81,
+ 1, 1, 102,
+ 4, 3, 4,
+ 4, 2, 2,
+ 4, 2, 2,
+ 4, 1, 0,
+ 4, 1, 0,
+ 4, 1, 0,
+ 4, 1, 0,
+ 4, 1, 1,
+ 4, 1, 1,
+ 4, 1, 1,
+ 4, 1, 1,
+ 4, 0, 5,
+ 0, 1, 2,
+ 4, 1, 8,
+ 4, 1, 17,
+ 2, 1, 3,
+ 4, 1, 18,
+ 0, 1, 13,
+ 4, 0, 24,
+ 2, 1, 2,
+ 4, 1, 30,
+ 4, 0, 34,
+ 2, 1, 2,
+ 4, 1, 38,
+ 4, 0, 42,
+ 2, 1, 2,
+ 4, 1, 48,
+ 4, 0, 51,
+ 4, 1, 57,
+ 4, 1, 55,
+ 4, 1, 31,
+ 4, 1, 33,
+ 2, 2, 2,
+ 4, 1, 32,
+ 4, 0, 35,
+ 1, 3, 3,
+ 4, 2, 43,
+ 5, 0, 23,
+ 4, 0, 45,
+ 1, 2, 4,
+ 4, 2, 53,
+ 0, 0, 30,
+ 4, 3, 56,
+ 4, 0, 50,
+ 2, 1, 3,
+ 2, 1, 23,
+ 4, 2, 59,
+ 4, 0, 61,
+ 2, 1, 2,
+ 4, 1, 63,
+ 4, 0, 65,
+ 0, 2, 2,
+ 4, 1, 67,
+ 5, 2, 40,
+ 5, 2, 44,
+ 5, 2, 48,
+ 5, 2, 52,
+ 1, 2, 4,
+ 6, 1, 34,
+ 1, 1, 6,
+ 5, 1, 38,
+ 5, 1, 56,
+ 5, 0, 58,
+ 4, 2, 118,
+ 4, 2, 254,
+ 6, 0, 36,
+ 4, 1, 68,
+ 4, 1, 75,
+ 4, 0, 62,
+ 4, 1, 66,
+ 4, 1, 64,
+ 4, 0, 60,
+ 4, 0, 58,
+ 4, 0, 6,
+ 4, 1, 9,
+ 0, 0, 2,
+ 4, 2, 13,
+ 4, 0, 19,
+ 6, 0, 12,
+ 1, 4, 4,
+ 4, 1, 10,
+ 1, 1, 17,
+ 4, 1, 11,
+ 4, 0, 14,
+ 4, 1, 20,
+ 4, 2, 27,
+ 2, 1, 3,
+ 2, 1, 5,
+ 4, 4, 37,
+ 4, 0, 36,
+ 4, 1, 39,
+ 4, 1, 40,
+ 4, 0, 41,
+ 1, 1, 2,
+ 4, 1, 44,
+ 4, 0, 49,
+ 4, 1, 54,
+ 4, 1, 52,
+ 4, 0, 15,
+ 5, 0, 14,
+ 4, 1, 21,
+ 4, 0, 7,
+ 0, 0, 2,
+ 4, 1, 12,
+ 4, 0, 16,
+ 5, 0, 11,
+ /* vc1DEC_High_Rate_Inter_VLC.out */
+ 4, 3, 2,
+ 4, 3, 2,
+ 4, 3, 3,
+ 4, 3, 3,
+ 5, 0, 3,
+ 2, 1, 27,
+ 1, 2, 45,
+ 5, 0, 59,
+ 0, 1, 51,
+ 0, 0, 67,
+ 5, 0, 33,
+ 1, 2, 67,
+ 4, 3, 64,
+ 4, 3, 64,
+ 4, 3, 65,
+ 4, 3, 65,
+ 4, 2, 0,
+ 4, 2, 0,
+ 4, 2, 0,
+ 4, 2, 0,
+ 4, 2, 1,
+ 4, 2, 1,
+ 4, 2, 1,
+ 4, 2, 1,
+ 4, 4, 90,
+ 4, 4, 91,
+ 2, 1, 107,
+ 5, 0, 53,
+ 0, 2, 132,
+ 2, 2, 159,
+ 5, 0, 2,
+ 2, 4, 181,
+ 5, 0, 116,
+ 0, 1, 2,
+ 5, 0, 126,
+ 1, 3, 4,
+ 1, 3, 8,
+ 5, 0, 87,
+ 5, 0, 11,
+ 5, 0, 152,
+ 5, 0, 40,
+ 5, 0, 25,
+ 5, 0, 112,
+ 5, 0, 125,
+ 5, 0, 91,
+ 5, 0, 19,
+ 0, 0, 3,
+ 5, 0, 44,
+ 5, 0, 108,
+ 5, 0, 52,
+ 5, 0, 31,
+ 5, 0, 68,
+ 5, 0, 6,
+ 2, 2, 2,
+ 5, 0, 132,
+ 5, 0, 110,
+ 5, 0, 150,
+ 5, 0, 162,
+ 5, 0, 97,
+ 5, 0, 75,
+ 5, 0, 124,
+ 0, 0, 2,
+ 2, 5, 3,
+ 5, 0, 47,
+ 5, 0, 81,
+ 5, 0, 8,
+ 2, 2, 6,
+ 5, 0, 114,
+ 5, 0, 160,
+ 5, 0, 105,
+ 5, 0, 173,
+ 5, 0, 30,
+ 5, 0, 148,
+ 5, 0, 117,
+ 5, 0, 170,
+ 5, 0, 24,
+ 5, 0, 4,
+ 5, 0, 113,
+ 0, 2, 4,
+ 5, 0, 122,
+ 5, 0, 130,
+ 5, 0, 7,
+ 5, 0, 142,
+ 1, 2, 7,
+ 2, 1, 24,
+ 1, 2, 26,
+ 5, 0, 140,
+ 5, 0, 10,
+ 2, 1, 36,
+ 1, 1, 41,
+ 5, 0, 14,
+ 5, 0, 18,
+ 2, 1, 2,
+ 5, 0, 79,
+ 5, 0, 29,
+ 2, 3, 2,
+ 5, 0, 71,
+ 5, 0, 133,
+ 5, 0, 139,
+ 5, 0, 143,
+ 2, 2, 2,
+ 5, 0, 98,
+ 5, 0, 153,
+ 5, 0, 157,
+ 0, 0, 2,
+ 5, 0, 159,
+ 5, 0, 169,
+ 5, 0, 167,
+ 5, 0, 69,
+ 5, 0, 56,
+ 5, 0, 95,
+ 5, 0, 38,
+ 1, 3, 3,
+ 5, 0, 23,
+ 5, 0, 41,
+ 5, 0, 66,
+ 5, 0, 82,
+ 5, 0, 86,
+ 2, 2, 2,
+ 5, 0, 80,
+ 5, 0, 135,
+ 5, 0, 94,
+ 5, 0, 100,
+ 5, 0, 145,
+ 5, 0, 13,
+ 1, 1, 2,
+ 5, 0, 61,
+ 5, 0, 168,
+ 5, 0, 115,
+ 5, 0, 107,
+ 5, 0, 146,
+ 5, 0, 158,
+ 5, 0, 93,
+ 5, 0, 64,
+ 0, 1, 2,
+ 5, 0, 72,
+ 0, 1, 4,
+ 1, 2, 16,
+ 5, 0, 138,
+ 5, 0, 85,
+ 1, 1, 4,
+ 5, 0, 17,
+ 1, 1, 5,
+ 5, 0, 73,
+ 5, 0, 22,
+ 5, 0, 172,
+ 5, 0, 28,
+ 5, 0, 120,
+ 1, 1, 2,
+ 5, 0, 43,
+ 5, 0, 63,
+ 5, 0, 88,
+ 5, 0, 137,
+ 1, 1, 4,
+ 5, 0, 156,
+ 5, 0, 21,
+ 5, 0, 166,
+ 5, 0, 39,
+ 5, 0, 103,
+ 5, 0, 164,
+ 4, 2, 10,
+ 4, 2, 11,
+ 5, 0, 54,
+ 2, 4, 5,
+ 5, 0, 128,
+ 5, 0, 35,
+ 4, 1, 508,
+ 4, 1, 508,
+ 5, 0, 136,
+ 5, 0, 89,
+ 5, 0, 16,
+ 5, 0, 50,
+ 2, 4, 2,
+ 5, 0, 27,
+ 5, 0, 67,
+ 5, 0, 131,
+ 5, 0, 90,
+ 5, 0, 92,
+ 2, 1, 2,
+ 5, 0, 96,
+ 5, 0, 102,
+ 1, 1, 2,
+ 5, 0, 155,
+ 5, 0, 161,
+ 0, 0, 2,
+ 5, 0, 165,
+ 5, 0, 171,
+ 5, 0, 163,
+ 2, 2, 4,
+ 5, 0, 119,
+ 2, 3, 14,
+ 5, 0, 78,
+ 5, 0, 34,
+ 2, 3, 3,
+ 5, 0, 36,
+ 5, 0, 60,
+ 5, 0, 134,
+ 5, 0, 12,
+ 5, 0, 49,
+ 1, 1, 2,
+ 5, 0, 101,
+ 5, 0, 26,
+ 5, 0, 84,
+ 5, 0, 58,
+ 5, 0, 9,
+ 5, 0, 55,
+ 5, 0, 154,
+ 2, 1, 2,
+ 5, 0, 111,
+ 5, 0, 70,
+ 5, 0, 74,
+ 5, 0, 127,
+ 5, 0, 109,
+ 5, 0, 46,
+ 0, 1, 4,
+ 5, 0, 83,
+ 5, 0, 65,
+ 5, 0, 48,
+ 1, 2, 4,
+ 5, 0, 37,
+ 5, 0, 144,
+ 1, 1, 8,
+ 1, 1, 4,
+ 5, 0, 20,
+ 5, 0, 51,
+ 5, 0, 62,
+ 5, 0, 76,
+ 5, 0, 123,
+ 5, 0, 57,
+ 5, 0, 15,
+ 1, 2, 2,
+ 5, 0, 99,
+ 5, 0, 42,
+ 2, 2, 3,
+ 5, 0, 77,
+ 5, 0, 129,
+ 5, 0, 118,
+ 5, 0, 121,
+ 1, 2, 2,
+ 5, 0, 141,
+ 5, 0, 147,
+ 0, 0, 3,
+ 5, 0, 106,
+ 5, 0, 151,
+ 5, 0, 104,
+ 5, 0, 149,
+ /* vc1DEC_High_Rate_Intra_VLC.out */
+ 4, 2, 0,
+ 4, 2, 0,
+ 4, 2, 0,
+ 4, 2, 0,
+ 4, 2, 1,
+ 4, 2, 1,
+ 4, 2, 1,
+ 4, 2, 1,
+ 5, 0, 76,
+ 0, 4, 23,
+ 4, 4, 6,
+ 4, 4, 7,
+ 4, 3, 2,
+ 4, 3, 2,
+ 4, 3, 3,
+ 4, 3, 3,
+ 5, 0, 57,
+ 0, 4, 61,
+ 4, 4, 112,
+ 4, 4, 113,
+ 0, 0, 96,
+ 0, 4, 97,
+ 5, 0, 5,
+ 0, 4, 138,
+ 0, 4, 173,
+ 0, 4, 207,
+ 4, 4, 4,
+ 4, 4, 5,
+ 5, 0, 4,
+ 0, 4, 275,
+ 0, 4, 328,
+ 0, 4, 391,
+ 4, 3, 216,
+ 4, 3, 216,
+ 4, 3, 217,
+ 4, 3, 217,
+ 2, 1, 28,
+ 2, 2, 30,
+ 5, 0, 34,
+ 5, 0, 67,
+ 4, 2, 198,
+ 4, 2, 198,
+ 4, 2, 198,
+ 4, 2, 198,
+ 4, 2, 199,
+ 4, 2, 199,
+ 4, 2, 199,
+ 4, 2, 199,
+ 4, 2, 28,
+ 4, 2, 28,
+ 4, 2, 28,
+ 4, 2, 28,
+ 4, 2, 29,
+ 4, 2, 29,
+ 4, 2, 29,
+ 4, 2, 29,
+ 4, 4, 128,
+ 4, 4, 129,
+ 0, 0, 13,
+ 2, 3, 14,
+ 4, 3, 38,
+ 4, 3, 38,
+ 4, 3, 39,
+ 4, 3, 39,
+ 5, 0, 134,
+ 5, 0, 85,
+ 5, 0, 52,
+ 5, 0, 158,
+ 5, 0, 53,
+ 5, 0, 145,
+ 5, 0, 120,
+ 5, 0, 43,
+ 5, 0, 70,
+ 5, 0, 96,
+ 5, 0, 139,
+ 5, 0, 143,
+ 5, 0, 135,
+ 5, 0, 149,
+ 4, 1, 18,
+ 4, 1, 18,
+ 4, 1, 18,
+ 4, 1, 18,
+ 4, 1, 18,
+ 4, 1, 18,
+ 4, 1, 18,
+ 4, 1, 18,
+ 4, 1, 19,
+ 4, 1, 19,
+ 4, 1, 19,
+ 4, 1, 19,
+ 4, 1, 19,
+ 4, 1, 19,
+ 4, 1, 19,
+ 4, 1, 19,
+ 4, 4, 200,
+ 4, 4, 201,
+ 2, 1, 14,
+ 5, 0, 33,
+ 5, 0, 152,
+ 1, 1, 14,
+ 4, 4, 50,
+ 4, 4, 51,
+ 4, 2, 26,
+ 4, 2, 26,
+ 4, 2, 26,
+ 4, 2, 26,
+ 4, 2, 27,
+ 4, 2, 27,
+ 4, 2, 27,
+ 4, 2, 27,
+ 5, 0, 112,
+ 5, 0, 97,
+ 5, 0, 118,
+ 5, 0, 42,
+ 5, 0, 51,
+ 5, 0, 74,
+ 5, 0, 86,
+ 5, 0, 58,
+ 5, 0, 32,
+ 5, 0, 89,
+ 4, 4, 176,
+ 4, 4, 177,
+ 4, 3, 36,
+ 4, 3, 36,
+ 4, 3, 37,
+ 4, 3, 37,
+ 2, 1, 24,
+ 1, 1, 26,
+ 4, 4, 254,
+ 4, 4, 255,
+ 4, 4, 284,
+ 4, 4, 285,
+ 5, 0, 66,
+ 5, 0, 95,
+ 4, 3, 266,
+ 4, 3, 266,
+ 4, 3, 267,
+ 4, 3, 267,
+ 4, 3, 122,
+ 4, 3, 122,
+ 4, 3, 123,
+ 4, 3, 123,
+ 1, 1, 14,
+ 0, 0, 16,
+ 4, 4, 48,
+ 4, 4, 49,
+ 4, 3, 156,
+ 4, 3, 156,
+ 4, 3, 157,
+ 4, 3, 157,
+ 5, 0, 41,
+ 5, 0, 110,
+ 5, 0, 73,
+ 5, 0, 128,
+ 5, 0, 102,
+ 5, 0, 160,
+ 5, 0, 69,
+ 5, 0, 137,
+ 5, 0, 50,
+ 5, 0, 40,
+ 5, 0, 90,
+ 4, 1, 16,
+ 4, 1, 16,
+ 4, 1, 16,
+ 4, 1, 16,
+ 4, 1, 16,
+ 4, 1, 16,
+ 4, 1, 16,
+ 4, 1, 16,
+ 4, 1, 17,
+ 4, 1, 17,
+ 4, 1, 17,
+ 4, 1, 17,
+ 4, 1, 17,
+ 4, 1, 17,
+ 4, 1, 17,
+ 4, 1, 17,
+ 2, 2, 16,
+ 5, 0, 31,
+ 4, 4, 126,
+ 4, 4, 127,
+ 5, 0, 117,
+ 5, 0, 148,
+ 4, 4, 158,
+ 4, 4, 159,
+ 4, 2, 24,
+ 4, 2, 24,
+ 4, 2, 24,
+ 4, 2, 24,
+ 4, 2, 25,
+ 4, 2, 25,
+ 4, 2, 25,
+ 4, 2, 25,
+ 5, 0, 121,
+ 5, 0, 84,
+ 5, 0, 98,
+ 5, 0, 103,
+ 4, 4, 222,
+ 4, 4, 223,
+ 1, 1, 30,
+ 5, 0, 30,
+ 4, 3, 34,
+ 4, 3, 34,
+ 4, 3, 35,
+ 4, 3, 35,
+ 4, 4, 280,
+ 4, 4, 281,
+ 4, 4, 46,
+ 4, 4, 47,
+ 4, 3, 174,
+ 4, 3, 174,
+ 4, 3, 175,
+ 4, 3, 175,
+ 4, 2, 118,
+ 4, 2, 118,
+ 4, 2, 118,
+ 4, 2, 118,
+ 4, 2, 119,
+ 4, 2, 119,
+ 4, 2, 119,
+ 4, 2, 119,
+ 4, 2, 154,
+ 4, 2, 154,
+ 4, 2, 154,
+ 4, 2, 154,
+ 4, 2, 155,
+ 4, 2, 155,
+ 4, 2, 155,
+ 4, 2, 155,
+ 5, 0, 39,
+ 5, 0, 49,
+ 5, 0, 48,
+ 0, 4, 32,
+ 5, 0, 105,
+ 5, 0, 150,
+ 1, 2, 63,
+ 4, 3, 208,
+ 4, 3, 208,
+ 4, 3, 209,
+ 4, 3, 209,
+ 4, 2, 186,
+ 4, 2, 186,
+ 4, 2, 186,
+ 4, 2, 186,
+ 4, 2, 187,
+ 4, 2, 187,
+ 4, 2, 187,
+ 4, 2, 187,
+ 0, 0, 54,
+ 5, 0, 29,
+ 4, 4, 44,
+ 4, 4, 45,
+ 4, 3, 32,
+ 4, 3, 32,
+ 4, 3, 33,
+ 4, 3, 33,
+ 4, 2, 22,
+ 4, 2, 22,
+ 4, 2, 22,
+ 4, 2, 22,
+ 4, 2, 23,
+ 4, 2, 23,
+ 4, 2, 23,
+ 4, 2, 23,
+ 4, 1, 164,
+ 4, 1, 164,
+ 4, 1, 164,
+ 4, 1, 164,
+ 4, 1, 164,
+ 4, 1, 164,
+ 4, 1, 164,
+ 4, 1, 164,
+ 4, 1, 165,
+ 4, 1, 165,
+ 4, 1, 165,
+ 4, 1, 165,
+ 4, 1, 165,
+ 4, 1, 165,
+ 4, 1, 165,
+ 4, 1, 165,
+ 4, 3, 282,
+ 4, 3, 282,
+ 4, 3, 283,
+ 4, 3, 283,
+ 4, 3, 226,
+ 4, 3, 226,
+ 4, 3, 227,
+ 4, 3, 227,
+ 5, 0, 124,
+ 0, 0, 7,
+ 4, 4, 244,
+ 4, 4, 245,
+ 4, 3, 264,
+ 4, 3, 264,
+ 4, 3, 265,
+ 4, 3, 265,
+ 5, 0, 159,
+ 5, 0, 155,
+ 5, 0, 101,
+ 5, 0, 47,
+ 5, 0, 107,
+ 5, 0, 129,
+ 5, 0, 156,
+ 5, 0, 38,
+ 4, 1, 14,
+ 4, 1, 14,
+ 4, 1, 14,
+ 4, 1, 14,
+ 4, 1, 14,
+ 4, 1, 14,
+ 4, 1, 14,
+ 4, 1, 14,
+ 4, 1, 15,
+ 4, 1, 15,
+ 4, 1, 15,
+ 4, 1, 15,
+ 4, 1, 15,
+ 4, 1, 15,
+ 4, 1, 15,
+ 4, 1, 15,
+ 0, 1, 16,
+ 5, 0, 65,
+ 5, 0, 146,
+ 5, 0, 80,
+ 4, 4, 188,
+ 4, 4, 189,
+ 0, 3, 14,
+ 0, 0, 29,
+ 4, 4, 276,
+ 4, 4, 277,
+ 4, 4, 42,
+ 4, 4, 43,
+ 4, 3, 30,
+ 4, 3, 30,
+ 4, 3, 31,
+ 4, 3, 31,
+ 5, 0, 72,
+ 5, 0, 115,
+ 5, 0, 123,
+ 5, 0, 91,
+ 4, 1, 74,
+ 4, 1, 74,
+ 4, 1, 74,
+ 4, 1, 74,
+ 4, 1, 75,
+ 4, 1, 75,
+ 4, 1, 75,
+ 4, 1, 75,
+ 5, 0, 147,
+ 5, 0, 151,
+ 4, 3, 110,
+ 4, 3, 111,
+ 4, 2, 92,
+ 4, 2, 92,
+ 4, 2, 93,
+ 4, 2, 93,
+ 5, 0, 68,
+ 5, 0, 36,
+ 4, 2, 252,
+ 4, 2, 252,
+ 4, 2, 252,
+ 4, 2, 252,
+ 4, 2, 253,
+ 4, 2, 253,
+ 4, 2, 253,
+ 4, 2, 253,
+ 5, 0, 28,
+ 0, 4, 23,
+ 4, 4, 124,
+ 4, 4, 125,
+ 4, 3, 120,
+ 4, 3, 120,
+ 4, 3, 121,
+ 4, 3, 121,
+ 4, 1, 508,
+ 4, 1, 508,
+ 4, 1, 508,
+ 4, 1, 508,
+ 4, 1, 508,
+ 4, 1, 508,
+ 4, 1, 508,
+ 4, 1, 508,
+ 4, 2, 20,
+ 4, 2, 20,
+ 4, 2, 20,
+ 4, 2, 20,
+ 4, 2, 21,
+ 4, 2, 21,
+ 4, 2, 21,
+ 4, 2, 21,
+ 4, 2, 90,
+ 4, 2, 90,
+ 4, 2, 90,
+ 4, 2, 90,
+ 4, 2, 91,
+ 4, 2, 91,
+ 4, 2, 91,
+ 4, 2, 91,
+ 4, 2, 142,
+ 4, 2, 142,
+ 4, 2, 142,
+ 4, 2, 142,
+ 4, 2, 143,
+ 4, 2, 143,
+ 4, 2, 143,
+ 4, 2, 143,
+ 4, 3, 150,
+ 4, 3, 150,
+ 4, 3, 151,
+ 4, 3, 151,
+ 5, 0, 157,
+ 5, 0, 153,
+ 4, 4, 232,
+ 4, 4, 233,
+ 4, 2, 88,
+ 4, 2, 88,
+ 4, 2, 88,
+ 4, 2, 88,
+ 4, 2, 89,
+ 4, 2, 89,
+ 4, 2, 89,
+ 4, 2, 89,
+ 0, 0, 32,
+ 5, 0, 27,
+ 5, 0, 114,
+ 2, 2, 31,
+ 4, 4, 40,
+ 4, 4, 41,
+ 0, 2, 32,
+ 5, 0, 144,
+ 4, 3, 260,
+ 4, 3, 260,
+ 4, 3, 261,
+ 4, 3, 261,
+ 4, 4, 272,
+ 4, 4, 273,
+ 0, 0, 32,
+ 5, 0, 26,
+ 4, 1, 12,
+ 4, 1, 12,
+ 4, 1, 12,
+ 4, 1, 12,
+ 4, 1, 12,
+ 4, 1, 12,
+ 4, 1, 12,
+ 4, 1, 12,
+ 4, 1, 13,
+ 4, 1, 13,
+ 4, 1, 13,
+ 4, 1, 13,
+ 4, 1, 13,
+ 4, 1, 13,
+ 4, 1, 13,
+ 4, 1, 13,
+ 5, 0, 35,
+ 5, 0, 119,
+ 5, 0, 154,
+ 5, 0, 83,
+ 5, 0, 54,
+ 5, 0, 161,
+ 4, 1, 218,
+ 4, 1, 218,
+ 4, 1, 219,
+ 4, 1, 219,
+ 5, 0, 125,
+ 5, 0, 92,
+ 4, 2, 212,
+ 4, 2, 213,
+ 5, 0, 131,
+ 5, 0, 81,
+ /* vc1DEC_High_Rate_SUBBLKPAT.out */
+ 4, 3, 11,
+ 4, 3, 11,
+ 4, 3, 13,
+ 4, 3, 13,
+ 4, 3, 7,
+ 4, 3, 7,
+ 4, 4, 12,
+ 4, 4, 3,
+ 4, 4, 10,
+ 4, 4, 5,
+ 4, 4, 8,
+ 4, 4, 4,
+ 4, 4, 2,
+ 0, 0, 19,
+ 4, 4, 1,
+ 4, 4, 14,
+ 4, 0, 15,
+ 4, 0, 15,
+ 4, 0, 15,
+ 4, 0, 15,
+ 4, 0, 15,
+ 4, 0, 15,
+ 4, 0, 15,
+ 4, 0, 15,
+ 4, 0, 15,
+ 4, 0, 15,
+ 4, 0, 15,
+ 4, 0, 15,
+ 4, 0, 15,
+ 4, 0, 15,
+ 4, 0, 15,
+ 4, 0, 15,
+ 4, 0, 6,
+ 4, 0, 9,
+ /* vc1DEC_High_Rate_TTBLK.out */
+ 4, 1, 7,
+ 4, 1, 11,
+ 2, 2, 2,
+ 4, 1, 0,
+ 4, 0, 12,
+ 6, 0, 4,
+ 4, 2, 5,
+ 4, 2, 6,
+ /* vc1DEC_High_Rate_TTMB.out */
+ 4, 1, 11,
+ 4, 1, 11,
+ 4, 1, 19,
+ 4, 1, 19,
+ 4, 2, 24,
+ 0, 1, 3,
+ 4, 1, 0,
+ 4, 1, 0,
+ 4, 1, 4,
+ 4, 1, 18,
+ 4, 1, 17,
+ 1, 1, 1,
+ 4, 0, 9,
+ 0, 1, 2,
+ 4, 1, 10,
+ 2, 1, 4,
+ 4, 1, 14,
+ 4, 1, 28,
+ 4, 1, 15,
+ 4, 0, 13,
+ 4, 1, 23,
+ 6, 0, 10,
+ /* vc1DEC_I_Picture_CBPCY_VLC.out */
+ 0, 1, 16,
+ 0, 0, 28,
+ 2, 2, 29,
+ 1, 3, 38,
+ 2, 2, 55,
+ 0, 1, 67,
+ 4, 3, 32,
+ 0, 1, 76,
+ 4, 0, 0,
+ 4, 0, 0,
+ 4, 0, 0,
+ 4, 0, 0,
+ 4, 0, 0,
+ 4, 0, 0,
+ 4, 0, 0,
+ 4, 0, 0,
+ 2, 1, 4,
+ 4, 1, 20,
+ 4, 1, 12,
+ 2, 2, 6,
+ 4, 0, 44,
+ 0, 0, 2,
+ 4, 1, 15,
+ 4, 0, 58,
+ 4, 0, 33,
+ 4, 0, 52,
+ 4, 1, 60,
+ 4, 2, 55,
+ 4, 2, 51,
+ 4, 0, 8,
+ 4, 0, 16,
+ 4, 0, 3,
+ 0, 0, 3,
+ 0, 1, 4,
+ 4, 2, 7,
+ 4, 0, 36,
+ 4, 0, 19,
+ 4, 1, 38,
+ 4, 1, 47,
+ 4, 1, 59,
+ 4, 1, 5,
+ 4, 0, 4,
+ 2, 2, 4,
+ 4, 2, 34,
+ 0, 0, 13,
+ 4, 3, 23,
+ 4, 0, 11,
+ 4, 1, 42,
+ 0, 1, 2,
+ 4, 2, 39,
+ 1, 1, 4,
+ 4, 1, 29,
+ 4, 1, 45,
+ 4, 1, 53,
+ 4, 0, 37,
+ 4, 1, 25,
+ 4, 1, 61,
+ 4, 0, 9,
+ 4, 0, 50,
+ 4, 0, 2,
+ 1, 4, 3,
+ 1, 1, 8,
+ 4, 2, 6,
+ 4, 0, 28,
+ 4, 1, 22,
+ 4, 2, 43,
+ 4, 3, 30,
+ 4, 4, 41,
+ 4, 4, 49,
+ 4, 0, 27,
+ 4, 1, 54,
+ 4, 1, 31,
+ 4, 1, 48,
+ 4, 1, 56,
+ 1, 2, 2,
+ 4, 1, 1,
+ 4, 0, 18,
+ 2, 1, 3,
+ 4, 2, 46,
+ 4, 2, 17,
+ 4, 0, 26,
+ 4, 1, 63,
+ 4, 1, 21,
+ 4, 1, 35,
+ 1, 1, 3,
+ 4, 1, 24,
+ 4, 1, 40,
+ 4, 0, 10,
+ 1, 1, 2,
+ 4, 1, 14,
+ 4, 0, 13,
+ 4, 1, 62,
+ 4, 1, 57,
+ /* vc1DEC_Interlace_2_MVP_Pattern_0.out */
+ 4, 1, 2,
+ 4, 1, 1,
+ 4, 1, 0,
+ 4, 1, 3,
+ /* vc1DEC_Interlace_2_MVP_Pattern_1.out */
+ 4, 0, 0,
+ 5, 0, 1,
+ 4, 1, 1,
+ /* vc1DEC_Interlace_2_MVP_Pattern_2.out */
+ 4, 0, 3,
+ 0, 0, 2,
+ 4, 1, 1,
+ 4, 0, 0,
+ 4, 0, 2,
+ /* vc1DEC_Interlace_2_MVP_Pattern_3.out */
+ 4, 0, 0,
+ 0, 0, 2,
+ 4, 1, 3,
+ 4, 0, 2,
+ 4, 0, 1,
+ /* vc1DEC_Interlace_4MV_MB_0.out */
+ 4, 1, 32,
+ 4, 1, 32,
+ 4, 1, 32,
+ 4, 1, 32,
+ 4, 1, 32,
+ 4, 1, 32,
+ 4, 1, 32,
+ 4, 1, 32,
+ 4, 1, 25,
+ 4, 1, 25,
+ 4, 1, 25,
+ 4, 1, 25,
+ 4, 1, 25,
+ 4, 1, 25,
+ 4, 1, 25,
+ 4, 1, 25,
+ 0, 2, 16,
+ 4, 4, 56,
+ 4, 4, 4,
+ 4, 4, 27,
+ 4, 3, 9,
+ 4, 3, 9,
+ 4, 4, 40,
+ 2, 1, 17,
+ 4, 1, 17,
+ 4, 1, 17,
+ 4, 1, 17,
+ 4, 1, 17,
+ 4, 1, 17,
+ 4, 1, 17,
+ 4, 1, 17,
+ 4, 1, 17,
+ 4, 0, 24,
+ 4, 0, 24,
+ 4, 0, 24,
+ 4, 0, 24,
+ 4, 2, 2,
+ 4, 2, 26,
+ 4, 1, 10,
+ 4, 1, 10,
+ 4, 0, 8,
+ 4, 1, 19,
+ 4, 1, 11,
+ /* vc1DEC_Interlace_4MV_MB_1.out */
+ 4, 2, 32,
+ 4, 2, 32,
+ 4, 2, 32,
+ 4, 2, 32,
+ 4, 2, 25,
+ 4, 2, 25,
+ 4, 2, 25,
+ 4, 2, 25,
+ 4, 2, 17,
+ 4, 2, 17,
+ 4, 2, 17,
+ 4, 2, 17,
+ 4, 2, 40,
+ 4, 2, 40,
+ 4, 2, 40,
+ 4, 2, 40,
+ 4, 3, 11,
+ 4, 3, 11,
+ 4, 4, 27,
+ 2, 1, 13,
+ 4, 3, 10,
+ 4, 3, 10,
+ 0, 0, 13,
+ 4, 4, 24,
+ 4, 2, 9,
+ 4, 2, 9,
+ 4, 2, 9,
+ 4, 2, 9,
+ 4, 2, 8,
+ 4, 2, 8,
+ 4, 2, 8,
+ 4, 2, 8,
+ 4, 0, 26,
+ 4, 1, 19,
+ 4, 1, 4,
+ 4, 0, 2,
+ 4, 0, 56,
+ /* vc1DEC_Interlace_4MV_MB_2.out */
+ 4, 1, 27,
+ 4, 1, 27,
+ 4, 1, 27,
+ 4, 1, 27,
+ 4, 1, 27,
+ 4, 1, 27,
+ 4, 1, 27,
+ 4, 1, 27,
+ 4, 4, 26,
+ 4, 4, 8,
+ 2, 1, 22,
+ 4, 4, 4,
+ 4, 3, 9,
+ 4, 3, 9,
+ 4, 4, 10,
+ 4, 4, 17,
+ 4, 1, 25,
+ 4, 1, 25,
+ 4, 1, 25,
+ 4, 1, 25,
+ 4, 1, 25,
+ 4, 1, 25,
+ 4, 1, 25,
+ 4, 1, 25,
+ 4, 2, 56,
+ 4, 2, 56,
+ 4, 2, 56,
+ 4, 2, 56,
+ 4, 4, 32,
+ 4, 4, 11,
+ 4, 3, 40,
+ 4, 3, 40,
+ 4, 0, 19,
+ 4, 1, 24,
+ 4, 1, 2,
+ /* vc1DEC_Interlace_4MV_MB_3.out */
+ 4, 1, 17,
+ 4, 1, 17,
+ 4, 1, 17,
+ 4, 1, 17,
+ 4, 1, 17,
+ 4, 1, 17,
+ 4, 1, 17,
+ 4, 1, 17,
+ 4, 2, 8,
+ 4, 2, 8,
+ 4, 2, 8,
+ 4, 2, 8,
+ 2, 3, 20,
+ 4, 4, 9,
+ 4, 3, 40,
+ 4, 3, 40,
+ 4, 0, 32,
+ 4, 0, 32,
+ 4, 0, 32,
+ 4, 0, 32,
+ 4, 0, 32,
+ 4, 0, 32,
+ 4, 0, 32,
+ 4, 0, 32,
+ 4, 0, 32,
+ 4, 0, 32,
+ 4, 0, 32,
+ 4, 0, 32,
+ 4, 0, 32,
+ 4, 0, 32,
+ 4, 0, 32,
+ 4, 0, 32,
+ 4, 0, 25,
+ 1, 4, 4,
+ 4, 2, 10,
+ 4, 3, 24,
+ 4, 3, 19,
+ 4, 0, 2,
+ 4, 1, 56,
+ 4, 2, 11,
+ 4, 3, 27,
+ 4, 4, 4,
+ 4, 4, 26,
+ /* vc1DEC_Interlace_Non_4MV_MB_0.out */
+ 4, 1, 32,
+ 4, 1, 25,
+ 1, 2, 2,
+ 4, 1, 17,
+ 2, 1, 4,
+ 4, 1, 9,
+ 4, 2, 56,
+ 4, 2, 4,
+ 4, 0, 40,
+ 4, 1, 8,
+ 4, 1, 24,
+ /* vc1DEC_Interlace_Non_4MV_MB_1.out */
+ 1, 1, 8,
+ 4, 2, 24,
+ 4, 1, 9,
+ 4, 1, 9,
+ 4, 1, 8,
+ 4, 1, 8,
+ 4, 2, 25,
+ 4, 2, 40,
+ 4, 0, 56,
+ 0, 0, 2,
+ 4, 1, 17,
+ 4, 0, 4,
+ 4, 0, 32,
+ /* vc1DEC_Interlace_Non_4MV_MB_2.out */
+ 4, 1, 56,
+ 4, 1, 40,
+ 0, 1, 2,
+ 4, 1, 25,
+ 4, 1, 9,
+ 4, 1, 17,
+ 4, 1, 32,
+ 2, 1, 1,
+ 4, 0, 8,
+ 4, 1, 4,
+ 4, 1, 24,
+ /* vc1DEC_Interlace_Non_4MV_MB_3.out */
+ 4, 0, 32,
+ 1, 1, 2,
+ 4, 1, 17,
+ 4, 0, 8,
+ 2, 3, 2,
+ 4, 1, 40,
+ 4, 0, 9,
+ 4, 1, 25,
+ 4, 2, 24,
+ 4, 3, 56,
+ 4, 3, 4,
+ /* vc1DEC_Interlaced_CBPCY_0.out */
+ 4, 2, 61,
+ 4, 2, 62,
+ 0, 3, 6,
+ 4, 2, 60,
+ 4, 0, 63,
+ 4, 0, 63,
+ 4, 0, 63,
+ 4, 0, 63,
+ 6, 0, 14,
+ 6, 0, 22,
+ 6, 0, 26,
+ 6, 0, 28,
+ 0, 1, 12,
+ 0, 0, 15,
+ 2, 1, 16,
+ 1, 1, 22,
+ 0, 0, 24,
+ 0, 0, 25,
+ 1, 2, 26,
+ 4, 3, 31,
+ 4, 3, 47,
+ 4, 3, 55,
+ 4, 3, 59,
+ 0, 1, 27,
+ 4, 1, 4,
+ 4, 1, 8,
+ 4, 1, 16,
+ 4, 1, 32,
+ 4, 0, 12,
+ 6, 0, 6,
+ 0, 1, 3,
+ 6, 0, 10,
+ 4, 1, 20,
+ 4, 1, 24,
+ 6, 0, 12,
+ 4, 1, 36,
+ 6, 0, 18,
+ 4, 0, 28,
+ 4, 1, 40,
+ 6, 0, 20,
+ 4, 0, 44,
+ 4, 0, 48,
+ 6, 0, 24,
+ 4, 0, 52,
+ 4, 0, 56,
+ 0, 0, 3,
+ 6, 0, 8,
+ 6, 0, 16,
+ 6, 0, 2,
+ 6, 0, 4,
+ 2, 2, 4,
+ 4, 1, 15,
+ 4, 1, 51,
+ 2, 1, 10,
+ 4, 0, 23,
+ 1, 1, 3,
+ 4, 2, 19,
+ 4, 2, 11,
+ 4, 0, 35,
+ 0, 0, 2,
+ 4, 1, 7,
+ 4, 0, 3,
+ 6, 0, 0,
+ 4, 0, 43,
+ 4, 1, 39,
+ 4, 1, 27,
+ /* vc1DEC_Interlaced_CBPCY_1.out */
+ 4, 2, 62,
+ 4, 2, 62,
+ 4, 2, 62,
+ 4, 2, 62,
+ 0, 0, 28,
+ 1, 2, 29,
+ 0, 0, 36,
+ 0, 0, 37,
+ 0, 0, 38,
+ 0, 1, 39,
+ 0, 0, 42,
+ 1, 1, 43,
+ 0, 0, 47,
+ 0, 0, 48,
+ 0, 0, 49,
+ 0, 0, 50,
+ 0, 1, 51,
+ 0, 1, 58,
+ 4, 3, 61,
+ 4, 3, 61,
+ 4, 2, 60,
+ 4, 2, 60,
+ 4, 2, 60,
+ 4, 2, 60,
+ 4, 1, 63,
+ 4, 1, 63,
+ 4, 1, 63,
+ 4, 1, 63,
+ 4, 1, 63,
+ 4, 1, 63,
+ 4, 1, 63,
+ 4, 1, 63,
+ 6, 0, 8,
+ 4, 0, 32,
+ 6, 0, 16,
+ 0, 0, 3,
+ 0, 0, 4,
+ 5, 0, 19,
+ 4, 0, 35,
+ 6, 0, 12,
+ 4, 0, 27,
+ 4, 0, 37,
+ 4, 0, 28,
+ 4, 0, 44,
+ 4, 0, 52,
+ 4, 0, 56,
+ 4, 0, 12,
+ 6, 0, 6,
+ 4, 1, 15,
+ 4, 1, 20,
+ 4, 1, 40,
+ 4, 1, 49,
+ 4, 0, 48,
+ 5, 0, 25,
+ 6, 1, 10,
+ 0, 0, 2,
+ 5, 0, 21,
+ 4, 0, 36,
+ 4, 0, 41,
+ 6, 0, 14,
+ 4, 0, 31,
+ 6, 0, 22,
+ 4, 0, 47,
+ 6, 0, 26,
+ 4, 0, 55,
+ 6, 0, 28,
+ 4, 0, 59,
+ 0, 1, 4,
+ 4, 1, 1,
+ 4, 1, 2,
+ 4, 1, 4,
+ 4, 1, 3,
+ 4, 1, 7,
+ 4, 1, 11,
+ 4, 1, 19,
+ 6, 0, 2,
+ 4, 1, 8,
+ 6, 0, 4,
+ 4, 1, 16,
+ /* vc1DEC_Interlaced_CBPCY_2.out */
+ 4, 1, 63,
+ 4, 1, 63,
+ 4, 1, 63,
+ 4, 1, 63,
+ 4, 1, 63,
+ 4, 1, 63,
+ 4, 1, 63,
+ 4, 1, 63,
+ 4, 2, 60,
+ 4, 2, 60,
+ 4, 2, 60,
+ 4, 2, 60,
+ 4, 3, 62,
+ 4, 3, 62,
+ 4, 4, 12,
+ 4, 4, 48,
+ 0, 0, 16,
+ 0, 0, 17,
+ 1, 1, 18,
+ 0, 0, 20,
+ 0, 0, 21,
+ 2, 1, 22,
+ 2, 1, 24,
+ 2, 1, 26,
+ 1, 1, 28,
+ 6, 0, 0,
+ 4, 4, 3,
+ 0, 1, 28,
+ 1, 1, 33,
+ 0, 1, 35,
+ 0, 1, 41,
+ 4, 4, 61,
+ 4, 0, 40,
+ 4, 0, 28,
+ 4, 0, 44,
+ 4, 0, 52,
+ 4, 0, 56,
+ 4, 1, 36,
+ 4, 1, 29,
+ 4, 0, 4,
+ 4, 0, 8,
+ 4, 0, 16,
+ 4, 0, 32,
+ 4, 0, 31,
+ 4, 1, 45,
+ 4, 1, 30,
+ 4, 0, 47,
+ 4, 1, 53,
+ 4, 1, 46,
+ 4, 0, 55,
+ 4, 1, 57,
+ 4, 1, 54,
+ 4, 0, 59,
+ 4, 1, 58,
+ 4, 1, 13,
+ 4, 1, 14,
+ 6, 0, 10,
+ 0, 0, 2,
+ 6, 0, 20,
+ 6, 0, 12,
+ 6, 0, 18,
+ 6, 0, 24,
+ 6, 0, 2,
+ 6, 0, 4,
+ 6, 0, 8,
+ 6, 0, 16,
+ 1, 1, 2,
+ 4, 1, 15,
+ 4, 0, 23,
+ 4, 1, 27,
+ 4, 1, 39,
+ 4, 1, 51,
+ 1, 1, 3,
+ 2, 1, 5,
+ 4, 1, 20,
+ 4, 0, 43,
+ 4, 1, 7,
+ 4, 1, 11,
+ 4, 0, 24,
+ 4, 1, 35,
+ 4, 1, 19,
+ /* vc1DEC_Interlaced_CBPCY_3.out */
+ 4, 3, 4,
+ 4, 3, 4,
+ 4, 3, 8,
+ 4, 3, 8,
+ 4, 3, 16,
+ 4, 3, 16,
+ 4, 3, 32,
+ 4, 3, 32,
+ 0, 0, 24,
+ 4, 4, 40,
+ 4, 3, 12,
+ 4, 3, 12,
+ 4, 3, 48,
+ 4, 3, 48,
+ 0, 1, 20,
+ 4, 4, 28,
+ 4, 4, 44,
+ 4, 4, 52,
+ 4, 4, 56,
+ 2, 3, 19,
+ 6, 0, 0,
+ 0, 1, 25,
+ 4, 4, 61,
+ 4, 4, 62,
+ 4, 2, 60,
+ 4, 2, 60,
+ 4, 2, 60,
+ 4, 2, 60,
+ 4, 3, 63,
+ 4, 3, 63,
+ 0, 1, 22,
+ 2, 2, 31,
+ 4, 0, 24,
+ 4, 0, 36,
+ 4, 1, 47,
+ 4, 1, 55,
+ 4, 1, 59,
+ 4, 1, 15,
+ 2, 1, 5,
+ 4, 1, 51,
+ 4, 2, 23,
+ 4, 3, 39,
+ 4, 3, 27,
+ 6, 0, 14,
+ 4, 1, 3,
+ 4, 1, 43,
+ 6, 0, 22,
+ 6, 0, 26,
+ 6, 0, 28,
+ 0, 0, 1,
+ 6, 0, 10,
+ 6, 0, 20,
+ 6, 0, 6,
+ 6, 0, 24,
+ 2, 1, 2,
+ 2, 1, 4,
+ 6, 0, 2,
+ 6, 0, 18,
+ 6, 0, 12,
+ 5, 0, 5,
+ 4, 1, 9,
+ 4, 1, 7,
+ 4, 0, 20,
+ 0, 0, 3,
+ 0, 0, 4,
+ 6, 0, 8,
+ 5, 0, 17,
+ 4, 0, 31,
+ 4, 0, 19,
+ 4, 0, 33,
+ /* vc1DEC_Interlaced_CBPCY_4.out */
+ 1, 1, 32,
+ 2, 1, 34,
+ 0, 0, 36,
+ 2, 1, 37,
+ 6, 0, 24,
+ 2, 1, 38,
+ 1, 1, 40,
+ 4, 4, 12,
+ 4, 4, 48,
+ 0, 0, 42,
+ 4, 4, 4,
+ 4, 4, 8,
+ 4, 4, 16,
+ 4, 4, 32,
+ 4, 3, 60,
+ 4, 3, 60,
+ 4, 2, 63,
+ 4, 2, 63,
+ 4, 2, 63,
+ 4, 2, 63,
+ 4, 4, 61,
+ 4, 4, 62,
+ 0, 0, 31,
+ 0, 0, 32,
+ 0, 1, 33,
+ 0, 1, 36,
+ 2, 1, 39,
+ 0, 1, 41,
+ 1, 1, 44,
+ 0, 0, 46,
+ 6, 0, 0,
+ 4, 4, 3,
+ 4, 0, 58,
+ 4, 1, 7,
+ 4, 1, 11,
+ 4, 0, 13,
+ 4, 1, 35,
+ 4, 1, 19,
+ 4, 0, 14,
+ 6, 0, 10,
+ 6, 0, 20,
+ 6, 0, 18,
+ 6, 0, 12,
+ 4, 0, 15,
+ 4, 1, 43,
+ 4, 1, 23,
+ 4, 0, 51,
+ 0, 0, 2,
+ 4, 1, 24,
+ 4, 0, 27,
+ 4, 0, 39,
+ 4, 0, 20,
+ 4, 0, 40,
+ 4, 0, 28,
+ 4, 0, 44,
+ 4, 0, 52,
+ 4, 0, 56,
+ 4, 1, 36,
+ 4, 1, 5,
+ 4, 1, 6,
+ 4, 1, 9,
+ 4, 1, 10,
+ 4, 1, 17,
+ 4, 1, 18,
+ 4, 1, 29,
+ 4, 0, 31,
+ 4, 1, 33,
+ 4, 1, 30,
+ 4, 1, 34,
+ 4, 1, 45,
+ 4, 1, 46,
+ 4, 1, 53,
+ 4, 0, 47,
+ 4, 1, 54,
+ 4, 1, 57,
+ 4, 0, 55,
+ 4, 0, 59,
+ /* vc1DEC_Interlaced_CBPCY_5.out */
+ 4, 2, 60,
+ 4, 2, 60,
+ 4, 2, 60,
+ 4, 2, 60,
+ 4, 3, 63,
+ 4, 3, 63,
+ 4, 3, 12,
+ 4, 3, 12,
+ 4, 4, 20,
+ 4, 4, 40,
+ 4, 3, 48,
+ 4, 3, 48,
+ 0, 0, 20,
+ 0, 1, 21,
+ 4, 4, 28,
+ 4, 4, 44,
+ 4, 4, 52,
+ 4, 4, 56,
+ 1, 2, 23,
+ 0, 1, 29,
+ 4, 3, 4,
+ 4, 3, 4,
+ 4, 3, 8,
+ 4, 3, 8,
+ 4, 3, 16,
+ 4, 3, 16,
+ 4, 3, 32,
+ 4, 3, 32,
+ 6, 0, 0,
+ 0, 1, 25,
+ 0, 2, 28,
+ 6, 0, 30,
+ 4, 0, 24,
+ 4, 0, 36,
+ 4, 1, 59,
+ 1, 1, 3,
+ 4, 1, 15,
+ 4, 1, 51,
+ 4, 0, 23,
+ 4, 1, 27,
+ 4, 1, 39,
+ 2, 1, 4,
+ 6, 0, 4,
+ 4, 2, 11,
+ 4, 2, 17,
+ 5, 0, 3,
+ 4, 1, 5,
+ 4, 1, 43,
+ 5, 0, 9,
+ 6, 0, 16,
+ 0, 0, 2,
+ 6, 0, 14,
+ 4, 0, 35,
+ 4, 0, 3,
+ 6, 0, 22,
+ 6, 0, 26,
+ 6, 0, 28,
+ 6, 0, 6,
+ 4, 2, 49,
+ 4, 2, 50,
+ 6, 0, 10,
+ 0, 0, 5,
+ 6, 0, 20,
+ 4, 2, 31,
+ 4, 2, 47,
+ 4, 2, 55,
+ 6, 0, 12,
+ 6, 0, 18,
+ /* vc1DEC_Interlaced_CBPCY_6.out */
+ 4, 2, 4,
+ 4, 2, 4,
+ 4, 2, 4,
+ 4, 2, 4,
+ 4, 2, 8,
+ 4, 2, 8,
+ 4, 2, 8,
+ 4, 2, 8,
+ 4, 2, 16,
+ 4, 2, 16,
+ 4, 2, 16,
+ 4, 2, 16,
+ 4, 2, 32,
+ 4, 2, 32,
+ 4, 2, 32,
+ 4, 2, 32,
+ 2, 2, 16,
+ 4, 4, 20,
+ 4, 3, 12,
+ 4, 3, 12,
+ 4, 3, 48,
+ 4, 3, 48,
+ 4, 4, 40,
+ 1, 2, 16,
+ 4, 4, 28,
+ 4, 4, 44,
+ 4, 4, 52,
+ 4, 4, 56,
+ 0, 2, 17,
+ 4, 4, 60,
+ 6, 0, 0,
+ 0, 3, 24,
+ 4, 0, 24,
+ 2, 1, 3,
+ 6, 0, 22,
+ 4, 2, 35,
+ 5, 0, 27,
+ 4, 1, 53,
+ 4, 1, 47,
+ 4, 0, 36,
+ 0, 0, 3,
+ 4, 2, 62,
+ 4, 2, 5,
+ 6, 0, 28,
+ 4, 0, 61,
+ 4, 2, 6,
+ 4, 2, 9,
+ 4, 2, 10,
+ 4, 2, 17,
+ 4, 2, 18,
+ 4, 2, 33,
+ 4, 2, 34,
+ 0, 0, 1,
+ 4, 0, 59,
+ 4, 0, 3,
+ 4, 3, 63,
+ 4, 3, 13,
+ 4, 3, 14,
+ 4, 3, 15,
+ 4, 3, 49,
+ 4, 3, 50,
+ 4, 3, 51,
+ 6, 0, 10,
+ 0, 0, 8,
+ 2, 1, 9,
+ 6, 0, 20,
+ 0, 0, 10,
+ 4, 3, 7,
+ 4, 3, 11,
+ 4, 3, 19,
+ 5, 0, 15,
+ 4, 0, 23,
+ 6, 0, 12,
+ 5, 0, 19,
+ 4, 1, 37,
+ 4, 1, 27,
+ 4, 0, 43,
+ 4, 0, 29,
+ /* vc1DEC_Interlaced_CBPCY_7.out */
+ 4, 4, 56,
+ 2, 2, 31,
+ 1, 1, 36,
+ 0, 1, 40,
+ 2, 1, 50,
+ 4, 4, 20,
+ 4, 3, 12,
+ 4, 3, 12,
+ 4, 3, 48,
+ 4, 3, 48,
+ 4, 4, 40,
+ 0, 0, 46,
+ 0, 0, 47,
+ 0, 0, 48,
+ 0, 0, 61,
+ 0, 0, 62,
+ 4, 2, 4,
+ 4, 2, 4,
+ 4, 2, 4,
+ 4, 2, 4,
+ 4, 2, 8,
+ 4, 2, 8,
+ 4, 2, 8,
+ 4, 2, 8,
+ 4, 2, 16,
+ 4, 2, 16,
+ 4, 2, 16,
+ 4, 2, 16,
+ 4, 2, 32,
+ 4, 2, 32,
+ 4, 2, 32,
+ 4, 2, 32,
+ 4, 0, 1,
+ 6, 0, 6,
+ 0, 0, 2,
+ 6, 0, 28,
+ 4, 0, 59,
+ 4, 0, 63,
+ 4, 0, 2,
+ 0, 0, 2,
+ 5, 0, 25,
+ 4, 0, 15,
+ 4, 0, 49,
+ 1, 1, 4,
+ 2, 2, 6,
+ 4, 1, 7,
+ 4, 1, 11,
+ 6, 0, 10,
+ 4, 1, 23,
+ 6, 0, 12,
+ 6, 0, 20,
+ 5, 0, 19,
+ 4, 2, 37,
+ 4, 2, 27,
+ 4, 0, 24,
+ 4, 1, 35,
+ 4, 1, 19,
+ 4, 0, 36,
+ 6, 0, 2,
+ 6, 0, 4,
+ 6, 0, 8,
+ 6, 0, 16,
+ 0, 2, 1,
+ 4, 2, 43,
+ 4, 2, 61,
+ 4, 2, 62,
+ 0, 0, 5,
+ 5, 0, 15,
+ 6, 0, 22,
+ 0, 0, 4,
+ 5, 0, 27,
+ 4, 0, 3,
+ 4, 0, 29,
+ 4, 0, 47,
+ 4, 0, 53,
+ 4, 0, 60,
+ 4, 0, 28,
+ 4, 0, 44,
+ 4, 0, 52,
+ /* vc1DEC_Low_Mot_Chroma_DC_Diff_VLC.out */
+ 4, 1, 0,
+ 4, 1, 0,
+ 4, 1, 0,
+ 4, 1, 0,
+ 4, 1, 0,
+ 4, 1, 0,
+ 4, 1, 0,
+ 4, 1, 0,
+ 4, 1, 1,
+ 4, 1, 1,
+ 4, 1, 1,
+ 4, 1, 1,
+ 4, 1, 1,
+ 4, 1, 1,
+ 4, 1, 1,
+ 4, 1, 1,
+ 2, 2, 16,
+ 4, 4, 5,
+ 4, 3, 3,
+ 4, 3, 3,
+ 4, 2, 2,
+ 4, 2, 2,
+ 4, 2, 2,
+ 4, 2, 2,
+ 2, 2, 19,
+ 2, 2, 47,
+ 4, 3, 4,
+ 4, 3, 4,
+ 0, 0, 56,
+ 4, 4, 6,
+ 2, 2, 56,
+ 4, 4, 7,
+ 4, 0, 8,
+ 0, 1, 3,
+ 4, 2, 20,
+ 4, 2, 16,
+ 2, 1, 4,
+ 6, 0, 14,
+ 4, 1, 24,
+ 4, 1, 23,
+ 5, 0, 16,
+ 4, 1, 35,
+ 4, 1, 38,
+ 4, 0, 9,
+ 4, 1, 14,
+ 2, 3, 2,
+ 4, 2, 21,
+ 4, 0, 26,
+ 0, 0, 4,
+ 4, 2, 31,
+ 2, 3, 4,
+ 4, 3, 42,
+ 4, 0, 36,
+ 4, 0, 34,
+ 4, 0, 44,
+ 4, 1, 45,
+ 4, 2, 46,
+ 0, 2, 2,
+ 4, 3, 47,
+ 1, 3, 8,
+ 5, 2, 24,
+ 5, 2, 28,
+ 5, 2, 32,
+ 5, 2, 36,
+ 5, 2, 40,
+ 5, 2, 44,
+ 5, 2, 48,
+ 5, 2, 52,
+ 5, 1, 56,
+ 5, 0, 58,
+ 4, 3, 118,
+ 4, 3, 254,
+ 4, 0, 11,
+ 1, 3, 3,
+ 4, 2, 22,
+ 4, 2, 17,
+ 4, 0, 18,
+ 4, 1, 25,
+ 2, 1, 3,
+ 4, 3, 40,
+ 4, 3, 37,
+ 4, 0, 39,
+ 4, 1, 43,
+ 4, 1, 41,
+ 4, 0, 10,
+ 4, 0, 12,
+ 4, 0, 13,
+ 4, 1, 15,
+ 0, 0, 2,
+ 4, 2, 19,
+ 4, 0, 28,
+ 4, 0, 27,
+ /* vc1DEC_Low_Mot_Inter_VLC.out */
+ 0, 4, 32,
+ 0, 4, 105,
+ 0, 4, 168,
+ 0, 0, 247,
+ 5, 0, 93,
+ 0, 1, 247,
+ 0, 3, 250,
+ 5, 0, 23,
+ 4, 4, 180,
+ 4, 4, 181,
+ 4, 4, 172,
+ 4, 4, 173,
+ 5, 0, 98,
+ 0, 3, 295,
+ 5, 0, 96,
+ 0, 4, 309,
+ 4, 3, 0,
+ 4, 3, 0,
+ 4, 3, 1,
+ 4, 3, 1,
+ 5, 0, 1,
+ 0, 4, 335,
+ 4, 4, 28,
+ 4, 4, 29,
+ 4, 2, 162,
+ 4, 2, 162,
+ 4, 2, 162,
+ 4, 2, 162,
+ 4, 2, 163,
+ 4, 2, 163,
+ 4, 2, 163,
+ 4, 2, 163,
+ 5, 0, 129,
+ 0, 0, 31,
+ 1, 4, 32,
+ 0, 0, 37,
+ 4, 4, 110,
+ 4, 4, 111,
+ 4, 4, 126,
+ 4, 4, 127,
+ 4, 2, 216,
+ 4, 2, 216,
+ 4, 2, 216,
+ 4, 2, 216,
+ 4, 2, 217,
+ 4, 2, 217,
+ 4, 2, 217,
+ 4, 2, 217,
+ 4, 3, 98,
+ 4, 3, 98,
+ 4, 3, 99,
+ 4, 3, 99,
+ 5, 0, 125,
+ 0, 3, 21,
+ 4, 4, 248,
+ 4, 4, 249,
+ 2, 1, 34,
+ 0, 2, 36,
+ 4, 3, 508,
+ 4, 3, 508,
+ 5, 0, 91,
+ 1, 3, 40,
+ 5, 0, 33,
+ 5, 0, 37,
+ 5, 0, 67,
+ 5, 0, 25,
+ 5, 0, 41,
+ 5, 0, 97,
+ 5, 0, 84,
+ 5, 0, 109,
+ 5, 0, 119,
+ 5, 0, 89,
+ 5, 0, 44,
+ 5, 0, 17,
+ 4, 2, 270,
+ 4, 2, 270,
+ 4, 2, 271,
+ 4, 2, 271,
+ 4, 2, 60,
+ 4, 2, 60,
+ 4, 2, 61,
+ 4, 2, 61,
+ 4, 3, 150,
+ 4, 3, 151,
+ 5, 0, 117,
+ 5, 0, 115,
+ 4, 2, 138,
+ 4, 2, 138,
+ 4, 2, 139,
+ 4, 2, 139,
+ 5, 0, 71,
+ 5, 0, 70,
+ 5, 0, 59,
+ 5, 0, 103,
+ 5, 0, 107,
+ 4, 2, 14,
+ 4, 2, 15,
+ 4, 2, 144,
+ 4, 2, 145,
+ 5, 0, 19,
+ 5, 0, 146,
+ 5, 0, 78,
+ 5, 0, 77,
+ 5, 0, 62,
+ 5, 0, 144,
+ 5, 0, 31,
+ 4, 1, 56,
+ 4, 1, 56,
+ 4, 1, 56,
+ 4, 1, 56,
+ 4, 1, 56,
+ 4, 1, 56,
+ 4, 1, 56,
+ 4, 1, 56,
+ 4, 1, 57,
+ 4, 1, 57,
+ 4, 1, 57,
+ 4, 1, 57,
+ 4, 1, 57,
+ 4, 1, 57,
+ 4, 1, 57,
+ 4, 1, 57,
+ 4, 2, 80,
+ 4, 2, 80,
+ 4, 2, 80,
+ 4, 2, 80,
+ 4, 2, 81,
+ 4, 2, 81,
+ 4, 2, 81,
+ 4, 2, 81,
+ 4, 4, 122,
+ 4, 4, 123,
+ 5, 0, 128,
+ 0, 4, 5,
+ 4, 3, 236,
+ 4, 3, 236,
+ 4, 3, 237,
+ 4, 3, 237,
+ 4, 2, 268,
+ 4, 2, 268,
+ 4, 2, 268,
+ 4, 2, 268,
+ 4, 2, 269,
+ 4, 2, 269,
+ 4, 2, 269,
+ 4, 2, 269,
+ 4, 3, 210,
+ 4, 3, 210,
+ 4, 3, 211,
+ 4, 3, 211,
+ 5, 0, 95,
+ 5, 0, 54,
+ 4, 4, 22,
+ 4, 4, 23,
+ 4, 1, 188,
+ 4, 1, 188,
+ 4, 1, 188,
+ 4, 1, 188,
+ 4, 1, 188,
+ 4, 1, 188,
+ 4, 1, 188,
+ 4, 1, 188,
+ 4, 1, 189,
+ 4, 1, 189,
+ 4, 1, 189,
+ 4, 1, 189,
+ 4, 1, 189,
+ 4, 1, 189,
+ 4, 1, 189,
+ 4, 1, 189,
+ 4, 1, 200,
+ 4, 1, 200,
+ 4, 1, 200,
+ 4, 1, 200,
+ 4, 1, 200,
+ 4, 1, 200,
+ 4, 1, 200,
+ 4, 1, 200,
+ 4, 1, 201,
+ 4, 1, 201,
+ 4, 1, 201,
+ 4, 1, 201,
+ 4, 1, 201,
+ 4, 1, 201,
+ 4, 1, 201,
+ 4, 1, 201,
+ 4, 2, 224,
+ 4, 2, 224,
+ 4, 2, 224,
+ 4, 2, 224,
+ 4, 2, 225,
+ 4, 2, 225,
+ 4, 2, 225,
+ 4, 2, 225,
+ 5, 0, 130,
+ 0, 3, 7,
+ 4, 4, 244,
+ 4, 4, 245,
+ 4, 4, 262,
+ 4, 4, 263,
+ 5, 0, 132,
+ 0, 4, 17,
+ 4, 2, 106,
+ 4, 2, 106,
+ 4, 2, 107,
+ 4, 2, 107,
+ 4, 2, 158,
+ 4, 2, 158,
+ 4, 2, 159,
+ 4, 2, 159,
+ 4, 2, 36,
+ 4, 2, 36,
+ 4, 2, 37,
+ 4, 2, 37,
+ 5, 0, 51,
+ 5, 0, 141,
+ 4, 3, 128,
+ 4, 3, 129,
+ 4, 3, 84,
+ 4, 3, 84,
+ 4, 3, 85,
+ 4, 3, 85,
+ 4, 4, 54,
+ 4, 4, 55,
+ 5, 0, 13,
+ 5, 0, 22,
+ 4, 3, 276,
+ 4, 3, 276,
+ 4, 3, 277,
+ 4, 3, 277,
+ 4, 4, 42,
+ 4, 4, 43,
+ 4, 4, 170,
+ 4, 4, 171,
+ 4, 1, 12,
+ 4, 1, 12,
+ 4, 1, 12,
+ 4, 1, 12,
+ 4, 1, 12,
+ 4, 1, 12,
+ 4, 1, 12,
+ 4, 1, 12,
+ 4, 1, 13,
+ 4, 1, 13,
+ 4, 1, 13,
+ 4, 1, 13,
+ 4, 1, 13,
+ 4, 1, 13,
+ 4, 1, 13,
+ 4, 1, 13,
+ 5, 0, 102,
+ 5, 0, 106,
+ 5, 0, 110,
+ 5, 0, 116,
+ 5, 0, 114,
+ 5, 0, 2,
+ 0, 1, 16,
+ 5, 0, 29,
+ 5, 0, 16,
+ 0, 4, 17,
+ 4, 2, 86,
+ 4, 2, 86,
+ 4, 2, 87,
+ 4, 2, 87,
+ 4, 1, 208,
+ 4, 1, 208,
+ 4, 1, 208,
+ 4, 1, 208,
+ 4, 1, 209,
+ 4, 1, 209,
+ 4, 1, 209,
+ 4, 1, 209,
+ 5, 0, 50,
+ 5, 0, 139,
+ 5, 0, 47,
+ 5, 0, 68,
+ 4, 4, 18,
+ 4, 4, 19,
+ 4, 4, 146,
+ 4, 4, 147,
+ 4, 4, 148,
+ 4, 4, 149,
+ 5, 0, 80,
+ 5, 0, 60,
+ 4, 2, 112,
+ 4, 2, 112,
+ 4, 2, 112,
+ 4, 2, 112,
+ 4, 2, 113,
+ 4, 2, 113,
+ 4, 2, 113,
+ 4, 2, 113,
+ 4, 3, 202,
+ 4, 3, 202,
+ 4, 3, 203,
+ 4, 3, 203,
+ 4, 3, 152,
+ 4, 3, 152,
+ 4, 3, 153,
+ 4, 3, 153,
+ 4, 4, 290,
+ 4, 4, 291,
+ 4, 4, 90,
+ 4, 4, 91,
+ 4, 3, 52,
+ 4, 3, 52,
+ 4, 3, 53,
+ 4, 3, 53,
+ 4, 1, 64,
+ 4, 1, 64,
+ 4, 1, 64,
+ 4, 1, 64,
+ 4, 1, 65,
+ 4, 1, 65,
+ 4, 1, 65,
+ 4, 1, 65,
+ 5, 0, 123,
+ 5, 0, 65,
+ 4, 3, 48,
+ 4, 3, 49,
+ 4, 2, 30,
+ 4, 2, 30,
+ 4, 2, 31,
+ 4, 2, 31,
+ 4, 1, 72,
+ 4, 1, 72,
+ 4, 1, 72,
+ 4, 1, 72,
+ 4, 1, 72,
+ 4, 1, 72,
+ 4, 1, 72,
+ 4, 1, 72,
+ 4, 1, 73,
+ 4, 1, 73,
+ 4, 1, 73,
+ 4, 1, 73,
+ 4, 1, 73,
+ 4, 1, 73,
+ 4, 1, 73,
+ 4, 1, 73,
+ 4, 4, 174,
+ 4, 4, 175,
+ 5, 0, 5,
+ 5, 0, 127,
+ 4, 3, 104,
+ 4, 3, 104,
+ 4, 3, 105,
+ 4, 3, 105,
+ 4, 3, 240,
+ 4, 3, 240,
+ 4, 3, 241,
+ 4, 3, 241,
+ 4, 3, 6,
+ 4, 3, 6,
+ 4, 3, 7,
+ 4, 3, 7,
+ 4, 2, 164,
+ 4, 2, 164,
+ 4, 2, 164,
+ 4, 2, 164,
+ 4, 2, 165,
+ 4, 2, 165,
+ 4, 2, 165,
+ 4, 2, 165,
+ 4, 4, 8,
+ 4, 4, 9,
+ 0, 3, 22,
+ 5, 0, 83,
+ 4, 3, 242,
+ 4, 3, 242,
+ 4, 3, 243,
+ 4, 3, 243,
+ 0, 2, 32,
+ 0, 0, 39,
+ 0, 3, 40,
+ 5, 0, 126,
+ 4, 3, 116,
+ 4, 3, 116,
+ 4, 3, 117,
+ 4, 3, 117,
+ 4, 2, 92,
+ 4, 2, 92,
+ 4, 2, 92,
+ 4, 2, 92,
+ 4, 2, 93,
+ 4, 2, 93,
+ 4, 2, 93,
+ 4, 2, 93,
+ 4, 3, 184,
+ 4, 3, 185,
+ 5, 0, 48,
+ 5, 0, 142,
+ 4, 2, 176,
+ 4, 2, 176,
+ 4, 2, 177,
+ 4, 2, 177,
+ 4, 2, 16,
+ 4, 2, 16,
+ 4, 2, 17,
+ 4, 2, 17,
+ 4, 3, 274,
+ 4, 3, 275,
+ 4, 3, 280,
+ 4, 3, 281,
+ 5, 0, 66,
+ 5, 0, 57,
+ 4, 2, 272,
+ 4, 2, 273,
+ 4, 2, 226,
+ 4, 2, 227,
+ 4, 2, 76,
+ 4, 2, 77,
+ 5, 0, 99,
+ 5, 0, 133,
+ 4, 3, 40,
+ 4, 3, 41,
+ 5, 0, 12,
+ 5, 0, 35,
+ 4, 2, 68,
+ 4, 2, 68,
+ 4, 2, 69,
+ 4, 2, 69,
+ 4, 3, 294,
+ 4, 3, 295,
+ 5, 0, 143,
+ 5, 0, 39,
+ 4, 3, 222,
+ 4, 3, 223,
+ 4, 3, 20,
+ 4, 3, 21,
+ /* vc1DEC_Low_Mot_Intra_VLC.out */
+ 0, 4, 32,
+ 0, 3, 73,
+ 4, 4, 32,
+ 4, 4, 33,
+ 5, 0, 27,
+ 0, 4, 109,
+ 0, 4, 147,
+ 0, 4, 185,
+ 4, 2, 0,
+ 4, 2, 0,
+ 4, 2, 0,
+ 4, 2, 0,
+ 4, 2, 1,
+ 4, 2, 1,
+ 4, 2, 1,
+ 4, 2, 1,
+ 1, 1, 216,
+ 5, 0, 17,
+ 5, 0, 89,
+ 0, 4, 216,
+ 4, 4, 170,
+ 4, 4, 171,
+ 5, 0, 3,
+ 5, 0, 35,
+ 4, 3, 2,
+ 4, 3, 2,
+ 4, 3, 3,
+ 4, 3, 3,
+ 2, 2, 253,
+ 0, 4, 256,
+ 4, 4, 4,
+ 4, 4, 5,
+ 4, 2, 192,
+ 4, 2, 192,
+ 4, 2, 192,
+ 4, 2, 192,
+ 4, 2, 193,
+ 4, 2, 193,
+ 4, 2, 193,
+ 4, 2, 193,
+ 5, 0, 56,
+ 5, 0, 30,
+ 0, 0, 22,
+ 0, 2, 23,
+ 4, 3, 206,
+ 4, 3, 206,
+ 4, 3, 207,
+ 4, 3, 207,
+ 4, 2, 36,
+ 4, 2, 36,
+ 4, 2, 36,
+ 4, 2, 36,
+ 4, 2, 37,
+ 4, 2, 37,
+ 4, 2, 37,
+ 4, 2, 37,
+ 4, 3, 210,
+ 4, 3, 210,
+ 4, 3, 211,
+ 4, 3, 211,
+ 4, 3, 122,
+ 4, 3, 122,
+ 4, 3, 123,
+ 4, 3, 123,
+ 5, 0, 49,
+ 5, 0, 121,
+ 4, 1, 136,
+ 4, 1, 136,
+ 4, 1, 137,
+ 4, 1, 137,
+ 5, 0, 127,
+ 5, 0, 15,
+ 5, 0, 131,
+ 5, 0, 34,
+ 4, 3, 12,
+ 4, 3, 13,
+ 5, 0, 20,
+ 0, 3, 13,
+ 5, 0, 73,
+ 5, 0, 70,
+ 4, 3, 38,
+ 4, 3, 39,
+ 4, 2, 102,
+ 4, 2, 102,
+ 4, 2, 103,
+ 4, 2, 103,
+ 5, 0, 48,
+ 0, 2, 19,
+ 4, 3, 218,
+ 4, 3, 219,
+ 4, 2, 182,
+ 4, 2, 182,
+ 4, 2, 183,
+ 4, 2, 183,
+ 4, 3, 28,
+ 4, 3, 29,
+ 5, 0, 92,
+ 5, 0, 54,
+ 4, 3, 90,
+ 4, 3, 91,
+ 5, 0, 84,
+ 5, 0, 26,
+ 5, 0, 116,
+ 5, 0, 46,
+ 4, 3, 132,
+ 4, 3, 133,
+ 4, 2, 248,
+ 4, 2, 249,
+ 5, 0, 24,
+ 5, 0, 125,
+ 5, 0, 40,
+ 5, 0, 128,
+ 4, 2, 24,
+ 4, 2, 25,
+ 4, 2, 56,
+ 4, 2, 56,
+ 4, 2, 56,
+ 4, 2, 56,
+ 4, 2, 57,
+ 4, 2, 57,
+ 4, 2, 57,
+ 4, 2, 57,
+ 4, 3, 214,
+ 4, 3, 214,
+ 4, 3, 215,
+ 4, 3, 215,
+ 4, 4, 16,
+ 4, 4, 17,
+ 5, 0, 97,
+ 5, 0, 62,
+ 4, 1, 508,
+ 4, 1, 508,
+ 4, 1, 508,
+ 4, 1, 508,
+ 4, 1, 508,
+ 4, 1, 508,
+ 4, 1, 508,
+ 4, 1, 508,
+ 4, 3, 234,
+ 4, 3, 234,
+ 4, 3, 235,
+ 4, 3, 235,
+ 4, 4, 74,
+ 4, 4, 75,
+ 2, 2, 2,
+ 2, 1, 5,
+ 5, 0, 71,
+ 5, 0, 126,
+ 5, 0, 108,
+ 5, 0, 41,
+ 5, 0, 80,
+ 5, 0, 82,
+ 5, 0, 79,
+ 4, 2, 10,
+ 4, 2, 10,
+ 4, 2, 10,
+ 4, 2, 10,
+ 4, 2, 11,
+ 4, 2, 11,
+ 4, 2, 11,
+ 4, 2, 11,
+ 0, 0, 24,
+ 1, 1, 25,
+ 5, 0, 78,
+ 5, 0, 76,
+ 4, 3, 222,
+ 4, 3, 222,
+ 4, 3, 223,
+ 4, 3, 223,
+ 4, 3, 128,
+ 4, 3, 128,
+ 4, 3, 129,
+ 4, 3, 129,
+ 4, 4, 240,
+ 4, 4, 241,
+ 0, 0, 15,
+ 5, 0, 59,
+ 4, 2, 110,
+ 4, 2, 110,
+ 4, 2, 110,
+ 4, 2, 110,
+ 4, 2, 111,
+ 4, 2, 111,
+ 4, 2, 111,
+ 4, 2, 111,
+ 5, 0, 53,
+ 5, 0, 23,
+ 5, 0, 118,
+ 5, 0, 130,
+ 5, 0, 69,
+ 5, 0, 31,
+ 5, 0, 39,
+ 4, 1, 84,
+ 4, 1, 84,
+ 4, 1, 84,
+ 4, 1, 84,
+ 4, 1, 84,
+ 4, 1, 84,
+ 4, 1, 84,
+ 4, 1, 84,
+ 4, 1, 85,
+ 4, 1, 85,
+ 4, 1, 85,
+ 4, 1, 85,
+ 4, 1, 85,
+ 4, 1, 85,
+ 4, 1, 85,
+ 4, 1, 85,
+ 5, 0, 10,
+ 0, 0, 15,
+ 1, 1, 16,
+ 5, 0, 38,
+ 4, 4, 104,
+ 4, 4, 105,
+ 5, 0, 74,
+ 2, 1, 14,
+ 4, 2, 198,
+ 4, 2, 198,
+ 4, 2, 198,
+ 4, 2, 198,
+ 4, 2, 199,
+ 4, 2, 199,
+ 4, 2, 199,
+ 4, 2, 199,
+ 5, 0, 32,
+ 5, 0, 123,
+ 5, 0, 75,
+ 5, 0, 33,
+ 5, 0, 104,
+ 5, 0, 13,
+ 5, 0, 129,
+ 5, 0, 25,
+ 5, 0, 4,
+ 5, 0, 86,
+ 5, 0, 101,
+ 4, 3, 226,
+ 4, 3, 226,
+ 4, 3, 227,
+ 4, 3, 227,
+ 5, 0, 94,
+ 5, 0, 65,
+ 0, 0, 26,
+ 0, 1, 27,
+ 4, 3, 14,
+ 4, 3, 14,
+ 4, 3, 15,
+ 4, 3, 15,
+ 4, 4, 238,
+ 4, 4, 239,
+ 0, 0, 24,
+ 1, 1, 25,
+ 4, 2, 72,
+ 4, 2, 72,
+ 4, 2, 72,
+ 4, 2, 72,
+ 4, 2, 73,
+ 4, 2, 73,
+ 4, 2, 73,
+ 4, 2, 73,
+ 4, 3, 58,
+ 4, 3, 58,
+ 4, 3, 59,
+ 4, 3, 59,
+ 4, 4, 18,
+ 4, 4, 19,
+ 5, 0, 22,
+ 1, 1, 12,
+ 5, 0, 63,
+ 5, 0, 81,
+ 5, 0, 98,
+ 5, 0, 77,
+ 5, 0, 106,
+ 5, 0, 114,
+ 5, 0, 102,
+ 5, 0, 88,
+ 5, 0, 100,
+ 5, 0, 50,
+ 5, 0, 60,
+ 5, 0, 83,
+ 5, 0, 110,
+ 5, 0, 112,
+ 5, 0, 93,
+ 5, 0, 58,
+ 5, 0, 43,
+ 5, 0, 67,
+ 4, 3, 180,
+ 4, 3, 180,
+ 4, 3, 181,
+ 4, 3, 181,
+ 5, 0, 44,
+ 5, 0, 11,
+ 4, 4, 174,
+ 4, 4, 175,
+ 4, 3, 230,
+ 4, 3, 230,
+ 4, 3, 231,
+ 4, 3, 231,
+ 4, 4, 42,
+ 4, 4, 43,
+ 1, 1, 18,
+ 5, 0, 122,
+ 4, 1, 94,
+ 4, 1, 94,
+ 4, 1, 94,
+ 4, 1, 94,
+ 4, 1, 94,
+ 4, 1, 94,
+ 4, 1, 94,
+ 4, 1, 94,
+ 4, 1, 95,
+ 4, 1, 95,
+ 4, 1, 95,
+ 4, 1, 95,
+ 4, 1, 95,
+ 4, 1, 95,
+ 4, 1, 95,
+ 4, 1, 95,
+ 5, 0, 57,
+ 5, 0, 95,
+ 5, 0, 72,
+ /* vc1DEC_Low_Mot_Luminance_DC_Diff_VLC.out */
+ 4, 0, 0,
+ 4, 1, 1,
+ 0, 1, 5,
+ 4, 3, 2,
+ 4, 4, 3,
+ 1, 1, 17,
+ 1, 1, 60,
+ 1, 2, 4,
+ 4, 1, 4,
+ 1, 2, 9,
+ 4, 1, 5,
+ 4, 0, 6,
+ 4, 1, 10,
+ 1, 1, 2,
+ 4, 2, 14,
+ 4, 0, 17,
+ 4, 1, 24,
+ 4, 1, 22,
+ 4, 0, 7,
+ 4, 1, 11,
+ 5, 0, 9,
+ 4, 2, 15,
+ 4, 0, 9,
+ 0, 1, 2,
+ 4, 1, 13,
+ 0, 1, 4,
+ 4, 1, 21,
+ 5, 0, 13,
+ 4, 1, 23,
+ 0, 1, 4,
+ 4, 1, 28,
+ 1, 1, 32,
+ 5, 0, 16,
+ 4, 1, 41,
+ 0, 1, 3,
+ 4, 1, 38,
+ 4, 1, 37,
+ 4, 1, 45,
+ 4, 1, 44,
+ 4, 1, 46,
+ 0, 0, 1,
+ 4, 0, 47,
+ 0, 2, 1,
+ 1, 3, 8,
+ 2, 2, 12,
+ 5, 2, 28,
+ 5, 2, 32,
+ 5, 2, 36,
+ 5, 2, 40,
+ 5, 2, 44,
+ 5, 2, 48,
+ 5, 2, 52,
+ 5, 1, 56,
+ 5, 0, 58,
+ 4, 3, 118,
+ 4, 3, 254,
+ 2, 1, 4,
+ 6, 0, 25,
+ 4, 2, 49,
+ 4, 2, 50,
+ 5, 0, 27,
+ 4, 1, 48,
+ 4, 1, 53,
+ 4, 0, 30,
+ 5, 0, 21,
+ 4, 1, 35,
+ 4, 0, 8,
+ 2, 1, 2,
+ 4, 1, 12,
+ 4, 0, 16,
+ 2, 2, 2,
+ 4, 1, 20,
+ 4, 0, 25,
+ 0, 0, 3,
+ 0, 0, 4,
+ 4, 2, 29,
+ 4, 0, 31,
+ 6, 0, 19,
+ 4, 0, 34,
+ 4, 0, 36,
+ /* vc1DEC_Low_Rate_SUBBLKPAT.out */
+ 0, 0, 16,
+ 4, 3, 12,
+ 4, 3, 3,
+ 4, 3, 10,
+ 4, 2, 4,
+ 4, 2, 4,
+ 4, 2, 8,
+ 4, 2, 8,
+ 4, 3, 5,
+ 0, 0, 9,
+ 4, 2, 1,
+ 4, 2, 1,
+ 4, 2, 2,
+ 4, 2, 2,
+ 0, 0, 6,
+ 4, 3, 15,
+ 4, 0, 6,
+ 4, 0, 9,
+ 4, 0, 14,
+ 4, 0, 13,
+ 4, 0, 7,
+ 4, 0, 11,
+ /* vc1DEC_Low_Rate_TTBLK.out */
+ 6, 0, 5,
+ 4, 1, 0,
+ 1, 1, 2,
+ 6, 0, 4,
+ 4, 0, 5,
+ 4, 1, 7,
+ 4, 1, 6,
+ /* vc1DEC_Low_Rate_TTMB.out */
+ 4, 2, 9,
+ 2, 5, 7,
+ 4, 2, 17,
+ 4, 2, 18,
+ 4, 1, 4,
+ 4, 1, 4,
+ 4, 2, 0,
+ 0, 0, 11,
+ 4, 0, 19,
+ 4, 1, 11,
+ 4, 2, 15,
+ 4, 3, 23,
+ 4, 4, 14,
+ 4, 5, 22,
+ 2, 1, 1,
+ 4, 0, 13,
+ 4, 1, 21,
+ 4, 1, 28,
+ 4, 0, 10,
+ 4, 0, 24,
+ /* vc1DEC_Medium_Rate_SUBBLKPAT.out */
+ 4, 2, 2,
+ 4, 2, 2,
+ 0, 0, 14,
+ 4, 3, 12,
+ 4, 1, 15,
+ 4, 1, 15,
+ 4, 1, 15,
+ 4, 1, 15,
+ 4, 3, 3,
+ 4, 3, 10,
+ 4, 3, 5,
+ 0, 0, 7,
+ 0, 0, 8,
+ 4, 3, 8,
+ 4, 3, 1,
+ 4, 3, 4,
+ 4, 0, 6,
+ 4, 0, 9,
+ 4, 0, 14,
+ 4, 0, 7,
+ 4, 0, 13,
+ 4, 0, 11,
+ /* vc1DEC_Medium_Rate_TTBLK.out */
+ 4, 2, 9,
+ 4, 2, 10,
+ 4, 2, 12,
+ 4, 2, 7,
+ 6, 0, 2,
+ 4, 2, 11,
+ 4, 1, 0,
+ 4, 1, 0,
+ /* vc1DEC_Medium_Rate_TTMB.out */
+ 4, 2, 19,
+ 4, 2, 19,
+ 2, 3, 14,
+ 4, 3, 10,
+ 4, 2, 24,
+ 4, 2, 24,
+ 4, 3, 9,
+ 4, 3, 11,
+ 4, 1, 4,
+ 4, 1, 4,
+ 4, 1, 4,
+ 4, 1, 4,
+ 4, 2, 0,
+ 4, 2, 0,
+ 4, 3, 18,
+ 4, 3, 17,
+ 2, 1, 5,
+ 4, 1, 21,
+ 4, 2, 14,
+ 4, 3, 22,
+ 4, 3, 28,
+ 4, 0, 15,
+ 4, 1, 23,
+ 4, 1, 13,
+ /* vc1DEC_Mid_Rate_Inter_VLC.out */
+ 0, 4, 32,
+ 0, 4, 76,
+ 0, 3, 107,
+ 0, 2, 122,
+ 0, 1, 129,
+ 0, 1, 132,
+ 0, 0, 135,
+ 0, 0, 136,
+ 0, 0, 137,
+ 0, 0, 138,
+ 0, 0, 139,
+ 5, 0, 28,
+ 5, 0, 25,
+ 5, 0, 22,
+ 4, 4, 116,
+ 4, 4, 117,
+ 4, 2, 0,
+ 4, 2, 0,
+ 4, 2, 0,
+ 4, 2, 0,
+ 4, 2, 1,
+ 4, 2, 1,
+ 4, 2, 1,
+ 4, 2, 1,
+ 4, 3, 24,
+ 4, 3, 24,
+ 4, 3, 25,
+ 4, 3, 25,
+ 4, 4, 36,
+ 4, 4, 37,
+ 4, 4, 2,
+ 4, 4, 3,
+ 3, 4, 0,
+ 3, 4, 0,
+ 0, 0, 30,
+ 0, 0, 31,
+ 5, 0, 89,
+ 5, 0, 88,
+ 5, 0, 87,
+ 5, 0, 86,
+ 5, 0, 39,
+ 5, 0, 37,
+ 5, 0, 35,
+ 5, 0, 32,
+ 5, 0, 29,
+ 5, 0, 24,
+ 5, 0, 20,
+ 5, 0, 15,
+ 0, 0, 20,
+ 5, 1, 54,
+ 5, 1, 90,
+ 5, 1, 92,
+ 0, 1, 18,
+ 2, 1, 21,
+ 5, 2, 94,
+ 5, 2, 98,
+ 4, 1, 508,
+ 4, 1, 508,
+ 4, 1, 508,
+ 4, 1, 508,
+ 4, 1, 508,
+ 4, 1, 508,
+ 4, 1, 508,
+ 4, 1, 508,
+ 5, 0, 62,
+ 5, 0, 60,
+ 5, 0, 10,
+ 5, 0, 9,
+ 5, 0, 11,
+ 5, 0, 16,
+ 5, 0, 17,
+ 5, 0, 21,
+ 5, 0, 27,
+ 5, 0, 30,
+ 5, 1, 56,
+ 5, 0, 41,
+ 5, 0, 33,
+ 5, 0, 8,
+ 5, 0, 7,
+ 4, 4, 170,
+ 4, 4, 171,
+ 4, 4, 168,
+ 4, 4, 169,
+ 4, 4, 166,
+ 4, 4, 167,
+ 4, 4, 164,
+ 4, 4, 165,
+ 4, 4, 162,
+ 4, 4, 163,
+ 4, 4, 160,
+ 4, 4, 161,
+ 4, 4, 158,
+ 4, 4, 159,
+ 4, 4, 156,
+ 4, 4, 157,
+ 4, 4, 118,
+ 4, 4, 119,
+ 4, 4, 106,
+ 4, 4, 107,
+ 4, 4, 104,
+ 4, 4, 105,
+ 4, 4, 102,
+ 4, 4, 103,
+ 4, 4, 100,
+ 4, 4, 101,
+ 4, 4, 98,
+ 4, 4, 99,
+ 4, 4, 96,
+ 4, 4, 97,
+ 5, 0, 47,
+ 5, 0, 46,
+ 5, 0, 26,
+ 5, 0, 23,
+ 5, 0, 6,
+ 5, 0, 5,
+ 4, 3, 154,
+ 4, 3, 155,
+ 4, 3, 152,
+ 4, 3, 153,
+ 4, 3, 150,
+ 4, 3, 151,
+ 4, 3, 148,
+ 4, 3, 149,
+ 4, 3, 146,
+ 4, 3, 147,
+ 5, 0, 72,
+ 5, 0, 71,
+ 5, 0, 70,
+ 5, 0, 45,
+ 5, 0, 44,
+ 5, 0, 19,
+ 5, 0, 14,
+ 5, 0, 4,
+ 5, 0, 69,
+ 5, 0, 68,
+ 5, 0, 67,
+ 5, 0, 66,
+ 5, 0, 43,
+ 5, 0, 42,
+ 5, 0, 40,
+ 5, 0, 3,
+ 5, 0, 65,
+ 5, 0, 64,
+ 5, 0, 63,
+ 5, 0, 61,
+ 5, 0, 38,
+ 5, 0, 36,
+ 5, 0, 34,
+ 5, 0, 31,
+ 5, 0, 13,
+ 5, 0, 2,
+ /* vc1DEC_Mid_Rate_Intra_VLC.out */
+ 0, 4, 32,
+ 0, 4, 82,
+ 0, 3, 113,
+ 0, 2, 128,
+ 0, 1, 135,
+ 0, 1, 138,
+ 0, 0, 141,
+ 0, 0, 142,
+ 0, 0, 143,
+ 0, 0, 144,
+ 0, 0, 145,
+ 5, 0, 37,
+ 5, 0, 4,
+ 5, 0, 3,
+ 4, 4, 134,
+ 4, 4, 135,
+ 4, 2, 0,
+ 4, 2, 0,
+ 4, 2, 0,
+ 4, 2, 0,
+ 4, 2, 1,
+ 4, 2, 1,
+ 4, 2, 1,
+ 4, 2, 1,
+ 4, 3, 2,
+ 4, 3, 2,
+ 4, 3, 3,
+ 4, 3, 3,
+ 4, 4, 54,
+ 4, 4, 55,
+ 4, 4, 4,
+ 4, 4, 5,
+ 3, 4, 0,
+ 3, 4, 0,
+ 0, 0, 30,
+ 0, 0, 31,
+ 5, 0, 79,
+ 5, 0, 77,
+ 5, 0, 71,
+ 5, 0, 65,
+ 5, 0, 51,
+ 5, 0, 59,
+ 5, 0, 48,
+ 5, 0, 45,
+ 5, 0, 40,
+ 5, 0, 33,
+ 5, 0, 19,
+ 5, 0, 18,
+ 5, 1, 22,
+ 0, 0, 19,
+ 0, 0, 20,
+ 5, 1, 96,
+ 1, 1, 20,
+ 0, 1, 22,
+ 0, 1, 25,
+ 5, 2, 98,
+ 4, 1, 508,
+ 4, 1, 508,
+ 4, 1, 508,
+ 4, 1, 508,
+ 4, 1, 508,
+ 4, 1, 508,
+ 4, 1, 508,
+ 4, 1, 508,
+ 5, 0, 73,
+ 5, 0, 72,
+ 5, 0, 21,
+ 5, 0, 20,
+ 5, 0, 34,
+ 5, 0, 61,
+ 5, 0, 81,
+ 5, 0, 83,
+ 5, 1, 24,
+ 5, 0, 26,
+ 5, 0, 35,
+ 5, 0, 54,
+ 5, 0, 36,
+ 5, 0, 41,
+ 5, 0, 57,
+ 5, 0, 66,
+ 5, 0, 74,
+ 5, 0, 85,
+ 5, 0, 87,
+ 5, 0, 17,
+ 5, 0, 16,
+ 4, 4, 190,
+ 4, 4, 191,
+ 4, 4, 188,
+ 4, 4, 189,
+ 4, 4, 186,
+ 4, 4, 187,
+ 4, 4, 184,
+ 4, 4, 185,
+ 4, 4, 182,
+ 4, 4, 183,
+ 4, 4, 152,
+ 4, 4, 153,
+ 4, 4, 140,
+ 4, 4, 141,
+ 4, 4, 128,
+ 4, 4, 129,
+ 4, 4, 126,
+ 4, 4, 127,
+ 4, 4, 112,
+ 4, 4, 113,
+ 4, 4, 106,
+ 4, 4, 107,
+ 4, 4, 100,
+ 4, 4, 101,
+ 4, 4, 88,
+ 4, 4, 89,
+ 4, 4, 78,
+ 4, 4, 79,
+ 4, 4, 64,
+ 4, 4, 65,
+ 5, 0, 31,
+ 5, 0, 15,
+ 5, 0, 47,
+ 5, 0, 14,
+ 5, 0, 13,
+ 5, 0, 12,
+ 4, 3, 178,
+ 4, 3, 179,
+ 4, 3, 176,
+ 4, 3, 177,
+ 4, 3, 172,
+ 4, 3, 173,
+ 4, 3, 138,
+ 4, 3, 139,
+ 4, 3, 124,
+ 4, 3, 125,
+ 5, 0, 60,
+ 5, 0, 58,
+ 5, 0, 90,
+ 5, 0, 43,
+ 5, 0, 30,
+ 5, 0, 11,
+ 5, 0, 10,
+ 5, 0, 9,
+ 5, 0, 82,
+ 5, 0, 80,
+ 5, 0, 52,
+ 5, 0, 84,
+ 5, 0, 55,
+ 5, 0, 38,
+ 5, 0, 29,
+ 5, 0, 8,
+ 5, 0, 68,
+ 5, 0, 49,
+ 5, 0, 78,
+ 5, 0, 75,
+ 5, 0, 46,
+ 5, 0, 42,
+ 5, 0, 7,
+ 5, 0, 6,
+ 5, 0, 28,
+ 5, 0, 5,
+ /* vc1DEC_Mixed_MV_MB_0.out */
+ 4, 1, 8,
+ 4, 1, 8,
+ 4, 1, 8,
+ 4, 1, 8,
+ 4, 1, 8,
+ 4, 1, 8,
+ 4, 1, 8,
+ 4, 1, 8,
+ 0, 0, 24,
+ 4, 4, 2,
+ 4, 3, 40,
+ 4, 3, 40,
+ 4, 2, 32,
+ 4, 2, 32,
+ 4, 2, 32,
+ 4, 2, 32,
+ 4, 1, 10,
+ 4, 1, 10,
+ 4, 1, 10,
+ 4, 1, 10,
+ 4, 1, 10,
+ 4, 1, 10,
+ 4, 1, 10,
+ 4, 1, 10,
+ 4, 1, 0,
+ 4, 1, 0,
+ 4, 1, 0,
+ 4, 1, 0,
+ 4, 1, 0,
+ 4, 1, 0,
+ 4, 1, 0,
+ 4, 1, 0,
+ 4, 0, 4,
+ 4, 0, 12,
+ /* vc1DEC_Mixed_MV_MB_1.out */
+ 4, 1, 40,
+ 4, 1, 40,
+ 4, 1, 40,
+ 4, 1, 40,
+ 4, 1, 40,
+ 4, 1, 40,
+ 4, 1, 40,
+ 4, 1, 40,
+ 4, 4, 4,
+ 4, 4, 12,
+ 4, 3, 2,
+ 4, 3, 2,
+ 4, 2, 0,
+ 4, 2, 0,
+ 4, 2, 0,
+ 4, 2, 0,
+ 4, 1, 10,
+ 4, 1, 10,
+ 4, 1, 10,
+ 4, 1, 10,
+ 4, 1, 10,
+ 4, 1, 10,
+ 4, 1, 10,
+ 4, 1, 10,
+ 4, 2, 32,
+ 4, 2, 32,
+ 4, 2, 32,
+ 4, 2, 32,
+ 4, 2, 8,
+ 4, 2, 8,
+ 4, 2, 8,
+ 4, 2, 8,
+ /* vc1DEC_Mixed_MV_MB_2.out */
+ 4, 1, 8,
+ 4, 1, 8,
+ 4, 1, 8,
+ 4, 1, 8,
+ 4, 1, 8,
+ 4, 1, 8,
+ 4, 1, 8,
+ 4, 1, 8,
+ 0, 0, 24,
+ 4, 4, 2,
+ 4, 3, 0,
+ 4, 3, 0,
+ 4, 2, 32,
+ 4, 2, 32,
+ 4, 2, 32,
+ 4, 2, 32,
+ 4, 1, 10,
+ 4, 1, 10,
+ 4, 1, 10,
+ 4, 1, 10,
+ 4, 1, 10,
+ 4, 1, 10,
+ 4, 1, 10,
+ 4, 1, 10,
+ 4, 1, 40,
+ 4, 1, 40,
+ 4, 1, 40,
+ 4, 1, 40,
+ 4, 1, 40,
+ 4, 1, 40,
+ 4, 1, 40,
+ 4, 1, 40,
+ 4, 0, 4,
+ 4, 0, 12,
+ /* vc1DEC_Mixed_MV_MB_3.out */
+ 4, 0, 10,
+ 4, 0, 10,
+ 4, 0, 10,
+ 4, 0, 10,
+ 4, 0, 10,
+ 4, 0, 10,
+ 4, 0, 10,
+ 4, 0, 10,
+ 4, 0, 10,
+ 4, 0, 10,
+ 4, 0, 10,
+ 4, 0, 10,
+ 4, 0, 10,
+ 4, 0, 10,
+ 4, 0, 10,
+ 4, 0, 10,
+ 4, 2, 32,
+ 4, 2, 32,
+ 4, 2, 32,
+ 4, 2, 32,
+ 4, 2, 8,
+ 4, 2, 8,
+ 4, 2, 8,
+ 4, 2, 8,
+ 4, 2, 40,
+ 4, 2, 40,
+ 4, 2, 40,
+ 4, 2, 40,
+ 0, 0, 4,
+ 4, 4, 2,
+ 4, 3, 0,
+ 4, 3, 0,
+ 4, 0, 4,
+ 4, 0, 12,
+ /* vc1DEC_Mixed_MV_MB_4.out */
+ 4, 0, 10,
+ 4, 0, 10,
+ 4, 0, 10,
+ 4, 0, 10,
+ 4, 0, 10,
+ 4, 0, 10,
+ 4, 0, 10,
+ 4, 0, 10,
+ 4, 0, 10,
+ 4, 0, 10,
+ 4, 0, 10,
+ 4, 0, 10,
+ 4, 0, 10,
+ 4, 0, 10,
+ 4, 0, 10,
+ 4, 0, 10,
+ 4, 1, 40,
+ 4, 1, 40,
+ 4, 1, 40,
+ 4, 1, 40,
+ 4, 1, 40,
+ 4, 1, 40,
+ 4, 1, 40,
+ 4, 1, 40,
+ 4, 3, 2,
+ 4, 3, 2,
+ 0, 0, 6,
+ 4, 4, 0,
+ 4, 3, 32,
+ 4, 3, 32,
+ 4, 3, 8,
+ 4, 3, 8,
+ 4, 0, 4,
+ 4, 0, 12,
+ /* vc1DEC_Mixed_MV_MB_5.out */
+ 4, 0, 40,
+ 4, 0, 40,
+ 4, 0, 40,
+ 4, 0, 40,
+ 4, 0, 40,
+ 4, 0, 40,
+ 4, 0, 40,
+ 4, 0, 40,
+ 4, 0, 40,
+ 4, 0, 40,
+ 4, 0, 40,
+ 4, 0, 40,
+ 4, 0, 40,
+ 4, 0, 40,
+ 4, 0, 40,
+ 4, 0, 40,
+ 4, 2, 10,
+ 4, 2, 10,
+ 4, 2, 10,
+ 4, 2, 10,
+ 4, 2, 32,
+ 4, 2, 32,
+ 4, 2, 32,
+ 4, 2, 32,
+ 4, 2, 8,
+ 4, 2, 8,
+ 4, 2, 8,
+ 4, 2, 8,
+ 0, 0, 4,
+ 4, 4, 0,
+ 4, 3, 2,
+ 4, 3, 2,
+ 4, 0, 4,
+ 4, 0, 12,
+ /* vc1DEC_Mixed_MV_MB_6.out */
+ 4, 1, 8,
+ 4, 1, 8,
+ 4, 1, 8,
+ 4, 1, 8,
+ 4, 1, 8,
+ 4, 1, 8,
+ 4, 1, 8,
+ 4, 1, 8,
+ 4, 1, 40,
+ 4, 1, 40,
+ 4, 1, 40,
+ 4, 1, 40,
+ 4, 1, 40,
+ 4, 1, 40,
+ 4, 1, 40,
+ 4, 1, 40,
+ 4, 4, 4,
+ 4, 4, 12,
+ 4, 3, 2,
+ 4, 3, 2,
+ 4, 2, 10,
+ 4, 2, 10,
+ 4, 2, 10,
+ 4, 2, 10,
+ 4, 2, 0,
+ 4, 2, 0,
+ 4, 2, 0,
+ 4, 2, 0,
+ 4, 2, 32,
+ 4, 2, 32,
+ 4, 2, 32,
+ 4, 2, 32,
+ /* vc1DEC_Mixed_MV_MB_7.out */
+ 4, 0, 0,
+ 4, 0, 0,
+ 4, 0, 0,
+ 4, 0, 0,
+ 4, 0, 0,
+ 4, 0, 0,
+ 4, 0, 0,
+ 4, 0, 0,
+ 4, 0, 0,
+ 4, 0, 0,
+ 4, 0, 0,
+ 4, 0, 0,
+ 4, 0, 0,
+ 4, 0, 0,
+ 4, 0, 0,
+ 4, 0, 0,
+ 4, 2, 2,
+ 4, 2, 2,
+ 4, 2, 2,
+ 4, 2, 2,
+ 4, 2, 32,
+ 4, 2, 32,
+ 4, 2, 32,
+ 4, 2, 32,
+ 4, 2, 8,
+ 4, 2, 8,
+ 4, 2, 8,
+ 4, 2, 8,
+ 0, 0, 4,
+ 4, 4, 40,
+ 4, 3, 10,
+ 4, 3, 10,
+ 4, 0, 4,
+ 4, 0, 12,
+ /* vc1DEC_Mot_Vector_Diff_VLC_0.out */
+ 0, 0, 32,
+ 2, 2, 33,
+ 4, 4, 6,
+ 0, 0, 50,
+ 5, 0, 6,
+ 2, 2, 50,
+ 2, 3, 56,
+ 4, 4, 37,
+ 4, 2, 36,
+ 4, 2, 36,
+ 4, 2, 36,
+ 4, 2, 36,
+ 1, 2, 58,
+ 4, 4, 42,
+ 4, 3, 43,
+ 4, 3, 43,
+ 4, 3, 44,
+ 4, 3, 44,
+ 4, 4, 45,
+ 0, 0, 58,
+ 4, 4, 49,
+ 4, 4, 50,
+ 4, 4, 51,
+ 4, 4, 55,
+ 4, 4, 56,
+ 4, 4, 57,
+ 2, 1, 53,
+ 1, 2, 55,
+ 4, 2, 72,
+ 4, 2, 72,
+ 4, 2, 72,
+ 4, 2, 72,
+ 4, 0, 0,
+ 6, 0, 0,
+ 4, 0, 5,
+ 4, 1, 8,
+ 2, 5, 2,
+ 4, 2, 3,
+ 4, 0, 15,
+ 4, 1, 16,
+ 1, 1, 5,
+ 2, 1, 7,
+ 0, 0, 9,
+ 4, 5, 9,
+ 4, 5, 4,
+ 5, 0, 16,
+ 4, 1, 34,
+ 4, 1, 41,
+ 5, 0, 15,
+ 4, 1, 29,
+ 4, 1, 22,
+ 4, 0, 10,
+ 4, 0, 21,
+ 4, 0, 7,
+ 4, 0, 11,
+ 6, 0, 9,
+ 4, 1, 18,
+ 1, 1, 2,
+ 4, 2, 14,
+ 4, 0, 17,
+ 4, 1, 23,
+ 4, 1, 25,
+ 4, 0, 35,
+ 1, 1, 4,
+ 4, 2, 26,
+ 6, 0, 13,
+ 4, 3, 24,
+ 4, 0, 39,
+ 4, 1, 40,
+ 4, 1, 47,
+ 4, 0, 38,
+ 4, 1, 46,
+ 1, 1, 2,
+ 4, 2, 54,
+ 4, 0, 53,
+ 4, 1, 59,
+ 4, 1, 66,
+ 4, 0, 48,
+ 4, 0, 52,
+ 6, 0, 30,
+ 4, 1, 60,
+ 4, 1, 58,
+ 6, 0, 31,
+ 1, 1, 3,
+ 4, 2, 68,
+ 5, 0, 35,
+ 4, 0, 65,
+ 4, 1, 67,
+ 4, 1, 69,
+ /* vc1DEC_Mot_Vector_Diff_VLC_1.out */
+ 4, 4, 0,
+ 0, 0, 31,
+ 0, 0, 32,
+ 4, 4, 5,
+ 4, 4, 6,
+ 0, 1, 31,
+ 4, 4, 9,
+ 2, 2, 52,
+ 4, 1, 36,
+ 4, 1, 36,
+ 4, 1, 36,
+ 4, 1, 36,
+ 4, 1, 36,
+ 4, 1, 36,
+ 4, 1, 36,
+ 4, 1, 36,
+ 4, 2, 37,
+ 4, 2, 37,
+ 4, 2, 37,
+ 4, 2, 37,
+ 2, 1, 46,
+ 0, 0, 50,
+ 4, 3, 43,
+ 4, 3, 43,
+ 4, 2, 42,
+ 4, 2, 42,
+ 4, 2, 42,
+ 4, 2, 42,
+ 5, 0, 24,
+ 1, 1, 44,
+ 1, 3, 46,
+ 4, 4, 72,
+ 6, 0, 0,
+ 4, 0, 3,
+ 4, 0, 4,
+ 4, 0, 7,
+ 4, 1, 8,
+ 4, 1, 10,
+ 6, 0, 5,
+ 1, 1, 1,
+ 4, 0, 13,
+ 2, 4, 2,
+ 4, 1, 15,
+ 2, 2, 6,
+ 1, 2, 9,
+ 6, 1, 12,
+ 0, 0, 11,
+ 4, 4, 19,
+ 4, 4, 14,
+ 5, 1, 34,
+ 5, 0, 33,
+ 4, 2, 64,
+ 4, 2, 60,
+ 6, 1, 14,
+ 6, 0, 16,
+ 4, 2, 35,
+ 4, 2, 54,
+ 4, 0, 20,
+ 4, 0, 23,
+ 4, 0, 38,
+ 1, 1, 3,
+ 4, 2, 18,
+ 5, 0, 8,
+ 6, 0, 10,
+ 4, 1, 24,
+ 4, 1, 47,
+ 4, 0, 41,
+ 0, 0, 2,
+ 6, 0, 19,
+ 4, 0, 45,
+ 4, 0, 51,
+ 4, 0, 44,
+ 4, 0, 46,
+ 4, 0, 50,
+ 5, 0, 26,
+ 4, 1, 55,
+ 1, 2, 5,
+ 4, 1, 58,
+ 4, 2, 62,
+ 4, 3, 63,
+ 4, 3, 65,
+ 4, 0, 56,
+ 4, 1, 57,
+ 4, 2, 59,
+ 4, 2, 61,
+ /* vc1DEC_Mot_Vector_Diff_VLC_2.out */
+ 4, 2, 0,
+ 4, 2, 0,
+ 4, 2, 0,
+ 4, 2, 0,
+ 0, 2, 28,
+ 4, 4, 37,
+ 4, 3, 6,
+ 4, 3, 6,
+ 4, 2, 5,
+ 4, 2, 5,
+ 4, 2, 5,
+ 4, 2, 5,
+ 4, 3, 42,
+ 4, 3, 42,
+ 4, 3, 43,
+ 4, 3, 43,
+ 4, 0, 36,
+ 4, 0, 36,
+ 4, 0, 36,
+ 4, 0, 36,
+ 4, 0, 36,
+ 4, 0, 36,
+ 4, 0, 36,
+ 4, 0, 36,
+ 4, 0, 36,
+ 4, 0, 36,
+ 4, 0, 36,
+ 4, 0, 36,
+ 4, 0, 36,
+ 4, 0, 36,
+ 4, 0, 36,
+ 4, 0, 36,
+ 2, 1, 8,
+ 6, 2, 6,
+ 6, 2, 10,
+ 1, 2, 8,
+ 2, 1, 11,
+ 6, 2, 24,
+ 6, 2, 28,
+ 6, 2, 32,
+ 6, 1, 4,
+ 6, 0, 3,
+ 6, 1, 0,
+ 6, 1, 14,
+ 6, 0, 16,
+ 4, 2, 35,
+ 4, 2, 38,
+ 6, 1, 22,
+ 0, 0, 2,
+ 6, 0, 19,
+ 4, 0, 41,
+ 4, 0, 44,
+ /* vc1DEC_Mot_Vector_Diff_VLC_3.out */
+ 0, 2, 32,
+ 4, 4, 38,
+ 4, 3, 36,
+ 4, 3, 36,
+ 4, 3, 37,
+ 4, 3, 37,
+ 4, 4, 42,
+ 4, 4, 45,
+ 4, 2, 43,
+ 4, 2, 43,
+ 4, 2, 43,
+ 4, 2, 43,
+ 4, 3, 44,
+ 4, 3, 44,
+ 0, 0, 70,
+ 4, 4, 48,
+ 4, 3, 49,
+ 4, 3, 49,
+ 4, 4, 51,
+ 2, 2, 67,
+ 4, 2, 50,
+ 4, 2, 50,
+ 4, 2, 50,
+ 4, 2, 50,
+ 4, 4, 55,
+ 4, 4, 56,
+ 4, 4, 57,
+ 2, 1, 63,
+ 6, 0, 31,
+ 2, 1, 64,
+ 4, 3, 72,
+ 4, 3, 72,
+ 0, 3, 8,
+ 1, 2, 38,
+ 0, 1, 44,
+ 4, 2, 40,
+ 4, 1, 39,
+ 4, 1, 39,
+ 0, 0, 44,
+ 4, 2, 47,
+ 0, 2, 16,
+ 4, 3, 6,
+ 4, 2, 1,
+ 4, 2, 1,
+ 4, 3, 8,
+ 4, 3, 10,
+ 4, 2, 9,
+ 4, 2, 9,
+ 4, 3, 11,
+ 4, 3, 13,
+ 4, 3, 14,
+ 4, 3, 15,
+ 4, 3, 16,
+ 2, 2, 11,
+ 4, 3, 19,
+ 4, 3, 23,
+ 4, 2, 0,
+ 4, 2, 2,
+ 4, 2, 3,
+ 4, 2, 4,
+ 4, 2, 5,
+ 4, 2, 7,
+ 4, 2, 12,
+ 4, 2, 17,
+ 2, 1, 4,
+ 5, 0, 14,
+ 4, 2, 20,
+ 4, 2, 18,
+ 4, 0, 34,
+ 4, 1, 32,
+ 4, 1, 30,
+ 1, 1, 4,
+ 4, 1, 25,
+ 4, 2, 26,
+ 4, 2, 31,
+ 4, 0, 21,
+ 4, 1, 22,
+ 4, 1, 24,
+ 4, 1, 27,
+ 4, 1, 33,
+ 4, 1, 35,
+ 4, 1, 66,
+ 4, 0, 41,
+ 4, 0, 60,
+ 4, 0, 46,
+ 4, 0, 52,
+ 4, 0, 58,
+ 4, 1, 54,
+ 4, 2, 67,
+ 4, 2, 53,
+ 4, 0, 62,
+ 4, 1, 61,
+ 4, 1, 59,
+ 5, 0, 35,
+ 5, 0, 34,
+ 4, 1, 65,
+ /* vc1DEC_One_Field_Ref_Ilace_MV_0.out */
+ 4, 1, 8,
+ 4, 1, 8,
+ 4, 1, 8,
+ 4, 1, 8,
+ 4, 1, 8,
+ 4, 1, 8,
+ 4, 1, 8,
+ 4, 1, 8,
+ 4, 4, 11,
+ 1, 1, 23,
+ 4, 3, 17,
+ 4, 3, 17,
+ 4, 4, 4,
+ 2, 2, 24,
+ 2, 2, 27,
+ 1, 2, 45,
+ 4, 3, 9,
+ 4, 3, 9,
+ 4, 4, 3,
+ 0, 0, 45,
+ 4, 2, 0,
+ 4, 2, 0,
+ 4, 2, 0,
+ 4, 2, 0,
+ 4, 3, 1,
+ 4, 3, 1,
+ 1, 3, 40,
+ 4, 4, 10,
+ 2, 1, 43,
+ 0, 1, 45,
+ 4, 4, 2,
+ 0, 1, 51,
+ 4, 0, 21,
+ 0, 0, 2,
+ 4, 1, 28,
+ 4, 0, 47,
+ 4, 0, 23,
+ 4, 0, 18,
+ 4, 1, 31,
+ 4, 2, 48,
+ 4, 2, 33,
+ 4, 0, 12,
+ 2, 2, 3,
+ 4, 2, 32,
+ 4, 2, 52,
+ 4, 0, 36,
+ 0, 0, 3,
+ 1, 1, 4,
+ 4, 2, 57,
+ 4, 0, 45,
+ 4, 0, 58,
+ 4, 0, 56,
+ 2, 1, 2,
+ 4, 1, 55,
+ 4, 0, 54,
+ 1, 1, 2,
+ 6, 1, 32,
+ 6, 0, 34,
+ 4, 1, 71,
+ 6, 0, 31,
+ 4, 0, 20,
+ 4, 1, 44,
+ 4, 2, 40,
+ 4, 2, 27,
+ 4, 0, 19,
+ 4, 0, 35,
+ 4, 0, 5,
+ 4, 1, 29,
+ 4, 2, 14,
+ 4, 3, 60,
+ 4, 3, 16,
+ 4, 0, 26,
+ 4, 1, 30,
+ 4, 1, 7,
+ 5, 0, 19,
+ 4, 1, 6,
+ 4, 1, 22,
+ 0, 1, 1,
+ 4, 1, 34,
+ 4, 1, 53,
+ 4, 1, 15,
+ 4, 1, 50,
+ 4, 1, 13,
+ 0, 1, 3,
+ 0, 1, 6,
+ 2, 2, 9,
+ 4, 1, 25,
+ 4, 1, 42,
+ 4, 1, 24,
+ 4, 1, 51,
+ 4, 1, 61,
+ 4, 1, 41,
+ 4, 1, 49,
+ 4, 1, 62,
+ 4, 0, 37,
+ 4, 1, 43,
+ 4, 2, 46,
+ 4, 2, 59,
+ /* vc1DEC_One_Field_Ref_Ilace_MV_1.out */
+ 4, 4, 20,
+ 4, 4, 4,
+ 1, 3, 30,
+ 0, 1, 39,
+ 4, 2, 1,
+ 4, 2, 1,
+ 4, 2, 1,
+ 4, 2, 1,
+ 4, 3, 9,
+ 4, 3, 9,
+ 4, 4, 35,
+ 2, 1, 44,
+ 4, 3, 26,
+ 4, 3, 26,
+ 4, 3, 2,
+ 4, 3, 2,
+ 4, 4, 11,
+ 0, 1, 45,
+ 4, 3, 17,
+ 4, 3, 17,
+ 0, 0, 58,
+ 1, 1, 59,
+ 4, 4, 3,
+ 4, 4, 10,
+ 4, 2, 8,
+ 4, 2, 8,
+ 4, 2, 8,
+ 4, 2, 8,
+ 4, 2, 0,
+ 4, 2, 0,
+ 4, 2, 0,
+ 4, 2, 0,
+ 4, 0, 22,
+ 1, 1, 4,
+ 4, 2, 38,
+ 4, 3, 47,
+ 4, 3, 45,
+ 4, 0, 39,
+ 0, 0, 2,
+ 4, 1, 40,
+ 4, 0, 49,
+ 4, 0, 42,
+ 1, 4, 4,
+ 1, 1, 9,
+ 4, 1, 30,
+ 4, 1, 28,
+ 4, 0, 6,
+ 4, 1, 32,
+ 4, 2, 15,
+ 4, 3, 25,
+ 4, 4, 16,
+ 4, 4, 51,
+ 4, 0, 36,
+ 4, 1, 46,
+ 4, 1, 33,
+ 4, 0, 19,
+ 2, 2, 2,
+ 4, 1, 13,
+ 4, 0, 23,
+ 4, 1, 24,
+ 4, 2, 48,
+ 4, 2, 41,
+ 4, 1, 27,
+ 4, 1, 5,
+ 4, 1, 29,
+ 1, 1, 1,
+ 4, 0, 53,
+ 0, 1, 2,
+ 4, 1, 37,
+ 4, 1, 59,
+ 4, 1, 55,
+ 1, 1, 2,
+ 4, 1, 50,
+ 4, 0, 57,
+ 0, 0, 2,
+ 4, 1, 34,
+ 4, 0, 60,
+ 4, 0, 43,
+ 4, 0, 18,
+ 4, 0, 12,
+ 4, 0, 21,
+ 1, 5, 2,
+ 4, 1, 44,
+ 4, 0, 31,
+ 4, 1, 14,
+ 4, 2, 7,
+ 4, 3, 56,
+ 4, 4, 54,
+ 2, 3, 2,
+ 4, 5, 58,
+ 4, 0, 52,
+ 4, 1, 62,
+ 4, 2, 61,
+ 1, 1, 2,
+ 6, 1, 32,
+ 6, 0, 34,
+ 4, 1, 71,
+ 6, 0, 31,
+ /* vc1DEC_One_Field_Ref_Ilace_MV_2.out */
+ 4, 3, 9,
+ 4, 3, 9,
+ 4, 4, 26,
+ 0, 0, 29,
+ 2, 3, 30,
+ 4, 4, 10,
+ 0, 1, 51,
+ 4, 4, 4,
+ 4, 2, 0,
+ 4, 2, 0,
+ 4, 2, 0,
+ 4, 2, 0,
+ 4, 3, 1,
+ 4, 3, 1,
+ 4, 3, 2,
+ 4, 3, 2,
+ 4, 1, 8,
+ 4, 1, 8,
+ 4, 1, 8,
+ 4, 1, 8,
+ 4, 1, 8,
+ 4, 1, 8,
+ 4, 1, 8,
+ 4, 1, 8,
+ 1, 1, 42,
+ 4, 4, 11,
+ 4, 3, 3,
+ 4, 3, 3,
+ 4, 3, 17,
+ 4, 3, 17,
+ 4, 4, 12,
+ 2, 3, 52,
+ 4, 0, 20,
+ 4, 0, 13,
+ 4, 0, 21,
+ 0, 0, 4,
+ 0, 0, 5,
+ 2, 2, 6,
+ 4, 3, 36,
+ 4, 0, 29,
+ 4, 0, 16,
+ 4, 0, 31,
+ 4, 0, 37,
+ 4, 0, 33,
+ 4, 1, 42,
+ 1, 2, 2,
+ 4, 2, 43,
+ 4, 0, 62,
+ 2, 1, 3,
+ 4, 2, 59,
+ 4, 2, 61,
+ 4, 0, 52,
+ 1, 1, 2,
+ 6, 1, 32,
+ 6, 0, 34,
+ 4, 1, 71,
+ 6, 0, 31,
+ 4, 1, 22,
+ 2, 3, 3,
+ 4, 1, 19,
+ 4, 1, 18,
+ 4, 0, 24,
+ 4, 1, 53,
+ 4, 2, 55,
+ 4, 3, 40,
+ 4, 3, 47,
+ 4, 0, 5,
+ 0, 0, 2,
+ 4, 1, 14,
+ 0, 2, 2,
+ 4, 0, 23,
+ 4, 2, 34,
+ 0, 0, 7,
+ 4, 2, 46,
+ 4, 2, 32,
+ 4, 2, 45,
+ 0, 0, 5,
+ 4, 2, 48,
+ 4, 2, 56,
+ 4, 0, 54,
+ 4, 0, 57,
+ 4, 0, 58,
+ 4, 0, 50,
+ 0, 1, 5,
+ 4, 1, 35,
+ 0, 0, 14,
+ 4, 3, 25,
+ 4, 3, 7,
+ 4, 1, 44,
+ 4, 1, 15,
+ 1, 1, 2,
+ 4, 1, 6,
+ 4, 0, 30,
+ 2, 2, 2,
+ 4, 1, 27,
+ 4, 0, 49,
+ 4, 1, 41,
+ 4, 2, 60,
+ 4, 2, 51,
+ 5, 0, 19,
+ 4, 0, 28,
+ /* vc1DEC_One_Field_Ref_Ilace_MV_3.out */
+ 4, 3, 3,
+ 4, 3, 3,
+ 4, 3, 1,
+ 4, 3, 1,
+ 0, 0, 28,
+ 4, 4, 5,
+ 4, 3, 26,
+ 4, 3, 26,
+ 4, 3, 2,
+ 4, 3, 2,
+ 2, 1, 24,
+ 2, 2, 26,
+ 4, 2, 8,
+ 4, 2, 8,
+ 4, 2, 8,
+ 4, 2, 8,
+ 0, 0, 32,
+ 4, 4, 9,
+ 0, 2, 32,
+ 0, 1, 39,
+ 4, 3, 17,
+ 4, 3, 17,
+ 0, 0, 43,
+ 4, 4, 4,
+ 2, 1, 43,
+ 1, 1, 48,
+ 4, 3, 0,
+ 4, 3, 0,
+ 4, 4, 35,
+ 2, 3, 49,
+ 2, 1, 53,
+ 1, 1, 58,
+ 4, 0, 39,
+ 4, 0, 38,
+ 4, 0, 21,
+ 4, 1, 31,
+ 4, 1, 22,
+ 4, 0, 12,
+ 4, 1, 40,
+ 2, 2, 2,
+ 4, 2, 46,
+ 4, 0, 61,
+ 4, 1, 52,
+ 1, 1, 2,
+ 6, 1, 32,
+ 6, 0, 34,
+ 4, 1, 71,
+ 6, 0, 31,
+ 4, 0, 28,
+ 4, 0, 30,
+ 4, 2, 32,
+ 4, 2, 54,
+ 4, 2, 47,
+ 4, 2, 23,
+ 4, 1, 14,
+ 4, 1, 14,
+ 4, 2, 25,
+ 4, 2, 59,
+ 4, 1, 36,
+ 4, 1, 7,
+ 4, 1, 53,
+ 2, 1, 1,
+ 4, 0, 41,
+ 4, 1, 43,
+ 4, 1, 62,
+ 4, 0, 18,
+ 4, 0, 29,
+ 4, 0, 44,
+ 2, 1, 2,
+ 4, 1, 37,
+ 4, 0, 15,
+ 4, 1, 51,
+ 4, 1, 56,
+ 4, 0, 19,
+ 0, 0, 2,
+ 4, 1, 13,
+ 4, 0, 24,
+ 4, 0, 50,
+ 4, 0, 11,
+ 4, 1, 27,
+ 4, 2, 55,
+ 4, 3, 57,
+ 4, 3, 33,
+ 4, 0, 20,
+ 1, 1, 2,
+ 5, 0, 24,
+ 4, 0, 16,
+ 4, 1, 58,
+ 4, 1, 60,
+ 4, 0, 10,
+ 1, 1, 2,
+ 4, 1, 6,
+ 4, 0, 45,
+ 4, 1, 42,
+ 4, 1, 34,
+ /* vc1DEC_One_MV_MB_0.out */
+ 4, 0, 0,
+ 4, 1, 8,
+ 4, 2, 32,
+ 4, 3, 40,
+ 4, 4, 12,
+ 4, 4, 4,
+ /* vc1DEC_One_MV_MB_1.out */
+ 4, 0, 0,
+ 4, 1, 32,
+ 4, 2, 8,
+ 4, 3, 40,
+ 4, 4, 12,
+ 4, 4, 4,
+ /* vc1DEC_One_MV_MB_2.out */
+ 4, 0, 32,
+ 4, 0, 32,
+ 4, 0, 32,
+ 4, 0, 32,
+ 4, 0, 32,
+ 4, 0, 32,
+ 4, 0, 32,
+ 4, 0, 32,
+ 4, 0, 32,
+ 4, 0, 32,
+ 4, 0, 32,
+ 4, 0, 32,
+ 4, 0, 32,
+ 4, 0, 32,
+ 4, 0, 32,
+ 4, 0, 32,
+ 4, 4, 4,
+ 4, 4, 12,
+ 4, 3, 8,
+ 4, 3, 8,
+ 4, 2, 40,
+ 4, 2, 40,
+ 4, 2, 40,
+ 4, 2, 40,
+ 4, 1, 0,
+ 4, 1, 0,
+ 4, 1, 0,
+ 4, 1, 0,
+ 4, 1, 0,
+ 4, 1, 0,
+ 4, 1, 0,
+ 4, 1, 0,
+ /* vc1DEC_One_MV_MB_3.out */
+ 4, 0, 8,
+ 4, 0, 8,
+ 4, 0, 8,
+ 4, 0, 8,
+ 4, 0, 8,
+ 4, 0, 8,
+ 4, 0, 8,
+ 4, 0, 8,
+ 4, 0, 8,
+ 4, 0, 8,
+ 4, 0, 8,
+ 4, 0, 8,
+ 4, 0, 8,
+ 4, 0, 8,
+ 4, 0, 8,
+ 4, 0, 8,
+ 4, 2, 40,
+ 4, 2, 40,
+ 4, 2, 40,
+ 4, 2, 40,
+ 4, 4, 4,
+ 4, 4, 12,
+ 4, 3, 32,
+ 4, 3, 32,
+ 4, 1, 0,
+ 4, 1, 0,
+ 4, 1, 0,
+ 4, 1, 0,
+ 4, 1, 0,
+ 4, 1, 0,
+ 4, 1, 0,
+ 4, 1, 0,
+ /* vc1DEC_One_MV_MB_4.out */
+ 4, 1, 40,
+ 4, 1, 40,
+ 4, 1, 40,
+ 4, 1, 40,
+ 4, 3, 4,
+ 4, 3, 12,
+ 4, 2, 32,
+ 4, 2, 32,
+ 4, 1, 0,
+ 4, 1, 0,
+ 4, 1, 0,
+ 4, 1, 0,
+ 4, 1, 8,
+ 4, 1, 8,
+ 4, 1, 8,
+ 4, 1, 8,
+ /* vc1DEC_One_MV_MB_5.out */
+ 4, 1, 8,
+ 4, 1, 8,
+ 4, 1, 8,
+ 4, 1, 8,
+ 4, 3, 4,
+ 4, 3, 12,
+ 4, 2, 0,
+ 4, 2, 0,
+ 4, 1, 32,
+ 4, 1, 32,
+ 4, 1, 32,
+ 4, 1, 32,
+ 4, 1, 40,
+ 4, 1, 40,
+ 4, 1, 40,
+ 4, 1, 40,
+ /* vc1DEC_One_MV_MB_6.out */
+ 4, 0, 8,
+ 4, 1, 40,
+ 4, 2, 0,
+ 4, 3, 32,
+ 4, 4, 12,
+ 4, 4, 4,
+ /* vc1DEC_One_MV_MB_7.out */
+ 4, 0, 40,
+ 4, 0, 40,
+ 4, 0, 40,
+ 4, 0, 40,
+ 4, 0, 40,
+ 4, 0, 40,
+ 4, 0, 40,
+ 4, 0, 40,
+ 4, 0, 40,
+ 4, 0, 40,
+ 4, 0, 40,
+ 4, 0, 40,
+ 4, 0, 40,
+ 4, 0, 40,
+ 4, 0, 40,
+ 4, 0, 40,
+ 4, 4, 4,
+ 4, 4, 12,
+ 4, 3, 0,
+ 4, 3, 0,
+ 4, 2, 32,
+ 4, 2, 32,
+ 4, 2, 32,
+ 4, 2, 32,
+ 4, 1, 8,
+ 4, 1, 8,
+ 4, 1, 8,
+ 4, 1, 8,
+ 4, 1, 8,
+ 4, 1, 8,
+ 4, 1, 8,
+ 4, 1, 8,
+ /* vc1DEC_P_Picture_CBPCY_VLC_0.out */
+ 2, 3, 32,
+ 4, 4, 16,
+ 0, 0, 59,
+ 0, 1, 60,
+ 4, 4, 56,
+ 0, 0, 62,
+ 0, 0, 63,
+ 4, 4, 44,
+ 4, 2, 60,
+ 4, 2, 60,
+ 4, 2, 60,
+ 4, 2, 60,
+ 0, 2, 59,
+ 0, 1, 66,
+ 1, 2, 71,
+ 1, 1, 77,
+ 4, 2, 62,
+ 4, 2, 62,
+ 4, 2, 62,
+ 4, 2, 62,
+ 4, 2, 61,
+ 4, 2, 61,
+ 4, 2, 61,
+ 4, 2, 61,
+ 4, 1, 63,
+ 4, 1, 63,
+ 4, 1, 63,
+ 4, 1, 63,
+ 4, 1, 63,
+ 4, 1, 63,
+ 4, 1, 63,
+ 4, 1, 63,
+ 4, 0, 32,
+ 4, 1, 40,
+ 4, 2, 34,
+ 0, 2, 2,
+ 0, 3, 9,
+ 4, 2, 19,
+ 4, 2, 51,
+ 4, 2, 11,
+ 4, 2, 43,
+ 4, 2, 27,
+ 4, 2, 7,
+ 4, 2, 39,
+ 4, 2, 23,
+ 4, 3, 0,
+ 4, 3, 50,
+ 4, 3, 26,
+ 4, 3, 6,
+ 4, 3, 38,
+ 4, 3, 22,
+ 4, 3, 1,
+ 4, 3, 33,
+ 4, 3, 9,
+ 4, 3, 41,
+ 4, 3, 25,
+ 4, 3, 5,
+ 4, 3, 37,
+ 4, 3, 3,
+ 4, 2, 35,
+ 4, 2, 35,
+ 4, 0, 48,
+ 4, 0, 8,
+ 4, 1, 24,
+ 4, 1, 4,
+ 4, 1, 36,
+ 4, 1, 2,
+ 4, 0, 20,
+ 4, 0, 52,
+ 4, 0, 12,
+ 4, 0, 28,
+ 4, 2, 18,
+ 4, 2, 42,
+ 4, 1, 10,
+ 4, 1, 10,
+ 4, 2, 58,
+ 4, 2, 54,
+ 4, 2, 14,
+ 4, 2, 49,
+ 4, 1, 46,
+ 4, 1, 30,
+ 4, 1, 17,
+ 0, 0, 1,
+ 4, 0, 57,
+ 4, 0, 21,
+ 1, 1, 4,
+ 4, 1, 45,
+ 4, 2, 55,
+ 4, 2, 15,
+ 4, 0, 53,
+ 4, 1, 13,
+ 4, 1, 29,
+ 4, 0, 59,
+ 4, 1, 47,
+ 4, 1, 31,
+ /* vc1DEC_P_Picture_CBPCY_VLC_1.out */
+ 2, 2, 32,
+ 4, 4, 48,
+ 4, 3, 40,
+ 4, 3, 40,
+ 4, 2, 32,
+ 4, 2, 32,
+ 4, 2, 32,
+ 4, 2, 32,
+ 4, 2, 16,
+ 4, 2, 16,
+ 4, 2, 16,
+ 4, 2, 16,
+ 4, 2, 8,
+ 4, 2, 8,
+ 4, 2, 8,
+ 4, 2, 8,
+ 4, 4, 24,
+ 4, 4, 56,
+ 4, 4, 36,
+ 4, 4, 52,
+ 4, 2, 4,
+ 4, 2, 4,
+ 4, 2, 4,
+ 4, 2, 4,
+ 4, 3, 20,
+ 4, 3, 20,
+ 4, 3, 12,
+ 4, 3, 12,
+ 4, 4, 28,
+ 1, 2, 43,
+ 1, 2, 48,
+ 2, 1, 54,
+ 4, 0, 44,
+ 0, 0, 3,
+ 4, 2, 2,
+ 0, 4, 3,
+ 4, 0, 50,
+ 4, 0, 10,
+ 0, 0, 32,
+ 4, 4, 18,
+ 4, 4, 42,
+ 4, 4, 26,
+ 4, 4, 38,
+ 4, 4, 22,
+ 4, 4, 14,
+ 4, 4, 46,
+ 4, 4, 62,
+ 4, 4, 1,
+ 4, 4, 17,
+ 4, 4, 49,
+ 4, 4, 25,
+ 4, 4, 57,
+ 4, 4, 5,
+ 4, 4, 37,
+ 4, 4, 13,
+ 4, 4, 45,
+ 4, 4, 3,
+ 4, 4, 35,
+ 4, 4, 19,
+ 4, 4, 51,
+ 4, 4, 11,
+ 4, 4, 43,
+ 4, 4, 27,
+ 4, 4, 59,
+ 4, 4, 7,
+ 4, 4, 39,
+ 4, 4, 23,
+ 4, 4, 55,
+ 4, 4, 15,
+ 4, 4, 47,
+ 4, 0, 0,
+ 4, 0, 34,
+ 4, 0, 60,
+ 0, 0, 3,
+ 4, 2, 54,
+ 4, 2, 30,
+ 4, 0, 58,
+ 4, 0, 6,
+ 2, 1, 4,
+ 4, 1, 41,
+ 4, 2, 53,
+ 4, 2, 31,
+ 4, 0, 9,
+ 4, 1, 21,
+ 4, 1, 33,
+ 4, 0, 61,
+ 4, 1, 63,
+ 4, 1, 29,
+ /* vc1DEC_P_Picture_CBPCY_VLC_2.out */
+ 2, 4, 32,
+ 4, 4, 32,
+ 4, 4, 16,
+ 4, 4, 48,
+ 4, 3, 8,
+ 4, 3, 8,
+ 4, 3, 40,
+ 4, 3, 40,
+ 4, 3, 56,
+ 4, 3, 56,
+ 4, 3, 4,
+ 4, 3, 4,
+ 0, 0, 36,
+ 4, 4, 52,
+ 4, 3, 20,
+ 4, 3, 20,
+ 4, 4, 12,
+ 4, 4, 44,
+ 4, 3, 28,
+ 4, 3, 28,
+ 4, 2, 60,
+ 4, 2, 60,
+ 4, 2, 60,
+ 4, 2, 60,
+ 0, 1, 26,
+ 0, 1, 31,
+ 4, 4, 62,
+ 1, 1, 39,
+ 1, 2, 43,
+ 4, 4, 61,
+ 0, 2, 48,
+ 4, 4, 63,
+ 4, 0, 24,
+ 0, 0, 5,
+ 4, 2, 34,
+ 4, 3, 50,
+ 4, 4, 18,
+ 0, 2, 3,
+ 4, 0, 10,
+ 4, 0, 42,
+ 4, 2, 0,
+ 4, 2, 6,
+ 4, 2, 38,
+ 4, 2, 37,
+ 4, 2, 51,
+ 4, 2, 27,
+ 4, 1, 7,
+ 4, 1, 7,
+ 4, 0, 36,
+ 4, 0, 2,
+ 4, 1, 26,
+ 0, 0, 3,
+ 4, 1, 22,
+ 4, 1, 54,
+ 4, 0, 58,
+ 4, 0, 14,
+ 0, 0, 4,
+ 4, 1, 30,
+ 4, 1, 33,
+ 0, 1, 3,
+ 4, 0, 46,
+ 4, 0, 1,
+ 4, 1, 17,
+ 4, 1, 49,
+ 4, 1, 9,
+ 4, 1, 35,
+ 4, 0, 41,
+ 0, 0, 2,
+ 4, 1, 57,
+ 4, 0, 25,
+ 4, 0, 5,
+ 2, 1, 4,
+ 4, 1, 45,
+ 4, 2, 29,
+ 4, 2, 3,
+ 4, 0, 53,
+ 4, 1, 13,
+ 4, 1, 21,
+ 4, 2, 19,
+ 4, 2, 11,
+ 0, 0, 6,
+ 4, 2, 59,
+ 4, 2, 39,
+ 4, 2, 23,
+ 0, 0, 4,
+ 4, 2, 31,
+ 4, 0, 43,
+ 4, 0, 55,
+ 4, 0, 15,
+ 4, 0, 47,
+ /* vc1DEC_P_Picture_CBPCY_VLC_3.out */
+ 0, 4, 16,
+ 0, 4, 47,
+ 4, 2, 16,
+ 4, 2, 16,
+ 4, 1, 32,
+ 4, 1, 32,
+ 4, 1, 32,
+ 4, 1, 32,
+ 4, 1, 8,
+ 4, 1, 8,
+ 4, 1, 8,
+ 4, 1, 8,
+ 4, 1, 4,
+ 4, 1, 4,
+ 4, 1, 4,
+ 4, 1, 4,
+ 4, 4, 0,
+ 4, 4, 48,
+ 4, 4, 40,
+ 4, 4, 24,
+ 4, 4, 56,
+ 4, 4, 36,
+ 4, 4, 20,
+ 4, 4, 52,
+ 4, 4, 12,
+ 4, 4, 44,
+ 4, 4, 28,
+ 4, 4, 60,
+ 4, 4, 2,
+ 4, 4, 34,
+ 4, 4, 18,
+ 4, 4, 50,
+ 4, 4, 10,
+ 4, 4, 42,
+ 4, 4, 26,
+ 4, 4, 58,
+ 4, 4, 6,
+ 4, 4, 38,
+ 4, 4, 22,
+ 4, 4, 54,
+ 4, 4, 14,
+ 4, 4, 46,
+ 4, 4, 30,
+ 4, 4, 62,
+ 4, 4, 1,
+ 4, 4, 33,
+ 4, 4, 17,
+ 4, 4, 49,
+ 4, 4, 9,
+ 4, 4, 41,
+ 4, 4, 25,
+ 4, 4, 57,
+ 4, 4, 5,
+ 4, 4, 37,
+ 4, 4, 21,
+ 4, 4, 53,
+ 4, 4, 13,
+ 4, 4, 45,
+ 4, 4, 29,
+ 4, 4, 61,
+ 4, 4, 3,
+ 4, 4, 35,
+ 4, 4, 19,
+ 4, 4, 51,
+ 4, 4, 11,
+ 4, 4, 43,
+ 4, 4, 27,
+ 4, 4, 59,
+ 4, 4, 7,
+ 4, 4, 39,
+ 4, 4, 23,
+ 4, 4, 55,
+ 4, 3, 15,
+ 4, 3, 15,
+ 4, 3, 47,
+ 4, 3, 47,
+ 4, 3, 31,
+ 4, 3, 31,
+ 4, 3, 63,
+ 4, 3, 63,
+ /* vc1DEC_Two_Field_Ref_Ilace_MV_0.out */
+ 4, 4, 3,
+ 0, 1, 31,
+ 1, 1, 53,
+ 4, 4, 18,
+ 4, 4, 10,
+ 4, 4, 35,
+ 2, 1, 56,
+ 1, 2, 68,
+ 1, 1, 79,
+ 4, 4, 44,
+ 0, 2, 91,
+ 4, 4, 2,
+ 4, 3, 26,
+ 4, 3, 26,
+ 0, 0, 117,
+ 2, 1, 118,
+ 4, 1, 8,
+ 4, 1, 8,
+ 4, 1, 8,
+ 4, 1, 8,
+ 4, 1, 8,
+ 4, 1, 8,
+ 4, 1, 8,
+ 4, 1, 8,
+ 4, 3, 0,
+ 4, 3, 0,
+ 4, 4, 9,
+ 0, 1, 124,
+ 4, 4, 1,
+ 1, 2, 141,
+ 4, 3, 17,
+ 4, 3, 17,
+ 4, 1, 71,
+ 0, 2, 3,
+ 4, 1, 48,
+ 4, 1, 30,
+ 4, 2, 60,
+ 4, 2, 73,
+ 1, 1, 6,
+ 4, 2, 82,
+ 4, 2, 33,
+ 0, 1, 8,
+ 4, 1, 56,
+ 4, 1, 56,
+ 4, 0, 100,
+ 0, 0, 2,
+ 4, 1, 61,
+ 4, 0, 122,
+ 4, 0, 97,
+ 4, 1, 88,
+ 4, 1, 114,
+ 0, 0, 2,
+ 4, 1, 106,
+ 4, 0, 109,
+ 4, 0, 117,
+ 4, 0, 28,
+ 0, 1, 2,
+ 4, 1, 21,
+ 4, 1, 67,
+ 4, 1, 107,
+ 4, 1, 116,
+ 4, 1, 54,
+ 4, 0, 20,
+ 1, 2, 2,
+ 4, 1, 47,
+ 4, 0, 98,
+ 0, 1, 3,
+ 4, 2, 59,
+ 4, 2, 42,
+ 4, 1, 85,
+ 4, 1, 25,
+ 0, 0, 2,
+ 4, 1, 110,
+ 4, 0, 104,
+ 4, 0, 78,
+ 4, 0, 4,
+ 0, 1, 3,
+ 4, 2, 22,
+ 4, 2, 89,
+ 4, 1, 41,
+ 4, 1, 51,
+ 2, 2, 2,
+ 4, 1, 66,
+ 4, 0, 72,
+ 4, 1, 86,
+ 4, 2, 120,
+ 4, 2, 99,
+ 4, 0, 62,
+ 1, 1, 2,
+ 4, 1, 45,
+ 4, 0, 49,
+ 2, 3, 2,
+ 4, 1, 32,
+ 2, 1, 5,
+ 4, 1, 92,
+ 4, 2, 93,
+ 4, 3, 115,
+ 4, 3, 118,
+ 4, 0, 91,
+ 4, 1, 90,
+ 4, 1, 103,
+ 4, 2, 6,
+ 0, 1, 7,
+ 4, 2, 39,
+ 0, 0, 13,
+ 4, 1, 5,
+ 4, 1, 5,
+ 4, 2, 37,
+ 2, 3, 11,
+ 4, 1, 58,
+ 5, 0, 37,
+ 4, 1, 24,
+ 2, 2, 1,
+ 4, 0, 76,
+ 4, 1, 87,
+ 4, 2, 124,
+ 4, 2, 125,
+ 4, 0, 65,
+ 4, 0, 23,
+ 2, 2, 5,
+ 4, 1, 55,
+ 2, 1, 7,
+ 4, 3, 102,
+ 4, 3, 96,
+ 4, 0, 16,
+ 4, 1, 81,
+ 4, 2, 112,
+ 4, 2, 94,
+ 4, 0, 43,
+ 4, 1, 121,
+ 4, 1, 123,
+ 4, 0, 19,
+ 4, 0, 12,
+ 4, 0, 27,
+ 2, 4, 2,
+ 4, 1, 29,
+ 2, 2, 6,
+ 4, 1, 50,
+ 4, 2, 69,
+ 4, 3, 84,
+ 2, 1, 8,
+ 4, 4, 119,
+ 4, 0, 64,
+ 4, 1, 68,
+ 0, 0, 2,
+ 4, 2, 83,
+ 4, 0, 95,
+ 4, 0, 34,
+ 4, 0, 113,
+ 4, 1, 79,
+ 4, 1, 108,
+ 4, 1, 13,
+ 2, 2, 3,
+ 4, 1, 53,
+ 0, 1, 7,
+ 4, 0, 36,
+ 4, 1, 63,
+ 0, 0, 2,
+ 4, 2, 7,
+ 4, 0, 52,
+ 4, 0, 101,
+ 4, 1, 15,
+ 4, 1, 40,
+ 4, 1, 31,
+ 2, 3, 1,
+ 4, 0, 57,
+ 4, 1, 70,
+ 4, 2, 77,
+ 4, 3, 105,
+ 4, 3, 111,
+ 4, 0, 11,
+ 0, 0, 3,
+ 4, 2, 80,
+ 4, 2, 14,
+ 4, 0, 38,
+ 4, 0, 46,
+ /* vc1DEC_Two_Field_Ref_Ilace_MV_1.out */
+ 4, 1, 8,
+ 4, 1, 8,
+ 4, 1, 8,
+ 4, 1, 8,
+ 4, 1, 8,
+ 4, 1, 8,
+ 4, 1, 8,
+ 4, 1, 8,
+ 1, 1, 24,
+ 4, 4, 10,
+ 4, 4, 19,
+ 2, 1, 24,
+ 4, 2, 0,
+ 4, 2, 0,
+ 4, 2, 0,
+ 4, 2, 0,
+ 4, 3, 26,
+ 4, 3, 26,
+ 4, 3, 1,
+ 4, 3, 1,
+ 4, 4, 35,
+ 0, 2, 26,
+ 4, 4, 2,
+ 1, 2, 53,
+ 4, 4, 18,
+ 1, 2, 67,
+ 1, 2, 88,
+ 0, 1, 97,
+ 0, 2, 114,
+ 4, 4, 9,
+ 4, 3, 17,
+ 4, 3, 17,
+ 4, 0, 3,
+ 4, 1, 21,
+ 4, 1, 29,
+ 4, 0, 11,
+ 2, 5, 2,
+ 4, 1, 12,
+ 4, 0, 71,
+ 4, 1, 63,
+ 0, 0, 5,
+ 5, 0, 45,
+ 4, 4, 110,
+ 4, 5, 43,
+ 4, 5, 119,
+ 4, 0, 69,
+ 4, 0, 32,
+ 4, 1, 62,
+ 4, 1, 62,
+ 0, 1, 6,
+ 4, 2, 48,
+ 4, 2, 57,
+ 4, 2, 13,
+ 0, 2, 11,
+ 4, 2, 55,
+ 4, 1, 72,
+ 2, 1, 3,
+ 0, 0, 5,
+ 4, 1, 50,
+ 4, 0, 125,
+ 4, 1, 96,
+ 4, 1, 97,
+ 4, 0, 95,
+ 4, 0, 7,
+ 4, 2, 87,
+ 4, 2, 124,
+ 4, 1, 85,
+ 4, 1, 85,
+ 4, 2, 6,
+ 4, 2, 114,
+ 0, 1, 2,
+ 4, 2, 16,
+ 4, 1, 25,
+ 4, 1, 52,
+ 4, 1, 108,
+ 4, 1, 118,
+ 4, 0, 20,
+ 1, 3, 3,
+ 0, 0, 12,
+ 4, 2, 56,
+ 1, 3, 5,
+ 4, 1, 64,
+ 4, 2, 107,
+ 4, 3, 93,
+ 4, 3, 81,
+ 4, 0, 67,
+ 4, 1, 83,
+ 4, 2, 112,
+ 4, 3, 100,
+ 4, 3, 120,
+ 4, 0, 22,
+ 4, 0, 58,
+ 4, 0, 44,
+ 2, 3, 3,
+ 1, 1, 15,
+ 4, 2, 47,
+ 2, 1, 5,
+ 4, 1, 66,
+ 4, 2, 73,
+ 2, 1, 5,
+ 4, 3, 102,
+ 4, 0, 40,
+ 4, 1, 5,
+ 4, 1, 116,
+ 4, 0, 78,
+ 0, 0, 2,
+ 4, 1, 61,
+ 4, 0, 34,
+ 4, 0, 117,
+ 4, 0, 49,
+ 0, 0, 2,
+ 4, 1, 84,
+ 4, 0, 103,
+ 4, 0, 123,
+ 4, 0, 27,
+ 4, 1, 36,
+ 2, 1, 2,
+ 4, 2, 4,
+ 4, 0, 65,
+ 2, 1, 2,
+ 4, 1, 68,
+ 4, 0, 15,
+ 4, 1, 106,
+ 4, 1, 115,
+ 4, 1, 38,
+ 4, 1, 28,
+ 0, 2, 2,
+ 4, 1, 53,
+ 4, 2, 76,
+ 2, 2, 7,
+ 4, 1, 80,
+ 4, 1, 80,
+ 4, 2, 14,
+ 0, 0, 7,
+ 4, 2, 31,
+ 4, 2, 98,
+ 4, 0, 59,
+ 4, 1, 121,
+ 4, 2, 24,
+ 4, 2, 109,
+ 4, 0, 104,
+ 4, 0, 86,
+ 4, 2, 46,
+ 0, 0, 7,
+ 0, 1, 8,
+ 4, 2, 39,
+ 4, 1, 37,
+ 4, 1, 37,
+ 4, 2, 45,
+ 2, 2, 16,
+ 4, 0, 30,
+ 4, 0, 54,
+ 4, 1, 74,
+ 2, 1, 3,
+ 0, 1, 7,
+ 4, 1, 75,
+ 4, 0, 77,
+ 0, 0, 2,
+ 4, 1, 88,
+ 4, 0, 33,
+ 4, 0, 70,
+ 4, 1, 113,
+ 4, 1, 60,
+ 4, 1, 122,
+ 4, 1, 51,
+ 2, 3, 4,
+ 4, 1, 89,
+ 4, 2, 94,
+ 4, 2, 82,
+ 2, 1, 5,
+ 2, 1, 7,
+ 4, 2, 101,
+ 4, 3, 79,
+ 4, 3, 42,
+ 4, 0, 41,
+ 4, 1, 92,
+ 4, 1, 105,
+ 4, 0, 23,
+ 4, 1, 99,
+ 4, 1, 111,
+ /* vc1DEC_Two_Field_Ref_Ilace_MV_2.out */
+ 0, 1, 32,
+ 4, 4, 44,
+ 4, 4, 9,
+ 4, 4, 3,
+ 4, 3, 1,
+ 4, 3, 1,
+ 1, 3, 35,
+ 1, 4, 50,
+ 4, 3, 0,
+ 4, 3, 0,
+ 0, 0, 59,
+ 2, 1, 60,
+ 1, 1, 62,
+ 0, 1, 83,
+ 4, 4, 35,
+ 1, 1, 100,
+ 4, 4, 2,
+ 2, 2, 109,
+ 0, 0, 120,
+ 1, 5, 121,
+ 1, 2, 139,
+ 4, 4, 26,
+ 4, 3, 17,
+ 4, 3, 17,
+ 4, 1, 8,
+ 4, 1, 8,
+ 4, 1, 8,
+ 4, 1, 8,
+ 4, 1, 8,
+ 4, 1, 8,
+ 4, 1, 8,
+ 4, 1, 8,
+ 1, 1, 4,
+ 4, 1, 29,
+ 4, 1, 14,
+ 4, 1, 36,
+ 4, 0, 107,
+ 0, 0, 2,
+ 4, 1, 60,
+ 4, 0, 84,
+ 4, 0, 97,
+ 0, 1, 5,
+ 4, 1, 39,
+ 4, 2, 57,
+ 4, 3, 50,
+ 4, 3, 59,
+ 0, 0, 4,
+ 4, 1, 49,
+ 4, 1, 55,
+ 2, 3, 3,
+ 4, 0, 16,
+ 4, 0, 65,
+ 4, 0, 68,
+ 4, 1, 52,
+ 4, 2, 91,
+ 4, 3, 34,
+ 4, 3, 100,
+ 4, 0, 62,
+ 1, 2, 5,
+ 4, 2, 6,
+ 4, 3, 7,
+ 4, 4, 123,
+ 4, 4, 69,
+ 4, 0, 45,
+ 0, 0, 3,
+ 4, 2, 32,
+ 4, 2, 93,
+ 4, 0, 42,
+ 4, 0, 73,
+ 4, 0, 20,
+ 4, 0, 12,
+ 4, 0, 4,
+ 4, 1, 28,
+ 4, 1, 80,
+ 0, 2, 3,
+ 4, 1, 21,
+ 4, 1, 38,
+ 4, 2, 86,
+ 2, 1, 7,
+ 4, 2, 75,
+ 4, 2, 23,
+ 2, 3, 7,
+ 4, 2, 41,
+ 4, 2, 74,
+ 2, 1, 9,
+ 4, 0, 70,
+ 4, 1, 33,
+ 4, 1, 112,
+ 4, 0, 96,
+ 4, 1, 88,
+ 4, 2, 90,
+ 4, 3, 108,
+ 4, 3, 117,
+ 4, 0, 81,
+ 4, 1, 61,
+ 4, 1, 92,
+ 4, 1, 37,
+ 2, 3, 3,
+ 4, 1, 71,
+ 2, 2, 9,
+ 4, 0, 98,
+ 1, 1, 4,
+ 4, 2, 125,
+ 4, 3, 103,
+ 4, 3, 79,
+ 4, 0, 63,
+ 4, 1, 95,
+ 4, 1, 72,
+ 4, 0, 22,
+ 4, 1, 31,
+ 2, 1, 2,
+ 4, 2, 85,
+ 4, 0, 106,
+ 4, 1, 25,
+ 4, 1, 43,
+ 4, 0, 11,
+ 2, 2, 2,
+ 4, 1, 27,
+ 4, 0, 46,
+ 0, 0, 3,
+ 0, 0, 4,
+ 4, 2, 115,
+ 4, 0, 105,
+ 4, 0, 124,
+ 4, 0, 111,
+ 4, 0, 94,
+ 2, 4, 4,
+ 4, 1, 5,
+ 4, 2, 56,
+ 4, 2, 58,
+ 4, 0, 13,
+ 4, 1, 47,
+ 4, 2, 77,
+ 4, 3, 78,
+ 0, 0, 2,
+ 6, 0, 59,
+ 4, 0, 99,
+ 4, 0, 109,
+ 4, 0, 19,
+ 4, 0, 53,
+ 4, 0, 18,
+ 0, 0, 6,
+ 0, 2, 7,
+ 4, 3, 30,
+ 4, 4, 64,
+ 4, 5, 122,
+ 4, 5, 101,
+ 4, 0, 89,
+ 4, 0, 48,
+ 4, 2, 102,
+ 4, 2, 114,
+ 4, 2, 104,
+ 4, 2, 121,
+ 4, 1, 87,
+ 4, 1, 87,
+ 0, 0, 2,
+ 4, 2, 113,
+ 4, 0, 110,
+ 4, 0, 118,
+ 4, 0, 10,
+ 0, 1, 3,
+ 2, 2, 8,
+ 5, 0, 33,
+ 4, 1, 116,
+ 4, 1, 54,
+ 4, 1, 40,
+ 0, 0, 1,
+ 4, 0, 51,
+ 4, 0, 83,
+ 4, 0, 15,
+ 4, 1, 76,
+ 4, 2, 24,
+ 4, 2, 82,
+ /* vc1DEC_Two_Field_Ref_Ilace_MV_3.out */
+ 4, 2, 0,
+ 4, 2, 0,
+ 4, 2, 0,
+ 4, 2, 0,
+ 0, 1, 28,
+ 4, 4, 19,
+ 2, 1, 54,
+ 4, 4, 10,
+ 4, 3, 1,
+ 4, 3, 1,
+ 1, 3, 72,
+ 4, 4, 35,
+ 4, 2, 17,
+ 4, 2, 17,
+ 4, 2, 17,
+ 4, 2, 17,
+ 2, 3, 76,
+ 4, 4, 18,
+ 4, 3, 26,
+ 4, 3, 26,
+ 1, 2, 107,
+ 0, 0, 144,
+ 4, 4, 9,
+ 2, 2, 144,
+ 4, 1, 8,
+ 4, 1, 8,
+ 4, 1, 8,
+ 4, 1, 8,
+ 4, 1, 8,
+ 4, 1, 8,
+ 4, 1, 8,
+ 4, 1, 8,
+ 4, 1, 4,
+ 2, 1, 3,
+ 0, 1, 5,
+ 4, 1, 36,
+ 4, 0, 21,
+ 4, 1, 57,
+ 4, 1, 58,
+ 0, 2, 4,
+ 4, 1, 98,
+ 1, 2, 12,
+ 4, 1, 22,
+ 4, 2, 117,
+ 0, 0, 7,
+ 4, 2, 74,
+ 4, 2, 94,
+ 4, 1, 68,
+ 4, 1, 68,
+ 4, 2, 73,
+ 4, 2, 82,
+ 4, 0, 25,
+ 4, 0, 91,
+ 4, 0, 67,
+ 4, 1, 83,
+ 2, 1, 2,
+ 4, 2, 105,
+ 4, 0, 101,
+ 4, 1, 120,
+ 4, 1, 96,
+ 4, 0, 11,
+ 2, 3, 2,
+ 4, 1, 62,
+ 4, 0, 71,
+ 0, 1, 4,
+ 4, 2, 14,
+ 4, 3, 86,
+ 4, 3, 7,
+ 4, 1, 112,
+ 2, 1, 3,
+ 1, 2, 5,
+ 1, 1, 8,
+ 4, 0, 93,
+ 4, 1, 70,
+ 4, 1, 113,
+ 4, 0, 50,
+ 4, 1, 32,
+ 4, 2, 110,
+ 4, 2, 61,
+ 4, 0, 23,
+ 4, 1, 60,
+ 4, 1, 123,
+ 4, 0, 28,
+ 4, 1, 29,
+ 0, 0, 3,
+ 1, 1, 4,
+ 4, 3, 89,
+ 4, 0, 55,
+ 4, 0, 5,
+ 4, 0, 116,
+ 4, 1, 72,
+ 4, 1, 85,
+ 2, 2, 5,
+ 4, 1, 37,
+ 1, 1, 19,
+ 2, 2, 24,
+ 4, 3, 40,
+ 4, 0, 20,
+ 4, 1, 45,
+ 1, 2, 2,
+ 4, 2, 30,
+ 4, 0, 64,
+ 0, 2, 3,
+ 4, 2, 103,
+ 4, 2, 87,
+ 4, 1, 121,
+ 4, 1, 121,
+ 4, 2, 34,
+ 4, 2, 51,
+ 4, 2, 78,
+ 4, 2, 114,
+ 4, 2, 33,
+ 4, 2, 125,
+ 4, 0, 56,
+ 1, 1, 2,
+ 4, 1, 107,
+ 4, 0, 76,
+ 4, 1, 69,
+ 4, 1, 59,
+ 4, 0, 66,
+ 4, 1, 81,
+ 1, 2, 2,
+ 4, 2, 77,
+ 4, 0, 118,
+ 4, 1, 124,
+ 4, 2, 42,
+ 4, 2, 79,
+ 2, 1, 4,
+ 4, 1, 3,
+ 1, 5, 24,
+ 4, 2, 46,
+ 4, 0, 53,
+ 0, 2, 2,
+ 4, 1, 47,
+ 4, 1, 54,
+ 4, 1, 54,
+ 1, 1, 6,
+ 4, 2, 6,
+ 4, 2, 63,
+ 0, 1, 6,
+ 0, 1, 9,
+ 4, 2, 15,
+ 4, 0, 84,
+ 4, 1, 52,
+ 4, 1, 95,
+ 4, 1, 104,
+ 4, 1, 108,
+ 4, 1, 122,
+ 4, 1, 43,
+ 4, 1, 88,
+ 4, 1, 109,
+ 4, 1, 111,
+ 4, 1, 92,
+ 4, 0, 48,
+ 4, 1, 49,
+ 1, 1, 5,
+ 4, 3, 75,
+ 4, 4, 102,
+ 0, 0, 5,
+ 4, 5, 97,
+ 4, 0, 99,
+ 4, 1, 41,
+ 4, 1, 100,
+ 4, 0, 115,
+ 4, 0, 119,
+ 4, 0, 27,
+ 4, 0, 44,
+ 4, 0, 2,
+ 2, 1, 3,
+ 2, 1, 5,
+ 4, 2, 38,
+ 4, 0, 12,
+ 4, 1, 80,
+ 4, 1, 39,
+ 4, 0, 13,
+ 1, 1, 2,
+ 4, 1, 65,
+ 4, 0, 31,
+ 1, 1, 2,
+ 4, 1, 90,
+ 4, 0, 16,
+ 4, 1, 106,
+ 4, 1, 24,
+ /* vc1DEC_Two_Field_Ref_Ilace_MV_4.out */
+ 4, 1, 8,
+ 4, 1, 8,
+ 4, 1, 8,
+ 4, 1, 8,
+ 4, 1, 8,
+ 4, 1, 8,
+ 4, 1, 8,
+ 4, 1, 8,
+ 1, 3, 24,
+ 1, 1, 33,
+ 4, 3, 0,
+ 4, 3, 0,
+ 4, 3, 26,
+ 4, 3, 26,
+ 1, 4, 31,
+ 4, 4, 35,
+ 1, 2, 52,
+ 4, 4, 3,
+ 2, 1, 68,
+ 1, 1, 76,
+ 1, 2, 78,
+ 0, 0, 81,
+ 4, 4, 2,
+ 0, 1, 81,
+ 2, 1, 90,
+ 4, 4, 1,
+ 4, 3, 17,
+ 4, 3, 17,
+ 2, 1, 93,
+ 0, 1, 97,
+ 0, 1, 124,
+ 0, 0, 146,
+ 4, 0, 53,
+ 4, 1, 57,
+ 2, 1, 3,
+ 0, 0, 5,
+ 4, 3, 63,
+ 4, 0, 85,
+ 4, 1, 72,
+ 4, 1, 104,
+ 4, 0, 116,
+ 4, 0, 16,
+ 4, 0, 13,
+ 4, 1, 36,
+ 4, 1, 40,
+ 2, 4, 6,
+ 4, 1, 47,
+ 2, 1, 13,
+ 4, 3, 69,
+ 0, 0, 17,
+ 4, 4, 88,
+ 4, 0, 31,
+ 4, 1, 80,
+ 1, 1, 4,
+ 4, 3, 82,
+ 4, 4, 106,
+ 4, 4, 123,
+ 4, 0, 103,
+ 4, 1, 125,
+ 4, 1, 107,
+ 4, 0, 15,
+ 2, 1, 2,
+ 4, 1, 94,
+ 4, 0, 92,
+ 4, 1, 100,
+ 4, 1, 90,
+ 4, 0, 105,
+ 4, 0, 122,
+ 4, 0, 21,
+ 2, 1, 3,
+ 1, 1, 11,
+ 4, 2, 65,
+ 4, 0, 71,
+ 2, 1, 2,
+ 4, 1, 74,
+ 4, 0, 33,
+ 1, 1, 2,
+ 4, 1, 78,
+ 4, 0, 96,
+ 4, 1, 110,
+ 4, 1, 109,
+ 4, 0, 76,
+ 0, 0, 2,
+ 4, 1, 86,
+ 4, 0, 79,
+ 4, 0, 101,
+ 4, 0, 20,
+ 1, 1, 2,
+ 4, 1, 30,
+ 4, 0, 58,
+ 2, 1, 2,
+ 4, 1, 84,
+ 4, 0, 24,
+ 4, 1, 97,
+ 4, 1, 124,
+ 4, 0, 11,
+ 4, 1, 49,
+ 4, 1, 29,
+ 4, 0, 12,
+ 4, 1, 48,
+ 4, 2, 45,
+ 4, 2, 55,
+ 4, 0, 19,
+ 4, 0, 10,
+ 4, 1, 22,
+ 1, 2, 3,
+ 4, 1, 5,
+ 4, 1, 37,
+ 4, 0, 67,
+ 4, 1, 68,
+ 0, 0, 2,
+ 4, 2, 60,
+ 4, 0, 95,
+ 4, 0, 81,
+ 4, 0, 18,
+ 1, 2, 2,
+ 4, 1, 28,
+ 4, 0, 14,
+ 4, 1, 32,
+ 4, 2, 73,
+ 4, 2, 52,
+ 4, 0, 9,
+ 0, 0, 2,
+ 4, 1, 39,
+ 4, 0, 7,
+ 4, 0, 50,
+ 1, 2, 4,
+ 4, 1, 38,
+ 0, 1, 9,
+ 2, 3, 17,
+ 4, 0, 66,
+ 4, 1, 75,
+ 2, 1, 2,
+ 4, 2, 83,
+ 4, 0, 93,
+ 4, 1, 112,
+ 4, 1, 120,
+ 1, 3, 4,
+ 4, 1, 51,
+ 4, 1, 64,
+ 4, 1, 41,
+ 4, 0, 70,
+ 4, 1, 61,
+ 4, 2, 34,
+ 4, 3, 99,
+ 4, 3, 119,
+ 4, 0, 6,
+ 4, 1, 54,
+ 2, 1, 3,
+ 4, 3, 102,
+ 4, 3, 25,
+ 4, 0, 77,
+ 4, 1, 115,
+ 4, 1, 91,
+ 1, 3, 4,
+ 4, 1, 62,
+ 4, 1, 27,
+ 2, 2, 8,
+ 4, 0, 46,
+ 0, 0, 4,
+ 4, 2, 42,
+ 6, 0, 56,
+ 4, 3, 43,
+ 4, 0, 59,
+ 4, 0, 98,
+ 4, 0, 56,
+ 4, 1, 23,
+ 1, 1, 2,
+ 4, 2, 89,
+ 4, 0, 87,
+ 2, 1, 2,
+ 4, 1, 121,
+ 4, 0, 111,
+ 0, 0, 2,
+ 4, 1, 118,
+ 4, 0, 117,
+ 4, 0, 108,
+ 4, 0, 4,
+ 4, 0, 44,
+ /* vc1DEC_Two_Field_Ref_Ilace_MV_5.out */
+ 4, 4, 10,
+ 0, 2, 31,
+ 4, 4, 62,
+ 0, 1, 37,
+ 4, 3, 9,
+ 4, 3, 9,
+ 2, 1, 46,
+ 4, 4, 35,
+ 4, 1, 8,
+ 4, 1, 8,
+ 4, 1, 8,
+ 4, 1, 8,
+ 4, 1, 8,
+ 4, 1, 8,
+ 4, 1, 8,
+ 4, 1, 8,
+ 4, 4, 1,
+ 1, 1, 49,
+ 4, 3, 17,
+ 4, 3, 17,
+ 0, 0, 51,
+ 4, 4, 44,
+ 1, 5, 51,
+ 0, 0, 79,
+ 1, 3, 80,
+ 2, 1, 94,
+ 4, 3, 0,
+ 4, 3, 0,
+ 2, 1, 103,
+ 0, 1, 107,
+ 2, 1, 135,
+ 4, 4, 26,
+ 4, 2, 54,
+ 4, 2, 49,
+ 4, 2, 31,
+ 4, 2, 22,
+ 4, 1, 20,
+ 4, 1, 20,
+ 4, 2, 57,
+ 4, 2, 63,
+ 4, 1, 98,
+ 0, 1, 3,
+ 4, 1, 89,
+ 4, 1, 36,
+ 4, 1, 74,
+ 4, 1, 83,
+ 1, 2, 2,
+ 4, 1, 75,
+ 4, 0, 77,
+ 4, 1, 92,
+ 4, 2, 117,
+ 4, 2, 125,
+ 4, 0, 4,
+ 1, 1, 2,
+ 4, 1, 29,
+ 4, 0, 56,
+ 1, 2, 2,
+ 4, 1, 68,
+ 4, 0, 24,
+ 0, 0, 3,
+ 0, 0, 4,
+ 4, 2, 105,
+ 4, 0, 106,
+ 4, 0, 124,
+ 4, 0, 79,
+ 4, 0, 97,
+ 4, 0, 71,
+ 0, 0, 2,
+ 4, 1, 45,
+ 4, 0, 15,
+ 4, 0, 65,
+ 4, 0, 80,
+ 4, 0, 12,
+ 1, 5, 7,
+ 1, 1, 25,
+ 4, 2, 7,
+ 4, 3, 58,
+ 4, 4, 76,
+ 4, 5, 25,
+ 4, 5, 91,
+ 1, 1, 7,
+ 4, 1, 39,
+ 4, 2, 16,
+ 0, 0, 14,
+ 4, 4, 90,
+ 4, 5, 120,
+ 4, 5, 113,
+ 0, 1, 3,
+ 4, 1, 32,
+ 4, 1, 23,
+ 4, 1, 33,
+ 4, 1, 86,
+ 1, 1, 2,
+ 4, 1, 51,
+ 4, 0, 94,
+ 4, 1, 96,
+ 4, 1, 115,
+ 4, 0, 100,
+ 4, 0, 52,
+ 4, 0, 66,
+ 4, 1, 50,
+ 4, 1, 84,
+ 4, 0, 2,
+ 4, 0, 27,
+ 4, 0, 11,
+ 1, 2, 4,
+ 4, 2, 30,
+ 4, 3, 116,
+ 4, 3, 40,
+ 4, 0, 21,
+ 2, 2, 3,
+ 0, 0, 6,
+ 4, 2, 69,
+ 4, 0, 73,
+ 4, 1, 93,
+ 4, 2, 43,
+ 4, 2, 112,
+ 4, 0, 87,
+ 4, 0, 104,
+ 4, 0, 18,
+ 1, 1, 2,
+ 4, 1, 28,
+ 4, 0, 38,
+ 1, 1, 2,
+ 4, 1, 107,
+ 4, 0, 59,
+ 1, 1, 2,
+ 4, 1, 60,
+ 4, 0, 119,
+ 4, 1, 110,
+ 4, 1, 61,
+ 4, 0, 3,
+ 0, 0, 2,
+ 4, 1, 13,
+ 4, 0, 47,
+ 4, 0, 37,
+ 4, 1, 5,
+ 1, 3, 3,
+ 2, 1, 11,
+ 1, 5, 13,
+ 4, 0, 48,
+ 1, 2, 4,
+ 4, 2, 41,
+ 4, 3, 102,
+ 4, 3, 42,
+ 4, 0, 82,
+ 4, 1, 103,
+ 4, 2, 121,
+ 4, 2, 95,
+ 4, 0, 6,
+ 4, 1, 55,
+ 4, 1, 64,
+ 4, 0, 46,
+ 2, 1, 6,
+ 4, 2, 72,
+ 4, 3, 99,
+ 4, 4, 78,
+ 4, 5, 88,
+ 4, 5, 123,
+ 4, 0, 85,
+ 2, 1, 2,
+ 4, 1, 101,
+ 4, 0, 34,
+ 4, 1, 122,
+ 4, 1, 109,
+ 4, 0, 53,
+ 2, 1, 2,
+ 4, 1, 19,
+ 4, 0, 14,
+ 2, 1, 2,
+ 4, 1, 67,
+ 4, 0, 81,
+ 0, 1, 2,
+ 4, 1, 70,
+ 4, 1, 114,
+ 4, 1, 118,
+ 4, 1, 111,
+ 4, 1, 108,
+ /* vc1DEC_Two_Field_Ref_Ilace_MV_6.out */
+ 4, 3, 26,
+ 0, 1, 15,
+ 4, 2, 0,
+ 4, 2, 0,
+ 4, 3, 17,
+ 2, 1, 72,
+ 0, 1, 87,
+ 0, 3, 110,
+ 4, 0, 8,
+ 4, 0, 8,
+ 4, 0, 8,
+ 4, 0, 8,
+ 4, 0, 8,
+ 4, 0, 8,
+ 4, 0, 8,
+ 4, 0, 8,
+ 4, 1, 27,
+ 0, 2, 3,
+ 4, 1, 18,
+ 0, 1, 41,
+ 4, 1, 47,
+ 4, 1, 47,
+ 4, 2, 4,
+ 0, 2, 5,
+ 0, 2, 18,
+ 4, 2, 13,
+ 4, 1, 37,
+ 4, 1, 37,
+ 4, 2, 22,
+ 0, 0, 7,
+ 4, 2, 84,
+ 0, 1, 7,
+ 4, 2, 23,
+ 4, 2, 58,
+ 4, 1, 83,
+ 4, 1, 83,
+ 4, 0, 102,
+ 4, 0, 32,
+ 4, 1, 113,
+ 4, 1, 24,
+ 4, 1, 34,
+ 4, 1, 41,
+ 4, 2, 59,
+ 0, 1, 7,
+ 0, 1, 10,
+ 4, 2, 7,
+ 4, 2, 14,
+ 4, 2, 16,
+ 0, 0, 10,
+ 4, 2, 85,
+ 4, 1, 69,
+ 4, 1, 87,
+ 4, 1, 93,
+ 4, 1, 99,
+ 4, 1, 100,
+ 4, 1, 117,
+ 4, 1, 118,
+ 4, 1, 124,
+ 4, 0, 33,
+ 4, 0, 42,
+ 4, 1, 12,
+ 2, 2, 3,
+ 4, 1, 38,
+ 1, 3, 5,
+ 4, 0, 30,
+ 4, 1, 5,
+ 4, 2, 65,
+ 4, 2, 50,
+ 4, 0, 36,
+ 1, 2, 4,
+ 4, 2, 56,
+ 4, 3, 51,
+ 4, 3, 81,
+ 4, 0, 66,
+ 4, 1, 77,
+ 4, 2, 105,
+ 4, 2, 40,
+ 4, 0, 1,
+ 0, 2, 2,
+ 4, 1, 44,
+ 4, 2, 48,
+ 0, 0, 7,
+ 4, 2, 46,
+ 4, 2, 71,
+ 2, 1, 6,
+ 4, 2, 45,
+ 4, 2, 21,
+ 4, 2, 39,
+ 4, 0, 55,
+ 4, 0, 49,
+ 4, 0, 73,
+ 4, 1, 57,
+ 4, 1, 63,
+ 4, 1, 35,
+ 4, 1, 2,
+ 4, 1, 10,
+ 1, 1, 1,
+ 4, 0, 19,
+ 1, 4, 2,
+ 4, 1, 3,
+ 1, 3, 6,
+ 4, 1, 98,
+ 4, 2, 116,
+ 0, 0, 12,
+ 4, 4, 72,
+ 4, 4, 101,
+ 4, 0, 54,
+ 0, 1, 4,
+ 4, 2, 67,
+ 4, 3, 104,
+ 4, 3, 52,
+ 4, 1, 68,
+ 4, 1, 75,
+ 4, 1, 76,
+ 4, 1, 86,
+ 4, 0, 92,
+ 4, 0, 121,
+ 4, 0, 9,
+ 4, 0, 9,
+ 4, 0, 9,
+ 4, 0, 9,
+ 4, 0, 9,
+ 4, 0, 9,
+ 4, 0, 9,
+ 4, 0, 9,
+ 4, 3, 53,
+ 2, 1, 7,
+ 4, 3, 62,
+ 4, 3, 28,
+ 4, 2, 11,
+ 4, 2, 11,
+ 1, 2, 5,
+ 4, 3, 20,
+ 4, 0, 29,
+ 4, 1, 64,
+ 4, 1, 82,
+ 4, 0, 80,
+ 1, 1, 3,
+ 0, 0, 33,
+ 4, 2, 89,
+ 4, 0, 74,
+ 1, 2, 2,
+ 4, 1, 6,
+ 4, 0, 107,
+ 2, 4, 3,
+ 4, 2, 94,
+ 4, 2, 96,
+ 4, 0, 90,
+ 4, 1, 125,
+ 0, 3, 4,
+ 0, 0, 19,
+ 5, 0, 57,
+ 6, 0, 55,
+ 4, 3, 25,
+ 4, 3, 43,
+ 4, 3, 60,
+ 4, 3, 61,
+ 4, 3, 70,
+ 4, 3, 78,
+ 4, 3, 79,
+ 4, 3, 88,
+ 4, 3, 91,
+ 4, 3, 95,
+ 4, 3, 97,
+ 4, 3, 103,
+ 4, 3, 106,
+ 4, 3, 108,
+ 4, 3, 109,
+ 4, 3, 110,
+ 6, 0, 59,
+ 5, 0, 61,
+ 4, 0, 15,
+ 4, 0, 31,
+ /* vc1DEC_Two_Field_Ref_Ilace_MV_7.out */
+ 4, 4, 10,
+ 0, 2, 31,
+ 4, 3, 26,
+ 4, 3, 26,
+ 4, 3, 9,
+ 4, 3, 9,
+ 0, 2, 53,
+ 2, 5, 93,
+ 4, 2, 17,
+ 4, 2, 17,
+ 4, 2, 17,
+ 4, 2, 17,
+ 1, 4, 98,
+ 4, 4, 18,
+ 4, 4, 1,
+ 1, 2, 157,
+ 4, 1, 8,
+ 4, 1, 8,
+ 4, 1, 8,
+ 4, 1, 8,
+ 4, 1, 8,
+ 4, 1, 8,
+ 4, 1, 8,
+ 4, 1, 8,
+ 4, 1, 0,
+ 4, 1, 0,
+ 4, 1, 0,
+ 4, 1, 0,
+ 4, 1, 0,
+ 4, 1, 0,
+ 4, 1, 0,
+ 4, 1, 0,
+ 0, 1, 8,
+ 6, 0, 31,
+ 4, 2, 29,
+ 4, 2, 53,
+ 4, 2, 12,
+ 4, 2, 37,
+ 0, 1, 15,
+ 4, 2, 20,
+ 4, 1, 67,
+ 2, 1, 3,
+ 4, 1, 56,
+ 1, 2, 4,
+ 4, 0, 91,
+ 4, 1, 100,
+ 4, 1, 77,
+ 6, 0, 46,
+ 4, 1, 41,
+ 0, 0, 2,
+ 4, 2, 78,
+ 4, 0, 61,
+ 4, 0, 118,
+ 4, 1, 57,
+ 4, 1, 14,
+ 4, 1, 89,
+ 0, 0, 1,
+ 4, 0, 119,
+ 4, 0, 83,
+ 4, 2, 36,
+ 1, 5, 7,
+ 4, 2, 62,
+ 4, 2, 47,
+ 2, 1, 11,
+ 4, 2, 46,
+ 4, 1, 19,
+ 4, 1, 19,
+ 4, 0, 4,
+ 4, 1, 5,
+ 4, 2, 58,
+ 4, 3, 59,
+ 4, 4, 7,
+ 4, 5, 16,
+ 4, 5, 104,
+ 4, 0, 13,
+ 1, 1, 2,
+ 4, 1, 54,
+ 4, 0, 73,
+ 1, 2, 2,
+ 4, 1, 102,
+ 4, 0, 111,
+ 4, 1, 105,
+ 2, 2, 2,
+ 4, 2, 23,
+ 4, 0, 25,
+ 0, 2, 3,
+ 0, 1, 10,
+ 5, 0, 54,
+ 4, 2, 51,
+ 4, 2, 52,
+ 4, 2, 70,
+ 4, 2, 79,
+ 4, 2, 88,
+ 4, 2, 96,
+ 4, 2, 97,
+ 4, 2, 106,
+ 4, 1, 24,
+ 4, 1, 33,
+ 4, 1, 34,
+ 4, 1, 43,
+ 4, 0, 2,
+ 4, 1, 35,
+ 4, 2, 45,
+ 4, 3, 65,
+ 4, 4, 30,
+ 1, 1, 2,
+ 4, 5, 49,
+ 4, 0, 121,
+ 4, 1, 117,
+ 4, 1, 15,
+ 4, 0, 11,
+ 1, 1, 5,
+ 1, 2, 36,
+ 2, 1, 52,
+ 4, 4, 55,
+ 4, 4, 48,
+ 0, 2, 3,
+ 0, 1, 18,
+ 4, 1, 38,
+ 4, 2, 40,
+ 1, 1, 7,
+ 4, 2, 75,
+ 2, 1, 8,
+ 0, 0, 10,
+ 4, 2, 80,
+ 4, 2, 101,
+ 4, 2, 92,
+ 4, 0, 85,
+ 4, 1, 86,
+ 4, 1, 68,
+ 4, 0, 22,
+ 4, 1, 95,
+ 4, 1, 87,
+ 4, 0, 84,
+ 4, 0, 81,
+ 4, 1, 107,
+ 2, 1, 3,
+ 4, 1, 74,
+ 4, 1, 82,
+ 4, 0, 72,
+ 0, 1, 2,
+ 4, 1, 103,
+ 4, 1, 60,
+ 4, 1, 112,
+ 4, 1, 113,
+ 0, 0, 1,
+ 4, 0, 42,
+ 4, 0, 114,
+ 2, 3, 4,
+ 4, 1, 21,
+ 0, 1, 7,
+ 4, 2, 98,
+ 4, 0, 39,
+ 4, 1, 116,
+ 4, 2, 31,
+ 4, 3, 120,
+ 4, 3, 69,
+ 4, 1, 110,
+ 4, 1, 6,
+ 4, 1, 50,
+ 2, 2, 1,
+ 4, 0, 90,
+ 5, 0, 62,
+ 4, 2, 123,
+ 4, 2, 115,
+ 4, 0, 66,
+ 0, 1, 2,
+ 4, 1, 71,
+ 4, 1, 32,
+ 4, 1, 99,
+ 4, 1, 122,
+ 4, 1, 76,
+ 4, 0, 27,
+ 4, 1, 44,
+ 4, 2, 3,
+ 4, 2, 28,
+};
+
+//IMG_UINT32 gaui32vc1VlcPackedTableData[7045];
+const IMG_UINT16 gui16vc1VlcTableSize = 7045;
diff --git a/src/x11/psb_coverlay.c b/src/x11/psb_coverlay.c
new file mode 100644
index 0000000..8c01277
--- /dev/null
+++ b/src/x11/psb_coverlay.c
@@ -0,0 +1,1298 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ * Jason Hu <jason.hu@intel.com>
+ * Zhaohan Ren <zhaohan.ren@intel.com>
+ * Shengquan Yuan <shengquan.yuan@intel.com>
+ *
+ */
+
+#include <X11/Xutil.h>
+#include <X11/extensions/Xrandr.h>
+#include <va/va_backend.h>
+#include "psb_output.h"
+#include "psb_surface.h"
+#include "psb_buffer.h"
+#include "psb_x11.h"
+
+#include <stdio.h>
+#include <string.h>
+#include <stdarg.h>
+#include "psb_surface_ext.h"
+#include <wsbm/wsbm_manager.h>
+#include "psb_drv_video.h"
+#include "psb_xrandr.h"
+#include <sys/types.h>
+
+#define INIT_DRIVER_DATA psb_driver_data_p driver_data = (psb_driver_data_p) ctx->pDriverData
+#define INIT_OUTPUT_PRIV psb_x11_output_p output = (psb_x11_output_p)(((psb_driver_data_p)ctx->pDriverData)->ws_priv)
+#define SURFACE(id) ((object_surface_p) object_heap_lookup( &driver_data->surface_heap, id ))
+
+static int
+psb_x11_getWindowCoordinate(Display * display,
+ Window x11_window_id,
+ psb_x11_win_t * psX11Window,
+ int * pbIsVisible)
+{
+ Window DummyWindow;
+ Status status;
+ XWindowAttributes sXWinAttrib;
+
+ if ((status = XGetWindowAttributes(display,
+ x11_window_id,
+ &sXWinAttrib)) == 0) {
+ psb__error_message("%s: Failed to get X11 window coordinates - error %lu\n", __func__, (unsigned long)status);
+ return -1;
+ }
+
+ psX11Window->i32Left = sXWinAttrib.x;
+ psX11Window->i32Top = sXWinAttrib.y;
+ psX11Window->ui32Width = sXWinAttrib.width;
+ psX11Window->ui32Height = sXWinAttrib.height;
+ *pbIsVisible = (sXWinAttrib.map_state == IsViewable);
+
+ if (!*pbIsVisible)
+ return 0;
+
+ if (XTranslateCoordinates(display,
+ x11_window_id,
+ DefaultRootWindow(display),
+ 0,
+ 0,
+ &psX11Window->i32Left,
+ &psX11Window->i32Top,
+ &DummyWindow) == 0) {
+ psb__error_message("%s: Failed to tranlate X coordinates - error %lu\n", __func__, (unsigned long)status);
+ return -1;
+ }
+
+ psX11Window->i32Right = psX11Window->i32Left + psX11Window->ui32Width - 1;
+ psX11Window->i32Bottom = psX11Window->i32Top + psX11Window->ui32Height - 1;
+
+ return 0;
+}
+static psb_x11_clip_list_t *
+psb_x11_createClipBoxNode(psb_x11_win_t * pRect,
+ psb_x11_clip_list_t * pClipNext)
+{
+ psb_x11_clip_list_t * pCurrent = NULL;
+
+ pCurrent = (psb_x11_clip_list_t *)calloc(1, sizeof(psb_x11_clip_list_t));
+ if (pCurrent) {
+ pCurrent->rect = *pRect;
+ pCurrent->next = pClipNext;
+
+ return pCurrent;
+ } else
+ return pClipNext;
+}
+
+void
+psb_x11_freeWindowClipBoxList(psb_x11_clip_list_t * pHead)
+{
+ psb_x11_clip_list_t * pNext = NULL;
+
+ while (pHead) {
+ pNext = pHead->next;
+ free(pHead);
+ pHead = pNext;
+ }
+}
+
+#define IS_BETWEEN_RANGE(a,b,c) ((a<=b)&&(b<=c))
+
+static psb_x11_clip_list_t *
+psb_x11_substractRects(Display * display,
+ psb_x11_clip_list_t * psRegion,
+ psb_x11_win_t * psRect)
+{
+ psb_x11_clip_list_t * psCur, * psPrev, * psFirst, * psNext;
+ psb_x11_win_t sCreateRect;
+ int display_width = (int)(DisplayWidth(display, DefaultScreen(display))) - 1;
+ int display_height = (int)(DisplayHeight(display, DefaultScreen(display))) - 1;
+
+ psFirst = psb_x11_createClipBoxNode(psRect, NULL);
+
+ if (psFirst->rect.i32Left < 0)
+ psFirst->rect.i32Left = 0;
+ else if (psFirst->rect.i32Left > display_width)
+ psFirst->rect.i32Left = display_width;
+
+ if (psFirst->rect.i32Right < 0)
+ psFirst->rect.i32Right = 0;
+ else if (psFirst->rect.i32Right > display_width)
+ psFirst->rect.i32Right = display_width;
+
+ if (psFirst->rect.i32Top < 0)
+ psFirst->rect.i32Top = 0;
+ else if (psFirst->rect.i32Top > display_height)
+ psFirst->rect.i32Top = display_height;
+
+ if (psFirst->rect.i32Bottom < 0)
+ psFirst->rect.i32Bottom = 0;
+ else if (psFirst->rect.i32Bottom > display_height)
+ psFirst->rect.i32Bottom = display_height;
+
+ while (psRegion) {
+ psCur = psFirst;
+ psPrev = NULL;
+
+ while (psCur) {
+ psNext = psCur->next;
+
+ if ((psRegion->rect.i32Left > psCur->rect.i32Left) &&
+ (psRegion->rect.i32Left <= psCur->rect.i32Right)) {
+ sCreateRect.i32Right = psRegion->rect.i32Left - 1;
+
+ sCreateRect.i32Left = psCur->rect.i32Left;
+ sCreateRect.i32Top = psCur->rect.i32Top;
+ sCreateRect.i32Bottom = psCur->rect.i32Bottom;
+
+ psFirst = psb_x11_createClipBoxNode(&sCreateRect, psFirst);
+
+ if (!psPrev)
+ psPrev = psFirst;
+
+ psCur->rect.i32Left = psRegion->rect.i32Left;
+ }
+
+ if ((psRegion->rect.i32Right >= psCur->rect.i32Left) &&
+ (psRegion->rect.i32Right < psCur->rect.i32Right))
+
+ {
+ sCreateRect.i32Left = psRegion->rect.i32Right + 1;
+
+ sCreateRect.i32Right = psCur->rect.i32Right;
+ sCreateRect.i32Top = psCur->rect.i32Top;
+ sCreateRect.i32Bottom = psCur->rect.i32Bottom;
+
+ psFirst = psb_x11_createClipBoxNode(&sCreateRect, psFirst);
+
+ if (!psPrev)
+ psPrev = psFirst;
+
+ psCur->rect.i32Right = psRegion->rect.i32Right;
+ }
+
+ if ((psRegion->rect.i32Top > psCur->rect.i32Top) &&
+ (psRegion->rect.i32Top <= psCur->rect.i32Bottom)) {
+ sCreateRect.i32Bottom = psRegion->rect.i32Top - 1;
+
+ sCreateRect.i32Left = psCur->rect.i32Left;
+ sCreateRect.i32Right = psCur->rect.i32Right;
+ sCreateRect.i32Top = psCur->rect.i32Top;
+
+ psFirst = psb_x11_createClipBoxNode(&sCreateRect, psFirst);
+
+ if (!psPrev)
+ psPrev = psFirst;
+
+ psCur->rect.i32Top = psRegion->rect.i32Top;
+ }
+
+ if ((psRegion->rect.i32Bottom >= psCur->rect.i32Top) &&
+ (psRegion->rect.i32Bottom < psCur->rect.i32Bottom)) {
+ sCreateRect.i32Top = psRegion->rect.i32Bottom + 1;
+ sCreateRect.i32Left = psCur->rect.i32Left;
+ sCreateRect.i32Right = psCur->rect.i32Right;
+ sCreateRect.i32Bottom = psCur->rect.i32Bottom;
+
+ psFirst = psb_x11_createClipBoxNode(&sCreateRect, psFirst);
+
+ if (!psPrev)
+ psPrev = psFirst;
+
+ psCur->rect.i32Bottom = psRegion->rect.i32Bottom;
+ }
+
+ if ((IS_BETWEEN_RANGE(psRegion->rect.i32Left, psCur->rect.i32Left, psRegion->rect.i32Right)) &&
+ (IS_BETWEEN_RANGE(psRegion->rect.i32Left, psCur->rect.i32Right, psRegion->rect.i32Right)) &&
+ (IS_BETWEEN_RANGE(psRegion->rect.i32Top, psCur->rect.i32Top, psRegion->rect.i32Bottom)) &&
+ (IS_BETWEEN_RANGE(psRegion->rect.i32Top, psCur->rect.i32Bottom, psRegion->rect.i32Bottom))) {
+ if (psPrev) {
+ psPrev->next = psCur->next;
+ free(psCur);
+ psCur = psPrev;
+ } else {
+ free(psCur);
+ psCur = NULL;
+ psFirst = psNext;
+ }
+ }
+ psPrev = psCur;
+ psCur = psNext;
+ }//while(psCur)
+ psRegion = psRegion->next;
+ }//while(psRegion)
+
+ return psFirst;
+}
+
+static int
+psb_x11_createWindowClipBoxList(Display * display,
+ Window x11_window_id,
+ psb_x11_clip_list_t ** ppWindowClipBoxList,
+ unsigned int * pui32NumClipBoxList)
+{
+ Window CurrentWindow = x11_window_id;
+ Window RootWindow, ParentWindow, ChildWindow;
+ Window * pChildWindow;
+ Status XResult;
+ unsigned int i32NumChildren, i;
+ int bIsVisible;
+ unsigned int ui32NumRects = 0;
+ psb_x11_clip_list_t *psRegions = NULL;
+ psb_x11_win_t sRect;
+
+ if (!display || (!ppWindowClipBoxList) || (!pui32NumClipBoxList))
+ return -1;
+
+ XResult = XQueryTree(display,
+ CurrentWindow,
+ &RootWindow,
+ &ParentWindow,
+ &pChildWindow,
+ &i32NumChildren);
+ if (XResult == 0)
+ return -2;
+
+ if (i32NumChildren) {
+ for (i = 0; i < i32NumChildren; i++) {
+
+ psb_x11_getWindowCoordinate(display, x11_window_id, &sRect, &bIsVisible);
+ if (bIsVisible) {
+ psRegions = psb_x11_createClipBoxNode(&sRect, psRegions);
+ ui32NumRects++;
+ }
+ }
+ XFree(pChildWindow);
+ i32NumChildren = 0;
+ }
+
+ while (CurrentWindow != RootWindow) {
+ ChildWindow = CurrentWindow;
+ CurrentWindow = ParentWindow;
+
+ XResult = XQueryTree(display,
+ CurrentWindow,
+ &RootWindow,
+ &ParentWindow,
+ &pChildWindow,
+ &i32NumChildren);
+ if (XResult == 0) {
+ if (i32NumChildren)
+ XFree(pChildWindow);
+
+ psb_x11_freeWindowClipBoxList(psRegions);
+ return -3;
+ }
+
+ if (i32NumChildren) {
+ unsigned int iStartWindow = 0;
+
+ for (i = 0; i < i32NumChildren; i++) {
+ if (pChildWindow[i] == ChildWindow) {
+ iStartWindow = i;
+ break;
+ }
+ }
+
+ if (i == i32NumChildren) {
+ XFree(pChildWindow);
+ psb_x11_freeWindowClipBoxList(psRegions);
+ return -4;
+ }
+
+ for (i = iStartWindow + 1; i < i32NumChildren; i++) {
+ psb_x11_getWindowCoordinate(display, pChildWindow[i], &sRect, &bIsVisible);
+ if (bIsVisible) {
+ psRegions = psb_x11_createClipBoxNode(&sRect, psRegions);
+ ui32NumRects++;
+ }
+ }
+
+ XFree(pChildWindow);
+ }
+ }
+
+ ui32NumRects = 0;
+
+ if (psRegions) {
+ psb_x11_getWindowCoordinate(display, x11_window_id, &sRect, &bIsVisible);
+ *ppWindowClipBoxList = psb_x11_substractRects(display, psRegions, &sRect);
+ psb_x11_freeWindowClipBoxList(psRegions);
+
+ psRegions = *ppWindowClipBoxList;
+
+ while (psRegions) {
+ ui32NumRects++;
+ psRegions = psRegions->next;
+ }
+ } else {
+ *ppWindowClipBoxList = psb_x11_substractRects(display, NULL, &sRect);
+ ui32NumRects = 1;
+ }
+
+ *pui32NumClipBoxList = ui32NumRects;
+
+ return 0;
+}
+
+static int psb_cleardrawable_stopoverlay(
+ VADriverContextP ctx,
+ Drawable draw, /* X Drawable */
+ short destx,
+ short desty,
+ unsigned short destw,
+ unsigned short desth
+)
+{
+ INIT_DRIVER_DATA;
+ INIT_OUTPUT_PRIV;
+
+ XFillRectangle((Display *)ctx->native_dpy, draw, output->gc, destx, desty, destw, desth);
+ XSync((Display *)ctx->native_dpy, False);
+
+ driver_data->cur_displaying_surface = VA_INVALID_SURFACE;
+ driver_data->last_displaying_surface = VA_INVALID_SURFACE;
+
+ return 0;
+}
+
+static VAStatus psb_DisplayRGBASubpicture(
+ PsbVASurfaceRec *subpicture,
+ VADriverContextP ctx,
+ int win_width,
+ int win_height,
+ int surface_x,
+ int surface_y,
+ int surface_w,
+ int surface_h,
+ psb_extvideo_subtitle subtitle
+)
+{
+ INIT_DRIVER_DATA;
+ INIT_OUTPUT_PRIV;
+ XImage *ximg = NULL;
+ Visual *visual;
+ PsbPortPrivRec *pPriv = (PsbPortPrivPtr)(&driver_data->coverlay_priv);
+ struct _WsbmBufferObject *bo = subpicture->bo;
+ int image_width, image_height, width, height, size;
+ int srcx, srcy, srcw, srch;
+ int destx, desty, destw, desth;
+ int depth, i;
+
+ if (subpicture->fourcc != VA_FOURCC_RGBA) {
+ psb__error_message("%s: Invalid image format, ONLY support RGBA subpicture now.\n", __func__);
+ return VA_STATUS_ERROR_INVALID_IMAGE_FORMAT;
+ }
+
+ for (i = 0; subpicture != NULL; subpicture = subpicture->next, i++) {
+ srcx = subpicture->subpic_srcx;
+ srcy = subpicture->subpic_srcy;
+ srcw = subpicture->subpic_srcw;
+ srch = subpicture->subpic_srch;
+
+ destx = subpicture->subpic_dstx + surface_x;
+ desty = subpicture->subpic_dsty + surface_y;
+ destw = subpicture->subpic_dstw;
+ desth = subpicture->subpic_dsth;
+
+ image_width = subpicture->width;
+ image_height = subpicture->height;
+ size = subpicture->size;
+
+ //clip in image region
+ if (srcx < 0) {
+ srcw += srcx;
+ srcx = 0;
+ }
+
+ if (srcy < 0) {
+ srch += srcy;
+ srcy = 0;
+ }
+
+ if ((srcx + srcw) > image_width)
+ srcw = image_width - srcx;
+ if ((srcy + srch) > image_height)
+ srch = image_height - srcy;
+
+ //clip in drawable region
+ if (destx < 0) {
+ destw += destx;
+ destx = 0;
+ }
+
+ if (desty < 0) {
+ desth += desty;
+ desty = 0;
+ }
+
+ if ((destx + destw) > surface_w)
+ destw = surface_w - destx;
+ if ((desty + desth) > surface_h)
+ desth = surface_h - desty;
+
+ if (srcw <= destw)
+ width = srcw;
+ else
+ width = destw;
+
+ if (srch <= desth)
+ height = srch;
+ else
+ height = desth;
+
+ visual = DefaultVisual(ctx->native_dpy, 0);
+ depth = DefaultDepth(ctx->native_dpy, 0);
+
+ ximg = XCreateImage(ctx->native_dpy, visual, depth, ZPixmap, 0, NULL, image_width, image_height, 32, 0);
+
+ if (NULL == ximg) {
+ psb__error_message("%s: XCreateImage failed! at L%d\n", __func__, __LINE__);
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ ximg->data = wsbmBOMap(bo, WSBM_ACCESS_READ);
+ if (NULL == ximg->data) {
+ psb__error_message("%s: Failed to map to ximg->data.\n", __func__);
+ return VA_STATUS_ERROR_ALLOCATION_FAILED;
+ }
+
+ pPriv->clear_key[i].subpic_dstx = destx;
+ pPriv->clear_key[i].subpic_dsty = desty;
+ pPriv->clear_key[i].subpic_dstw = destw;
+ pPriv->clear_key[i].subpic_dsth = desth;
+ if (psb_xrandr_extvideo_mode()) {
+ /*It is a HACK: Adjust subtitle to proper position.*/
+ float xScale, yScale;
+
+ xScale = win_width * 1.0 / surface_w;
+ yScale = win_height * 1.0 / surface_h;
+ destx = subpicture->subpic_dstx * xScale;
+ desty = subpicture->subpic_dsty * yScale;
+ }
+ XPutImage(ctx->native_dpy, output->output_drawable, output->gc, ximg, srcx, srcy, destx, desty, width, height);
+ XSync((Display *)ctx->native_dpy, False);
+
+ if (psb_xrandr_extvideo_mode() &&
+ (subtitle == ONLY_HDMI || subtitle == BOTH)) {
+ float xScale, yScale;
+
+ xScale = pPriv->extend_display_width * 1.0 / surface_w;
+ yScale = pPriv->extend_display_height * 1.0 / surface_h;
+
+ destx = subpicture->subpic_dstx * xScale;
+ desty = subpicture->subpic_dsty * yScale;
+
+ XPutImage(ctx->native_dpy, output->extend_drawable, output->extend_gc, ximg,
+ srcx, srcy, destx, desty, destw, desth);
+ XSync((Display *)ctx->native_dpy, False);
+ }
+
+ pPriv->subpic_clear_flag = 0;
+ ximg->data = NULL;
+ wsbmBOUnmap(bo);
+ if (NULL != ximg)
+ XDestroyImage(ximg);
+ }
+ return VA_STATUS_SUCCESS;
+}
+
+static VAStatus psb_repaint_colorkey(
+ VADriverContextP ctx,
+ Drawable draw, /* X Drawable */
+ VASurfaceID surface,
+ int x11_window_width,
+ int x11_window_height
+)
+{
+ INIT_DRIVER_DATA;
+ INIT_OUTPUT_PRIV;
+ int i, ret;
+ psb_x11_clip_list_t *pClipNext = NULL;
+ VARectangle *pVaWindowClipRects = NULL;
+ object_surface_p obj_surface = SURFACE(surface);
+ PsbPortPrivRec *pPriv = (PsbPortPrivPtr)(&driver_data->coverlay_priv);
+
+ if (output->frame_count % 500 == 0 || driver_data->xrandr_update) {
+ psb__information_message("Repaint color key.\n");
+ if (output->pClipBoxList)
+ psb_x11_freeWindowClipBoxList(output->pClipBoxList);
+ /* get window clipbox */
+ ret = psb_x11_createWindowClipBoxList(ctx->native_dpy, draw, &output->pClipBoxList, &output->ui32NumClipBoxList);
+ if (ret != 0) {
+ psb__error_message("%s: get window clip boxes error # %d\n", __func__, ret);
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+ if (output->frame_count == 500)
+ output->frame_count = 0;
+
+ driver_data->xrandr_update = 0;
+ }
+
+ pVaWindowClipRects = (VARectangle *)calloc(1, sizeof(VARectangle) * output->ui32NumClipBoxList);
+ if (!pVaWindowClipRects) {
+ psb_x11_freeWindowClipBoxList(output->pClipBoxList);
+ return VA_STATUS_ERROR_ALLOCATION_FAILED;
+ }
+
+ memset(pVaWindowClipRects, 0, sizeof(VARectangle)*output->ui32NumClipBoxList);
+ pClipNext = output->pClipBoxList;
+#ifdef CLIP_DEBUG
+ psb__error_message("%s: Total %d clip boxes\n", __func__, output->ui32NumClipBoxList);
+#endif
+ for (i = 0; i < output->ui32NumClipBoxList; i++) {
+ pVaWindowClipRects[i].x = pClipNext->rect.i32Left;
+ pVaWindowClipRects[i].y = pClipNext->rect.i32Top;
+ pVaWindowClipRects[i].width = pClipNext->rect.i32Right - pClipNext->rect.i32Left;
+ pVaWindowClipRects[i].height = pClipNext->rect.i32Bottom - pClipNext->rect.i32Top;
+#ifdef CLIP_DEBUG
+ psb__error_message("%s: clip boxes Left Top (%d, %d) Right Bottom (%d, %d) width %d height %d\n", __func__,
+ pClipNext->rect.i32Left, pClipNext->rect.i32Top,
+ pClipNext->rect.i32Right, pClipNext->rect.i32Bottom,
+ pVaWindowClipRects[i].width, pVaWindowClipRects[i].height);
+#endif
+ pClipNext = pClipNext->next;
+ }
+
+ /* repaint the color key when window size changed*/
+ if (!obj_surface->subpictures &&
+ ((pPriv->x11_window_width != x11_window_width) ||
+ (pPriv->x11_window_height != x11_window_height))) {
+ pPriv->x11_window_width = x11_window_width;
+ pPriv->x11_window_height = x11_window_height;
+ XSetForeground((Display *)ctx->native_dpy, output->gc, pPriv->colorKey);
+ XFillRectangle((Display *)ctx->native_dpy, draw, output->gc, 0, 0, x11_window_width, x11_window_height);
+ XSync((Display *)ctx->native_dpy, False);
+ }
+
+
+ if ((!obj_surface->subpictures) &&
+ ((output->ui32NumClipBoxList != pPriv->last_num_clipbox) ||
+ (memcmp(&pVaWindowClipRects[0], &(pPriv->last_clipbox[0]), (output->ui32NumClipBoxList > 16 ? 16 : output->ui32NumClipBoxList)*sizeof(VARectangle)) != 0))) {
+ pPriv->last_num_clipbox = output->ui32NumClipBoxList;
+ memcpy(&pPriv->last_clipbox[0], &pVaWindowClipRects[0], (output->ui32NumClipBoxList > 16 ? 16 : output->ui32NumClipBoxList)*sizeof(VARectangle));
+ XFillRectangle((Display *)ctx->native_dpy, draw, output->gc, 0, 0, x11_window_width, x11_window_height);
+ XSync((Display *)ctx->native_dpy, False);
+ }
+
+ free(pVaWindowClipRects);
+
+ return VA_STATUS_SUCCESS;
+}
+
+static VAStatus psb_extendMode_getCoordinate(
+ PsbPortPrivPtr pPriv,
+ psb_xrandr_location extend_location,
+ short destx,
+ short desty,
+ short srcx,
+ short srcy,
+ float xScaleFactor,
+ float yScaleFactor,
+ int *x11_window_width,
+ int *x11_window_height,
+ psb_overlay_rect_p local_rect,
+ psb_overlay_rect_p extend_rect,
+ enum overlay_id_t *extend_overlay
+)
+{
+ switch (extend_location) {
+ case LEFT_OF:
+ if ((destx + *x11_window_width) > (pPriv->display_width + pPriv->extend_display_width)) {
+ *x11_window_width = pPriv->display_width + pPriv->extend_display_width - destx;
+ }
+ if (((desty + *x11_window_height) < pPriv->display_height) &&
+ ((desty + *x11_window_height) < pPriv->extend_display_height))
+ local_rect->dHeight = extend_rect->dHeight = *x11_window_height;
+ else if (pPriv->display_height < pPriv->extend_display_height) {
+ local_rect->dHeight = pPriv->display_height - desty;
+ if ((desty + *x11_window_height) > pPriv->extend_display_height)
+ extend_rect->dHeight = *x11_window_height = pPriv->extend_display_height - desty;
+ else
+ extend_rect->dHeight = *x11_window_height;
+ } else {
+ extend_rect->dHeight = pPriv->extend_display_height - desty;
+ if ((desty + *x11_window_height) > pPriv->display_height)
+ local_rect->dHeight = *x11_window_height = pPriv->display_height - desty;
+ else
+ local_rect->dHeight = *x11_window_height;
+ }
+
+ if ((destx < pPriv->extend_display_width) && ((destx + *x11_window_width) < pPriv->extend_display_width)) {
+ local_rect->dWidth = 0;
+ extend_rect->dWidth = *x11_window_width;
+ *extend_overlay = OVERLAY_A;
+ local_rect->destx = 0;
+ } else if ((destx < pPriv->extend_display_width) && ((destx + *x11_window_width) >= pPriv->extend_display_width)) {
+ extend_rect->dWidth = pPriv->extend_display_width - destx;
+ local_rect->dWidth = *x11_window_width - extend_rect->dWidth;
+ local_rect->destx = 0;
+ } else {
+ local_rect->dWidth = *x11_window_width;
+ extend_rect->dWidth = 0;
+ local_rect->destx = destx - pPriv->extend_display_width;
+ }
+ local_rect->sWidth = (unsigned short)(local_rect->dWidth * xScaleFactor);
+ local_rect->sHeight = (unsigned short)(local_rect->dHeight * yScaleFactor);
+ extend_rect->sWidth = (unsigned short)(extend_rect->dWidth * xScaleFactor);
+ extend_rect->sHeight = (unsigned short)(extend_rect->dHeight * yScaleFactor);
+
+ local_rect->srcx = srcx + extend_rect->sWidth;
+ extend_rect->srcx = srcx;
+ local_rect->srcy = extend_rect->srcy = srcy;
+
+ extend_rect->destx = destx;
+ local_rect->desty = extend_rect->desty = desty;
+ break;
+ case RIGHT_OF:
+ if ((destx + *x11_window_width) > (pPriv->display_width + pPriv->extend_display_width)) {
+ *x11_window_width = pPriv->display_width + pPriv->extend_display_width - destx;
+ }
+ if (((desty + *x11_window_height) < pPriv->display_height) &&
+ ((desty + *x11_window_height) < pPriv->extend_display_height))
+ local_rect->dHeight = extend_rect->dHeight = *x11_window_height;
+ else if (pPriv->display_height < pPriv->extend_display_height) {
+ local_rect->dHeight = pPriv->display_height - desty;
+ if ((desty + *x11_window_height) > pPriv->extend_display_height)
+ extend_rect->dHeight = *x11_window_height = pPriv->extend_display_height - desty;
+ else
+ extend_rect->dHeight = *x11_window_height;
+ } else {
+ extend_rect->dHeight = pPriv->extend_display_height - desty;
+ if ((desty + *x11_window_height) > pPriv->display_height)
+ local_rect->dHeight = *x11_window_height = pPriv->display_height - desty;
+ else
+ local_rect->dHeight = *x11_window_height;
+ }
+
+ if ((destx < pPriv->display_width) && ((destx + *x11_window_width) < pPriv->display_width)) {
+ local_rect->dWidth = *x11_window_width;
+ extend_rect->dWidth = 0;
+ extend_rect->destx = 0;
+ } else if ((destx < pPriv->display_width) && ((destx + *x11_window_width) >= pPriv->display_width)) {
+ local_rect->dWidth = pPriv->display_width - destx;
+ extend_rect->dWidth = *x11_window_width - local_rect->dWidth;
+ extend_rect->destx = 0;
+ } else {
+ local_rect->dWidth = 0;
+ extend_rect->dWidth = *x11_window_width;
+ *extend_overlay = OVERLAY_A;
+ extend_rect->destx = destx - pPriv->display_width;
+ }
+ local_rect->sWidth = (unsigned short)(local_rect->dWidth * xScaleFactor);
+ local_rect->sHeight = (unsigned short)(local_rect->dHeight * yScaleFactor);
+ extend_rect->sWidth = (unsigned short)(extend_rect->dWidth * xScaleFactor);
+ extend_rect->sHeight = (unsigned short)(extend_rect->dHeight * yScaleFactor);
+
+ local_rect->srcx = srcx;
+ extend_rect->srcx = srcx + local_rect->sWidth;
+ local_rect->srcy = extend_rect->srcy = srcy;
+
+ local_rect->destx = destx;
+ local_rect->desty = extend_rect->desty = desty;
+ break;
+ case ABOVE:
+ if (((destx + *x11_window_width) < pPriv->display_width) &&
+ ((destx + *x11_window_width) < pPriv->extend_display_width))
+ local_rect->dWidth = extend_rect->dWidth = *x11_window_width;
+ else if (pPriv->display_width < pPriv->extend_display_width) {
+ local_rect->dWidth = pPriv->display_width - destx;
+ if ((destx + *x11_window_width) > pPriv->extend_display_width)
+ extend_rect->dWidth = *x11_window_width = pPriv->extend_display_width - destx;
+ else
+ extend_rect->dWidth = *x11_window_width;
+ } else {
+ extend_rect->dWidth = pPriv->extend_display_width - destx;
+ if ((destx + *x11_window_width) > pPriv->display_width)
+ local_rect->dWidth = *x11_window_width = pPriv->display_width - destx;
+ else
+ local_rect->dWidth = *x11_window_width;
+ }
+
+ if ((desty + *x11_window_height) > (pPriv->display_height + pPriv->extend_display_height)) {
+ *x11_window_height = pPriv->display_height + pPriv->extend_display_height - desty;
+ }
+
+ if ((desty < pPriv->extend_display_height) && ((desty + *x11_window_height) < pPriv->extend_display_height)) {
+ local_rect->dHeight = 0;
+ extend_rect->dHeight = *x11_window_height;
+ *extend_overlay = OVERLAY_A;
+ local_rect->desty = 0;
+ } else if ((desty < pPriv->extend_display_height) && ((desty + *x11_window_height) >= pPriv->extend_display_height)) {
+ extend_rect->dHeight = pPriv->extend_display_height - desty;
+ local_rect->dHeight = *x11_window_height - extend_rect->dHeight;
+ local_rect->desty = 0;
+ } else {
+ local_rect->dHeight = *x11_window_height;
+ extend_rect->dHeight = 0;
+ local_rect->desty = desty - pPriv->extend_display_height;
+ }
+ local_rect->sWidth = (unsigned short)(local_rect->dWidth * xScaleFactor);
+ local_rect->sHeight = (unsigned short)(local_rect->dHeight * yScaleFactor);
+ extend_rect->sWidth = (unsigned short)(extend_rect->dWidth * xScaleFactor);
+ extend_rect->sHeight = (unsigned short)(extend_rect->dHeight * yScaleFactor);
+
+ local_rect->srcy = srcy + extend_rect->sHeight;
+ extend_rect->srcy = srcy;
+ local_rect->srcx = extend_rect->srcx = srcx;
+
+ extend_rect->desty = desty;
+ local_rect->destx = extend_rect->destx = destx;
+ break;
+ case BELOW:
+ if (((destx + *x11_window_width) < pPriv->display_width) &&
+ ((destx + *x11_window_width) < pPriv->extend_display_width))
+ local_rect->dWidth = extend_rect->dWidth = *x11_window_width;
+ else if (pPriv->display_width < pPriv->extend_display_width) {
+ local_rect->dWidth = pPriv->display_width - destx;
+ if ((destx + *x11_window_width) > pPriv->extend_display_width)
+ extend_rect->dWidth = *x11_window_width = pPriv->extend_display_width - destx;
+ else
+ extend_rect->dWidth = *x11_window_width;
+ } else {
+ extend_rect->dWidth = pPriv->extend_display_width - destx;
+ if ((destx + *x11_window_width) > pPriv->display_width)
+ local_rect->dWidth = *x11_window_width = pPriv->display_width - destx;
+ else
+ local_rect->dWidth = *x11_window_width;
+ }
+
+ if ((desty + *x11_window_height) > (pPriv->display_height + pPriv->extend_display_height)) {
+ *x11_window_height = pPriv->display_height + pPriv->extend_display_height - desty;
+ }
+
+ if ((desty < pPriv->display_height) && ((desty + *x11_window_height) < pPriv->display_height)) {
+ local_rect->dHeight = *x11_window_height;
+ extend_rect->dHeight = 0;
+ extend_rect->desty = 0;
+ } else if ((desty < pPriv->display_height) && ((desty + *x11_window_height) >= pPriv->display_height)) {
+ local_rect->dHeight = pPriv->display_height - desty;
+ extend_rect->dHeight = *x11_window_height - local_rect->dHeight;
+ extend_rect->desty = 0;
+ } else {
+ local_rect->dHeight = 0;
+ extend_rect->dHeight = *x11_window_height;
+ *extend_overlay = OVERLAY_A;
+ extend_rect->desty = desty - pPriv->display_height;
+ }
+ local_rect->sWidth = (unsigned short)(local_rect->dWidth * xScaleFactor);
+ local_rect->sHeight = (unsigned short)(local_rect->dHeight * yScaleFactor);
+ extend_rect->sWidth = (unsigned short)(extend_rect->dWidth * xScaleFactor);
+ extend_rect->sHeight = (unsigned short)(extend_rect->dHeight * yScaleFactor);
+
+ local_rect->srcy = srcy;
+ extend_rect->srcy = srcy + local_rect->sHeight;
+ local_rect->srcx = extend_rect->srcx = srcx;
+
+ local_rect->desty = desty;
+ local_rect->destx = extend_rect->destx = destx;
+ break;
+ case NORMAL:
+ default:
+ break;
+ }
+ return VA_STATUS_SUCCESS;
+}
+
+static void psb_init_subpicture(VADriverContextP ctx, PsbPortPrivPtr pPriv)
+{
+ INIT_DRIVER_DATA;
+ struct drm_psb_register_rw_arg regs;
+ unsigned int subpicture_enable_mask = REGRWBITS_DSPACNTR;
+
+ if (!pPriv->subpicture_enabled) {
+ if (psb_xrandr_hdmi_enabled())
+ subpicture_enable_mask |= REGRWBITS_DSPBCNTR;
+ if (psb_xrandr_mipi1_enabled())
+ subpicture_enable_mask |= REGRWBITS_DSPCCNTR;
+
+ memset(&regs, 0, sizeof(regs));
+ regs.subpicture_enable_mask = subpicture_enable_mask;
+ pPriv->subpicture_enable_mask = subpicture_enable_mask;
+ pPriv->subpicture_enabled = 1;
+ drmCommandWriteRead(driver_data->drm_fd, DRM_PSB_REGISTER_RW, &regs, sizeof(regs));
+ }
+}
+
+static void psb_clear_subpictures(
+ VADriverContextP ctx,
+ PsbPortPrivPtr pPriv,
+ int win_width,
+ int win_height,
+ object_surface_p obj_surface
+)
+{
+ INIT_OUTPUT_PRIV;
+ PsbVASurfaceRec *subpicture = (PsbVASurfaceRec *)obj_surface->subpictures;
+ int i;
+
+ if (subpicture == NULL) {
+ psb__information_message("Surface has no subpicture to render.\n");
+ return;
+ }
+
+ for (i = 0; subpicture != NULL; subpicture = subpicture->next, i++) {
+ if ((subpicture->subpic_dstx != pPriv->clear_key[i].subpic_dstx) ||
+ (subpicture->subpic_dsty != pPriv->clear_key[i].subpic_dsty) ||
+ (subpicture->subpic_dstw != pPriv->clear_key[i].subpic_dstw) ||
+ (subpicture->subpic_dsth != pPriv->clear_key[i].subpic_dsth)) {
+ XSetForeground((Display *)ctx->native_dpy, output->gc, 0);
+ XFillRectangle((Display *)ctx->native_dpy, output->output_drawable, output->gc, 0, 0, win_width, win_height);
+ XSync((Display *)ctx->native_dpy, False);
+ if (psb_xrandr_extvideo_mode()) {
+ XSetForeground((Display *)ctx->native_dpy, output->extend_gc, 0);
+ XFillRectangle((Display *)ctx->native_dpy, output->extend_drawable, output->extend_gc,
+ 0, 0, pPriv->extend_display_width, pPriv->extend_display_height);
+ XSync((Display *)ctx->native_dpy, False);
+ }
+ pPriv->subpic_clear_flag = 1;
+ }
+ }
+ return;
+}
+
+VAStatus psb_putsurface_coverlay(
+ VADriverContextP ctx,
+ VASurfaceID surface,
+ Drawable draw, /* X Drawable */
+ short srcx,
+ short srcy,
+ unsigned short srcw,
+ unsigned short srch,
+ short destx,
+ short desty,
+ unsigned short destw,
+ unsigned short desth,
+ VARectangle *cliprects, /* client supplied clip list */
+ unsigned int number_cliprects, /* number of clip rects in the clip list */
+ unsigned int flags /* de-interlacing flags */
+)
+{
+ INIT_DRIVER_DATA;
+ INIT_OUTPUT_PRIV;
+ int ret;
+ int x11_window_width = destw, x11_window_height = desth;
+ psb_xrandr_location extend_location;
+ object_surface_p obj_surface = SURFACE(surface);
+ PsbPortPrivRec *pPriv = (PsbPortPrivPtr)(&driver_data->coverlay_priv);
+ int primary_crtc_x, primary_crtc_y, extend_crtc_x, extend_crtc_y;
+ enum pipe_id_t local_pipe = PIPEA, extend_pipe = PIPEB;
+ int surfacex = destx, surfacey = desty;
+ float xScaleFactor, yScaleFactor;
+ Rotation rotation = RR_Rotate_0;
+ psb_output_device local_device, extend_device;
+ psb_extvideo_subtitle subtitle;
+
+ if (flags & VA_CLEAR_DRAWABLE) {
+ psb__information_message("Clean draw with color 0x%08x\n", driver_data->clear_color);
+ psb_cleardrawable_stopoverlay(ctx, draw, destx, desty, destw, desth);
+
+ return VA_STATUS_SUCCESS;
+ }
+
+ if (output->frame_count % 500 == 0 || driver_data->xrandr_update) {
+ /* get window screen coordination */
+ ret = psb_x11_getWindowCoordinate(ctx->native_dpy, draw, &output->winRect, &output->bIsVisible);
+ if (ret != 0) {
+ psb__error_message("%s: Failed to get X11 window coordinates error # %d\n", __func__, ret);
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+ }
+
+ if (!output->bIsVisible) {
+ return VA_STATUS_SUCCESS;
+ }
+
+ if (NULL == obj_surface) {
+ psb__error_message("%s: Invalid surface id 0x%08x.\n", __func__, surface);
+ return VA_STATUS_ERROR_INVALID_SURFACE;
+ }
+
+ if (output->output_drawable != draw) {
+ output->output_drawable = draw;
+ }
+
+ if (!output->gc) {
+ output->gc = XCreateGC((Display *)ctx->native_dpy, draw, 0, NULL);
+ /* paint the color key */
+ if (!obj_surface->subpictures && !driver_data->overlay_auto_paint_color_key) {
+ XSetForeground((Display *)ctx->native_dpy, output->gc, pPriv->colorKey);
+ XFillRectangle((Display *)ctx->native_dpy, draw, output->gc, 0, 0, x11_window_width, x11_window_height);
+ XSync((Display *)ctx->native_dpy, False);
+ }
+ }
+
+ if (driver_data->use_xrandr_thread && !driver_data->xrandr_thread_id) {
+ ret = psb_xrandr_thread_create(ctx);
+ if (ret != 0) {
+ psb__error_message("%s: Failed to create psb xrandr thread error # %d\n", __func__, ret);
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+ }
+
+ ret = psb_xrandr_local_crtc_coordinate(&local_device, &primary_crtc_x, &primary_crtc_y, &pPriv->display_width, &pPriv->display_height, &rotation);
+ if (ret != VA_STATUS_SUCCESS) {
+ psb__error_message("%s: Failed to get primary crtc coordinates error # %d\n", __func__, ret);
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+ switch (local_device) {
+ case LVDS0:
+ case MIPI0:
+ local_pipe = PIPEA;
+ break;
+ /* single HDMI */
+ case HDMI:
+ local_pipe = PIPEB;
+ break;
+ case MIPI1:
+ local_pipe = PIPEC;
+ break;
+ }
+
+ if (!psb_xrandr_single_mode()) {
+
+ ret = psb_xrandr_extend_crtc_coordinate(&extend_device, &extend_crtc_x, &extend_crtc_y,
+ &pPriv->extend_display_width, &pPriv->extend_display_height, &extend_location, &rotation);
+ if (ret != VA_STATUS_SUCCESS) {
+ psb__error_message("%s: Failed to get extend crtc coordinates error # %d\n", __func__, ret);
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ switch (extend_device) {
+ case HDMI:
+ extend_pipe = PIPEB;
+ break;
+ case MIPI1:
+ extend_pipe = PIPEC;
+ break;
+ default:
+ psb__error_message("%s: Failed to get extend pipe\n", __func__);
+ break;
+ }
+ }
+
+ /*clip in the window area*/
+ if (destx < 0) {
+ x11_window_width += destx;
+ destx = 0;
+ }
+
+ if (desty < 0) {
+ x11_window_height += desty;
+ desty = 0;
+ }
+
+ if (srcx < 0) {
+ srcw += srcx;
+ srcx = 0;
+ }
+
+ if (srcy < 0) {
+ srch += srcy;
+ srcy = 0;
+ }
+
+ if ((destx + x11_window_width) > output->winRect.ui32Width)
+ x11_window_width = output->winRect.ui32Width - destx;
+
+ if ((desty + x11_window_height) > output->winRect.ui32Height)
+ x11_window_height = output->winRect.ui32Height - desty;
+
+ /*translate destx, desty into screen coordinate*/
+ destx += output->winRect.i32Left;
+ desty += output->winRect.i32Top;
+
+ /*clip in the screen area*/
+ xScaleFactor = srcw * 1.0 / x11_window_width;
+ yScaleFactor = srch * 1.0 / x11_window_height;
+
+ if (destx < 0) {
+ x11_window_width += destx;
+ srcx = (short)((-destx) * xScaleFactor);
+ destx = 0;
+ }
+
+ if (desty < 0) {
+ x11_window_height += desty;
+ srcy = (short)((-desty) * yScaleFactor);
+ desty = 0;
+ }
+
+ /* display by overlay */
+ if (psb_xrandr_single_mode() || IS_MRST(driver_data)) {
+ if ((destx + x11_window_width) > pPriv->display_width) {
+ x11_window_width = pPriv->display_width - destx;
+ srcw = (unsigned short)(x11_window_width * xScaleFactor);
+ }
+
+ if ((desty + x11_window_height) > pPriv->display_height) {
+ x11_window_height = pPriv->display_height - desty;
+ srch = (unsigned short)(x11_window_height * yScaleFactor);
+ }
+
+ if (!driver_data->overlay_auto_paint_color_key) {
+ ret = psb_repaint_colorkey(ctx, draw, surface, x11_window_width, x11_window_height);
+ if (ret != 0) {
+ psb__error_message("%s: Failed to repaint color key error # %d\n", __func__, ret);
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+ }
+
+ psb_putsurface_overlay(
+ ctx, surface, srcx, srcy, srcw, srch,
+ /* screen coordinate */
+ destx, desty, x11_window_width, x11_window_height,
+ flags, OVERLAY_A, local_pipe);
+ } else if (psb_xrandr_clone_mode()) {
+ psb_overlay_rect_t local_rect, extend_rect;
+
+ if (output->extend_drawable) {
+ XDestroyWindow(ctx->native_dpy, output->extend_drawable);
+ output->extend_drawable = 0;
+ XFreeGC((Display *)ctx->native_dpy, output->extend_gc);
+ output->extend_gc = 0;
+ }
+
+ if (((destx + x11_window_width) < pPriv->display_width) &&
+ ((destx + x11_window_width) < pPriv->extend_display_width))
+ local_rect.dWidth = extend_rect.dWidth = x11_window_width;
+ else if (pPriv->display_width < pPriv->extend_display_width) {
+ local_rect.dWidth = pPriv->display_width - destx;
+ if ((destx + x11_window_width) > pPriv->extend_display_width)
+ extend_rect.dWidth = x11_window_width = pPriv->extend_display_width - destx;
+ else
+ extend_rect.dWidth = x11_window_width;
+ } else {
+ extend_rect.dWidth = pPriv->extend_display_width - destx;
+ if ((destx + x11_window_width) > pPriv->display_width)
+ local_rect.dWidth = x11_window_width = pPriv->display_width - destx;
+ else
+ local_rect.dWidth = x11_window_width;
+ }
+
+ if (((desty + x11_window_height) < pPriv->display_height) &&
+ ((desty + x11_window_height) < pPriv->extend_display_height))
+ local_rect.dHeight = extend_rect.dHeight = x11_window_height;
+ else if (pPriv->display_height < pPriv->extend_display_height) {
+ local_rect.dHeight = pPriv->display_height - desty;
+ if ((desty + x11_window_height) > pPriv->extend_display_height)
+ extend_rect.dHeight = x11_window_height = pPriv->extend_display_height - desty;
+ else
+ extend_rect.dHeight = x11_window_height;
+ } else {
+ extend_rect.dHeight = pPriv->extend_display_height - desty;
+ if ((desty + x11_window_height) > pPriv->display_height)
+ local_rect.dHeight = x11_window_height = pPriv->display_height - desty;
+ else
+ local_rect.dHeight = x11_window_height;
+ }
+ if ((driver_data->mipi0_rotation != VA_ROTATION_NONE) ||
+ (driver_data->hdmi_rotation != VA_ROTATION_NONE)) {
+ local_rect.sWidth = srcw;
+ local_rect.sHeight = srch;
+ extend_rect.sWidth = srcw;
+ extend_rect.sHeight = srch;
+ } else {
+ local_rect.sWidth = (unsigned short)(local_rect.dWidth * xScaleFactor);
+ local_rect.sHeight = (unsigned short)(local_rect.dHeight * yScaleFactor);
+ extend_rect.sWidth = (unsigned short)(extend_rect.dWidth * xScaleFactor);
+ extend_rect.sHeight = (unsigned short)(extend_rect.dHeight * yScaleFactor);
+ }
+ ret = psb_repaint_colorkey(ctx, draw, surface, x11_window_width, x11_window_height);
+ if (ret != 0) {
+ psb__error_message("%s: Failed to repaint color key error # %d\n", __func__, ret);
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+ psb_putsurface_overlay(
+ ctx, surface, srcx, srcy, extend_rect.sWidth, extend_rect.sHeight,
+ /* screen coordinate */
+ destx, desty, extend_rect.dWidth, extend_rect.dHeight,
+ flags, OVERLAY_C, extend_pipe);
+ psb_putsurface_overlay(
+ ctx, surface, srcx, srcy, local_rect.sWidth, local_rect.sHeight,
+ /* screen coordinate */
+ destx, desty, local_rect.dWidth, local_rect.dHeight,
+ flags, OVERLAY_A, local_pipe);
+ } else if (psb_xrandr_extend_mode()) {
+ if (driver_data->extend_fullscreen) {
+ switch (extend_location) {
+ case RIGHT_OF:
+ XMoveResizeWindow(ctx->native_dpy, output->output_drawable, pPriv->display_width, 0, pPriv->extend_display_width, pPriv->extend_display_height);
+ break;
+ case BELOW:
+ XMoveResizeWindow(ctx->native_dpy, output->output_drawable, 0, pPriv->display_height, pPriv->extend_display_width, pPriv->extend_display_height);
+ break;
+ case LEFT_OF:
+ case ABOVE:
+ XMoveResizeWindow(ctx->native_dpy, output->output_drawable, 0, 0, pPriv->extend_display_width, pPriv->extend_display_height);
+ break;
+ default:
+ break;
+
+ }
+ XSetForeground((Display *)ctx->native_dpy, output->gc, pPriv->colorKey);
+ XFillRectangle((Display *)ctx->native_dpy, draw, output->gc, 0, 0, pPriv->extend_display_width, pPriv->extend_display_height);
+ XFlush(ctx->native_dpy);
+
+ psb_putsurface_overlay(
+ ctx, surface, srcx, srcy, srcw, srch,
+ /* screen coordinate */
+ 0, 0, pPriv->extend_display_width, pPriv->extend_display_height,
+ flags, OVERLAY_A, PIPEB);
+ } else {
+ psb_overlay_rect_t local_rect, extend_rect;
+ enum overlay_id_t extend_overlay = OVERLAY_C;
+
+ if (output->extend_drawable) {
+ XDestroyWindow(ctx->native_dpy, output->extend_drawable);
+ output->extend_drawable = 0;
+ XFreeGC((Display *)ctx->native_dpy, output->extend_gc);
+ output->extend_gc = 0;
+ }
+ memset(&local_rect, 0, sizeof(psb_overlay_rect_t));
+ memset(&extend_rect, 0, sizeof(psb_overlay_rect_t));
+ psb_extendMode_getCoordinate(pPriv, extend_location, destx, desty, srcx, srcy,
+ xScaleFactor, yScaleFactor, &x11_window_width, &x11_window_height,
+ &local_rect, &extend_rect, &extend_overlay);
+
+ ret = psb_repaint_colorkey(ctx, draw, surface, x11_window_width, x11_window_height);
+ if (ret != 0) {
+ psb__error_message("%s: Failed to repaint color key error # %d\n", __func__, ret);
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ if ((extend_rect.dWidth > 0) && (extend_rect.dHeight > 0)) {
+ psb_putsurface_overlay(
+ ctx, surface,
+ extend_rect.srcx, extend_rect.srcy, extend_rect.sWidth, extend_rect.sHeight,
+ extend_rect.destx, extend_rect.desty, extend_rect.dWidth, extend_rect.dHeight,
+ flags, extend_overlay, extend_pipe);
+ }
+ if ((local_rect.dWidth > 0) && (local_rect.dHeight > 0)) {
+ psb_putsurface_overlay(
+ ctx, surface,
+ local_rect.srcx, local_rect.srcy, local_rect.sWidth, local_rect.sHeight,
+ local_rect.destx, local_rect.desty, local_rect.dWidth, local_rect.dHeight,
+ flags, OVERLAY_A, local_pipe);
+ }
+ }
+ } else if (psb_xrandr_extvideo_mode()) {
+ unsigned int xres, yres, xoffset, yoffset, overscanmode, pannelfitting, x, y;
+ psb_extvideo_center center;
+
+ psb_xrandr_extvideo_prop(&xres, &yres, &xoffset, &yoffset, &center, &subtitle, &overscanmode, &pannelfitting);
+ x = xoffset;
+ y = yoffset;
+
+ switch (extend_location) {
+ case RIGHT_OF:
+ x += pPriv->display_width;
+ break;
+ case BELOW:
+ y += pPriv->display_height;
+ break;
+ case NORMAL:
+ break;
+ case LEFT_OF:
+ if (driver_data->xrandr_dirty & PSB_NEW_EXTVIDEO) {
+ destx += pPriv->extend_display_width;
+ XMoveResizeWindow(ctx->native_dpy, output->output_drawable, destx, desty, x11_window_width, x11_window_height);
+ XFillRectangle((Display *)ctx->native_dpy, draw, output->gc, 0, 0, x11_window_width, x11_window_height);
+ XFlush(ctx->native_dpy);
+ }
+ destx = destx - pPriv->extend_display_width;
+ break;
+ case ABOVE:
+ if (driver_data->xrandr_dirty & PSB_NEW_EXTVIDEO) {
+ desty += pPriv->extend_display_height;
+ XMoveResizeWindow(ctx->native_dpy, output->output_drawable, destx, desty, x11_window_width, x11_window_height);
+ XFillRectangle((Display *)ctx->native_dpy, draw, output->gc, 0, 0, x11_window_width, x11_window_height);
+ XFlush(ctx->native_dpy);
+ }
+ desty = desty - pPriv->extend_display_height;
+ break;
+ }
+ if ((destx + x11_window_width) > pPriv->display_width)
+ x11_window_width = pPriv->display_width - destx;
+ if ((desty + x11_window_height) > pPriv->display_height)
+ x11_window_height = pPriv->display_height - desty;
+
+ if (driver_data->xrandr_dirty & PSB_NEW_EXTVIDEO) {
+ Window extend_win;
+ extend_win = psb_xrandr_create_full_screen_window(x, y, xres, yres);
+ if (output->extend_drawable != extend_win) {
+ output->extend_drawable = extend_win;
+ if (output->extend_gc)
+ XFreeGC((Display *)ctx->native_dpy, output->extend_gc);
+ output->extend_gc = XCreateGC((Display *)ctx->native_dpy, extend_win, 0, NULL);
+
+ /* paint the color key */
+ if (!obj_surface->subpictures) {
+ XSetForeground((Display *)ctx->native_dpy, output->extend_gc, pPriv->colorKey);
+ XFillRectangle((Display *)ctx->native_dpy, extend_win, output->extend_gc, 0, 0, xres, yres);
+ XSync((Display *)ctx->native_dpy, False);
+ }
+ }
+ driver_data->xrandr_dirty &= ~PSB_NEW_EXTVIDEO;
+ }
+
+ ret = psb_repaint_colorkey(ctx, draw, surface, x11_window_width, x11_window_height);
+ if (ret != 0) {
+ psb__error_message("%s: Failed to repaint color key error # %d\n", __func__, ret);
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ psb_putsurface_overlay(
+ ctx, surface, srcx, srcy, srcw, srch,
+ /* screen coordinate */
+ xoffset, yoffset, xres, yres,
+ flags, OVERLAY_C, PIPEB);
+ psb_putsurface_overlay(
+ ctx, surface, srcx, srcy, srcw, srch,
+ /* screen coordinate */
+ destx, desty,
+ x11_window_width, x11_window_height,
+ flags, OVERLAY_A, local_pipe);
+ }
+
+ /*Init Overlay subpicuture blending and make proper clear.*/
+ if (pPriv->is_mfld && obj_surface->subpictures) {
+ PsbVASurfaceRec *subpicture = (PsbVASurfaceRec *)obj_surface->subpictures;
+
+ psb_init_subpicture(ctx, pPriv);
+ /*clear changed subpicture zones in drawable.*/
+ psb_clear_subpictures(ctx, pPriv, x11_window_width, x11_window_height, obj_surface);
+ if (pPriv->subpic_clear_flag) {
+ psb_DisplayRGBASubpicture(subpicture, ctx, x11_window_width, x11_window_height,
+ surfacex, surfacey, obj_surface->width, obj_surface->height, subtitle);
+ }
+ }
+
+ output->frame_count++;
+
+ return VA_STATUS_SUCCESS;
+}
diff --git a/src/x11/psb_ctexture.c b/src/x11/psb_ctexture.c
new file mode 100644
index 0000000..718c3fc
--- /dev/null
+++ b/src/x11/psb_ctexture.c
@@ -0,0 +1,480 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ * Copyright (c) Imagination Technologies Limited, UK
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ * Zhaohan Ren <zhaohan.ren@intel.com>
+ * Shengquan Yuan <shengquan.yuan@intel.com>
+ *
+ */
+
+#include <stdio.h>
+#include <math.h>
+
+#include <psb_drm.h>
+#include <va/va_backend.h>
+#include <va/va_dricommon.h>
+
+#include <wsbm/wsbm_manager.h>
+#include <X11/Xlib.h>
+#include <X11/X.h>
+
+#include "psb_drv_video.h"
+#include "psb_x11.h"
+#include "psb_output.h"
+#include "psb_xrandr.h"
+#include "psb_surface_ext.h"
+
+#include "psb_texture.h"
+
+#define INIT_DRIVER_DATA psb_driver_data_p driver_data = (psb_driver_data_p) ctx->pDriverData;
+#define INIT_OUTPUT_PRIV psb_x11_output_p output = (psb_x11_output_p)(((psb_driver_data_p)ctx->pDriverData)->ws_priv)
+
+#define SURFACE(id) ((object_surface_p) object_heap_lookup( &driver_data->surface_heap, id ))
+#define BUFFER(id) ((object_buffer_p) object_heap_lookup( &driver_data->buffer_heap, id ))
+#define IMAGE(id) ((object_image_p) object_heap_lookup( &driver_data->image_heap, id ))
+#define SUBPIC(id) ((object_subpic_p) object_heap_lookup( &driver_data->subpic_heap, id ))
+#define CONTEXT(id) ((object_context_p) object_heap_lookup( &driver_data->context_heap, id ))
+
+static VAStatus psb_extend_dri_init(VADriverContextP ctx, unsigned int destx, unsigned desty, unsigned destw, unsigned desth)
+{
+ INIT_DRIVER_DATA;
+ INIT_OUTPUT_PRIV;
+
+ int i, ret;
+ union dri_buffer *extend_dri_buffer;
+ PPVR2DMEMINFO dri2_bb_export_meminfo;
+
+ struct psb_texture_s *texture_priv = &driver_data->ctexture_priv;
+
+ output->extend_drawable = (Window)psb_xrandr_create_full_screen_window(destx, desty, destw, desth);
+ if (!output->extend_drawable) {
+ psb__error_message("%s: Failed to create drawable for extend display # %d\n", __func__, output->extend_drawable);
+ }
+ texture_priv->extend_dri_drawable = dri_get_drawable(ctx, output->extend_drawable);
+ if (!texture_priv->extend_dri_drawable) {
+ psb__error_message("%s(): Failed to get extend_dri_drawable\n", __func__);
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ extend_dri_buffer = dri_get_rendering_buffer(ctx, texture_priv->extend_dri_drawable);
+ if (!extend_dri_buffer) {
+ psb__error_message("%s(): Failed to get extend_dri_buffer\n", __func__);
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ ret = PVR2DMemMap(texture_priv->hPVR2DContext, 0, (PVR2D_HANDLE)extend_dri_buffer->dri2.name, &dri2_bb_export_meminfo);
+ if (ret != PVR2D_OK) {
+ psb__error_message("%s(): PVR2DMemMap failed, ret = %d\n", __func__, ret);
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ memcpy(&texture_priv->extend_dri2_bb_export, dri2_bb_export_meminfo->pBase, sizeof(PVRDRI2BackBuffersExport));
+
+ for (i = 0; i < DRI2_BLIT_BUFFERS_NUM; i++) {
+ ret = PVR2DMemMap(texture_priv->hPVR2DContext, 0, texture_priv->extend_dri2_bb_export.hBuffers[i], &texture_priv->extend_blt_meminfo[i]);
+ if (ret != PVR2D_OK) {
+ psb__error_message("%s(): PVR2DMemMap failed, ret = %d\n", __func__, ret);
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+ }
+
+ texture_priv->extend_dri_init_flag = 1;
+
+ return VA_STATUS_SUCCESS;
+}
+
+static VAStatus psb_dri_init(VADriverContextP ctx, Drawable draw)
+{
+ INIT_DRIVER_DATA;
+ INIT_OUTPUT_PRIV;
+ int i, ret;
+
+ union dri_buffer *dri_buffer;
+
+ PPVR2DMEMINFO dri2_bb_export_meminfo;
+
+ struct psb_texture_s *texture_priv = &driver_data->ctexture_priv;
+
+ texture_priv->dri_drawable = dri_get_drawable(ctx, output->output_drawable);
+ if (!texture_priv->dri_drawable) {
+ psb__error_message("%s(): Failed to get dri_drawable\n", __func__);
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ dri_buffer = dri_get_rendering_buffer(ctx, texture_priv->dri_drawable);
+ if (!dri_buffer) {
+ psb__error_message("%s(): Failed to get dri_buffer\n", __func__);
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ /* pixmap */
+ if (!texture_priv->dri_drawable->is_window) {
+ ret = PVR2DMemMap(texture_priv->hPVR2DContext, 0, (PVR2D_HANDLE)(dri_buffer->dri2.name & 0x00FFFFFF), &texture_priv->blt_meminfo_pixmap);
+ if (ret != PVR2D_OK) {
+ psb__error_message("%s(): PVR2DMemMap failed, ret = %d\n", __func__, ret);
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ texture_priv->dri_init_flag = 1;
+ return VA_STATUS_SUCCESS;
+ }
+
+ ret = PVR2DMemMap(texture_priv->hPVR2DContext, 0, (PVR2D_HANDLE)(dri_buffer->dri2.name & 0x00FFFFFF), &dri2_bb_export_meminfo);
+ if (ret != PVR2D_OK) {
+ psb__error_message("%s(): PVR2DMemMap failed, ret = %d\n", __func__, ret);
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ memcpy(&texture_priv->dri2_bb_export, dri2_bb_export_meminfo->pBase, sizeof(PVRDRI2BackBuffersExport));
+
+ if (texture_priv->dri2_bb_export.ui32Type == DRI2_BACK_BUFFER_EXPORT_TYPE_BUFFERS) {
+ psb__information_message("psb_dri_init: Now map buffer, DRI2 back buffer export type: DRI2_BACK_BUFFER_EXPORT_TYPE_BUFFERS\n");
+
+ for (i = 0; i < DRI2_BLIT_BUFFERS_NUM; i++) {
+ ret = PVR2DMemMap(texture_priv->hPVR2DContext, 0, texture_priv->dri2_bb_export.hBuffers[i], &texture_priv->blt_meminfo[i]);
+ if (ret != PVR2D_OK) {
+ psb__error_message("%s(): PVR2DMemMap failed, ret = %d\n", __func__, ret);
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+ }
+ } else if (texture_priv->dri2_bb_export.ui32Type == DRI2_BACK_BUFFER_EXPORT_TYPE_SWAPCHAIN) {
+ psb__information_message("psb_dri_init: Now map buffer, DRI2 back buffer export type: DRI2_BACK_BUFFER_EXPORT_TYPE_SWAPCHAIN\n");
+
+ for (i = 0; i < DRI2_FLIP_BUFFERS_NUM; i++) {
+ ret = PVR2DMemMap(texture_priv->hPVR2DContext, 0, texture_priv->dri2_bb_export.hBuffers[i], &texture_priv->flip_meminfo[i]);
+ if (ret != PVR2D_OK) {
+ psb__error_message("%s(): PVR2DMemMap failed, ret = %d\n", __func__, ret);
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+ }
+ }
+
+ texture_priv->dri_init_flag = 1;
+
+ PVR2DMemFree(texture_priv->hPVR2DContext, dri2_bb_export_meminfo);
+ return VA_STATUS_SUCCESS;
+}
+
+VAStatus psb_putsurface_ctexture(
+ VADriverContextP ctx,
+ VASurfaceID surface,
+ Drawable draw,
+ short srcx,
+ short srcy,
+ unsigned short srcw,
+ unsigned short srch,
+ short destx,
+ short desty,
+ unsigned short destw,
+ unsigned short desth,
+ unsigned int flags /* de-interlacing flags */
+)
+{
+ INIT_DRIVER_DATA;
+ INIT_OUTPUT_PRIV;
+ int ret;
+ int local_crtc_x, local_crtc_y, extend_crtc_x, extend_crtc_y;
+ int display_width = 0, display_height = 0, extend_display_width = 0, extend_display_height = 0;
+ int surface_width, surface_height;
+ psb_xrandr_location extend_location = NORMAL;
+ psb_extvideo_subtitle subtitle = NOSUBTITLE;
+ object_surface_p obj_surface = SURFACE(surface);
+ psb_surface_p psb_surface;
+ Rotation local_rotation, extend_rotation;
+ psb_output_device local_device, extend_device;
+ unsigned short tmp;
+ struct psb_texture_s *texture_priv = &driver_data->ctexture_priv;
+
+
+ obj_surface = SURFACE(surface);
+ if (NULL == obj_surface) {
+ psb__error_message("%s: Invalid surface ID 0x%08x.\n", __func__, surface);
+ return VA_STATUS_ERROR_INVALID_SURFACE;
+ }
+
+ if (driver_data->video_rotate == VA_ROTATION_NONE) {
+ psb_surface = obj_surface->psb_surface;
+ surface_width = obj_surface->width;
+ surface_height = obj_surface->height;
+ } else {
+ psb_surface = obj_surface->psb_surface_rotate;
+ if (driver_data->video_rotate != VA_ROTATION_180) {
+ tmp = srcw;
+ srcw = srch;
+ srch = tmp;
+ }
+ surface_width = obj_surface->width_r;
+ surface_height = obj_surface->height_r;
+ }
+
+ if (!psb_surface)
+ psb_surface = obj_surface->psb_surface;
+
+ if (output->output_drawable != draw) {
+ output->output_drawable = draw;
+ if (texture_priv->dri_init_flag)
+ texture_priv->drawable_update_flag = 1;
+ }
+
+ if (driver_data->use_xrandr_thread && !driver_data->xrandr_thread_id) {
+ ret = psb_xrandr_thread_create(ctx);
+ if (ret != 0) {
+ psb__error_message("%s: Failed to create psb xrandr thread error # %d\n", __func__, ret);
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+ }
+
+ if (!texture_priv->dri_init_flag) {
+ texture_priv->destw_save = destw;
+ texture_priv->desth_save = desth;
+ } else {
+ if (texture_priv->destw_save != destw || texture_priv->desth_save != desth) {
+ texture_priv->destw_save = destw;
+ texture_priv->desth_save = desth;
+ texture_priv->drawable_update_flag = 1;
+ }
+ }
+
+ ret = psb_xrandr_local_crtc_coordinate(&local_device, &local_crtc_x, &local_crtc_y, &display_width, &display_height, &local_rotation);
+ if (ret != VA_STATUS_SUCCESS) {
+ psb__error_message("%s: Failed to get local crtc coordinates error # %d\n", __func__, ret);
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ if (!psb_xrandr_single_mode() && IS_MFLD(driver_data)) {
+ ret = psb_xrandr_extend_crtc_coordinate(&extend_device, &extend_crtc_x, &extend_crtc_y, &extend_display_width, &extend_display_height, &extend_location, &extend_rotation);
+ if (ret != VA_STATUS_SUCCESS) {
+ psb__error_message("%s: Failed to get extend crtc coordinates error # %d\n", __func__, ret);
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+ }
+
+ //Reinit DRI if screen rotates
+ if (texture_priv->local_rotation_save != local_rotation) {
+ texture_priv->local_rotation_save = local_rotation;
+ texture_priv->dri_init_flag = 0;
+ }
+ if (texture_priv->extend_rotation_save != extend_rotation) {
+ texture_priv->extend_rotation_save = extend_rotation;
+ texture_priv->extend_dri_init_flag = 0;
+ }
+
+ if (!psb_xrandr_extvideo_mode()) {
+ if (!texture_priv->dri_init_flag || texture_priv->drawable_update_flag) {
+ if (texture_priv->drawable_update_flag) {
+ psb__information_message("Drawable update, reinit DRI\n");
+ texture_priv->drawable_update_flag = 0;
+ }
+
+ ret = psb_dri_init(ctx, output->output_drawable);
+ if (ret != VA_STATUS_SUCCESS)
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+ }
+
+ /* Extend video */
+ if (psb_xrandr_clone_mode() && local_rotation == extend_rotation) {
+ if (output->extend_drawable) {
+ XDestroyWindow(ctx->native_dpy, output->extend_drawable);
+ output->extend_drawable = 0;
+ texture_priv->extend_dri_init_flag = 0;
+ }
+
+ psb__information_message("psb_putsurface_ctexture: Clone Mode\n");
+ } else if (psb_xrandr_extend_mode()) {
+ if (output->extend_drawable) {
+ XDestroyWindow(ctx->native_dpy, output->extend_drawable);
+ output->extend_drawable = 0;
+ texture_priv->extend_dri_init_flag = 0;
+ }
+ switch (extend_location) {
+ case LEFT_OF:
+ display_height = display_height > extend_display_height ? display_height : extend_display_height;
+ if (destw > display_width + extend_display_width)
+ destw = display_width + extend_display_width;
+ if (desth > display_height)
+ desth = display_height;
+ break;
+ case RIGHT_OF:
+ display_height = display_height > extend_display_height ? display_height : extend_display_height;
+ if (destw > display_width + extend_display_width)
+ destw = display_width + extend_display_width;
+ if (desth > display_height)
+ desth = display_height;
+ break;
+ case BELOW:
+ display_width = display_width > extend_display_width ? display_width : extend_display_width;
+ if (destw > display_width)
+ destw = display_width;
+ if (desth > display_height + extend_display_height)
+ desth = display_height + extend_display_height;
+ break;
+ case ABOVE:
+ display_width = display_width > extend_display_width ? display_width : extend_display_width;
+ if (destw > display_width)
+ destw = display_width;
+ if (desth > display_height + extend_display_height)
+ desth = display_height + extend_display_height;
+ break;
+ case NORMAL:
+ default:
+ break;
+ }
+
+ psb__information_message("psb_putsurface_ctexture: Extend Mode, Location: %08x\n", extend_location);
+ } else if (psb_xrandr_extvideo_mode()) {
+
+ unsigned int xres, yres, xoffset, yoffset, overscanmode, pannelfitting;
+ psb_extvideo_center center;
+
+ psb_xrandr_extvideo_prop(&xres, &yres, &xoffset, &yoffset, &center, &subtitle, &overscanmode, &pannelfitting);
+
+ xres = extend_display_width - xoffset;
+ yres = extend_display_height - yoffset;
+ //Init DRI for extend display
+ if (!texture_priv->extend_dri_init_flag) {
+ ret = psb_extend_dri_init(ctx, xoffset, yoffset, xres, yres);
+ if (ret != VA_STATUS_SUCCESS)
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ psb__information_message("psb_putsurface_ctexture: ExtendVideo Mode, Location: %08x\n", extend_location);
+ psb__information_message("psb_putsurface_ctexture: ExtVideo coordinate srcx= %d, srcy=%d, \
+ srcw=%d, srch=%d, destx=%d, desty=%d, destw=%d, desth=%d, cur_buffer=%d\n",
+ srcx, srcy, srcw, srch, xoffset, yoffset, xres, yres, texture_priv->extend_current_blt_buffer);
+
+ if (subtitle == BOTH || subtitle == ONLY_HDMI)
+ psb_putsurface_textureblit(ctx, texture_priv->extend_blt_meminfo[texture_priv->extend_current_blt_buffer], surface, srcx, srcy, srcw, srch, 0, 0,
+ xres, yres, 1,
+ surface_width, surface_height,
+ psb_surface->stride, psb_surface->buf.drm_buf,
+ psb_surface->buf.pl_flags);
+ else
+ psb_putsurface_textureblit(ctx, texture_priv->extend_blt_meminfo[texture_priv->extend_current_blt_buffer], surface, srcx, srcy, srcw, srch, 0, 0,
+ xres, yres, 0,
+ surface_width, surface_height,
+ psb_surface->stride, psb_surface->buf.drm_buf,
+ psb_surface->buf.pl_flags);
+
+ dri_swap_buffer(ctx, texture_priv->extend_dri_drawable);
+ texture_priv->extend_current_blt_buffer = (texture_priv->extend_current_blt_buffer + 1) & 0x01;
+
+ /* int this mode, destination retangle may be larger than MIPI resolution, if so setting it to MIPI resolution */
+ if (destw > display_width)
+ destw = display_width;
+ if (desth > display_height)
+ desth = display_height;
+
+ /* adjust local window on MIPI, make sure it is not covered by HDMI image */
+ if (!texture_priv->adjust_window_flag) {
+ switch (extend_location) {
+ case ABOVE:
+ XMoveResizeWindow(ctx->native_dpy, output->output_drawable, 0, extend_display_height, destw, desth);
+ break;
+ case LEFT_OF:
+ XMoveResizeWindow(ctx->native_dpy, output->output_drawable, extend_display_width, 0, destw, desth);
+ break;
+ case BELOW:
+ case RIGHT_OF:
+ case NORMAL:
+ default:
+ break;
+ }
+ XFlush(ctx->native_dpy);
+ texture_priv->adjust_window_flag = 1;
+ }
+
+ if (!texture_priv->dri_init_flag || texture_priv->drawable_update_flag) {
+ if (texture_priv->drawable_update_flag) {
+ psb__information_message("Drawable update, reinit DRI\n");
+ texture_priv->drawable_update_flag = 0;
+ }
+
+ ret = psb_dri_init(ctx, output->output_drawable);
+ if (ret != VA_STATUS_SUCCESS)
+ return VA_STATUS_ERROR_UNKNOWN;
+
+ }
+ }
+
+ /* Main Video for pixmap*/
+ if (!texture_priv->dri_drawable->is_window) {
+ psb__information_message("psb_putsurface_ctexture: Main video Pixmap, coordinate: srcx= %d, srcy=%d, srcw=%d, srch=%d, destx=%d, desty=%d, destw=%d, desth=%d, cur_buffer=%d\n",
+ srcx, srcy, srcw, srch, destx, desty, destw, desth, texture_priv->current_blt_buffer);
+ if (subtitle == BOTH || (subtitle == NOSUBTITLE && obj_surface->subpic_count))
+ psb_putsurface_textureblit(ctx, texture_priv->blt_meminfo_pixmap, surface, srcx, srcy, srcw, srch, destx, desty, destw, desth, 1,
+ surface_width, surface_height,
+ psb_surface->stride, psb_surface->buf.drm_buf,
+ psb_surface->buf.pl_flags);
+ else
+ psb_putsurface_textureblit(ctx, texture_priv->blt_meminfo_pixmap, surface, srcx, srcy, srcw, srch, destx, desty, destw, desth, 0,
+ surface_width, surface_height,
+ psb_surface->stride, psb_surface->buf.drm_buf,
+ psb_surface->buf.pl_flags);
+
+ return VA_STATUS_SUCCESS;
+ }
+
+ /* Main Video for window*/
+ if (texture_priv->dri2_bb_export.ui32Type == DRI2_BACK_BUFFER_EXPORT_TYPE_BUFFERS) {
+ psb__information_message("psb_putsurface_ctexture: Main video, swap buffer, coordinate: srcx= %d, srcy=%d, srcw=%d, srch=%d, destx=%d, desty=%d, destw=%d, desth=%d, cur_buffer=%d\n",
+ srcx, srcy, srcw, srch, destx, desty, destw, desth, texture_priv->current_blt_buffer);
+
+ if (subtitle == BOTH || (subtitle == NOSUBTITLE && obj_surface->subpic_count))
+ psb_putsurface_textureblit(ctx, texture_priv->blt_meminfo[texture_priv->current_blt_buffer], surface, srcx, srcy, srcw, srch, destx, desty, destw, desth, 1,
+ surface_width, surface_height,
+ psb_surface->stride, psb_surface->buf.drm_buf,
+ psb_surface->buf.pl_flags);
+ else
+ psb_putsurface_textureblit(ctx, texture_priv->blt_meminfo[texture_priv->current_blt_buffer], surface, srcx, srcy, srcw, srch, destx, desty, destw, desth, 0,
+ surface_width, surface_height,
+ psb_surface->stride, psb_surface->buf.drm_buf,
+ psb_surface->buf.pl_flags);
+
+ dri_swap_buffer(ctx, texture_priv->dri_drawable);
+ texture_priv->current_blt_buffer = (texture_priv->current_blt_buffer + 1) & 0x01;
+
+ } else if (texture_priv->dri2_bb_export.ui32Type == DRI2_BACK_BUFFER_EXPORT_TYPE_SWAPCHAIN) {
+ psb__information_message("psb_putsurface_ctexture: Main video, flip chain, coordinate: srcx= %d, srcy=%d, srcw=%d, srch=%d, destx=%d, desty=%d, destw=%d, desth=%d, cur_buffer=%d\n",
+ srcx, srcy, srcw, srch, destx, desty, display_width, display_height, texture_priv->current_blt_buffer);
+
+ if (subtitle == BOTH || (subtitle == NOSUBTITLE && obj_surface->subpic_count))
+ psb_putsurface_textureblit(ctx, texture_priv->flip_meminfo[texture_priv->current_blt_buffer], surface, srcx, srcy, srcw, srch, destx, desty,
+ display_width, display_height, 1, surface_width, surface_height,
+ psb_surface->stride, psb_surface->buf.drm_buf,
+ psb_surface->buf.pl_flags);
+ else
+ psb_putsurface_textureblit(ctx, texture_priv->flip_meminfo[texture_priv->current_blt_buffer], surface, srcx, srcy, srcw, srch, destx, desty,
+ display_width, display_height, 0, surface_width, surface_height,
+ psb_surface->stride, psb_surface->buf.drm_buf,
+ psb_surface->buf.pl_flags);
+
+ dri_swap_buffer(ctx, texture_priv->dri_drawable);
+ texture_priv->current_blt_buffer++;
+ if (texture_priv->current_blt_buffer == DRI2_FLIP_BUFFERS_NUM)
+ texture_priv->current_blt_buffer = 0;
+ }
+
+ return VA_STATUS_SUCCESS;
+}
diff --git a/src/x11/psb_x11.c b/src/x11/psb_x11.c
new file mode 100644
index 0000000..092f75a
--- /dev/null
+++ b/src/x11/psb_x11.c
@@ -0,0 +1,469 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ * Shengquan Yuan <shengquan.yuan@intel.com>
+ * Zhaohan Ren <zhaohan.ren@intel.com>
+ *
+ */
+
+#include <X11/Xutil.h>
+#include <X11/extensions/Xrandr.h>
+#include <X11/extensions/dpms.h>
+#include <va/va_backend.h>
+#include "psb_output.h"
+#include "psb_surface.h"
+#include "psb_buffer.h"
+#include "psb_x11.h"
+#include "psb_surface_ext.h"
+
+#include <stdio.h>
+#include <string.h>
+#include <stdarg.h>
+#include "psb_surface_ext.h"
+#include <wsbm/wsbm_manager.h>
+
+#define INIT_DRIVER_DATA psb_driver_data_p driver_data = (psb_driver_data_p) ctx->pDriverData
+#define INIT_OUTPUT_PRIV psb_x11_output_p output = (psb_x11_output_p)(((psb_driver_data_p)ctx->pDriverData)->ws_priv)
+
+#define SURFACE(id) ((object_surface_p) object_heap_lookup( &driver_data->surface_heap, id ))
+#define BUFFER(id) ((object_buffer_p) object_heap_lookup( &driver_data->buffer_heap, id ))
+#define IMAGE(id) ((object_image_p) object_heap_lookup( &driver_data->image_heap, id ))
+#define SUBPIC(id) ((object_subpic_p) object_heap_lookup( &driver_data->subpic_heap, id ))
+#define CONTEXT(id) ((object_context_p) object_heap_lookup( &driver_data->context_heap, id ))
+
+
+//X error trap
+static int x11_error_code = 0;
+static int (*old_error_handler)(Display *, XErrorEvent *);
+
+static struct timeval inter_period = {0};
+static void psb_doframerate(int fps)
+{
+ struct timeval time_deta;
+
+ inter_period.tv_usec += 1000000 / fps;
+
+ /*recording how long it passed*/
+ if (inter_period.tv_usec >= 1000000) {
+ inter_period.tv_usec -= 1000000;
+ inter_period.tv_sec++;
+ }
+
+ gettimeofday(&time_deta, (struct timezone *)NULL);
+
+ time_deta.tv_usec = inter_period.tv_usec - time_deta.tv_usec;
+ time_deta.tv_sec = inter_period.tv_sec - time_deta.tv_sec;
+
+ if (time_deta.tv_usec < 0) {
+ time_deta.tv_usec += 1000000;
+ time_deta.tv_sec--;
+ }
+
+ if (time_deta.tv_sec < 0 || (time_deta.tv_sec == 0 && time_deta.tv_usec <= 0))
+ return;
+
+ select(0, NULL, NULL, NULL, &time_deta);
+}
+
+static uint32_t mask2shift(uint32_t mask)
+{
+ uint32_t shift = 0;
+ while ((mask & 0x1) == 0) {
+ mask = mask >> 1;
+ shift++;
+ }
+ return shift;
+}
+
+static VAStatus psb_putsurface_x11(
+ VADriverContextP ctx,
+ VASurfaceID surface,
+ Drawable draw, /* X Drawable */
+ short srcx,
+ short srcy,
+ unsigned short srcw,
+ unsigned short srch,
+ short destx,
+ short desty,
+ unsigned short destw,
+ unsigned short desth,
+ unsigned int flags /* de-interlacing flags */
+)
+{
+ INIT_DRIVER_DATA;
+ GC gc;
+ XImage *ximg = NULL;
+ Visual *visual;
+ unsigned short width, height;
+ int depth;
+ int x = 0, y = 0;
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ void *surface_data = NULL;
+ int ret;
+
+ uint32_t rmask = 0;
+ uint32_t gmask = 0;
+ uint32_t bmask = 0;
+
+ uint32_t rshift = 0;
+ uint32_t gshift = 0;
+ uint32_t bshift = 0;
+
+
+ if (srcw <= destw)
+ width = srcw;
+ else
+ width = destw;
+
+ if (srch <= desth)
+ height = srch;
+ else
+ height = desth;
+
+ object_surface_p obj_surface = SURFACE(surface);
+ if (NULL == obj_surface) {
+ vaStatus = VA_STATUS_ERROR_INVALID_SURFACE;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ psb_surface_p psb_surface = obj_surface->psb_surface;
+
+ psb__information_message("PutSurface: src w x h = %d x %d\n", srcw, srch);
+ psb__information_message("PutSurface: dest w x h = %d x %d\n", destw, desth);
+ psb__information_message("PutSurface: clipped w x h = %d x %d\n", width, height);
+
+ visual = DefaultVisual((Display *)ctx->native_dpy, ctx->x11_screen);
+ gc = XCreateGC((Display *)ctx->native_dpy, draw, 0, NULL);
+ depth = DefaultDepth((Display *)ctx->native_dpy, ctx->x11_screen);
+
+ if (TrueColor != visual->class) {
+ psb__error_message("PutSurface: Default visual of X display must be TrueColor.\n");
+ vaStatus = VA_STATUS_ERROR_UNKNOWN;
+ goto out;
+ }
+
+ ret = psb_buffer_map(&psb_surface->buf, &surface_data);
+ if (ret) {
+ vaStatus = VA_STATUS_ERROR_UNKNOWN;
+ goto out;
+ }
+
+ rmask = visual->red_mask;
+ gmask = visual->green_mask;
+ bmask = visual->blue_mask;
+
+ rshift = mask2shift(rmask);
+ gshift = mask2shift(gmask);
+ bshift = mask2shift(bmask);
+
+ psb__information_message("PutSurface: Pixel masks: R = %08x G = %08x B = %08x\n", rmask, gmask, bmask);
+ psb__information_message("PutSurface: Pixel shifts: R = %d G = %d B = %d\n", rshift, gshift, bshift);
+
+ ximg = XCreateImage((Display *)ctx->native_dpy, visual, depth, ZPixmap, 0, NULL, width, height, 32, 0);
+
+ if (ximg->byte_order == MSBFirst)
+ psb__information_message("PutSurface: XImage pixels has MSBFirst, %d bits / pixel\n", ximg->bits_per_pixel);
+ else
+ psb__information_message("PutSurface: XImage pixels has LSBFirst, %d bits / pixel\n", ximg->bits_per_pixel);
+
+ if (ximg->bits_per_pixel != 32) {
+ psb__error_message("PutSurface: Display uses %d bits/pixel which is not supported\n");
+ vaStatus = VA_STATUS_ERROR_UNKNOWN;
+ goto out;
+ }
+
+ void yuv2pixel(uint32_t * pixel, int y, int u, int v) {
+ int r, g, b;
+ /* Warning, magic values ahead */
+ r = y + ((351 * (v - 128)) >> 8);
+ g = y - (((179 * (v - 128)) + (86 * (u - 128))) >> 8);
+ b = y + ((444 * (u - 128)) >> 8);
+
+ if (r > 255) r = 255;
+ if (g > 255) g = 255;
+ if (b > 255) b = 255;
+ if (r < 0) r = 0;
+ if (g < 0) g = 0;
+ if (b < 0) b = 0;
+
+ *pixel = ((r << rshift) & rmask) | ((g << gshift) & gmask) | ((b << bshift) & bmask);
+ }
+ ximg->data = (char *) malloc(ximg->bytes_per_line * height);
+ if (NULL == ximg->data) {
+ vaStatus = VA_STATUS_ERROR_ALLOCATION_FAILED;
+ goto out;
+ }
+
+ uint8_t *src_y = surface_data + psb_surface->stride * srcy;
+ uint8_t *src_uv = surface_data + psb_surface->stride * (obj_surface->height + srcy / 2);
+
+ for (y = srcy; y < (srcy + height); y += 2) {
+ uint32_t *dest_even = (uint32_t *)(ximg->data + y * ximg->bytes_per_line);
+ uint32_t *dest_odd = (uint32_t *)(ximg->data + (y + 1) * ximg->bytes_per_line);
+ for (x = srcx; x < (srcx + width); x += 2) {
+ /* Y1 Y2 */
+ /* Y3 Y4 */
+ int y1 = *(src_y + x);
+ int y2 = *(src_y + x + 1);
+ int y3 = *(src_y + x + psb_surface->stride);
+ int y4 = *(src_y + x + psb_surface->stride + 1);
+
+ /* U V */
+ int u = *(src_uv + x);
+ int v = *(src_uv + x + 1);
+
+ yuv2pixel(dest_even++, y1, u, v);
+ yuv2pixel(dest_even++, y2, u, v);
+
+ yuv2pixel(dest_odd++, y3, u, v);
+ yuv2pixel(dest_odd++, y4, u, v);
+ }
+ src_y += psb_surface->stride * 2;
+ src_uv += psb_surface->stride;
+ }
+
+ XPutImage((Display *)ctx->native_dpy, draw, gc, ximg, 0, 0, destx, desty, width, height);
+ XFlush((Display *)ctx->native_dpy);
+
+out:
+ if (NULL != ximg)
+ XDestroyImage(ximg);
+ if (NULL != surface_data)
+ psb_buffer_unmap(&psb_surface->buf);
+
+ XFreeGC((Display *)ctx->native_dpy, gc);
+
+ return vaStatus;
+}
+
+void *psb_x11_output_init(VADriverContextP ctx)
+{
+ INIT_DRIVER_DATA;
+ psb_x11_output_p output = calloc(1, sizeof(psb_x11_output_s));
+
+ if (output == NULL) {
+ psb__error_message("Can't malloc memory\n");
+ return NULL;
+ }
+
+ if (getenv("PSB_VIDEO_PUTSURFACE_X11")) {
+ psb__information_message("Putsurface force to SW rendering\n");
+ driver_data->output_method = PSB_PUTSURFACE_X11;
+
+ return output;
+ }
+
+ psb_init_xvideo(ctx, output);
+
+ /* always init CTEXTURE and COVERLAY */
+ driver_data->coverlay = 1;
+ driver_data->color_key = 0x11;
+ driver_data->ctexture = 1;
+
+ if (IS_MFLD(driver_data) && /* force MFLD to use COVERLAY */
+ (driver_data->output_method == PSB_PUTSURFACE_OVERLAY)) {
+ psb__information_message("Use client overlay mode for post-processing\n");
+
+ driver_data->output_method = PSB_PUTSURFACE_COVERLAY;
+ }
+
+ if (getenv("PSB_VIDEO_TEXTURE") && output->textured_portID) {
+ psb__information_message("Putsurface force to use Textured Xvideo\n");
+ driver_data->output_method = PSB_PUTSURFACE_FORCE_TEXTURE;
+ }
+
+ if (getenv("PSB_VIDEO_OVERLAY") && output->overlay_portID) {
+ psb__information_message("Putsurface force to use Overlay Xvideo\n");
+ driver_data->output_method = PSB_PUTSURFACE_FORCE_OVERLAY;
+ }
+
+ if (getenv("PSB_VIDEO_CTEXTURE")) {
+ psb__information_message("Putsurface force to use Client Texture\n");
+ driver_data->output_method = PSB_PUTSURFACE_FORCE_CTEXTURE;
+ }
+
+ if (getenv("PSB_VIDEO_COVERLAY")) {
+ psb__information_message("Putsurface force to use Client Overlay\n");
+
+ driver_data->coverlay = 1;
+ driver_data->output_method = PSB_PUTSURFACE_FORCE_COVERLAY;
+ }
+
+ return output;
+}
+
+static int
+error_handler(Display *dpy, XErrorEvent *error)
+{
+ x11_error_code = error->error_code;
+ return 0;
+}
+
+void psb_x11_output_deinit(VADriverContextP ctx)
+{
+ psb_deinit_xvideo(ctx);
+}
+
+static void
+x11_trap_errors(void)
+{
+ x11_error_code = 0;
+ old_error_handler = XSetErrorHandler(error_handler);
+}
+
+static int
+x11_untrap_errors(void)
+{
+ XSetErrorHandler(old_error_handler);
+ return x11_error_code;
+}
+
+static int
+is_window(Display *dpy, Drawable drawable)
+{
+ XWindowAttributes wattr;
+
+ x11_trap_errors();
+ XGetWindowAttributes(dpy, drawable, &wattr);
+ return x11_untrap_errors() == 0;
+}
+
+static int pnw_check_output_method(VADriverContextP ctx, object_surface_p obj_surface, int width, int height, int destw, int desth, Drawable draw)
+{
+ INIT_DRIVER_DATA;
+ INIT_OUTPUT_PRIV;
+
+ if (driver_data->output_method == PSB_PUTSURFACE_FORCE_TEXTURE ||
+ driver_data->output_method == PSB_PUTSURFACE_FORCE_OVERLAY ||
+ driver_data->output_method == PSB_PUTSURFACE_FORCE_CTEXTURE ||
+ driver_data->output_method == PSB_PUTSURFACE_FORCE_COVERLAY) {
+ psb__information_message("Force to use %08x for PutSurface\n", driver_data->output_method);
+ return 0;
+ }
+
+ if (driver_data->overlay_auto_paint_color_key)
+ driver_data->output_method = PSB_PUTSURFACE_COVERLAY;
+
+ /* Avoid call is_window()/XGetWindowAttributes() every frame */
+ if (output->output_drawable_save != draw) {
+ output->output_drawable_save = draw;
+ if (!is_window(ctx->native_dpy, draw))
+ output->is_pixmap = 1;
+ else
+ output->is_pixmap = 0;
+ }
+
+ if (output->is_pixmap == 1 || (IS_MRST(driver_data) && obj_surface->subpic_count > 0) || width >= 2048 || height >= 2048 ||
+ /*FIXME: overlay path can't handle subpicture scaling. when surface size > dest box, fallback to texblit.*/
+ (IS_MFLD(driver_data) && obj_surface->subpic_count && ((width > destw) || (height > desth)))) {
+ psb__information_message("Putsurface fall back to use Client Texture\n");
+
+ driver_data->output_method = PSB_PUTSURFACE_CTEXTURE;
+ }
+
+ return 0;
+}
+
+VAStatus psb_PutSurface(
+ VADriverContextP ctx,
+ VASurfaceID surface,
+ void *drawable, /* X Drawable */
+ short srcx,
+ short srcy,
+ unsigned short srcw,
+ unsigned short srch,
+ short destx,
+ short desty,
+ unsigned short destw,
+ unsigned short desth,
+ VARectangle *cliprects, /* client supplied clip list */
+ unsigned int number_cliprects, /* number of clip rects in the clip list */
+ unsigned int flags /* de-interlacing flags */
+)
+{
+ INIT_DRIVER_DATA;
+ object_surface_p obj_surface;
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ Drawable draw = (Drawable)drawable;
+ obj_surface = SURFACE(surface);
+
+ if (NULL == obj_surface) {
+ vaStatus = VA_STATUS_ERROR_INVALID_SURFACE;
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+
+ if (driver_data->dummy_putsurface) {
+ psb__information_message("vaPutSurface: dummy mode, return directly\n");
+ return VA_STATUS_SUCCESS;
+ }
+
+ if (driver_data->output_method == PSB_PUTSURFACE_X11) {
+ psb_putsurface_x11(ctx, surface, draw, srcx, srcy, srcw, srch,
+ destx, desty, destw, desth, flags);
+ return VA_STATUS_SUCCESS;
+ }
+
+ if (driver_data->fixed_fps > 0) {
+ if ((inter_period.tv_sec == 0) && (inter_period.tv_usec == 0))
+ gettimeofday(&inter_period, (struct timezone *)NULL);
+
+ psb_doframerate(driver_data->fixed_fps);
+ }
+
+ pnw_check_output_method(ctx, obj_surface, srcw, srch, destw, desth, draw);
+
+ pthread_mutex_lock(&driver_data->output_mutex);
+
+ if ((driver_data->output_method == PSB_PUTSURFACE_CTEXTURE) ||
+ (driver_data->output_method == PSB_PUTSURFACE_FORCE_CTEXTURE)) {
+ psb__information_message("Using client Texture for PutSurface\n");
+ psb_putsurface_ctexture(ctx, surface, draw,
+ srcx, srcy, srcw, srch,
+ destx, desty, destw, desth,
+ flags);
+ } else if ((driver_data->output_method == PSB_PUTSURFACE_COVERLAY) ||
+ (driver_data->output_method == PSB_PUTSURFACE_FORCE_COVERLAY)) {
+ psb__information_message("Using client Overlay for PutSurface\n");
+
+ srcw = srcw <= 1920 ? srcw : 1920;
+
+ psb_putsurface_coverlay(
+ ctx, surface, draw,
+ srcx, srcy, srcw, srch,
+ destx, desty, destw, desth,
+ cliprects, number_cliprects, flags);
+ } else
+ psb_putsurface_xvideo(
+ ctx, surface, draw,
+ srcx, srcy, srcw, srch,
+ destx, desty, destw, desth,
+ cliprects, number_cliprects, flags);
+ pthread_mutex_unlock(&driver_data->output_mutex);
+
+ driver_data->frame_count++;
+
+ return VA_STATUS_SUCCESS;
+}
diff --git a/src/x11/psb_x11.h b/src/x11/psb_x11.h
new file mode 100644
index 0000000..fff7be0
--- /dev/null
+++ b/src/x11/psb_x11.h
@@ -0,0 +1,162 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ * Shengquan Yuan <shengquan.yuan@intel.com>
+ * Zhaohan Ren <zhaohan.ren@intel.com>
+ *
+ */
+
+
+
+#ifndef _PSB_X11_H_
+#define _PSB_X11_H_
+
+#include <X11/Xutil.h>
+
+#include <inttypes.h>
+#include "psb_drv_video.h"
+#include "psb_drm.h"
+#include "psb_surface.h"
+#include "psb_output.h"
+#include "psb_surface_ext.h"
+
+#include <va/va.h>
+
+#define USING_OVERLAY_PORT 1
+#define USING_TEXTURE_PORT 2
+
+typedef struct {
+ /*src coordinate*/
+ short srcx;
+ short srcy;
+ unsigned short sWidth;
+ unsigned short sHeight;
+ /*dest coordinate*/
+ short destx;
+ short desty;
+ unsigned short dWidth;
+ unsigned short dHeight;
+} psb_overlay_rect_t, *psb_overlay_rect_p;
+
+typedef struct {
+ int i32Left;
+ int i32Top;
+ int i32Right;
+ int i32Bottom;
+ unsigned int ui32Width;
+ unsigned int ui32Height;
+} psb_x11_win_t;
+
+typedef struct x11_rect_list {
+ psb_x11_win_t rect;
+ struct x11_rect_list * next;
+} psb_x11_clip_list_t;
+
+typedef struct _psb_x11_output_s {
+ /* information for xvideo */
+ XvPortID textured_portID;
+ XvPortID overlay_portID;
+ XvImage *textured_xvimage;
+ XvImage *overlay_xvimage;
+ PsbXvVAPutSurfaceRec imgdata_vasrf;
+ GC gc;
+ Drawable output_drawable;
+ int is_pixmap;
+ Drawable output_drawable_save;
+ GC extend_gc;
+ Drawable extend_drawable;
+ unsigned short output_width;
+ unsigned short output_height;
+ int using_port;
+
+ int bIsVisible;
+ psb_x11_win_t winRect;
+ psb_x11_clip_list_t *pClipBoxList;
+ unsigned int ui32NumClipBoxList;
+ unsigned int frame_count;
+
+ int ignore_dpm;
+
+ /*for video rotation with overlay adaptor*/
+ psb_surface_p rotate_surface;
+ int rotate_surfaceID;
+ int rotate;
+ unsigned int sprite_enabled;
+
+} psb_x11_output_s, *psb_x11_output_p;
+
+VAStatus psb_putsurface_coverlay(
+ VADriverContextP ctx,
+ VASurfaceID surface,
+ Drawable draw, /* X Drawable */
+ short srcx,
+ short srcy,
+ unsigned short srcw,
+ unsigned short srch,
+ short destx,
+ short desty,
+ unsigned short destw,
+ unsigned short desth,
+ VARectangle *cliprects, /* client supplied clip list */
+ unsigned int number_cliprects, /* number of clip rects in the clip list */
+ unsigned int flags /* de-interlacing flags */
+);
+
+
+VAStatus psb_putsurface_xvideo(
+ VADriverContextP ctx,
+ VASurfaceID surface,
+ Drawable draw,
+ short srcx,
+ short srcy,
+ unsigned short srcw,
+ unsigned short srch,
+ short destx,
+ short desty,
+ unsigned short destw,
+ unsigned short desth,
+ VARectangle *cliprects, /* client supplied clip list */
+ unsigned int number_cliprects, /* number of clip rects in the clip list */
+ unsigned int flags /* de-interlacing flags */
+);
+
+VAStatus psb_putsurface_ctexture(
+ VADriverContextP ctx,
+ VASurfaceID surface,
+ Drawable draw,
+ short srcx,
+ short srcy,
+ unsigned short srcw,
+ unsigned short srch,
+ short destx,
+ short desty,
+ unsigned short destw,
+ unsigned short desth,
+ unsigned int flags /* de-interlacing flags */
+);
+
+VAStatus psb_init_xvideo(VADriverContextP ctx, psb_x11_output_p output);
+VAStatus psb_deinit_xvideo(VADriverContextP ctx);
+
+#endif
diff --git a/src/x11/psb_xrandr.c b/src/x11/psb_xrandr.c
new file mode 100644
index 0000000..0d7edc6
--- /dev/null
+++ b/src/x11/psb_xrandr.c
@@ -0,0 +1,879 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ * Jason Hu <jason.hu@intel.com>
+ * Zhaohan Ren <zhaohan.ren@intel.com>
+ *
+ */
+
+
+#include "psb_xrandr.h"
+#include "psb_x11.h"
+
+/* Global variable for xrandr */
+psb_xrandr_info_p psb_xrandr_info;
+
+#define INIT_DRIVER_DATA psb_driver_data_p driver_data = (psb_driver_data_p) ctx->pDriverData
+#define INIT_OUTPUT_PRIV psb_x11_output_p output = (psb_x11_output_p)(((psb_driver_data_p)ctx->pDriverData)->ws_priv)
+
+#define MWM_HINTS_DECORATIONS (1L << 1)
+typedef struct {
+ int flags;
+ int functions;
+ int decorations;
+ int input_mode;
+ int status;
+} MWMHints;
+
+char* location2string(psb_xrandr_location location)
+{
+ switch (location) {
+ case ABOVE:
+ return "ABOVE";
+ break;
+ case BELOW:
+ return "BELOW";
+ break;
+ case LEFT_OF:
+ return "LEFT_OF";
+ break;
+ case RIGHT_OF:
+ return "RIGHT_OF";
+ break;
+ default:
+ return "NORMAL";
+ break;
+ }
+}
+
+static int RRrotation2VArotation(Rotation rotation)
+{
+ switch (rotation) {
+ case RR_Rotate_0:
+ return VA_ROTATION_NONE;
+ case RR_Rotate_90:
+ return VA_ROTATION_270;
+ case RR_Rotate_180:
+ return VA_ROTATION_180;
+ case RR_Rotate_270:
+ return VA_ROTATION_90;
+ }
+
+ return 0;
+}
+static psb_xrandr_crtc_p get_crtc_by_id(RRCrtc crtc_id)
+{
+ psb_xrandr_crtc_p p_crtc;
+ for (p_crtc = psb_xrandr_info->crtc_head; p_crtc; p_crtc = p_crtc->next)
+ if (p_crtc->crtc_id == crtc_id)
+ return p_crtc;
+ return NULL;
+}
+
+static void psb_xrandr_hdmi_property(VADriverContextP ctx)
+{
+ INIT_DRIVER_DATA;
+ Atom *props;
+ Atom actual_type;
+ XRRPropertyInfo *propinfo;
+ int i, nprop, actual_format;
+ unsigned long nitems, bytes_after;
+ char* prop_name;
+ unsigned char* prop;
+
+ /* Check HDMI properties */
+ props = XRRListOutputProperties(psb_xrandr_info->dpy, psb_xrandr_info->extend_output->output_id, &nprop);
+ if (!props) {
+ psb__error_message("Xrandr: XRRListOutputProperties failed\n", psb_xrandr_info->extend_output->output_id);
+ return;
+ }
+
+ psb__information_message("Xrandr: extend output %08x has %d properties\n", psb_xrandr_info->extend_output->output_id, nprop);
+
+ for (i = 0; i < nprop; i++) {
+ XRRGetOutputProperty(psb_xrandr_info->dpy, psb_xrandr_info->extend_output->output_id, props[i],
+ 0, 100, False, False, AnyPropertyType, &actual_type, &actual_format,
+ &nitems, &bytes_after, &prop);
+
+ propinfo = XRRQueryOutputProperty(psb_xrandr_info->dpy, psb_xrandr_info->extend_output->output_id, props[i]);
+ if (!propinfo) {
+ psb__error_message("Xrandr: get output %08x prop %08x failed\n", psb_xrandr_info->extend_output->output_id, props[i]);
+ return;
+ }
+
+ prop_name = XGetAtomName(psb_xrandr_info->dpy, props[i]);
+
+ /* Currently all properties are XA_INTEGER, 32 */
+ if (!strcmp(prop_name, "ExtVideoMode")) {
+ psb_xrandr_info->hdmi_extvideo_prop->ExtVideoMode = (int)((INT32*)prop)[0];
+ psb__information_message("Xrandr: ExtVideoMode (%08x)\n", psb_xrandr_info->hdmi_extvideo_prop->ExtVideoMode);
+ } else if (!strcmp(prop_name, "ExtVideoMode_Xres")) {
+ psb_xrandr_info->hdmi_extvideo_prop->ExtVideoMode_XRes = (int)((INT32*)prop)[0];
+ psb__information_message("Xrandr: ExtVideoMode_XRes (%08x)\n", psb_xrandr_info->hdmi_extvideo_prop->ExtVideoMode_XRes);
+ } else if (!strcmp(prop_name, "ExtVideoMode_Yres")) {
+ psb_xrandr_info->hdmi_extvideo_prop->ExtVideoMode_YRes = (int)((INT32*)prop)[0];
+ psb__information_message("Xrandr: ExtVideoMode_YRes (%08x)\n", psb_xrandr_info->hdmi_extvideo_prop->ExtVideoMode_YRes);
+ } else if (!strcmp(prop_name, "ExtVideoMode_X_Offset")) {
+ psb_xrandr_info->hdmi_extvideo_prop->ExtVideoMode_X_Offset = (int)((INT32*)prop)[0];
+ psb__information_message("Xrandr: ExtVideoMode_X_Offset (%08x)\n", psb_xrandr_info->hdmi_extvideo_prop->ExtVideoMode_X_Offset);
+ } else if (!strcmp(prop_name, "ExtVideoMode_Y_Offset")) {
+ psb_xrandr_info->hdmi_extvideo_prop->ExtVideoMode_Y_Offset = (int)((INT32*)prop)[0];
+ psb__information_message("Xrandr: ExtVideoMode_Y_Offset (%08x)\n", psb_xrandr_info->hdmi_extvideo_prop->ExtVideoMode_Y_Offset);
+ } else if (!strcmp(prop_name, "ExtVideoMode_Center")) {
+ psb_xrandr_info->hdmi_extvideo_prop->ExtVideoMode_Center = (int)((INT32*)prop)[0];
+ psb__information_message("Xrandr: ExtVideoMode_Center (%08x)\n", psb_xrandr_info->hdmi_extvideo_prop->ExtVideoMode_Center);
+ } else if (!strcmp(prop_name, "ExtVideoMode_SubTitle")) {
+ psb_xrandr_info->hdmi_extvideo_prop->ExtVideoMode_SubTitle = (int)((INT32*)prop)[0];
+ psb__information_message("Xrandr: ExtVideoMode_SubTitle (%08x)\n", psb_xrandr_info->hdmi_extvideo_prop->ExtVideoMode_SubTitle);
+ } else if (!strcmp(prop_name, "ExtDesktopMode")) {
+ if ((psb_xrandr_info->hdmi_extvideo_prop->ExtDesktopMode != EXTENDEDVIDEO) &&
+ ((int)((INT32*)prop)[0] == EXTENDEDVIDEO)) {
+ driver_data->xrandr_dirty |= PSB_NEW_EXTVIDEO;
+ }
+ psb_xrandr_info->hdmi_extvideo_prop->ExtDesktopMode = (int)((INT32*)prop)[0];
+ psb__information_message("Xrandr: ExtDesktopMode (%08x)\n", psb_xrandr_info->hdmi_extvideo_prop->ExtDesktopMode);
+ } else if (!strcmp(prop_name, "OverscanMode")) {
+ psb_xrandr_info->hdmi_extvideo_prop->OverscanMode = (int)((INT32*)prop)[0];
+ psb__information_message("Xrandr: OverscanMode (%08x)\n", psb_xrandr_info->hdmi_extvideo_prop->OverscanMode);
+ } else if (!strcmp(prop_name, "PANELFITTING")) {
+ psb_xrandr_info->hdmi_extvideo_prop->PANELFITTING = (int)((INT32*)prop)[0];
+ psb__information_message("Xrandr: PANELFITTING (%08x)\n", psb_xrandr_info->hdmi_extvideo_prop->PANELFITTING);
+ }
+ }
+}
+
+static void psb_xrandr_mipi_location_init(psb_output_device_mode output_device_mode)
+{
+ psb_xrandr_crtc_p local_crtc, extend_crtc;
+
+ switch (output_device_mode) {
+ case SINGLE_MIPI0:
+ psb_xrandr_info->hdmi_extvideo_prop->ExtDesktopMode = SINGLE;
+ psb_xrandr_info->local_crtc[0]->location = NORMAL;
+ return;
+ case SINGLE_MIPI1:
+ psb_xrandr_info->hdmi_extvideo_prop->ExtDesktopMode = SINGLE;
+ psb_xrandr_info->local_crtc[1]->location = NORMAL;
+ return;
+ case MIPI0_MIPI1:
+ local_crtc = psb_xrandr_info->local_crtc[0];
+ extend_crtc = psb_xrandr_info->local_crtc[1];
+ break;
+ default:
+ break;
+ }
+
+ if (!local_crtc || !extend_crtc) {
+ psb__error_message("Failed to get crtc info\n");
+ return;
+ }
+
+ /* MIPI1 clone MIPI0 */
+ if (local_crtc->x == 0 && local_crtc->y == 0 &&
+ extend_crtc->x == 0 && extend_crtc->y == 0) {
+ psb_xrandr_info->hdmi_extvideo_prop->ExtDesktopMode = CLONE;
+ extend_crtc->location = NORMAL;
+ } else {
+ /* MIPI1 entend MIPI0 */
+ psb_xrandr_info->hdmi_extvideo_prop->ExtDesktopMode = EXTENDED;
+ if (local_crtc->y == extend_crtc->height)
+ extend_crtc->location = ABOVE;
+ else if (extend_crtc->y == local_crtc->height)
+ extend_crtc->location = BELOW;
+ else if (local_crtc->x == extend_crtc->width)
+ extend_crtc->location = LEFT_OF;
+ else if (extend_crtc->x == local_crtc->width)
+ extend_crtc->location = RIGHT_OF;
+ }
+}
+
+static void psb_xrandr_hdmi_location_init(psb_output_device_mode output_device_mode)
+{
+ psb_xrandr_crtc_p local_crtc, extend_crtc;
+
+ switch (output_device_mode) {
+ case SINGLE_HDMI:
+ psb_xrandr_info->hdmi_extvideo_prop->ExtDesktopMode = SINGLE;
+ psb_xrandr_info->extend_crtc->location = NORMAL;
+ return;
+ case MIPI0_HDMI:
+ case MIPI0_MIPI1_HDMI:
+ local_crtc = psb_xrandr_info->local_crtc[0];
+ extend_crtc = psb_xrandr_info->extend_crtc;
+ break;
+ case MIPI1_HDMI:
+ local_crtc = psb_xrandr_info->local_crtc[1];
+ extend_crtc = psb_xrandr_info->extend_crtc;
+ break;
+ default:
+ break;
+ }
+
+ if (!local_crtc || !extend_crtc) {
+ psb__error_message("Failed to get crtc info\n");
+ return;
+ }
+
+ if (psb_xrandr_info->hdmi_extvideo_prop->ExtDesktopMode == CLONE)
+ psb_xrandr_info->extend_crtc->location = NORMAL;
+
+ if (psb_xrandr_info->hdmi_extvideo_prop->ExtDesktopMode == EXTENDED
+ || psb_xrandr_info->hdmi_extvideo_prop->ExtDesktopMode == EXTENDEDVIDEO) {
+ if (local_crtc->y == extend_crtc->height)
+ psb_xrandr_info->extend_crtc->location = ABOVE;
+ else if (extend_crtc->y == local_crtc->height)
+ psb_xrandr_info->extend_crtc->location = BELOW;
+ else if (local_crtc->x == extend_crtc->width)
+ psb_xrandr_info->extend_crtc->location = LEFT_OF;
+ else if (extend_crtc->x == local_crtc->width)
+ psb_xrandr_info->extend_crtc->location = RIGHT_OF;
+ }
+}
+
+static void psb_xrandr_coordinate_init(VADriverContextP ctx)
+{
+ INIT_DRIVER_DATA;
+ psb_xrandr_output_p p_output;
+
+ psb_xrandr_info->output_changed = 1;
+
+ for (p_output = psb_xrandr_info->output_head; p_output; p_output = p_output->next) {
+ if (p_output->connection == RR_Connected) {
+ if (!strcmp(p_output->name, "MIPI0")) {
+ if (p_output->crtc) {
+ psb_xrandr_info->mipi0_enabled = 1;
+ psb_xrandr_info->local_output[0] = p_output;
+ psb_xrandr_info->local_crtc[0] = p_output->crtc;
+ if (psb_xrandr_info->mipi0_rotation != p_output->crtc->rotation) {
+ psb_xrandr_info->mipi0_rotation = p_output->crtc->rotation;
+ driver_data->mipi0_rotation = RRrotation2VArotation(psb_xrandr_info->mipi0_rotation);
+ driver_data->xrandr_dirty |= PSB_NEW_ROTATION;
+ }
+ } else {
+ psb_xrandr_info->mipi0_enabled = 0;
+ psb_xrandr_info->local_output[0] = NULL;
+ psb_xrandr_info->local_crtc[0] = NULL;
+ }
+ } else if (!strcmp(p_output->name, "MIPI1")) {
+ if (p_output->crtc) {
+ psb_xrandr_info->mipi1_enabled = 1;
+ psb_xrandr_info->local_output[1] = p_output;
+ psb_xrandr_info->local_crtc[1] = p_output->crtc;
+ if (psb_xrandr_info->mipi1_rotation != p_output->crtc->rotation) {
+ psb_xrandr_info->mipi1_rotation = p_output->crtc->rotation;
+ driver_data->mipi1_rotation = RRrotation2VArotation(psb_xrandr_info->mipi1_rotation);
+ driver_data->xrandr_dirty |= PSB_NEW_ROTATION;
+ }
+ } else {
+ psb_xrandr_info->mipi1_enabled = 0;
+ psb_xrandr_info->local_output[1] = NULL;
+ psb_xrandr_info->local_crtc[1] = NULL;
+ }
+ } else if (!strcmp(p_output->name, "TMDS0-1")) {
+ if (p_output->crtc) {
+ psb_xrandr_info->hdmi_enabled = 1;
+ psb_xrandr_info->extend_output = p_output;
+ psb_xrandr_info->extend_crtc = p_output->crtc;
+ if (psb_xrandr_info->hdmi_rotation != p_output->crtc->rotation) {
+ psb_xrandr_info->hdmi_rotation = p_output->crtc->rotation;
+ driver_data->hdmi_rotation = RRrotation2VArotation(psb_xrandr_info->hdmi_rotation);
+ driver_data->xrandr_dirty |= PSB_NEW_ROTATION;
+ }
+ } else {
+ psb_xrandr_info->hdmi_enabled = 0;
+ psb_xrandr_info->extend_output = NULL;
+ psb_xrandr_info->extend_crtc = NULL;
+ }
+ } else if (!strcmp(p_output->name, "LVDS0") && IS_MRST(driver_data)) {
+ if (p_output->crtc) {
+ psb_xrandr_info->lvds0_enabled = 1;
+ psb_xrandr_info->local_output[0] = p_output;
+ psb_xrandr_info->local_crtc[0] = p_output->crtc;
+ } else {
+ psb_xrandr_info->lvds0_enabled = 0;
+ psb_xrandr_info->local_output[0] = NULL;
+ psb_xrandr_info->local_crtc[0] = NULL;
+ }
+ }
+ }
+ }
+
+ /* for MRST */
+ if (IS_MRST(driver_data) && psb_xrandr_info->lvds0_enabled) {
+ psb_xrandr_info->hdmi_extvideo_prop->ExtDesktopMode = SINGLE;
+ psb_xrandr_info->output_device_mode = SINGLE_LVDS0;
+ psb_xrandr_info->local_crtc[0]->location = NORMAL;
+ return;
+ }
+
+ /* HDMI + either MIPI0 or MIPI1 */
+ if (psb_xrandr_info->hdmi_enabled) {
+
+ /* Get HDMI properties if it is enabled*/
+ psb_xrandr_hdmi_property(ctx);
+
+ /* Only HDMI */
+ if (!psb_xrandr_info->mipi0_enabled && !psb_xrandr_info->mipi1_enabled)
+ psb_xrandr_info->output_device_mode = SINGLE_HDMI;
+
+ /* HDMI + MIPI0 */
+ if (psb_xrandr_info->mipi0_enabled && !psb_xrandr_info->mipi1_enabled)
+ psb_xrandr_info->output_device_mode = MIPI0_HDMI;
+
+ /* HDMI + MIPI1 */
+ if (!psb_xrandr_info->mipi0_enabled && psb_xrandr_info->mipi1_enabled)
+ psb_xrandr_info->output_device_mode = MIPI1_HDMI;
+
+ /* HDMI + MIPI0 + MIPI1 */
+ if (psb_xrandr_info->mipi0_enabled && psb_xrandr_info->mipi1_enabled)
+ psb_xrandr_info->output_device_mode = MIPI0_MIPI1_HDMI;
+
+ psb_xrandr_hdmi_location_init(psb_xrandr_info->output_device_mode);
+ } else {
+ /* MIPI0 + MIPI1 */
+ if (psb_xrandr_info->mipi0_enabled && psb_xrandr_info->mipi1_enabled) {
+ psb_xrandr_info->output_device_mode = MIPI0_MIPI1;
+ } else {
+ /* MIPI0/MIPI1 */
+ if (psb_xrandr_info->mipi0_enabled)
+ psb_xrandr_info->output_device_mode = SINGLE_MIPI0;
+ else if (psb_xrandr_info->mipi1_enabled)
+ psb_xrandr_info->output_device_mode = SINGLE_MIPI1;
+ }
+
+ psb_xrandr_mipi_location_init(psb_xrandr_info->output_device_mode);
+ }
+}
+
+void psb_xrandr_refresh(VADriverContextP ctx)
+{
+ int i;
+
+ XRROutputInfo *output_info;
+ XRRCrtcInfo *crtc_info;
+
+ psb_xrandr_crtc_p p_crtc;
+ psb_xrandr_output_p p_output;
+
+ pthread_mutex_lock(&psb_xrandr_info->psb_extvideo_mutex);
+
+ //deinit crtc
+ if (psb_xrandr_info->crtc_head) {
+ while (psb_xrandr_info->crtc_head) {
+ psb_xrandr_info->crtc_tail = psb_xrandr_info->crtc_head->next;
+
+ free(psb_xrandr_info->crtc_head);
+
+ psb_xrandr_info->crtc_head = psb_xrandr_info->crtc_tail;
+ }
+ psb_xrandr_info->crtc_head = psb_xrandr_info->crtc_tail = NULL;
+ }
+
+ for (i = 0; i < psb_xrandr_info->res->ncrtc; i++) {
+ crtc_info = XRRGetCrtcInfo(psb_xrandr_info->dpy, psb_xrandr_info->res, psb_xrandr_info->res->crtcs[i]);
+ if (crtc_info) {
+ p_crtc = (psb_xrandr_crtc_p)calloc(1, sizeof(psb_xrandr_crtc_s));
+ if (!p_crtc) {
+ psb__error_message("output of memory\n");
+ return;
+ }
+
+ if (i == 0)
+ psb_xrandr_info->crtc_head = psb_xrandr_info->crtc_tail = p_crtc;
+
+ p_crtc->crtc_id = psb_xrandr_info->res->crtcs[i];
+ p_crtc->x = crtc_info->x;
+ p_crtc->y = crtc_info->y;
+ p_crtc->width = crtc_info->width;
+ p_crtc->height = crtc_info->height;
+ p_crtc->crtc_mode = crtc_info->mode;
+ p_crtc->noutput = crtc_info->noutput;
+ p_crtc->rotation = crtc_info->rotation;
+
+ psb_xrandr_info->crtc_tail->next = p_crtc;
+ p_crtc->next = NULL;
+ psb_xrandr_info->crtc_tail = p_crtc;
+ } else {
+ psb__error_message("failed to get crtc_info\n");
+ pthread_mutex_unlock(&psb_xrandr_info->psb_extvideo_mutex);
+ return;
+ }
+ }
+
+ //deinit output
+ if (psb_xrandr_info->output_head) {
+ while (psb_xrandr_info->output_head) {
+ psb_xrandr_info->output_tail = psb_xrandr_info->output_head->next;
+
+ free(psb_xrandr_info->output_head);
+
+ psb_xrandr_info->output_head = psb_xrandr_info->output_tail;
+ }
+ psb_xrandr_info->output_head = psb_xrandr_info->output_tail = NULL;
+ }
+#if 0
+ //destroy the full-screen window
+ //FIXME: commited out for X Error message: BadDrawable, need more investigation
+ if (va_output) {
+ if (va_output->extend_drawable) {
+ XDestroyWindow(ctx->native_dpy, va_output->extend_drawable);
+ va_output->extend_drawable = 0;
+ texture_priv->extend_dri_init_flag = 0;
+ }
+ }
+#endif
+ for (i = 0; i < psb_xrandr_info->res->noutput; i++) {
+ output_info = XRRGetOutputInfo(psb_xrandr_info->dpy, psb_xrandr_info->res, psb_xrandr_info->res->outputs[i]);
+ if (output_info) {
+ p_output = (psb_xrandr_output_p)calloc(1, sizeof(psb_xrandr_output_s));
+ if (!p_output) {
+ psb__error_message("output of memory\n");
+ return;
+ }
+
+ if (i == 0)
+ psb_xrandr_info->output_head = psb_xrandr_info->output_tail = p_output;
+
+ p_output->output_id = psb_xrandr_info->res->outputs[i];
+
+ p_output->connection = output_info->connection;
+ if (p_output->connection == RR_Connected)
+ psb_xrandr_info->nconnected_output++;
+
+ strcpy(p_output->name, output_info->name);
+
+ if (output_info->crtc)
+ p_output->crtc = get_crtc_by_id(output_info->crtc);
+ else
+ p_output->crtc = NULL;
+
+ psb_xrandr_info->output_tail->next = p_output;
+ p_output->next = NULL;
+ psb_xrandr_info->output_tail = p_output;
+ } else {
+ psb__error_message("failed to get output_info\n");
+ pthread_mutex_unlock(&psb_xrandr_info->psb_extvideo_mutex);
+ return;
+ }
+ }
+
+ psb_xrandr_coordinate_init(ctx);
+ pthread_mutex_unlock(&psb_xrandr_info->psb_extvideo_mutex);
+}
+
+static Bool
+outputChangePredicate(Display *display, XEvent *event, char *args)
+{
+ int event_base, error_base;
+
+ XRRQueryExtension(psb_xrandr_info->dpy, &event_base, &error_base);
+ return ((event->type == event_base + RRNotify_OutputChange) ||
+ ((event->type == ClientMessage) &&
+ (((XClientMessageEvent*)event)->message_type == psb_xrandr_info->psb_exit_atom)));
+}
+
+void psb_xrandr_thread(void* arg)
+{
+ VADriverContextP ctx = (VADriverContextP)arg;
+ INIT_DRIVER_DATA;
+ int event_base, error_base;
+ XEvent event;
+ XRRQueryExtension(psb_xrandr_info->dpy, &event_base, &error_base);
+ XRRSelectInput(psb_xrandr_info->dpy, psb_xrandr_info->root, RRScreenChangeNotifyMask | RRCrtcChangeNotifyMask | RROutputChangeNotifyMask | RROutputPropertyNotifyMask);
+ psb__information_message("Xrandr: psb xrandr thread start\n");
+
+ while (1) {
+ if (XCheckIfEvent(psb_xrandr_info->dpy, (XEvent *)&event, outputChangePredicate, NULL)) {
+ if (event.type == ClientMessage) {
+ psb__information_message("Xrandr: receive ClientMessage event, thread should exit\n");
+ XClientMessageEvent *evt;
+ evt = (XClientMessageEvent*) & event;
+ if (evt->message_type == psb_xrandr_info->psb_exit_atom) {
+ psb__information_message("Xrandr: xrandr thread exit safely\n");
+ pthread_exit(NULL);
+ }
+ }
+ switch (event.type - event_base) {
+ case RRNotify_OutputChange:
+ XRRUpdateConfiguration(&event);
+ psb__information_message("Xrandr: receive RRNotify_OutputChange event, refresh output/crtc info\n");
+ driver_data->xrandr_update = 1;
+ psb_xrandr_refresh(ctx);
+ break;
+ default:
+ break;
+ }
+ }
+ usleep(200000);
+ }
+}
+
+Window psb_xrandr_create_full_screen_window(unsigned int destx, unsigned int desty, unsigned int destw, unsigned int desth)
+{
+ int x, y, width, height;
+ Window win;
+
+ x = psb_xrandr_info->extend_crtc->x;
+ y = psb_xrandr_info->extend_crtc->y;
+ width = psb_xrandr_info->extend_crtc->width;
+ height = psb_xrandr_info->extend_crtc->height;
+
+ if (destw == 0 || desth == 0) {
+ destw = width;
+ desth = height;
+ }
+ win = XCreateSimpleWindow(psb_xrandr_info->dpy, DefaultRootWindow(psb_xrandr_info->dpy), destx, desty, destw, desth, 0, 0, 0);
+
+ MWMHints mwmhints;
+ Atom MOTIF_WM_HINTS;
+
+ mwmhints.flags = MWM_HINTS_DECORATIONS;
+ mwmhints.decorations = 0; /* MWM_DECOR_BORDER */
+ MOTIF_WM_HINTS = XInternAtom(psb_xrandr_info->dpy, "_MOTIF_WM_HINTS", False);
+ XChangeProperty(psb_xrandr_info->dpy, win, MOTIF_WM_HINTS, MOTIF_WM_HINTS, sizeof(long) * 8,
+ PropModeReplace, (unsigned char*) &mwmhints, sizeof(mwmhints) / sizeof(long));
+
+ XSetWindowAttributes attributes;
+ attributes.override_redirect = 1;
+ unsigned long valuemask;
+ valuemask = CWOverrideRedirect ;
+ XChangeWindowAttributes(psb_xrandr_info->dpy, win, valuemask, &attributes);
+
+ XMapWindow(psb_xrandr_info->dpy, win);
+ XFlush(psb_xrandr_info->dpy);
+ return win;
+}
+
+int psb_xrandr_hdmi_enabled()
+{
+ int ret;
+ pthread_mutex_lock(&psb_xrandr_info->psb_extvideo_mutex);
+ ret = psb_xrandr_info->hdmi_enabled;
+ pthread_mutex_unlock(&psb_xrandr_info->psb_extvideo_mutex);
+ return ret;
+}
+
+int psb_xrandr_mipi0_enabled()
+{
+ int ret;
+ pthread_mutex_lock(&psb_xrandr_info->psb_extvideo_mutex);
+ ret = psb_xrandr_info->mipi0_enabled;
+ pthread_mutex_unlock(&psb_xrandr_info->psb_extvideo_mutex);
+ return ret;
+}
+
+int psb_xrandr_mipi1_enabled()
+{
+ int ret;
+ pthread_mutex_lock(&psb_xrandr_info->psb_extvideo_mutex);
+ ret = psb_xrandr_info->mipi1_enabled;
+ pthread_mutex_unlock(&psb_xrandr_info->psb_extvideo_mutex);
+ return ret;
+}
+
+int psb_xrandr_single_mode()
+{
+ int ret;
+ pthread_mutex_lock(&psb_xrandr_info->psb_extvideo_mutex);
+ ret = (psb_xrandr_info->hdmi_extvideo_prop->ExtDesktopMode == SINGLE) ? 1 : 0;
+ pthread_mutex_unlock(&psb_xrandr_info->psb_extvideo_mutex);
+ return ret;
+}
+
+int psb_xrandr_clone_mode()
+{
+ int ret;
+ pthread_mutex_lock(&psb_xrandr_info->psb_extvideo_mutex);
+ ret = (psb_xrandr_info->hdmi_extvideo_prop->ExtDesktopMode == CLONE) ? 1 : 0;
+ pthread_mutex_unlock(&psb_xrandr_info->psb_extvideo_mutex);
+ return ret;
+}
+
+int psb_xrandr_extend_mode()
+{
+ int ret;
+ pthread_mutex_lock(&psb_xrandr_info->psb_extvideo_mutex);
+ ret = (psb_xrandr_info->hdmi_extvideo_prop->ExtDesktopMode == EXTENDED) ? 1 : 0;
+ pthread_mutex_unlock(&psb_xrandr_info->psb_extvideo_mutex);
+ return ret;
+}
+
+int psb_xrandr_extvideo_mode()
+{
+ int ret;
+ pthread_mutex_lock(&psb_xrandr_info->psb_extvideo_mutex);
+ ret = (psb_xrandr_info->hdmi_extvideo_prop->ExtDesktopMode == EXTENDEDVIDEO) ? 1 : 0;
+ pthread_mutex_unlock(&psb_xrandr_info->psb_extvideo_mutex);
+ return ret;
+}
+
+int psb_xrandr_outputchanged()
+{
+ int ret;
+ pthread_mutex_lock(&psb_xrandr_info->psb_extvideo_mutex);
+ if (psb_xrandr_info->output_changed) {
+ psb_xrandr_info->output_changed = 0;
+ ret = 1;
+ } else
+ ret = 0;
+ pthread_mutex_unlock(&psb_xrandr_info->psb_extvideo_mutex);
+ return ret;
+}
+
+VAStatus psb_xrandr_extvideo_prop(unsigned int *xres, unsigned int *yres, unsigned int *xoffset,
+ unsigned int *yoffset, psb_extvideo_center *center, psb_extvideo_subtitle *subtitle,
+ unsigned int *overscanmode, unsigned int *pannelfitting)
+{
+ pthread_mutex_lock(&psb_xrandr_info->psb_extvideo_mutex);
+
+ if (psb_xrandr_info->hdmi_extvideo_prop->ExtDesktopMode != EXTENDEDVIDEO) {
+ pthread_mutex_unlock(&psb_xrandr_info->psb_extvideo_mutex);
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ *xres = psb_xrandr_info->hdmi_extvideo_prop->ExtVideoMode_XRes;
+ *yres = psb_xrandr_info->hdmi_extvideo_prop->ExtVideoMode_YRes;
+ *xoffset = psb_xrandr_info->hdmi_extvideo_prop->ExtVideoMode_X_Offset;
+ *yoffset = psb_xrandr_info->hdmi_extvideo_prop->ExtVideoMode_Y_Offset;
+ *center = psb_xrandr_info->hdmi_extvideo_prop->ExtVideoMode_Center;
+ *subtitle = psb_xrandr_info->hdmi_extvideo_prop->ExtVideoMode_SubTitle;
+ *pannelfitting = psb_xrandr_info->hdmi_extvideo_prop->PANELFITTING;
+ *overscanmode = psb_xrandr_info->hdmi_extvideo_prop->OverscanMode;
+
+ pthread_mutex_unlock(&psb_xrandr_info->psb_extvideo_mutex);
+ return VA_STATUS_SUCCESS;
+}
+
+VAStatus psb_xrandr_local_crtc_coordinate(psb_output_device *local_device_enabled, int *x, int *y, int *width, int *height, Rotation *rotation)
+{
+ psb_xrandr_crtc_p p_crtc;
+ pthread_mutex_lock(&psb_xrandr_info->psb_extvideo_mutex);
+
+ switch (psb_xrandr_info->output_device_mode) {
+ case SINGLE_LVDS0:
+ *local_device_enabled = LVDS0;
+ p_crtc = psb_xrandr_info->local_crtc[0];
+ break;
+ case SINGLE_MIPI0:
+ case MIPI0_MIPI1:
+ case MIPI0_HDMI:
+ case MIPI0_MIPI1_HDMI:
+ *local_device_enabled = MIPI0;
+ p_crtc = psb_xrandr_info->local_crtc[0];
+ break;
+ case SINGLE_MIPI1:
+ case MIPI1_HDMI:
+ *local_device_enabled = MIPI1;
+ p_crtc = psb_xrandr_info->local_crtc[1];
+ break;
+ case SINGLE_HDMI:
+ *local_device_enabled = HDMI;
+ p_crtc = psb_xrandr_info->extend_crtc;
+ break;
+ default:
+ psb__error_message("Xrandr: Unknown statue\n");
+ pthread_mutex_unlock(&psb_xrandr_info->psb_extvideo_mutex);
+ return VA_STATUS_ERROR_UNKNOWN;
+ break;
+ }
+
+ if (p_crtc) {
+ *x = p_crtc->x;
+ *y = p_crtc->y;
+ *width = p_crtc->width;
+ *height = p_crtc->height;
+ *rotation = p_crtc->rotation;
+ pthread_mutex_unlock(&psb_xrandr_info->psb_extvideo_mutex);
+ psb__information_message("Xrandr: device %08x enabled, crtc %08x coordinate: x = %d, y = %d, widht = %d, height = %d, rotate = %08x\n",
+ *local_device_enabled, p_crtc->crtc_id, *x, *y, *width + 1, *height + 1, *rotation);
+ return VA_STATUS_SUCCESS;
+ } else {
+ psb__error_message("Xrandr: local device is not available\n");
+ pthread_mutex_unlock(&psb_xrandr_info->psb_extvideo_mutex);
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+}
+
+VAStatus psb_xrandr_extend_crtc_coordinate(psb_output_device *extend_device_enabled, int *x, int *y, int *width, int *height, psb_xrandr_location *location, Rotation *rotation)
+{
+ psb_xrandr_crtc_p p_crtc;
+
+ pthread_mutex_lock(&psb_xrandr_info->psb_extvideo_mutex);
+
+ switch (psb_xrandr_info->output_device_mode) {
+ case MIPI0_MIPI1:
+ *extend_device_enabled = MIPI1;
+ p_crtc = psb_xrandr_info->local_crtc[1];
+ break;
+ case MIPI0_HDMI:
+ case MIPI0_MIPI1_HDMI:
+ case MIPI1_HDMI:
+ *extend_device_enabled = HDMI;
+ p_crtc = psb_xrandr_info->extend_crtc;
+ break;
+ default:
+ psb__error_message("Xrandr: Unknown status, may be extend device is not available\n");
+ pthread_mutex_unlock(&psb_xrandr_info->psb_extvideo_mutex);
+ return VA_STATUS_ERROR_UNKNOWN;
+ break;
+ }
+
+ if (p_crtc) {
+ *x = p_crtc->x;
+ *y = p_crtc->y;
+ *width = p_crtc->width;
+ *height = p_crtc->height;
+ *location = p_crtc->location;
+ *rotation = p_crtc->rotation;
+ pthread_mutex_unlock(&psb_xrandr_info->psb_extvideo_mutex);
+ psb__information_message("Xrandr: extend device %08x enabled, crtc %08x coordinate: x = %d, y = %d, widht = %d, height = %d, location = %s, rotation = %08x\n",
+ *extend_device_enabled, p_crtc->crtc_id, *x, *y, *width + 1, *height + 1, location2string(p_crtc->location), *rotation);
+ } else {
+ psb__error_message("Xrandr: extend device is not available\n");
+ pthread_mutex_unlock(&psb_xrandr_info->psb_extvideo_mutex);
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ return VA_STATUS_SUCCESS;
+}
+
+VAStatus psb_xrandr_thread_exit()
+{
+ int ret;
+
+ XSelectInput(psb_xrandr_info->dpy, psb_xrandr_info->root, StructureNotifyMask);
+ XClientMessageEvent xevent;
+ xevent.type = ClientMessage;
+ xevent.message_type = psb_xrandr_info->psb_exit_atom;
+ xevent.window = psb_xrandr_info->root;
+ xevent.format = 32;
+ ret = XSendEvent(psb_xrandr_info->dpy, psb_xrandr_info->root, 0, StructureNotifyMask, (XEvent*) & xevent);
+ XFlush(psb_xrandr_info->dpy);
+ if (!ret) {
+ psb__information_message("Xrandr: send thread exit event to drawable: failed\n");
+ return VA_STATUS_ERROR_UNKNOWN;
+ } else {
+ psb__information_message("Xrandr: send thread exit event to drawable: success\n");
+ return VA_STATUS_SUCCESS;
+ }
+}
+
+VAStatus psb_xrandr_thread_create(VADriverContextP ctx)
+{
+ pthread_t id;
+ INIT_DRIVER_DATA;
+
+ psb_xrandr_info->psb_exit_atom = XInternAtom(psb_xrandr_info->dpy, "psb_exit_atom", 0);
+ pthread_create(&id, NULL, (void*)psb_xrandr_thread, ctx);
+ driver_data->xrandr_thread_id = id;
+ return VA_STATUS_SUCCESS;
+}
+
+VAStatus psb_xrandr_deinit()
+{
+ pthread_mutex_lock(&psb_xrandr_info->psb_extvideo_mutex);
+ //free crtc
+ if (psb_xrandr_info->crtc_head) {
+ while (psb_xrandr_info->crtc_head) {
+ psb_xrandr_info->crtc_tail = psb_xrandr_info->crtc_head->next;
+
+ free(psb_xrandr_info->crtc_head);
+
+ psb_xrandr_info->crtc_head = psb_xrandr_info->crtc_tail;
+ }
+ psb_xrandr_info->crtc_head = psb_xrandr_info->crtc_tail = NULL;
+ }
+
+ //free output
+ if (psb_xrandr_info->output_head) {
+ while (psb_xrandr_info->output_head) {
+ psb_xrandr_info->output_tail = psb_xrandr_info->output_head->next;
+
+ free(psb_xrandr_info->output_head);
+
+ psb_xrandr_info->output_head = psb_xrandr_info->output_tail;
+ }
+ psb_xrandr_info->output_head = psb_xrandr_info->output_tail = NULL;
+ }
+
+ if (psb_xrandr_info->hdmi_extvideo_prop) {
+ free(psb_xrandr_info->hdmi_extvideo_prop);
+ }
+
+ pthread_mutex_unlock(&psb_xrandr_info->psb_extvideo_mutex);
+ pthread_mutex_destroy(&psb_xrandr_info->psb_extvideo_mutex);
+
+ free(psb_xrandr_info);
+ return VA_STATUS_SUCCESS;
+}
+
+VAStatus psb_xrandr_init(VADriverContextP ctx)
+{
+ int major, minor;
+ int screen;
+
+ psb_xrandr_info = (psb_xrandr_info_p)calloc(1, sizeof(psb_xrandr_info_s));
+
+ if (!psb_xrandr_info) {
+ psb__error_message("output of memory\n");
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+ memset(psb_xrandr_info, 0, sizeof(psb_xrandr_info_s));
+ psb_xrandr_info->mipi0_rotation = RR_Rotate_0;
+ psb_xrandr_info->mipi1_rotation = RR_Rotate_0;
+ psb_xrandr_info->hdmi_rotation = RR_Rotate_0;
+
+ psb_xrandr_info->hdmi_extvideo_prop = (psb_extvideo_prop_p)calloc(1, sizeof(psb_extvideo_prop_s));
+ if (!psb_xrandr_info->hdmi_extvideo_prop) {
+ psb__error_message("output of memory\n");
+ return VA_STATUS_ERROR_ALLOCATION_FAILED;
+ }
+ memset(psb_xrandr_info->hdmi_extvideo_prop, 0, sizeof(psb_extvideo_prop_s));
+
+ psb_xrandr_info->dpy = (Display *)ctx->native_dpy;
+ screen = DefaultScreen(psb_xrandr_info->dpy);
+
+ if (screen >= ScreenCount(psb_xrandr_info->dpy)) {
+ psb__error_message("Xrandr: Invalid screen number %d (display has %d)\n",
+ screen, ScreenCount(psb_xrandr_info->dpy));
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ psb_xrandr_info->root = RootWindow(psb_xrandr_info->dpy, screen);
+
+ if (!XRRQueryVersion(psb_xrandr_info->dpy, &major, &minor)) {
+ psb__error_message("Xrandr: RandR extension missing\n");
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ psb_xrandr_info->res = XRRGetScreenResources(psb_xrandr_info->dpy, psb_xrandr_info->root);
+ if (!psb_xrandr_info->res)
+ psb__error_message("Xrandr: failed to get screen resources\n");
+
+ pthread_mutex_init(&psb_xrandr_info->psb_extvideo_mutex, NULL);
+
+ psb_xrandr_refresh(ctx);
+
+ return VA_STATUS_SUCCESS;
+}
diff --git a/src/x11/psb_xrandr.h b/src/x11/psb_xrandr.h
new file mode 100644
index 0000000..6f211c4
--- /dev/null
+++ b/src/x11/psb_xrandr.h
@@ -0,0 +1,190 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ * Jason Hu <jason.hu@intel.com>
+ * Zhaohan Ren <zhaohan.ren@intel.com>
+ *
+ */
+
+
+#ifndef _PSB_XRANDR_H_
+#define _PSB_XRANDR_H_
+#include <stdio.h>
+#include <X11/Xlib.h>
+#include <X11/Xlibint.h>
+#include <X11/Xproto.h>
+#include <X11/Xatom.h>
+#include <X11/extensions/Xrandr.h>
+#include <X11/extensions/Xrender.h> /* we share subpixel information */
+#include <pthread.h>
+#include <string.h>
+#include <stdlib.h>
+#include <stdarg.h>
+#include <math.h>
+#include <va/va_backend.h>
+
+typedef enum _psb_output_device {
+ MIPI0,
+ MIPI1,
+ LVDS0,
+ HDMI,
+} psb_output_device;
+
+typedef enum _psb_output_device_mode {
+ SINGLE_MIPI0,
+ SINGLE_MIPI1,
+ SINGLE_HDMI,
+ SINGLE_LVDS0,
+ MIPI0_MIPI1,
+ MIPI0_HDMI,
+ MIPI0_MIPI1_HDMI,
+ MIPI1_HDMI,
+} psb_output_device_mode;
+
+typedef enum _psb_hdmi_mode {
+ CLONE,
+ EXTENDED,
+ EXTENDEDVIDEO,
+ SINGLE,
+ UNKNOWNVIDEOMODE,
+} psb_hdmi_mode;
+
+typedef enum _psb_extvideo_center {
+ NOCENTER,
+ CENTER,
+ UNKNOWNCENTER,
+} psb_extvideo_center;
+
+typedef enum _psb_extvideo_subtitle {
+ BOTH,
+ ONLY_HDMI,
+ NOSUBTITLE,
+} psb_extvideo_subtitle;
+
+typedef enum _psb_xrandr_location {
+ NORMAL, ABOVE, BELOW, LEFT_OF, RIGHT_OF,
+} psb_xrandr_location;
+
+typedef struct _psb_extvideo_prop_s {
+ psb_hdmi_mode ExtVideoMode;
+ psb_hdmi_mode ExtDesktopMode;
+
+ unsigned int ExtVideoMode_XRes;
+ unsigned int ExtVideoMode_YRes;
+ unsigned int ExtVideoMode_X_Offset;
+ unsigned int ExtVideoMode_Y_Offset;
+ unsigned int OverscanMode;
+ unsigned int PANELFITTING;
+
+ psb_extvideo_center ExtVideoMode_Center;
+ psb_extvideo_subtitle ExtVideoMode_SubTitle;
+
+} psb_extvideo_prop_s, *psb_extvideo_prop_p;
+
+typedef struct _psb_xrandr_crtc_s {
+ struct _psb_xrandr_crtc_s *next;
+
+ RRCrtc crtc_id;
+ RRMode crtc_mode;
+
+ unsigned int width;
+ unsigned int height;
+ unsigned int x;
+ unsigned int y;
+
+ Rotation rotation;
+ psb_xrandr_location location;
+
+ int noutput;
+
+} psb_xrandr_crtc_s, *psb_xrandr_crtc_p;
+
+typedef struct _psb_xrandr_output_s {
+ RROutput output_id;
+ char name[10];
+ struct _psb_xrandr_output_s *next;
+
+ Connection connection;
+
+ psb_xrandr_crtc_p crtc;
+
+} psb_xrandr_output_s, *psb_xrandr_output_p;
+
+typedef struct _psb_xrandr_info_s {
+ psb_xrandr_crtc_p local_crtc[2];
+ psb_xrandr_crtc_p extend_crtc;
+
+ psb_xrandr_output_p local_output[2];
+ psb_xrandr_output_p extend_output;
+
+ unsigned int nconnected_output;
+
+ psb_extvideo_prop_p hdmi_extvideo_prop;
+
+ int lvds0_enabled;
+ int mipi0_enabled;
+ int mipi1_enabled;
+ int hdmi_enabled;
+
+ Rotation mipi0_rotation;
+ Rotation mipi1_rotation;
+ Rotation hdmi_rotation;
+
+ int output_changed;
+ psb_output_device_mode output_device_mode;
+
+ psb_xrandr_crtc_p crtc_head, crtc_tail;
+ psb_xrandr_output_p output_head, output_tail;
+
+ pthread_mutex_t psb_extvideo_mutex;
+ XRRScreenResources *res;
+ Display *dpy;
+ Window root;
+ Atom psb_exit_atom;
+} psb_xrandr_info_s, *psb_xrandr_info_p;
+
+
+int psb_xrandr_hdmi_enabled();
+int psb_xrandr_mipi1_enabled();
+int psb_xrandr_single_mode();
+int psb_xrandr_clone_mode();
+int psb_xrandr_extend_mode();
+int psb_xrandr_extvideo_mode();
+int psb_xrandr_outputchanged();
+
+Window psb_xrandr_create_full_screen_window(unsigned int destx, unsigned int desty, unsigned int destw, unsigned int desth);
+VAStatus psb_xrandr_extvideo_prop(unsigned int *xres, unsigned int *yres, unsigned int *xoffset,
+ unsigned int *yoffset, psb_extvideo_center *center, psb_extvideo_subtitle *subtitle,
+ unsigned int *overscanmode, unsigned int *pannelfitting);
+VAStatus psb_xrandr_local_crtc_coordinate(psb_output_device *local_device_enabled, int *x, int *y, int *width, int *height, Rotation *rotation);
+VAStatus psb_xrandr_extend_crtc_coordinate(psb_output_device *extend_device_enabled, int *x, int *y, int *width, int *height, psb_xrandr_location *location, Rotation *rotation);
+
+void psb_xrandr_refresh(VADriverContextP ctx);
+void psb_xrandr_thread();
+VAStatus psb_xrandr_thread_create(VADriverContextP ctx);
+VAStatus psb_xrandr_thread_exit();
+VAStatus psb_xrandr_init(VADriverContextP ctx);
+VAStatus psb_xrandr_deinit();
+
+#endif /* _PSB_XRANDR_H_ */
diff --git a/src/x11/psb_xvva.c b/src/x11/psb_xvva.c
new file mode 100644
index 0000000..2fd2158
--- /dev/null
+++ b/src/x11/psb_xvva.c
@@ -0,0 +1,822 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ * Shengquan Yuan <shengquan.yuan@intel.com>
+ * Zhaohan Ren <zhaohan.ren@intel.com>
+ *
+ */
+
+
+#include <va/va_backend.h>
+#include "psb_surface.h"
+#include "psb_output.h"
+#include "psb_surface_ext.h"
+#include "psb_x11.h"
+#include "psb_xrandr.h"
+
+#include <X11/extensions/dpms.h>
+
+#include <wsbm/wsbm_manager.h>
+
+#define INIT_DRIVER_DATA psb_driver_data_p driver_data = (psb_driver_data_p) ctx->pDriverData;
+#define INIT_OUTPUT_PRIV psb_x11_output_p output = (psb_x11_output_p)(((psb_driver_data_p)ctx->pDriverData)->ws_priv)
+
+#define SURFACE(id) ((object_surface_p) object_heap_lookup( &driver_data->surface_heap, id ))
+
+static int psb_CheckDrawable(VADriverContextP ctx, Drawable draw);
+
+int (*oldHandler)(Display *, XErrorEvent *) = 0;
+static int XErrorFlag = 1;
+static int psb_XErrorHandler(Display *dpy, XErrorEvent *event)
+{
+ psb__information_message("XErrorEvent caught in psb_XErrorHandler in psb_xvva.c\n");
+ if (event->type == 0 && event->request_code == 132 && event->error_code == 11 /* BadAlloc */) {
+ XErrorFlag = 1;
+ return 0;
+ }
+ return oldHandler(dpy, event);
+}
+
+static int GetPortId(VADriverContextP ctx, psb_x11_output_p output)
+{
+ int i, j, k;
+ unsigned int numAdapt;
+ int numImages;
+ XvImageFormatValues *formats;
+ XvAdaptorInfo *info;
+ int ret, grab_ret;
+ Display *dpy = (Display *)ctx->native_dpy;
+
+ ret = XvQueryAdaptors(dpy, DefaultRootWindow(dpy), &numAdapt, &info);
+ /*Force overlay port num equal to one. OverlayC can't be used independently now.*/
+ info[1].num_ports = 1;
+
+ if (Success != ret) {
+ psb__error_message("Can't find Xvideo adaptor\n");
+ return -1;
+ }
+
+ grab_ret = XGrabServer(ctx->native_dpy);
+ for (i = 0; i < numAdapt; i++) {
+ if ((info[i].type & XvImageMask) == 0)
+ continue;
+
+ formats = XvListImageFormats(dpy, info[i].base_id, &numImages);
+ for (j = 0; j < numImages; j++) {
+ if (formats[j].id != FOURCC_XVVA) continue;
+ for (k = 0; k < info[i].num_ports; k++) {
+ int ret = XvGrabPort(dpy, info[i].base_id + k, CurrentTime);
+
+ if (Success == ret) {
+ /* for textured adaptor 0 */
+ if (i == 0)
+ output->textured_portID = info[i].base_id + k;
+ /* for overlay adaptor 1 */
+ if (i == 1)
+ output->overlay_portID = info[i].base_id + k;
+ break;
+ }
+ }
+ }
+ XFree(formats);
+ }
+
+ if (grab_ret != 0)
+ XUngrabServer(ctx->native_dpy);
+
+ if ((output->textured_portID == 0) && (output->overlay_portID == 0)) {
+ psb__information_message("Can't detect any usable Xv XVVA port\n");
+ return -1;
+ }
+
+ return 0;
+}
+
+
+VAStatus psb_init_xvideo(VADriverContextP ctx, psb_x11_output_p output)
+{
+ INIT_DRIVER_DATA;
+ int dummy, ret;
+
+ output->textured_portID = output->overlay_portID = 0;
+ if (GetPortId(ctx, output)) {
+ psb__error_message("Grab Xvideo port failed, fallback to software vaPutSurface.\n");
+ return VA_STATUS_ERROR_ALLOCATION_FAILED;
+ }
+
+ if (output->textured_portID)
+ psb__information_message("Detected textured Xvideo port_id = %d.\n", (unsigned int)output->textured_portID);
+ if (output->overlay_portID)
+ psb__information_message("Detected overlay Xvideo port_id = %d.\n", (unsigned int)output->overlay_portID);
+
+ output->sprite_enabled = 0;
+ if (getenv("PSB_SPRITE_ENABLE")) {
+ psb__information_message("use sprite plane to playback rotated protected video\n");
+ output->sprite_enabled = 1;
+ }
+
+ output->ignore_dpm = 1;
+ if (getenv("PSB_VIDEO_DPMS_HACK")) {
+ if (DPMSQueryExtension((Display *)ctx->native_dpy, &dummy, &dummy)
+ && DPMSCapable((Display *)ctx->native_dpy)) {
+ BOOL onoff;
+ CARD16 state;
+
+ DPMSInfo((Display *)ctx->native_dpy, &state, &onoff);
+ psb__information_message("DPMS is %s, monitor state=%s\n", onoff ? "enabled" : "disabled",
+ (state == DPMSModeOn) ? "on" : (
+ (state == DPMSModeOff) ? "off" : (
+ (state == DPMSModeStandby) ? "standby" : (
+ (state == DPMSModeSuspend) ? "suspend" : "unknow"))));
+ if (onoff)
+ output->ignore_dpm = 0;
+ }
+ }
+
+ /* by default, overlay Xv */
+ if (output->textured_portID)
+ driver_data->output_method = PSB_PUTSURFACE_TEXTURE;
+ if (output->overlay_portID)
+ driver_data->output_method = PSB_PUTSURFACE_OVERLAY;
+
+ ret = psb_xrandr_init(ctx);
+ if (ret != 0) {
+ psb__error_message("%s: Failed to initialize psb xrandr error # %d\n", __func__, ret);
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ return VA_STATUS_SUCCESS;
+}
+
+
+VAStatus psb_deinit_xvideo(VADriverContextP ctx)
+{
+ INIT_DRIVER_DATA;
+ INIT_OUTPUT_PRIV;
+
+ if (output->gc) {
+ XFreeGC((Display *)ctx->native_dpy, output->gc);
+ output->gc = NULL;
+ }
+
+ if (output->extend_gc) {
+ XFreeGC((Display *)ctx->native_dpy, output->extend_gc);
+ output->extend_gc = NULL;
+ }
+
+ if (output->textured_xvimage) {
+ psb__information_message("Destroy XvImage for texture Xv\n");
+ XFree(output->textured_xvimage);
+ output->textured_xvimage = NULL;
+ }
+
+ if (output->overlay_xvimage) {
+ psb__information_message("Destroy XvImage for overlay Xv\n");
+ XFree(output->overlay_xvimage);
+ output->textured_xvimage = NULL;
+ }
+
+ if (output->textured_portID) {
+ if ((output->using_port == USING_TEXTURE_PORT) && output->output_drawable
+ && (psb_CheckDrawable(ctx, output->output_drawable) == 0)) {
+ psb__information_message("Deinit: stop textured Xvideo\n");
+ XvStopVideo((Display *)ctx->native_dpy, output->textured_portID, output->output_drawable);
+ }
+
+ psb__information_message("Deinit: ungrab textured Xvideo port\n");
+ XvUngrabPort((Display *)ctx->native_dpy, output->textured_portID, CurrentTime);
+ output->textured_portID = 0;
+ }
+
+ if (output->overlay_portID) {
+ if ((output->using_port == USING_OVERLAY_PORT) && output->output_drawable
+ && (psb_CheckDrawable(ctx, output->output_drawable) == 0)) {
+ psb__information_message("Deinit: stop overlay Xvideo\n");
+ XvStopVideo((Display *)ctx->native_dpy, output->overlay_portID, output->output_drawable);
+ }
+
+ psb__information_message("Deinit: ungrab overlay Xvideo port\n");
+ XvUngrabPort((Display *)ctx->native_dpy, output->overlay_portID, CurrentTime);
+ output->overlay_portID = 0;
+ }
+
+ if (driver_data->use_xrandr_thread && driver_data->xrandr_thread_id) {
+ psb_xrandr_thread_exit();
+ pthread_join(driver_data->xrandr_thread_id, NULL);
+ driver_data->xrandr_thread_id = 0;
+ }
+ psb_xrandr_deinit();
+
+ output->using_port = 0;
+ output->output_drawable = 0;
+ output->extend_drawable = 0;
+
+ XSync((Display *)ctx->native_dpy, False);
+
+ return VA_STATUS_SUCCESS;
+}
+
+
+static void psb_surface_init(
+ psb_driver_data_p driver_data,
+ PsbVASurfaceRec *srf,
+ int fourcc, int bpp, int w, int h, int stride, int size, unsigned int pre_add,
+ struct _WsbmBufferObject *bo, int flags
+)
+{
+ memset(srf, 0, sizeof(*srf));
+
+ srf->fourcc = fourcc;
+ srf->bo = bo;
+ if (bo != NULL) {
+ srf->bufid = wsbmKBufHandle(wsbmKBuf(bo));
+ srf->pl_flags = wsbmBOPlacementHint(bo);
+ }
+
+ if (srf->pl_flags & DRM_PSB_FLAG_MEM_CI)
+ srf->reserved_phyaddr = driver_data->camera_phyaddr;
+ if (srf->pl_flags & DRM_PSB_FLAG_MEM_RAR)
+ srf->reserved_phyaddr = driver_data->rar_phyaddr;
+
+ srf->bytes_pp = bpp;
+
+ srf->width = w;
+ srf->pre_add = pre_add;
+ if ((flags == VA_TOP_FIELD) || (flags == VA_BOTTOM_FIELD)) {
+ if (driver_data->output_method == PSB_PUTSURFACE_FORCE_OVERLAY
+ || driver_data->output_method == PSB_PUTSURFACE_OVERLAY) {
+ srf->height = h;
+ srf->stride = stride;
+ } else {
+ srf->height = h / 2;
+ srf->stride = stride * 2;
+ }
+ if (flags == VA_BOTTOM_FIELD)
+ srf->pre_add += stride;
+ } else {
+ srf->height = h;
+ srf->stride = stride;
+ }
+
+ srf->size = size;
+
+ if (flags == VA_CLEAR_DRAWABLE) {
+ srf->clear_color = driver_data->clear_color; /* color */
+ return;
+ }
+}
+
+#if 0
+
+#define WINDOW 1
+#define PIXMAP 0
+
+/* return 0 for no rotation, 1 for rotation occurs */
+/* XRRGetScreenInfo has significant performance drop */
+static int psb__CheckCurrentRotation(VADriverContextP ctx)
+{
+ Rotation current_rotation;
+ XRRScreenConfiguration *scrn_cfg;
+ scrn_cfg = XRRGetScreenInfo((Display *)ctx->native_dpy, DefaultRootWindow((Display *)ctx->native_dpy));
+ XRRConfigCurrentConfiguration(scrn_cfg, &current_rotation);
+ XRRFreeScreenConfigInfo(scrn_cfg);
+ return (current_rotation & 0x0f);
+}
+
+/* Check drawable type, 1 for window, 0 for pixmap
+ * Have significant performance drop in XFCE environment
+ */
+static void psb__CheckDrawableType(Display *dpy, Window win, Drawable draw, int *type_ret)
+{
+
+ unsigned int child_num;
+ Window root_return;
+ Window parent_return;
+ Window *child_return;
+ int i;
+
+ if (win == draw) {
+ *type_ret = 1;
+ return;
+ }
+
+ XQueryTree(dpy, win, &root_return, &parent_return, &child_return, &child_num);
+
+ if (!child_num)
+ return;
+
+ for (i = 0; i < child_num; i++)
+ psb__CheckDrawableType(dpy, child_return[i], draw, type_ret);
+}
+#endif
+
+
+static int psb_CheckDrawable(VADriverContextP ctx, Drawable draw)
+{
+ INIT_DRIVER_DATA;
+ INIT_OUTPUT_PRIV;
+ Atom xvDrawable = XInternAtom((Display *)ctx->native_dpy, "XV_DRAWABLE", 0);
+ int val = 0;
+
+ driver_data->drawable_info = 0;
+ if (output->overlay_portID) {
+ XvSetPortAttribute((Display *)ctx->native_dpy, output->overlay_portID, xvDrawable, draw);
+ XvGetPortAttribute((Display *)ctx->native_dpy, output->overlay_portID, xvDrawable, &val);
+ } else if (output->textured_portID) {
+ XvSetPortAttribute((Display *)ctx->native_dpy, output->textured_portID, xvDrawable, draw);
+ XvGetPortAttribute((Display *)ctx->native_dpy, output->textured_portID, xvDrawable, &val);
+ }
+ driver_data->drawable_info = val;
+
+ psb__information_message("Get xvDrawable = 0x%08x\n", val);
+
+ if (driver_data->drawable_info == XVDRAWABLE_INVALID_DRAWABLE)
+ return -1;
+
+ return 0;
+}
+
+static int psb__CheckPutSurfaceXvPort(
+ VADriverContextP ctx,
+ VASurfaceID surface,
+ Drawable draw, /* X Drawable */
+ short srcx,
+ short srcy,
+ unsigned short srcw,
+ unsigned short srch,
+ short destx,
+ short desty,
+ unsigned short destw,
+ unsigned short desth,
+ VARectangle *cliprects, /* client supplied clip list */
+ unsigned int number_cliprects, /* number of clip rects in the clip list */
+ unsigned int flags /* de-interlacing flags */
+)
+{
+ INIT_DRIVER_DATA;
+ INIT_OUTPUT_PRIV;
+ object_surface_p obj_surface = SURFACE(surface);
+ uint32_t buf_pl;
+
+ /* silent klockwork */
+ if (obj_surface && obj_surface->psb_surface)
+ buf_pl = obj_surface->psb_surface->buf.pl_flags;
+ else
+ return -1;
+
+ if (flags & VA_CLEAR_DRAWABLE)
+ return 0;
+
+ if (output->overlay_portID == 0) { /* no overlay usable */
+ driver_data->output_method = PSB_PUTSURFACE_TEXTURE;
+ return 0;
+ }
+
+ if (driver_data->output_method == PSB_PUTSURFACE_FORCE_OVERLAY) {
+ psb__information_message("Force Overlay Xvideo for PutSurface\n");
+ return 0;
+ }
+
+ if ((driver_data->output_method == PSB_PUTSURFACE_FORCE_TEXTURE)) {
+ psb__information_message("Force Textured Xvideo for PutSurface\n");
+ return 0;
+ }
+
+ if (((buf_pl & (WSBM_PL_FLAG_TT | DRM_PSB_FLAG_MEM_RAR | DRM_PSB_FLAG_MEM_CI)) == 0) /* buf not in TT/RAR or CI */
+ || (obj_surface->width > 1920) /* overlay have isue to support >1920xXXX resolution */
+ || (obj_surface->subpic_count > 0) /* overlay can't support subpicture */
+ /* || (flags & (VA_TOP_FIELD|VA_BOTTOM_FIELD))*/
+ ) {
+ driver_data->output_method = PSB_PUTSURFACE_TEXTURE;
+ return 0;
+ }
+
+
+ /* Here should be overlay XV by defaut after overlay is stable */
+ driver_data->output_method = PSB_PUTSURFACE_OVERLAY;
+ /* driver_data->output_method = PSB_PUTSURFACE_TEXTURE; */
+
+ /*
+ *Query Overlay Adaptor by XvDrawable Attribute to know current
+ * Xrandr information:rotation/downscaling
+ * also set target drawable(window vs pixmap) into XvDrawable
+ * to levage Xserver to determiate it is Pixmap or Window
+ */
+ /*
+ *ROTATE_90: 0x2, ROTATE_180: 0x4, ROTATE_270:0x8
+ *Overlay adopator can support video rotation,
+ *but its performance is lower than texture video path.
+ *When video protection and rotation are required (use RAR buffer),
+ *only overlay adaptor will be used.
+ *other attribute like down scaling and pixmap, use texture adaptor
+ */
+ if (driver_data->drawable_info
+ & (XVDRAWABLE_ROTATE_180 | XVDRAWABLE_ROTATE_90 | XVDRAWABLE_ROTATE_270)) {
+ if (buf_pl & DRM_PSB_FLAG_MEM_RAR)
+ driver_data->output_method = PSB_PUTSURFACE_OVERLAY;
+ else
+ driver_data->output_method = PSB_PUTSURFACE_TEXTURE;
+ }
+
+ if (driver_data->drawable_info & (XVDRAWABLE_PIXMAP | XVDRAWABLE_REDIRECT_WINDOW))
+ driver_data->output_method = PSB_PUTSURFACE_TEXTURE;
+
+ if (srcw >= destw * 8 || srch >= desth * 8)
+ driver_data->output_method = PSB_PUTSURFACE_TEXTURE;
+
+ return 0;
+}
+
+
+static int psb__CheckGCXvImage(
+ VADriverContextP ctx,
+ VASurfaceID surface,
+ Drawable draw,
+ XvImage **xvImage,
+ XvPortID *port_id,
+ unsigned int flags /* de-interlacing flags */
+)
+{
+ INIT_DRIVER_DATA;
+ INIT_OUTPUT_PRIV;
+ object_surface_p obj_surface = SURFACE(surface); /* surface already checked */
+
+ if (output->output_drawable != draw) {
+ if (output->gc)
+ XFreeGC((Display *)ctx->native_dpy, output->gc);
+ output->gc = XCreateGC((Display *)ctx->native_dpy, draw, 0, NULL);
+ output->output_drawable = draw;
+ }
+
+ if (flags & VA_CLEAR_DRAWABLE) {
+ if (output->textured_portID && (output->using_port == USING_TEXTURE_PORT)) {
+ psb__information_message("Clear drawable, and stop textured Xvideo\n");
+ XvStopVideo((Display *)ctx->native_dpy, output->textured_portID, draw);
+ }
+
+ if (output->overlay_portID && (output->using_port == USING_OVERLAY_PORT)) {
+ psb__information_message("Clear drawable, and stop overlay Xvideo\n");
+ XvStopVideo((Display *)ctx->native_dpy, output->overlay_portID, draw);
+ }
+
+ output->using_port = 0;
+
+ XSetForeground((Display *)ctx->native_dpy, output->gc, driver_data->clear_color);
+
+ return 0;
+ }
+
+ if ((driver_data->output_method == PSB_PUTSURFACE_FORCE_OVERLAY) ||
+ (driver_data->output_method == PSB_PUTSURFACE_OVERLAY)) {
+ /* use OVERLAY XVideo */
+ if (obj_surface &&
+ ((output->output_width != obj_surface->width) ||
+ (output->output_height != obj_surface->height) ||
+ (!output->overlay_xvimage))) {
+
+ if (output->overlay_xvimage)
+ XFree(output->overlay_xvimage);
+
+ psb__information_message("Create new XvImage for overlay\n");
+ output->overlay_xvimage = XvCreateImage((Display *)ctx->native_dpy, output->overlay_portID,
+ FOURCC_XVVA, 0,
+ obj_surface->width, obj_surface->height);
+
+ output->overlay_xvimage->data = (char *) & output->imgdata_vasrf;
+ output->output_width = obj_surface->width;
+ output->output_height = obj_surface->height;
+ }
+ *xvImage = output->overlay_xvimage;
+ *port_id = output->overlay_portID;
+
+ if ((output->textured_portID) && (output->using_port == USING_TEXTURE_PORT)) { /* stop texture port */
+ psb__information_message("Using overlay xvideo, stop textured xvideo\n");
+ XvStopVideo((Display *)ctx->native_dpy, output->textured_portID, draw);
+ XSync((Display *)ctx->native_dpy, False);
+ }
+ output->using_port = USING_OVERLAY_PORT;
+
+ psb__information_message("Using Overlay Xvideo (%d) for PutSurface\n", output->textured_portID);
+
+ return 0;
+ }
+
+ if ((driver_data->output_method == PSB_PUTSURFACE_FORCE_TEXTURE) ||
+ (driver_data->output_method == PSB_PUTSURFACE_TEXTURE)) {
+ /* use Textured XVideo */
+ if (obj_surface &&
+ ((output->output_width != obj_surface->width) ||
+ (output->output_height != obj_surface->height ||
+ (!output->textured_xvimage)))) {
+ if (output->textured_xvimage)
+ XFree(output->textured_xvimage);
+
+ psb__information_message("Create new XvImage for overlay\n");
+ output->textured_xvimage = XvCreateImage((Display *)ctx->native_dpy, output->textured_portID, FOURCC_XVVA, 0,
+ obj_surface->width, obj_surface->height);
+ output->textured_xvimage->data = (char *) & output->imgdata_vasrf;
+ output->output_width = obj_surface->width;
+ output->output_height = obj_surface->height;
+
+ }
+
+ *xvImage = output->textured_xvimage;
+ *port_id = output->textured_portID;
+
+ if ((output->overlay_portID) && (output->using_port == USING_OVERLAY_PORT)) { /* stop overlay port */
+ psb__information_message("Using textured xvideo, stop Overlay xvideo\n");
+ XvStopVideo((Display *)ctx->native_dpy, output->overlay_portID, draw);
+ XSync((Display *)ctx->native_dpy, False);
+
+ output->using_port = USING_TEXTURE_PORT;
+ }
+
+ psb__information_message("Using Texture Xvideo (%d) for PutSurface\n", output->textured_portID);
+
+ return 0;
+ }
+
+ return 0;
+}
+
+static int psb_force_dpms_on(VADriverContextP ctx)
+{
+ BOOL onoff;
+ CARD16 state;
+
+ DPMSInfo((Display *)ctx->native_dpy, &state, &onoff);
+ psb__information_message("DPMS is %s, monitor state=%s\n", onoff ? "enabled" : "disabled",
+ (state == DPMSModeOn) ? "on" : (
+ (state == DPMSModeOff) ? "off" : (
+ (state == DPMSModeStandby) ? "standby" : (
+ (state == DPMSModeSuspend) ? "suspend" : "unknow"))));
+ if (onoff && (state != DPMSModeOn)) {
+ psb__information_message("DPMS is enabled, and monitor isn't DPMSModeOn, force it on\n");
+ DPMSForceLevel((Display *)ctx->native_dpy, DPMSModeOn);
+ }
+
+ return 0;
+}
+
+VAStatus psb_check_rotatesurface(
+ VADriverContextP ctx,
+ unsigned short rotate_width,
+ unsigned short rotate_height,
+ unsigned int protected,
+ int fourcc
+)
+{
+ INIT_DRIVER_DATA;
+ INIT_OUTPUT_PRIV;
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ object_surface_p obj_rotate_surface;
+
+ if (output->rotate_surface) {
+ obj_rotate_surface = SURFACE(output->rotate_surfaceID);
+ if (obj_rotate_surface &&
+ ((obj_rotate_surface->width != rotate_width)
+ || (obj_rotate_surface->height != rotate_height))) {
+ psb_surface_destroy(output->rotate_surface);
+ free(output->rotate_surface);
+ object_heap_free(&driver_data->surface_heap, (object_base_p)obj_rotate_surface);
+ output->rotate_surface = NULL;
+ }
+ }
+ if (output->rotate_surface == NULL) {
+ output->rotate_surfaceID = object_heap_allocate(&driver_data->surface_heap);
+ obj_rotate_surface = SURFACE(output->rotate_surfaceID);
+ if (NULL == obj_rotate_surface) {
+ vaStatus = VA_STATUS_ERROR_ALLOCATION_FAILED;
+ DEBUG_FAILURE;
+
+ return VA_STATUS_ERROR_ALLOCATION_FAILED;
+ }
+
+ obj_rotate_surface->surface_id = output->rotate_surfaceID;
+ obj_rotate_surface->context_id = -1;
+ obj_rotate_surface->width = rotate_width;
+ obj_rotate_surface->height = rotate_height;
+ obj_rotate_surface->subpictures = NULL;
+ obj_rotate_surface->subpic_count = 0;
+ obj_rotate_surface->derived_imgcnt = 0;
+ output->rotate_surface = (psb_surface_p) calloc(1, sizeof(struct psb_surface_s));
+ if (NULL == output->rotate_surface) {
+ object_heap_free(&driver_data->surface_heap, (object_base_p) obj_rotate_surface);
+ obj_rotate_surface->surface_id = VA_INVALID_SURFACE;
+
+ vaStatus = VA_STATUS_ERROR_ALLOCATION_FAILED;
+
+ DEBUG_FAILURE;
+
+ return VA_STATUS_ERROR_ALLOCATION_FAILED;
+ }
+
+ vaStatus = psb_surface_create(driver_data, rotate_width, rotate_height,
+ fourcc, protected, output->rotate_surface);
+ if (VA_STATUS_SUCCESS != vaStatus) {
+ free(obj_rotate_surface->psb_surface);
+ object_heap_free(&driver_data->surface_heap, (object_base_p) obj_rotate_surface);
+ obj_rotate_surface->surface_id = VA_INVALID_SURFACE;
+
+ DEBUG_FAILURE;
+ return vaStatus;
+ }
+ obj_rotate_surface->psb_surface = output->rotate_surface;
+ }
+ return vaStatus;
+}
+
+VAStatus psb_putsurface_xvideo(
+ VADriverContextP ctx,
+ VASurfaceID surface,
+ Drawable draw,
+ short srcx,
+ short srcy,
+ unsigned short srcw,
+ unsigned short srch,
+ short destx,
+ short desty,
+ unsigned short destw,
+ unsigned short desth,
+ VARectangle *cliprects, /* client supplied clip list */
+ unsigned int number_cliprects, /* number of clip rects in the clip list */
+ unsigned int flags /* de-interlacing flags */
+)
+{
+ INIT_DRIVER_DATA;
+ INIT_OUTPUT_PRIV;
+ VAStatus vaStatus = VA_STATUS_SUCCESS;
+ PsbVASurfaceRec *subpic_surface;
+ PsbXvVAPutSurfacePtr vaPtr;
+ XvPortID portID = 0;
+ XvImage *xvImage = NULL;
+ object_surface_p obj_surface = SURFACE(surface);
+ psb_surface_p psb_surface;
+ int i = 0, j;
+
+
+ if (obj_surface) /* silent klockwork, we already check it */
+ psb_surface = obj_surface->psb_surface;
+ else
+ return VA_STATUS_ERROR_UNKNOWN;
+
+ /* Catch X protocol errors with our own error handler */
+ if (oldHandler == 0)
+ oldHandler = XSetErrorHandler(psb_XErrorHandler);
+
+ if (XErrorFlag == 1) {
+ if (psb_CheckDrawable(ctx, draw) != 0) {
+ psb__error_message("vaPutSurface: invalidate drawable\n");
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+
+ psb__information_message("ran psb_CheckDrawable the first time!\n");
+ XErrorFlag = 0;
+ }
+
+ /* check display configuration for every 100 frames */
+ if ((driver_data->frame_count % 100) == 0) {
+ if (psb_CheckDrawable(ctx, draw) != 0) {
+ psb__error_message("vaPutSurface: invalidate drawable\n");
+ return VA_STATUS_ERROR_UNKNOWN;
+ }
+ psb__information_message("ran psb_CheckDrawable the first time!\n");
+ }
+
+
+
+ psb__CheckPutSurfaceXvPort(ctx, surface, draw,
+ srcx, srcy, srcw, srch,
+ destx, desty, destw, desth,
+ cliprects, number_cliprects, flags);
+ psb__CheckGCXvImage(ctx, surface, draw, &xvImage, &portID, flags);
+
+ if (flags & VA_CLEAR_DRAWABLE) {
+ psb__information_message("Clean draw with color 0x%08x\n", driver_data->clear_color);
+
+ XFillRectangle((Display *)ctx->native_dpy, draw, output->gc, destx, desty, destw, desth);
+ XSync((Display *)ctx->native_dpy, False);
+
+ XFreeGC((Display *)ctx->native_dpy, output->gc);
+ output->gc = NULL;
+ output->output_drawable = 0;
+
+ XSync((Display *)ctx->native_dpy, False);
+
+ driver_data->cur_displaying_surface = VA_INVALID_SURFACE;
+ driver_data->last_displaying_surface = VA_INVALID_SURFACE;
+ obj_surface->display_timestamp = 0;
+
+
+ return vaStatus;
+ }
+
+ vaPtr = (PsbXvVAPutSurfacePtr)xvImage->data;
+ vaPtr->flags = flags;
+ vaPtr->num_subpicture = obj_surface->subpic_count;
+ vaPtr->num_clipbox = number_cliprects;
+ for (j = 0; j < number_cliprects; j++) {
+ vaPtr->clipbox[j].x = cliprects[j].x;
+ vaPtr->clipbox[j].y = cliprects[j].y;
+ vaPtr->clipbox[j].width = cliprects[j].width;
+ vaPtr->clipbox[j].height = cliprects[j].height;
+ }
+
+ psb_surface_init(driver_data, &vaPtr->src_srf, VA_FOURCC_NV12, 2,
+ obj_surface->width, obj_surface->height,
+ psb_surface->stride, psb_surface->size,
+ psb_surface->buf.buffer_ofs, /* for surface created from RAR/camera device memory
+ * all surfaces share one BO but with different offset
+ * pass the offset as the "pre_add"
+ */
+ psb_surface->buf.drm_buf, flags);
+
+ if ((driver_data->output_method == PSB_PUTSURFACE_OVERLAY)
+ && (driver_data->drawable_info & (XVDRAWABLE_ROTATE_180 | XVDRAWABLE_ROTATE_90 | XVDRAWABLE_ROTATE_270))) {
+ unsigned int rotate_width, rotate_height;
+ int fourcc;
+ if (output->sprite_enabled)
+ fourcc = VA_FOURCC_RGBA;
+ else
+ fourcc = VA_FOURCC_NV12;
+ if (driver_data->drawable_info & (XVDRAWABLE_ROTATE_90 | XVDRAWABLE_ROTATE_270)) {
+ rotate_width = obj_surface->height;
+ rotate_height = obj_surface->width;
+ } else {
+ rotate_width = obj_surface->width;
+ rotate_height = obj_surface->height;
+ }
+ unsigned int protected = vaPtr->src_srf.pl_flags & DRM_PSB_FLAG_MEM_RAR;
+
+ vaStatus = psb_check_rotatesurface(ctx, rotate_width, rotate_height, protected, fourcc);
+ if (VA_STATUS_SUCCESS != vaStatus)
+ return vaStatus;
+
+ psb_surface_init(driver_data, &vaPtr->dst_srf, fourcc, 4,
+ rotate_width, rotate_height,
+ output->rotate_surface->stride, output->rotate_surface->size,
+ output->rotate_surface->buf.buffer_ofs, /* for surface created from RAR/camera device memory
+ * all surfaces share one BO but with different offset
+ * pass the offset as the "pre_add"
+ */
+ output->rotate_surface->buf.drm_buf, 0);
+ }
+ subpic_surface = obj_surface->subpictures;
+ while (subpic_surface) {
+ PsbVASurfaceRec *tmp = &vaPtr->subpic_srf[i++];
+
+ memcpy(tmp, subpic_surface, sizeof(*tmp));
+
+ /* reload palette for paletted subpicture
+ * palete_ptr point to image palette
+ */
+ if (subpic_surface->palette_ptr)
+ memcpy(&tmp->palette[0], subpic_surface->palette_ptr, 16 * sizeof(PsbAYUVSample8));
+
+ subpic_surface = subpic_surface->next;
+ }
+
+ if (output->ignore_dpm == 0)
+ psb_force_dpms_on(ctx);
+
+ XvPutImage((Display *)ctx->native_dpy, portID, draw, output->gc, xvImage,
+ srcx, srcy, srcw, srch, destx, desty, destw, desth);
+ XFlush((Display *)ctx->native_dpy);
+ //XSync((Display *)ctx->native_dpy, False);
+
+ if (portID == output->overlay_portID) {
+ if (driver_data->cur_displaying_surface != VA_INVALID_SURFACE)
+ driver_data->last_displaying_surface = driver_data->cur_displaying_surface;
+ obj_surface->display_timestamp = GetTickCount();
+ driver_data->cur_displaying_surface = surface;
+ } else {
+ driver_data->cur_displaying_surface = VA_INVALID_SURFACE;
+ driver_data->last_displaying_surface = VA_INVALID_SURFACE;
+ obj_surface->display_timestamp = 0;
+ }
+
+
+ return vaStatus;
+}
+
diff --git a/style_unify b/style_unify
new file mode 100755
index 0000000..4915e63
--- /dev/null
+++ b/style_unify
@@ -0,0 +1,10 @@
+#!/bin/bash
+file=$(find . -name "*.[ch]" -o -name "*.cpp")
+for i in $file
+do
+ echo $i
+ astyle --style=linux -s4 -c -s -p -U -H -n $i
+done
+
+
+